Compare commits

...

271 Commits

Author SHA1 Message Date
Peter Kjellerstedt
8e4c03744c oe-selftest: devtool: Support meta being a symbolic link
oe-selftest's devtool tests have been broken since commit 2457cd57
(oe-selftest: devtool: avoid parallel races by using temporary copy of
core) if meta is a symbolic link.

(From OE-Core rev: daba6c5a991b370709d17e51305334f55a3858ec)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-21 21:30:35 +01:00
Khem Raj
83eece2535 tcmode-default: Drop pinning go to 1.9
This ensures that we default to latest go recipes
1.9 is not supported anymore

(From OE-Core rev: d48c8148eae41e613448d78c26516538244cd9c9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-21 21:30:35 +01:00
Mark Hatle
28c2f0dfe3 systemd: Remove items that made this machine (qemu) specific
Create a new systemd-conf recipe to contain the specific system/machine
configuration items.  This new package is now machine specific.

Without doing this trying to create a single system with multiple BSPs,
one of which was qemu based, would result in the systemd -and- everything that
dependend upon systemd to have their hash changed.  The hash changing means
lots of rebuilds, but worse if it's a package based system each different
machine ends with a new PR value and a newly generated package.

(From OE-Core rev: d3395418758ed414eee3e95e13d2d8bc5dca88cc)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-21 21:30:35 +01:00
Anuj Mittal
5293bee5f7 linux-yocto: update genericx86* SRCREV for 4.18
Bump to kernel release v4.18.14.

(From meta-yocto rev: 7cf931279918affe77330f7803e57678c33f5e51)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:51 +01:00
Anuj Mittal
adee8a7a59 linux-yocto: update genericx86* SRCREV for 4.14
Bump to kernel release v4.14.76.

(From meta-yocto rev: e864c929738fcd07e1b2a2d1e04800d82030b4a5)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:51 +01:00
Randy MacLeod
bc98a1e89d valgrind: update from 3.13.0 to 3.14.0
The removed patches are all upstream.
Adjusted two patches due to rebase.
Guard against __GLIBC_PREREQ for musl libc

(From OE-Core rev: 37841ec56d7756ec9ee00e2a2005681b220f6f5d)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Matt Hoosier
c4acf1b531 volatile-binds: use overlayfs if available
Copying files from the read-only root filesystem to the tmpfs
providing the volatile directories can be slow and waste memory.
If the kernel supports the overlay filesystem, use it to mount
a writable tmpfs on top of the read-only directory from the
rootfs and avoid copies.

Analogous to the modification made to initscripts's
read-only-rootfs-hook in 370fda1b2e8d5dc011522131bba4106de26bfb19.

(From OE-Core rev: b4976f3cf8cd028f165100b67867adb862da4d7f)

Signed-off-by: Matt Hoosier <matt.hoosier@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Ross Burton
ef2824e872 openssl: do an out-of-tree build
OpenSSL supports out-of-tree builds so we should use them.  This makes builds
more reliable, and makes it easier to reduce the size of the ptest package.

(From OE-Core rev: e028b4457781f60d8491a99a23011996fa913013)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Ross Burton
b75a0a8d82 openssl: fix ptest
Previously the ptest installation was simply a copy of the entire build tree,
which is terribly ugly.

Instead copy just the pieces we need, symlink to /usr as appropriate, and add
missing dependencies.  Remove PRIVATE_LIBS as we don't ship copies of the
libraries now.

Also remember to do 'set -x' in run-ptest, so if the tests fail the runner
knows!

[ YOCTO #12965 ]
[ YOCTO #12967 ]

(From OE-Core rev: 7831d2d3a1069b9d3a8d32e41f0a292e1add56ba)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Olaf Mandel
2713d9bcc3 npm: change install directory to upstream default
The node binary searches for packages in a number of locations, the last
of which is $PREFIX/lib/node (here: /usr/lib/node) from the list of
GLOBAL_FOLDERS [1]. Change the installation directory for all packages
depending on npm.bbclass to that location. This removes the need to
define the NODE_PATH variable to the non-standard /usr/lib/node_modules
value.

While the Tips for Package Managers [2] discusses installing packages to
/usr/lib/node_modules/<name>/<version>, this has several drawbacks:

 * it does not work for the REPL as mentioned in the documentation
 * it also does not work for any code _not_ installed as a global
   package under /usr/lib/node_modules (e.g. /usr/share/foo.js will not
   find any packages below /usr/lib)
 * using the non-default location and then having to set NODE_PATH
   barely saves any time: there are only two file-system lookups (to the
   legacy $HOME/.node_modules and $HOME/.node_libraries) directories
   before the library would be found

And the suggestion was made in the context of deduping the node_modules
tree by installing all packages in a flat hierarchy and using symlinks
to the correct version of each dependency. This is not what OpenEmbedded
does, so none of those benefits (deduping, cleaner packages) are being
had by shifting the installation directory to /usr/lib/node_modules.

[1]: https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
[2]: https://nodejs.org/api/modules.html#modules_addenda_package_manager_tips

(From OE-Core rev: 2036137151929b541293154ff529475071cd92b0)

Signed-off-by: Olaf Mandel <o.mandel@menlosystems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Olof Johansson
32914a1780 devtool-source.bbclass: Only create each patch branch once
For conditonally applied patches based on SRC_URI overrides, the
devtool-source class would try to create a new branch for each override
assignment as a postfunc to do_patch, but if the same override was used
multiple times, it would try to create the same branch multiple times,
causing errors like

> Exception: bb.process.ExecutionError: Execution of
\   'git checkout f0f0f0f0f0ff0f0f0f0f0f0f0f0f0f0f0ff0f0f0 -b devtool-override-foo'
\   failed with exit code 128:
> fatal: A branch named 'devtool-override-foo' already exists.

This change makes sure that the devtool-source bbclass will only create
one branch per override.

(From OE-Core rev: 95a921959d340f74b5604df57737c1eeaad0023e)

Signed-off-by: Olof Johansson <olofjn@axis.com>
Reviewed-by: Peter Kjellerstedt <pkj@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Richard Purdie
72a92f6e42 image_types: Fix a shell syntax error in do_image_ubi
| DEBUG: Executing shell function do_image_ubi
| /home/pokybuild/yocto-worker/nightly-oe-selftest/build/build-st-31289/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/temp/run.do_image_ubi.7928: 123: [: missing ]

(From OE-Core rev: e1c6442872c9361b6b61a83adcce9cade2f2ecd2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Mingli Yu
509227b361 buildtools-tarball: add nativesdk-rpcsvc-proto
Fedora28 repackages rpcgen program to rpcgen
package and the program will no longer be
part of the glibc-common package.
fedora 28:
$ rpm -qf /usr/bin/rpcgen
rpcgen-1.3.1-4.fc28.x86_64

fedora 27:
$ rpm -qf /usr/bin/rpcgen
glibc-common-2.26-27.fc27.x86_64

Once build a project on fedora28 host without
installing the extra rpcgen package, there
comes below error:
ERROR: Unable to start bitbake server
ERROR: Last 10 lines of server log for this session (/yocto/builds/upgrade2/bitbake-cookerdaemon.log):
    self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
  File "/yocto/poky/bitbake/lib/bb/cooker.py", line 197, in __init__
    self.initConfigurationData()
  File "/yocto/poky/bitbake/lib/bb/cooker.py", line 356, in initConfigurationData
    self.databuilder.parseBaseConfiguration()
  File "/yocto/poky/bitbake/lib/bb/cookerdata.py", line 317, in parseBaseConfiguration
    raise bb.BBHandledException
bb.BBHandledException
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
  rpcgen

So add nativesdk-rpcsvc-proto to provide the
program rpcgen to fix the gap.

(From OE-Core rev: 52fbf46a32f03266e31811fde7d4466e7ef85fc8)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Khem Raj
faae1a1e88 go: Upgrade to 1.11.1
Drop 1.10 recipes in favor of 1.11
we have had reports of 1.10 not being quite
functional wth OE

(From OE-Core rev: 1cf3aee0ba0fb0c2e8b82f403384a1928a9b03f4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Chen Qi
4ad151a53d python: backport patch to fix CVE-2018-14647
Backport patch to fix the following CVE.

CVE: CVE-2018-14647

(From OE-Core rev: 68e51756f67499081c3c53cff6c5c1efdf4b60f0)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Chen Qi
cdec724312 python: backport patch to fix CVE-2018-1000802
Backport a patch to fix the following CVE.

CVE: CVE-2018-1000802

(From OE-Core rev: c0343f1035af98cb451eea0de94c16fe89ffdf48)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Richard Purdie
c1f186fe12 Revert "os-release: avoid multilib expand"
This reverts commit 591a11ba58.

This is not needed after the recent os-release fix.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Alexey Brodkin
779051e0a4 packagegroup-core-tools-profile: disable valgrind on arc
As of today there's no port of Valgrind for ARC so disabling it.

(From OE-Core rev: c1a98853f90857a735bacf75ccbdd6f2f7094ccf)

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Dan McGregor
771c156fe6 os-release: move to nonarch_libdir
Even on multilib systems, /usr/lib is where systemd expects the
os-release file to live.

(From OE-Core rev: b7b476efee8c959a0227905e40bd9b5ef493632d)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Dan McGregor
78db831a7b util-linux: alternatify cal, rev, and ionice
These are also provided by toybox in its default configuration,
and can be turned on in busybox.

(From OE-Core rev: 33c8dc08c9b160a0bb1d71d8b421a99de6e6eeee)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Hongxu Jia
d4bc9704a5 perf: fix do_compile failure with /tmp mounted with noexec
On a builder which has /tmp mounted nexec, the ARM64 generation of
the sycall table will fail:
[snip]
|perf-1.0/tools/perf/arch/arm64/entry/syscalls//mksyscalltbl:
/tmp/create-table-6VGPSt: Permission denied
[snip]

To avoid the permission denied error, we must instruct the perf build
to place temporary files in an appropriate directory (versus always
using /tmp). To do this, we need both a kernel source change to perf,
and a recipe change to pass the temp directory in by a TMPDIR variable.

The linux-yocto has a reference kernel change: [perf arm64: Fix generate
system call table failed with /tmp mounted with noexec], that has also
been submitted upstream mailing list linux-perf-users@vger.kernel.org

(From OE-Core rev: d819e7fa76e2b732aa7c33ab0e9a834781090824)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Reviewed-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 22:40:16 +01:00
Scott Rifenbark
4b4b9c9c19 ref-manual: Updates to describe wildcarding support
Added specific wildcarding support descriptions for all related
variables and file panthnames.

(From yocto-docs rev: 543e398c4ae1bce38517a88cd91c957a583a2892)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 14:28:00 +01:00
Scott Rifenbark
afec74f512 poky.ent: Updated variable for "October 2018" string.
Manual revision history tables updated.

(From yocto-docs rev: c957e4ab60b4cf2778824162758b2b12bddcfafb)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 14:28:00 +01:00
Richard Purdie
787485cda8 bitbake: bitbake: Bump version to 1.40.0
(Bitbake rev: 2820e7aab2203fc6cf7127e433a80b7d13ba75e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 14:27:03 +01:00
Richard Purdie
a9dc2ac9e0 bitbake: data_smart: Fix removal handling interaction issue with overrides
If a variable has a _remove applied to it but that variable is in turn
'renamed' through OVERRIDES, the removal gets lost with the current code.

TEST = "foo"
TEST_someval = "bar"
TEST_someval_remove = "bar"
OVERRIDES = "someval"

currently gives "bar" for TEST but should give "".

This fixes the code to track the removal and adds a test case to ensure this
doesn't regress again.

(Bitbake rev: 8f55010c18057be040f073d8bcb4c5c2c311d809)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-20 14:27:03 +01:00
Richard Purdie
52f1041e1a qemux86/gstreamer: Move kernel module recommendation to the machine configuration
If you try to build a system with multiple BSPs, one of which is qemux86
or qemux86-64, the gstreamer package will change.  This will trigger
anything using gstream to also be rebuilt.

For a package based system, the PR values will also be incremented each
time.  The end result will be an ever growing set of PR values as well as
being unable to tell which configured version of the multimedia components
are really being deployed.

These therefore belong in the machine configuration.

(From OE-Core rev: 112775995158cf6c504fd6beef345ee446f4f11d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Yi Zhao
c7b93f53e0 dhcp: use config file dhcpd6.conf in dhcpd6.service for DHCP IPv6
Use dhcpd6.conf for DHCP IPv6 and dhpcd.conf for DHCP IPv4.

(From OE-Core rev: 0772ed9acf96c53b05e6ac19e1af78bbb1192a3b)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Dan McGregor
41081ca0ee base-files: change permissions on /sys and /proc
The kernel mounts /proc and /sys with the mode 555. Fedora explicitly
sets this value in its filesystem setup package. Debian doesn't seem
to set it explictly.  Having them be 755 causes permission issues on
upgrades inside a container where the guest does not have the
permission to change the modes of the mount points.

So, just bite the bullet and force them to be 555.

(From OE-Core rev: 7e311b0c7222fa9127a96945c9ded7bee5e40eb3)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Dan McGregor
71677b7435 kmod: bump alternative priority
toybox by default has a priority of 60, and busybox of 50. Bump kmod's
priority so that it beats both toybox and busybox.

(From OE-Core rev: b17ae3e13dea4b12f1720170237142e04d5ab578)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Dan McGregor
82cd4da67f file: alternatify file
file is also provided by toybox.

(From OE-Core rev: e9a34c0753bb772f26d3ddd7fed3fc234635b172)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Alexey Brodkin
06aa8ccade mpfr: Fix compilation for ARC
MPFR has a couple of things implemented in assembly and in case of
ARC those parts were written long ago when ARC GCC port was not yet
upstreamed. On upstreaming of GCC some constraints were changed and
so we can no longer build MPFR for ARC with up-to-date tools seeing
something like that:
| In file included from ../../mpfr-4.0.1/src/mpfr-impl.h:112,
|                  from ../../mpfr-4.0.1/src/mul.c:24:
| ../../mpfr-4.0.1/src/mul.c: In function 'mpfr_mul':
| ../../mpfr-4.0.1/src/mpfr-longlong.h:415:3: error: impossible constraint in 'asm'
|    __asm__ ("add.f\t%1, %4, %5\n\tadc\t%0, %2, %3"   \
|    ^~~~~~~

(From OE-Core rev: 887a062ca139014ae6dfd1919e0ff9a5ef4db35e)

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Mark Hatle
83ee5c7450 mesa: Remove machine specific append
If you try to build a system with multiple BSPs, one of which is qemux86
or qemux86-64, the overall system configuration will change and all of the
graphics packages will end up being rebuilt each time.

For a package based system, the PR values will also be incremented each
time.  The end result will be an ever growing set of PR values as well as
being unable to tell which configured version of the graphics components
are really being deployed.

The solution was to always include the virgl gallium driver when an x86
based target is used.  This may end up wasting some space, but solves the
hash issue.

(From OE-Core rev: 37e9465b342f6075ce13479dfed59cd2a7cc46ae)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Yeoh Ee Peng
2ddacd7106 oeqa/core/runner: refactor for OEQA to write json testresult
Refactor the original _getDetailsNotPassed method to return
testresult details (test status and log), which will be reused
by future OEQA code to write json testresult.

Take the opportunity to consolidate and simplify the logic used
to gather test status and log within the TestResult instance.

(From OE-Core rev: 79ee7d1c371a86edeb61c99679985118da657e5d)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Aníbal Limón
07fab73745 meta/classes/testexport: Remove __pycache__ from exported tests
The __pycache__ is created based on python3 version in the build machine
and isn't a garantee to be useful on the system that runs exported tests.

(From OE-Core rev: 405e822e9da4b53ec9ee8019364fdcb13ccc2587)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Carlos Rafael Giani
e59d505373 gstreamer1.0-plugins-bad: add openmpt packageconfig
(From OE-Core rev: b9ba5934c684ab320f9ec0b8d1f9ea301f383c1f)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Peter Bergin
6d14fe119c rpm: handle virtual memory usage when limit is set
Fix the situation where the task do_package_write_rpm ends up in
"liblzma: memory allocation failed". This happens if the host
environment has set a limit on virtual_memory for the user with
'ulimit -v' for packages with a lot of binary packages, e.g. glibc-locale.

(From OE-Core rev: a937cff2746073d1dea37d85e7305d8d6705ff28)

Signed-off-by: Peter Bergin <peter@berginkonsult.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Ross Burton
1de82d5fc0 package_manager: handle remove() with no packages
If remove() is called with an empty package list, ensure we do nothing instead
of calling the underlying package manager with an invalid command line.

[ YOCTO #12900 ]

(From OE-Core rev: 715ec20c433cb4ed5fde938c33a42b2a296e4e56)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 23:26:35 +01:00
Richard Purdie
4ef016683d bitbake: test/data: Add new tests for task checksum changing/not changing
This adds some basic tests for task checksums to ensure that the
checksums:

* change when variables change
* change when active _remove operators are present
* don't change when the _remove operators are not active
* change when an active contains() expression is present
* dont' change a contains() expression isn't active

There is a lot of other functionality which should be added to this
test but its a start.

(Bitbake rev: 5463c16e3619d324aed137f47f93f0997a227d29)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Richard Purdie
7e92127128 bitbake: data/siggen: Extract task hash generation code into a function
By creating a standalone function, we can add better functional testing
of this code.

(Bitbake rev: 796a20d24dc18479de1975a37b9e52a5ac75c73f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Richard Purdie
f7f5e30667 bitbake: bitbake: data: Ensure task checksums account for remove data
Currently remove operations are not being accounted for in the task
checksums. This is a fairly serious oversight and needs to be fixed.

To do so, we need internal data from getVarFlag combined with the
expanded variable data so that only "active" remove operators are
accounted for in the task checksum. We can get this from the new
optional removes attribute in the returned parser object.

The code can then use the data on active remove operators to account
for the removals in task checksum but only when the removal is active.

We have to be careful here not to reference any expanded data since this
may for example contain build paths. This means we can only map back
and reference the unsplit (and hence unexpanded) remove string which may
expand to multiple removal values.

[YOCTO #12913]

(Bitbake rev: 57d2ee17ae83a139a37081eb082e6184fa883581)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Richard Purdie
9248bc1c53 bitbake: data/data_smart: Allow getVarFlag to return the variable parser object
(Bitbake rev: 136100dc932c9019737f927d826955425134010f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Richard Purdie
f5181b36d6 bitbake: data_smart: Fix expand_cache and _remove operator interaction issues
The contents of the expand_cache is meant to match the return value of
getVarFlag() but the implementation was mostly in expandWithRefs(). If
an incorrect key was passed to expandWithRefs(), or a variable was only
partially expanded with no remove processing, the cache could become
corrupted.

Move the code to getVarFlag making the data lifecycle very clear, meaning
other calls to expandWithRefs() cannot corrupt the cache.

The expand_cache reset code needs to be moved ahead of any remote data
connectors too, since the expand_cache is now on the local side of the
connection.

(Bitbake rev: a039052f9b680eae53f3f12b7381b945f1d69253)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Richard Purdie
58e3f45d4b bitbake: data_smart: Micro optimise _remove handling
This brings _remove handling into line with _append/_prepend with regard
to the parsing flag to getVarFlag.

This is an internal flag and the only times this is used is through getVar
during renameVar operations and when processing ?= operations to see if
a variable is set. In either case we don't need to process remove operations.

Therefore take the minor speedup and skip processing for parsing=True.

[YOCTO #10945]

(Bitbake rev: 6d19eb3226b59922c0f888e33b28443635151501)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Richard Purdie
24139e27c6 bitbake: fetch2: Avoid incorrect getVarFlag call
Calling getVarFlag with flag=None makes no sense, don't do it. Bitbake
used to silently ignore this, it now warns so avoid the warning.

(Bitbake rev: a68de8ace62eaba23856bfb301efbbe1824322aa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Chris Laplante via bitbake-devel
76361c9b38 bitbake: bitbake-user-manual: fix description of BB_RUNTASK
Contrary to what the manual said, BB_RUNTASK does include the do_
prefix, unlike BB_CURRENTTASK.

(Bitbake rev: 3f4968c77129252e8d0833fbd683372fca243a90)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Urs Fässler
a8a077cafb bitbake: fetch2/git: provide information about missing sources
Provide more information in the case the sources are not found in the
unpack step.

(Bitbake rev: 27a2214bf6f2e7c61bfc422a20959a55f7e0d25d)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:27 +01:00
Urs Fässler
8553b2c111 bitbake: fetch2/git: explicitly show the decision logic to select the source in code
(Bitbake rev: 78d8fb3a7899e1404a513be1c2b2b4440da8b12d)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Urs Fässler
0d4fe0602e bitbake: fetch2/git: prevent access to non-existing clonedir
A user friendly error is throw when neither the clonedir nor
fullshallow exist. Without the check, a difficult to interpret error
is throw from within the fetch command.

(Bitbake rev: 30cf2506007d25162f0805051212f54c39034ff3)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Urs Fässler
49f25eceeb bitbake: fetch2: extract the function which ensures that a valid symlink exists
For better readability and future use, we extract the function which
ensures that a given symlink exists.

(Bitbake rev: 5e69ca56533666a097bb23d09ab673e5c862051c)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Urs Fässler
9a058e4421 bitbake: fetch2/git: use intention revealing names for premirror tests
(Bitbake rev: 3434e64e7c077c1ecff7b36f02b6c6b59a7d1fe9)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Urs Fässler
36fcd5eda9 bitbake: fetch2/git: add tests to capture existing behavior wrt. naming of git shallow tarball
The mapping of the URLs to the local shallow tarballs is not obvious. For
easier understanding, we add this tests to explicitly showing the mapping.

(Bitbake rev: 05f2ac8e19a027d103921b5ae0070db609a83042)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Urs Fässler
b6a972922b bitbake: fetch2/git: add tests to capture existing behavior wrt. naming of mirror tarball
The mapping of the URLs to the local tarballs is not obvious. For easier
understanding, we add this tests to explicitly showing the mapping.

(Bitbake rev: c604d9402b4c9ad7eb5c794ab24f2f348d9719a9)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Urs Fässler
ffac9c20f5 bitbake: fetch2/git: add tests to capture existing behavior wrt. naming of clone directories
The mapping of the URLs to the local directory is not obvious. For easier
understanding, we add this tests to explicitly showing the mapping.

(Bitbake rev: 5f92682389fee437d6df2ff7718c571b7444e179)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Peter Marko
212cbc0382 bitbake: fetch2: avoid circular recursion with SRCPV in PR
Some recent changes broke SRCPV and workaround was introduced
to avoid circular dependency if SRCPV is in PV.
However there is still the same error if SRCPV is in PR.

(Bitbake rev: 05ee4845f925b8528a7ce9cffb4bae425b8fa1e9)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Tobias Olausson
f2a6f6e80e bitbake: taskexp: add focused search bar
Searching in the task explorer requires one to focus the task list. A
readily visible and focused search bar makes searching intuitive.

(Bitbake rev: 43f8a23d56995f552f98a666e86b6cc124e235a4)

Signed-off-by: Tobias Olausson <tol@hms.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Mark Hatle
b33c179aa9 bitbake: layerindexlib: Fix various type checking errors
In the list_obj function, we can't check if the requested object is 'in',
the index data -- as it's actually an attribute of the object.  Move to hasattr.

The remaining items were incorrect usages of 'type' for class type comparison.
Instead move to 'isinstance'.  Remaing 'type' comparisons are still valid.  The
code was also reordered slightly to avoid a lot of:

if not isinstance(x, y):
   ...
else:
   ...

reordering it removes the not and makes the code slightly easier to read.

(Bitbake rev: cddea4282820ef10ad4863d87327891ea9383916)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
David Reyna
64fe513327 bitbake: toaster: missing shutil import
The "buildimport.py" script is missing the "import shutil" line,
which causes a project import page failure.

[YOCTO #12959]

(Bitbake rev: 0bfbcc786fd67bd40153160db7fcd41cd9295234)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
David Reyna
ddb1f31a4c bitbake: toaster: bump django version to match build tools
The version of django in the 2.6 release got bumped to 1.11.14.
The toaster requirements file needs to be updated to accept it.

[YOCTO #12958]

(Bitbake rev: b081b78a330fee30b172c2c8bdc9c196a65be9af)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
David Reyna
089f5dfc2a bitbake: toaster: bad link for distro conf file
The distro source path link is missing "conf/distro/", and the
display is using the machine link instead of the distro link.

[YOCTO #12957]

(Bitbake rev: e43ff061b03878057e49c44aa3ee2e4c7a5d5503)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Richard Purdie
a9aa1d24c7 bitbake: data: Fix whitespace on _remove operations
We have some slightly odd behaviours with the current implementation of
_remove operations. For example:

TEST = " A B"
TEST_remove = "C"

would trigger TEST to become "A B" even thought it doesn't contain "C".

In particular, this means that an inactive remove operator added in a
bbappend could change the task checksum which is not desireable.

Fix the operation to preserve whitespace, adding new tests to make this
explict and test further corner cases. Also update the manual to match.

(Bitbake rev: c0a23dd9155c50a6b7df796980bc7b612cac7994)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Richard Purdie
58530c6e48 bitbake: data_smart: Preserve history when renaming variables
Currently when a variable is renamed, all the variable history is lost.
This makes it hard for users to understand/debug where values came from.

Improve the code so that history is preserved across renamed variables.

(Expanded variable key names are a special case of variable renaming)

(Bitbake rev: 11722c989077a8751a5d0653c523760bf91e6efa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:59:26 +01:00
Martin Jansa
c82410c5cc systemtap: fix QA issue
ERROR: systemtap-4.0-r0 do_package: QA Issue: systemtap:
Files/directories were installed but not shipped in any package:
  /lib
  /lib/systemd
  /lib/systemd/system
  /lib/systemd/system/stap-exporter.service
Please set FILES such that these items are packaged. Alternatively if
they are unneeded, avoid installing them or delete them within
do_install.
systemtap: 4 installed and not shipped files. [installed-vs-shipped]

(From OE-Core rev: d31212bcfe9232e7f6ac9efb4fad0be175a9ca00)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Ross Burton
8c5f73e78c package_manager: implement PACKAGE_EXCLUDE for opkg
opkg has supported the --add-exclude option to install since 0.3.0, so use it to
implement support for PACKAGE_EXCLUDE.

(From OE-Core rev: 6cc99d48c57cb22104980d0d758540e06cb7b80d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Ross Burton
d6f856bb92 maintainers: assign CMake to Pascal Bach
(From OE-Core rev: 954a7715763118ba8e15ce7a96a2b82680f4a6c4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Andrej Valek
5f30534c47 rootfs: possibility to add packages to debug rootfs
Static libraries are not included in rootfs, it means, that sources are
not going into debug rootfs. This option enables to install additional
packages even if the standard package is not installed.

(From OE-Core rev: 708fe1df3d3e22dd693ae7bbfdd3e5af1a1b0bdc)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Alexey Brodkin
e95caf1ebd libgpg-error: Add ARC support
(From OE-Core rev: 2d9dbcc638cc39b935b89b6e66ed216ea9b05d62)

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Yi Zhao
ff74cc841a ifupdown: fix issue for configuring loopback interface
The patch inet-6-.defn-fix-inverted-checks-for-loopback.patch introduced
an issue that ifup/ifdown can not configure loopback interface:

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

$ ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0         1      0      0 0            74      0      0 0 BMRU
lo        65536 0         2      0      0 0             2      0      0 0 LRU
$ ifdown lo
$ ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0         1      0      0 0            74      0      0 0 BMRU
lo        65536 0         2      0      0 0             2      0      0 0 LRU

The original patch is for 0.7.x and the change is not needed for 0.8.x.
Update the patch to make the ifup/ifdown can configure lo interface:
$ ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0         0      0      0 0            77      0      0 0 BMRU
lo        65536 0         2      0      0 0             2      0      0 0 LRU
$ ifdown lo
$ ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0         0      0      0 0            80      0      0 0 BMRU
$ ifup lo
$ ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0         0      0      0 0            81      0      0 0 BMRU
lo        65536 0         2      0      0 0             2      0      0 0 LRU

(From OE-Core rev: f12c4f918048a7814505c5b931113ed8ab0115d9)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Randy MacLeod
7d9b08e37a util-linux: fix alternatives setting for switch-root
The alternative setting for switch_root belongs to the util-linux-switch-root
package instead of the util-linux package. Fix this problem to avoid
a dangling symlink:
   /usr/bin/switch_root-> /usr/bin/switch_root.util-linux
on target and in the sdk.

(From OE-Core rev: b8366a7057da8b880ca36c38999ef658594f4fde)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Bruce Ashfield
5283aeaeca linux-yocto/4.14: update to v4.14.76
Integrating the korg -stable updates that comprise the following commits:

   0b46ce3e3423 Linux 4.14.76
   c03f0ab15f3b ath10k: fix scan crash due to incorrect length calculation
   711b942ae3be virtio_balloon: fix increment of vb->num_pfns in fill_balloon()
   7f42eada5e3f virtio_balloon: fix deadlock on OOM
   251bc1f44c33 rds: rds_ib_recv_alloc_cache() should call alloc_percpu_gfp() instead
   4c925efc2230 ubifs: Check for name being NULL while mounting
   5656b7354183 ucma: fix a use-after-free in ucma_resolve_ip()
   3a7a9fb68c97 f2fs: fix invalid memory access
   dfe96e30b5a5 perf utils: Move is_directory() to path.h
   75fc05a20f5f crypto: chelsio - Fix memory corruption in DMA Mapped buffers.
   b5dcd4ab8e6c ARC: clone syscall to setp r25 as thread pointer
   af1a8101794d powerpc/lib: fix book3s/32 boot failure due to code patching
   609fbeddb24c powerpc: Avoid code patching freed init sections
   4e43fbc8ef25 powerpc/lib/code-patching: refactor patch_instruction()
   0f6e2f4e06be nvme_fc: fix ctrl create failures racing with workq items
   1b2ad48a85c4 ath10k: fix kernel panic issue during pci probe
   8146256b7dcd ath10k: fix use-after-free in ath10k_wmi_cmd_send_nowait
   327400b3a708 perf tools: Fix python extension build for gcc 8
   ec727693a9ef perf annotate: Use asprintf when formatting objdump command line
   79f87e09bcb2 of: unittest: Disable interrupt node tests for old world MAC systems
   171f90d4ae84 tty: Drop tty->count on tty_reopen() failure
   c92e73b11ed1 usb: cdc_acm: Do not leak URB buffers
   821c42e7d5ea USB: serial: simple: add Motorola Tetra MTP6550 id
   35123e64a168 usb: xhci-mtk: resume USB3 roothub first
   c096f5c4a8bc xhci: Add missing CAS workaround for Intel Sunrise Point xHCI
   ec6ae632e04b dm cache: fix resize crash if user doesn't reload cache table
   f11a6abfdb41 dm cache metadata: ignore hints array being too small during resize
   1364055c96c5 PM / core: Clear the direct_complete flag on errors
   9047696cb3f8 mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys
   8ebd65583375 PCI: Reprogram bridge prefetch registers on resume
   25bc6e80f9d6 x86/vdso: Fix vDSO syscall fallback asm constraint regression
   1194e838b879 x86/vdso: Only enable vDSO retpolines when enabled and supported
   64ff5747e2af selftests/x86: Add clock_gettime() tests to test_vdso
   30500cc74a36 x86/vdso: Fix asm constraints on vDSO syscall fallbacks
   71a0556255de drm/syncobj: Don't leak fences when WAIT_FOR_SUBMIT is set
   0c0dd182adae drm/amdgpu: Fix vce work queue was not cancelled when suspend
   309a1c5cfc59 xen-netback: fix input validation in xenvif_set_hash_mapping()
   f66d89483bb3 fbdev/omapfb: fix omapfb_memory_read infoleak
   887361696fb9 clocksource/drivers/timer-atmel-pit: Properly handle error cases
   8e2e2192eb35 blk-mq: I/O and timer unplugs are inverted in blktrace
   87a9d1cc2e8f KVM: x86: fix L1TF's MMIO GFN calculation
   5178716b55c4 mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly
   a2e0493f99e6 mm, thp: fix mlocking THP page with migration enabled
   5f4f5b1f4491 mm: migration: fix migration of huge PMD shared pages
   ab18409cf05f perf/core: Add sanity check to deal with pinned event failure
   8e6a9240b191 Linux 4.14.75
   4e7ea65127ac dm thin metadata: fix __udivdi3 undefined on 32-bit
   07f79b39d474 ixgbe: check return value of napi_complete_done()
   de0e2a92ccc5 ocfs2: fix locking for res->tracking and dlm->tracking_list
   f8566a92ab75 proc: restrict kernel stack dumps to root
   4de0fb95a287 tools: hv: fcopy: set 'error' in case an unknown operation was requested
   1d24e2609002 Drivers: hv: vmbus: Use get/put_cpu() in vmbus_connect()
   119bf9470be9 gpiolib: Free the last requested descriptor
   1df517a4cafd crypto: caam/jr - fix ablkcipher_edesc pointer arithmetic
   3b1a8535b8e1 crypto: mxs-dcp - Fix wait logic on chan threads
   90ecb700345c crypto: qat - Fix KASAN stack-out-of-bounds bug in adf_probe()
   a5bb359c078a ALSA: hda/realtek - Cannot adjust speaker's volume on Dell XPS 27 7760
   06f93e40f939 iommu/amd: Clear memory encryption mask from physical address
   dcdb2262d389 smb2: fix missing files in root share directory listing
   b420b7b7923b sysfs: Do not return POSIX ACL xattrs via listxattr
   fa7d75f64b80 ovl: fix format of setxattr debug
   8d75ecc13fdc ovl: fix memory leak on unlink of indexed file
   be406434737b ovl: fix access beyond unterminated strings
   aa41fb9593af xen: fix GCC warning and remove duplicate EVTCHN_ROW/EVTCHN_COL usage
   a502165dae09 xen: avoid crash in disable_hotplug_cpu
   4e1494794ebc xen/manage: don't complain about an empty value in control/sysrq node
   dfb29d69e4d8 cifs: read overflow in is_valid_oplock_break()
   7d60f98cde7a s390/qeth: don't dump past end of unknown HW header
   d5afd6b6eae5 s390/qeth: use vzalloc for QUERY OAT buffer
   ad297898159f r8169: Clear RTL_FLAG_TASK_*_PENDING when clearing RTL_FLAG_TASK_ENABLED
   f7b86faf0bd1 drm/amdgpu: fix error handling in amdgpu_cs_user_fence_chunk
   f2c9d68ed3c2 arm64: jump_label.h: use asm_volatile_goto macro instead of "asm goto"
   7a2df42a5371 hexagon: modify ffs() and fls() to return int
   2eb3072b2785 arch/hexagon: fix kernel/dma.c build warning
   1484d4ff2770 dm thin metadata: try to avoid ever aborting transactions
   1e9054e75d22 perf/x86/intel: Add support/quirk for the MISPREDICT bit on Knights Landing CPUs
   36918e899e3c net: ena: fix missing calls to READ_ONCE
   3e2cc5bd61fe net: ena: fix driver when PAGE_SIZE == 64kB
   a5bdc726e5ff fs/cifs: suppress a string overflow warning
   3941dbe190ba dm raid: fix rebuild of specific devices by updating superblock
   112d65a51f2b drm/nouveau/disp: fix DP disable race
   1a255bf1e749 drm/nouveau/TBDdevinit: don't fail when PMU/PRE_OS is missing from VBIOS
   34d54566ae4a net/mlx5: Consider PCI domain in search for next dev
   f36f3ebdf1e1 nvmet-rdma: fix possible bogus dereference under heavy load
   a90a52c51ad4 USB: yurex: Check for truncation in yurex_read()
   2c423318f07c HID: sensor-hub: Restore fixup for Lenovo ThinkPad Helix 2 sensor hub report
   d4da71220317 RDMA/ucma: check fd type in ucma_migrate_id()
   60ea8815d6e8 Revert "iio: temperature: maxim_thermocouple: add MAX31856 part"
   1173678a4f4a netfilter: nf_tables: release chain in flushing set
   c00f01c40211 perf probe powerpc: Ignore SyS symbols irrespective of endianness
   4095fd29fee7 perf util: Fix bad memory access in trace info.
   9d7bc329c123 perf evsel: Fix potential null pointer dereference in perf_evsel__new_idx()
   8b98b7eeb45d scsi: qedi: Add the CRC size within iSCSI NVM image
   dd44c35cc16c scsi: iscsi: target: Set conn->sess to NULL when iscsi_login_set_conn_values fails
   b6515e0f915b HID: hid-saitek: Add device ID for RAT 7 Contagion
   81c823c22355 usb: gadget: fotg210-udc: Fix memory leak of fotg210->ep[i]
   b6cc0ba2cbf4 HID: add support for Apple Magic Keyboards
   b969656b4662 netfilter: xt_cluster: add dependency on conntrack module
   10fdfea70d46 bpf: 32-bit RSH verification must truncate input before the ALU op
   dcc89aaf5a8d mm: madvise(MADV_DODUMP): allow hugetlbfs pages
   ee0516c4a1fe tools/vm/page-types.c: fix "defined but not used" warning
   5cbf015b971c tools/vm/slabinfo.c: fix sign-compare warning
   27c4ad84fd01 mac80211: shorten the IBSS debug messages
   e132eb09fdd2 mac80211: don't Tx a deauth frame if the AP forbade Tx
   8788737af389 mac80211: Fix station bandwidth setting after channel switch
   37cdc7e35ae4 mac80211: fix a race between restart and CSA flows
   4fa55f6d29fd cfg80211: fix a type issue in ieee80211_chandef_to_operating_class()
   43a01409ef4c mac80211: fix an off-by-one issue in A-MSDU max_subframe computation
   25cb8544342a fs/cifs: don't translate SFM_SLASH (U+F026) to backslash
   8590e6fecb5e net: cadence: Fix a sleep-in-atomic-context bug in macb_halt_tx()
   b08d15cc921f i2c: uniphier-f: issue STOP only for last message or I2C_M_STOP
   82fc9c6b7b9a i2c: uniphier: issue STOP only for last message or I2C_M_STOP
   da26e5729c04 RAID10 BUG_ON in raise_barrier when force is true and conf->barrier is 0
   36fadeb87be8 md/raid5-cache: disable reshape completely
   dc492842b700 ARC: atomics: unbork atomic_fetch_##op()
   7e259a0537be gpio: Fix crash due to registration race
   3b83a52796cd tools/kvm_stat: fix handling of invalid paths in debugfs provider
   52614f7bf1b5 tools/kvm_stat: fix python3 issues
   0d66ce687869 mac80211: always account for A-MSDU header changes
   2592adfe326b mac80211: do not convert to A-MSDU if frag/subframe limited
   b22a5d20aab1 cfg80211: nl80211_update_ft_ies() to validate NL80211_ATTR_IE
   e7577a1f1a65 net: hns: add netif_carrier_off before change speed and duplex
   7fd11a1ad542 net: hns: add the code for cleaning pkt in chip
   bdd29365a74c gpiolib-acpi: Register GpioInt ACPI event handlers from a late_initcall
   73bfec0a6bde gpiolib: acpi: Switch to cansleep version of GPIO library call
   9a5d353908db mac80211: avoid kernel panic when building AMSDU from non-linear SKB
   79448960e3d7 mac80211: mesh: fix HWMP sequence numbering to follow standard
   34bec4daf88c gpio: adp5588: Fix sleep-in-atomic-context bug
   0081e67083ed mac80211_hwsim: correct use of IEEE80211_VHT_CAP_RXSTBC_X
   7c209ebc7f15 mac80211: correct use of IEEE80211_VHT_CAP_RXSTBC_X
   6054817c5e07 scsi: csiostor: add a check for NULL pointer after kmalloc()
   4e380c50cf12 btrfs: btrfs_shrink_device should call commit transaction at the end
   9e685bec07ae KVM: PPC: Book3S HV: Don't truncate HPTE index in xlate function
   381538ae75cf mac80211_hwsim: require at least one channel
   4ae9a73be7ac mac80211: Run TXQ teardown code before de-registering interfaces
   3a738e7f734c tools/power turbostat: fix possible sprintf buffer overflow
   cdb2d37d345d serial: mvebu-uart: Fix reporting of effective CSIZE to userspace
   a17e2a72e714 drm/amdgpu: add another ATPX quirk for TOPAZ
   d9e61345652b drm/amd/pp: initialize result to before or'ing in data
   e6abbe80c883 Linux 4.14.74
   d61ba3417e4f media: v4l: event: Prevent freeing event subscriptions while accessed
   fcaca557760f arm64: KVM: Sanitize PSTATE.M when being set from userspace
   4fff53acff15 x86/pti: Fix section mismatch warning/error
   23210d92f617 i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus
   647b6d4ff699 arm/arm64: smccc-1.1: Handle function result as parameters
   826d8678cde2 arm/arm64: smccc-1.1: Make return values unsigned long
   75b3054d6807 ARM: dts: omap4-droid4: Fix emmc errors seen on some devices
   d11237bdcf95 nvme-fcloop: Fix dropped LS's to removed target port
   516b72e36ded ata: ftide010: Add a quirk for SQ201
   46cb720a8a3e drm/amdgpu: Update power state at the end of smu hw_init.
   50850b432cc5 drm/amdgpu: Enable/disable gfx PG feature in rlc safe mode
   9190a7ea313f Revert "ARM: dts: imx7d: Invert legacy PCI irq mapping"
   d3ddd8e16cab hwmon: (adt7475) Make adt7475_read_word() return errors
   0647ce03bd48 hwmon: (ina2xx) fix sysfs shunt resistor read access
   59f5838cc950 crypto: cavium/nitrox - fix for command corruption in queue full case with backlog submissions.
   243af256387c e1000: ensure to free old tx/rx rings in set_ringparam()
   716865940461 e1000: check on netif_running() before calling e1000_up()
   e8baff89bc3f net: hns: fix skb->truesize underestimation
   333f26129fd9 net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES
   92935e1c2a7e bpf: sockmap: write_space events need to be passed to TCP handler
   f0a8c1257fc3 tls: possible hang when do_tcp_sendpages hits sndbuf is full case
   97ee8505c637 isofs: reject hardware sector size > 2048 bytes
   083be6fbfdcb thermal: of-thermal: disable passive polling when thermal zone is disabled
   308206bd2770 qed: Avoid sending mailbox commands when MFW is not responsive
   583f866501c1 qed: Prevent a possible deadlock during driver load and unload
   73046b822c4c qed: Wait for MCP halt and resume commands to take place
   33906ae926e0 qed: Wait for ready indication before rereading the shmem
   38d070f9090a arm64: KVM: Tighten guest core register access from userspace
   d428e43eb684 serial: imx: restore handshaking irq for imx1
   016d4aae9d84 drm/i915: Remove vma from object on destroy, not close
   d134e9170417 ovl: hash non-dir by lower inode for fsnotify
   105470069de3 RDMA/uverbs: Atomically flush and mark closed the comp event queue
   693536a7ce39 IB/hfi1: Fix context recovery when PBC has an UnsupportedVL
   412a4b4db1a6 IB/hfi1: Invalid user input can result in crash
   d9e49e9ed8d6 IB/hfi1: Fix SL array bounds check
   fcbe49c82b82 IB/srp: Avoid that sg_reset -d ${srp_device} triggers an infinite loop
   3011b91478ff Input: elantech - enable middle button of touchpad on ThinkPad P72
   9691f745e17a USB: remove LPM management from usb_driver_claim_interface()
   be2360ed2d22 Revert "usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()"
   ec6dc4b61c33 USB: usbdevfs: restore warning for nonsensical flags
   25a8d4825165 USB: usbdevfs: sanitize flags more
   67d8e231759f media: uvcvideo: Support realtek's UVC 1.5 device
   1ddc0781c0ce slub: make ->cpu_partial unsigned int
   e75c01761a11 usb: musb: dsps: do not disable CPPI41 irq in driver teardown
   5b6717c6a3c0 USB: handle NULL config in usb_find_alt_setting()
   4253abe6a3aa USB: fix error handling in usb_driver_claim_interface()
   5eaaa5e9bd56 regulator: fix crash caused by null driver data
   b6adc1f24bb3 spi: rspi: Fix interrupted DMA transfers
   082e34f367a5 spi: rspi: Fix invalid SPI use during system suspend
   6074b71d617d spi: sh-msiof: Fix handling of write value for SISTR register
   d120858fca5f spi: sh-msiof: Fix invalid SPI use during system suspend
   429773341c34 spi: tegra20-slink: explicitly enable/disable clock
   dc89d37f9098 intel_th: Fix device removal logic
   247cc73cd8f5 serial: cpm_uart: return immediately from console poll
   2b7ba104769b tty: serial: lpuart: avoid leaking struct tty_struct
   4fe780c1baec x86/mm: Expand static page table for fixmap space
   04bc4dd86d0f floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
   f88e50ea0300 ARM: dts: dra7: fix DCAN node addresses
   99795ed0c62d iio: 104-quad-8: Fix off-by-one error in register selection
   a82a772da750 Input: xen-kbdfront - fix multi-touch XenStore node's locations
   91e30cae8903 fs/lock: skip lock owner pid translation in case we are in init_pid_ns
   0c4439c44416 EDAC: Fix memleak in module init error path
   a4f7bea87887 nfsd: fix corrupted reply to badly ordered compound
   de6ccdbd7734 gpio: Fix wrong rounding in gpio-menz127
   5bcbbadf6ac5 module: exclude SHN_UNDEF symbols from kallsyms api
   05f78b1a0e0c ASoC: dapm: Fix potential DAI widget pointer deref when linking DAIs
   3fd534a5480e EDAC, i7core: Fix memleaks and use-after-free on probe and remove
   c96c2f2b11b6 scsi: megaraid_sas: Update controller info during resume
   a56b97a2fc2d iomap: complete partial direct I/O writes synchronously
   13ab355240a9 scsi: bnx2i: add error handling for ioremap_nocache
   d5963fae7f36 perf/x86/intel/lbr: Fix incomplete LBR call stack
   85222eb56f2a MIPS: boot: fix build rule of vmlinux.its.S
   b8e30b822d08 HID: hid-ntrig: add error handling for sysfs_create_group
   69cb15d6596d arm: dts: mediatek: Add missing cooling device properties for CPUs
   5ef7a3782de8 ARM: mvebu: declare asm symbols as character arrays in pmsu.c
   e87efc44dd36 wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout()
   dad01c56989a brcmsmac: fix wrap around in conversion from constant to s16
   62bd8064fa88 rndis_wlan: potential buffer overflow in rndis_wlan_auth_indication()
   3c7f6b2cf6d6 ath10k: transmit queued frames after processing rx packets
   c1283a6270a2 drm/sun4i: Fix releasing node when enumerating enpoints
   3f7056e1822d net: phy: xgmiitorgmii: Check phy_driver ready before accessing
   accb431813bf ath10k: protect ath10k_htt_rx_ring_free with rx_ring.lock
   0f4ca55e441c net: phy: xgmiitorgmii: Check read_status results
   8d9fd12b1eef ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge
   0ebe95dee2f2 media: tm6000: add error handling for dvb_register_adapter
   0091a4ede783 drivers/tty: add error handling for pcmcia_loop_config
   3af342f5ddbd staging: android: ashmem: Fix mmap size validation
   1b16d06a9e27 media: omap3isp: zero-initialize the isp cam_xclk{a,b} initial data
   daefaacc6e02 media: soc_camera: ov772x: correct setting of banding filter
   381f8d235dd8 media: s3c-camif: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power
   85d3dbd8e7f2 ALSA: snd-aoa: add of_node_put() in error path
   3e3f075f72bd posix-timers: Sanitize overrun handling
   a05bd4ba655f posix-timers: Make forward callback return s64
   cf373da10039 iio: accel: adxl345: convert address field usage in iio_chan_spec
   8cbb2f74c093 mtd: rawnand: atmel: add module param to avoid using dma
   a838008bb11f s390/extmem: fix gcc 8 stringop-overflow warning
   33cd135ebc97 s390/scm_blk: correct numa_node in scm_blk_dev_setup
   98a34e26d93d s390/dasd: correct numa_node in dasd_alloc_queue
   a4dbaf7c2de0 alarmtimer: Prevent overflow for relative nanosleep
   9374ffc6f3d3 s390/sysinfo: add missing #ifdef CONFIG_PROC_FS
   8deb5801f154 powerpc/powernv/ioda2: Reduce upper limit for DMA window size
   45d3d58f9739 ath10k: sdio: set skb len for all rx packets
   b31f41e02c80 ath10k: sdio: use same endpoint id for all packets in a bundle
   149f530334f0 usb: wusbcore: security: cast sizeof to int for comparison
   ebee32dd8f04 scsi: target: Avoid that EXTENDED COPY commands trigger lock inversion
   336b73754169 scsi: ibmvscsi: Improve strings handling
   1390c37d1670 scsi: klist: Make it safe to use klists in atomic context
   bdfc40bc1b09 scsi: target/iscsi: Make iscsit_ta_authentication() respect the output buffer size
   2cbead46fd4e ARM: dts: ls1021a: Add missing cooling device properties for CPUs
   8430918a04e3 x86/entry/64: Add two more instruction suffixes
   8e90c7ef50e2 ARM: hwmod: RTC: Don't assume lock/unlock will be called with irq enabled
   0a29ab00339e x86/tsc: Add missing header to tsc_msr.c
   23e4ab4069d1 media: staging/imx: fill vb2_v4l2_buffer field entry
   6fd38ba41e34 media: fsl-viu: fix error handling in viu_of_probe()
   769ae06e4442 powerpc/kdump: Handle crashkernel memory reservation failure
   333cb98f393b IB/mlx4: Test port number before querying type.
   1f94cf4c81cb media: exynos4-is: Prevent NULL pointer dereference in __isp_video_try_fmt()
   0ca45668ecdb IB/core: type promotion bug in rdma_rw_init_one_mr()
   eca859882359 RDMA/i40w: Hold read semaphore while looking after VMA
   e862ab6b69c4 RDMA/bnxt_re: Fix a couple off by one bugs
   e0ccd2360a47 md-cluster: clear another node's suspend_area after the copy is finished
   e70f938a605a power: remove possible deadlock when unregistering power_supply
   1117e411a46c s390/mm: correct allocate_pgste proc_handler callback
   bc4ce060b305 iommu/msm: Don't call iommu_device_{,un}link from atomic context
   96e878907c90 6lowpan: iphc: reset mac_header after decompress to fix panic
   410534a34315 USB: serial: kobil_sct: fix modem-status error handling
   90de5688afc3 Bluetooth: Add a new Realtek 8723DE ID 0bda:b009
   834a9ef5f831 iommu/amd: make sure TLB to be flushed before IOVA freed
   c7e653a24c18 power: vexpress: fix corruption in notifier registration
   c1a630680c8b uwb: hwa-rc: fix memory leak at probe
   72bad20e9316 serial: sh-sci: Stop RX FIFO timer during port shutdown
   0470189cd9b9 misc: sram: enable clock before registering regions
   914b4daa9b6d power: supply: axp288_charger: Fix initial constant_charge_current value
   2efa4bd5aa9a staging: rts5208: fix missing error check on call to rtsx_write_register
   6ecd10b1aa22 x86/numa_emulation: Fix emulated-to-physical node mapping
   127cd4e23323 vmci: type promotion bug in qp_host_get_user_memory()
   4804f372b53f tsl2550: fix lux1_input error in low light
   db12e7d3e9bc iio: adc: ina2xx: avoid kthread_stop() with stale task_struct
   29db2772349d crypto: skcipher - Fix -Wstringop-truncation warnings
   3b65f403d7d0 Linux 4.14.73
   97513162cd6d spi: Fix double IDR allocation with DT aliases
   ed5e9462f661 tick/nohz: Prevent bogus softirq pending warning
   3a411a04be4e iw_cxgb4: only allow 1 flush on user qps
   956fa50745b3 vmw_balloon: include asm/io.h
   23ac2a32b2f8 PCI: aardvark: Size bridges before resources allocation
   fe87d18b1471 sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
   0d09307bc242 ext4: show test_dummy_encryption mount option in /proc/mounts
   3dc006d212e3 ext4: don't mark mmp buffer head dirty
   ba48e66e3f53 ext4: fix online resizing for bigalloc file systems with a 1k block size
   6a4d7b584d38 ext4: fix online resize's handling of a too-small final block group
   22654a3b4a30 ext4: recalucate superblock checksum after updating free blocks/inodes
   779af00b3fa3 ext4: avoid arithemetic overflow that can trigger a BUG
   3f9eafe8772f ext4: avoid divide by zero fault when deleting corrupted inline directories
   31343d27f18f ext4: check to make sure the rename(2)'s destination is not freed
   4334a6ae867a tty: vt_ioctl: fix potential Spectre v1
   57c806be0160 drm/amdgpu: add new polaris pci id
   5575041b09cd drm: udl: Destroy framebuffer only if it was initialized
   c70d8a488a41 drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
   35e48a086071 drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
   0f966da783a3 drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
   409af02c200e drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
   9ac837e079a0 drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
   42387d8e4aef drm/nouveau: Fix deadlocks in nouveau_connector_detect()
   7c1ca8fb8633 ocfs2: fix ocfs2 read block panic
   1d7e23f9068f Revert "ubifs: xattr: Don't operate on deleted inodes"
   44383139a39c scsi: target: iscsi: Use bin2hex instead of a re-implementation
   755e45f3155c scsi: target: iscsi: Use hex2bin instead of a re-implementation
   50ec69edf3f0 Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
   13d216167d3d Revert "rpmsg: core: add support to power domains for devices"
   6447b34fc270 mm: shmem.c: Correctly annotate new inodes for lockdep
   7eba38a3f65d ring-buffer: Allow for rescheduling when removing pages
   0e5cdbac0303 Revert "PCI: Add ACS quirk for Intel 300 series"
   f3765abb60c7 spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers
   5ca87a38202e xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
   7eced4478f4e xen/netfront: don't bug in case of too many frags
   e2d5285b98ef platform/x86: alienware-wmi: Correct a memory leak
   ff6805037d83 ALSA: oxfw: fix memory leak of private data
   08f4f8b93809 ALSA: oxfw: fix memory leak of discovered stream formats at error path
   996899a9cbd8 ALSA: oxfw: fix memory leak for model-dependent data at error path
   d9929097176d ALSA: fireworks: fix memory leak of response buffer at error path
   40e2596f06b0 ALSA: firewire-tascam: fix memory leak of private data
   933f20a61e26 ALSA: firewire-digi00x: fix memory leak of private data
   70165a445b00 ALSA: fireface: fix memory leak in ff400_switch_fetching_mode()
   352701c288c1 ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
   7c4881d64ed7 ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
   16b8c03864b7 ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
   c7cf0304d41f ASoC: rsnd: fixup not to call clk_get/set under non-atomic
   a388e6d7a822 ASoC: cs4265: fix MMTLR Data switch control
   6ead7a8a4ec1 NFC: Fix the number of pipes
   4a16b3cd084d NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
   18fef87e05d3 tls: clear key material from kernel memory when do_tls_setsockopt_conf fails
   0c0334299a7e tls: zero the crypto information from tls_context before freeing
   10cacaf13189 tls: don't copy the key out of tls12_crypto_info_aes_gcm_128
   ee547ed7dee4 net/sched: act_sample: fix NULL dereference in the data path
   b13f721a3409 udp6: add missing checks on edumux packet processing
   ff64a1a2ca3d neighbour: confirm neigh entries when ARP packet is received
   0f6f77f3b8f4 udp4: fix IP_CMSG_CHECKSUM for connected sockets
   6f5ec16ee02b qmi_wwan: set DTR for modems in forced USB2 mode
   f3aa1f3a1113 pppoe: fix reception of frames with no mac header
   c0f2c063abc8 net: hp100: fix always-true check for link up state
   9951e17efd05 net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
   bba90d3686fd ipv6: fix possible use-after-free in ip6_xmit()
   13a47054f0b2 gso_segment: Reset skb->mac_len after modifying network header

(From OE-Core rev: 62c7a970de40e8c4d57cb6d3feebbfbcae089b27)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Bruce Ashfield
d97ff30c0c linux-yocto/4.18: update to v4.18.14
Integrating the korg -stable updates that comprise the following commits:

   e7d199e92956 Linux 4.18.14
   91da9ba7bbbd ath10k: fix scan crash due to incorrect length calculation
   7903dacfc64e rds: rds_ib_recv_alloc_cache() should call alloc_percpu_gfp() instead
   ef37df3b8284 ubifs: Check for name being NULL while mounting
   09fbdca26741 ucma: fix a use-after-free in ucma_resolve_ip()
   9753a6f7497d tipc: call start and done ops directly in __tipc_nl_compat_dumpit()
   4a04224bbd1a f2fs: fix invalid memory access
   50231468deda ARC: clone syscall to setp r25 as thread pointer
   f4a856d4ca30 powerpc/lib: fix book3s/32 boot failure due to code patching
   2025ef74e8c4 powerpc: Avoid code patching freed init sections
   e4f71e6ae0cb of: unittest: Disable interrupt node tests for old world MAC systems
   a09a553b1693 tty: Drop tty->count on tty_reopen() failure
   274a367121ae usb: cdc_acm: Do not leak URB buffers
   6f0a2f6649b7 USB: serial: option: add two-endpoints device-id flag
   0fcb2fb9731a USB: serial: option: improve Quectel EP06 detection
   883f14f7302a USB: serial: simple: add Motorola Tetra MTP6550 id
   7cea0a2e8c59 usb: xhci-mtk: resume USB3 roothub first
   67c8b9c6c59c xhci: Add missing CAS workaround for Intel Sunrise Point xHCI
   226c5c8a540a dm cache: fix resize crash if user doesn't reload cache table
   f10b1cdb6190 dm cache metadata: ignore hints array being too small during resize
   75e4e2fae0fe dm mpath: fix attached_handler_name leak and dangling hw_handler_name pointer
   a92f4488357e PM / core: Clear the direct_complete flag on errors
   3561037582ae mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys
   e9d0ba506ea8 PCI: Reprogram bridge prefetch registers on resume
   db68b064bb73 x86/vdso: Fix vDSO syscall fallback asm constraint regression
   54f54a2b7fb3 x86/vdso: Only enable vDSO retpolines when enabled and supported
   1af2998c34e1 selftests/x86: Add clock_gettime() tests to test_vdso
   e7e1889390a4 x86/vdso: Fix asm constraints on vDSO syscall fallbacks
   7ac2c7dcc1a0 drm: fix use-after-free read in drm_mode_create_lease_ioctl()
   a2cef7d049f0 drm/syncobj: Don't leak fences when WAIT_FOR_SUBMIT is set
   3361789e57ec drm/amdgpu: Fix vce work queue was not cancelled when suspend
   b67f9b6ab232 mac80211: allocate TXQs for active monitor interfaces
   6b1adad3348a mmc: slot-gpio: Fix debounce time to use miliseconds again
   7cf3272144b9 mmc: core: Fix debounce time to use microseconds
   7e62c2fbc1fe xen-netback: fix input validation in xenvif_set_hash_mapping()
   9b01f16ed9b9 fbdev/omapfb: fix omapfb_memory_read infoleak
   771df4eea402 clocksource/drivers/timer-atmel-pit: Properly handle error cases
   45a156123ce4 pstore/ram: Fix failure-path memory leak in ramoops_init
   b82610b5bad9 blk-mq: I/O and timer unplugs are inverted in blktrace
   fe65bf7b541f KVM: VMX: check for existence of secondary exec controls before accessing
   fe7790c37cf1 KVM: x86: fix L1TF's MMIO GFN calculation
   7d7e3202b7ef mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly
   6b9c2cc710f5 mm, thp: fix mlocking THP page with migration enabled
   0af5b07d2e62 mm: migration: fix migration of huge PMD shared pages
   f5a6974616b4 perf/core: Add sanity check to deal with pinned event failure
   04a3fbba60ae Linux 4.18.13
   d9ef158adf04 Revert "drm/amd/pp: Send khz clock values to DC for smu7/8"
   aad46f77ece0 dm thin metadata: fix __udivdi3 undefined on 32-bit
   5319425024ab ixgbe: check return value of napi_complete_done()
   2083ef10dedd HID: i2c-hid: disable runtime PM operations on hantick touchpad
   f52ab5277368 ocfs2: fix locking for res->tracking and dlm->tracking_list
   2b89f7ad519d proc: restrict kernel stack dumps to root
   6a2cfcdd7b6e tools: hv: fcopy: set 'error' in case an unknown operation was requested
   549498802024 Drivers: hv: vmbus: Use get/put_cpu() in vmbus_connect()
   116337deb270 gpiolib: Free the last requested descriptor
   277f800a2186 crypto: caam/jr - fix ablkcipher_edesc pointer arithmetic
   b6479a45bd29 crypto: mxs-dcp - Fix wait logic on chan threads
   27dff727876e crypto: chelsio - Fix memory corruption in DMA Mapped buffers.
   18b4a538497d crypto: qat - Fix KASAN stack-out-of-bounds bug in adf_probe()
   23b043d513e3 ALSA: hda/realtek - Cannot adjust speaker's volume on Dell XPS 27 7760
   6abd14f40148 iommu/amd: Clear memory encryption mask from physical address
   8cdcd02d9985 smb2: fix missing files in root share directory listing
   17e5fb7f93f8 cpufreq: qcom-kryo: Fix section annotations
   5105f039ef26 firmware: Always initialize the fw_priv list object
   aa26105b73b0 firmware: Fix security issue with request_firmware_into_buf()
   8b84e8d275d8 b43: fix DMA error related regression with proprietary firmware
   23917913b671 sysfs: Do not return POSIX ACL xattrs via listxattr
   51da3fc5cbce ovl: fix format of setxattr debug
   1c7949a5f637 ovl: fix memory leak on unlink of indexed file
   c33def1bb3aa ovl: fix access beyond unterminated strings
   a6aa74c2ad61 ovl: set I_CREATING on inode being created
   90f06e1b81b9 vfs: don't evict uninitialized inode
   d08d1bb535f4 new primitive: discard_new_inode()
   87a50a5e94e3 x86/APM: Fix build warning when PROC_FS is not enabled
   dd618fe2ffa1 xen: fix GCC warning and remove duplicate EVTCHN_ROW/EVTCHN_COL usage
   b207598b0abe xen: avoid crash in disable_hotplug_cpu
   58d77fd26f83 xen/manage: don't complain about an empty value in control/sysrq node
   20d06facfd2f asm-generic: io: Fix ioport_map() for !CONFIG_GENERIC_IOMAP && CONFIG_INDIRECT_PIO
   80e4d9a51376 cifs: read overflow in is_valid_oplock_break()
   e8dcd7866638 s390/qeth: don't dump past end of unknown HW header
   31ae67ad9ed6 s390/qeth: use vzalloc for QUERY OAT buffer
   d3a7c76eb490 r8169: Clear RTL_FLAG_TASK_*_PENDING when clearing RTL_FLAG_TASK_ENABLED
   5113d730a1ee drm/amdgpu: fix error handling in amdgpu_cs_user_fence_chunk
   e76f7b7df846 arm64: jump_label.h: use asm_volatile_goto macro instead of "asm goto"
   ed14acd316ba drm/amdgpu: Fix SDMA hang in prt mode v2
   7389051d3c63 hexagon: modify ffs() and fls() to return int
   cbbb852e4556 arch/hexagon: fix kernel/dma.c build warning
   41b2bc509cda netfilter: xt_hashlimit: use s->file instead of s->private
   419033c32a82 netfilter: nfnetlink_queue: Solve the NFQUEUE/conntrack clash for NF_REPEAT
   e63d53f2835d dm thin metadata: try to avoid ever aborting transactions
   7c995133d035 sched/topology: Set correct NUMA topology type
   52017328fa15 perf/x86/intel: Add support/quirk for the MISPREDICT bit on Knights Landing CPUs
   1080c0f57e00 net: ena: fix missing calls to READ_ONCE
   968759747e95 net: ena: fix missing lock during device destruction
   cfa70f3c46f1 net: ena: fix potential double ena_destroy_device()
   023ae1b4c025 net: ena: fix device destruction to gracefully free resources
   3953e192748f net: ena: fix driver when PAGE_SIZE == 64kB
   0728c271d518 net: ena: fix surprise unplug NULL dereference kernel crash
   3a035b70eb92 fs/cifs: suppress a string overflow warning
   07d1b1058aea r8169: set TxConfig register after TX / RX is enabled, just like RxConfig
   8a100be2813a dm raid: fix RAID leg rebuild errors
   659cd50c8ace dm raid: fix rebuild of specific devices by updating superblock
   895fe22aa4d6 dm raid: fix stripe adding reshape deadlock
   00063fa09bc1 drm/nouveau/disp/gm200-: enforce identity-mapped SOR assignment for LVDS/eDP panels
   6978b0eb61c0 drm/nouveau/disp: fix DP disable race
   c65768326592 drm/nouveau/TBDdevinit: don't fail when PMU/PRE_OS is missing from VBIOS
   e4a75379e8eb drm/nouveau/mmu: don't attempt to dereference vmm without valid instance pointer
   5f0e9912e82c drm/nouveau: fix oops in client init failure path
   d097790cec56 dm raid: fix reshape race on small devices
   816f7c26eee3 HID: i2c-hid: Don't reset device upon system resume
   bfe18751bf8a net/mlx5: Consider PCI domain in search for next dev
   3029f6d6608d bnxt_re: Fix couple of memory leaks that could lead to IOMMU call traces
   80b6e9d53846 nvmet-rdma: fix possible bogus dereference under heavy load
   1d44f7f5bc07 USB: yurex: Check for truncation in yurex_read()
   e6ecfa261ae6 usb: host: xhci-plat: Iterate over parent nodes for finding quirks
   3f97eca3c822 HID: sensor-hub: Restore fixup for Lenovo ThinkPad Helix 2 sensor hub report
   027f315487ef riscv: Do not overwrite initrd_start and initrd_end
   59db47dd566b RDMA/ucma: check fd type in ucma_migrate_id()
   d77c7de489ff iio: imu: st_lsm6dsx: take into account ts samples in wm configuration
   86716fd6b985 Revert "iio: temperature: maxim_thermocouple: add MAX31856 part"
   c296c887f743 netfilter: nf_tables: release chain in flushing set
   7e8fc7dcb4d6 netfilter: kconfig: nat related expression depend on nftables core
   c3501b899ff9 perf annotate: Fix parsing aarch64 branch instructions after objdump update
   3cc1b441a4b9 perf probe powerpc: Ignore SyS symbols irrespective of endianness
   6f8073072f7b perf util: Fix bad memory access in trace info.
   56b4732271c7 perf evsel: Fix potential null pointer dereference in perf_evsel__new_idx()
   4ac14f4b3179 perf annotate: Properly interpret indirect call
   dbd0ea4cfa2a scsi: qedi: Add the CRC size within iSCSI NVM image
   319949c5e4a8 scsi: iscsi: target: Fix conn_ops double free
   27fbee89e119 scsi: iscsi: target: Set conn->sess to NULL when iscsi_login_set_conn_values fails
   820c01bcca82 HID: hid-saitek: Add device ID for RAT 7 Contagion
   3f2822e4dadd usb: gadget: fotg210-udc: Fix memory leak of fotg210->ep[i]
   386562cba8c2 HID: add support for Apple Magic Keyboards
   11c069b7eb84 HID: intel-ish-hid: Enable Sunrise Point-H ish driver
   3403eaa94cfc netfilter: xt_checksum: ignore gso skbs
   1d569211070e netfilter: xt_cluster: add dependency on conntrack module
   11b165210c72 bpf: 32-bit RSH verification must truncate input before the ALU op
   f69ad066fb2b mm: madvise(MADV_DODUMP): allow hugetlbfs pages
   53df63ddc599 afs: Fix cell specification to permit an empty address list
   784ce43a54fa firmware: arm_scmi: fix divide by zero when sustained_perf_level is zero
   131a6926fa4d ceph: avoid a use-after-free in ceph_destroy_options()
   e5f09c519ea0 nds32: linker script: GCOV kernel may refers data in __exit
   20107ca73afe tools/vm/page-types.c: fix "defined but not used" warning
   9f62a57c6670 tools/vm/slabinfo.c: fix sign-compare warning
   8474b701d459 nds32: fix build error because of wrong semicolon
   392a9a4a1c1e nds32: Fix get_user/put_user macro expand pointer problem
   447ec6add595 nds32: Fix empty call trace
   76d9688fbebb nds32: add NULL entry to the end of_device_id array
   2b847f91abb8 nds32: fix logic for module
   5bdcac88df0b net/ibm/emac: wrong emac_calc_base call was used by typo
   a06e07ce6f61 fsnotify: fix ignore mask logic in fsnotify()
   5ce55b0915e7 mac80211: shorten the IBSS debug messages
   3bcf74fdbd50 mac80211: don't Tx a deauth frame if the AP forbade Tx
   7cd6df93a292 mac80211: Fix station bandwidth setting after channel switch
   07715e528d18 mac80211: fix a race between restart and CSA flows
   040695971ce1 mac80211: fix WMM TXOP calculation
   71f1b196fb29 cfg80211: fix a type issue in ieee80211_chandef_to_operating_class()
   39bcc4406f83 mac80211: fix an off-by-one issue in A-MSDU max_subframe computation
   05166cf09a6e fs/cifs: don't translate SFM_SLASH (U+F026) to backslash
   43160392b3eb net: cadence: Fix a sleep-in-atomic-context bug in macb_halt_tx()
   26c9b6f0c196 i2c: uniphier-f: issue STOP only for last message or I2C_M_STOP
   182ae0d8643f i2c: uniphier: issue STOP only for last message or I2C_M_STOP
   abb518640aaf bpf: avoid misuse of psock when TCP_ULP_BPF collides with another ULP
   23fa01c0fcb5 bpf: Fix bpf_msg_pull_data()
   7e2069153a58 ibmvnic: Include missing return code checks in reset function
   005caa1288d9 selftests: pmtu: detect correct binary to ping ipv6 addresses
   ec0029c2aca1 selftests: pmtu: maximum MTU for vti4 is 2^16-1-20
   d65d1dd8be05 RAID10 BUG_ON in raise_barrier when force is true and conf->barrier is 0
   34ff707ac863 md/raid5-cache: disable reshape completely
   561deb108ca4 Revert "blk-throttle: fix race between blkcg_bio_issue_check() and cgroup_rmdir()"
   8dbbc215f2ba ARC: atomics: unbork atomic_fetch_##op()
   29c9e7e73dda gpio: Fix crash due to registration race
   e8f38e4e2216 tools/kvm_stat: fix updates for dead guests
   52ff1e423ec9 tools/kvm_stat: fix handling of invalid paths in debugfs provider
   a9ffbadacc94 tools/kvm_stat: fix python3 issues
   58ec0839af0d mac80211: always account for A-MSDU header changes
   511edc415c6c mac80211: do not convert to A-MSDU if frag/subframe limited
   6f01b1a3c4ad cfg80211: nl80211_update_ft_ies() to validate NL80211_ATTR_IE
   aadc5d1ee02d tc-testing: add test-cases for numeric and invalid control action
   468bcedcd850 net: mvpp2: initialize port of_node pointer
   4abef73b0770 sh_eth: Add R7S9210 support
   4440af5a7e45 net: hns: add netif_carrier_off before change speed and duplex
   f97a366fdbad net: hns: add the code for cleaning pkt in chip
   7d3acb1372f6 tipc: switch to rhashtable iterator
   cf09d1f5a507 bpf: fix sg shift repair start offset in bpf_msg_pull_data
   89826ce1bbca bpf: fix shift upon scatterlist ring wrap-around in bpf_msg_pull_data
   0920815e24f0 bpf: fix msg->data/data_end after sg shift repair in bpf_msg_pull_data
   34930327c610 gpio: dwapb: Fix error handling in dwapb_gpio_probe()
   6c5cdd4730b1 gpiolib-acpi: Register GpioInt ACPI event handlers from a late_initcall
   13db4478a11e gpiolib: acpi: Switch to cansleep version of GPIO library call
   06a62b7a0c5e mac80211: avoid kernel panic when building AMSDU from non-linear SKB
   d935ea54dbd8 mac80211: mesh: fix HWMP sequence numbering to follow standard
   a1f9ac32509a gpio: adp5588: Fix sleep-in-atomic-context bug
   3f84a6c18fce bpf: fix several offset tests in bpf_msg_pull_data
   bd266daa9fe1 nl80211: Pass center frequency in kHz instead of MHz
   5955b8ec20d7 nl80211: Fix nla_put_u8 to u16 for NL80211_WMMR_TXOP
   03950ebc945c mac80211_hwsim: Fix possible Spectre-v1 for hwsim_world_regdom_custom
   bfcb6097e5f3 cfg80211: make wmm_rule part of the reg_rule structure
   9df4febf5e91 mac80211_hwsim: correct use of IEEE80211_VHT_CAP_RXSTBC_X
   3d0d794ca9ef mac80211: correct use of IEEE80211_VHT_CAP_RXSTBC_X
   36de3d48270d bpf: sockmap, decrement copied count correctly in redirect error case
   7feb1f2b5d8d bpf, sockmap: fix psock refcount leak in bpf_tcp_recvmsg
   427e7707d932 bpf, sockmap: fix potential use after free in bpf_tcp_close
   0dcf1bcde827 scsi: aacraid: fix a signedness bug
   c08d2054307f scsi: libata: Add missing newline at end of file
   4f3e708120f3 scsi: csiostor: fix incorrect port capabilities
   74a301701659 scsi: csiostor: add a check for NULL pointer after kmalloc()
   c31c8008c757 btrfs: btrfs_shrink_device should call commit transaction at the end
   0d6ba1ecba26 cfg80211: remove division by size of sizeof(struct ieee80211_wmm_rule)
   1f0f925f98b4 KVM: PPC: Book3S HV: Don't truncate HPTE index in xlate function
   9e07d06651bc Btrfs: fix unexpected failure of nocow buffered writes after snapshotting when low on space
   32c7667fbcbd mac80211_hwsim: require at least one channel
   2466b26094bc mac80211: Run TXQ teardown code before de-registering interfaces
   3964f22686a6 rseq/selftests: fix parametrized test with -fpie
   7da07a3216a0 Linux 4.18.12
   c483061d4610 media: v4l: event: Prevent freeing event subscriptions while accessed
   926415e1e4c9 arm64: KVM: Sanitize PSTATE.M when being set from userspace
   5fddc4cd7aec powerpc/pseries: Fix unitialized timer reset on migration
   7f3a5baeacdf powerpc/pkeys: Fix reading of ibm, processor-storage-keys property
   4faeadc4f7b5 powerpc: fix csum_ipv6_magic() on little endian platforms
   31d2bff9f696 KVM: PPC: Book3S HV: Fix guest r11 corruption with POWER9 TM workarounds
   8379aa480e95 x86/pti: Fix section mismatch warning/error
   0f40f4a21a10 clk: x86: Set default parent to 48Mhz
   d948acce9a0c i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus
   31b5f66e90b2 arm/arm64: smccc-1.1: Handle function result as parameters
   c1baf3699d84 arm/arm64: smccc-1.1: Make return values unsigned long
   8ad1f551f802 drm/amdgpu: Need to set moved to true when evict bo
   68327465ccdb ARM: dts: omap4-droid4: Fix emmc errors seen on some devices
   b32e647a8375 nvme-fcloop: Fix dropped LS's to removed target port
   22670e847f7c ata: ftide010: Add a quirk for SQ201
   65c96da9c684 drm/amdgpu: Update power state at the end of smu hw_init.
   21a73b809735 drm/amdgpu: Enable/disable gfx PG feature in rlc safe mode
   4adf34c33950 Revert "ARM: dts: imx7d: Invert legacy PCI irq mapping"
   78dabdae8108 hwmon: (adt7475) Make adt7475_read_word() return errors
   e41ea7c77cb2 hwmon: (ina2xx) fix sysfs shunt resistor read access
   aada57693e81 crypto: cavium/nitrox - fix for command corruption in queue full case with backlog submissions.
   19f2fedf4f43 crypto: chtls - fix null dereference chtls_free_uld()
   ff53d5051675 i40e: fix condition of WARN_ONCE for stat strings
   be97150c4a54 i40e: Fix for Tx timeouts when interface is brought up if DCB is enabled
   4ef71783033a ixgbe: fix driver behaviour after issuing VFLR
   3e8566205e04 e1000: ensure to free old tx/rx rings in set_ringparam()
   f9b0af8f9ad5 e1000: check on netif_running() before calling e1000_up()
   1ca43c80d80f ice: Fix potential return of uninitialized value
   0753c86efc6c ice: Fix a few null pointer dereference issues
   939817cd00d2 tools: bpftool: return from do_event_pipe() on bad arguments
   1dec7a1e6a54 ice: Set VLAN flags correctly
   1c83a5aa0f26 ice: Use order_base_2 to calculate higher power of 2
   1dd0b6ce76ee ice: Fix bugs in control queue processing
   9289b179fc4e ice: Clean control queues only when they are initialized
   32d99e3e63c7 ice: Report stats for allocated queues via ethtool stats
   c0f20df3b1fc ice: Fix multiple static analyser warnings
   1801431dc7aa net: hns3: fix page_offset overflow when CONFIG_ARM64_64K_PAGES
   374eb417162b net: hns: fix skb->truesize underestimation
   2d4a79238686 net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES
   d96820d46bc3 tcp_bbr: in restart from idle, see if we should exit PROBE_RTT
   e5e63d2bb9b2 tcp_bbr: add bbr_check_probe_rtt_done() helper
   a66193f585eb net/ncsi: Fixup .dumpit message flags and ID check in Netlink handler
   9d028c09d1cf amdgpu: fix multi-process hang issue
   8824ceb2580c drm/amdgpu: fix preamble handling
   8483f3b7f424 drm/amdgpu: fix VM clearing for the root PD
   a5c7547b45b4 bpf: sockmap: write_space events need to be passed to TCP handler
   9c3d97879505 tls: possible hang when do_tcp_sendpages hits sndbuf is full case
   a0be77d6d940 bpf, sockmap: fix sock hash count in alloc_sock_hash_elem
   efed642bc585 bpf, sockmap: fix sock_hash_alloc and reject zero-sized keys
   0a9fd2a9875b ARM: dts: omap4-droid4: fix vibrations on Droid 4
   f7468a7160e1 bus: ti-sysc: Fix no_console_suspend handling
   b8f4b96768c0 mmc: android-goldfish: fix bad logic of sg_copy_{from,to}_buffer conversion
   d02aee5cf4ea mmc: atmel-mci: fix bad logic of sg_copy_{from,to}_buffer conversion
   1a7a1ad290d4 isofs: reject hardware sector size > 2048 bytes
   2da832f43da5 thermal: of-thermal: disable passive polling when thermal zone is disabled
   6a3f378b7614 qed: Avoid sending mailbox commands when MFW is not responsive
   c36724c64780 qed: Prevent a possible deadlock during driver load and unload
   1e85fc417c11 qed: Wait for MCP halt and resume commands to take place
   c91ab927a8b7 qed: Wait for ready indication before rereading the shmem
   67eb28b0f832 bus: ti-sysc: Fix module register ioremap for larger offsets
   3609bd6105c1 ARM: OMAP2+: Fix module address for modules using mpu_rt_idx
   1fcd5e01d26e ARM: OMAP2+: Fix null hwmod for ti-sysc debug
   4435064439c6 arm64: KVM: Tighten guest core register access from userspace
   12a7e915c506 RDMA/uverbs: Atomically flush and mark closed the comp event queue
   cbbb9f08566e ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot is not bridge
   0c7898792c9a IB/hfi1: Fix destroy_qp hang after a link down
   b34ba9e02408 IB/hfi1: Fix context recovery when PBC has an UnsupportedVL
   bcc5f9f5e11e IB/hfi1: Invalid user input can result in crash
   2cced23e5483 IB/hfi1: Fix SL array bounds check
   fa22f4874e94 IB/srp: Avoid that sg_reset -d ${srp_device} triggers an infinite loop
   ebc51114fa51 Input: elantech - enable middle button of touchpad on ThinkPad P72
   f44f3d0a9e9f filesystem-dax: Fix use of zero page
   7ebfc8f69a37 ext2, dax: set ext2_dax_aops for dax files
   2436ce1bad9e uaccess: Fix is_source param for check_copy_size() in copy_to_iter_mcsafe()
   dc38ebde8a52 USB: remove LPM management from usb_driver_claim_interface()
   de425c9ae7bf Revert "usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()"
   8badb9b1af73 USB: usbdevfs: restore warning for nonsensical flags
   b5376ef73d33 USB: usbdevfs: sanitize flags more
   8e2842a2e175 usb: musb: dsps: do not disable CPPI41 irq in driver teardown
   608677656ac2 usb: core: safely deal with the dynamic quirk lists
   7b169e33a3bc usb: roles: Take care of driver module reference counting
   95b273c4038c USB: handle NULL config in usb_find_alt_setting()
   f3a6a40b3793 USB: fix error handling in usb_driver_claim_interface()
   2c2860d0e876 regulator: Fix 'do-nothing' value for regulators without suspend state
   ad023c0c3613 regulator: fix crash caused by null driver data
   bc9f63756ac8 spi: rspi: Fix interrupted DMA transfers
   f9ca5597ab70 spi: rspi: Fix invalid SPI use during system suspend
   2469b01fa514 spi: sh-msiof: Fix handling of write value for SISTR register
   38274415d118 spi: sh-msiof: Fix invalid SPI use during system suspend
   a2b928011352 spi: tegra20-slink: explicitly enable/disable clock
   825e12a2ed63 intel_th: Fix resource handling for ACPI glue layer
   c3b92e93b23a intel_th: Fix device removal logic
   98e1a83c338e serial: cpm_uart: return immediately from console poll
   e91bf9073b44 serial: mvebu-uart: Fix reporting of effective CSIZE to userspace
   5d554763aaac serial: imx: restore handshaking irq for imx1
   98ecfdf49ff7 tty: serial: lpuart: avoid leaking struct tty_struct
   fdbbdfeeb699 x86/mm: Expand static page table for fixmap space
   41a770d90b88 block: fix deadline elevator drain for zoned block devices
   0051646c2cc2 floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
   acee207b7cc9 gpio: tegra: Fix tegra_gpio_irq_set_type()
   dbb2a1e3bb37 perf tests: Fix indexing when invoking subtests
   6b07342e2596 drm/vc4: plane: Expand the lower bits by repeating the higher bits
   c94ce4bf1aff ARM: dts: dra7: fix DCAN node addresses
   e80225d36dca drm/vc4: Add missing formats to vc4_format_mod_supported().
   70b914929ad7 iio: 104-quad-8: Fix off-by-one error in register selection
   b6b75c81c31a Input: xen-kbdfront - fix multi-touch XenStore node's locations
   31a92226a5d5 ath10k: fix memory leak of tpc_stats
   5f2391032c06 fs/lock: skip lock owner pid translation in case we are in init_pid_ns
   00b438869cbe ath10k: snoc: use correct bus-specific pointer in RX retry
   06c21f7423e7 ath10k: fix incorrect size of dma_free_coherent in ath10k_ce_alloc_src_ring_64
   10db0e22fb8c staging: pi433: fix race condition in pi433_ioctl
   fff64d9fb381 EDAC, altera: Fix an error handling path in altr_s10_sdram_probe()
   0855e6e1ac14 EDAC: Fix memleak in module init error path
   6e67b33dbe43 nfsd: fix corrupted reply to badly ordered compound
   af4b12c54b3b gpio: Fix wrong rounding in gpio-menz127
   8463cd689be0 module: exclude SHN_UNDEF symbols from kallsyms api
   163ac07ff0b2 ASoC: dapm: Fix potential DAI widget pointer deref when linking DAIs
   2edaabf0e58d EDAC, i7core: Fix memleaks and use-after-free on probe and remove
   1e4b176959fb ASoC: rsnd: SSI parent cares SWSP bit
   8d07efbdf84f ASoC: rt1305: Use ULL suffixes for 64-bit constants
   3e28a96b87f6 ASoC: Intel: bytcr_rt5640: Fix Acer Iconia 8 over-current detect threshold
   ebce61bb2c86 scsi: megaraid_sas: Update controller info during resume
   b38977a36625 spi: orion: fix CS GPIO handling again
   d731684c4496 scsi: hisi_sas: Fix the conflict between dev gone and host reset
   2f7b94ebaa19 iomap: complete partial direct I/O writes synchronously
   939dd916dc25 scsi: bnx2i: add error handling for ioremap_nocache
   074e4687846e perf/x86/intel/lbr: Fix incomplete LBR call stack
   09468e65ec7d drm/v3d: Take a lock across GPU scheduler job creation and queuing.
   dbdef3dff35b arm64: dts: renesas: Fix VSPD registers range
   56984081650a MIPS: boot: fix build rule of vmlinux.its.S
   d0f7fbdb1cf9 HID: i2c-hid: Use devm to allocate i2c_hid struct
   46066a10dd7a HID: hid-ntrig: add error handling for sysfs_create_group
   d79cdff57285 arm: dts: mediatek: Add missing cooling device properties for CPUs
   65470af8b10d perf/hw_breakpoint: Split attribute parse and commit
   7f22023170f7 Documentation/process: fix reST table border error
   53b56e401d93 RDMA/uverbs: Don't overwrite NULL pointer with ZERO_SIZE_PTR
   1da59841eea9 ARM: mvebu: declare asm symbols as character arrays in pmsu.c
   3fc862c26744 drm/omap: gem: Fix mm_list locking
   f7867f358bfe wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout()
   13c4f14d8cf2 bitfield: fix *_encode_bits()
   1ae0268dc54e brcmsmac: fix wrap around in conversion from constant to s16
   af1c6a743c98 rndis_wlan: potential buffer overflow in rndis_wlan_auth_indication()
   35ba78548948 mt76x2: fix mrr idx/count estimation in mt76x2_mac_fill_tx_status()
   882791abd11d ath10k: transmit queued frames after processing rx packets
   9f81b08ad8ea drm/sun4i: Fix releasing node when enumerating enpoints
   900812a0d318 net: phy: xgmiitorgmii: Check phy_driver ready before accessing
   d0a4b7b3792f drm/sun4i: Enable DW HDMI PHY clock
   c247a4bf53b6 ath10k: protect ath10k_htt_rx_ring_free with rx_ring.lock
   fcd12823cd57 net: phy: xgmiitorgmii: Check read_status results
   6cdfe3ed6c9d ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge
   3dc220c5253e ASoC: qdsp6: qdafe: fix some off by one bugs
   49fc6188cdb6 media: tm6000: add error handling for dvb_register_adapter
   6c695a374b0b staging: mt7621-dts: Fix remaining pcie warnings
   7a887d2a1f91 serial: pxa: Fix an error handling path in 'serial_pxa_probe()'
   e8db58e3d80b arm64: dts: renesas: salvator-common: Fix adv7482 decimal unit addresses
   e65f712ea936 drivers/tty: add error handling for pcmcia_loop_config
   5208cebb4ca3 staging: mt7621-eth: Fix memory leak in mtk_add_mac() error path
   6cbaed5c50ac media: ov772x: allow i2c controllers without I2C_FUNC_PROTOCOL_MANGLING
   47da213433ae staging: android: ashmem: Fix mmap size validation
   20d705e92eb7 media: ov772x: add checks for register read errors
   eab10433598a media: omap3isp: zero-initialize the isp cam_xclk{a,b} initial data
   870878d2c941 media: soc_camera: ov772x: correct setting of banding filter
   39a372355b5a media: s3c-camif: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power
   8086828bed84 ath10k: use locked skb_dequeue for rx completions
   11750fe66e26 selftests: forwarding: Tweak tc filters for mirror-to-gretap tests
   a4c7557bc547 ALSA: snd-aoa: add of_node_put() in error path
   5f6b9cd5c5f2 posix-timers: Sanitize overrun handling
   c0d08296a291 posix-timers: Make forward callback return s64
   90f955af43fe iio: accel: adxl345: convert address field usage in iio_chan_spec
   f1915d5162a9 mtd: rawnand: atmel: add module param to avoid using dma
   ff9ac7d9bdda s390/extmem: fix gcc 8 stringop-overflow warning
   6143a4525c3e s390/scm_blk: correct numa_node in scm_blk_dev_setup
   0c6df6d17ab4 s390/dasd: correct numa_node in dasd_alloc_queue
   04937aaaf8c7 alarmtimer: Prevent overflow for relative nanosleep
   4add6942e51e s390/sysinfo: add missing #ifdef CONFIG_PROC_FS
   ab0fd80d8747 ACPI / button: increment wakeup count only when notified
   f2514c04f556 platform/x86: asus-wireless: Fix uninitialized symbol usage
   677b34aa38ed powerpc/powernv/ioda2: Reduce upper limit for DMA window size
   ee1df10ae020 ath10k: sdio: set skb len for all rx packets
   bd9b4e606902 ath10k: sdio: use same endpoint id for all packets in a bundle
   420c37a784a7 usb: wusbcore: security: cast sizeof to int for comparison
   90c00dd1798d scsi: target: Avoid that EXTENDED COPY commands trigger lock inversion
   d08b7218cea0 scsi: ibmvscsi: Improve strings handling
   7369c88b59a9 scsi: klist: Make it safe to use klists in atomic context
   9d6b653c0509 thermal: i.MX: Allow thermal probe to fail gracefully in case of bad calibration.
   92e96ad168ea scsi: target/iscsi: Make iscsit_ta_authentication() respect the output buffer size
   6cf7be0267f7 ARM: dts: ls1021a: Add missing cooling device properties for CPUs
   f0c6c6ec02a1 x86/entry/64: Add two more instruction suffixes
   06f91031931a ARM: hwmod: RTC: Don't assume lock/unlock will be called with irq enabled
   11a88b9218e7 x86/tsc: Add missing header to tsc_msr.c
   2bffdc28ee60 include/rdma/opa_addr.h: Fix an endianness issue
   b40f2ec52bf5 IB/mlx5: Fix GRE flow specification
   c26fc717b13b media: staging/imx: fill vb2_v4l2_buffer field entry
   0bd77cd5c2da vhost_net: Avoid tx vring kicks during busyloop
   af58a41db9cc media: fsl-viu: fix error handling in viu_of_probe()
   ec0e373a6214 powerpc/kdump: Handle crashkernel memory reservation failure
   4fd56423854c IB/mlx4: Test port number before querying type.
   76e2bf1d322a media: exynos4-is: Prevent NULL pointer dereference in __isp_video_try_fmt()
   203ae10a4713 IB/core: type promotion bug in rdma_rw_init_one_mr()
   16fc25226707 RDMA/bnxt_re: Fix a bunch of off by one bugs in qplib_fp.c
   6a4d21a7664b RDMA/i40w: Hold read semaphore while looking after VMA
   5ae7031fea6a RDMA/bnxt_re: Fix a couple off by one bugs
   be853349a4a9 cxgb4: Fix the condition to check if the card is T5
   69b921bdab4b md-cluster: clear another node's suspend_area after the copy is finished
   dd5ac3dcb22e drm/amd/display: fix use of uninitialized memory
   e21238f1be65 drm/amd/display/dc/dce: Fix multiple potential integer overflows
   9fa1c8f4b9b2 power: remove possible deadlock when unregistering power_supply
   ff8aa171ef8c s390/mm: correct allocate_pgste proc_handler callback
   596ee3e366eb iommu/msm: Don't call iommu_device_{,un}link from atomic context
   c4ea4d6928bd 6lowpan: iphc: reset mac_header after decompress to fix panic
   d3f86dceb54c USB: serial: kobil_sct: fix modem-status error handling
   41086956a32b Bluetooth: Add a new Realtek 8723DE ID 0bda:b009
   9032c7d6d57f iommu/amd: make sure TLB to be flushed before IOVA freed
   8ae46971d69e power: vexpress: fix corruption in notifier registration
   3c8527e5a6e4 uwb: hwa-rc: fix memory leak at probe
   cb39b07bf5f9 serial: sh-sci: Stop RX FIFO timer during port shutdown
   741b2c3b62cf misc: sram: enable clock before registering regions
   919618d23234 power: supply: axp288_charger: Fix initial constant_charge_current value
   df09a796560a staging: rts5208: fix missing error check on call to rtsx_write_register
   e3deb9b3c252 x86/numa_emulation: Fix emulated-to-physical node mapping
   bb2ca3d777d9 net: hns3: Fix get_vector ops in hclgevf_main module
   6739fc895c80 net: hns3: Fix warning bug when doing lp selftest
   87dbcb1ce9c2 net: hns3: Fix for mac pause not disable in pfc mode
   4a659cb2f0fd net: hns3: Fix for mailbox message truncated problem
   1bb1252b4e78 siox: don't create a thread without starting it
   e83bd606a14e vmci: type promotion bug in qp_host_get_user_memory()
   46ba8d1156e7 misc: ibmvmc: Use GFP_ATOMIC under spin lock
   1d3de3d5e274 tsl2550: fix lux1_input error in low light
   c9bcfbebca40 iio: adc: ina2xx: avoid kthread_stop() with stale task_struct
   d08aa810ddd1 crypto: skcipher - Fix -Wstringop-truncation warnings
   2f411a0873a9 Linux 4.18.11
   e5bd6aca70ef spi: Fix double IDR allocation with DT aliases
   4fda8face67c iw_cxgb4: only allow 1 flush on user qps
   61b5194808f4 vmw_balloon: include asm/io.h
   ac586a2ffe31 sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
   ec215095ac28 ext4, dax: set ext4_dax_aops for dax files
   e2dd3371bfd1 ext4, dax: add ext4_bmap to ext4_dax_aops
   d60e0a56ac37 ext4: show test_dummy_encryption mount option in /proc/mounts
   da7a6e25fe8e ext4: don't mark mmp buffer head dirty
   705bcb551648 ext4: fix online resizing for bigalloc file systems with a 1k block size
   d47e119158ec ext4: fix online resize's handling of a too-small final block group
   2d0cd272e096 ext4: recalucate superblock checksum after updating free blocks/inodes
   a4cb1bf267a6 ext4: avoid arithemetic overflow that can trigger a BUG
   976eeff67a3a ext4: avoid divide by zero fault when deleting corrupted inline directories
   fdad4e17dc61 ext4: check to make sure the rename(2)'s destination is not freed
   52ef74c21c27 tty: vt_ioctl: fix potential Spectre v1
   5a5338e45009 drm/amdgpu: add new polaris pci id
   4cd5d680d815 drm: udl: Destroy framebuffer only if it was initialized
   934df3d13fc6 drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
   21fb862e0e3c drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
   99aa61fb35ed drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
   9c7443a7aa64 drm/nouveau/drm/nouveau: Fix deadlock with fb_helper with async RPM requests
   563f482029d4 drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
   0f756495557c drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
   86393a7e3315 drm/nouveau: Fix deadlocks in nouveau_connector_detect()
   573eeddd4538 drm/nouveau: Remove duplicate poll_enable() in pmops_runtime_suspend()
   aed4ca2690c2 drm/nouveau: Only write DP_MSTM_CTRL when needed
   04393d257207 drm/nouveau: Reset MST branching unit before enabling
   1f4401ece98b drm/i915/bdw: Increase IPS disable timeout to 100ms
   1e0be23859b9 ocfs2: fix ocfs2 read block panic
   23fe9688228c libata: mask swap internal and hardware tag
   f8b35f82a252 Revert "ubifs: xattr: Don't operate on deleted inodes"
   94403d71bb9e scsi: target: iscsi: Use bin2hex instead of a re-implementation
   8e31c95fe085 scsi: target: iscsi: Use hex2bin instead of a re-implementation
   31426b50594c Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
   bc35488686c3 bpf/verifier: disallow pointer subtraction
   909828a2920b Revert "rpmsg: core: add support to power domains for devices"
   946f8052f7ee mm: shmem.c: Correctly annotate new inodes for lockdep
   4cdb6f01e9e5 mm: disable deferred struct page for 32-bit arches
   3299a0eead68 fork: report pid exhaustion correctly
   30938d20eb1a crypto: x86/aegis,morus - Do not require OSXSAVE for SSE2
   d73ccd8bb732 ring-buffer: Allow for rescheduling when removing pages
   6bed4f10277b Revert "PCI: Add ACS quirk for Intel 300 series"
   6d8911403d99 spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers
   1318b2c26b78 xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
   b73a161e9bef xen/netfront: don't bug in case of too many frags
   5e17a1ecc44b platform/x86: alienware-wmi: Correct a memory leak
   8879342a67a4 platform/x86: dell-smbios-wmi: Correct a memory leak
   0639ddca2c8c mtd: rawnand: denali: fix a race condition when DMA is kicked
   f11b8aad34fa mtd: devices: m25p80: Make sure the buffer passed in op is DMA-able
   1501a0f2e14e ALSA: oxfw: fix memory leak of private data
   9d07f491db95 ALSA: oxfw: fix memory leak of discovered stream formats at error path
   82567fb09846 ALSA: oxfw: fix memory leak for model-dependent data at error path
   8e54fc8910f3 ALSA: fireworks: fix memory leak of response buffer at error path
   e5301d45d01c ALSA: firewire-tascam: fix memory leak of private data
   7c57a806be78 ALSA: firewire-digi00x: fix memory leak of private data
   e9355495975d ALSA: fireface: fix memory leak in ff400_switch_fetching_mode()
   cedfb9f8a588 ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
   c143935a34a5 ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
   28114caeb0ab ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
   30100a475167 ASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors
   341ff629a2e9 ASoC: rsnd: fixup not to call clk_get/set under non-atomic
   9e6a69b06575 ASoC: tas6424: Save last fault register even when clear
   df231dbe93eb ASoC: cs4265: fix MMTLR Data switch control
   401e975e5950 ASoC: wm9712: fix replace codec to component
   58be75ff0878 NFC: Fix the number of pipes
   0ad778eeee6d NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
   18b8a9c5dab3 net: rtnl_configure_link: fix dev flags changes arg to __dev_notify_flags
   1b46979978c0 net: mvpp2: let phylink manage the carrier state
   001e4e5537d8 net/ipv6: do not copy dst flags on rt init
   1328a5a40fde ipv6: use rt6_info members when dst is set in rt6_fill_node
   b5fc7f300cdb bnxt_en: Fix VF mac address regression.
   8ac22b327cc2 tls: fix currently broken MSG_PEEK behavior
   17eef150f66b socket: fix struct ifreq size in compat ioctl
   263baf63bdfb net: dsa: mv88e6xxx: Fix ATU Miss Violation
   4188aa049107 hv_netvsc: fix schedule in RCU context
   9f2489640a57 net/sched: act_sample: fix NULL dereference in the data path
   1708cc7ed059 udp6: add missing checks on edumux packet processing
   c0d10c5d5d71 neighbour: confirm neigh entries when ARP packet is received
   77971ea816ba tls: clear key material from kernel memory when do_tls_setsockopt_conf fails
   13d1bdc70bc2 tls: zero the crypto information from tls_context before freeing
   d8e6fc73d2eb tls: don't copy the key out of tls12_crypto_info_aes_gcm_128
   6d7a3fd5cfae udp4: fix IP_CMSG_CHECKSUM for connected sockets
   a02ff7df6a3b qmi_wwan: set DTR for modems in forced USB2 mode
   89721b836972 pppoe: fix reception of frames with no mac header
   b411479d5268 net: hp100: fix always-true check for link up state
   6a9c934f04e6 net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
   6b4d14c57381 ipv6: fix possible use-after-free in ip6_xmit()
   288942f4a669 gso_segment: Reset skb->mac_len after modifying network header
   183348489d36 Linux 4.18.10
   52b732648371 crypto: ccp - add timeout support in the SEV command
   d6c9bc664918 mei: bus: type promotion bug in mei_nfc_if_version()
   920b0e3c5e24 clk: tegra: bpmp: Don't crash when a clock fails to register
   fdf0d6477376 pinctrl: qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant
   5d10592e292f pinctrl: msm: Fix msm_config_group_get() to be compliant
   bbcdd75166d9 blk-mq: avoid to synchronize rcu inside blk_cleanup_queue()
   864e90ed4a8f blk-mq: only attempt to merge bio if there is rq in sw queue
   83459da8e319 IB/mlx5: fix uaccess beyond "count" in debugfs read/write handlers
   53a1ee238c84 block/DAC960.c: fix defined but not used build warnings
   dc78a980f995 staging: fsl-dpaa2/eth: Fix DMA mapping direction
   8d425fae2cf6 dmaengine: sh: rcar-dmac: avoid to write CHCR.TE to 1 if TCR is set to 0
   93b100ddda3b drm/amd/pp: Send khz clock values to DC for smu7/8
   0cbb058be904 arm64: perf: Disable PMU while processing counter overflows
   b89c077eff7c drm/panel: type promotion bug in s6e8aa0_read_mtp_id()
   252cdf1f5db5 ASoC: rt5651: Fix workqueue cancel vs irq free race on remove
   6c9e72d66dbf selftest: timers: Tweak raw_skew to SKIP when ADJ_OFFSET/other clock adjustments are in progress
   6e36e98ecb0a remoteproc: qcom: q6v5-pil: fix modem hang on SDM845 after axis2 clk unvote
   435962f3beaa scsi: lpfc: Fix panic if driver unloaded when port is offline
   074263d61eed scsi: lpfc: Fix NVME Target crash in defer rcv logic
   84159b84f331 scsi: libfc: fixup 'sleeping function called from invalid context'
   f7ee7f7b0618 ALSA: pcm: Fix snd_interval_refine first/last with open min/max
   0fce3c91ba68 selftests/android: initialize heap_type to avoid compiling warning
   330e11b03099 selftests: vDSO - fix to return KSFT_SKIP when test couldn't be run
   04ea31a181d3 rtc: bq4802: add error handling for devm_ioremap
   1950f800faa1 drm/amdkfd: Fix error codes in kfd_get_process
   4841f051b32c drm/amdkfd: Fix kernel queue 64 bit doorbell offset calculation
   b1373b80f9ec input: rohm_bu21023: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
   ae8247766d56 mfd: 88pm860x-i2c: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
   f40d90dd5567 rcutorture: Use monotonic timestamp for stall detection
   7961182ace13 net: mvpp2: make sure we use single queue mode on PPv2.1
   466ec0c2ba2d net: gemini: Allow multiple ports to instantiate
   382ca1b7ca79 gpiolib: Mark gpio_suffixes array with __maybe_unused
   a35951e982eb gpio: pxa: Fix potential NULL dereference
   c6bc7c725409 staging: bcm2835-audio: Don't leak workqueue if open fails
   28929ceced7d lightnvm: pblk: enable line minor version detection
   7785ada57436 lightnvm: pblk: assume that chunks are closed on 1.2 devices
   070b164edc30 ASoC: qdsp6: q6afe-dai: fix a range check in of_q6afe_parse_dai_data()
   b0442208f62f drm/amd/display: support access ddc for mst branch
   67a281a8bee9 tools/testing/nvdimm: Fix support for emulating controller temperature
   22df0497e104 f2fs: do checkpoint in kill_sb
   6e530bf7d202 coresight: ETM: Add support for Arm Cortex-A73 and Cortex-A35
   8da6cd501998 coresight: tpiu: Fix disabling timeouts
   d0fb01bb8ed9 coresight: Handle errors in finding input/output ports
   b3cf69dd8a2b sched/fair: Fix util_avg of new tasks for asymmetric systems
   a9093ae70197 parport: sunbpp: fix error return code
   cc55678dd2f8 tls: Fix zerocopy_from_iter iov handling
   88b8d17d3ab0 drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
   e293c3e0e60b drm/nouveau/debugfs: Wake up GPU before doing any reclocking
   3c266a692dda drm/nouveau: Fix runtime PM leak in drm_open()
   5d421dae2364 mmc: sdhci: do not try to use 3.3V signaling if not supported
   566b4caf1143 mmc: tegra: prevent HS200 on Tegra 3
   5f366ee1f1ff mmc: sdhci-of-esdhc: set proper dma mask for ls104x chips
   442f4d1e9aa6 tty: fix termios input-speed encoding
   859a99742a95 tty: fix termios input-speed encoding when using BOTHER
   24d7347116ba serial: 8250: of: Correct of_platform_serial_setup() error handling
   cc04d14157b8 ASoC: hdmi-codec: fix routing
   179dbd5fc4f1 gpu: ipu-v3: csi: pass back mbus_code_to_bus_cfg error codes
   b720a10bf407 liquidio: fix hang when re-binding VF host drv after running DPDK VF driver
   af62ca55dc1f ARM: hisi: check of_iomap and fix missing of_node_put
   c55e49df5371 net: hns3: Fix return value error in hns3_reset_notify_down_enet
   7c3197ac7034 ARM: hisi: fix error handling and missing of_node_put
   34330aee6948 ARM: hisi: handle of_iomap and fix missing of_node_put
   cef4231adf55 net: hns3: Fix for reset_level default assignment probelm
   4d23263a5a8e net: hns3: Reset net device with rtnl_lock
   ddf5261f9068 efi/esrt: Only call efi_mem_reserve() for boot services memory
   c1424ee6462b sched/core: Use smp_mb() in wake_woken_function()
   5c4a6af4c694 arm64: dts: mt7622: update a clock property for UART0
   5471c19b92f8 pinctrl: rza1: Fix selector use for groups and functions
   cb5b08a8ec5f pinctrl: mt7622: Fix probe fail by misuse the selector
   b07bfd045c5f configfs: fix registered group removal
   e75b2324e385 MIPS: loongson64: cs5536: Fix PCI_OHCI_INT_REG reads
   d5d7da805a06 KVM: PPC: Book3S: Fix matching of hardware and emulated TCE tables
   7974b0c64934 PM / devfreq: use put_device() instead of kfree()
   81ce15b06c0f security: check for kstrdup() failure in lsm_append()
   91c26cb2293f KVM: PPC: Book3S HV: Add of_node_put() in success path
   6a69ccd2ec68 evm: Don't deadlock if a crypto algorithm is unavailable
   f4a6c71481e3 Bluetooth: Use lock_sock_nested in bt_accept_enqueue
   b4a9422266f2 spi: dw: fix possible race condition
   f90ccc03b438 bpf: fix rcu annotations in compute_effective_progs()
   5e1002ab5c9b vfs: fix freeze protection in mnt_want_write_file() for overlayfs
   d466b2d4e4e7 mtdchar: fix overflows in adjustment of `count`
   babc65c641b1 audit: fix use-after-free in audit_add_watch
   a9fb28b40a36 arm64: dts: uniphier: Add missing cooling device properties for CPUs
   f48256986e0f net/mlx5: Add missing SET_DRIVER_VERSION command translation
   3caf6c73c0b4 binfmt_elf: Respect error return from `regset->active'
   6eb8c64e9afd mmc: meson-mx-sdio: fix OF child-node lookup
   0c6e2a79715a of: add helper to lookup compatible child node
   8bfbd71c1146 NFSv4.1 fix infinite loop on I/O.
   a12ad4f33e6f NFSv4: Fix a tracepoint Oops in initiate_file_draining()
   afaef9ba4486 x86/EISA: Don't probe EISA bus for Xen PV guests
   05a993198ded of: fix phandle cache creation for DTs with no phandles
   1f3cb0604f0f perf tools: Fix maps__find_symbol_by_name()
   a543f61a2775 perf/core: Force USER_DS when recording user stack data
   b205f931b0c0 xtensa: ISS: don't allocate memory in platform_setup
   f63dbd23e8a7 cifs: integer overflow in in SMB2_ioctl()
   6565bd3e63d3 CIFS: fix wrapping bugs in num_entries()
   bf1c05755d45 cifs: prevent integer overflow in nxt_dir_entry()
   8c7488864bdf Revert "cdc-acm: implement put_char() and flush_chars()"
   c705bfe3c3d6 usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()
   cb55532b9e64 USB: yurex: Fix buffer over-read in yurex_write()
   48f17ac733c6 USB: serial: ti_usb_3410_5052: fix array underflow in completion handler
   8a74265c0a05 usb: misc: uss720: Fix two sleep-in-atomic-context bugs
   9bf71499046e USB: serial: io_ti: fix array underflow in completion handler
   97180428d24b USB: net2280: Fix erroneous synchronization change
   bfe24fcf1fb0 usb: gadget: udc: renesas_usb3: fix maxpacket size of ep0
   23256d450acc USB: add quirk for WORLDE Controller KS49 or Prodipe MIDI 49C USB controller
   c6346e3fbb18 usb: host: u132-hcd: Fix a sleep-in-atomic-context bug in u132_get_frame()
   066bfee7ec75 usb: Avoid use-after-free by flushing endpoints early in usb_set_interface()
   13b6b8a90cab usb: uas: add support for more quirk flags
   cba0cba54741 USB: Add quirk to support DJI CineSSD
   59efbbc9a611 dm verity: fix crash on bufio buffer that was allocated with vmalloc
   f5f0f2ad7099 mei: bus: need to unlink client before freeing
   a1a8326f891c mei: bus: fix hw module get/put balance
   93f03d6dcbb6 mei: ignore not found client in the enumeration
   4c3af2149535 usb: mtu3: fix error of xhci port id when enable U3 dual role
   3f081e53ccd0 usb: xhci: fix interrupt transfer error happened on MTK platforms
   3d7a00c4f0aa usb: Don't die twice if PCI xhci host is not responding in resume
   87d948fe3a27 xhci: Fix use after free for URB cancellation on a reallocated endpoint
   9ed3ad68de71 misc: hmc6352: fix potential Spectre v1
   094302a07e89 misc: ibmvsm: Fix wrong assignment of return code
   662b1033af66 Tools: hv: Fix a bug in the key delete code
   d5995b9a926e vmbus: don't return values for uninitalized channels
   4585b79971f7 ovl: fix oopses in ovl_fill_super() failure paths
   617afda7f5d9 ipmi: Fix I2C client removal in the SSIF driver
   31364b2e1fb1 ipmi: Move BT capabilities detection to the detect call
   288bd736c8a0 ipmi: Rework SMI registration failure
   53c7bb8b93d0 mmc: omap_hsmmc: fix wakeirq handling on removal
   8cddf23b74d6 s390/crypto: Fix return code checking in cbc_paes_crypt()
   3e6bba18b8ef IB/ipoib: Avoid a race condition between start_xmit and cm_rep_handler
   9c58e39e3736 xen/netfront: fix waiting for xenbus state change
   d0028f48b330 pstore: Fix incorrect persistent ram buffer mapping
   40a31b8c9b90 RDMA/cma: Protect cma dev list with lock
   367c9cb26e65 xen-netfront: fix warn message as irq device name has '/'
   08012969004d PCI/AER: Honor "pcie_ports=native" even if HEST sets FIRMWARE_FIRST
   12f21ddaf49d x86/mm/pti: Add an overflow check to pti_clone_pmds()
   19700e6c1d40 x86/pti: Check the return value of pti_user_pagetable_walk_pmd()
   a9edba8f5f3c x86/pti: Check the return value of pti_user_pagetable_walk_p4d()
   7763d301d75d crypto: sharah - Unregister correct algorithms for SAHARA 3
   4d18bcc6ec97 dmaengine: mv_xor_v2: kill the tasklets upon exit
   7c14a171825c iommu/ipmmu-vmsa: IMUCTRn.TTSEL needs a special usage on R-Car Gen3
   d655b0e7d1a5 regulator: qcom_spmi: Fix warning Bad of_node_put()
   9611efe67019 regulator: qcom_spmi: Use correct regmap when checking for error
   4a5dfbca3e03 drm/amd/pp: Set Max clock level to display by default
   283ca5fd5b94 i2c: aspeed: Fix initial values of master and slave state
   ee4fa1801dfb drivers/base: stop new probing during shutdown
   8a1df288fc7d KVM: arm/arm64: Fix vgic init race
   77a7d97a4aad platform/x86: toshiba_acpi: Fix defined but not used build warnings
   dacc647eb982 s390/qeth: reset layer2 attribute on layer switch
   8f93a540b618 s390/qeth: fix race in used-buffer accounting
   b72b40d5dacf soc: qcom: smem: Correct check for global partition
   ed3ee622cda9 ARM: dts: qcom: msm8974-hammerhead: increase load on l20 for sdhci
   3679b8e9af6d arm64: dts: qcom: db410c: Fix Bluetooth LED trigger
   9ac72cec7e58 xen-netfront: fix queue name setting
   87fe89ddbf57 nfp: avoid buffer leak when FW communication fails
   6da3c7c96e0a ALSA: usb-audio: Generic DSD detection for Thesycon-based implementations
   78fcf13d0235 efi/arm: preserve early mapping of UEFI memory map longer for BGRT
   e505be5d53e0 reset: imx7: Fix always writing bits as 0
   cf29c5b3d339 arm64: fix possible spectre-v1 write in ptrace_hbp_set_event()
   e635ed205ad8 wan/fsl_ucc_hdlc: use IS_ERR_VALUE() to check return value of qe_muram_alloc
   5573ec7a7114 Smack: Fix handling of IPv4 traffic received by PF_INET6 sockets
   f5b4d1cce4a2 mac80211: restrict delayed tailroom needed decrement
   e19f90c90555 MIPS: jz4740: Bump zload address
   4105a80d60c0 ASoC: rt5514: Fix the issue of the delay volume applied
   ad60f993f3ec staging: bcm2835-camera: handle wait_for_completion_timeout return properly
   3360648a723d staging: bcm2835-camera: fix timeout handling in wait_for_completion_timeout
   acd8e75056b8 perf script: Show correct offsets for DWARF-based unwinding
   41870d0faa92 powerpc/powernv: opal_put_chars partial write fix
   575f58226b31 KVM: arm/arm64: vgic: Fix possible spectre-v1 write in vgic_mmio_write_apr()
   3e8433730a7c nvme-rdma: unquiesce queues when deleting the controller
   ab79cc228cce nvmet: fix file discard return status
   b42c221e6c6f perf powerpc: Fix callchain ip filtering
   7871bdd93e26 ARM: exynos: Clear global variable on init error path
   01a16afcdd8e omapfb: rename omap2 module to omap2fb.ko
   8c448f47bf01 fbdev: Distinguish between interlaced and progressive modes
   8fc18a9186d1 video: fbdev: pxafb: clear allocated memory for video modes
   0c664f04c204 perf powerpc: Fix callchain ip filtering when return address is in a register
   e04ab6fae461 fbdev/via: fix defined but not used warning
   4cecf931f72e video: goldfishfb: fix memory leak on driver remove
   6619761e5594 perf tools: Fix struct comm_str removal crash
   3bc6debeee75 fbdev: omapfb: off by one in omapfb_register_client()
   3340ab9770ee perf tests: Fix record+probe_libc_inet_pton.sh to ensure cleanups
   a036a42625e5 perf tests: Fix record+probe_libc_inet_pton.sh when event exists
   7909633281bf perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64
   aee426d18f8b perf tools: Synthesize GROUP_DESC feature in pipe mode
   6779c908d67a gfs2: Don't reject a supposedly full bitmap if we have blocks reserved
   4d63cecf086c perf test: Fix subtest number when showing results
   2bcb521130c6 media: ov5645: Supported external clock is 24MHz
   105b0d0e07c5 mtd/maps: fix solutionengine.c printk format warnings
   10edff95113a IB/ipoib: Fix error return code in ipoib_dev_init()
   b5781a323ac8 block: allow max_discard_segments to be stacked
   ded17a42ebf5 IB/rxe: Drop QP0 silently
   e41669ba0dcf media: videobuf2-core: check for q->error in vb2_core_qbuf()
   b37f1ffead9a MIPS: ath79: fix system restart
   11091b725238 dmaengine: pl330: fix irq race with terminate_all
   7549795df383 media: tw686x: Fix oops on buffer alloc failure
   e8b53e57272c kbuild: do not update config when running install targets
   69383cdcb314 kbuild: add .DELETE_ON_ERROR special target
   d3847b6449a0 clk: clk-fixed-factor: Clear OF_POPULATED flag in case of failure
   825568027a58 clk: core: Potentially free connection id
   36c234a7d639 Input: pxrc - fix freeing URB on device teardown
   10acffe4e6af clk: mvebu: armada-37xx-periph: Fix wrong return value in get_parent
   62d658666e16 clk: imx6sll: fix missing of_node_put()
   404280dc8655 clk: imx6ul: fix missing of_node_put()
   3ace27266f11 gfs2: Special-case rindex for gfs2_grow
   cffab62aa38c iwlwifi: cancel the injective function between hw pointers to tfd entry index
   aca7943ece90 nfp: don't fail probe on pci_sriov_set_totalvfs() errors
   38c65d4ed86c amd-xgbe: use dma_mapping_error to check map errors
   7ac07ffd7a1d xfrm: fix 'passing zero to ERR_PTR()' warning
   912e58471dc4 ALSA: usb-audio: Fix multiple definitions in AU0828_DEVICE() macro
   e87ce12cce31 ALSA: usb-audio: Add support for Encore mDSD USB DAC
   14b41aea20aa ALSA: msnd: Fix the default sample sizes
   071929af7183 iommu/io-pgtable-arm: Fix pgtable allocation in selftest
   6bd162fc88d2 iommu/io-pgtable-arm-v7s: Abort allocation when table address overflows the PTE
   129a7aebd133 iommu/arm-smmu-v3: sync the OVACKFLG to PRIQ consumer register
   602b80704322 usb: dwc3: change stream event enable bit back to 13
   9739856df45d net/mlx5: Use u16 for Work Queue buffer fragment size
   032fcd76b6b1 net/mlx5: Fix possible deadlock from lockdep when adding fte to fg
   7da7294ce303 net/mlx5: Fix not releasing read lock when adding flow rules
   60486fee29bb tcp: really ignore MSG_ZEROCOPY if no SO_ZEROCOPY
   87754d1856ac erspan: return PACKET_REJECT when the appropriate tunnel is not found
   a4eae12522a5 erspan: fix error handling for erspan tunnel
   17c7263eea85 net/mlx5: Fix debugfs cleanup in the device init/remove flow
   645e035edefe net/mlx5: Check for error in mlx5_attach_interface
   b800b7ef44b5 net/tls: Set count of SG entries if sk_alloc_sg returns -ENOSPC
   c73238573dea net/mlx5: E-Switch, Fix memory leak when creating switchdev mode FDB tables
   73da60476f94 tipc: orphan sock in tipc_release()
   de83178fddfb rds: fix two RCU related problems
   d34b61509c18 net: qca_spi: Fix race condition in spi transfers
   9a22310f122b net/mlx5: Fix use-after-free in self-healing flow
   da0e36fa0942 be2net: Fix memory leak in be_cmd_get_profile_config()

(From OE-Core rev: d81dd54365838ab63615c241adf3bef207ff8843)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Bruce Ashfield
9c27e66d6f linux-yocto/4.18: kernel configuration cleanups
Integrating the following kernel config cleanups:

  2c4eb01d57fd media-radio.cfg: change CONFIG_RADIO_SI470X to m
  3d38c0dbb0f4 usb-typec: enable CONFIF_TYPEC
  ae6272d621dd iio: rename CONFIG_TSL2x7x to CONFIG_TSL2772
  10c18d643dea iio: change CONFIG_AD5686 to CONFIG_AD5686_SPI
  f06703a4c55e media-rc: CONFIG_LIRC is now a bool
  a8cbad4a0533 media-i2c: remove configs selected by zoran drivers
  9c43f6157a44 media-pci-capture: remove zoran configs

(From OE-Core rev: 72e9ad0f24a31693b5f06df6d1e6da23e30e1627)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Bruce Ashfield
440ddf972b linux-yocto-dev: update PV to v4.19
(From OE-Core rev: 24ca8938724228ba2bf4929257e04d023fde4f94)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Bruce Ashfield
f7244423c7 linux-yocto-rt: fixup 4.14 merge issues
The latest -stable updates broke 4.14 -rt with some rtmutex
issues. We sync with the rt-stable tree to pickup the fix.

(From OE-Core rev: 8a172a8ac87cc63d6f89ff0f584a75fe7fcd10dd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Bruce Ashfield
84bbfd8583 linux-yocto-rt/4.18: update to -rt5
There was one missing fixup in the recent -rt referesh of 4.18,
this SRCREV bump picks up the gic changes that were missing.

(From OE-Core rev: b23f6e12b1a0809e0fb89bc7a77350c37beaeffc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Richard Purdie
b580a51baa libgcc/gcc-runtime: Disable thumb mode on armv6
Without this the build fails for armv6t targets due to invalid
assembler instructions in thumb mode.

[YOCTO #12929]

(From OE-Core rev: 801141be68e5c754f2cd1d80d13982f037fc03e5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18 10:56:55 +01:00
Richard Purdie
7e8056d96e systemtap: Fix typo in chown command
(From OE-Core rev: 02646be9d38fac14d9820d02d398b731b9c1bf9c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-17 13:41:12 +01:00
Richard Purdie
3b77e7b785 systemtap: Fix issues from 4.0 upgrade
4.0 adds systemd support but installs the unit files in the wrong location.
Fix this in do_install and inherit systemd to package them correctly.

Also fix ownership of files manually copied in to root:root to avoid QA warnings.

(From OE-Core rev: 74833a612cc383679bb5516e98c7508da47b0767)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Victor Kamensky via Openembedded-core
5a0e22ebc9 systemtap: 3.3 -> 4.0
Upgrade systemtap from 3.3 to 4.0: Removed backported patch.

Very short summary of major changes from SystemTap 4.0
announcement by Frank Ch. Eigler <fche@redhat.com>:

> prometheus exporter network service; ebpf support extensions including
> strings and implementation of traditional log(), sprintf() functions;
> rebuilt rich tapset coverage for 4.17+ syscalls and for
> tracepoint-based syscalls; script language tweaks for supporting
> machine-generated scripts

Fixes [YOCTO #12950]

(From OE-Core rev: d7f828223f3fabdadcff974c1ed6f8f74e438405)

Signed-off-by: Victor Kamensky <kamensky@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Ross Burton
befef28652 scripts/patchreview: tighten patch detection
Only look in recipes-* folders for patches, to stop finding patches in
e.g. meta/lib/oeqa/manual.

(From OE-Core rev: ed912e10c61ea9d45ca648e03eebafeebcf7e9b0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Florian Wickert
b382e7ec34 Revert "gstreamer1.0-plugins-bad: remove rtmpdump from DEPENDS"
This reverts commit aa6def606f which I
posted myself.
The Problem is rtmpdump, not the gstreamer1.0-plugins-bad recipe.
The correct to fix this is to patch rtmpdump to work with OpenSSL 1.1.

(From OE-Core rev: 9b7c1d7ac9b2cbd3744776328386bfb4c90c1afc)

Signed-off-by: Florian Wickert <fw@javox-solutions.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Changqing Li
603f808f59 update-rc.d: add -f into postinst OPT
add -f into postinst OPT to fix run postinst scriptlet fail
problem during do rootfs, while INITSCRIPT_PARAMS set to remove.

+ type update-rc.d
+ '[' -n qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs ']'
+ OPT='-r qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs'
+ update-rc.d -r work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs keepalived remove
update-rc.d: work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs/etc/init.d/keepalived exists during rc.d purge (use -f to force)
D: %post(keepalived-1.4.2-r0.core2_64): waitpid(305974) rc 305974 status 100

(From OE-Core rev: 45224526edbe65012a846c066d2b539a360f0c51)

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>
2018-10-16 20:35:43 +01:00
Kai Kang
94918d5c58 sstatetests.py: reset TCLIBCAPPEND
It appends TCLIBCAPPEND to TMPDIR in meta/conf/distro/defaultsetup.conf:

  TMPDIR .= "${TCLIBCAPPEND}"

It affects some oe selftest cases in sstatetests.py. Reset TCLIBCAPPEND
for these cases.

(From OE-Core rev: 4549c9dd96be8db69d520f66f4507939df9e9587)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Paul Eggleton
88d141e9de openssl: correct license comment
The comment here stated that openssl is dual-licensed, but that would
mean that either of the two licenses could be used which is *not* the
case [1]. However LICENSE = "openssl" *is* correct because in OE that
maps to a generic license file which includes both licenses, which
makes sense because there isn't really any such thing as OpenSSL that
would be covered by the "OpenSSL license" and not the "SSLeay license".
Correct the comment to avoid any confusion.

[1] https://www.openssl.org/source/license.html

(From OE-Core rev: 6c821ce6ecae789320b31ec55c83907d6dd78359)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Hongzhi.Song
8bea6f81d0 ltp: modify mmap_24-2 testcase
Mips will return EINVAL instead of ENOMEM as expected
if the range [addr + len) exceeds TASK_SIZE.

Linux kernel code: arch/mips/mm/mmap.c
if (flags & MAP_FIXED) {
    /* Even MAP_FIXED mappings must reside within TASK_SIZE */
    if (TASK_SIZE - len < addr)
       return -EINVAL;

Relax the condition and accept both ENOMEM and EINVAL
as expected outcome.

(From OE-Core rev: ff1d158fb15f7a8bc7bca542baac6f9873a58f68)

Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Anuj Mittal
bfa9068b40 perl: skip tests that are not useful
Some tests, like the one that compares the hashes for a list of files
against those stored in a .dat file, don't make sense for downstream
distros packaging perl.

Backport a patch from upstream that allows skipping of these tests at
runtime. Also remove the local patch trying to keep hashes up-to-date
for one of those tests.

Fixes [YOCTO #12787]

(From OE-Core rev: 557f4618b75b8739a647e46054ab587ae2bbdc25)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Zhixiong Chi
1c106ae64a binutils: fix three CVE issues
Backport the CVE patches from the upstream:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;
h=30838132997e6a3cfe3ec11c58b32b22f6f6b102
h=cf93e9c2cf8f8b2566f8fc86e961592b51b5980d

[BZ 23686] https://sourceware.org/bugzilla/show_bug.cgi?id=23686
[BZ 23685] https://sourceware.org/bugzilla/show_bug.cgi?id=23685

The one is for CVE-2018-17358 and CVE-2018-17359, and the another
is for CVE-2018-17360.

(From OE-Core rev: 2683d8287d6878868d3aa15ce6e6a80ce28d8737)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Hongxu Jia
4e1c5499fe gobject-introspection.bbclass: fix gir installed but not shipped in any package while multilib enabled
Since commit [9524330 gobject-introspection: fix multilib install
file conflicts] applied in oe-core, while multilib enabled, gir
files will be installed to `${libdir}'.

Refer above commit, modify gobject-introspection.bbclass to
split gir to package correctly.

(From OE-Core rev: e0cc1dc6f1c14babe29a29a7211dc1c69d782b95)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Kai Kang
95477eaede wic: search nonarch STAGING_DATADIR for multilib
It fails to build multilib image such as lib32-core-image-minimal with
wic by set 'IMAGE_FSTYPES = "wic"':

| ERROR: Couldn't find correct bootimg_dir, exiting

When multilib is enabled, STAGING_DATADIR is expanded with MLPREFIX. But
dependencies of images such as syslinux is still populated to nonarch
STAGING_DATADIR.

Search nonarch STAGING_DATADIR to fix the error.

(From OE-Core rev: dbae9a6f9a1c6cc7d4dd680d7bbda3dfa40f3491)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Changqing Li
87082c60dd qemu: fix CVE-2018-17958/17962/17963
(From OE-Core rev: 1bbaf8d198b121a2a6f033350d1de3baa0a1163c)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Peter Kjellerstedt
0cdcce13bc useradd_base.bbclass: Make perform_groupmems handle overlapping usernames
If the name of the last user being part of the group had a name that
was a prefix of the user being added, then perform_groupmems() would
treat it as if the user already existed in the list of users and not
add it.

Reported-by: Peter Henricsson <peter.henricsson@axis.com>
(From OE-Core rev: 3bab0416f20366e75444be9b65fb1369643f103a)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Ross Burton
e349b239c8 python: remove the PN package entirely
Nothing should be in this package, so remove it entirely to be sure nothing does
end up in there.

(From OE-Core rev: b4ea23adf58d664f3cc5abe6d04b507fc000426e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Ross Burton
04370c671e python: don't wipe RDEPENDS when parsing manifest
We want to allow the main recipe to extend RDEPENDS directly, so don't wipe
RDEPENDS when reading the manifest.

This fixes the missing python-misc dependency from python-modules.

As the wiping was having the good side-effect of removing the PN-dev dependency
on PN (which doesn't exist), clear RDEPENDS_${PN}-dev.

(From OE-Core rev: fe3727af217dce4488f1fc6aab3f66232cf11fea)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Chen Qi
2b5d32596b bind: fix startup failure in sysvinit
The generated key file should try to have bind group so that if
the named daemon is started via '-u bind' option, which is the
default in OE core, we will not get startup failure because of
'permission denied' error.

(From OE-Core rev: fc4c4f40dbcf558a48058d944eef21e588d64aa0)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-16 20:35:43 +01:00
Martin Jansa
b02f3bfe2f local.conf.sample.extended: add another warning to comment about GLIBC_GENERATE_LOCALES
(From meta-yocto rev: e8b5b952e4268ff1b87bacdd1c7db6a8d92fb321)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 23:45:40 +01:00
Hongxu Jia
600b5f1202 nasm: fix CVE-2018-10016
Previously fix of CVE-2018-10016 caused ovmf build failure,
I reported the failure to upstream and it replied with
this V2 fix.

Details at:
https://bugzilla.nasm.us/show_bug.cgi?id=3392473

(From OE-Core rev: e2fa6bc137faebba3c440cac93c88092421e8e82)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 23:45:28 +01:00
Martin Jansa
b8b8f43957 glib.inc: drop duplicate locale-base-fr-fr runtime dependency
(From OE-Core rev: 7535797e0df1e5f88d8b4bf251e6eab3279707d6)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 23:45:28 +01:00
Khem Raj
7dd981cb89 glibc: Do not use thumb1 ISA on armv6
This does not work and is unsupported so lets compile glibc in ARM mode
always on armv6 SOCs

Fixes [YOCTO #12929]

(From OE-Core rev: de01490695c70ae29b4f2f82aecbffaf5667449e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 23:45:28 +01:00
Joshua Watt
2844a495c6 initscripts: populate-volatiles: Speed up processing
Checking the requirements for each volatiles file in the
populate-volatiles script can be very slow when there are a large number
of volatiles files, easily consuming over 80% of the processing time.
These checks don't usually uncover any problems so concatenate all the
volatiles files together and process them as one large file for a "fast
path" option. This ensures that the penalty for checking the
requirements is only incurred once. In the event that checking the
requirements for the unified file fails, fall back to the slow process
of checking each one individually so that the offending one can be
skipped.

The core file is handled separately because it is responsible for
creating the temp directory used by check_requirements and thus must
always run first and without having its requirements checked.

[YOCTO #12949]

(From OE-Core rev: f380fac8a43a75861f3157777b12a317b985a5e1)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 09:20:56 +01:00
Ross Burton
0986c77eb0 e2fsprogs: add perl dependency to e2fsprogs-ptest
Some of the tests need perl, so add it to the RDEPENDS.

(From OE-Core rev: 3095fbee4b46e9bb2aa9c7355bdb554331df201c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 09:20:56 +01:00
Ross Burton
be2592f5c7 python3: add ptest runner
Copy the Python 2 run-ptest script to execute the Python 3 test suite.

(From OE-Core rev: d371ff04628bdf7bac66341aeb9a66d145f66416)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 09:20:56 +01:00
Cheuk Wing Leung
4837c3b0ad python3: set PYTHONHOME for nativesdk
commit c5629268b0f8ae0a425c98337d13e8dc83107e13:
[
    python: set PYTHONHOME for nativesdk

    This ensures that the nativesdk python functions correctly without needing to
    set PYTHONHOME in the sdk environment setup script.
]

it's also needed for python3.

(From OE-Core rev: b0cbd9efc30289bb4838dcaa43beba2c0c372ab2)

Signed-off-by: Cheuk Wing Leung <cwleung@kth.se>
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 09:20:56 +01:00
Ross Burton
cd9b883f96 python: don't use runtime checks to identify float endianism
Python uses AC_RUN_IFELSE to determine the byte order for floats and doubles,
and falls back onto "I don't know" if it can't run code.  This results in
crippled floating point numbers in Python, and the regression tests fail.

Instead of running code, take a macro from autoconf-archive which compiles C
with a special double in which has an ASCII representation, and then greps the
binary to identify the format.

This is essentially a backport of the Python 3 patch in oe-core 1781b87.

(From OE-Core rev: 94cea72a23a374eb616d5642977b45172537beac)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 09:20:56 +01:00
Ross Burton
64ff0a5e6c python: clean up ptest
As the manifest handling is done differently now, just inherit ptest with the
other inherits.

test_shutil needs unzip so add to RDEPENDS.

Instead of using a patched Makefile, call test.regrtest directly.

(From OE-Core rev: 84f34ad223b1e3f36cab2ac12246eb90efc919bc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 09:20:56 +01:00
Hongxu Jia
273af8144e openssl: use deterministic perl Text::Template module bundled by openssl source
1. The building openssl requires to install perl Text::Template module(>=1.46),
but Text::Template is a non core Perl module, openssl chooses to bundle
Text::Template 1.46 into the source, for convenience.
8ff2af5483

2. While Text::Template < 1.46, the produced build files are gravely faulty.
https://github.com/openssl/openssl/pull/6682

3. If host has installed Text::Template < 1.46 (such as CentOS-7.5 has Text::
Template 1.45). The mismatched old module was used although the right one in
openssl source.

So set PERL5LIB to use deterministic perl Text::Template module bundled
by openssl source and ignore the one of host

(From OE-Core rev: 5e7a75c226d4df0c066f04eaea014b8888c6bed2)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-14 09:20:56 +01:00
Kai Kang
9e958c9023 nss: fix non-determinism when create a blank certificate
It uses certutil from nss to create a blank certificate. But the
checksum of database file key4.db changes every time:

$ certutil -N -d sql:. --empty-password
$ md5sum *
f9dac2cfcb07cc8ca6db442a9a570906  cert9.db
b892c5ff7c1977d4728240b0cf628377  key4.db
7b9136cb03f07ae62eb213a5239fda71  pkcs11.txt
$ rm *

$ certutil -N -d sql:. --empty-password
$ md5sum *
f9dac2cfcb07cc8ca6db442a9a570906  cert9.db
405d55178e866a115c1aa975fccfa764  key4.db
7b9136cb03f07ae62eb213a5239fda71  pkcs11.txt

Provide pre-created databases with a blank certificate to fix
non-determinism issue. And these database files are from nss qemux86-64
build.

(From OE-Core rev: e64a30f7af87fa960b012ace92c51b88e8abae68)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Rui Wang
48df61b171 unfs3: Fix utime for symlink in attr.c
unfs3 has an old defect that it can not change the timestamps of a
symlink file because it only uses utime(), which will follow the
symlink. This will not cause an error if the symlink points to an
existent file but can be triggered with rpm workflows.

Making unfs3 support lutimes() addresses this problem.

(From OE-Core rev: 244a5be0eab31310b8717ab6b713c2902def4e0c)

Signed-off-by: Rui Wang <rui.wang@windriver.com>
Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Chen Qi
a73c92e30b nativesdk-packagegroup-sdk-host: add nativesdk-flex
nativesdk-flex is needed for kernel development inside traidtional
SDK environment, more particularly, `make scripts' under /usr/src/kernel.
So add it to nativesdk-packagegroup-sdk-host.

(From OE-Core rev: 6f8b2a9e03f4e54befe4df0fcfca24e676aef7b5)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Chen Qi
3fcd96ea1c packagegroup-core-lsb/-full-cmdline: add bzip2
We are having the following error when using 'tar' from tar
recipe to decompress .tar.bz2 files.

  tar (child): bzip2: Cannot exec: No such file or directory
  tar (child): Error is not recoverable: exiting now
  tar: Child returned status 2
  tar: Error is not recoverable: exiting now

The tar package is introduced by these two packagegroups into image.

>From the README file from tar's source codes:

  """
  ** gzip and bzip2.

  GNU tar uses the gzip and bzip2 programs to read and write compressed
  archives.  If you don't have these programs already, you need to
  install them.
  """

So we'd better cluster gzip and bzip2 with tar. These two packagegroups
already get 'gzip', so we also add 'bzip2'.

(From OE-Core rev: ca69d793e4b987bd5202e1359ff82c515ad65a5a)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Chen Qi
8d29bd8ad0 ksample.py: fix error message
The current error message is like:

  kobject-example.kodoesn't exist

Add a space so that it looks like:

  kobject-example.ko doesn't exist

(From OE-Core rev: 30f2cdd0a3ee0874bebd135e35ab591f630e8adc)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Changqing Li
ba33809b8c e2fsprogs: fix test f_detect_junk print error msg
This test need to check config.h, so install it
to fix below err msg:

grep: ../lib/config.h: No such file or directory
./test/f_detect_junk/script: line 3: [: : integer expression expected
f_detect_junk: detect non-fs file data: ok

(From OE-Core rev: 53f2ad2ec54fd69d91c2445c4ae20585b836e2ea)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Geoff Parker
50f41202cc wic: make engine.py:get_partitions() resilient to parted/dmidecode stderr output
Running wic commands on Debian 10 systems fail in
scripts/lib/wic/engine.py:get_partitions() due to new stderr output captured
when trying to parse the output from /sbin/parted as a non-root user.

The parted command calls the dmidecode utility, which produces this error
as a non-root user:
    /sys/firmware/dmi/tables/smbios_entry_point: Permission denied
    /dev/mem: Permission denied

scripts/lib/wic/engine.py:get_partitions() calls misc.py:exec_cmd(),
a subprocess wrapper which returns a combined stderr and sdtdout.
These messages to stderr confuse the partition table parser in
get_partitions().

This patch has the partition table parser ignore lines before the expected
"BYT;" header string.

Running wic in Debian 9 does not have this issue.

(From OE-Core rev: d6936301d7598b7a783beaae95109555faf6cc17)

Signed-off-by: Geoff Parker <geoffhp@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Joshua Watt
2848e37111 initscripts: read-only-rootfs-hook: Use overlay if available
Copying files from the read-only /var/lib to tmpfs can be slow and waste
memory. If the kernel supports the overlay file system, use it to mount
a writable tmpfs on top of the read-only /var/lib and avoid the file
copy.

(From OE-Core rev: 370fda1b2e8d5dc011522131bba4106de26bfb19)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Mark Asselstine
6dd32df4b4 meson.bbclass: Fix build issues with /tmp mounted with noexec
Since commit d297f7ebf3f6 [fribidi: use Meson instead of autotools]
build failures have been observed with this package. The immediate
issue was related to improperly named #defines per
https://github.com/fribidi/fribidi/commit/46f52d588ab5, however, the
root cause was FRIBIDI_SIZEOF_INT getting a value of "-1".

After searching the meson logs the following was found:

  Could not run: /tmp/tmp2fxe6ha1/output.exe (error: [Errno 13] Permission denied)
  Checking for size of "int": -1

Which pointed to the real root cause being /tmp mounted with noexec, a
common configuration on Redhat and other distros. This issues has been
raised in the meson community:
https://github.com/mesonbuild/meson/issues/2972 but is yet to be
addressed.

Using the discussion from issue#2972 and the fact that the underlying
code makes use of python 'tempfile' we can simply create a 'tmp'
directory and make use of TMPDIR to avoid this issue.

(From OE-Core rev: 9800daf59d2235bc492d1aeb600e46ad62303510)

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Changqing Li
6ffcc26651 e2fsprogs: fix test i_bitmaps failed
without diffutils, diff from busybox will be used, diff of
busybox cause diff result different with expect file under test.
The diff result generated by 2 /usr/bin/diff is different.

change to use diff under diffutils to fix it

(From OE-Core rev: 35baffb28a4598f385a6ab7765427db683146c1b)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Chen Qi
514ec3123b util-linux: fix alternatives setting for unshare
The alternative setting for unshare belongs to the util-linux-unshare
package instead of the util-linux package. Fix this problem to avoid
a dead symlink /usr/bin/unshare -> /usr/bin/unshare.util-linux on target.

(From OE-Core rev: 5c4922d5a3bc4a5aaa807d9e65210d0c01c9bdef)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Anuj Mittal
8421aede4f systemd: add ALTERNATIVE for reboot
reboot is provided by busybox too. Add ALTERNATIVE to ensure that there
are no conflicts when both are installed.

(From OE-Core rev: a27a197ad4bb32fa93aa95e685e9e70ffe755811)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Anuj Mittal
ef4a417ab0 busybox: move reboot out of init.cfg
reboot is needed for initramfs where no init manager is set. This
partially reverts:

commit b6fbb3f3d4
Author: Chen Qi <Qi.Chen@windriver.com>
Date:   Mon Jul 30 17:41:57 2018 +0800

    busybox: move init related configs to init.cfg

    Move init related configs to init.cfg.

    These config items do not make much sense unless busybox is selected
    as the init manager. They should belong to init.cfg.

We would need to set up ALTERNATIVES for reboot in this case.

(From OE-Core rev: 239a4fc1db530f201e1f7069b2045135699a85a7)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Anuj Mittal
e574eab500 init-install-efi.sh: improve info message
Let users know that the installation was successful and that pressing
Enter would lead to a reboot.

(From OE-Core rev: a5993d9afab060d07213c14c0188422c9e258693)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Robert Yang
f302012bdd prelink: Fix Segmentation fault error when prelink qemu
The info->resolvetls might be NULL according to src/prelink.c:
[snip]
 /* Dynamic linker does not depend on any other library,
    all symbols resolve to themselves with the exception
    of SHN_UNDEF symbols which resolve to 0.  */
if (info->symtab[r_sym].st_shndx == SHN_UNDEF)
  {
    info->resolveent = NULL;
    info->resolvetls = NULL;
[snip]

So we must check it before use its members, otherwise, there might be
Segmentation fault error.

Fixed:
MACHINE = "qemumips"
IMAGE_INSTALL_append = " qemu"
$ bitbake core-image-minimal
[snip]
| /path/to/qemumips-poky-linux/core-image-minimal/1.0-r0/temp/run.prelink_image.1000: line 111:  1010 Segmentation fault      (core dumped)
[snip]

(From OE-Core rev: 7f5d6f6b70cb1eb486d3ff5c029fc3c6202fc826)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Yi Zhao
25f0252d61 ltp: use 'ping -6' if ping6 is not avaliable in netns_helper.sh
The iputils-ping6 was dropped since the 'ping6' command had been merged
into ping command. Backport patch from upstream to let both 'ping6' and
'ping -6' work.

(From OE-Core rev: 7257f209e317db62f92279fc2ff7d6d1e5eddf75)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Kai Kang
a60029776d vala: update vapigen-wrapper
The .gir files from gobject-introspection are configured to install to
${libdir}/gir-1.0 when multilib is enabled. Update vapigen-wrapper accordingly.

(From OE-Core rev: 78df4225cc12ba59466ae398b3860b207758e652)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Kai Kang
d5e56347a6 gobject-introspection: fix multilib install file conflicts
Fix multilib isntall file conflicts for gobject-introspection.
* use multilib_script.bbclass to handle ${bindir}/g-ir-annotation-tool
  and ${bindir}/g-ir-scanner
* add configure option to install .gir files to an alternative path and
  only set it when multilib is enabled

(From OE-Core rev: efd91da5230ea27f5c554c3fe51d4c009b85705d)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Kai Kang
ca571cb982 gobject-introspection: add required python modules to rdepends
It fails to run g-ir-scanner from package gobject-introspection that
missing python modules 'xml' and 'pickle'. Add them to rdepends.

(From OE-Core rev: fa1bad8d96f7f0b8bf5fd2b85ad10b783ff2d303)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Richard Purdie
d91a282947 testimage: Ensure opkg/apt test suites are run
Currently only the dnf package manager tests are automatically added to the
list of tests to run. Improve the code to handle automatic addition of
the apt and opkg tests too.

(From OE-Core rev: c9169e4d1fa67289d5beb0e1f8fb5c54153c4242)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-12 16:57:21 +01:00
Richard Purdie
793a82c2da oeqa/manual/oe-core: Drop image build during taskexp test
Building an image takes time and isn't necessary to test taskexp,
we can drop this step.

(From OE-Core rev: 298eb27037172925a83b37541e5955bbf3b7d2fb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Richard Purdie
5decbeef58 oeqa/manual: Remove bitbake-selftest execution
The autobuilder runs bitbake-selftest already so we don't need
to execute this manually.

(From OE-Core rev: f223f49b7e3d3f6ef07915edea1a6233ae9869e2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Yeoh Ee Peng
efb1e2d831 oeqa/manual: transfer manual test cases from testopia to oeqa
As part of the solution to replace Testopia, manual test cases
need to be migrated to OEQA. These manual test case json files
will serve two use cases.

Use case#1: as input to the future commandline-based manual test
runner script, where this script will display actions and expected
result information in user friendly text, then it will capture
user input for test result and log, finally it will write test
result and log into existing standardize test result json format
from OEQA framework for automated tests.

Use case#2: QA will open and read these json file manually for
planning manual test execution. Any reader interested in
understanding manual test cases will open and read these files.

(From OE-Core rev: dcaf843878e9adcb3fab025d54cd5d9ceb6c2fce)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Richard Purdie
aa2b645bf2 oeqa/runtime/opkg: Ensure the test works on multilib
After allarch was disabled in multilib, this test broke. Fix the test to account
for that change.

(From OE-Core rev: 6f692d86c2c6742c67aba93fa24b930af02d8e85)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Richard Purdie
64ca57fe52 testimage: Ensure package-index is triggered for opkg/apt tests
If the opkg/apt tests are run without a package-index they will fail.
Trigger this here for now as a dependency until the code can be improved.

(From OE-Core rev: 7805eec0f522da2d2b6a08c8a07a9243e26c014a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Richard Purdie
3ad7ccc21d testimage: Ensure TESTIMAGEDEPENDS is appended to for qemuall override
The current qemuall override overwrites other dependencies unintentionally.
Tweak the code to avoid this by appending to the variable.

(From OE-Core rev: fc8df45e6b27dd7a26b7bf88a06ffa831fcf075c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
grygorii tertychnyi via Openembedded-core
bc8f229366 lib/oe/utils: add eol to format_pkg_list()
Append '\n' to the non-empty formatted string before return. If you
write it to the (manifest) file, it will ensure file ends with a newline.

Many GNU utilities have problems processing the last line of a file
if it is not '\n' terminated. E.g. if the last line is not terminated
by a newline character, then "read" will read it but return false,
leaving the broken partial line in the read variable(s).
It can also break or adversely affect some text processing tools,
that operate on the file.

(From OE-Core rev: ee4d0c879713ba50dc6cc3300f44647faebee2e0)

Signed-off-by: grygorii tertychnyi <gtertych@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Ross Burton
55fe5156ea libproxy: correctly disable the KDE module
The configuration option is WITH_KDE now, as it supports both KDE4 and KDE5.

(From OE-Core rev: 2a5d1db6643482dd06a456e303c6f6bc88059813)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Pascal Bach
814be37428 libproxy: disable python2 and python3 support
The option WITH_PYTHON got replaced by
WITH_PYTHON2 and WITH_PYTHON3.

(From OE-Core rev: 91fe0fb4c7d48cf8fb02fbde26fe5657d5d9a491)

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Andrej Valek
31dbe40c9f libarchive: fix bug1066
Fix out of bounds read on empty string filename for guntar, pax and v7tar

(From OE-Core rev: 459506272b8800604886f6bd3bc32ee09d7bb906)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-11 23:06:35 +01:00
Peter Kjellerstedt
8a2e53b525 libxml2: Make it compatible with externalsrc
Fetch the test tar ball to a subdirectory in ${S}. This avoids the
following error after having done `devtool modify libxml2`:

| DEBUG: Executing shell function do_configure
| find: ‘.../build/tmp/work/mips32r2el-nf-poky-linux/libxml2/2.9.4-r0/xmlconf/’: No such file or directory

(From OE-Core rev: d0d55add6cb01252a46d829ade75666920b676fa)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 17:59:09 +01:00
Peter Kjellerstedt
d4f4f56628 lsof: Make it compatible with externalsrc
Make the unpack task do nothing if externalsrc is in use. This avoids
the following error after having done `devtool modify lsof`:

ERROR: lsof-4.91-r0 do_unpack: Unpack failure for URL:
'file://.../builds/qemux86-64/tmp/work/core2-64-poky-linux/lsof/4.91-r0/lsof_4.91/lsof_4.91_src.tar'.
Unpack command PATH="..." tar x --no-same-owner -f
.../builds/qemux86-64/tmp/work/core2-64-poky-linux/lsof/4.91-r0/lsof_4.91/lsof_4.91_src.tar
failed with return value 2

(From OE-Core rev: 51f9a0e58d7b996c4589566963a5853ed93814f7)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 17:59:09 +01:00
Peter Kjellerstedt
c7bd5c98dd acl: Make it compatible with externalsrc
Make the subdir fetch path for configure.ac relative. This avoids the
following error after having done `devtool modify acl`:

ERROR: acl-2.2.52-r0 do_unpack: Unpack failure for URL:
'file://configure.ac;subdir=.../builds/qemux86-64/workspace/sources/acl'.
subdir argument isn't a subdirectory of unpack root
.../builds/qemux86-64/tmp/work/core2-64-poky-linux/acl/2.2.52-r0

(From OE-Core rev: 8a12bb7349bce29403077e18875563a9b0770838)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 17:59:09 +01:00
Ross Burton
2da0701a83 glib-2.0: add missing locale dependencies to PN-ptest
The test suite skips several tests if the required locales are not found, so add
them as dependencies of glib-2.0-ptest.

(From OE-Core rev: b9317997bd4527b7873eb4f903cc4890b5b3580f)

(From OE-Core rev: f1c122fdc14624a659f8d4b07e1ff1f21e472e50)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 17:59:09 +01:00
Ross Burton
b31bfbcf05 glib: fix Lithuanian strings in GDate test suite
This test suite has hard-coded strings which don't match the new translations in
glibc 2.28, so update the test suite.

(From OE-Core rev: e1fa8611de2df3a1a15ae795c34f32e4e7fdbc79)

(From OE-Core rev: fe3eb823cded89acb123308e56a5c888ffa1409b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 17:59:09 +01:00
Richard Purdie
4806d53304 bitbake: main: Fix environment handling for UI module imports
The environment was being cleared before the UI imports occurred which
caused problems for graphical UIs like taskexp. The full environment was
intended to be available to UI clients and it was only meant to be cleared
for the server/cooker, so tweak the code order so this is the case.

This fixes problems reported for taskexp.

[YOCTO #12670]

(Bitbake rev: ac15028391fdcc3fec2dd0e64a4f763ce63e5449)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:48 +01:00
Hongxu Jia
6562bd5805 webkitgtk/epiphany: add opengl to REQUIRED_DISTRO_FEATURES
They can't be built without opengl in DISTRO_FEATURES.
[snip]
|webkitgtk-2.20.3/Source/WebCore/platform/graphics/OpenGLShims.h:23:10:
fatal error: GL/gl.h: No such file or directory
[snip]

Some sort of GL is needed yes. We indicate that with opengl loosely in OE

The epiphany depends on webkitgtk, add opengl to REQUIRED_DISTRO_FEATURES also.

(From OE-Core rev: 059af47ecd75d6b733ba893e000749bf3d89d413)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:35 +01:00
Ross Burton
f997e13d03 archiver: remove left-over debugging
(From OE-Core rev: 6fe833611f985198e3ca038e5095f0d03249ce82)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:35 +01:00
Davis, Michael
9fa7068855 wic: Support for changing the imager.
(From OE-Core rev: f24c3538a27388d282a94e2d8a70cd9108d0919c)

Signed-off-by: Michael Davis <michael.davis@essvote.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:35 +01:00
Changqing Li
f76e2655d4 libsndfile1: CVE-2018-13139
A stack-based buffer overflow in psf_memset in common.c in libsndfile 1.0.28.

Fixed in https://github.com/erikd/libsndfile/issues/397

(From OE-Core rev: 6b5a9078a7c5035590ee4dc2e23582da94d4a104)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:35 +01:00
Andre McCurdy
b235f70712 libxml2: move xmlcatalog and xmllint back into libxml2-utils
Packaging of libxml2-utils has been broken since 2011:

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

(From OE-Core rev: 6f49e72dbb36d0a42993e7c788c17ff03571ece7)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:35 +01:00
Jens Rehsack
2499589fb6 populate_sdk_ext.bbclass: avoid populating tools twice
When running `bitbake -c populate_sdk_ext ...` for an image
recipe inheriting populate_sdk_qt5, `nativesdk-qemu-helper` is
deployed via `nativesdk-packagegroup-sdk-host`, which already
contains some of the tools (by name: "oe-find-native-sysroot
runqemu*").

To avoid error like:
    Configuring nativesdk-packagegroup-qt5-toolchain-host.

    NOTE: Running intercept scripts:
    NOTE: > Executing update_gio_module_cache-nativesdk intercept ...
    NOTE: + [ True = False ]
    + qemu-x86_64 -r 3.2.0 -E LD_LIBRARY_PATH=/home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib:/home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/lib -L /home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image /home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/nativesdk-gio-querymodules /home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image/opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/gio/modules/

    NOTE: Executing copy_buildsystem ...
    DEBUG: Executing python function copy_buildsystem
    NOTE: Generating sstate task list...
    NOTE: Generating sstate-cache...
    NOTE: Generating sstate-cache...
    DEBUG: Python function copy_buildsystem finished
    NOTE: Executing install_tools ...
    DEBUG: Executing shell function install_tools
    Traceback (most recent call last):
      File "/home/sno/gpw-community-bsp/sources/poky/scripts/lnr", line 21, in <module>
	os.symlink(target, linkname)
    FileExistsError: [Errno 17] File exists: '../../../../layers/poky/scripts/oe-find-native-sysroot' -> '/home/sno/gpw-community-bsp/mops-yocto-platform/tmp/work/fischer-poky-linux/updatable-app-image/1.0-r0/sdk-ext/image//opt/mops/2.5+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/oe-find-native-sysroot'
    WARNING: exit code 1 from a shell command.
    DEBUG: Python function do_populate_sdk_ext finished

only add those tools unpackaged to the deployment which are
still missing.

(From OE-Core rev: 3274819ce3bb64316853c6f0bb7840c38635c26c)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:35 +01:00
Andrej Valek
38a4f6e4f8 populate_sdk_base: move template files location to variables
Let users to use custom toolchain template files instead of overloading
the whole function.

(From OE-Core rev: d4d5fdadaf2f671559326ab594fb596995846ca4)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:35 +01:00
Stefan Agner
165649d628 linux-firmware: use ${nonarch_base_libdir} for all firmware
Replace the remaining hardcoded '/lib' in kernel firmware installation
path with ${nonarch_base_libdir}.

(From OE-Core rev: b5d01558cfb5e65ef8f08eef70fa64ea6782dda5)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:34 +01:00
Jacob Kroon
860d0edc20 gptfdisk: Use PACKAGECONFIG to control ncurses and popt dependencies
gptfdisk uses a simple Makefile with no automatic detection of
external library support. Use PACKAGECONFIG_CONFARGS and pass
the make targets in EXTRA_OEMAKE.

(From OE-Core rev: 9bed9927ef92f5fbd17aacf3c4bd56bec7bf023e)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:34 +01:00
Ross Burton
2d2a113227 perf: make tools needed for API documentation respect the manpages PACKAGECONFIG
(From OE-Core rev: 15d42f84b1fcffc17b21eba50e5d5ee06419a659)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:34 +01:00
Andrej Valek
7ee1b6a734 busybox: unify recipe style
- change spaces to tabs and unify indent level

(From OE-Core rev: 38f8c4725da016df100e7ed434eece26ba77bf5f)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:34 +01:00
Andrej Valek
2ff05e9c19 busybox: do not write grep outputs into log
Make grep quiet for prevent to write information into logs.

(From OE-Core rev: f9f150fa38b188b279b65886cad187b15bae0ce6)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:34 +01:00
Andrej Valek
e57eaaad60 busybox: fix conflict with runlevel applet
- remove OE runlevel script which conflicts with busybox's applet
- don't install empty directories

(From OE-Core rev: dca804a9595002ddc3893720a96b7f1a67b6e6c4)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:34 +01:00
He Zhe
10583273f5 lttng-modules: Fix build failure by syncing up with kernel 4.19
linux-yocto-dev has been upreved to v4.19. This patch backports a patch from
upstream to make lttng-modules sync up with linux-yocto-dev and later
linux-yocto, and fix the following do_compile error.

| tmp/work/qemux86_64-poky-linux/lttng-modules/2.10.7-r0/lttng-modules-2.10.7/probes/../probes/lttng-tracepoint-event-impl.h:143:6: error: conflict
ing types for 'trace_sock_exceed_buf_limit'
|  void trace_##_name(_proto);
|       ^~~~~~

(From OE-Core rev: d06b7fd291076a423a83b9630471baeaef9d4f43)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-10 12:47:34 +01:00
Richard Purdie
d1a3f5098b selftest/runqemu: Handle SystemExit
The sigchld handler in runqemu can raise a SystemExit when qemu shuts down.
Rather than backtracing, accept this as a successful test result.

ERROR: runqemu.QemuTest.test_qemu_can_shutdown (subunit.RemotedTestCase)
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/runqemu.py", line 183, in test_qemu_can_shutdown
    qemu_shutdown_succeeded = self._start_qemu_shutdown_check_if_shutdown_succeeded(qemu, shutdown_timeout)
  File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/runqemu.py", line 175, in _start_qemu_shutdown_check_if_shutdown_succeeded
    time.sleep(1)
  File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/utils/qemurunner.py", line 100, in handleSIGCHLD
    raise SystemExit
SystemExit

(From OE-Core rev: 417245923c1c2c35a60d6db29cbe5a78548860d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Richard Purdie
b1b23359a3 qemurunner: Remove the signal handler before stopping qemu
The qemu shutdown can race with the signal handler removal leading to
confusing tracebacks on slower/loaded systems.

Remove the signal handler first before shutting down.

(From OE-Core rev: 1b63ce7bb83134f84bf07d1075d5ca0d5466ed3d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Anuj Mittal
9b48842834 strace: fix ptests
* Let automake use parallel test harness which ensures that appropriate
environment variables are actually used.

* Copy generated config.h as part of ptest package and define a variable
in tests Makefile to control the name of target that we'd like to
invoke for tests instead of relying on default value.

* configure relies on tools that are not available in release tarballs
resulting in warnings and failed tests. Get the required information
from available files instead.

* Reduces the count of failing tests to 18 from 35. The rest of
tests fail or get skipped mostly because of missing syscalls. Number of
tests getting skipped can probably be reduced further.

Fixes [YOCTO #12948]

(From OE-Core rev: dcd674181f31a12c100f91cf6a1c3f3d52b775a2)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Max Krummenacher
194ce1539e util-linux: Use update-alternatives for fsfreeze, nsenter
busybox may also provide a fsfreeze and nsenter implementation,
so use u-a to allow installing them side by side.
If one installs both, busybox and util-linux, one gets the following error
(seen on a populate-sdk run):

| ERROR: 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.

And the coresponding do_populate_sdk extract:

| ...
| update-alternatives: Error: not linking ...sdk/image/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/sbin/fsfreeze
|     to /bin/busybox.nosuid /bin/busybox.nosuid since ...sdk/image/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/sbin/fsfreeze
|     exists and is not a link
| ...

(From OE-Core rev: 94e3fdff76452d3acde42b164d3ffa6b72540a40)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Max Krummenacher
4a6d4e5b3b parted: use update-alternatives for partprobe
busybox may also provide a partprobe implementation, so use u-a to allow
installing them side by side.
If one installs both, busybox and parted, one gets the following error:

| ERROR: image 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.

And the coresponding log.do_rootfs extract:

| ...
| update-alternatives: Error: not linking ...image/rootfs/usr/sbin/partprobe to /bin/busybox.nosuid since ...image/rootfs/usr/sbin/partprobe exists and is not a link
| ...

(From OE-Core rev: 99b74d1ff23ef91c84dc81ecf6437ad3bc37fb64)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Mike Crowe
bbf3a2ab51 gcc: Remove unnecessary --with-mpfr and --with-mpc when cross compiling
Passing --with-mpfr and --with-mpc when compiling the cross compiler
appears to be at best unnecessary, and at worst can cause build failures.

Firstly, the paths passed in gcc-cross-canadian are using the undefined
${layout_exec_prefix}. This results in configure passing
-I${STAGING_DIR_HOST}/include twice to the compiler when it's doing its
test builds. This is mostly pointless since that directory doesn't exist
with the default oe-core configuration - the correct path would be
-I${STAGING_DIR_HOST}/usr/include.

The path for mpfr passed in gcc-cross is correct, but unnecessary since it
is just the sysroot default.

I've gone back through the history, and it seems that these lines (or
similar ones) were originally added way back in
8800d8be25 for GCC 4.1.1 in 2006! I asked[1]
if anyone knew why this was necessary but received no response, so I can
only assume that no-one knows.

I've successfully built for various targets with this patch applied and
observed no problems.

[1] http://lists.openembedded.org/pipermail/openembedded-core/2018-September/155971.html

(From OE-Core rev: 2f9f02d5fda9884ccf9ae22ceb00d59b99036a49)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Tom Rini
6006d4dd3f rootfs_*: Also depend on do_package_qa
Make sure that we don't create images that have QA problems with their
package files by adding do_package_qa to do_rootfs[recrdeptask].

(From OE-Core rev: 4ee2f87f0c9540c7e2c866dbc9739e21a618bddf)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Mike Crowe
dabb074748 opkg-utils: Add support for pigz
Support explicit use of pigz when compressing the package contents by
setting:

 OPKGBUILDCMD = "opkg-build -Z pigz"

(From OE-Core rev: 631e7bb7d02ca9cb9cb66e6b8395b197525cda55)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Peter Kjellerstedt
ba6e02c195 libgcrypt: Add the LICENSES file to LIC_FILES_CHKSUM
The LICENSES file contains references to source files with other
licenses than GPL/LGPL that stipulate that they shall be mentioned in
any documentation accompanying a product including this library.

License-Update: Add missing LICENSES file
(From OE-Core rev: 67bc0b3babd922c800a03c1370d6d33a75f273c1)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Peter Kjellerstedt
652b261238 glib-2.0: Include the complete license information for pcre
For some reason, the copyright part was left out of the license
information for pcre in LIC_FILES_CHKSUM, preventing it from being
used in, e.g., documentation to satisfy the requirements of the
license.

Also drop pcre/COPYING from LIC_FILES_CHKSUM as it does not really
contain any licensing information, it only refers to a LICENSE file
that does not exist.

License-Update: Include the complete license information for pcre
(From OE-Core rev: 2f5a7e7a04cbdc75d1b9607903889b1fd6c5e1ba)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Peter Kjellerstedt
4e0e6542ff bzip2: Include the complete license information
For some reason, the copyright part was left out of the license
information included in LIC_FILES_CHKSUM, preventing it from being
used in, e.g., documentation to satisfy the requirements of the
license.

License-Update: Include the complete license information
(From OE-Core rev: ec3eb678b15d91a450adf82f38e1c1d6d81fed9b)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Peter Kjellerstedt
bea58aea43 curl: Include the complete license information
For some reason, the copyright part was left out of the license
information included in LIC_FILES_CHKSUM, preventing it from being
used in, e.g., documentation to satisfy the requirements of the
license.

License-Update: Include the complete license information
(From OE-Core rev: 390becd2dcf4fe791ec3715a74e34a46bd457e7a)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Achille Fouilleul
8b6109901a binutils: fix symlinks
For nativesdk, symlinks created by do_install contain ${SDKPATHNATIVE}.

This is a problem with SDKs that include nativesdk-binutils and nativesdk-gcc.
When extracting such an SDK dangling symlinks are created, because
relocate_sdk.py does not adjust symlinks. As a result gcc ends up calling the
host binutils.

Use the os.path.relpath function to obtain shorter relative paths, which do not
contain ${SDKPATHNATIVE}.

(From OE-Core rev: 3d6372aa2d9f752eac0e4943d1bde04f0f1924a0)

Signed-off-by: Achille Fouilleul <achille.fouilleul@gadz.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Khem Raj
74ea4f280c x264: Disable asm on musl/x86
Fixes

WARNING: x264-r2854+gitAUTOINC+e9a5903edf-r0 do_package_qa: QA Issue: ELF binary '/mnt/a/yoe/build/tmp/work/i586-yoe-linux-musl/x264/r2854+gitAUTOINC+e9a5903edf-r0/packages-split/x264/usr/lib/libx264.so.152'
has relocations in .text [textrel]
WARNING: x264-r2854+gitAUTOINC+e9a5903edf-r0 do_package_qa: QA Issue: ELF binary '/mnt/a/yoe/build/tmp/work/i586-yoe-linux-musl/x264/r2854+gitAUTOINC+e9a5903edf-r0/packages-split/x264-bin/usr/bin/x264'
has relocations in .text [textrel]

(From OE-Core rev: ea1204c6d9a02f0e38cf616e89d46530908972bb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Khem Raj
4d960984c3 ffmpeg: use bfd linker always for x86 target
gold crashes when linking, so use bfd linker here, another option is to
use --disable-asm but then we loose performance.

(From OE-Core rev: 4015f3279aaced1c5d9ae8a6e666c9fba42558df)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Hongzhi.Song
7a3cfd235b ltp: recent glibc calls syscall directly
The case of sigwaitinfo related to sigwaitinfo API failed.

glibc commit
  8b0e795aaa44 ("Simplify Linux sig{timed}wait{info} implementations")
  changed sigwaitinfo to call sigtimedwait, which calls rt_sigtimedwait
  syscall directly.

So, an invalid pointer no longer crashes child process and test
reports failure. Fix it by accepting either crash or EFAULT.

(From OE-Core rev: bfd32c0d1c335e9c9cf8340f999e15054917577e)

Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Ross Burton
58641400ce python3: add ca-certificates to python3-crypt RRECOMMENDS
It's likely that the certificate root chain is needed if python3-crypt is
installed, so recommend it.

Also remove the redundant nativesdk-python3-crypt assignment, as the general
form is sufficient when class-extended.

(From OE-Core rev: dd644ee9991e953474d41dbbf713a7e33b4c9141)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Ross Burton
d89034988e libsoup: upgrade to 2.62.3
Freeze-breaking upgrade for a security bug fix involving cookie URLs, and a
number of static analysis fixes.

Drop CVE-2018-12910.patch as this is merged in 2.62.3.

(From OE-Core rev: a8098782fab87498026a09c06716b631c77c5ad6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 19:04:02 +01:00
Ross Burton
25a8862b90 libx11: fix patch headers
devtool doesn't like patches without subjects, so add meaningful subjects.

(From OE-Core rev: 3056a2e5d8b7e7285fd9680073a5ab613a4066e4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09 12:02:00 +01:00
Ross Burton
289f792d22 connman: update patch status
These patches are all upstream now, so mark as Backport.

(From OE-Core rev: 9a84114a279000329c2878a35f197a09217cd1fc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 16:04:59 +01:00
Ross Burton
3ef43bac76 lib11: fix patch headers
(From OE-Core rev: 7d74f204acf6e56249f843f99927966017d4b405)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 16:04:12 +01:00
Ross Burton
0f117e4aac python3: fix patch headers
(From OE-Core rev: 46bc904bf9cf3b2a01de0ba140b31066f90bfa49)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 16:04:12 +01:00
Ross Burton
bbe137b05b python: fix patch headers
(From OE-Core rev: 5aba4b7540a71908a5e1086f444b2f205ba5829d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 16:04:12 +01:00
Ross Burton
9c59169d3e gdb: fix patch headers
(From OE-Core rev: cf634b35e866daacb427ab4c10d5adadaac3718b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 16:04:12 +01:00
Maksym Kokhan via Openembedded-core
74d8acaa0f libusb: ptest: don't skip debug output and fix failures processing
Current run-ptest script prints nothing, when stress tests fail.
Fix it in new implementation, discarding external dependency on sed.
Also leave in place all stress output, just add standard ptest result.

Fixes: 3f0106bf2e41 ("libusb: Add ptest")
(From OE-Core rev: cd05029c78dea48c20f9acb2c5fee56b19193f22)

Signed-off-by: Maksym Kokhan <maksym.kokhan@globallogic.com>
Reviewed-by: Andrii Bordunov <andrii.bordunov@globallogic.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Ola x Nilsson
244ba49784 externalsrc.bbclass: Set BB_DONT_CACHE for non-target recipes
BB_DONT_CACHE was not set for non-virtual recipes where PN != BPN, such
as quilt-native.  Recipes that do not set BBCLASSEXTEND should always
have BB_DONT_CACHE set by externalsrc.

(From OE-Core rev: 4eff427a0ee629a1541a420a9591411648569a97)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Pascal Bach
3ef46df474 piglit: inherit pkgconfig
The CMakeLists.txt of piglit uses pkgconfig internally.
This makes sure pkgconfig-native is available in any case.

(From OE-Core rev: ac8f27b441b9e8cee969e06e22759d49e05e1b11)

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Pascal Bach
b9df2cd7b6 piglit: correctly find wayland include dirs
Builds include host /usr/include as the wrong wayland variable was used.
The issue only surfaces if CMAKE_SYSROOT is properly set.

(From OE-Core rev: d4b942c97831f6717b34caaaf2402efdffa227ba)

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Angelo Dureghello
385f3bf640 conf/machine/include: add mcf5441x cpu type tuning
This patch adds tuning for the mcf5441x ColdFire family.

(From OE-Core rev: 89e7192b607361769c03b939437c9815672ceadb)

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Angelo Dureghello
2c2250b6a2 conf/machine/include: add m68k architecture definitions
(From OE-Core rev: 475ca28ab1b42fc0307669edae220afb97dd15c3)

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Angelo Dureghello
5c8874f322 kernel-arch.bbclass: add m68k to kernel arch map
(From OE-Core rev: 69be35a58ce4122763c833e13cdbcc8e7fb9c52d)

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Angelo Dureghello
8d5f59f2da siteinfo: define data for m68k
(From OE-Core rev: d8c2a5fa7d59580dd70b7ec57450e3b7c9a7d048)

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-08 14:13:54 +01:00
Anuj Mittal
2b4dce4925 python: fix failing ssl tests
Backport two and pick some other in-review patches from Ubuntu to fix
ssl test failures because of OpenSSL 1.1.x changes.

Fixes [YOCTO #12788]

(From OE-Core rev: 4f4bbb936231dd30c3745ef573993f1062937ffd)

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>
2018-10-08 14:13:54 +01:00
Anuj Mittal
4b8fd52f6d e2fsprogs: add bzip2 to ptest RDEPENDS
A lot of tests in e2fsprogs-ptest package expect bzip2 to be present.

(From OE-Core rev: fb837f11c7a7777c0c9747309f5eabf881e8f4ee)

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>
2018-10-04 23:00:55 +01:00
Anuj Mittal
bc2ac6c370 e2fsprogs: fix stray quote in test configuration
Introduced during the last recipe upgrade and was causing tests to fail.

Fixes [YOCTO #12946]

(From OE-Core rev: 1771cf07c88c27e8cf473b7f1da03db22d94837e)

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>
2018-10-04 23:00:55 +01:00
Ross Burton
95969ef3dd libxml2: refresh CVE-2017-8872
The patch associated with the CVE-2017-8872 report was never merged into
libxml2, but a slightly different patch for the same problem was.  Cherry-pick
that as a backport, which also fixes the failing test suite.

(From OE-Core rev: 512869aea6dde1bb2374601f7c4d793ac9edaa42)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:55 +01:00
Mark Hatle
8c3db8cb9e bitbake: gitsm: Allow relative URIs when fetching
Some repositories may specify a relative submodule path.  If this happens,
it is our responsibility to use the parents URL (ud) and handle any relative
processing ourselves.

(Bitbake rev: fd9893c338df7828b2c01f1d548aa86dfcf7c50a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
Laurent Bonnans
41e6a3efac bitbake: fetch2/gitsm: checkout submodules recursively
The new fetcher did not run 'git submodule update' recursively.

(Bitbake rev: 377ed943357b6d47d41d84edbf971741f44affa9)

Signed-off-by: Laurent Bonnans <laurent.bonnans@here.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
Laurent Bonnans
c888446d12 bitbake: fetch2/gitsm: handle submodules nested inside subdirs
The new gitsm fetcher assumed that submodules were living directly in
the 'modules' directory, whereas they can be arbitrarily nested inside
subdirectories.

Solve it by first creating the parent of the destination directory for
the symlink and copy steps.

(Bitbake rev: 3dbc84e9c572f43209b79f3656d7dc35a6d982ba)

Signed-off-by: Laurent Bonnans <laurent.bonnans@here.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
David Reyna
fa8ade3695 bitbake: toaster: custom image enable layer add, protect pre-cloned layers
When creating custom image recipes, the layer add for new layers
needs missing xhrLayerUrl data. Also, code is needed to check
and inform user if the newly added layer has not been cloned yet,
and provide helpful error message instead of the current frozen
dialog.

[YOCTO #12887]

(Bitbake rev: b310031972a53d0881a87a627f07bdcf7d9c6b79)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
David Reyna
f0cf4b0972 bitbake: toaster: disable git remote check to allow for firewalls
Toaster users behind firewalls that block "git" access usually
require developers to add remap rules in their "~/.gitconfig"
to remap GIT accesses to HTTP* access. However, there is a
"git remote" test in Toaster that is not aware of such remaps,
resulting in a false error.

For now, disable this nice-to-have check to support this release,
and re-enable when we can add remapping accommodations for this
test.

[YOCTO #12944]

(Bitbake rev: abccd40536b366a418802c5ba8427454c2e3bb2c)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
David Reyna
e7b4ae9d72 bitbake: toaster: add 'thud' release to Toaster
Toaster needs to include new YP-2.6 "Thud" release.

[YOCTO #12943]

(Bitbake rev: 97be301c87a29921b6d9e5029928f8a2871ed127)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
David Reyna
50432746fe bitbake: toaster: error logs missing for cli builds
The method 'store_log_event' in 'buildinfohelper.py' always puts log
messages from CLI builds into the backlog but never takes them out.
The "close" method now forces all backlogged CLI events to be registered.

[YOCTO #12813]

(Bitbake rev: 6458cc4234337f551dfe189b6f8800d8da886c24)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
Laurent Bonnans
ccfb160ed6 bitbake: fetch2/gitsm: fix a typo
'qbareclone' in place of 'bareclone'

(Bitbake rev: 90a3181f1397ae05862f4e89a9bbac606e74504e)

Signed-off-by: Laurent Bonnans <laurent.bonnans@here.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
Urs Fässler
82f32d99f7 bitbake: fetch2/git: use correct check to decide if the shallow tarball should be unpacked
The shallow_tarball check is never true due a check on the caller side.
The tarball check is not related to the code on the caller side.

(Bitbake rev: 086eddcf8c7520ff5c52ce2a11ca9bf5b5fe5d7e)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
Urs Fässler
b907303b92 bitbake: fetch2/git: prevent access to non-existing fullshallow tarball
(Bitbake rev: b7f00a8c11672a2ee0408e210fb174cda3384e3f)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
Urs Fässler
073c62cb56 bitbake: fetch2/git: improve readability of method need_update
To improve the readability we extract the different scenarios of why
the clonedir needs an update.

(Bitbake rev: 9038e029f4f0ab413727de76c74248cbb3cdc9ea)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 23:00:24 +01:00
Scott Rifenbark
6d9de01c18 ref-manual: Updates to native.bbclass
Fixes [YOCTO #12924]

Naming convention does not apply to the second recipe-creation
method described in this class.  I have moved the note about that
to be under the applicable method (i.e. the first bullet).

Fixed the syntax reversal of the sample name in the example.

(From yocto-docs rev: f7f1a89043156527fa4b426c0322ad225a9f2ff1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:33:50 +01:00
Scott Rifenbark
a2d14e5b6d dev-manual: Fixed poor writing
The bullet item describing what the LAYERSERIES_COMPAT variable was
written poorly (ending in a preposition).  I fixed the sentence to
read more clearly.

(From yocto-docs rev: 35d09727ab527df7d54ac1316c8e825f586ebc9a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:33:50 +01:00
Joshua Watt
1b18eaa376 ref-manual: Added "debug-with-srcpkg" option to package split variable
Added the "debug-with-srcpkg" option for the PACKAGE_DEBUG_SPLIT_STYLE
variable.

(From yocto-docs rev: 05c51e53059bf7c999a448402d60d0b16d62341b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:33:50 +01:00
Scott Rifenbark
9da59f02fc profile-manual: Provided links for two PACKAGE_DEBUG_SPLIT_STYLE references
(From yocto-docs rev: 5b49dc12f8102122c6b634f0c00bbd3c2f921936)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:33:50 +01:00
Scott Rifenbark
6e9ff843fd bitbake: bitbake-user-manual: Added section on multicong dependencies
Created a new section to show how to handle dependencies when
you are doing a multiple configuration build.  Put it in the
"Examples" section.

(Bitbake rev: fa42212a6cb7b64add4d6ca0f723a95c908c6b87)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:33:31 +01:00
Scott Rifenbark
859d36b130 bitbake: bitbake-user-manual: Added BBMULTICONFIG support
The BBMULTICONFIG variable is a variable used for BitBake and was
not documented in the BitBake Manual glossary.  I added the
definition.  I also added the variable to the example in the section
describing how to execute builds for multiple configurations.

(Bitbake rev: 836f994ec530ba82c935cb41e006d1f128885dc2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:33:31 +01:00
Scott Rifenbark
e06421bfc4 bitbake: bitbake-user-manual: Added new section on multiconfig builds
Created a new example.  Also added a figure for the separate
configuration file hierarchy

(Bitbake rev: f2d432674b187685591f60cec3b2980b377c63fe)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:33:31 +01:00
Anuj Mittal
c08ea14816 qemux86-directdisk: remove mem= parameter
Remove usage of a specific amount of memory and let it be controlled by
users. This was the default behaviour before it was changed by commit
3b79d9a78 that switched the wks file to be used for qemux86.

Also fixes the bitbake parsing issues seen because of memory starvation
using build appliance images.

Fixes [YOCTO #12894]

(From OE-Core rev: 18d6b668c52dc881cff7b107420e0de527eecce4)

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>
2018-10-04 14:31:06 +01:00
Ross Burton
9a47c067a6 bitbake: test/fetch: use canonical GitLab URLs
GitLab returns a redirect from /foo to /foo.git which older releases of Git
don't handle when cloning.  These tests don't clone so the redirect works, but
let's be consistant with the structure of these URLs and add the .git suffix.

(Bitbake rev: d47febbae4ff24be259037f12bafbc14b9e2d6a8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:22:00 +01:00
Kai Kang
591a11ba58 os-release: avoid multilib expand
Add os-release to NON_MULTILIB_RECIPES in multilib.conf that do not do
multilib expand for os-release.

(From OE-Core rev: 361382ca16c276e1e404eab58c0956a2b6d23d7e)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Kai Kang
0ceeae575b libcheck: avoid multilib install file conflict
The first line of output of '$CC --version' is written to check_stdint.h
as a comment line. It causes multilib install file conflict.

Do not echo compiler version info to check_stdint.h to fix the issue.

(From OE-Core rev: f9db6ac8044495f9299fb0e962d3d6838bbce08f)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Kai Kang
077532d20d man-db: fix multilib install file conflict
The first line of config file man_db.conf is the package name. It causes
multilib install file conflict. So add a patch to remove the line.

(From OE-Core rev: d138b1ec4aef88a3b0c4f1d698ed2a224c93b889)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Kai Kang
9f28e2d380 cups: fix multilib install file conflicts
A comment line of conf file cups-files.conf refers to var @CUPS_SERVERBIN@
is ${libdir} related and then it causes multilib install file conflict.

Remove @CUPS_SERVERBIN@ from the comment line to avoid the conflict.

(From OE-Core rev: ac4df3f83fccfa7dd75d6a913b7ab75e49a7b986)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Aníbal Limón
32874084ce scripts/yocto-check-layer: Don't abort when layer fails to get signatures
When execute in multiple layers like meta-openembedded the execution is
aborted when some sublayer fails to get world signatures, so mark it as
an error and continue the execution in the remaining sublayers.

(From OE-Core rev: c8ab558b4fdc77ab54fbb130078c78d43740b4b8)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Khem Raj
68bf128e90 mesa: Disable asm on musl
Musl started blocking dlopen of libs with initial-exec references into
dynamic TLS area, via

5c2f46a214

prior to that commit, musl was loading it and silently letting
subsequent TLS accesses via the miscompiled code clobber memory that
didn't belong to them

This was wrong behavior and it relied on additional space reserved by
libc in TLS space to adjust fo such broken libs, but it also fails
with glibc if the reserved space was already used up

Right fix is that  mesa should be patched to remove all the
initial-exec hacks and use real TLS, and -mtls-dialect=gnu2 (TLSDESC)
should be used on archs it's supported on (i386, x86_64, and aarch64)
to make up for the lost performance, but mesa hardcodes the initial-exec,
so there must be a reason that probably is better known to mesa devs.

but we 'fixed' it for musl by adding --disable-glx-tls for mesa in OE,
which uses pthread_getspecific instead and makes is lot slower.

this caused additional problems with security flags on, it get textrels
in .text segment. Therefore this is 'second fix' to get us through this
warning.

Cause is some unknown part of mesa's x86 assembly code is broken by
readonly text segments

[ YOCTO #12918 ]

(From OE-Core rev: 27c25de38aacc98fe376422bbbee417b2b45a98e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Ross Burton
6667bc0b6d pango: respect PTEST_ENABLED
Don't use the 'ptest' DISTRO_FEATURE because whilst that can be on,
PTEST_ENABLED could have been overwritten.

(From OE-Core rev: 57e41b6178bf1d88a901cda862e3e054148e86ac)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Ross Burton
c097d111d5 pango: don't disable debugging
By explicitly disabling debugging we get *no* safety checks: the GLib asserts
and checks are all disabled.  This is fine for absolute performance but
something that should be opt-in.

This also breaks the test suite, which relies upon the asserts to work.

(From OE-Core rev: 191f7e2b2fe09ff3276efb68ca91c853291d41f8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Ross Burton
9cdc0f090c connman: neaten patches
The upstreamable include-tweaking patches contained fragments that should be in
the not-upstreamable musl-specific res_ninit replacement, so move them to the
right patch.

(From OE-Core rev: 18fd5bc97e6b061eec4be0738f20fcbace6bdafe)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Chen Qi
637d3c3555 nativesdk-packagegroup-sdk-host.bb: remove nativesdk-dnf
Currently the dnf command inside SDK does not work. We will
get error message like below:

  ImportError: No module named 'dnf'

So remove it from nativesdk-packagegroup-sdk-host, otherwise,
users will get unpleasant experience if they are working inside
SDK environment on some distros like Fedora.

(From OE-Core rev: a7005a4fc5f29db796b1d258b7c259b9433848ce)

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>
2018-10-04 14:21:41 +01:00
Hongxu Jia
89ea0638df openssl: skip ptest case `test_symbol_presence'
The case in ptest use `nm -Pg libcrypto.so' to check symbol presence,
if library is stripped or debug split, the case will fail.

The test case needs debug symbols then we just disable that test.

(From OE-Core rev: 28d3a4cb1ffb508018faebf088eabfd14bcf3113)

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>
2018-10-04 14:21:41 +01:00
Hongxu Jia
eafcef938b elfutils: fix CVE-2018-16403 & CVE-2018-16402
(From OE-Core rev: a7c3c897d2cbe7e473a7fb057a3f74ebc9e04023)

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>
2018-10-04 14:21:41 +01:00
He Zhe
fe86a79fc3 nativesdk-bison: Add to nativesdk-packagegroup-sdk-host and set BISON_PKGDATADIR
bison is needed when building kernel. Add it to nativesdk-packagegroup-sdk-host
and set BISON_PKGDATADIR for bison to use its components.

(From OE-Core rev: 8aa27e4eb2f08281329ca1a1da421c6fc376bc8d)

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>
2018-10-04 14:21:41 +01:00
Joe Slater
205d75ddb3 libtiff: fix CVE-2017-17095
Backport fix from gitlab.com/libtiff/libtiff.
nvd.nist.gov does not yet reference this patch.

(From OE-Core rev: f72c8af3f2c1ec9e4d9ffcf0cc6e7fdf572b21b9)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Richard Purdie
cd158dd197 glibc: Fix glibc reproducibility issues
Currently for non-IA platforms, glibc is not reproducible as host system
paths are being injected into target binaries. These spread through
all target binaries on the system which link to the libc.

Add a patch which injects .file directives into the assembly pieces
and works around this issue until a better solution can be found.

(From OE-Core rev: 4d6fd8178da75f9a1870db290bbe24de5af752c9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Chin Huat Ang
6a924ca5a5 meta-ide-support: add cmake-native
Include cmake as part of build tree toolchain so that it is populated
into meta-ide-support's recipe-sysroot-native which is prepended to
$PATH, this ensures cmake-native is picked up first before host cmake.

(From OE-Core rev: 0b51e0b2ac6f3cc95af4061253dc76a91df91349)

Signed-off-by: Chin Huat Ang <chin.huat.ang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Martin Jansa
50cc48b180 glibc: bump SRCREV to latest 2.28
* drop one patch already applied in upstream

* this is still only partial fix for issues with -O0 and the bigger
  issue might be detected in runtime as described in:
  https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F
  https://sourceware.org/bugzilla/show_bug.cgi?id=19444
  and tested in glibc build:
  https://sourceware.org/git/?p=glibc.git;a=blob;f=include/libc-symbols.h;h=8b9273c13a19f2658105c7997267d9086adae716;hb=HEAD#l74

* restore the anonymous python to trigger fatal error when -O0 is
  used (but don't restore the notes for -O, -O1, -Os

* git log --oneline 3c03baca37fdcb52c3881e653ca392bba7a99c2b..044c96f0d5595aeb0bb4e79355081c5a7f4faca5 | tee
044c96f0d5 Fix misreported errno on preadv2/pwritev2 (BZ#23579)
3a67c72c15 Fix stack overflow in tst-setcontext9 (bug 23717)
2339d6a55e i386: Use ENTRY and END in start.S [BZ #23606]
0ef2f4400c Fix strstr bug with huge needles (bug 23637)
a55e109709 Fix tst-setcontext9 for optimized small stacks.
307d04334d misc: New test misc/tst-gethostid
e7d22db29c Linux gethostid: Check for NULL value from gethostbyname_r [BZ #23679]
1fe2b9ca8a Fix segfault in maybe_script_execute.
0b79004569 regex: Add test tst-regcomp-truncated [BZ #23578]
58559f1443 regex: fix uninitialized memory access
aa8a3e4cde pthread_cond_broadcast: Fix waiters-after-spinning case [BZ #23538]
c87b5bab24 Improve ChangeLog message.
66fdfd57fe Regen RISC-V rvd ULPs
b0aa03dfff RISC-V: Fix rounding save/restore bug.
2f498f3d14 nss_files: Fix file stream leak in aliases lookup [BZ #23521]
bfcfa22589 nscd: Deallocate existing user names in file parser
d05b05d157 error, error_at_line: Add missing va_end calls
4b25485f03 Linux: Rewrite __old_getdents64 [BZ #23497]
726e1554ce hurd: Avoid PLTs for __pthread_get/setspecific
7f11842e74 hurd: Add missing symbols for proper libc_get/setspecific

* update 0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch
  based on review comments in upstream and extend it to cover PPC based
  on:
  http://lists.openembedded.org/pipermail/openembedded-core/2018-September/156258.html

* update 0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch
  based on review comments in upstream

* add 0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch
  with a fix for aarch64 build with -Os

* build tested with qemuarm, qemuarm64, qemux86, qemux86-64, qemuppc,
  qemumips, qemumips64 with -O, -O1, -Os.

(From OE-Core rev: f1f38df91975f9b53933c2d2fbdca291d1872d5f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-04 14:21:41 +01:00
Robert Yang
bdb4964787 go.bbclass: Add -buildmode=pie for non mips arch
Fixed QA issue like:
WARNING: runc-docker do_package_qa: QA Issue: ELF binary '/path/to/runc-docker/usr/bin/runc' has relocations in .text [textrel]

(From OE-Core rev: 8dcd4e6e791c3a8b8bf5e69dca9bb9c887231d69)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:50 +01:00
Ross Burton
4771a7c2ed archiver: generalise task running when in configured mode
When in configured mode the archive will re-run configure itself, but that
doesn't work if there are other tasks that need to run such as cmake's
generate_toolchain_file.

Instead of hard-coding a list of classes and tasks, obtain the list of tasks
preceeding do_configure, filter out ones we don't want to re-run such as
do_patch and do_prepare_recipe_sysroot, and run those too.

(From OE-Core rev: fe26382f94d8cb7d2453d9937aee451b757252b8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:50 +01:00
Ross Burton
e85f567f96 archiver: check tasks exist before adding dependencies
Some recipes don't have do_configure, or have them but are marked as noexec.
Check for their existance before hooking up dependencies.

[ YOCTO #12868 ]

(From OE-Core rev: 5c8aa1f41f04519a8ba3997c0d8e3a71fe270fae)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:50 +01:00
Robert Yang
a1fd97e1c7 multilib: avoid expanding grub and grub-efi to multilib
It doesn't make much sense to expand them to multilib, and there is an error on
qemuarm64 since grub-efi supports arm64, but doesn't support armv7a or armv7ve:

* Fixed:
  MACHINE = "qemuarm64"
  require conf/multilib.conf
  MULTILIBS = "multilib:lib32"
  DEFAULTTUNE_virtclass-multilib-lib32 = "armv7a"
  MACHINE_FEATURES_append = " efi"

  $ bitbake lib32-core-image-minimal

Also introduced a variable NON_MULTILIB_RECIPES in multilib.conf, so that we
can easily add other recipes, such as syslinux if needed.

(From OE-Core rev: 25f7c6c329038b443d36074fff45a30ba3712f7a)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Chen Qi
f7198b473f libsdl2: disable sndio explicitly to avoid inconsistent result
Explicitly disable sndio to avoid inconsistent result on different
hosts having or not having libsndio.

This must be done if we take into consideration of eSDK.

I built eSDK on Ubuntu 14.04 which has libsndio installed, and then
installed the eSDK on Fedora 27, which does not have libsndio. In
fact, on Fedora 27, I even cannot find libsndio in its repo.

The problem happens when trying to use `devtool runqemu'. The qemu
binary built on Ubuntu 14.04 needs to link to libsndio, and thus
the following error.

  runqemu - ERROR - Failed to run qemu: /path/to/qemu-system-x86_64:
            error while loading shared libraries: libsndio.so.6.1:
            cannot open shared object file: No such file or directory

So explicitly disable sndio for libsdl2 to avoid the above problem.

(From OE-Core rev: 72c37b06b034e97e7dd7e1a20fb0ff5f96088440)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Changqing Li
ad2a0cd5b0 mime.bbclass: fix do_package_qa_multilib error of lib32-fltk
fltk.bb inherit mime.bbclass, mime.bbclass add RDEPEND during
populate_package, so need add mlprefix manually.

ERROR: QA Issue: lib32-fltk package lib32-fltk-dev - suspicious
values 'shared-mime-info-data-dev' in RRECOMMENDS [multilib]
ERROR: QA Issue: lib32-fltk package lib32-fltk-bin - suspicious
values 'shared-mime-info-data' in RDEPENDS [multilib]

(From OE-Core rev: 5a26b03c9f73822554ea969e42bca82217dfd3f8)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Changqing Li
4e93a76c1e multilib.bbclass: fix do_package_qa_multilib error
lib32-packagegroup-anaconda-support have RDEPENDS to kernel-image,
but kernel-image don't have lib32, so skip it.

ERROR: QA Issue: lib32-packagegroup-anaconda-support package
lib32-packagegroup-anaconda-support - suspicious values 'kernel-image'
in RDEPENDS [multilib]

(From OE-Core rev: 24b8c61bf7dd13f7f371d3a910947a1fac062c6b)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Kai Kang
282412460c bind: fix multilib install file conflicts
It adds ${libdir} to linker options in scripts bind9-config and
isc-config.sh. And then causes install file conflicts when install bind
andl ib32-bind both.

Inherit multilib_script.bbclass to fix this issue.

(From OE-Core rev: d3baeaf09d5d3e7548e5b2ea1b565880ea6ce994)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Kai Kang
7481db9553 groff: fix multilib install file conflicts
Perl scripts ${bindir}/{gpinyin, groffer, grog} are ${libdir} related
and cause multilib install file conflicts:

| Error: Transaction check error:
|  file /usr/bin/gpinyin conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86
|  file /usr/bin/groffer conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86
|  file /usr/bin/grog conflicts between attempted installs of groff-1.22.3-r0.core2_64 and lib32-groff-1.22.3-r0.x86

Inherit multilib_script.bbclass to fix the errors.

(From OE-Core rev: df90cb1f4ee8918b0bc2a281b2d77444a0d037e7)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Ross Burton
4612cb45ba python: move sqlite module into python-sqlite
The module was accidentally included in python-misc.

Also re-run create_manifest to update the dependencies of python-sqlite3,
causing some whitespace changes.

[ YOCTO #12933 ]

(From OE-Core rev: 9c2b1a0bfc8783052b5dda344cc334b9c13736f5)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Ross Burton
f27fc7f336 python: mark the tests modules as special when updating the manifest
We manually maintain the tests package's content and dependencies, so mark is as
special (matching create_manifest3.py).

(From OE-Core rev: b4bd4e7e26bb79223129abb9fb6e22e9045e3707)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Ross Burton
f51d0a19af python3: move sqlite files into python-sqlite
sqlite3/__init__.py was accidentally included in python3-misc.

(From OE-Core rev: 4e397e16996662bce51608cf5e20448b9803c476)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Mark Hatle
f5b0664199 sysklogd: Re-enable alternatives for syslogd.8 man page
Other recipes, such as meta-networking inetutils may also provide a man page
for syslogd.8.  Use the alternatives mechanism to select the man page to
display.

This is a partial revert of commit: 988aad01b20c18a8850db0ad6dc547525d94116c

The syslogd tool itself is provided by both recipes in their respective runtime
packages.  In the inet case, it is inetutils-syslogd, which has an appropriate
RCONFLICTS with the syslogd version.  Only one or the other will be installed.
This is the conflict resolution the original commit of
"988aad01b20c18a8850db0ad6dc547525d94116c" was referring to.

HOWEVER, both syslogd and inetutils each only have a singular 'doc' package.
(As do most packages it seems.)  Since this is the case, if both syslogd and
inetutils (not syslogd part) is requested for a configuration -- AND ---
doc-pkgs are configured in, you get an error of conflicting files.

Now does the documentation match whichever package was installed, maybe not...
but this isn't a big deal as it turns out, since most syslogd share a common set
of arguments and those are the things a run-time user would query from the man
pages.

The only alternative is to start spliting up the docs into their relevant
subpackages, as we have the runtime items.  But this then complicates the
doc-pkgs processing and related...

(From OE-Core rev: 55ba9dc1f8698e23d6f59937c1494a91057b165d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Richard Purdie
fdfc326400 layer.conf: Drop sumo from LAYERSERIES_CORENAMES
Prepare for release and drop sumo for the compatible list of layer names.
This will mean other layers need updating to continue to indicate compatibility
with master but that is intentional at this part of the release cycle, we want
layers to indicate compatibility and show they're up to date.

(From OE-Core rev: 9ec5a8a0f86510f7aae572dfb79e8bda73d4e0fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-01 13:04:49 +01:00
Awais Belal
3bbbe25ae7 glibc-package.inc: correct intention for deleting /usr/lib as needed
In case the baselib is lib64 we would want to delete /usr/lib
after removing the /usr/lib/locale dir and the implementation
wanted to do that earlier as well but the fault was checking
an already removed dir (/usr/lib/locale) before trying to
remove /usr/lib as that check would always fail.
Now we simply try to delete /usr/lib after deleting
/usr/lib/locale to make sure it deletes cleanly and is empty
at the time of deletion.

(From OE-Core rev: 4dad1568f8f84ec9de4bf7235822f77a8ee6a413)

Signed-off-by: Awais Belal <awais_belal@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Max Kellermann
652e3ccd53 kernel-yocto.bbclass: fix "referenced before assignment" error
If "scc --configs" fails, do_kernel_configcheck() crashes like this:

      0338:    try:
      0339:        configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8')
      0340:    except subprocess.CalledProcessError:
  *** 0341:        bb.fatal( "Cannot gather config fragments for audit: %s" % configs)
      0342:
      0343:    try:
      0344:        subprocess.check_call(['kconf_check', '--report', '-o',
      0345:                '%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, configs], cwd=s, env=env)
 Exception: UnboundLocalError: local variable 'configs' referenced before assignment

This crash bug was introduced by commit
21de5cc43cfedc703e5bc0515507a6dae36afb74

(From OE-Core rev: 9602c03e8701c972f544001415efa92877622f57)

Signed-off-by: Max Kellermann <max.kellermann@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Jeroen Hofstee
9f87210a98 bash: 4.4.18 -> 4.4.23
Apply point release patches from upstream which includes a fix for
indefinitely spinning process and a zombie by a simple $() statement
in a long running script.

(From OE-Core rev: eb39670fb2fe9735a1a0434c63b64ec66599f850)

Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Chen Qi
2d83a6c579 nativesdk.bbclass: set consistent staging dirs regardless of multilib
For now, the RECIPE_SYSROOT of nativesdk recipes is ${WORKDIR}/recipe-sysroot
if multilib is disabled and ${WORKDIR}/nativesdk-recipe-sysroot if multilib
is enabled. And it's causing chaos. Problems I've met include:
1) 'File Exists' error when doing extend_recipe_sysroot
2) Rebuilding failure about cmake based nativesdk recipes if toggling multilib

In nativesdk.bbclass, We've set MULTILIBS to be "", and we've changed MLPREFIX
to be 'nativesdk-', I think we should also set consistent RECIPE_SYSROOT to be
${WORKDIR}/recipe-sysroot.

Below is an example showing why previous settings will cause do_prepare_recipe_sysroot
failure.

e.g.
A -> C
B -> C
A's RECIPE_SYSROOT is .../recipe-sysroot and B's RECIPE_SYSROOT is
.../nativesdk-recipe-sysroot.
As extend_recipe_sysroot function uses shared manifest, i.e., the same
manifest of C for both A and B, then there must be one of them having
the wrong manifest. And the wrong manifest results in RECIPE_SYSROOT
not cleaned up before installing new components, thus the following error.

  Exception: FileExistsError: [Errno 17] File exists: xxx -> xxx

This happens when toggling multilib and also between nativesdk recipes and
crosssdk, cross-canadian recipes. The latter situation also explains
why choosing ${WORKDIR}/recipe-sysroot instead of ${WORKDIR}/nativesdk-recipe-sysroot.
If we use 'nativesdk-recipe-sysroot', we still need to modify the extend_recipe_sysroot
function to treat crosssdk and cross-canadian as special cases. Using
'recipe-sysroot' does not have this problem.

(From OE-Core rev: 665934a506cc560bfbc469f5ed095e7d54e353a5)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Andrej Valek
cbad6ad071 kernel-devsrc: fix searching for non-existing manifest files
Even if the do_populate_sysroot have had set-up noexec flag, populate_sdk's
tasks were trying to find .populate_sysroot manifest file. Change noexec
flag settings to delete appreciated task.

WARNING: core-image-minimal-1.0-r0 do_sdk_depends: Manifest
build/tmp/sstate-control/manifest-x86_64_x86_64-nativesdk-kernel-devsrc.populate_sysroot
not found in qemuarm armv5te armv5e armv5t armv5 armv4t armv4 arm allarch x86_64_x86_64-nativesdk (variant '')?

WARNING: core-image-minimal-1.0-r0 do_populate_sdk_ext: Manifest
build/tmp/sstate-control/manifest-x86_64_x86_64-nativesdk-kernel-devsrc.populate_sysroot
not found in qemuarm armv5te armv5e armv5t armv5 armv4t armv4 arm allarch x86_64_x86_64-nativesdk (variant '')?

(From OE-Core rev: fd74848c3c06901a77057ca03f7c01aff08ee34a)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Otavio Salvador
4b74f6aa42 mesa: Upgrade 18.1.7 -> 18.1.9
This upgrades mesa to the 18.1.9 stable release.

The changes can be found at:

 https://www.mesa3d.org/relnotes/18.1.8.html
 https://www.mesa3d.org/relnotes/18.1.9.html

(From OE-Core rev: 45508a02aea538d98a8fa92a65f969445cb0c82d)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Otavio Salvador
3bce21ee54 util-linux: Fix packaging of util-linux-unshare
Below commit has added the unshare to alternatives but did not fix the
packaging of the changed file.

,----[ Offending commit ]
| commit 147da8fe7458a38598845958cb358bb094eba57b
| Author: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
| Date:   Thu Jul 5 11:57:19 2018 +0300
|
|     util-linux.inc: add fallocate & unshare to alternatives
|
|     These binaries can be provided by busybox triggering a conflict in
|     do_rootfs so update-alternatives needs to know about them to properly
|     create the symlinks.
|
|     Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
|     Signed-off-by: Ross Burton <ross.burton@intel.com>
`----

(From OE-Core rev: a68f1cacb560632382f8f8ff0c7e03e39a891b29)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Mark Hatle
5cd00e3e53 bitbake: fetch2/gitsm.py: Rework the git submodule fetcher
The prior fetcher did not know how to work with MIRRORS, and did not
honor BB_NO_NETWORK and similar.

The new fetcher approach recursively calls 'gitsm' download on each
submodule detected.  This ensures that it will go throug the
standard download process.

Each downloaded submodule is then 'attached' to the original download in
the 'modules' directory.  This mimics the behavior of:

    git submodule init

but there is no chance it will contact the network without permission.

It then corrects upstream reference URIs.

The unpack steps simply copies the items from the downloads to the destdir.
Once copied the submodules are connected and we then run:

    git submodule update

According to the git documentation, git submodule init can and will modify
the project configuration and may connect to the network.  Doing the
work manually prevents this.  (This manual process is allowed based
on my reading of the documentation.)

See: https://git-scm.com/book/en/v2/Git-Tools-Submodules

The small change to the existing test is due to this new code always assuming
the code is from a remote system, and not a 'local' repository.  If this
assumption proves to be incorrect -- code will need to be added to deal
with local repositories without an upstream URI.

(Bitbake rev: 9c6b39adf9781fa6745f48913a97c859fa37eb5b)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-26 15:14:33 +01:00
Mark Hatle
f61ef5b454 bitbake: lib/layerindexlib/tests/restapi.py: Fix test cases when BB_SKIP_NETTETS=yes
Change the way the network related tests are skipped, based on how the
fetch tests are handled.  We introduce a 'skipIfNoNetwork()' function that
will report skipped tests through the standard unit test reporting system.

[YOCTO #12928]

(Bitbake rev: 7d5af23d560b38fb5558d4ac51c3c9611d6d904f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-26 15:14:33 +01:00
Mark Hatle
5fae3cb56e bitbake: lib/bb/tests/parse.py: Test case was changing chdir
The test case was changing the current directory, but was never restoring it
to the original location.  This causes occasional failures in later test cases.

(Bitbake rev: 8c222c45148d1f21c2390d66ddd9d3e33b397f05)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-26 15:14:33 +01:00
Mark Hatle
376ed63eb9 bitbake: lib/layerindexlib/tests/cooker.py: Fix topdir to use an absolute (real) path
The test case needs to access test case files.  Different versions of python
may return absolute or relative locations in __file__.  Use the same approach
as other test cases in determining the location of the test files.

(Bitbake rev: 80fe44889a858bddaca230c2d49ccabfcbc236a3)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-26 15:14:33 +01:00
Vernon Mauery
22cbd08cb1 boost: build context and coroutine for arm
When cross-compiling for arm architecture, bjam fails to properly
detect the abi, which causes a failed conditional to omit the
assembly code that supports the platform.

(From OE-Core rev: 920f2c479c3cf30d92f79dc9098e5915c05cc5e1)

Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-26 15:13:46 +01:00
Kevin Hao
044d88895d meta-yocto-bsp: bump to the latest linux stable kernel for the non-x86 BSPs
Bump to the latest stable kernel for 4.14 and 4.18.

(From meta-yocto rev: f7d36129adfeb0d0d5fe26675e2668c49573a32d)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:16:21 +01:00
Ioan-Adrian Ratiu
9d0cad1ae1 bitbake: utils: lockfile: Fix infinite loop
A nasty corner case leads to a hang when utils.lockfile is called from
oe-core's package-manager:deploy_dir_lock (in turn called from
rootfs:_create further up the call stack) with "name" owned by root
and the user running bitbake has no write access.

Because this code runs under pseudo, the UID and EUID of the bitbake
worker process are 0, so the os.access(dirname, os.W_OK) returns True
i.e. it thinks the path is writable when in fact it's not writable.

Only later when trying to open the file an Exception it thrown because
the OS prohibits writing, but the Exception is ignored and the open is
retried leading to an infinite loop.

So this fix is to not ignore the "Permission Denied" exception.

An alternative fix would be to replace the os.access() call with an
try: open() except() at the beginning of the function.

(Bitbake rev: 0cb64d0f85b41b2fa764baf6ff7ea1b13f95004e)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:16:21 +01:00
Joshua Watt
364c4c7d3f rootfs.py: Install -src packages when PACKAGE_DEBUG_SPLIT_STYLE is "debug-with-srcpkg"
When the source packages are created, they need to be included in the
debug image created when IMAGE_GEN_DEBUGFS = "1" for it to be usable for
debugging.

[YOCTO #12930]

(From OE-Core rev: 5fc7fbc10bbd3a54df16db275ecd6080bc58f19e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Ross Burton
f0c59c8876 siteinfo: generalise siteinfo
Add a function siteinfo_data_for_machine to look up the data for any arch/os
pair, not just HOST_ARCH-HOST_OS.

(From OE-Core rev: 7429ed8d2a6e48cb3415113ef62348ae211aa189)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Ross Burton
802a7c1867 meson: make native-specific patches native-specific
These two patches are only relevant for builds inside OpenEmbedded, so make them
native-specific.

(From OE-Core rev: 63c89efde45b4aef873e2086b201cad538e42044)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Ross Burton
bfeeefa597 meson: respect target/native flag distinction in G-I and gtk-doc
Remove the previous attempt at this from
0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch as it wasn't quite
right, and the rest of the patch is adding the currently not upstreamable runner
option.

Add two new patches to fix both gobject-introspection and gtk-doc using native
flags for target compiles.

(From OE-Core rev: bf41247f52ffd40d91d94d1fc983f8a831b80e48)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Ross Burton
feb5e7ed50 meson: stop Meson using target CFLAGS in native builds
With the goal of autoconf-compatibility Meson respects $CFLAGS et al in builds.
In cross-compiled build the cross file is the one true source of flags and the
environment isn't used, but in a native build the environment will still be
respected.

As this can lead to target flags being used in the build for native binaries
(including a single native binary inside a target recipe), export
CFLAGS=${BUILD_CFLAGS) et al.

(From OE-Core rev: 4ca0002860dca771836c0ce1c7a92b79a5f2db3f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Ross Burton
16729efc18 meson: pass correct endian in the cross file
Meson doesn't care for the value of the endian field, but packages may want to
use it and Meson master now validates the value.

Use siteinfo to obtain the endianism and write the correct value.

(From OE-Core rev: 2f9adf05efdddf8dae9c58976ae56cf32d9e57f0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Ross Burton
ff33ab40af meson: squash the architecture warning patches together
Instead of one patch to change a warning into an exception and another to change
the message, squash the patches together as neither of the are acceptable
upstream.

(From OE-Core rev: d9e5308ebfe376814f383d61ed00b50e8bad526b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Bruce Ashfield
e670432756 linux-yocto/4.14: fix beaglebone configuration warnings
Backporting the following fixes from 4.18 to 4.14 to remove beaglebone
configuration warnings:

  1fb0b0379fb5 beaglebone: Clean up the cfg file
  4176e7ded8e1 beaglebone: Drop the needless unsetting of the kernel options
  65c209da574d beaglebone: Drop the obsolete kernel options

(From OE-Core rev: 2adec315b44dad0f99ad55e04b4e3b6608613147)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Ioan-Adrian Ratiu
48ad67e485 rootfs: always update the opkg index
The previous logic assumed that if $BUILD_IMAGES_FROM_FEEDS=1 then a
complete set of ipk feeds from which to build the image is already
present under $IPK_FEED_URIS at do_rootfs runtime.

$IPK_FEED_URIS usually contains "file://${DEPLOY_DIR_IPK}" which
renders the above assumption bad because some recipes in the current
build can contain code like do_install[nostamp] = "1" which will cause
rebuilds bumping $PR and invalidating the index.

Even when the index is manually re-created before an image build
("bitbake package-index"), the nostamp will cause failures because the
dependency gets rebuilt before do_rootfs in the "bitbake <image>" call.

So make the opkg rootfs index logic the same as for rpm/deb, to always
update the index in $DEPLOY_DIR_IPK to fix the above nostamp failure.

Feeds outside $DEPLOY_DIR_IPK added to $IPK_FEED_URIS continue to work
as usual, for eg. by using a http:// URI.

(From OE-Core rev: bce90f48d1cc136fdfdf98b3830f5d99e381271b)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Mikko Rapeli
1d9295820d openssl10: remove extra slash from libdir path
The configure script ended up creating Makefile with

LIBDIR=/lib

which got leaked into various places including all
pkg-config .pc files where lines like (note the
double slash //):

libdir=${exec_prefix}//lib
...
Libs: -L${libdir} -lcrypto

which causes pkg-config --libs to include the full absolute path
to the recipe specific sysroot. This isn't a big problem
until something like CMake projects start generating
their own .cmake modules using this absolute path and exposing
them to sysroots of other bitbake recipes thus escaping
their recipe specific sysroots.

Then the fun begins when these users of the .cmake module start
to randomly fail builds with error messages like:

/home/builder/src/base/build/tmp/work/corei7-64-linux/package/1.0-r0/recipe-sysroot-native/usr/bin/x86_64-linux/../../libexec/x86_64-linux/gcc/x86_64-linux/7.3.0/ld: cannot find /lib/libpthread.so.0
/home/builder/src/base/build/tmp/work/corei7-64-linux/package/1.0-r0/recipe-sysroot-native/usr/bin/x86_64-linux/../../libexec/x86_64-linux/gcc/x86_64-linux/7.3.0/ld: cannot find /usr/lib/libpthread_nonshared.a
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
WARNING: exit code 1 from a shell command.

As luck has it, this problem goes away by recompiling the recipes
alone but repeats with multiple recipes here and there when full
images are build.

A careful inspection of multi page linker command lines shows
that some linker paramaters point to libraries in a different
recipes sysroot than what bitbake was building when the task
failed.

So, fix is to remove this one extra slash from openssl
library path configuration option. This changes openssl
Makefile to have:

LIBDIR=lib

and all users of LIBDIR variable in the Makefile are already
adding slashes as path separators if that is needed.

With this the generated .pc files have:

libdir=${exec_prefix}/lib

and pkg-config --libs knows to strip the already default
sysroot path away.

This then fixes the generated .cmake files to not include
these absolute paths and fixes the random build failures
when building images.

Thanks to Thomas, Michael and Ross for debugging support!

(From OE-Core rev: d286e91bbdcecef16153313fe5e1e0e0cb469612)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Cc: Thomas Witt <thomas.witt@bmw.de>
Cc: Michael Ho <michael.ho@bmw.de>
Cc: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Alex Kiernan
72cd62e66e glib-2.0: Drop allow /run/media for root patch
Upstream implemented an equivalent fix in:

c672fcc0a8d6 ("gunixmounts: Allow root to display mounts under /run/media/$username")

As a result, this change is completely broken when running as root, as
user_name is unitialised when testing strcmp(user_name, "root") so just
segfaults.

(From OE-Core rev: 547e81b678a616ebbdf2e5cc86e918966fafb894)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Nicolas Dechesne
705941f8c3 checklayer: avoid recursive loop in add_layer_dependencies
When Layer A and Layer B depend on each other, then we will end up in a
recursive loop in function recurse_dependencies(). To avoid such situation
before making the recursive function call we check whether or not we have
already processed this layer.

e.g. without this patch, running this script on layers with dependency loops, we are seeing:

$ yocto-check-layer -d  /srv/work/oe/meta-openembedded/
INFO: Detected layers:
INFO: meta-python: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-python
INFO: meta-filesystems: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-filesystems
INFO: meta-gnome: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-gnome
INFO: meta-xfce: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-xfce
INFO: meta-networking: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-networking
INFO: meta-initramfs: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-initramfs
INFO: meta-oe: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-oe
INFO: meta-multimedia: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-multimedia
INFO: meta-perl: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-perl
INFO: meta-webserver: LayerType.SOFTWARE, /srv/work/oe/meta-openembedded/meta-webserver
INFO:
INFO: Setting up for meta-python(LayerType.SOFTWARE), /srv/work/oe/meta-openembedded/meta-python
DEBUG: Processing dependencies core openembedded-layer for layer meta-python.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
DEBUG: Processing dependencies core networking-layer for layer meta-oe.
DEBUG: Processing dependencies core openembedded-layer meta-python for layer meta-networking.
...
...
...
[keep repeating]

This patch fixes this situation.

(From OE-Core rev: 171900b4bcb06416685ce90b63114a10fefe0b94)

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Robert Yang
e3bca3c8d0 perl: fix race issues for MakeMaker
Fixed a race issue when compile libhtml-parser-perl and others who use MakeMaker:
[snip]
chmod 755 blib/arch/auto/HTML/Parser/Parser.so
chmod 644 "Parser.bs"
[snip]

The rule INST_DYNAMIC removes '.bs' file which are generated by BOOTSTRAP, but
the have no dependencies, so there is a race issue:

BOOTSTRAP:
    touch foo.bs
    chmod 755 foo.bs

INST_DYNAMIC:
    rm -fr foo.bs

The error would happen when INST_DYNAMIC removes foo.bs after BOOTSTRAP touched
it but before chmod on it.

(From OE-Core rev: f33d7124cd07f776e8b05a26703f6d551357ae09)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Chen Qi
0e10a37618 runqemu: fix handling of SIGTERM and the problem of line wrapping
The current handling of SIGTERM is incorrect as the process pid returned
by Popen call with shell setting to True is actualy the shell instead of
the qemu process. So use shlex to split cmd so that we can avoid using
shell=True. This ensures the child process is the actual qemu process.

Also, as we install a SIGTERM handler, we need handle the situation of
qemu terminated by SIGTERM, otherwise we will get ERROR message in such
case.

Besides, we have a problem that after running qemu, the terminal's behavior
is incorrect regarding long lines or long commands. Long commands or long
outputs should appear in multiple lines, but they appear in the same line,
overriding previous output. Use `tput smam' to fix this problem.

(From OE-Core rev: e8acef383767cfd1ef0c3d3c45d9d6eb1c83b3e7)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Richard Purdie
07bf5b5e03 scripts/autobuilder-worker-prereq-tests: Add to todo list
Note further tests needed after encountering issues.

(From OE-Core rev: ab7b7e222b88e40f2a5011fc16bbd784e6be55e5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
Richard Purdie
f6cf0b7aad meta-skeleton/meta-selftest: Update to thud
(From OE-Core rev: 4c48e59c58e62d70b900c4356953f5b66fba2353)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-25 23:15:49 +01:00
353 changed files with 8831 additions and 2291 deletions

View File

@@ -38,7 +38,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.39.1"
__version__ = "1.40.0"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -723,6 +723,163 @@
</literallayout>
</para>
</section>
<section id='executing-a-multiple-configuration-build'>
<title>Executing a Multiple Configuration Build</title>
<para>
BitBake is able to build multiple images or packages
using a single command where the different targets
require different configurations (multiple configuration
builds).
Each target, in this scenario, is referred to as a
"multiconfig".
</para>
<para>
To accomplish a multiple configuration build, you must
define each target's configuration separately using
a parallel configuration file in the build directory.
The location for these multiconfig configuration files
is specific.
They must reside in the current build directory in
a sub-directory of <filename>conf</filename> named
<filename>multiconfig</filename>.
Following is an example for two separate targets:
<imagedata fileref="figures/bb_multiconfig_files.png" align="center" width="4in" depth="3in" />
</para>
<para>
The reason for this required file hierarchy
is because the <filename>BBPATH</filename> variable
is not constructed until the layers are parsed.
Consequently, using the configuration file as a
pre-configuration file is not possible unless it is
located in the current working directory.
</para>
<para>
Minimally, each configuration file must define the
machine and the temporary directory BitBake uses
for the build.
Suggested practice dictates that you do not
overlap the temporary directories used during the
builds.
</para>
<para>
Aside from separate configuration files for each
target, you must also enable BitBake to perform multiple
configuration builds.
Enabling is accomplished by setting the
<link linkend='var-BBMULTICONFIG'><filename>BBMULTICONFIG</filename></link>
variable in the <filename>local.conf</filename>
configuration file.
As an example, suppose you had configuration files
for <filename>target1</filename> and
<filename>target2</filename> defined in the build
directory.
The following statement in the
<filename>local.conf</filename> file both enables
BitBake to perform multiple configuration builds and
specifies the two multiconfigs:
<literallayout class='monospaced'>
BBMULTICONFIG = "target1 target2"
</literallayout>
</para>
<para>
Once the target configuration files are in place and
BitBake has been enabled to perform multiple configuration
builds, use the following command form to start the
builds:
<literallayout class='monospaced'>
$ bitbake [multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
</literallayout>
Here is an example for two multiconfigs:
<filename>target1</filename> and
<filename>target2</filename>:
<literallayout class='monospaced'>
$ bitbake multiconfig:target1:<replaceable>target</replaceable> multiconfig:target2:<replaceable>target</replaceable>
</literallayout>
</para>
</section>
<section id='bb-enabling-multiple-configuration-build-dependencies'>
<title>Enabling Multiple Configuration Build Dependencies</title>
<para>
Sometimes dependencies can exist between targets
(multiconfigs) in a multiple configuration build.
For example, suppose that in order to build an image
for a particular architecture, the root filesystem of
another build for a different architecture needs to
exist.
In other words, the image for the first multiconfig depends
on the root filesystem of the second multiconfig.
This dependency is essentially that the task in the recipe
that builds one multiconfig is dependent on the
completion of the task in the recipe that builds
another multiconfig.
</para>
<para>
To enable dependencies in a multiple configuration
build, you must declare the dependencies in the recipe
using the following statement form:
<literallayout class='monospaced'>
<replaceable>task_or_package</replaceable>[mcdepends] = "multiconfig:<replaceable>from_multiconfig</replaceable>:<replaceable>to_multiconfig</replaceable>:<replaceable>recipe_name</replaceable>:<replaceable>task_on_which_to_depend</replaceable>"
</literallayout>
To better show how to use this statement, consider an
example with two multiconfigs: <filename>target1</filename>
and <filename>target2</filename>:
<literallayout class='monospaced'>
<replaceable>image_task</replaceable>[mcdepends] = "multiconfig:target1:target2:<replaceable>image2</replaceable>:<replaceable>rootfs_task</replaceable>"
</literallayout>
In this example, the
<replaceable>from_multiconfig</replaceable> is "target1" and
the <replaceable>to_multiconfig</replaceable> is "target2".
The task on which the image whose recipe contains
<replaceable>image_task</replaceable> depends on the
completion of the <replaceable>rootfs_task</replaceable>
used to build out <replaceable>image2</replaceable>, which
is associated with the "target2" multiconfig.
</para>
<para>
Once you set up this dependency, you can build the
"target1" multiconfig using a BitBake command as follows:
<literallayout class='monospaced'>
$ bitbake multiconfig:target1:<replaceable>image1</replaceable>
</literallayout>
This command executes all the tasks needed to create
<replaceable>image1</replaceable> for the "target1"
multiconfig.
Because of the dependency, BitBake also executes through
the <replaceable>rootfs_task</replaceable> for the "target2"
multiconfig build.
</para>
<para>
Having a recipe depend on the root filesystem of another
build might not seem that useful.
Consider this change to the statement in the
<replaceable>image1</replaceable> recipe:
<literallayout class='monospaced'>
<replaceable>image_task</replaceable>[mcdepends] = "multiconfig:target1:target2:<replaceable>image2</replaceable>:<replaceable>image_task</replaceable>"
</literallayout>
In this case, BitBake must create
<replaceable>image2</replaceable> for the "target2"
build since the "target1" build depends on it.
</para>
<para>
Because "target1" and "target2" are enabled for multiple
configuration builds and have separate configuration
files, BitBake places the artifacts for each build in the
respective temporary build directories.
</para>
</section>
</section>
</section>
</chapter>

View File

@@ -342,7 +342,7 @@
<para>
When you use this syntax, BitBake expects one or more strings.
Surrounding spaces are removed as well.
Surrounding spaces and spacing are preserved.
Here is an example:
<literallayout class='monospaced'>
FOO = "123 456 789 123456 123 456 123 456"
@@ -352,8 +352,8 @@
FOO2_remove = "abc def"
</literallayout>
The variable <filename>FOO</filename> becomes
"789 123456" and <filename>FOO2</filename> becomes
"ghi abcdef".
" 789 123456 " and <filename>FOO2</filename> becomes
" ghi abcdef ".
</para>
<para>

View File

@@ -646,10 +646,10 @@
<glossdef>
<para>
Contains the name of the currently executing task.
The value does not include the "do_" prefix.
The value includes the "do_" prefix.
For example, if the currently executing task is
<filename>do_config</filename>, the value is
"config".
"do_config".
</para>
</glossdef>
</glossentry>
@@ -1205,6 +1205,45 @@
</glossdef>
</glossentry>
<glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
<info>
BBMULTICONFIG[doc] = "Enables BitBake to perform multiple configuration builds and lists each separate configuration (multiconfig)."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Enables BitBake to perform multiple configuration builds
and lists each separate configuration (multiconfig).
You can use this variable to cause BitBake to build
multiple targets where each target has a separate
configuration.
Define <filename>BBMULTICONFIG</filename> in your
<filename>conf/local.conf</filename> configuration file.
</para>
<para>
As an example, the following line specifies three
multiconfigs, each having a separate configuration file:
<literallayout class='monospaced'>
BBMULTIFONFIG = "configA configB configC"
</literallayout>
Each configuration file you use must reside in the
build directory within a directory named
<filename>conf/multiconfig</filename> (e.g.
<replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
</para>
<para>
For information on how to use
<filename>BBMULTICONFIG</filename> in an environment that
supports building targets with multiple configurations,
see the
"<link linkend='executing-a-multiple-configuration-build'>Executing a Multiple Configuration Build</link>"
section.
</para>
</glossdef>
</glossentry>
<glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
<glossdef>
<para>

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -21,7 +21,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
__version__ = "1.39.1"
__version__ = "1.40.0"
import sys
if sys.version_info < (3, 4, 0):

View File

@@ -38,6 +38,7 @@ the speed is more critical here.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import sys, os, re
import hashlib
if sys.argv[0][-5:] == "pydoc":
path = os.path.dirname(os.path.dirname(sys.argv[1]))
else:
@@ -283,14 +284,12 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
try:
if key[-1] == ']':
vf = key[:-1].split('[')
value = d.getVarFlag(vf[0], vf[1], False)
parser = d.expandWithRefs(value, key)
value, parser = d.getVarFlag(vf[0], vf[1], False, retparser=True)
deps |= parser.references
deps = deps | (keys & parser.execs)
return deps, value
varflags = d.getVarFlags(key, ["vardeps", "vardepvalue", "vardepsexclude", "exports", "postfuncs", "prefuncs", "lineno", "filename"]) or {}
vardeps = varflags.get("vardeps")
value = d.getVarFlag(key, "_content", False)
def handle_contains(value, contains, d):
newvalue = ""
@@ -309,10 +308,19 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
return newvalue
return value + newvalue
def handle_remove(value, deps, removes, d):
for r in sorted(removes):
r2 = d.expandWithRefs(r, None)
value += "\n_remove of %s" % r
deps |= r2.references
deps = deps | (keys & r2.execs)
return value
if "vardepvalue" in varflags:
value = varflags.get("vardepvalue")
value = varflags.get("vardepvalue")
elif varflags.get("func"):
if varflags.get("python"):
value = d.getVarFlag(key, "_content", False)
parser = bb.codeparser.PythonParser(key, logger)
if value and "\t" in value:
logger.warning("Variable %s contains tabs, please remove these (%s)" % (key, d.getVar("FILE")))
@@ -321,13 +329,15 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
deps = deps | (keys & parser.execs)
value = handle_contains(value, parser.contains, d)
else:
parsedvar = d.expandWithRefs(value, key)
value, parsedvar = d.getVarFlag(key, "_content", False, retparser=True)
parser = bb.codeparser.ShellParser(key, logger)
parser.parse_shell(parsedvar.value)
deps = deps | shelldeps
deps = deps | parsedvar.references
deps = deps | (keys & parser.execs) | (keys & parsedvar.execs)
value = handle_contains(value, parsedvar.contains, d)
if hasattr(parsedvar, "removes"):
value = handle_remove(value, deps, parsedvar.removes, d)
if vardeps is None:
parser.log.flush()
if "prefuncs" in varflags:
@@ -337,10 +347,12 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
if "exports" in varflags:
deps = deps | set(varflags["exports"].split())
else:
parser = d.expandWithRefs(value, key)
value, parser = d.getVarFlag(key, "_content", False, retparser=True)
deps |= parser.references
deps = deps | (keys & parser.execs)
value = handle_contains(value, parser.contains, d)
if hasattr(parser, "removes"):
value = handle_remove(value, deps, parser.removes, d)
if "vardepvalueexclude" in varflags:
exclude = varflags.get("vardepvalueexclude")
@@ -394,6 +406,43 @@ def generate_dependencies(d):
#print "For %s: %s" % (task, str(deps[task]))
return tasklist, deps, values
def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
taskdeps = {}
basehash = {}
for task in tasklist:
data = lookupcache[task]
if data is None:
bb.error("Task %s from %s seems to be empty?!" % (task, fn))
data = ''
gendeps[task] -= whitelist
newdeps = gendeps[task]
seen = set()
while newdeps:
nextdeps = newdeps
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
if dep in whitelist:
continue
gendeps[dep] -= whitelist
newdeps |= gendeps[dep]
newdeps -= seen
alldeps = sorted(seen)
for dep in alldeps:
data = data + dep
var = lookupcache[dep]
if var is not None:
data = data + str(var)
k = fn + "." + task
basehash[k] = hashlib.md5(data.encode("utf-8")).hexdigest()
taskdeps[task] = alldeps
return taskdeps, basehash
def inherits_class(klass, d):
val = d.getVar('__inherit_cache', False) or []
needle = os.path.join('classes', '%s.bbclass' % klass)

View File

@@ -42,6 +42,7 @@ __setvar_keyword__ = ["_append", "_prepend", "_remove"]
__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
__expand_var_regexp__ = re.compile(r"\${[^{}@\n\t :]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
__whitespace_split__ = re.compile('(\s)')
def infer_caller_details(loginfo, parent = False, varval = True):
"""Save the caller the trouble of specifying everything."""
@@ -104,11 +105,7 @@ class VariableParse:
if self.varname and key:
if self.varname == key:
raise Exception("variable %s references itself!" % self.varname)
if key in self.d.expand_cache:
varparse = self.d.expand_cache[key]
var = varparse.value
else:
var = self.d.getVarFlag(key, "_content")
var = self.d.getVarFlag(key, "_content")
self.references.add(key)
if var is not None:
return var
@@ -267,6 +264,16 @@ class VariableHistory(object):
return
self.variables[var].append(loginfo.copy())
def rename_variable_hist(self, oldvar, newvar):
if not self.dataroot._tracking:
return
if oldvar not in self.variables:
return
if newvar not in self.variables:
self.variables[newvar] = []
for i in self.variables[oldvar]:
self.variables[newvar].append(i.copy())
def variable(self, var):
remote_connector = self.dataroot.getVar('_remote_data', False)
if remote_connector:
@@ -401,9 +408,6 @@ class DataSmart(MutableMapping):
if not isinstance(s, str): # sanity check
return VariableParse(varname, self, s)
if varname and varname in self.expand_cache:
return self.expand_cache[varname]
varparse = VariableParse(varname, self)
while s.find('${') != -1:
@@ -427,9 +431,6 @@ class DataSmart(MutableMapping):
varparse.value = s
if varname:
self.expand_cache[varname] = varparse
return varparse
def expand(self, s, varname = None):
@@ -498,6 +499,7 @@ class DataSmart(MutableMapping):
def setVar(self, var, value, **loginfo):
#print("var=" + str(var) + " val=" + str(value))
self.expand_cache = {}
parsing=False
if 'parsing' in loginfo:
parsing=True
@@ -510,7 +512,7 @@ class DataSmart(MutableMapping):
if 'op' not in loginfo:
loginfo['op'] = "set"
self.expand_cache = {}
match = __setvar_regexp__.match(var)
if match and match.group("keyword") in __setvar_keyword__:
base = match.group('base')
@@ -619,6 +621,7 @@ class DataSmart(MutableMapping):
val = self.getVar(key, 0, parsing=True)
if val is not None:
self.varhistory.rename_variable_hist(key, newkey)
loginfo['variable'] = newkey
loginfo['op'] = 'rename from %s' % key
loginfo['detail'] = val
@@ -660,6 +663,7 @@ class DataSmart(MutableMapping):
self.setVar(var + "_prepend", value, ignore=True, parsing=True)
def delVar(self, var, **loginfo):
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.delVar(var)
@@ -669,7 +673,6 @@ class DataSmart(MutableMapping):
loginfo['detail'] = ""
loginfo['op'] = 'del'
self.varhistory.record(**loginfo)
self.expand_cache = {}
self.dict[var] = {}
if var in self.overridedata:
del self.overridedata[var]
@@ -692,13 +695,13 @@ class DataSmart(MutableMapping):
override = None
def setVarFlag(self, var, flag, value, **loginfo):
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.setVarFlag(var, flag, value)
if not res:
return
self.expand_cache = {}
if 'op' not in loginfo:
loginfo['op'] = "set"
loginfo['flag'] = flag
@@ -719,9 +722,21 @@ class DataSmart(MutableMapping):
self.dict["__exportlist"]["_content"] = set()
self.dict["__exportlist"]["_content"].add(var)
def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False):
def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False, retparser=False):
if flag == "_content":
cachename = var
else:
if not flag:
bb.warn("Calling getVarFlag with flag unset is invalid")
return None
cachename = var + "[" + flag + "]"
if expand and cachename in self.expand_cache:
return self.expand_cache[cachename].value
local_var, overridedata = self._findVar(var)
value = None
removes = set()
if flag == "_content" and overridedata is not None and not parsing:
match = False
active = {}
@@ -748,7 +763,11 @@ class DataSmart(MutableMapping):
match = active[a]
del active[a]
if match:
value = self.getVar(match, False)
value, subparser = self.getVarFlag(match, "_content", False, retparser=True)
if hasattr(subparser, "removes"):
# We have to carry the removes from the overridden variable to apply at the
# end of processing
removes = subparser.removes
if local_var is not None and value is None:
if flag in local_var:
@@ -784,17 +803,13 @@ class DataSmart(MutableMapping):
if match:
value = r + value
if expand and value:
# Only getvar (flag == _content) hits the expand cache
cachename = None
if flag == "_content":
cachename = var
else:
cachename = var + "[" + flag + "]"
value = self.expand(value, cachename)
parser = None
if expand or retparser:
parser = self.expandWithRefs(value, cachename)
if expand:
value = parser.value
if value and flag == "_content" and local_var is not None and "_remove" in local_var:
removes = []
if value and flag == "_content" and local_var is not None and "_remove" in local_var and not parsing:
self.need_overrides()
for (r, o) in local_var["_remove"]:
match = True
@@ -803,26 +818,45 @@ class DataSmart(MutableMapping):
if not o2 in self.overrides:
match = False
if match:
removes.extend(self.expand(r).split())
removes.add(r)
if value and flag == "_content" and not parsing:
if removes and parser:
expanded_removes = {}
for r in removes:
expanded_removes[r] = self.expand(r).split()
parser.removes = set()
val = ""
for v in __whitespace_split__.split(parser.value):
skip = False
for r in removes:
if v in expanded_removes[r]:
parser.removes.add(r)
skip = True
if skip:
continue
val = val + v
parser.value = val
if expand:
value = parser.value
if parser:
self.expand_cache[cachename] = parser
if retparser:
return value, parser
if removes:
filtered = filter(lambda v: v not in removes,
value.split())
value = " ".join(filtered)
if expand and var in self.expand_cache:
# We need to ensure the expand cache has the correct value
# flag == "_content" here
self.expand_cache[var].value = value
return value
def delVarFlag(self, var, flag, **loginfo):
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.delVarFlag(var, flag)
if not res:
return
self.expand_cache = {}
local_var, _ = self._findVar(var)
if not local_var:
return

View File

@@ -837,14 +837,16 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
if not cleanup:
cleanup = []
# If PATH contains WORKDIR which contains PV which contains SRCPV we
# If PATH contains WORKDIR which contains PV-PR which contains SRCPV we
# can end up in circular recursion here so give the option of breaking it
# in a data store copy.
try:
d.getVar("PV")
d.getVar("PR")
except bb.data_smart.ExpansionError:
d = bb.data.createCopy(d)
d.setVar("PV", "fetcheravoidrecurse")
d.setVar("PR", "fetcheravoidrecurse")
origenv = d.getVar("BB_ORIGENV", False)
for var in exportvars:
@@ -1016,16 +1018,7 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
origud.method.build_mirror_data(origud, ld)
return origud.localpath
# Otherwise the result is a local file:// and we symlink to it
if not os.path.exists(origud.localpath):
if os.path.islink(origud.localpath):
# Broken symbolic link
os.unlink(origud.localpath)
# As per above, in case two tasks end up here simultaneously.
try:
os.symlink(ud.localpath, origud.localpath)
except FileExistsError:
pass
ensure_symlink(ud.localpath, origud.localpath)
update_stamp(origud, ld)
return ud.localpath
@@ -1059,6 +1052,22 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
bb.utils.unlockfile(lf)
def ensure_symlink(target, link_name):
if not os.path.exists(link_name):
if os.path.islink(link_name):
# Broken symbolic link
os.unlink(link_name)
# In case this is executing without any file locks held (as is
# the case for file:// URLs), two tasks may end up here at the
# same time, in which case we do not want the second task to
# fail when the link has already been created by the first task.
try:
os.symlink(target, link_name)
except FileExistsError:
pass
def try_mirrors(fetch, d, origud, mirrors, check = False):
"""
Try to use a mirrored version of the sources.
@@ -1088,7 +1097,9 @@ def trusted_network(d, url):
return True
pkgname = d.expand(d.getVar('PN', False))
trusted_hosts = d.getVarFlag('BB_ALLOWED_NETWORKS', pkgname, False)
trusted_hosts = None
if pkgname:
trusted_hosts = d.getVarFlag('BB_ALLOWED_NETWORKS', pkgname, False)
if not trusted_hosts:
trusted_hosts = d.getVar('BB_ALLOWED_NETWORKS')

View File

@@ -299,17 +299,22 @@ class Git(FetchMethod):
return ud.clonedir
def need_update(self, ud, d):
return self.clonedir_need_update(ud, d) or self.shallow_tarball_need_update(ud) or self.tarball_need_update(ud)
def clonedir_need_update(self, ud, d):
if not os.path.exists(ud.clonedir):
return True
for name in ud.names:
if not self._contains_ref(ud, d, name, ud.clonedir):
return True
if ud.shallow and ud.write_shallow_tarballs and not os.path.exists(ud.fullshallow):
return True
if ud.write_tarballs and not os.path.exists(ud.fullmirror):
return True
return False
def shallow_tarball_need_update(self, ud):
return ud.shallow and ud.write_shallow_tarballs and not os.path.exists(ud.fullshallow)
def tarball_need_update(self, ud):
return ud.write_tarballs and not os.path.exists(ud.fullmirror)
def try_premirror(self, ud, d):
# If we don't do this, updating an existing checkout with only premirrors
# is not possible
@@ -471,11 +476,27 @@ class Git(FetchMethod):
if os.path.exists(destdir):
bb.utils.prunedir(destdir)
if ud.shallow and self.need_update(ud, d):
bb.utils.mkdirhier(destdir)
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir)
else:
runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d)
source_found = False
source_error = []
if not source_found:
clonedir_is_up_to_date = not self.clonedir_need_update(ud, d)
if clonedir_is_up_to_date:
runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d)
source_found = True
else:
source_error.append("clone directory not available or not up to date: " + ud.clonedir)
if not source_found:
if ud.shallow and os.path.exists(ud.fullshallow):
bb.utils.mkdirhier(destdir)
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir)
source_found = True
else:
source_error.append("shallow clone not enabled or not available: " + ud.fullshallow)
if not source_found:
raise bb.fetch2.UnpackError("No up to date source found: " + "; ".join(source_error), ud.url)
repourl = self._get_repo_url(ud)
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)

View File

@@ -31,9 +31,12 @@ NOTE: Switching a SRC_URI from "git://" to "gitsm://" requires a clean of your r
import os
import bb
import copy
from bb.fetch2.git import Git
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
from bb.fetch2 import Fetch
from bb.fetch2 import BBFetchException
class GitSM(Git):
def supports(self, ud, d):
@@ -42,96 +45,81 @@ class GitSM(Git):
"""
return ud.type in ['gitsm']
def uses_submodules(self, ud, d, wd):
@staticmethod
def parse_gitmodules(gitmodules):
modules = {}
module = ""
for line in gitmodules.splitlines():
if line.startswith('[submodule'):
module = line.split('"')[1]
modules[module] = {}
elif module and line.strip().startswith('path'):
path = line.split('=')[1].strip()
modules[module]['path'] = path
elif module and line.strip().startswith('url'):
url = line.split('=')[1].strip()
modules[module]['url'] = url
return modules
def update_submodules(self, ud, d):
submodules = []
paths = {}
uris = {}
local_paths = {}
for name in ud.names:
try:
runfetchcmd("%s show %s:.gitmodules" % (ud.basecmd, ud.revisions[name]), d, quiet=True, workdir=wd)
return True
except bb.fetch.FetchError:
pass
return False
gitmodules = runfetchcmd("%s show %s:.gitmodules" % (ud.basecmd, ud.revisions[name]), d, quiet=True, workdir=ud.clonedir)
except:
# No submodules to update
continue
def _set_relative_paths(self, repopath):
"""
Fix submodule paths to be relative instead of absolute,
so that when we move the repo it doesn't break
(In Git 1.7.10+ this is done automatically)
"""
submodules = []
with open(os.path.join(repopath, '.gitmodules'), 'r') as f:
for line in f.readlines():
if line.startswith('[submodule'):
submodules.append(line.split('"')[1])
for m, md in self.parse_gitmodules(gitmodules).items():
submodules.append(m)
paths[m] = md['path']
uris[m] = md['url']
if uris[m].startswith('..'):
newud = copy.copy(ud)
newud.path = os.path.realpath(os.path.join(newud.path, md['url']))
uris[m] = Git._get_repo_url(self, newud)
for module in submodules:
repo_conf = os.path.join(repopath, module, '.git')
if os.path.exists(repo_conf):
with open(repo_conf, 'r') as f:
lines = f.readlines()
newpath = ''
for i, line in enumerate(lines):
if line.startswith('gitdir:'):
oldpath = line.split(': ')[-1].rstrip()
if oldpath.startswith('/'):
newpath = '../' * (module.count('/') + 1) + '.git/modules/' + module
lines[i] = 'gitdir: %s\n' % newpath
break
if newpath:
with open(repo_conf, 'w') as f:
for line in lines:
f.write(line)
module_hash = runfetchcmd("%s ls-tree -z -d %s %s" % (ud.basecmd, ud.revisions[name], paths[module]), d, quiet=True, workdir=ud.clonedir)
module_hash = module_hash.split()[2]
repo_conf2 = os.path.join(repopath, '.git', 'modules', module, 'config')
if os.path.exists(repo_conf2):
with open(repo_conf2, 'r') as f:
lines = f.readlines()
newpath = ''
for i, line in enumerate(lines):
if line.lstrip().startswith('worktree = '):
oldpath = line.split(' = ')[-1].rstrip()
if oldpath.startswith('/'):
newpath = '../' * (module.count('/') + 3) + module
lines[i] = '\tworktree = %s\n' % newpath
break
if newpath:
with open(repo_conf2, 'w') as f:
for line in lines:
f.write(line)
# Build new SRC_URI
proto = uris[module].split(':', 1)[0]
url = uris[module].replace('%s:' % proto, 'gitsm:', 1)
url += ';protocol=%s' % proto
url += ";name=%s" % module
url += ";bareclone=1;nocheckout=1"
def update_submodules(self, ud, d, allow_network):
# We have to convert bare -> full repo, do the submodule bit, then convert back
tmpclonedir = ud.clonedir + ".tmp"
gitdir = tmpclonedir + os.sep + ".git"
bb.utils.remove(tmpclonedir, True)
os.mkdir(tmpclonedir)
os.rename(ud.clonedir, gitdir)
runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*true/bare = false/'", d)
runfetchcmd(ud.basecmd + " reset --hard", d, workdir=tmpclonedir)
runfetchcmd(ud.basecmd + " checkout -f " + ud.revisions[ud.names[0]], d, workdir=tmpclonedir)
ld = d.createCopy()
# Not necessary to set SRC_URI, since we're passing the URI to
# Fetch.
#ld.setVar('SRC_URI', url)
ld.setVar('SRCREV_%s' % module, module_hash)
try:
if allow_network:
fetch_flags = ""
else:
fetch_flags = "--no-fetch"
# Workaround for issues with SRCPV/SRCREV_FORMAT errors
# error refer to 'multiple' repositories. Only the repository
# in the original SRC_URI actually matters...
ld.setVar('SRCPV', d.getVar('SRCPV'))
ld.setVar('SRCREV_FORMAT', module)
# The 'git submodule sync' sandwiched between two successive 'git submodule update' commands is
# intentional. See the notes on the similar construction in download() for an explanation.
runfetchcmd("%(basecmd)s submodule update --init --recursive %(fetch_flags)s || (%(basecmd)s submodule sync --recursive && %(basecmd)s submodule update --init --recursive %(fetch_flags)s)" % {'basecmd': ud.basecmd, 'fetch_flags' : fetch_flags}, d, workdir=tmpclonedir)
except bb.fetch.FetchError:
if allow_network:
raise
else:
# This method was called as a probe to see whether the submodule history
# is complete enough to allow the current working copy to have its
# modules filled in. It's not, so swallow up the exception and report
# the negative result.
return False
finally:
self._set_relative_paths(tmpclonedir)
runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*false/bare = true/'", d, workdir=tmpclonedir)
os.rename(gitdir, ud.clonedir,)
bb.utils.remove(tmpclonedir, True)
newfetch = Fetch([url], ld, cache=False)
newfetch.download()
local_paths[module] = newfetch.localpath(url)
# Correct the submodule references to the local download version...
runfetchcmd("%(basecmd)s config submodule.%(module)s.url %(url)s" % {'basecmd': ud.basecmd, 'module': module, 'url' : local_paths[module]}, d, workdir=ud.clonedir)
symlink_path = os.path.join(ud.clonedir, 'modules', paths[module])
if not os.path.exists(symlink_path):
try:
os.makedirs(os.path.dirname(symlink_path), exist_ok=True)
except OSError:
pass
os.symlink(local_paths[module], symlink_path)
return True
@@ -147,56 +135,117 @@ class GitSM(Git):
# Now check that the submodule histories are new enough. The git-submodule command doesn't have
# any clean interface for doing this aside from just attempting the checkout (with network
# fetched disabled).
return not self.update_submodules(ud, d, allow_network=False)
return not self.update_submodules(ud, d)
def download(self, ud, d):
Git.download(self, ud, d)
if not ud.shallow or ud.localpath != ud.fullshallow:
submodules = self.uses_submodules(ud, d, ud.clonedir)
if submodules:
self.update_submodules(ud, d, allow_network=True)
self.update_submodules(ud, d)
def copy_submodules(self, submodules, ud, destdir, d):
if ud.bareclone:
repo_conf = destdir
else:
repo_conf = os.path.join(destdir, '.git')
if submodules and not os.path.exists(os.path.join(repo_conf, 'modules')):
os.mkdir(os.path.join(repo_conf, 'modules'))
for module in submodules:
srcpath = os.path.join(ud.clonedir, 'modules', module)
modpath = os.path.join(repo_conf, 'modules', module)
if os.path.exists(srcpath):
if os.path.exists(os.path.join(srcpath, '.git')):
srcpath = os.path.join(srcpath, '.git')
target = modpath
if os.path.exists(modpath):
target = os.path.dirname(modpath)
os.makedirs(os.path.dirname(target), exist_ok=True)
runfetchcmd("cp -fpLR %s %s" % (srcpath, target), d)
elif os.path.exists(modpath):
# Module already exists, likely unpacked from a shallow mirror clone
pass
else:
# This is fatal, as we do NOT want git-submodule to hit the network
raise bb.fetch2.FetchError('Submodule %s does not exist in %s or %s.' % (module, srcpath, modpath))
def clone_shallow_local(self, ud, dest, d):
super(GitSM, self).clone_shallow_local(ud, dest, d)
runfetchcmd('cp -fpPRH "%s/modules" "%s/"' % (ud.clonedir, os.path.join(dest, '.git')), d)
# Copy over the submodules' fetched histories too.
repo_conf = os.path.join(dest, '.git')
submodules = []
for name in ud.names:
try:
gitmodules = runfetchcmd("%s show %s:.gitmodules" % (ud.basecmd, ud.revision), d, quiet=True, workdir=dest)
except:
# No submodules to update
continue
submodules = list(self.parse_gitmodules(gitmodules).keys())
self.copy_submodules(submodules, ud, dest, d)
def unpack(self, ud, destdir, d):
Git.unpack(self, ud, destdir, d)
if self.uses_submodules(ud, d, ud.destdir):
runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d, workdir=ud.destdir)
# Copy over the submodules' fetched histories too.
if ud.bareclone:
repo_conf = ud.destdir
else:
repo_conf = os.path.join(ud.destdir, '.git')
# Copy over the submodules' fetched histories too.
if ud.bareclone:
repo_conf = ud.destdir
else:
repo_conf = os.path.join(ud.destdir, '.git')
submodules = []
paths = {}
uris = {}
local_paths = {}
for name in ud.names:
try:
gitmodules = runfetchcmd("%s show HEAD:.gitmodules" % (ud.basecmd), d, quiet=True, workdir=ud.destdir)
except:
# No submodules to update
continue
if os.path.exists(ud.clonedir):
# This is not a copy unpacked from a shallow mirror clone. So
# the manual intervention to populate the .git/modules done
# in clone_shallow_local() won't have been done yet.
runfetchcmd("cp -fpPRH %s %s" % (os.path.join(ud.clonedir, 'modules'), repo_conf), d)
fetch_flags = "--no-fetch"
elif os.path.exists(os.path.join(repo_conf, 'modules')):
# Unpacked from a shallow mirror clone. Manual population of
# .git/modules is already done.
fetch_flags = "--no-fetch"
else:
# This isn't fatal; git-submodule will just fetch it
# during do_unpack().
fetch_flags = ""
bb.error("submodule history not retrieved during do_fetch()")
for m, md in self.parse_gitmodules(gitmodules).items():
submodules.append(m)
paths[m] = md['path']
uris[m] = md['url']
# Careful not to hit the network during unpacking; all history should already
# be fetched.
#
# The repeated attempts to do the submodule initialization sandwiched around a sync to
# install the correct remote URLs into the submodules' .git/config metadata are deliberate.
# Bad remote URLs are leftover in the modules' .git/config files from the unpack of bare
# clone tarballs and an initial 'git submodule update' is necessary to prod them back to
# enough life so that the 'git submodule sync' realizes the existing module .git/config
# files exist to be updated.
runfetchcmd("%(basecmd)s submodule update --init --recursive %(fetch_flags)s || (%(basecmd)s submodule sync --recursive && %(basecmd)s submodule update --init --recursive %(fetch_flags)s)" % {'basecmd': ud.basecmd, 'fetch_flags': fetch_flags}, d, workdir=ud.destdir)
self.copy_submodules(submodules, ud, ud.destdir, d)
submodules_queue = [(module, os.path.join(repo_conf, 'modules', module)) for module in submodules]
while len(submodules_queue) != 0:
module, modpath = submodules_queue.pop()
# add submodule children recursively
try:
gitmodules = runfetchcmd("%s show HEAD:.gitmodules" % (ud.basecmd), d, quiet=True, workdir=modpath)
for m, md in self.parse_gitmodules(gitmodules).items():
submodules_queue.append([m, os.path.join(modpath, 'modules', m)])
except:
# no children
pass
# Determine (from the submodule) the correct url to reference
try:
output = runfetchcmd("%(basecmd)s config remote.origin.url" % {'basecmd': ud.basecmd}, d, workdir=modpath)
except bb.fetch2.FetchError as e:
# No remote url defined in this submodule
continue
local_paths[module] = output
# Setup the local URL properly (like git submodule init or sync would do...)
runfetchcmd("%(basecmd)s config submodule.%(module)s.url %(url)s" % {'basecmd': ud.basecmd, 'module': module, 'url' : local_paths[module]}, d, workdir=ud.destdir)
# Ensure the submodule repository is NOT set to bare, since we're checking it out...
runfetchcmd("%s config core.bare false" % (ud.basecmd), d, quiet=True, workdir=modpath)
if submodules:
# Run submodule update, this sets up the directories -- without touching the config
runfetchcmd("%s submodule update --recursive --no-fetch" % (ud.basecmd), d, quiet=True, workdir=ud.destdir)

View File

@@ -405,9 +405,6 @@ def setup_bitbake(configParams, configuration, extrafeatures=None):
# In status only mode there are no logs and no UI
logger.addHandler(handler)
# Clear away any spurious environment variables while we stoke up the cooker
cleanedvars = bb.utils.clean_environment()
if configParams.server_only:
featureset = []
ui_module = None
@@ -423,6 +420,10 @@ def setup_bitbake(configParams, configuration, extrafeatures=None):
server_connection = None
# Clear away any spurious environment variables while we stoke up the cooker
# (done after import_extension_module() above since for example import gi triggers env var usage)
cleanedvars = bb.utils.clean_environment()
if configParams.remote_server:
# Connect to a remote XMLRPC server
server_connection = bb.server.xmlrpcclient.connectXMLRPC(configParams.remote_server, featureset,

View File

@@ -110,42 +110,13 @@ class SignatureGeneratorBasic(SignatureGenerator):
ignore_mismatch = ((d.getVar("BB_HASH_IGNORE_MISMATCH") or '') == '1')
tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d)
taskdeps = {}
basehash = {}
taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basewhitelist, fn)
for task in tasklist:
data = lookupcache[task]
if data is None:
bb.error("Task %s from %s seems to be empty?!" % (task, fn))
data = ''
gendeps[task] -= self.basewhitelist
newdeps = gendeps[task]
seen = set()
while newdeps:
nextdeps = newdeps
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
if dep in self.basewhitelist:
continue
gendeps[dep] -= self.basewhitelist
newdeps |= gendeps[dep]
newdeps -= seen
alldeps = sorted(seen)
for dep in alldeps:
data = data + dep
var = lookupcache[dep]
if var is not None:
data = data + str(var)
datahash = hashlib.md5(data.encode("utf-8")).hexdigest()
k = fn + "." + task
if not ignore_mismatch and k in self.basehash and self.basehash[k] != datahash:
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], datahash))
self.basehash[k] = datahash
taskdeps[task] = alldeps
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]))
self.basehash[k] = basehash[k]
self.taskdeps[fn] = taskdeps
self.gendeps[fn] = gendeps

View File

@@ -281,7 +281,7 @@ class TestConcatOverride(unittest.TestCase):
def test_remove(self):
self.d.setVar("TEST", "${VAL} ${BAR}")
self.d.setVar("TEST_remove", "val")
self.assertEqual(self.d.getVar("TEST"), "bar")
self.assertEqual(self.d.getVar("TEST"), " bar")
def test_remove_cleared(self):
self.d.setVar("TEST", "${VAL} ${BAR}")
@@ -300,7 +300,7 @@ class TestConcatOverride(unittest.TestCase):
self.d.setVar("TEST", "${VAL} ${BAR}")
self.d.setVar("TEST_remove", "val")
self.d.setVar("TEST_TEST", "${TEST} ${TEST}")
self.assertEqual(self.d.getVar("TEST_TEST"), "bar bar")
self.assertEqual(self.d.getVar("TEST_TEST"), " bar bar")
def test_empty_remove(self):
self.d.setVar("TEST", "")
@@ -311,13 +311,25 @@ class TestConcatOverride(unittest.TestCase):
self.d.setVar("BAR", "Z")
self.d.setVar("TEST", "${BAR}/X Y")
self.d.setVar("TEST_remove", "${BAR}/X")
self.assertEqual(self.d.getVar("TEST"), "Y")
self.assertEqual(self.d.getVar("TEST"), " Y")
def test_remove_expansion_items(self):
self.d.setVar("TEST", "A B C D")
self.d.setVar("BAR", "B D")
self.d.setVar("TEST_remove", "${BAR}")
self.assertEqual(self.d.getVar("TEST"), "A C")
self.assertEqual(self.d.getVar("TEST"), "A C ")
def test_remove_preserve_whitespace(self):
# When the removal isn't active, the original value should be preserved
self.d.setVar("TEST", " A B")
self.d.setVar("TEST_remove", "C")
self.assertEqual(self.d.getVar("TEST"), " A B")
def test_remove_preserve_whitespace2(self):
# When the removal is active preserve the whitespace
self.d.setVar("TEST", " A B")
self.d.setVar("TEST_remove", "B")
self.assertEqual(self.d.getVar("TEST"), " A ")
class TestOverrides(unittest.TestCase):
def setUp(self):
@@ -374,6 +386,15 @@ class TestOverrides(unittest.TestCase):
self.d.setVar("OVERRIDES", "foo:bar:some_val")
self.assertEqual(self.d.getVar("TEST"), "testvalue3")
def test_remove_with_override(self):
self.d.setVar("TEST_bar", "testvalue2")
self.d.setVar("TEST_some_val", "testvalue3 testvalue5")
self.d.setVar("TEST_some_val_remove", "testvalue3")
self.d.setVar("TEST_foo", "testvalue4")
self.d.setVar("OVERRIDES", "foo:bar:some_val")
self.assertEqual(self.d.getVar("TEST"), " testvalue5")
class TestKeyExpansion(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
@@ -443,6 +464,54 @@ class Contains(unittest.TestCase):
self.assertFalse(bb.utils.contains_any("SOMEFLAG", "x y z", True, False, self.d))
class TaskHash(unittest.TestCase):
def test_taskhashes(self):
def gettask_bashhash(taskname, d):
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]
d = bb.data.init()
d.setVar("__BBTASKS", ["mytask"])
d.setVar("__exportlist", [])
d.setVar("mytask", "${MYCOMMAND}")
d.setVar("MYCOMMAND", "${VAR}; foo; bar; exit 0")
d.setVar("VAR", "val")
orighash = gettask_bashhash("mytask", d)
# Changing a variable should change the hash
d.setVar("VAR", "val2")
nexthash = gettask_bashhash("mytask", d)
self.assertNotEqual(orighash, nexthash)
d.setVar("VAR", "val")
# Adding an inactive removal shouldn't change the hash
d.setVar("BAR", "notbar")
d.setVar("MYCOMMAND_remove", "${BAR}")
nexthash = gettask_bashhash("mytask", d)
self.assertEqual(orighash, nexthash)
# Adding an active removal should change the hash
d.setVar("BAR", "bar;")
nexthash = gettask_bashhash("mytask", d)
self.assertNotEqual(orighash, nexthash)
# Setup an inactive contains()
d.setVar("VAR", "${@bb.utils.contains('VAR2', 'A', 'val', '', d)}")
orighash = gettask_bashhash("mytask", d)
# Activate the contains() and the hash should change
d.setVar("VAR2", "A")
nexthash = gettask_bashhash("mytask", d)
self.assertNotEqual(orighash, nexthash)
# The contains should be inactive but even though VAR2 has a
# different value the hash should match the original
d.setVar("VAR2", "B")
nexthash = gettask_bashhash("mytask", d)
self.assertEqual(orighash, nexthash)
class Serialize(unittest.TestCase):
def test_serialize(self):

View File

@@ -463,6 +463,124 @@ class MirrorUriTest(FetcherTest):
'https://BBBB/B/B/B/bitbake/bitbake-1.0.tar.gz',
'http://AAAA/A/A/A/B/B/bitbake/bitbake-1.0.tar.gz'])
class GitDownloadDirectoryNamingTest(FetcherTest):
def setUp(self):
super(GitDownloadDirectoryNamingTest, self).setUp()
self.recipe_url = "git://git.openembedded.org/bitbake"
self.recipe_dir = "git.openembedded.org.bitbake"
self.mirror_url = "git://github.com/openembedded/bitbake.git"
self.mirror_dir = "github.com.openembedded.bitbake.git"
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
def setup_mirror_rewrite(self):
self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url + " \n")
@skipIfNoNetwork()
def test_that_directory_is_named_after_recipe_url_when_no_mirroring_is_used(self):
self.setup_mirror_rewrite()
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
dir = os.listdir(self.dldir + "/git2")
self.assertIn(self.recipe_dir, dir)
@skipIfNoNetwork()
def test_that_directory_exists_for_mirrored_url_and_recipe_url_when_mirroring_is_used(self):
self.setup_mirror_rewrite()
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
dir = os.listdir(self.dldir + "/git2")
self.assertIn(self.mirror_dir, dir)
self.assertIn(self.recipe_dir, dir)
@skipIfNoNetwork()
def test_that_recipe_directory_and_mirrored_directory_exists_when_mirroring_is_used_and_the_mirrored_directory_already_exists(self):
self.setup_mirror_rewrite()
fetcher = bb.fetch.Fetch([self.mirror_url], self.d)
fetcher.download()
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
dir = os.listdir(self.dldir + "/git2")
self.assertIn(self.mirror_dir, dir)
self.assertIn(self.recipe_dir, dir)
class TarballNamingTest(FetcherTest):
def setUp(self):
super(TarballNamingTest, self).setUp()
self.recipe_url = "git://git.openembedded.org/bitbake"
self.recipe_tarball = "git2_git.openembedded.org.bitbake.tar.gz"
self.mirror_url = "git://github.com/openembedded/bitbake.git"
self.mirror_tarball = "git2_github.com.openembedded.bitbake.git.tar.gz"
self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '1')
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
def setup_mirror_rewrite(self):
self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url + " \n")
@skipIfNoNetwork()
def test_that_the_recipe_tarball_is_created_when_no_mirroring_is_used(self):
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
dir = os.listdir(self.dldir)
self.assertIn(self.recipe_tarball, dir)
@skipIfNoNetwork()
def test_that_the_mirror_tarball_is_created_when_mirroring_is_used(self):
self.setup_mirror_rewrite()
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
dir = os.listdir(self.dldir)
self.assertIn(self.mirror_tarball, dir)
class GitShallowTarballNamingTest(FetcherTest):
def setUp(self):
super(GitShallowTarballNamingTest, self).setUp()
self.recipe_url = "git://git.openembedded.org/bitbake"
self.recipe_tarball = "gitshallow_git.openembedded.org.bitbake_82ea737-1_master.tar.gz"
self.mirror_url = "git://github.com/openembedded/bitbake.git"
self.mirror_tarball = "gitshallow_github.com.openembedded.bitbake.git_82ea737-1_master.tar.gz"
self.d.setVar('BB_GIT_SHALLOW', '1')
self.d.setVar('BB_GENERATE_SHALLOW_TARBALLS', '1')
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
def setup_mirror_rewrite(self):
self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url + " \n")
@skipIfNoNetwork()
def test_that_the_tarball_is_named_after_recipe_url_when_no_mirroring_is_used(self):
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
dir = os.listdir(self.dldir)
self.assertIn(self.recipe_tarball, dir)
@skipIfNoNetwork()
def test_that_the_mirror_tarball_is_created_when_mirroring_is_used(self):
self.setup_mirror_rewrite()
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
dir = os.listdir(self.dldir)
self.assertIn(self.mirror_tarball, dir)
class FetcherLocalTest(FetcherTest):
def setUp(self):
def touch(fn):
@@ -751,27 +869,27 @@ class FetcherNetworkTest(FetcherTest):
self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
@skipIfNoNetwork()
def test_gitfetch_premirror(self):
url1 = "git://git.openembedded.org/bitbake"
url2 = "git://someserver.org/bitbake"
def test_gitfetch_finds_local_tarball_for_mirrored_url_when_previous_downloaded_by_the_recipe_url(self):
recipeurl = "git://git.openembedded.org/bitbake"
mirrorurl = "git://someserver.org/bitbake"
self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
self.gitfetcher(url1, url2)
self.gitfetcher(recipeurl, mirrorurl)
@skipIfNoNetwork()
def test_gitfetch_premirror2(self):
url1 = url2 = "git://someserver.org/bitbake"
def test_gitfetch_finds_local_tarball_when_previous_downloaded_from_a_premirror(self):
recipeurl = "git://someserver.org/bitbake"
self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
self.gitfetcher(url1, url2)
self.gitfetcher(recipeurl, recipeurl)
@skipIfNoNetwork()
def test_gitfetch_premirror3(self):
def test_gitfetch_finds_local_repository_when_premirror_rewrites_the_recipe_url(self):
realurl = "git://git.openembedded.org/bitbake"
dummyurl = "git://someserver.org/bitbake"
recipeurl = "git://someserver.org/bitbake"
self.sourcedir = self.unpackdir.replace("unpacked", "sourcemirror.git")
os.chdir(self.tempdir)
bb.process.run("git clone %s %s 2> /dev/null" % (realurl, self.sourcedir), shell=True)
self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file \n" % (dummyurl, self.sourcedir))
self.gitfetcher(dummyurl, dummyurl)
self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file \n" % (recipeurl, self.sourcedir))
self.gitfetcher(recipeurl, recipeurl)
@skipIfNoNetwork()
def test_git_submodule(self):
@@ -867,12 +985,12 @@ class FetchLatestVersionTest(FetcherTest):
("dtc", "git://git.qemu.org/dtc.git", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "")
: "1.4.0",
# combination version pattern
("sysprof", "git://gitlab.gnome.org/GNOME/sysprof;protocol=https", "cd44ee6644c3641507fb53b8a2a69137f2971219", "")
("sysprof", "git://gitlab.gnome.org/GNOME/sysprof.git;protocol=https", "cd44ee6644c3641507fb53b8a2a69137f2971219", "")
: "1.2.0",
("u-boot-mkimage", "git://git.denx.de/u-boot.git;branch=master;protocol=git", "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c", "")
: "2014.01",
# version pattern "yyyymmdd"
("mobile-broadband-provider-info", "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info;protocol=https", "4ed19e11c2975105b71b956440acdb25d46a347d", "")
("mobile-broadband-provider-info", "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https", "4ed19e11c2975105b71b956440acdb25d46a347d", "")
: "20120614",
# packages with a valid UPSTREAM_CHECK_GITTAGREGEX
("xf86-video-omap", "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap", "ae0394e687f1a77e966cf72f895da91840dffb8f", "(?P<pver>(\d+\.(\d\.?)*))")
@@ -1344,6 +1462,9 @@ class GitShallowTest(FetcherTest):
smdir = os.path.join(self.tempdir, 'gitsubmodule')
bb.utils.mkdirhier(smdir)
self.git('init', cwd=smdir)
# Make this look like it was cloned from a remote...
self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
self.add_empty_file('asub', cwd=smdir)
self.git('submodule init', cwd=self.srcdir)
@@ -1577,3 +1698,30 @@ class GitShallowTest(FetcherTest):
self.assertNotEqual(orig_revs, revs)
self.assertRefs(['master', 'origin/master'])
self.assertRevCount(orig_revs - 1758)
def test_that_unpack_throws_an_error_when_the_git_clone_nor_shallow_tarball_exist(self):
self.add_empty_file('a')
fetcher, ud = self.fetch()
bb.utils.remove(self.gitdir, recurse=True)
bb.utils.remove(self.dldir, recurse=True)
with self.assertRaises(bb.fetch2.UnpackError) as context:
fetcher.unpack(self.d.getVar('WORKDIR'))
self.assertTrue("No up to date source found" in context.exception.msg)
self.assertTrue("clone directory not available or not up to date" in context.exception.msg)
self.assertTrue("shallow clone not enabled or not available" in context.exception.msg)
@skipIfNoNetwork()
def test_that_unpack_does_work_when_using_git_shallow_tarball_but_tarball_is_not_available(self):
self.d.setVar('SRCREV', 'e5939ff608b95cdd4d0ab0e1935781ab9a276ac0')
self.d.setVar('BB_GIT_SHALLOW', '1')
self.d.setVar('BB_GENERATE_SHALLOW_TARBALLS', '1')
fetcher = bb.fetch.Fetch(["git://git.yoctoproject.org/fstests"], self.d)
fetcher.download()
bb.utils.remove(self.dldir + "/*.tar.gz")
fetcher.unpack(self.unpackdir)
dir = os.listdir(self.unpackdir + "/git/")
self.assertIn("fstests.doap", dir)

View File

@@ -44,9 +44,13 @@ C = "3"
"""
def setUp(self):
self.origdir = os.getcwd()
self.d = bb.data.init()
bb.parse.siggen = bb.siggen.init(self.d)
def tearDown(self):
os.chdir(self.origdir)
def parsehelper(self, content, suffix = ".bb"):
f = tempfile.NamedTemporaryFile(suffix = suffix)

View File

@@ -1603,14 +1603,14 @@ class BuildInfoHelper(object):
mockevent.lineno = -1
self.store_log_event(mockevent)
def store_log_event(self, event):
def store_log_event(self, event,cli_backlog=True):
self._ensure_build()
if event.levelno < formatter.WARNING:
return
# early return for CLI builds
if self.brbe is None:
if cli_backlog and self.brbe is None:
if not 'backlog' in self.internal_state:
self.internal_state['backlog'] = []
self.internal_state['backlog'].append(event)
@@ -1622,7 +1622,7 @@ class BuildInfoHelper(object):
tempevent = self.internal_state['backlog'].pop()
logger.debug(1, "buildinfohelper: Saving stored event %s "
% tempevent)
self.store_log_event(tempevent)
self.store_log_event(tempevent,cli_backlog)
else:
logger.info("buildinfohelper: All events saved")
del self.internal_state['backlog']
@@ -1987,7 +1987,8 @@ class BuildInfoHelper(object):
if 'backlog' in self.internal_state:
# we save missed events in the database for the current build
tempevent = self.internal_state['backlog'].pop()
self.store_log_event(tempevent)
# Do not skip command line build events
self.store_log_event(tempevent,False)
if not connection.features.autocommits_when_autocommit_is_off:
transaction.set_autocommit(True)

View File

@@ -103,9 +103,16 @@ class DepExplorer(Gtk.Window):
self.pkg_treeview.get_selection().connect("changed", self.on_cursor_changed)
column = Gtk.TreeViewColumn("Package", Gtk.CellRendererText(), text=COL_PKG_NAME)
self.pkg_treeview.append_column(column)
pane.add1(scrolled)
scrolled.add(self.pkg_treeview)
self.search_entry = Gtk.SearchEntry.new()
self.pkg_treeview.set_search_entry(self.search_entry)
left_panel = Gtk.VPaned()
left_panel.add(self.search_entry)
left_panel.add(scrolled)
pane.add1(left_panel)
box = Gtk.VBox(homogeneous=True, spacing=4)
# Task Depends
@@ -129,6 +136,7 @@ class DepExplorer(Gtk.Window):
pane.add2(box)
self.show_all()
self.search_entry.grab_focus()
def on_package_activated(self, treeview, path, column, data_col):
model = treeview.get_model()

View File

@@ -497,7 +497,11 @@ def lockfile(name, shared=False, retry=True, block=False):
if statinfo.st_ino == statinfo2.st_ino:
return lf
lf.close()
except Exception:
except OSError as e:
if e.errno == errno.EACCES:
logger.error("Unable to acquire lock '%s', %s",
e.strerror, name)
sys.exit(1)
try:
lf.close()
except Exception:

View File

@@ -448,7 +448,7 @@ layerBranches set. If not, they are effectively blank.'''
This function is used to implement debugging and provide the user info.
'''
for lix in self.indexes:
if object not in lix:
if not hasattr(lix, object):
continue
logger.plain ('')
@@ -1046,15 +1046,15 @@ class LayerBranch(LayerIndexItemObj):
self.id = id
self.collection = collection
self.version = version
if type(layer) != type(LayerItem):
self.layer_id = layer
else:
if isinstance(layer, LayerItem):
self.layer = layer
if type(branch) != type(Branch):
self.branch_id = branch
else:
self.layer_id = layer
if isinstance(branch, Branch):
self.branch = branch
else:
self.branch_id = branch
self.vcs_subdir = vcs_subdir
self.vcs_last_fetch = vcs_last_fetch
@@ -1088,7 +1088,7 @@ class LayerBranch(LayerIndexItemObj):
@layer.setter
def layer(self, value):
if type(value) != type(LayerItem):
if not isinstance(value, LayerItem):
raise TypeError('value is not a LayerItem')
if self.index != value.index:
raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1122,7 +1122,7 @@ class LayerBranch(LayerIndexItemObj):
@branch.setter
def branch(self, value):
if type(value) != type(LayerItem):
if not isinstance(value, LayerItem):
raise TypeError('value is not a LayerItem')
if self.index != value.index:
raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1181,7 +1181,7 @@ class LayerIndexItemObj_LayerBranch(LayerIndexItemObj):
@layerbranch.setter
def layerbranch(self, value):
if type(value) != type(LayerBranch):
if not isinstance(value, LayerBranch):
raise TypeError('value (%s) is not a layerBranch' % type(value))
if self.index != value.index:
raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1207,14 +1207,14 @@ class LayerIndexItemObj_LayerBranch(LayerIndexItemObj):
class LayerDependency(LayerIndexItemObj_LayerBranch):
def define_data(self, id, layerbranch, dependency, required=True):
self.id = id
if type(layerbranch) != type(LayerBranch):
self.layerbranch_id = layerbranch
else:
if isinstance(layerbranch, LayerBranch):
self.layerbranch = layerbranch
if type(dependency) != type(LayerDependency):
self.dependency_id = dependency
else:
self.layerbranch_id = layerbranch
if isinstance(dependency, LayerDependency):
self.dependency = dependency
else:
self.dependency_id = dependency
self.required = required
@property
@@ -1240,7 +1240,7 @@ class LayerDependency(LayerIndexItemObj_LayerBranch):
@dependency.setter
def dependency(self, value):
if type(value) != type(LayerDependency):
if not isinstance(value, LayerDependency):
raise TypeError('value (%s) is not a dependency' % type(value))
if self.index != value.index:
raise AttributeError('Object and value do not share the same index and thus key set.')
@@ -1288,10 +1288,10 @@ class Recipe(LayerIndexItemObj_LayerBranch):
self.inherits = inherits
self.updated = updated or datetime.datetime.today().isoformat()
self.blacklisted = blacklisted
if type(layerbranch) != type(LayerBranch):
self.layerbranch_id = layerbranch
else:
if isinstance(layerbranch, LayerBranch):
self.layerbranch = layerbranch
else:
self.layerbranch_id = layerbranch
@property
def fullpath(self):
@@ -1324,10 +1324,10 @@ class Machine(LayerIndexItemObj_LayerBranch):
self.id = id
self.name = name
self.description = description
if type(layerbranch) != type(LayerBranch):
self.layerbranch_id = layerbranch
else:
if isinstance(layerbranch, LayerBranch):
self.layerbranch = layerbranch
else:
self.layerbranch_id = layerbranch
self.updated = updated or datetime.datetime.today().isoformat()
class Distro(LayerIndexItemObj_LayerBranch):
@@ -1337,13 +1337,12 @@ class Distro(LayerIndexItemObj_LayerBranch):
self.id = id
self.name = name
self.description = description
if type(layerbranch) != type(LayerBranch):
self.layerbranch_id = layerbranch
else:
if isinstance(layerbranch, LayerBranch):
self.layerbranch = layerbranch
else:
self.layerbranch_id = layerbranch
self.updated = updated or datetime.datetime.today().isoformat()
# When performing certain actions, we may need to sort the data.
# This will allow us to keep it consistent from run to run.
def sort_entry(item):

View File

@@ -136,10 +136,13 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
layerrev = self._run_command('git rev-parse HEAD', layerpath, default="<unknown>")
for remotes in self._run_command('git remote -v', layerpath, default="").split("\n"):
remote = remotes.split("\t")[1].split(" ")[0]
if "(fetch)" == remotes.split("\t")[1].split(" ")[1]:
layerurl = self._handle_git_remote(remote)
break
if not remotes:
layerurl = self._handle_git_remote(layerpath)
else:
remote = remotes.split("\t")[1].split(" ")[0]
if "(fetch)" == remotes.split("\t")[1].split(" ")[1]:
layerurl = self._handle_git_remote(remote)
break
layerItemId += 1
index.layerItems[layerItemId] = layerindexlib.LayerItem(index, None)
@@ -297,7 +300,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
for layerBranchId in index.layerBranches:
# load_bblayers uses the description to cache the actual path...
machine_path = index.layerBranches[layerBranchId].getDescription()
machine_path = index.layerBranches[layerBranchId].layer.description
machine_path = os.path.join(machine_path, 'conf/machine')
if os.path.isdir(machine_path):
for (dirpath, _, filenames) in os.walk(machine_path):
@@ -310,7 +313,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
machine = layerindexlib.Machine(index, None)
machine.define_data(id=machineId, name=fname[:-5],
description=fname[:-5],
layerbranch=collection_layerbranch[entry])
layerbranch=index.layerBranches[layerBranchId])
index.add_element("machines", [machine])
@@ -321,7 +324,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
for layerBranchId in index.layerBranches:
# load_bblayers uses the description to cache the actual path...
distro_path = index.layerBranches[layerBranchId].getDescription()
distro_path = index.layerBranches[layerBranchId].layer.description
distro_path = os.path.join(distro_path, 'conf/distro')
if os.path.isdir(distro_path):
for (dirpath, _, filenames) in os.walk(distro_path):
@@ -334,7 +337,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
distro = layerindexlib.Distro(index, None)
distro.define_data(id=distroId, name=fname[:-5],
description=fname[:-5],
layerbranch=collection_layerbranch[entry])
layerbranch=index.layerBranches[layerBranchId])
index.add_element("distros", [distro])

View File

@@ -32,7 +32,7 @@ class LayerIndexCookerTest(LayersTest):
# configure the test data. But we can emulate the basics of the layer.conf
# files, so that is what we will do.
new_topdir = os.path.join(os.path.dirname(__file__), "testdata")
new_topdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "testdata")
new_bbpath = os.path.join(new_topdir, "build")
self.d.setVar('TOPDIR', new_topdir)

View File

@@ -23,113 +23,122 @@ from layerindexlib.tests.common import LayersTest
import logging
def skipIfNoNetwork():
if os.environ.get("BB_SKIP_NETTESTS") == "yes":
return unittest.skip("Network tests being skipped")
return lambda f: f
class LayerIndexWebRestApiTest(LayersTest):
if os.environ.get("BB_SKIP_NETTESTS") == "yes":
print("Unset BB_SKIP_NETTESTS to run network tests")
else:
def setUp(self):
LayersTest.setUp(self)
self.layerindex = layerindexlib.LayerIndex(self.d)
self.layerindex.load_layerindex('http://layers.openembedded.org/layerindex/api/;branch=sumo', load=['layerDependencies'])
@skipIfNoNetwork()
def setUp(self):
self.assertFalse(os.environ.get("BB_SKIP_NETTESTS") == "yes", msg="BB_SKIP_NETTESTS set, but we tried to test anyway")
LayersTest.setUp(self)
self.layerindex = layerindexlib.LayerIndex(self.d)
self.layerindex.load_layerindex('http://layers.openembedded.org/layerindex/api/;branch=sumo', load=['layerDependencies'])
def test_layerindex_is_empty(self):
self.assertFalse(self.layerindex.is_empty(), msg="Layerindex is empty")
@skipIfNoNetwork()
def test_layerindex_is_empty(self):
self.assertFalse(self.layerindex.is_empty(), msg="Layerindex is empty")
def test_layerindex_store_file(self):
self.layerindex.store_layerindex('file://%s/file.json' % self.tempdir, self.layerindex.indexes[0])
@skipIfNoNetwork()
def test_layerindex_store_file(self):
self.layerindex.store_layerindex('file://%s/file.json' % self.tempdir, self.layerindex.indexes[0])
self.assertTrue(os.path.isfile('%s/file.json' % self.tempdir), msg="Temporary file was not created by store_layerindex")
self.assertTrue(os.path.isfile('%s/file.json' % self.tempdir), msg="Temporary file was not created by store_layerindex")
reload = layerindexlib.LayerIndex(self.d)
reload.load_layerindex('file://%s/file.json' % self.tempdir)
reload = layerindexlib.LayerIndex(self.d)
reload.load_layerindex('file://%s/file.json' % self.tempdir)
self.assertFalse(reload.is_empty(), msg="Layerindex is empty")
self.assertFalse(reload.is_empty(), msg="Layerindex is empty")
# Calculate layerItems in original index that should NOT be in reload
layerItemNames = []
for itemId in self.layerindex.indexes[0].layerItems:
layerItemNames.append(self.layerindex.indexes[0].layerItems[itemId].name)
# Calculate layerItems in original index that should NOT be in reload
layerItemNames = []
for itemId in self.layerindex.indexes[0].layerItems:
layerItemNames.append(self.layerindex.indexes[0].layerItems[itemId].name)
for layerBranchId in self.layerindex.indexes[0].layerBranches:
layerItemNames.remove(self.layerindex.indexes[0].layerBranches[layerBranchId].layer.name)
for layerBranchId in self.layerindex.indexes[0].layerBranches:
layerItemNames.remove(self.layerindex.indexes[0].layerBranches[layerBranchId].layer.name)
for itemId in reload.indexes[0].layerItems:
self.assertFalse(reload.indexes[0].layerItems[itemId].name in layerItemNames, msg="Item reloaded when it shouldn't have been")
for itemId in reload.indexes[0].layerItems:
self.assertFalse(reload.indexes[0].layerItems[itemId].name in layerItemNames, msg="Item reloaded when it shouldn't have been")
# Compare the original to what we wrote...
for type in self.layerindex.indexes[0]._index:
if type == 'apilinks' or \
type == 'layerItems' or \
type in self.layerindex.indexes[0].config['local']:
continue
for id in getattr(self.layerindex.indexes[0], type):
self.logger.debug(1, "type %s" % (type))
# Compare the original to what we wrote...
for type in self.layerindex.indexes[0]._index:
if type == 'apilinks' or \
type == 'layerItems' or \
type in self.layerindex.indexes[0].config['local']:
continue
for id in getattr(self.layerindex.indexes[0], type):
self.logger.debug(1, "type %s" % (type))
self.assertTrue(id in getattr(reload.indexes[0], type), msg="Id number not in reloaded index")
self.assertTrue(id in getattr(reload.indexes[0], type), msg="Id number not in reloaded index")
self.logger.debug(1, "%s ? %s" % (getattr(self.layerindex.indexes[0], type)[id], getattr(reload.indexes[0], type)[id]))
self.logger.debug(1, "%s ? %s" % (getattr(self.layerindex.indexes[0], type)[id], getattr(reload.indexes[0], type)[id]))
self.assertEqual(getattr(self.layerindex.indexes[0], type)[id], getattr(reload.indexes[0], type)[id], msg="Reloaded contents different")
self.assertEqual(getattr(self.layerindex.indexes[0], type)[id], getattr(reload.indexes[0], type)[id], msg="Reloaded contents different")
def test_layerindex_store_split(self):
self.layerindex.store_layerindex('file://%s' % self.tempdir, self.layerindex.indexes[0])
@skipIfNoNetwork()
def test_layerindex_store_split(self):
self.layerindex.store_layerindex('file://%s' % self.tempdir, self.layerindex.indexes[0])
reload = layerindexlib.LayerIndex(self.d)
reload.load_layerindex('file://%s' % self.tempdir)
reload = layerindexlib.LayerIndex(self.d)
reload.load_layerindex('file://%s' % self.tempdir)
self.assertFalse(reload.is_empty(), msg="Layer index is empty")
self.assertFalse(reload.is_empty(), msg="Layer index is empty")
for type in self.layerindex.indexes[0]._index:
if type == 'apilinks' or \
type == 'layerItems' or \
type in self.layerindex.indexes[0].config['local']:
continue
for id in getattr(self.layerindex.indexes[0] ,type):
self.logger.debug(1, "type %s" % (type))
for type in self.layerindex.indexes[0]._index:
if type == 'apilinks' or \
type == 'layerItems' or \
type in self.layerindex.indexes[0].config['local']:
continue
for id in getattr(self.layerindex.indexes[0] ,type):
self.logger.debug(1, "type %s" % (type))
self.assertTrue(id in getattr(reload.indexes[0], type), msg="Id number missing from reloaded data")
self.assertTrue(id in getattr(reload.indexes[0], type), msg="Id number missing from reloaded data")
self.logger.debug(1, "%s ? %s" % (getattr(self.layerindex.indexes[0] ,type)[id], getattr(reload.indexes[0], type)[id]))
self.logger.debug(1, "%s ? %s" % (getattr(self.layerindex.indexes[0] ,type)[id], getattr(reload.indexes[0], type)[id]))
self.assertEqual(getattr(self.layerindex.indexes[0] ,type)[id], getattr(reload.indexes[0], type)[id], msg="reloaded data does not match original")
self.assertEqual(getattr(self.layerindex.indexes[0] ,type)[id], getattr(reload.indexes[0], type)[id], msg="reloaded data does not match original")
def test_dependency_resolution(self):
# Verify depth first searching...
(dependencies, invalidnames) = self.layerindex.find_dependencies(names=['meta-python'])
@skipIfNoNetwork()
def test_dependency_resolution(self):
# Verify depth first searching...
(dependencies, invalidnames) = self.layerindex.find_dependencies(names=['meta-python'])
first = True
for deplayerbranch in dependencies:
layerBranch = dependencies[deplayerbranch][0]
layerDeps = dependencies[deplayerbranch][1:]
first = True
for deplayerbranch in dependencies:
layerBranch = dependencies[deplayerbranch][0]
layerDeps = dependencies[deplayerbranch][1:]
if not first:
continue
if not first:
continue
first = False
first = False
# Top of the deps should be openembedded-core, since everything depends on it.
self.assertEqual(layerBranch.layer.name, "openembedded-core", msg='OpenEmbedded-Core is no the first dependency')
# Top of the deps should be openembedded-core, since everything depends on it.
self.assertEqual(layerBranch.layer.name, "openembedded-core", msg='OpenEmbedded-Core is no the first dependency')
# meta-python should cause an openembedded-core dependency, if not assert!
for dep in layerDeps:
if dep.layer.name == 'meta-python':
break
else:
self.logger.debug(1, "meta-python was not found")
self.assetTrue(False)
# Only check the first element...
break
# meta-python should cause an openembedded-core dependency, if not assert!
for dep in layerDeps:
if dep.layer.name == 'meta-python':
break
else:
# Empty list, this is bad.
self.logger.debug(1, "Empty list of dependencies")
self.assertIsNotNone(first, msg="Empty list of dependencies")
self.logger.debug(1, "meta-python was not found")
self.assetTrue(False)
# Last dep should be the requested item
layerBranch = dependencies[deplayerbranch][0]
self.assertEqual(layerBranch.layer.name, "meta-python", msg="Last dependency not meta-python")
# Only check the first element...
break
else:
# Empty list, this is bad.
self.logger.debug(1, "Empty list of dependencies")
self.assertIsNotNone(first, msg="Empty list of dependencies")
# Last dep should be the requested item
layerBranch = dependencies[deplayerbranch][0]
self.assertEqual(layerBranch.layer.name, "meta-python", msg="Last dependency not meta-python")
@skipIfNoNetwork()
def test_find_collection(self):
def _check(collection, expected):
self.logger.debug(1, "Looking for collection %s..." % collection)
@@ -149,6 +158,7 @@ class LayerIndexWebRestApiTest(LayersTest):
for collection,result in tests:
_check(collection, result)
@skipIfNoNetwork()
def test_find_layerbranch(self):
def _check(name, expected):
self.logger.debug(1, "Looking for layerbranch %s..." % name)

View File

@@ -177,8 +177,11 @@ class LocalhostBEController(BuildEnvironmentController):
try:
localremotes = self._shellcmd("git remote -v",
localdirname,env=git_env)
if not giturl in localremotes and commit != 'HEAD':
raise BuildSetupException("Existing git repository at %s, but with different remotes ('%s', expected '%s'). Toaster will not continue out of fear of damaging something." % (localdirname, ", ".join(localremotes.split("\n")), giturl))
# NOTE: this nice-to-have check breaks when using git remaping to get past firewall
# Re-enable later with .gitconfig remapping checks
#if not giturl in localremotes and commit != 'HEAD':
# raise BuildSetupException("Existing git repository at %s, but with different remotes ('%s', expected '%s'). Toaster will not continue out of fear of damaging something." % (localdirname, ", ".join(localremotes.split("\n")), giturl))
pass
except ShellCmdException:
# our localdirname might not be a git repository
#- that's fine

View File

@@ -23,14 +23,14 @@
<field type="CharField" name="branch">master</field>
</object>
<object model="orm.bitbakeversion" pk="4">
<field type="CharField" name="name">rocko</field>
<field type="CharField" name="name">thud</field>
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
<field type="CharField" name="branch">1.36</field>
<field type="CharField" name="branch">1.40</field>
</object>
<!-- Releases available -->
<object model="orm.release" pk="1">
<field type="CharField" name="name">rocko</field>
<field type="CharField" name="name">sumo</field>
<field type="CharField" name="description">Openembedded Sumo</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
<field type="CharField" name="branch_name">sumo</field>
@@ -51,11 +51,11 @@
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"http://cgit.openembedded.org/openembedded-core/log/\"&gt;OpenEmbedded master&lt;/a&gt; branch.</field>
</object>
<object model="orm.release" pk="4">
<field type="CharField" name="name">rocko</field>
<field type="CharField" name="name">thud</field>
<field type="CharField" name="description">Openembedded Rocko</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
<field type="CharField" name="branch_name">rocko</field>
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=rocko\"&gt;OpenEmbedded Rocko&lt;/a&gt; branch.</field>
<field type="CharField" name="branch_name">thud</field>
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=thud\"&gt;OpenEmbedded Thud&lt;/a&gt; branch.</field>
</object>
<!-- Default layers for each release -->

View File

@@ -26,9 +26,9 @@
<field type="CharField" name="dirpath">bitbake</field>
</object>
<object model="orm.bitbakeversion" pk="4">
<field type="CharField" name="name">rocko</field>
<field type="CharField" name="name">thud</field>
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
<field type="CharField" name="branch">rocko</field>
<field type="CharField" name="branch">thud</field>
<field type="CharField" name="dirpath">bitbake</field>
</object>
@@ -57,10 +57,10 @@
</object>
<object model="orm.release" pk="4">
<field type="CharField" name="name">rocko</field>
<field type="CharField" name="description">Yocto Project 2.4 "Rocko"</field>
<field type="CharField" name="description">Yocto Project 2.6 "Thud"</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
<field type="CharField" name="branch_name">rocko</field>
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=rocko"&gt;Yocto Project Rocko branch&lt;/a&gt;.</field>
<field type="CharField" name="branch_name">thud</field>
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=thud"&gt;Yocto Project Thud branch&lt;/a&gt;.</field>
</object>
<!-- Default project layers for each release -->

View File

@@ -1750,8 +1750,8 @@ class CustomImageRecipe(Recipe):
if base_recipe_path:
base_recipe = open(base_recipe_path, 'r').read()
else:
raise IOError("Based on recipe file not found: %s" %
base_recipe_path)
# Pass back None to trigger error message to user
return None
# Add a special case for when the recipe we have based a custom image
# recipe on requires another recipe.
@@ -1877,7 +1877,7 @@ class Distro(models.Model):
description = models.CharField(max_length=255)
def get_vcs_distro_file_link_url(self):
path = self.name+'.conf'
path = 'conf/distro/%s.conf' % self.name
return self.layer_version.get_vcs_file_link_url(path)
def __unicode__(self):

View File

@@ -677,7 +677,13 @@ class XhrCustomRecipe(View):
recipe_path = os.path.join(layerpath, "recipes", "%s.bb" %
recipe.name)
with open(recipe_path, "w") as recipef:
recipef.write(recipe.generate_recipe_file_contents())
content = recipe.generate_recipe_file_contents()
if not content:
# Delete this incomplete image recipe object
recipe.delete()
return error_response("recipe-parent-not-exist")
else:
recipef.write(recipe.generate_recipe_file_contents())
return JsonResponse(
{"error": "ok",

View File

@@ -275,7 +275,8 @@ var libtoaster = (function () {
function _addRmLayer(layerObj, add, doneCb){
if (layerObj.xhrLayerUrl === undefined){
throw("xhrLayerUrl is undefined")
alert("ERROR: missing xhrLayerUrl object. Please file a bug.");
return;
}
if (add === true) {

View File

@@ -25,6 +25,8 @@ function newCustomImageModalInit(){
var duplicateNameMsg = "An image with this name already exists. Image names must be unique.";
var duplicateImageInProjectMsg = "An image with this name already exists in this project."
var invalidBaseRecipeIdMsg = "Please select an image to customise.";
var missingParentRecipe = "The parent recipe file was not found. Cancel this action, build any target (like 'quilt-native') to force all new layers to clone, and try again";
var unknownError = "Unexpected error: ";
// set button to "submit" state and enable text entry so user can
// enter the custom recipe name
@@ -62,6 +64,7 @@ function newCustomImageModalInit(){
if (nameInput.val().length > 0) {
libtoaster.createCustomRecipe(nameInput.val(), baseRecipeId,
function(ret) {
showSubmitState();
if (ret.error !== "ok") {
console.warn(ret.error);
if (ret.error === "invalid-name") {
@@ -73,6 +76,10 @@ function newCustomImageModalInit(){
} else if (ret.error === "image-already-exists") {
showNameError(duplicateImageInProjectMsg);
return;
} else if (ret.error === "recipe-parent-not-exist") {
showNameError(missingParentRecipe);
} else {
showNameError(unknownError + ret.error);
}
} else {
imgCustomModal.modal('hide');

View File

@@ -1615,14 +1615,12 @@ class DistrosTable(ToasterTable):
hidden=True,
field_name="layer_version__get_vcs_reference")
wrtemplate_file_template = '''<code>conf/machine/{{data.name}}.conf</code>
<a href="{{data.get_vcs_machine_file_link_url}}" target="_blank"><span class="glyphicon glyphicon-new-window"></i></a>'''
distro_file_template = '''<code>conf/distro/{{data.name}}.conf</code>
{% if 'None' not in data.get_vcs_distro_file_link_url %}<a href="{{data.get_vcs_distro_file_link_url}}" target="_blank"><span class="glyphicon glyphicon-new-window"></i></a>{% endif %}'''
self.add_column(title="Distro file",
hidden=True,
static_data_name="templatefile",
static_data_template=wrtemplate_file_template)
static_data_template=distro_file_template)
self.add_column(title="Select",
help_text="Sets the selected distro to the project",

View File

@@ -5,7 +5,11 @@
>
Customise
</button>
<button class="btn btn-default btn-block layer-add-{{data.layer_version.pk}} layerbtn" data-layer='{ "id": {{data.layer_version.pk}}, "name": "{{data.layer_version.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.pk%}"}' data-directive="add"
<button class="btn btn-default btn-block layer-add-{{data.layer_version.pk}} layerbtn"
data-layer='{ "id": {{data.layer_version.pk}}, "name": "{{data.layer_version.layer.name}}",
"layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.pk%}",
"xhrLayerUrl": "{% url "xhr_layer" extra.pid data.layer_version.pk %}"}'
data-directive="add"
{% if data.layer_version.pk in extra.current_layers %}
style="display:none;"
{% endif %}

View File

@@ -55,6 +55,7 @@ import os
import re
import os.path
import subprocess
import shutil
# Toaster variable section delimiters
TOASTER_PROLOG = '#=== TOASTER_CONFIG_PROLOG ==='

View File

@@ -1,3 +1,3 @@
Django>1.8,<1.11.9
Django>1.8,<1.12
beautifulsoup4>=4.4.0
pytz

View File

@@ -189,8 +189,8 @@
<ulink url='&YOCTO_WIKI_URL;/wiki/Releases'>Yocto Project</ulink>
releases for which the current version is
compatible.
This variable is a good way to indicate how
up-to-date your particular layer is.
This variable is a good way to indicate if
your particular layer is current.
</para></listitem>
</itemizedlist>
</para></listitem>

View File

@@ -8,7 +8,7 @@
<!ENTITY YOCTO_DOC_VERSION_MINUS_ONE "2.5">
<!ENTITY DISTRO_REL_TAG "yocto-2.6">
<!ENTITY METAINTELVERSION "9.0">
<!ENTITY REL_MONTH_YEAR "TBD">
<!ENTITY REL_MONTH_YEAR "October 2018">
<!ENTITY META_INTEL_REL_TAG "&METAINTELVERSION;-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;">
<!ENTITY POKYVERSION "21.0.0">
<!ENTITY POKYVERSION_COMPRESSED "2100">

View File

@@ -92,7 +92,9 @@
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
</literallayout>
Additionally, in order to generate the right type of
debuginfo, we also need to add the following to local.conf:
debuginfo, we also need to set
<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></ulink>
in the <filename>local.conf</filename> file:
<literallayout class='monospaced'>
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
</literallayout>

View File

@@ -375,7 +375,9 @@
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
</literallayout>
Additionally, in order to generate the type of debuginfo that
perf understands, we also need to add the following to local.conf:
perf understands, we also need to set
<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></ulink>
in the <filename>local.conf</filename> file:
<literallayout class='monospaced'>
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
</literallayout>

View File

@@ -2173,8 +2173,9 @@ This check was removed for YP 2.3 release
<para>
The <filename>native</filename> class provides common
functionality for recipes that wish to build tools to run on the build
host (i.e. tools that use the compiler or other tools from the
functionality for recipes that build tools to run on the
<link linkend='hardware-build-system-term'>build host</link>
(i.e. tools that use the compiler or other tools from the
build host).
</para>
@@ -2182,30 +2183,35 @@ This check was removed for YP 2.3 release
You can create a recipe that builds tools that run natively on the
host a couple different ways:
<itemizedlist>
<listitem><para>Create a <replaceable>myrecipe</replaceable><filename>-native.bb</filename>
that inherits the <filename>native</filename> class.
<listitem><para>
Create a
<replaceable>myrecipe</replaceable><filename>-native.bb</filename>
recipe that inherits the <filename>native</filename> class.
If you use this method, you must order the inherit statement
in the recipe after all other inherit statements so that the
<filename>native</filename> class is inherited last.
<note><title>Warning</title>
When creating a recipe this way, the recipe name must
follow this naming convention:
<literallayout class='monospaced'>
<replaceable>myrecipe</replaceable>-native.bb
</literallayout>
Not using this naming convention can lead to subtle
problems caused by existing code that depends on that
naming convention.
</note>
</para></listitem>
<listitem><para>Create or modify a target recipe that contains
the following:
<listitem><para>
Create or modify a target recipe that contains the following:
<literallayout class='monospaced'>
<link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link> = "native"
</literallayout>
Inside the recipe, use <filename>_class-native</filename> and
<filename>_class-target</filename> overrides to specify any
functionality specific to the respective native or target
case.</para></listitem>
case.
</para></listitem>
</itemizedlist>
<note><title>Warning</title>
When creating a recipe, you must follow this naming convention:
<literallayout class='monospaced'>
native-<replaceable>myrecipe</replaceable>.bb
</literallayout>
Not doing so can lead to subtle problems because code exists
that depends on the naming convention.
</note>
</para>
<para>

View File

@@ -29,11 +29,31 @@
information in the similarly-named recipe file.
For an example of an append file in use, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>"
section in the Yocto Project Development Tasks Manual.
<note>
Append files can also use wildcard patterns in their
version numbers so they can be applied to more than one
version of the underlying recipe file.
section in the Yocto Project Development Tasks Manual.</para>
<para>When you name an append file, you can use the
"<filename>%</filename>" wildcard character to allow for
matching recipe names.
For example, suppose you have an append file named as follows:
<literallayout class='monospaced'>
busybox_1.21.%.bbappend
</literallayout>
That append file would match any
<filename>busybox_1.21.</filename><replaceable>x</replaceable><filename>.bb</filename>
version of the recipe.
So, the append file would match the following recipe names:
<literallayout class='monospaced'>
busybox_1.21.1.bb
busybox_1.21.2.bb
busybox_1.21.3.bb
</literallayout>
<note><title>Important</title>
The use of the "<filename>%</filename>" character
is limited in that it only works directly in front of the
<filename>.bbappend</filename> portion of the append file's
name.
You cannot use the wildcard character in any other
location of the name.
</note>
</para></listitem>
<listitem><para id='bitbake-term'>

View File

@@ -679,6 +679,13 @@
<literallayout class='monospaced'>
BB_ALLOWED_NETWORKS = "*.gnu.org"
</literallayout>
<note><title>Important</title>
The use of the "<filename>*</filename>"
character only works at the beginning of
a host name.
You cannot use the wildcard character in any
other location of the name.
</note>
</para></listitem>
<listitem><para>
Mirrors not in the host list are skipped and
@@ -1133,12 +1140,22 @@
<glossentry id='var-BBFILES'><glossterm>BBFILES</glossterm>
<info>
BBFILES[doc] = "List of recipe files used by BitBake to build software."
BBFILES[doc] = "A space-separated list of recipe files BitBake uses to build software."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
List of recipe files used by BitBake to build software.
A space-separated list of recipe files BitBake uses to
build software.
</para>
<para>
When specifying recipe files, you can pattern match using
Python's
<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>
syntax.
For details on the syntax, see the documentation by
following the previous link.
</para>
</glossdef>
</glossentry>
@@ -1267,15 +1284,19 @@
match any of the expressions.
It is as if BitBake does not see them at all.
Consequently, matching files are not parsed or otherwise
used by BitBake.</para>
used by BitBake.
</para>
<para>
The values you provide are passed to Python's regular
expression compiler.
Consequently, the syntax follows Python's Regular
Expression (re) syntax.
The expressions are compared against the full paths to
the files.
For complete syntax information, see Python's
documentation for the appropriate release at
<ulink url='http://docs.python.org/release/'></ulink>.
documentation at
<ulink url='http://docs.python.org/release/2.3/lib/re-syntax.html'></ulink>.
</para>
<para>
@@ -1443,6 +1464,17 @@
set up during compilation so that they are correct for
use when installed into the sysroot and called by the
build processes of other recipes.
<note>
The <filename>BINCONFIG_GLOB</filename> variable
uses
<ulink url='http://tldp.org/LDP/abs/html/globbingref.html'>shell globbing</ulink>,
which is recognition and expansion of wildcards during
pattern matching.
Shell globbing is very similar to
<ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>
and
<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>.
</note>
</para>
<para>
@@ -2366,6 +2398,14 @@
Defines wildcards to match when installing a list of
complementary packages for all the packages explicitly
(or implicitly) installed in an image.
<note>
The <filename>COMPLEMENTARY_GLOB</filename> variable
uses Unix filename pattern matching
(<ulink url='https://docs.python.org/2/library/fnmatch.html#module-fnmatch'><filename>fnmatch</filename></ulink>),
which is similar to the Unix style pathname pattern
expansion
(<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>).
</note>
The resulting list of complementary packages is associated
with an item that can be added to
<link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
@@ -4782,23 +4822,38 @@
<literallayout class='monospaced'>
FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
</literallayout>
<note><title>Notes</title>
<itemizedlist>
<listitem><para>
When specifying files or paths, you can pattern
match using Python's
<ulink url='https://docs.python.org/2/library/glob.html'><filename>glob</filename></ulink>
syntax.
For details on the syntax, see the
documentation by following the previous link.
</para></listitem>
<listitem><para>
When specifying paths as part of the
<filename>FILES</filename> variable, it is
good practice to use appropriate path
variables.
For example, use <filename>${sysconfdir}</filename>
rather than <filename>/etc</filename>, or
<filename>${bindir}</filename> rather than
<filename>/usr/bin</filename>.
You can find a list of these variables at the
top of the
<filename>meta/conf/bitbake.conf</filename>
file in the
<link linkend='source-directory'>Source Directory</link>.
You will also find the default values of the
various <filename>FILES_*</filename> variables
in this file.
</para></listitem>
</itemizedlist>
</note>
</para>
<note>
When specifying paths as part of the
<filename>FILES</filename> variable, it is good practice
to use appropriate path variables.
For example, use <filename>${sysconfdir}</filename> rather
than <filename>/etc</filename>, or
<filename>${bindir}</filename> rather than
<filename>/usr/bin</filename>.
You can find a list of these variables at the top of the
<filename>meta/conf/bitbake.conf</filename> file in the
<link linkend='source-directory'>Source Directory</link>.
You will also find the default values of the various
<filename>FILES_*</filename> variables in this file.
</note>
<para>
If some of the files you provide with the
<filename>FILES</filename> variable are editable and you
@@ -9646,6 +9701,12 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
".debug" previously described with the exception
that no source files are installed.
</para></listitem>.
<listitem><para>
"debug-with-srcpkg": The same behavior as
".debug" previously described with the exception
that all source files are placed in a separate
<filename>*-src</filename> pkg.
</para></listitem>
</itemizedlist>
</para>
@@ -10929,47 +10990,63 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
If there are multiple versions of recipes available, this
variable determines which recipe should be given preference.
If multiple versions of recipes exist, this
variable determines which version is given preference.
You must always suffix the variable with the
<link linkend='var-PN'><filename>PN</filename></link>
you want to select, and you should set the
<link linkend='var-PV'><filename>PV</filename></link>
accordingly for precedence.
You can use the "<filename>%</filename>" character as a
wildcard to match any number of characters, which can be
useful when specifying versions that contain long revision
numbers that could potentially change.
</para>
<para>
The <filename>PREFERRED_VERSION</filename> variable
supports limited wildcard use through the
"<filename>%</filename>" character.
You can use the character to match any number of
characters, which can be useful when specifying versions
that contain long revision numbers that potentially change.
Here are two examples:
<literallayout class='monospaced'>
PREFERRED_VERSION_python = "3.4.0"
PREFERRED_VERSION_linux-yocto = "4.12%"
</literallayout>
<note>
The specified version is matched against
<link linkend='var-PV'><filename>PV</filename></link>,
which does not necessarily match the version part of
the recipe's filename.
For example, consider two recipes
<filename>foo_1.2.bb</filename> and
<filename>foo_git.bb</filename> where
<filename>foo_git.bb</filename> contains the following
assignment:
<literallayout class='monospaced'>
PV = "1.1+git${SRCPV}"
</literallayout>
In this case, the correct way to select
<filename>foo_git.bb</filename> is by using an
assignment such as the following:
<literallayout class='monospaced'>
PREFERRED_VERSION_foo = "1.1+git%"
</literallayout>
Compare that previous example against the following
incorrect example, which does not work:
<literallayout class='monospaced'>
PREFERRED_VERSION_foo = "git"
</literallayout>
<note><title>Important</title>
The use of the "<filename>%</filename>" character
is limited in that it only works at the end of the
string.
You cannot use the wildcard character in any other
location of the string.
</note>
</para>
<para>
The specified version is matched against
<link linkend='var-PV'><filename>PV</filename></link>,
which does not necessarily match the version part of
the recipe's filename.
For example, consider two recipes
<filename>foo_1.2.bb</filename> and
<filename>foo_git.bb</filename> where
<filename>foo_git.bb</filename> contains the following
assignment:
<literallayout class='monospaced'>
PV = "1.1+git${SRCPV}"
</literallayout>
In this case, the correct way to select
<filename>foo_git.bb</filename> is by using an
assignment such as the following:
<literallayout class='monospaced'>
PREFERRED_VERSION_foo = "1.1+git%"
</literallayout>
Compare that previous example against the following
incorrect example, which does not work:
<literallayout class='monospaced'>
PREFERRED_VERSION_foo = "git"
</literallayout>
</para>
<para>
Sometimes the <filename>PREFERRED_VERSION</filename>
variable can be set by configuration files in a way that
is hard to change.

View File

@@ -59,6 +59,11 @@
# NOTE: If removing en_US.UTF-8 you will also need to uncomment, and set
# appropriate value for IMAGE_LINGUAS.
# WARNING: this may break localisation!
# WARNING: some recipes expect certain localizations to be enabled, e.g.
# bash-ptest: fr-fr, de-de
# glib-2.0-ptest: tr-tr, lt-lt, ja-jp.euc-jp, fa-ir, ru-ru, de-de, hr-hr, el-gr, fr-fr, es-es, en-gb
# if you remove some of these and enable ptest, you'll get QA warning like:
# ERROR: glib-2.0-1_2.58.0-r0 do_package_qa: QA Issue: glib-2.0-ptest rdepends on locale-base-de-de, but it isn't a build dependency? [build-deps]
#GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
#IMAGE_LINGUAS ?= "en-gb"

View File

@@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "selftest"
BBFILE_PATTERN_selftest = "^${LAYERDIR}/"
BBFILE_PRIORITY_selftest = "5"
LAYERSERIES_COMPAT_selftest = "sumo"
LAYERSERIES_COMPAT_selftest = "thud"

View File

@@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1"
LAYERDEPENDS_skeleton = "core"
LAYERSERIES_COMPAT_skeleton = "sumo"
LAYERSERIES_COMPAT_skeleton = "thud"

View File

@@ -8,11 +8,11 @@ KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
KMACHINE_beaglebone-yocto ?= "beaglebone"
SRCREV_machine_genericx86 ?= "78a16a4d8cfd58f91be412797aac248e811d083b"
SRCREV_machine_genericx86-64 ?= "78a16a4d8cfd58f91be412797aac248e811d083b"
SRCREV_machine_edgerouter ?= "04043b48eb792c8baa310840307d480a28a43053"
SRCREV_machine_beaglebone-yocto ?= "d62ddfa26a59c83f6128790b7aa2baadc04d2960"
SRCREV_machine_mpc8315e-rdb ?= "80a106ecf737b69864e07b955eccb62f809cf120"
SRCREV_machine_genericx86 ?= "2c5caa7e84311f2a0097974a697ac1f59030530e"
SRCREV_machine_genericx86-64 ?= "2c5caa7e84311f2a0097974a697ac1f59030530e"
SRCREV_machine_edgerouter ?= "e06bfa18c727bd0e6e10cf26d9f161e4c791f52b"
SRCREV_machine_beaglebone-yocto ?= "b8805de77dcf8f59d8368fee4921c146c1300a6a"
SRCREV_machine_mpc8315e-rdb ?= "f88e87360b10f8fbd853a7d412982e6620f3f96d"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
@@ -20,8 +20,8 @@ COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
LINUX_VERSION_genericx86 = "4.14.71"
LINUX_VERSION_genericx86-64 = "4.14.71"
LINUX_VERSION_edgerouter = "4.14.48"
LINUX_VERSION_beaglebone-yocto = "4.14.48"
LINUX_VERSION_mpc8315e-rdb = "4.14.48"
LINUX_VERSION_genericx86 = "4.14.76"
LINUX_VERSION_genericx86-64 = "4.14.76"
LINUX_VERSION_edgerouter = "4.14.71"
LINUX_VERSION_beaglebone-yocto = "4.14.71"
LINUX_VERSION_mpc8315e-rdb = "4.14.71"

View File

@@ -8,11 +8,11 @@ KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
KMACHINE_beaglebone-yocto ?= "beaglebone"
SRCREV_machine_genericx86 ?= "0cdc8564c61958a39704d97e008120bd7c762f60"
SRCREV_machine_genericx86-64 ?= "0cdc8564c61958a39704d97e008120bd7c762f60"
SRCREV_machine_edgerouter ?= "eba03655e8e436ef6090100423bcea43e4911478"
SRCREV_machine_beaglebone-yocto ?= "eba03655e8e436ef6090100423bcea43e4911478"
SRCREV_machine_mpc8315e-rdb ?= "193513391ec14cb5402fcc4ed7bb2b49193842bb"
SRCREV_machine_genericx86 ?= "33859b3077c83d8a024946ba06a59990546fcbc7"
SRCREV_machine_genericx86-64 ?= "33859b3077c83d8a024946ba06a59990546fcbc7"
SRCREV_machine_edgerouter ?= "0cdc8564c61958a39704d97e008120bd7c762f60"
SRCREV_machine_beaglebone-yocto ?= "0cdc8564c61958a39704d97e008120bd7c762f60"
SRCREV_machine_mpc8315e-rdb ?= "20be2231bb047b02248d7f965c1c3af0c6be3a5e"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
@@ -20,8 +20,8 @@ COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
LINUX_VERSION_genericx86 = "4.18.9"
LINUX_VERSION_genericx86-64 = "4.18.9"
LINUX_VERSION_edgerouter = "4.18.3"
LINUX_VERSION_beaglebone-yocto = "4.18.3"
LINUX_VERSION_mpc8315e-rdb = "4.18.3"
LINUX_VERSION_genericx86 = "4.18.14"
LINUX_VERSION_genericx86-64 = "4.18.14"
LINUX_VERSION_edgerouter = "4.18.9"
LINUX_VERSION_beaglebone-yocto = "4.18.9"
LINUX_VERSION_mpc8315e-rdb = "4.18.9"

View File

@@ -98,9 +98,12 @@ 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"
if pn.startswith("gcc-source-"):
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)
else:
elif hasTask("do_configure"):
d.appendVarFlag('do_ar_configured', 'depends', ' %s:do_configure' % pn)
d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_ar_configured' % pn)
@@ -243,21 +246,26 @@ python do_ar_configured() {
# do_configure, we archive the already configured ${S} to
# instead of.
elif pn != 'libtool-native':
def runTask(task):
prefuncs = d.getVarFlag(task, 'prefuncs') or ''
for func in prefuncs.split():
if func != "sysroot_cleansstate":
bb.build.exec_func(func, d)
bb.build.exec_func(task, d)
postfuncs = d.getVarFlag(task, 'postfuncs') or ''
for func in postfuncs.split():
if func != 'do_qa_configure':
bb.build.exec_func(func, d)
# Change the WORKDIR to make do_configure run in another dir.
d.setVar('WORKDIR', d.getVar('ARCHIVER_WORKDIR'))
if bb.data.inherits_class('kernel-yocto', d):
bb.build.exec_func('do_kernel_configme', d)
if bb.data.inherits_class('cmake', d):
bb.build.exec_func('do_generate_toolchain_file', d)
prefuncs = d.getVarFlag('do_configure', 'prefuncs')
for func in (prefuncs or '').split():
if func != "sysroot_cleansstate":
bb.build.exec_func(func, d)
bb.build.exec_func('do_configure', d)
postfuncs = d.getVarFlag('do_configure', 'postfuncs')
for func in (postfuncs or '').split():
if func != "do_qa_configure":
bb.build.exec_func(func, d)
preceeds = bb.build.preceedtask('do_configure', False, d)
for task in preceeds:
if task != 'do_patch' and task != 'do_prepare_recipe_sysroot':
runTask(task)
runTask('do_configure')
srcdir = d.getVar('S')
builddir = d.getVar('B')
if srcdir != builddir:

View File

@@ -183,14 +183,14 @@ python devtool_post_patch() {
extra_overrides = d.getVar('DEVTOOL_EXTRA_OVERRIDES')
if extra_overrides:
extra_override_list = extra_overrides.split(':')
extra_overrides = set(extra_overrides.split(':'))
devbranch = d.getVar('DEVTOOL_DEVBRANCH')
default_overrides = d.getVar('OVERRIDES').split(':')
no_overrides = []
# First, we may have some overrides that are referred to in the recipe set in
# our configuration, so we need to make a branch that excludes those
for override in default_overrides:
if override not in extra_override_list:
if override not in extra_overrides:
no_overrides.append(override)
if default_overrides != no_overrides:
# Some overrides are active in the current configuration, so
@@ -208,7 +208,7 @@ python devtool_post_patch() {
else:
bb.process.run('git checkout %s -b devtool-no-overrides' % devbranch, cwd=srcsubdir)
for override in extra_override_list:
for override in extra_overrides:
localdata = bb.data.createCopy(d)
if override in default_overrides:
bb.process.run('git branch devtool-override-%s %s' % (override, devbranch), cwd=srcsubdir)

View File

@@ -41,8 +41,8 @@ python () {
# re-parsed so that the file-checksums function for do_compile is run every
# time.
bpn = d.getVar('BPN')
if bpn == d.getVar('PN'):
classextend = (d.getVar('BBCLASSEXTEND') or '').split()
classextend = (d.getVar('BBCLASSEXTEND') or '').split()
if bpn == d.getVar('PN') or not classextend:
if (externalsrc or
('native' in classextend and
d.getVar('EXTERNALSRC_pn-%s-native' % bpn)) or

View File

@@ -179,3 +179,13 @@ FILES_${PN}-staticdev = "${libdir}/go/pkg"
INSANE_SKIP_${PN} += "ldflags"
INSANE_SKIP_${PN}-ptest += "ldflags"
# Add -buildmode=pie to GOBUILDFLAGS to satisfy "textrel" QA checking, but mips
# doesn't support -buildmode=pie, so skip the QA checking for mips and its
# variants.
python() {
if 'mips' in d.getVar('TARGET_ARCH'):
d.appendVar('INSANE_SKIP_%s' % d.getVar('PN'), " textrel")
else:
d.appendVar('GOBUILDFLAGS', ' -buildmode=pie')
}

View File

@@ -40,4 +40,4 @@ FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib"
# .gir files go to dev package, as they're needed for developing (but not for
# running) things that depends on introspection.
FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir"
FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir"

View File

@@ -38,6 +38,8 @@ IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs empty-root-password
# Generate companion debugfs?
IMAGE_GEN_DEBUGFS ?= "0"
# These pacackages will be installed as additional into debug rootfs
IMAGE_INSTALL_DEBUGFS ?= ""
# These packages will be removed from a read-only rootfs after all other
# packages have been installed
@@ -125,7 +127,7 @@ def rootfs_variables(d):
'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS']
'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS', 'IMAGE_INSTALL_DEBUGFS']
variables.extend(rootfs_command_variables(d))
variables.extend(variable_depends(d))
return " ".join(variables)

View File

@@ -154,7 +154,7 @@ multiubi_mkfs() {
local ubinize_args="$2"
# Added prompt error message for ubi and ubifs image creation.
if [ -z "$mkubifs_args"] || [ -z "$ubinize_args" ]; then
if [ -z "$mkubifs_args" ] || [ -z "$ubinize_args" ]; then
bbfatal "MKUBIFS_ARGS and UBINIZE_ARGS have to be set, see http://www.linux-mtd.infradead.org/faq/ubifs.html for details"
fi

View File

@@ -29,6 +29,7 @@ def map_kernel_arch(a, d):
elif re.match('aarch64_ilp32$', a): return 'arm64'
elif re.match('aarch64_be_ilp32$', a): return 'arm64'
elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'mips'
elif re.match('mcf', a): return 'm68k'
elif re.match('riscv(32|64|)(eb|)$', a): return 'riscv'
elif re.match('p(pc|owerpc)(|64)', a): return 'powerpc'
elif re.match('sh(3|4)$', a): return 'sh'

View File

@@ -337,8 +337,8 @@ python do_kernel_configcheck() {
try:
configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8')
except subprocess.CalledProcessError:
bb.fatal( "Cannot gather config fragments for audit: %s" % configs)
except subprocess.CalledProcessError as e:
bb.fatal( "Cannot gather config fragments for audit: %s" % e.output.decode("utf-8") )
try:
subprocess.check_call(['kconf_check', '--report', '-o',

View File

@@ -1,4 +1,4 @@
inherit python3native
inherit siteinfo python3native
DEPENDS_append = " meson-native ninja-native"
@@ -24,17 +24,17 @@ MESONOPTS = " --prefix ${prefix} \
--infodir ${@noprefix('infodir', d)} \
--sysconfdir ${sysconfdir} \
--localstatedir ${localstatedir} \
--sharedstatedir ${sharedstatedir}"
--sharedstatedir ${sharedstatedir} \
-Dc_args='${BUILD_CPPFLAGS} ${BUILD_CFLAGS}' \
-Dc_link_args='${BUILD_LDFLAGS}' \
-Dcpp_args='${BUILD_CPPFLAGS} ${BUILD_CXXFLAGS}' \
-Dcpp_link_args='${BUILD_LDFLAGS}'"
MESON_TOOLCHAIN_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CFLAGS}"
MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CXXFLAGS}"
MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${LDFLAGS}"
# both are required but not used by meson
MESON_HOST_ENDIAN = "bogus-endian"
MESON_TARGET_ENDIAN = "bogus-endian"
EXTRA_OEMESON_append = " ${PACKAGECONFIG_CONFARGS}"
MESON_CROSS_FILE = ""
@@ -59,6 +59,16 @@ def meson_cpu_family(var, d):
else:
return arch
def meson_endian(prefix, d):
arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
sitedata = siteinfo_data_for_machine(arch, os, d)
if "endian-little" in sitedata:
return "little"
elif "endian-big" in sitedata:
return "big"
else:
bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
addtask write_config before do_configure
do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF"
do_write_config() {
@@ -86,19 +96,22 @@ gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper'
system = '${HOST_OS}'
cpu_family = '${@meson_cpu_family('HOST_ARCH', d)}'
cpu = '${HOST_ARCH}'
endian = '${MESON_HOST_ENDIAN}'
endian = '${@meson_endian('HOST', d)}'
[target_machine]
system = '${TARGET_OS}'
cpu_family = '${@meson_cpu_family('TARGET_ARCH', d)}'
cpu = '${TARGET_ARCH}'
endian = '${MESON_TARGET_ENDIAN}'
endian = '${@meson_endian('TARGET', d)}'
EOF
}
CONFIGURE_FILES = "meson.build"
meson_do_configure() {
# Work around "Meson fails if /tmp is mounted with noexec #2972"
mkdir -p "${B}/meson-private/tmp"
export TMPDIR="${B}/meson-private/tmp"
bbnote Executing meson ${EXTRA_OEMESON}...
if ! meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON}; then
bbfatal_log meson failed
@@ -108,14 +121,15 @@ meson_do_configure() {
override_native_tools() {
# Set these so that meson uses the native tools for its build sanity tests,
# which require executables to be runnable. The cross file will still
# override these for the target build. Note that we do *not* set CFLAGS,
# LDFLAGS, etc. as they will be slurped in by meson and applied to the
# target build, causing errors.
# override these for the target build.
export CC="${BUILD_CC}"
export CXX="${BUILD_CXX}"
export LD="${BUILD_LD}"
export AR="${BUILD_AR}"
# These contain *target* flags but will be used as *native* flags. The
# correct native flags will be passed via -Dc_args and so on, unset them so
# they don't interfere with tools invoked by Meson (such as g-ir-scanner)
unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
}
meson_do_configure_prepend_class-target() {

View File

@@ -53,5 +53,5 @@ python populate_packages_append () {
postrm += d.getVar('mime_postrm')
d.setVar('pkg_postrm_%s' % pkg, postrm)
bb.note("adding shared-mime-info-data dependency to %s" % pkg)
d.appendVar('RDEPENDS_' + pkg, " shared-mime-info-data")
d.appendVar('RDEPENDS_' + pkg, " " + d.getVar('MLPREFIX')+"shared-mime-info-data")
}

View File

@@ -11,8 +11,12 @@ python multilib_virtclass_handler () {
# There should only be one kernel in multilib configs
# We also skip multilib setup for module packages.
provides = (e.data.getVar("PROVIDES") or "").split()
if "virtual/kernel" in provides or bb.data.inherits_class('module-base', e.data) or "make-mod-scripts" in e.data.getVar("PN"):
raise bb.parse.SkipRecipe("We shouldn't have multilib variants for the kernel")
non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split()
bpn = e.data.getVar("BPN")
if "virtual/kernel" in provides or \
bb.data.inherits_class('module-base', e.data) or \
bpn in non_ml_recipes:
raise bb.parse.SkipRecipe("We shouldn't have multilib variants for %s" % bpn)
save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME") or ""
for name in save_var_name.split():
@@ -135,7 +139,8 @@ python do_package_qa_multilib() {
i = i[len('virtual/'):]
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')):
(not i.startswith("rtld")) and (not i.startswith('kernel-vmlinux')) \
and (not i.startswith("kernel-image")):
candidates.append(i)
if len(candidates) > 0:
msg = "%s package %s - suspicious values '%s' in %s" \

View File

@@ -164,8 +164,11 @@ python multilib_virtclass_handler_global () {
if variant:
return
non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split()
if bb.data.inherits_class('kernel', e.data) or \
bb.data.inherits_class('module-base', e.data):
bb.data.inherits_class('module-base', e.data) or \
d.getVar('BPN') in non_ml_recipes:
variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split()
import oe.classextend

View File

@@ -12,6 +12,11 @@ MACHINEOVERRIDES = ""
MULTILIBS = ""
# we need consistent staging dir whether or not multilib is enabled
STAGING_DIR_HOST = "${WORKDIR}/recipe-sysroot"
STAGING_DIR_TARGET = "${WORKDIR}/recipe-sysroot"
RECIPE_SYSROOT = "${WORKDIR}/recipe-sysroot"
#
# Update PACKAGE_ARCH and PACKAGE_ARCHS
#

View File

@@ -10,7 +10,7 @@ def node_pkgname(d):
NPMPN ?= "${@node_pkgname(d)}"
NPM_INSTALLDIR = "${D}${libdir}/node_modules/${NPMPN}"
NPM_INSTALLDIR = "${D}${libdir}/node/${NPMPN}"
# function maps arch names to npm arch names
def npm_oe_arch_map(target_arch, d):

View File

@@ -228,14 +228,17 @@ fakeroot tar_sdk() {
tar ${SDKTAROPTS} -cf - . | xz -T 0 > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
}
TOOLCHAIN_SHAR_EXT_TMPL ?= "${COREBASE}/meta/files/toolchain-shar-extract.sh"
TOOLCHAIN_SHAR_REL_TMPL ?= "${COREBASE}/meta/files/toolchain-shar-relocate.sh"
fakeroot create_shar() {
# copy in the template shar extractor script
cp ${COREBASE}/meta/files/toolchain-shar-extract.sh ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
cp ${TOOLCHAIN_SHAR_EXT_TMPL} ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
rm -f ${T}/pre_install_command ${T}/post_install_command
if [ ${SDK_RELOCATE_AFTER_INSTALL} -eq 1 ] ; then
cp ${COREBASE}/meta/files/toolchain-shar-relocate.sh ${T}/post_install_command
cp ${TOOLCHAIN_SHAR_REL_TMPL} ${T}/post_install_command
fi
cat << "EOF" >> ${T}/pre_install_command
${SDK_PRE_INSTALL_COMMAND}
@@ -293,14 +296,14 @@ def sdk_command_variables(d):
def sdk_variables(d):
variables = ['BUILD_IMAGES_FROM_FEEDS','SDK_OS','SDK_OUTPUT','SDKPATHNATIVE','SDKTARGETSYSROOT','SDK_DIR','SDK_VENDOR','SDKIMAGE_INSTALL_COMPLEMENTARY','SDK_PACKAGE_ARCHS','SDK_OUTPUT',
'SDKTARGETSYSROOT','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS','PACKAGE_ARCHS',
'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'IMAGE_INSTALL_DEBUGFS']
variables.extend(sdk_command_variables(d))
return " ".join(variables)
do_populate_sdk[vardeps] += "${@sdk_variables(d)}"
do_populate_sdk[file-checksums] += "${COREBASE}/meta/files/toolchain-shar-relocate.sh:True \
${COREBASE}/meta/files/toolchain-shar-extract.sh:True"
do_populate_sdk[file-checksums] += "${TOOLCHAIN_SHAR_REL_TMPL}:True \
${TOOLCHAIN_SHAR_EXT_TMPL}:True"
do_populate_sdk[dirs] = "${PKGDATA_DIR} ${TOPDIR}"
do_populate_sdk[depends] += "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_DEPENDS').split()])} ${@d.getVarFlag('do_rootfs', 'depends', False)}"

View File

@@ -531,7 +531,8 @@ install_tools() {
scripts="devtool recipetool oe-find-native-sysroot runqemu* wic"
for script in $scripts; do
for scriptfn in `find ${SDK_OUTPUT}/${SDKPATH}/${scriptrelpath} -maxdepth 1 -executable -name "$script"`; do
lnr ${scriptfn} ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/`basename $scriptfn`
targetscriptfn="${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/$(basename $scriptfn)"
test -e ${targetscriptfn} || lnr ${scriptfn} ${targetscriptfn}
done
done
# We can't use the same method as above because files in the sysroot won't exist at this point

View File

@@ -253,7 +253,6 @@ python write_image_manifest () {
pkgs = image_list_installed_packages(d)
with open(manifest_name, 'w+') as image_manifest:
image_manifest.write(format_pkg_list(pkgs, "ver"))
image_manifest.write("\n")
if os.path.exists(manifest_name):
manifest_link = deploy_dir + "/" + link_name + ".manifest"

View File

@@ -6,7 +6,7 @@ ROOTFS_PKGMANAGE = "dpkg apt"
do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot"
do_populate_sdk[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot bzip2-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_deb"
do_rootfs[recrdeptask] += "do_package_write_deb do_package_qa"
do_rootfs[vardeps] += "PACKAGE_FEED_URIS"
do_rootfs[lockfiles] += "${DEPLOY_DIR_DEB}/deb.lock"

View File

@@ -10,7 +10,7 @@ ROOTFS_PKGMANAGE = "opkg ${EXTRAOPKGCONFIG}"
do_rootfs[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
do_populate_sdk[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_ipk"
do_rootfs[recrdeptask] += "do_package_write_ipk do_package_qa"
do_rootfs[vardeps] += "PACKAGE_FEED_URIS"
do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock"

View File

@@ -23,7 +23,7 @@ RPMROOTFSDEPENDS = "rpm-native:do_populate_sysroot \
do_rootfs[depends] += "${RPMROOTFSDEPENDS}"
do_populate_sdk[depends] += "${RPMROOTFSDEPENDS}"
do_rootfs[recrdeptask] += "do_package_write_rpm"
do_rootfs[recrdeptask] += "do_package_write_rpm do_package_qa"
do_rootfs[vardeps] += "PACKAGE_FEED_URIS"
python () {

View File

@@ -15,7 +15,7 @@
# It is an error for the target not to exist.
# If 'what' doesn't exist then an empty value is returned
#
def siteinfo_data(d):
def siteinfo_data_for_machine(arch, os, d):
archinfo = {
"allarch": "endian-little bit-32", # bogus, but better than special-casing the checks below for allarch
"aarch64": "endian-little bit-64 arm-common arm-64",
@@ -33,6 +33,7 @@ def siteinfo_data(d):
"i686": "endian-little bit-32 ix86-common",
"ia64": "endian-little bit-64",
"lm32": "endian-big bit-32",
"m68k": "endian-big bit-32",
"microblaze": "endian-big bit-32 microblaze-common",
"microblazeeb": "endian-big bit-32 microblaze-common",
"microblazeel": "endian-little bit-32 microblaze-common",
@@ -131,15 +132,13 @@ def siteinfo_data(d):
locs = { "archinfo" : archinfo, "osinfo" : osinfo, "targetinfo" : targetinfo, "d" : d}
archinfo, osinfo, targetinfo = bb.utils.better_eval(call, locs)
hostarch = d.getVar("HOST_ARCH")
hostos = d.getVar("HOST_OS")
target = "%s-%s" % (hostarch, hostos)
target = "%s-%s" % (arch, os)
sitedata = []
if hostarch in archinfo:
sitedata.extend(archinfo[hostarch].split())
if hostos in osinfo:
sitedata.extend(osinfo[hostos].split())
if arch in archinfo:
sitedata.extend(archinfo[arch].split())
if os in osinfo:
sitedata.extend(osinfo[os].split())
if target in targetinfo:
sitedata.extend(targetinfo[target].split())
sitedata.append(target)
@@ -148,6 +147,9 @@ def siteinfo_data(d):
bb.debug(1, "SITE files %s" % sitedata);
return sitedata
def siteinfo_data(d):
return siteinfo_data_for_machine(d.getVar("HOST_ARCH"), d.getVar("HOST_OS"), d)
python () {
sitedata = set(siteinfo_data(d))
if "endian-little" in sitedata:

View File

@@ -131,6 +131,11 @@ def copy_needed_files(d, tc):
shutil.copy2(image_manifest, os.path.join(test_data_path, 'manifest'))
shutil.copy2(tdname, os.path.join(test_data_path, 'testdata.json'))
for subdir, dirs, files in os.walk(export_path):
for dir in dirs:
if dir == '__pycache__':
shutil.rmtree(os.path.join(subdir, dir))
# Create tar file for common parts of testexport
create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR"))

View File

@@ -40,7 +40,11 @@ TEST_NEEDED_PACKAGES_DIR ?= "${WORKDIR}/testimage/packages"
TEST_EXTRACTED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/extracted"
TEST_PACKAGED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/packaged"
RPMTESTSUITE = "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf rpm', '', d)}"
PKGMANTESTSUITE = "\
${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf rpm', '', d)} \
${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg', '', d)} \
${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt', '', d)} \
"
SYSTEMDSUITE = "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
MINTESTSUITE = "ping"
NETTESTSUITE = "${MINTESTSUITE} ssh df date scp oe_syslog ${SYSTEMDSUITE}"
@@ -51,14 +55,14 @@ DEFAULT_TEST_SUITES_pn-core-image-minimal = "${MINTESTSUITE}"
DEFAULT_TEST_SUITES_pn-core-image-minimal-dev = "${MINTESTSUITE}"
DEFAULT_TEST_SUITES_pn-core-image-full-cmdline = "${NETTESTSUITE} perl python logrotate ptest"
DEFAULT_TEST_SUITES_pn-core-image-x11 = "${MINTESTSUITE}"
DEFAULT_TEST_SUITES_pn-core-image-lsb = "${NETTESTSUITE} pam parselogs ${RPMTESTSUITE} ptest"
DEFAULT_TEST_SUITES_pn-core-image-sato = "${NETTESTSUITE} connman xorg parselogs ${RPMTESTSUITE} \
DEFAULT_TEST_SUITES_pn-core-image-lsb = "${NETTESTSUITE} pam parselogs ${PKGMANTESTSUITE} ptest"
DEFAULT_TEST_SUITES_pn-core-image-sato = "${NETTESTSUITE} connman xorg parselogs ${PKGMANTESTSUITE} \
${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'python', '', d)} ptest gi"
DEFAULT_TEST_SUITES_pn-core-image-sato-sdk = "${NETTESTSUITE} buildcpio buildlzip buildgalculator \
connman ${DEVTESTSUITE} logrotate perl parselogs python ${RPMTESTSUITE} xorg ptest gi stap"
DEFAULT_TEST_SUITES_pn-core-image-lsb-dev = "${NETTESTSUITE} pam perl python parselogs ${RPMTESTSUITE} ptest gi"
connman ${DEVTESTSUITE} logrotate perl parselogs python ${PKGMANTESTSUITE} xorg ptest gi stap"
DEFAULT_TEST_SUITES_pn-core-image-lsb-dev = "${NETTESTSUITE} pam perl python parselogs ${PKGMANTESTSUITE} ptest gi"
DEFAULT_TEST_SUITES_pn-core-image-lsb-sdk = "${NETTESTSUITE} buildcpio buildlzip buildgalculator \
connman ${DEVTESTSUITE} logrotate pam parselogs perl python ${RPMTESTSUITE} ptest gi stap"
connman ${DEVTESTSUITE} logrotate pam parselogs perl python ${PKGMANTESTSUITE} ptest gi stap"
DEFAULT_TEST_SUITES_pn-meta-toolchain = "auto"
# aarch64 has no graphics
@@ -78,13 +82,13 @@ TEST_QEMUBOOT_TIMEOUT ?= "1000"
TEST_TARGET ?= "qemu"
TESTIMAGEDEPENDS = ""
TESTIMAGEDEPENDS_qemuall = "qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot qemu-helper-native:do_addto_recipe_sysroot"
TESTIMAGEDEPENDS_append_qemuall = " qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot qemu-helper-native:do_addto_recipe_sysroot"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS_qemuall += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS_qemuall += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS_append_qemuall = " ${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS_append_qemuall = " ${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt-native:do_populate_sysroot', '', d)}"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-native:do_populate_sysroot package-index:do_package_index', '', d)}"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt-native:do_populate_sysroot package-index:do_package_index', '', d)}"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}"
TESTIMAGELOCK = "${TMPDIR}/testimage.lock"

View File

@@ -39,9 +39,9 @@ PACKAGE_WRITE_DEPS += "update-rc.d-native"
updatercd_postinst() {
if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null; then
if [ -n "$D" ]; then
OPT="-r $D"
OPT="-f -r $D"
else
OPT="-s"
OPT="-f -s"
fi
update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS}
fi

View File

@@ -51,10 +51,10 @@ perform_groupmems () {
local groupname=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-g" || $i == "--group") print $(i+1) }'`
local username=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-a" || $i == "--add") print $(i+1) }'`
bbnote "${PN}: Running groupmems command with group $groupname and user $username"
local mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $rootdir/etc/group || true`"
local mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*$" $rootdir/etc/group || true`"
if test "x$mem_exists" = "x"; then
eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO groupmems \$opts\" || true
mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $rootdir/etc/group || true`"
mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*$" $rootdir/etc/group || true`"
if test "x$mem_exists" = "x"; then
bbfatal "${PN}: groupmems command did not succeed."
fi

View File

@@ -96,8 +96,8 @@ RECIPE_MAINTAINER_pn-chrpath = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-clutter-1.0 = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-clutter-gst-3.0 = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-clutter-gtk-1.0 = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-cmake = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-cmake-native = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-cmake = "Pascal Bach <pascal.bach@siemens.com>"
RECIPE_MAINTAINER_pn-cmake-native = "Pascal Bach <pascal.bach@siemens.com>"
RECIPE_MAINTAINER_pn-cogl-1.0 = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-connman = "Changhyeok Bae <changhyeok.bae@lge.com>"
RECIPE_MAINTAINER_pn-connman-conf = "Ross Burton <ross.burton@intel.com>"
@@ -629,6 +629,7 @@ RECIPE_MAINTAINER_pn-systemd = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-boot = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-bootchart = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-bootconf = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-conf = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-compat-units = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-serialgetty = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-systemctl-native = "Chen Qi <Qi.Chen@windriver.com>"

View File

@@ -29,6 +29,7 @@ GDBVERSION ?= "8.2%"
GLIBCVERSION ?= "2.28%"
LINUXLIBCVERSION ?= "4.18%"
QEMUVERSION ?= "3.0%"
GOVERSION ?= "1.11%"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
@@ -69,7 +70,6 @@ PREFERRED_VERSION_qemu ?= "${QEMUVERSION}"
PREFERRED_VERSION_qemu-native ?= "${QEMUVERSION}"
PREFERRED_VERSION_nativesdk-qemu ?= "${QEMUVERSION}"
GOVERSION ?= "1.9%"
PREFERRED_VERSION_virtual/${TARGET_PREFIX}go ?= "${GOVERSION}"
PREFERRED_VERSION_go-cross-${TARGET_ARCH} ?= "${GOVERSION}"
PREFERRED_VERSION_go-crosssdk-${SDK_ARCH} ?= "${GOVERSION}"

View File

@@ -7,7 +7,7 @@ BBFILE_COLLECTIONS += "core"
BBFILE_PATTERN_core = "^${LAYERDIR}/"
BBFILE_PRIORITY_core = "5"
LAYERSERIES_CORENAMES = "sumo thud"
LAYERSERIES_CORENAMES = "thud"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
@@ -74,6 +74,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
gnome-icon-theme->librsvg \
font-alias->font-util \
systemd-boot->systemd-bootconf \
systemd->systemd-conf \
weston-init->weston \
weston-init->kbd \
"

View File

@@ -0,0 +1,8 @@
# m68k Architecture definitions
DEFAULTTUNE ?= "m68k"
# Architecture name
TUNE_ARCH = "m68k"
TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"

View File

@@ -0,0 +1,13 @@
DEFAULTTUNE ?= "mcf5441x"
require conf/machine/include/m68k/arch-m68k.inc
TUNEVALID[mcf5441x] = "Enable coldfire specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mcf5441x', ' -mcpu=54418', '', d)}"
AVAILTUNES += "mcf5441x"
TUNE_FEATURES_tune-mcf5441x = "mcf5441x"
TUNE_ARCH_tune-mcf5441x = "mcf5441x"
TUNE_PKGARCH_tune-mcf5441x = "mcf5441x"
PACKAGE_EXTRA_ARCHS_tune-mcf5441x = "m68k mcf5441x"

View File

@@ -31,6 +31,8 @@ MACHINE_FEATURES += "x86 pci"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
MACHINE_EXTRA_RRECOMMENDS = "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
KERNEL_MODULE_AUTOLOAD += "uvesafb"
KERNEL_MODULE_PROBECONF += "uvesafb"
module_conf_uvesafb = "options uvesafb mode_option=${UVESA_MODE}"

View File

@@ -30,6 +30,8 @@ MACHINE_FEATURES += "x86 pci"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
MACHINE_EXTRA_RRECOMMENDS = "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
KERNEL_MODULE_AUTOLOAD += "uvesafb"
KERNEL_MODULE_PROBECONF += "uvesafb"
module_conf_uvesafb = "options uvesafb mode_option=${UVESA_MODE}"

View File

@@ -26,3 +26,7 @@ OPKG_ARGS_append = " --force-maintainer --force-overwrite"
PKG_CONFIG_PATH .= ":${WORKDIR}/recipe-sysroot/${datadir}/pkgconfig"
PKG_CONFIG_PATH[vardepsexclude] = "datadir WORKDIR"
PKG_CONFIG_PATH[vardepvalueexclude] = ":${WORKDIR}/recipe-sysroot/${datadir}/pkgconfig"
# These recipes don't need multilib variants, the ${BPN} PROVDES/RPROVDES
# ${MLPREFIX}${BPN}
NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts"

View File

@@ -864,8 +864,9 @@ class RpmPM(PackageManager):
failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
def remove(self, pkgs, with_dependencies = True):
if len(pkgs) == 0:
if not pkgs:
return
self._prepare_pkg_transaction()
if with_dependencies:
@@ -1322,7 +1323,11 @@ class OpkgPM(OpkgDpkgPM):
if not pkgs:
return
cmd = "%s %s install %s" % (self.opkg_cmd, self.opkg_args, ' '.join(pkgs))
cmd = "%s %s" % (self.opkg_cmd, self.opkg_args)
for exclude in (self.d.getVar("PACKAGE_EXCLUDE") or "").split():
cmd += " --add-exclude %s" % exclude
cmd += " install "
cmd += " ".join(pkgs)
os.environ['D'] = self.target_rootfs
os.environ['OFFLINE_ROOT'] = self.target_rootfs
@@ -1349,6 +1354,9 @@ class OpkgPM(OpkgDpkgPM):
(cmd, e.returncode, e.output.decode("utf-8")))
def remove(self, pkgs, with_dependencies=True):
if not pkgs:
return
if with_dependencies:
cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \
(self.opkg_cmd, self.opkg_args, ' '.join(pkgs))
@@ -1659,6 +1667,9 @@ class DpkgPM(OpkgDpkgPM):
def remove(self, pkgs, with_dependencies=True):
if not pkgs:
return
if with_dependencies:
os.environ['APT_CONFIG'] = self.apt_conf_file
cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs))

View File

@@ -144,6 +144,20 @@ class Rootfs(object, metaclass=ABCMeta):
bb.note(" Install complementary '*-dbg' packages...")
self.pm.install_complementary('*-dbg')
if self.d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg':
bb.note(" Install complementary '*-src' packages...")
self.pm.install_complementary('*-src')
"""
Install additional debug packages. Possibility to install additional packages,
which are not automatically installed as complementary package of
standard one, e.g. debug package of static libraries.
"""
extra_debug_pkgs = self.d.getVar('IMAGE_INSTALL_DEBUGFS')
if extra_debug_pkgs:
bb.note(" Install extra debug packages...")
self.pm.install(extra_debug_pkgs.split(), True)
bb.note(" Rename debug rootfs...")
try:
shutil.rmtree(self.image_rootfs + '-dbg')
@@ -853,9 +867,8 @@ class OpkgRootfs(DpkgOpkgRootfs):
opkg_pre_process_cmds = self.d.getVar('OPKG_PREPROCESS_COMMANDS')
opkg_post_process_cmds = self.d.getVar('OPKG_POSTPROCESS_COMMANDS')
# update PM index files, unless users provide their own feeds
if (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") != "1":
self.pm.write_index()
# update PM index files
self.pm.write_index()
execute_pre_post_process(self.d, opkg_pre_process_cmds)

View File

@@ -347,7 +347,13 @@ def format_pkg_list(pkg_dict, ret_format=None):
for pkg in sorted(pkg_dict):
output.append(pkg)
return '\n'.join(output)
output_str = '\n'.join(output)
if output_str:
# make sure last line is newline terminated
output_str += '\n'
return output_str
def host_gcc_version(d, taskcontextonly=False):
import re, subprocess

View File

@@ -76,40 +76,43 @@ class OETestResult(_TestResult):
else:
msg = "%s - FAIL - Required tests failed" % component
skipped = len(self.skipped)
if skipped:
if skipped:
msg += " (skipped=%d)" % skipped
self.tc.logger.info(msg)
def _getDetailsNotPassed(self, case, type, desc):
found = False
def _getTestResultDetails(self, case):
result_types = {'failures': 'FAILED', 'errors': 'ERROR', 'skipped': 'SKIPPED',
'expectedFailures': 'EXPECTEDFAIL', 'successes': 'PASSED'}
for (scase, msg) in getattr(self, type):
if case.id() == scase.id():
found = True
break
scase_str = str(scase.id())
# When fails at module or class level the class name is passed as string
# so figure out to see if match
m = re.search("^setUpModule \((?P<module_name>.*)\)$", scase_str)
if m:
if case.__class__.__module__ == m.group('module_name'):
for rtype in result_types:
found = False
for (scase, msg) in getattr(self, rtype):
if case.id() == scase.id():
found = True
break
scase_str = str(scase.id())
m = re.search("^setUpClass \((?P<class_name>.*)\)$", scase_str)
if m:
class_name = "%s.%s" % (case.__class__.__module__,
case.__class__.__name__)
# When fails at module or class level the class name is passed as string
# so figure out to see if match
m = re.search("^setUpModule \((?P<module_name>.*)\)$", scase_str)
if m:
if case.__class__.__module__ == m.group('module_name'):
found = True
break
if class_name == m.group('class_name'):
found = True
break
m = re.search("^setUpClass \((?P<class_name>.*)\)$", scase_str)
if m:
class_name = "%s.%s" % (case.__class__.__module__,
case.__class__.__name__)
if found:
return (found, msg)
if class_name == m.group('class_name'):
found = True
break
return (found, None)
if found:
return result_types[rtype], msg
return 'UNKNOWN', None
def addSuccess(self, test):
#Added so we can keep track of successes too
@@ -121,17 +124,7 @@ class OETestResult(_TestResult):
for case_name in self.tc._registry['cases']:
case = self.tc._registry['cases'][case_name]
result_types = ['failures', 'errors', 'skipped', 'expectedFailures', 'successes']
result_desc = ['FAILED', 'ERROR', 'SKIPPED', 'EXPECTEDFAIL', 'PASSED']
fail = False
desc = None
for idx, name in enumerate(result_types):
(fail, msg) = self._getDetailsNotPassed(case, result_types[idx],
result_desc[idx])
if fail:
desc = result_desc[idx]
break
(status, log) = self._getTestResultDetails(case)
oeid = -1
if hasattr(case, 'decorators'):
@@ -143,12 +136,7 @@ class OETestResult(_TestResult):
if case.id() in self.starttime and case.id() in self.endtime:
t = " (" + "{0:.2f}".format(self.endtime[case.id()] - self.starttime[case.id()]) + "s)"
if fail:
self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(),
oeid, desc, t))
else:
self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(),
oeid, 'UNKNOWN', t))
self.tc.logger.info("RESULTS - %s - Testcase %s: %s%s" % (case.id(), oeid, status, t))
class OEListTestsResult(object):
def wasSuccessful(self):

View File

@@ -0,0 +1,64 @@
########
diff --git a/glxgears_check.sh b/glxgears_check.sh
index 17622b8..c4d3b97 100755
--- a/glxgears_check.sh
+++ b/glxgears_check.sh
@@ -31,7 +31,7 @@ else
sleep 6
- XPID=$( ps ax | awk '{print $1, $5}' | grep glxgears | awk '{print $1}')
+ XPID=$( ps | awk '{print $1, $5}' | grep glxgears | awk '{print $1}')
if [ ! -z "$XPID" ]; then
kill -9 $XPID >/dev/null 2>&1
echo "glxgears can run, PASS!"
diff --git a/x_close.sh b/x_close.sh
index e287be1..3429f1a 100755
--- a/x_close.sh
+++ b/x_close.sh
@@ -22,7 +22,7 @@
#
function close_proc(){
echo "kill process Xorg"
-XPID=$( ps ax | awk '{print $1, $5}' | egrep "X$|Xorg$" | awk '{print $1}')
+XPID=$( ps | awk '{print $1, $6}' | egrep "X$|Xorg$" | awk '{print $1}')
if [ ! -z "$XPID" ]; then
kill $XPID
sleep 4
diff --git a/x_start.sh b/x_start.sh
index 9cf6eab..2305796 100755
--- a/x_start.sh
+++ b/x_start.sh
@@ -24,7 +24,7 @@
X_ERROR=0
#test whether X has started
-PXID=$(ps ax |awk '{print $1,$5}' |egrep "Xorg$|X$" |grep -v grep | awk '{print $1}')
+PXID=$(ps |awk '{print $1,$6}' |egrep "Xorg$|X$" |grep -v grep | awk '{print $1}')
if [ ! -z "$PXID" ]; then
echo "[WARNING] Xorg has started!"
XORG_STATUS="started"
@@ -35,9 +35,11 @@ else
#start up the x server
echo "Start up the X server for test in display $DISPLAY................"
- $XORG_DIR/bin/X >/dev/null 2>&1 &
+ #$XORG_DIR/bin/X >/dev/null 2>&1 &
+ #sleep 8
+ #xterm &
+ /etc/init.d/xserver-nodm start &
sleep 8
- xterm &
fi
XLOG_FILE=/var/log/Xorg.0.log
[ -f $XORG_DIR/var/log/Xorg.0.log ] && XLOG_FILE=$XORG_DIR/var/log/Xorg.0.log
@@ -54,7 +56,7 @@ fi
X_ERROR=1
fi
- XPID=$( ps ax | awk '{print $1, $5}' | egrep "X$|Xorg$" |grep -v grep| awk '{print $1}')
+ XPID=$( ps | awk '{print $1, $6}' | egrep "X$|Xorg$" |grep -v grep| awk '{print $1}')
if [ -z "$XPID" ]; then
echo "Start up X server FAIL!"
echo
########

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,222 @@
[
{
"test": {
"@alias": "bsps-qemu.bsps-tools.qemu_can_be_started_with_KVM_enabled",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Build a kernel with KVM enabled \n\nIn Local.conf add \n\nQEMU_USE_KVM = \"${@ 'intel-corei7-64 intel-core2-32 qemux86 qemux86-64' if os.access('/dev/kvm', os.R_OK|os.W_OK) else '' }\" \n\n ",
"expected_results": ""
},
"2": {
"action": "Start qemu with option \"kvm\" with runqemu \n a. If you start qemu with kvm failed, maybe it is because host not install kvm and vhost_net module. Follow below link to install them. \n b. vhost_test refer: https://wiki.yoctoproject.org/wiki/Running_an_x86_Yocto_Linux_image_under_QEMU_KVM \n c. kvm refer: https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu",
"expected_results": ""
},
"3": {
"action": "Check if qemu starts up and if kvm_intel module is used",
"expected_results": ""
},
"4": {
"action": "If kvm_intel module is not used when starting qemu, it will show 0 in \"Used by\" column when you run \"lsmod | grep kvm_intel\" ",
"expected_results": "KVM enabled with qemu \nExecute \"lsmod | grep kvm_intel\" from your host twice, before and after you \nstart the qemu with kvm option. Before start, the number should be 0, \nafter start, the number should bigger than 0."
}
},
"summary": "qemu_can_be_started_with_KVM_enabled"
}
},
{
"test": {
"@alias": "bsps-qemu.bsps-tools.Post-installation_logging",
"author": [
{
"email": "yi.zhao@windriver.com",
"name": "yi.zhao@windriver.com"
}
],
"execution": {
"1": {
"action": "Download the poky source and set environment \n",
"expected_results": "The /var/log/postinstall.log should exist in the first boot. The content of this log is like below: \n\nRunning postinst /etc/rpm-postinsts/man... \nList directory to check the output log \nbin \nboot \ndev \netc \nhome \nlib \nlost+found \nmedia \nmnt \nproc \nrun \nsbin \nsys \ntmp \nusr \nvar \nList nonexist directory to check the stderr redirection log \nls: /nonexist: No such file or directory "
},
"2": {
"action": "Add the following lines to a .bb file. For expample, meta/recipes-connectivity/openssh/openssh_6.2p2.bb: \n\npkg_postinst_ontarget_${PN} () { \n #!/bin/sh -e \n if [ x\"$D\" = \"x\" ]; then \n echo \"List directory to check the output log\" \n ls / \n echo \"List nonexist directory to check the stderr redirection log\" \n ls /nonexist \n else \n exit 1 \n fi \n} \n\nMake sure the feature \"debug-tweaks\" is added in conf/local.conf \n",
"expected_results": ""
},
"3": {
"action": "Add ssh-server-openssh to EXTRA_IMAGE_FEATURES in local.conf \n",
"expected_results": ""
},
"4": {
"action": "Build core-image-minimal \n",
"expected_results": ""
},
"5": {
"action": "Boot up the image and check the /var/log/postinstall.log ",
"expected_results": ""
}
},
"summary": "Post-installation_logging"
}
},
{
"test": {
"@alias": "bsps-qemu.bsps-tools.Add_user_with_cleartext_type_password_during_filesystem_construction",
"author": [
{
"email": "ke.zou@windriver.com",
"name": "ke.zou@windriver.com"
}
],
"execution": {
"1": {
"action": "Download the poky source and set the environment \n\n",
"expected_results": "No error during image building procedure. \n"
},
"2": {
"action": "Add the following lines in conf/local.conf \n\nINHERIT += \"extrausers\" \n\nEXTRA_USERS_PARAMS = \"\\ \nuseradd -s /bin/sh -P 'tester3' tester3;\\ \n\" \n\nThe above settings do the following things: \na. Add a user tester3 with cleartext password 'tester3' ",
"expected_results": "Image can boot up \n"
},
"3": {
"action": "Build the image\n ",
"expected_results": "Login with user name \"tester3\" and password \"tester3\" "
}
},
"summary": "Add_user_with_cleartext_type_password_during_filesystem_construction"
}
},
{
"test": {
"@alias": "bsps-qemu.bsps-tools.rpm_-__install_dependency_package",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Get a not previously installed RPM package or build one on local machine, which should have run-time dependency.For example, \"mc\" (Midnight Commander, which is a visual file manager) should depend on \"ncurses-terminfo\". \n\n$ bitbake mc \n\n\n",
"expected_results": ""
},
"2": {
"action": "Copy the package into a system folder (for example /home/root/rpm_packages). \n\n\n",
"expected_results": ""
},
"3": {
"action": "Run \"rpm -ivh package_name\" and check the output, for example \"rpm -ivh mc.rpm*\" should report the dependency on \"ncurses-terminfo\".\n\n\n\n",
"expected_results": "3 . rpm command should report message when some RPM installation depends on other packages."
}
},
"summary": "rpm_-__install_dependency_package"
}
},
{
"test": {
"@alias": "bsps-qemu.bsps-tools.Check_rpm_install/removal_log_file_size(auto)",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Get some rpm or other kind of installation packages. \n\n",
"expected_results": "Steps 1- 4 (more than 2.3) \nEach file will occupy around 10MB, and there should be some method to keep rpm log in a small size. (the size of the db of RPMs must not be taking so much space) \nStep 5 (less than or equal to 2.3)\nThe size on /var/lib/rpm/ must keep around 30MB"
},
"2": {
"action": "After system is up, check the size of log file named as \"log.xxxxxx\" on /var/lib/rpm/log \n\n",
"expected_results": ""
},
"3": {
"action": "After several install/removal of packages, with either of the install/removal commands (rpm/smart/zypper/dnf install/removal), check again the size of log file. \n\n",
"expected_results": ""
},
"4": {
"action": "For packages installation, there will be some database files under /var/lib/rpm/, named as \"__db.xxx\" and there will be some log files \nunder /var/lib/rpm/log, named as \"\"log.xxxxxx\"\". \n\nNote: You will only see the log.xxxx on /var/lib/rpm/log mentioned above if the poky version is minor than 2.3.For poky 2.3 or major versions this has been modified and the package RPM4 does not show the logs.xxxx. if major, follow the next step. \n\n",
"expected_results": ""
},
"5": {
"action": "Repeat steps (1 and 3) and check the size of /var/lib/rpm/ \n\nMore info: https://bugzilla.yoctoproject.org/show_bug.cgi?id=9259",
"expected_results": ""
}
},
"summary": "Check_rpm_install/removal_log_file_size"
}
},
{
"test": {
"@alias": "bsps-qemu.bsps-runtime.only_one_connmand_in_background(auto)",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Boot system",
"expected_results": ""
},
"2": {
"action": "Run \"ps aux |grep connmand\" or \"ps -ef | grep connmand\" or \"ps | grep connmand\"",
"expected_results": "Connmand (connection manager, used to manage internet connections) should be shown as an active process \n\n"
},
"3": {
"action": "Run command \"connmand\" to try to launch to a second connmand process",
"expected_results": ""
},
"4": {
"action": "Check, with \"ps\" connmand if a second connmand can be generated ",
"expected_results": "There should be only one connmand process instance in background ."
}
},
"summary": "only_one_connmand_in_background"
}
},
{
"test": {
"@alias": "bsps-qemu.bsps-runtime.X_server_can_start_up_with_runlevel_5_boot",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "boot up system with default runlevel \n\n",
"expected_results": "X server can start up well and desktop display has no problem . \n\n"
},
"2": {
"action": "type runlevel at command prompt",
"expected_results": "Output:N 5"
}
},
"summary": "X_server_can_start_up_with_runlevel_5_boot"
}
},
{
"test": {
"@alias": "bsps-qemu.bsps-runtime.check_bash_in_image",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "After system is up, check if bash command exists with command \"which bash\"",
"expected_results": "bash command should exist in image giving something as below \"/bin/bash\""
}
},
"summary": "check_bash_in_image"
}
}
]

View File

@@ -0,0 +1,122 @@
[
{
"test": {
"@alias": "build-appliance.build-appliance.Bitbake_build-appliance-image",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Get poky source code and prepare the build environment",
"expected_results": "bitbake build-appliance-image is successful "
},
"2": {
"action": "Set MACHINE to qemux86 and add the following line to conf/local.conf : SRCREV_pn-build-appliance-image = \"${AUTOREV}\"",
"expected_results": ""
},
"3": {
"action": "Run \"bitbake build-appliance-image\" \n \n",
"expected_results": ""
}
},
"summary": "Bitbake_build-appliance-image"
}
},
{
"test": {
"@alias": "build-appliance.build-appliance.Build_core-image-minimal_with_build-appliance-image",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": "Build with AUTOREV or download from Autobuilder an image for Yocto Build Appliance. ",
"expected_results": ""
},
"2": {
"action": "Boot the image under VMWare Player. ",
"expected_results": ""
},
"3": {
"action": "Build qemux86 core-image-minimal using bitbake command line in the build-appliance-image ",
"expected_results": ""
},
"4": {
"action": "Launch the image just built using runqemu. ",
"expected_results": "core-image-minimal should build and boot. "
}
},
"summary": "Build_core-image-minimal_with_build-appliance-image"
}
},
{
"test": {
"@alias": "build-appliance.build-appliance.Build_a_image_without_error_(added_recipe)",
"author": [
{
"email": "sstncr@gmail.com",
"name": "sstncr@gmail.com"
}
],
"execution": {
"1": {
"action": "Launch Build Appliance",
"expected_results": "User could build a image without error and the added package is in the image"
},
"2": {
"action": "Set \"Machine\" in conf/local.conf, for example, qemuarm",
"expected_results": ""
},
"3": {
"action": "Install a new package to the image, for example, acpid. Set the following line in conf/local.conf: IMAGE_INSTALL_append = \" acpid\"",
"expected_results": ""
},
"4": {
"action": "Build a image using bitbake command line, for example, bitbake core-image-minimal",
"expected_results": ""
},
"5": {
"action": "After build finished, launch the image and check if the added package built into image",
"expected_results": ""
}
},
"summary": "Build_a_image_without_error_(added_recipe)."
}
},
{
"test": {
"@alias": "build-appliance.build-appliance.Create_core-image-sato-sdk_using_build_appliance",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Build with AUTOREV or download from Autobuilder an image for Yocto Build Appliance. ",
"expected_results": ""
},
"2": {
"action": "Boot the image under VMWare Player. ",
"expected_results": ""
},
"3": {
"action": "Build qemux86 core-image-sato-sdk using bitbake command line in the build-appliance-image ",
"expected_results": ""
},
"4": {
"action": "Launch the image just built using runqemu. ",
"expected_results": ""
}
},
"summary": "Create_core-image-sato-sdk_using_build_appliance"
}
}
]

View File

@@ -0,0 +1,294 @@
[
{
"test": {
"@alias": "crops-default.crops-default.sdkext_eSDK_devtool_build_make",
"author": [
{
"email": "francisco.j.pedraza.gonzalez@intel.com",
"name": "francisco.j.pedraza.gonzalez@intel.com"
}
],
"execution": {
"1": {
"action": "IMPORTANT NOTE: The firsts 5 steps refer to configuration of the environment to run the rest of the steps. These only apply for CROPS-eSDK. \n\n\n\n",
"expected_results": ""
},
"2": {
"action": " Initiate your Crops-esdk environment as it says in wiki https://github.com/crops/docker-win-mac-docs/wiki \n\n",
"expected_results": ""
},
"3": {
"action": "Create the following tree of files <crops-esdk-workdir-workspace>/sdkext/files/myapp <crops-esdk-workdir-workspace>/sdkext/files/myapp_cmake \n\n\n",
"expected_results": ""
},
"4": {
"action": " Create the following files withing the myapp directory myapp.c and the Makefile. Write the following inside of each file: \n---------------------------------------- \nMakefile should contain \n\nall: myapp \n\nmyapp: myapp.o \n\t$(CC) $(LDFLAGS) $< -o $@ \n\nmyapp.o: myapp.c \n\t$(CC) $(CFLAGS) -c $< -o $@ \n\nclean: \n\trm -rf myapp.o myapp \n\n----------------------------- \nmyapp.c shold contain \n\n\n#include <stdio.h> \n\nint \nmain(int argc, char *argv[]) \n{ \n\tprintf(\"Hello world\\n\"); \n \n\treturn 0; \n} \n------------------------------------ \n\n",
"expected_results": "be sure that the indentations on the makefile are tabs not spaces. \n\n"
},
"5": {
"action": " Create the following files within the myapp_cmake directory CMakeLists.txt and myapp.c. Write the following inside each file: \n\n------------------------------------ \nCMakeLists.txt should contain: \n\ncmake_minimum_required (VERSION 2.6) \nproject (myapp) \n# The version number. \nset (myapp_VERSION_MAJOR 1) \nset (myapp_VERSION_MINOR 0) \n\n# add the executable \nadd_executable (myapp myapp.c) \n\ninstall(TARGETS myapp \nRUNTIME DESTINATION bin) \n\n------------------------------------------ \nmyapp.c should contain: \n\n#include <stdio.h> \n\nint \nmain(int argc, char *argv[]) \n{ \n\tprintf(\"Hello world\\n\"); \n\n\treturn 0; \n} \n------------------------------------------------- \n\n",
"expected_results": "Be sure that the indentations on CMakeLists.txt is tabs not spaces."
},
"6": {
"action": " source environment-setup-i586-poky-linux \n\n",
"expected_results": "This should output a message that says SDK environment now set up; additionally you may now run devtool to perform development tasks etc etc ... \n\n"
},
"7": {
"action": " run command which devtool \n\n",
"expected_results": "this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n "
},
"8": {
"action": "devtool add myapp <directory>(this is myapp dir) \n\n\n",
"expected_results": "The directory you should input is the myapp directory. This should automatically create the recipe myapp.bb under <crops-esdk-workdir-workspace>/recipes/myapp/myapp.bb"
},
"9": {
"action": " devtool build myapp \n\n",
"expected_results": "This should compile an image"
},
"10": {
"action": " devtool reset myapp ",
"expected_results": "This cleans sysroot of the myapp recipe, but it leaves the source tree intact. meaning it does not erase."
}
},
"summary": "sdkext_eSDK_devtool_build_make"
}
},
{
"test": {
"@alias": "crops-default.crops-default.sdkext_devtool_build_esdk_package",
"author": [
{
"email": "francisco.j.pedraza.gonzalez@intel.com",
"name": "francisco.j.pedraza.gonzalez@intel.com"
}
],
"execution": {
"1": {
"action": "IMPORTANT NOTE: The firsts 5 steps refer to configuration of the environment to run the rest of the steps. These only apply for CROPS-eSDK. \n\n\n\n",
"expected_results": ""
},
"2": {
"action": " Initiate your Crops-esdk environment as it says in wiki https://github.com/crops/docker-win-mac-docs/wiki \n\n",
"expected_results": ""
},
"3": {
"action": " Create the following tree of files <crops-esdk-workdir-workspace>/sdkext/files/myapp/ \n <crops-esdk-workdir-workspace>/sdkext/files/myapp_cmake \n\n",
"expected_results": ""
},
"4": {
"action": " Create the following files withing the myapp directory myapp.c and the Makefile. Write the following inside of each file: \n---------------------------------------- \nMakefile should contain \n\nall: myapp \n\nmyapp: myapp.o \n\t$(CC) $(LDFLAGS) $< -o $@ \n\nmyapp.o: myapp.c \n\t$(CC) $(CFLAGS) -c $< -o $@ \n\nclean: \n\trm -rf myapp.o myapp \n\n----------------------------- \nmyapp.c shold contain \n\n#include <stdio.h> \n\nint \nmain(int argc, char *argv[]) \n{ \n\tprintf(\"Hello world\\n\"); \n \n\treturn 0; \n} \n------------------------------------ \n\n",
"expected_results": "be sure that the indentations on the makefile are tabs not spaces. \n\n"
},
"5": {
"action": " Create the following files within the myapp_cmake directory CMakeLists.txt and myapp.c. Write the following inside each file: \n\n------------------------------------ \nCMakeLists.txt should contain: \n\ncmake_minimum_required (VERSION 2.6) \nproject (myapp) \n# The version number. \nset (myapp_VERSION_MAJOR 1) \nset (myapp_VERSION_MINOR 0) \n\n# add the executable \nadd_executable (myapp myapp.c) \n\ninstall(TARGETS myapp \nRUNTIME DESTINATION bin) \n\n------------------------------------------ \nmyapp.c should contain: \n\n#include<stdio.h> \n\nint \nmain(int argc, char *argv[]) \n{ \n\tprintf(\"Hello world\\n\"); \n\n\treturn 0; \n} \n------------------------------------------------- \n\n",
"expected_results": "Be sure that the indentations on CMakeLists.txt is tabs not spaces. \n\n"
},
"6": {
"action": " source environment-setup-i586-poky-linux \n\n",
"expected_results": "This should output a message that says SDK environment now set up; additionally you may now run devtool to perform development tasks etc etc ... \n\n"
},
"7": {
"action": " run command which devtool \n\n",
"expected_results": " this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n"
},
"8": {
"action": " devtool add myapp <directory> (this is myapp dir) \n\n",
"expected_results": " The directory you should input is the myapp directory. This should automatically create the recipe myapp.bb under <crops-esdk-workdir-workspace>/recipes/myapp/myapp.bb \n\n"
},
"9": {
"action": " devtool package myapp \n\n",
"expected_results": " you should expect a package creation of myapp and it should be under the /tmp/deploy/ \n\n"
},
"10": {
"action": " devtool reset myapp ",
"expected_results": "This cleans sysroot of the myapp recipe, but it leaves the source tree intact. meaning it does not erase.\n</package_format>"
}
},
"summary": "sdkext_devtool_build_esdk_package"
}
},
{
"test": {
"@alias": "crops-default.crops-default.sdkext_devtool_build_cmake",
"author": [
{
"email": "francisco.j.pedraza.gonzalez@intel.com",
"name": "francisco.j.pedraza.gonzalez@intel.com"
}
],
"execution": {
"1": {
"action": "IMPORTANT NOTE: The firsts 5 steps refer to configuration of the environment to run the rest of the steps. These only apply for CROPS-eSDK. \n\n\n\n",
"expected_results": ""
},
"2": {
"action": " Initiate your Crops-esdk environment as it says in wiki https://github.com/crops/docker-win-mac-docs/wiki \n\n",
"expected_results": ""
},
"3": {
"action": " Create the following tree of files <crops-esdk-workdir-workspace>/sdkext/files/myapp \n <crops-esdk-workdir-workspace>/sdkext/files/myapp_cmake \n\n",
"expected_results": ""
},
"4": {
"action": " Create the following files withing the myapp directory myapp.c and the Makefile. Write the following inside of each file: \n---------------------------------------- \nMakefile should contain \n\nall: myapp \n\nmyapp: myapp.o \n\t$(CC) $(LDFLAGS) $< -o $@ \n\nmyapp.o: myapp.c \n\t$(CC) $(CFLAGS) -c $< -o $@ \n\nclean: \n\trm -rf myapp.o myapp \n\n----------------------------- \nmyapp.c shold contain \n\n#include <stdio.h> \n\nint \nmain(int argc, char *argv[]) \n{ \n\tprintf(\"Hello world\\n\"); \n \n\treturn 0; \n} \n------------------------------------ \n\n",
"expected_results": "be sure that the indentations on the makefile are tabs not spaces. \n\n"
},
"5": {
"action": " Create the following files within the myapp_cmake directory CMakeLists.txt and myapp.c. Write the following inside each file: \n\n------------------------------------ \nCMakeLists.txt should contain: \n\ncmake_minimum_required (VERSION 2.6) \nproject (myapp) \n# The version number. \nset (myapp_VERSION_MAJOR 1) \nset (myapp_VERSION_MINOR 0) \n\n# add the executable \nadd_executable (myapp myapp.c) \n\ninstall(TARGETS myapp \nRUNTIME DESTINATION bin) \n\n------------------------------------------ \nmyapp.c should contain: \n\n#include \n\nint \nmain(int argc, char *argv[]) \n{ \n\tprintf(\"Hello world\\n\"); \n\n\treturn 0; \n} \n------------------------------------------------- \n\n",
"expected_results": "Be sure that the indentations on CMakeLists.txt is tabs not spaces. \n\n"
},
"6": {
"action": " source environment-setup-i586-poky-linux \n\n",
"expected_results": "This should output a message that says SDK environment now set up; additionally you may now run devtool to perform development tasks etc etc ... \n\n"
},
"7": {
"action": " run command which devtool \n\n",
"expected_results": "this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n"
},
"8": {
"action": " devtool add myapp <directory> (this is myapp_cmake dir) \n\n",
"expected_results": "The directory you should input is the myapp_cmake directory. This should automatically create the recipe myapp.bb under <crops-esdk-workdir-workspace>/recipes/myapp/myapp.bb \n\n"
},
"9": {
"action": " devtool build myapp \n\n",
"expected_results": "This should compile an image \n\n"
},
"10": {
"action": " devtool reset myapp ",
"expected_results": "This cleans sysroot of the myapp recipe, but it leaves the source tree intact. meaning it does not erase. "
}
},
"summary": "sdkext_devtool_build_cmake"
}
},
{
"test": {
"@alias": "crops-default.crops-default.sdkext_extend_autotools_recipe_creation",
"author": [
{
"email": "francisco.j.pedraza.gonzalez@intel.com",
"name": "francisco.j.pedraza.gonzalez@intel.com"
}
],
"execution": {
"1": {
"action": "IMPORTANT NOTE: The firsts 2 steps refer to configuration of the environment to run the rest of the steps. These only apply for CROPS-eSDK. \n\n\n\n",
"expected_results": ""
},
"2": {
"action": "Initiate your Crops-esdk environment as it says in wiki https://github.com/crops/docker-win-mac-docs/wiki \n\n",
"expected_results": ""
},
"3": {
"action": " source environment-setup-i586-poky-linux \n\n",
"expected_results": " This should output a message that says SDK environment now set up; additionally you may now run devtool to perform development tasks etc etc ... \n\n"
},
"4": {
"action": "run command which devtool \n\n",
"expected_results": "this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n"
},
"5": {
"action": "devtool sdk-install -s libxml2 \n\n",
"expected_results": "this should install libxml2 \n\n"
},
"6": {
"action": "devtool add librdfa https://github.com/rdfa/librdfa \n\n",
"expected_results": "This should automatically create the recipe librdfa.bb under /recipes/librdfa/librdfa.bb \n\n"
},
"7": {
"action": "devtool build librdfa \n\n",
"expected_results": "This should compile \n\n"
},
"8": {
"action": "devtool reset librdfa ",
"expected_results": "This cleans sysroot of the librdfa recipe, but it leaves the source tree intact. meaning it does not erase."
}
},
"summary": "sdkext_extend_autotools_recipe_creation"
}
},
{
"test": {
"@alias": "crops-default.crops-default.sdkext_devtool_kernelmodule",
"author": [
{
"email": "francisco.j.pedraza.gonzalez@intel.com",
"name": "francisco.j.pedraza.gonzalez@intel.com"
}
],
"execution": {
"1": {
"action": "IMPORTANT NOTE: The firsts 2 steps refer to configuration of the environment to run the rest of the steps. These only apply for CROPS-eSDK. \n\n\n",
"expected_results": ""
},
"2": {
"action": " Initiate your Crops-esdk environment as it says in wiki https://github.com/crops/docker-win-mac-docs/wiki \n\n",
"expected_results": ""
},
"3": {
"action": "source environment-setup-i586-poky-linux \n\n",
"expected_results": "This should output a message that says SDK environment now set up; additionally you may now run devtool to perform development tasks etc etc ... \n \n"
},
"4": {
"action": "run command which devtool \n\n",
"expected_results": "this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n"
},
"5": {
"action": "devtool add v4l2loopback-driver https://github.com/umlaeute/v4l2loopback.git \n\n",
"expected_results": "This should automatically create the recipe v4l2loopback-driver.bb under <crops-esdk-workdir-workspace>/recipes/v4l2loopback-driver/v4l2loopback-driver.bb "
},
"6": {
"action": "devtool build v4l2loopback-driver \n\n",
"expected_results": "This should compile an image \n\n"
},
"7": {
"action": "devtool reset v4l2loopback-driver ",
"expected_results": "This cleans sysroot of the v4l2loopback-driver recipe, but it leaves the source tree intact. meaning it does not erase."
}
},
"summary": "sdkext_devtool_kernelmodule"
}
},
{
"test": {
"@alias": "crops-default.crops-default.sdkext_recipes_for_nodejs",
"author": [
{
"email": "francisco.j.pedraza.gonzalez@intel.com",
"name": "francisco.j.pedraza.gonzalez@intel.com"
}
],
"execution": {
"1": {
"action": "IMPORTANT NOTE: The firsts 2 steps refer to configuration of the environment to run the rest of the steps. These only apply for CROPS-eSDK. \n\n\nlets say variable npm = npm://registry.npmjs.org;name=winston;version=2.2.0 \n\n",
"expected_results": ""
},
"2": {
"action": "Initiate your Crops-esdk environment as it says in wiki https://github.com/crops/docker-win-mac-docs/wiki \n\n",
"expected_results": ""
},
"3": {
"action": "source environment-setup-i586-poky-linux \n\n",
"expected_results": "This should output a message that says SDK environment now set up; additionally you may now run devtool to perform development tasks etc etc ... \n\n"
},
"4": {
"action": "run command which devtool \n\n",
"expected_results": "this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n"
},
"5": {
"action": " 4a) git clone git://git.openembedded.org/meta-openembedded in layers/build directory \n \n4b) Add meta-openembedded/meta-oe in bblayer.conf as mentioned below: ${SDKBASEMETAPATH}/layers/build/meta-openembedded/meta-oe \\ \n\n4c) devtool add \"npm://registry.npmjs.org;name=npm;version=2.2.0\" \n\n",
"expected_results": " This should automatically create the recipe npm.bb under /recipes/npm/npm.bb \n\n"
},
"6": {
"action": "devtool build npm \n\n",
"expected_results": "This should compile an image \n\n"
},
"7": {
"action": " devtool reset npm",
"expected_results": "This cleans sysroot of the npm recipe, but it leaves the source tree intact. meaning it does not erase."
}
},
"summary": "sdkext_recipes_for_nodejs"
}
}
]

View File

@@ -0,0 +1,322 @@
[
{
"test": {
"@alias": "eclipse-plugin.eclipse-plugin.support_SSH_connection_to_Target",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "In Eclipse, swich to Remote System Explorer to create a connention baseed on SSH, input the remote target IP address as the Host name, make sure disable the proxy in Window->Preferences->General->Network Connection, set Direct as Active Provider field. ",
"expected_results": "the connection based on SSH could be set up."
},
"2": {
"action": "Configure connection from Eclipse: Run->Run Configurations->C/C++ Remote Application\\ ->New Connection->General->SSH Only ",
"expected_results": ""
},
"3": {
"action": "Then right click to connect, input the user ID and password. ",
"expected_results": ""
},
"4": {
"action": "expand the connection, it will show the Sftp Files etc. \nNOTE. Might need to change dropbear to openssh and add the packagegroup-core-eclipse-debug recipe",
"expected_results": ""
}
},
"summary": "support_SSH_connection_to_Target"
}
},
{
"test": {
"@alias": "eclipse-plugin.eclipse-plugin.Launch_QEMU_from_Eclipse",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Set the Yocto ADT's toolchain root location, sysroot location and kernel, in the menu Window -> Preferences -> Yocto ADT. \n \n",
"expected_results": ""
},
"2": {
"action": "wget autobuilder.yoctoproject.org/pub/releases//machines/qemu/qemux86/qemu (ex:core-image-sato-sdk-qemux86-date-rootfs-tar-bz2) \nsource /opt/poky/version/environment-setup-i585-poky-linux \n\nExtract qemu with runqemu-extract-sdk /home/user/file(ex.core-image-sato-sdk-qemux86.bz2) \n/home/user/qemux86-sato-sdk \n\n",
"expected_results": " Qemu can be lauched normally."
},
"3": {
"action": "(a)Point to the Toolchain: \n \nIf you are using a stand-alone pre-built toolchain, you should be pointing to the /opt/poky/{test-version} directory as Toolchain Root Location. This is the default location for toolchains installed by the ADT Installer or by hand. If ADT is installed in other location, use that location as Toolchain location.\nIf you are using a system-derived toolchain, the path you provide for the Toolchain Root Location field is the Yocto Project's build directory. \n \n E.g:/home/user/yocto/poky/build \n",
"expected_results": ""
},
"4": {
"action": "(b)Specify the Sysroot Location: \nSysroot Location is the location where the root filesystem for the target hardware is created on the development system by the ADT Installer (SYSROOT in step 2 of the case ADT installer Installation). \n \n Local : e.g: /home/user/qemux86-sato-sdk \nUsing ADT : e.g :/home/user/test-yocto/qemux86 \n\n",
"expected_results": ""
},
"5": {
"action": "(c)Select the Target Architecture: \n \nThe target architecture is the type of hardware you are going to use or emulate. Use the pull-down Target Architecture menu to make your selection. \n \n\n",
"expected_results": ""
},
"6": {
"action": "(d) QEMU: \nSelect this option if you will be using the QEMU emulator. Specify the Kernel matching the QEMU architecture you are using. \n wget autobuilder.yoctoproject.org/pub/releases//machines/qemu/qemux86/bzImage-qemux86.bin \n e.g: /home/$USER/yocto/adt-installer/download_image/bzImage-qemux86.bin \n\n",
"expected_results": ""
},
"7": {
"action": "(e) select OK to save the settings. \n\n\n1: In the Eclipse toolbar, expose the Run -> External Tools menu. Your image should appear as a selectable menu item. \n2: Select your image in the navigation pane to launch the emulator in a new window. \n3: If needed, enter your host root password in the shell window at the prompt. This sets up a Tap 0 connection needed for running in user-space NFS mode. \n",
"expected_results": ""
}
},
"summary": "Launch_QEMU_from_Eclipse"
}
},
{
"test": {
"@alias": "eclipse-plugin.eclipse-plugin.Relocatable_SDK_-_C_-_Build_Hello_World_ANSI_C_Autotools_Project",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Launch a QEMU of target enviroment.(Reference to case \"ADT - Launch qemu by eclipse\") ",
"expected_results": ""
},
"2": {
"action": "Select File -> New -> Project.",
"expected_results": ""
},
"3": {
"action": "Double click C/C++.",
"expected_results": ""
},
"4": {
"action": "Click C or C++ Project to create the project.",
"expected_results": ""
},
"5": {
"action": "Expand Yocto ADT Project.",
"expected_results": ""
},
"6": {
"action": "Select Hello World ANSI C Autotools Project.",
"expected_results": ""
},
"7": {
"action": "Put a name in the Project name. Do not use hyphens as part of the name. \n \n",
"expected_results": ""
},
"8": {
"action": "Click Next.",
"expected_results": ""
},
"9": {
"action": "Add information in the Author and Copyright notice fields. \n1",
"expected_results": ""
},
"10": {
"action": "Click Finish. \n1",
"expected_results": ""
},
"11": {
"action": "If the \"open perspective\" prompt appears, click \"Yes\" so that you open the C/C++ perspective. \n1",
"expected_results": ""
},
"12": {
"action": "In the Project Explorer window, right click the project -> Reconfigure project. \n1",
"expected_results": ""
},
"13": {
"action": "In the Project Explorer window, right click the project -> Build project. \n1",
"expected_results": "Under the Project files, a new folder appears called Binaries. This indicates that the compilation have been successful and the project binary have been created. \n"
},
"14": {
"action": "Right click it again and Run as -> Run Configurations. \n\t\t\tUnder Run Configurations expand \"C/C++ Remote Application\". A configuration for the current project should appear. Clicking it will display the configuration settings. \n\t\t\tin \"C/C++ Application\" field input Remote Absolute File path for C/C++ Application. e.g.: /home/root/myapplication \n\t\t\tIn \"Connection\" drop-down list make sure a TCF connection is set up for your target. If not, create a new one by clicking the New button. \n1",
"expected_results": "step 14 to step 16 -> Build succeed and the console outputs Hello world, you can also check the output on target."
},
"15": {
"action": "After all settings are done, select the Run button on the bottom right corner \n\n1",
"expected_results": ""
},
"16": {
"action": "Repeat the steps 14-15, but instead of using Run Configurations use Debug Configurations: \nRight click it again and Debug as -> Debug Configurations \nUnder Debug Configurations expand \"C/C++ Remote Application\". A configuration for the current project should appear. Clicking it will display the configuration settings. \nin \"C/C++ Application\" field input Remote Absolute File path for C/C++ Application.\ne.g.: /home/root/myapplication \nIn \"Connection\" drop-down list make sure a TCF connection is set up for your target. If not, create a new one by clicking the New button \n1",
"expected_results": ""
},
"17": {
"action": "After all settings are done, select the Debug button on the bottom right corner",
"expected_results": ""
}
},
"summary": "Relocatable_SDK_-_C_-_Build_Hello_World_ANSI_C_Autotools_Project"
}
},
{
"test": {
"@alias": "eclipse-plugin.eclipse-plugin.Relocatable_SDK_-_C++_-_Build_Hello_World_C++_Autotools_project",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Launch a QEMU of target enviroment.(Reference to case \"ADT - Launch qemu by eclipse\") ",
"expected_results": ""
},
"2": {
"action": "Select File -> New -> Project. ",
"expected_results": ""
},
"3": {
"action": "Double click C/C++. ",
"expected_results": ""
},
"4": {
"action": "Click C or C++ Project to create the project. ",
"expected_results": ""
},
"5": {
"action": "Expand Yocto ADT Project. ",
"expected_results": ""
},
"6": {
"action": "Select Hello World ANSI C++ Autotools Project. ",
"expected_results": ""
},
"7": {
"action": "Put a name in the Project name. Do not use hyphens as part of the name. \n \n",
"expected_results": ""
},
"8": {
"action": "Click Next.",
"expected_results": ""
},
"9": {
"action": "Add information in the Author and Copyright notice fields.",
"expected_results": ""
},
"10": {
"action": "Click Finish. \n1",
"expected_results": ""
},
"11": {
"action": "If the \"open perspective\" prompt appears, click \"Yes\" so that you open the C/C++ perspective. \n1",
"expected_results": ""
},
"12": {
"action": "In the Project Explorer window, right click the project -> Reconfigure project. \n1",
"expected_results": ""
},
"13": {
"action": "In the Project Explorer window, right click the project -> Build project. \n\n1",
"expected_results": "under the Project files, a new folder appears called Binaries. This indicates that the compilation have been successful and the project binary have been created. \n"
},
"14": {
"action": "Right click it again and Run as -> Run Configurations. \n\t\t\tUnder Run Configurations expand \"C/C++ Remote Application\". A configuration for the current project should appear. Clicking it will display the configuration settings. \n\t\t\tin \"C/C++ Application\" field input Remote Absolute File path for C/C++ Application. e.g.: /home/root/myapplication \n\t\t\tIn \"Connection\" drop-down list make sure a TCF connection is set up for your target. If not, create a new one by clicking the New button. \n1",
"expected_results": "step 14 to step 16 -> Build succeed and the console outputs Hello world, you can also check the output on target."
},
"15": {
"action": "After all settings are done, select the Run button on the bottom right corner \n\n1",
"expected_results": ""
},
"16": {
"action": "Repeat the steps 14-15, but instead of using Run Configurations use Debug Configurations: \n\t\tRight click it again and Debug as -> Debug Configurations \n\t\tUnder Debug Configurations expand \"C/C++ Remote Application\". A configuration for the current project should appear. Clicking it will display the configuration settings. \n\t\tin \"C/C++ Application\" field input Remote Absolute File path for C/C++ Application. \n\t\te.g.: /home/root/myapplication \n\t\tIn \"Connection\" drop-down list make sure a TCF connection is set up for your target. If not, create a new one by clicking the New button \n1",
"expected_results": ""
},
"17": {
"action": "After all settings are done, select the Debug button on the bottom right corner",
"expected_results": ""
}
},
"summary": "Relocatable_SDK_-_C++_-_Build_Hello_World_C++_Autotools_project"
}
},
{
"test": {
"@alias": "eclipse-plugin.eclipse-plugin.Build_Eclipse_Plugin_from_source",
"author": [
{
"email": "laurentiu.serban@intel.com",
"name": "laurentiu.serban@intel.com"
}
],
"execution": {
"1": {
"action": "Clone eclipse-poky source. \n \n - git clone git://git.yoctoproject.org/eclipse-poky \n\n",
"expected_results": "Eclipse plugin is successfully installed \n\nDocumentation is there. For example if you have release yocto-2.0.1 you will found on http://autobuilder.yoctoproject.org/pub/releases/yocto-2.0.1/eclipse-plugin/mars/ archive with documentation like org.yocto.doc-development-$date.zip \n \n"
},
"2": {
"action": "Checkout correct tag. \n\n - git checkout <eclipse-version>/<yocto-version> \n\n",
"expected_results": "After plugin is build you must have 4 archive in foder scripts from eclipse-poky: \n - org.yocto.bc - mars-master-$date.zip \n - org.yocto.doc - mars-master-$date.zip --> documentation \n - org.yocto.sdk - mars-master-$date.zip \n - org.yocto.sdk - mars-master-$date.-archive.zip --> plugin "
},
"3": {
"action": "Move to scripts/ folder. \n\n",
"expected_results": ""
},
"4": {
"action": "Run ./setup.sh \n\n",
"expected_results": ""
},
"5": {
"action": "When the script finishes, it prompts a command to issue to build the plugin. It should look similar to the following: \n\n$ ECLIPSE_HOME=/eclipse-poky/scripts/eclipse ./build.sh /&1 | tee -a build.log \n\nHere, the three arguments to the build script are tag name, branch for documentation and release name. \n\n",
"expected_results": ""
},
"6": {
"action": "On an eclipse without the Yocto Plugin, select \"Install New Software\" from Help pull-down menu \n\n",
"expected_results": ""
},
"7": {
"action": "Select Add and from the dialog choose Archive... Look for the *archive.zip file that was built previously with the build.sh script. Click OK. \n\n",
"expected_results": ""
},
"8": {
"action": "Select all components and proceed with Installation of plugin. Restarting eclipse might be required.\n",
"expected_results": ""
}
},
"summary": "Build_Eclipse_Plugin_from_source"
}
},
{
"test": {
"@alias": "eclipse-plugin.eclipse-plugin.Eclipse_Poky_installation_and_setup",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Install SDK \n\ta)Download https://autobuilder.yocto.io/pub/releases//toolchain/x86_64/poky-glibc-x86_64-core-\timage-sato-i586-toolchain-.sh \n\tb)Run the SDK installer and accept the default installation directory ",
"expected_results": ""
},
"2": {
"action": "Install \"Eclipse IDE for C/C++ Developers\" Oxygen release (4.7.0) \n\ta) Go to https://www.eclipse.org/downloads/packages/all, click \"Oxygen R\" \n\tb) Click to download the build for your OS \n\tc) Click \"Download\" button to download from a mirror \n\td) Run \"tar xf\" to extract the downloaded archive ",
"expected_result": ""
},
"3": {
"action": "Install \"Eclipse IDE for C/C++ Developers\" Oxygen release (4.7.0) (Continue) \n\te) Run \"eclipse/eclipse\" to start Eclipse \n\tf) Optional step for host machine within Intel network: In Eclipse workbench window, go to \"Window\" menu -> \"Preferences...\". \n\tg) In \"Preferences\" dialog, go to \"General\" -> \"Network Connections\", set \"Active Provider\" to \"Manual\". In \"Proxy \tentries\" table, select HTTP and click \"Edit\" and enter host \"proxy-chain.intel.com\" port 911, click OK. Repeat for HTTPS with port 912 \nClick OK to close \"Preferences\" dialog. \n\th) Go to \"File\" menu -> \"Restart\" to restart Eclipse for proxy settings to take effect. ",
"expected_result": ""
},
"4": {
"action": "Install Eclipse Poky plugins \n\ta) Download https://autobuilder.yocto.io/pub/releases/<yocto-version>/eclipse-plugin/<eclipse-version>/org.yocto.sdk-development-<date>-archive.zip \n\tb) In Eclipse workbench window, go to \"Help\" menu -> \"Install New Software...\" \n\tc) In \"Install\" dialog, click \"Add...\" button \n\td) In \"Add Repository\" dialog, enter \"Eclipse Poky\" for (repository) Name, click \"Archive...\" ",
"expected_results": ""
},
"5": {
"action": "Install Eclipse Poky plugins (continue) \n\te) In \"Repository archive\" browse dialog, select the downloaded Eclipse Poky repository archive \n\tf) Back in \"Add Repository\" dialog, click \"OK\" \n\tg) Back in \"Install\" dialog, make sure \"Work with:\" is set to \"Eclipse Poky\" repository, tick \"Yocto Project \tDocumentation Plug-in\" and \"Yocto Project SDK Plug-in\", click \"Next >\" and verify plugins/features name/version, \tclick \"Next >\" and accept license agreement, click \"Finish\" \n\th) If \"Security Warning\" dialog appears, click \"OK\" to install unsigned content. \n\ti) In \"Software Updates\" dialog, click \"Yes\" to restart Eclipse to complete Eclipse Poky plugins installation. ",
"expected_results": ""
},
"6": {
"action": "Setup Eclipse Poky to use SDK \n\ta) In Eclipse workbench window, go to \"Window\" menu -> \"Preferences\". \n\tb) In \"Preferences\" window, go to \"Yocto Project SDK\", in \"Cross Compiler Options\" frame, select \"Standalone pre-\tbuilt toolchain\". ",
"expected_results": "Eclipse Poky plugins installed and running successfully, e.g. observe that \"Yocto Project Tools\" menu is available on Eclipse workbench window."
}
},
"summary": "Eclipse_Poky_installation_and_setup"
}
}
]

View File

@@ -0,0 +1,200 @@
[
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_defconfig",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_7 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps_7",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_7"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_defconfig"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_defconfig+fragments",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_8 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps_8",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_8"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_defconfig+fragments"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_Applying_patches",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_Applying_patches"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-local-source",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_2 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps_2",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_2"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-local-source"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-custom-local-source",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_3 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps_3",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_3"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-custom-local-source"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_recipe-space_meta",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_5 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps_5",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_5"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_recipe-space_meta"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_External_source",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_6 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps_6",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_6"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_External_source"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_building_external_modules(hello-mod)",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_10 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup_10",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_10"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_building_external_modules(hello-mod)"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_local_parallel_meta",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Follow the Set Up procedure to complete the common and specific prerequisites for this test case. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Setup https://wikioproject.org/wiki/Kernel_Development_Test_Cases#Prerequisites_4 ",
"expected_results": ""
},
"2": {
"action": "Execute the test case steps asdocumented on the \"Kernel Development Test Cases\" wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Steps_4",
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_4"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_local_parallel_meta"
}
}
]

View File

@@ -0,0 +1,260 @@
[
{
"test": {
"@alias": "oe-core.scripts.Use_scripts/pybootchartgui/pybootchartgui.py_to_generate_build_profiles",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Run a build for a recipe (e.g. core-image-minimal)",
"expected_results": ""
},
"2": {
"action": "Run the profiling script, ../scripts/pybootchartgui/pybootchartgui.py tmp/buildstats/ \n\n",
"expected_results": ""
},
"3": {
"action": "Verify the results ",
"expected_results": "The scripts generates svg files with the profiling results . "
}
},
"summary": "Use_scripts/pybootchartgui/pybootchartgui.py_to_generate_build_profiles"
}
},
{
"test": {
"@alias": "oe-core.scripts.Crosstap_script_check",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Create the trace_open.stp script as follows in the host machine: \n\n\nprobe syscall.open \n\n{ \n\n\n printf (\"%s(%d) open (%s)\\n\", execname(), pid(), argstr) \n\n} \n\n\n\nif the above failed, then create the below instead. \n\nprobe syscall.open \n{ \n printf (\"%s(%d) open\\n\", execname(), pid()) \n\n} \n \n",
"expected_results": ""
},
"2": {
"action": "Add 'tools-profile' and 'ssh-server-openssh' to EXTRA_IMAGE_FEATURES in local.conf \n\n\n",
"expected_results": ""
},
"3": {
"action": "Build a core-image-minimal image, build systemtap-native. Start the image under qemu. \n\n",
"expected_results": ""
},
"4": {
"action": "Make sure that the ssh service is started on the Qemu machine. \n\n",
"expected_results": ""
},
"5": {
"action": "From the host machine poky build_dir, run \"crosstap root@192.168.7.2 trace_open.stp\".",
"expected_results": ""
},
"6": {
"action": "In QEMU, try to open some applications, such as open a terminal, input some command, \n\n",
"expected_results": ""
},
"7": {
"action": "Check the host machine, \"crosstap\" has related output. \n\n\n\nNOTE: Do not build the kernel from shared state(sstate-cache) for this to work.",
"expected_results": "The script should successfully connect to the qemu machine and there \nshould be presented a list of services(pid, process name) which run on \nthe qemu machine. "
}
},
"summary": "Crosstap_script_check"
}
},
{
"test": {
"@alias": "oe-core.scripts.List_all_the_PACKAGECONFIG's_flags",
"author": [
{
"email": "yi.zhao@windriver.com",
"name": "yi.zhao@windriver.com"
}
],
"execution": {
"1": {
"action": " Download the poky source and setup the environment. ",
"expected_results": ""
},
"2": {
"action": "Run \"../scripts/contrib/list-packageconfig-flags.py\" ",
"expected_results": "In step 2, will list available pkgs which have PACKAGECONFIG flags: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n============================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \n"
},
"3": {
"action": "Run \"../scripts/contrib/list-packageconfig-flags.py -f\" ",
"expected_results": "In step 3, will list available PACKAGECONFIG flags and all affected pkgs \nPACKAGECONFIG FLAG PACKAGE NAMES (or RECIPE NAMES) \n==================================== \n3g connman-1.16 \n \navahi cups-1.6.3 pulseaudio-4.0 \nbeecrypt rpm-5.4.9 rpm-native-5.4.9 \n"
},
"4": {
"action": "Run \"../scripts/contrib/list-packageconfig-flags.py -a\" ",
"expected_results": "In step 4, will list all pkgs and PACKAGECONFIG information: \n================================================== \ngtk+-2.24.18 \n/home/jiahongxu/yocto/poky/meta/recipes-gnome/gtk+/gtk+_2.24.18.bb \nPACKAGECONFIG x11 \nPACKAGECONFIG[x11] --with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS} \nxf86-video-intel-2.21.9 \n/home/jiahongxu/yocto/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.9.bb \nPACKAGECONFIG None \nPACKAGECONFIG[xvmc] --enable-xvmc,--disable-xvmc,libxvmc \nPACKAGECONFIG[sna] --enable-sna,--disable-sna \n"
},
"5": {
"action": "Run \"../scripts/contrib/list-packageconfig-flags.py -p\" ",
"expected_results": "In step 5, will list pkgs with preferred version: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n=================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \nbluez5-5.7 alsa defaultval obex-profiles \n\n\n\n "
}
},
"summary": "List_all_the_PACKAGECONFIG's_flags"
}
},
{
"test": {
"@alias": "oe-core.bitbake.Test_bitbake_menuconfig",
"author": [
{
"email": "jose.perez.carranza@intel.com",
"name": "jose.perez.carranza@intel.com"
}
],
"execution": {
"1": {
"action": "clone poky \n \n",
"expected_results": ""
},
"2": {
"action": "cd poky \n\n",
"expected_results": ""
},
"3": {
"action": "source oe-init-build-env && cd build \n\n",
"expected_results": ""
},
"4": {
"action": "set below in local.conf \n\n \tMACHINE = \"qemux86\" \n\n",
"expected_results": ""
},
"5": {
"action": "bitbake linux-yocto -c kernel_configme -f \n\n",
"expected_results": ""
},
"6": {
"action": "bitbake linux-yocto -c menuconfig \n\n",
"expected_results": ""
},
"7": {
"action": "Once menuconfig launches, use the interface to navigate through the selections and \n enable option \"64-bit kernel\" \n\n",
"expected_results": ""
},
"8": {
"action": "Save changes and set name of the file as \"test.config\" ",
"expected_results": "Open file: \n \npoky/build//tmp/work/qemux86-poky-linux/linux-yocto/4.X.X+*/linux-qemux86-standard-build/test.config \n \n \n\nand verify that changes are present in the file as follows: \n \nCONFIG_64BIT=y \n \nCONFIG_X86_64=y"
}
},
"summary": "Test_bitbake_menuconfig"
}
},
{
"test": {
"@alias": "oe-core.bitbake.test_bitbake_devshell",
"author": [
{
"email": "jose.perez.carranza@intel.com",
"name": "jose.perez.carranza@intel.com"
}
],
"execution": {
"1": {
"action": "clone poky ",
"expected_results": ""
},
"2": {
"action": "cd poky ",
"expected_results": ""
},
"3": {
"action": "source oe-init-build-env && cd build ",
"expected_results": ""
},
"4": {
"action": "bitbake matchbox-desktop ",
"expected_results": "Package was build correctly "
},
"5": {
"action": "bitbake matchbox-desktop -c devshell ",
"expected_results": "A terminal with a shell prompt within the OpenEmbedded build environment is opened "
},
"6": {
"action": "Verify that \"matchbox-desktop\" binary file is not created under\"src\" directory ",
"expected_results": ""
},
"7": {
"action": "Run command:./configure && make ",
"expected_results": "Verify that \"matchbox-desktop\" binary file was created successfully under \"src/\" directory "
},
"8": {
"action": "Exit fromthe devshell terminal,exit ",
"expected_results": "Terminal back to the build directory"
}
},
"summary": "test_bitbake_devshell"
}
},
{
"test": {
"@alias": "oe-core.bitbake.test_dependency_explorer_is_launched",
"author": [
{
"email": "jose.perez.carranza@intel.com",
"name": "jose.perez.carranza@intel.com"
}
],
"execution": {
"1": {
"action": "clone poky ",
"expected_results": ""
},
"2": {
"action": "cd poky ",
"expected_results": ""
},
"3": {
"action": "source oe-init-build-env ",
"expected_results": ""
},
"4": {
"action": "bitbake -u taskexp -g core-image-full-cmdline \n\nNOTE: To execute the last command of this test, it's necessary that the machine is executing an X11 server, or if that's not the case (for example, if running the test on a headless server), it is required to enable ssh X11 forwarding on both, the server and the client, and have the X11 server running on the client. \n\nThe instructions to enable X11 forwarding vary between distributions. But for example, these are the steps to enable it between a server running openSUSE Leap 42.1 and a client with Fedora 24: \nA. On the server, make sure /home//.ssh/config contains the line: \n ForwardX11 yes \nB. On the server, make sure xauth is installed by running: \n which xauth \nC. On the client, connect to the server, enabling X11 forwarding, for example by using: \n ssh -X user@server \nNOTE 2: depexp was renamed to taskexp on 2.3 M4",
"expected_results": "Verify that a \"dependency explorer\" is opened and file \n dependencies are listed "
}
},
"summary": "test_dependency_explorer_is_launched"
}
},
{
"test": {
"@alias": "oe-core.bitbake.test_bitbake_sane_error_for_invalid_layer",
"author": [
{
"email": "jose.perez.carranza@intel.com",
"name": "jose.perez.carranza@intel.com"
}
],
"execution": {
"1": {
"action": "clone poky \n",
"expected_results": ""
},
"2": {
"action": "cd poky \n \n",
"expected_results": ""
},
"3": {
"action": "source oe-init-build-env && cd build \n \n",
"expected_results": ""
},
"4": {
"action": "Add a invalid layer to conf/bblayers.conf \"<poky dir>/my-invalid-layer\" \n\t\n",
"expected_results": ""
},
"5": {
"action": "bitbake core-image-minimal",
"expected_results": "Below error should be displayed:\n\"ERROR: Layer directory does not exist! Please check BBLAYERS in <poky dir>/<build dir>/conf/bblayers.conf\""
}
},
"summary": "test_bitbake_sane_error_for_invalid_layer"
}
}
]

View File

@@ -0,0 +1,32 @@
[
{
"test": {
"@alias": "sdk.sdk_runqemu.test_sdk_toolchain_can_run_multiple_QEMU_machines_under_UNFS",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
"name": "ee.peng.yeoh@intel.com"
}
],
"execution": {
"1": {
"action": "Prepare kernel, rootfs tar.bz2 image, and qemu configuration \n \ta. Download kernel, rootfs tar.bz2 image and qemu configuration from public autobuilder webpage \n \tb. Goto https://autobuilder.yocto.io/pub/releases/<target_release>/machines/qemu/qemux86/ \n \tc. Download \n \t \ti. rootfs tar.bz2: core-image-sato-sdk-qemux86.tar.bz2 \n \t\tii. kernel: bzImage-qemux86.bin \n \t\tiii. qemu configuration: core-image-sato-sdk-qemux86.qemuboot.conf ",
"expected_results": ""
},
"2": {
"action": "Download & install sdk toolchain from public autobuilder \n \ta. Goto https://autobuilder.yocto.io/pub/releases/<target_release>/toolchain/x86_64/ \n \tb. Download poky-glibc-x86_64-core-image-sato-sdk-<type-arch>-toolchain-<release-version>.sh \n \tc. Run command: poky-glibc-x86_64-core-image-sato-sdk-<type-arch>-toolchain-<release-version>.sh",
"expected_results": ""
},
"3": {
"action": "Extract rootfs twice into two images \n \ta. Run 2 commands below: \n runqemu-extract-sdk core-image-sato-sdk-qemux86.tar.bz2 qemux86_rootfs_image1 \n runqemu-extract-sdk core-image-sato-sdk-qemux86.tar.bz2 qemux86_rootfs_image2",
"expected_results": ""
},
"4": {
"action": " From the 2 terminals, start qemu to boot up both two images \n \ta. Run 2 commands below: \n runqemu core-image-sato-sdk-qemux86.qemuboot.conf qemux86_rootfs_image1 \n runqemu core-image-sato-sdk-qemux86.qemuboot.conf qemux86_rootfs_image2 ",
"expected_results": "Expect both qemu to boot up successfully."
}
},
"summary": "test_sdk_toolchain_can_run_multiple_QEMU_machines_under_UNFS"
}
}
]

View File

@@ -34,7 +34,7 @@ class KSample(OERuntimeTestCase):
cmd = "ls " + "/lib/modules/" + output + "/kernel/samples/" + path + module_name
status, output = self.target.run(cmd)
if status != 0:
error_info = module_name + "doesn't exist"
error_info = module_name + " doesn't exist"
self.skipTest(error_info)
def kfifo_func(self, name=''):

View File

@@ -17,7 +17,10 @@ class OpkgRepoTest(OpkgTest):
@classmethod
def setUpClass(cls):
service_repo = os.path.join(cls.tc.td['DEPLOY_DIR_IPK'], 'all')
allarchfeed = 'all'
if cls.tc.td["MULTILIB_VARIANTS"]:
allarchfeed = cls.tc.td["TUNE_PKGARCH"]
service_repo = os.path.join(cls.tc.td['DEPLOY_DIR_IPK'], allarchfeed)
cls.repo_server = HTTPService(service_repo, cls.tc.target.server_ip)
cls.repo_server.start()

View File

@@ -32,8 +32,9 @@ def setUpModule():
# This helps us match exactly when we're using this path later
canonical_layerpath += '/'
if not edited_layers and canonical_layerpath.endswith('/meta/'):
canonical_layerpath = os.path.realpath(canonical_layerpath) + '/'
edited_layers.append(layerpath)
oldmetapath = layerpath
oldmetapath = os.path.realpath(layerpath)
result = runCmd('git rev-parse --show-toplevel', cwd=canonical_layerpath)
oldreporoot = result.output.rstrip()
newmetapath = os.path.join(corecopydir, os.path.relpath(oldmetapath, oldreporoot))

View File

@@ -166,14 +166,17 @@ class QemuTest(OESelftestTestCase):
# when qemu was shutdown by the above shutdown command
qemu.runner.stop_thread()
time_track = 0
while True:
is_alive = qemu.check()
if not is_alive:
return True
if time_track > timeout:
return False
time.sleep(1)
time_track += 1
try:
while True:
is_alive = qemu.check()
if not is_alive:
return True
if time_track > timeout:
return False
time.sleep(1)
time_track += 1
except SystemExit:
return True
def test_qemu_can_shutdown(self):
self.assertExists(self.qemuboot_conf)

View File

@@ -262,6 +262,7 @@ class SStateTests(SStateBase):
self.write_config("""
MACHINE = "qemux86"
TMPDIR = "${TOPDIR}/tmp-sstatesamehash"
TCLIBCAPPEND = ""
BUILD_ARCH = "x86_64"
BUILD_OS = "linux"
SDKMACHINE = "x86_64"
@@ -272,6 +273,7 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
self.write_config("""
MACHINE = "qemux86"
TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
TCLIBCAPPEND = ""
BUILD_ARCH = "i686"
BUILD_OS = "linux"
SDKMACHINE = "i686"
@@ -307,12 +309,14 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
NATIVELSBSTRING = \"DistroA\"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none")
self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
NATIVELSBSTRING = \"DistroB\"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
@@ -340,10 +344,12 @@ NATIVELSBSTRING = \"DistroB\"
configA = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86-64\"
"""
configB = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemuarm\"
"""
self.sstate_allarch_samesigs(configA, configB)
@@ -356,6 +362,7 @@ MACHINE = \"qemuarm\"
configA = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86-64\"
require conf/multilib.conf
MULTILIBS = \"multilib:lib32\"
@@ -363,6 +370,7 @@ DEFAULTTUNE_virtclass-multilib-lib32 = \"x86\"
"""
configB = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemuarm\"
require conf/multilib.conf
MULTILIBS = \"\"
@@ -407,6 +415,7 @@ MULTILIBS = \"\"
self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86\"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
@@ -416,6 +425,7 @@ DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
bitbake("world meta-toolchain -S none")
self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86copy\"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
@@ -451,6 +461,7 @@ DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
self.write_config("""
TMPDIR = "${TOPDIR}/tmp-sstatesamehash"
TCLIBCAPPEND = ""
BB_NUMBER_THREADS = "${@oe.utils.cpu_count()}"
PARALLEL_MAKE = "-j 1"
DL_DIR = "${TOPDIR}/download1"
@@ -464,6 +475,7 @@ http_proxy = ""
bitbake("world meta-toolchain -S none")
self.write_config("""
TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
TCLIBCAPPEND = ""
BB_NUMBER_THREADS = "${@oe.utils.cpu_count()+1}"
PARALLEL_MAKE = "-j 2"
DL_DIR = "${TOPDIR}/download2"

View File

@@ -350,10 +350,10 @@ class QemuRunner:
return True
def stop(self):
self.stop_thread()
self.stop_qemu_system()
if hasattr(self, "origchldhandler"):
signal.signal(signal.SIGCHLD, self.origchldhandler)
self.stop_thread()
self.stop_qemu_system()
if self.runqemu:
if hasattr(self, "monitorpid"):
os.kill(self.monitorpid, signal.SIGKILL)

View File

@@ -0,0 +1,27 @@
From 31dde3562f287429eea94b77250d184818b49063 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 15 Oct 2018 16:55:09 +0800
Subject: [PATCH] avoid start failure with bind user
Upstream-Status: Pending
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
init.d | 1 +
1 file changed, 1 insertion(+)
diff --git a/init.d b/init.d
index b2eec60..6e03936 100644
--- a/init.d
+++ b/init.d
@@ -57,6 +57,7 @@ case "$1" in
modprobe capability >/dev/null 2>&1 || true
if [ ! -f /etc/bind/rndc.key ]; then
/usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
+ chown root:bind /etc/bind/rndc.key >/dev/null 2>&1 || true
chmod 0640 /etc/bind/rndc.key
fi
if [ -f /var/run/named/named.pid ]; then
--
2.7.4

Some files were not shown because too many files have changed in this diff Show More