Compare commits

...

692 Commits

Author SHA1 Message Date
Richard Purdie
81f9e815d3 build-appliance-image: Update to master head revision
(From OE-Core rev: 95ad5626296380358c8a502a3e04879dab653d78)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:32:53 +01:00
Khem Raj
d230765d1f layer.conf: Remove weston-conf from SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS
This recipe is gone

(From OE-Core rev: 3a8e60bb36631ba2b32213c234ec7b4e1e2544d5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:31:17 +01:00
Richard Purdie
886a71438f bitbake: utils: Add ionice option to prunedir
Autobuilder type infrastructure can benefit from deletion of certain files as
background IO due to the way Linux filesystem priority works.

We have problems where build directories as part of oe-selftest being
delete starves the running tasks of IO to the point builds take much
longer to compelte.

Having this option of running the deletion at "idle" helps a lot with
that.

(Bitbake rev: 797354d285f6d624d9adb52bab65823572da0e39)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Robert Yang
2af45501fd bitbake: runqueue: validate_hashes(): currentcount should be a number
According to sstate_checkhashes which is defined in sstate.bbclass, the
currentcoun should be a number (0, not None).

Fixed:
$ bitbake base-files -Sprintdiff
    >    bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(found), len(missed), currentcount, match, complete))

TypeError: %d format: a number is required, not NoneType

(Bitbake rev: 45cb73e2846eaffe8964a573875f54808e8f3633)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Ross Burton
e35be7aa7d bitbake: fetch2/git: add git-lfs toggle option
Add a new 'lfs' option to the git fetcher so that we can optionally not fetch
git-lfs content, for repositories that contain LFS data that we don't
actually need for building.

By default lfs is set to 1, so if the repository has LFS content then git-lfs is
required.  Setting lfs to 0 will mean that git-lfs won't be required to fetch,
and some files will be missing.

(Bitbake rev: be0b78ccfc5ede98041bc0545a15092494b12b26)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Yeoh Ee Peng
0a46b9dd9c bitbake: bitbake-layers: show-recipes: Enable bare output
Currently, show-recipes will append "(skipped)" marker to recipes which
were skipped due these recipes does not satisfied the configurations.

Example: $ bitbake-layers show-recipes -r
   ace
   backport-iwlwifi
   core-image-rt (skipped)
   core-image-rt-sdk (skipped)
   core-image-tiny

Add -b/--bare to enable output names without "(skipped)" marker.

Example: $ bitbake-layers show-recipes -r -b
   ace
   backport-iwlwifi
   core-image-rt
   core-image-rt-sdk
   core-image-tiny

(Bitbake rev: 87796e580cd160a535eb5fb9e31846a7cf1a249e)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Yeoh Ee Peng
7f2803d1aa bitbake: bitbake-layers: show-recipes: Select recipes from selected layer
Currently, show-recipes will show recipes from all configured layers.
Assume, meta-intel layer was added to conf/bblayers.conf.

Example of default $ bitbake-layers show-recipes:
core-image-rt:
  meta-intel           unknown (skipped)
  meta                 unknown (skipped)

Add -l/--layer to enable showing recipes from user selected layer.

Example: $ bitbake-layers show-recipes -l meta-intel
core-image-rt:
  meta-intel           unknown (skipped)

(Bitbake rev: 8c38d95c4474ea171cb55b0e336d9090451e89ce)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Yeoh Ee Peng
5808f455f0 bitbake: bitbake-layers: show-recipes: Show recipes only
Currently, show-recipes will show all recipes available (both
recipes with different version and recipes provided by more
than one layer).

Example of default $ bitbake-layers show-recipes:
core-image-rt:
  meta-intel           unknown (skipped)
  meta                 unknown (skipped)

yajl:
  meta-oe              2.1.0
  meta-oe              1.0.12

Add -r/--recipes-only to enable showing recipes only. This
provide a focus view on unique recipes available.

Example of $ bitbake-layers show-recipes -r:
core-image-rt (skipped)
yajl

(Bitbake rev: 048bd051a9b422a38c181f57bb5090a05684a5c3)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Peter Kjellerstedt
7e7cce5f36 tzdata: Correct the packaging of /etc/localtime and /etc/timezone
During restructuring of the packaging in 2af4d6eb (tzdata: Install
everything by default), these two files remained in the tzdata
package, which is supposed to be empty. Move them to tzdata-core where
they belong.

Also simplify the definition of CONFFILES_tzdata-core. As its value
only takes effect for files that actually exist, there is no need to
complicate its definition by checking if a file is created before
adding it to the list of configuration files.

(From OE-Core rev: 3d2d31fed64169f08c0ecfce4c07b8c7ebd052d2)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Peter Kjellerstedt
62c67d0c0d package_rpm.bbclass: Remove a misleading bb.note()
It should have been removed in 3db9d865 (classes/package_rpm.bbclass:
Enhance diagnostic messages) when it was split in two new notes.

Also change the casing of two other notes to align them with the other
notes.

(From OE-Core rev: b40e245795cd19c7d36df096fa1f30c75490ce46)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Nathan Rossi
4420f6d0c2 meson.bbclass: Handle microblaze* mapping to cpu family
(From OE-Core rev: 01692856b8294109ac553c5c0cc23dbb5f1a8970)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Richard Purdie
e9f859106c oeqa/concurrenttest: Use ionice to delete build directories
Autobuilder type infrastructure can benefit from deletion of certain files as
background IO due to the way Linux filesystem priority works.

We have problems where build directories as part of oe-selftest being
delete starves the running tasks of IO to the point builds take much
longer to compelte.

Having this option of running the deletion at "idle" helps a lot with
that. Use the new option added to bb.utils.prunedir().

(From OE-Core rev: d41e7018be56902b7a1be4590e468cd15e02a3b5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Quentin Schulz
9daa97bea8 externalsrc: stop rebuilds of 2+ externalsrc recipes sharing the same git repo
externalsrc do_configure task watches oe-devtool-tree-sha1 file and its
checksum. That file basically contains the result of `git add -A
${EXTERNALSRC} && git write-tree` which is the hash of temporary
"commit" of the non committed changes. This file is stored in the .git
directory of the git repo of the externalsrc recipe. do_configure then
depends on the checksum of oe-devtool-tree-sha1 file.

If 2+ recipes with different externalsrc paths but same git repo (e.g.
one recipe at /some/path and the other at /some/path/subdir) are parsed,
this oe-devtool-tree-sha1 will be overwritten by those recipes at
parsing time since .git is shared between those recipes.

If there is one non committed git change in /some/path but not in
/some/path/subdir, the oe-devtool-tree-sha1 of both recipes will be
different.

What will happen is that recipe1 will watch over the
oe-devtool-tree-sha1 with a specific checksum, fill in file-checksums
for do_configure correctly, then recipe2 will watch over the identically
named file with different content also fill in the file-checksums
varflag. When do_configure of recipe1 will be evaluated for
re-execution, oe-devtool-tree-sha1 will be of the value of what is
watched over by recipe2, thus triggering a rebuild of recipe1.

This behavior is not always reproducible which I'm guessing is due to a
small window between recipe1 putting info into oe-devtool-tree-sha1 and
calculating the checksum of that file and recipe2 putting its content
into oe-devtool-tree-sha1.

By appending the name of the recipe to oe-devtool-tree-sha1, we make
sure that a recipe won't have its oe-devtool-tree-sha1 overwritten by
another recipe sharing the same externalsrc git repo.

(From OE-Core rev: 1b727dd7295a7a7fe17800f8038242efbf7fe2b7)

Signed-off-by: Quentin Schulz <quentin.schulz@streamunlimited.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Richard Purdie
db5f08c16e meta-extsdk: Either an sstate task is a proper task or it isn't
Ensure the task is properly regsistered as an sstate task as this
"half way" state confuses new code in bitbake and it isn't supported.

(From OE-Core rev: 53d6cd98216e3b73c0c90e42223efd1a2b649358)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 20:30:35 +01:00
Richard Purdie
2f5cc1a8fd systemd: Handle slow to boot mips hwdb update timeouts
This is a temporary workaround to avoid autobuilder failures until
https://github.com/systemd/systemd/issues/13581 is resolved.

Its being done globally even though its a mips problem for simplicity,
it doesn't hurt anything else to have a longer timeout.

(From OE-Core rev: 101d1ea3fe2d40ddde3139952545fa7128478f66)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 15:27:02 +01:00
Jaewon Lee
88db9e41c1 populate_sdk_ext: Introduce mechanism to keep nativesdk* sstate in esdk
When doing a devtool build-sdk from within an esdk all nativesdk
components would be rebuilt. This patch introduces SDK_INCLUDE_NATIVESDK
flag to toggle the inclusion of nativesdk packages when creating the
esdk sstate

Currently locked-sigs.inc is generated during do_sdk_depends which
doesn't pull in nativesdk packages. Generating another locked-sigs.inc
in do_populate_sdk_ext and pruning it to only nativesdk* packages by
using a modified version of the already existing function
prune_locked_sigs and merging it with the current locked-sigs.inc
Also adding SDK_INCLUDE_NATIVESDK tasklistfn to the logic surrounding
setting tasklist file to not prune esdk sstate during creation

[YOCTO #13261]

(From OE-Core rev: d046afd12e1c209b29dca6ba402b9aa14680c5ce)

Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 15:27:02 +01:00
Khem Raj
b418ececee weston-init: Add possibility to run weston as non-root user
These changes are from meta-96boards primarily
Launch the session via a udev rule based on what kind of display device
is available

delete weston-conf and move the fuctionality into weston-init other
layers are doing same

weston-init installs machine specific weston.ini therefore mark is
machine specific now

(From OE-Core rev: aa3bced2e1de2f4ba507aa014835b06edccc138a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 15:27:02 +01:00
Richard Purdie
9c22a5a8a8 initramfs-framework: support PARTLABEL option
Since commit (kernel >= 4.20):
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f027c34d844013d9d6c902af8fa01a82d6e5073d
specifying rootfs by PARTLABEL is supported. This commit adds support to
specify root by GPT partition label.

RP: [Fixup to match v2 of the patch]

(From OE-Core rev: 6901b7840dd9429064003ab939ba7e5cca5dc37f)

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 13:09:22 +01:00
Joshua Watt
ec33280c00 classes/archiver: Fix WORKDIR for shared source
When archiving patched source, WORKDIR should only be changed to
${ARCHIVER_WORKDIR} if the recipe doesn't use a shared work directory.
This matches the behavior of do_unpack_and_patch for these recipes.

This fixes kernel recipes that set S = "${WORKDIR}/git"

(From OE-Core rev: e3caee8f86f2cca1d052f1f1b233018a3d4baa97)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:33 +01:00
Adrian Bunk
9cbfaf790f libmpc: Remove dead UPSTREAM_CHECK_URI
(From OE-Core rev: c9f474e654434fec136315fb647c3c6c518d158d)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:33 +01:00
Adrian Bunk
b2506dc913 squashfs-tools: Remove UPSTREAM_CHECK_COMMITS
Upstream is making releases again.

(From OE-Core rev: e2939592165034d59dd4841f6cb8c9fbfee21f27)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:33 +01:00
Adrian Bunk
f700a98f20 lttng-ust: Upgrade 2.10.4 -> 2.10.5
Remove patch for issue fixed upstream.

(From OE-Core rev: 1c8201da33174368fe7143047147d7c5aab0d224)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Adrian Bunk
c2f785f716 lttng-modules: Upgrade 2.10.10 -> 2.10.11
(From OE-Core rev: daf55a989c8bb4a559d75c30ed85b135ec14d5fd)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Adrian Bunk
714db4a850 glib-2.0: Upgrade 2.60.6 -> 2.60.7
(From OE-Core rev: 1975c05b60fec0e012d4a23e3785acec9e976951)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Diego Rondini
4b3656a978 initramfs-framework: support PARTLABEL option
Since commit (kernel >= 4.20):
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f027c34d844013d9d6c902af8fa01a82d6e5073d
specifying rootfs by PARTLABEL is supported. This commit adds support to
specify root by GPT partition label.

(From OE-Core rev: e714b8982c2decbc24598af46f44c3a94834591f)

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Peter Kjellerstedt
fc94afe15e glibc: Make it build without ldconfig in DISTRO_FEATURES
The removal of the supposedly empty /etc when ldconfig is not in
DISTRO_FEATURES seems to be a remnant from a long time ago when nothing
else was installed in /etc. However, that is no longer the case as,
e.g., nscd.conf is always installed to /etc now.

(From OE-Core rev: f66c02130d11154088d86c96fedd88e9d2bca723)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Nathan Rossi
d785e295d5 cmake: 3.15.2 -> 3.15.3
Update to fix issues with Boost 1.71.0, see pull request:
  https://gitlab.kitware.com/cmake/cmake/merge_requests/3763

(From OE-Core rev: 89251c2227c38b528b52d56a59ffbe44f1af9cd3)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Ross Burton
038b012081 opkg-utils: respect SOURCE_DATE_EPOCH when building ipkgs
Backport a patch from upstream to respect SOURCE_DATE_EPOCH when building ipkgs,
to ensure reproducible archives.

(From OE-Core rev: d50d52188cee7ccc0f40f0bba6da1084410b81cf)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Hector Palacios
eba5dcddfa udev-extraconf: skip mounting partitions already mounted by systemd
For some devices, udev may sometimes trigger twice the 'add' rule during
boot. Calling the mount.sh script twice will eventually fail for
already mounted partitions, but in that case, the script tries to remove
the created mountpoint, when it shouldn't.
This has been observed on USB sticks connected to a USB hub and may
result in devices not being mounted if plugged-in before booting.

This patch checks for already mounted partitions earlier (before creating
the mount point) and returns with no actions.

(From OE-Core rev: 4cf076879ac038ebf76679a19249ea6363e63e0f)

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Ross Burton
9ad35b8707 systemd-systemctl-native: don't care about line endings
It's possible for a service file to accidentally contain mixed line endings, but
the string cleanup code was assuming Unix endings.

[ YOCTO #13535 ]

(From OE-Core rev: 7aaa9200b5ba2cba92ee1ed7003d54848498b37d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Ross Burton
f3977f03a1 rootfs-postcommands: check /etc/gconf exists before working on it
Check that /etc/gconf exists before trying to find files under it, to avoid
writing find error messages to the rootfs log.

Also use ${sysconfdir}/gconf instead of hardcoding /etc/gconf.

(From OE-Core rev: 70a77b91031388ea29eff6b8885fd25cc35b1dae)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Ross Burton
c5717f3515 libinput: upgrade 1.14.0 -> 1.14.1
(From OE-Core rev: 58aa346673428132dacbc4cd060106b23c8edd71)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Changqing Li
0f866a92e1 report-error.bbclass: add local.conf/auto.conf into error report
sometimes, it is not enough to reproduce a failed build with current
info on error reports web, add local.conf/auto.conf into error
report to make it more easier to reproduce failed build

Note: this need work together with change in repo error-report-web,
which will display local.conf and auto.conf as Error Details

[YOCTO #13252]

(From OE-Core rev: 7adf9707c04d8ef6bcd8d8bda555687f705e6ee6)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Armin Kuster
9a6cfc0fee gcc: Security fix for CVE-2019-15847
Affects <= 9.2.0

Dropped Changelog changes.

(From OE-Core rev: 4d56cf8743270c1998e8cb1524881a36de982c39)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Ross Burton
e5829f3594 piglit: upgrade to latest revision
(From OE-Core rev: a77e6e53fea7fa11ba174c1b6f2bcbcac920e337)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Ross Burton
d8719f43cd gdk-pixbuf: upgrade 2.38.1 -> 2.38.2
(From OE-Core rev: d19bf3cc766c38da67dd9b7fbbf3df257c2902c9)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Ross Burton
a1e8f13768 acpica: upgrade 20190509 -> 20190816
(From OE-Core rev: 0fdc0ea0c10f9248d6503c91c864a4844d1d74bd)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Dmitry Eremin-Solenikov
4ad3130c20 live-vm-common.bbclass: provide efi population functions for live images
Define common functions for populating EFI directories in live image by
reusing common code from grub-efi and systemd-boot bbclasses.

(From OE-Core rev: 3728899a0cd543793db258da0976362b4bde7133)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Dmitry Eremin-Solenikov
94df595512 systemd-boot.bbclass: switch to image-uefi.conf
Use variables from image-uefi.conf instead of hardcoding them in the class.

(From OE-Core rev: 094c272a74b4963ea5c010b9701bb83fa799a558)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Dmitry Eremin-Solenikov
6501eacfa2 systemd-boot: switch to image-uefi.conf
Use variables from image-uefi.conf instead of hardcoding them in the recipe.

(From OE-Core rev: 4acac3560cb819e0cd992e02441621dab1beada7)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Dmitry Eremin-Solenikov
a1acf2c150 grub-efi.bbclass: switch to image-uefi.conf
Use variables from image-uefi.conf instead of hardcoding them in the
class.

(From OE-Core rev: 8d15c015d2498d541a6e52fc4e7553e692ff3ac5)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Dmitry Eremin-Solenikov
1762dacb9b grub-efi: switch to image-uefi.conf
Use variables from image-uefi.conf instead of hardcoding them in the
recipe.

(From OE-Core rev: e6bb6d31c4285a62b3e9e324c36b2baf439e7bae)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Dmitry Eremin-Solenikov
b59c427720 grub-bootconf: switch to image-uefi.conf
Use variables from image-uefi.conf instead of hardcoding them in the
recipe.

(From OE-Core rev: b5a97272ba201537a766598d9c9a97c8cbc9ea1d)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Dmitry Eremin-Solenikov
f6fa0f4384 image-uefi.conf: add config file holding configuration for UEFI images
Create new config file defining common variables for all UEFI-related
packages (bootloaders, test applications, etc).

(From OE-Core rev: 9c4945f1f0607c89e7cb10dda41ab742e169c075)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-19 10:54:32 +01:00
Mikko Rapeli
330bd591ec bitbake: svn fetcher: allow "svn propget svn:externals" to fail
Not all servers and repositories have this property set
which results in failures like this when actual svn checkout
command succeeded:

svn: warning: W200017: Property 'svn:externals' not found on ''
svn: E200000: A problem occurred; see other errors for details

(Bitbake rev: 238636f033cbf18e5741f0ea0e64db40e84f5838)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 17:52:01 +01:00
Joshua Watt
20f032338f bitbake: bitbake: Rework hash equivalence
Reworks the hash equivalence server to address performance issues that
were encountered with the REST mechanism used previously, particularly
during the heavy request load encountered during signature generation.
Notable changes are:

1) The server protocol is no longer HTTP based. Instead, it uses a
   simpler JSON over a streaming protocol link. This protocol has much
   lower overhead than HTTP since it eliminates the HTTP headers.
2) The hash equivalence server can either bind to a TCP port, or a Unix
   domain socket. Unix domain sockets are more efficient for local
   communication, and so are preferred if the user enables hash
   equivalence only for the local build. The arguments to the
   'bitbake-hashserve' command have been updated accordingly.
3) The value to which BB_HASHSERVE should be set to enable a local hash
   equivalence server is changed to "auto" instead of "localhost:0". The
   latter didn't make sense when the local server was using a Unix
   domain socket.
4) Clients are expected to keep a persistent connection to the server
   instead of creating a new connection each time a request is made for
   optimal performance.
5) Most of the client logic has been moved to the hashserve module in
   bitbake. This makes it easier to share the client code.
6) A new bitbake command has been added called 'bitbake-hashclient'.
   This command can be used to query a hash equivalence server, including
   fetching the statistics and running a performance stress test.
7) The table indexes in the SQLite database have been updated to
   optimize hash lookups. This change is backward compatible, as the
   database will delete the old indexes first if they exist.
8) The server has been reworked to use python async to maximize
   performance with persistently connected clients. This requires Python
   3.5 or later.

(Bitbake rev: 2124eec3a5830afe8e07ffb6f2a0df6a417ac973)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 17:52:01 +01:00
Joshua Watt
34923e4f77 Remove SSTATE_HASHEQUIV_SERVER
Removes all references to the SSTATE_HASHEQUIV_SERVER variable. This
variable is redundant now that BB_HASHSERVE is present.

(From OE-Core rev: 54b3adb6bc90a8e4b9e92952688772ee074d36e5)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 17:52:01 +01:00
Joshua Watt
f12e41c1bb sstatesig: Update server URI
The server no longer uses a "http://" URI, since it has been updated to
use a different protocol.

(From OE-Core rev: 519561172c48bc7f7a61a3d02edd418fc0895b7b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 17:52:01 +01:00
Alexander Kanavin
b009e68ede strace: add a timeout for running ptests
5.2 kernel has introduced a significant performance regression
where some of the tests take many minutes to complete (where
previously it was seconds). While we're getting to the bottom
of the issue and working with upstream to resove it, this
change allows tests to proceed instead of getting stuck and
eventually timing out.

https://bugzilla.yoctoproject.org/show_bug.cgi?id=13506

(From OE-Core rev: 36670f3989ef129d285b2a17c289f8fc7a44b320)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Khem Raj
53b5654d6e openssl: Enable os option for with-rand-seed as well
with openSSL 1.1.1d we start seeing errors like

Error Generating Key
139979727451584:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:../openssl-1.1.1d/crypto/rand/drbg_lib.c:342:

when using openssl from openssl-native on build hosts, this is due to
limiting the random seed to devrandom, to support older hosts, since the
option allows to have a comma separated list of methods to try, we can
try the default first and if that fails then fallback to devrandom, this
will ensure that it keeps working with build systems which dont support
getrandom()

(From OE-Core rev: 8b4edb8552b238680d8dcef565e830a8e28a223c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Adrian Bunk <bunk@stusta.de>
Cc: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andrew F. Davis
c627018fbe weston: Set depends to the virtual needed not explicitly on Mesa
The dependency is for EGL and GLES2 libraries. On some systems these
are not provided by Mesa, list what is actually needed so the system
can choose the correct provider.

(From OE-Core rev: 8c39aa80e3624a225abfa76d459b6ce4da259b64)

Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andrew F. Davis
cf96e062db gtk+3: Set depends to the virtual needed not explicitly on Mesa
The dependency is for EGL and GLES2 libraries. On some systems these
are not provided by Mesa, list what is actually needed so the system
can choose the correct provider.

(From OE-Core rev: 83877206bd0ddc453cf3646e998296278d4a62f0)

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andrew F. Davis
31697ebec7 cogl: Set depends to the virtual needed not explicitly on Mesa
The dependency is for EGL and GLES2 libraries. On some systems these
are not provided by Mesa, list what is actually needed so the system
can choose the correct provider.

(From OE-Core rev: 12f887e26c5959ce07af658d3cf8c62fe889744a)

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Ross Burton
b1cb787c74 libical: upgrade to 3.0.6
(From OE-Core rev: 358b5f94a3d3faf7713530d0159e6e999175b2e0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Richard Purdie
cf37ca58c2 runqemu: Mention snapshot in the help output
This is a useful option but not documented in the help text.

(From OE-Core rev: 95bad67a802f956082bd0af5615c1dbaae01be0f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Oleksandr Kravchuk
2625e2d914 python3-dbus: update to 1.2.12
(From OE-Core rev: f53dda53067ba7d17317e54cdec7b07f693158bd)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andrew F. Davis
0e599227ee libepoxy: Disable x11 when not building for x11
Although glx support is turned off, the build still tries to pull in some
x11 components, disable x11 explicitly.

(From OE-Core rev: a96272dc0b5b6b76a4858981461f3bd126dc99b3)

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andre McCurdy
6133a8ef25 libunwind: apply configure over-ride to both big and little endian ARM
(From OE-Core rev: d55fc868f3fef206628b7c353737aa666baf8c95)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andre McCurdy
3db7ba108e initscripts: enable alignment.sh init script for big endian ARM
(From OE-Core rev: 2e00755bf231f1de5ab96ee5de0859cb0930d544)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andre McCurdy
172557016f libwebp: apply ARM specific config options to big endian ARM
(From OE-Core rev: ec28979f473896a06620dc1a76898e52136c4b44)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andre McCurdy
06f3ae673b ffmpeg: add PACKAGECONFIG controls for alsa and zlib (enable by default)
Also move the libogg dependency to the theora PACKAGECONFIG, since
according to the configure script, theora is the specific component
which requires it.

(From OE-Core rev: 7ddfb9374f493bb1cc42a204c80e783baa288152)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andre McCurdy
8f38568a64 busybox: rcS and rcK should not be writeable by everyone
(From OE-Core rev: 917789ab3c61784ca7b3cdef6b76ff091abcf8c1)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Andre McCurdy
f2b682e001 base-files: drop legacy empty file /etc/default/usbd
Doesn't seem to be referenced by anything in oe-core any more.

(From OE-Core rev: 526188096bc37af3140c9210ece92ed94c3bdfe0)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-18 12:09:02 +01:00
Richard Purdie
f025010ee0 bitbake: runqueue/siggen: Optimise hash equiv queries
We only have hash equivalence for setscene tasks so only query the server
for those, reducing the number of connections needed.

(Bitbake rev: 22082c7b3ca0cffcedb7d1d8c6681d35286376db)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Martin Jansa
85f8e4c04a bitbake: Revert "bitbake: cooker: Ensure bbappends are found in stable order"
This reverts commit 94c0c7f15c7a6244a8576ed948ffc21afb96ba82.

This ignores the layer priority, making the issue much worse.
E.g. I'm seeing a lot of failures caused by missing users, because
base-passwd bbappends applied in unexpected order caused different
passwd.master to be found in re-ordered FILESPATH.

(Bitbake rev: 2dc862237dba82da37c8ac9289e0a21409b1305c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Yi Zhao
48c9259eae grub: remove diffutils and freetype runtime dependencies
The diffutils runtime dependency was introduced from legacy grub since
the script grub-install invokes cmp command which is from diffutils
package. But in Grub2 the grub-install has been rewritten with C
language. So this package isn't needed anymore.

The freetype runtime dependency is for grub-mkfont but we have
explicitly disabled grub-mkfont build. It is safe to remove it.

(From OE-Core rev: 56e4e05417f8ddba60a8b76fa4c8834aa8ea4692)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Mikko Rapeli
224355418b busybox.inc: handle empty DEBUG_PREFIX_MAP
DEBUG_PREFIX_MAP can be empty if e.g. old clang
toolchain doesn't support the default poky values for gcc.

Fixes build failure:

ERROR: Logfile of failure stored in: /home/builder/src/base/build/tmp/work/aarch64-poky-linux/busybox/1.31.0-r
0/temp/log.do_configure.14451
Log data follows:
| DEBUG: Executing shell function do_configure
| sed: -e expression #1, char 0: no previous regular expression
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of '/home/builder/src/base/build/tmp/work/aarch64-poky-linux/busybox/1.31.0-r0/temp/run.do_configure.14451' failed with exit code 1:
| sed: -e expression #1, char 0: no previous regular expression
| WARNING: exit code 1 from a shell command.
|

This log entry is really useless for debugging problems so
add "set -x" to the configure script so that details can be seen
if something isn't working.

(From OE-Core rev: 20f1a454317ddff8a2e321c1fe55d086ff6fa286)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Adrian Bunk
2c6b9b918c openssl: Upgrade 1.1.1c -> 1.1.1d
Backported patches removed.

(From OE-Core rev: 24174c6dafefec4ff3bd79b3c871b17cbfa3e840)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Changqing Li
da61ee5541 classextend.py: don't extend file for file dependency
Fix error like:
lib32-e2fsprogs-1.45.3-r0 do_package_qa: QA Issue: /usr/sbin/e2scrub_all
contained in package lib32-e2fsprogs-e2scrub requires /bin/bash,
but no providers found in RDEPENDS_lib32-e2fsprogs-e2scrub

For some lib32 packages(eg: lib32-bash, lib32-sed) which probvides files,
extend is not needed

Eg: RPROVIDES of lib32-bash expects to have /bin/bash, with original
extend, it will become lib32-/bin/bash, then will cause above error

Fix by don't extend file dependency, and skip multilib check for file dependency
in do_package_qa to avoid error like:
WARNING: lib32-bash-5.0-r0 do_package: QA Issue: lib32-bash package lib32-bash
 - suspicious values '/bin/bash /bin/sh' in RPROVIDES [multilib]

(From OE-Core rev: a9163120ed52534e7dbf4db50dc2b03bbf69f06b)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Oleksandr Kravchuk
0b7320b4d3 curl: update to 7.66.0
(From OE-Core rev: dec1616af9c2709c2ad78722cc4075b765de332d)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Scott Murray
2e79c06bea systemd: upgrade to 243
PATCH REBASED:
==============
0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
0001-do-not-disable-buffer-in-writing-files.patch
0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
0004-add-fallback-parse_printf_format-implementation.patch
0004-rules-whitelist-hd-devices.patch
0005-rules-watch-metadata-changes-in-ide-devices.patch
0005-src-basic-missing.h-check-for-missing-strndupa.patch
0006-Include-netinet-if_ether.h.patch
0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch

PATCH DROPPED:
==============
0001-Replace-the-legacy-ULONG_LONG_MAX-with-the-C99-ULLON.patch
0001-src-udev-udev-event.c-must-include-sys-wait.h.patch
0023-socket-util.h-include-string.h.patch
0025-fs-utilh-add-missing-sys-stat-include.patch

PATCH ADDED:
============
0002-src-login-brightness.c-include-sys-wait.h.patch
0003-src-basic-copy.c-include-signal.h.patch
0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch

Also applied libc-glibc over-ride to pkg_postinst and pkg_prerm function
definitions, as musl does not provide nsswitch.conf.

(From OE-Core rev: cd735ab1df78f7d21b6bb18bdf4707aec68a0295)

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Khem Raj
d84e9f446a nativesdk.bbclass: Clear out LIBCEXTENSION and ABIEXTENSION
These variables dont make sense for nativesdk targets which essentially
are target only properties, this helps in avoiding recompile of
nativesdk-libgcc-initial when switch libcs. nativesdk targets are glibc
only for OE

(From OE-Core rev: aff2d1264030a8061fc1b31dae0f369bfd76826b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Tim Blechmann
d9efbd2c3c icecc: blacklist pixman
pixman declares prng_state as `omp threadprivate`, causing linker errors:
prng_state: TLS reference mismatches non-TLS reference

(From OE-Core rev: a95953fccc7c05650710e45103c3e9fa06d1ff4d)

Signed-off-by: Tim Blechmann <tim@klingt.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Khem Raj
610056167b populate_sdk_base.bbclass: nativesdk-glibc-locale is required on musl too
musl based extensible sdk fails to install

ERROR:  OE-core's config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:

    Your system needs to support the en_US.UTF-8 locale.

The real reason is that its missing locale-archive in buildtools-tarball
hence python3 from buildtools-tarball fails to run bitbake when
installing esdk

(From OE-Core rev: c6e8e13f910544b2a4435d8b9e6dbc65847ef182)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Khem Raj
d2096315b6 glibc: Move DISTRO_FEATURE specific do_install code for target recipe only
nativesdk-glibc should be spared of recompile when the distro features
are changed e.g. ldconfig is not in
DISTRO_FEATURES, this happens when sdk with musl and another one with
glibc is built

Fixes
Variable do_install value changed:
...
-DISTRO_FEATURES{ldconfig} = Set
+DISTRO_FEATURES{ldconfig} = Unset

(From OE-Core rev: e7af0204e6051489ef5646fbca2509a42e04bb72)

Signed-off-by: Khem Raj <raj.khem@gmail.com>

s

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Oleksandr Kravchuk
ded579aeb6 expat: update to 2.2.8
(From OE-Core rev: a5cc0a051b5a7871ab646c055883167315a32417)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Ross Burton
1cab88782d oeqa/selftest/imagefeatures: dump the JSON if it can't be parsed
(From OE-Core rev: 4f7c840349f576f3edb68b16f9bcc9d88bc73b36)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Ross Burton
eed89d027d oeqa/selftest/wic: improve assert messages in test_fixed_size
(From OE-Core rev: ff4e6c71ac415de93b3abaa4e7f1727d72cd2971)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Khem Raj
d7d9dd56b4 musl: Update to latest master
* Added copy_file_range posix_spawn_file_actions_add[f]chdir API
* optreset is added to getopt
* pthread fixes
* Conditionally add legacy long definition of wchar_t

Details [1]

[1] https://git.musl-libc.org/cgit/musl/log/?qt=range&q=6ad514e4e278f0c3b18eb2db1d45638c9af1c07f..1f0e9f9cc2e3fa354f94e18b3b362de5f1ec7272

(From OE-Core rev: 030b44af19268ae4a72bb25aa77526f7e39bd4a3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Ross Burton
7981d54fe6 adwaita-icon-theme: fix rare install race
There have been rare errors during the build of adwaita-icon-theme, such as:

Exception: bb.process.ExecutionError: Execution of '.../temp/run.sysroot_stage_all.45186' failed with exit code 2:
cpio: ./icons/Adwaita/32x32/legacy/_inst.34160_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.33428_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35421_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.34533_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35366_: Cannot stat: No such file or directory

The problem was that a previous optimisation (oe-core cd9af17028) to massively
increase the install speed (by parallelling the hundreds of installs) was subtly
wrong.  It was essentially doing this:

  for i in list; do
    install i &
  done
  wait

In pure shell this does parallelise the install commands and then wait for them
all to finish before exiting, but in Makefiles *each line in a separate shell*.  The actual Makefile is closer to this:

  for i in list; do \
    install i & \
  done
  wait

The backslashes are required to write a multi-line for loop in a Makefile, but
note that when the loop ends the shell exits and all of the install processes
that are still running are disowned.  The wait command then executes in a new
shell, and there are no childen to wait for.

The fix is trivial: add more backslashes so that the wait is part of the same
shell.

(From OE-Core rev: f969a8ff160390726565421d4c9b367e49172487)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Martin Jansa
92469aad50 perf: fix build on kernels which don't have ${S}/tools/include/linux/bits.h
* tools/include/linux/bits.h was added in v4.20-rc1 with this commit:
  commit ba4aa02b417f08a0bee5e7b8ed70cac788a7c854
  Author: Arnaldo Carvalho de Melo <acme@redhat.com>
  Date:   Tue Sep 25 10:55:59 2018 -0300

    tools include: Adopt linux/bits.h

* also if you're building for such older kernel you will probably see
  do_compile failing with:
  | config/Makefile:448: Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev
  | config/Makefile:495: Python 3 is not yet supported; please set
  | config/Makefile:496: PYTHON and/or PYTHON_CONFIG appropriately.

  easiest work around is to disable scripting PACKAGECONFIG, because
  since oe-core commit:

  commit 584af667e0000129bcb5c9e8108485f2f6590eaf
  Author: Bruce Ashfield <bruce.ashfield@gmail.com>
  Date:   Wed Aug 28 22:14:41 2019 -0400

    perf: change dependencies on python to python3

    The upstream kernel can now handle python3 for the perf scripts, coupled
    with the impending EOL of python2, we switch the dependencies in perf
    (scripting) to python3.

  it now uses python3, but the support for that was added in kernel
  v4.17-rc1 with:

  commit 66dfdff03d196e51322c6a85c0d8db8bb2bdd655
  Author: Jaroslav Skarvada <jskarvad@redhat.com>
  Date:   Fri Jan 19 21:56:41 2018 +0100

    perf tools: Add Python 3 support

    Added Python 3 support while keeping Python 2.7 compatibility.

  if you really need scripting support than either backport the kernel
  patch to your kernel or undo the perf recipe changes.

(From OE-Core rev: d6ee3d3bdf183a9060b5b0c25b97688a4b9d40dc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Maxime Roussin-Bélanger
680af4cb94 meta: add missing descriptions and homepage in bsp
(From OE-Core rev: ec4fdfcc7bcbc9bb92e2f33b37cc8c99bf1b6822)

Signed-off-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Andre McCurdy
8202a9ac6a busybox-inittab: minor formatting tweaks
Add an empty line to inittab before the line(s) which start getty.

Also cleanup indent in recipe do_install().

(From OE-Core rev: d1955596080f8261efe3b21c5df005648ce207c9)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Andre McCurdy
24264cefad busybox: drop inittab from SRC_URI ( now moved to busybox-inittab )
The reference to inittab should have been removed from busybox
SRC_URI when the file was moved into the busybox-inittab recipe:

  http://git.openembedded.org/openembedded-core/commit/?id=afb09abd2f0f7555ba156260a87fd3867f591310

(From OE-Core rev: 1840523749ae7cbc39d89363662641fdda15d7d4)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:45 +01:00
Andre McCurdy
f6158dcd88 busybox: drop unused mount.busybox and umount.busybox wrappers
(From OE-Core rev: 7e999dce323a97a3924cb10158d5151ea43e777a)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Oleksandr Kravchuk
c19ba131cf font-util: update to 1.3.2
(From OE-Core rev: 04e2b1cc2ae66402a8fca723cec57220cddd07e6)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Daniel Gomez
f81cdf4588 lttng-modules: Add missing SRCREV_FORMAT
When using devupstream class the SRCREV_FORMAT variable must be set.

(From OE-Core rev: 5d27db85d269f576929fd3c81f94e54d894cdf69)

Signed-off-by: Daniel Gomez <daniel@qtec.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Nathan Rossi
9654327307 glibc-testsuite: SkipRecipe if libc is not glibc
To prevent issues with parsing or dependencies, limit this recipe to use
only when the libc is glibc (and libc-locale is glibc-locale).

(From OE-Core rev: 88849a0652f1a9cffd5c1b5caae2878b3a438273)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Jack Mitchell
bc66b2f45a iptables: add systemd helper unit to load/restore rules
There is currently no way to automatically load iptables rules in OE.
Add a systemd unit file to automatically load rules on network
connection. This is cribbed from the way ArchLinux handles iptables with
some minor modifications for OE.
New rules can be generated directly on the target using:
# iptables-save -f /etc/iptables/iptables.rules
Good documentation for writing rules offline is lacking, but the basics
are explained here:
https://unix.stackexchange.com/q/400163/49405

(From OE-Core rev: 76d3574d17c38d93ba4660bdae5730ac222994d4)

Signed-off-by: Jack Mitchell <jack@embed.me.uk>
Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Limeng
1edc497a80 tune-cortexa57-cortexa53: add tunes for ARM Cortex-A53-Cortex-A57
commit 3613b2780a6b5d5d70ea6802be5060a8214cbdb5 from
git://github.com/renesas-rcar/meta-renesas

The renesas rcar SoC H3/M3 is big.LITTLE architecture(cortex-a57.cortex-a53).
In order to optimize the performance of the code running on SoC H3/M3,
add a tune file for ARM Cortex-A53-Cortex-A57.
Create this tune file by refering GCC doc, 3.18.5 ARM Options.

(From OE-Core rev: 7e0c9290a9971b92bcb313742f126ca7488d91c3)

Signed-off-by: Meng Li <Meng.Li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Robert Yang
6606a86979 conf/multilib.conf: Add ovmf to NON_MULTILIB_RECIPES
Fixed:
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

$ bitbake ovmf lib32-ovmf
[snip]
ERROR: ovmf-edk2-stable201905-r0 do_deploy_setscene: The recipe ovmf is trying to install files into a shared area when those files already exist.
 Those files and their manifest location are:
  /buildarea1/lyang1/rebase-work/test_cc/tmp-glibc/deploy/images/qemux86-64/OvmfPkKek1.key
    (matched in manifest-qemux86_64-lib32-ovmf.deploy)
[snip]

Add it NON_MULTILIB_RECIPES to fix the problem since it is a firmware, build
multilib for it doens't make much sense.

(From OE-Core rev: 5c685f55ccba9d47a79e8798903b30b90bdf03c6)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Alexander Kanavin
63f08ef496 runqemu: decouple gtk and gl options
This will allow not having to multiply these options for the sdl
frontend, instead combining them as needed.

(From OE-Core rev: 922eb5012364b1603338cfa617712b941e892bbf)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Khem Raj
f461ae8b4d cogl: Do not depend PN-dev on empty PN
Fixes image build error e.g.

 - nothing provides cogl-1.0 = 1.22.4-r0.2 needed by cogl-1.0-dev-1.22.4-r0.2.core2-64

(From OE-Core rev: 70cb0c87a9e1d1001320d771fb84b5d8541591a3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Oleksandr Kravchuk
4c1946e3cf python3-pygobject: update to 3.34.0
(From OE-Core rev: b9280a3055fba5567f670e6c3190771bd4c5fe64)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Randy MacLeod
09cfb218cb valgrind: disable 256 ptests for aarch64
On qemuarm64 systems, about half of the valgrind tests fail and
often result in defunct processes, eg:
   root       819   818 25 00:12 pts/0    00:01:52 /usr/bin/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --track-origins=
   root       861   420  0 00:13 pts/0    00:00:00 [sh] <defunct>
Eventually these processes use so much memory that the
out of memory killer runs.

Hide the tests that fail as a horrid work-around until the
root cause has been resolved since this at least allows the
ptest run to complete. This work-around is done in the run-ptest
script using a sorted list of tests so that they can be easily
restored one by one without a rebuild during testing.

With core-image-minimal on qemuarm64:
Recipe         | Passed      | Failed   | Skipped   | Time(s)
valgrind       | 333         | 49       | 17        | 7637

(From OE-Core rev: 208023f8fcbf4aee34544a80f962ae25f25ffb8d)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Randy MacLeod
997d91f608 valgrind: ptest improvements to run-ptest and more
Make some changes to the run-ptest script:
  - after main tests run integrity check like the pkg Makefile.
  - aesthetic and ordering changes

Add the .in_place directory and its contents which allows valgrind
to be run in-place thereby enabling the gdbserver_tests to
complete rather than hang. Unfortunately directory paths embedded
in binaries still cause many of these test to fail.

Add the exp-sgcheck tests.

With core-image-minimal on qemux86-64/kvm:
Recipe         | Passed      | Failed   | Skipped   | Time(s)
before         | 648         | 12       | 60        | 1541
after          | 662         | 20       | 38        | 1429
ppc-no-gdbserv | 415         | 196      | 34        | 10689

Since fewer tests timeout, the overall time has decreased.
With core-image-sato on qemux86-64/kvm the results are now
the same as core-image-minimal.

qemuppc/arm64 runs result in the oom-killer eventually running since
some processes do not terminate properly and accumulate as defunct
processes in memory. Without the gdbserver_tests, the tests
complete without defunct process or the oom-killer running for
ppc but not for arm64.

(From OE-Core rev: 6dbaaeec17eae8329031188b688b33306a871870)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Randy MacLeod
3b83ad5830 valgrind: make a few more ptests pass
Adjust two memcheck vgtest files to deal with relative paths
that are in test executables when cross-compiling.
Add libgomp to enable OpenMP tests.
Add the bz2 executable for memcheck/tests/vcpu_bz2.

(From OE-Core rev: f75792b28e39e4c393c0a00369d5417e3af75b36)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Randy MacLeod
ecb8b17efc valgrind: enable ~500 more ptests
Add valgrind's top level config.h to the ptest package since
it is used by several scripts to determine which tests to run.

Drop the removal of:
   none/tests/shell,
the content was already moved to:
   none/tests/scripts/shell
so the filter useless and the files no longer cause a problem.

Add a few more test directories that had been omitted.
Add perf/bigcode for test: none/tests/bigcode

Leave .c, .h, .S files in the ptest image since several of them are
needed to run the tests. The overhead is ~13 MB which is high but
keeping all test code is easier than figuring out which source files
are needed and the entire valgrind-ptest package is ~115 MB so in
this context it's an acceptable trade-off.

Add bash dependency for ptest for none/tests/scripts/shell

With core-image-minimal on qemux86-64/kvm:
Recipe         | Passed      | Failed   | Skipped   | Time(s)
before         | 149         | 1        | 9         | 663
after          | 648         | 12       | 60        | 1541

(From OE-Core rev: 083a5dd27d305ecd12214f2665460dbe06b96c2a)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Li Zhou
fb5556a4b6 qemu: Security Advisory - qemu - CVE-2019-15890
Backporting patch from
https://gitlab.freedesktop.org/slirp/libslirp/commit/c5927943
to solve CVE-2019-15890.

(From OE-Core rev: 2cccc685cc6359595ef3e943cd03290d8c8866f0)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Alistair Francis
1e1ad26a55 gdb: Mark gdbserver as ALLOW_EMPTY for riscv32
riscv64 already has gdbserver set as ALLOW_EMPTY, so let's set it for
riscv32 as well.

(From OE-Core rev: 21e748d620022a75c0c2d0ab4a763a5992e8f154)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Jiang Lu
64afc8935f libsoup:enable libsoup build as native package
Enable libsoup build as a native package, for it may invoked by
other native package, such as ostree.

(From OE-Core rev: 86e654ce051d4067d1601d68ad5f4729ab3d462f)

Signed-off-by: Jiang Lu <lu.jiang@windriver.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Jiang Lu
b161ac6c6c glib-networking:enable glib-networking build as native package
Enable glib-networking build as a native package, for it is depended
by libsoup.

(From OE-Core rev: bfcc9680fbc8a79f114fd66b8a6f9befb4676817)

Signed-off-by: Jiang Lu <lu.jiang@windriver.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Jason Wessel
7ae68c580c gnupg: Extend -native wrapper to fix gpgme-native's gpgconf problems
The gpg commit signing in ostree-native doesn't work properly when
running from sstate.  The ostree-native is linked with gpgme-native's
libraries, which have calls into gpg.

Ultimately it turned out the problem was that gpgme calls gpgconf and
some of the other gnupg-native binaries directly.  Not all the
binaries have a wrapper which sets the environment variable GNUPG_BIN.
Without this wrapper these binaries it gets the path assignment from
the original compilation which causes a fault when running from sstate
in a new tmp directory because these paths will not exist.

(From OE-Core rev: f93bf3bd051923618ce3949d5686fdb8cf998645)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Yi Zhao
100bf17470 nfs-utils: fix nfs mount error on 32bit nfs server
There is a client side error "Stale file handle" when mounting from a
nfs server running on 32bit arch.

Steps to reproduce:
1. $ MACHINE=qemux86 bitbake core-image-sato
2. $ runqemu qemux86 kvm nographic qemuparams="-m 1024"
3. $ echo "/nfs_root *(insecure,rw,async,no_root_squash,no_subtree_check)" \
     >> /etc/exports
   $ /etc/init.d/nfsserver restart

  root@qemux86:~# mount -t nfs 127.0.0.1:/nfs_root /mnt
  mount: mounting 127.0.0.1:/nfs_root on /mnt failed: Stale file handle

Backport a patch to fix this issue.

(From OE-Core rev: 727e6ce1f904abf1a1059fde759c3aaea37de199)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Zang Ruochen
631f3dc9be timezone:upgrade 2019b -> 2019c
-tzdata : upgrade from 2019b to 2019c.

-tzcode-native : upgrade from 2019b to 2019c.

-tzdata.bb and tzcode-native.bb require timezone.inc.

(From OE-Core rev: c5a382429d18642d35d40a4df6a58b971c724603)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Ross Burton
2a9a95fd7b mesa: no need to depend on target python3
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Ross Burton
d5a00f509a python3: handle STAGING_LIBDIR/INCDIR being unset
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Kai Kang
f58498f668 systemd: provides ${base_sbindir}/udevadm
In some udev rules files such as 97-hid2hci.rules from bluez5, it calls
/sbin/udevadm in a rule. eudev provides /usr/bin/udevadm and
/sbin/udevadm which is a link to /usr/bin/udevadm. But systemd only
provides /bin/udevadm. It is not convenient to update the rule file that
udevadm reside in different directories for eudev and system.

So create link file ${base_sbindir}/udevadm in systemd just the same as
eudev to fix such kind of issues.

(From OE-Core rev: c8bf23349af4972a76cb4b13179dac844812d75f)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Chen Qi
1dc518776a python-numpy: fix build for libn32
Fix do_compile failure for libn32. To reproduce, use the following config.

  MACHINE = "qemumips64"
  require conf/multilib.conf
  MULTILIB_GLOBAL_VARIANTS_append = " libn32"
  MULTILIBS ?= "multilib:lib32 multilib:libn32"
  DEFAULTTUNE_virtclass-multilib-lib32 ?= "mips"
  DEFAULTTUNE_virtclass-multilib-libn32 ?= "mips64-n32"

The error message is as following.

  numpy/core/include/numpy/npy_common.h:206:10: error: #error Unsupported size for type off_t

(From OE-Core rev: b659b6dcb6be203e8c7bc678c902d4a31ce9fe70)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Stefan Ghinea
7f87451e6e ghostscript: CVE-2019-14811, CVE-2019-14817
A flaw was found in, ghostscript versions prior to 9.28,
in the .pdf_hook_DSC_Creator procedure where it did not
properly secure its privileged calls, enabling scripts to
bypass `-dSAFER` restrictions. A specially crafted PostScript
file could disable security protection and then have access
to the file system, or execute arbitrary commands.

A flaw was found in, ghostscript versions prior to 9.28,
in the .pdfexectoken and other procedures where it did not
properly secure its privileged calls, enabling scripts to
bypass `-dSAFER` restrictions. A specially crafted PostScript
file could disable security protection and then have access
to the file system, or execute arbitrary commands.

References:
https://nvd.nist.gov/vuln/detail/CVE-2019-14811
https://nvd.nist.gov/vuln/detail/CVE-2019-14817

Upstream patches:
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=885444fcbe10dc42787ecb76686c8ee4dd33bf33
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd1b1cacadac2479e291efe611979bdc1b3bdb19

(From OE-Core rev: 1533b92848ea73d6fe6ba22d87d7b6749b47842c)

Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Otavio Salvador
7920994ba8 mesa: Upgrade 19.1.1 -> 19.1.6
- Add python3 to DEPENDS: mesa commit cb3072488c changed function
    that verifies python installation and to this new function works
    we need to have Python3 in DEPENDS.

This is a bugfix only set of releases. Check following links for the
relevant release notes:

  - https://www.mesa3d.org/relnotes/19.1.2.html
  - https://www.mesa3d.org/relnotes/19.1.3.html
  - https://www.mesa3d.org/relnotes/19.1.4.html
  - https://www.mesa3d.org/relnotes/19.1.5.html
  - https://www.mesa3d.org/relnotes/19.1.6.html

(From OE-Core rev: a870ce9261fffc2e4772e55bd2e727aa27172846)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Ross Burton
955381c286 gstreamer1.0-libav: enable gtk-doc again
Remove the broken piece of the API documentation template so the documentation
can be generated again.

(From OE-Core rev: 25a0d1b0b14a4fcd41ca08084a2f22db54dec58e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Henning Schild
4b0bf01c14 oe-git-proxy: fix dash "Bad substitution"
The script claims it works with dash, make sure that is actually the
case.

(From OE-Core rev: cb373201464f4a0a90482f62a24a4043abe73fd6)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Henning Schild
7ffd9ee9c3 oe-git-proxy: NO_PROXY suffix matching without wildcard for match_host
NO_PROXY can also contain just suffixes that do not start with a "*". We
failed to match those so far. Just add an extra "*" to also match those
suffixes. If one was there we get "**" which does not hurt.

(From OE-Core rev: 12f0cc209aaba48f846c62663e0b9e5efd253d71)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Henning Schild
1b970e222e oe-git-proxy: disable shell pathname expansion for the whole script
This truly fixes the issue that cbc148d5d9
wanted to solve, without breaking the iteration over multiple entries.

(From OE-Core rev: 477ee7e673684db988c66a75b6400e33509730b4)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Henning Schild
f107c9f815 Revert "oe-git-proxy: Avoid resolving NO_PROXY against local files"
This reverts commit cbc148d5d9.

The quoting causes H to be one string with spaces, so looping over
multiple entries does not work anymore.

(From OE-Core rev: 0fdc12dac6244be135ea519fe9c39109e7cfc6d6)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:44 +01:00
Henning Schild
7efdf528ac oeqa: add case for oe-git-proxy
The escaping, splitting and matching of NO_PROXY in oe-git-proxy
deserves its own testcase, add it.

(From OE-Core rev: c07134711f97c966d70aaf2798800214d5426005)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Henning Schild
49bb6cefb5 oe-git-proxy: allow setting SOCAT from outside
This allows to write selftests where we can mock the real socat.

(From OE-Core rev: ea2690e867ff11250d3dd143184432dd03909910)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Ross Burton
b598c08489 libtasn1: fix build with api-documentation enabled
(From OE-Core rev: 698efe108de724d9129ca938151ab7c7d3cb34cc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Khem Raj
a1a46e85a8 elfutils: Fix build on ppc/musl
musl relies on the pt_regs definitions from kernel ptrace headers

(From OE-Core rev: 7df9aa52446a031c10e84f321733a0e56f563e85)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Zang Ruochen
c4baf59897 btrfs-tools:upgrade 5.2.1 -> 5.2.2
(From OE-Core rev: 53a7c9c6da894848cba0c3bf2ed93b7b268497ac)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Khem Raj
114f2cb80d ptrace: Drop ptrace aid for musl/ppc
This has been fixed and is no longer needed

(From OE-Core rev: 74ea0264cc5ba27dd37053f79301d18c8f1b6e7d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Hongxu Jia
cc5d6ca85a elfutils: 0.176 -> 0.177
- Update Debian patches
  http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz

- Rebase Debian patches to 0.177
  debian/hppa_backend.diff
  debian/mips_backend.diff
  debian/arm_backend.diff
  debian/mips_readelf_w.patch
  debian/testsuite-ignore-elflint.diff
  debian/mips_cfi.patch

- Fix build failure while applying debian patches
  0001-fix-compile-failure-with-debian-patches.patch

- Rebase musl patches

(From OE-Core rev: 35143611034758cc670e9d88bc93f97fe33c52fc)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Yi Zhao
5b1e999c41 screen: add /etc/screenrc as global config file
(From OE-Core rev: 15fdf699179038f4b636b9310bb31583a76c8a29)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Changhyeok Bae
e5bf273190 iw: upgrade to 5.3
Separated build dir doesn't work because Makefile points out source dir.

(From OE-Core rev: fef943ab63d30bd1d6f9be00b0976000a55cca0e)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Nathan Rossi
6c7d657aae oeqa/selftest: Rework toolchain tests to use OEPTestResultTestCase
Use OEPTestResultTestCase to collect results and add logfile collection
and compression.

(From OE-Core rev: b75aced558013a459f29617b53cf477cb9b387ac)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Nathan Rossi
e08f657220 oeqa/core/case.py: Add OEPTestResultTestCase for ptestresult helpers
Add the OEPTestResultTestCase class as a mix-in class to provide helper
functions for interacting with ptestresults within the extraresults
object generated by the test case.

This class also provides default compression of log text and log files.

Also add support to resulttool for decoding/decompressing log files
embedded in the test results.

(From OE-Core rev: 06cba9883a5964320969301fd05eeb6bec3e786d)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Nathan Rossi
0c19c09335 gcc-cross.inc: Process binaries in build dir to be relocatable
Process binaries within the build directory before stashing to be
relocatable with ORIGIN relative rpaths. This corrects issues with
rpaths being invalid when trying to use the binaries from an unstashed
build directory (e.g. gcc-runtime).

(From OE-Core rev: 34d9f60a8c2e98fdacbb799af11ec015bc5700f4)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Nathan Rossi
05e583ae84 resulttool: Handle multiple series containing ptestresults
Handle multiple results series having ptestresults content. The contents
are merged on a per-result basis where duplicates are ignored (with a
warning message printed). The 'ptestresults.sections' collection is also
merged on a per-suite basis.

(From OE-Core rev: 47edd51970ed0c33edbe04fd72abd1cfc6ecd3d1)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-16 23:02:43 +01:00
Trevor Gamblin
745e38ff0f libevent: don't treat test stats line as pass/fail in ptest
Supplemental to commit fb17b46e2. The libevent "regress" test
outputs its own pass/fail results, e.g.
"2/300 TESTS FAILED. (31 skipped)", which will be miscounted
as an extra test fail in the ptest log. Fixed this to ignore
the libevent results line when counting actual pass/fail
results.

Also removed the for loop in run-ptest and targeted only the
libevent "regress" test, as the other tests being run were
related to performance and did not provide a relevant pass/fail
output.

(From OE-Core rev: 86b8a1d534bfcd70775c6e2b59eabe10de29f526)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-11 07:30:13 +01:00
Nathan Rossi
5f79ad273e chrpath.bbclass: Add break_hardlinks kwarg to allow breaking hardlinks
Add the break_hardlinks kwarg to break hardlinks when modifying files.
This uses the bb.utils.break_hardlinks function to break hardlinks. The
default is to maintain existing behaviour and leave hardlinks in place.

(From OE-Core rev: 7628f6bdb5704c018d83e284364994b72557eaa5)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-11 07:30:13 +01:00
Nathan Rossi
4a10fa34ca oeqa/selftest/context.py: For -t/-T use append argparse action
Use the 'append' action of argparse instead of nargs. This changes the
behaviour of the option from "-t foo bar -r" to "-t foo -t bar -r".

Additionally rename the long form options to be consistent with
behaviour, such that they specifying a single tag at a time.

(From OE-Core rev: ffe9e4303fa9799d2e8af9188853a262e15af226)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-11 07:30:13 +01:00
Jacob Kroon
4abf4125f0 bitbake: bitbake-user-manual: key-expansion: Don't refer to overrides
Nowadays bitbake applies overrides dynamically, not at a single
specific point in time during parsing.

(Bitbake rev: 218431b0f7c97764cb2c0b79a3aadfe2007f490b)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-10 15:18:06 +01:00
Jacob Kroon
504fa7ee15 bitbake: bitbake-user-manual: Correct description for _append/_prepend/_remove
The effects of _append/_prepend/_remove are applied when a variable
is expanded, not after parsing has completed.

(Bitbake rev: f9b67433cb4fe5132ab2cf4a9c6bc078b42e1960)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-10 15:18:06 +01:00
Adrian Bunk
3b87508a9a ref-manual: Remove documentation for the removed gnome class
When removed all it did was
  inherit gnomebase gtk-icon-cache gconf mime
which would also be the most trivial replacement.

Most of the time not all of these classes were needed,
and it is recommended to use only the ones actually required.

(From yocto-docs rev: a0a3a8318a1488ad2fb00b29f1cf26a9d6701be2)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-10 11:21:55 +01:00
Ross Burton
320fd9e28f ref-system-requirements: add Debian 10 to supported distribution list
Debian 10 is a supported distribution now, so add it to the documentation.

(From yocto-docs rev: 77ff109cf7dbe1858e9959c4b9f1225d0a1c5e32)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-10 11:21:55 +01:00
Adrian Bunk
b5b5f90a79 ref-manual: Remove documentation for the removed bluez5 distro feature
bluez4 was removed even from meta-oe 2 years ago,
which made made the bluez5 feature for selecting between
bluez4 and bluez5 mandatory for using the bluetooth feature.

The backfilled bluez5 feature has been removed,
including the bluetooth class that helped recipes
for selecting between bluez4/bluez5.
Recipes can replace ${BLUEZ} with bluez5.

(From yocto-docs rev: 025e2b5797b987b0260d7410e2e6d7283f5a7e91)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-10 11:21:55 +01:00
Richard Purdie
d7441ddb0c oeqa/selftest: Tweak binutils tests tags as toolchain/user and system
This matches the other toolchain tests.

(From OE-Core rev: d41606244c170fd547496e5df9e3d28ce2d2af68)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
2ae6a072ca oeqa/selftest/cases/glibc.py: Rework and tag with toolchain-user/system
Rework the glibc execution into a common base class. Additionally tag
the tests with "toolchain-user" and "toolchain-system".

(From OE-Core rev: 94bf24268108774e022ad247c647e48a781debbb)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
fdb2bfa0b7 oeqa/selftest/cases/gcc.py: Split into classes for parallelism
Split the gcc selftest cases into multiple classes one for each test.
This is done in order to make it easy to execute multiple gcc tests in
parallel when using oe-selftest with the '-j' arg.

Additionally tag the user tests with "toolchain-user" and the system
emulation (qemu system) tests with "toolchain-system".

(From OE-Core rev: 7b2f03eff9fc9b4ce48d5ea7e54faa114a6cdcae)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
dcb84e42e5 oeqa/core/decorator: Fix super class modifying subclass tags
(From OE-Core rev: ba35bead1108c7d8480b785b2e59f40ea77b5549)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
405d98e2bd oeqa/selftest/context.py: Change -t/-T args to be optional
Change the -t/-T args to be optional so that they can be used together
with the existing -r/-a/... args to run a more flexible filtering of
test tags.

(From OE-Core rev: 55ee27bb07113a45da18711b5509764f62be4d75)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
db1cc0b533 oeqa/selftest: Use extraresults on self instead of self.tc
In order to take advantage of multiprocess execution of tests the
extraresults must be passed through the TestResult. With changes to how
oeqa/core handles test cases the extraresults attribute of the testcase
is passed to the TestResult, with passing across process boundaries
handled automatically.

(From OE-Core rev: 6a1b0c2003a0b4a1983f9494440e6ea02dc25585)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
074388daf5 oeqa/selftest: Toolchain tests suffix "-user" for qemu usermode results
Suffix the ptestresults suite with "-user" for tests that are executing
against usermode qemu.

(From OE-Core rev: 0becf9c1fabb080a2481ebdacef6221f52301621)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
219c199d34 oeqa/selftest: For toolchain tests do not fail if a test failed
Do not fail the running selftest test case if the test suite has a
failed test case. Currently toolchain tests suites (binutils, gcc,
glibc) fail but this does not indicate failure to execute the tests.

Also remove the logging of each test that failed.

(From OE-Core rev: 073575ff9c06b2791cc2bd88063d815d2220f038)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
2b67b9dfad oeqa/selftest/cases/glibc.py: Don't install python3 and pexpect
When running the system emulation test case, do not include python3 or
pexpect in the image. The test cases that use these also need gdb (with
python configured).

(From OE-Core rev: 7e5be0803ea0cbfd8e5b052e43b54e16ab3230ed)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
9b1fc81947 oeqa/selftest/glibc: Create selftest case for glibc test suite
Create a oeqa selftest test case to execute the glibc test suite and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.

An additional subclass is created to separate the execution with qemu
linux-user and qemu system. The GlibcSelfTestSystemEmulated test case
handles setup of the target image, setup of and NFS server as well as
execution with runqemu.

(From OE-Core rev: 730832ebcca305477e1c13248cd35eea095b35c6)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
60b2e6acad oeqa/selftest/gcc: Create selftest case for gcc test suite
Create a oeqa selftest test case to execute the gcc test suites and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.

An additional subclass is created to separate the execution with qemu
linux-user and qemu system. The GccSelfTestSystemEmulated test case
handles setup of the target image as well as execution with runqemu.

(From OE-Core rev: 2c86a25f8992243311e7fa1a8654b41f12b749de)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
d8f39cc971 oeqa/selftest/binutils: Create selftest case for binutils test suite
Create a oeqa selftest test case to execute the binutils test suites and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.

(From OE-Core rev: e5629aa4bd939072208f6eb5b30a98e17eb6a8ae)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Richard Purdie
db62562db5 oeqa/selftest: Markup 'machine' specific test cases
These test cases are run by the autobuilder on a machine specific basis.
Add tags to these classes so they can be controlled by the metadata rather
than hardcoded in the autobuilder config.

(From OE-Core rev: de0b761b550d591f301ee5e9c232e0d5bd1342f2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
13f1a9231d oeqa/core/runner.py: Fix OETestTag listing
Use the __oeqa_testtags attribute added by OETestTag and display no, one
or more tags separated by a comma. Also change the formatting of the
output so that the list of tests is formatted as "<test> (<tags>)" and
remove the table header for "id" (it is no longer available).

(From OE-Core rev: d62e577a4e1a5f6accbce9f7bff7317a1162d72d)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
d4dd54fa50 oeqa/selftest: Add test run filtering based on test tags
Add '--run-only-tags' for running tests which match any of the provided
tags, and '--run-exclude-tags' for running all tests except those that
have any of the provided tags.

(From OE-Core rev: 0dc3caf21c4519ef16c2ac99b93c03e23aab61d9)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
c3625e141d oeqa/core: Rework OETestTag and remove unused OETestFilter
Rework OETestTag so that it does not rely on the existing decorator code
base and instead inserts the tags into an attribute on the decorated
target (e.g. class/type or method). This allows the use of OETestTag on
classes and method.

In order to filter tagged tests rework the loaders filtering code,
removing the generic-ness (with validation and attributes/etc.) and
replace it with a "tags_filter" parameter which is a function that
filters a test based on the tags it has. This allows the loader user to
filter on tags in more specific ways (e.g. include all untagged tests
and any tests tagged with foo). Plumb all this through the context code
and testing code.

Update the associated tests to pass correctly with the changes.

(From OE-Core rev: b8a4a4c2de68110d74607cb9807c9e741ca9441c)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Nathan Rossi
1220faf665 oeqa/core: Implement proper extra result collection and serialization
Implement handling of extra result (e.g. ptestresult) collection with
the addition of a "extraresults" extraction function in OETestResult. In
order to be able to serialize and deserialize the extraresults data,
allow OETestResult add* calls to take a details kwarg. The subunit
module can handle cross-process transfer of binary data for the details
kwarg. With a TestResult proxy class to sit inbetween to encode and
decode to and from json.

(From OE-Core rev: b0831d43606415807af80e2aa1d0566d0b8c209c)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:56:43 +01:00
Khem Raj
52ba1a3d44 python3-manifest.json: Fix typo in summary
(From OE-Core rev: 15c279da465323cab86635e5b5cdb46bf254fa66)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 21:44:32 +01:00
Martin Jansa
f388dd4828 bitbake: bitbake-user-manual: Improve the example for Removal (Override Style Syntax)
* to better show how it works with spaces and multiple values

(Bitbake rev: 89dd570ebd7046f5bce4a8b7f3b2b50b1cf65589)

Signed-off-by: Herb Kuta <herb.kuta@lge.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 13:08:54 +01:00
Wes Lindauer
f73db27088 bitbake: bitbake: cooker: Ensure bbappends are found in stable order
Thanks to wildcards in bbappend filenames, it's possible to have
multiple bbappends that apply to the same recipe in the same directory.
In order to get sstate hits between different workspaces, we want to
apply those bbappend files in a consistent order.  Since readdir()
returns files in a non-deterministic order between workspaces (based on
inode number and/or time of creation), we'll need to sort its result in
order to have any consistency.

(Bitbake rev: 94c0c7f15c7a6244a8576ed948ffc21afb96ba82)

Signed-off-by: Wes Lindauer <wesley.lindauer@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 13:08:54 +01:00
Bruce Ashfield
01bf7f5279 linux-yocto: drop 5.0 recipes
The 5.2 reference kernels replace the EOL 5.0 series. So we drop
the named recipes.

(From OE-Core rev: 868e84c57e6725591fa1e93f5ea0a308d49e13f1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 13:08:34 +01:00
Trevor Gamblin
473f170eff libevent: add granularity to ptest log
The libevent ptest used to report only a global pass or a fail result.
Count individual PASS, FAIL, SKIP results. The SKIP results now
include tests that are disabled in the libevent code.

libevent's ptest output did not comply with the automake-style output
"result: testname", and reported a FAIL status at the end of the test
run if any of the libevent tests failed. This patch makes the log
consistent with the automake style:

    PASS: http/cancel_by_host_no_ns
    PASS: http/cancel_inactive_server
    PASS: http/cancel_by_host_no_ns_inactive_server
    SKIPPED: http/cancel_by_host_server_timeout
    SKIPPED: http/cancel_server_timeout

and provides a summary as follows:

    === Test Summary ===
    TOTAL: 316
    PASSED: 300
    FAILED: 0
    SKIPPED: 16
    DURATION: 87
    END: /usr/lib/libevent/ptest

(From OE-Core rev: fb17b46e202cc08277d3eeb34872067c73a6bfbc)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 13:08:34 +01:00
Peiran Hong
0eb98c9d53 diffutils: Added perl to support ptest & Skipped one test case
Added perl to the run-time dependency of the recipe for diffutils since
it is required by the test "large-subpot".
The test "strip-trailing-cr" is skipped since it requires valgrind to
work, but valgrind is considered too heavy-weight for diffutils package.

(From OE-Core rev: 802c67c7c27011812d690c41347b38481cdab2e9)

Signed-off-by: Peiran Hong <peiran.hong@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 13:08:34 +01:00
Khem Raj
8753c00f7a oeqa: Recognise svlogd as another logger
This is provided by runit which another init system like systemd,
sysvinit, this lets oeqa run on systems which are using runit

(From OE-Core rev: e4eb3ca113985ab2be123eb5b5ea76764761df88)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 13:08:34 +01:00
Oleksandr Kravchuk
0a16f83d93 libxcrypt: update to 4.4.8
LICENSE file checksum changed because few contributors were mentioned
(see @edbdbbc50beced9c723e7405334583c60a702796).

(From OE-Core rev: 06eb03ad1c0357731496531b290a0a2fdfd10f48)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Andre McCurdy
a18b799d67 dropbear: don't create invalid symlinks if ssh, scp, etc are disabled
(From OE-Core rev: 703e3faaec8c5a22fe3bc9a2a040c960862136c7)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Andre McCurdy
71fbb20771 feature-arm-thumb.inc: fix ARM_THUMB_SUFFIX
Since TUNE_FEATURES now either contains a CPU or an architecture (but
not both) we can't rely on finding the architecture in TUNE_FEATURES.
Use architecture specific over-rides instead.

(From OE-Core rev: 805dd4807d322dc70cef97edd68fdb3142b60fb1)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Alex Kiernan
fa3d3c4a17 iputils: Set prefix correctly for usrmerge
Fix build with usrmerge enabled:

  WARNING: iputils-s20190709-r0 do_package: iputils: alternative target (/usr/bin/ping or /usr/bin/ping.iputils) does not exist, skipping...
  WARNING: iputils-s20190709-r0 do_package: iputils: NOT adding alternative provide /usr/bin/ping: /usr/bin/ping.iputils does not exist
  ERROR: iputils-s20190709-r0 do_package: QA Issue: iputils: Files/directories were installed but not shipped in any package:
    /bin/tftpd
    /bin/tracepath
    /bin/arping
    /bin/clockdiff
    /bin/ping
    /bin/traceroute6
    /sbin/rarpd
    /sbin/ninfod
    /sbin/rdisc
  Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
  iputils: 9 installed and not shipped files. [installed-vs-shipped]
  WARNING: iputils-s20190709-r0 do_package: iputils: alt_link == alt_target: /usr/bin/ping == /usr/bin/ping

(From OE-Core rev: 4b2322e90f6a3a4d2c44145aa85b688f28edddaa)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Changqing Li
da0bcb4062 man-db: support usrmerge
(From OE-Core rev: 69ab2da830a758d6289a6e33209e74222bfedea0)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Changqing Li
46448785a4 dnf.py: installroot support usrmerge
(From OE-Core rev: 65f8dfd81abcf48d472ee28c2cdae819fd87ef32)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Kai Kang
19086789d9 sysstat: 12.1.3 -> 12.1.6
Update sysstat from 12.1.3 to 12.1.6.

* make sa_lib_dir refer to ${libexecdir}/sa to fix conflictions when
  multilib is enabled

(From OE-Core rev: 8862f21eeb814c64b8b9e662b093ed39474cd55b)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Kai Kang
8c93226dce texinfo: fix multilib file confliction
Inherit multilib_script to fix file confliction when mutlilib enabled.

| Error: Transaction check error:
|   file /usr/bin/texi2any conflicts between attempted installs of
    lib32-texinfo-6.5-r0.core2_32 and texinfo-6.5-r0.core2_64

(From OE-Core rev: 08b6a12e674f7a202bb29fbb465997e8303ccb5d)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Kai Kang
944a5b054c cups: redefine CUPS_SERVERBIN
Redefine CUPS_SERVERBIN to "$libexecdir/cups" for cups which solves file
confliction when multilib is enabled.

| Error: Transaction check error:
|   file /lib/systemd/system/org.cups.cups-lpd@.service conflicts between
    attempted installs of cups-2.2.11-r0.core2_64 and lib32-cups-2.2.11-r0.core2_32

(From OE-Core rev: 274bed042b9c2b50a8bdd11b42f1a62405fb5b11)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Khem Raj
7379b6347b python3native, pythonnative: export PYTHON_LIBRARY and PYTHON_INCLUDE_DIR
packages can use

find_package(PythonInterp REQUIRED)
find_package(PythonLibs REQUIRED)

while we control PYTHON pointing to native py3 the libs and include
directories will then point to build host version, which can result in
unexpected combination and if we are lucky we get errors if its quite
different e.g. py2 libs/includes and py3 executable

This variable can be then used to export PYTHON_LIBRARY and
PYTHON_INCLUDE_DIR so that above find_packages can work correctly

see [1] for how it happens in cmake

LLDB uses it see [2]

[1] https://github.com/Kitware/CMake/blob/master/Modules/FindPythonLibs.cmake
[2] https://github.com/llvm/llvm-project/blob/master/lldb/cmake/modules/LLDBConfig.cmake#L226

(From OE-Core rev: e45c06fe6f9a21c2cd06ae003cb112556382f81e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Chen Qi
4349b933ad python3: make misc package rdepend on pydoc and pickle modules
The cgitb module in misc package requires pydoc. And the trace
module in misc package requires pickle.

(From OE-Core rev: f7f04c4436f414ab1e57e7fc93349ac77ecf37be)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Changqing Li
d7a16809f6 mdadm: skip timeout testcase 11spare-migration
[YOCTO #13368]

(From OE-Core rev: 47c4ad9bd43d3b0539a19691bd4deb19ea63c3a7)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Changqing Li
4157600d31 bootchart2: switch to add patch from change source in do_install
it is not proper change source in do_install, it will make
source not updated even local.conf have change the DISTRO_FEATURES

[YOCTO #13493]

(From OE-Core rev: c8b049f43931ac7581b6f57d03e4d1838d394e1f)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00
Jason Wessel
c143a3c4ea Revert "kernel.bbclass: adjust a condition checking"
This reverts commit 6676411fccff2d331878e4ca1f9411aafb056a80.

This revert restores the original code and adds a comment.  The commit
that was reverted broke a number of wic templates and tools which rely
on the initramfs creation dependency and the case where the
INITRAMFS_IMAGE_BUNDLE is not set.

If an end user does not want the INITRAMFS_IMAGE generated, it should
be set to "".

[ Issue: LIN1019-1791 ]

(From OE-Core rev: ab61a11623ac0a25ba1c98d686c79815abab573f)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Zang Ruochen
13d9021a7e meson:upgrade 0.51.1 -> 0.51.2
-meson/0001-Fix-missing-return-statements-that-are-seen-with-Wer.patch
Removed since this is included in 0.51.2.

(From OE-Core rev: 62ea5c31be4a1a5eaba83f81d09b36553febb647)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Ming Liu
45b12bdcb3 weston: uprev to 7.0.0
- Adjust patches to comply with weston-7.0.0.
- Also drop the obsolete patch 0001-make-error-portable.patch.

(From OE-Core rev: 1b0ce3ec1d3254afa2cf3ac7ecfd736124d711cc)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Ross Burton
e77c32d164 systemd: ensure reproducible builds by clearly exposing the time epoch support
systemd has the ability to check the time on boot and if it's earlier than an
epoch determined at build time, set the time to that epoch.  This is useful for
systems where the system time is January 1st 1970 (because the unix timestamp
was 0 at boot) as then at least the time is reset to something approximating the
right year at least.

By default systemd uses the mtime of the NEWS file, which is static for tarballs
and corresponds to the time the release was made, but for git checkouts this is
simply the time do_unpack() was executed.  Thus, rebuilding systemd will cause
this embedded timestamp to change.

Remove the PACKAGECONFIG time-epoch which has the logic reversed: enabling
time-epoch will set the epoch to the unix timestamp 0).  Replace with
set-time-epoch with the following semantics:

- When disabled, the time epoch is set to 0 (1st January 1970), so there is no
  time manipulation on boot.

- When enabled, if reproducible builds are configured by setting
  SOURCE_DATE_EPOCH then that timestamp is used for the time epoch.  If
  reproducible builds are not configured then the timestamp of NEWS (thus the
  build time) is used.

The set-time-epoch flag is enabled by default.

[ YOCTO #13473 ]

(From OE-Core rev: 29afbd4f02354de7103ee3a88f4ce5336b95b88a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Oleksandr Kravchuk
b03278ba4c python3-git: update to 3.0.2
(From OE-Core rev: 1ce8a78e59e472d80a85667916af23c7d64bb99f)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Oleksandr Kravchuk
cc90f61d23 python3-pbr: update to 5.4.3
(From OE-Core rev: d03ec080b0bcf31ab8272961372f1e662060e21e)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Joshua Watt
bff47225c6 resulttool: Add reproducible log extraction
Adds an argument to the log subcommand to extract the raw logs from the
reproducible selftest.

To prevent ambiguity, the "--raw" argument has been renamed
"--raw-ptest", although the old "--raw" argument is kept around for
compatibility.

[YOCTO #13324]

(From OE-Core rev: 7a4ebb361ff1efc22e7dafadfa60c98bc8a79ed4)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Oleksandr Kravchuk
921d669f0f libsecret: 0.19.0
(From OE-Core rev: 94cd73f7295dda8a0828bcd7159bbe54263c55ae)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Dan Callaghan
25ed4f7073 autotools: always include config_site.d files in CONFIG_SITE
Fixes: https://bugzilla.yoctoproject.org/show_bug.cgi?id=13375

(From OE-Core rev: e60c170b451a4aa561d08bfce97dca05508c2106)

Signed-off-by: Dan Callaghan <dan.callaghan@opengear.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Zang Ruochen
96357a78f4 python3-dbus:upgrade 1.2.8 -> 1.2.10
(From OE-Core rev: fb7f9becfdd7a7657b69e7bde472f3b8569eff63)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Alexander Kanavin
fe029a11bc package.bbclass: allow shell-style wildcards in PRIVATE_LIBS
PRIVATE_LIBS is used to exclude 'private' libraries from getting added to
automatic runtime dependency resolution. This variable currently has to list
all libraries by name, which becomes a maintenance issue if the list
of such libraries frequently changes, or is very large.

This change allows using shell-style wildcards in the variable, similar
to how FILES lists what gets packaged.

(From OE-Core rev: 732db32714c208d8eeeb90308926dc886ef7b791)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Anuj Mittal
4efd32b3ec libjpeg-turbo: upgrade 2.0.2 -> 2.0.3
Bug fix release. Release notes:

https://github.com/libjpeg-turbo/libjpeg-turbo/releases

(From OE-Core rev: 86a8caa604bfafa7a03420e94276a3e98e2957db)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Zang Ruochen
11f90f9a0f dtc:upgrade 1.5.0 -> 1.5.1
-License-Update:
-file://GPL : Updated mailing address.
-file://libfdt/libfdt.h : Removed part of the copyright description of this file.

(From OE-Core rev: ada36d3e39aba9afec2d5438a80f0b35610ce15d)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Zang Ruochen
306fe8fd2c libogg:upgrade 1.3.3 -> 1.3.4
(From OE-Core rev: 7e9fda9b8a9243091db212dc4c541cb2088a4d7d)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Khem Raj
4bed6fe63d gcc-9.2: Fix risc-v dynamic linker relocation
Accidentally dropped in 9.2 update

Reported-by: Ricardo Salveti <ricardo@foundries.io>
(From OE-Core rev: bd21f36faeceb83ab629bd34a4e53a6947d6a469)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Ross Burton
57428a8f14 harfbuzz: upgrade to 2.6.1
Add a (disabled) PACKAGECONFIG for Graphite2.

Update the license checksum for hb-ucd.cc, which for some reason was
checksumming the entire file and not just the license header.

(From OE-Core rev: 6e097c853f17ec76b61440bb868371ddf6a8e977)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Ross Burton
3c42048c20 pango: add PACKAGECONFIG for libthai support
(From OE-Core rev: 7aca6c182df25b867b6b9a58c3bf90112bb4aaaa)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Ross Burton
9b92d24b6d pango: 1.44.6 upgrade
(From OE-Core rev: 3673003485d0effdc036c9164bf7a30621960ea4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Drew Moseley
7ded301c3c runqemu: Fix typo in help text.
(From OE-Core rev: c745185b0c112530d1a3d1c57feea0754d68ebb2)

Signed-off-by: Drew Moseley <drew.moseley@northern.tech>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:10 +01:00
Khem Raj
c5d7c65c9e musl: Update to latest master
sys/user.h related API fixed on ppc/ppc64

Detailed log [1]

https://git.musl-libc.org/cgit/musl/log/?qt=range&q=29e8737f81ccc9fbadcf61a75318aa3d0516aafa..6ad514e4e278f0c3b18eb2db1d45638c9af1c07f

(From OE-Core rev: 961312512fa80622143c35c4edaa19287be01bbb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
Vijai Kumar K
550d3541ae lib/oe/gpg_sign.py: Remove unwanted import
Remove unwanted import of oe.utils.

(From OE-Core rev: 42e9de68384fb24d5c9a5f161810be90c45942d2)

Signed-off-by: Vijai Kumar K <Vijaikumar_Kanagarajan@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
Denys Zagorui
05a1020680 gzip: add nativesdk support
(From OE-Core rev: 9b2d7219e4cb2701f4252fbb98e6ecaab3221107)

Signed-off-by: Denys Zagorui <dzagorui@cisco.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
Ross Burton
6dd03197a5 patch: add CVE tags to patches
These patches improve CVE fixes but trip up patch status sanity checks, so add
CVE tags to them.

(From OE-Core rev: b30e060639d99849e27e5136c33c52d27e3288dc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
He Zhe
6870d68d2b qemu: Fix dependency of PACKAGECONFIG libcurl
When PACKAGECONFIG libcurl is enabled, we would get the following build failure.
ERROR: Nothing PROVIDES 'libcurl' (but perf.bb DEPENDS on or otherwise requires it). Close matches:

The dependency should be curl.

(From OE-Core rev: 531bf25c4e9dda4938f1de6bf7f929ca9d639114)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
He Zhe
f2713fc631 qemu: Add pkg-config handling for libgcrypt
When PACKAGECONFIG libgcrypt is enabled, we would get the following error.

ERROR: /usr/bin/libgcrypt-config should not be used, use an alternative such as pkg-config

In oe-core, libgcrypt has been turned to be configured with pkg-config instead
of libgcrypt-config, but qemu configure script does not contain pkg-config
related part for libgcrypt to handle it.

(From OE-Core rev: 37bec7c4ea3ebd17366fbd2ec719de401ec36275)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
Khem Raj
a6c071c3ab libgpg-error: Fix build with gawk 5.x
(From OE-Core rev: 1418581aa22f37c5d7d9a686c1c387149954e9b2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
Robert Yang
35c8b87b1c build-compare: 2015.02.10 -> 2019.08.14
* Removed the following patches which are already merged by upstream:
  0001-Add-support-for-deb-and-ipk-packaging.patch
  Rename-rpm-check.sh-to-pkg-diff.sh.patch
  functions.sh-improve-deb-and-ipk-checking.patch
  functions.sh-remove-space-at-head.patch
  functions.sh-run-rpm-once-to-make-it-faster.patch
  pkg-diff.sh-check-for-fifo-named-pipe.patch
  pkg-diff.sh-check_single_file-return-at-once-when-sa.patch
  pkg-diff.sh-remove-space-in-the-end-for-ftype.patch

* Rebased Ignore-DWARF-sections.patch

This version is very outstanding when compare binary packages, e.g.:
PRSERV_HOST = "localhost:0"
INHERIT += "packagefeed-stability"
PACKAGE_CLASSES = "package_ipk
$ bitbake opkg
$ find tmp/deploy/ipk >/tmp/ipk_1

Add a "bbnote 'hello'" to autotools.bbclass' autotools_do_configure.

* BEFORE the upgrading, the result is:
$ diff /tmp/ipk_1  /tmp/ipk_2 -Nur | diffstat
 ipk_2 | 1570 +++++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 785 insertions(+), 785 deletions(-)

* AFTER the upgrading, the result is:
$ bitbake opkg
$ find tmp/deploy/ipk >/tmp/ipk_2
$ diff /tmp/ipk_1 /tmp/ipk_2 -Nur
No output

And if we really modifed a recipe such as opkg, then it would show that it is
changed.

For a full world build AFTER the upgrading:
$ diff /tmp/ipk_6 /tmp/ipk_7 -Nur | diffstat
 ipk_7 | 2090 +++++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 1045 insertions(+), 1045 deletions(-)

There are 10968 packages in totall, 1045 ones have been changed, so we can still
improve it in the future.

(From OE-Core rev: 4c77fdfc0b3b31105a4dfd1a4634f8464b52d933)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:58:09 +01:00
Richard Purdie
2cd5daffe0 poky-tiny/poky-altcfg: Use busybox-mdev and systemd
(From meta-yocto rev: a058af8c82738620c9aab784118fd9680abfcf55)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 14:48:28 +01:00
Armin Kuster
0c8397aa68 gcc-8.3: remove 8.3 from zeus
warrior only had one gcc so lets be consistent.

This will also reduce our maintenance overhead and we don't build this either

(From OE-Core rev: fa4ecadd980eff95eacd840ba0259f6272daa9aa)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Richard Purdie
4aa7e00724 systemtap: Drop patches merged upstream
Several of our patches were merged upstream just beyond our current version.
Update to that version and drop them.

(From OE-Core rev: 815a956f7bf4de031b7764f27f3eac005a15b5ce)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Nathan Rossi
7289dccd09 archiver.bbclass: Do not archive srpm's if there are no package tasks
Do not attempt to archive recipes which have no packaging tasks (e.g.
inherits nopackages).

(From OE-Core rev: 8618425e3f5a095a4fd409029c46e770c9526eee)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Nathan Rossi
e5fe46c4c0 security_flags.inc: Add overrides for glibc-testsuite to match glibc
Ensure glibc-testsuite has the same flags as glibc.

(From OE-Core rev: f8ab08441f90eb75295304c57746c6e5f907ca64)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Nathan Rossi
568130c122 gcc-testsuite.inc: Fix ssh.exp, ensure multilib_flags are populated
The 'process_multilib_options' function of dejagnu also populates the
'multilib_flags' content from the '--target_board=' arguments. The
'ssh.exp' generated is missing this call ('user.exp' includes it).

(From OE-Core rev: 4d3d7cac012a1f53c61a997615a761a7f25dd33f)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Richard Purdie
ac5479a3a3 binutils/glibc-testsuite: inherit nopackages to fix world builds
These recipes don't need to generate packages but did contain the packaging tasks which
would be triggered by a world build. They showed warnings or errors. Simplest fix
is to remove the unneeded tasks with the nopackages class.

Also don't attempt stash_locales task

(From OE-Core rev: a34420e1bdb9a695fe7abd3b26426d7ae6113349)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Nathan Rossi
182267b305 glibc-testsuite: Create a recipe to implement glibc test suite
A recipe needs to be created for the test suite due to the dependency
chain between libgcc -> glibc -> libgcc-initial, and the requirements of
the test suite to have libgcc for compilation and execution.

The glibc test suite does not use dejagnu like the gcc test suites do.
Instead a test wrapper script is used along with the assumed dependency
of having the same filesystem available on build host and target. For
qemu linux-user the same filesystem is inherently available, for remote
targets NFS is used. Separate test wrapper scripts are created for qemu
linux-user or ssh targets, with the same TOOLCHAIN_TEST_* variables used for
configuration.

(From OE-Core rev: 6c4d581c35ebd51c4b080ac38175d93f0480f97d)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Nathan Rossi
6ccf0746cf gcc-runtime: Add do_check task for executing gcc test suites
Add a do_check task to implement execution of the gcc component test
suites. The component test suites require execution of compiled programs
on the target.

The implementation provided allows for execution testing against a host
via SSH or within the local build environment using qemu linux-user
execution. The selection of execution is done via the
TOOLCHAIN_TEST_TARGET variable, and configuration of the remote host is
done with the TOOLCHAIN_TEST_HOST, TOOLCHAIN_TEST_HOST_USER and
TOOLCHAIN_TEST_HOST_PORT variables.

By default the do_check task will execute all check targets, this can be
changed by setting MAKE_CHECK_TARGETS to the desired test suite target
(e.g. check-gcc or check-target-libatomic).

(From OE-Core rev: 9d5d680baa91b34dc97641f98856a51d1bb060c1)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Nathan Rossi
9d00c56d5b binutils-cross-testsuite: Create recipe for test suite execution
Create the do_check task in a new recipe 'binutils-cross-testsuite'.
This recipe is built within a target recipe (not -cross) to ensure
correct testing against target specific libraries/etc. The do_check task
is used to execute the binutils test suite for the cross target
binutils. By default this executes tests for binutils, gas and ld. This
can however be changed by setting CHECK_TARGETS to the desired test
suite target (e.g. 'gas').

The binutils test suites do not require any target execution, as such
the check task can be run without QEMU or a target device. However
since the binutils tests do rely on a C compiler there is dependence on
both gcc and libc in order to run the tests.

(From OE-Core rev: 1fb98bfdccb82474176fe8fca616aea84475942e)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Nathan Rossi
f7194f29ce dejagnu: Add dejagnu for binutils/gcc test suites
The binutils and gcc test suites use dejagnu for execution. Copy the
dejagnu recipe from meta-oe, and update it to 1.6.2.

(From OE-Core rev: 72692268b0c578450b568cfc2527098673c1dbe0)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:47 +01:00
Joshua Watt
c4569ec7ba oeqa: reproducible: Preserve sstate mirror for first build
Preserves the SSTATE_MIRROR variable for the first build in the
reproducible test. This patch is intended to test the theory that using
the Yocto autobuilder sstate mirror will still be reproducible. The
autobuilder always does clean builds and never rebuilds recipes that
were built previously, thus building with the mirror but not
sharing tmpdir and sstate with previous builds should be reproducible.

There is no guarantee that all sstate caches are populated from clean
builds so this patch cannot be submitted to master, and I'm not
bothering sending it to the mailing list.

(From OE-Core rev: 6b8e0077339a89cb01aa40c1b367a4e41a638892)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 12:45:46 +01:00
Scott Rifenbark
196561b696 ref-manual: sync list of image types with source
(From yocto-docs rev: fc2817a4ca75efcb556c84ba5c6edcb4d703a78f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:59:45 +01:00
Scott Rifenbark
36500d9d87 poky-end: Added "pylint3" package to Ubuntu essentials.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:59:45 +01:00
Adrian Bunk
7b989f563f Update to KERNEL_DEVICETREE variable.
Corrected the requirements for the KERNEL_DEVCIETREE
variable example.

(From yocto-docs rev: 0502910c81f4d669457155ed5f52d5fa775d8d6d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:59:45 +01:00
Scott Rifenbark
7f04f85f71 dev-manual: Updated "Creating a Team Development Environment"
This section needed the wording updated.

(From yocto-docs rev: dd9e09273e9e5d5b6b43bf508f50d4d57e0dc569)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:59:45 +01:00
Scott Rifenbark
01a4b3f0a0 ref-manual: Updates to "Building Your Recipe"
(From yocto-docs rev: 6aa1fe818c284c1d740ce8063d58c664e73d380d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:59:45 +01:00
Scott Rifenbark
cfa0507589 ref-manual: Updated the "AS" variable
(From yocto-docs rev: ebd659999da3c465e1dbe3fb07d5eedbb6ff4c8f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 11:59:45 +01:00
Richard Purdie
f399b2d73b poky: Use 5.2 kernel by default
(From meta-yocto rev: 7bab9fe27ff6ed67c2f7dfbfe939527f1a6a4430)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:25:29 +01:00
Alexander Kanavin
48945dfca3 local.conf.sample: add a commented-out option to enable the gtk UI qemu frontend
Gtk is disabled by default as SDL is somewhat quicker to build.

(From meta-yocto rev: d48f63bba98c94171db5da826c35c50ff638d2fb)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:25:29 +01:00
Kevin Hao
49f24df065 meta-yocto-bsp: Bump to the v5.2 kernel
Boot test for all the supported boards. Also drop the v5.0 bbappend
since we no plan to support it anymore. There are some
kernel_configcheck warning when building some boards, the patches [1]
for them have been sent to kernel-meta for merging.

[1] https://lists.yoctoproject.org/pipermail/linux-yocto/2019-August/007908.html

(From meta-yocto rev: c6e974e12c1d7fe0d155b6cf1bc0c1f4a6ee69d0)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:25:29 +01:00
Richard Purdie
3f8d0969d1 gcc-cross: Fix header file corruption problems
gcc's makefile can move files, replacing with the contents "timestamp". This
corrupts the headers and breaks things like the gcc testsuite.

Add in a fix to ensure the headers are not corrupted through their hardlink copies.

(From OE-Core rev: 7e75ed5aec86b94fe7fadbed606619f84a2e58e7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:24:41 +01:00
Richard Purdie
646c754b53 systemtap: Use latest and greatest git version for 5.2 kernel support
Systemtap has issues with the 5.2 kernel which are fixed in master, we helped
debug and submitted some of the patches. Update to a git version which includes
all the fixes.

(From OE-Core rev: 7054ec111c7a011adb8a39b3a70292b29470e2aa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:24:41 +01:00
Ross Burton
4738a499ae core-image-sato: don't use 512MB in qemumips
qemumips doesn't appear to work well with 512MB of RAM and randomly hangs.  As
the bump to 512MB was primarily motivated by the memory needs of virtualised GL
which doesn't work in qemumips currently, drop the memory back to 256MB for
qemumips.

(From OE-Core rev: 499a31cf06c934b40b5866d5eb77c9ad20c9a15f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Adrian Bunk
31f5a835f5 Remove leftovers from the eglinfo removal
(From OE-Core rev: 8d692de6a13f881e92c254fa60b18d8fe59be830)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Adrian Bunk
49224db935 systemd: Update to the latest 242 branch
Remove patch for issue fixed upstream.

(From OE-Core rev: 8f06385bb4a8244ca51daeef0018bfbdd0a93161)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Nathan Rossi
4364a26db1 oe-selftest: Implement console 'keepalive' output
Similar to bitbake, implement a 'keepalive' output to the console to
ensure CI systems do not kill the process. The default timeout for
bitbake is 5000s.

(From OE-Core rev: 77939cca96fa5467c88eafa3ac0db2db4aef09d6)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Bruce Ashfield
ecfa7aaea3 linux-yocto/5.2: config tweaks and kallsyms fix
Integrating some 5.2 configuration changes (for new board supprt), and
the following fix:

 kallsyms: Don't let kallsyms_lookup_size_offset() fail on retrieving the first symbol

With this fix, we no longer see:

   [    0.032677] kprobes: failed to populate blacklist: -22

during boot on arm/mips

(From OE-Core rev: 2dc78e805d80bdba8710a6a417fc139e884b9ea9)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Nathan Rossi
1c115da446 Clean up remnants of glibc-initial
Remove remnants of the glibc-initial recipe.

(From OE-Core rev: 332b1e21db3e0cbeeb14f12dd6aeedb89b76d761)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Nathan Rossi
aaa6e45a28 oeqa/core/tests: Fix test_data module tests
These two tests relied on the context containing the results information.
This was moved into the OETestResults class.

(From OE-Core rev: ddad00bfec3b10b5a15a2a8eb57612bb5968f51f)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Nathan Rossi
273d72bbe8 oeqa/core/tests: Skip test_fail_duplicated_module
At some point the modules in tests/cases/loader/invalid/ were removed,
this test relied on having tests/cases/loader/invalid/oetag.py to
trigger a ImportError in the loader module. Skip this test.

(From OE-Core rev: cf79aa6383e2a2773e53d5b3082154777646cda4)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Nathan Rossi
7108fa48b7 gcc-common.inc: Process staging fixme with correct target/native sysroot
Correct the 'staging_processfixme' call so that target sysroot and
native sysroot paths are corrected when extracting the stashed build
directory. This is required for 'make check' to work correctly due paths
used in configuration and scripts which point at the native sysroot.

(From OE-Core rev: 2c47ffb65ec16af50112f9c388dc85439c069848)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Ross Burton
efafb13e2e systemd: explicitly set the path to nologin
Set the path to nologin as with sulogin etc so we don't try to execute binaries
from the build path on the target (as the build finds a nologin in the sysroot
at build time).

(From OE-Core rev: 15d57de00a5c2763cc9ddb71d3e6b52a57f3fcd1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Chen Qi
1a4eb65982 python-numpy: rdepend on multiprocessing module
`import numpy.distutils' gives people the following error.

  ModuleNotFoundError: No module named 'multiprocessing'

Fix it by adding multiprocessing dependency.

(From OE-Core rev: 08198d658b3617ba5e124f82540eba5e41fdad6c)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Zang Ruochen
f1c4a5a9d1 logrotate:upgrade 3.15.0 -> 3.15.1
(From OE-Core rev: 9a430fefb6e5e9bffa84eb64eb053542e6aaa74c)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Chen Qi
6926af57a2 python-testtools: rdepend on doctest module
`import testtools' will give people error for lacking of
doctest module. Add it to RDEPENDS to solve the issue.

(From OE-Core rev: eecde5b90fd8b0315e5f3540b861265fabaf1e73)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Armin Kuster
e674655bdf gcc-8.3: Security fix for CVE-2019-14250
Affects < 9.2

(From OE-Core rev: c608f32995c6f067c4f56e46c527e8e9c79e2295)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Ross Burton
906bb51677 libnl: don't patch libnl-3.0.pc
This patch originally came from oe-classic in 2010 with the comment "fix pc file
so that it actually links to the support libraries".  If an application wants to
link to the support libraries then it should be using the relevant .pc files to
do so.

oe-core builds successfully with this patch removed and other distributions
don't carry it, so drop the patch.

(From OE-Core rev: f4a544f46e2a58e64e90d92855d1d85966eefa10)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Ross Burton
3417dcede5 libnl: upgrade to 3.5.0
Drop the musl workaround, as upstream has solved this correctly now.

(From OE-Core rev: 6f777c872064cada250043da60d24295153642b6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Ross Burton
afc4d8b9d4 libedit: remove FETCHCMD append
This dates from when upstream was for some reason refusing the wget user agent,
but this isn't the case anymore:

$ wget http://www.thrysoee.dk/editline/libedit-20190324-3.1.tar.gz
...
HTTP request sent, awaiting response... 200 OK
Length: 521999 (510K) [application/x-gzip]
Saving to: ‘libedit-20190324-3.1.tar.gz’
2019-09-03 11:53:20 (1.22 MB/s) - ‘libedit-20190324-3.1.tar.gz’ saved [521999/521999]

(From OE-Core rev: 491aff847714464f1edf79968d3684e07764636a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
He Zhe
40afea45e2 ltp: syscalls: rt_sigwaitinfo01: Fix failure for MIPS arches
Backport a patch to fix the following failure.
rt_sigtimedwait01    1  TFAIL  :  .../sigwaitinfo01.c:58: test_empty_set
(.../sigwaitinfo01.c: 148): Unexpected failure:
TEST_ERRNO=EINVAL(22): Invalid argument

(From OE-Core rev: 26f9a7401f6379056e0a29f45e3817dee0d56e40)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Mark Asselstine
f24aedeff8 sdkext: use simpler kernel module for devtool test
The current devtool test for the building of an out-of-tree kernel
module uses something which requires several "high order" kconfigs to
be set. This results in the test failing, not for expected reasons,
but rather because it depends on specific kernel configuration.

You will get error messages such as

  ERROR: "video_ioctl2"
  [.../1.0-r5/testsdkext/workspace/sources/v4l2loopback-driver/v4l2loopback.ko]
  undefined!
  ERROR: "video_unregister_device"
  [.../1.0-r5/testsdkext/workspace/sources/v4l2loopback-driver/v4l2loopback.ko]
  undefined!

Using a simpler hello-world kernel module example will only require
that CONFIG_MODULE is enabled, thus avoiding a false positive.

(From OE-Core rev: 48ad9cffa5f9412a8225c61be7e3528e2bdad095)

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-06 08:15:45 +01:00
Martin Jansa
bf2e0b039a bitbake: fetch2: show warning when renaming the archive with bad checksum failed
* noticed on read-only sshfs premirror
* it was showing the warning about renaming the file:
  WARNING: laser-geometry-1.6.4-r0 do_fetch: Renaming /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz to /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz_bad-checksum_1ee7479b8c5914b4ffae996945121441

  and then failed because of movefile() issue with python3 (fixed in previous commit):
  ERROR: laser-geometry-1.6.4-r0 do_fetch: Error executing a python function in exec_python_func() autogenerated:

  with movefile() fixed, it let do_fetch continue and re-fetch locally with the right
  checksum, but still the renamed file didn't exist, because of movefile failure - add
  another warning when the movefile fails - for whatever reason - unfortunately movefile
  prints error messages with just print() so the real error is hidden only in log.do_fetch
  in this case:
  movefile: Failed to move /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz to /jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz_bad-checksum_1ee7479b8c5914b4ffae996945121441 [Errno 30] Read-only file system: '/jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz' -> '/jenkins/mjansa/sshfs/webos-ose-thud/downloads/laser_geometry-1.6.4.tar.gz_bad-checksum_1ee7479b8c5914b4ffae996945121441'

(Bitbake rev: 9a1bf4ba9ec00c2a222d820f8f83d1f056b021d6)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 10:18:58 +01:00
Martin Jansa
3e21648723 bitbake: utils: Fix movefile() exception handling with python3
* with python3 this fails with:
  File: 'bitbake/lib/bb/utils.py', lineno: 799, function: movefile
       0795:        try:
       0796:            os.rename(src, destpath)
       0797:            renamefailed = 0
       0798:        except Exception as e:
   *** 0799:            if e[0] != errno.EXDEV:
       0800:                # Some random error.
       0801:                print("movefile: Failed to move", src, "to", dest, e)
       0802:                return None
       0803:            # Invalid cross-device-link 'bind' mounted or actually Cross-Device
  Exception: TypeError: 'OSError' object is not subscriptable

(Bitbake rev: d6e43c443ddbbe467c4380c48d2bc28ae18504a1)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 10:18:58 +01:00
Alexander Kanavin
88a49ffbd8 eglinfo: remove the recipe
Last commit upstream was in Sep 2014; pull requests have been ignored since.

I believe eglinfo from mesa-demos is an adequate and maintained alternative.

Also this recipe was using an ugly waf blob placed directly into oe-core, which
was also dependent on python 2.

(From OE-Core rev: aa36510ebea93c1f6f327152e5aa63beccad0275)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Alistair Francis
b8c2575002 qemuriscv: Generate a wic rootFS with a larger filesystem
This allows us to generate a rootFS with a large filesystem for use with
QEMU.

(From OE-Core rev: e06439200e44999c1e2f88d7d6c651da13698ca7)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Armin Kuster
b8ce258f15 gcc-9.2: Security fix for CVE-2019-14250
Affects: <= 9.2

(From OE-Core rev: af761de211ecdcb358c6412f9e7e3398b7525cf2)

Signed-off-by: Armin Kuster <Akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Khem Raj
6b3e91fe1a libgpg-error: Fix build with gawk 5.x
(From OE-Core rev: 11f4bf5ace2e6c0baf0eebbab128d4867139249d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Khem Raj
a4b6d8b7eb gcc: Fix ldbl-128 support for musl
Let the patch trigger based on target triplet instead of passing via
configure, this lets gcc compile for 64bit otherwise it ends up with
libgcc  build errors

error: unable to emulate 'TF'

(From OE-Core rev: 2259bf5366a9ff654dfaf15baa5df2d943383ce6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Khem Raj
3a207a2a5c gcc: Move STANDARD_STARTFILE_PREFIX_1 and STANDARD_STARTFILE_PREFIX_2 back to gcc.c
when compiling for ppc64, build emits additional
STANDARD_STARTFILE_PREFIX_1 and STANDARD_STARTFILE_PREFIX_2 into
gcc/defaults.h which is not conditional because it really want to
override others with this new value, but it ends up with two definitions
since it gets emitted _after_ the definition this patch moves to
default.h and ends up in duplicate defines.

(From OE-Core rev: 2ad649ee9027011ae7bf6fd95417237b86e394e5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Khem Raj
6e3fac8de6 tune-riscv: Drop littleendian and introduce bigendian tune
Default riscv is little-endian moreover most of other arches define
bigendian as tune and treats absense as litteendian, this make risc-v
fall in line

(From OE-Core rev: cd6f377591a7bd7b3c61ce580f997aaeffab3df3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Khem Raj
2bdb7ad840 powerpc-tunes: Introduce bigendian tune
This helps in defining LE tunes and at the same time specifies
endianness on compiler cmdline clearly, clang e.g. defaults to
little-endian always, so unless specified with -mbig-endian won't
compile the code right

(From OE-Core rev: e0fd699d398f0e88fb208970dea7b74e6e9431fe)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Jacob Kroon
c89b16aa09 rm_work: Remove redundant 'after' in addtask statement
Introduced in commit b3de5d5795767a4b8c331fa5040166e7e410eeec.

(From OE-Core rev: bad3918467cc979f278a70a00e828704ef885fd4)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Alexander Kanavin
52dfaad0a2 libepoxy: enable x11 PACKAGECONFIG for native/nativesdk
This is needed to enable virgl support in qemu with SDL frontend

(From OE-Core rev: 92d9f9a6f6f3e8630fadeee5921126dfd9be147a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Alexander Kanavin
02bf8eefa5 default-providers.inc: set mesa as the provider for native(sdk) virtual/libgl
native/nativesdk libepoxy and libsdl2 require this to be set, when they
have the respective opengl features enabled.

(From OE-Core rev: 83432f576731a614385c1c6bae6a0cec5d25c59b)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-03 09:55:50 +01:00
Kai Kang
16405efb85 avahi: launch avahi-daemon after connman
When connman installed to image, /etc/resolv.conf is link to
/etc/resolv-conf.connman. So launch avahi-daemon after connman too
just same as after systemd-resolved.service.

(From OE-Core rev: b4673b5befa339b2ffc3c274b105ab96d730ea2d)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Adrian Bunk
c4f07b04f6 libxcrypt: Fix the build with -Os
| In file included from ../git/lib/alg-des.c:66:
| ../git/lib/alg-des.c: In function '_crypt_des_set_key':
| ../git/lib/byteorder.h:24:1: error: inlining failed in call to 'be32_to_cpu': call is unlikely and code size would grow [-Werror=inline]
|  be32_to_cpu (const unsigned char *buf)
|  ^~~~~~~~~~~
| ../git/lib/alg-des.c:81:13: note: called from here
|    rawkey1 = be32_to_cpu (&key[4]);
|              ^~~~~~~~~~~~~~~~~~~~~

(From OE-Core rev: 5d4720dfc8ec29ff3f487f84c5c874678ba20851)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Jacob Kroon
0458fa6b83 btrfs-tools: Add PACKAGECONFIG knob for controlling python support
(From OE-Core rev: 823c04c455e921aaed2d5edf064d82c6a4938c64)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Jason Wessel
eddbd0c314 serial-getty@.service: Allow device to fast fail if it does not exist
Some BSPs use a USB serial port which may or may not actually be
plugged all the time.  It is quite useful to have a USB serial port
have a getty running but it does not make sense to wait for it for 90
seconds before completing the system startup if it might never get
plugged in.  The typical example is that a USB serial device might
only need to be plugged in when debugging, upgrading, or initially
configuring a device.

This change is somewhat subtle.  Systemd uses the "BindsTo" directive
to ensure existence of the device in order to start the service as
well as to terminate the service if the device goes away.  The "After"
directive makes that same relationship stronger.  When used together
this has the undesired side effect that systemd will wait until its
internal time out value of 90 seconds for the device to come on line
before executing a fail operation or letting other tasks and groups
continue.  This is certainly the kind of behavior we want for a disk,
but not for serial ports in general.

The "BindsTo" directive is replaced by the combination of the "PartOf"
and the "ConditionPathExists" directives.  The "After" directive is
unchanged because that will wait for the udev rules to process.  The
"PartOf" directive will issue a stop to the getty service if the
device goes away, similar to the "BindsTo" directive.  The
"ConditionPathExists" is what allows the service to fail fast vs
waiting for the timeout.  When a USB device is not plugged in at boot
you would find a message in the system journal like:

    systemd[1]: Condition check resulted in Serial Getty on \
                 ttyUSB0 being skipped.

If you want to observe the problem with qemu, it is easy to replicate.
Simply add the following line to your local.conf for a x86-64 qemu
build.

    SERIAL_CONSOLES="115200;ttyS0 115200;ttyUSB0"

Login right after the system boots and observe:

   root@qemux86-64:~# systemctl list-jobs |cat
   JOB UNIT                                 TYPE  STATE
     1 multi-user.target                    start waiting
    69 serial-getty@ttyUSB0.service         start waiting
    64 getty.target                         start waiting
    71 dev-ttyUSB0.device                   start running
    62 systemd-update-utmp-runlevel.service start waiting

   5 jobs listed.

You can see above that the dev-ttyUSB0.device will block for 1min 30
seconds.  While that might not be a problem for this reference build.
It is certainly a problem for images that have software watchdogs that
verify the system booted up all the way to systemd completion in less
than 90 seconds.

This other nice effect of this change is that the fast fail device
extend to additional serial ports that may not exist on ARM BSPs or
that might be configured in or out by the dtb files on different
boards.

(From OE-Core rev: f0f359ec9210759f6b4dbfb35d3fba8af208c43a)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Oleksandr Kravchuk
8c16b4a8f1 go-dep: update to 0.5.4
(From OE-Core rev: 7a3b36401f86afa13426b302ce31bbd20dd871be)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Oleksandr Kravchuk
118fb26ac9 ell: update to 0.22
Changelog:
- Fix issue with DHCP and T1 timeout handling.
- Fix issue with escape characters in peer identity string.
- Add support for setting peer certificate's subject CN mask.

(From OE-Core rev: cbf84908716c867b8bf530460a4eb0dff81da9f4)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Oleksandr Kravchuk
e1f4543f64 libevdev: update to 1.8.0
(From OE-Core rev: 11f4f699a99b59f536cd72e0aa9c0751fc886e7b)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Oleksandr Kravchuk
3d4e1ceeaa libsolv: update to 0.7.6
(From OE-Core rev: f649bad65202730ac235f99609f51956a7451683)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Peter Kjellerstedt
397d1432cb devtool: Avoid failure for recipes with S == WORKDIR and no local files
When extracting the sources for a recipe that has S == WORKDIR and no
local files in the SRC_URI (which, e.g., can happen for a recipe with
a URI that has the unpack=false attribute), the extraction fails with
the following backtrace:

  Traceback (most recent call last):
    File ".../scripts/devtool", line 344, in <module>
      ret = main()
    File ".../scripts/devtool", line 331, in main
      ret = args.func(args, config, basepath, workspace)
    File ".../poky/scripts/lib/devtool/standard.py", line 762, in
    modify
      initial_rev, _ = _extract_source(srctree, args.keep_temp,
      args.branch, False, config, basepath, workspace,
      args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides)
    File ".../poky/scripts/lib/devtool/standard.py", line 647, in
    _extract_source
      bb.process.run('git %s commit -a -m "Committing local file
      symlinks\n\n%s"' % (' '.join(useroptions),
      oe.patch.GitApplyTree.ignore_commit_prefix), cwd=srctree)
    File ".../poky/bitbake/lib/bb/process.py", line 178, in run
      raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
  bb.process.ExecutionError: Execution of 'git commit -a -m
  "Committing local file symlinks

  %% ignore"' failed with exit code 1:
  On branch devtool
  nothing to commit, working tree clean

This is because no files were found in the oe-local-files directory
and consequently no symbolic links were added using `git add`, but the
`git commit` command was still executed.

(From OE-Core rev: 3fdf304e72a1fb5de8bf9bc21e5b598fefb08648)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:08 +01:00
Yi Zhao
dfe57de912 libbsd: upgrade 0.9.1 -> 0.10.0
License-Update: copyright years updated.

Drop the backport patch.

(From OE-Core rev: 88fb1140f4b65ed33cdd4152ef506461a33371a5)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Changqing Li
f05aaad27b systemd-bootchart: support usrmerge
(From OE-Core rev: 9f0d3f2817d7a9c536e4ab8977c7ad99a5426097)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Changqing Li
afea3c7d65 bootchart2: support usrmerge
(From OE-Core rev: 291ec69e421984e8658bb4c83537e998b0dbc9b1)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Changqing Li
f46768df79 avahi-ui: support usrmerge
(From OE-Core rev: 6e1fc83e7d7285211ae24e38b8fa7fbe7112d126)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Daniel Klauer
fd55f5e425 image.bbclass: Fix debug output for rootfs size
The debug output showed the wrong variable.

(From OE-Core rev: 9b404c24ddc6212576b78c9fc56c57baa0fb3745)

Signed-off-by: Daniel Klauer <daniel.klauer@gin.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Yuan Chao
270bc1fda5 man-db: upgrade 2.8.6.1 -> 2.8.7
(From OE-Core rev: cc557447ca07d99f0c45ba72edde957c2eec208a)

Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Neil Armstrong
00aa6a4890 mesa: Add support for the panfrost PACKAGECONFIG
Add support to enable the Panfrost Gallium driver in PACKAGECONFIG

(From OE-Core rev: 1685af76eb5d504e085a6e15fb16b902b89d857b)

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
4c45bdff80 webkitgtk: update 2.24.3 -> 2.24.4
In particular this brings an important fix for builds with py3:
"Fix build issue which would cause media controls to disappear when Python 3.x was used during the build process."

https://webkitgtk.org/2019/08/28/webkitgtk2.24.4-released.html

(From OE-Core rev: 62c1a8ead15d58fb1f159dc6cd6cf22fa8183426)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
14a0d1cc90 webkitgtk: use Python 3 for builds
(From OE-Core rev: e7c544f80859d532c64dd6b1988c762bdd09dbbf)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
b67cd613ed virglrenderer: update 0.7.0 -> 0.8.0
This also allows building virglrenderer without python 2.x

(From OE-Core rev: ac1eab26a422136ab12733856de61ce46ca1cdea)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
8099ad5a21 llvm: use python 3 during builds
(From OE-Core rev: 13f9182e7235843290809027b4456ad2fe5e4c40)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
98da689bce pseudo: use python 3 during builds
(From OE-Core rev: 7c2acbd4dff976e8def1e16c6631f9ab74503cae)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
779e1ba408 libpsl: use python 3 during builds
(From OE-Core rev: 3818536b556afab04f2f7d9b9e1028d498cb3926)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
2100fbe529 ca-certificates: use python 3 for builds
(From OE-Core rev: 8157c6d32e2af67211eb8fcd048a0771f10f7b26)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
58e85c60cd qemu: switch to '-vga std' emulated hardware from vmware/cirrus for x86/mips
This is the qemu default since qemu 2.2, is generally supported better,
and is recommended by upstream. It also has already been in use for arm/risc
and ovmf.

Additional information:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=13466
https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/

'-vga virtio' emulated hardware remains in use when virgl is enabled via a runqemu override.

Also, adjust the error whitelist, as there is a number of new messages
coming from the drivers that are not actual errors.

(From OE-Core rev: 73cb104f3307736f4922f2e0c9648f9b2d3b3b6b)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alistair Francis
6883a66796 linux-yocto-dev: Mark qemuriscv64 as compatible
(From OE-Core rev: a951900ed4dfcc336439d090137ab64850f6137a)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
db503d411b libffi: fix upstream version check
As there is no version newer than 3.3-rc0 yet, an exception
from the check is needed.

(From OE-Core rev: 5850d42187de00db4b0c01ba97fe41aaec3f6613)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Alexander Kanavin
8d76bfaf22 lsb-release: fix upstream version check
With the new recipe matching the tarbal version, there is
no need for an exception from the check.

(From OE-Core rev: 382bd74e69b7824deb5bb08f8559d22bce272bac)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Bruce Ashfield
a4d8307268 linux-yocto/5.2: update qemuriscv64 SRCREV
The scripts that update my SRCREVs were missing the qemuriscv64. This
SRCREV bump moves it to match the rest of the 5.2 qemu BSPs.

(From OE-Core rev: f6c1b338778e9cb692bd9edf65214f7c355ed6be)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Bruce Ashfield
456a92116a qemu: bump linux-yocto preferred version to 5.2
(From OE-Core rev: 0504760978b65627bb265503896bc2dfb0709475)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Bruce Ashfield
636188943d linux-yocto: introduce 5.2 recipes
Introducing the 5.2 linux-yocto reference kernels. 5.0 is EOL and will
be removed, leaving 4.19 (LTS) and 5.2 as the reference kernels.

This has been build/boot tested on all qemu architectures for
core-image-kernel-dev, and graphics tesed via core-image-sato. No
blocking issues have been found.

(From OE-Core rev: 14472621e4a0d3d3cf4c0bc43a8b7344c10008e3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Bruce Ashfield
8352682c3b linux-libc-headers: update to v5.2 headers
We drop the patch 0001-arm64-sve-uapi-asm-ptrace.h-should-not-depend-on-uap.patch
since it was a backport and is already part of the 5.2 headers

(From OE-Core rev: c436abca9832f1aa93f30c8d6ff36471d7bc4ca9)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Richard Purdie
77a8ddd87c gcc-cross: Clean up fixed-includes
We had interesting failures where building gcc-cross-powerpc with 5.0 kernel
headers, then building eudev after moving to 5.2 headers failed.

gcc-cross doesn't rebuild when linux-libc-headers changes due to its
listing in SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS. This shouldn't matter but
fixincludes as adding asm-generic/socket.h to its filtered list which
was then replacing the real header with an older version. This mismatch
lead to build failures.

We trust the Linux kernel headers to be ANSI safe so lets just clear out
any headers and trust the originals to be correct.

(From OE-Core rev: f0fcaa88b7b2977c2cb35b060747442ee9ff3dcd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:33:07 +01:00
Armin Kuster
963faf7a7f bitbake: tests/fetch: Resolve fetch error in bitbake-selftest
FAIL: test_wget_latest_versionstring (bb.tests.fetch.FetchLatestVersionTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/oe-selftest/build/bitbake/lib/bb/tests/fetch.py", line 1229, in test_wget_latest_versionstring
      self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0])
      AssertionError: '' is not true : Could not find upstream version for db

[YOCTO #13496]

The Oracle UPSTREAM_CHECK_URI used changed and does not work with logic in wget.

Update UPSTREAM_CHECK_URI and UPSTREAM_CHECK_REGEX to match the ones used in the
recipe. Also change the version being checked.

(Bitbake rev: 4cf5bb761c561ddea86f2875be35d05abc8486e1)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-01 22:30:42 +01:00
Alexander Kanavin
e47e266916 ltp: move from python 2.x to python 3.x
(From OE-Core rev: e3c32de13e37b674ee8efb585337d57de8c555fd)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Mark Hatle
b4932a18ab yocto-check-layer: Allow any case for README file detection
It's become more commone for files to be named "readme" or "Readme" on github servers
in recent time.  So adjust the scanning to allow any mix of case.

(From OE-Core rev: afe46eca15b6ddfa15c75cb7b707d6dd9aae3eae)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Chen Qi
a0542cf593 bind: fix build with python3 PACKAGECONFIG enabled
If the PACKAGECONFIG item, python3, is enabled, we get the following
QA issue when multilib is enabled.

  ERROR: bind-9.11.5-P4-r0 do_package: QA Issue: bind: Files/directories were installed but not shipped in any package:
  /usr/lib
  /usr/lib/python3.7
  /usr/lib/python3.7/site-packages
  /usr/lib/python3.7/site-packages/isc-2.0-py3.7.egg-info
  /usr/lib/python3.7/site-packages/isc
  /usr/lib/python3.7/site-packages/isc/policy.py
  [snip]

The thing is, when --with-python is specified with a path instead of 'yes',
the --with-python-install-dir is in fact ignored.

Fix this issue by specifying the correct arguments.

(From OE-Core rev: 2c36b3e5c7caae07ffe0cfb816d37fad52d69fc9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Bruce Ashfield
45e3d3431b devsrc: update arm64 scripts/prepare for kernels 5.3+
We need to include a few more small files for on target module
builds for 5.3+ kernels.

(From OE-Core rev: 9b3134995cf054679d573f28f916a629332ce126)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Bruce Ashfield
d7a0fdf133 perf: v5.3+ build fixes
In the 5.3+ perf builds, there are multiple unistd.h files that need
to be kept in sync. So not only do we update one, we update both to
ensure that libc-headers and the perf build are in sync.

perf checks some key files itself to be sure they are in sync, and
bits.h can be out of sync. There's no build error that results with
bits.h at the moment, but we still make sure they are in sync to
avoid the configure/compile warning.

(From OE-Core rev: b850ee597e7116cc2a7546853f2b976c891196ef)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Bruce Ashfield
e66d183b9e perf: change dependencies on python to python3
The upstream kernel can now handle python3 for the perf scripts, coupled
with the impending EOL of python2, we switch the dependencies in perf
(scripting) to python3.

Outside of dependency changes, we also pass the following two variables
to the perf build: PYTHON=python3 PYTHON_CONFIG=python3-config. To
ensure that our python3 components are used.

For configurations that disable perf scripting, there is no change in
behaviour.

[YOCTO #13358]

(From OE-Core rev: 584af667e0000129bcb5c9e8108485f2f6590eaf)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Bruce Ashfield
4c62122ecb kernel-devsrc: remove python2 dependency
Witht the approaching EOL of python2, the kernel packages need to
be updated to depend on python3.

The core kernel scripts are now python3 safe, making the RDEPENDS
change relatively simple.

but

There are some scripts that are captured in the devsrc files that
are not used, but reference /usr/bin/python. The python3 package
does not provide /usr/bin/python so any package managers with
automatic dependency detection will fail to assemble a rootfs due
to the missing intepreter.

We could drop the scripts from the source capture, but that
risks dropping something that we need in certain operations and
we'd miss when they are updated in tree to explicitly call python3
(since they won't be revisited often). Light testing shows that the
scripts do run with python3, so rather than removing them, we change
the interpreter once they are copied, and automatic dependency
detection won't cause us rootfs assembly issues.

(From OE-Core rev: 6745088b6c9e5c70df59d667347ede470df9a91d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Bruce Ashfield
c5a7f3eac6 bluez5: fix build against libc-headers 5.2+
Backporting the following upstream commit to fix the build against
kernel 5.2+ headers:

[
   Subject: [PATCH] tools: Fix build after y2038 changes in glibc

   The 32-bit SIOCGSTAMP has been deprecated. Use the deprecated name
   to fix the build.
]

Upstream-Status: backport commit f36f71f60b1e68c0f12e615b9b128d089ec3dd19

(From OE-Core rev: b4731a1202cfa45c7e1f635552398b89a37f2eeb)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Joshua Watt
7e01f2fdad oeqa: reproducible: Do two clean builds
Perform two clean builds without sstate instead of one partial rebuild
with sstate and one clean build without. There are some classes of
reproducibility issues that this solves, and while we would like to
resolve them in the long term the direction to do so is not currently
clear.

(From OE-Core rev: e97c529bfa4e1d0038ea44f15ee3298003daf981)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Joshua Watt
dc04d6cdc2 oeqa: Enable reproducible build test
[YOCTO #13323]

(From OE-Core rev: 3fc08155b72f711c48f9a667539305eea869b5e9)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Joshua Watt
977aee76cf oeqa: reproducible: Record packages in test results
Records the results of the reproducibility analysis in the JSON test
results file. This makes it easier to do post-test analysis on the
packages.

[YOCTO #13324]

(From OE-Core rev: 6c357c8eee322163da96df676a54ff70a0bdc911)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Joshua Watt
a0ce9a8bbc oeqa: Set LD_LIBRARY_PATH when executing native commands
Some commands like to look for libraries at runtime manually (e.g.
Python's ctype.utils.find_library() function). For this to work
properly, the libraries in the native sysroot must be findable. To
accomplish this, set LD_LIBRARY_PATH to search library paths in the
native sysroot.

(From OE-Core rev: 3a7305bdfded3c8988484c3f430110cc121123b5)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Joshua Watt
569687083f oeqa: reproducible: Use subTest for packages
Runs each package class reproducibility test in a separate sub-test.
This allows the other sub tests to still run in the event that one
fails.

(From OE-Core rev: f0095e6c1b915e1e6ded111f4bf77fff0362e29a)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Joshua Watt
8282ec4bd0 oeqa: reproducible: Cleanup reproducible build
Cleans up the output from the reproducible build before building to
ensure consistent results. Note that the output put is purposely left
after around after the build so that non-reproducible packages can be
diffed.

(From OE-Core rev: f67bb34c8e7950779920b696f8502dbaed9eded5)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
He Zhe
4e1ea3e9c9 ltp: cve/meltdown.c: Fix kernel symbol finding
Backport a patch to fix the following error.
safe_file_ops.c:219: BROK: Expected 3 conversions got 2 at meltdown.c:272

(From OE-Core rev: 372a211657bfddd7f32f30043ec06198f8c27101)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Christophe PRIOUZEAU
026f53d977 common-licenses: update BSD-2-CLAUSE license text
Using the generic BSD-2-CLAUSE license as specified on
https://opensource.org/licenses/BSD-2-Clause

(From OE-Core rev: d532d19d35e19beb8d80ee38429562aa08cc9039)

Signed-off-by: Christophe Priouzeau <christophe.priouzeau@st.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Robert Yang
19985178e7 nfs-utils: 2.3.3 -> 2.4.1
- Remove 0001-Do-not-pass-null-pointer-to-freeaddrinfo.patch, the new api
  can check the pointer before free it.

- Rmove 0001-makefile.am-update-the-path-of-libnfs.a.patch, it is already in
  the source.

- Rmove nfs-utils-musl-limits.patch, it is already fixed.

-  Rebased the following patches:
   0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch
   0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch
   bugfix-adjust-statd-service-name.patch
   nfs-utils-musl-res_querydomain.patch

(From OE-Core rev: 5601523e16ebd35d7de8d22ec5590618ea9f7ffb)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Robert Yang
d6094e1e4e ccache: 3.7.1 -> 3.7.3
(From OE-Core rev: 891f69f0fea7376b6fe5de95af2b32219bfe6e31)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Alexander Kanavin
f32128bda2 mesa: disable gallium swrast driver on x86 x32
It was found to crash the X server on startup under qemu.

(From OE-Core rev: 045011ed29c0ab45892ad0881a4a8987f2adc977)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Alexander Kanavin
b0bad37101 qemu: set default RAM to 256M for all machines
There was a discussion about what amount of RAM is appropriate for a
default; the outcome was that for now it is still 256M. Some qemu machine
definitions have however set this to 512M so for the sake of
treating all architectures fairly, they are reset back to 256M.

Also runqemu is adjusted to use 256M if QB_MEM is not set at all.

http://lists.openembedded.org/pipermail/openembedded-core/2019-August/285900.html

(From OE-Core rev: 04c01b6cc5be3e6d45d0e04571640648a5655a8b)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Alexander Kanavin
51baa9a3b4 rpm: resolve a host contamination issue for mono packaging
This is perhaps not the most elegant patch but it be dropped
once rpm is updated to the soon-to-be-released version 4.15
where upstream has removed mono dependency resolution altogether.

(From OE-Core rev: c829e89f99c973787f31422b4c32eeebe8c383d3)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-30 17:10:28 +01:00
Richard Purdie
ba6a568512 ca-certificates: Fix reproducibilty and multilib issue
This command was dependent on the order of files on the disk and for multilib builds
could result in:

Error: Transaction check error:
  file /etc/ca-certificates.conf conflicts between attempted installs of ca-certificates-20190110-r0.core2_32 and lib64-ca-certificates-20190110-r0.x86_64

Sorting the file makes things deterministic.

(From OE-Core rev: c8f329fc562c9eecdcc1cb10d2c7661f44110fb4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-29 17:12:34 +01:00
Richard Purdie
a91448bf73 poky-altcfg: Replace poky-lsb with poky-altcfg
LSB has been removed, replace poky-lsb with poky-altcfg, a place
where we can test different configurations on the autobuilder as well
as showing an example of how to subclass a distro configuration.

(From meta-yocto rev: 00fdefff55717331a220fe624f29c387970d31d7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-29 14:05:12 +01:00
Adrian Bunk
66dba02728 Remove LSB support bits
LSB as a standard isn't current and isn't well suited to embedded
anyway. Its putting artifical constraints on the system and with modern
layer technology, would now be better off as its own layer. As such
its time to split it out.

(From meta-yocto rev: 8bb0237a74c2b66d0d0f19e600a5fb39df67894f)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-29 14:05:12 +01:00
Alexander Kanavin
f7298d88ea beaglebone: use the default of 256M rather than 512M
This is done for the sake of using the same default
everywhere; see here for details:
http://lists.openembedded.org/pipermail/openembedded-core/2019-August/285900.html

(From meta-yocto rev: f4ba98ed3c866ec3db90404f894d5aeaa5d79dfd)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-29 14:05:12 +01:00
Adrian Bunk
bac4bc9aa6 Remove LSB support
LSB as a standard isn't current and isn't well suited to embedded
anyway. Its putting artifical constraints on the system and with modern
layer technology, would now be better off as its own layer. As such
its time to split it out.

The only part with some (marginal) usage is lsb_release,
which is split from the lsb package into an own lsb-release
package.

(From OE-Core rev: fb064356af615d67d85b65942103bf943d84d290)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-29 14:05:12 +01:00
Chen Qi
1af3e4bea6 bitbake: cooker.py: remove generation of recipe-depends.dot
The information of recipe-depends.dot is misleading.

e.g.
$ grep xz recipe-depends.dot | grep bzip2
"bzip2" -> "xz"
"xz" -> "bzip2"

Users would wonder why they get some circular dependency.

The information is derived from removing the task names
of task-depends.dot. It's not giving people any additonal
information, and it's misleading.

So we remove the generation of this file.

(Bitbake rev: 4c484cc01e3eee7ab2ab0359fd680b4dbd31dc30)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 16:44:09 +01:00
Joshua Watt
46a71949de bitbake: bitbake: respect force flag in runall and runonly
Specifying the force flag will now cause runall and runonly to
invalidate the tasks before running them. This allows a --runall or
--runonly to force the tasks to run, even if they would have otherwise
been skipped, e.g.:

 bitbake -f --runall fetch

Will run all do_fetch tasks even if they wouldn't be necessary (for
example, skipped by setscene)

(Bitbake rev: 71e52d3822016027106f2a2e74b8dfdf20f5dc1e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 16:44:09 +01:00
Nathan Rossi
6e48f9aa23 scripts/lib/resulttool/report.py: Add more result types
Add additional result types into the dictionary to handle dejagnu style
test results. These include PASS, FAIL, XPASS, XFAIL, UNSUPPORTED,
UNTESTED, UNRESOLVED and ERROR.

(From OE-Core rev: 684fc36402a23760b203f4761f284043031c799c)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 16:44:09 +01:00
Nathan Rossi
98e5273971 oeqa/utils/nfs: Add unfs_server function to setup a userspace NFS server
Add a nfs module into oeqa utils. This module provides unfs_server which
allows a test case to build unfs3-native and setup the unfs server on a
target directory of the host. This directory is then shared and can be
mounted by the host or a target device attached to the host (e.g. qemu
via tap or slirp). The nfs server is setup over UDP and automatically
assigns user privileged ports. The function provides the UDP ports for
the server as part of a returned python contextmanager which handles
cleanup of the server process on completion or exception.

Also add a 'udp' arg to get_free_port to get a free UDP port.

Note: unfs3 still requires the host to have rpcbind or portmap running.

(From OE-Core rev: c754fd85be85ad0a381b642365eca17cea8eb627)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 16:44:09 +01:00
Nathan Rossi
b88477d069 binutils: Fix mips patch which changes default emulation
The patch incorrectly removes 'mips_elf32_ntrad_le_vec' from the
'targ_selvecs' replacing it with duplicate entries for
'mips_elf32_ntrad_be_vec'. Correct this so that the default binutils can
still handle 'mips_elf32_ntrad_le_vec' binaries.

(From OE-Core rev: cdd499f23c129306da879b6f614ca1b720724300)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 16:44:09 +01:00
Chen Qi
ca2207f418 commands.py: fix typo
(From OE-Core rev: 9b1c150573ffd0e68d37772d5f47482d86ddde6d)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Changqing Li
12bca525d5 libedit: fix failed to get history
Reproduce steps:
run fileman under examples, history command not work,
nothing is output.

Fix by increase history_offset when add history, if not,
it will make current history event not align with offset,
and cannot get history correctly.

(From OE-Core rev: a1ff64bee270c151532e68a5151e622de71b5321)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Chen Qi
e97ed8dcaa bbtests.py: remove recipe-depends.dot
This file is giving misleading information. There's a patch
for bitbake to remove the generation of this file. Remove
it from OEQA as well.

(From OE-Core rev: 691a45265a6a451c4bc7720ef39d99b84342822a)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Peter Kjellerstedt
bc1cedc3ea libffi: Make it build for MIPS o32
This solves the following errors:

  src/mips/o32.S: Assembler messages:
  src/mips/o32.S:286: Error: opcode not supported on this processor:
    mips32r2 (mips32r2) `s.d $f12,((16*4)-10*4)($fp)'
  src/mips/o32.S:287: Error: opcode not supported on this processor:
    mips32r2 (mips32r2) `s.d $f14,((16*4)-8*4)($fp)'

(From OE-Core rev: 250d85144c0118aebfce105f02425c25cb028087)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Adrian Bunk
7e158306e6 systemd: Update to the latest 242 branch
Remove backported patches applied upstream.

(From OE-Core rev: 5919729f1bd21ba8bf08ce02edb7cc3624c5d4b9)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Adrian Bunk
bcff4d74a1 linux-dtb.inc: Remove
It only printed a warning since Yocto 2.4,
documented to be removed in a future release.

(From OE-Core rev: 8976319d5ba0c9d4dbcee9b5226c105df30a2166)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Adrian Bunk
e886473bd4 systemd: Print a buildtime warning about the status with musl
It is possible if a user really has to use it, but not recommended.

(From OE-Core rev: 10c1a27501a32740a03c3c6c0684c7d24374af08)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
082e31ce2f sqlite3: explicitly set target endian-ness
Unless SQLITE_BYTEORDER is predefined, the code falls back to build
time huristics - which are not always correct (e.g. in sqlite 3.28.0
big-endian ARM is mis-detected).

(From OE-Core rev: c0fc43c228acd44499d9a1c257ec5e4cf42ed050)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
429f2e933e sqlite3: make CFLAGS consistent across native, nativesdk and target cases
The previous simplification:

  https://git.openembedded.org/openembedded-core/commit/?id=604777acfc54d285f315b622bd147ed02d55d6fd

looked OK but didn't actually work as expected. The native and
nativesdk classes re-set CFLAGS after the += has been applied and
so any modifications made via += are lost. Use _append instead.

(From OE-Core rev: b02d83f7ffc72b96799a7964a90709eef02aa29d)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
b054f8d3ba base-files: nsswitch.conf is glibc specific
(From OE-Core rev: e9f751a6fd6a4fc1cfac74202e1b71291aade705)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
ba6898d1b2 rootfs-postcommands.bbclass: add inittab tweak to read_only_rootfs_hook()
It's not clear that we actually need to call mount -o remount,XX from
the busybox-inittab inittab at all, but as we currently do, let's
respect read-only-rootfs in IMAGE_FEATURES and not remount / as rw.

(From OE-Core rev: 8840a831d47a94f36bb2e173164dbaf9b955e809)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
cfbd8247a6 packagegroup-core-boot: drop duplicate MACHINE_ESSENTIAL_EXTRA_RDEPENDS, etc
Default values for MACHINE_ESSENTIAL_EXTRA_RDEPENDS and
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS are set from bitbake.conf and so
don't need to be duplicated in the packagegroup-core-boot recipe.

(From OE-Core rev: 82983c94da2446ab86b189a0278156ee884d0976)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
2c7e401a1e tune-ep9312.inc: fix TUNEVALID description
(From OE-Core rev: 62afb4e79f3f8e491db290e5932a54f3dc3f962a)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
a1a16df6ac tune-arm1176jz-s.inc: add support for arm1176jz-s CPU specific tuning
(From OE-Core rev: 95823b7eab141f8969367c4f9b76b73bf2e664dc)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:22 +01:00
Andre McCurdy
8c6004341e tune-arm1136jf-s.inc: add hardfloat support
(From OE-Core rev: 6e057cc367ab9cf82901ba8c7c3cfab35c4cb9ab)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Andre McCurdy
b259bd31eb bitbake.conf: drop FETCHCMD, GITDIR, etc fetcher over-rides
This completes cleanup originally proposed in 2012:

  http://lists.openembedded.org/pipermail/openembedded-core/2012-July/064224.html

Current versions of bitbake have "sane" default fetcher commands
so it's no longer necessary for bitbake.conf to over-ride them.

(From OE-Core rev: 4ff058226cfc3e7d5bf9a873d1de4475f65ef2f2)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Adrian Bunk
4265f8f99c python: Remove PYTHONLSBOPTS that hasn't been set for some time
(From OE-Core rev: 26f086834c05f97cbfd17fd16e003a89753dc995)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Adrian Bunk
ccc19f8dd4 meta/recipes.txt: Stop documenting the long removed recipes-lsb4
(From OE-Core rev: 0d7d2afdad9f0a04c2090367107aa81e636a54b2)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Changhyeok Bae
0abaeab83f iputils: upgrade to s20190709
build system is changed to meson.

(From OE-Core rev: 3d2085642a8b4058ded6ab0c426feefc097f85c1)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Zang Ruochen
99e652fa88 python3-pip:upgrade 19.2.2 -> 19.2.3
(From OE-Core rev: f8901d9c2a019e37357e8d82e483948a1bdc7f5a)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Mazliana
1b376420f6 oeqa/kerneldevelopment: Able to apply a single patch to the Linux kernel source
Purpose of kernel development is basically to customize our
own recipes kernel by reused existing recipes.
 
This is an initiative of automating manual kernel development
test cases. Applying a single patch to the Linux kernel source
is one of the manual test cases of kernel development.

Objective of this test is as a developer we can make changes of
a file in kernel source and able to apply a single patch to
the kernel source.
 
ref:https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases

(From OE-Core rev: 00a5df641b94ef47eec36e742630db7b659102a4)

Signed-off-by: Mazliana <mazliana.mohamad@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Adrian Bunk
ed929bed4c world-broken.inc: Remove
Move still required entries as COMPATIBLE_HOST_libc-musl = 'null'
to individual recipes.

This also gives users a proper error message when trying to build
a known non-building package.

(From OE-Core rev: 8bbb17d2dcafa9b4e26941a55932f4be2782e1d1)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Adrian Bunk
b0efa1952c subversion: Upgrade 1.12.0 -> 1.12.2
Remove backported patch.

(From OE-Core rev: 947828b8e9c4f332533d1d6bd0750ff018d51295)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Adrian Bunk
18176f5cc2 flac: Upgrade 1.3.2 -> 1.3.3
Remove backported patch.

(From OE-Core rev: 16a2f41a29d80647bf60bff1391f015ad2d652f8)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Adrian Bunk
3c15c31cce glib-networking: Upgrade 2.60.2 -> 2.60.3
(From OE-Core rev: d0dcbf1f52e5754dfa3c17e132c6354d730a5e75)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Adrian Bunk
6919f53728 help2man: Upgrade 1.47.10 -> 1.47.11
(From OE-Core rev: 4f25d705d70fc533f4b14999cf48480eed3a6212)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Zang Ruochen
662c64166f libarchive:upgrade 3.3.3 -> 3.4.0
-libarchive/CVE-2018-1000877.patch
-libarchive/CVE-2018-1000878.patch
-libarchive/CVE-2018-1000879.patch
-libarchive/CVE-2018-1000880.patch
-libarchive/CVE-2019-1000019.patch
-libarchive/CVE-2019-1000020.patch
-libarchive/bug1066.patch
-libarchive/non-recursive-extract-and-list.patch
 Removed since these are included in 3.4.0.

-License-Update: Copyright year updated to 2018.

(From OE-Core rev: 4f8fa80b6c57f29c68678cabcac5d114d1ff0500)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Khem Raj
deafb85ecd go-1.12: update to 1.12.9 minor release
(From OE-Core rev: e8482da4543841899f7ed9091c87dd3e0f23bfd9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Alexander Kanavin
270a33863e boost: update to 1.71.0
Some notes:
- bjam bootstrap scripts were changed, and the patch for that had to be
  adjusted. tools/build/src/engine/build.sh now supports an --debug option
  which the bjam-native recipe can use to get the debug build of b2.
- a related patch was added to address a speed regression with the debug
  version of bjam
- gcc.jam patch had to be refreshed because boost added more "cpu-flags"
  lines.
- since 1.70.0, boost includes new cmake config files which are packaged
  in ${PN}-dev now so they make it into the SDK. (although 1.71.0 is needed
  to fix some bugs in them)

(From OE-Core rev: 810aded01fc2ae2c27c2573135c20947453e50c6)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Tim Blechmann
601c222f86 icecc: blacklist systemtap
compiling systemtap with icecc causes the following build failure

> build/tmp/work/silvermont-64-poky-linux/systemtap/4.0-r0/recipe-sysroot/usr/include/python3.7m/modsupport.h:120:66: note: in definition of macro 'PyModule_AddIntMacro'
> HelperSDT/_HelperSDT.c:145:34: error: 'PyTrace_RETURN' undeclared (first use in this function); did you mean 'PyTrace_C_RETURN'?

(From OE-Core rev: 66719424096eb0d3470647579364efe1556dc7b6)

Signed-off-by: Tim Blechmann <tim@klingt.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Martin Hundebøll
4cac7b1553 initscripts: remove warnings on read-only-rootfs (again)
When the populate-volatile.sh initscript tests if a configured symlink
is already in place, it uses readlink with the '-f' (follow) option:

> [ "$(readlink -f $source)" = "$dest" ]

If the test fails, it proceeds to delete the exisiting folder/file, and
create the configured symlink.

However, the '-f' option to readlink makes it follow symlinks pointing
at symlinks. If the $dest argument is a symlink, the above test fails,
and warnings are printed due to changing a read-only rootfs.

This is the case for /tmp, and /etc/resolv.conf:
> /tmp -> /var/tmp -> /var/volatile/tmp
> /etc/resolv.conf -> /var/run/resolv.conf -> /run/resolv.conf

Fix the warnings by removing the '-f' option, so that the test matches
the configuration.

[ YOCTO #10814 ]

(From OE-Core rev: fb028a0a25c02ab56ad262afd8e6e9495a44673d)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Alexander Kanavin
3f5c70649a images: use 512M of RAM in qemu if 'opengl" is in DISTRO_FEATURES
256M was found to be no longer sufficient, as the X server fails to
start with the modesetting driver and 3D enabled.

Only images that actually include X11 are adjusted.

(From OE-Core rev: 9dd0812acc73287287b48d28e0935baf7f545b58)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Trevor Gamblin
1ff7748a61 lighttpd: drop hard-coded lua version in PACKAGECONFIG
When building lighttpd with PACKAGECONFIG_append_pn-lighttpd = "lua" in local.conf,
bitbake gives the following error:

ERROR: Nothing PROVIDES 'lua5.1' (but /home/tgamblin/build/oe-core/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb DEPENDS on or otherwise requires it)
NOTE: Runtime target 'lighttpd' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['lighttpd', 'lua5.1']

Removing the "5.1" from the PACKAGECONFIG line in lighttpd_1.4.54.bb fixes the issue.

(From OE-Core rev: 5ee9be17407ae0c23dc056c98b4a6818d2a845d6)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Alexander Kanavin
ab840563bc python3-numpy: update to 1.17.0
Rebase files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch

License-Update: clarified license for numpy/core/src/multiarray/dragon4.c (it is MIT)
(From OE-Core rev: e11982182acc65913c6e3438304e8a15fe3792a2)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-28 11:31:21 +01:00
Trevor Gamblin
c17113f1e2 quilt: added less to RDEPENDS list
The quilt "series" option relies on "less -R" but, since that
option is not enabled by busybox in oe-core by default,
hard-code the dependency on 'less'.

>From 'man less':
   -r or --raw-control-chars
      Causes "raw" control characters to be displayed. ...
   -R or --RAW-CONTROL-CHARS
      Like -r, but only ANSI "color" escape sequences are
      output in "raw" form.  ...

In 2018, BusyBox's less added:
   8528d3d4f less: optional support of -R
but it is not enable by default for oe-core. While we could
enable the option, all known use-cases involve larger, more
developer-oriented recipes such as quilt or man pages.

(From OE-Core rev: 64f9fd2a1ebfad102140801f8be8b8be33082d61)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Trevor Gamblin
52748ecbbe quilt: Export QUILT_PC variable in ptest Makefile
The quilt ptest uses a custom Makefile to implement the
"make check" rule, but the ptest Makefile does not export
the variable QUILT_PC, which is user-settable and normally
defaults to ".pc". This causes failures e.g. import.test
with "rm -rf patches/ %{QUILT_PC}/", evaluating to
"rm -rf patches/ /" if the variable is not set by the
Makefile.

These ptests broke in:
  73d6034f6b quilt: update to 0.66
when the upstream quilt developers enabled users to specify
their own QUILT_PC string.

(From OE-Core rev: 7ef7923bd9161d562298ace68491a2230210c3e4)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Hongxu Jia
fc85db13d9 ncurses: upgrade 6.1+20181013 -> 6.1+20190803
(From OE-Core rev: 8c5dc072b24c1b82b9254a80efde91aff8e8fa76)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Hongxu Jia
7becded10e distcc: upgrade 3.3.2 -> 3.3.3
(From OE-Core rev: 43faa66ff746b60a1a845472e7a66ab204854c77)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Zang Ruochen
a44adae844 python3-pip:upgrade 19.2.1 -> 19.2.2
(From OE-Core rev: c4b5aecc691f3c58318964009928bc7f1acc8adb)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Zang Ruochen
fc3cc954db lz4:upgrade 1.9.1 -> 1.9.2
(From OE-Core rev: 4ee4e7a2a8eddfa2700ad7a289b58019a656d5ca)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Ross Burton
f40a5d240c pango: upgrade to 1.44.5
This release ships some files that were previously missing from git but needed
for the test suite.

Add RDEPENDS on locale-base-en-us as some of the tests explictly use it.

No need to depend on liberation-fonts, all of the tests use Cantarell.

With these changes, just one test fails (filed upstream as
https://gitlab.gnome.org/GNOME/pango/issues/405) and there are no skips.

(From OE-Core rev: 6db9109058be33b10d68949fe72273e8a92f9f12)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
7143f6d5f6 createrepo-c: upgrade 0.14.3 -> 0.15.0
Disable delta-rpm, which oe-core does not use.

(From OE-Core rev: a9d8d8a52df0d713d9b2f87b1d0c8e5936512d81)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
793640e07b libmodulemd: depend on target python at build time
meson build system is importing sysconfig, which requires
having a target confiuguration available.

(From OE-Core rev: 6763c89611f7cc4a1ba9098222069a58148d44d9)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Khem Raj
89a01ef7d3 libffi: Upgrade to 3.3-rc0
libffi 3.1 release has been a bit aged and new architectures, compilers
have since been come on stage to compile it, we have been carrying
patches, but its better to use the latest 3.3 rc0 which has lot of these
issues handled and is in good shape.

Use 3.3~rc0 for PV to keep room for upgrade path without PE bump

fix the multilib header conflict

file /usr/include/ffi.h from install of libffi-dev-3.2.1+3.3+rc0-r0.core2_32 conflicts with file from package lib64-libffi-dev-3.2.1+3.3+rc0-r0.x86_64

(From OE-Core rev: 06e731bdea527d5c42e99bbcef7f2835e158c0a0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Khem Raj
6d935edee9 opensbi: Disable SECURITY_CFLAGS since it cant link with libssp
(From OE-Core rev: a0f5c84c393107e3d054a5804748f046dffef8b9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
1cff1bc3ed epiphany: upgrade 3.32.3 -> 3.32.4
(From OE-Core rev: c3503a76431dce33e63fefecd0b5e7d809705913)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
c7f145af5e vala: upgrade 0.44.5 -> 0.44.7
(From OE-Core rev: 71e030b6dae891ea039f538a51c82ed3921dcea7)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
b8c9cd7d96 rt-tests: exclude another development version
(From OE-Core rev: e23adb4901e261e8c80fce92d4eca1c74b3c049c)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
3f307c4708 libdazzle: upgrade 3.32.2 -> 3.32.3
(From OE-Core rev: 5bf5fdd60e079d8fac0f8d7a34a41ce185761c8a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
9e6f0433aa desktop-file-utils: upgrade 0.23 -> 0.24
(From OE-Core rev: 4c7860eb21281c250ccfa8311754bd6ad3e0a0b3)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:27 +01:00
Alexander Kanavin
1bab9aa31e gtk-doc: upgrade 1.30 -> 1.31
Drop backported patch.

(From OE-Core rev: bf9cff0177aad35efe58276e1dd65b47872dc6d5)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Yuan Chao
4e4ebda479 libnss-nis: upgrade 3.0 -> 3.1
Remove patch 0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch
since this is included in 3.1

(From OE-Core rev: dd6cdf637819933f5c9eb82298a0442826113234)

Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Changqing Li
4e7557640c qemumips/qemumips64: move QB_SYSTEM_NAME to corresponding conf
Configuration:
MACHINE = qemumips64

bitbake lib32-core-image-minimal
runqemu slirp nographic qemumips64 ext4

Error:
ERROR - Failed to run qemu: qemu-system-mips: unable to find CPU model 'MIPS64R2-generic'

Fixed by moving QB_SYSTEM_NAME to Respective configuration file

(From OE-Core rev: e724e8836ed614ff8eaa0d0d9c51d22ee62576b3)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Adrian Bunk
edc6e1458c btrfs-tools: Add a PACKAGECONFIG for zstd
(From OE-Core rev: 88e61a317f44dfc5e2f7a037353d500f80c75d02)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Anuj Mittal
f326d31c4e patch: backport fixes
The original fix for CVE-2018-1000156 was incomplete. Backport more
fixes done later for a complete fix.

Also see:
https://savannah.gnu.org/bugs/index.php?53820

(From OE-Core rev: 9ea833b7d1655e042a513ea2225468c84f1c8bfb)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Khem Raj
0f0c56c40c gcc: Search in OE specific target gcclibdir
We put gcclibir to be /usr/lib/<arch>/... and not default
usr/lib/gcc/<arch>, therefore make the include search path also look
into this directory, this should help in finding gcc headers like omp.h

(From OE-Core rev: 121ce09332099ab7ea695a3495daf4f904f69ae5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Hongxu Jia
0d5c966c30 nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd
On systemd, it set RLIMIT_NOFILE to 512k, since do_testimage
for core-image-sato-sdk has memory limitation (256Mib) which
caused rpc.statd failed with out of memory.
[  531.306146] Out of memory: Kill process 193 (rpc.statd) score 200 or sacrifice child

The rpc.statd and rpc.mountd allocates memory according to
RLIMIT_NOFILE, so decrease it to 4k to keep sync with sysvinit

After applying the patch, the memory cost is the same with sysvinit:

root@qemux86-64:~# systemctl status nfs-statd
* nfs-statd.service - NFS status monitor for NFSv2/3 locking.
   Loaded: loaded (/lib/systemd/system/nfs-statd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-08-20 03:16:18 UTC; 3min 26s ago
 Main PID: 343 (rpc.statd)
    Tasks: 1 (limit: 271)
   Memory: 1.0M

root@qemux86-64:~# systemctl status nfs-mountd
* nfs-mountd.service - NFS Mount Daemon
   Loaded: loaded (/etc/systemd/system/nfs-mountd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-08-20 03:19:01 UTC; 1min 21s ago
 Main PID: 451 (rpc.mountd)
    Tasks: 1 (limit: 271)
   Memory: 736.0K

Suggested-by: Chen Qi <qi.chen@windriver.com>
(From OE-Core rev: 6d61cd2bdc9e326eaa59082b5dd7423e522b96d3)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Oleksandr Kravchuk
66990a7ac7 python-setuptools: update to 41.2.0
(From OE-Core rev: b9769fd1072426be2236bfc71db8e327fecda78d)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-22 22:48:26 +01:00
Alexander Kanavin
5040d131ca conf/conf-notes.txt: add a mention of common tools
They remain not as widely known as they should be;
perhaps mentioning them in the environment init banner could help.

(From meta-yocto rev: 66777ed9a12e6a651b95859ecc2919aa88c128ba)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:58:09 +01:00
Alexander Kanavin
a549868e3d conf/conf-notes.txt: add a mention of common tools
They remain not as widely known as they should be;
perhaps mentioning them in the environment init banner could help.

(From OE-Core rev: b19f8e9eb67894bbac145e807bf2e1b330dc1cd9)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:55:48 +01:00
Ross Burton
58ab85d3e0 systemd: add PACKAGECONFIG for gnu-efi
Add a PACKAGECONFIG for gnu-efi, by default the meson.build looks explicitly in
/usr/include and /usr/lib for gnu-efi, and if it is present on the host the
build will fail.

[ YOCTO #13487 ]

Original patch by Chin Huat Ang.

(From OE-Core rev: 050cda9f02c6a5c773edf092514b173839569a48)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Wes Lindauer
fbd9c8b427 libunwind: Fix MIT license file checksum
MIT license files must include the copyright notice.

(From OE-Core rev: 285b91a9b687be2ac6a398f66d7173384d8976af)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Wes Lindauer
370ae758d4 sudo: Fix BSD license file checksum
BSD license files must include the copyright notice.

(From OE-Core rev: f5cfcaa79fd3a2cfd9299f2c8e7686b502e52551)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Wes Lindauer
77be098e14 shadow: Fix BSD license file checksum
BSD license files must include the copyright notice.

(From OE-Core rev: b57f10c08bef1005b4bb195b84e39cab0e251420)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Wes Lindauer
c87115772d openssh: Update LICENSE field with missing values
The LICENSE file states that some code is licensed under BSD, some under
ISC, and some under MIT. The LICENSE field should reflect all of these.

(From OE-Core rev: 91096392cf46cae369849723cea14a9da1f3053b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Wes Lindauer
3e8ea5a406 iw: Fix license field to BSD-2-Clause
Using just "BSD" license implies BSD-3-Clause and this recipe appears to
be closer to a BSD-2-Clause.

(From OE-Core rev: b90d9f0c2084cce8d245fe683b45fb344c6f1cb8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Anuj Mittal
7ef44dbd3b binutils: fix CVE-2019-14250 CVE-2019-14444
(From OE-Core rev: abdc51527988afdcfd2db6dc08ebb6083a341be9)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Otavio Salvador
eaa58d850a kmscube: Bump revision to f632b23
This includes following changes:

f632b23 drm: Find a proper modeset device, is none is provided

(From OE-Core rev: 8b77262bdaa8cf825133171f898cc20e89909df7)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Oleksandr Kravchuk
71f9386801 git: update to 2.23.0
(From OE-Core rev: f70d00ff6120602d92fdb353231e763b23a3f42a)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Oleksandr Kravchuk
95af995462 cups: update to 2.2.12
(From OE-Core rev: 5d24e011d9c547ac6339bdc1d40e7a613692da30)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Zang Ruochen
cc87b0493a acpid: upgrade 2.0.31 -> 2.0.32
(From OE-Core rev: aaa5902921d91fb18e283e2e01feccd5cddb157f)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Otavio Salvador
3f0a05160b linux-firmware: Upgrade 20190618 -> 20190815
License-Update:
- WHENCE: New firmware files additions and version updates

(From OE-Core rev: b4c8f2f139d0eeb2ebef3dc5f8309486afdea3d4)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Mingli Yu
cd86f35cf4 python3: fix the test_locale output format
Before this patch:
 # python3 -m test -v test_locale
 [snip]
 test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9') ok
 [snip]

 After this patch:
 # python3 -m test -v test_locale
 [snip]
 test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9')... ok
 [snip]

Make the test ended with "... ok" is common in python
unittest world, we should make it keep consistent
with other test cases in case it may be ignored to
record in the report if we use the common filter
"... ok".

[YOCTO #13298]

(From OE-Core rev: 4e698cf8f3a9c661f5b67c6001ad4d92b574d136)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Philippe Normand
0cec7b1d23 libtasn1: Enable nativesdk support
This is required before enabling p11-kit support by default in gnutls.

(From OE-Core rev: 2a35202dbffd31eac1c00c03497549805853ad6c)

Signed-off-by: Philippe Normand <philn@igalia.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Jaewon Lee
8f29534ccb devtool: build: Also run deploy for devtool build if applicable
Right now `devtool build` runs populate_sysroot and packagedata tasks.
Adding deploy to this list, if the recipe has the deploy task, so that
the newly built artifacts are available in the deploy directory.
Applicable only for packages with deploy task, such as kernel.

[YOCTO#13382]

(From OE-Core rev: b38a1328f0c7bc4b4102a05daee4058fd3214489)

Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Lei Maohui
fe856ba7df at: fix a spelling mistake.
"account" not "acount".

(From OE-Core rev: ac379579c0e5883ec8a79244cd4036f2382b05d1)

Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Jon Mason
87138c4c2b resulttool: Prevent multiple results for the same test
Currently, if a test occurs multiple times over different series, the
code will sum these.  This can lead to confusion over the desired
results.  Change the code to report the redundant tests and skip adding
an additional values.

(From OE-Core rev: caeaa0648dff64c56a33f52e45e82bfab6719e3e)

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Lei Maohui
12722ccf05 nativesdk-qemu: support aarch64_be.
Otherwise, there will be "no aarch64_be-softmmu" error.

(From OE-Core rev: 237b677f2501752d3ec339e87aa9f31fc6926afd)

Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Alexander Kanavin
04731f17e8 mesa: fix upstream version check
(From OE-Core rev: 6a33e35ad93b9023c15bdc3201b84c3ff98c750d)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Oleksandr Kravchuk
0e46416430 bitbake.conf: fix XORG_MIRROR URL
(From OE-Core rev: d69f67f5d8b90d7846425f0569e5c121e3bdd062)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Ricardo Ribalda Delgado
c6206c05fb packagegroup-core-base-utils: Make it machine specific
Recipe makes use of the variable MACHINE_FEATURES, which is machine
specific:

  ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "kbd", "", d)}

This patch avoids multiconfig errors such as:

ERROR: mc:qt5222:packagegroup-core-base-utils-1.0-r0 do_package_qa_setscene: 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:do_package_qa_setscene(d)
     0003:
File: '/workdir/repo/poky/meta/classes/insane.bbclass', lineno: 1026, function: do_package_qa_setscene
     1022:SSTATETASKS += "do_package_qa"
     1023:do_package_qa[sstate-inputdirs] = ""
     1024:do_package_qa[sstate-outputdirs] = ""
     1025:python do_package_qa_setscene () {
 *** 1026:    sstate_setscene(d)
     1027:}
     1028:addtask do_package_qa_setscene
     1029:
     1030:python do_qa_staging() {

(From OE-Core rev: 70234797b973046a6198bea684bdb757def2dce1)

(From OE-Core rev: 5e9185d34b3a45aadec96273a0570ec5f05f6aec)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 21:52:59 +01:00
Richard Purdie
bb1e701fb1 bitbake: runqueue: Optimise build_taskdepdata slightly
Rather than repeatedly calling mc_from_tid() do this in the parent,
removing around a million function calls. Takes time spent in this
function from 40s to 36s.

(Bitbake rev: 28b3f0d8867804799420689c314ac4a8f01efb8c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:30:13 +01:00
Richard Purdie
4cc3c0daed bitbake: runqueue: Further optimise holdoff tasks
There are other data structures which can be reprocessed at the same
time as holdoff_tasks, further improving build efficiency in various
places.

(Bitbake rev: 02090b3456b7a2de12e72dfeaabfd3b631609924)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:30:13 +01:00
Richard Purdie
fece8f4737 bitbake: runqueue: Optimise holdoff task handling
We don't need to process the holdoff task list until we're executing tasks
which saves some data manipulation, at the cost of some data structures
not being correct at all times. This saves significant amounts of time
in various profile charts of larger builds.

(Bitbake rev: 270f076111b12eab358417b0c4cf9c70d7cc787a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:30:13 +01:00
Richard Purdie
3afc48c38f bitbake: runqueue: Small but critical fix
We've observed do_package and do_package_setscene running in parallel. The
reason is that holdoff_tasks wasn't getting updated. Looking at the code, it
would seem the reason is that the task was in pending_migrations and hence
changed wasn't set and holdoff_tasks wasn't updated.

Fix this. It only affects builds with rehashing enabled.

(Bitbake rev: e26e61e84575669bd223f6ab316798097ed95ec8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:30:13 +01:00
Richard Purdie
e087855d48 bitbake: cookerdata: Delay the setup of the siggen slightly to allow metadata defined siggens
If we define a metadata siggen it can fail due to the early init here. Move
slightly later to avoid those failures which allows fixes in OE to the
check-layer script related to the hash equiv siggen.

(Bitbake rev: fdf5c341f3393173876a753c46c9bd067eb2b353)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:30:13 +01:00
Alistair Francis
dd6358438c qemuriscv64: Specify the firmware as a bios instead of kernel
Now that we have a -bios option for the RISC-V virt machine in QEMU we
can pass OpenSBI in via -bios and the kernel in via -kernel. We no
longer need to pass the kernel in via -device loader so let's remove
that.

(From OE-Core rev: 65e7f371f19e053d0bac7771a80615f6bada74c7)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Alistair Francis
23662395e2 scripts/runqemu: Add support for the BIOS variable
Add support for specifying a BIOS the same way that the KERNEL variable
is specified. This includes specifying a QB_DEFAULT_BIOS variable.

(From OE-Core rev: fc2a2260aa22a81da6619b4affaf8ae0b5556a34)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Alistair Francis
5a308c55a6 qemu: Upgrade to version 4.1
(From OE-Core rev: 50a7dec95618080962e56fd347f505e691b7ad6f)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Jason Wessel
8102c55bc1 libc-package.bbclass: Split locale hard link processing into two parts
The locale-processing in cross-localedef was proven to be unsafe to
run in parallel due to the way it tried to make hard links to files
that could disappear before the link operation was completed.

To avoid corruption of the pseudo database, and create a
deterministically generated link tree, the operation of the locale
generation and the hard link resolution have been split into two
separate parts.  A side effect of this change is that the do_package()
rule for glibc-locale will be slightly smaller because some of the
hard links were missed in the past, particularly if you had a lot of
cpus free to perform the work.

Before the patch:
% du -sk locale-tree
312524  locale-tree

With the patch:
% du -sk locale-tree
290772 locale-tree

A number of comparisons were performed such as diffing the output,
cross checking the link references using tar's listing output, and
comparing against the results with out a parallel build to ensure the
locale-tree is correct in its final form.

[YOCTO #11299]
[YOCTO #12434]

(From OE-Core rev: 93d935927dd0ec0fa6f0a80a71236a7b00a5d1a4)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Jason Wessel
fb20d73461 cross-localedef-native: Add hardlink resolver from util-linux
The hard link resolver that is built into localedef cannot be run in
parallel.  It will search sibling directories (which are be processed
in parallel) and perform a creation of a .tmp file and remove the
original and move the .tmp file in.  The problem is that if a probe
occurs a hard link can be requested to the file that is being removed.
This will lead to a stray copy or potentially, on a loaded system
cause race condition which pseudo cannot deal with, where it is left
with a hard link request to a file that no longer exists.  In this
situation psuedo will inherit the permissions of what ever the target
inode had to offer.

In short, there are two problems:

  1) You will be left with stray copies when using the hard link
     resolution that is built in while running in parallel with
     localedef.

  2) When running under pseudo the possibility exists for uid/gid
     leakage when the source file is removed before the hard link can
     be completed.

The solution is to call localedef with --no-hard-links and separately
process the hardlinks at a later point.  To do this requires the
inclusion of the hardlink utility found in modern versions of
util-linux.  Most host systems do not have this, so it will be
included with the cross-localedef binary.

There are two patches here.  The first imports the raw version of
hardlink.c and a couple of header files directly from util-linux. The
second patch applies the fix-ups to make it compile, along with a
change to recipe to package the new binary.

[YOCTO #11299]
[YOCTO #12434]

(From OE-Core rev: 57e2e498ffb675d274aa95b10c14bd81742d2761)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Adrian Bunk
10d40f5971 kmod: Replace dolt hacks with backport of upstream dolt removal
(From OE-Core rev: 66492f40c23778a5644bc4e7f4acf7e4ef16bf36)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Adrian Bunk
fe6d059212 shadow: musl now supports secure_getenv
This fixed a potential security vulnerability on musl and made
the patch obsolete.

(From OE-Core rev: 30b6ae3084f63df437a4d6dd859bca674ca01e12)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Kevin Hao
f45a48887f psplash: Avoid mount the psplash tmpfs twice
The /etc/init.d/psplash.sh will be invoked both in boot and
shutdown/reboot. And the psplash tmpfs will be mounted twice. This
will trigger a bug in umount and let the system hang when
shutdown/reboot. I already made a patch [1] to fix the issue in
umount, but there is no reason for the psplash to do the twice mount.
So also fix it.

[Yocto 13461]

[1] https://lore.kernel.org/util-linux/20190819083022.12289-1-kexin.hao@windriver.com/T/#u

(From OE-Core rev: 5cea0448c5c75b9defc5fc2582e9b0c14e26a4e9)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
He Zhe
adac6e9cda ltp: Fix ustat02 failure
Backport a patch to fix the following failure.
ustat02.c:44: FAIL: ustat(2) failed to produce expected error; 14, errno: EFAULT: EINVAL

(From OE-Core rev: e05f5e1d44293827260541e301ce25d15eb405af)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
He Zhe
f5a8ce775c ltp: Fix tgkill03 failure
Backport a patch to fix the followig failure.
tgkill03.c:94: FAIL: Defunct tid should have failed with ESRCH: SUCCESS

(From OE-Core rev: 92e873c63499850f1f9461d3babde13d44bc8f9c)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Richard Purdie
95c604953d package: Fix race between do_package and do_packagedata
do_package has PKGDESTWORK as a cleandir and do_packagedata has it as an sstate-input
dir. This means do_package wipes out the directory at both do_package and do_package_setscene.

do_package_setscene and do_packagedata_setscene can run in parallel when installing from
sstate which means they can wipe out parts of each other leading to interesting
build failures.

We therefore have to add in a hardlink copy so that the directories can work independently
of each other.

(From OE-Core rev: 692b2046bb60806ee6bbde6ba15bd1637b00efb1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:02 +01:00
Richard Purdie
d67fbf68f6 yocto-check-layer: Ensure we use OEBasicHash as the signature handler
The layer checks are designed to work with OEBasicHash so ensure that handler
is in use rather than the new hash equivalency one as an example.

(From OE-Core rev: a10bf92516a4771e2dc49ba9f74323d7a87a1619)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Oleksandr Kravchuk
b36c32ca2b ofono: update to 1.30
Removed upstreamed patches.

(From OE-Core rev: 79a14772ef2ab6c73bb438377cd259c484020818)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Chen Qi
779875ad69 target-sdk-provides-dummy: extend packages for multilib case
If we have installed some lib32 package which depends on perl/bash,
then populating sdk for that image would fail with the following error.

  Error:
  Problem: package lib32-libxml-namespacesupport-perl-1.12-r0.corei7_32 requires lib32-perl, but none of the providers can be installed

    package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with /usr/bin/perl provided by lib32-perl-5.30.0-r0.corei7_32
    package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with libperl.so.5 provided by lib32-perl-5.30.0-r0.corei7_32

This could be produced by the following steps:
1. IMAGE_INSTALL_append = " lib32-valgrind"
2. bitbake core-image-minimal -c populate_sdk

We need to extend all packages in DUMMYPROVIDES to avoid such problems.

(From OE-Core rev: 6a38c6aafc2956bb6f7824eff4ac0f630f02da75)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Changqing Li
04414b62a3 dbus: disable test-bus
test-bus take long time to finish, sometimes longer than ptest-runner's
timeout limit 300s, so skipped it for now

[YOCTO #13409]

(From OE-Core rev: 76caa7aece5cc8513989f77bb15944a22d17edf5)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Oleksandr Kravchuk
3127b3975c python3-scons: update to 3.1.1
(From OE-Core rev: ae2869c82af3a826c9eedf5207c5d6f61f0df5e8)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Oleksandr Kravchuk
0b2bc3b9fd python-setuptools: update to 41.1.0
(From OE-Core rev: 841d458f01c8c2d3e67775bad7d018b047604f75)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Oleksandr Kravchuk
93bbdd55bd ffmpeg: update to 4.2
(From OE-Core rev: 658e0831d55540ed5905902aacb269d3bc43653f)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Khem Raj
8e96692a59 gcc-9: Upgrade to 9.2
BugFix only release see [1] for details

[1] https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2

(From OE-Core rev: d00fac5bb9c479b5709ce73ae7fc0a14474a69c9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Khem Raj
b95140cad3 systemd: Refresh patch after removal of __secure_getenv patch
(From OE-Core rev: 5268ee5b0ae1a11bf3c6cf673c8c17932ba630d4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Khem Raj
a02a5db446 systemd.bbclass: Limit rm_sysvinit_initddir and rm_systemd_unitdir to target alone
These postfuncs cause native recipes to rebuild when changing system
init provider between sysvinit and systemd. Some of these native recipes
are pretty early in dependency chain ( e.g. util-linux ) which can casue
rebuild of pretty much everything including compiler.

Found with bitbake-diffsigs

Hash for dependent task python/python3_3.7.4.bb:do_prepare_recipe_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-devt
ools/python/python3_3.7.4.bb changed from 2a45fe0cd0d3640a88c4a5c8b1880c4e9a089cc7446a91d2a920c1cef6fa916a to bc2a0921cce50da1b7be3b59a3d8211ec
2a31262493ffa5909acbb7116fad3bf
    Hash for dependent task util-linux/util-linux_2.34.bb:do_populate_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-
core/util-linux/util-linux_2.34.bb changed from 15d6e165f025f10c2c455df8a875cafe021eaed4214c793e708d4827a58ca89d to 54e542d5da99cacfc9290ef5d27
9de50bdcb9195f67ae6dfff59fe41d10f7bd2
        Hash for dependent task util-linux/util-linux_2.34.bb:do_install:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-core/
util-linux/util-linux_2.34.bb changed from e25b1119ce8dd7ca43fbd2db771e04fa6ff6b9d701fd78ac6c443224b036ed9f to bb5b172a83e7edd272402a9dcd80c4e1
29aa1ecb824c2cfa388086cfed24fef5
            basehash changed from 62df6610eab9c1b1a17d7132943507641c8538690f26186843c86144d4598e64 to 80471f7c0bded9d1b593da69708b0e0f10882db08
5e1bf769edb3018e6c744d0
            Variable rm_sysvinit_initddir value changed:
            @@ -11,4 +11,4 @@
                         shutil.rmtree(sysv_initddir)

             DISTRO_FEATURES{systemd} = Unset
            -DISTRO_FEATURES{sysvinit} = Set
            +DISTRO_FEATURES{sysvinit} = Unset

(From OE-Core rev: f2d60e0f6a8e93cb0779f4719e58b99ad01fb954)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Khem Raj
634b65b7ff util-linux: Make pam specific logic apply to target recipe alone
This helps with a case where a distro builds one image with systemd and
another with sysvinit, it ends up recompiling almost everything since
python3-native gets rebuilt and tracing dependencies with
bitbake-diffsigs shows that the chain ends at util-linux-native being
recompiled because distro features now does or does not have 'pam'

Hash for dependent task python/python3_3.7.4.bb:do_prepare_recipe_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-devt
ools/python/python3_3.7.4.bb changed from 8befaac4f995aaff3f95d27c9caaf1006f86e1344b02c1ae82f5d12f885f2240 to 2a45fe0cd0d3640a88c4a5c8b1880c4e9
a089cc7446a91d2a920c1cef6fa916a
    Hash for dependent task util-linux/util-linux_2.34.bb:do_populate_sysroot:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-
core/util-linux/util-linux_2.34.bb changed from 0db292cb2e37d5788bdcf51038b2802d748b719d860aca3a26d7a793b0cf3905 to 15d6e165f025f10c2c455df8a87
5cafe021eaed4214c793e708d4827a58ca89d
        Hash for dependent task util-linux/util-linux_2.34.bb:do_install:virtual:native:/mnt/a/yoe/sources/openembedded-core/meta/recipes-core/util-linux/util-linux_2.34.bb changed from 54bb4ee6bdb5c7fc260dabddb4932cb0e554a62cd92aba080a18306291fb470b to e25b1119ce8dd7ca43fbd2db771e04fa
6ff6b9d701fd78ac6c443224b036ed9f                                                                                                                           basehash changed from 8e8687a866689a697001dedc0a43f478e68e6efe270bd77362f24c6000f9e882 to 62df6610eab9c1b1a17d7132943507641c8538690
f26186843c86144d4598e64
            Variable do_install value changed:

rm -f ${D}${bindir}/chkdupexe
-   if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
+   if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
        install -d ${D}${sysconfdir}/pam.d
        install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser
        install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l
@@ -47,5 +47,4 @@
        rm -f ${D}${base_sbindir}/nologin
        rm -f ${D}${base_bindir}/kill

    -DISTRO_FEATURES{pam} = Unset
    PACKAGECONFIG{pam} = Unset

So far it seems this pam conditional code in util-linux is target
specific and would not apply to native or nativesdk recipes

(From OE-Core rev: a57f56576eda4b3ad5496e375b432e06e34ad8b9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Khem Raj
a3cfd5c366 mesa: Add packageconfigs for vc4 and v3d
This helps in enabling them via packageconfig from SOC layers

(From OE-Core rev: 853179121e0f2149ca6365ac0b8ab5017079d5e6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Khem Raj
01165b43ff systemd: Drop musl __secure_getenv patch
This API is now implemented in musl [1]

[1] https://git.musl-libc.org/cgit/musl/commit/?id=7844ecb590893f8344324837956718001402d297

(From OE-Core rev: 46e49b14b52ebc9c7076488ad858083f8270ce9f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Khem Raj
e3fa57021c musl: Update to latest tip
Fixes build regressions on risc-v
Detailed changelog is here [1]

[1] https://git.musl-libc.org/cgit/musl/log/?qt=range&q=d0b547dfb5f7678cab6bc39dd736ed6454357ca4..29e8737f81ccc9fbadcf61a75318aa3d0516aafa

(From OE-Core rev: 0e590898134e3a9ae971ab0c5c570c6de3e162bd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Kai Kang
1072dae32e webkitgtk: disable gold on mipsn32
Using gold on mipsn32 still fails. It fails to run

$ bitbake webkitgtk -c configure

with configuration:

MACHINE ?= "qemumips"
DEFAULTTUNE = "mips64-n32"

(From OE-Core rev: d67417ec55f3f580159f2d05322a0444ca466872)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Alexander Kanavin
0e0589f81a linux-yocto: add drm-bochs support
This allows better modesetting support for the '-vga std'
emulated hardware provided by Qemu, which we want to
standardize on.

See here for background:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=13466

(From OE-Core rev: 569d3f5d0454ed31f2f6df29f1703246a3dcd715)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Bruce Ashfield
6390074c1b linux-yocto/4.19: make drm-bochs feature available
The other active kernel versions have this feature available. To
consistently enable the same video output for qemu, we can cherry
pick the feature to 4.19.

(From OE-Core rev: a777e0f34e106455f963bd58fd8728a16c588c4d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Mikko Rapeli
72641004f7 stress-ng: provide stress
Since stress-ng replaces and is compatible with stress,
provide stress to be compatible with the old recipe
and binary packages.

(From OE-Core rev: fd6cf57430b7c88525dc6711dadfbe8f02c44354)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Bruce Ashfield
d9f05b40d3 kconf_check: tweak CONFIG_ regex
As reported in https://bugzilla.yoctoproject.org/show_bug.cgi?id=12563,
the regex that matches valid CONFIG_ options was missing some of the
ones in net/netfilter/ipvs/Kconfig, and hence triggering invalid
option warnings.

By dropping the trailing space on the regex, we'll cover all the cases
for valid option.

(From OE-Core rev: 461a2f54751ca18e17f897b10d6c3c47dab1733a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Bruce Ashfield
abe7b8add8 kernel-yocto: import security fragments from meta-security
Adding the following fragments from meta-security to make them
centrally available and easier to maintain:

   283939d5c9e kernel-cache: add yama security fragments
   0b86f3fa241 kernel-cache: add ima fragments
   731b466654d kernel-cache: add smack
   813afe8ff47 kernel-cache: add apparmor fragments

(From OE-Core rev: 3063d64984e993d3e7dc2f4c80fb74005f5d6d7e)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Bruce Ashfield
00ad844fe9 linux-yocto: arch/x86/boot: use prefix map to avoid embedded paths
>From the kernel patch:

[
    It was observed that the kernel embeds the path in the x86 boot
    artifacts.

    From https://bugzilla.yoctoproject.org/show_bug.cgi?id=13458:

    [
       If you turn on the buildpaths QA test, or try a reproducible build, you
       discover that the kernel image contains build paths.

       $ strings bzImage-5.0.19-yocto-standard |grep tmp/
       out of pgt_buf in
       /data/poky-tmp/reproducible/tmp/work-shared/qemux86-64/kernel-source/arch/x86/boot/compressed/kaslr_64.c!?

       But what's this in the top-level Makefile:

       $ git grep prefix-map
       Makefile:KBUILD_CFLAGS  += $(call
       cc-option,-fmacro-prefix-map=$(srctree)/=)

       So the __FILE__ shouldn't be using the full path.  However
       arch/x86/boot/compressed/Makefile has this:

       KBUILD_CFLAGS := -m$(BITS) -O2

       So that clears KBUILD_FLAGS, removing the -fmacro-prefix-map option.
    ]

    Other architectures do not clear the flags, but instead prune before
    adding boot or specific options. There's no obvious reason why x86 isn't
    doing the same thing (pruning vs clearing) and no build or boot issues
    have been observed.

    So we make x86 can do the same thing, and we no longer have embedded paths.
]

This issue has been reported upstream, and a patch submission is
pending, but for now, we'll soak the proposed patch in linux-yocto to
see if any issues are found

[YOCTO: #13458]

(From OE-Core rev: 78b0ff5960814af935a8089ec49c51d76f148149)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Bruce Ashfield
ad525ae2dd kern-tools: Add SPDX license headers to source files
Integrating the following commit:

    Add SPDX license headers to source files

    Kconfiglib/* were under ISC license before they were imported
    here from https://github.com/ulfalizer/Kconfiglib
    Adjusting SPDX header to reflect that fact.

    tools/* all have some sort of GPLv2 headers; adding SPDX header
    to make it obvious.

    This address bug #13334 :
    https://bugzilla.yoctoproject.org/show_bug.cgi?id=13334

    Change-Id: I243f2dd266a398f982798b771e74a67be70ecb52
    Signed-off-by: William Bourque <wbourque@gmail.com>

(From OE-Core rev: eb60f1544fcafcfed7baecceec4549c4e86989a3)

Signed-off-by: William Bourque <wbourque@gmail.com>
Signen-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Bruce Ashfield
eb8a9e10ad kernel-devsrc: tweak for v5.3+
The 5.3 kernel has two changes that require tweaks to the minimal
kernel-devsrc package.

- 4ce97317f [x86/purgatory: Do not use __builtin_memcpy and __builtin_memset]

  This change removes the need for arch/x86/purgatory/string.c and
  instead reuses a copy in arch/x86/boot/compressed/, so we can't copy
  the file anymore. To support older kernels, we make the copy survive
  the non-existence of the file.

- b1663d7e [docs: Kbuild/Makefile: allow check for missing docs at build time]

  This change adds the sourceing of Documentation/Kbuild to the top
  level Kbuild file. So we now leave the copy of Documention/'s Kbuild
  in the devsrc.

(From OE-Core rev: 53e975c18a14ddb8ad7eab23c8e18e05517953cd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21 15:29:01 +01:00
Richard Purdie
20946c63c2 bitbake: runqueue: Ensure target_tids is filtered
bitbake <target> --runonly=fetch

failed as the target_tids list included entries which were no longer targeted
task ids. Fix this.

(Bitbake rev: 94e848ae6544e628a19cb97115279b0b1678967c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-16 10:05:33 +01:00
Richard Purdie
0b38a37e59 bitbake: hashserv: Ensure we don't accumulate sockets in TIME_WAIT state
This can cause a huge backlog of closing sockets on the server and
in our case we don't really want/need the protection TCP is trying to
give us so work around it.

(Bitbake rev: 7bc79fdf60519231da7c0c7b5b6143ce090ed830)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-16 10:05:32 +01:00
Robert Yang
2cb6a75b5a bitbake: bitbake: server/process: Handle BBHandledException to avoid unexpected exceptions
The parseBaseConfiguration() raises bb.BBHandledException(), but
BitBakeServer() didn't handle it, so we always got unexpected exceptions when
there were errors. For example:

=== Case 1:
* Add "print "hello"' in base.bbclass' def oe_import() function
def oe_import(d):
    print "hello"
[snip]

$ bitbake -p
ERROR: Unable to start bitbake server (None)
ERROR: Last 60 lines of server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
  File "/buildarea1/lyang1/poky/meta/classes/base.bbclass", line 21
    print "hello"
                ^
SyntaxError: Missing parentheses in call to 'print'

<The first exception>
During handling of the above exception, another exception occurred:
<Tracebacks>

<The second exception>
During handling of the above exception, another exception occurred:
<Tracebacks>

<The third exception>
During handling of the above exception, another exception occurred:
<Tracebacks>
[snip]

Now it looks like:
$ bitbake -p
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
ERROR: Error in compiling python function in /buildarea1/lyang1/poky/meta/classes/base.bbclass, line 21:

The code lines resulting in this error were:
     0001:def oe_import(d):
 *** 0002:    print "hello"
     0003:    import sys
     0004:
     0005:    bbpath = d.getVar("BBPATH").split(":")
     0006:    sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath]
SyntaxError: Missing parentheses in call to 'print' (base.bbclass, line 21)

=== Case 2:
* Add 'HOSTTOOLS += "hello"' to conf/local.conf:
$ bitbake -p
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
<Tracebacks>
[snip]
During handling of the above exception, another exception occurred:
[snip]
<Tracebacks>
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
  hello

The error message is printed by bb.fatal() which raises bb.BBHandledException(),
but BitBakeServer() doesn't handle it, so we got it.

Now it looks like:
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
  hello

No unexpected exceptions anymore.

[YOCTO #13267]

(Bitbake rev: 6e6865e6371dbd31a136eae64cc5b1fa5f5bee33)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-16 10:05:32 +01:00
Richard Purdie
5f0d31ce46 bitbake: runqueue: Ensure data is handled correctly
This doesn't appear to have ill effects right now but there is a correctness
issue which this so fix it.

(Bitbake rev: a5e084a266f63c2fd370122327615e49beaeb94e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-15 13:32:06 +01:00
Richard Purdie
2fa5d98f52 bitbake: runqueue: Fix data corruption problem
This was overwriting data in the parent which caused all kinds of
odd/weird failures.

(Bitbake rev: 4c5aeb424247a9d0c907524ffacd9c61fcdc0852)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-15 13:32:06 +01:00
Richard Purdie
a3c53bff11 bitbake: tests/runqueue: Fix tests
There were paths being accidentally included in some of the hashserv tests. Remove
that and update the hashes so the tests work independently of paths.

(Bitbake rev: 6ddb9f09cb60c2354fa6a67cce412c4dc1e7dc2d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-15 08:43:22 +01:00
Oleksandr Kravchuk
209f89ab8e libevent: update to 2.1.11
(From OE-Core rev: 6b36db836547a23f43c5f97bf3706d7b210c209c)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Oleksandr Kravchuk
48ce05fba3 librepo: update to 1.10.5
Also cleanedup the recipe.

(From OE-Core rev: 565aae4b4c1302a8a962a9f444d5382ea1043f40)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Oleksandr Kravchuk
9addf1c351 python3-git: update to 3.0.0
(From OE-Core rev: 8b9ea2defbaf6c22058bd97bfea50360fdd3e3c8)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Oleksandr Kravchuk
f6f926daca xrandr: update to 1.5.1
SRC_URI was moved from xorg-app-common.inc, since it has hardcoded file
extension (tar.bz2), but upstream stopped publishing tar.bz2 archives
for newer versions of the packages.

(From OE-Core rev: 36fa73a1ab1b4954c962cf6f01bba698f4e7c2f8)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Oleksandr Kravchuk
e7c57f87ce git: update to 2.22.1
(From OE-Core rev: 5b6e7d98f0d1be392d6c1efe2c69fef296d960c0)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Will Page
62e5c0d3bc uboot: fixes to uboot-extlinux-config attribute values
The way this class uses overrides to support generation of multiple
sections is subject to two different issues: 1) labels that conflict
with existing override names causing the value for the conflicting label
to be set for all labels, and 2) reusing the override list through each
iteration, prepending each new label to the list of overrides makes
earlier labels' value take precedence over later labels, making later
labels virtually impossible to customize.

The first issue is resolved by removing all label names from overrides
before iterating over labels.  The second issue is resolved by
generating a fresh list of overrides with only the current label added.

The current label is also appended to the list of overrides instead of
prepended, which makes it the highest priority override.  This is
matches the behavior of devtool-source.bbclass, which similarly
monkey-patches overrides.

Closes https://bugzilla.yoctoproject.org/show_bug.cgi?id=13469 .

(From OE-Core rev: 42b44fdd9e63b8d39cf83baecec08328275558ff)

Signed-off-by: Will Page <wpage@polysync.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Khem Raj
8af4442174 musl: Delete GLIBC_LDSO before creating symlink with lnr
Fixes rebuild failures after say do_compile fails

| ./tools/install.sh -D -r /mnt/a/yoe/build/tmp/work/riscv64-yoe-linux-musl/musl/1.1.23+gitAUTOINC+d0b547dfb5-r0/image/usr/lib/libc.so /mnt/a/yoe/build/tmp/work/riscv64-yoe-linux-musl/musl/1.1.23+gitAUTOINC+d0b547dfb5-r0/image/lib/ld-musl-riscv64.so.1 || true
| Traceback (most recent call last):
|   File "/mnt/a/yoe/sources/openembedded-core/scripts/lnr", line 24, in <module>
|     os.symlink(target, linkname)
| FileExistsError: [Errno 17] File exists: 'image/usr/lib/libc.so' -> '/mnt/a/yoe/build/tmp/work/riscv64-yoe-linux-musl/musl/1.1.23+gitAUTOINC+d0b547dfb5-r0/imageNone'

(From OE-Core rev: 78a75d240083a80d624074e058c9a222a8a7b5e7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Khem Raj
c47b8300be linuxloader: Add entries for riscv64
(From OE-Core rev: 1cd6ffcabea2036fde6493f75687e546c6fe003c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Khem Raj
9e2c3395fe gdb: Do not set musl specific CFLAGS
These settings are no longer needed because we define
gl_cv_func_gettimeofday_clobber=no already and stat issue is alrwady
fixed via [1]

[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3c025cfe5efc44eb4dfb03b53dca28e75096dd1e

(From OE-Core rev: c3f04bd4df3c67fc6c840fe0dd8e194e6663b02c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Oleksandr Kravchuk
bb7326c9f8 xf86-input-libinput: update to 0.29.0
(From OE-Core rev: e0de5df49e1d69f973c61578e54aced50e3eedc6)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Alexander Kanavin
21b9552645 ovmf: fix upstream version check
(From OE-Core rev: 7ec9997c86df11a9a08e1531269435010b12e8da)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Alexander Kanavin
12ff29c36a sudo: correct SRC_URI
The old URI returns 404, and has an invalid TLS certificate.

(From OE-Core rev: 73ff6aba0a53ffc3ee0a5859a3ad4c8021be4de0)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Alexander Kanavin
b199dd0edf insane.bbclass: in file-rdeps do not look into RDEPENDS recursively
Recursive RDEPENDS resolution requires that all of the dependent
recipes' packaging has completed. There is no mechanism to ensure that
and therefore races were observed.

This change effectively requires recipes to list their runtime file
dependencies explicitly rather than have them pulled indirectly.
This may require a bit of fixing in layers, but should result
in a better definition of runtime file dependencies.

(From OE-Core rev: 08e2b5a31b23b98459479caf6ec5f5c6fc19d57a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Richard Purdie
c56c9b7f2d gcc-cross-canadian: Drop obsolete shlibs exclusion
This is a very old change as and be inferred from the name in the comment.
We've since had many changes to pkgdata including separating it
to its own sysroot now so the reasons for this blanket exclusion are
likely long gone.

If the shlib provides were really the problem I'd much rather have
a dedicated variable for that too.

Removing this fixes missing dependencies on nativesdk-libc and other
libs which would then happen automatically.

(From OE-Core rev: 096fa15efbcb704451b2f38ceab36508ef64f07e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Khem Raj
1dc2823d62 gcc-runtime: Move content from gcclibdir into libdir
OE does not use the traditional /usr/lib/gcc prefix to store gcc-runtime
it basically is moved into libdir, however some newer files were
installed by newer versions of gcc especially libgomp ( omp.h openacc.h )
into gcclibdir, so we have content in both directories, this confuses
other tools which are trying to guess the gcc installation and its
runtime location, since now we have two directories, the tools either
choose one or other and we get inconsistent behavior, e.g. clang for
aarch64 uses /usr/lib but same clang for riscv64 chose /usr/lib/gcc

This change ensures that OE ends up with single valid location for gcc
runtime files

Move more common bits into common inc file

(From OE-Core rev: e9e5744ba8b0d43c8b874d365f83071ce20bf0a1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Khem Raj
e64e8aa725 oeqa/parselogs: grep for exact errors list keywords
Given grep expression looks for error strings regardless of the
semantics and this ends up it flagging things like

***********************
Log: /mnt/a/yoe/build/tmp/work/raspberrypi3_64-yoe-linux-musl/yoe-qt5-wayland-image/1.0-r0/target_logs/weston.log
-----------------------
Central error:                EGL_KHR_create_context_no_error EGL_KHR_fence_sync
***********************

here EGL_KHR_create_context_no_error is an API, therefore the check
should be tightened a bit so explicitly look for error words so such
false positives don't show up

This helps in fixing wrong matches e.g. on rpi3 dmesg have strings like
above

(From OE-Core rev: e54ecea0a7d309533973b31bdbda178d9af92632)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Khem Raj
6456bec6ce oeqa/buildgalculator.py: Add dependency on gtk+3
This helps in skipping this test on images which are not using gtk and
as per the gcalculator website it needs gtk+3 or gtk+2 and libglade as
the build first looks for gtk+3

(From OE-Core rev: 2cdb4b3697e02947352803a9db013d61b812c4fd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:49 +01:00
Oleksandr Kravchuk
9184b906a5 linux-firmware: add PE back
Add PE (package epoch) from the previous version of the recipe to avoid
problems with package upgrade due to changed versioning scheme.

See:
http://lists.openembedded.org/pipermail/openembedded-core/2019-August/285633.html

(From OE-Core rev: 8b6ec55da696087c8ea7bacc042307ee652afd9e)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:48 +01:00
Martin Jansa
1b57d8e43b meson: backport fix for builds with -Werror=return-type
(From OE-Core rev: de623085039111d9988918ae95e07e48108a9ff1)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:48 +01:00
Changqing Li
686cf796b9 go-runtime: remove conflict files from -dev packages
fix below error:
file /usr/lib64/go/src/cmd/cgo/zdefaultcc.go conflicts between attempted installs of go-dev-1.12.6-r0.core2_64 and go-runtime-dev-1.12.6-r0.core2_64
file /usr/lib64/go/src/cmd/go/internal/cfg/zdefaultcc.go conflicts between attempted installs of go-dev-1.12.6-r0.core2_64 and go-runtime-dev-1.12.6-r0.core2_64

these 2 files existed in both go-dev and go-runtime-dev
remove it from go-runtime-dev to fix the problem

(From OE-Core rev: 60dcae509a210f2cae8eda525a1b006663aef9bf)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:33:48 +01:00
Richard Purdie
d2093ecc22 poky: Retire opensuse 42.3 from SANITY_TESTED_DISTROS
Its now past EOL so retire it.

(From meta-yocto rev: 03046c2fe69c399173cf6303abb55264adaee2b9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:29:28 +01:00
Richard Purdie
93e4dc5f11 bitbake: runqueue: Ensure we clear the stamp cache
When the task hashes change we need to ensure the stampcache is cleared out
else tasks don't rerun when they should as we're basing decisions on stale
cache data.

(Bitbake rev: 08962092d3bb7887d82f97d442a6103c0677eae7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
64d0493d97 bitbake: runqueue: Add missing setscene task corner case
We weren't marking this special case of setscene task as buildable leading to
runqueue task failures.

(Bitbake rev: 930efbc563443d82df8d692bb8ff172ca2bae192)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
0993752e06 bitbake: runqueue: Add further debug information
Further testing shows we should test some extra datastructures to help pinpoint logic
errors more precisely. This adds some further data structure sanity checks.

(Bitbake rev: 83c4370b25c3a14cc946965c5c5f83ea28f488a1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
0d73901c98 bitbake: runqueue: Drop debug statement causing performance issues
This debug statement could result in a long list of tasks which when
repeatedly sent over our IPC, slowed down the builds immensely. Remove
it in favour of other more targeted debugging added recently, bringing
back some lost performance, particularly on builds with large numbers
of tasks.

(Bitbake rev: 85fe627fdb6510f0942917964386fad9d8c479c8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
977a293f2f bitbake: runqueue: Fix event timing race
The event from the task notifiing of hash equivalency should only be processed
when the task completes. This can otherwise result in a race where a dependent
task may run before the original task completes causing various failures.

To make this work reliably, the code had to be restructured quite a bit.

(Bitbake rev: 1bf5be46f92f125193638cf41ff207d68f592259)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
3fb90d0fff bitbake: runqueue: Recompute holdoff tasks from scratch
The changed_setscene variable here is just odd and not needed. Worse,
it could prevent some tasks from being removed from the holdoff tasks
list. The list is being rebuilt and should work as intended just from
the other data, this is a leftover from previous versions of the code
as far as I can tell.

(Bitbake rev: 030b9f2b3ce6ed40e79304eb0ffee6c6613f43be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
de06716c76 bitbake: runqueue: Improve scenequeue debugging
Whilst we had good runqueue failure mode debug, it hadn't adapted to the
scenequeue changes. Run the scenequeue sanity tests at the end of
a build and output the results regardless of whether all setscene tasks
completed or not. This *massively* improves the ability to debug runqueue
problems.

(Bitbake rev: b9b2177473c0b95a23bd519a201e1d2ba101c6c1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
d842d2507a bitbake: runqueue: Fix next_buildable_task performance problem
Looking at the profile information, a lot of time is being spent in
next_buildable_task. This is probably due to the generator expressions
not working well with the empty test.

The easiest way to improve things is to switch to using set manipulations.
We also don't need to update self.buildable the way the original code did
as we don't rely on that anywhere.

(Bitbake rev: 3bcf9ad4964b7e42d1a02ce231e9db42a81ead2a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
99db00b836 bitbake: runqueue: Wait for covered tasks to complete before trying setscene
If tasks are in the covered list of tasks for a given setscene task,
it needs to wait for those to complete before we can start.

(Bitbake rev: fdee640c26750b852eb68f5c80437377aa300ed8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
5f5bc81b3e bitbake: cooker: Improve hash server startup code to avoid exit tracebacks
At exit the hashserv code was causing tracebacks as join() wasn't
being called from the thread that started the process. Ensure that
the hashserver is started from the pre_serve hook which is the
final thread the cooker runs in. This avoids the traceback at the
expense of some horrific poking into data stores which will ultimately
need improving through a proper API.

(Bitbake rev: 05888700e5f6cba48a26c8a4c447634a28e3baa6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
abda938d66 bitbake: tests/runqueue: Add further hash equivalence tests
Add some extra hash equivalence runqueue tests based on recent scenarios
that caused problems during testing.

(Bitbake rev: 373b085ead992a725b2230ededd992b4c61a1a05)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
c86ae704d3 bitbake: runqueue: Improve setscene task handling logic
The previous tasks_covered and tasks_notcovered were basically unstable
data structures. We couldn't always tell whether tasks should be covered
or not when trying to repair the sturcture if sstate tasks reran.

In the end its simpler to throw the lists away and rebuild them based upon
current data rather than trying to patch it adhoc. This turns out to be
simpler and much more reliable and I've much more confidence in this code.

(Bitbake rev: 52ee2ba2c617d928569f5afa404925c8b6f317bc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Richard Purdie
18c109d6f5 bitbake: runqueue: Fix corruption issue
We need to copy this set, not modify the original else all kinds
of weird and bad things break, mostly from circular references.
We'll not go into how much sleep I lost tracking down the fallout
from this.

(Bitbake rev: 49927546d2b306830c98f6f9da4a6ad828f6a3a6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-14 17:28:23 +01:00
Mark Hatle
18b8e2e104 bitbake: layerindexlib: Fix parsing of recursive layer dependencies
[YOCTO #13447]

When running bitbake-layers layerindex-fetch from 'master', there is a
circular dependency between meta-oe and meta-python.  This triggered a maximum
recursion depth exception.

To fix the exception, as we walk down a branch (depth first search), we track
the layers we've already seen.  If we are about to recurse into a layer we've
already seen we report a warning and then stop recursion.

(Bitbake rev: d6155d095513be3f500d089c4ed4c4b89949d560)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:38:26 +01:00
Pascal Bach
0ec4c67e52 cmake: 3.15.1 -> 3.15.2
I rebuilt all cmake recipes from poky and meta-oe without issue.

(From OE-Core rev: b1ebf9122a5670044998adb83ca7a5a6c5454eaa)

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:37 +01:00
Trevor Gamblin
6e5636d56b patch: fix CVE-2019-13638
(From OE-Core rev: b59b1222b3f73f982286222a583de09c661dc781)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:37 +01:00
Wenlin Kang
d5d9dde006 db: add switch for building database verification
Add switch for building database verification, enable
this, it will solve the following issue:

root@qemux86-64:~# db_verify /var/lib/rpm/Packages
db_verify: BDB0571 library build did not include support for database verification
BDB5105 Verification of /var/lib/rpm/Packages failed.

(From OE-Core rev: a785157c7d78bd4becdc03c93a21a5dba37015b9)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:37 +01:00
Zang Ruochen
d1100db5eb libnewt:upgrade 0.52.20 -> 0.52.21
-Refresh the following patch:
	files/pie-flags.patch

-files/fix_SHAREDDIR.patch
 Removed since this is included in 0.52.21.

(From OE-Core rev: 5b7fd7a945f8eeece51f01ad20a6de12fea89433)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:37 +01:00
Alexander Kanavin
d90fb2a87e mesa: enable glx-tls option in native and nativesdk builds
Before meson conversion this was always enabled; now it needs to
be explicitly switched on.

This un-breaks the virgl headless test in particular, which regressed
with the meson conversion (and the test is not currently run on AB
due to oudated graphics hardware in it).

(From OE-Core rev: 22d3f959e44b77cb6d7375a77cf028ceeb9d6cb4)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:37 +01:00
Alexander Kanavin
1371cff985 lib/oeqa/utils/qemurunner.py: add runqemuparams after kvm/nographic/snapshot/slirp
Previously, 'nographic' was set first, and was overriding anything set via runqemuparams.

Particularly, egl-headless from the virgl headless selftest was overriden,
which broke the test in non-X environments.

(From OE-Core rev: 344c55a58042ecd6ffed8b20add41b6b335c51bf)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:36 +01:00
Bedel, Alban
3276bded22 boost: Fix build and enable context and coroutines on aarch64
Like for ARM bjam need some hints about the ABI to properly build on
aarch64. While at it also enable context and coroutine as these are
supported on aarch64.

(From OE-Core rev: 5140e0a64aac8c621fe0d839dea41b7b43a96b4d)

Signed-off-by: Alban Bedel <alban.bedel@aerq.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:36 +01:00
Johann Fridriksson
619c7f7c22 ruby: Adding zlib-native to native dependencies
(From OE-Core rev: c558da63d6ec16a5b0c09a2e558ce72606b33436)

Signed-off-by: Jóhann Friðriksson <jofr@foss.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:36 +01:00
Martin Jansa
629b56cbee powertop: import a fix from buildroot
(From OE-Core rev: 1c86f513041ad3a6c05ed600de9e80d076f1149d)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:36 +01:00
Martin Jansa
5d652ffee3 icecc.bbclass: catch subprocess.CalledProcessError
* this might be related to:
  commit d2fcaeb153fdc3f8d7143ea823139f1537055ff1
  Author: Douglas Royds <douglas.royds@taitradio.com>
  Date:   Thu Dec 20 11:59:47 2018 +1300

    icecc: Don't generate recipe-sysroot symlinks at recipe-parsing time

* it's still a bit unclear when and why this happends, but I'm seeing
  random tasks sometimes failing with:

WARNING: Exception during build_dependencies for set_icecc_env
WARNING: Error during finalise of /build/meta-oe/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb
ERROR: Traceback (most recent call last):
  File "/build/bitbake/lib/bb/data_smart.py", line 411, in expandWithRefs
    s = __expand_python_regexp__.sub(varparse.python_sub, s)
  File "/build/bitbake/lib/bb/data_smart.py", line 136, in python_sub
    value = utils.better_eval(codeobj, DataContext(self.d), {'d' : self.d})
  File "/build/bitbake/lib/bb/utils.py", line 421, in better_eval
    return eval(source, ctx, locals)
  File "Var <set_icecc_env>", line 1, in <module>
  File "/build/oe-core/meta/classes/icecc.bbclass", line 287, in icecc_get_and_check_tool
    link_path = icecc_get_tool_link(t, d)
  File "/build/oe-core/meta/classes/icecc.bbclass", line 246, in icecc_get_tool_link
    return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1]
  File "/usr/lib/python3.6/subprocess.py", line 336, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command 'readlink -f /build/BUILD/work/qemux86-oe-linux/python-markupsafe/1.0-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-g++' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/build/bitbake/bin/bitbake-worker", line 239, in child
    the_data = bb_cache.loadDataFull(fn, appends)
  File "/build/bitbake/lib/bb/cache.py", line 327, in loadDataFull
    bb_data = self.load_bbfile(virtualfn, appends, virtonly=True)
  File "/build/bitbake/lib/bb/cache.py", line 340, in load_bbfile
    datastores = parse_recipe(bb_data, bbfile, appends, mc)
  File "/build/bitbake/lib/bb/cache.py", line 303, in parse_recipe
    bb_data = bb.parse.handle(bbfile, bb_data)
  File "/build/bitbake/lib/bb/parse/__init__.py", line 107, in handle
    return h['handle'](fn, data, include)
  File "/build/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 142, in handle
    return ast.multi_finalize(fn, d)
  File "/build/bitbake/lib/bb/parse/ast.py", line 386, in multi_finalize
    finalize(fn, d)
  File "/build/bitbake/lib/bb/parse/ast.py", line 351, in finalize
    bb.parse.siggen.finalise(fn, d, variant)
  File "/build/bitbake/lib/bb/siggen.py", line 147, in finalise
    taskdeps = self._build_data(fn, d)
  File "/build/bitbake/lib/bb/siggen.py", line 118, in _build_data
    tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d)
  File "/build/bitbake/lib/bb/data.py", line 388, in generate_dependencies
    deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, varflagsexcl, d)
  File "/build/bitbake/lib/bb/data.py", line 317, in build_dependencies
    value, parsedvar = d.getVarFlag(key, "_content", False, retparser=True)
  File "/build/bitbake/lib/bb/data_smart.py", line 802, in getVarFlag
    parser = self.expandWithRefs(value, cachename)
  File "/build/bitbake/lib/bb/data_smart.py", line 424, in expandWithRefs
    raise ExpansionError(varname, s, exc).with_traceback(tb) from exc
  File "/build/bitbake/lib/bb/data_smart.py", line 411, in expandWithRefs
    s = __expand_python_regexp__.sub(varparse.python_sub, s)
  File "/build/bitbake/lib/bb/data_smart.py", line 136, in python_sub
    value = utils.better_eval(codeobj, DataContext(self.d), {'d' : self.d})
  File "/build/bitbake/lib/bb/utils.py", line 421, in better_eval
    return eval(source, ctx, locals)
  File "Var <set_icecc_env>", line 1, in <module>
  File "/build/oe-core/meta/classes/icecc.bbclass", line 287, in icecc_get_and_check_tool
    link_path = icecc_get_tool_link(t, d)
  File "/build/oe-core/meta/classes/icecc.bbclass", line 246, in icecc_get_tool_link
    return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1]
  File "/usr/lib/python3.6/subprocess.py", line 336, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
bb.data_smart.ExpansionError: Failure expanding variable set_icecc_env, expression was     if [ "${@use_icecc(bb, d)}" = "no" ]
    then
        return
    fi
    ICECC_VERSION="${@icecc_version(bb, d)}"
    if [ "x${ICECC_VERSION}" = "x" ]
    then
        bbwarn "Cannot use icecc: could not get ICECC_VERSION"
        return
    fi

    ICE_PATH="${@icecc_path(bb, d)}"
    if [ "x${ICE_PATH}" = "x" ]
    then
        bbwarn "Cannot use icecc: could not get ICE_PATH"
        return
    fi

    ICECC_BIN="${@get_icecc(d)}"
    if [ -z "${ICECC_BIN}" ]; then
        bbwarn "Cannot use icecc: icecc binary not found"
        return
    fi
    if [ -z "$(which patchelf patchelf-uninative)" ]; then
        bbwarn "Cannot use icecc: patchelf not found"
        return
    fi

    # Create symlinks to icecc in the recipe-sysroot directory
    mkdir -p ${ICE_PATH}
    if [ -n "${KERNEL_CC}" ]; then
        compilers="${@get_cross_kernel_cc(bb,d)}"
    else
        compilers="x86_64-oe-linux-gcc x86_64-oe-linux-g++"
    fi
    for compiler in $compilers; do
        ln -sf ${ICECC_BIN} ${ICE_PATH}/$compiler
    done

    ICECC_CC="${@icecc_get_and_check_tool(bb, d, "gcc")}"
    ICECC_CXX="${@icecc_get_and_check_tool(bb, d, "g++")}"
    # cannot use icecc_get_and_check_tool here because it assumes as without target_sys prefix
    ICECC_WHICH_AS="${@bb.utils.which(os.getenv('PATH'), 'as')}"
    if [ ! -x "${ICECC_CC}" -o ! -x "${ICECC_CXX}" ]
    then
        bbwarn "Cannot use icecc: could not get ICECC_CC or ICECC_CXX"
        return
    fi

    ICE_VERSION=`$ICECC_CC -dumpversion`
    ICECC_VERSION=`echo ${ICECC_VERSION} | sed -e "s/@VERSION@/$ICE_VERSION/g"`
    if [ ! -x "/build/BUILD/work/qemux86-oe-linux/python-markupsafe/1.0-r0/recipe-sysroot-native/usr/bin/icecc-create-env" ]
    then
        bbwarn "Cannot use icecc: invalid ICECC_ENV_EXEC"
        return
    fi

    ICECC_AS="`${ICECC_CC} -print-prog-name=as`"
    # for target recipes should return something like:
    # /OE/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm920tt-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.8.2/as
    # and just "as" for native, if it returns "as" in current directory (for whatever reason) use "as" from PATH
    if [ "`dirname "${ICECC_AS}"`" = "." ]
    then
        ICECC_AS="${ICECC_WHICH_AS}"
    fi

    if [ ! -f "${ICECC_VERSION}.done" ]
    then
        mkdir -p "`dirname "${ICECC_VERSION}"`"

        # the ICECC_VERSION generation step must be locked by a mutex
        # in order to prevent race conditions
        if flock -n "${ICECC_VERSION}.lock" \
            /build/BUILD/work/qemux86-oe-linux/python-markupsafe/1.0-r0/recipe-sysroot-native/usr/bin/icecc-create-env  "${ICECC_CC}" "${ICECC_CXX}" "${ICECC_AS}" "${ICECC_VERSION}"
        then
            touch "${ICECC_VERSION}.done"
        elif ! wait_for_file "${ICECC_VERSION}.done" 30
        then
            # locking failed so wait for ${ICECC_VERSION}.done to appear
            bbwarn "Timeout waiting for ${ICECC_VERSION}.done"
            return
        fi
    fi

    # Don't let ccache find the icecream compiler links that have been created, otherwise
    # it can end up invoking icecream recursively.
    export CCACHE_PATH="$PATH"
    export CCACHE_DISABLE="1"

    export ICECC_VERSION ICECC_CC ICECC_CXX
    export PATH="$ICE_PATH:$PATH"

    bbnote "Using icecc path: $ICE_PATH"
    bbnote "Using icecc tarball: $ICECC_VERSION"
 which triggered exception CalledProcessError: Command 'readlink -f /build/BUILD/work/qemux86-oe-linux/python-markupsafe/1.0-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-g++' returned non-zero exit status 1.

ERROR: Task (virtual:multilib:lib32:/build/meta-oe/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb:do_patch) failed with exit code '1'

(From OE-Core rev: 577919d71f9be3de851c653e6981d715b37042ea)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:36 +01:00
Aaron Chan
a81b94c085 python3-dbus: Add native and nativesdk variants
(From OE-Core rev: c7b057ee871bd691615c489390c72406108931f7)

Signed-off-by: Aaron Chan <aaron.chun.yew.chan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-13 09:37:36 +01:00
Kai Kang
9983b07fff e2fsprogs: 1.44.5 -> 1.45.3
Update e2fsprogs from 1.44.5 to 1.45.3:
* rebase ptest.patch
* remove 0001-create_inode-fix-copying-large-files.patch which merged by upstream
* add new sub-package e2fsprogs-e2scrub and disable cron support

(From OE-Core rev: e5f8c1facfc3507710d7111951fe075e01c58e4e)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Adrian Bunk
0928c098ac screen: Backport fix for an implicit function declaration
(From OE-Core rev: 6e88bcbe81d20576ff05f9e3d8f8963e92b6572a)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Oleksandr Kravchuk
2cf7d0f0b3 aspell: update to 0.60.7
Removed patch was upstreamed.

(From OE-Core rev: 78189e465f5b7afa756fe20de024c83b3d5ea9a5)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Richard Purdie
e8cca73c92 python3-pygobject: Add missing pkgutil RDEPENDS
With the removal of setuputils, there was a missing runtime dependency on pkgutil
which was breaking the selftests for gobject-introspection at runtime. Fix this.

(From OE-Core rev: 50048ff2da2cc209fe6bf1452dc2cf2a545fe886)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Luca Boccassi
060918cbc1 python3-pygobject: remove python3-setuptools from RDEPENDS
python3-setuptools is an optional build-dependency of pygobject but
it is not necessary to run it, as also documented by the upstream
packaging guide:

https://gitlab.gnome.org/GNOME/pygobject/blob/master/docs/packagingguide.rst

Remove it from RDEPENDS to shrink the runtime dependency chain, as
setuptools includes scripts to download other packages, which might not
be desired on a minimal image.

(From OE-Core rev: 3054791e62c6ac1b03b7658f9c59761b254fa05c)

Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Oleksandr Kravchuk
0a5f2e0616 wpa-supplicant: update to 2.9
(From OE-Core rev: 84f6fd6464b987c556c630e83e8888ee484dadc6)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Oleksandr Kravchuk
cf5dc2a799 libinput: update to 1.14.0
(From OE-Core rev: 52b3d0a8a623723e946dcf490861a75e6f77e54e)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Alexander Kanavin
9b75122c2a python-nose: remove the python 2.x version of the recipe
With removal of python 2.x numpy, nothing needs it anymore.

(From OE-Core rev: 9f07b2836405d86e869780f8f1ae00843eadc409)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Alexander Kanavin
efd3d6e49c python-scons: remove the python 2.x version of the recipe
Nothing in oe-core or meta-oe is using it (scons.bbclass is set
to use 3.x version).

(From OE-Core rev: cd2205677fd167be51dc92436fe8f3a5aa440851)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Alexander Kanavin
1f791fd4d3 python-numpy: remove the python 2.x version of the recipe
The 1.17.0 release of NumPy no longer supports Python 2.x.

(From OE-Core rev: 4e9659f24e2f699effadcbe378b6a746d77ccdbd)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Alexander Kanavin
de3aca4cb8 maintainers.inc: give python recipes to Oleksandr Kravchuk
Derek Straka has been inactive for about a year; Oleksandr
has been the de facto maintainer meanwhile.

(From OE-Core rev: 90edb9c2e2d5b68ee6923167d96aa957fab97b8b)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Jason Wessel
f7486ba147 dpkg: Provide update-alternative for start-stop-daemon
When using DISTRO_FEATURE usrmerge, busybox and something that
requires dpkg-start-stop there is a conflict which prints the
following error.

===

ERROR: core-image-minimal-1.0-r1 do_rootfs: Postinstall scriptlets of ['busybox'] have failed. If the intention is to defer them to first boot,
then please place them into pkg_postinst_ontarget_${PN} ().
Deferring to first boot via 'exit 1' is no longer supported.
Details of the failure are in /build/tmp-glibc/work/intel_x86_64-linux/core-image-minimal/1.0-r1/temp/log.do_rootfs.
ERROR: core-image-minimal-1.0-r1 do_rootfs: Function failed: do_rootfs

===

Looking at the log file, it shows the problem:

update-alternatives: Error: not linking /build/tmp-glibc/work/intel_x86_64-linux/core-image-minimal/1.0-r1/rootfs/usr/sbin/start-stop-daemon to /usr/bin/busybox.nosuid since /build/tmp-glibc/work/intel_x86_64-linux/core-image-minimal/1.0-r1/rootfs/usr/sbin/start-stop-daemon exists and is not a link

===

The solution is to add an update-alternative to start-stop-daemon for dpkg.

(From OE-Core rev: e6d51c9472dab6cbec313ba51f9e8b9271f02eb8)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Jason Wessel
7365a605ae wic: Make disk partition size consistently computed
When using different root directories with a wks file wic is using the
value from the original ROOTFS_SIZE which is not correct.  Example:

Number  Start   End     Size    File system  Name       Flags
 1      20.5kB  318MB   318MB   fat16        otaefi     legacy_boot, msftdata
 2      318MB   636MB   318MB   ext4         otaboot
 3      636MB   1709MB  1074MB  ext4         otaroot
 4      1709MB  2027MB  318MB   ext4         otaboot_b
 5      2027MB  3101MB  1074MB  ext4         otaroot_b
 6      3101MB  5249MB  2147MB  ext4         fluxdata

The partitions 1, 2, and 3 incorrectly inherit the size, instead of using
a computed size.  With the patch applied it is working properly:

Number  Start   End     Size    File system  Name       Flags
 1      20.5kB  14.5MB  14.5MB  fat16        otaefi     legacy_boot, msftdata
 2      14.5MB  65.3MB  50.8MB  ext4         otaboot
 3      65.3MB  1139MB  1074MB  ext4         otaroot
 4      1139MB  1190MB  50.8MB  ext4         otaboot_b
 5      1190MB  2264MB  1074MB  ext4         otaroot_b
 6      2264MB  4411MB  2147MB  ext4         fluxdata

As for the removal of the bb.warn, if the size is not specified, it is
not something to warn the end user about.  Some of my default images
make use of the head room + a computed directory size or while generating
images.

(From OE-Core rev: 8e48b4d6c4d0ed213089a7449fea63aa0656e786)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Jason Wessel
351a10ccd6 wic: Add partition type for msdos partition tables
In order to create a msdos partition table disk image that can auto
expand after the image is copied to an SD card, wic needs the ability
to have a primary partition as the last entry.  The desired use case
is to be able to create an A/B update partition image scheme with a
/var volume that can be auto expanded to the remainder of the SD card
at run time.

The typical .wks file will look similar to the following:

bootloader --ptable msdos
part / --source rawcopy --sourceparams="file=u-boot.imx" \
   --ondisk mmcblk --no-table --align 1 --size 1
part /boot --source bootimg-partition \
   --ondisk mmcblk --fstype=vfat --label boot --active --align 4 --size 16
part / --source rawcopy --sourceparams="file=imx6_boot.otaimg" \
   --ondisk mmcblk --fstype=ext4 --label otaboot --align 4 --type logical
part / --source rawcopy --sourceparams="file=imx6.otaimg" \
   --ondisk mmcblk --fstype=ext4 --label otaroot --align 4 --type logical
part / --source rawcopy --sourceparams="file=imx6_boot.otaimg" \
   --ondisk mmcblk --fstype=ext4 --label otaboot_b --align 4 --type logical
part / --source rawcopy --sourceparams="file=imx6.otaimg" \
   --ondisk mmcblk --fstype=ext4 --label otaroot_b --align 4 --type logical
part /var --source rawcopy --sourceparams="file=imx6_var.otaimg" \
    --ondisk mmcblk --fstype=ext4 --label fluxdata --align 4

Without the patch applied, wic will generate an SD card image that looks like:

Disk boot.img: 890940s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start    End      Size     Type      File system  Flags
 1      2056s    48001s   45946s   primary   fat16        lba
 2      48008s   132467s  84460s   primary   ext4
 3      132472s  454467s  321996s  primary   ext4
 4      454471s  890939s  436469s  extended               lba
 5      454472s  538931s  84460s   logical   ext4
 6      538936s  860931s  321996s  logical   ext4
 7      860936s  890939s  30004s   logical   ext4         boot

With the patch applied a primary partition can be created at the end
of the image which can be expanded to fill the free space on the media
where the image has been copied, which looks like:

Disk boot.img: 890940s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start    End      Size     Type      File system  Flags
 1      2056s    48001s   45946s   primary   fat16        lba
 2      48007s   860931s  812925s  extended               lba
 5      48008s   132467s  84460s   logical   ext4
 6      132472s  454467s  321996s  logical   ext4
 7      454472s  538931s  84460s   logical   ext4
 8      538936s  860931s  321996s  logical   ext4
 3      860936s  890939s  30004s   primary   ext4         boot

(From OE-Core rev: 56add7cc547e0113cdf980579d1421b14cc233e5)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Jason Wessel
b209d4117d image_types_wic.bbclass: Copy the .wks and .env files to deploy image dir
When using a .wks.in file, the only place that the generated .wks file
exists in the tmp/work area.  A copy should be left behind in the
deploy directory so that you can easily run the wic tool to
re-generate or modify a new image without running bitbake.  Custom
.wks.in files can reference any number of bitbake variables, so it is
important to save the result.

below is an example of using the generated .wks file in the deploy
area.  The full name of my generated .wks file was
core-image-minimal-ostree-uboot-ab.wks, but since you usually only
have a single .wks file per image you can use a wild card like:

  cd tmp*/deploy/images/*
  wic create --vars . -e core-image-minimal -s -m core-image-minimal-*.wks

(From OE-Core rev: 42293d75404486e20db9f7a80d0d1756887b576d)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Richard Purdie
359d61067a sstatesig: Fix leftover splitting issue from siggen change
(From OE-Core rev: 8b76048da99ec3be7d763b7ccc81f767c7015bc7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Ricardo Neri
9b90717e91 runqemu: Add support to handle EnrollDefaultKeys PK/KEK1 certificate
The EnrollDefaultKeys.efi application (distributed in ovmf-shell-image)
expects the hypervisor to provide a Platform Key and first Key Exchange
Key certificate.

For QEMU, this is done by adding an OEM string in the Type 11 SMBIOS
table. The string contains the EnrollDefaultKeys application GUID followed
by the certificate string. For now, the string is passed in the command
line until QEMU understands OEM strings from regular files (please see
https://bugs.launchpad.net/qemu/+bug/1826200).

If runqemu detects it is given an OVMF binary with support for Secure Boot
(i.e., ovmf.secboot* binaries), extract the certificate string from the
OvmfPkKek1.pem certificate and modify the command-line parameters to
provide the key. Such certificate is created when building OVMF with
support for Secure Boot.

Cc: Ross Burton <ross.burton@intel.com>
Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: 5e47316ae62f7632fb62bc3b8093ac42f9e3541c)

Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Ricardo Neri
c7fb87ee6f ovmf: Generate test Platform key and first Key Exchange Key
Commit from EDK2 be9470b3c91f ("OvmfPkg/EnrollDefaultKeys: enroll
PK/KEK1 from the Type 11 SMBIOS table") mandates that a Platform Key
and first Key Exchange Key certificate is provided to the
EnrollDefaultKeys application.

Previously, the application was using a hard-coded certificate
from Red Hat embedded in the application.

Create a certificate that can QEMU can subsequently pass to
EnrollDefaultKeys when running qemu-shell-image.

Cc: Ross Burton <ross.burton@intel.com>
Cc: Patrick Ohly <patrick.ohly@intel.com>
Cc: Alexander Kanavin <alex.kanavin@gmail.com>
(From OE-Core rev: daaf9d7bd8c3586609ab0eccf49af38dbdb0b02e)

Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Ricardo Neri
29fb47861f ovmf: Use HOSTTOOLS' python3
Use the variable PYTHON_COMMAND to let know EDK2 base tools that python3
in the host shall be used.

In order build successfully, the host must have installed the
python3-distutils package or equivalent.

Based on an original patch by Ross Burton.

Cc: Ross Burton <ross.burton@intel.com>
Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: 435d1f8ffe9df86367316d25cb6def2ea2041642)

Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Ricardo Neri
b7f92324cc ovmf: Set PV
Now that EDK2 has been tagging stable releases, we can also set PV
and drop UPSTREAM_VERSION_UNKNOWN.

Cc: Ross Burton <ross.burton@intel.com>
Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: b9851d612be842d35ebd78f5f21158beaaed8e64)

Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Ricardo Neri
bc59000e77 ovmf: Update to version edk2-stable201905
Fixes [YOCTO #13438]

Update OVMF to edk2-stable201905. Since the last update, several things
have changed. Many of the patches we were carrying have now been taken
upstream in EDK2 or become obsolete. See below for details.

Also, as of commit 0c1ffb9504c3("CryptoPkg: Adding OpenSSL as one
submodule of EDKII repo"), openssl is not embedded into EDK2 using a
patching script but a git submodule. Then, use the gitsm bitbabke fetcher
and drop the extra SRC_URI from openssl when building with secureboot
enabled. Also remove all related variables.

OVMF switched to BSD+Patent license as detailed in
https://bugzilla.tianocore.org/show_bug.cgi?id=1373. Hence, update
LIC_FILES_CHKSUM accordingly to reflect this change.

Patches are updated as follows:

Drop 0001-ia32-Dont-use-pie.patch as it is implemented in upstream EDK2
in commits are 11d0cd23dd1b ("BaseTools/tools_def IA32: drop -no-pie linker
option for GCC49" and c25d3905523a ("BaseTools/tools_def IA32: disable PIE
code generation explicitly") for the applicable GCC versions.

Rebase 0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
to edk2-stable201905.

Drop VfrCompile-increase-path-length-limit.patch as it has been taken
upstream in EDK2 in commit ba78032bc8c9f("BaseTools/VfrCompile: Remove the
MAX_PATH limitation").

Rebase no-stack-protector-all-archs.patch to keep behavior on not using
stack protector on all archs.

Drop 0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch,
0002-BaseTools-header.makefile-add-Wno-restrict.patch, and
0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch. These
patches have been taken in upstream EDK2 in commits 9222154ae7b3("BaseTools
/header.makefile: add "-Wno-restrict"), 1d212a83df0e("BaseTools/
header.makefile: add "-Wno-stringop-truncation"), and 777f4aa083e9
("BaseTools/header.makefile: revert gcc-8 '-Wno-xxx' options on OSX"),
respectively.

Also, drop 0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch.
GenVtf has been removed from EDK2 in commit 64ab2c82e8f6("BaseTools:
Remove GenVtf"). Also, this patch had been taken in EDK2 upstream in
commit 9de306701312("BaseTools/GenVtf: silence false 'stringop-overflow'
warning with memcpy()").

Drop patch 0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch
as it also has been taken by EDK2.

Patches 0002-ovmf-update-path-to-native-BaseTools.patch and
0004-ovmf-enable-long-path-file.patch did not need any update.

Lastly, add a needed dependency on bc.

Cc: Ross Burton <ross.burton@intel.com>
Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: 1f64ecf92fa77b682b18efe72fb6b27ff64ee052)

Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Zheng Ruoqin
b2dd0b1c7c python3-mako: 1.0.14 -> 1.1.0
Upgrade python3-mako from 1.0.14 to 1.1.0.

(From OE-Core rev: cdde0265b196def4633ece64d798e576362e7b61)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Pascal Bach
a3845f921a cmake: 3.14.5 -> 3.15.1
The patches were refreshed with devtool.

I rebuilt all cmake recipes from poky and meta-oe without issue.

(From OE-Core rev: 022d642b0c8f464b451c543db50bb93012bce607)

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Zang Ruochen
93f44ffc86 man-db:upgrade 2.8.5 -> 2.8.6.1
(From OE-Core rev: a99791672e41b8fbf1dedbcf8ca7088509875067)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Changqing Li
600bbe4e5c grub/grub-efi: fix conflict for aach64
MACHINE = qemuarm64
IMAGE_INSTALL_append = ' grub grub-efi'

do_rootfs failed with error:
file /usr/lib64/grub/arm64-efi/acpi.module conflicts between attempted installs of grub-2.02-r0.aarch64 and grub-efi-2.02-r0.aarch64
file /usr/lib64/grub/arm64-efi/adler32.module conflicts between attempted installs of grub-2.02-r0.aarch64 and grub-efi-2.02-r0.aarch64
...
file /usr/lib64/grub/arm64-efi/zfsinfo.module conflicts between attempted installs of grub-2.02-r0.aarch64 and grub-efi-2.02-r0.aarch64

For arm64, grub and grub-efi both compiled GRUBD2 with platform
arm64-efi, arm64 only support platform efi. So both packages have
almost same folder and content /usr/lib64/grub/arm64-efi/*

if Machine set to qemux86_64, do_rootfs will not have this problem,
since for grub, it compiled with platform i386-pc, for grub-efi,
compiled with platform x86-64-efi.

>From commit:
commit 4e9bb03238
Author: Hongxu Jia <hongxu.jia@windriver.com>
Date:   Wed Jan 17 03:25:58 2018 -0500

    grub/grub-efi: fix conflict

    While installing grub and grub-efi, there are conflict files
    in ${sysconfdir} ${datadir} ${bindir} ${sbindir}.

    - Since all of the conflicted files are tools which is
      common for grub and grub-efi, we split them (except
      grub-editenv) to grub-common in grub.

common tools for grub and grub-efi are installed into grub-common,
for aarch64, also shipped libdir into this common packages.
in this way, for qemuarm64, package grub is empty, and package grub-efi
use lib in package grub-common

(From OE-Core rev: 933286bdcb9008b75007abedf30cc1b4b6e2f0d0)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Tim Blechmann
1a0a00402d deb: allow custom dpkg command
trying to reduce the turnaround times for local builds, i'm trying to
find a way to inject `-Zgzip -z1` into the dkpg-deb command line.

attached patch introduces a `DPKG_BUILDCMD` variable for this purpose.
(i'm not very familiar with the whole bitbake infrastructure, so i'm
wondering: do i have to add it to the `vardeps` of do_package_deb?)

tia,
tim

>From 62d4930d307d5d07844889001e8a1c3111b72b98 Mon Sep 17 00:00:00 2001
From: Tim Blechmann <tim@klingt.org>
Date: Thu, 8 Aug 2019 06:48:54 +0200
Subject: [PATCH] package_deb: allow dpkg-deb to be customized via
 DPKG_BUILDCMD

the command line to invoke `dpkg-deb` is hardcoded. there are certain use
cases where we want to tweak how debian packages are compiled: e.g. the
default uses xz compression, which is rather CPU intensive. for local
builds one might want to pass `-Zgzip -z1` to favor speed over compression
ratio.

we therefore introduce a `DPKG_BUILDCMD` variable which allows downstream
code to customize how dpkg-deb is executed

(From OE-Core rev: 4e00ceaf38f2ae338e3b192c3485aaa963f54b99)

Signed-off-by: Tim Blechmann <tim@klingt.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Khem Raj
4b592bb251 musl: Update to master tip
Fix for RISC-V build regression

64bit time syscall plumbing

Changes are here [1]

[1] https://git.musl-libc.org/cgit/musl/log/?qt=range&q=0ce49d0a301b4142741b32773492af90f66ed3ca..d0b547dfb5f7678cab6bc39dd736ed6454357ca4

(From OE-Core rev: 34196d2913027d1fc8c080ea0c392a387e70a162)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-12 16:23:57 +01:00
Robert Yang
e1f589f044 bitbake: knotty: Fix for the Second Keyboard Interrupt
Fixed:
$ rm -fr tmp-glibc/cache/default-glibc/qemux86/x86_64/bb_cache.dat* ; bitbake -p
Press the first Ctrl-C when the parsing process is at about 50%:

Keyboard Interrupt, closing down...

Then presss the second Ctrl-C:

  File "/path/to/bitbake/bitbake/lib/bb/ui/knotty.py", line 619, in main
    event = eventHandler.waitEvent(0.25)
  File "/path/to/bitbake/lib/bb/server/process.py", line 591, in waitEvent
    self.eventQueueNotify.wait(delay)
  File "/usr/lib/python3.5/threading.py", line 549, in wait
    signaled = self._cond.wait(timeout)
  File "/usr/lib/python3.5/threading.py", line 297, in wait
    gotit = waiter.acquire(True, timeout)
KeyboardInterrupt

Capture the second KeyboardInterrupt during stateShutdown is running can fix
the problem. There may be still tracebacks for the third KeyboardInterrupt, but
I'm leaning to not fix it since we aimed for supporting 2 KeyboardInterrupts
only.

(Bitbake rev: 8c26b451f22193ef1c544e2017cc84515566c1b8)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:22:36 +01:00
Robert Yang
016b91b334 bitbake: cooker: Cleanup the queue before call process.join()
Fixed:
$ rm -fr tmp-glibc/cache/default-glibc/qemux86/x86_64/bb_cache.dat* ; bitbake -p
Press *one* Ctrl-C when the parsing process is at about 50%, then the processes
are not exited:

Keyboard Interrupt, closing down...

Timeout while waiting for a reply from the bitbake server

It hangs at process.join(), according to:

https://docs.python.org/3.7/library/multiprocessing.html

Cleanup the queue before call process.join() can fix the problem.

(Bitbake rev: 3eddfadd19b2ce4c061861abf0c340e3825b41ff)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:22:36 +01:00
Alexander Kanavin
53b602c4e4 local.conf.sample: do not add sdl to nativesdk qemu config
This is unnecessary as the recipe itself already does it:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-devtools/qemu/qemu_4.0.0.bb?id=1a4e4fb6b0a9d54641bd4193e95311d1f822a9ca#n21

(From meta-yocto rev: ada58683641b8a15e8b2e44060437a9c67d532e1)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:22:12 +01:00
Ross Burton
abda00c016 libx11: replace libtool patch with upstreamed patch
After iterating with upstream, this is the patch that landed.

(From OE-Core rev: 30a2af80f5f8c8ddf0f619e4f50451b02baa22dd)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Yuan Chao
cd1f08e28d gpgme:upgrade 1.13.0 -> 1.13.1
Refresh the following patch:
0007-python-Add-variables-to-tests.patch

(From OE-Core rev: 6cc148f8e7453ef4413ec44099a4899a4b435da2)

Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Alexander Kanavin
534dc2e004 bluez5: correct the python3 runtime dependency
(From OE-Core rev: 62aeba48401cba34b9cc6dc5ee14685a1a29c5d3)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Alexander Kanavin
0d3e9edfde ofono: correct the python3 runtime dependency
(From OE-Core rev: 7f8583cc95f11cf10fb2325a1c4e23b041551581)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Alexander Kanavin
3efc329aeb attr: add a missing perl runtime dependency
/usr/lib/attr/ptest/test/sort-getfattr-output is a perl script.

(From OE-Core rev: 5843be17fe2ce3d206d7f8338b8d82a09cfe33fd)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Alexander Kanavin
f9e6fdcf97 apt: add a missing perl runtime dependency
/usr/lib/dpkg/methods/apt/setup is a perl script.

(From OE-Core rev: a96de885e122bd31e3382d6ecf6f665680e9db71)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Alexander Kanavin
17bfcbacb0 elfutils: use PRIVATE_LIBS for the ptest package
EXCLUDE_PACKAGES_FROM_SHLIBS is too broad: it suppresses both generation
of required and provided shlibs. We need to suppress only the provided shlibs
(to avoid clashes with the main package providing the same shlibs),
and run the required shlib dependencies generator as usual.

(From OE-Core rev: 7d342fd04266bedc12706c111c5b83d952566bca)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Alexander Kanavin
6c966021b9 stress-ng: add a patch to remove unneeded bash dependency
(From OE-Core rev: ea052d11b9ebe113ca392e092c2dd530573ac294)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Yi Zhao
8195341e9e libx11-compose-data: upgrade 1.6.7 -> 1.6.8
Refresh the patch to fix the do_patch QA warning.

(From OE-Core rev: 72e6919bab390494103472401a563199ab339e85)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Zang Ruochen
7029258a65 libglu:upgrade 9.0.0 -> 9.0.1
(From OE-Core rev: 3afee08c2cdb8cda75714d7460d1c67e75f0862c)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Ricardo Ribalda Delgado
5f1bfba262 inetutils: Fix abort on invalid files
When the code is compiled with  "-fstack-protector-strong
-D_FORTIFY_SOURCE=2", everytime ftpfd is asked for a non existent file,
it crashes with the following error:

*** buffer overflow detected ***:
Aborted

This seems to be a bug/feature of gcc. A bug has been open on their
bugzilla, and also inetutils have been posted with the proposed patch.

Without this patch, pxelinux fails to boot because it keeps asking the
server for the pxelinux.cfg/00-01-02-03-04 and never jumps to /default.

(From OE-Core rev: 0c3a1251a8aec86f3e877130f926a928e5ca2030)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Zang Ruochen
54c7db0105 libgudev:upgrade 232 -> 233
(From OE-Core rev: 466bc8f05eac59a58575fd10518ee7de44ba50d1)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Zang Ruochen
f5d2fc2aae python-scons:upgrade 3.0.5 -> 3.1.0
(From OE-Core rev: 322ff31d811bd8142af93574b10c91c611df93bd)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Yuan Chao
9d1c158725 python3-pbr:upgrade 5.4.1 -> 5.4.2
(From OE-Core rev: 83ffc20637abd275bc3037935d629f5a716b4614)

Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Khem Raj
4df4352813 mesa,llvm,meson: Update llvm to 8.0.1 plus define and use LLVM version globally
- Add missing dependency on libedit
- Define LLVMVERSION on the same lines as GCCVERSION and other tools
- Use LLVMVERSION in mesa and meson.bbclass to get llvm version instead of
  hardcoding it
- Use llvm patches unmodified from meta-clang, helps in keeping them in
  sync
- Define PREFERRED_VERSION for llvm, llvm-native, nativesdk-llvm

(From OE-Core rev: 3c08b638348abd543fc92baf56c28ca16ae6aac6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Hongxu Jia
3ef77a577c grub: add grub-native
Not only grub-efi-native, but also add grub-native to provide
grub utilities on host

(From OE-Core rev: 67dfa11f2d2fb5242814e133346e72515bfc0aca)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-08 10:19:56 +01:00
Changqing Li
841a1029c3 genericx86-64.conf/genericx86.conf: add QB_SYSTEM_NAME
QB_SYSTEM_NAME set in qemuboot-x86.inc will be removed,
so set QB_SYSTEM_NAME in these two configuration files.

(From meta-yocto rev: 6748c925817da0e7ae2a84d1214e3595515962b5)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:56 +01:00
Ross Burton
48a979be54 waffle: upgrade 1.5.2 -> 1.6.0
Switch to Meson instead of CMake.

Add PACKAGECONFIG for surfaceless-egl.

Inherit bash-completion for the new wlinfo completion script.

(From OE-Core rev: 96decf673992b1cd1eebac45a5cd534eef27ebd7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Trevor Gamblin
58beb4fd3d gzip: update ptest package dependencies
gzip-ptest skips the following tests on core-image-sato builds:

- zgrep-context
- zdiff
- zgrep-signal

The same tests pass on core-image-sato-sdk builds. This is due to
the use of busybox tool variants on core-image-sato (zgrep-context,
zdiff) and the absence of the perl and perl-ptest packages
(zgrep-signal). This patch adds the dependencies needed for all
three tests.

(From OE-Core rev: c2559ab9b41b823b23dc675745bbaefd45362a08)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Jason Wessel
6cac15e514 pseudo: Fix openat() with a symlink pointing to a directory
While working with ostree disk generation in conjunction with wic, I
found a problem with pseudo where it tried to resolve a symlink when
it shouldn't, based on openat() flags. A C program has been
constructed to test pseudo to show that it is working properly with
the correct behavior around openat().

 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <dirent.h>
 #include <unistd.h>
 #include <fcntl.h>

int main()
{
    /*
     * Tested with: gcc -Wall -o app app.c ; echo "no pseudo" ;
     * ./app ; echo "pseudo"; pseudo ./app
     */
    system("rm -rf tdir tlink");
    system("mkdir tdir");
    system("ln -s tdir tlink");
    DIR *dir = opendir(".");
    int dfd = dirfd(dir);

    int target_dfd = openat (dfd, "tlink", O_RDONLY | O_NONBLOCK |
                             O_DIRECTORY | O_CLOEXEC | O_NOFOLLOW);
    if (target_dfd == -1) {
        printf("Test 1 good\n");
    } else {
        printf("Test 1 failed\n");
        close(target_dfd);
    }
    target_dfd = openat (dfd, "tlink", O_RDONLY | O_NONBLOCK |
                         O_DIRECTORY | O_CLOEXEC);
    if (target_dfd == -1) {
        printf("Test 2 failed\n");
    } else {
        printf("Test 2 good\n");
        close(target_dfd);
    }
    /* Test 3 make sure the owner of the link is root  */
    struct stat sbuf;
    if (!lstat("tlink", &sbuf) && sbuf.st_uid == 0) {
        printf("Test 3 good\n");
    } else {
        printf("Test 3 failed\n");
    }
    /* Test 4 tests open with the "rb" flag, owner should not change */
    int ofd = openat(dfd,"./tlink", O_RDONLY|O_CLOEXEC);
    if (ofd >= 0) {
        if (fstat(ofd, &sbuf) != 0)
            printf("ERROR in fstat test 4\n");
        else if (sbuf.st_uid == 0)
            printf("Test 4 good\n");
        close(ofd);
    } else {
        printf("Test 4 failed with openat()\n");
    }
    /* Test pseudo db to see the fstat() above did not delete the DB entry */
    if (!lstat("tlink", &sbuf) && sbuf.st_uid == 0)
        printf("Test 5 good\n");
    else
        printf("Test 5 failed... tlink is owned by %i and not 0\n", sbuf.st_uid);
    return 0;
}

int main()
{
    /* Tested with: gcc -Wall -o app app.c ; echo "no pseudo" ; ./app ; echo "pseudo"; pseudo ./app */
    system("rm -rf tdir tlink");
    system("mkdir tdir");
    system("ln -s tdir tlink");
    DIR *dir = opendir(".");
    int dfd = dirfd(dir);

    int target_dfd = openat (dfd, "tlink", O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC | O_NOFOLLOW);
    if (target_dfd == -1) {
        printf("This is right\n");
    } else {
        printf("This is broken\n");
    }
    return 0;
}

Many thanks to Peter Seebach for fixing the problem in the pseudo code
to use the same logic which was already there for the
AT_SYMLINK_NOFOLLOW.

Also updated is the license MD5 checksum since the master branch of
pseudo has had the SPDX data updated.

(From OE-Core rev: a98ea4be5ce19ff380ca500ba1ef3da490ec4556)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Jason Wessel
3338776f11 sqlite3: Fix zlib determinism problem
sqlite3-native in particular was finding zlib from the host if zlib-devel
was installed. This could lead to races where pseudo-native may or may not
fail to build.

We don't need/use compressed page support with sqlite so disable the dependency
(it doesn't have a configure option so use a autoconf cache variable).

The target binaries were not previously building with zlib, so we will
leave the default being zlib turned off, while the host binaries were
building with it "occasionally", but not for anything at runtime.

(From OE-Core rev: 0af2c6af0d5c060666f7ee6f2ef428c1a414cb86)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Andreas Obergschwandtner
6070e77e1e bzip2: set the autoconf package version to the recipe version
This is done to require only a single version change if bzip2
is updated and fixes also setting package version 1.0.6 for
bzip2 1.0.8.

(From OE-Core rev: beb4fb0b0e89ce6b80645322ee435a6b4909b652)

Signed-off-by: Andreas Obergschwandtner <andreas.obergschwandtner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Yuan Chao
c1ac9c6790 nettle:upgrade 3.4.1 -> 3.5.1
nettle-stdint.h was no longer use.
Remove nettle/nettle-stdint.h in do_install_append() of .bb file.

Changelog in ChangeLog file as follows:

2019-01-06  Niels Möller  <nisse@lysator.liu.se>

        * nettle-types.h: Don't use nettle-stdint.h, include <stdint.h>
        directly.
        * nettle-write.h: Likewise.
        * configure.ac: Delete use of AX_CREATE_STDINT_H.
        * aclocal.m4 (AX_CREATE_STDINT_H): Delete.
        * Makefile.in (INSTALL_HEADERS, distclean-here): Delete mention of
        nettle-stdint.h.

(From OE-Core rev: a44e40675e151eb079d7d9e87e734ca5cfb923b5)

Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Changqing Li
060e7db0c4 qemuboot-x86: move QB_SYSTEM_NAME to corresponding conf
Configrations:
MACHINE: qemux86-64
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

Reproduce steps:
bitbake lib32-core-image-minimal
runqemu qemux86-64 nographic lib32-core-image-minimal

Errors:
qemu cannot bootup since:
Booting from ROM...
This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.
QEMU: Terminated

For lib32 image, override has x86, so the qemubin set to qemu-system-i386,
fix by move QB_SYSTEM_NAME to corresponding conf, don't use the override

(From OE-Core rev: ffaf86f175b2e6caa3a0067f7b3725930b053715)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Ross Burton
83201d04f1 xserver-xorg: refresh build path removal patch
The patch has iterated, so update to the latest revision.

(From OE-Core rev: 042e8e8a7181bb3ca830185c38f9287f62c68fe6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Oleksandr Kravchuk
7e0957764d ell: update to 0.21
Changelog:
- Fix issue with resetting DHCP lease on client stop.
- Add support for GPIO helper functionality.

(From OE-Core rev: ca881bcad40e461e93a71f05b65967e7906cf2e1)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Mark Hatle
38fce3d2fd glibc-package.inc: Add linux-libc-headers-dev to glibc-dev
Without linux-libc-headers-dev being added to the libc6-dev as a RDEPENDS,
the system may fail to install the necessary libc headers.

This can happen when NO_RECOMMENDATIONS = "1" is defined.

During the 'testsdk' this results in failures that look like:

    fatal error: linux/errno.h: No such file or directory
    # include <linux/errno.h>
              ^~~~~~~~~~~~~~~

This also matches the behavior of musl, which does not suffer from this
problem.

(From OE-Core rev: ad31c908c8267166ce6cce9d5085ef2ac099a6c5)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Khem Raj
1b6ac48914 systemd-boot: Add option to specify cross objcopy and use it
This is needed when build host != x86 box

(From OE-Core rev: 5096f535561d2fd608d622abec5bc2ddb79d49b7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Khem Raj
be88cb8424 syslinux: Override hardcoded toolnames in Makefile
makefile assumes native toolnames e.g. ar, as, nm etc.
which causes build fails on non-x86 build hosts

objcopy: Unable to recognise the format of the input file `libcom32.elf'

(From OE-Core rev: ee9afb34fb95409148734fda1eea1fe8f81983fd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Khem Raj
70da7c23b4 virglrender: Fix endianness check on musl
Seen to fail on musl/mips, this fixes the check to be linux specific
which means it can detect the endianness for musl correctly

(From OE-Core rev: c9559685ebcfb0303fc072c99b3d518427fc5a82)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Khem Raj
196e56a5d9 glibc: Update to glibc 2.30
- Drop backported patches
- Move common pieces between cross-localedef and glibc into a common file
- Move latest checksums to glibc-common.inc and remove duplicates from glibc recipe
- Detailed release notes [1]

[1] https://sourceware.org/ml/libc-alpha/2019-08/msg00029.html

(From OE-Core rev: fe75808dca4bb56ac703d18ebbad4004678f69da)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Richard Purdie
e93572cda7 gstreamer: Add fix for glibc 2.30
Fix a header overlap/redefinition issue with glibc 2.30.

(From OE-Core rev: 11422465e187b096d06c0eaf0a66dbac5b9e8710)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-07 16:08:15 +01:00
Ming Liu
88c6be81a5 opensbi: handle deploy task under sstate
Inherit deploy bbclass and install files to DEPLOYDIR rather than in
DEPLOY_DIR_IMAGE.

(From OE-Core rev: f03ab9b21c2aeeae0bd020ee94ec9bb1d903500d)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Ming Liu
d6138fe950 license_image.bbclass: drop invalid comments
These comments are not valid any more, drop them.

(From OE-Core rev: 39f5a3030a97bdf567ee11091dd4e95ef04585d7)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Alexander Kanavin
cd5ba94ea5 maintainers.inc: assign acpica to Ross
Fathi has as well been inactive for a long time.

(From OE-Core rev: 29ac3e98fdfb7d0d3bb3884b97a0ba5255826904)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Ross Burton
4ca18eb6c8 qemu: fix patch Upstream-Status
(From OE-Core rev: ee31907d25bc89dcb6566368aae651920564980c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Anuj Mittal
46865ff106 harfbuzz: upgrade 2.4.0 -> 2.5.3
License-Update: Copyright years added, and point to correct source file.

For changes in this version, see:
https://github.com/harfbuzz/harfbuzz/blob/2.5.3/NEWS

(From OE-Core rev: bdb10b5daf07d66c1d73137c789884a933ca65dc)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Anuj Mittal
9a0e6992ca pango: upgrade 1.42.4 -> 1.44.3
* For changes, see:
https://github.com/GNOME/pango/blob/master/NEWS

* Remove upstreamed patch, rename docs and introspection meson
options and add PACKAGECONFIG for tests.

(From OE-Core rev: e7fcd745977a86926f83edeaaf31efad70002da8)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Khem Raj
e05d22f940 webkitgtk: Fix compile failures with clang
Backport upstream patch to address build regression with clang

Fixes
webkitgtk-2.24.3/Source/bmalloc/bmalloc/AvailableMemory.cpp:120:31: error: implicit instantiation of undefined template 'std::__1::array<char, 256>'
        std::array<char, 256> statmBuffer;
                              ^

(From OE-Core rev: 94a1c0a15e57844feddad5607fb8643f7c956953)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Khem Raj
09992cb5a4 groff: Fix math.h inclusion from system headers issue
groff has system headers overrides in its sourcecode which it
generates as fallbacks but in some cases when a system header includes
math.h via include <> directive it lands in the override header and
causes compile issues, seen with clang+libc++, this patch makes sure
that right defines are available before including it

(From OE-Core rev: e9beba2a33b46d31bfdd926211d22ebf2abb6c90)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Alexander Kanavin
cd671da06d libedit: fix upstream verison check
The default works fine; not sure why the line was added.

(From OE-Core rev: 66bb9fd36128bb5ce12c7a5e224cfcd69dc2cd06)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:27 +01:00
Ross Burton
5232ca9a18 libx11-diet: remove
This doesn't appear to be used anymore, as saving a few hundred k at the expense
of only using ASCII is quite the compromise in the modern world.

(From OE-Core rev: 1a502765db2093e573c9e3ecd6c1bc7621476963)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
a0542ed3ff sstatesig: Updates to match bitbake siggen changes
Update the metadata to correspond to the bitbake siggen task specification
format change. This standardises on "<fn>:<task>" everywhere rather than
the "." delimiter that was being used in some places.

This is an API breaking change but means we now have a consistent format
being used throughout the codebase without compatibility APIs.

(From OE-Core rev: 23db236a054ee7a989cdbbcb42ad5c6eefd4a6ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
bcc9f1b5f1 sstate/sstatesig: Update to new form of BB_HASHCHECK_FUNCTION
Bitbake has updated to a cleaned up form of BB_HASHCHECK_FUNCTION,
adapt to this cleanup. This is an API breaking change.

(From OE-Core rev: a4d413d8d809132b0e0a5dd673a36e2bd0e0be4c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
8d7f663136 sstatesig: Update to handle BB_HASHSERVE
Update the code to handle BB_HASHSERV, an autostarted bitbake internal hash
equivalency server suited to local developer usage.

(From OE-Core rev: 9b3d7b0b0ff27281391c2b8f2511d312d6995ed6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
56b178ca2f sstatesig: Adpat to recent bitbake hash equiv runqueue changes
Upstream bitbake now hanes preserving the unihash data itself, drop
this usage of persist_data which was extremely problematic due to
concurrent task access issues, particulary on loaded systems.

(From OE-Core rev: 034d91c2c94b201797a7830b0af6141132f9bad1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
00f40114b4 sstatesig: Add debug for incorrect hash server settings
If the hash server settings are incorrect, show the user useful
error messages instead of tracebacks.

(From OE-Core rev: 2df5d95b9b63e30ddaa7c72a4173b9a05b3f15f9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
62c8b8c4d9 sstatesig: Move unihash siggen code to bitbake
This code is closely tied with the hash server in bitbake and also means
we can't relibably test the hashserv runqueue functionality without OE
metadata. Moving this to bitbake as a MixIn class makes most sense
and encourages code collaboration and reuse as well as enabling easier
and more accurate testing of the APIs.

(From OE-Core rev: a2a9c6092d4dde706ed071b08a972d1d87184295)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Ross Burton
c49aa783d8 sanity: update for new bb.build.exec_func() behaviour
The pythonexception argument is no more, and passing True is the new behavior.

[ YOCTO #13468 ]

(From OE-Core rev: b7a34d2b8d684e5b98f5c286de67dc1b5d8df853)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
546c32753b classes/lib: Remove bb.build.FuncFailed
Whilst seemingly a good idea, this exception doesn't really serve any purpose
that bb.fatal() doesn't cover. Wrapping exceptions within exceptions isn't
pythonic.

Its not used in many places, lets clean up those and remove usage of it
entirely. It may ultimately be dropped form bitbake entirely.

(From OE-Core rev: efe87ce4b2154c6f1c591ed9d8f770c229b044ad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
d9cb21854b sanity.conf: Require bitbake 1.43.1
We depend on a number of bitbake API changes, bump the min bitbake
version requirement.

(From OE-Core rev: 908cdd669b083b172f7cd53dd020629affee360c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:24:26 +01:00
Richard Purdie
8fc23b8c1c bitbake: bitbake: Bump version to 1.43.1 for API changes
(Bitbake rev: f43778c2d19e70d4befd483b06aaf247fc65c799)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:32 +01:00
Richard Purdie
fd79638046 bitbake: tests/runqueue: Add hashserv+runqueue test
Add a test which tests the runqueue adaptations for hash equivalency.

(Bitbake rev: 477321d0780df177c1582db119c2bb6795912fc6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:32 +01:00
Richard Purdie
347c205602 bitbake: build/utils: Drop bb.build.FuncFailed
Its hard to see what this exception adds in the current codebase. The logfile
attribute is effectively ignored, the exception doesn't serve a defined
purpose and mostly seems to be worked around.

Remove it entirely. If this does cause output problems, we'll figure
out better ways to address those.

(Bitbake rev: cfeffb602dd5319f071cd6bcf84139ec77f2d170)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:32 +01:00
Richard Purdie
4fbb862cdc bitbake: siggen: Clean up task reference formats
Currently siggen uses the format "<filename>.<taskname>" for referencing tasks
whilst runqueue uses "<filename>:<taskname>". This converts to use ":" as the
separator everywhere.

This is an API breaking change since the cache is affected, as are siginfo files
and any custom signature handlers such as those in OE-Core.

Ultimately this will let us clean up and the accessor functions from runqueue,
removing all the ".rsplit(".", 1)[0]" type code currently all over the place.
Once a standard is used everwhere we can update the code over time to be more
optimal.

(Bitbake rev: 07e539e1c566ca3434901e1a00335cb76c69d496)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:32 +01:00
Richard Purdie
40a5e193c4 bitbake: runqueue: Clean up BB_HASHCHECK_FUNCTION API
This function uses an old API which uses offsets into lists as a communication
mechanism. Update the API to use "tid" which is used universally in runqueue now.

We can also add kwargs support to the funciton definition to drop some of the
backwards compaiblility hoops we had to jump though with different function
argument combinations.

(Bitbake rev: dc23550047e5078da491ce9a6f30989cb5260df6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:32 +01:00
Richard Purdie
43d37a6eaf bitbake: hashserv: Switch from threads to multiprocessing
There were hard to debug lockups when trying to use threading to start
hashserv as a thread. Switch to multiprocessing which doesn't show the
same locking problems.

(Bitbake rev: be23d887c8e244f1ef961298fbc9214d0fd0968a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:32 +01:00
Richard Purdie
d40d7e4385 bitbake: hashserv: Use separate threads for answering requests and handling them
Experience with the prserv shows that having two threads, one accepting
and queueing connections and one handling the requests leads to much
more reliable behaviour than having everything in a single thread.

(Bitbake rev: a03d60671a53d9ff70e07cc42fe35f6f8776dac2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
94d5c61c9a bitbake: prserv: Use a memory journal
We've seen PR Server timeouts on the autobuilder, this is likely from the
journal being blocked on disk IO generated by the build.

Since we're running with synchronous off, we may as well put the journal
into memory and avoid any IO related stalls.

(Bitbake rev: ee3fc6030e653f3244b065fc89aafd2a7c36ae04)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
f9f308250a bitbake: hashserv: Turn off sqlite synchronous mode
We're seeing performance problems with hashserv running on a normal build
system. The cause seems to be the large amounts of file IO that builds involve
blocking writes to the database. Since sqlite blocks on the sync calls, this
causes a significant problem.

Since if we lose power we have bigger problems, run with synchronous=off
to avoid locking and put the jounral into memory to avoid any write issues
there too.

This took writes from 120s down to negligible in my tests, which means
hashserv then responds promptly to requests.

(Bitbake rev: 7ae56a4d4fcf66e1da1581c70f75e30bfdf3ed83)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
ca04aaf7b5 bitbake: cooker/hashserv: Allow autostarting of a local hash server using BB_HASHSERVE
Its useful, particularly in the local developer model of usage, for
bitbake to start and stop a hash equivalence server on local port,
rather than relying on one being started by the user before the build.

The new BB_HASHSERVE variable supports this.

The database handling is moved internally into the hashserv code so that
different threads/processes can be used for the server without errors.

(Bitbake rev: a4fa8f1bd88995ae60e10430316fbed63d478587)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
d9aafb8507 bitbake: runqueue: Improve determinism
Whilst this isn't strictly necessary, its helpful if the log output is
consistent and its also helpful if bugs either appear or don't appear
for a specific configuration. Ensuring the various iterations we make
are deterministic (sorted) helps with this.

(Bitbake rev: 6a901bb904a97ca90d88be2c6901d3d32346282f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
7df31ff368 bitbake: runqueue: Enable dynamic task adjustment to hash equivalency
There is a compelling usecase for tasks being able to notify runqueue
that their "unihash" has changed. When this is recieved, the hashes of
all subsequent tasks should be recomputed and their new hashes checked
against existing setscene validity. Any newly available setscene tasks
should then be executed.

Making this work effectively needs several pieces. An event is added
which the cooker listen for. If a new hash becomes available it can
send an event to notify of this.

When such an event is seen, hash recomputations are made. A setscene
task can't be run until all the tasks it "covers" are stopped. The
notion of "holdoff" tasks is therefore added, these are removed from
the buildable list with the assumption that some setscene task will
run and cover them.

The workers need to be notified when taskhashes change to update their
own internal siggen data stores. A new worker command is added to do this
which will affect all newly spawned worker processes from that worker.

An example workflow which tests this code is:

Configuration:
BB_SIGNATURE_HANDLER = "OEEquivHash"
SSTATE_HASHEQUIV_SERVER = "http://localhost:8686"

$ bitbake-hashserv &
$ bitbake automake-native
$ bitbake autoconf-native automake-native -c clean
$ bitbake m4-native -c install -f
$ bitbake automake-native

with the test being whether automake-native is installed from sstate.

(Bitbake rev: 1f630fdf0260db08541d3ca9f25f852931c19905)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
40eb5b344b bitbake: siggen: Convert to use self.unitaskhashes
Rather than metadata driven sqlite databases for communication, use
bitbake's unitaskhashes variable instead.

(Bitbake rev: a0d941c787cf3ef030d190903279d311bc05d752)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
de143e0db6 bitbake: siggen: Add new unitaskhashes data variable which is cached
We need to preserve unihash task hashes between runs. Use the new SimpleCache
class to create such a class within the signature generator which is loaded
at init time and saved when builds complete. The default is unpopulated but
metadata sig handlers can populate this cache.

(Bitbake rev: 1f326f2c29c2664a5daaeeb0c1fd332630efbdba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
53bb939383 bitbake: runqueue: Improve scenequeue processing logic
Rather than a special copy of the data structure which we change, compute
the logic using set operations from other data we have. This means
we can add tasks back into the scenequeue without having to worry about
reversing operations on this variable with all the potential bugs that
might involve.

(Bitbake rev: b707d0cbc25fa336a1e95ff588f1ea37eee063eb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
5f56244092 bitbake: cache: Add SimpleCache class
This adds a simple version of the MultiProcessCache which can be used to
save and load cache data, useful for a new usecase we have in
sigdata/runqueue.

(Bitbake rev: 19a6e35600ae6d2d1bcecca6e68ab8c37674774e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
db31374efa bitbake: siggen: Import unihash code from OE-Core
This code is closely tied with the hash server in bitbake and also means
we can't relibably test the hashserv runqueue functionality without OE
metadata. Moving this to bitbake as a MixIn class makes most sense
and encourages code collaboration and reuse as well as enabling easier
and more accurate testing of the APIs.

(Bitbake rev: 7bb79099a6c1b463d6ae9226c4cab5e76a965675)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Joshua Watt
9802b2e650 bitbake: hashserv: SQL Optimizations
Implements a number of optimizations to the SQL used in the hash
equivalence server:

 1) Two indexes are created for the two methods (method, taskhash and
    method outhash) by which rows are found in order to speed up the
    lookup
 2) An extra SELECT to lookup the just inserted row was removed. This
    SELECT is unnecessary since all of the information about the newly
    inserted row is already available.
 3) A uniqueness constraint was added to the table. This should allow
    the server to be multithreaded in the future since duplicate inserts
    can be detected (and ignored). This change requires bumping the
    database version to '2', since a uniqueness constraint can't be
    added to an existing table.
 4) Some comments are added to clarify the trick SELECT statement used
    when inserting new equivalent hashes

(Bitbake rev: 7aec8632e67b4f0ab7b72692c40a42f6926608c3)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-06 11:21:31 +01:00
Richard Purdie
6c7c0cefd3 sstate: Reduce race windows
When we write to the sstate directory we try to do so atomically so
consumers either see one version or another but never an imcomplete file.
Unfortunately this is reliant on filesystem support and with some NFS
configurations a replaced file would be lost from memory even if users held
open descriptors.

It makes sense to try and avoid replacing existing files where we can.

(From OE-Core rev: 18cdc087fd5da30e2b31f3d4e81b153cd36ca844)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
dad9cd5cca libx11: update to 1.6.8
Fix the build when the host doesn't have libc.a installed by reverting an
upstream commit, and cherry-pick a build fix from master.

Drop a redundant sed, the expression it removes doesn't exist anymore.

Move most patches to libx11.inc so that they're applied to both libx11 and libx11-diet.

(From OE-Core rev: 8bb48ac237315e83837973ecd1488060ec170588)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Oleksandr Kravchuk
ad3edec70d xserver-xorg: update to 1.20.5
(From OE-Core rev: b40277355b4ecf041061b3db0d4d890c7033e96f)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Oleksandr Kravchuk
0eeecb0027 xorgproto: update to 2019.1
(From OE-Core rev: 2ec1b978e0d02884e6553d3495daf9cf914d267b)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
6fc65530fb xserver-xorg: remove embedded build path in the source
The generated source file sdksyms.c has a comment with the absolute build path,
which means xserver-xorg-src contains this build path.  This is both potential
build information leakage and a source of unreproducibility, so remove the
comment.

(From OE-Core rev: 2086e0f08d920de15ab4065fb43c2281b1dcc57a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
3ac93c73e1 libxx86dga: remove obsolete client libary
No modern drivers nor applications use DGA, so remove the client library.

(From OE-Core rev: 2d7e485fcfbc0dc3d76339baf02f50c3c9e22a91)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
73cc433815 xdpyinfo: don't depend on DGA
DGA (Direct Graphics Access) is an obsolete extension that neither modern X
drivers nor applications support.  We'll remove the client library, so remove
the optional dependency on DGA in xdpyinfo.

(From OE-Core rev: b00b1bb1f9394c05268fa10bf0114dc9defc70df)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
7cbf0fb1f0 xserver-xorg: add PACKAGECONFIG for DGA
Ideally we'd disable this as no real world client applications actually use DGA
these days, but some drivers (for example fbdev and cirrus) still need DGA
enabled in the server to build.

(From OE-Core rev: e7b1a58a757334d5c73a9b7a8c67e6ead07166c7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
4e96b138a6 xserver-xorg: clean up xorgproto dependencies
xorgproto is mentioned in the PACKAGECONFIG build dependencies because in the
past it was many separate *proto recipes.  Now they're all in one recipe, which
is in DEPENDS, so we don't need to depend on it several times.

(From OE-Core rev: 1c072b42525864e26d4ab17a64f925ce3803d583)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
85c295bef6 libxx86misc: remove this now redundant library
The extension this client library is for was removed from the X server over a
decade ago:

commit 22e64108ec63ba77779891f8df237913ef9ca731
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Jul 16 06:25:26 2008 +0300

    XFree86: Remove XFree86-Misc extension

    Its last remaining purpose in life has been destroyed by input
    properties.  Au revoir: it's been fun, by which I mean awful.

Remove the obsolete dependencies from xset and xdpyinfo, and delete libxx86misc
entirely.

(From OE-Core rev: 4d7677b2f511b2d07fabb1f06213a569c53f839f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
enter the commit message for your changes. Lines starting
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ming Liu
e5b0ad5dfa weston: change to use meson build system
The changes include:
- Drop all autotools related patches.
- Move weston-launch setuid-install to do_install task since it's not
  supported yet by meson build.
- Drop cairo-glesv2 package config, it's not supported by meson build,
  the recommended value is hard-coded to cairo-image for now in weston
  source.
- Introduce remoting package config, to give this option a explicit
  value, or else the build would run into gstreamer missing error since
  it defaults to be true but gstreamer is not in depends list.
- Default to headless backend if neither x11 nor wayland is in
  DISTRO_FEATURES.

To be noticed, the packages built from meson would not be identical
with those built from autotools, for instance, libz dependency has been
dropped from meson build, and systemd-notify is always built in meson
when systemd packageconfig is enabled, which in autotools, it's
optional, and so on, it's not easy to list all the differences, but
you could get them by comparing the pkgdata directories built by meson
and autotools.

(From OE-Core rev: 8d68e3cb315137f73d1b0f5f80180c2d3526f99d)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
89a2768000 insane: check if the recipe incorrectly uses DEPENDS_${PN}
Some people mistakenly use DEPENDS_${PN} and wonder why the dependencies don't
work. Check for this and tell the user to use DEPENDS.

(From OE-Core rev: cfaa104955c4ad0aafbe5d59ef85e4a8e3526c69)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Adrian Bunk
06e36f13bf grub/libmpc/gdb: Use GNU_MIRROR in more recipes
(From OE-Core rev: 2f13b063f64c500f144a70d23a343223b5c70907)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Randy MacLeod
640c59a706 ptest-runner: update from 2.3.1 to 2.3.2
All local patches are now upstream so they have been dropped.
Other upstream commits make ptest-runner build using: clang -Weverything

$ git log --oneline b73bd54..7015e91
7015e91 (HEAD -> oe-core-master, tag: v2.3.2, origin/master, origin/HEAD, master) Fix additional warnings when using clang
dd1daa8 tests: fix clang warnings.
15fd131 main code: fix clang warnings
59381a6 utils: ensure child can be session leader
5fe2c0a utils: Ensure pipes are read after exit
79a9c27 use process groups when spawning
b73bd54 utils: Ensure stdout/stderr are flushed

(From OE-Core rev: 9a80a352a9d0c4ea09de7bb370267672c32771f2)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Changqing Li
f2a951f479 runqemu: fix get portlock fail for multi users
when runqemu with slirp option on same host with different
users, it will report PermissionError: [Errno 13] Permission
denied: '/tmp/qemu-port-locks/2222.lock'
and during handle this exception, another exception happened since
key not exist. Fix by check if key exist first

(From OE-Core rev: 56f30e5377ebe5cc4544f081e001934706a0d8d3)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Oleksandr Kravchuk
5cc460d177 python3-git: update to 2.1.13
(From OE-Core rev: 4669839edbac8e1d3a8267d32ebf259a44938ec7)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Bruce Ashfield
375c1ecb6a linux-yocto-dev: bump to 5.3-rcX
(From OE-Core rev: 2214c58839daf393e1c78e8e39c4f059ddbc2a08)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Bruce Ashfield
d8285c5714 linux-yocto/4.19: update to v4.19.61
Integrating the korg -stable commits that comprise the following
changes:

   7250956f6eaf Linux 4.19.61
   025eb12bb4b0 dm bufio: fix deadlock with loop device
   404f59e265ac dt-bindings: allow up to four clocks for orion-mdio
   03e6a668ea1f net: mvmdio: allow up to four clocks to be specified for orion-mdio
   dd87cc633ba5 blkcg: update blkcg_print_stat() to handle larger outputs
   73efdc5d7d3b blk-iolatency: clear use_delay when io.latency is set to zero
   1ab644bd02ab blk-throttle: fix zero wait time for iops throttled group
   91da712ff592 usb: Handle USB3 remote wakeup for LPM enabled devices correctly
   152ddf9f0458 Bluetooth: Add SMP workaround Microsoft Surface Precision Mouse bug
   98318cd31b95 intel_th: msu: Fix single mode with disabled IOMMU
   d6328d7c1a71 mtd: spinand: read returns badly if the last page has bitflips
   94f1db42a968 mtd: rawnand: mtk: Correct low level time calculation of r/w cycle
   30c6b34759f6 eCryptfs: fix a couple type promotion bugs
   92e23f5fc049 mmc: sdhci-msm: fix mutex while in spinlock
   01982f7bcc9d powerpc/pseries: Fix oops in hotplug memory notifier
   e725502b8548 powerpc/powernv/npu: Fix reference leak
   1e3b61cbc30d powerpc/watchpoint: Restore NV GPRs while returning from exception
   237ac0d73b55 powerpc/32s: fix suspend/resume when IBATs 4-7 are used
   7961981718d6 parisc: Fix kernel panic due invalid values in IAOQ0 or IAOQ1
   a6a0daa775e8 parisc: Ensure userspace privilege for ptraced processes in regset functions
   ef5c2e165ab0 crypto: caam - limit output IV to CBC to work around CTR mode DMA issue
   376b80276d84 gpu: ipu-v3: ipu-ic: Fix saturation bit offset in TPMEM
   ef30c0739439 xfs: abort unaligned nowait directio early
   669c867972c0 xfs: serialize unaligned dio writes against all other dio writes
   d61d885b17b0 xfs: fix reporting supported extra file attributes for statx()
   f614ef7a34b0 xfs: reserve blocks for ifree transaction during log recovery
   424543a53ae0 xfs: don't ever put nlink > 0 inodes on the unlinked list
   3a895cc066c0 xfs: rename m_inotbt_nores to m_finobt_nores
   2ab62234e823 xfs: don't overflow xattr listent buffer
   1dc8b13cc66d xfs: flush removing page cache in xfs_reflink_remap_prep
   788920d12b95 xfs: fix pagecache truncation prior to reflink
   41f64437f030 include/asm-generic/bug.h: fix "cut here" for WARN_ON for __WARN_TAINT architectures
   afa3e571cde3 coda: pass the host file in vma->vm_file on mmap
   2c0222b48e77 libnvdimm/pfn: fix fsdax-mode namespace info-block zero-fields
   656d06dab4d6 HID: wacom: correct touch resolution x/y typo
   1c871b4006b2 HID: wacom: generic: Correct pad syncing
   46f71a15abe7 HID: wacom: generic: only switch the mode on devices with LEDs
   cb4c2b94f629 IB/mlx5: Report correctly tag matching rendezvous capability
   4bd953241d81 Btrfs: add missing inode version, ctime and mtime updates when punching hole
   fffedf5cf67e Btrfs: fix fsync not persisting dentry deletions due to inode evictions
   110850fffeb0 Btrfs: fix data loss after inode eviction, renaming it, and fsync it
   6b71c62ea9da PCI: qcom: Ensure that PERST is asserted for at least 100 ms
   529e71cae929 PCI: Do not poll for PME if the device is in D3cold
   4d8504004c86 PCI: hv: Fix a use-after-free bug in hv_eject_device_work()
   f0ff76a42ef5 intel_th: pci: Add Ice Lake NNPI support
   66a13b5e4e9c drm/edid: parse CEA blocks embedded in DisplayID
   9854e06842bc perf/x86/amd/uncore: Set the thread mask for F17h L3 PMCs
   82c46f7b0918 perf/x86/amd/uncore: Do not set 'ThreadMask' and 'SliceMask' for non-L3 PMCs
   a847a5225432 perf/x86/intel: Fix spurious NMI on fixed counter
   0d4c0bb70665 x86/boot: Fix memory leak in default_get_smp_config()
   b52807e607f1 9p/virtio: Add cleanup path in p9_virtio_init
   1253882d64d0 9p/xen: Add cleanup path in p9_trans_xen_init
   007e5aaf287c xen/events: fix binding user event channels to cpus
   e380170b3b3a dm zoned: fix zone state management race
   1e4247d7958b padata: use smp_mb in padata_reorder to avoid orphaned padata jobs
   0489d808a5f2 drm/nouveau/i2c: Enable i2c pads & busses during preinit
   c77cbc873586 kconfig: fix missing choice values in auto.conf
   2c7b50c7b1d0 fs/proc/proc_sysctl.c: fix the default values of i_uid/i_gid on /proc/sys inodes.
   ba271659ad42 arm64: tegra: Fix AGIC register range
   ba27a25df6df KVM: x86/vPMU: refine kvm_pmu err msg when event creation failed
   87bae91a0fe9 media: videobuf2-dma-sg: Prevent size from overflowing
   cb2e2b0ae554 media: videobuf2-core: Prevent size alignment wrapping buffer size to 0
   deb78bd24e0c media: coda: Remove unbalanced and unneeded mutex unlock
   fc0232e24541 media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
   a4c4c06f1755 ALSA: hda/realtek: apply ALC891 headset fixup to one Dell machine
   8ba78e4d564e ALSA: hda/realtek - Fixed Headphone Mic can't record on Dell platform
   c92212a81617 ALSA: seq: Break too long mutex context in the write loop
   eb6c84e4b4f2 raid5-cache: Need to do start() part job after adding journal device
   3f42c0000b23 ASoC: dapm: Adapt for debugfs API change
   677b2aa3be5c lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
   0b174bac4e43 pnfs: Fix a problem where we gratuitously start doing I/O through the MDS
   f64ff5914f00 pNFS: Fix a typo in pnfs_update_layout
   603e7497bf27 pnfs/flexfiles: Fix PTR_ERR() dereferences in ff_layout_track_ds_error
   5347e61954fc NFSv4: Handle the special Linux file open access mode
   6825ff011c7c iwlwifi: fix RF-Kill interrupt while FW load for gen2 devices
   a32e2ceca0ef iwlwifi: don't WARN when calling iwl_get_shared_mem_conf with RF-Kill
   d9ce0788da91 iwlwifi: pcie: fix ALIVE interrupt handling for gen2 devices w/o MSI-X
   04c52c105a38 iwlwifi: pcie: don't service an interrupt that was masked
   7ebddd5fe217 arm64: tegra: Update Jetson TX1 GPU regulator timings
   042451b921b1 regulator: s2mps11: Fix buck7 and buck8 wrong voltages
   8da63aa46e26 Input: alps - fix a mismatch between a condition check and its comment
   81368a9a98d9 Input: synaptics - whitelist Lenovo T580 SMBus intertouch
   cfb9250619c8 Input: alps - don't handle ALPS cs19 trackpoint-only device
   d657077eda7b Input: gtco - bounds check collection indent level
   f11ba9df8eed bcache: destroy dc->writeback_write_wq if failed to create dc->writeback_thread
   2ab14861d2eb bcache: fix mistaken sysfs entry for io_error counter
   3c466df8fc59 bcache: ignore read-ahead request failure on backing device
   4fc48cd21a31 bcache: Revert "bcache: free heap cache_set->flush_btree in bch_journal_free"
   ab966241d59a bcache: Revert "bcache: fix high CPU occupancy during journal"
   58169c189bd6 Revert "bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()"
   c3b7d27f3746 crypto: crypto4xx - fix a potential double free in ppc4xx_trng_probe
   a9fd1795fee6 crypto: ccp/gcm - use const time tag comparison.
   561c4424f1e3 crypto: ccp - memset structure fields to zero before reuse
   13805a5df489 crypto: crypto4xx - block ciphers should only accept complete blocks
   17e63172d536 crypto: crypto4xx - fix blocksize for cfb and ofb
   4598094d24c7 crypto: crypto4xx - fix AES CTR blocksize value
   1c9b0a766513 crypto: chacha20poly1305 - fix atomic sleep when using async algorithm
   eb99c084da28 crypto: arm64/sha2-ce - correct digest for empty data in finup
   4230e09e61e6 crypto: arm64/sha1-ce - correct digest for empty data in finup
   52f07c1ac70e crypto: ccp - Validate the the error value used to index error messages
   bed97f646997 crypto: ghash - fix unaligned memory access in ghash_setkey()
   ce7ec07abaf7 scsi: mac_scsi: Fix pseudo DMA implementation, take 2
   de769c762626 scsi: mac_scsi: Increase PIO/PDMA transfer length threshold
   3e9534fa5046 scsi: megaraid_sas: Fix calculation of target ID
   1334a3e2d6d0 scsi: core: Fix race on creating sense cache
   58f59f6072ab Revert "scsi: ncr5380: Increase register polling limit"
   7cfded7a705c scsi: NCR5380: Always re-enable reselection interrupt
   d91baba81a6e scsi: NCR5380: Reduce goto statements in NCR5380_select()
   e73db096691e xen: let alloc_xenballooned_pages() fail if not enough memory free
   ff54c44f1038 floppy: fix out-of-bounds read in copy_buffer
   a9444d9d0f6f floppy: fix invalid pointer dereference in drive_name
   5b565f3276f3 floppy: fix out-of-bounds read in next_valid_format
   6e34fd07484a floppy: fix div-by-zero in setup_format_params
   7c16c5eae41a iavf: fix dereference of null rx_buffer pointer
   e9896b29d010 net: mvmdio: defer probe of orion-mdio if a clock is not ready
   5f6c5f5ae25e gtp: fix use-after-free in gtp_newlink()
   141222216438 gtp: fix use-after-free in gtp_encap_destroy()
   0a5eca2c949c gtp: fix Illegal context switch in RCU read-side critical section.
   e117a04133c6 gtp: fix suspicious RCU usage
   202de90df2b7 Bluetooth: validate BLE connection interval updates
   ca33af18b5fc gtp: add missing gtp_encap_disable_sock() in gtp_encap_enable()
   0fdb922d0ef0 Bluetooth: Check state in l2cap_disconnect_rsp
   3b57b7a3a82a perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64
   c814f618b799 Bluetooth: 6lowpan: search for destination address in all peers
   c82c4910e9e6 Bluetooth: Add new 13d3:3501 QCA_ROME device
   1cbce19bd697 Bluetooth: Add new 13d3:3491 QCA_ROME device
   578658df21d5 Bluetooth: hci_bcsp: Fix memory leak in rx_skb
   9d47bd217539 tools: bpftool: Fix json dump crash on powerpc
   2ad04d31bb3e gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants
   157d1c7a1a00 bonding: validate ip header before check IPPROTO_IGMP
   88f751b066f2 selftests: bpf: fix inlines in test_lwt_seg6local
   ef5b204336b3 bpf, libbpf, smatch: Fix potential NULL pointer dereference
   0f2f2cebe64d rxrpc: Fix oops in tracepoint
   ca37b9a74689 net: usb: asix: init MAC address buffers
   51216937c319 bnx2x: Prevent ptp_task to be rescheduled indefinitely
   e358d2ab42f8 perf stat: Fix group lookup for metric group
   a64e018be77a perf stat: Make metric event lookup more robust
   7343178ccf7d bpf: fix uapi bpf_prog_info fields alignment
   af3790a46a55 iwlwifi: mvm: Drop large non sta frames
   036184af23e0 igb: clear out skb->tstamp after reading the txtime
   0024b12b776c net: mvpp2: prs: Don't override the sign bit in SRAM parser shift
   05592b9b7f25 ath10k: destroy sdio workqueue while remove sdio module
   26d86b29e806 net: hns3: add some error checking in hclge_tm module
   ddfdbcccd71a net: hns3: fix a -Wformat-nonliteral compile warning
   95d084809495 bcache: fix potential deadlock in cached_def_free()
   4b7758e9c4ed bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush()
   81b88c05bc45 bcache: acquire bch_register_lock later in cached_dev_free()
   d81080a0bcf8 bcache: check CACHE_SET_IO_DISABLE bit in bch_journal()
   57cfb755c356 bcache: check CACHE_SET_IO_DISABLE in allocator code
   e78d1d234469 EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec
   e54cc89e6f0a wil6210: drop old event after wmi_call timeout
   0388597d0627 crypto: asymmetric_keys - select CRYPTO_HASH where needed
   1dea395c9e12 crypto: serpent - mark __serpent_setkey_sbox noinline
   b346070c72cd ixgbe: Check DDM existence in transceiver before access
   0340c621eca8 rslib: Fix handling of of caller provided syndrome
   8ba93c59441a rslib: Fix decoding of shortened codes
   dad0b17e4a4e xsk: Properly terminate assignment in xskq_produce_flush_desc
   e69fac59c493 clocksource/drivers/exynos_mct: Increase priority over ARM arch timer
   12e20eca894b libata: don't request sense data on !ZAC ATA devices
   6e6bc34f8570 ASoC: Intel: hdac_hdmi: Set ops to NULL on remove
   1182ff224847 perf tools: Increase MAX_NR_CPUS and MAX_CACHES
   7201cc227d4a ath10k: fix PCIE device wake up failed
   8a808fadc9f7 ath10k: add missing error handling
   fe2ceeb4cffc ipvs: fix tinfo memory leak in start_sync_thread
   20de38d282b3 mt7601u: fix possible memory leak when the device is disconnected
   033577880135 x86/build: Add 'set -e' to mkcapflags.sh to delete broken capflags.c
   3f7952b275c8 mt7601u: do not schedule rx_tasklet when the device has been disconnected
   6f6e126e1995 rtlwifi: rtl8192cu: fix error handle when usb probe failed
   41864adfee2e net: stmmac: sun8i: force select external PHY when no internal one
   bce037abc29f media: hdpvr: fix locking and a missing msleep
   43b9fdc48377 media: vimc: cap: check v4l2_fill_pixfmt return value
   d562537dbf0d media: coda: increment sequence offset for the last returned frame
   3697c12c4425 media: coda: fix last buffer handling in V4L2_ENC_CMD_STOP
   6fd3e9f65db9 media: coda: fix mpeg2 sequence number handling
   c647c00f28af acpi/arm64: ignore 5.1 FADTs that are reported as 5.0
   b9f547b7bdd9 timer_list: Guard procfs specific code
   d86c0b73f75b ntp: Limit TAI-UTC offset
   8d8f0b9009d0 media: i2c: fix warning same module names
   6439110fbeee media: s5p-mfc: Make additional clocks optional
   57de3c78f0b7 ipvs: defer hook registration to avoid leaks
   06a3cd416224 ipsec: select crypto ciphers for xfrm_algo
   723ba7938492 arm64: Do not enable IRQs for ct_user_exit
   010bfbc93424 lightnvm: pblk: fix freeing of merged pages
   762bba1b7ee7 nvme-pci: set the errno on ctrl state change error
   c876a66553d7 nvme-pci: properly report state change failure in nvme_reset_work
   f0c83dd15ee1 nvme: fix possible io failures when removing multipathed ns
   10cc3a65a55b EDAC/sysfs: Fix memory leak when creating a csrow object
   f6502ce4f050 ACPICA: Clear status of GPEs on first direct enable
   3ae98dc2db1e blk-iolatency: only account submitted bios
   a952f7c384aa x86/cacheinfo: Fix a -Wtype-limits warning
   3252b29ea41b ipoib: correcly show a VF hardware address
   0e2af9b06c00 vhost_net: disable zerocopy by default
   4c57957ed6c8 perf evsel: Make perf_evsel__name() accept a NULL argument
   9e0bcb59b6c0 x86/atomic: Fix smp_mb__{before,after}_atomic()
   dd0260fd1e3a perf/x86/intel/uncore: Handle invalid event coding for free-running counter
   7fc96cd2b0de sched/fair: Fix "runnable_avg_yN_inv" not used warnings
   d8b7db6c5004 sched/core: Add __sched tag for io_schedule()
   930655b01367 xfrm: fix sa selector validation
   b7d66bbc8ad3 blkcg, writeback: dead memcgs shouldn't contribute to writeback ownership arbitration
   c8f75e753784 block: null_blk: fix race condition for null_del_dev
   1a3706d8f800 net: hns3: fix for skb leak when doing selftest
   6a47a42f51cf qed: iWARP - Fix tc for MPA ll2 connection
   670fb965da03 x86/cpufeatures: Add FDP_EXCPTN_ONLY and ZERO_FCS_FDS
   366ae49ed78c rcu: Force inlining of rcu_read_lock()
   1fb3ce14f28d ASoC: meson: axg-tdm: fix sample clock inversion
   32df4043aed4 x86/cpu: Add Ice Lake NNPI to Intel family
   914026d58100 selinux: fix empty write to keycreate file
   10e3788e6575 media: s5p-mfc: fix reading min scratch buffer size on MFC v6/v7
   7c10f8941b95 bpf: silence warning messages in core
   b01bf44c363d regmap: fix bulk writes on paged registers
   544cd592ca72 gpio: omap: ensure irq is enabled before wakeup
   ddeef7a00050 gpio: omap: fix lack of irqstatus_raw0 for OMAP4
   79644b600850 iommu: Fix a leak in iommu_insert_resv_region
   f2a4624be8f3 media: fdp1: Support M3N and E3 platforms
   63e53991d791 media: uvcvideo: Fix access to uninitialized fields on probe error
   c844f4da9b92 irqchip/meson-gpio: Add support for Meson-G12A SoC
   eac8b39d089a perf report: Fix OOM error in TUI mode on s390
   be32a9dc3f62 perf test 6: Fix missing kvm module load for s390
   3662d8bca087 perf cs-etm: Properly set the value of 'old' and 'head' in snapshot mode
   ac510285d40b ipset: Fix memory accounting for hash types on resize
   c7bf2df45044 net: sfp: add mutex to prevent concurrent state checks
   fa4059c5497e RAS/CEC: Fix pfn insertion
   99dcd701465f s390/qdio: handle PENDING state for QEBSM devices
   a76f32cbd38c net: axienet: Fix race condition causing TX hang
   9d643358386d net: fec: Do not use netdev messages too early
   403c43921479 crypto: inside-secure - do not rely on the hardware last bit for result descriptors
   50331c64f3dd net: stmmac: modify default value of tx-frames
   1a0a837afc41 net: stmmac: dwmac4: fix flow control issue
   713737cac327 perf jvmti: Address gcc string overflow warning for strncpy()
   fb83987cbe6b arm64: mm: make CONFIG_ZONE_DMA32 configurable
   c360eb592938 cpupower : frequency-set -r option misses the last cpu in related cpu list
   cac3032062e5 net: hns3: set ops to null when unregister ad_dev
   35407917b0bc media: wl128x: Fix some error handling in fm_v4l2_init_video_device()
   2fbde2746597 locking/lockdep: Fix merging of hlocks with non-zero references
   909034b8ac64 batman-adv: Fix duplicated OGMs on NETDEV_UP
   aa2ad8b6fb2f tua6100: Avoid build warnings.
   9072450736d0 crypto: talitos - Align SEC1 accesses to 32 bits boundaries.
   9d25aedef08f crypto: talitos - properly handle split ICV.
   fc25cfb03ea2 net: phy: Check against net_device being NULL
   ef10d46d04a5 media: staging: media: davinci_vpfe: - Fix for memory leak if decoder initialization fails.
   e36f25627362 media: saa7164: fix remove_proc_entry warning
   ea904c9f6a33 media: mc-device.c: don't memset __user pointer contents
   a6dd4862b98f perf annotate TUI browser: Do not use member from variable within its own initialization
   71b029a5d908 fscrypt: clean up some BUG_ON()s in block encryption/decryption
   2c6acf7478aa xfrm: Fix xfrm sel prefix length validation
   0544b64ceb64 af_key: fix leaks in key_pol_get_resp and dump_sp.
   b397462a010d signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig
   1c8e736115cd qed: Set the doorbell address correctly
   df6680de7a20 net: stmmac: dwmac4/5: Clear unused address entries
   d3969670cb5a net: stmmac: dwmac1000: Clear unused address entries
   810441651a8a media: media_device_enum_links32: clean a reserved field
   6fb470ace862 media: vpss: fix a potential NULL pointer dereference
   70da38e80509 media: marvell-ccic: fix DMA s/g desc number calculation
   add712b63185 media: ov7740: avoid invalid framesize setting
   b0e199e13495 crypto: talitos - fix skcipher failure due to wrong output IV
   6452712f95e3 media: spi: IR LED: add missing of table registration
   94f2b518a788 media: dvb: usb: fix use after free in dvb_usb_device_exit
   8f855c09e2af batman-adv: fix for leaked TVLV handler.
   83d133c96aad regmap: debugfs: Fix memory leak in regmap_debugfs_init
   2b5b12c0c1b7 ath: DFS JP domain W56 fixed pulse type 3 RADAR detection
   da153c0c5746 wil6210: fix spurious interrupts in 3-msi
   a4bf4fecff16 ath10k: add peer id check in ath10k_peer_find_by_id
   83c911f4bd68 ath6kl: add some bounds checking
   42dcbf20e182 ath9k: Check for errors when reading SREV register
   7e19e658e535 ath10k: Do not send probe response template for mesh
   009edc622bba wil6210: fix potential out-of-bounds read
   09593c25b975 dmaengine: imx-sdma: fix use-after-free on probe error path
   06e15cf5aead scsi: iscsi: set auth_protocol back to NULL if CHAP_A value is not supported
   37cb02da44dc arm64/efi: Mark __efistub_stext_offset as an absolute symbol explicitly
   73ebefc814ef MIPS: fix build on non-linux hosts
   7202df6be6ec MIPS: ath79: fix ar933x uart parity mode
   be9b6782a9eb Linux 4.19.60
   d173ce091c1a x86/entry/32: Fix ENDPROC of common_spurious
   466bdfc6c4d6 drm/udl: move to embedding drm device inside udl device.
   af48f7d79fae drm/udl: Replace drm_dev_unref with drm_dev_put
   cfd99eccede5 drm/udl: introduce a macro to convert dev to udl.
   8f14cf159e9f regmap-irq: do not write mask register if mask_base is zero
   820b010743ee crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
   b24c6403633d crypto: talitos - fix hash on SEC1.
   ff1ce8ef1f88 crypto: talitos - move struct talitos_edesc into talitos.h
   b578b87bcab6 s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
   b1d52630b12a s390/qdio: (re-)initialize tiqdio list entries
   02eb533e940a s390: fix stfle zero padding
   9db915738e40 ARC: hide unused function unw_hdr_alloc
   fc6975ee932b x86/irq: Seperate unused system vectors from spurious entry again
   9494cd392885 x86/irq: Handle spurious interrupt after shutdown gracefully
   7897f5a443fb x86/ioapic: Implement irq_get_irqchip_state() callback
   6074f6043c49 genirq: Add optional hardware synchronization for shutdown
   3f10ccc29780 genirq: Fix misleading synchronize_irq() documentation
   578db1aa595b genirq: Delay deactivation in free_irq()
   2656ee5a5ad5 linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL
   9c875e8556d4 pinctrl: mediatek: Update cur_mask in mask/mask ops
   f6e01328cb0e cpu/hotplug: Fix out-of-bounds read when setting fail state
   fa99487a43cf pinctrl: mediatek: Ignore interrupts that are wake only during resume
   cd2646e57ec5 HID: multitouch: Add pointstick support for ALPS Touchpad
   9ea3b131441e HID: chicony: add another quirk for PixArt mouse
   94968c37b6d3 x86/boot/64: Add missing fixup_pointer() for next_early_pgt access
   729d25f43b64 x86/boot/64: Fix crash if kernel image crosses page table boundary
   136847140cc8 dm verity: use message limit for data block corruption message
   042be78692ae dm table: don't copy from a NULL pointer in realloc_argv()
   0fc080bc9a72 pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order
   00640eb0eafa ARM: dts: imx6ul: fix PWM[1-4] interrupts
   a8cc2a2c2841 sis900: fix TX completion
   3232bccddeba ppp: mppe: Add softdep to arc4
   5ec7753c7c9e be2net: fix link failure after ethtool offline test
   2a6ee36917f0 x86/apic: Fix integer overflow on 10 bit left shift of cpu_khz
   fdfff855cd36 afs: Fix uninitialised spinlock afs_volume::cb_break_lock
   d47f06ab0c0e ARM: omap2: remove incorrect __init annotation
   5d3c45538151 ARM: dts: gemini Fix up DNS-313 compatible string
   afda29dc5ac6 perf/core: Fix perf_sample_regs_user() mm check
   627fdcc9b718 efi/bgrt: Drop BGRT status field reserved bits check
   cf4deb2d4de6 clk: ti: clkctrl: Fix returning uninitialized data
   ff232a47567f irqchip/gic-v3-its: Fix command queue pointer comparison bug
   244db54441a1 firmware: improve LSM/IMA security behaviour
   079d7f16a973 drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
   68048dce650e nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
   86859ef10d25 Input: synaptics - enable SMBUS on T480 thinkpad trackpad
   438a3dc6f2c3 e1000e: start network tx queue only when link is up
   8020568b404b Revert "e1000e: fix cyclic resets at link up with active tx"
   3bd837bfe431 Linux 4.19.59
   70bae382b3dc staging: rtl8712: reduce stack usage, again
   b46475ecd930 staging: bcm2835-camera: Handle empty EOS buffers whilst streaming
   0ee144effcc3 staging: bcm2835-camera: Remove check of the number of buffers supplied
   fcbc6ddcd624 staging: bcm2835-camera: Ensure all buffers are returned on disable
   4502c43d7f3b staging: bcm2835-camera: Replace spinlock protecting context_map with mutex
   22a20b9f6d9f staging: fsl-dpaa2/ethsw: fix memory leak of switchdev_work
   cc396afa1959 MIPS: Remove superfluous check for __linux__
   d202b5adccfb VMCI: Fix integer overflow in VMCI handle arrays
   486c32325caa carl9170: fix misuse of device driver API
   524ad00e80b7 binder: fix memory leak in error path
   294b893a41cd lkdtm: support llvm-objcopy
   5c90a2ecd08a HID: Add another Primax PIXART OEM mouse quirk
   c04c751bef87 staging: comedi: amplc_pci230: fix null pointer deref on interrupt
   4e49c6c91c18 staging: comedi: dt282x: fix a null pointer deref on interrupt
   8419fd562a09 drivers/usb/typec/tps6598x.c: fix 4CC cmd write
   63b3028cd590 drivers/usb/typec/tps6598x.c: fix portinfo width
   57e16e0d8c68 usb: renesas_usbhs: add a workaround for a race condition of workqueue
   aa9a8038ea8b usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset()
   cac4a04202fb usb: gadget: ether: Fix race between gether_disconnect and rx_submit
   449a8d08a4bc p54usb: Fix race between disconnect and firmware loading
   135d9ba3b285 Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
   0891268f36a2 USB: serial: option: add support for GosunCn ME3630 RNDIS mode
   0a1c811bf033 USB: serial: ftdi_sio: add ID for isodebug v1
   bb902b6c87ff mwifiex: Don't abort on small, spec-compliant vendor IEs
   ffbbd626e1ce mwifiex: Abort at too short BSS descriptor element
   a2a24b57c27a Documentation/admin: Remove the vsyscall=native documentation
   8a815007f5fe Documentation: Add section about CPU vulnerabilities for Spectre
   bd9604022eb3 x86/tls: Fix possible spectre-v1 in do_get_thread_area()
   68ff28291a4f x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
   d8e26651ce8d perf pmu: Fix uncore PMU alias list for ARM64
   018524b75852 block, bfq: NULL out the bic when it's no longer valid
   ff75e5f41e88 ALSA: hda/realtek - Headphone Mic can't record after S3
   87c3262b00d8 ALSA: usb-audio: Fix parse of UAC2 Extension Units
   ef374f5a2731 media: stv0297: fix frequency range limit
   5db079eb0acd udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
   0fc3e9b9b603 fscrypt: don't set policy for a dead directory
   e9f76b954336 net :sunrpc :clnt :Fix xps refcount imbalance on the error path
   810cfc3d9d2e NFS4: Only set creation opendata if O_CREAT
   7075654ce7d0 net: dsa: mv88e6xxx: fix shift of FID bits in mv88e6185_g1_vtu_loadpurge()
   606561e16186 quota: fix a problem about transfer quota
   5ad566af08c1 scsi: qedi: Check targetname while finding boot target information
   37232abb6ea3 net: lio_core: fix potential sign-extension overflow on large shift
   740b2ac49518 ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
   a02ac12d2d48 drm: return -EFAULT if copy_to_user() fails
   4c938a635fc3 bnx2x: Check if transceiver implements DDM before access
   270ae00a0346 md: fix for divide error in status_resync
   5533d9ed4112 mmc: core: complete HS400 before checking status
   2da80536f629 qmi_wwan: extend permitted QMAP mux_id value range
   dc84e98393f7 qmi_wwan: avoid RCU stalls on device disconnect when in QMAP mode
   dbc6a83cf2bc qmi_wwan: add support for QMAP padding in the RX path
   292ba5b1faf4 bpf, x64: fix stack layout of JITed bpf code
   4c2ce7addda8 bpf, devmap: Add missing RCU read lock on flush
   ab44f8bcf2e5 bpf, devmap: Add missing bulk queue free
   8d09e862103b bpf, devmap: Fix premature entry free on destroying map
   ba0afe520ee9 mac80211: do not start any work during reconfigure flow
   de8cf2c0bc64 mac80211: only warn once on chanctx_conf being NULL
   9c2dd6d47131 ARM: davinci: da8xx: specify dma_coherent_mask for lcdc
   3bbcc8b9ad37 ARM: davinci: da850-evm: call regulator_has_full_constraints()
   443250665388 mlxsw: spectrum: Disallow prio-tagged packets when PVID is removed
   512bbb114b99 KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy
   41420ac584d7 Input: imx_keypad - make sure keyboard can always wake up system
   b71f312e9bf7 riscv: Fix udelay in RV32.
   122c6a71c08d drm/vmwgfx: fix a warning due to missing dma_parms
   d3861d4ca94c drm/vmwgfx: Honor the sg list segment size limitation
   c0b12abd1828 s390/boot: disable address-of-packed-member warning
   e71daed5176f ARM: dts: am335x phytec boards: Fix cd-gpios active level
   822c2ee81c63 ibmvnic: Fix unchecked return codes of memory allocations
   0f06004d16be ibmvnic: Refresh device multicast list after reset
   e65dd528bb8e ibmvnic: Do not close unopened driver during reset
   374180b11b29 net: phy: rename Asix Electronics PHY driver
   473a75c7fab5 can: af_can: Fix error path of can_init()
   486954277fc1 can: m_can: implement errata "Needless activation of MRAF irq"
   270149f78b9c can: mcp251x: add support for mcp25625
   33672c74b484 dt-bindings: can: mcp251x: add mcp25625 support
   07c96e8e8021 soundwire: intel: set dai min and max channels correctly
   c7e427e28a3a mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies()
   8e115a079940 iwlwifi: Fix double-free problems in iwl_req_fw_callback()
   d4c0f752c1d2 mwifiex: Fix possible buffer overflows at parsing bss descriptor
   b8588a0981b7 mac80211: free peer keys before vif down in mesh
   acc42e5c2322 mac80211: mesh: fix RCU warning
   e3868c1a462f staging:iio:ad7150: fix threshold mode config bit
   6b1ce3971e05 soundwire: stream: fix out of boundary access on port properties
   6be857082611 bpf: sockmap, fix use after free from sleep in psock backlog workqueue
   bc84982f977d mac80211: fix rate reporting inside cfg80211_calculate_bitrate_he()
   3c24a931e972 samples, bpf: suppress compiler warning
   e7779115bbd9 samples, bpf: fix to change the buffer size for read()
   fe01e93c3fd1 Input: elantech - enable middle button support on 2 ThinkPads
   2883fc1ece69 soc: bcm: brcmstb: biuctrl: Register writes require a barrier
   2f1c962a7416 soc: brcmstb: Fix error path for unsupported CPUs
   e8250f730410 crypto: talitos - rename alternative AEAD algos.
   7a6bfa08b938 Linux 4.19.58
   f37de75cb8eb dmaengine: imx-sdma: remove BD_INTR for channel0
   018c968de710 dmaengine: qcom: bam_dma: Fix completed descriptors count
   870de1499505 MIPS: have "plain" make calls build dtbs for selected platforms
   8957895b35de MIPS: Add missing EHB in mtc0 -> mfc0 sequence.
   2b8f8a80ca8b MIPS: Fix bounds check virt_addr_valid
   80b25628ff26 svcrdma: Ignore source port when computing DRC hash
   8129a10ce78f nfsd: Fix overflow causing non-working mounts on 1 TB machines
   f25c06955f8d KVM: LAPIC: Fix pending interrupt in IRR blocked by software disable LAPIC
   f6472f50fbfc KVM: x86: degrade WARN to pr_warn_ratelimited
   ac0024baf073 netfilter: ipv6: nf_defrag: accept duplicate fragments again
   54e8cf41b20b bpf: fix bpf_jit_limit knob for PAGE_SIZE >= 64K
   e6c288f7307e net: hns: fix unsigned comparison to less than zero
   4f24801ef50b sc16is7xx: move label 'err_spi' to correct section
   318244f3641a netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments
   a8891c5e2251 ip6: fix skb leak in ip6frag_expire_frag_queue()
   382bc84da904 rds: Fix warning.
   7e6af1fa80b8 ALSA: hda: Initialize power_state field properly
   c8c88293bf72 net: hns: Fixes the missing put_device in positive leg for roce reset
   6bf9677300f3 x86/boot/compressed/64: Do not corrupt EDX on EFER.LME=1 setting
   b91ec6ae14da selftests: fib_rule_tests: Fix icmp proto with ipv6
   e2851c3ee0be scsi: tcmu: fix use after free
   04096b3beace mac80211: mesh: fix missing unlock on error in table_path_del()
   e2379b044d67 f2fs: don't access node/meta inode mapping after iput
   e9fde78c3a4f drm/fb-helper: generic: Don't take module ref for fbcon
   7821bcce20aa media: s5p-mfc: fix incorrect bus assignment in virtual child device
   3ddc2a100706 net/smc: move unhash before release of clcsock
   cd54dc4cd37d mlxsw: spectrum: Handle VLAN device unlinking
   a8a296abee36 tty: rocket: fix incorrect forward declaration of 'rp_init()'
   fb814f215013 btrfs: Ensure replaced device doesn't have pending chunk allocation
   27ce6c2675f6 mm/vmscan.c: prevent useless kswapd loops
   c854d9b6ef8d ftrace/x86: Remove possible deadlock between register_kprobe() and ftrace_run_update_code()
   2e716c3b562d drm/imx: only send event on crtc disable if kept disabled
   8ec242fd431b drm/imx: notify drm core before sending event during crtc disable
   d2d061351d64 drm/etnaviv: add missing failure path to destroy suballoc
   ec5d99e18d30 drm/amdgpu/gfx9: use reset default for PA_SC_FIFO_SIZE
   ec6d8c9e6687 drm/amd/powerplay: use hardware fan control if no powerplay fan table
   b6d56f4f6a49 arm64: kaslr: keep modules inside module region when KASAN is enabled
   7cab3dfa6d74 ARM: dts: armada-xp-98dx3236: Switch to armada-38x-uart serial node
   c8790d7f76be tracing/snapshot: Resize spare buffer if size changed
   052b31810085 fs/userfaultfd.c: disable irqs for fault_pending and event locks
   ea38007107d6 lib/mpi: Fix karactx leak in mpi_powm
   7df1e2f59bde ALSA: hda/realtek - Change front mic location for Lenovo M710q
   899377c50e60 ALSA: hda/realtek: Add quirks for several Clevo notebook barebones
   d9b6936b134e ALSA: usb-audio: fix sign unintended sign extension on left shifts
   7f52af5e9baa ALSA: line6: Fix write on zero-sized buffer
   3663bf2baa97 ALSA: firewire-lib/fireworks: fix miss detection of received MIDI messages
   9d2ac58c1ef9 ALSA: seq: fix incorrect order of dest_client/dest_ports arguments
   ae3fa28f0938 crypto: cryptd - Fix skcipher instance memory leak
   015c20532ace crypto: user - prevent operating on larval algorithms
   54435b7fff7b ptrace: Fix ->ptracer_cred handling for PTRACE_TRACEME
   600d3712ae12 drm/i915/dmc: protect against reading random memory
   2b39351e3844 ftrace: Fix NULL pointer dereference in free_ftrace_func_mapper()
   938044171949 module: Fix livepatch/ftrace module text permissions race
   220adcc0e0ca tracing: avoid build warning with HAVE_NOP_MCOUNT
   79fccb9815db mm/mlock.c: change count_mm_mlocked_page_nr return type
   4fce0a79e985 scripts/decode_stacktrace.sh: prefix addr2line with $CROSS_COMPILE
   b7747ecb82be cpuset: restore sanity to cpuset_cpus_allowed_fallback()
   e33aeb9a7c0a i2c: pca-platform: Fix GPIO lookup code
   7cf431edfb71 platform/mellanox: mlxreg-hotplug: Add devm_free_irq call to remove flow
   c241f3fbfa1a platform/x86: mlx-platform: Fix parent device in i2c-mux-reg device registration
   f853112772b0 platform/x86: intel-vbtn: Report switch events when event wakes device
   2ac96173bee0 platform/x86: asus-wmi: Only Tell EC the OS will handle display hotkeys from asus_nb_wmi
   027e043f9c78 drm: panel-orientation-quirks: Add quirk for GPD MicroPC
   2446563dd6d7 drm: panel-orientation-quirks: Add quirk for GPD pocket2
   8be5629b9622 scsi: hpsa: correct ioaccel2 chaining
   c1bef204c70a SoC: rt274: Fix internal jack assignment in set_jack callback
   1023af0c069d ALSA: hdac: fix memory release for SST and SOF drivers
   26a6acde2a42 usb: gadget: udc: lpc32xx: allocate descriptor with GFP_ATOMIC
   9be058f5dd70 usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i]
   5284327f4e17 x86/CPU: Add more Icelake model numbers
   74929087384f ASoC: sun4i-i2s: Add offset to RX channel select
   32475634e8a8 ASoC: sun4i-i2s: Fix sun8i tx channel offset mask
   7b7486398a32 ASoC: max98090: remove 24-bit format support if RJ is 0
   3b60f98ef496 drm/mediatek: call mtk_dsi_stop() after mtk_drm_crtc_atomic_disable()
   34e5e1c4874f drm/mediatek: clear num_pipes when unbind driver
   a8a86e9a5533 drm/mediatek: call drm_atomic_helper_shutdown() when unbinding driver
   79e095d234bb drm/mediatek: unbind components in mtk_drm_unbind()
   319f4699bcaa drm/mediatek: fix unbind functions
   dbd94f4938c6 spi: bitbang: Fix NULL pointer dereference in spi_unregister_master
   3f8d3c9506a5 ASoC: ak4458: rstn_control - return a non-zero on error only
   3c3dd68c48e8 ASoC: soc-pcm: BE dai needs prepare when pause release after resume
   4c31b4b4ba65 ASoC: ak4458: add return value for ak4458_probe
   0c19bcdb0db9 ASoC : cs4265 : readable register too low
   c549680ed59b netfilter: nft_flow_offload: IPCB is only valid for ipv4 family
   041c181e6ba0 netfilter: nft_flow_offload: don't offload when sequence numbers need adjustment
   48f611ecea0e netfilter: nft_flow_offload: set liberal tracking mode for tcp
   3b2734bc839d netfilter: nf_flow_table: ignore DF bit setting
   869eec894663 md/raid0: Do not bypass blocking queue entered for raid0 bios
   c9d8d3e9d7a0 block: Fix a NULL pointer dereference in generic_make_request()
   5dd6139a0aa2 Bluetooth: Fix faulty expression for minimum encryption key size check

(From OE-Core rev: 82f8f52da0bae94c8d6c972352ee93763d75311b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Adrian Bunk
6d7e274534 webkitgtk: Stop disabling gold on aarch64 and mips
The binutils bug appears to have gone away.

Using gold on powerpc still fails for seemingly unrelated reasons.

(From OE-Core rev: 75c188dda67e69a54cf403e8c3f8093e975d2161)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Adrian Bunk
753949c81d Change ftp:// URIs to http(s)://
(From OE-Core rev: a11edd68b256fffb088cde5b7298a5749161f600)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Khem Raj
ce120d296e libedit: Move from meta-oe
libedit is needed by llvm on linux and this makes it useful
for both oe-core and clang layer among other users

Thanks to various contributors in maintaing it in meta-oe

(From OE-Core rev: cbbfac2a330ad5577a56b5d0fe74300acff287f8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
dc1ab6482c python3: split out the Windows distutils installer stubs
Needing the Windows distutils installer stubs is quite a niche requirement, so
put them into a separate package and just recommend it.

This can save both space and legal pain, as the installers embed an old zlib
that has known CVEs.

(From OE-Core rev: 617331a42fc5bde0c2d8d0f4dd8df652daa28778)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
2e060e2df7 python3: support recommends in manifest
Add support for runtime recommends along with runtime depends to the manifest.

(From OE-Core rev: 16cc9a2ca559d978c6d0e648c18c297255b69dcc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Ross Burton
53f4ad18df python3: remove empty python3-distutils-staticdev
distutils doesn't ship any static libraries, and the files this should pick up
do not exist.  Copy/paste gone wrong maybe?

(From OE-Core rev: afbca8da4ddd6c3dd01bb44af43aee9e80cae512)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:00 +01:00
Alexander Kanavin
8118295209 meson: add a backported patch to address vala cross-compilation errors
(From OE-Core rev: c8ac42f5110c9b8e4f2c275332651df152013c0a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:00 +01:00
Alexander Kanavin
6acb599395 meson.bbclass: do not pass native compiler/linker flags via command line
With 0.51.0 version these command line options override what is in the cross file (e.g.
the cross-flags). I could not determine what is the scenario when the native flags are
needed (this would be building a native binary in the context of cross build).
If we find such a scenario we would need to find a way to pass native flags
through some other channel.

(From OE-Core rev: 6239b77c78b4b584274019130b715f21ac9defdf)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:00 +01:00
Alexander Kanavin
0aa7a34141 meson: update 0.50.1 -> 0.51.1
Drop backports.

Rebase other patches.

(From OE-Core rev: 3251ce439ea164fcf230dcede06da1a05b5c6775)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:00 +01:00
Khem Raj
a76b6b317c Apache-2.0-with-LLVM-exception: Add new license file
As per SPDX 2.1 it should be
'Apache-2.0 WITH LLVM-exception'
but license parser refuses to parse it, so this
is closest we can get

(From OE-Core rev: fc634c41e4b3fbaf29dc0104ae6b15757e77f60a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Khem Raj
2e2ee89c74 xserver-xorg: Backport patch to remove using sys/io.h
latest glibc dropped support for sys/io.h on arm, which is fixed in
upstream xserver, as a bonus we can drop musl specific patch which was
doing something similar up until now.

Fixes
|In file included from ../../../../xorg-server-1.20.4/hw/xfree86/int10/generic.c:15:
| ../../../../xorg-server-1.20.4/hw/xfree86/common/compiler.h:767:10: fatal error: 'sys/io.h' file not found
| #include <sys/io.h>
|          ^~~~~~~~~~
| 1 error generated.

(From OE-Core rev: 1c72953b6c890b8411fec997b5c28a17eed82897)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Ross Burton
a4bb53437e fortran-helloworld: neaten recipe
Use ${FC} instead of constructing the fortran name/arguments explictly, and
clean up installation.

(From OE-Core rev: a0d85e117fb636ffa12253b19f0ab2b5055e6380)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Adrian Bunk
1ea5b2f074 mtd-utils: Upgrade to 2.1.1
Add zstd PACKAGECONFIG to disable the zstd support that upstream
enables by default, zstd is not in oe-core.

(From OE-Core rev: a87cf6a1693bbeac0f03290c1cb0ddf0ad1cf9bd)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Anuj Mittal
2c9f8a0844 libtasn1: upgrade 4.13 -> 4.14
* For changes in this version, see:
https://gitlab.com/gnutls/libtasn1/-/releases

* Remove the musl patch as it's no longer needed.

* Backport a patch to ensure LDFLAGS are not over-ridden.

License-Update: License clarification, no change in actual terms.

(From OE-Core rev: 243293436d9286f6d9a0f135d569b7b00ccc1078)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Yuan Chao
1d6d0982e6 glib-2.0:upgrade 2.60.5 -> 2.60.6
(From OE-Core rev: b5ab6ec534bfed8abd56a32296ae246fd9545e0a)

Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Anuj Mittal
c34e37a56e python: CVE-2019-9947 is same as CVE-2019-9740
See:
https://bugs.python.org/issue30458

(From OE-Core rev: fa434cf1ae621f106d823c92f7e3a16172e7479f)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Anuj Mittal
a6854bc41b python: fix CVE-2018-20852
(From OE-Core rev: 04fc80b2c77a177601584500f0f3048d80095ad7)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Ross Burton
da6a602398 perl: add PACKAGECONFIG for db
perl-cross makes it easy to cleanly disable the use of Berkeley DB if desired,
so add a PACKAGECONFIG for this.

More of the dependencies (such as gdbm) can be controlled in the same way, but
Berkeley DB is a prime contender: it's a large library which we have to ship an
old release for due to licensing issues, so there are users who may want to
strip it out of builds entirely.

(From OE-Core rev: e3860098dadd0b1db97fb0414aae6abfc234b245)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Ross Burton
dd949e7545 perl: fix whitespace
There was some tabs embedded in spaces, fix those.

(From OE-Core rev: 96cf9a881405faec5fb6f3f305fd29c5f14fd52f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Alexander Kanavin
23e9a8835e stress-ng: add a recipe that replaces the original stress
The original stress is no longer maintained and the homepage
went down. This commit replaces it with a maintained
re-implementation by Ubuntu.

Stress-ng preserves command line option compatibility
(for the options that are used in rt-tests), so adjustment
is simply changing the name of the executable. Rt-tests is the only
user of stress(-ng) in oe-core.

(From OE-Core rev: 3fcc10aeba208381166f09861d098d6459d44dfe)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Alexander Kanavin
fc0c93a62e bzip2: fix upstream version check
As it is now working, we do not need an exception from the check anymore.

(From OE-Core rev: eede1c8e35e09afd06582312ca88a6413cdccf75)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Alexander Kanavin
7e1fdbbe4d webkitgtk: upgrade 2.24.2 -> 2.24.3
(From OE-Core rev: b838ba224a57715e5409890ba3b29f825e492f19)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Alexander Kanavin
65c3253b5b createrepo-c: upgrade 0.14.2 -> 0.14.3
(From OE-Core rev: f9ef3abfdfc5df19619328117813561e408d2147)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Alexander Kanavin
27b2c8fe00 libwebp: upgrade 1.0.2 -> 1.0.3
(From OE-Core rev: 3234c4e127ad28561c41ed41853adab25b731c52)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Alexander Kanavin
b7bc14c397 libmodulemd: update to 2.6.0
(From OE-Core rev: 93e52d2d8985f7bba6a03a7a56fdc22087a62469)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Alexander Kanavin
5d1ba9eee1 btrfs-tools: update 5.1.1 -> 5.2.1
(From OE-Core rev: 53dc41128d7f976a3a0f0730b5a2dff61f8c1bdf)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Anuj Mittal
df9d8dbe75 patch: fix CVE-2019-13636
(From OE-Core rev: f201b9db5d148cb9fe03b78ca085493a27f7e24c)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Zoltan Kuscsik
b842a70bb1 kmscube: update to latest revision
Switch to gitlab URL, since previos location is now a mirror

(From OE-Core rev: 58fde43ae6ba2ff89a9c5209b1abf378681ee186)

Signed-off-by: Zoltan Kuscsik <zoltan.kuscsik@solution57.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Joshua Lock via Openembedded-core
75698648c0 classes/sstate: regenerate sstate when signing enabled
This change ensures that the task signatures changes, and therefore
sstate tasks are rerun, when signing is enabled. This has the
positive outcome that if signing is enabled new signed shared state
objects will be produced, rather than just signing shared state
objects for tasks where no work has been performed yet.

The downside of this change is that enabling/disabling sstate object
signing alters the taskhash and results in rebuilding the world.

(From OE-Core rev: ef60c65e3856682b90b17ae06a1b675756fd4496)

Signed-off-by: Joshua Lock <jlock@vmware.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 23:03:01 +01:00
Bartosz Golaszewski
57d702ed5d qemu: add a patch fixing the native build on newer kernels
The build fails on qemu-native if we're using kernels after commit
0768e17073dc527ccd18ed5f96ce85f9985e9115. This adds an upstream
patch that fixes the issue.

(From OE-Core rev: ef3af3a43d137d1e09e3fe4dbe462197fe7af4bc)

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Paul Eggleton
bbd51cbc4a scripts/create-pull-request: fix putting subject containing / into cover letter
If a single-commit series had a shortlog containing a "/" character then
that prevented putting the shortlog into the subject of the cover letter
message. Use a different separating character with the sed command (one
much less likely to appear) in order to fix it.

(From OE-Core rev: d4c3f93d7407ac1ea20b33149f20153972d631c0)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Paul Eggleton
f3649983d3 scripts/create-pull-request: improve handling of non-SSH remote URLs
When attempting to create a pull request, we look at the remote URL in
order to extract information to include in the cover letter. However,
the assumption was that the remote is an SSH URL i.e. containing '@'
which is not always the case (the pull and push URLs might be different,
or we might be pushing via https) - if it wasn't the script just gave up
leaving you to manually edit the URLs in the email. With a few minor
tweaks to the regexes the script will work for these cases as well.

(From OE-Core rev: 675e88e6e0bbd5ab2dcd4bdf97b0de59925a1be6)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Oleksandr Kravchuk
749d717bc3 ethtool: update to 5.2
(From OE-Core rev: e733530cf0045c6f691a306363e604bc07234f52)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Adrian Bunk
03f2db73ad webkitgtk: Reenable on mips
It builds using the generic C_LOOP code.

(From OE-Core rev: 4e601b7f5ca0270495f225987bb1376b1cfe31a1)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Adrian Bunk
dffe00c623 bind: Remove RECIPE_NO_UPDATE_REASON and follow the ESV releases
(From OE-Core rev: c03eb46c292990c6639f8fa80c9bde263b8dfb8c)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Adrian Bunk
74093964d4 gnome: Remove the gnome class
All that was left was
  inherit gnomebase gtk-icon-cache gconf mime
and especially inheriting the obsolete gconf is usually unwanted.

(From OE-Core rev: ba4304bd269d14cb0df73d657901816293c993cc)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Dmitry Eremin-Solenikov
1b5bd0bceb kernel.bbclass: fix installation of modules signing certificates
If one has provided external key/certificate for modules signing, Kbuild
will skip creating signing_key.pem and will write only signing_key.x509
certificate. Thus we have to check for .x509 file existence rather than
.pem one.

(From OE-Core rev: 2527e731eba43bd36d0ea268aca6b03155376134)

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Anuj Mittal
cfb190a3c9 grub: upgrade 2.02 -> 2.04
* For changes in this version, see:
http://git.savannah.gnu.org/cgit/grub.git/tree/NEWS?h=grub-2.04

* Remove backported patches and refresh others.

* Remove the musl patch as it's no longer needed.

* Use configure option --disable-werror instead of passing through CFLAGS.

(From OE-Core rev: 07222d213d1da0ccade1c61ed19a7ecdc4966edd)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Anuj Mittal
07ba3a1d73 libsdl2: upgrade 2.0.9 -> 2.0.10
License-Update: Change in Copyright Year.

Refresh the patch to apply on configure.ac instead of .in.

(From OE-Core rev: f00b9aad7c3e2e1ec41597539c4fe2307043b6cf)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Khem Raj
01f3a0cd73 lttng-tools: Fix build with glibc 2.30
(From OE-Core rev: 5abaf2a5c1e8707189c5f607a19170e031e1c480)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Khem Raj
e72a75671d ltp: Fix build with glibc 2.30
(From OE-Core rev: b129e1b8d19e790b8176bbb390ee9b7745773286)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-31 13:50:46 +01:00
Chris Laplante via bitbake-devel
1a4e4fb6b0 bitbake: fetch2/wget: avoid 'maximum recursion depth' RuntimeErrors when handling 403 codes
The code says that some servers respond with 403 codes when they really
mean 405 codes. But we still need to account for legitimate 403 codes.

Before this change, I noticed that sstate mirror checking was taking a
very long time when I purposely entered incorrect credentials into my
.netrc file for our sstate mirror. Instrumenting the code, I discovered
tracebacks like the following for every mirror access attempt:

    File "/home/laplante/yocto/sources/poky/meta/classes/sstate.bbclass", line 839, in checkstatus
      fetcher.checkstatus()
    File "/home/laplante/yocto/sources/poky/bitbake/lib/bb/fetch2/__init__.py", line 1736, in checkstatus
      ret = try_mirrors(self, self.d, ud, mirrors, True)
    File "/home/laplante/yocto/sources/poky/bitbake/lib/bb/fetch2/__init__.py", line 1077, in try_mirrors
      ret = try_mirror_url(fetch, origud, uds[index], ld, check)
    File "/home/laplante/yocto/sources/poky/bitbake/lib/bb/fetch2/__init__.py", line 979, in try_mirror_url
      found = ud.method.checkstatus(fetch, ud, ld)
    File "/home/laplante/yocto/sources/poky/bitbake/lib/bb/fetch2/wget.py", line 337, in checkstatus
      opener.open(r)
    File "/usr/lib/python3.5/urllib/request.py", line 472, in open
      response = meth(req, response)
    File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
      'http', request, response, code, msg, hdrs)
    File "/usr/lib/python3.5/urllib/request.py", line 504, in error
      result = self._call_chain(*args)
    File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
      result = func(*args)
    File "/home/laplante/yocto/sources/poky/bitbake/lib/bb/fetch2/wget.py", line 280, in http_error_405
      unverifiable=True))
    File "/usr/lib/python3.5/urllib/request.py", line 472, in open
      response = meth(req, response)
    File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
      'http', request, response, code, msg, hdrs)
    File "/usr/lib/python3.5/urllib/request.py", line 504, in error
      result = self._call_chain(*args)
    File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
      result = func(*args)
    File "/home/laplante/yocto/sources/poky/bitbake/lib/bb/fetch2/wget.py", line 280, in http_error_405
      unverifiable=True))
    ...  (repeats until recursion depth is reached)

Solution is to make sure we only attempt the GET request once when handling 403/405 error codes.

(Bitbake rev: 18d4a31fdcec1f0e5d2199d6142f0ce833fca1a7)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:46:09 +01:00
Mads Andreasen
bebeed310b bitbake: fetch2/npm: Use npm pack to download node modules instead of wget
Using npm pack to download the main node module and its dependencies
allow for the use of private npm modules and access to them via .npmrc

(Bitbake rev: e5eda3871893e4eadeb311aeb997e183675598f4)

Signed-off-by: Mads Andreasen <mads@andreasen.cc>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:46:09 +01:00
Daniel Ammann
d7a026d434 bitbake: toaster: Sync list of fs_types with oe-core
(Bitbake rev: 1dddfe3512b6390958abb91b21f074568ae4e8db)

Signed-off-by: Daniel Ammann <daniel.ammann@bytesatwork.ch>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:46:08 +01:00
Denys Dmytriyenko
f9a20524fe weston: upgrade 6.0.0 -> 6.0.1
Weston 6.0.1 is released with build system fixes to smooth the
transition to Meson. Other miscellaneous bugfixes are also included.
https://lists.freedesktop.org/archives/wayland-devel/2019-June/040661.html

(From OE-Core rev: a62d60fc3741aa5eaeccaaa562afda624c3e8a04)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:31 +01:00
Denys Dmytriyenko
b71a5e74ad wayland-protocols: upgrade 1.17 -> 1.18
This version comes with documentational clarifications, bug fixes and minor
additions to existing protocols. See the commit log for details.
https://lists.freedesktop.org/archives/wayland-devel/2019-July/040756.html

(From OE-Core rev: 088685332c08c66469326f394ccec2d91dd6f584)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:31 +01:00
Kai Kang
71f746988a epiphany: set imcompatible with tune mips
webkitgtk doesn't work with tune mips and set imcompatible with it.
epiphany depends on webkitgtk and mask it too.

(From OE-Core rev: ce294134a0d7c8fdac92f458e5dc64ecc77c5251)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Kai Kang
111f9ab083 subversion: add packageconfig boost
subversion checks whether build with boost during do_configure. If boost
exists on build machine, it causes configure-unsafe QA issue:

| ERROR: subversion-1.12.0-r0 do_configure: QA Issue: This autoconf log
|  indicates errors, it looked at host include and/or library paths
|  while determining system capabilities.
| Rerun configure task after fixing this. [configure-unsafe]

Add a PACKAGECONFIG 'boost' to fix the issue.

(From OE-Core rev: 237478724be75a4efeebafe07b46a353894ee4ca)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Khem Raj
c414a06260 lttng-ust: Check for gettid libc API
Fixes build with glibc 2.30

(From OE-Core rev: 206e6e4d981331bdbbded4d176fe5100730039bb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Khem Raj
c8e3917e8c libnss-nis: Fix build with glibc 2.30
(From OE-Core rev: 04a21c70736cd8a0fd78a1bd0d979a95d5a5640d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Piotr Tworek
a46ee51c3a libdrm: Move amdgpu.ids file into libdrm-amdgpu package.
There is no point in shipping it in main libdrm package.

(From OE-Core rev: 458992be46ccf041e6fb862ab1cec0ff65616b0e)

Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Anuj Mittal
84c1ca18f0 pulseaudio: don't include consolekit when systemd is enabled
When using systemd, make sure that pulseaudio-server RDEPENDS on
module-systemd-login instead of module-console-kit both of which provide
the same functionality but for different init systems [1][2].

Even though both modules can co-exist, this helps avoid including
consolekit (which has been deprecated) in the images using systemd.

[1] https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index51h3
[2] 860d1cf3a7

(From OE-Core rev: 69d6984159834713ffb56762f50226afe27d22f5)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Ming Liu
c25f8fed4a libxkbcommon: RDEPENDS on libx11 compose data
This fixes a following runtime error:
| xkbcommon: ERROR: couldn't find a Compose file for locale "C"

(From OE-Core rev: aa3f5bd67f14defc5cdc39ba3c78f825dd85c69f)

Signed-off-by: Ming Liu <ming.liu@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Ming Liu
eea967a3fb libx11-compose-data: add recipe
So far libx11 compose data is being required by some non-X11 recipes,
like weston -> libxkbcommon -> libx11-locale. But the libx11-locale
could not build without x11 distro feature enabled. This is not
reasonable.

To fix it, we introduce this new recipe, it uses the same source with
libx11 but dropped X11 dependencies, this makes it to be able to build
without x11 distro feature. It would be skipped if x11 distro feature
is enabled, in which case the libx11-locale would provide the libx11
compose data.

(From OE-Core rev: d8a5b22757ccc76007cda55ee45922a313639258)

Signed-off-by: Ming Liu <ming.liu@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Diego Rondini
ec79f620e0 image_types.bbclass: make gzipped images rsyncable
Both gzip and pigz implement the --rsyncable option, allowing small changes to
images to save a lot of data when they are transferred using rsync. This patch
enables --rsyncable by default.

(From OE-Core rev: b253101b9400cd12b80b6c5b7d1d0b01b31a6c6b)

Signed-off-by: Diego Rondini <diego.rondini@kynetics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Joshua Lock via Openembedded-core
f3e2c14850 classes/sstate: don't use unsigned sstate when verification enabled
When signature verification of shared state objects is enabled
(SSTATE_VERIFY_SIG) use of an unsigned object, even though it produces a
warning, seems unexpected. Instead skip unsigned objects and force the
non-accelerated task to be run.

(From OE-Core rev: 571235978d98552e3734bf382454dd51272db782)

Signed-off-by: Joshua Lock <jlock@vmware.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Joshua Lock via Openembedded-core
c985a07e6a sstate: fix log message
Referring to the sstate object as a staging package is an artefact of the
code's origins. Switch to referring to an "Sstate package" in order to be more
accurate and consistent with the rest of the file.

(From OE-Core rev: 06559c1ed86dbce53505f9ed98111fe9d0b97ed7)

Signed-off-by: Joshua Lock <jlock@vmware.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Ross Burton
685bcf1c21 libical: upgrade to 3.0.5
Add PACKAGECONFIG options for ICU (enabled by default) and BDB (disabled by
default).

Note that this upgrade includes some API breakage.

(From OE-Core rev: 456b6abcbdb05a4b0ffc09458da15e747870ffa8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 22:45:30 +01:00
Richard Purdie
41a5dbd16b package: Improve determinism
Its possible in cases with multiple shlib providers we were not being
deterministic. Add in a couple of sorted() calls to fix the shlibs and
pkgconfig cases with this potential issue.

(From OE-Core rev: 5b9a4214ee17e1a39dd5a1742f2ac5ed25a11310)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Ricardo Ribalda Delgado
0ff1d66516 packagegroup-core-base-utils: Make it machine specific
Recipe makes use of the variable MACHINE_FEATURES, which is machine
specific:

  ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "kbd", "", d)}

This patch avoids multiconfig errors such as:

ERROR: mc:qt5222:packagegroup-core-base-utils-1.0-r0 do_package_qa_setscene: 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:do_package_qa_setscene(d)
     0003:
File: '/workdir/repo/poky/meta/classes/insane.bbclass', lineno: 1026, function: do_package_qa_setscene
     1022:SSTATETASKS += "do_package_qa"
     1023:do_package_qa[sstate-inputdirs] = ""
     1024:do_package_qa[sstate-outputdirs] = ""
     1025:python do_package_qa_setscene () {
 *** 1026:    sstate_setscene(d)
     1027:}
     1028:addtask do_package_qa_setscene
     1029:
     1030:python do_qa_staging() {

(From OE-Core rev: 1b562506d46ee54414dbdbee9c3f6a3345fa16d0)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Chen Qi
0467421a66 sudo: use nonarch_libdir instead of libdir for tmpfiles.d
In case of multilib, /usr/lib64/tmpfiles.d is not a path
that will be searched. So we need to use nonarch_libdir.

(From OE-Core rev: 2623d9d2f243128e50be9ed6fb5bb222b3fe9fa0)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Zang Ruochen
cbab455252 iso-codes: upgrade 4.2 -> 4.3
(From OE-Core rev: 9b6f880acb3a5f73bfbb045b58c068fd9515fda4)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Piotr Tworek
70a93af71b pulseaudio: Backport upstream fix new alsa compatibility.
Recent alsa upgrade stripped /usr/include/alsa directory from include
path reported by pkgconfig. Due to this pulseaudio 12.2 configure script
can find alsa's use-case.h header which in turn results in HAVE_ALSA_UCM
being undefined. This turn results in pa_alsa_ucm_device_update_available
symbol missing even though libalsa-util.so needs it. Once could argue
pulseaudio should not allow undefined symmbols in its shared modules.
Unfortunately it does and due to this current OE builds of pulseaudio
crash when the server tries to dlopen any module using libalsa-util.so.

Fix this by backporting ustream alsa header include fix.

(From OE-Core rev: 58319f6285de41f7b99f5fd97c42d836fb5544f3)

Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Oleksandr Kravchuk
768696d9c9 python3-git: update to 2.1.12
Got rid of python-git since there is no python2 version of the package.

(From OE-Core rev: dd9d95e8394a7a318538c7cabd27c82e4bc9e029)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
William Bourque
30c1d70c32 meta/lib/oeqa: Remove ext4 for bootimg-biosplusefi
Remove "ext4" IMAGE_FSTYPES when generating core-image-minimal
for the bootimg-biosplusefi unittests; "wic" type is enough.

(From OE-Core rev: 73f69585e9f30819d8fb484d458e3408a04c0433)

Signed-off-by: William Bourque <wbourque@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Chin Huat Ang
fa1a3f5328 cve-update-db-native: fix https proxy issues
When https_proxy is set, use proxy opener to open CVE metadata and
database URLs, otherwise fallback to the urllib.request.urlopen.

Also fix a minor issue where the json database which has been gzip
decompressed as byte object should be decoded as utf-8 string as
expected by update_db.

(From OE-Core rev: 95438d52b732bec217301fbfc2fb019bbc3707c8)

Signed-off-by: Chin Huat Ang <chin.huat.ang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Naveen Saini
b8cbefb3fd image_types_wic: add syslinux-native dependency conditional
Add syslinux-native dependency only for IA host machines.

Able to build wic image successfully for below template which
uses legacy bios(syslinux):
https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/lib/wic/canned-wks/directdisk-gpt.wks

[YOCTO #13276]

(From OE-Core rev: 7e2ee2b59319e1d2c185d65de47cc8f5c048dd03)

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:39 +01:00
Frederic Ouellet
21e2686775 systemd: Add partial support of drop-in configuration files to systemd-systemctl-native
Support for serive-name.service.d/ folders containing .conf files
It don't support all the partial folder names

See https://www.freedesktop.org/software/systemd/man/systemd.unit.html

(From OE-Core rev: 32ed8e53109f4384970fb540e44cc2f7fcafb2a5)

Signed-off-by: Frederic Ouellet <fredericouellet@eaton.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Changqing Li
09af4dafc7 runqemu: add lockfile for port used when slirp enabled
There is race condition when multi qemu starting with slirp,
add lockfile for each port to avoid problem like:

runqemu - ERROR - Failed to run qemu: qemu-system-x86_64: Could not set up host forwarding rule 'tcp::2323-:23'

[YOCTO #13364]

(From OE-Core rev: ceb3555a40ba06e58914465376aaf41392c12a7c)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Ross Burton
81485be19b gnutls: don't use HOSTTOOLS_DIR/bash as a shell on target
The libopts configure script looks for a shell on the build host and assumes
it's good for the target. However in our builds it find $HOSTTOOLS_DIR/bash
which isn't useful, so patch out the detection and force $base_bindir/sh.

(From OE-Core rev: 9aaa1e3bdfd767fe8e19c00c611b34920644df27)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Ross Burton
9b7a1653d8 libidn2: remove build paths from libidn2.pc
The libunistring m4 macros end up putting the full build-time library path into
the .pc file, which is no good on target.  Sed it out to stop build paths
leaking onto the target.

[ YOCTO #13403 ]

(From OE-Core rev: 2ab5a34357b86be19a1b1a85eac54fa0cf1e7fd2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Oleksandr Kravchuk
f465205d03 python3-pip: update to 19.2.1
(From OE-Core rev: dded7fc1bc7caf22837d13dabbc66b84b15b872b)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Rasmus Villemoes
972c80a30c iproute2: drop pointless configure-cross.patch
The configure script has already found IPT_LIB_DIR via pkgconfig, so
the configure-cross.patch really just introduces dead and broken
fallback code.

Broken, because the SYSROOT variable does not actually get set to a
sensible value - the argument $1 passed to the configure script when
invoked from the Makefile is KERNEL_INCLUDE, which we set to
${STAGING_INCDIR} in EXTRA_OEMAKE. Obviously that directory does not
have /lib or /usr subdirectories, so we're not really helping the
fallback logic in check_ipt_lib_dir() - in fact, we're more or less
guaranteeing that we won't find those .so files.

(From OE-Core rev: 628de87240e9bc73ad63a32e5f67b58781d87dd0)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Zang Ruochen
e4cbc86558 curl: upgrade 7.65.2 -> 7.65.3
(From OE-Core rev: e3043b2c86556d91387dfbdf155e9b5547cc20c4)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Anuj Mittal
b369068d40 libsdl: remove
All the users in OE-Core have moved to libsdl2. It will be moved to
meta-oe.

(From OE-Core rev: 4f967ade9001111c77ef298372e9b9e435414664)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Khem Raj
385c1ccc18 linux-libc-header: Fix ptrace.h and prctl.h conflict on aarch64
This is a backport from 5.2 release upstream, it fixes long standing
build failure on musl/aarch64

(From OE-Core rev: eff0a21a835808c5e2862b820a1ebb200ff100db)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Zang Ruochen
74f23b863f msmtp: upgrade 1.8.4 -> 1.8.5
(From OE-Core rev: 969a6f39253e89bfb38c3ff83152a1e9c03f8e97)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Khem Raj
3ab89fa06f strace: Upgrade to 5.2
License-Updtate: Copyright years changed
4b4a0e5a6e (diff-7116ef0705885343c9e1b2171a06be0e)

Drop backport patch for mips o32 build fix
Refresh patches to apply on 5.2

(From OE-Core rev: abeb32772b8b3a144e468e5a27b1a31f646317e4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Bedel, Alban
ae4ceea4fe kernel-uboot: remove useless special casing of arm64 Image
Since commit a725d188b5 (kernel-uboot: compress arm64 kernels)
arm64 Image files are handled exactly like in the default case, making
this special case pointless. Remove it to make the code simpler.

(From OE-Core rev: 60bc7e180e2d44ac026e5537552a567784dc506a)

Signed-off-by: Alban Bedel <alban.bedel@aerq.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Bedel, Alban
3ac4332d25 rng-tools: start rngd early in the boot process again
It do make sense to start rngd early in the boot process because
otherwise we would need to track every service that might need entropy
and explicitly configure it to start after rngd.

When used with systemd rngd blocked the shutdown process because it
simply missed the proper unit configuration. As the systemd
documentation explains, when using DefaultDependencies=no one also
have to explicitly configure the unit to properly stop at some point.
This is normaly achieved by having Before=shutdown.target and
Conflicts=shutdown.target set for the unit.

To have rngd started early again we reverte the changes done to
rngd.service in commit edf7606822 (rng-tools: fix rngd blocks system
shutdown). To have it properly stopped on shutdown we also add
Before=shutdown.target and Conflicts=shutdown.target.

(From OE-Core rev: a74e7df33e2c8ab2152e3217c0a5df3f65971713)

Signed-off-by: Alban Bedel <alban.bedel@aerq.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Daniel Ammann
d3ed42ef27 image_types: Remove remnants of hdddirect
hdddirect was removed in commit 929ba563f1bc7195c4981b8e139c432b2cc388ea.

(From OE-Core rev: 7a91a9818057d69cba32db2428ffc1a1ebb3876e)

Signed-off-by: Daniel Ammann <daniel.ammann@bytesatwork.ch>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Naveen Saini
65287e95ac gdk-pixbuf: enable x11 PACKAGECONFIG option
Currently gdk-pixbuf x11 loader is enabled only
for LSB build. But it is needed by other recipes like
Ice window manger(icewm) for X window system.

(From OE-Core rev: 277a2bef8ae41a0314ecad27379b299ba7d90f22)

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
Anuj Mittal
e4da27af95 mpg123: upgrade 1.25.10 -> 1.25.11
Release notes:
https://www.mpg123.de/#2019-07-18

(From OE-Core rev: 0217cd39148a6388125128d885a114a8edcfc94a)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-26 08:41:38 +01:00
951 changed files with 15247 additions and 21289 deletions

View File

@@ -1,29 +0,0 @@
OE-Core aims to be able to provide basic LSB compatible images. There
are some challenges for OE as LSB isn't always 100% relevant to its
target embedded and IoT audiences.
One challenge is that the LSB spec is no longer being actively
developed [https://github.com/LinuxStandardBase/lsb] and has
components which are end of life or significantly dated. OE
therefore provides compatibility with the following caveats:
* Qt4 is provided by the separate meta-qt4 layer. Its noted that Qt4
is end of life and this isn't something the core project regularly
tests any longer. Users are recommended to group together to support
maintenance of that layer. [http://git.yoctoproject.org/cgit/cgit.cgi/meta-qt4/]
* GTK+ 2 is provided by meta-oe. It is noted that GTK+ 2 is end of life
and use of GTK+ 2 isn't recommended.
* mailx has been dropped since its no longer being developed upstream
and there are better, more modern replacements such as s-nail
(http://sdaoden.eu/code.html) or mailutils (http://mailutils.org/).
* A few perl modules that were required by LSB 4.x aren't provided:
libclass-isa, libenv, libdumpvalue, libfile-checktree,
libi18n-collate, libpod-plainer.
* libpng 1.2 isn't provided; oe-core includes the latest release of libpng
instead.
* pax (POSIX standard archive) tool is not provided.

View File

@@ -26,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
__version__ = "1.43.0"
__version__ = "1.43.1"
if __name__ == "__main__":
if __version__ != bb.__version__:

170
bitbake/bin/bitbake-hashclient Executable file
View File

@@ -0,0 +1,170 @@
#! /usr/bin/env python3
#
# Copyright (C) 2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import hashlib
import logging
import os
import pprint
import sys
import threading
import time
try:
import tqdm
ProgressBar = tqdm.tqdm
except ImportError:
class ProgressBar(object):
def __init__(self, *args, **kwargs):
pass
def __enter__(self):
return self
def __exit__(self, *args, **kwargs):
pass
def update(self):
pass
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
DEFAULT_ADDRESS = 'unix://./hashserve.sock'
METHOD = 'stress.test.method'
def main():
def handle_stats(args, client):
if args.reset:
s = client.reset_stats()
else:
s = client.get_stats()
pprint.pprint(s)
return 0
def handle_stress(args, client):
def thread_main(pbar, lock):
nonlocal found_hashes
nonlocal missed_hashes
nonlocal max_time
client = hashserv.create_client(args.address)
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
start_time = time.perf_counter()
l = client.get_unihash(METHOD, taskhash.hexdigest())
elapsed = time.perf_counter() - start_time
with lock:
if l:
found_hashes += 1
else:
missed_hashes += 1
max_time = max(elapsed, max_time)
pbar.update()
max_time = 0
found_hashes = 0
missed_hashes = 0
lock = threading.Lock()
total_requests = args.clients * args.requests
start_time = time.perf_counter()
with ProgressBar(total=total_requests) as pbar:
threads = [threading.Thread(target=thread_main, args=(pbar, lock), daemon=False) for _ in range(args.clients)]
for t in threads:
t.start()
for t in threads:
t.join()
elapsed = time.perf_counter() - start_time
with lock:
print("%d requests in %.1fs. %.1f requests per second" % (total_requests, elapsed, total_requests / elapsed))
print("Average request time %.8fs" % (elapsed / total_requests))
print("Max request time was %.8fs" % max_time)
print("Found %d hashes, missed %d" % (found_hashes, missed_hashes))
if args.report:
with ProgressBar(total=args.requests) as pbar:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
outhash = hashlib.sha256()
outhash.update(args.outhash_seed.encode('utf-8'))
outhash.update(str(i).encode('utf-8'))
client.report_unihash(taskhash.hexdigest(), METHOD, outhash.hexdigest(), taskhash.hexdigest())
with lock:
pbar.update()
parser = argparse.ArgumentParser(description='Hash Equivalence Client')
parser.add_argument('--address', default=DEFAULT_ADDRESS, help='Server address (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
subparsers = parser.add_subparsers()
stats_parser = subparsers.add_parser('stats', help='Show server stats')
stats_parser.add_argument('--reset', action='store_true',
help='Reset server stats')
stats_parser.set_defaults(func=handle_stats)
stress_parser = subparsers.add_parser('stress', help='Run stress test')
stress_parser.add_argument('--clients', type=int, default=10,
help='Number of simultaneous clients')
stress_parser.add_argument('--requests', type=int, default=1000,
help='Number of requests each client will perform')
stress_parser.add_argument('--report', action='store_true',
help='Report new hashes')
stress_parser.add_argument('--taskhash-seed', default='',
help='Include string in taskhash')
stress_parser.add_argument('--outhash-seed', default='',
help='Include string in outhash')
stress_parser.set_defaults(func=handle_stress)
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
func = getattr(args, 'func', None)
if func:
client = hashserv.create_client(args.address)
# Try to establish a connection to the server now to detect failures
# early
client.connect()
return func(args, client)
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -11,20 +11,26 @@ import logging
import argparse
import sqlite3
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
VERSION = "1.0.0"
DEFAULT_HOST = ''
DEFAULT_PORT = 8686
DEFAULT_BIND = 'unix://./hashserve.sock'
def main():
parser = argparse.ArgumentParser(description='HTTP Equivalence Reference Server. Version=%s' % VERSION)
parser.add_argument('--address', default=DEFAULT_HOST, help='Bind address (default "%(default)s")')
parser.add_argument('--port', type=int, default=DEFAULT_PORT, help='Bind port (default %(default)d)')
parser.add_argument('--prefix', default='', help='HTTP path prefix (default "%(default)s")')
parser = argparse.ArgumentParser(description='Hash Equivalence Reference Server. Version=%s' % VERSION,
epilog='''The bind address is the path to a unix domain socket if it is
prefixed with "unix://". Otherwise, it is an IP address
and port in form ADDRESS:PORT. To bind to all addresses, leave
the ADDRESS empty, e.g. "--bind :8686". To bind to a specific
IPv6 address, enclose the address in "[]", e.g.
"--bind [::1]:8686"'''
)
parser.add_argument('--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")')
parser.add_argument('--database', default='./hashserv.db', help='Database file (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
@@ -41,12 +47,11 @@ def main():
console.setLevel(level)
logger.addHandler(console)
db = sqlite3.connect(args.database)
server = hashserv.create_server((args.address, args.port), db, args.prefix)
server = hashserv.create_server(args.bind, args.database)
server.serve_forever()
return 0
if __name__ == '__main__':
try:
ret = main()
@@ -55,4 +60,3 @@ if __name__ == '__main__':
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -234,6 +234,8 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
the_data.setVar(varname, value)
bb.parse.siggen.set_taskdata(workerdata["sigdata"])
if "newhashes" in workerdata:
bb.parse.siggen.set_taskhashes(workerdata["newhashes"])
ret = 0
the_data = bb_cache.loadDataFull(fn, appends)
@@ -377,6 +379,7 @@ class BitbakeWorker(object):
self.handle_item(b"cookerconfig", self.handle_cookercfg)
self.handle_item(b"extraconfigdata", self.handle_extraconfigdata)
self.handle_item(b"workerdata", self.handle_workerdata)
self.handle_item(b"newtaskhashes", self.handle_newtaskhashes)
self.handle_item(b"runtask", self.handle_runtask)
self.handle_item(b"finishnow", self.handle_finishnow)
self.handle_item(b"ping", self.handle_ping)
@@ -415,6 +418,10 @@ class BitbakeWorker(object):
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
for mc in self.databuilder.mcdata:
self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])
self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.workerdata["hashservaddr"])
def handle_newtaskhashes(self, data):
self.workerdata["newhashes"] = pickle.loads(data)
def handle_ping(self, _):
workerlog_write("Handling ping\n")

View File

@@ -369,9 +369,8 @@
<para>
These operators differ from the ":=", ".=", "=.", "+=", and "=+"
operators in that their effects are deferred
until after parsing completes rather than being immediately
applied.
operators in that their effects are applied at variable
expansion time rather than being immediately applied.
Here are some examples:
<literallayout class='monospaced'>
B = "bval"
@@ -420,18 +419,22 @@
FOO = "123 456 789 123456 123 456 123 456"
FOO_remove = "123"
FOO_remove = "456"
FOO2 = "abc def ghi abcdef abc def abc def"
FOO2_remove = "abc def"
FOO2 = " abc def ghi abcdef abc def abc def def"
FOO2_remove = " \
def \
abc \
ghi \
"
</literallayout>
The variable <filename>FOO</filename> becomes
"&nbsp;&nbsp;789 123456&nbsp;&nbsp;&nbsp;&nbsp;"
"&nbsp;&nbsp;789&nbsp;123456&nbsp;&nbsp;&nbsp;&nbsp;"
and <filename>FOO2</filename> becomes
"&nbsp;&nbsp;ghi abcdef&nbsp;&nbsp;&nbsp;&nbsp;".
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jkl&nbsp;&nbsp;abcdef&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".
</para>
<para>
Like "_append" and "_prepend", "_remove"
is deferred until after parsing completes.
is applied at variable expansion time.
</para>
</section>
@@ -796,17 +799,15 @@
<title>Key Expansion</title>
<para>
Key expansion happens when the BitBake datastore is finalized
just before BitBake expands overrides.
Key expansion happens when the BitBake datastore is finalized.
To better understand this, consider the following example:
<literallayout class='monospaced'>
A${B} = "X"
B = "2"
A2 = "Y"
</literallayout>
In this case, after all the parsing is complete, and
before any overrides are handled, BitBake expands
<filename>${B}</filename> into "2".
In this case, after all the parsing is complete,
BitBake expands <filename>${B}</filename> into "2".
This expansion causes <filename>A2</filename>, which was
set to "Y" before the expansion, to become "X".
</para>

View File

@@ -9,7 +9,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
__version__ = "1.43.0"
__version__ = "1.43.1"
import sys
if sys.version_info < (3, 4, 0):

View File

@@ -54,23 +54,6 @@ else:
builtins['bb'] = bb
builtins['os'] = os
class FuncFailed(Exception):
def __init__(self, name = None, logfile = None):
self.logfile = logfile
self.name = name
if name:
self.msg = 'Function failed: %s' % name
else:
self.msg = "Function failed"
def __str__(self):
if self.logfile and os.path.exists(self.logfile):
msg = ("%s (log file is located at %s)" %
(self.msg, self.logfile))
else:
msg = self.msg
return msg
class TaskBase(event.Event):
"""Base class for task events"""
@@ -189,12 +172,7 @@ class StdoutNoopContextManager:
return sys.stdout.name
#
# pythonexception allows the python exceptions generated to be raised
# as the real exceptions (not FuncFailed) and without a backtrace at the
# origin of the failure.
#
def exec_func(func, d, dirs = None, pythonexception=False):
def exec_func(func, d, dirs = None):
"""Execute a BB 'function'"""
try:
@@ -266,7 +244,7 @@ def exec_func(func, d, dirs = None, pythonexception=False):
with bb.utils.fileslocked(lockfiles):
if ispython:
exec_func_python(func, d, runfile, cwd=adir, pythonexception=pythonexception)
exec_func_python(func, d, runfile, cwd=adir)
else:
exec_func_shell(func, d, runfile, cwd=adir)
@@ -286,7 +264,7 @@ _functionfmt = """
{function}(d)
"""
logformatter = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
def exec_func_python(func, d, runfile, cwd=None, pythonexception=False):
def exec_func_python(func, d, runfile, cwd=None):
"""Execute a python BB 'function'"""
code = _functionfmt.format(function=func)
@@ -311,14 +289,7 @@ def exec_func_python(func, d, runfile, cwd=None, pythonexception=False):
bb.methodpool.insert_method(func, text, fn, lineno - 1)
comp = utils.better_compile(code, func, "exec_python_func() autogenerated")
utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated", pythonexception=pythonexception)
except (bb.parse.SkipRecipe, bb.build.FuncFailed):
raise
except Exception as e:
if pythonexception:
raise
logger.error(str(e))
raise FuncFailed(func, None)
utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated")
finally:
bb.debug(2, "Python function %s finished" % func)
@@ -475,13 +446,8 @@ exit $ret
with open(fifopath, 'r+b', buffering=0) as fifo:
try:
bb.debug(2, "Executing shell function %s" % func)
try:
with open(os.devnull, 'r+') as stdin, logfile:
bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
except bb.process.CmdError:
logfn = d.getVar('BB_LOGFILE')
raise FuncFailed(func, logfn)
with open(os.devnull, 'r+') as stdin, logfile:
bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
finally:
os.unlink(fifopath)
@@ -609,9 +575,6 @@ def _exec_task(fn, task, d, quieterr):
event.fire(TaskStarted(task, logfn, flags, localdata), localdata)
except (bb.BBHandledException, SystemExit):
return 1
except FuncFailed as exc:
logger.error(str(exc))
return 1
try:
for func in (prefuncs or '').split():
@@ -619,7 +582,10 @@ def _exec_task(fn, task, d, quieterr):
exec_func(task, localdata)
for func in (postfuncs or '').split():
exec_func(func, localdata)
except FuncFailed as exc:
except bb.BBHandledException:
event.fire(TaskFailed(task, logfn, localdata, True), localdata)
return 1
except Exception as exc:
if quieterr:
event.fire(TaskFailedSilent(task, logfn, localdata), localdata)
else:
@@ -627,9 +593,6 @@ def _exec_task(fn, task, d, quieterr):
logger.error(str(exc))
event.fire(TaskFailed(task, logfn, localdata, errprinted), localdata)
return 1
except bb.BBHandledException:
event.fire(TaskFailed(task, logfn, localdata, True), localdata)
return 1
finally:
sys.stdout.flush()
sys.stderr.flush()

View File

@@ -220,7 +220,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.hashfn[fn] = self.hashfilename
for task, taskhash in self.basetaskhashes.items():
identifier = '%s.%s' % (fn, task)
identifier = '%s:%s' % (fn, task)
cachedata.basetaskhash[identifier] = taskhash
cachedata.inherits[fn] = self.inherits
@@ -883,3 +883,56 @@ class MultiProcessCache(object):
p.dump([data, self.__class__.CACHE_VERSION])
bb.utils.unlockfile(glf)
class SimpleCache(object):
"""
BitBake multi-process cache implementation
Used by the codeparser & file checksum caches
"""
def __init__(self, version):
self.cachefile = None
self.cachedata = None
self.cacheversion = version
def init_cache(self, d, cache_file_name=None, defaultdata=None):
cachedir = (d.getVar("PERSISTENT_DIR") or
d.getVar("CACHE"))
if not cachedir:
return defaultdata
bb.utils.mkdirhier(cachedir)
self.cachefile = os.path.join(cachedir,
cache_file_name or self.__class__.cache_file_name)
logger.debug(1, "Using cache in '%s'", self.cachefile)
glf = bb.utils.lockfile(self.cachefile + ".lock")
try:
with open(self.cachefile, "rb") as f:
p = pickle.Unpickler(f)
data, version = p.load()
except:
bb.utils.unlockfile(glf)
return defaultdata
bb.utils.unlockfile(glf)
if version != self.cacheversion:
return defaultdata
return data
def save(self, data):
if not self.cachefile:
return
glf = bb.utils.lockfile(self.cachefile + ".lock")
with open(self.cachefile, "wb") as f:
p = pickle.Pickler(f, -1)
p.dump([data, self.cacheversion])
bb.utils.unlockfile(glf)

View File

@@ -31,6 +31,7 @@ import pyinotify
import json
import pickle
import codecs
import hashserv
logger = logging.getLogger("BitBake")
collectlog = logging.getLogger("BitBake.Collection")
@@ -192,6 +193,8 @@ class BBCooker:
bb.parse.BBHandler.cached_statements = {}
self.ui_cmdline = None
self.hashserv = None
self.hashservaddr = None
self.initConfigurationData()
@@ -372,8 +375,6 @@ class BBCooker:
# Copy of the data store which has been expanded.
# Used for firing events and accessing variables where expansion needs to be accounted for
#
bb.parse.init_parser(self.data)
if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
self.disableDataTracking()
@@ -391,6 +392,23 @@ class BBCooker:
except prserv.serv.PRServiceConfigError as e:
bb.fatal("Unable to start PR Server, exitting")
if self.data.getVar("BB_HASHSERVE") == "auto":
# Create a new hash server bound to a unix domain socket
if not self.hashserv:
dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db"
self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
self.hashserv = hashserv.create_server(self.hashservaddr, dbfile, sync=False)
self.hashserv.process = multiprocessing.Process(target=self.hashserv.serve_forever)
self.hashserv.process.daemon = True
self.hashserv.process.start()
self.data.setVar("BB_HASHSERVE", self.hashservaddr)
self.databuilder.origdata.setVar("BB_HASHSERVE", self.hashservaddr)
self.databuilder.data.setVar("BB_HASHSERVE", self.hashservaddr)
for mc in self.databuilder.mcdata:
self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.hashservaddr)
bb.parse.init_parser(self.data)
def enableDataTracking(self):
self.configuration.tracking = True
if hasattr(self, "data"):
@@ -902,6 +920,10 @@ class BBCooker:
os.unlink('package-depends.dot')
except FileNotFoundError:
pass
try:
os.unlink('recipe-depends.dot')
except FileNotFoundError:
pass
with open('task-depends.dot', 'w') as f:
f.write("digraph depends {\n")
@@ -915,27 +937,6 @@ class BBCooker:
f.write("}\n")
logger.info("Task dependencies saved to 'task-depends.dot'")
with open('recipe-depends.dot', 'w') as f:
f.write("digraph depends {\n")
pndeps = {}
for task in sorted(depgraph["tdepends"]):
(pn, taskname) = task.rsplit(".", 1)
if pn not in pndeps:
pndeps[pn] = set()
for dep in sorted(depgraph["tdepends"][task]):
(deppn, deptaskname) = dep.rsplit(".", 1)
pndeps[pn].add(deppn)
for pn in sorted(pndeps):
fn = depgraph["pn"][pn]["filename"]
version = depgraph["pn"][pn]["version"]
f.write('"%s" [label="%s\\n%s\\n%s"]\n' % (pn, pn, version, fn))
for dep in sorted(pndeps[pn]):
if dep == pn:
continue
f.write('"%s" -> "%s"\n' % (pn, dep))
f.write("}\n")
logger.info("Flattened recipe dependencies saved to 'recipe-depends.dot'")
def show_appends_with_no_recipes(self):
# Determine which bbappends haven't been applied
@@ -1645,9 +1646,11 @@ class BBCooker:
def post_serve(self):
prserv.serv.auto_shutdown()
if self.hashserv:
self.hashserv.process.terminate()
self.hashserv.process.join()
bb.event.fire(CookerExit(), self.data)
def shutdown(self, force = False):
if force:
self.state = state.forceshutdown
@@ -1662,6 +1665,7 @@ class BBCooker:
def reset(self):
self.initConfigurationData()
self.handlePRServ()
def clientComplete(self):
"""Called when the client is done using the server"""
@@ -2062,6 +2066,14 @@ class CookerParser(object):
for process in self.processes:
self.parser_quit.put(None)
# Cleanup the queue before call process.join(), otherwise there might be
# deadlocks.
while True:
try:
self.result_queue.get(timeout=0.25)
except queue.Empty:
break
for process in self.processes:
if force:
process.join(.1)

View File

@@ -268,11 +268,11 @@ class CookerDataBuilder(object):
def parseBaseConfiguration(self):
try:
bb.parse.init_parser(self.basedata)
self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
if self.data.getVar("BB_WORKERCONTEXT", False) is None:
bb.fetch.fetcher_init(self.data)
bb.parse.init_parser(self.data)
bb.codeparser.parser_cache_init(self.data)
bb.event.fire(bb.event.ConfigParsed(), self.data)

View File

@@ -130,7 +130,7 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
if all:
oval = d.getVar(var, False)
val = d.getVar(var)
except (KeyboardInterrupt, bb.build.FuncFailed):
except (KeyboardInterrupt):
raise
except Exception as exc:
o.write('# expansion of %s threw %s: %s\n' % (var, exc.__class__.__name__, str(exc)))
@@ -422,7 +422,7 @@ def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
var = lookupcache[dep]
if var is not None:
data = data + str(var)
k = fn + "." + task
k = fn + ":" + task
basehash[k] = hashlib.sha256(data.encode("utf-8")).hexdigest()
taskdeps[task] = alldeps

View File

@@ -962,7 +962,8 @@ def rename_bad_checksum(ud, suffix):
new_localpath = "%s_bad-checksum_%s" % (ud.localpath, suffix)
bb.warn("Renaming %s to %s" % (ud.localpath, new_localpath))
bb.utils.movefile(ud.localpath, new_localpath)
if not bb.utils.movefile(ud.localpath, new_localpath):
bb.warn("Renaming %s to %s failed, grep movefile in log.do_fetch to see why" % (ud.localpath, new_localpath))
def try_mirror_url(fetch, origud, ud, ld, check = False):

View File

@@ -464,6 +464,8 @@ class Git(FetchMethod):
if os.path.exists(destdir):
bb.utils.prunedir(destdir)
need_lfs = ud.parm.get("lfs", "1") == "1"
source_found = False
source_error = []
@@ -493,14 +495,16 @@ class Git(FetchMethod):
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)
if self._contains_lfs(ud, d, destdir):
path = d.getVar('PATH')
if path:
gitlfstool = bb.utils.which(path, "git-lfs", executable=True)
if not gitlfstool:
raise bb.fetch2.FetchError("Repository %s has lfs content, install git-lfs plugin on host to download" % (repourl))
if need_lfs:
path = d.getVar('PATH')
if path:
gitlfstool = bb.utils.which(path, "git-lfs", executable=True)
if not gitlfstool:
raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl))
else:
bb.note("Could not find 'PATH'")
else:
bb.note("Could not find 'PATH'")
bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
if not ud.nocheckout:
if subdir != "":

View File

@@ -101,11 +101,19 @@ class Npm(FetchMethod):
return False
return True
def _runwget(self, ud, d, command, quiet):
logger.debug(2, "Fetching %s using command '%s'" % (ud.url, command))
bb.fetch2.check_network_access(d, command, ud.url)
def _runpack(self, ud, d, pkgfullname: str, quiet=False) -> str:
"""
Runs npm pack on a full package name.
Returns the filename of the downloaded package
"""
bb.fetch2.check_network_access(d, pkgfullname, ud.registry)
dldir = d.getVar("DL_DIR")
runfetchcmd(command, d, quiet, workdir=dldir)
dldir = os.path.join(dldir, ud.prefixdir)
command = "npm pack {} --registry {}".format(pkgfullname, ud.registry)
logger.debug(2, "Fetching {} using command '{}' in {}".format(pkgfullname, command, dldir))
filename = runfetchcmd(command, d, quiet, workdir=dldir)
return filename.rstrip()
def _unpackdep(self, ud, pkg, data, destdir, dldir, d):
file = data[pkg]['tgz']
@@ -163,6 +171,9 @@ class Npm(FetchMethod):
pkgfullname = pkg
if version != '*' and not '/' in version:
pkgfullname += "@'%s'" % version
if pkgfullname in fetchedlist:
return
logger.debug(2, "Calling getdeps on %s" % pkg)
fetchcmd = "npm view %s --json --registry %s" % (pkgfullname, ud.registry)
output = runfetchcmd(fetchcmd, d, True)
@@ -182,15 +193,10 @@ class Npm(FetchMethod):
if (not blacklist and 'linux' not in pkg_os) or '!linux' in pkg_os:
logger.debug(2, "Skipping %s since it's incompatible with Linux" % pkg)
return
#logger.debug(2, "Output URL is %s - %s - %s" % (ud.basepath, ud.basename, ud.localfile))
outputurl = pdata['dist']['tarball']
filename = self._runpack(ud, d, pkgfullname)
data[pkg] = {}
data[pkg]['tgz'] = os.path.basename(outputurl)
if outputurl in fetchedlist:
return
self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
fetchedlist.append(outputurl)
data[pkg]['tgz'] = filename
fetchedlist.append(pkgfullname)
dependencies = pdata.get('dependencies', {})
optionalDependencies = pdata.get('optionalDependencies', {})
@@ -217,17 +223,12 @@ class Npm(FetchMethod):
if obj == pkg:
self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest, False)
return
outputurl = "invalid"
if ('resolved' not in data) or (not data['resolved'].startswith('http://') and not data['resolved'].startswith('https://')):
# will be the case for ${PN}
fetchcmd = "npm view %s@%s dist.tarball --registry %s" % (pkg, version, ud.registry)
logger.debug(2, "Found this matching URL: %s" % str(fetchcmd))
outputurl = runfetchcmd(fetchcmd, d, True)
else:
outputurl = data['resolved']
self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
pkgnameWithVersion = "{}@{}".format(pkg, version)
logger.debug(2, "Get dependencies for {}".format(pkgnameWithVersion))
filename = self._runpack(ud, d, pkgnameWithVersion)
manifest[pkg] = {}
manifest[pkg]['tgz'] = os.path.basename(outputurl).rstrip()
manifest[pkg]['tgz'] = filename
manifest[pkg]['deps'] = {}
if pkg in lockdown:

View File

@@ -145,7 +145,7 @@ class Svn(FetchMethod):
if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"):
# Warn the user if this had externals (won't catch them all)
output = runfetchcmd("svn propget svn:externals", d, workdir=ud.moddir)
output = runfetchcmd("svn propget svn:externals || true", d, workdir=ud.moddir)
if output:
if "--ignore-externals" in svnfetchcmd.split():
bb.warn("%s contains svn:externals." % ud.url)

View File

@@ -257,13 +257,15 @@ class Wget(FetchMethod):
fp.read()
fp.close()
newheaders = dict((k, v) for k, v in list(req.headers.items())
if k.lower() not in ("content-length", "content-type"))
return self.parent.open(urllib.request.Request(req.get_full_url(),
headers=newheaders,
origin_req_host=req.origin_req_host,
unverifiable=True))
if req.get_method() != 'GET':
newheaders = dict((k, v) for k, v in list(req.headers.items())
if k.lower() not in ("content-length", "content-type"))
return self.parent.open(urllib.request.Request(req.get_full_url(),
headers=newheaders,
origin_req_host=req.origin_req_host,
unverifiable=True))
raise urllib.request.HTTPError(req, code, msg, headers, None)
# Some servers (e.g. GitHub archives, hosted on Amazon S3) return 403
# Forbidden when they actually mean 405 Method Not Allowed.

View File

@@ -133,7 +133,7 @@ class RunQueueScheduler(object):
self.prio_map = [self.rqdata.runtaskentries.keys()]
self.buildable = []
self.buildable = set()
self.skip_maxthread = {}
self.stamps = {}
for tid in self.rqdata.runtaskentries:
@@ -148,8 +148,10 @@ class RunQueueScheduler(object):
"""
Return the id of the first task we find that is buildable
"""
self.buildable = [x for x in self.buildable if x not in self.rq.runq_running]
buildable = [x for x in self.buildable if (x in self.rq.tasks_covered or x in self.rq.tasks_notcovered)]
buildable = set(self.buildable)
buildable.difference_update(self.rq.runq_running)
buildable.difference_update(self.rq.holdoff_tasks)
buildable.intersection_update(self.rq.tasks_covered | self.rq.tasks_notcovered)
if not buildable:
return None
@@ -167,7 +169,7 @@ class RunQueueScheduler(object):
skip_buildable[rtaskname] = 1
if len(buildable) == 1:
tid = buildable[0]
tid = buildable.pop()
taskname = taskname_from_tid(tid)
if taskname in skip_buildable and skip_buildable[taskname] >= int(self.skip_maxthread[taskname]):
return None
@@ -204,7 +206,10 @@ class RunQueueScheduler(object):
return self.next_buildable_task()
def newbuildable(self, task):
self.buildable.append(task)
self.buildable.add(task)
def removebuildable(self, task):
self.buildable.remove(task)
def describe_task(self, taskid):
result = 'ID %s' % taskid
@@ -844,6 +849,20 @@ class RunQueueData:
for depend in depends:
mark_active(depend, depth+1)
def invalidate_task(tid, error_nostamp):
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
taskdep = self.dataCaches[mc].task_deps[taskfn]
if fn + ":" + taskname not in taskData[mc].taskentries:
logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname)
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
if error_nostamp:
bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
logger.verbose("Invalidate task %s, %s", taskname, fn)
bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], taskfn)
self.target_tids = []
for (mc, target, task, fn) in self.targets:
@@ -912,6 +931,8 @@ class RunQueueData:
for tid in list(runall_tids):
mark_active(tid,1)
if self.cooker.configuration.force:
invalidate_task(tid, False)
for tid in list(self.runtaskentries.keys()):
if tid not in runq_build:
@@ -933,6 +954,8 @@ class RunQueueData:
for tid in list(runonly_tids):
mark_active(tid,1)
if self.cooker.configuration.force:
invalidate_task(tid, False)
for tid in list(self.runtaskentries.keys()):
if tid not in runq_build:
@@ -1109,20 +1132,6 @@ class RunQueueData:
continue
self.runq_setscene_tids.append(tid)
def invalidate_task(tid, error_nostamp):
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
taskdep = self.dataCaches[mc].task_deps[taskfn]
if fn + ":" + taskname not in taskData[mc].taskentries:
logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname)
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
if error_nostamp:
bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
logger.verbose("Invalidate task %s, %s", taskname, fn)
bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], taskfn)
self.init_progress_reporter.next_stage()
# Invalidate task if force mode active
@@ -1164,6 +1173,7 @@ class RunQueueData:
self.prepare_task_hash(tid)
bb.parse.siggen.writeout_file_checksum_cache()
bb.parse.siggen.set_setscene_tasks(self.runq_setscene_tids)
#self.dump_data()
return len(self.runtaskentries)
@@ -1171,10 +1181,9 @@ class RunQueueData:
def prepare_task_hash(self, tid):
procdep = []
for dep in self.runtaskentries[tid].depends:
procdep.append(fn_from_tid(dep) + "." + taskname_from_tid(dep))
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc])
self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(taskfn + "." + taskname)
procdep.append(dep)
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, procdep, self.dataCaches[mc_from_tid(tid)])
self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
def dump_data(self):
"""
@@ -1251,6 +1260,7 @@ class RunQueue:
"buildname" : self.cfgData.getVar("BUILDNAME"),
"date" : self.cfgData.getVar("DATE"),
"time" : self.cfgData.getVar("TIME"),
"hashservaddr" : self.cooker.hashservaddr,
}
worker.stdin.write(b"<cookerconfig>" + pickle.dumps(self.cooker.configuration) + b"</cookerconfig>")
@@ -1384,57 +1394,29 @@ class RunQueue:
cache[tid] = iscurrent
return iscurrent
def validate_hashes(self, tocheck, data, presentcount=None, siginfo=False):
def validate_hashes(self, tocheck, data, currentcount=0, siginfo=False):
valid = set()
if self.hashvalidate:
sq_hash = []
sq_hashfn = []
sq_unihash = []
sq_fn = []
sq_taskname = []
sq_task = []
sq_data = {}
sq_data['hash'] = {}
sq_data['hashfn'] = {}
sq_data['unihash'] = {}
for tid in tocheck:
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
sq_data['hash'][tid] = self.rqdata.runtaskentries[tid].hash
sq_data['hashfn'][tid] = self.rqdata.dataCaches[mc].hashfn[taskfn]
sq_data['unihash'][tid] = self.rqdata.runtaskentries[tid].unihash
sq_fn.append(fn)
sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[taskfn])
sq_hash.append(self.rqdata.runtaskentries[tid].hash)
sq_unihash.append(self.rqdata.runtaskentries[tid].unihash)
sq_taskname.append(taskname)
sq_task.append(tid)
if presentcount is not None:
data.setVar("BB_SETSCENE_STAMPCURRENT_COUNT", presentcount)
valid_ids = self.validate_hash(sq_fn, sq_taskname, sq_hash, sq_hashfn, siginfo, sq_unihash, data, presentcount)
if presentcount is not None:
data.delVar("BB_SETSCENE_STAMPCURRENT_COUNT")
for v in valid_ids:
valid.add(sq_task[v])
valid = self.validate_hash(sq_data, data, siginfo, currentcount)
return valid
def validate_hash(self, sq_fn, sq_task, sq_hash, sq_hashfn, siginfo, sq_unihash, d, presentcount):
locs = {"sq_fn" : sq_fn, "sq_task" : sq_task, "sq_hash" : sq_hash, "sq_hashfn" : sq_hashfn,
"sq_unihash" : sq_unihash, "siginfo" : siginfo, "d" : d}
def validate_hash(self, sq_data, d, siginfo, currentcount):
locs = {"sq_data" : sq_data, "d" : d, "siginfo" : siginfo, "currentcount" : currentcount}
# Backwards compatibility
hashvalidate_args = ("(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=siginfo, sq_unihash=sq_unihash)",
"(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=siginfo)",
"(sq_fn, sq_task, sq_hash, sq_hashfn, d)")
# Metadata has **kwargs so args can be added, sq_data can also gain new fields
call = self.hashvalidate + "(sq_data, d, siginfo=siginfo, currentcount=currentcount)"
for args in hashvalidate_args[:-1]:
try:
call = self.hashvalidate + args
return bb.utils.better_eval(call, locs)
except TypeError:
continue
# Call the last entry without a try...catch to propagate any thrown
# TypeError
call = self.hashvalidate + hashvalidate_args[-1]
return bb.utils.better_eval(call, locs)
def _execute_runqueue(self):
@@ -1516,6 +1498,7 @@ class RunQueue:
self.dm_event_handler_registered = False
if build_done and self.rqexe:
bb.parse.siggen.save_unitaskhashes()
self.teardown_workers()
if self.rqexe:
if self.rqexe.stats.failed:
@@ -1618,7 +1601,7 @@ class RunQueue:
tocheck.add(tid)
valid_new = self.validate_hashes(tocheck, self.cooker.data, None, True)
valid_new = self.validate_hashes(tocheck, self.cooker.data, 0, True)
# Tasks which are both setscene and noexec never care about dependencies
# We therefore find tasks which are setscene and noexec and mark their
@@ -1718,6 +1701,9 @@ class RunQueueExecute:
self.sq_running = set()
self.sq_live = set()
self.updated_taskhash_queue = []
self.pending_migrations = set()
self.runq_buildable = set()
self.runq_running = set()
self.runq_complete = set()
@@ -1729,6 +1715,8 @@ class RunQueueExecute:
self.stampcache = {}
self.holdoff_tasks = set()
self.holdoff_need_update = True
self.sqdone = False
self.stats = RunQueueStats(len(self.rqdata.runtaskentries))
@@ -1751,7 +1739,10 @@ class RunQueueExecute:
self.tasks_notcovered = set()
self.scenequeue_notneeded = set()
self.coveredtopocess = set()
# We can't skip specified target tasks which aren't setscene tasks
self.cantskip = set(self.rqdata.target_tids)
self.cantskip.difference_update(self.rqdata.runq_setscene_tids)
self.cantskip.intersection_update(self.rqdata.runtaskentries)
schedulers = self.get_schedulers()
for scheduler in schedulers:
@@ -1763,9 +1754,9 @@ class RunQueueExecute:
bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" %
(self.scheduler, ", ".join(obj.name for obj in schedulers)))
if len(self.rqdata.runq_setscene_tids) > 0:
self.sqdata = SQData()
build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self)
#if len(self.rqdata.runq_setscene_tids) > 0:
self.sqdata = SQData()
build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self)
def runqueue_process_waitpid(self, task, status):
@@ -1831,6 +1822,9 @@ class RunQueueExecute:
if not self.rq.depvalidate:
return False
# Must not edit parent data
taskdeps = set(taskdeps)
taskdata = {}
taskdeps.add(task)
for dep in taskdeps:
@@ -1918,17 +1912,58 @@ class RunQueueExecute:
self.stats.taskSkipped()
self.stats.taskCompleted()
def summarise_scenequeue_errors(self):
err = False
if not self.sqdone:
logger.debug(1, 'We could skip tasks %s', "\n".join(sorted(self.scenequeue_covered)))
completeevent = sceneQueueComplete(self.sq_stats, self.rq)
bb.event.fire(completeevent, self.cfgData)
if self.sq_deferred:
logger.error("Scenequeue had deferred entries: %s" % pprint.pformat(self.sq_deferred))
err = True
if self.updated_taskhash_queue:
logger.error("Scenequeue had unprocessed changed taskhash entries: %s" % pprint.pformat(self.updated_taskhash_queue))
err = True
if self.holdoff_tasks:
logger.error("Scenequeue had holdoff tasks: %s" % pprint.pformat(self.holdoff_tasks))
err = True
for tid in self.rqdata.runq_setscene_tids:
if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered:
err = True
logger.error("Setscene Task %s was never marked as covered or not covered" % tid)
if tid not in self.sq_buildable:
err = True
logger.error("Setscene Task %s was never marked as buildable" % tid)
if tid not in self.sq_running:
err = True
logger.error("Setscene Task %s was never marked as running" % tid)
for x in self.rqdata.runtaskentries:
if x not in self.tasks_covered and x not in self.tasks_notcovered:
logger.error("Task %s was never moved from the setscene queue" % x)
err = True
if x not in self.tasks_scenequeue_done:
logger.error("Task %s was never processed by the setscene code" % x)
err = True
if len(self.rqdata.runtaskentries[x].depends) == 0 and x not in self.runq_buildable:
logger.error("Task %s was never marked as buildable by the setscene code" % x)
err = True
return err
def execute(self):
"""
Run the tasks in a queue prepared by prepare_runqueue
"""
self.rq.read_workers()
self.process_possible_migrations()
task = None
if not self.sqdone and self.can_start_task():
# Find the next setscene to run
for nexttask in self.rqdata.runq_setscene_tids:
for nexttask in sorted(self.rqdata.runq_setscene_tids):
if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values():
if nexttask not in self.sqdata.unskippable and len(self.sqdata.sq_revdeps[nexttask]) > 0 and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]):
if nexttask not in self.rqdata.target_tids:
@@ -1938,12 +1973,16 @@ class RunQueueExecute:
if nexttask in self.sq_deferred:
del self.sq_deferred[nexttask]
return True
# If covered tasks are running, need to wait for them to complete
for t in self.sqdata.sq_covered_tasks[nexttask]:
if t in self.runq_running and t not in self.runq_complete:
continue
if nexttask in self.sq_deferred:
if self.sq_deferred[nexttask] not in self.runq_complete:
continue
logger.debug(1, "Task %s no longer deferred" % nexttask)
del self.sq_deferred[nexttask]
valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, None, False)
valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False)
if not valid:
logger.debug(1, "%s didn't become valid, skipping setscene" % nexttask)
self.sq_task_failoutright(nexttask)
@@ -2006,24 +2045,12 @@ class RunQueueExecute:
if self.can_start_task():
return True
if not self.sq_live and not self.sqdone and not self.sq_deferred:
self.update_holdofftasks()
if not self.sq_live and not self.sqdone and not self.sq_deferred and not self.updated_taskhash_queue and not self.holdoff_tasks:
logger.info("Setscene tasks completed")
logger.debug(1, 'We could skip tasks %s', "\n".join(sorted(self.scenequeue_covered)))
completeevent = sceneQueueComplete(self.sq_stats, self.rq)
bb.event.fire(completeevent, self.cfgData)
err = False
for x in self.rqdata.runtaskentries:
if x not in self.tasks_covered and x not in self.tasks_notcovered:
logger.error("Task %s was never moved from the setscene queue" % x)
err = True
if x not in self.tasks_scenequeue_done:
logger.error("Task %s was never processed by the setscene code" % x)
err = True
if len(self.rqdata.runtaskentries[x].depends) == 0 and x not in self.runq_buildable:
logger.error("Task %s was never marked as buildable by the setscene code" % x)
err = True
err = self.summarise_scenequeue_errors()
if err:
self.rq.state = runQueueFailed
return True
@@ -2119,34 +2146,42 @@ class RunQueueExecute:
return True
# Sanity Checks
err = self.summarise_scenequeue_errors()
for task in self.rqdata.runtaskentries:
if task not in self.runq_buildable:
logger.error("Task %s never buildable!", task)
err = True
elif task not in self.runq_running:
logger.error("Task %s never ran!", task)
err = True
elif task not in self.runq_complete:
logger.error("Task %s never completed!", task)
self.rq.state = runQueueComplete
err = True
if err:
self.rq.state = runQueueFailed
else:
self.rq.state = runQueueComplete
return True
def filtermcdeps(self, task, deps):
def filtermcdeps(self, task, mc, deps):
ret = set()
mainmc = mc_from_tid(task)
for dep in deps:
mc = mc_from_tid(dep)
if mc != mainmc:
thismc = mc_from_tid(dep)
if thismc != mc:
continue
ret.add(dep)
return ret
# We filter out multiconfig dependencies from taskdepdata we pass to the tasks
# We filter out multiconfig dependencies from taskdepdata we pass to the tasks
# as most code can't handle them
def build_taskdepdata(self, task):
taskdepdata = {}
next = self.rqdata.runtaskentries[task].depends
mc = mc_from_tid(task)
next = self.rqdata.runtaskentries[task].depends.copy()
next.add(task)
next = self.filtermcdeps(task, next)
next = self.filtermcdeps(task, mc, next)
while next:
additional = []
for revdep in next:
@@ -2156,7 +2191,7 @@ class RunQueueExecute:
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
taskhash = self.rqdata.runtaskentries[revdep].hash
unihash = self.rqdata.runtaskentries[revdep].unihash
deps = self.filtermcdeps(task, deps)
deps = self.filtermcdeps(task, mc, deps)
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash]
for revdep2 in deps:
if revdep2 not in taskdepdata:
@@ -2166,57 +2201,182 @@ class RunQueueExecute:
#bb.note("Task %s: " % task + str(taskdepdata).replace("], ", "],\n"))
return taskdepdata
def scenequeue_process_notcovered(self, task):
if len(self.rqdata.runtaskentries[task].depends) == 0:
self.setbuildable(task)
notcovered = set([task])
while notcovered:
new = set()
for t in notcovered:
for deptask in self.rqdata.runtaskentries[t].depends:
if deptask in notcovered or deptask in new or deptask in self.rqdata.runq_setscene_tids or deptask in self.tasks_notcovered:
continue
logger.debug(1, 'Task %s depends on non-setscene task %s so not skipping' % (t, deptask))
new.add(deptask)
self.tasks_notcovered.add(deptask)
if len(self.rqdata.runtaskentries[deptask].depends) == 0:
self.setbuildable(deptask)
notcovered = new
def update_holdofftasks(self):
def scenequeue_process_unskippable(self, task):
# Look up the dependency chain for non-setscene things which depend on this task
# and mark as 'done'/notcovered
ready = set([task])
while ready:
new = set()
for t in ready:
for deptask in self.rqdata.runtaskentries[t].revdeps:
if deptask in ready or deptask in new or deptask in self.tasks_scenequeue_done or deptask in self.rqdata.runq_setscene_tids:
continue
if self.rqdata.runtaskentries[deptask].depends.issubset(self.tasks_scenequeue_done):
new.add(deptask)
self.tasks_scenequeue_done.add(deptask)
self.tasks_notcovered.add(deptask)
#logger.warning("Up: " + str(deptask))
ready = new
if not self.holdoff_need_update:
return
notcovered = set(self.scenequeue_notcovered)
notcovered |= self.cantskip
for tid in self.scenequeue_notcovered:
notcovered |= self.sqdata.sq_covered_tasks[tid]
notcovered |= self.sqdata.unskippable.difference(self.rqdata.runq_setscene_tids)
notcovered.intersection_update(self.tasks_scenequeue_done)
covered = set(self.scenequeue_covered)
for tid in self.scenequeue_covered:
covered |= self.sqdata.sq_covered_tasks[tid]
covered.difference_update(notcovered)
covered.intersection_update(self.tasks_scenequeue_done)
for tid in notcovered | covered:
if len(self.rqdata.runtaskentries[tid].depends) == 0:
self.setbuildable(tid)
elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete):
self.setbuildable(tid)
self.tasks_covered = covered
self.tasks_notcovered = notcovered
self.holdoff_tasks = set()
for tid in self.rqdata.runq_setscene_tids:
if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered:
self.holdoff_tasks.add(tid)
for tid in self.holdoff_tasks.copy():
for dep in self.sqdata.sq_covered_tasks[tid]:
if dep not in self.runq_complete:
self.holdoff_tasks.add(dep)
self.holdoff_need_update = False
def process_possible_migrations(self):
changed = set()
for tid, unihash in self.updated_taskhash_queue.copy():
if tid in self.runq_running and tid not in self.runq_complete:
continue
self.updated_taskhash_queue.remove((tid, unihash))
if unihash != self.rqdata.runtaskentries[tid].unihash:
logger.info("Task %s unihash changed to %s" % (tid, unihash))
self.rqdata.runtaskentries[tid].unihash = unihash
bb.parse.siggen.set_unihash(tid, unihash)
# Work out all tasks which depend on this one
total = set()
next = set(self.rqdata.runtaskentries[tid].revdeps)
while next:
current = next.copy()
total = total |next
next = set()
for ntid in current:
next |= self.rqdata.runtaskentries[ntid].revdeps
next.difference_update(total)
# Now iterate those tasks in dependency order to regenerate their taskhash/unihash
done = set()
next = set(self.rqdata.runtaskentries[tid].revdeps)
while next:
current = next.copy()
next = set()
for tid in current:
if not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
continue
procdep = []
for dep in self.rqdata.runtaskentries[tid].depends:
procdep.append(dep)
orighash = self.rqdata.runtaskentries[tid].hash
self.rqdata.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, procdep, self.rqdata.dataCaches[mc_from_tid(tid)])
origuni = self.rqdata.runtaskentries[tid].unihash
self.rqdata.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
logger.debug(1, "Task %s hash changes: %s->%s %s->%s" % (tid, orighash, self.rqdata.runtaskentries[tid].hash, origuni, self.rqdata.runtaskentries[tid].unihash))
next |= self.rqdata.runtaskentries[tid].revdeps
changed.add(tid)
total.remove(tid)
next.intersection_update(total)
if changed:
for mc in self.rq.worker:
self.rq.worker[mc].process.stdin.write(b"<newtaskhashes>" + pickle.dumps(bb.parse.siggen.get_taskhashes()) + b"</newtaskhashes>")
for mc in self.rq.fakeworker:
self.rq.fakeworker[mc].process.stdin.write(b"<newtaskhashes>" + pickle.dumps(bb.parse.siggen.get_taskhashes()) + b"</newtaskhashes>")
logger.debug(1, pprint.pformat("Tasks changed:\n%s" % (changed)))
for tid in changed:
if tid not in self.rqdata.runq_setscene_tids:
continue
valid = self.rq.validate_hashes(set([tid]), self.cooker.data, None, False)
if not valid:
continue
if tid in self.runq_running:
continue
if tid not in self.pending_migrations:
self.pending_migrations.add(tid)
for tid in self.pending_migrations.copy():
valid = True
# Check no tasks this covers are running
for dep in self.sqdata.sq_covered_tasks[tid]:
if dep in self.runq_running and dep not in self.runq_complete:
logger.debug(2, "Task %s is running which blocks setscene for %s from running" % (dep, tid))
valid = False
break
if not valid:
continue
self.pending_migrations.remove(tid)
changed = True
if tid in self.tasks_scenequeue_done:
self.tasks_scenequeue_done.remove(tid)
for dep in self.sqdata.sq_covered_tasks[tid]:
if dep not in self.runq_complete:
if dep in self.tasks_scenequeue_done and dep not in self.sqdata.unskippable:
self.tasks_scenequeue_done.remove(dep)
if tid in self.sq_buildable:
self.sq_buildable.remove(tid)
if tid in self.sq_running:
self.sq_running.remove(tid)
if self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered):
if tid not in self.sq_buildable:
self.sq_buildable.add(tid)
if len(self.sqdata.sq_revdeps[tid]) == 0:
self.sq_buildable.add(tid)
if tid in self.sqdata.outrightfail:
self.sqdata.outrightfail.remove(tid)
if tid in self.scenequeue_notcovered:
self.scenequeue_notcovered.remove(tid)
if tid in self.scenequeue_covered:
self.scenequeue_covered.remove(tid)
if tid in self.scenequeue_notneeded:
self.scenequeue_notneeded.remove(tid)
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
self.sqdata.stamps[tid] = bb.build.stampfile(taskname + "_setscene", self.rqdata.dataCaches[mc], taskfn, noextra=True)
if tid in self.stampcache:
del self.stampcache[tid]
if tid in self.build_stamps:
del self.build_stamps[tid]
logger.info("Setscene task %s now valid and being rerun" % tid)
self.sqdone = False
if changed:
self.holdoff_need_update = True
def scenequeue_updatecounters(self, task, fail=False):
for dep in self.sqdata.sq_deps[task]:
for dep in sorted(self.sqdata.sq_deps[task]):
if fail and task in self.sqdata.sq_harddeps and dep in self.sqdata.sq_harddeps[task]:
logger.debug(2, "%s was unavailable and is a hard dependency of %s so skipping" % (task, dep))
self.sq_task_failoutright(dep)
continue
if task not in self.sqdata.sq_revdeps2[dep]:
# May already have been removed by the fail case above
continue
self.sqdata.sq_revdeps2[dep].remove(task)
if len(self.sqdata.sq_revdeps2[dep]) == 0:
self.sq_buildable.add(dep)
if self.sqdata.sq_revdeps[dep].issubset(self.scenequeue_covered | self.scenequeue_notcovered):
if dep not in self.sq_buildable:
self.sq_buildable.add(dep)
next = set([task])
while next:
new = set()
for t in next:
for t in sorted(next):
self.tasks_scenequeue_done.add(t)
# Look down the dependency chain for non-setscene things which this task depends on
# and mark as 'done'
@@ -2225,39 +2385,9 @@ class RunQueueExecute:
continue
if self.rqdata.runtaskentries[dep].revdeps.issubset(self.tasks_scenequeue_done):
new.add(dep)
#logger.warning(" Down: " + dep)
next = new
if task in self.sqdata.unskippable:
self.scenequeue_process_unskippable(task)
if task in self.scenequeue_notcovered:
logger.debug(1, 'Not skipping setscene task %s', task)
self.scenequeue_process_notcovered(task)
elif task in self.scenequeue_covered:
logger.debug(1, 'Queued setscene task %s', task)
self.coveredtopocess.add(task)
for task in self.coveredtopocess.copy():
if self.sqdata.sq_covered_tasks[task].issubset(self.tasks_scenequeue_done):
logger.debug(1, 'Processing setscene task %s', task)
covered = self.sqdata.sq_covered_tasks[task]
covered.add(task)
# If a task is in target_tids and isn't a setscene task, we can't skip it.
cantskip = covered.intersection(self.rqdata.target_tids).difference(self.rqdata.runq_setscene_tids)
for tid in cantskip:
self.tasks_notcovered.add(tid)
self.scenequeue_process_notcovered(tid)
covered.difference_update(cantskip)
# Remove notcovered tasks
covered.difference_update(self.tasks_notcovered)
self.tasks_covered.update(covered)
self.coveredtopocess.remove(task)
for tid in covered:
if len(self.rqdata.runtaskentries[tid].depends) == 0:
self.setbuildable(tid)
self.holdoff_need_update = True
def sq_task_completeoutright(self, task):
"""
@@ -2268,7 +2398,6 @@ class RunQueueExecute:
logger.debug(1, 'Found task %s which could be accelerated', task)
self.scenequeue_covered.add(task)
self.tasks_covered.add(task)
self.scenequeue_updatecounters(task)
def sq_check_taskfail(self, task):
@@ -2289,7 +2418,6 @@ class RunQueueExecute:
self.sq_stats.taskFailed()
bb.event.fire(sceneQueueTaskFailed(task, self.sq_stats, result, self), self.cfgData)
self.scenequeue_notcovered.add(task)
self.tasks_notcovered.add(task)
self.scenequeue_updatecounters(task, True)
self.sq_check_taskfail(task)
@@ -2299,7 +2427,6 @@ class RunQueueExecute:
self.sq_stats.taskSkipped()
self.sq_stats.taskCompleted()
self.scenequeue_notcovered.add(task)
self.tasks_notcovered.add(task)
self.scenequeue_updatecounters(task, True)
def sq_task_skip(self, task):
@@ -2377,8 +2504,6 @@ class SQData(object):
self.sq_deps = {}
# SceneQueue reverse dependencies
self.sq_revdeps = {}
# Copy of reverse dependencies used by sq processing code
self.sq_revdeps2 = {}
# Injected inter-setscene task dependencies
self.sq_harddeps = {}
# Cache of stamp files so duplicates can't run in parallel
@@ -2458,27 +2583,28 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
rqdata.init_progress_reporter.next_stage()
# Build a list of setscene tasks which are "unskippable"
# These are direct endpoints referenced by the build
# Build a list of tasks which are "unskippable"
# These are direct endpoints referenced by the build upto and including setscene tasks
# Take the build endpoints (no revdeps) and find the sstate tasks they depend upon
new = True
for tid in rqdata.runtaskentries:
if len(rqdata.runtaskentries[tid].revdeps) == 0:
sqdata.unskippable.add(tid)
sqdata.unskippable |= sqrq.cantskip
while new:
new = False
for tid in sqdata.unskippable.copy():
orig = sqdata.unskippable.copy()
for tid in sorted(orig, reverse=True):
if tid in rqdata.runq_setscene_tids:
continue
sqdata.unskippable.remove(tid)
if len(rqdata.runtaskentries[tid].depends) == 0:
# These are tasks which have no setscene tasks in their chain, need to mark as directly buildable
sqrq.tasks_notcovered.add(tid)
sqrq.tasks_scenequeue_done.add(tid)
sqrq.setbuildable(tid)
sqrq.scenequeue_process_unskippable(tid)
sqdata.unskippable |= rqdata.runtaskentries[tid].depends
new = True
if sqdata.unskippable != orig:
new = True
sqrq.tasks_scenequeue_done |= sqdata.unskippable.difference(rqdata.runq_setscene_tids)
rqdata.init_progress_reporter.next_stage(len(rqdata.runtaskentries))
@@ -2537,7 +2663,6 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
# bb.warn("Task %s_setscene: is %s " % (tid, data))
sqdata.sq_revdeps = sq_revdeps_squash
sqdata.sq_revdeps2 = copy.deepcopy(sqdata.sq_revdeps)
sqdata.sq_covered_tasks = sq_collated_deps
# Build reverse version of revdeps to populate deps structure
@@ -2562,7 +2687,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
stamppresent = []
tocheck = set()
for tid in sqdata.sq_revdeps:
for tid in sorted(sqdata.sq_revdeps):
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
taskdep = rqdata.dataCaches[mc].task_deps[taskfn]
@@ -2595,7 +2720,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
hashes = {}
for mc in sorted(multiconfigs):
for tid in sqdata.sq_revdeps:
for tid in sorted(sqdata.sq_revdeps):
if mc_from_tid(tid) != mc:
continue
if tid not in valid_new and tid not in noexec and tid not in sqrq.scenequeue_notcovered:
@@ -2715,6 +2840,15 @@ class runQueueTaskSkipped(runQueueEvent):
runQueueEvent.__init__(self, task, stats, rq)
self.reason = reason
class taskUniHashUpdate(bb.event.Event):
"""
Base runQueue event class
"""
def __init__(self, task, unihash):
self.taskid = task
self.unihash = unihash
bb.event.Event.__init__(self)
class runQueuePipe():
"""
Abstraction for a pipe between a worker thread and the server
@@ -2757,6 +2891,8 @@ class runQueuePipe():
except ValueError as e:
bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[7:index]))
bb.event.fire_from_worker(event, self.d)
if isinstance(event, taskUniHashUpdate):
self.rqexec.updated_taskhash_queue.append((event.taskid, event.unihash))
found = True
self.queue = self.queue[index+8:]
index = self.queue.find(b"</event>")

View File

@@ -456,7 +456,10 @@ class BitBakeServer(object):
self.configuration.setServerRegIdleCallback(server.register_idle_function)
os.close(self.readypipe)
writer = ConnectionWriter(self.readypipein)
self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
try:
self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
except bb.BBHandledException:
return None
writer.send("r")
writer.close()
server.cooker = self.cooker

View File

@@ -12,6 +12,8 @@ import bb.data
import difflib
import simplediff
from bb.checksum import FileChecksumCache
from bb import runqueue
import hashserv
logger = logging.getLogger('BitBake.SigGen')
@@ -41,17 +43,17 @@ class SignatureGenerator(object):
self.runtaskdeps = {}
self.file_checksum_values = {}
self.taints = {}
self.unitaskhashes = {}
def finalise(self, fn, d, varient):
return
def get_unihash(self, task):
return self.taskhash[task]
def get_unihash(self, tid):
return self.taskhash[tid]
def get_taskhash(self, fn, task, deps, dataCache):
k = fn + "." + task
self.taskhash[k] = hashlib.sha256(k.encode("utf-8")).hexdigest()
return self.taskhash[k]
def get_taskhash(self, tid, deps, dataCache):
self.taskhash[tid] = hashlib.sha256(tid.encode("utf-8")).hexdigest()
return self.taskhash[tid]
def writeout_file_checksum_cache(self):
"""Write/update the file checksum cache onto disk"""
@@ -73,14 +75,25 @@ class SignatureGenerator(object):
return
def get_taskdata(self):
return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash)
return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes)
def set_taskdata(self, data):
self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash = data
self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes = data
def reset(self, data):
self.__init__(data)
def get_taskhashes(self):
return self.taskhash, self.unitaskhashes
def set_taskhashes(self, hashes):
self.taskhash, self.unitaskhashes = hashes
def save_unitaskhashes(self):
return
def set_setscene_tasks(self, setscene_tasks):
return
class SignatureGeneratorBasic(SignatureGenerator):
"""
@@ -96,7 +109,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
self.taints = {}
self.gendeps = {}
self.lookupcache = {}
self.pkgnameextract = re.compile(r"(?P<fn>.*)\..*")
self.setscenetasks = {}
self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST") or "").split())
self.taskwhitelist = None
self.init_rundepcheck(data)
@@ -107,6 +120,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
else:
self.checksum_cache = None
self.unihash_cache = bb.cache.SimpleCache("1")
self.unitaskhashes = self.unihash_cache.init_cache(data, "bb_unihashes.dat", {})
def init_rundepcheck(self, data):
self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None
if self.taskwhitelist:
@@ -122,16 +138,16 @@ class SignatureGeneratorBasic(SignatureGenerator):
taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basewhitelist, fn)
for task in tasklist:
k = fn + "." + task
if not ignore_mismatch and k in self.basehash and self.basehash[k] != basehash[k]:
bb.error("When reparsing %s, the basehash value changed from %s to %s. The metadata is not deterministic and this needs to be fixed." % (k, self.basehash[k], basehash[k]))
tid = fn + ":" + task
if not ignore_mismatch and tid in self.basehash and self.basehash[tid] != basehash[tid]:
bb.error("When reparsing %s, the basehash value changed from %s to %s. The metadata is not deterministic and this needs to be fixed." % (tid, self.basehash[tid], basehash[tid]))
bb.error("The following commands may help:")
cmd = "$ bitbake %s -c%s" % (d.getVar('PN'), task)
# Make sure sigdata is dumped before run printdiff
bb.error("%s -Snone" % cmd)
bb.error("Then:")
bb.error("%s -Sprintdiff\n" % cmd)
self.basehash[k] = basehash[k]
self.basehash[tid] = basehash[tid]
self.taskdeps[fn] = taskdeps
self.gendeps[fn] = gendeps
@@ -139,6 +155,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
return taskdeps
def set_setscene_tasks(self, setscene_tasks):
self.setscenetasks = setscene_tasks
def finalise(self, fn, d, variant):
mc = d.getVar("__BBMULTICONFIG", False) or ""
@@ -158,7 +177,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
# self.dump_sigtask(fn, task, d.getVar("STAMP"), False)
for task in taskdeps:
d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + "." + task])
d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + ":" + task])
def rundep_check(self, fn, recipename, task, dep, depname, dataCache):
# Return True if we should keep the dependency, False to drop it
@@ -178,33 +197,26 @@ class SignatureGeneratorBasic(SignatureGenerator):
pass
return taint
def get_taskhash(self, fn, task, deps, dataCache):
def get_taskhash(self, tid, deps, dataCache):
mc = ''
if fn.startswith('mc:'):
mc = fn.split(':')[1]
k = fn + "." + task
(mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid)
data = dataCache.basetaskhash[k]
self.basehash[k] = data
self.runtaskdeps[k] = []
self.file_checksum_values[k] = []
data = dataCache.basetaskhash[tid]
self.basehash[tid] = data
self.runtaskdeps[tid] = []
self.file_checksum_values[tid] = []
recipename = dataCache.pkg_fn[fn]
for dep in sorted(deps, key=clean_basepath):
pkgname = self.pkgnameextract.search(dep).group('fn')
if mc:
depmc = pkgname.split(':')[1]
if mc != depmc:
continue
if dep.startswith("mc:") and not mc:
(depmc, _, deptaskname, depfn) = bb.runqueue.split_tid_mcfn(dep)
if mc != depmc:
continue
depname = dataCache.pkg_fn[pkgname]
depname = dataCache.pkg_fn[depfn]
if not self.rundep_check(fn, recipename, task, dep, depname, dataCache):
continue
if dep not in self.taskhash:
bb.fatal("%s is not in taskhash, caller isn't calling in dependency order?" % dep)
data = data + self.get_unihash(dep)
self.runtaskdeps[k].append(dep)
self.runtaskdeps[tid].append(dep)
if task in dataCache.file_checksums[fn]:
if self.checksum_cache:
@@ -212,7 +224,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
else:
checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename)
for (f,cs) in checksums:
self.file_checksum_values[k].append((f,cs))
self.file_checksum_values[tid].append((f,cs))
if cs:
data = data + cs
@@ -222,16 +234,16 @@ class SignatureGeneratorBasic(SignatureGenerator):
import uuid
taint = str(uuid.uuid4())
data = data + taint
self.taints[k] = "nostamp:" + taint
self.taints[tid] = "nostamp:" + taint
taint = self.read_taint(fn, task, dataCache.stamp[fn])
if taint:
data = data + taint
self.taints[k] = taint
logger.warning("%s is tainted from a forced run" % k)
self.taints[tid] = taint
logger.warning("%s is tainted from a forced run" % tid)
h = hashlib.sha256(data.encode("utf-8")).hexdigest()
self.taskhash[k] = h
self.taskhash[tid] = h
#d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
return h
@@ -244,17 +256,20 @@ class SignatureGeneratorBasic(SignatureGenerator):
bb.fetch2.fetcher_parse_save()
bb.fetch2.fetcher_parse_done()
def save_unitaskhashes(self):
self.unihash_cache.save(self.unitaskhashes)
def dump_sigtask(self, fn, task, stampbase, runtime):
k = fn + "." + task
tid = fn + ":" + task
referencestamp = stampbase
if isinstance(runtime, str) and runtime.startswith("customfile"):
sigfile = stampbase
referencestamp = runtime[11:]
elif runtime and k in self.taskhash:
sigfile = stampbase + "." + task + ".sigdata" + "." + self.taskhash[k]
elif runtime and tid in self.taskhash:
sigfile = stampbase + "." + task + ".sigdata" + "." + self.taskhash[tid]
else:
sigfile = stampbase + "." + task + ".sigbasedata" + "." + self.basehash[k]
sigfile = stampbase + "." + task + ".sigbasedata" + "." + self.basehash[tid]
bb.utils.mkdirhier(os.path.dirname(sigfile))
@@ -263,7 +278,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
data['basewhitelist'] = self.basewhitelist
data['taskwhitelist'] = self.taskwhitelist
data['taskdeps'] = self.taskdeps[fn][task]
data['basehash'] = self.basehash[k]
data['basehash'] = self.basehash[tid]
data['gendeps'] = {}
data['varvals'] = {}
data['varvals'][task] = self.lookupcache[fn][task]
@@ -273,30 +288,30 @@ class SignatureGeneratorBasic(SignatureGenerator):
data['gendeps'][dep] = self.gendeps[fn][dep]
data['varvals'][dep] = self.lookupcache[fn][dep]
if runtime and k in self.taskhash:
data['runtaskdeps'] = self.runtaskdeps[k]
data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[k]]
if runtime and tid in self.taskhash:
data['runtaskdeps'] = self.runtaskdeps[tid]
data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[tid]]
data['runtaskhashes'] = {}
for dep in data['runtaskdeps']:
data['runtaskhashes'][dep] = self.get_unihash(dep)
data['taskhash'] = self.taskhash[k]
data['taskhash'] = self.taskhash[tid]
taint = self.read_taint(fn, task, referencestamp)
if taint:
data['taint'] = taint
if runtime and k in self.taints:
if 'nostamp:' in self.taints[k]:
data['taint'] = self.taints[k]
if runtime and tid in self.taints:
if 'nostamp:' in self.taints[tid]:
data['taint'] = self.taints[tid]
computed_basehash = calc_basehash(data)
if computed_basehash != self.basehash[k]:
bb.error("Basehash mismatch %s versus %s for %s" % (computed_basehash, self.basehash[k], k))
if runtime and k in self.taskhash:
if computed_basehash != self.basehash[tid]:
bb.error("Basehash mismatch %s versus %s for %s" % (computed_basehash, self.basehash[tid], tid))
if runtime and tid in self.taskhash:
computed_taskhash = calc_taskhash(data)
if computed_taskhash != self.taskhash[k]:
bb.error("Taskhash mismatch %s versus %s for %s" % (computed_taskhash, self.taskhash[k], k))
sigfile = sigfile.replace(self.taskhash[k], computed_taskhash)
if computed_taskhash != self.taskhash[tid]:
bb.error("Taskhash mismatch %s versus %s for %s" % (computed_taskhash, self.taskhash[tid], tid))
sigfile = sigfile.replace(self.taskhash[tid], computed_taskhash)
fd, tmpfile = tempfile.mkstemp(dir=os.path.dirname(sigfile), prefix="sigtask.")
try:
@@ -316,34 +331,33 @@ class SignatureGeneratorBasic(SignatureGenerator):
if fn in self.taskdeps:
for task in self.taskdeps[fn]:
tid = fn + ":" + task
(mc, _, _) = bb.runqueue.split_tid(tid)
k = fn + "." + task
if k not in self.taskhash:
mc = bb.runqueue.mc_from_tid(tid)
if tid not in self.taskhash:
continue
if dataCaches[mc].basetaskhash[k] != self.basehash[k]:
bb.error("Bitbake's cached basehash does not match the one we just generated (%s)!" % k)
bb.error("The mismatched hashes were %s and %s" % (dataCaches[mc].basetaskhash[k], self.basehash[k]))
if dataCaches[mc].basetaskhash[tid] != self.basehash[tid]:
bb.error("Bitbake's cached basehash does not match the one we just generated (%s)!" % tid)
bb.error("The mismatched hashes were %s and %s" % (dataCaches[mc].basetaskhash[tid], self.basehash[tid]))
self.dump_sigtask(fn, task, dataCaches[mc].stamp[fn], True)
class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
name = "basichash"
def get_stampfile_hash(self, task):
if task in self.taskhash:
return self.taskhash[task]
def get_stampfile_hash(self, tid):
if tid in self.taskhash:
return self.taskhash[tid]
# If task is not in basehash, then error
return self.basehash[task]
return self.basehash[tid]
def stampfile(self, stampbase, fn, taskname, extrainfo, clean=False):
if taskname != "do_setscene" and taskname.endswith("_setscene"):
k = fn + "." + taskname[:-9]
tid = fn + ":" + taskname[:-9]
else:
k = fn + "." + taskname
tid = fn + ":" + taskname
if clean:
h = "*"
else:
h = self.get_stampfile_hash(k)
h = self.get_stampfile_hash(tid)
return ("%s.%s.%s.%s" % (stampbase, taskname, h, extrainfo)).rstrip('.')
@@ -354,6 +368,168 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
bb.note("Tainting hash to force rebuild of task %s, %s" % (fn, task))
bb.build.write_taint(task, d, fn)
class SignatureGeneratorUniHashMixIn(object):
def get_taskdata(self):
return (self.server, self.method) + super().get_taskdata()
def set_taskdata(self, data):
self.server, self.method = data[:2]
super().set_taskdata(data[2:])
def client(self):
if getattr(self, '_client', None) is None:
self._client = hashserv.create_client(self.server)
return self._client
def __get_task_unihash_key(self, tid):
# TODO: The key only *needs* to be the taskhash, the tid is just
# convenient
return '%s:%s' % (tid, self.taskhash[tid])
def get_stampfile_hash(self, tid):
if tid in self.taskhash:
# If a unique hash is reported, use it as the stampfile hash. This
# ensures that if a task won't be re-run if the taskhash changes,
# but it would result in the same output hash
unihash = self.unitaskhashes.get(self.__get_task_unihash_key(tid), None)
if unihash is not None:
return unihash
return super().get_stampfile_hash(tid)
def set_unihash(self, tid, unihash):
self.unitaskhashes[self.__get_task_unihash_key(tid)] = unihash
def get_unihash(self, tid):
taskhash = self.taskhash[tid]
# If its not a setscene task we can return
if self.setscenetasks and tid not in self.setscenetasks:
return taskhash
key = self.__get_task_unihash_key(tid)
# TODO: This cache can grow unbounded. It probably only needs to keep
# for each task
unihash = self.unitaskhashes.get(key, None)
if unihash is not None:
return unihash
# In the absence of being able to discover a unique hash from the
# server, make it be equivalent to the taskhash. The unique "hash" only
# really needs to be a unique string (not even necessarily a hash), but
# making it match the taskhash has a few advantages:
#
# 1) All of the sstate code that assumes hashes can be the same
# 2) It provides maximal compatibility with builders that don't use
# an equivalency server
# 3) The value is easy for multiple independent builders to derive the
# same unique hash from the same input. This means that if the
# independent builders find the same taskhash, but it isn't reported
# to the server, there is a better chance that they will agree on
# the unique hash.
unihash = taskhash
try:
data = self.client().get_unihash(self.method, self.taskhash[tid])
if data:
unihash = data
# A unique hash equal to the taskhash is not very interesting,
# so it is reported it at debug level 2. If they differ, that
# is much more interesting, so it is reported at debug level 1
bb.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server))
else:
bb.debug(2, 'No reported unihash for %s:%s from %s' % (tid, taskhash, self.server))
except hashserv.HashConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
self.unitaskhashes[key] = unihash
return unihash
def report_unihash(self, path, task, d):
import importlib
taskhash = d.getVar('BB_TASKHASH')
unihash = d.getVar('BB_UNIHASH')
report_taskdata = d.getVar('SSTATE_HASHEQUIV_REPORT_TASKDATA') == '1'
tempdir = d.getVar('T')
fn = d.getVar('BB_FILENAME')
key = fn + ':do_' + task + ':' + taskhash
# Sanity checks
cache_unihash = self.unitaskhashes.get(key, None)
if cache_unihash is None:
bb.fatal('%s not in unihash cache. Please report this error' % key)
if cache_unihash != unihash:
bb.fatal("Cache unihash %s doesn't match BB_UNIHASH %s" % (cache_unihash, unihash))
sigfile = None
sigfile_name = "depsig.do_%s.%d" % (task, os.getpid())
sigfile_link = "depsig.do_%s" % task
try:
sigfile = open(os.path.join(tempdir, sigfile_name), 'w+b')
locs = {'path': path, 'sigfile': sigfile, 'task': task, 'd': d}
if "." in self.method:
(module, method) = self.method.rsplit('.', 1)
locs['method'] = getattr(importlib.import_module(module), method)
outhash = bb.utils.better_eval('method(path, sigfile, task, d)', locs)
else:
outhash = bb.utils.better_eval(self.method + '(path, sigfile, task, d)', locs)
try:
extra_data = {}
owner = d.getVar('SSTATE_HASHEQUIV_OWNER')
if owner:
extra_data['owner'] = owner
if report_taskdata:
sigfile.seek(0)
extra_data['PN'] = d.getVar('PN')
extra_data['PV'] = d.getVar('PV')
extra_data['PR'] = d.getVar('PR')
extra_data['task'] = task
extra_data['outhash_siginfo'] = sigfile.read().decode('utf-8')
data = self.client().report_unihash(taskhash, self.method, outhash, unihash, extra_data)
new_unihash = data['unihash']
if new_unihash != unihash:
bb.debug(1, 'Task %s unihash changed %s -> %s by server %s' % (taskhash, unihash, new_unihash, self.server))
bb.event.fire(bb.runqueue.taskUniHashUpdate(fn + ':do_' + task, new_unihash), d)
else:
bb.debug(1, 'Reported task %s as unihash %s to %s' % (taskhash, unihash, self.server))
except hashserv.HashConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
finally:
if sigfile:
sigfile.close()
sigfile_link_path = os.path.join(tempdir, sigfile_link)
bb.utils.remove(sigfile_link_path)
try:
os.symlink(sigfile_name, sigfile_link_path)
except OSError:
pass
#
# Dummy class used for bitbake-selftest
#
class SignatureGeneratorTestEquivHash(SignatureGeneratorUniHashMixIn, SignatureGeneratorBasicHash):
name = "TestEquivHash"
def init_rundepcheck(self, data):
super().init_rundepcheck(data)
self.server = data.getVar('BB_HASHSERVE')
self.method = "sstate_output_hash"
def dump_this_task(outfile, d):
import bb.parse
fn = d.getVar("BB_FILENAME")

View File

@@ -466,7 +466,7 @@ class TaskHash(unittest.TestCase):
tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d)
taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, set(), "somefile")
bb.warn(str(lookupcache))
return basehash["somefile." + taskname]
return basehash["somefile:" + taskname]
d = bb.data.init()
d.setVar("__BBTASKS", ["mytask"])

View File

@@ -1200,8 +1200,8 @@ class FetchLatestVersionTest(FetcherTest):
# packages with valid UPSTREAM_CHECK_URI and UPSTREAM_CHECK_REGEX
("cups", "http://www.cups.org/software/1.7.2/cups-1.7.2-source.tar.bz2", "https://github.com/apple/cups/releases", "(?P<name>cups\-)(?P<pver>((\d+[\.\-_]*)+))\-source\.tar\.gz")
: "2.0.0",
("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html", "http://download.oracle.com/otn/berkeley-db/(?P<name>db-)(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz")
: "6.1.19",
("db", "http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz", "http://ftp.debian.org/debian/pool/main/d/db5.3/", "(?P<name>db5\.3_)(?P<pver>\d+(\.\d+)+).+\.orig\.tar\.xz")
: "5.3.10",
}
@skipIfNoNetwork()

View File

@@ -5,18 +5,30 @@ def stamptask(d):
import time
thistask = d.expand("${PN}:${BB_CURRENTTASK}")
with open(d.expand("${TOPDIR}/%s.run") % thistask, "a+") as f:
f.write("\n")
stampname = d.expand("${TOPDIR}/%s.run" % thistask)
with open(stampname, "a+") as f:
f.write(d.getVar("BB_UNIHASH") + "\n")
if d.getVar("BB_CURRENT_MC") != "default":
thistask = d.expand("${BB_CURRENT_MC}:${PN}:${BB_CURRENTTASK}")
if thistask in d.getVar("SLOWTASKS").split():
bb.note("Slowing task %s" % thistask)
time.sleep(0.5)
if d.getVar("BB_HASHSERVE"):
task = d.getVar("BB_CURRENTTASK")
if task in ['package', 'package_qa', 'packagedata', 'package_write_ipk', 'package_write_rpm', 'populate_lic', 'populate_sysroot']:
bb.parse.siggen.report_unihash(os.getcwd(), d.getVar("BB_CURRENTTASK"), d)
with open(d.expand("${TOPDIR}/task.log"), "a+") as f:
f.write(thistask + "\n")
def sstate_output_hash(path, sigfile, task, d):
import hashlib
h = hashlib.sha256()
h.update(d.expand("${PN}:${BB_CURRENTTASK}").encode('utf-8'))
return h.hexdigest()
python do_fetch() {
# fetch
stamptask(d)
@@ -216,27 +228,35 @@ def setscene_depvalid(task, taskdependees, notneeded, d, log=None):
BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *, sq_unihash=None):
def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
ret = []
missed = []
found = set()
missed = set()
valid = d.getVar("SSTATEVALID").split()
for task in range(len(sq_fn)):
n = os.path.basename(sq_fn[task]).rsplit(".", 1)[0] + ":" + sq_task[task]
for tid in sorted(sq_data['hash']):
n = os.path.basename(bb.runqueue.fn_from_tid(tid)).split(".")[0] + ":do_" + bb.runqueue.taskname_from_tid(tid)[3:]
print(n)
stampfile = d.expand("${TOPDIR}/%s.run" % n.replace("do_", ""))
if n in valid:
bb.note("SState: Found valid sstate for %s" % n)
ret.append(task)
elif os.path.exists(d.expand("${TOPDIR}/%s.run" % n.replace("do_", ""))):
bb.note("SState: Found valid sstate for %s (already run)" % n)
ret.append(task)
found.add(tid)
elif n + ":" + sq_data['hash'][tid] in valid:
bb.note("SState: Found valid sstate for %s" % n)
found.add(tid)
elif os.path.exists(stampfile):
with open(stampfile, "r") as f:
hash = f.readline().strip()
if hash == sq_data['hash'][tid]:
bb.note("SState: Found valid sstate for %s (already run)" % n)
found.add(tid)
else:
bb.note("SState: sstate hash didn't match previous run for %s (%s vs %s)" % (n, sq_data['hash'][tid], hash))
missed.add(tid)
else:
missed.append(task)
bb.note("SState: Found no valid sstate for %s" % n)
missed.add(tid)
bb.note("SState: Found no valid sstate for %s (%s)" % (n, sq_data['hash'][tid]))
if hasattr(bb.parse.siggen, "checkhashes"):
bb.parse.siggen.checkhashes(missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d)
return ret
return found

View File

@@ -11,6 +11,6 @@ STAMP = "${TMPDIR}/stamps/${PN}"
T = "${TMPDIR}/workdir/${PN}/temp"
BB_NUMBER_THREADS = "4"
BB_HASHBASE_WHITELIST = "BB_CURRENT_MC"
BB_HASHBASE_WHITELIST = "BB_CURRENT_MC BB_HASHSERVE TMPDIR TOPDIR SLOWTASKS SSTATEVALID FILE"
include conf/multiconfig/${BB_CURRENT_MC}.conf

View File

@@ -0,0 +1 @@
DEPENDS = "b1"

View File

@@ -11,6 +11,7 @@ import bb
import os
import tempfile
import subprocess
import sys
#
# TODO:
@@ -25,7 +26,7 @@ class RunQueueTests(unittest.TestCase):
a1_sstatevalid = "a1:do_package a1:do_package_qa a1:do_packagedata a1:do_package_write_ipk a1:do_package_write_rpm a1:do_populate_lic a1:do_populate_sysroot"
b1_sstatevalid = "b1:do_package b1:do_package_qa b1:do_packagedata b1:do_package_write_ipk b1:do_package_write_rpm b1:do_populate_lic b1:do_populate_sysroot"
def run_bitbakecmd(self, cmd, builddir, sstatevalid="", slowtasks="", extraenv=None):
def run_bitbakecmd(self, cmd, builddir, sstatevalid="", slowtasks="", extraenv=None, cleanup=False):
env = os.environ.copy()
env["BBPATH"] = os.path.realpath(os.path.join(os.path.dirname(__file__), "runqueue-tests"))
env["BB_ENV_EXTRAWHITE"] = "SSTATEVALID SLOWTASKS"
@@ -37,11 +38,16 @@ class RunQueueTests(unittest.TestCase):
env["BB_ENV_EXTRAWHITE"] = env["BB_ENV_EXTRAWHITE"] + " " + k
try:
output = subprocess.check_output(cmd, env=env, stderr=subprocess.STDOUT,universal_newlines=True, cwd=builddir)
print(output)
except subprocess.CalledProcessError as e:
self.fail("Command %s failed with %s" % (cmd, e.output))
tasks = []
with open(builddir + "/task.log", "r") as f:
tasks = [line.rstrip() for line in f]
tasklog = builddir + "/task.log"
if os.path.exists(tasklog):
with open(tasklog, "r") as f:
tasks = [line.rstrip() for line in f]
if cleanup:
os.remove(tasklog)
return tasks
def test_no_setscenevalid(self):
@@ -226,3 +232,172 @@ class RunQueueTests(unittest.TestCase):
expected.remove(x)
self.assertEqual(set(tasks), set(expected))
@unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required')
def test_hashserv_single(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
"BB_HASHSERVE" : "auto",
"BB_SIGNATURE_HANDLER" : "TestEquivHash"
}
cmd = ["bitbake", "a1", "b1"]
setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene',
'populate_sysroot_setscene', 'package_qa_setscene']
sstatevalid = ""
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
cmd = ["bitbake", "a1", "-c", "install", "-f"]
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:install']
self.assertEqual(set(tasks), set(expected))
cmd = ["bitbake", "a1", "b1"]
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:populate_sysroot', 'a1:package', 'a1:package_write_rpm_setscene', 'a1:packagedata_setscene',
'a1:package_write_ipk_setscene', 'a1:package_qa_setscene']
self.assertEqual(set(tasks), set(expected))
@unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required')
def test_hashserv_double(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
"BB_HASHSERVE" : "auto",
"BB_SIGNATURE_HANDLER" : "TestEquivHash"
}
cmd = ["bitbake", "a1", "b1", "e1"]
setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene',
'populate_sysroot_setscene', 'package_qa_setscene']
sstatevalid = ""
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + ['e1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
cmd = ["bitbake", "a1", "b1", "-c", "install", "-fn"]
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
cmd = ["bitbake", "e1"]
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:package', 'a1:install', 'b1:package', 'b1:install', 'a1:populate_sysroot', 'b1:populate_sysroot',
'a1:package_write_ipk_setscene', 'b1:packagedata_setscene', 'b1:package_write_rpm_setscene',
'a1:package_write_rpm_setscene', 'b1:package_write_ipk_setscene', 'a1:packagedata_setscene']
self.assertEqual(set(tasks), set(expected))
@unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required')
def test_hashserv_multiple_setscene(self):
# Runs e1:do_package_setscene twice
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
"BB_HASHSERVE" : "auto",
"BB_SIGNATURE_HANDLER" : "TestEquivHash"
}
cmd = ["bitbake", "a1", "b1", "e1"]
setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene',
'populate_sysroot_setscene', 'package_qa_setscene']
sstatevalid = ""
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + ['e1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
cmd = ["bitbake", "a1", "b1", "-c", "install", "-fn"]
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
cmd = ["bitbake", "e1"]
sstatevalid = "e1:do_package"
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True, slowtasks="a1:populate_sysroot b1:populate_sysroot")
expected = ['a1:package', 'a1:install', 'b1:package', 'b1:install', 'a1:populate_sysroot', 'b1:populate_sysroot',
'a1:package_write_ipk_setscene', 'b1:packagedata_setscene', 'b1:package_write_rpm_setscene',
'a1:package_write_rpm_setscene', 'b1:package_write_ipk_setscene', 'a1:packagedata_setscene',
'e1:package_setscene']
self.assertEqual(set(tasks), set(expected))
for i in expected:
if i in ["e1:package_setscene"]:
self.assertEqual(tasks.count(i), 4, "%s not in task list four times" % i)
else:
self.assertEqual(tasks.count(i), 1, "%s not in task list once" % i)
@unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required')
def test_hashserv_partial_match(self):
# e1:do_package matches initial built but not second hash value
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
"BB_HASHSERVE" : "auto",
"BB_SIGNATURE_HANDLER" : "TestEquivHash"
}
cmd = ["bitbake", "a1", "b1"]
setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene',
'populate_sysroot_setscene', 'package_qa_setscene']
sstatevalid = ""
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
with open(tempdir + "/stamps/a1.do_install.taint", "w") as f:
f.write("d460a29e-903f-4b76-a96b-3bcc22a65994")
with open(tempdir + "/stamps/b1.do_install.taint", "w") as f:
f.write("ed36d46a-2977-458a-b3de-eef885bc1817")
cmd = ["bitbake", "e1"]
sstatevalid = "e1:do_package:685e69a026b2f029483fdefe6a11e1e06641dd2a0f6f86e27b9b550f8f21229d"
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:package', 'a1:install', 'b1:package', 'b1:install', 'a1:populate_sysroot', 'b1:populate_sysroot',
'a1:package_write_ipk_setscene', 'b1:packagedata_setscene', 'b1:package_write_rpm_setscene',
'a1:package_write_rpm_setscene', 'b1:package_write_ipk_setscene', 'a1:packagedata_setscene',
'e1:package_setscene'] + ['e1:' + x for x in self.alltasks]
expected.remove('e1:package')
self.assertEqual(set(tasks), set(expected))
@unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required')
def test_hashserv_partial_match2(self):
# e1:do_package + e1:do_populate_sysroot matches initial built but not second hash value
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
"BB_HASHSERVE" : "auto",
"BB_SIGNATURE_HANDLER" : "TestEquivHash"
}
cmd = ["bitbake", "a1", "b1"]
setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene',
'populate_sysroot_setscene', 'package_qa_setscene']
sstatevalid = ""
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
with open(tempdir + "/stamps/a1.do_install.taint", "w") as f:
f.write("d460a29e-903f-4b76-a96b-3bcc22a65994")
with open(tempdir + "/stamps/b1.do_install.taint", "w") as f:
f.write("ed36d46a-2977-458a-b3de-eef885bc1817")
cmd = ["bitbake", "e1"]
sstatevalid = "e1:do_package:685e69a026b2f029483fdefe6a11e1e06641dd2a0f6f86e27b9b550f8f21229d e1:do_populate_sysroot:ef7dc0e2dd55d0534e75cba50731ff42f949818b6f29a65d72bc05856e56711d"
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:package', 'a1:install', 'b1:package', 'b1:install', 'a1:populate_sysroot', 'b1:populate_sysroot',
'a1:package_write_ipk_setscene', 'b1:packagedata_setscene', 'b1:package_write_rpm_setscene',
'a1:package_write_rpm_setscene', 'b1:package_write_ipk_setscene', 'a1:packagedata_setscene',
'e1:package_setscene', 'e1:populate_sysroot_setscene', 'e1:build', 'e1:package_qa', 'e1:package_write_rpm', 'e1:package_write_ipk', 'e1:packagedata']
self.assertEqual(set(tasks), set(expected))
@unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required')
def test_hashserv_partial_match3(self):
# e1:do_package is valid for a1 but not after b1
# In former buggy code, this triggered e1:do_fetch, then e1:do_populate_sysroot to run
# with none of the intermediate tasks which is a serious bug
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
"BB_HASHSERVE" : "auto",
"BB_SIGNATURE_HANDLER" : "TestEquivHash"
}
cmd = ["bitbake", "a1", "b1"]
setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene',
'populate_sysroot_setscene', 'package_qa_setscene']
sstatevalid = ""
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True)
expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
with open(tempdir + "/stamps/a1.do_install.taint", "w") as f:
f.write("d460a29e-903f-4b76-a96b-3bcc22a65994")
with open(tempdir + "/stamps/b1.do_install.taint", "w") as f:
f.write("ed36d46a-2977-458a-b3de-eef885bc1817")
cmd = ["bitbake", "e1", "-DD"]
sstatevalid = "e1:do_package:af056eae12a733a6a8c4f4da8c6757e588e13565852c94e2aad4d953a3989c13 e1:do_package:a3677703db82b22d28d57c1820a47851dd780104580863f5bd32e66e003a779d"
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv, cleanup=True, slowtasks="e1:fetch b1:install")
expected = ['a1:package', 'a1:install', 'b1:package', 'b1:install', 'a1:populate_sysroot', 'b1:populate_sysroot',
'a1:package_write_ipk_setscene', 'b1:packagedata_setscene', 'b1:package_write_rpm_setscene',
'a1:package_write_rpm_setscene', 'b1:package_write_ipk_setscene', 'a1:packagedata_setscene',
'e1:package_setscene'] + ['e1:' + x for x in self.alltasks]
expected.remove('e1:package')
self.assertEqual(set(tasks), set(expected))

View File

@@ -689,17 +689,27 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if params.observe_only:
print("\nKeyboard Interrupt, exiting observer...")
main.shutdown = 2
if not params.observe_only and main.shutdown == 1:
def state_force_shutdown():
print("\nSecond Keyboard Interrupt, stopping...\n")
_, error = server.runCommand(["stateForceShutdown"])
if error:
logger.error("Unable to cleanly stop: %s" % error)
if not params.observe_only and main.shutdown == 1:
state_force_shutdown()
if not params.observe_only and main.shutdown == 0:
print("\nKeyboard Interrupt, closing down...\n")
interrupted = True
_, error = server.runCommand(["stateShutdown"])
if error:
logger.error("Unable to cleanly shutdown: %s" % error)
# Capture the second KeyboardInterrupt during stateShutdown is running
try:
_, error = server.runCommand(["stateShutdown"])
if error:
logger.error("Unable to cleanly shutdown: %s" % error)
except KeyboardInterrupt:
state_force_shutdown()
main.shutdown = main.shutdown + 1
pass
except Exception as e:

View File

@@ -394,7 +394,7 @@ def better_exec(code, context, text = None, realfile = "<code>", pythonexception
code = better_compile(code, realfile, realfile)
try:
exec(code, get_context(), context)
except (bb.BBHandledException, bb.parse.SkipRecipe, bb.build.FuncFailed, bb.data_smart.ExpansionError):
except (bb.BBHandledException, bb.parse.SkipRecipe, bb.data_smart.ExpansionError):
# Error already shown so passthrough, no need for traceback
raise
except Exception as e:
@@ -677,7 +677,7 @@ def _check_unsafe_delete_path(path):
return True
return False
def remove(path, recurse=False):
def remove(path, recurse=False, ionice=False):
"""Equivalent to rm -f or rm -rf"""
if not path:
return
@@ -686,7 +686,10 @@ def remove(path, recurse=False):
if _check_unsafe_delete_path(path):
raise Exception('bb.utils.remove: called with dangerous path "%s" and recurse=True, refusing to delete!' % path)
# shutil.rmtree(name) would be ideal but its too slow
subprocess.check_call(['rm', '-rf'] + glob.glob(path))
cmd = []
if ionice:
cmd = ['ionice', '-c', '3']
subprocess.check_call(cmd + ['rm', '-rf'] + glob.glob(path))
return
for name in glob.glob(path):
try:
@@ -695,12 +698,12 @@ def remove(path, recurse=False):
if exc.errno != errno.ENOENT:
raise
def prunedir(topdir):
def prunedir(topdir, ionice=False):
# Delete everything reachable from the directory named in 'topdir'.
# CAUTION: This is dangerous!
if _check_unsafe_delete_path(topdir):
raise Exception('bb.utils.prunedir: called with dangerous path "%s", refusing to delete!' % topdir)
remove(topdir, recurse=True)
remove(topdir, recurse=True, ionice=ionice)
#
# Could also use return re.compile("(%s)" % "|".join(map(re.escape, suffixes))).sub(lambda mo: "", var)
@@ -780,7 +783,7 @@ def movefile(src, dest, newmtime = None, sstat = None):
os.rename(src, destpath)
renamefailed = 0
except Exception as e:
if e[0] != errno.EXDEV:
if e.errno != errno.EXDEV:
# Some random error.
print("movefile: Failed to move", src, "to", dest, e)
return None

View File

@@ -46,7 +46,7 @@ layer, with the preferred version first. Note that skipped recipes that
are overlayed will also be listed, with a " (skipped)" suffix.
"""
items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, True, None)
items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, False, True, None, False, None)
# Check for overlayed .bbclass files
classes = collections.defaultdict(list)
@@ -112,9 +112,9 @@ skipped recipes will also be listed, with a " (skipped)" suffix.
title = 'Matching recipes:'
else:
title = 'Available recipes:'
self.list_recipes(title, args.pnspec, False, False, args.filenames, args.multiple, inheritlist)
self.list_recipes(title, args.pnspec, False, False, args.filenames, args.recipes_only, args.multiple, args.layer, args.bare, inheritlist)
def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_multi_provider_only, inherits):
def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_recipes_only, show_multi_provider_only, selected_layer, bare, inherits):
if inherits:
bbpath = str(self.tinfoil.config_data.getVar('BBPATH'))
for classname in inherits:
@@ -144,24 +144,30 @@ skipped recipes will also be listed, with a " (skipped)" suffix.
preferred_versions[p] = (ver, fn)
def print_item(f, pn, ver, layer, ispref):
if f in skiplist:
skipped = ' (skipped)'
else:
skipped = ''
if show_filenames:
if ispref:
logger.plain("%s%s", f, skipped)
if not selected_layer or layer == selected_layer:
if not bare and f in skiplist:
skipped = ' (skipped)'
else:
logger.plain(" %s%s", f, skipped)
else:
if ispref:
logger.plain("%s:", pn)
logger.plain(" %s %s%s", layer.ljust(20), ver, skipped)
skipped = ''
if show_filenames:
if ispref:
logger.plain("%s%s", f, skipped)
else:
logger.plain(" %s%s", f, skipped)
elif show_recipes_only:
if pn not in show_unique_pn:
show_unique_pn.append(pn)
logger.plain("%s%s", pn, skipped)
else:
if ispref:
logger.plain("%s:", pn)
logger.plain(" %s %s%s", layer.ljust(20), ver, skipped)
global_inherit = (self.tinfoil.config_data.getVar('INHERIT') or "").split()
cls_re = re.compile('classes/')
preffiles = []
show_unique_pn = []
items_listed = False
for p in sorted(pkg_pn):
if pnspec:
@@ -493,8 +499,11 @@ NOTE: .bbappend files can impact the dependencies.
parser_show_recipes = self.add_command(sp, 'show-recipes', self.do_show_recipes)
parser_show_recipes.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true')
parser_show_recipes.add_argument('-r', '--recipes-only', help='instead of the default formatting, list recipes only', action='store_true')
parser_show_recipes.add_argument('-m', '--multiple', help='only list where multiple recipes (in the same layer or different layers) exist for the same recipe name', action='store_true')
parser_show_recipes.add_argument('-i', '--inherits', help='only list recipes that inherit the named class(es) - separate multiple classes using , (without spaces)', metavar='CLASS', default='')
parser_show_recipes.add_argument('-l', '--layer', help='only list recipes from the selected layer', default='')
parser_show_recipes.add_argument('-b', '--bare', help='output just names without the "(skipped)" marker', action='store_true')
parser_show_recipes.add_argument('pnspec', nargs='*', help='optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)')
parser_show_appends = self.add_command(sp, 'show-appends', self.do_show_appends)

View File

@@ -1,126 +1,25 @@
# Copyright (C) 2018 Garmin Ltd.
# Copyright (C) 2018-2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
from http.server import BaseHTTPRequestHandler, HTTPServer
import contextlib
import urllib.parse
from contextlib import closing
import re
import sqlite3
import json
import traceback
import logging
from datetime import datetime
logger = logging.getLogger('hashserv')
UNIX_PREFIX = "unix://"
class HashEquivalenceServer(BaseHTTPRequestHandler):
def log_message(self, f, *args):
logger.debug(f, *args)
ADDR_TYPE_UNIX = 0
ADDR_TYPE_TCP = 1
def do_GET(self):
try:
p = urllib.parse.urlparse(self.path)
if p.path != self.prefix + '/v1/equivalent':
self.send_error(404)
return
query = urllib.parse.parse_qs(p.query, strict_parsing=True)
method = query['method'][0]
taskhash = query['taskhash'][0]
d = None
with contextlib.closing(self.db.cursor()) as cursor:
cursor.execute('SELECT taskhash, method, unihash FROM tasks_v1 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1',
{'method': method, 'taskhash': taskhash})
row = cursor.fetchone()
if row is not None:
logger.debug('Found equivalent task %s', row['taskhash'])
d = {k: row[k] for k in ('taskhash', 'method', 'unihash')}
self.send_response(200)
self.send_header('Content-Type', 'application/json; charset=utf-8')
self.end_headers()
self.wfile.write(json.dumps(d).encode('utf-8'))
except:
logger.exception('Error in GET')
self.send_error(400, explain=traceback.format_exc())
return
def do_POST(self):
try:
p = urllib.parse.urlparse(self.path)
if p.path != self.prefix + '/v1/equivalent':
self.send_error(404)
return
length = int(self.headers['content-length'])
data = json.loads(self.rfile.read(length).decode('utf-8'))
with contextlib.closing(self.db.cursor()) as cursor:
cursor.execute('''
SELECT taskhash, method, unihash FROM tasks_v1 WHERE method=:method AND outhash=:outhash
ORDER BY CASE WHEN taskhash=:taskhash THEN 1 ELSE 2 END,
created ASC
LIMIT 1
''', {k: data[k] for k in ('method', 'outhash', 'taskhash')})
row = cursor.fetchone()
if row is None or row['taskhash'] != data['taskhash']:
unihash = data['unihash']
if row is not None:
unihash = row['unihash']
insert_data = {
'method': data['method'],
'outhash': data['outhash'],
'taskhash': data['taskhash'],
'unihash': unihash,
'created': datetime.now()
}
for k in ('owner', 'PN', 'PV', 'PR', 'task', 'outhash_siginfo'):
if k in data:
insert_data[k] = data[k]
cursor.execute('''INSERT INTO tasks_v1 (%s) VALUES (%s)''' % (
', '.join(sorted(insert_data.keys())),
', '.join(':' + k for k in sorted(insert_data.keys()))),
insert_data)
logger.info('Adding taskhash %s with unihash %s', data['taskhash'], unihash)
cursor.execute('SELECT taskhash, method, unihash FROM tasks_v1 WHERE id=:id', {'id': cursor.lastrowid})
row = cursor.fetchone()
self.db.commit()
d = {k: row[k] for k in ('taskhash', 'method', 'unihash')}
self.send_response(200)
self.send_header('Content-Type', 'application/json; charset=utf-8')
self.end_headers()
self.wfile.write(json.dumps(d).encode('utf-8'))
except:
logger.exception('Error in POST')
self.send_error(400, explain=traceback.format_exc())
return
def create_server(addr, db, prefix=''):
class Handler(HashEquivalenceServer):
pass
Handler.prefix = prefix
Handler.db = db
def setup_database(database, sync=True):
db = sqlite3.connect(database)
db.row_factory = sqlite3.Row
with contextlib.closing(db.cursor()) as cursor:
with closing(db.cursor()) as cursor:
cursor.execute('''
CREATE TABLE IF NOT EXISTS tasks_v1 (
CREATE TABLE IF NOT EXISTS tasks_v2 (
id INTEGER PRIMARY KEY AUTOINCREMENT,
method TEXT NOT NULL,
outhash TEXT NOT NULL,
@@ -134,9 +33,61 @@ def create_server(addr, db, prefix=''):
PV TEXT,
PR TEXT,
task TEXT,
outhash_siginfo TEXT
outhash_siginfo TEXT,
UNIQUE(method, outhash, taskhash)
)
''')
cursor.execute('PRAGMA journal_mode = WAL')
cursor.execute('PRAGMA synchronous = %s' % ('NORMAL' if sync else 'OFF'))
logger.info('Starting server on %s', addr)
return HTTPServer(addr, Handler)
# Drop old indexes
cursor.execute('DROP INDEX IF EXISTS taskhash_lookup')
cursor.execute('DROP INDEX IF EXISTS outhash_lookup')
# Create new indexes
cursor.execute('CREATE INDEX IF NOT EXISTS taskhash_lookup_v2 ON tasks_v2 (method, taskhash, created)')
cursor.execute('CREATE INDEX IF NOT EXISTS outhash_lookup_v2 ON tasks_v2 (method, outhash)')
return db
def parse_address(addr):
if addr.startswith(UNIX_PREFIX):
return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX):],))
else:
m = re.match(r'\[(?P<host>[^\]]*)\]:(?P<port>\d+)$', addr)
if m is not None:
host = m.group('host')
port = m.group('port')
else:
host, port = addr.split(':')
return (ADDR_TYPE_TCP, (host, int(port)))
def create_server(addr, dbname, *, sync=True):
from . import server
db = setup_database(dbname, sync=sync)
s = server.Server(db)
(typ, a) = parse_address(addr)
if typ == ADDR_TYPE_UNIX:
s.start_unix_server(*a)
else:
s.start_tcp_server(*a)
return s
def create_client(addr):
from . import client
c = client.Client()
(typ, a) = parse_address(addr)
if typ == ADDR_TYPE_UNIX:
c.connect_unix(*a)
else:
c.connect_tcp(*a)
return c

View File

@@ -0,0 +1,156 @@
# Copyright (C) 2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
from contextlib import closing
import json
import logging
import socket
logger = logging.getLogger('hashserv.client')
class HashConnectionError(Exception):
pass
class Client(object):
MODE_NORMAL = 0
MODE_GET_STREAM = 1
def __init__(self):
self._socket = None
self.reader = None
self.writer = None
self.mode = self.MODE_NORMAL
def connect_tcp(self, address, port):
def connect_sock():
s = socket.create_connection((address, port))
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
return s
self._connect_sock = connect_sock
def connect_unix(self, path):
def connect_sock():
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# AF_UNIX has path length issues so chdir here to workaround
cwd = os.getcwd()
try:
os.chdir(os.path.dirname(path))
s.connect(os.path.basename(path))
finally:
os.chdir(cwd)
return s
self._connect_sock = connect_sock
def connect(self):
if self._socket is None:
self._socket = self._connect_sock()
self.reader = self._socket.makefile('r', encoding='utf-8')
self.writer = self._socket.makefile('w', encoding='utf-8')
self.writer.write('OEHASHEQUIV 1.0\n\n')
self.writer.flush()
# Restore mode if the socket is being re-created
cur_mode = self.mode
self.mode = self.MODE_NORMAL
self._set_mode(cur_mode)
return self._socket
def close(self):
if self._socket is not None:
self._socket.close()
self._socket = None
self.reader = None
self.writer = None
def _send_wrapper(self, proc):
count = 0
while True:
try:
self.connect()
return proc()
except (OSError, HashConnectionError, json.JSONDecodeError, UnicodeDecodeError) as e:
logger.warning('Error talking to server: %s' % e)
if count >= 3:
if not isinstance(e, HashConnectionError):
raise HashConnectionError(str(e))
raise e
self.close()
count += 1
def send_message(self, msg):
def proc():
self.writer.write('%s\n' % json.dumps(msg))
self.writer.flush()
l = self.reader.readline()
if not l:
raise HashConnectionError('Connection closed')
if not l.endswith('\n'):
raise HashConnectionError('Bad message %r' % message)
return json.loads(l)
return self._send_wrapper(proc)
def send_stream(self, msg):
def proc():
self.writer.write("%s\n" % msg)
self.writer.flush()
l = self.reader.readline()
if not l:
raise HashConnectionError('Connection closed')
return l.rstrip()
return self._send_wrapper(proc)
def _set_mode(self, new_mode):
if new_mode == self.MODE_NORMAL and self.mode == self.MODE_GET_STREAM:
r = self.send_stream('END')
if r != 'ok':
raise HashConnectionError('Bad response from server %r' % r)
elif new_mode == self.MODE_GET_STREAM and self.mode == self.MODE_NORMAL:
r = self.send_message({'get-stream': None})
if r != 'ok':
raise HashConnectionError('Bad response from server %r' % r)
elif new_mode != self.mode:
raise Exception('Undefined mode transition %r -> %r' % (self.mode, new_mode))
self.mode = new_mode
def get_unihash(self, method, taskhash):
self._set_mode(self.MODE_GET_STREAM)
r = self.send_stream('%s %s' % (method, taskhash))
if not r:
return None
return r
def report_unihash(self, taskhash, method, outhash, unihash, extra={}):
self._set_mode(self.MODE_NORMAL)
m = extra.copy()
m['taskhash'] = taskhash
m['method'] = method
m['outhash'] = outhash
m['unihash'] = unihash
return self.send_message({'report': m})
def get_stats(self):
self._set_mode(self.MODE_NORMAL)
return self.send_message({'get-stats': None})
def reset_stats(self):
self._set_mode(self.MODE_NORMAL)
return self.send_message({'reset-stats': None})

View File

@@ -0,0 +1,414 @@
# Copyright (C) 2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
from contextlib import closing
from datetime import datetime
import asyncio
import json
import logging
import math
import os
import signal
import socket
import time
logger = logging.getLogger('hashserv.server')
class Measurement(object):
def __init__(self, sample):
self.sample = sample
def start(self):
self.start_time = time.perf_counter()
def end(self):
self.sample.add(time.perf_counter() - self.start_time)
def __enter__(self):
self.start()
return self
def __exit__(self, *args, **kwargs):
self.end()
class Sample(object):
def __init__(self, stats):
self.stats = stats
self.num_samples = 0
self.elapsed = 0
def measure(self):
return Measurement(self)
def __enter__(self):
return self
def __exit__(self, *args, **kwargs):
self.end()
def add(self, elapsed):
self.num_samples += 1
self.elapsed += elapsed
def end(self):
if self.num_samples:
self.stats.add(self.elapsed)
self.num_samples = 0
self.elapsed = 0
class Stats(object):
def __init__(self):
self.reset()
def reset(self):
self.num = 0
self.total_time = 0
self.max_time = 0
self.m = 0
self.s = 0
self.current_elapsed = None
def add(self, elapsed):
self.num += 1
if self.num == 1:
self.m = elapsed
self.s = 0
else:
last_m = self.m
self.m = last_m + (elapsed - last_m) / self.num
self.s = self.s + (elapsed - last_m) * (elapsed - self.m)
self.total_time += elapsed
if self.max_time < elapsed:
self.max_time = elapsed
def start_sample(self):
return Sample(self)
@property
def average(self):
if self.num == 0:
return 0
return self.total_time / self.num
@property
def stdev(self):
if self.num <= 1:
return 0
return math.sqrt(self.s / (self.num - 1))
def todict(self):
return {k: getattr(self, k) for k in ('num', 'total_time', 'max_time', 'average', 'stdev')}
class ServerClient(object):
def __init__(self, reader, writer, db, request_stats):
self.reader = reader
self.writer = writer
self.db = db
self.request_stats = request_stats
async def process_requests(self):
try:
self.addr = self.writer.get_extra_info('peername')
logger.debug('Client %r connected' % (self.addr,))
# Read protocol and version
protocol = await self.reader.readline()
if protocol is None:
return
(proto_name, proto_version) = protocol.decode('utf-8').rstrip().split()
if proto_name != 'OEHASHEQUIV' or proto_version != '1.0':
return
# Read headers. Currently, no headers are implemented, so look for
# an empty line to signal the end of the headers
while True:
line = await self.reader.readline()
if line is None:
return
line = line.decode('utf-8').rstrip()
if not line:
break
# Handle messages
handlers = {
'get': self.handle_get,
'report': self.handle_report,
'get-stream': self.handle_get_stream,
'get-stats': self.handle_get_stats,
'reset-stats': self.handle_reset_stats,
}
while True:
d = await self.read_message()
if d is None:
break
for k in handlers.keys():
if k in d:
logger.debug('Handling %s' % k)
if 'stream' in k:
await handlers[k](d[k])
else:
with self.request_stats.start_sample() as self.request_sample, \
self.request_sample.measure():
await handlers[k](d[k])
break
else:
logger.warning("Unrecognized command %r" % d)
break
await self.writer.drain()
finally:
self.writer.close()
def write_message(self, msg):
self.writer.write(('%s\n' % json.dumps(msg)).encode('utf-8'))
async def read_message(self):
l = await self.reader.readline()
if not l:
return None
try:
message = l.decode('utf-8')
if not message.endswith('\n'):
return None
return json.loads(message)
except (json.JSONDecodeError, UnicodeDecodeError) as e:
logger.error('Bad message from client: %r' % message)
raise e
async def handle_get(self, request):
method = request['method']
taskhash = request['taskhash']
row = self.query_equivalent(method, taskhash)
if row is not None:
logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash']))
d = {k: row[k] for k in ('taskhash', 'method', 'unihash')}
self.write_message(d)
else:
self.write_message(None)
async def handle_get_stream(self, request):
self.write_message('ok')
while True:
l = await self.reader.readline()
if not l:
return
try:
# This inner loop is very sensitive and must be as fast as
# possible (which is why the request sample is handled manually
# instead of using 'with', and also why logging statements are
# commented out.
self.request_sample = self.request_stats.start_sample()
request_measure = self.request_sample.measure()
request_measure.start()
l = l.decode('utf-8').rstrip()
if l == 'END':
self.writer.write('ok\n'.encode('utf-8'))
return
(method, taskhash) = l.split()
#logger.debug('Looking up %s %s' % (method, taskhash))
row = self.query_equivalent(method, taskhash)
if row is not None:
msg = ('%s\n' % row['unihash']).encode('utf-8')
#logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash']))
else:
msg = '\n'.encode('utf-8')
self.writer.write(msg)
finally:
request_measure.end()
self.request_sample.end()
await self.writer.drain()
async def handle_report(self, data):
with closing(self.db.cursor()) as cursor:
cursor.execute('''
-- Find tasks with a matching outhash (that is, tasks that
-- are equivalent)
SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND outhash=:outhash
-- If there is an exact match on the taskhash, return it.
-- Otherwise return the oldest matching outhash of any
-- taskhash
ORDER BY CASE WHEN taskhash=:taskhash THEN 1 ELSE 2 END,
created ASC
-- Only return one row
LIMIT 1
''', {k: data[k] for k in ('method', 'outhash', 'taskhash')})
row = cursor.fetchone()
# If no matching outhash was found, or one *was* found but it
# wasn't an exact match on the taskhash, a new entry for this
# taskhash should be added
if row is None or row['taskhash'] != data['taskhash']:
# If a row matching the outhash was found, the unihash for
# the new taskhash should be the same as that one.
# Otherwise the caller provided unihash is used.
unihash = data['unihash']
if row is not None:
unihash = row['unihash']
insert_data = {
'method': data['method'],
'outhash': data['outhash'],
'taskhash': data['taskhash'],
'unihash': unihash,
'created': datetime.now()
}
for k in ('owner', 'PN', 'PV', 'PR', 'task', 'outhash_siginfo'):
if k in data:
insert_data[k] = data[k]
cursor.execute('''INSERT INTO tasks_v2 (%s) VALUES (%s)''' % (
', '.join(sorted(insert_data.keys())),
', '.join(':' + k for k in sorted(insert_data.keys()))),
insert_data)
self.db.commit()
logger.info('Adding taskhash %s with unihash %s',
data['taskhash'], unihash)
d = {
'taskhash': data['taskhash'],
'method': data['method'],
'unihash': unihash
}
else:
d = {k: row[k] for k in ('taskhash', 'method', 'unihash')}
self.write_message(d)
async def handle_get_stats(self, request):
d = {
'requests': self.request_stats.todict(),
}
self.write_message(d)
async def handle_reset_stats(self, request):
d = {
'requests': self.request_stats.todict(),
}
self.request_stats.reset()
self.write_message(d)
def query_equivalent(self, method, taskhash):
# This is part of the inner loop and must be as fast as possible
try:
cursor = self.db.cursor()
cursor.execute('SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1',
{'method': method, 'taskhash': taskhash})
return cursor.fetchone()
except:
cursor.close()
class Server(object):
def __init__(self, db, loop=None):
self.request_stats = Stats()
self.db = db
if loop is None:
self.loop = asyncio.new_event_loop()
self.close_loop = True
else:
self.loop = loop
self.close_loop = False
self._cleanup_socket = None
def start_tcp_server(self, host, port):
self.server = self.loop.run_until_complete(
asyncio.start_server(self.handle_client, host, port, loop=self.loop)
)
for s in self.server.sockets:
logger.info('Listening on %r' % (s.getsockname(),))
# Newer python does this automatically. Do it manually here for
# maximum compatibility
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
name = self.server.sockets[0].getsockname()
if self.server.sockets[0].family == socket.AF_INET6:
self.address = "[%s]:%d" % (name[0], name[1])
else:
self.address = "%s:%d" % (name[0], name[1])
def start_unix_server(self, path):
def cleanup():
os.unlink(path)
cwd = os.getcwd()
try:
# Work around path length limits in AF_UNIX
os.chdir(os.path.dirname(path))
self.server = self.loop.run_until_complete(
asyncio.start_unix_server(self.handle_client, os.path.basename(path), loop=self.loop)
)
finally:
os.chdir(cwd)
logger.info('Listening on %r' % path)
self._cleanup_socket = cleanup
self.address = "unix://%s" % os.path.abspath(path)
async def handle_client(self, reader, writer):
# writer.transport.set_write_buffer_limits(0)
try:
client = ServerClient(reader, writer, self.db, self.request_stats)
await client.process_requests()
except Exception as e:
import traceback
logger.error('Error from client: %s' % str(e), exc_info=True)
traceback.print_exc()
writer.close()
logger.info('Client disconnected')
def serve_forever(self):
def signal_handler():
self.loop.stop()
self.loop.add_signal_handler(signal.SIGTERM, signal_handler)
try:
self.loop.run_forever()
except KeyboardInterrupt:
pass
self.server.close()
self.loop.run_until_complete(self.server.wait_closed())
logger.info('Server shutting down')
if self.close_loop:
self.loop.close()
if self._cleanup_socket is not None:
self._cleanup_socket()

View File

@@ -1,48 +1,49 @@
#! /usr/bin/env python3
#
# Copyright (C) 2018 Garmin Ltd.
# Copyright (C) 2018-2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import unittest
import threading
import sqlite3
from . import create_server, create_client
import hashlib
import urllib.request
import json
from . import create_server
import logging
import multiprocessing
import sys
import tempfile
import threading
import unittest
class TestHashEquivalenceServer(object):
METHOD = 'TestMethod'
def _run_server(self):
# logging.basicConfig(level=logging.DEBUG, filename='bbhashserv.log', filemode='w',
# format='%(levelname)s %(filename)s:%(lineno)d %(message)s')
self.server.serve_forever()
class TestHashEquivalenceServer(unittest.TestCase):
def setUp(self):
# Start an in memory hash equivalence server in the background bound to
# an ephemeral port
db = sqlite3.connect(':memory:', check_same_thread=False)
self.server = create_server(('localhost', 0), db)
self.server_addr = 'http://localhost:%d' % self.server.socket.getsockname()[1]
self.server_thread = threading.Thread(target=self.server.serve_forever)
if sys.version_info < (3, 5, 0):
self.skipTest('Python 3.5 or later required')
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-hashserv')
self.dbfile = os.path.join(self.temp_dir.name, 'db.sqlite')
self.server = create_server(self.get_server_addr(), self.dbfile)
self.server_thread = multiprocessing.Process(target=self._run_server)
self.server_thread.daemon = True
self.server_thread.start()
self.client = create_client(self.server.address)
def tearDown(self):
# Shutdown server
s = getattr(self, 'server', None)
if s is not None:
self.server.shutdown()
self.server_thread.terminate()
self.server_thread.join()
self.server.server_close()
def send_get(self, path):
url = '%s/%s' % (self.server_addr, path)
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
return json.loads(response.read().decode('utf-8'))
def send_post(self, path, data):
headers = {'content-type': 'application/json'}
url = '%s/%s' % (self.server_addr, path)
request = urllib.request.Request(url, json.dumps(data).encode('utf-8'), headers)
response = urllib.request.urlopen(request)
return json.loads(response.read().decode('utf-8'))
self.client.close()
self.temp_dir.cleanup()
def test_create_hash(self):
# Simple test that hashes can be created
@@ -50,16 +51,11 @@ class TestHashEquivalenceServer(unittest.TestCase):
outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f'
unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd'
d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash)
self.assertIsNone(d, msg='Found unexpected task, %r' % d)
result = self.client.get_unihash(self.METHOD, taskhash)
self.assertIsNone(result, msg='Found unexpected task, %r' % result)
d = self.send_post('v1/equivalent', {
'taskhash': taskhash,
'method': 'TestMethod',
'outhash': outhash,
'unihash': unihash,
})
self.assertEqual(d['unihash'], unihash, 'Server returned bad unihash')
result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash')
def test_create_equivalent(self):
# Tests that a second reported task with the same outhash will be
@@ -67,25 +63,16 @@ class TestHashEquivalenceServer(unittest.TestCase):
taskhash = '53b8dce672cb6d0c73170be43f540460bfc347b4'
outhash = '5a9cb1649625f0bf41fc7791b635cd9c2d7118c7f021ba87dcd03f72b67ce7a8'
unihash = 'f37918cc02eb5a520b1aff86faacbc0a38124646'
d = self.send_post('v1/equivalent', {
'taskhash': taskhash,
'method': 'TestMethod',
'outhash': outhash,
'unihash': unihash,
})
self.assertEqual(d['unihash'], unihash, 'Server returned bad unihash')
result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash')
# Report a different task with the same outhash. The returned unihash
# should match the first task
taskhash2 = '3bf6f1e89d26205aec90da04854fbdbf73afe6b4'
unihash2 = 'af36b199320e611fbb16f1f277d3ee1d619ca58b'
d = self.send_post('v1/equivalent', {
'taskhash': taskhash2,
'method': 'TestMethod',
'outhash': outhash,
'unihash': unihash2,
})
self.assertEqual(d['unihash'], unihash, 'Server returned bad unihash')
result = self.client.report_unihash(taskhash2, self.METHOD, outhash, unihash2)
self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash')
def test_duplicate_taskhash(self):
# Tests that duplicate reports of the same taskhash with different
@@ -94,38 +81,63 @@ class TestHashEquivalenceServer(unittest.TestCase):
taskhash = '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a'
outhash = 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e'
unihash = '218e57509998197d570e2c98512d0105985dffc9'
d = self.send_post('v1/equivalent', {
'taskhash': taskhash,
'method': 'TestMethod',
'outhash': outhash,
'unihash': unihash,
})
self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash)
self.assertEqual(d['unihash'], unihash)
result = self.client.get_unihash(self.METHOD, taskhash)
self.assertEqual(result, unihash)
outhash2 = '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d'
unihash2 = 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'
d = self.send_post('v1/equivalent', {
'taskhash': taskhash,
'method': 'TestMethod',
'outhash': outhash2,
'unihash': unihash2
})
self.client.report_unihash(taskhash, self.METHOD, outhash2, unihash2)
d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash)
self.assertEqual(d['unihash'], unihash)
result = self.client.get_unihash(self.METHOD, taskhash)
self.assertEqual(result, unihash)
outhash3 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4'
unihash3 = '9217a7d6398518e5dc002ed58f2cbbbc78696603'
d = self.send_post('v1/equivalent', {
'taskhash': taskhash,
'method': 'TestMethod',
'outhash': outhash3,
'unihash': unihash3
})
self.client.report_unihash(taskhash, self.METHOD, outhash3, unihash3)
d = self.send_get('v1/equivalent?method=TestMethod&taskhash=%s' % taskhash)
self.assertEqual(d['unihash'], unihash)
result = self.client.get_unihash(self.METHOD, taskhash)
self.assertEqual(result, unihash)
def test_stress(self):
def query_server(failures):
client = Client(self.server.address)
try:
for i in range(1000):
taskhash = hashlib.sha256()
taskhash.update(str(i).encode('utf-8'))
taskhash = taskhash.hexdigest()
result = client.get_unihash(self.METHOD, taskhash)
if result != taskhash:
failures.append("taskhash mismatch: %s != %s" % (result, taskhash))
finally:
client.close()
# Report hashes
for i in range(1000):
taskhash = hashlib.sha256()
taskhash.update(str(i).encode('utf-8'))
taskhash = taskhash.hexdigest()
self.client.report_unihash(taskhash, self.METHOD, taskhash, taskhash)
failures = []
threads = [threading.Thread(target=query_server, args=(failures,)) for t in range(100)]
for t in threads:
t.start()
for t in threads:
t.join()
self.assertFalse(failures)
class TestHashEquivalenceUnixServer(TestHashEquivalenceServer, unittest.TestCase):
def get_server_addr(self):
return "unix://" + os.path.join(self.temp_dir.name, 'sock')
class TestHashEquivalenceTCPServer(TestHashEquivalenceServer, unittest.TestCase):
def get_server_addr(self):
return "localhost:0"

View File

@@ -376,7 +376,7 @@ layerBranches set. If not, they are effectively blank.'''
invalid.append(name)
def _resolve_dependencies(layerbranches, ignores, dependencies, invalid):
def _resolve_dependencies(layerbranches, ignores, dependencies, invalid, processed=None):
for layerbranch in layerbranches:
if ignores and layerbranch.layer.name in ignores:
continue
@@ -388,6 +388,13 @@ layerBranches set. If not, they are effectively blank.'''
if ignores and deplayerbranch.layer.name in ignores:
continue
# Since this is depth first, we need to know what we're currently processing
# in order to avoid infinite recursion on a loop.
if processed and deplayerbranch.layer.name in processed:
# We have found a recursion...
logger.warning('Circular layer dependency found: %s -> %s' % (processed, deplayerbranch.layer.name))
continue
# This little block is why we can't re-use the LayerIndexObj version,
# we must be able to satisfy each dependencies across layer indexes and
# use the layer index order for priority. (r stands for replacement below)
@@ -411,7 +418,17 @@ layerBranches set. If not, they are effectively blank.'''
# New dependency, we need to resolve it now... depth-first
if deplayerbranch.layer.name not in dependencies:
(dependencies, invalid) = _resolve_dependencies([deplayerbranch], ignores, dependencies, invalid)
# Avoid recursion on this branch.
# We copy so we don't end up polluting the depth-first branch with other
# branches. Duplication between individual branches IS expected and
# handled by 'dependencies' processing.
if not processed:
local_processed = []
else:
local_processed = processed.copy()
local_processed.append(deplayerbranch.layer.name)
(dependencies, invalid) = _resolve_dependencies([deplayerbranch], ignores, dependencies, invalid, local_processed)
if deplayerbranch.layer.name not in dependencies:
dependencies[deplayerbranch.layer.name] = [deplayerbranch, layerdependency]

View File

@@ -257,7 +257,7 @@ class PRData(object):
self.connection=sqlite3.connect(self.filename, isolation_level="EXCLUSIVE", check_same_thread = False)
self.connection.row_factory=sqlite3.Row
self.connection.execute("pragma synchronous = off;")
self.connection.execute("PRAGMA journal_mode = WAL;")
self.connection.execute("PRAGMA journal_mode = MEMORY;")
self._tables={}
def disconnect(self):

View File

@@ -965,12 +965,12 @@ class TargetSDKFile(models.Model):
class Target_Image_File(models.Model):
# valid suffixes for image files produced by a build
SUFFIXES = {
'btrfs', 'cpio', 'cpio.gz', 'cpio.lz4', 'cpio.lzma', 'cpio.xz',
'cramfs', 'elf', 'ext2', 'ext2.bz2', 'ext2.gz', 'ext2.lzma', 'ext4',
'ext4.gz', 'ext3', 'ext3.gz', 'hdddirect', 'hddimg', 'iso', 'jffs2',
'jffs2.sum', 'multiubi', 'qcow2', 'squashfs', 'squashfs-lzo',
'btrfs', 'container', 'cpio', 'cpio.gz', 'cpio.lz4', 'cpio.lzma',
'cpio.xz', 'cramfs', 'ext2', 'ext2.bz2', 'ext2.gz', 'ext2.lzma',
'ext3', 'ext3.gz', 'ext4', 'ext4.gz', 'f2fs', 'hddimg', 'iso', 'jffs2',
'jffs2.sum', 'multiubi', 'squashfs', 'squashfs-lz4', 'squashfs-lzo',
'squashfs-xz', 'tar', 'tar.bz2', 'tar.gz', 'tar.lz4', 'tar.xz', 'ubi',
'ubifs', 'vdi', 'vmdk', 'wic', 'wic.bmap', 'wic.bz2', 'wic.gz', 'wic.lzma'
'ubifs', 'wic', 'wic.bz2', 'wic.gz', 'wic.lzma'
}
target = models.ForeignKey(Target)

View File

@@ -23,9 +23,8 @@
It might not be immediately clear how you can use the Yocto
Project in a team development environment, or how to scale it for a
large team of developers.
One of the strengths of the Yocto Project is that it is extremely
flexible.
Thus, you can adapt it to many different use cases and scenarios.
You can adapt the Yocto Project to many different use cases and
scenarios.
However, this flexibility could cause difficulties if you are trying
to create a working setup that scales across a large team.
</para>

View File

@@ -60,7 +60,7 @@
<!ENTITY UBUNTU_HOST_PACKAGES_ESSENTIAL "gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
xterm">
pylint3 xterm">
<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python3 unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \

View File

@@ -318,23 +318,6 @@
</para>
</section>
<section id='ref-classes-bluetooth'>
<title><filename>bluetooth.bbclass</filename></title>
<para>
The <filename>bluetooth</filename> class defines a variable that
expands to the recipe (package) providing core
bluetooth support on the platform.
</para>
<para>
For details on how the class works, see the
<filename>meta/classes/bluetooth.bbclass</filename> file in the Yocto
Project
<link linkend='source-directory'>Source Directory</link>.
</para>
</section>
<section id='ref-classes-buildhistory'>
<title><filename>buildhistory.bbclass</filename></title>
@@ -937,21 +920,6 @@
</para>
</section>
<section id='ref-classes-gnome'>
<title><filename>gnome.bbclass</filename></title>
<para>
The <filename>gnome</filename> class supports recipes that
build software from the GNOME stack.
This class inherits the
<link linkend='ref-classes-gnomebase'><filename>gnomebase</filename></link>,
<link linkend='ref-classes-gtk-icon-cache'><filename>gtk-icon-cache</filename></link>,
<link linkend='ref-classes-gconf'><filename>gconf</filename></link> and
<link linkend='ref-classes-mime'><filename>mime</filename></link> classes.
The class also disables GObject introspection where applicable.
</para>
</section>
<section id='ref-classes-gnomebase'>
<title><filename>gnomebase.bbclass</filename></title>

View File

@@ -629,18 +629,18 @@
<title>Building Your Recipe</title>
<para>
Use the <filename>devtool build</filename> command to cause the
OpenEmbedded build system to build your recipe.
Use the <filename>devtool build</filename> command to build your
recipe.
The <filename>devtool build</filename> command is equivalent to
<filename>bitbake -c populate_sysroot</filename>.
the <filename>bitbake -c populate_sysroot</filename> command.
</para>
<para>
When you use the <filename>devtool build</filename> command,
you must supply the root name of the recipe (i.e. no version,
paths, or extensions).
you must supply the root name of the recipe (i.e. do not provide
versions, paths, or extensions).
You can use either the "-s" or the "--disable-parallel-make"
option to disable parallel makes during the build.
options to disable parallel makes during the build.
Here is an example:
<literallayout class='monospaced'>
$ devtool build <replaceable>recipe</replaceable>

View File

@@ -154,27 +154,6 @@
</para></listitem>
<listitem><para><emphasis>bluetooth:</emphasis> Include
bluetooth support (integrated BT only).</para></listitem>
<listitem><para><emphasis>bluez5:</emphasis> Include
BlueZ Version 5, which provides core Bluetooth layers and
protocols support.
<note>
The default value for the
<filename>DISTRO FEATURES</filename> variable includes
"bluetooth", which causes bluez5 to be backfilled in
for bluetooth support.
If you do not want bluez5 backfilled and would rather
use bluez4, you need to use the
<link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><filename>DISTRO_FEATURES_BACKFILL_CONSIDERED</filename></link>
variable as follows:
<literallayout class='monospaced'>
DISTRO_FEATURES_BACKFILL_CONSIDERED = "bluez5"
</literallayout>
Setting this variable tells the OpenEmbedded build
system that you have considered but ruled
out using the bluez5 feature and that bluez4 will be
used.
</note>
</para></listitem>
<listitem><para><emphasis>cramfs:</emphasis> Include CramFS
support.</para></listitem>
<listitem><para><emphasis>directfb:</emphasis>

View File

@@ -95,6 +95,7 @@
<listitem><para>CentOS 7.x</para></listitem>
<listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
<listitem><para>Debian GNU/Linux 9.x (Stretch)</para></listitem>
<listitem><para>Debian GNU/Linux 10.x (Buster)</para></listitem>
<listitem><para>OpenSUSE 42.3</para></listitem>
</itemizedlist>
</para>

View File

@@ -335,7 +335,7 @@
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
The minimal command and arguments used to run the
Minimal command and arguments needed to run the
assembler.
</para>
</glossdef>
@@ -6606,6 +6606,7 @@
by default:
<literallayout class='monospaced'>
btrfs
container
cpio
cpio.gz
cpio.lz4
@@ -6621,13 +6622,14 @@
ext3.gz
ext4
ext4.gz
hdddirect
f2fs
hddimg
iso
jffs2
jffs2.sum
multiubi
squashfs
squashfs-lz4
squashfs-lzo
squashfs-xz
tar
@@ -7580,15 +7582,9 @@
However, providing just the <filename>.dtb</filename>
file is preferred.
</note>
In order to use this variable, you must have the include
files in your kernel recipe:
<literallayout class='monospaced'>
require recipes-kernel/linux/linux-dtb.inc
</literallayout>
or
<literallayout class='monospaced'>
require recipes-kernel/linux/linux-yocto.inc
</literallayout>
In order to use this variable, the
<link linkend='ref-classes-kernel-devicetree'><filename>kernel-devicetree</filename></link>
class must be inherited.
</para>
</glossdef>
</glossentry>

View File

@@ -10,3 +10,8 @@ Common targets are:
meta-ide-support
You can also run generated qemu images with a command like 'runqemu qemux86'
Other commonly useful commands are:
- 'devtool' and 'recipetool' handle common recipe tasks
- 'bitbake-layers' handles common layer tasks
- 'oe-pkgdata-util' handles common target package tasks

View File

@@ -1,2 +1,8 @@
# Add an extra DISTRO_FEATURE
DISTRO_FEATURES_append = " pam"
PREFERRED_VERSION_linux-yocto_linuxstdbase ?= "4.19%"
# Use the LTSI Kernel
PREFERRED_VERSION_linux-yocto ?= "4.19%"
# Ensure the kernel nfs server is enabled
KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc"

View File

@@ -0,0 +1,15 @@
#
# An example of subclassing a distro, primarily used for testing alternate configuration
# combinations on the Yocto Project autobuilder
#
require conf/distro/poky.conf
DISTRO = "poky-altcfg"
DISTROOVERRIDES = "poky:poky-altcfg"
#DISTROOVERRIDES = "poky:linuxstdbase"
INIT_MANAGER ?= "systemd"
# systemd isn't suitable with musl
INIT_MANAGER_libc-musl ?= "sysvinit"
require conf/distro/include/poky-distro-alt-test-config.inc

View File

@@ -1,13 +0,0 @@
require conf/distro/poky.conf
DISTRO = "poky-lsb"
DISTROOVERRIDES = "poky:linuxstdbase"
DISTRO_FEATURES_append = " pam"
# Ensure the kernel nfs server is enabled
KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc"
# Use the LTSI Kernel for LSB Testing
PREFERRED_VERSION_linux-yocto_linuxstdbase ?= "4.19%"

View File

@@ -82,12 +82,7 @@ DISTRO_FEATURES_class-native = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO
DISTRO_FEATURES_class-nativesdk = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
# enable mdev/busybox for init
VIRTUAL-RUNTIME_dev_manager = "busybox-mdev"
VIRTUAL-RUNTIME_login_manager = "busybox"
VIRTUAL-RUNTIME_init_manager = "busybox"
VIRTUAL-RUNTIME_initscripts = "initscripts"
VIRTUAL-RUNTIME_keymaps = "keymaps"
DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"
INIT_MANAGER ?= "mdev-busybox"
# FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in
# packagegroup-core-base to select modutils-initscripts or not. Similar with "net" and
@@ -117,9 +112,6 @@ PNBLACKLIST[build-appliance-image] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-base] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-clutter] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-full-cmdline] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-lsb] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-lsb-dev] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-lsb-sdk] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-rt] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-rt-sdk] = "not buildable with poky-tiny"
PNBLACKLIST[core-image-sato] = "not buildable with poky-tiny"

View File

@@ -21,7 +21,7 @@ POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
PREFERRED_VERSION_linux-yocto ?= "5.0%"
PREFERRED_VERSION_linux-yocto ?= "5.2%"
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
@@ -61,7 +61,6 @@ SANITY_TESTED_DISTROS ?= " \
debian-8 \n \
debian-9 \n \
debian-10 \n \
opensuse-42.3 \n \
opensuseleap-15.1 \n \
"
#

View File

@@ -237,14 +237,17 @@ BB_DISKMON_DIRS ??= "\
#
# Qemu configuration
#
# By default qemu will build with a builtin VNC server where graphical output can be
# seen. The two lines below enable the SDL backend too. By default libsdl2-native will
# be built, if you want to use your host's libSDL instead of the minimal libsdl built
# by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
# By default native qemu will build with a builtin VNC server where graphical output can be
# seen. The line below enables the SDL UI frontend too.
PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
# By default libsdl2-native will be built, if you want to use your host's libSDL instead of
# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
#ASSUME_PROVIDED += "libsdl2-native"
# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds
# a handy set of menus for controlling the emulator.
#PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"
# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
# track the version of this file when it was generated. This can safely be ignored if
# this doesn't mean anything to you.

View File

@@ -270,7 +270,7 @@ DISTRO_FEATURES_remove = "x11"
#
# By including the security_flags include file you enable flags
# to the compiler and linker that cause them to generate more secure
# code, this is enabled by default in the poky-lsb distro.
# code.
# This does affect compile speed slightly.
#
# Use the following line to enable the security compiler and linker flags to your build

View File

@@ -8,8 +8,6 @@ SECTION = "console/utils"
LICENSE = "LGPLv2 | LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
PR = "r1"
SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz"
SRC_URI[md5sum] = "e66a9c9af6a60dc46134fdacf6ce97d7"
SRC_URI[sha256sum] = "f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1"

View File

@@ -11,15 +11,14 @@ SECURITY_CFLAGS = ""
SECURITY_LDFLAGS = ""
do_compile() {
${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS} ${WORKDIR}/hello.f95 -o ${B}/fortran-hello
${FC} ${LDFLAGS} ${WORKDIR}/hello.f95 -o ${B}/fortran-hello
}
do_install() {
install -d ${D}${bindir}
install ${B}/fortran-hello ${D}${bindir}
install -D ${B}/fortran-hello ${D}${bindir}/fortran-hello
}
python () {
if not d.getVar("FORTRAN"):
raise bb.parse.SkipRecipe("Fortran isn't enabled")
}
}

View File

@@ -24,7 +24,7 @@ SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "5.0%"
PREFERRED_VERSION_linux-yocto ?= "5.2%"
KERNEL_IMAGETYPE = "zImage"
KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
@@ -47,7 +47,6 @@ QB_DEFAULT_FSTYPE = "wic"
QB_FSINFO = "wic:no-kernel-in-fs"
QB_KERNEL_ROOT = "/dev/vda2"
QB_SYSTEM_NAME = "qemu-system-arm"
QB_MEM = "-m 512"
QB_MACHINE = "-machine virt"
QB_CPU = "-cpu cortex-a15"
QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0 systemd.mask=systemd-networkd"

View File

@@ -11,7 +11,7 @@ KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
KERNEL_IMAGE_STRIP_EXTRA_SECTIONS = ".comment"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "5.0%"
PREFERRED_VERSION_linux-yocto ?= "5.2%"
SERIAL_CONSOLES = "115200;ttyS0"
USE_VT ?= "0"

View File

@@ -7,3 +7,5 @@ require conf/machine/include/tune-core2.inc
require conf/machine/include/genericx86-common.inc
SERIAL_CONSOLES_CHECK = "ttyS0"
#For runqemu
QB_SYSTEM_NAME = "qemu-system-x86_64"

View File

@@ -7,3 +7,5 @@ require conf/machine/include/tune-core2.inc
require conf/machine/include/genericx86-common.inc
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "gma500-gfx-check"
#For runqemu
QB_SYSTEM_NAME = "qemu-system-i386"

View File

@@ -15,7 +15,7 @@ SERIAL_CONSOLES = "115200;ttyS0"
MACHINE_FEATURES = "keyboard pci ext2 ext3 serial"
PREFERRED_VERSION_linux-yocto ?= "5.0%"
PREFERRED_VERSION_linux-yocto ?= "5.2%"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"

View File

@@ -1,27 +0,0 @@
KBRANCH_genericx86 = "v5.0/standard/base"
KBRANCH_genericx86-64 = "v5.0/standard/base"
KBRANCH_edgerouter = "v5.0/standard/edgerouter"
KBRANCH_beaglebone-yocto = "v5.0/standard/beaglebone"
KBRANCH_mpc8315e-rdb = "v5.0/standard/fsl-mpc8315e-rdb"
KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
KMACHINE_beaglebone-yocto ?= "beaglebone"
SRCREV_machine_genericx86 ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4"
SRCREV_machine_genericx86-64 ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4"
SRCREV_machine_edgerouter ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4"
SRCREV_machine_beaglebone-yocto ?= "f990fd0ce123aa6035042efad09b2ddc3e7d48f4"
SRCREV_machine_mpc8315e-rdb ?= "670ce7e9db627d0c2067cfdb571ddc1f117818d8"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
LINUX_VERSION_genericx86 = "5.0.13"
LINUX_VERSION_genericx86-64 = "5.0.13"
LINUX_VERSION_edgerouter = "5.0.13"
LINUX_VERSION_beaglebone-yocto = "5.0.13"
LINUX_VERSION_mpc8315e-rdb = "5.0.13"

View File

@@ -0,0 +1,27 @@
KBRANCH_genericx86 = "v5.2/standard/base"
KBRANCH_genericx86-64 = "v5.2/standard/base"
KBRANCH_edgerouter = "v5.2/standard/edgerouter"
KBRANCH_beaglebone-yocto = "v5.2/standard/beaglebone"
KBRANCH_mpc8315e-rdb = "v5.2/standard/fsl-mpc8315e-rdb"
KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
KMACHINE_beaglebone-yocto ?= "beaglebone"
SRCREV_machine_genericx86 ?= "77c28ea0e55cabb0b22b47d4eb2cc94b0940dfe6"
SRCREV_machine_genericx86-64 ?= "35276d20c01a78ee3640a074446b0c15c486c5d0"
SRCREV_machine_edgerouter ?= "35276d20c01a78ee3640a074446b0c15c486c5d0"
SRCREV_machine_beaglebone-yocto ?= "77c28ea0e55cabb0b22b47d4eb2cc94b0940dfe6"
SRCREV_machine_mpc8315e-rdb ?= "cae01d71ef67eaafec75ce24f49b038b705b8711"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
LINUX_VERSION_genericx86 = "5.2.10"
LINUX_VERSION_genericx86-64 = "5.2.10"
LINUX_VERSION_edgerouter = "5.2.10"
LINUX_VERSION_beaglebone-yocto = "5.2.10"
LINUX_VERSION_mpc8315e-rdb = "5.2.10"

View File

@@ -78,6 +78,9 @@ python () {
bb.debug(1, 'archiver: %s is excluded, covered by gcc-source' % pn)
return
def hasTask(task):
return bool(d.getVarFlag(task, "task", False)) and not bool(d.getVarFlag(task, "noexec", False))
ar_src = d.getVarFlag('ARCHIVER_MODE', 'src')
ar_dumpdata = d.getVarFlag('ARCHIVER_MODE', 'dumpdata')
ar_recipe = d.getVarFlag('ARCHIVER_MODE', 'recipe')
@@ -98,9 +101,6 @@ python () {
# There is a corner case with "gcc-source-${PV}" recipes, they don't have
# the "do_configure" task, so we need to use "do_preconfigure"
def hasTask(task):
return bool(d.getVarFlag(task, "task", False)) and not bool(d.getVarFlag(task, "noexec", False))
if hasTask("do_preconfigure"):
d.appendVarFlag('do_ar_configured', 'depends', ' %s:do_preconfigure' % pn)
elif hasTask("do_configure"):
@@ -118,7 +118,11 @@ python () {
# Output the SRPM package
if d.getVarFlag('ARCHIVER_MODE', 'srpm') == "1" and d.getVar('PACKAGES'):
if "package_rpm" in d.getVar('PACKAGE_CLASSES'):
if "package_rpm" not in d.getVar('PACKAGE_CLASSES'):
bb.fatal("ARCHIVER_MODE[srpm] needs package_rpm in PACKAGE_CLASSES")
# Some recipes do not have any packaging tasks
if hasTask("do_package_write_rpm"):
d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_package_write_rpm' % pn)
d.appendVarFlag('do_package_write_rpm', 'dirs', ' ${ARCHIVER_RPMTOPDIR}')
d.appendVarFlag('do_package_write_rpm', 'sstate-inputdirs', ' ${ARCHIVER_RPMTOPDIR}')
@@ -133,8 +137,6 @@ python () {
d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_patched' % pn)
elif ar_src == "configured":
d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_configured' % pn)
else:
bb.fatal("ARCHIVER_MODE[srpm] needs package_rpm in PACKAGE_CLASSES")
}
# Take all the sources for a recipe and puts them in WORKDIR/archiver-work/.
@@ -219,9 +221,10 @@ python do_ar_patched() {
# Get the ARCHIVER_OUTDIR before we reset the WORKDIR
ar_outdir = d.getVar('ARCHIVER_OUTDIR')
ar_workdir = d.getVar('ARCHIVER_WORKDIR')
if not is_work_shared(d):
ar_workdir = d.getVar('ARCHIVER_WORKDIR')
d.setVar('WORKDIR', ar_workdir)
bb.note('Archiving the patched source...')
d.setVar('WORKDIR', ar_workdir)
create_tarball(d, d.getVar('S'), 'patched', ar_outdir)
}

View File

@@ -25,7 +25,9 @@ inherit siteinfo
# Space separated list of shell scripts with variables defined to supply test
# results for autoconf tests we cannot run at build time.
export CONFIG_SITE = "${@siteinfo_get_files(d)}"
# The value of this variable is filled in in a prefunc because it depends on
# the contents of the sysroot.
export CONFIG_SITE
acpaths ?= "default"
EXTRA_AUTORECONF = "--exclude=autopoint"
@@ -132,6 +134,8 @@ EXTRACONFFUNCS ??= ""
EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}"
do_configure[prefuncs] += "autotools_preconfigure autotools_aclocals ${EXTRACONFFUNCS}"
do_compile[prefuncs] += "autotools_aclocals"
do_install[prefuncs] += "autotools_aclocals"
do_configure[postfuncs] += "autotools_postconfigure"
ACLOCALDIR = "${STAGING_DATADIR}/aclocal"
@@ -140,7 +144,6 @@ ACLOCALEXTRAPATH_class-target = " -I ${STAGING_DATADIR_NATIVE}/aclocal/"
ACLOCALEXTRAPATH_class-nativesdk = " -I ${STAGING_DATADIR_NATIVE}/aclocal/"
python autotools_aclocals () {
# Refresh variable with cache files
d.setVar("CONFIG_SITE", siteinfo_get_files(d, sysrootcache=True))
}

View File

@@ -1,7 +1,7 @@
CHRPATH_BIN ?= "chrpath"
PREPROCESS_RELOCATE_DIRS ?= ""
def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d):
def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False):
import subprocess as sub
p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
@@ -39,6 +39,9 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d):
# if we have modified some rpaths call chrpath to update the binary
if modified:
if break_hardlinks:
bb.utils.break_hardlinks(fpath)
args = ":".join(new_rpaths)
#bb.note("Setting rpath for %s to %s" %(fpath, args))
p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE)
@@ -46,7 +49,7 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d):
if p.returncode != 0:
bb.fatal("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN'), p.returncode, out, err))
def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d):
def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False):
import subprocess as sub
p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
@@ -61,11 +64,14 @@ def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d):
if baseprefix not in rpath:
continue
if break_hardlinks:
bb.utils.break_hardlinks(fpath)
newpath = "@loader_path/" + os.path.relpath(rpath, os.path.dirname(fpath.replace(rootdir, "/")))
p = sub.Popen([d.expand("${HOST_PREFIX}install_name_tool"), '-change', rpath, newpath, fpath],stdout=sub.PIPE,stderr=sub.PIPE)
out, err = p.communicate()
def process_dir (rootdir, directory, d):
def process_dir(rootdir, directory, d, break_hardlinks = False):
import stat
rootdir = os.path.normpath(rootdir)
@@ -95,7 +101,7 @@ def process_dir (rootdir, directory, d):
continue
if os.path.isdir(fpath):
process_dir(rootdir, fpath, d)
process_dir(rootdir, fpath, d, break_hardlinks = break_hardlinks)
else:
#bb.note("Testing %s for relocatability" % fpath)
@@ -108,8 +114,9 @@ def process_dir (rootdir, directory, d):
else:
# Temporarily make the file writeable so we can chrpath it
os.chmod(fpath, perms|stat.S_IRWXU)
process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d)
process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = break_hardlinks)
if perms:
os.chmod(fpath, perms)

View File

@@ -203,7 +203,7 @@ def srctree_hash_files(d, srcdir=None):
ret = " "
if git_dir is not None:
oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1')
oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1-%s' % d.getVar('PN'))
with tempfile.NamedTemporaryFile(prefix='oe-devtool-index') as tmp_index:
# Clone index
shutil.copyfile(os.path.join(git_dir, 'index'), tmp_index.name)

View File

@@ -1 +0,0 @@
inherit gnomebase gtk-icon-cache gconf mime

View File

@@ -71,17 +71,13 @@ python go_do_unpack() {
if len(src_uri) == 0:
return
try:
fetcher = bb.fetch2.Fetch(src_uri, d)
for url in fetcher.urls:
if fetcher.ud[url].type == 'git':
if fetcher.ud[url].parm.get('destsuffix') is None:
s_dirname = os.path.basename(d.getVar('S'))
fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src',
d.getVar('GO_IMPORT')) + '/'
fetcher.unpack(d.getVar('WORKDIR'))
except bb.fetch2.BBFetchException as e:
raise bb.build.FuncFailed(e)
fetcher = bb.fetch2.Fetch(src_uri, d)
for url in fetcher.urls:
if fetcher.ud[url].type == 'git':
if fetcher.ud[url].parm.get('destsuffix') is None:
s_dirname = os.path.basename(d.getVar('S'))
fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/'
fetcher.unpack(d.getVar('WORKDIR'))
}
go_list_packages() {

View File

@@ -23,7 +23,6 @@ GRUB_TIMEOUT ?= "10"
#FIXME: build this from the machine config
GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
EFIDIR = "/EFI/BOOT"
GRUB_ROOT ?= "${ROOT}"
APPEND ?= ""

View File

@@ -1,46 +1,8 @@
inherit grub-efi-cfg
require conf/image-uefi.conf
efi_populate() {
# DEST must be the root of the image so that EFIDIR is not
# nested under a top level directory.
DEST=$1
install -d ${DEST}${EFIDIR}
GRUB_IMAGE="grub-efi-bootia32.efi"
DEST_IMAGE="bootia32.efi"
if [ -n "${MLPREFIX}" ]; then
if [ "${TARGET_ARCH_MULTILIB_ORIGINAL}" = "x86_64" ]; then
GRUB_IMAGE="grub-efi-bootx64.efi"
DEST_IMAGE="bootx64.efi"
fi
else
if [ "${TARGET_ARCH}" = "x86_64" ]; then
GRUB_IMAGE="grub-efi-bootx64.efi"
DEST_IMAGE="bootx64.efi"
fi
fi
install -m 0644 ${DEPLOY_DIR_IMAGE}/${GRUB_IMAGE} ${DEST}${EFIDIR}/${DEST_IMAGE}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_IMAGE" >${DEST}/startup.nsh
efi_populate_common "$1" grub-efi
install -m 0644 ${GRUB_CFG} ${DEST}${EFIDIR}/grub.cfg
}
efi_iso_populate() {
iso_dir=$1
efi_populate $iso_dir
# Build a EFI directory to create efi.img
mkdir -p ${EFIIMGDIR}/${EFIDIR}
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
printf 'fs0:%s\%s\n' "$EFIPATH" "$GRUB_IMAGE" > ${EFIIMGDIR}/startup.nsh
if [ -f "$iso_dir/initrd" ] ; then
cp $iso_dir/initrd ${EFIIMGDIR}
fi
}
efi_hddimg_populate() {
efi_populate $1
}

View File

@@ -73,10 +73,16 @@ ICECC_ENV_DEBUG ??= ""
#
# libgcc-initial - fails with CPP sanity check error if host sysroot contains
# cross gcc built for another target tune/variant
# pixman - prng_state: TLS reference mismatches non-TLS reference, possibly due to
# pragma omp threadprivate(prng_state)
# systemtap - _HelperSDT.c undefs macros and uses the identifiers in macros emitting
# inline assembly
# target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL
# prefix" error.
ICECC_SYSTEM_PACKAGE_BL += "\
libgcc-initial \
pixman \
systemtap \
target-sdk-provides-dummy \
"
@@ -243,7 +249,11 @@ def icecc_get_external_tool(bb, d, tool):
def icecc_get_tool_link(tool, d):
import subprocess
return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1]
try:
return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1]
except subprocess.CalledProcessError as e:
bb.note("icecc: one of the tools probably disappeared during recipe parsing, cmd readlink -f %s returned %d:\n%s" % (tool, e.returncode, e.output.decode("utf-8")))
return tool
def icecc_get_path_tool(tool, d):
# This is a little ugly, but we want to make sure we add an actual

View File

@@ -305,11 +305,8 @@ fakeroot python do_image_qa () {
bb.build.exec_func(cmd, d)
except oe.utils.ImageQAFailed as e:
qamsg = qamsg + '\tImage QA function %s failed: %s\n' % (e.name, e.description)
except bb.build.FuncFailed as e:
qamsg = qamsg + '\tImage QA function %s failed' % e.name
if e.logfile:
qamsg = qamsg + ' (log file is located at %s)' % e.logfile
qamsg = qamsg + '\n'
except Exception as e:
qamsg = qamsg + '\tImage QA function %s failed\n' % cmd
if qamsg:
imgname = d.getVar('IMAGE_NAME')
@@ -529,7 +526,7 @@ def get_rootfs_size(d):
base_size = size_kb * overhead_factor
bb.debug(1, '%f = %d * %f' % (base_size, size_kb, overhead_factor))
base_size2 = max(base_size, rootfs_req_size) + rootfs_extra_space
bb.debug(1, '%f = max(%f, %d)[%f] + %d' % (base_size2, base_size, rootfs_req_size, max(base_size, rootfs_req_size), overhead_factor))
bb.debug(1, '%f = max(%f, %d)[%f] + %d' % (base_size2, base_size, rootfs_req_size, max(base_size, rootfs_req_size), rootfs_extra_space))
base_size = base_size2
if base_size != int(base_size):

View File

@@ -284,7 +284,7 @@ COMPRESSIONTYPES ?= ""
CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vdi qcow2 base64 ${COMPRESSIONTYPES}"
CONVERSION_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_gz = "gzip -f -9 -n -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
CONVERSION_CMD_gz = "gzip -f -9 -n -c --rsyncable ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
CONVERSION_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_DEFAULTS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz"
CONVERSION_CMD_lz4 = "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
@@ -324,7 +324,7 @@ RUNNABLE_MACHINE_PATTERNS ?= "qemu"
DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso"
# The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES,
# images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hdddirect, hddimg, iso, etc.
# images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hddimg, iso, etc.
IMAGE_TYPES_MASKED ?= ""
# bmap requires python3 to be in the PATH

View File

@@ -47,7 +47,8 @@ do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r
# We ensure all artfacts are deployed (e.g virtual/bootloader)
do_image_wic[recrdeptask] += "do_deploy"
WKS_FILE_DEPENDS_DEFAULT = "syslinux-native bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native"
WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}'
WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native"
WKS_FILE_DEPENDS_BOOTLOADERS = ""
WKS_FILE_DEPENDS_BOOTLOADERS_x86 = "syslinux grub-efi systemd-boot"
WKS_FILE_DEPENDS_BOOTLOADERS_x86-64 = "syslinux grub-efi systemd-boot"
@@ -76,6 +77,11 @@ python do_write_wks_template () {
wks_file = d.getVar('WKS_FULL_PATH')
with open(wks_file, 'w') as f:
f.write(template_body)
f.close()
# Copy the finalized wks file to the deploy directory for later use
depdir = d.getVar('IMGDEPLOYDIR')
basename = d.getVar('IMAGE_BASENAME')
bb.utils.copyfile(wks_file, "%s/%s" % (depdir, basename + '-' + os.path.basename(wks_file)))
}
python () {
@@ -104,7 +110,7 @@ python () {
# file in process_wks_template as well, so just put it in
# a variable and let the metadata deal with the deps.
d.setVar('_WKS_TEMPLATE', body)
bb.build.addtask('do_write_wks_template', 'do_image_wic', None, d)
bb.build.addtask('do_write_wks_template', 'do_image_wic', 'do_image', d)
bb.build.addtask('do_image_wic', 'do_image_complete', None, d)
}
@@ -126,6 +132,10 @@ python do_rootfs_wicenv () {
value = d.getVar(var)
if value:
envf.write('%s="%s"\n' % (var, value.strip()))
envf.close()
# Copy .env file to deploy directory for later use with stand alone wic
depdir = d.getVar('IMGDEPLOYDIR')
bb.utils.copyfile(os.path.join(outdir, basename) + '.env', os.path.join(depdir, basename) + '.env')
}
addtask do_rootfs_wicenv after do_image before do_image_wic
do_rootfs_wicenv[vardeps] += "${WICVARS}"

View File

@@ -722,25 +722,7 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d):
filerdepends[subkey] = key[13:]
if filerdepends:
next = rdepends
done = rdepends[:]
# Find all the rdepends on the dependency chain
while next:
new = []
for rdep in next:
rdep_data = oe.packagedata.read_subpkgdata(rdep, d)
sub_rdeps = rdep_data.get("RDEPENDS_" + rdep)
if not sub_rdeps:
continue
for sub_rdep in bb.utils.explode_deps(sub_rdeps):
if sub_rdep in done:
continue
if oe.packagedata.has_subpkgdata(sub_rdep, d):
# It's a new rdep
done.append(sub_rdep)
new.append(sub_rdep)
next = new
# Add the rprovides of itself
if pkg not in done:
done.insert(0, pkg)
@@ -1237,6 +1219,11 @@ python () {
if prog.search(pn):
package_qa_handle_error("uppercase-pn", 'PN: %s is upper case, this can result in unexpected behavior.' % pn, d)
# Some people mistakenly use DEPENDS_${PN} instead of DEPENDS and wonder
# why it doesn't work.
if (d.getVar(d.expand('DEPENDS_${PN}'))):
package_qa_handle_error("pkgvarcheck", "recipe uses DEPENDS_${PN}, should use DEPENDS", d)
issues = []
if (d.getVar('PACKAGES') or "").split():
for dep in (d.getVar('QADEPENDS') or "").split():

View File

@@ -3,10 +3,6 @@ uboot_prep_kimage() {
vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux"
linux_suffix=""
linux_comp="none"
elif [ -e arch/${ARCH}/boot/Image ] ; then
vmlinux_path="vmlinux"
linux_suffix=".gz"
linux_comp="gzip"
elif [ -e arch/${ARCH}/boot/vmlinuz.bin ]; then
rm -f linux.bin
cp -l arch/${ARCH}/boot/vmlinuz.bin linux.bin

View File

@@ -96,8 +96,10 @@ python __anonymous () {
d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1')
image = d.getVar('INITRAMFS_IMAGE')
image_bundle = d.getVar('INITRAMFS_IMAGE_BUNDLE')
if image and bb.utils.to_boolean(image_bundle, False):
# If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0,
# the do_bundle_initramfs does nothing, but the INITRAMFS_IMAGE is built
# standalone for use by wic and other tools.
if image:
d.appendVarFlag('do_bundle_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
# NOTE: setting INITRAMFS_TASK is for backward compatibility
@@ -454,7 +456,7 @@ do_shared_workdir () {
cp .config $kerneldir/
mkdir -p $kerneldir/include/config
cp include/config/kernel.release $kerneldir/include/config/kernel.release
if [ -e certs/signing_key.pem ]; then
if [ -e certs/signing_key.x509 ]; then
# The signing_key.* files are stored in the certs/ dir in
# newer Linux kernels
mkdir -p $kerneldir/certs

View File

@@ -82,6 +82,9 @@ do_collect_bins_from_locale_tree() {
parent=$(dirname ${localedir})
mkdir -p ${PKGD}/$parent
tar -cf - -C $treedir/$parent -p $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent
# Finalize tree by chaning all duplicate files into hard links
cross-localedef-hardlink -c -v ${WORKDIR}/locale-tree
}
inherit qemu
@@ -265,7 +268,7 @@ python package_do_split_gconvs () {
bb.error("locale_arch_options not found for target_arch=" + target_arch)
bb.fatal("unknown arch:" + target_arch + " for locale_arch_options")
localedef_opts += " --force --no-archive --prefix=%s \
localedef_opts += " --force --no-hard-links --no-archive --prefix=%s \
--inputfile=%s/%s/i18n/locales/%s --charmap=%s %s/%s" \
% (treedir, treedir, datadir, locale, encoding, outputpath, name)
@@ -273,7 +276,7 @@ python package_do_split_gconvs () {
(path, i18npath, gconvpath, localedef_opts)
else: # earlier slower qemu way
qemu = qemu_target_binary(d)
localedef_opts = "--force --no-archive --prefix=%s \
localedef_opts = "--force --no-hard-links --no-archive --prefix=%s \
--inputfile=%s/i18n/locales/%s --charmap=%s %s" \
% (treedir, datadir, locale, encoding, name)

View File

@@ -198,10 +198,6 @@ def get_deployed_dependencies(d):
deploy = {}
# Get all the dependencies for the current task (rootfs).
# Also get EXTRA_IMAGEDEPENDS because the bootloader is
# usually in this var and not listed in rootfs.
# At last, get the dependencies from boot classes because
# it might contain the bootloader.
taskdata = d.getVar("BB_TASKDEPDATA", False)
depends = list(set([dep[0] for dep
in list(taskdata.values())

View File

@@ -19,6 +19,8 @@ def get_musl_loader(d):
dynamic_loader = "${base_libdir}/ld-musl-arm${ARMPKGSFX_ENDIAN}${ARMPKGSFX_EABI}.so.1"
elif targetarch.startswith("aarch64"):
dynamic_loader = "${base_libdir}/ld-musl-aarch64${ARMPKGSFX_ENDIAN_64}.so.1"
elif targetarch.startswith("riscv64"):
dynamic_loader = "${base_libdir}/ld-musl-riscv64${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}.so.1"
return dynamic_loader
def get_glibc_loader(d):
@@ -42,6 +44,8 @@ def get_glibc_loader(d):
dynamic_loader = "${base_libdir}/ld-linux.so.3"
elif targetarch.startswith("aarch64"):
dynamic_loader = "${base_libdir}/ld-linux-aarch64${ARMPKGSFX_ENDIAN_64}.so.1"
elif targetarch.startswith("riscv64"):
dynamic_loader = "${base_libdir}/ld-linux-riscv64-lp64${@['d', ''][d.getVar('TARGET_FPU') == 'soft']}.so.1"
return dynamic_loader
def get_linuxloader(d):

View File

@@ -29,6 +29,39 @@ def pcbios(d):
PCBIOS = "${@pcbios(d)}"
PCBIOS_CLASS = "${@['','syslinux'][d.getVar('PCBIOS') == '1']}"
# efi_populate_common DEST BOOTLOADER
efi_populate_common() {
# DEST must be the root of the image so that EFIDIR is not
# nested under a top level directory.
DEST=$1
install -d ${DEST}${EFIDIR}
install -m 0644 ${DEPLOY_DIR_IMAGE}/$2-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh
}
efi_iso_populate() {
iso_dir=$1
efi_populate $iso_dir
# Build a EFI directory to create efi.img
mkdir -p ${EFIIMGDIR}/${EFIDIR}
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${EFIIMGDIR}/startup.nsh
if [ -f "$iso_dir/initrd" ] ; then
cp $iso_dir/initrd ${EFIIMGDIR}
fi
}
efi_hddimg_populate() {
efi_populate $1
}
inherit ${EFI_CLASS}
inherit ${PCBIOS_CLASS}

View File

@@ -24,11 +24,7 @@ MESONOPTS = " --prefix ${prefix} \
--infodir ${@noprefix('infodir', d)} \
--sysconfdir ${sysconfdir} \
--localstatedir ${localstatedir} \
--sharedstatedir ${sharedstatedir} \
-Dc_args='${BUILD_CPPFLAGS} ${BUILD_CFLAGS}' \
-Dc_link_args='${BUILD_LDFLAGS}' \
-Dcpp_args='${BUILD_CPPFLAGS} ${BUILD_CXXFLAGS}' \
-Dcpp_link_args='${BUILD_LDFLAGS}'"
--sharedstatedir ${sharedstatedir} "
EXTRA_OEMESON_append = " ${PACKAGECONFIG_CONFARGS}"
@@ -59,6 +55,8 @@ def meson_cpu_family(var, d):
return 'mips64'
elif re.match(r"i[3-6]86", arch):
return "x86"
elif arch == "microblazeel" or arch == "microblazeeb":
return "microblaze"
else:
return arch
@@ -86,7 +84,7 @@ ld = ${@meson_array('LD', d)}
strip = ${@meson_array('STRIP', d)}
readelf = ${@meson_array('READELF', d)}
pkgconfig = 'pkg-config'
llvm-config = 'llvm-config8.0.0'
llvm-config = 'llvm-config${LLVMVERSION}'
[properties]
needs_exe_wrapper = true

View File

@@ -187,7 +187,7 @@ python do_package_qa_multilib() {
if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)) and \
(not 'cross-canadian' in i) and (not i.startswith("nativesdk-")) and \
(not i.startswith("rtld")) and (not i.startswith('kernel-vmlinux')) \
and (not i.startswith("kernel-image")):
and (not i.startswith("kernel-image")) and (not i.startswith("/")):
candidates.append(i)
if len(candidates) > 0:
msg = "%s package %s - suspicious values '%s' in %s" \

View File

@@ -100,6 +100,8 @@ python () {
clsextend.map_packagevars()
clsextend.map_variable("PROVIDES")
clsextend.map_regexp_variable("PACKAGES_DYNAMIC")
d.setVar("LIBCEXTENSION", "")
d.setVar("ABIEXTENSION", "")
}
addhandler nativesdk_virtclass_handler

View File

@@ -1646,7 +1646,8 @@ python package_do_shlibs() {
prov = (this_soname, ldir, pkgver)
if not prov in sonames:
# if library is private (only used by package) then do not build shlib for it
if not private_libs or this_soname not in private_libs:
import fnmatch
if not private_libs or len([i for i in private_libs if fnmatch.fnmatch(this_soname, i)]) == 0:
sonames.add(prov)
if libdir_re.match(os.path.dirname(file)):
needs_ldconfig = True
@@ -1829,7 +1830,8 @@ python package_do_shlibs() {
# /opt/abc/lib/libfoo.so.1 and contains /usr/bin/abc depending on system library libfoo.so.1
# but skipping it is still better alternative than providing own
# version and then adding runtime dependency for the same system library
if private_libs and n[0] in private_libs:
import fnmatch
if private_libs and len([i for i in private_libs if fnmatch.fnmatch(n[0], i)]) > 0:
bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0]))
continue
if n[0] in shlib_provider.keys():
@@ -1924,7 +1926,7 @@ python package_do_pkgconfig () {
for dir in reversed(shlibs_dirs):
if not os.path.exists(dir):
continue
for file in os.listdir(dir):
for file in sorted(os.listdir(dir)):
m = re.match(r'^(.*)\.pclist$', file)
if m:
pkg = m.group(1)
@@ -2252,14 +2254,18 @@ python do_package_setscene () {
}
addtask do_package_setscene
do_packagedata () {
:
# Copy from PKGDESTWORK to tempdirectory as tempdirectory can be cleaned at both
# do_package_setscene and do_packagedata_setscene leading to races
python do_packagedata () {
src = d.expand("${PKGDESTWORK}")
dest = d.expand("${WORKDIR}/pkgdata-pdata-input")
oe.path.copyhardlinktree(src, dest)
}
addtask packagedata before do_build after do_package
SSTATETASKS += "do_packagedata"
do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}"
do_packagedata[sstate-inputdirs] = "${WORKDIR}/pkgdata-pdata-input"
do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}"
do_packagedata[stamp-extra-info] = "${MACHINE_ARCH}"

View File

@@ -6,6 +6,8 @@ inherit package
IMAGE_PKGTYPE ?= "deb"
DPKG_BUILDCMD ??= "dpkg-deb"
DPKG_ARCH ?= "${@debian_arch_map(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'))}"
DPKG_ARCH[vardepvalue] = "${DPKG_ARCH}"
@@ -269,7 +271,8 @@ def deb_write_pkg(pkg, d):
conffiles.close()
os.chdir(basedir)
subprocess.check_output("PATH=\"%s\" dpkg-deb -b %s %s" % (localdata.getVar("PATH"), root, pkgoutdir),
subprocess.check_output("PATH=\"%s\" %s -b %s %s" % (localdata.getVar("PATH"), localdata.getVar("DPKG_BUILDCMD"),
root, pkgoutdir),
stderr=subprocess.STDOUT,
shell=True)

View File

@@ -409,7 +409,6 @@ python write_specfile () {
if not file_list and localdata.getVar('ALLOW_EMPTY', False) != "1":
bb.note("Not creating empty RPM package for %s" % splitname)
else:
bb.note("Creating RPM package for %s" % splitname)
spec_files_top.append('%files')
if extra_pkgdata:
package_rpm_extra_pkgdata(splitname, spec_files_top, localdata)
@@ -418,7 +417,7 @@ python write_specfile () {
bb.note("Creating RPM package for %s" % splitname)
spec_files_top.extend(file_list)
else:
bb.note("Creating EMPTY RPM Package for %s" % splitname)
bb.note("Creating empty RPM package for %s" % splitname)
spec_files_top.append('')
continue
@@ -510,7 +509,7 @@ python write_specfile () {
bb.note("Creating RPM package for %s" % splitname)
spec_files_bottom.extend(file_list)
else:
bb.note("Creating EMPTY RPM Package for %s" % splitname)
bb.note("Creating empty RPM package for %s" % splitname)
spec_files_bottom.append('')
del localdata

View File

@@ -63,7 +63,7 @@ python () {
SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
SDK_DEPENDS = "virtual/fakeroot-native ${SDK_ARCHIVE_DEPENDS} cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross"
PATH_prepend = "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:"
SDK_DEPENDS_append_libc-glibc = " nativesdk-glibc-locale"
SDK_DEPENDS += "nativesdk-glibc-locale"
# We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it
# could be set to the MACHINE_ARCH

View File

@@ -20,6 +20,7 @@ SDK_EXT_task-populate-sdk-ext = "-ext"
SDK_EXT_TYPE ?= "full"
SDK_INCLUDE_PKGDATA ?= "0"
SDK_INCLUDE_TOOLCHAIN ?= "${@'1' if d.getVar('SDK_EXT_TYPE') == 'full' else '0'}"
SDK_INCLUDE_NATIVESDK ?= "0"
SDK_RECRDEP_TASKS ?= ""
@@ -401,9 +402,27 @@ python copy_buildsystem () {
excluded_targets = get_sdk_install_targets(d, images_only=True)
sigfile = d.getVar('WORKDIR') + '/locked-sigs.inc'
lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc'
#nativesdk-only sigfile to merge into locked-sigs.inc
sdk_include_nativesdk = (d.getVar("SDK_INCLUDE_NATIVESDK") == '1')
nativesigfile = d.getVar('WORKDIR') + '/locked-sigs_nativesdk.inc'
nativesigfile_pruned = d.getVar('WORKDIR') + '/locked-sigs_nativesdk_pruned.inc'
if sdk_include_nativesdk:
oe.copy_buildsystem.prune_lockedsigs([],
excluded_targets.split(),
nativesigfile,
True,
nativesigfile_pruned)
oe.copy_buildsystem.merge_lockedsigs([],
sigfile,
nativesigfile_pruned,
sigfile)
oe.copy_buildsystem.prune_lockedsigs([],
excluded_targets.split(),
sigfile,
False,
lockedsigs_pruned)
sstate_out = baseoutpath + '/sstate-cache'
@@ -414,7 +433,7 @@ python copy_buildsystem () {
sdk_include_toolchain = (d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1')
sdk_ext_type = d.getVar('SDK_EXT_TYPE')
if sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative:
if (sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative) and not sdk_include_nativesdk:
# Create the filtered task list used to generate the sstate cache shipped with the SDK
tasklistfn = d.getVar('WORKDIR') + '/tasklist.txt'
create_filtered_tasklist(d, baseoutpath, tasklistfn, conf_initpath)
@@ -657,9 +676,16 @@ fakeroot python do_populate_sdk_ext() {
d.setVar('SDKDEPLOYDIR', '${SDKEXTDEPLOYDIR}')
# ESDKs have a libc from the buildtools so ensure we don't ship linguas twice
d.delVar('SDKIMAGE_LINGUAS')
if d.getVar("SDK_INCLUDE_NATIVESDK") == '1':
generate_nativesdk_lockedsigs(d)
populate_sdk_common(d)
}
def generate_nativesdk_lockedsigs(d):
import oe.copy_buildsystem
sigfile = d.getVar('WORKDIR') + '/locked-sigs_nativesdk.inc'
oe.copy_buildsystem.generate_locked_sigs(sigfile, d)
def get_ext_sdk_depends(d):
# Note: the deps varflag is a list not a string, so we need to specify expand=False
deps = d.getVarFlag('do_image_complete', 'deps', False)

View File

@@ -9,6 +9,14 @@ DEPENDS_append = " python3-native "
export STAGING_INCDIR
export STAGING_LIBDIR
# Packages can use
# find_package(PythonInterp REQUIRED)
# find_package(PythonLibs REQUIRED)
# which ends up using libs/includes from build host
# Therefore pre-empt that effort
export PYTHON_LIBRARY="${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so"
export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
# suppress host user's site-packages dirs.

View File

@@ -12,6 +12,14 @@ DEPENDS_append = " python-native "
export STAGING_INCDIR
export STAGING_LIBDIR
# Packages can use
# find_package(PythonInterp REQUIRED)
# find_package(PythonLibs REQUIRED)
# which ends up using libs/includes from build host
# Therefore pre-empt that effort
export PYTHON_LIBRARY="${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so"
export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
# suppress host user's site-packages dirs.
export PYTHONNOUSERSITE = "1"

View File

@@ -25,6 +25,19 @@ def errorreport_savedata(e, newdata, file):
json.dump(newdata, f, indent=4, sort_keys=True)
return datafile
def get_conf_data(e, filename):
builddir = e.data.getVar('TOPDIR')
filepath = os.path.join(builddir, "conf", filename)
jsonstring = ""
if os.path.exists(filepath):
with open(filepath, 'r') as f:
for line in f.readlines():
if line.startswith("#") or len(line.strip()) == 0:
continue
else:
jsonstring=jsonstring + line
return jsonstring
python errorreport_handler () {
import json
import codecs
@@ -51,6 +64,8 @@ python errorreport_handler () {
data['failures'] = []
data['component'] = " ".join(e.getPkgs())
data['branch_commit'] = str(base_detect_branch(e.data)) + ": " + str(base_detect_revision(e.data))
data['local_conf'] = get_conf_data(e, 'local.conf')
data['auto_conf'] = get_conf_data(e, 'auto.conf')
lock = bb.utils.lockfile(datafile + '.lock')
errorreport_savedata(e, data, "error-report.txt")
bb.utils.unlockfile(lock)

View File

@@ -121,7 +121,7 @@ do_rm_work_all () {
}
do_rm_work_all[recrdeptask] = "do_rm_work"
do_rm_work_all[noexec] = "1"
addtask rm_work_all after before do_build
addtask rm_work_all before do_build
do_populate_sdk[postfuncs] += "rm_work_populatesdk"
rm_work_populatesdk () {

View File

@@ -95,6 +95,11 @@ read_only_rootfs_hook () {
sed -i -e '/^[#[:space:]]*\/dev\/root/{s/defaults/ro/;s/\([[:space:]]*[[:digit:]]\)\([[:space:]]*\)[[:digit:]]$/\1\20/}' ${IMAGE_ROOTFS}/etc/fstab
fi
# Tweak the "mount -o remount,rw /" command in busybox-inittab inittab
if [ -f ${IMAGE_ROOTFS}/etc/inittab ]; then
sed -i 's|/bin/mount -o remount,rw /|/bin/mount -o remount,ro /|' ${IMAGE_ROOTFS}/etc/inittab
fi
# If we're using openssh and the /etc/ssh directory has no pre-generated keys,
# we should configure openssh to use the configuration file /etc/ssh/sshd_config_readonly
# and the keys under /var/run/ssh.
@@ -356,7 +361,9 @@ rootfs_reproducible () {
echo $sformatted > ${IMAGE_ROOTFS}/etc/version
bbnote "rootfs_reproducible: set /etc/version to $sformatted"
find ${IMAGE_ROOTFS}/etc/gconf -name '%gconf.xml' -print0 | xargs -0r \
sed -i -e 's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g'
if [ -d ${IMAGE_ROOTFS}${sysconfdir}/gconf ]; then
find ${IMAGE_ROOTFS}${sysconfdir}/gconf -name '%gconf.xml' -print0 | xargs -0r \
sed -i -e 's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g'
fi
fi
}

View File

@@ -573,7 +573,7 @@ def sanity_check_conffiles(d):
if check_conf_exists(conffile, d) and d.getVar(current_version) is not None and \
d.getVar(current_version) != d.getVar(required_version):
try:
bb.build.exec_func(func, d, pythonexception=True)
bb.build.exec_func(func, d)
except NotImplementedError as e:
bb.fatal(str(e))
d.setVar("BB_INVALIDCONF", True)

View File

@@ -89,11 +89,6 @@ SSTATE_HASHEQUIV_METHOD[doc] = "The fully-qualified function used to calculate \
the output hash for a task, which in turn is used to determine equivalency. \
"
SSTATE_HASHEQUIV_SERVER ?= ""
SSTATE_HASHEQUIV_SERVER[doc] = "The hash equivalence sever. For example, \
'http://192.168.0.1:5000'. Do not include a trailing slash \
"
SSTATE_HASHEQUIV_REPORT_TASKDATA ?= "0"
SSTATE_HASHEQUIV_REPORT_TASKDATA[doc] = "Report additional useful data to the \
hash equivalency server, such as PN, PV, taskname, etc. This information \
@@ -329,7 +324,7 @@ def sstate_installpkg(ss, d):
pstaging_fetch(sstatefetch, d)
if not os.path.isfile(sstatepkg):
bb.note("Staging package %s does not exist" % sstatepkg)
bb.note("Sstate package %s does not exist" % sstatepkg)
return False
sstate_clean(ss, d)
@@ -340,7 +335,8 @@ def sstate_installpkg(ss, d):
if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
signer = get_signer(d, 'local')
if not signer.verify(sstatepkg + '.sig'):
bb.warn("Cannot verify signature on sstate package %s" % sstatepkg)
bb.warn("Cannot verify signature on sstate package %s, skipping acceleration..." % sstatepkg)
return False
# Empty sstateinst directory, ensure its clean
if os.path.exists(sstateinst):
@@ -658,8 +654,12 @@ def sstate_package(ss, d):
if d.getVar('SSTATE_SKIP_CREATION') == '1':
return
sstate_create_package = ['sstate_report_unihash', 'sstate_create_package']
if d.getVar('SSTATE_SIG_KEY'):
sstate_create_package.append('sstate_sign_package')
for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \
['sstate_report_unihash', 'sstate_create_package', 'sstate_sign_package'] + \
sstate_create_package + \
(d.getVar('SSTATEPOSTCREATEFUNCS') or '').split():
# All hooks should run in SSTATE_BUILDDIR.
bb.build.exec_func(f, d, (sstatebuild,))
@@ -750,6 +750,11 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
sstate_create_package () {
TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
# Exit earlu if it already exists
if [ -e ${SSTATE_PKG} ]; then
return
fi
# Use pigz if available
OPT="-czS"
if [ -x "$(command -v pigz)" ]; then
@@ -769,19 +774,24 @@ sstate_create_package () {
tar $OPT --file=$TFILE --files-from=/dev/null
fi
chmod 0664 $TFILE
mv -f $TFILE ${SSTATE_PKG}
# Skip if it was already created by some other process
if [ ! -e ${SSTATE_PKG} ]; then
mv -f $TFILE ${SSTATE_PKG}
else
rm $TFILE
fi
}
python sstate_sign_package () {
from oe.gpg_sign import get_signer
if d.getVar('SSTATE_SIG_KEY'):
signer = get_signer(d, 'local')
sstate_pkg = d.getVar('SSTATE_PKG')
if os.path.exists(sstate_pkg + '.sig'):
os.unlink(sstate_pkg + '.sig')
signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None,
d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False)
signer = get_signer(d, 'local')
sstate_pkg = d.getVar('SSTATE_PKG')
if os.path.exists(sstate_pkg + '.sig'):
os.unlink(sstate_pkg + '.sig')
signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None,
d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False)
}
python sstate_report_unihash() {
@@ -808,29 +818,26 @@ sstate_unpack_package () {
BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *, sq_unihash=None):
ret = []
missed = []
def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
found = set()
missed = set()
extension = ".tgz"
if siginfo:
extension = extension + ".siginfo"
def gethash(task):
if sq_unihash is not None:
return sq_unihash[task]
return sq_hash[task]
return sq_data['unihash'][task]
def getpathcomponents(task, d):
# Magic data from BB_HASHFILENAME
splithashfn = sq_hashfn[task].split(" ")
splithashfn = sq_data['hashfn'][task].split(" ")
spec = splithashfn[1]
if splithashfn[0] == "True":
extrapath = d.getVar("NATIVELSBSTRING") + "/"
else:
extrapath = ""
tname = sq_task[task][3:]
tname = bb.runqueue.taskname_from_tid(task)[3:]
if tname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and splithashfn[2]:
spec = splithashfn[2]
@@ -839,18 +846,18 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *,
return spec, extrapath, tname
for task in range(len(sq_fn)):
for tid in sq_data['hash']:
spec, extrapath, tname = getpathcomponents(task, d)
spec, extrapath, tname = getpathcomponents(tid, d)
sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + extension)
sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension)
if os.path.exists(sstatefile):
bb.debug(2, "SState: Found valid sstate file %s" % sstatefile)
ret.append(task)
found.add(tid)
continue
else:
missed.append(task)
missed.add(tid)
bb.debug(2, "SState: Looked for but didn't find file %s" % sstatefile)
mirrors = d.getVar("SSTATE_MIRRORS")
@@ -880,7 +887,7 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *,
thread_worker.connection_cache.close_connections()
def checkstatus(thread_worker, arg):
(task, sstatefile) = arg
(tid, sstatefile) = arg
localdata2 = bb.data.createCopy(localdata)
srcuri = "file://" + sstatefile
@@ -892,22 +899,22 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *,
connection_cache=thread_worker.connection_cache)
fetcher.checkstatus()
bb.debug(2, "SState: Successful fetch test for %s" % srcuri)
ret.append(task)
if task in missed:
missed.remove(task)
found.add(tid)
if tid in missed:
missed.remove(tid)
except:
missed.append(task)
missed.add(tid)
bb.debug(2, "SState: Unsuccessful fetch test for %s" % srcuri)
pass
bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d)
tasklist = []
for task in range(len(sq_fn)):
if task in ret:
for tid in sq_data['hash']:
if tid in found:
continue
spec, extrapath, tname = getpathcomponents(task, d)
sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + extension)
tasklist.append((task, sstatefile))
spec, extrapath, tname = getpathcomponents(tid, d)
sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension)
tasklist.append((tid, sstatefile))
if tasklist:
msg = "Checking sstate mirror object availability"
@@ -928,38 +935,37 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False, *,
bb.event.fire(bb.event.ProcessFinished(msg), d)
# Likely checking an individual task hash again for multiconfig sharing of sstate tasks so skip reporting
if len(sq_fn) == 1:
return ret
if len(sq_data['hash']) == 1:
return found
inheritlist = d.getVar("INHERIT")
if "toaster" in inheritlist:
evdata = {'missed': [], 'found': []};
for task in missed:
spec, extrapath, tname = getpathcomponents(task, d)
sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + ".tgz")
evdata['missed'].append( (sq_fn[task], sq_task[task], gethash(task), sstatefile ) )
for task in ret:
spec, extrapath, tname = getpathcomponents(task, d)
sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(task), d) + "_" + tname + ".tgz")
evdata['found'].append( (sq_fn[task], sq_task[task], gethash(task), sstatefile ) )
for tid in missed:
spec, extrapath, tname = getpathcomponents(tid, d)
sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz")
evdata['missed'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
for tid in found:
spec, extrapath, tname = getpathcomponents(tid, d)
sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz")
evdata['found'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d)
# Print some summary statistics about the current task completion and how much sstate
# reuse there was. Avoid divide by zero errors.
total = len(sq_fn)
currentcount = d.getVar("BB_SETSCENE_STAMPCURRENT_COUNT") or 0
total = len(sq_data['hash'])
complete = 0
if currentcount:
complete = (len(ret) + currentcount) / (total + currentcount) * 100
complete = (len(found) + currentcount) / (total + currentcount) * 100
match = 0
if total:
match = len(ret) / total * 100
bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(ret), len(missed), currentcount, match, complete))
match = len(found) / total * 100
bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(found), len(missed), currentcount, match, complete))
if hasattr(bb.parse.siggen, "checkhashes"):
bb.parse.siggen.checkhashes(missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d)
bb.parse.siggen.checkhashes(sq_data, missed, found, d)
return ret
return found
BB_SETSCENE_DEPVALID = "setscene_depvalid"

View File

@@ -197,7 +197,7 @@ def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d):
for pkgarch in pkgarchs:
for manifest in glob.glob(d.expand("${SSTATE_MANIFESTS}/manifest-%s-*.populate_sysroot" % pkgarch)):
if manifest.endswith("-initial.populate_sysroot"):
# skip glibc-initial and libgcc-initial due to file overlap
# skip libgcc-initial due to file overlap
continue
if not native and (manifest.endswith("-native.populate_sysroot") or "nativesdk-" in manifest):
continue

View File

@@ -75,11 +75,6 @@ syslinux_hddimg_install() {
syslinux ${IMGDEPLOYDIR}/${IMAGE_NAME}.hddimg
}
syslinux_hdddirect_install() {
DEST=$1
syslinux $DEST
}
python build_syslinux_cfg () {
import copy
import sys

View File

@@ -11,50 +11,25 @@
do_bootimg[depends] += "${MLPREFIX}systemd-boot:do_deploy"
EFIDIR = "/EFI/BOOT"
require conf/image-uefi.conf
# Need UUID utility code.
inherit fs-uuid
efi_populate() {
DEST=$1
efi_populate_common "$1" systemd
EFI_IMAGE="systemd-bootia32.efi"
DEST_EFI_IMAGE="bootia32.efi"
if [ "${TARGET_ARCH}" = "x86_64" ]; then
EFI_IMAGE="systemd-bootx64.efi"
DEST_EFI_IMAGE="bootx64.efi"
fi
install -d ${DEST}${EFIDIR}
# systemd-boot requires these paths for configuration files
# they are not customizable so no point in new vars
install -d ${DEST}/loader
install -d ${DEST}/loader/entries
install -m 0644 ${DEPLOY_DIR_IMAGE}/${EFI_IMAGE} ${DEST}${EFIDIR}/${DEST_EFI_IMAGE}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_EFI_IMAGE" >${DEST}/startup.nsh
install -m 0644 ${SYSTEMD_BOOT_CFG} ${DEST}/loader/loader.conf
for i in ${SYSTEMD_BOOT_ENTRIES}; do
install -m 0644 ${i} ${DEST}/loader/entries
done
}
efi_iso_populate() {
iso_dir=$1
efi_populate $iso_dir
mkdir -p ${EFIIMGDIR}/${EFIDIR}
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
efi_iso_populate_append() {
cp -r $iso_dir/loader ${EFIIMGDIR}
cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
echo "fs0:${EFIPATH}\\${DEST_EFI_IMAGE}" > ${EFIIMGDIR}/startup.nsh
if [ -f "$iso_dir/initrd" ] ; then
cp $iso_dir/initrd ${EFIIMGDIR}
fi
}
efi_hddimg_populate() {
efi_populate $1
}
inherit systemd-boot-cfg

View File

@@ -214,7 +214,6 @@ python rm_systemd_unitdir (){
if (os.path.exists(systemd_libdir) and not os.listdir(systemd_libdir)):
os.rmdir(systemd_libdir)
}
do_install[postfuncs] += "rm_systemd_unitdir "
python rm_sysvinit_initddir (){
import shutil
@@ -229,4 +228,8 @@ python rm_sysvinit_initddir (){
if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)):
shutil.rmtree(sysv_initddir)
}
do_install[postfuncs] += "rm_sysvinit_initddir "
do_install[postfuncs] += "${RMINITDIR} "
RMINITDIR_class-target = " rm_sysvinit_initddir rm_systemd_unitdir "
RMINITDIR = ""

View File

@@ -104,13 +104,16 @@ python do_create_extlinux_config() {
if default:
cfgfile.write('DEFAULT %s\n' % (default))
# Need to deconflict the labels with existing overrides
label_overrides = labels.split()
default_overrides = localdata.getVar('OVERRIDES').split(':')
# We're keeping all the existing overrides that aren't used as a label
# an override for that label will be added back in while we're processing that label
keep_overrides = list(filter(lambda x: x not in label_overrides, default_overrides))
for label in labels.split():
overrides = localdata.getVar('OVERRIDES')
if not overrides:
bb.fatal('OVERRIDES not defined')
localdata.setVar('OVERRIDES', label + ':' + overrides)
localdata.setVar('OVERRIDES', ':'.join(keep_overrides + [label]))
extlinux_console = localdata.getVar('UBOOT_EXTLINUX_CONSOLE')

Some files were not shown because too many files have changed in this diff Show More