Compare commits

..

688 Commits

Author SHA1 Message Date
Yong, Jonathan
e56be3cee5 bitbake: bitbake-user-manual: Added "usehead" parameter.
(Bitbake rev: 195c7d19896ded7358154194926a3e3f5524ffef)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-10 20:43:01 +00:00
Scott Rifenbark
bfea1efa7b documentation: Updated release date to July 2018
(From yocto-docs rev: 0ea9150ec854f9d9a38b90ee0f89039a6f85ae92)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-15 10:28:33 +01:00
Tzu Hsiang Lin
ccbb13fb66 bitbake: fetch2: fix import error for Python 3.6.5
When running bitbake command with Python 3.6.5 always result in
import error causing by the change of distutils module.
This patch replaces the method to search executable in PATH by
"/usr/bin/env <command>".

(Bitbake rev: 0193e1f5b2128602ad8a80c82a3dd4d2cdb6e4a7)

Signed-off-by: Tzu Hsiang Lin <t9360341@ntut.org.tw>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-26 13:51:02 +01:00
Scott Rifenbark
13c465663d documentation: Updated manual revision tables with 2.2.4 release date
Using "June 2018"

(From yocto-docs rev: 8395f16ccb8a5e176188c4c2f182321e4162e116)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:23:02 +01:00
Scott Rifenbark
b098286b38 documentation: Updated title page notes.
Fixed the notes to help the user understand where to get
the correct version of the manuals for any given version
of YP.

(From yocto-docs rev: 75a3244e40d15755b60adea126cda12755f28909)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:23:02 +01:00
Richard Purdie
df76669bdd build-appliance-image: Update to morty head revision
(From OE-Core rev: 4b32784b8c95047dafbc7048bfe03e9e5ceb3367)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 09:18:16 +01:00
Richard Purdie
f627c9a573 poky: Bump distro version to 2.2.4
(From meta-yocto rev: 5d72ec2fac4a9782f5330cb45346c4f5f8bfdfca)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 09:17:50 +01:00
Armin Kuster
e31e85d869 ruby: Update to 2.4.4
The dot releases are maint only.

2.4.4 included:
CVE-2017-17742: HTTP response splitting in WEBrick
CVE-2018-6914: Unintentional file and directory creation with directory traversal in tempfile and tmpdir
CVE-2018-8777: DoS by large request in WEBrick
CVE-2018-8778: Buffer under-read in String#unpack
CVE-2018-8779: Unintentional socket creation by poisoned NUL byte in UNIXServer and UNIXSocket
CVE-2018-8780: Unintentional directory traversal by poisoned NUL byte in Dir

(From OE-Core rev: ce12ff394281a42448d92109568db33739b2b542)

(From OE-Core rev: 43721cc12ce782603ecdc0aa3a514bc6c8d4f97f)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup for Morty context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Andre McCurdy
3be01630d8 ruby: fix typo in gmp PACKAGECONFIG option
(From OE-Core rev: 9fb931b69ece7f8a644f9e25600bcbbc9266a761)

(From OE-Core rev: a9b55cbec9f5ff11f92f50c529049e83ac898043)

(From OE-Core rev: b52c5967c24c37c0da48984a45521206e17e4291)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Ross Burton
ced662c5a5 ruby: remove spurious db build dependency
The dbm module uses gdbm by default which is also a build dependency.

(From OE-Core rev: 79121ff54420e5cc331552ca5620aed81a36aac9)

(From OE-Core rev: 20d9821e9131c3d715ed629ad38eed802f737056)

(From OE-Core rev: 5885a5f85096659445e752cee1525c43f4f38d73)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Martin Jansa
6b3b9062e3 test-dependencies.sh: remove /sysroots* between component builds
* glibc is now the only component in morty release which is using TMPDIR/sysroots-components (normally used only after RSS):
  oe-core$ git grep "\${STAGING_DIR}-components"
  meta/recipes-core/glibc/glibc-locale.inc:LOCALETREESRC = "${STAGING_DIR}-components/${PACKAGE_ARCH}/glibc-stash-locale"
  meta/recipes-core/glibc/glibc-mtrace.inc:SRC = "${STAGING_DIR}-components/${PACKAGE_ARCH}/glibc-stash-locale/scripts"
  meta/recipes-core/glibc/glibc-package.inc:do_stash_locale[sstate-outputdirs] = "${STAGING_DIR}-components/${PACKAGE_ARCH}/glibc-stash-locale"
  meta/recipes-core/glibc/glibc-package.inc:do_stash_locale[sstate-fixmedir] = "${STAGING_DIR}-components/${PACKAGE_ARCH}/glibc-stash-locale"
  meta/recipes-core/glibc/glibc-scripts.inc:SRC = "${STAGING_DIR}-components/${PACKAGE_ARCH}/glibc-stash-locale/scripts"

  test-dependencies selective pruning of TMPDIR, deletes sysroots, but not sysroots-components

  which leaves TMPDIR/sysroots-components files from qlibc.do_stash_locale behind and when next build started in the same workspace it failed, because it was trying to overwrite files already there.

(From OE-Core rev: 386c183971929e5440cb3fa957d3ce8a93943b4f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Martin Jansa
3af875b26b sstate-diff-machines.sh: Replace MACHINE_ARCH only at the beginning and separated with dash
* I had some components where the MACHINE name was also included in PV of allarch recipe
  which was tripping the script into saying that they have different signatures (because
  for one MACHINE was the string in PV replaced with 'MACHINE' and not for other MACHINEs

(From OE-Core rev: d75c28fc0b4b16eb75e9c68d9d6224a0d782607e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Martin Jansa
5e8674104c sstate-sysroot-cruft.sh: Extend the whitelist
* add more php5 entries

(From OE-Core rev: 23de89488b558276e35862e8342b728d91c3c488)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Armin Kuster
f2721188e7 byacc: Fic SRC_URI to use yocto sources loc.
ERROR: byacc-native-20161202-r0 do_checkuri: Fetcher failure for URL: 'ftp://invisible-island.net/byacc/byacc-20161202.tgz'. URL ftp://invisible-island.net/byacc/byacc-20161202.tgz doesn't work
ERROR: byacc-native-20161202-r0 do_checkuri: Function failed: do_checkuri

Use the file saved in the Yocto Project sources repos

(From OE-Core rev: 210cef54a09daf61e4c4237f9bb3afad161658b3)

(From OE-Core rev: f090c4499caa6c0fbec26a091361c6ed92a94ae3)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Alexander Kanavin
fce38c70d4 oe-selftest: no need to parse gpg output to determine the name of the signing key
The parsing fails on my machine, and we use a key with a hardcoded name,
and so can provide it directly.

(From OE-Core rev: b69bad2c4e51a24868422f39619a0598fd2a0533)

(From OE-Core rev: 9ef0bbcc319676436ddce0bab3f599288f57852e)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:17 +01:00
Oleksandr Kravchuk
d66a52219b libmpc: fix SRC_URI
(From OE-Core rev: 462021964a79a6c940cbce80a31a2ea3283e797c)

(From OE-Core rev: 04e5af853927cff2072fb4278a9d9fa2bd99812f)

(From OE-Core rev: 220d990fc472e069dafa45fee0ae663c42c3dfde)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-15 11:01:16 +01:00
Juro Bystricky
0e730770a9 sanity.bbclass: Improved error message
When a non-existing MACHINE is specified, sanity check issues
the following message:

    Please set a valid MACHINE in your local.conf or environment

However, MACHINE can also be set in multiconfig .conf file(s).
Hence we may have several different MACHINE settings within one
(multiconfig) build, so the present error message is fairly
ambiguous.

This patch remedies this by explicitly naming the offending MACHINE and
by amending the list of places where this erroneous MACHINE definition
could have originated.

    MACHINE=xyz is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.

[YOCTO#10810]

(From OE-Core rev: 7b7cbba0bb93893029118e5798ec5831838a5bd9)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a7cb408dd784178197687a2129e936620bf6a0d3)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:23:05 +01:00
Tanu Kaskinen
d7897f17b9 libvorbis: CVE-2018-5146
Prevent out-of-bounds write in codebook decoding. The bug could allow
code execution from a specially crafted Ogg Vorbis file.

References:
https://www.debian.org/security/2018/dsa-4140
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5146

(From OE-Core rev: 7d5d262c03745e5c61e1e9c84f108d842d16e5ec)

(From OE-Core rev: ccf97c35f6153abc639f01c4940dda5e6e8a3fbe)

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Tanu Kaskinen
b12bf1a293 libvorbis: CVE-2017-14632
Xiph.Org libvorbis 1.3.5 allows Remote Code Execution upon freeing
uninitialized memory in the function vorbis_analysis_headerout() in
info.c when vi->channels<=0, a similar issue to Mozilla bug 550184.

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14632

(From OE-Core rev: 6dcd8bdd5ffebafec5bbb811243f4dbf3a7038b8)

(From OE-Core rev: ccbef3848d749228a7947550f7712b872cff319f)

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Tanu Kaskinen
4ec84083df libvorbis: CVE-2017-14633
In Xiph.Org libvorbis 1.3.5, an out-of-bounds array read vulnerability
exists in the function mapping0_forward() in mapping0.c, which may lead
to DoS when operating on a crafted audio file with vorbis_analysis().

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14633

(From OE-Core rev: f398fb04549577922e6265c0969c6d6c35a11e7c)

(From OE-Core rev: a7f1fa651620b98c211459e80e5d9608ce8f1866)

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Armin Kuster
2861ecf224 package_manager: fix install_glob to use morty sdk pkgdir
(From OE-Core rev: c8ffc0a4456065479240de18e6080e90a7ee85c1)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Richard Purdie
05696923f6 glibc-package: Avoid race sstate races with do_stash_locale
The change to make do_stash_locale an sstate task between do_install and
do_package has some unforeseen problems since the function deletes part of
${D} but may or may not run depending on whether the task is installed from
sstate.

This cleans up the current "pre packaging" function to be more deterministic
and result in the same set of files, whichever code path we end up reaching
that point by. Its not an ideal sitation but it should avoid the race
failures we've seen on some builds.

(From OE-Core rev: 2a60bba00da9c4e2b1a1ce30e509dba82cc6c94a)

(From OE-Core rev: 9660e4d75230a8aed91a2fc4c887e332f52914e2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Richard Purdie
39ce1d5659 image/packagegroup/populate_sdk: Drop do_populate_sysroot task properly
Setting do_populate_sysroot as noexec means the code keeps thinking it can find
a manifest file for it. It also complicates sstate installtion since the code
would believe there is an sstate object there it should look for.

Instead, delete the task. This causes sdk failures as the dependencies are wrong
so fix those as well.

(From OE-Core rev: bd7d0314038a4c1a8e8c9ebdb7194f8e17db3fef)

(From OE-Core rev: 249feee857735171fc0c289fe18351203d013130)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup for getVar True bit]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Ed Bartosh
825e432a0c toolchain-shar-extract: compare SDK and host gcc versions
If ext sdk is built by gcc version higher than host gcc version
and host gcc version is 4.8 or 4.9 the installation is known to
fail due to the way uninative sstate package is built.

It's a known issue and we don't have a way to fix it for above
mentioned combinations of build and host gcc versions.

Detected non-installable combinations of gcc versions and
print an installation error.

[YOCTO #10881]

(From OE-Core rev: bfb9ea2604557804bd8c16adb57ccdd868a4020f)

(From OE-Core rev: 44a5277d25da5ab76e4bf8ad3f534a8e9a7b30eb)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Alexander Kanavin
ccf7f86a49 populate_sdk_base.bbclass: add documentation packages to SDKs if api-documentation is in DISTRO_FEATURES
(From OE-Core rev: d2b7b3fca328449cd87997be7f897b59433a153d)

(From OE-Core rev: d4a0da43bc250215083fe413c64b9bef441994af)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Ross Burton
de9010edec sdk: streamline locale removal
For some reason dnf is aborting with the fairly useless "failed to read RPMDB"
error during SDK creation.  Luckily as we're just deleting locale packages we
can pass False to remove() to use RPM directly, which doesn't crash.

(From OE-Core rev: cb118806841e585ec6ca820360329ae7d122c0af)

(From OE-Core rev: 3ebd1a7db39ee5e7ea68e2642a14a03d9b48d8fa)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Ross Burton
85f9b65306 sdk: generate locale archive and remove packages
(From OE-Core rev: c6f1010a47df33b40320aa5784181b659a3254d7)

(From OE-Core rev: a043ec4fabad26861af83fdc54838544bb8bb3a8)

(From OE-Core rev: 3819f8848e4b7b61a76925586e00b586916ea21a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup for getVar True bit]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Armin Kuster
8abd4d4149 distcc: Change SRC_URI
ERROR: distcc-3.2-r0 do_fetch: Fetcher failure: Unable to find revision d8b18df3e9dcbe4f092bed565835d3975e99432c in branch 3.2 even from upstream
ERROR: distcc-3.2-r0 do_fetch: Fetcher failure for URL: 'git://github.com/distcc/distcc.git;branch=3.2'. Unable to fetch URL from any source.
ERROR: distcc-3.2-r0 do_fetch: Function failed: base_do_fetch

[v2]
upstream deleted the branch and the hash no longer exists.

Took the git snapshot from yocto and created a copy on my github.
There was no offical 3.2 release, only rc versions.

(From OE-Core rev: 1dbffc25936733ca03b6d03c5bacb3fb496a61a5)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Christopher Larson
f6d64b08d4 buildhistory: fix latest_srcrev in the common case
buildhistory was writing srcrevs.values() as SRCREV when only one
srcrev/branch exists. This returns a view of the dictionary values in python
3, and used to return a list in python 2, neither of which is an appropriate
value for SRCREV. It was resulting in latest_srcrev files like this:

    # SRCREV = "346584bf6e38232be8773c24fd7dedcbd7b3d9ed"
    SRCREV = "dict_values(['346584bf6e38232be8773c24fd7dedcbd7b3d9ed'])"

Which in turn would result in invalid output in buildhistory-collect-srcrevs.
Fix by calling `next(iter())` on the `.values()`

(From OE-Core rev: 4243555ab91ab763a098259011dfa72156bfe0b3)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit ef826a395612400924bbe49859d256b237ff59e1)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Alexander Kanavin
134aa03cd7 selftest/signing: add --batch to gpg invocation when importing keys
Otherwise it may pop up windows asking for passphrases which breaks
automated testing.

Newer YP releases and master already have the fix.

[YOCTO #12521]

(From OE-Core rev: 863916169fbe2686015b4f2279f49f08f41e9a47)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Maxin B. John
b85ff208bc grub-efi: fix build failure
grub-efi build fails with the following error on Fedora 26:

| ../grub-2.00/util/raid.c: In function 'grub_util_raid_getmembers':
| ../grub-2.00/util/raid.c:91:13: error: In the GNU C Library, "makedev"
is defined
|  by <sys/sysmacros.h>. For historical compatibility, it is
|  currently defined by <sys/types.h> as well, but we plan to
|  remove this soon. To use "makedev", include <sys/sysmacros.h>
|  directly. If you did not intend to use a system-defined macro
|  "makedev", you should undefine it after including <sys/types.h>.
[-Werror]
|         makedev (disk.major, disk.minor));
|              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Resolve the build error by backporting the fix from upstream.

[YOCTO #12595]

(From OE-Core rev: a57e3e387a962a253e8f4f1519141eb7f8ce5e41)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Armin Kuster
e782da1fbd lib/oe/terminal.py: use an absolute path to execute oe-gnome-terminal-phonehome
A flaw was found on my Ubuntu 14.04.5 LTS, on which that gnome-terminal is
the default terminal, when I run any of the tasks:
bitbake busybox -c menuconfig/devshell/devpyshell
bitbake virtual/kernel -c menuconfig/devshell/devpyshell

I got a error as follows:
"Failed to execute child process "oe-gnome-terminal-phonehome" (No such file or directory)"

Seems the environment of the process calling Popen is not passed to the
child process, this behaviour is a known issue in Python bug tracker:
http://bugs.python.org/issue8557

It could be fixed by using an absolute path instead per test.

(From OE-Core rev: 5055bcabca542074cad00c92edf79f3a1551ac32)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2117c148ef07d84bc605768e3b3671b0126b9337)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Tanu Kaskinen
c4a1efae07 e2fsprogs: fix compatibility with glibc 2.27
glibc 2.27 added function copy_file_range(), and e2fsprogs happens to
have a different function with the same name. The conflict made
e2fsprogs-native build fail.

Here's a backport of a fix from upstream, the fix was released in
e2fsprogs 1.43.8.

The master branch doesn't need this fix, since it has new enough
e2fsprogs version. At least rocko, pyro and morty need this, I haven't
checked older stable branches. Apparently the problematic function was
introduced in e2fsprogs version 1.43.

(From OE-Core rev: d6a297d259d0c4b83f708d4a357c9941c0e478a3)

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Ross Burton
6026ef7fad qemu: fix memfd_create with glibc 2.27
glibc 2.27 has added memfd_create() but this conflicts with a copy in qemu, so
take a patch from upstream to fix building with glibc 2.27.

(From OE-Core rev: da02349c540a8e17073fef8f3ca3ea8c796d6ade)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Andreas Oberritter
afa57d3bc9 libc-package.bbclass: split binary localedata even more if asked to
If GLIBC_SPLIT_LC_PACKAGES is set to a non-zero value, convert
glibc-binary-localedata-XX-YY to be a meta package depending on
glibc-binary-localedata-XX-YY-lc-address and so on. This enables
saving quite some space if someone doesn't need LC_COLLATE for
example.

Some regex code was removed from output_locale_binary_rdepends,
because legitimize_package_name already converts to lowercase.

(From OE-Core rev: 40b4b31092058f8833ada3dfc254d362dd3139c1)

(From OE-Core rev: d11222c452d79cc2044a21432336c4a59d08327b)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Richard Purdie
1580cb8cef glibc: Separate locale files to their own sstate task
Putting the locale and script files into the sysroot for use by their
specific recipes used to be a simple way to share the files. With RSS,
we don't want to copy these into many different recipes so put these
files in their own sstate task.

(From OE-Core rev: c283f2532851e2a65e08fe7b3fd71c5d9abb70f2)

(From OE-Core rev: bb95c7f9edfc73ad9c5ef47a5e897b19086030a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Juro Bystricky
92765c87f8 glibc-locale.inc: avoid duplicate packages
PACKAGES_DYNAMIC contained an identical set of packages twice.
I suspect this was a result of global search/replace when moving
recipes from eglibc to glibc long time ago.

(From OE-Core rev: 9d0f0fa80ffbafc2d4a1df0fa3ac5d84396a8182)

(From OE-Core rev: 8d6f11c6dc0543dff330a0bfd0772bda969016ed)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Gianfranco Costamagna
b8ad044c28 glibc-locale.inc: fix typo in comment
(From OE-Core rev: 74ef87b31e33436e82f4985fa99b570726a5e564)

(From OE-Core rev: 43e3fb2e5329aaea3ae425dd2903dc11645e7663)

Signed-off-by: Gianfranco Costamagna <gianfranco.costamagna@abinsula.com>
Signed-off-by: Lorenzo Chianura <lorenzo.chianura@abinsula.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Zhenbo Gao
c4f7c39a43 archiver: avoid archiving source for glibc-locale
Avoid archiving source for glibc-locale as its tasks
do_fetch do_unpack and do_patch have already been deleted.

(From OE-Core rev: 208f397c0dc48d56bc7900e76eb48406d5865c72)

Signed-off-by: Zhenbo Gao <zhenbo.gao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Ross Burton
5f6fc4ba8f cross-localedef-native: add way to specify which locale archive to write
localedef has no way to specify which locale archive to use, and the
compile-time default isn't useful as it points to the work directory.

Add support to read an environmental variable for the path, and don't fail to
write a new locale archive.

(From OE-Core rev: bf0f205a3c3714926649bd69db29e4df1c0ea112)

(From OE-Core rev: 38b0e8d9b1944a955e4ed682184dafdce20db4b9)

(From OE-Core rev: 3c67ea2f357b6f97cce2fcbaef4dfd79b435ad6e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:48 +01:00
Ross Burton
1eebf6ed45 populate_sdk_base: depend on nativesdk-glibc-locale
If we're building a SDK and we're using glibc so may be installing locales,
add a build-dependency on natiesdk-glibc-locale so the locales we need will
exist.

(From OE-Core rev: 8d6869a0a89d8cf3c6e57723fab2750ba2c885db)

(From OE-Core rev: bad37bfd766c39efe5a5db95668c855d1c45a059)

(From OE-Core rev: 15a8681bcae24da0fd2551a49e4b59b3efb24886)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
a9f439367d populate_sdk: install UTF-8 locales in SDKs
As glibc 2.27 can't read older locale-archives, SDKs using glibc 2.27 on hosts
using glibc earlier than 2.27 won't be able to find any locales, so bitbake
won't start and Python can't use UTF-8.

So by default install all locales into the SDK.  Special-case Extensible SDKs by
installing no locales as they ship glibc in a buildtools, and that will have the
locales.

Locale installation requires cross-localedef, so add that to DEPENDS.

Also remove the explicit en_US addition in buildtools-tarball as it is now
redundant.

(From OE-Core rev: 96896568d197cd06302713c24c0f7d91bfaea6c1)

(From OE-Core rev: 385dd115d00aabbcd970ef6b62353480d87a5a55)

(From OE-Core rev: 065ddf01b914805298fb1ddf83ae32b5018856b3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
fc0a773246 sdk: only install locales if we're using glibc
Using glibc-locale to install locales only makes sense if we're using glibc.

(From OE-Core rev: 8fc80734053645fa893694dfe33ddaee99aa9a1a)

(From OE-Core rev: 1ca33a798f5edf4bb1e695a79a46088dd23b6858)

(From OE-Core rev: 75918061572c0943aa4ea24df07b4ec1ae1aa09f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup for the getVar True bit]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
f1de1761b3 sdk: install specified locales into SDK
(From OE-Core rev: 9b1c3dbe79f67d3b46e0f90a73bce6c61f094a50)

(From OE-Core rev: f223f90d07965eef8ddbb047abd1f75da99b1c08)

(From OE-Core rev: 691925df192b4b1671ba9d19cbc3602654826451)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup for getVar True bit]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
eff7238cf3 package-manager: add install_glob()
(From OE-Core rev: 8d1b530c82de386d4183f5673c060b9d416a3835)

(From OE-Core rev: b9a7821086b5165fda9f1c8a7c79a7997803f2a6)

(From OE-Core rev: c01a2c01a0c78a72ed715ac31a4578013ff44231)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup for getVar True bit]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
9ac4f5b88e package_manager: improve install_complementary
- No need to use bb.utils.which() as subprocess will search $PATH
- Clarity flow by moving the install inside the try/except

(From OE-Core rev: f4d22b7195dd8f08fe26dd353c7e860208e87d6a)

(From OE-Core rev: 1267df89164d7dcbbf77668ac49452bd0df87b54)

(From OE-Core rev: fdc95793dff3dbfa49faa19c51c7e8c9cd67dc6c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup do to merge conflict]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Martin Jansa
c9159f18ed package_manager: flush installed_pkgs file before oe-pkgdata-util uses it
* since this commit:
  commit f5a1013ffa9815f22e13989e2bcb83f966e7ce2c
  Author: Ross Burton <ross.burton@intel.com>
  Date:   Tue Apr 18 16:19:12 2017 +0100

    package_manager: don't race on a file when installing complementary
    packages

  the file isn't closed before oe-pkgdata-util uses it and this
  temporary file might look empty to oe-pkgdata-util, because it
  wasn't flushed yet. Which resulted in almost empty debugfs tarballs
  and no locale packages in regular rootfs.
* without this change:
  124K May 30 07:41 core-image-full-cmdline-raspberrypi3-64-20170530054003-dbg.rootfs.tar.gz
* with this change:
  173M May 30 07:29 core-image-full-cmdline-raspberrypi3-64-20170530052715-dbg.rootfs.tar.gz

(From OE-Core rev: 9b34200048b3d2b477a19b7ddc8d447f873adbb2)

(From OE-Core rev: 667c43354e38c2fec1829089de0b7de076498e85)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 877d38db08aa7060d16405443cf70539c559fe82)
Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
0652fb68b2 package_manager: don't race on a file when installing complementary packages
PackageManager.install_complementary() uses WORKDIR/installed_pkgs.txt as a
temporary file but if two tasks are executing for the same recipe which uses
this file (e.g. bitbake my-image my-image:do_populate_sdk) then it's possible
for the file to be overwritten or deleted.

Instead of using a static filename, use tempfile to generate a unique name and
ensure it is cleaned up when finished.

Also move the glob generation/expansion earlier in the function as if there are
no globs to install, we don't need to generate a package list.

(From OE-Core rev: f5a1013ffa9815f22e13989e2bcb83f966e7ce2c)

(From OE-Core rev: b02b54192ce71606aac30c21f3ff2199fa70a529)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup do to merge conflicts]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Richard Purdie
0200ab2a22 lib/oe/package_manager/sdk: Ensure do_populate_sdk_ext and do_populate_sdk repos don't conflict
(From OE-Core rev: c9c0927bb6e71253cbdd5b6b780dca829526e1d8)

(From OE-Core rev: a18942b0b3b848ccfa4bc50c56a565c279da9d74)

(From OE-Core rev: 94e21cf21f8d8adad352ef2f94d4f75e36cd843a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup do to merge conflicts]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
55049700e4 lib/oe/package_manager: bail if createrepo can't be found
If createrepo isn't found then the errors later are mysterious, so explicitly
check and error out early if it isn't there.

(From OE-Core rev: e09636bbb3ea8ec58984197fd9c691bb908efe00)

(From OE-Core rev: c87361fc886432a9db584712bf3e41ecd0541960)

(From OE-Core rev: 0adc876ed8be21190510a91220f9755c8e9df021)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fixup do to merge conflicts]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Stephano Cetola
8cdf2a2e36 package_manager: remove strings and migrate to direct arrays
When using subprocess call and check_output, it is better to use arrays
rather than strings when possible to avoid whitespace and quoting
problems.

[ YOCTO #9342 ]

(From OE-Core rev: b12cec9a5ef14ecb02be7feec65508cf5d65c795)

(From OE-Core rev: 60ba1d424636bdd5700ec3ee0acec5c19550b884)

Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Linus Wallgren
2d5e8043be lib/oe/package_manager: .deb pre/postinst args
The debian policy manual and MaintainerScripts wiki page states that the
postinst script is supposed to be called with the `configure` argument
at first install, likewise the preinst script is supposed to be called
with the `install` argument on first install.

https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html
https://wiki.debian.org/MaintainerScripts

(From OE-Core rev: 3d9c3aae54589794ce3484fa1b21d1af2bd32661)

(From OE-Core rev: ba59b6416f24ad53f1caccf9185b46cb60da213a)

Signed-off-by: Linus Wallgren <linus.wallgren@scypho.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
8d9783464a glibc: relocate locale paths in nativesdk
nativesdk is built with a specific prefix but this will be different at install
time, however glibc hard-codes the path to locale files. Expand these strings to 4K and move them to a magic segment which we can relocate when the SDK is installed.

(From OE-Core rev: 59e0679378aac27c4fea0b06721e0a184a93c100)

(From OE-Core rev: c1f220f89496de51d3aa6eacd42cd8d3ddaad104)

(From OE-Core rev: 39d0aca4e3e4e1115ee9db64e84625f5827ea50f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

(From OE-Core rev: e1faf9ac7e89d33aba33547ede19a10aaa034207)
Fixup patch

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
8e6c4c3164 glibc: don't use host locales in nativesdk
(From OE-Core rev: d7ded85766852689a0d774c896a11d0609004ab2)

(From OE-Core rev: 152e045f42a66a0f74f6c097213f023c2c740292)

(From OE-Core rev: d5adeb887e9b56e4c047a8c5488fb89831e88727)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Ross Burton
e964c888c7 default-distrovars: don't rename locales for nativesdk
(From OE-Core rev: 909da982c74b2ed931a65dda248557cb18f773e0)

(From OE-Core rev: 1612bce132314ad2ac41c796480c598457d600cc)

(From OE-Core rev: 15ef6ab7ae3d015ef319c9631bb8ae10fcb2f5d9)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-04-05 15:13:47 +01:00
Avinash Reddy Palleti
34b26ec184 linux-firmware: Add reference to iwlwifi-8000C firmware
Adding reference to iwlwifi-8000c firmware which was removed erroneously in
commit  3e4b382c0c

(From OE-Core rev: 72885c4132e8ab7e6c70a4534870805d6ad7047f)

(From OE-Core rev: 7c6501b66a7d17071c8b012d7fd6e09edf28c671)

Signed-off-by: Avinash Reddy Palleti <avinash.reddy.palleti@intel.com>
Acked-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-19 15:58:33 +00:00
Armin Kuster
4e7689843a linux-yocto-rt/4.1: update to include spectre fixes
(From OE-Core rev: 4b235f09dc3bfe76ae095c7ff99e0eb7b8badca7)

(From OE-Core rev: 6c0fd049c9b5ae7f170cae8fe6edc98ecfe053fe)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-19 15:58:33 +00:00
Armin Kuster
18cb208a89 linux-yocto/4.1: updated to include spectre fixes
(From OE-Core rev: 06b57932db48eeb42989c6eb0010e8b1b713b7e9)

(From OE-Core rev: bafd21e0ba9f8713e0160684ac20ae3ecba19b42)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-19 15:58:33 +00:00
Armin Kuster
b6b0b0167e linux-yocto-tiny/4.1: update with spectre fixes
(From OE-Core rev: 61b365ab2ece1469cf85133112d48891cdfe310e)

(From OE-Core rev: da4174e433d14799a41937cb1989f0d03066687b)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-19 15:58:32 +00:00
Armin Kuster
60df783d42 linux-yocto-tiny/4.1: update to 4.1.49 plus meltdown
(From OE-Core rev: 7162fd28422355778dfa203db52d9b868cd496cb)

(From OE-Core rev: 426f8fdd99db8a2769f688573890e4ec79435741)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-19 15:58:32 +00:00
Armin Kuster
69e4cc04b7 linux-yocto-rt/4.1: update to 4.1.49 plus meltdown
(From OE-Core rev: 90b6eb24e90003cf7ba66d146e370408eb978441)

(From OE-Core rev: 539a337e840db6fdd796b4215ffafbb7b9eb9433)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-19 15:58:32 +00:00
Armin Kuster
0eb74af0ee linux-yocto/4.1: update to 4.1.49 plus meltdown
(From OE-Core rev: bf2362cfa79722798c1798c82233190f8280a259)

(From OE-Core rev: a84d164bec5f7f2a60e8ab0e5f354ea383347bc0)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-19 15:58:32 +00:00
Richard Purdie
17db601851 world-broken.inc: blacklist portmap on musl
portmap was dropped in rocko and later and doesn't work with libtirpc
so don't build it for musl

(From OE-Core rev: ceeda7a60c613a93f7bd3c8234010d34e3e98b3b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:48:00 -07:00
Richard Purdie
6dc5aa98ce uninative: Add compatiblity version check
If glibc is newer on the host than in uninative, the failure mode is
pretty nasty for clusters where the sstate is shared, including the Yocto
Project autobuilder.

This check aborts the use of uninative in such scenarios where a newer
glibc version appears and avoids corruption of sstate caches.

We use ldd to check the glibc version since that is included in libc-bin
(or equivalent) which locales use so it should always be present.

(From OE-Core rev: 676d4d91064d4e4f7abb2bd3597a0ddd5b7e2390)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:48:00 -07:00
Richard Purdie
a85afd3348 yocto-uninative: Upgrade to 1.8 version with glibc 2.27
Now distros are starting to ship glibc 2.27 we need a uninatve version
which contains glibc 2.27 which is in the 1.8 version.

(From OE-Core rev: 922dae3a2adde21717ebcd1b5fe8e75f69b391df)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:48:00 -07:00
Richard Purdie
5c47970e33 unfs3: Fix libtirpc usage for unfs3-native version
(From OE-Core rev: 955c4855130ee01e20a9e7f5a76ffee75d77ebe3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Khem Raj
8fed6fc343 unfs3: Fix build with musl
Should also fix build on new build hosts where
with glibc 2.27 rpc support is dropped in favor
of libtirpc

(From OE-Core rev: 62552a76b65b7ab5fa71b188537ae0582c3cbaea)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Khem Raj
1379647a05 libtirpc: Extend to native and nativesdk recipes
(From OE-Core rev: b7b22cb443f1fb9683643c60e983802bd6c8e40d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Ross Burton
ca574f76ea libtirpc: stop dropping in NIS headers
libtirpc prior to 1.0.2 assumed that the system provided nis.h but this isn't
always true.  Until now we've been using a tarball of the missing files from
Gentoo, but libtirpc 1.0.2 added a copy of nis.h to the sources so this isn't
required anymore.

(From OE-Core rev: cc20757169f833c322fbdee592788e37ed2d549f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Maxin B. John
5e6c7832e5 libtirpc: upgrade to 1.0.2
1.0.1 -> 1.0.2

Remove these Backported and upstreamed patches:
        1. 0001-Fix-for-CVE-2017-8779.patch
        2. libtirpc-0.2.1-fortify.patch
        3. libtirpc-1.0.2-rc3.patc

(From OE-Core rev: fa997ff110c490337c79658bdb4baf67edc65521)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Fan Xin
38e159de48 libtirpc: Fix CVE-2017-8779
This vulnerability is also called "rpcbomb".
Backport upstream patch to fix this vulnerability.
CVE: CVE-2017-8779

(From OE-Core rev: 19faff705a0458570bc640adbbdc07348a831b0c)

Signed-off-by: Fan Xin<fan.xin@jp.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Khem Raj
2f22172fea libtirpc: Fix build error due to missing stdint.h> include
(From OE-Core rev: fad973276c774149d79cb4cb824301d05c0a0778)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Khem Raj
a860a24135 libtirpc: Enable des APIs for musl
Use memset() API instead of __bzero()
Drop the patch removing des_* functions for musl

(From OE-Core rev: f77f93f9458e2279ec2322578b1366fa1a632485)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Khem Raj
a994748155 libtirpc: Expose key_secretkey_is_set API
libnsl needs this API

(From OE-Core rev: 36f9db435506922976b68ad0912d26674d574653)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Khem Raj
f7f0a0a7bd libtirpc: Backport fixes from 1.0.2rc3
These fixes are needed for it to work with gcc7

(From OE-Core rev: 387cd21a6792b3243c4fde84231d6e164e660f98)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15 15:47:59 -07:00
Richard Purdie
4dd8c6f663 gcc: Remove patch causing ICE on x86_64 valgrind compile
| ../../valgrind-3.12.0/VEX/priv/host_ppc_isel.c: In function 'iselInt64Expr':
| ../../valgrind-3.12.0/VEX/priv/host_ppc_isel.c:3270:1: internal compiler error: Segmentation fault
|  }
|  ^
| Please submit a full bug report,
| with preprocessed source if appropriate.
| See <http://gcc.gnu.org/bugs.html> for instructions.
| rm -f libvexmultiarch-amd64-linux.a
| Makefile:1813: recipe for target 'priv/libvex_amd64_linux_a-host_ppc_isel.o' failed

Remove the patch to gcc causing this until the issue can be figured out.

(From OE-Core rev: 67e99321233e6a2897a0de33f0b98cd89bc9d3dc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Juro Bystricky
1d3634423c gcc6: Backport few more patches
Backported series of patches from https://github.com/hjl-tools/gcc.git
branch /hjl/indirect/gcc-6-branch/master which contains
an IA patch series for security related issues

(From OE-Core rev: 155936a8e5d29d26ef80333920a056f7c3211657)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Andre McCurdy
12b68d0fc7 gcc6: enable FL_LPAE flag for armv7ve cores
The following commit added the FL_LPAE flag to FL_FOR_ARCH7VE, but
neglected to also add it to the armv7ve compatible cores defined in
arm-cores.def.

  af2d9b9e58

The result is that gcc 6.4 now refuses to allow -march=armv7ve and
-mcpu=XXX to be used together, even when -mcpu is set to an armv7ve
compatible core:

  arm-linux-gnueabi-gcc -march=armv7ve -mcpu=cortex-a7 -Werror ...
  error: switch -mcpu=cortex-a7 conflicts with -march=armv7ve switch [-Werror]

Fix by defining flags for armv7ve compatible cores directly from
FL_FOR_ARCH7VE, rather than re-creating the armv7ve flags
independently by combining FL_FOR_ARCH7A with the armv7ve specific
FL_THUMB_DIV and FL_ARM_DIV flags.

(From OE-Core rev: 9923939703d918461d789712e14420a38ebf978b)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Khem Raj
622b00fa84 gcc6: Fix unaligned STRD issue on ARM
Backport
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82445

Fixes [YOCTO 12297]

(From OE-Core rev: 588382b586eb27ba4825d3bdc0d0a807e956cf24)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 568227133be3f9f015679df3525f6c4f86304fd0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Khem Raj
49b2fafe0a gcc6: Upgrade to 6.4
(From OE-Core rev: 02d2a14333b3cbc8e6acf74245f3db6b6b94c91b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 7874fa86cb583fe6a178b95ead09430486197197)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Khem Raj
db0b3dbc3d gcc: Fix libssh_nonshared linker specs for ppc/musl
The change to link libssp_nonshared.a only for musl was to move
spec file changes to config/linux.h under a conditional when
DEFAULT_LIBC == LIBC_MUSL which worked fine for all but ppc
since gcc for ppc provided its own linux.h overrides which are
used. This patch duplicates the change in those headers too

Cherry-picked from oe-core master 9d39168a6acfa1f289a4448271c0bf9caaea10ec

(From OE-Core rev: 7d391a9e566a6ddc2970fc666a45570310bdc780)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Khem Raj
3b413b58ed gcc: Link libssp_nonshared.a only on musl targets
glibc already provides the content for libssp_nonshared
in libc_nonshared.a therefore we dont need to make it
universal.

This also fixed build issues on glibc when linking statically
and using -fstack-protector

Fixed errors like
/mnt/a/oe/build/tmp/work/i586-bec-linux/aufs-util/3.14+gitAUTOINC+bdfcc0dcfc-r0/recipe-sysroot/usr/lib/../lib/libc.a(stack_chk_fail.o): In function `__stack_chk_fail':                                                                       /usr/src/debug/glibc/2.26-r0/git/debug/stack_chk_fail.c:27: multiple definition of `__stack_chk_fail_local'                                                                                                                                   /mnt/a/oe/build/tmp/work/i586-bec-linux/aufs-util/3.14+gitAUTOINC+bdfcc0dcfc-r0/recipe-sysroot/usr/lib/../lib/libssp_nonshared.a(libssp_nonshared_la-ssp-local.o):/usr/src/debug/gcc-runtime/7.1.0-r0/gcc-7.1.0/build.i586-bec-linux.i586-bec-linux/i586-bec-linux/libssp/../../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/libssp/ssp-local.c:47: first defined here                                                                                                              collect2: error: ld returned 1 exit status

Cherry-picked from oe-core master d71eba26850838b2878efea3f8c392a2eb2ebbfb

(From OE-Core rev: 27eaa97595cbac38a8bec118fe3d5f8920ab814e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Khem Raj
825073b8ff gcc-runtime: Disable libitm on riscv
(From OE-Core rev: 5098e46cd7101bcc66dd579352292136b29d840b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 21caa8bcda93ce67ef58548f7b85d0569d13d0b9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Khem Raj
7e12df5bec gcc-6.3: Backport patch to fix ICE on ARM
Fixes
internal compiler error: Max. number of generated reload insns per insn is achieved (90)

(From OE-Core rev: 7f5485d2b8f978964f1f932fd328c98d0a1872c0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d2631f45a057c53797b7ba657662f35f66a2b04e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Juro Bystricky
4cb2af5af8 gcc-6.3.inc: Use ucontext_t not struct ucontext.
Use ucontext_t not struct ucontext in linux-unwind.h files.

Current glibc no longer gives the ucontext_t type the tag struct
ucontext, to conform with POSIX namespace rules.  This requires
various linux-unwind.h files in libgcc, that were previously using
struct ucontext, to be fixed to use ucontext_t instead.  This is
similar to the removal of the struct siginfo tag from siginfo_t some
years ago.

Backport of patches by Joseph Myers, taken from
https://gcc.gnu.org/viewcvs/gcc?limit_changes=0&view=revision&revision=249957

[YOCTO #12083]

(From OE-Core rev: 063f5558ef2040b6d2c34caa553ed09733fc6470)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit ec1c18d866c137b1fa523d0fcc29f65a28f59f44)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Jussi Kukkonen
2bee048a3b gcc: Remove unused patch
CVE-2016-4490 applied to gcc < 6.1.1, our version is 6.3

(From OE-Core rev: 869d7ddb30e5c522a3e7e200b0696340d37f5198)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d8329861bf6f48f6e541a04062b8d1f373dfcd78)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:54 -07:00
Yuanjie Huang
964bd533a9 gcc: Fix CVE-2016-6131 in libiberty
[NVD] -- https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-6131

The demangler in GNU Libiberty allows remote attackers to cause a denial
of service (infinite loop, stack overflow, and crash) via a cycle in the
references of remembered mangled types.

[BZ #71696] -- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71696

2016-08-04  Marcel Böhme  <boehme.marcel@gmail.com>

	PR c++/71696
	* cplus-dem.c: Prevent infinite recursion when there is a cycle
	in the referencing of remembered mangled types.
	(work_stuff): New stack to keep track of the remembered mangled
	types that are currently being processed.
	(push_processed_type): New method to push currently processed
	remembered type onto the stack.
	(pop_processed_type): New method to pop currently processed
	remembered type from the stack.
	(work_stuff_copy_to_from): Copy values of new variables.
	(delete_non_B_K_work_stuff): Free stack memory.
	(demangle_args): Push/Pop currently processed remembered type.
	(do_type): Do not demangle a cyclic reference and push/pop
	referenced remembered type.

cherry-picked from commit of
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239143 138bc75d-0d04-0410-961f-82ee72b054a4

(From OE-Core rev: 3c288b181a4cfecc80b48994f4dd2df285e4d1d0)

(From OE-Core rev: be00ad34a3827a4205718609f349bc6e8a09733b)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 96a16c4181d18b8580dad243350d589586cb2b07)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:53 -07:00
Stephen Arnold
1118ff07f4 gcc-6: Add fix for missing no-PIE flags
Fixes build on hardened PAX host with gcc-5 (linker error on relocs).
Completes no-PIE config by adding to ALL_* flags variables.
Borrowed from Gentoo gcc patches, tested on 2 hardened amd64 hosts.

Upstream-Status: Inappropriate [configuration]

Commited by: Gentoo Toolchain Project <toolchain@gentoo.org>
(From OE-Core rev: c178791cd78d5a9ebc4d7b7790e647a9bafe9cf2)

(From OE-Core rev: e54f26a0dbfc8de22ce8326ac77d1097d13f6e2c)

Signed-off-by: Stephen Arnold <stephen.arnold42@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fcb236ea7cd1ac052719187fefed60ebf1a30ac8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:53 -07:00
Khem Raj
d80d10b4d4 gcc-6: Sync gcc stddef.h with musl stddef.h
GCC provides some of std* headers including stddef.h
and it syncs with glibc definitions via __needed* defines
to find which datatypes are expected to be defined on top
of glibc. we need same for musl.

Drop unused 0048-ARM-PR-target-71056-Don-t-use-vectorized-builtins-wh.patch

(From OE-Core rev: 5c3cfa24e49cbea34c74009b91bf96e0f9a00a63)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 7da04721a620ad741ea50adf116e6b5afd47caa5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:53 -07:00
Khem Raj
05bc5b3b5b gcc6: Upgrade to 6.3.0
6.3.0 is a bugfix release in gcc 6 series

Cherry-picked from oe-core master 36ffcd1d7d2ab9dcc91e9c09623a6613a248bc69

(From OE-Core rev: c24f6de26efdfb13b95e51b4531d1e111fab409c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:53 -07:00
Pavel Modilaynen
d5c9d46de3 buildstats.bbclass: Avoid index exception in /proc/PID/io parsing
There is some probability (depends on system load) to get empty
or line containing "0" as the last line while reading /proc/PID/io.
Avoid build failure by checking if line contains separator
":" before split.

Backport from pyro commit b26feaf51af55f17fad79dbd53dd3ec0a37c38ff

(From OE-Core rev: 31a098032eb82eb40eaa3952de4d29ab472e368a)

Signed-off-by: Pavel Modilaynen <pavelmn@axis.com>
Signed-off-by: Daniel Lublin <daniel@lublin.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:53 -07:00
Khem Raj
a9cf5f2a6e gnutls_3.5.3.bb: Fix native build on distro with kernel < 3.4.17
When using distros which use old kernels gnutls fails to build
due to missing SYS_getrandom, therefore we need to check for this
before using it.
Fixes errorr e.g.

| ../../../gnutls-3.5.3/lib/nettle/rnd-linux.c: In function 'have_getrandom':
| ../../../gnutls-3.5.3/lib/nettle/rnd-linux.c:59:42: error: 'SYS_getrandom' undeclared (first use in this function)
|  #  define getrandom(dst,s,flags) syscall(SYS_getrandom, (void*)dst, (size_t)s, (unsigned int)flags)

(From OE-Core rev: ce18ec34549cf11d84a906c2abe7a492b8687c4f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-14 07:55:53 -07:00
Richard Purdie
97690dfe87 bitbake: providers: Fix determinism issue
We saw builds where runtime providers were sometimes changing order and the
build result was therefore non-deterministic. For example it could show:

DEBUG: providers for lib32-initd-functions are: ['lib32-lsbinitscripts', 'lib32-initscripts']
or
DEBUG: providers for lib32-initd-functions are: ['lib32-initscripts', 'lib32-lsbinitscripts']

which could cause a test to pass or fail.

This change ensures we don't rely on the random order of dictonaries in
memory and act deterministically.

(Bitbake rev: da85da9b58ed252c7b80a437fb5babff9e6dde48)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-09 06:12:14 -08:00
Alexander Kanavin
4f6027c30a p11-kit: take source code from official git
The previous tarball URI seems to be gone.

Also, adjust a few things to make it actually build;
handling autotools-based projects from git checkouts is always harder
than taking them from tarballs :-(

(From OE-Core rev: b4542e867d54c56e6ef088fac28ae3d5e6c0d7bc)

(From OE-Core rev: ee49a37d096a76cce349d6eff7964daada58efb1)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Armin Kuster
c323026d9c ruby: update to 2.4.3
This fixes a segfault in arm64 multilib.

Drop CVE-2017-14064.patch

Additional CVE included are 2.4.3:
CVE-2017-17405: Command injection vulnerability in Net::FTP

Additional CVE included are 2.4.2:
CVE-2017-0898: Buffer underrun vulnerability in Kernel.sprintf
CVE-2017-10784: Escape sequence injection vulnerability in the Basic authentication of WEBrick
CVE-2017-14033: Buffer underrun vulnerability in OpenSSL ASN1 decode
CVE-2017-14064: Heap exposure in generating JSON

Ruby Gems:
DNS request hijacking vulnerability. (CVE-2017-0902)
ANSI escape sequence vulnerability. (CVE-2017-0899)
DoS vulnerability in the query command. (CVE-2017-0900)
vulnerability in the gem installer that allowed a malicious gem to overwrite arbitrary files. (CVE-2017-0901)

(From OE-Core rev: 5bf664ba85c06d17c6e8c200301e42bc5fdab75e)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Ross Burton
3c735b01da insane: consider INSANE_SKIP without package-specifier too
this is needed for the updated linux-firmware as it needs this INSANE_SKIP support

(From OE-Core rev: 618093c6b7c919f25094f56b82610bee7c97f99f)

(From OE-Core rev: 4c1de18cb5d2bf4067246bf7242abde0f0917a3a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 604939186cc08ab0429ebe00f3e32661847f0cf0)

Adjusted for pyro context
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Adjusted for morty contect
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Armin Kuster
e9b9b59ca1 portmaper: checkuri fails.
ERROR: portmap-6.0-r9 do_checkuri: Fetcher failure for URL: 'http://www.sourcefiles.org/Networking/Tools/Miscellanenous/portmap-6.0.tgz'. URL http://www.sourcefiles.org/Networking/Tools/Miscellanenous/portmap-6.0.tgz doesn't work

change to fossies

[ Yocto #12453 ]

(From OE-Core rev: 1c98acf52b702a2bc39e20c8a27850c830063bb4)

(From OE-Core rev: ae55f908420de9d68426f6e9159c8efa1ba1b337)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Khem Raj
267f2f4c0b gnu-efi: Fix build with gcc7
(From OE-Core rev: a253743f3e3badadb0afe90a277dd4d252b32c6c)

(From OE-Core rev: 264d276de62e3ea0c9b546d2f0b5d555a926bee7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Fixup for mporty context
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Bruce Ashfield
fb6863ff8f linux-yocto/4.4: update to v4.4.113
Integrating the korg 4.4 -stable releases up to 113. These include
Spectre and Meltdown mitigation patches. Changelog follows:

   f0d0a93b0e81 Linux 4.4.113
   38bc402237f8 MIPS: AR7: ensure the port type's FCR value is used
   11e619414b69 x86/retpoline: Optimize inline assembler for vmexit_fill_RSB
   58f96ac5dba6 x86/pti: Document fix wrong index
   6cb73eb80451 kprobes/x86: Disable optimizing on the function jumps to indirect thunk
   9b8bd0d35868 kprobes/x86: Blacklist indirect thunk functions for kprobes
   799dc737680a retpoline: Introduce start/end markers of indirect thunk
   f59e7ce17ba3 x86/mce: Make machine check speculation protected
   ff535919c136 kbuild: modversions for EXPORT_SYMBOL() for asm
   6b1c99e275c0 x86/cpu, x86/pti: Do not enable PTI on AMD processors
   5ecd5c8388f0 arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
   7e7b086ef2fe dm thin metadata: THIN_MAX_CONCURRENT_LOCKS should be 6
   9c7755af771a dm btree: fix serious bug in btree_split_beneath()
   b7bd013a3fe0 libata: apply MAX_SEC_1024 to all LITEON EP1 series devices
   082dfe6141f3 can: peak: fix potential bug in packet fragmentation
   2d5523bf47b4 ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7
   d5276c013713 phy: work around 'phys' references to usb-nop-xceiv devices
   cf3625004e6c tracing: Fix converting enum's from the map in trace_event_eval_update()
   b6306f3fdcaa Input: twl4030-vibra - fix sibling-node lookup
   a89e1ac9b0da Input: twl6040-vibra - fix child-node lookup
   8e70d4862271 Input: twl6040-vibra - fix DT node memory management
   47970b4ea09c Input: 88pm860x-ts - fix child-node lookup
   7fd133539289 x86/apic/vector: Fix off by one in error path
   aa041f13f8c6 pipe: avoid round_pipe_size() nr_pages overflow on 32-bit
   1782af2835fe module: Add retpoline tag to VERMAGIC
   fba063e6dfb4 x86/retpoline: Add LFENCE to the retpoline/RSB filling RSB macros
   8bd58b61d2fa sched/deadline: Zero out positive runtime after throttling constrained tasks
   ec7a002d7796 scsi: hpsa: fix volume offline state
   b78f2d36e737 af_key: fix buffer overread in parse_exthdrs()
   48907f2535aa af_key: fix buffer overread in verify_address_len()
   478a7fa82ff7 ALSA: hda - Apply the existing quirk to iMac 14,1
   a4d7639d5fb6 ALSA: hda - Apply headphone noise quirk for another Dell XPS 13 variant
   80547bb6154d ALSA: pcm: Remove yet superfluous WARN_ON()
   58c82be944f5 futex: Prevent overflow by strengthen input validation
   f1fcb9d2926c scsi: sg: disable SET_FORCE_LOW_DMA
   451725c3e785 x86/retpoline: Remove compile time warning
   eebc3f8adee0 x86/retpoline: Fill return stack buffer on vmexit
   f72655b837eb x86/retpoline/irq32: Convert assembler indirect jumps
   7e5bb301bd2f x86/retpoline/checksum32: Convert assembler indirect jumps
   6b222e7483af x86/retpoline/xen: Convert Xen hypercall indirect jumps
   d2beed45635e x86/retpoline/hyperv: Convert assembler indirect jumps
   7153a6d5ff05 x86/retpoline/ftrace: Convert ftrace assembler indirect jumps
   028083cb02db x86/retpoline/entry: Convert entry assembler indirect jumps
   9fe55976f0c8 x86/retpoline/crypto: Convert crypto assembler indirect jumps
   9f789bc5711b x86/spectre: Add boot time option to select Spectre v2 mitigation
   3c5e10905263 x86/retpoline: Add initial retpoline support
   675901851fd2 kconfig.h: use __is_defined() to check if MODULE is defined
   a88693d00698 EXPORT_SYMBOL() for asm
   b8e7a489b518 x86/asm: Make asm/alternative.h safe from assembly
   b76ac90af34d x86/kbuild: enable modversions for symbols exported from asm
   cfc8c1d61e46 x86/asm: Use register variable to get stack pointer value
   416f66509fce x86/mm/32: Move setup_clear_cpu_cap(X86_FEATURE_PCID) earlier
   642ce1bb5ea6 x86/cpu/AMD: Use LFENCE_RDTSC in preference to MFENCE_RDTSC
   20c28c04a6bc x86/cpu/AMD: Make LFENCE a serializing instruction
   e6c591e7a430 gcov: disable for COMPILE_TEST
   42375c1120d5 Linux 4.4.112
   125d76412866 selftests/x86: Add test_vsyscall
   999d4f1961fa x86/alternatives: Add missing '\n' at end of ALTERNATIVE inline asm
   e997d991ab2b x86/alternatives: Fix optimize_nops() checking
   433d7851e5ca sysfs/cpu: Fix typos in vulnerability documentation
   72cf81e43ba4 x86/cpu: Implement CPU vulnerabilites sysfs functions
   73492b686012 sysfs/cpu: Add vulnerability folder
   9718bf5f4ebb x86/cpu: Merge bugs.c and bugs_64.c
   caae411b6ee0 x86/cpufeatures: Add X86_BUG_SPECTRE_V[12]
   6349cab425ce x86/pti: Rename BUG_CPU_INSECURE to BUG_CPU_MELTDOWN
   07c7aa5e7e8a x86/cpufeatures: Add X86_BUG_CPU_INSECURE
   65b28590de24 x86/cpufeatures: Make CPU bugs sticky
   18b849b18d1c x86/cpu: Factor out application of forced CPU caps
   d013f41d0cc5 x86/Documentation: Add PTI description
   cf9f240627b4 e1000e: Fix e1000_check_for_copper_link_ich8lan return value.
   10a4324500ff uas: ignore UAS for Norelsys NS1068(X) chips
   0ae86454c435 Bluetooth: Prevent stack info leak from the EFS element.
   b4106c55b574 staging: android: ashmem: fix a race condition in ASHMEM_SET_SIZE ioctl
   27a194bc8d21 usbip: remove kernel addresses from usb device and urb debug msgs
   3f577093c511 USB: fix usbmon BUG trigger
   92e8ba1ea050 usb: misc: usb3503: make sure reset is low for at least 100us
   e4c9428d035b USB: serial: cp210x: add new device ID ELV ALC 8xxx
   a962c95895a7 USB: serial: cp210x: add IDs for LifeScan OneTouch Verio IQ
   531a2595ce1a target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK
   694c1ed559c8 iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
   095b0ba360ff bpf, array: fix overflow in max_entries and undefined behavior in index_mask
   9a7fad4c0e21 bpf: prevent out-of-bounds speculation
   648064515d0d bpf: adjust insn_aux_data when patching insns
   19614eee0644 bpf: refactor fixup_bpf_calls()
   14c7c55f4527 bpf: move fixup_bpf_calls() function
   0748b80e4325 bpf: don't (ab)use instructions to store state
   087a92287dba bpf: add bpf_patch_insn_single helper
   c18b1bda4933 kaiser: Set _PAGE_NX only if supported
   0b6231faa212 drm/vmwgfx: Potential off by one in vmw_view_add()
   6785f955bcb6 KVM: x86: Add memory barrier on vmcs field lookup
   7d1bef0f6037 x86/microcode/intel: Extend BDW late-loading with a revision check
   c77dd7b425cd rbd: set max_segments to USHRT_MAX
   68829e75666e crypto: algapi - fix NULL dereference in crypto_remove_spawns()
   608644ac89aa ipv6: fix possible mem leaks in ipv6_make_skb()
   b188ce30cc1b net: stmmac: enable EEE in MII, GMII or RGMII only
   f574e2e8c6cf sh_eth: fix SH7757 GEther initialization
   29ca856bb76a sh_eth: fix TSU resource handling
   44496521c6bd RDS: null pointer dereference in rds_atomic_free_op
   10d06ed9a189 RDS: Heap OOB write in rds_message_alloc_sgs()
   d19b5ed46cce net: core: fix module type in sock_diag_bind
   b9f16497eec2 ip6_tunnel: disable dst caching if tunnel is dual-stack
   0e1cadec4187 8021q: fix a memory leak for VLAN 0 device
   7ec5d87df34a x86/pti/efi: broken conversion from efi to kernel page table
   cc0e36105661 Revert "userfaultfd: selftest: vm: allow to build in vm/ directory"
   3ae43090f13b xhci: Fix ring leak in failure path of xhci_alloc_virt_device()
   6321e1753563 sysrq: Fix warning in sysrq generated crash.
   6f61bd5c4ff5 hwrng: core - sleep interruptible in read
   f065b5f78d17 x86/mm/pat, /dev/mem: Remove superfluous error message
   146001aeb9af cx82310_eth: use skb_cow_head() to deal with cloned skbs
   be48b6ee6d07 smsc75xx: use skb_cow_head() to deal with cloned skbs
   36a1c87f57f6 sr9700: use skb_cow_head() to deal with cloned skbs
   efca4f469475 lan78xx: use skb_cow_head() to deal with cloned skbs
   ad196359a6d1 r8152: adjust ALDPS function
   a37ff616d720 r8152: use test_and_clear_bit
   9d614746ea0b r8152: fix the wake event
   ea6f411117e1 usb: musb: ux500: Fix NULL pointer dereference at system PM
   829b82508c55 usbvision fix overflow of interfaces array
   bd44e3f19d14 locking/mutex: Allow next waiter lockless wakeup
   1920b8a6a6ed futex: Replace barrier() in unqueue_me() with READ_ONCE()
   e143f5d26258 locks: don't check for race with close when setting OFD lock
   c4eafbc2ba11 zswap: don't param_set_charp while holding spinlock
   eeca23f21cfb mm/zswap: use workqueue to destroy pool
   45c26b0736ef mm/page-writeback: fix dirty_ratelimit calculation
   9780795fc1e5 mm/compaction: pass only pageblock aligned range to pageblock_pfn_to_page
   756000bec7c1 mm/compaction: fix invalid free_pfn and compact_cached_free_pfn
   0e82bbca5896 x86/acpi: Reduce code duplication in mp_override_legacy_irq()
   d091a2bb8c2e ALSA: aloop: Fix racy hw constraints adjustment
   a9cad56436f4 ALSA: aloop: Fix inconsistent format due to incomplete rule
   3d3b2c61e1be ALSA: aloop: Release cable upon open error path
   fa6c1876ecf7 ALSA: pcm: Allow aborting mutex lock at OSS read/write loops
   9bb4bb18ccff ALSA: pcm: Abort properly at pending signal in OSS read/write loops
   1ee7bc5526d8 ALSA: pcm: Add missing error checks in OSS emulation plugin builder
   3074fe070a89 ALSA: pcm: Remove incorrect snd_BUG_ON() usages
   f511ba8a5084 iommu/arm-smmu-v3: Don't free page table ops twice
   745a0d9c1a8e x86/acpi: Handle SCI interrupts above legacy space gracefully
   1a699374533b x86/vsdo: Fix build on PARAVIRT_CLOCK=y, KVM_GUEST=n
   8d383ff7deaa kvm: vmx: Scrub hardware GPRs at VM-exit
   0753661d5b17 net/mac80211/debugfs.c: prevent build failure with CONFIG_UBSAN=y
   f2c131d05d86 MIPS: Disallow outsized PTRACE_SETREGSET NT_PRFPREG regset accesses
   725679dc78a9 MIPS: Also verify sizeof `elf_fpreg_t' with PTRACE_SETREGSET
   9584ae52bd7e MIPS: Fix an FCSR access API regression with NT_PRFPREG and MSA
   a6972f8bd2b6 MIPS: Consistently handle buffer counter with PTRACE_SETREGSET
   e68049f6a9e8 MIPS: Guard against any partial write attempt with PTRACE_SETREGSET
   b1e808b9de5c MIPS: Factor out NT_PRFPREG regset access helpers
   1e918a43cbf0 MIPS: Validate PR_SET_FP_MODE prctl(2) requests against the ABI of the task
   6c2c83eb1b0d IB/srpt: Disable RDMA access by the initiator
   a71d6de9718e can: gs_usb: fix return value of the "set_bittiming" callback
   eb91461daa77 KVM: Fix stack-out-of-bounds read in write_mmio
   cbb1cc722aaa dm bufio: fix shrinker scans when (nr_to_scan < retain_target)
   c5ae3a6aa1a3 Linux 4.4.111
   516fa79e77f7 Fix build error in vma.c
   6dcf5491e01c Map the vsyscall page with _PAGE_USER
   90191f71d749 proc: much faster /proc/vmstat
   c819a67f7ee9 module: Issue warnings when tainting kernel
   7e35bc655ec1 module: keep percpu symbols in module's symtab
   104fd57d391a genksyms: Handle string literals with spaces in reference files
   a4c1c75373bf x86/tlb: Drop the _GPL from the cpu_tlbstate export
   d5bbffc0501d parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel
   3db597feef08 x86/microcode/AMD: Add support for fam17h microcode loading
   0a99730ae0cc Input: elantech - add new icbody type 15
   30ce9c8dbc42 ARC: uaccess: dont use "l" gcc inline asm constraint modifier
   5f1aa83c58aa kernel/signal.c: remove the no longer needed SIGNAL_UNKILLABLE check in complete_signal()
   7a7f54f8e390 kernel/signal.c: protect the SIGNAL_UNKILLABLE tasks from !sig_kernel_only() signals
   be95f1308f79 kernel/signal.c: protect the traced SIGNAL_UNKILLABLE tasks from SIGKILL
   58330ec2fecd kernel: make groups_sort calling a responsibility group_info allocators
   d1698dc8a590 fscache: Fix the default for fscache_maybe_release_page()
   7cbb4a2305f8 sunxi-rsb: Include OF based modalias in device uevent
   3ad85176e78d crypto: pcrypt - fix freeing pcrypt instances
   869994e0bd29 crypto: chacha20poly1305 - validate the digest size
   0b72e17dde6e crypto: n2 - cure use after free
   83875f582596 kernel/acct.c: fix the acct->needcheck check in check_free_space()
   b17b901f0fea x86/kasan: Write protect kasan zero shadow
   b3e3db15b450 Linux 4.4.110
   b33c3c64c478 kaiser: Set _PAGE_NX only if supported
   2b24fe5c57af x86/kasan: Clear kasan_zero_page after TLB flush
   755bd549d932 x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap
   64e239804e21 x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader
   bfd51a4d715b KPTI: Report when enabled
   3e1457d6bf26 KPTI: Rename to PAGE_TABLE_ISOLATION
   7f79599df9c4 x86/kaiser: Move feature detection up
   e4ba212ec641 kaiser: disabled on Xen PV
   750fb627d764 x86/kaiser: Reenable PARAVIRT
   3e809caffdd7 x86/paravirt: Dont patch flush_tlb_single
   8eaca4c7d9f1 kaiser: kaiser_flush_tlb_on_return_to_user() check PCID
   0651b3ad99dd kaiser: asm/tlbflush.h handle noPGE at lower level
   28c6de544174 kaiser: drop is_atomic arg to kaiser_pagetable_walk()
   2dff99eb0335 kaiser: use ALTERNATIVE instead of x86_cr3_pcid_noflush
   e405a064bd7d x86/kaiser: Check boottime cmdline params
   dea9aa9ffae1 x86/kaiser: Rename and simplify X86_FEATURE_KAISER handling
   e345dcc94815 kaiser: add "nokaiser" boot option, using ALTERNATIVE
   500943e57db8 kaiser: fix unlikely error in alloc_ldt_struct()
   d41f46f77895 kaiser: _pgd_alloc() without __GFP_REPEAT to avoid stalls
   fc8334e6b3e5 kaiser: paranoid_entry pass cr3 need to paranoid_exit
   20268a10ffec kaiser: x86_cr3_pcid_noflush and x86_cr3_pcid_user
   3b4ce0e1a172 kaiser: PCID 0 for kernel and 128 for user
   0731188fc74c kaiser: load_new_mm_cr3() let SWITCH_USER_CR3 flush user
   eb82151d0b1d kaiser: enhanced by kernel and user PCIDs
   3e3d38fd9832 kaiser: vmstat show NR_KAISERTABLE as nr_overhead
   b9d2ccc54e17 kaiser: delete KAISER_REAL_SWITCH option
   aeda21d77e22 kaiser: name that 0x1000 KAISER_SHADOW_PGD_OFFSET
   c52e55a2a82d kaiser: cleanups while trying for gold link
   f127705d26b3 kaiser: kaiser_remove_mapping() move along the pgd
   0c68228f7b39 kaiser: tidied up kaiser_add/remove_mapping slightly
   5fbd46c4be78 kaiser: tidied up asm/kaiser.h somewhat
   407c3ff6a24c kaiser: ENOMEM if kaiser_pagetable_walk() NULL
   20cbe9a3aa2e kaiser: fix perf crashes
   487f0b73d826 kaiser: fix regs to do_nmi() ifndef CONFIG_KAISER
   d94df20135cc kaiser: KAISER depends on SMP
   9b94cf97f42c kaiser: fix build and FIXME in alloc_ldt_struct()
   003e47671690 kaiser: stack map PAGE_SIZE at THREAD_SIZE-PAGE_SIZE
   edde73205b3f kaiser: do not set _PAGE_NX on pgd_none
   bed9bb7f3e6d kaiser: merged update
   8a43ddfb93a0 KAISER: Kernel Address Isolation
   0fa147b40747 x86/boot: Add early cmdline parsing for options with arguments
   e68d6189c787 Linux 4.4.109
   5d67dbef745b mm/vmstat: Make NR_TLB_REMOTE_FLUSH_RECEIVED available even on UP
   2e3883922530 n_tty: fix EXTPROC vs ICANON interaction with TIOCINQ (aka FIONREAD)
   977614061c3d x86/smpboot: Remove stale TLB flush invocations
   458ed3179948 nohz: Prevent a timer interrupt storm in tick_nohz_stop_sched_tick()
   46e9398c96af usb: xhci: Add XHCI_TRUST_TX_LENGTH for Renesas uPD720201
   0ceb7a66392d USB: Fix off by one in type-specific length check of BOS SSP capability
   c359123bfdd2 usb: add RESET_RESUME for ELSA MicroLink 56K
   955ae55f2d16 usb: Add device quirk for Logitech HD Pro Webcam C925e
   e8cd11a935dd USB: serial: option: adding support for YUGA CLM920-NC5
   140cfcc8b093 USB: serial: option: add support for Telit ME910 PID 0x1101
   232972f73936 USB: serial: qcserial: add Sierra Wireless EM7565
   24162c1781c1 USB: serial: ftdi_sio: add id for Airbus DS P8GR
   76f611cbdbb4 usbip: vhci: stop printing kernel pointer addresses in messages
   feeae6411a1a usbip: stub: stop printing kernel pointer addresses in messages
   e0362688b4fa usbip: fix usbip bind writing random string after command in match_busid
   3f54a6d41d44 sock: free skb in skb_complete_tx_timestamp on error
   623bfb5818ab net: phy: micrel: ksz9031: reconfigure autoneg after phy autoneg workaround
   5854ca90c6c6 net: Fix double free and memory corruption in get_net_ns_by_id()
   dd1e454c4d74 net: bridge: fix early call to br_stp_change_bridge_id and plug newlink leaks
   169a9861c638 ipv4: Fix use-after-free when flushing FIB tables
   4033c396f80c sctp: Replace use of sockets_allocated with specified macro.
   ca57949d169e net: mvmdio: disable/unprepare clocks in EPROBE_DEFER case
   be27b620a861 net: ipv4: fix for a race condition in raw_sendmsg
   6dfc02ba5149 tg3: Fix rx hang on MTU change with 5717/5719
   6925223ab320 tcp md5sig: Use skb's saddr when replying to an incoming segment
   e0bdd21a86c5 net: reevalulate autoflowlabel setting after sysctl setting
   06525d5b8ea8 net: qmi_wwan: add Sierra EM7565 1199:9091
   f778ce6faa0d netlink: Add netns check on taps
   373b423038a8 net: igmp: Use correct source address on IGMPv3 reports
   0a8cb76e11d9 ipv6: mcast: better catch silly mtu values
   3d406a18bd94 ipv4: igmp: guard against silly MTU values
   1cd09d4b38a2 kbuild: add '-fno-stack-check' to kernel build options
   6c4db09c291a x86/mm/64: Fix reboot interaction with CR4.PCIDE
   fd0504525efd x86/mm: Enable CR4.PCIDE on supported systems
   dcccd3c266e2 x86/mm: Add the 'nopcid' boot option to turn off PCID
   78043e5b6fb2 x86/mm: Disable PCID on 32-bit kernels
   b2e24274d50e x86/mm: Remove the UP asm/tlbflush.h code, always use the (formerly) SMP code
   3efba6062a41 x86/mm: Reimplement flush_tlb_page() using flush_tlb_mm_range()
   9f4d1ba1d407 x86/mm: Make flush_tlb_mm_range() more predictable
   227d6f0e79f8 x86/mm: Remove flush_tlb() and flush_tlb_current_task()
   6ce9d1e6819e x86/vm86/32: Switch to flush_tlb_mm_range() in mark_screen_rdonly()
   c04ed3a84961 ALSA: hda - fix headset mic detection issue on a Dell machine
   0ba2ebc9f355 ALSA: hda: Drop useless WARN_ON()
   5251932b974d ASoC: twl4030: fix child-node lookup
   3096ced5a939 ASoC: fsl_ssi: AC'97 ops need regmap, clock and cleaning up on failure
   becb0c6409ad iw_cxgb4: Only validate the MSN for successful completions
   9dc9648942b1 ring-buffer: Mask out the info bits when returning buffer page length
   25fade614be3 tracing: Fix crash when it fails to alloc ring buffer
   c2a62f84d49f tracing: Fix possible double free on failure of allocating trace buffer
   075242101627 tracing: Remove extra zeroing out of the ring buffer page
   87060303469c net: mvneta: clear interface link status on port disable
   b7aac649af10 powerpc/perf: Dereference BHRB entries safely
   5a62acc900e9 kvm: x86: fix RSM when PCID is non-zero
   c9b5338394f2 KVM: X86: Fix load RFLAGS w/o the fixed bit
   0bf0c45449c3 spi: xilinx: Detect stall with Unknown commands
   46865ecdd061 parisc: Hide Diva-built-in serial aux and graphics card
   727b641b35dd PCI / PM: Force devices to D0 in pci_pm_thaw_noirq()
   6b08ff879603 ALSA: usb-audio: Fix the missing ctl name suffix at parsing SU
   af1195354355 ALSA: rawmidi: Avoid racy info ioctl via ctl device
   e7f1c0da02fb mfd: twl6040: Fix child-node lookup
   ee54e7a18e56 mfd: twl4030-audio: Fix sibling-node lookup
   381d368c9954 mfd: cros ec: spi: Don't send first message too soon
   2e234e707f7f crypto: mcryptd - protect the per-CPU queue with a lock
   db09203e3252 ACPI: APEI / ERST: Fix missing error handling in erst_reader()
   03028e068a1f Linux 4.4.108
   1cfeaadfd1b4 alpha: fix build failures
   d126c47656da ALSA: hda - Fix yet another i915 pointer leftover in error path
   3b67b56ea770 ALSA: hda - Degrade i915 binding failure message
   ef24d642e92a ALSA: hda - Clear the leftover component assignment at snd_hdac_i915_exit()
   7f3e85d820fd Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"
   9c631278a9c6 MIPS: math-emu: Fix final emulation phase for certain instructions
   69dd89a1f919 thermal: hisilicon: Handle return value of clk_prepare_enable
   c0303e4ffd3a cpuidle: fix broadcast control when broadcast can not be entered
   8e6e8ec18d95 rtc: set the alarm to the next expiring timer
   1e52ede8e1ed tcp: fix under-evaluated ssthresh in TCP Vegas
   ab8e096eed2f fm10k: ensure we process SM mbx when processing VF mbx
   0705d3b83699 scsi: lpfc: PLOGI failures during NPIV testing
   e4dff872fe97 scsi: lpfc: Fix secure firmware updates
   eb7b86ec94a4 PCI/AER: Report non-fatal errors only to the affected endpoint
   aa6d09cea6df ixgbe: fix use of uninitialized padding
   cffbf0ffc47c igb: check memory allocation failure
   1e91b0d64e92 PCI: Create SR-IOV virtfn/physfn links before attaching driver
   a916c4152a4b scsi: mpt3sas: Fix IO error occurs on pulling out a drive from RAID1 volume created on two SATA drive
   e9151f9d4b6f scsi: cxgb4i: fix Tx skb leak
   8f376337c637 PCI: Avoid bus reset if bridge itself is broken
   3190a0623c58 net: phy: at803x: Change error to EINVAL for invalid MAC
   a0ca85d4895a rtc: pl031: make interrupt optional
   d7ae9928a25d crypto: crypto4xx - increase context and scatter ring buffer elements
   78ffab9744ad backlight: pwm_bl: Fix overflow condition
   0ec5f7a3c9b6 bnxt_en: Fix NULL pointer dereference in reopen failure path
   7432a60515da cpuidle: powernv: Pass correct drv->cpumask for registration
   1779b33294da ARM: dma-mapping: disallow dma_get_sgtable() for non-kernel managed memory
   bec60b446b52 netfilter: nfnetlink_queue: fix secctx memory leak
   ff1ddbb38b19 xhci: plat: Register shutdown for xhci_plat
   ea9e1ca40939 isdn: kcapi: avoid uninitialized data
   f15394085d11 KVM: pci-assign: do not map smm memory slot pages in vt-d page tables
   27c2fa1ae0ea ARM: dts: am335x-evmsk: adjust mmc2 param to allow suspend
   17b1ff10a1fc netfilter: nf_nat_snmp: Fix panic when snmp_trap_helper fails to register
   7c9316d2f263 netfilter: nfnl_cthelper: fix a race when walk the nf_ct_helper_hash table
   3af547339068 irda: vlsi_ir: fix check for DMA mapping errors
   52cd7920b7ac RDMA/iser: Fix possible mr leak on device removal event
   85e54ef781b6 i40e: Do not enable NAPI on q_vectors that have no rings
   6a04a7798a3e net: Do not allow negative values for busy_read and busy_poll sysctl interfaces
   359f7020464f bna: avoid writing uninitialized data into hw registers
   8acee491cfbd s390/qeth: no ETH header for outbound AF_IUCV
   8ce4313f1279 r8152: prevent the driver from transmitting packets with carrier off
   19b1ad3a2e68 HID: xinmo: fix for out of range for THT 2P arcade controller.
   ebfb08395800 hwmon: (asus_atk0110) fix uninitialized data access
   2e114c7b4562 ARM: dts: ti: fix PCI bus dtc warnings
   f1fdf68b4f94 KVM: VMX: Fix enable VPID conditions
   caa4cfd173b7 KVM: x86: correct async page present tracepoint
   2849ef5dcefd scsi: lpfc: Fix PT2PT PRLI reject
   bc9aec2faddf pinctrl: st: add irq_request/release_resources callbacks
   1d75c214cebc inet: frag: release spinlock before calling icmp_send()
   aba55cb03579 netfilter: nfnl_cthelper: Fix memory leak
   b9fd3306a5af netfilter: nfnl_cthelper: fix runtime expectation policy updates
   e598cdd240a0 usb: gadget: udc: remove pointer dereference after free
   0c8496bfdb0e usb: gadget: f_uvc: Sanity check wMaxPacketSize for SuperSpeed
   d6c0e23a7fef net: qmi_wwan: Add USB IDs for MDM6600 modem on Motorola Droid 4
   b9a4a18a01fc bna: integer overflow bug in debugfs
   ffde339b95f5 sch_dsmark: fix invalid skb_cow() usage
   4bf8a4f179ed crypto: deadlock between crypto_alg_sem/rtnl_mutex/genl_mutex
   a88b064826f0 r8152: fix the list rx_done may be used without initialization
   125325fe1c19 cpuidle: Validate cpu_dev in cpuidle_add_sysfs()
   a23a447e47cc arm: kprobes: Align stack to 8-bytes in test code
   3f7855a52222 arm: kprobes: Fix the return address of multiple kretprobes
   779214d0eaca ALSA: hda - add support for docking station for HP 840 G3
   9a66598014db ALSA: hda - add support for docking station for HP 820 G2
   3b9d9ec0d826 x86/irq: Do not substract irq_tlb_count from irq_call_count
   18a5348d49af sched/core: Idle_task_exit() shouldn't use switch_mm_irqs_off()
   c22d4b4d1c7f ARM: Hide finish_arch_post_lock_switch() from modules
   4ead44fd2525 x86/mm, sched/core: Turn off IRQs in switch_mm()
   70a39c7fd167 x86/mm, sched/core: Uninline switch_mm()
   83cc4b50e3a9 x86/mm: Build arch/x86/mm/tlb.c even on !SMP
   425f13a36652 sched/core: Add switch_mm_irqs_off() and use it in the scheduler
   dfe513a4e8dd mm/mmu_context, sched/core: Fix mmu_context.h assumption
   8d5ee51a6bce mm/rmap: batched invalidations should use existing api
   85d3700c744a x86/mm: If INVPCID is available, use it to flush global mappings
   791a0f3fecda x86/mm: Add a 'noinvpcid' boot option to turn off INVPCID
   04ec428b15f1 x86/mm: Fix INVPCID asm constraint
   becf292446e9 x86/mm: Add INVPCID helpers
   5fc8d62d1921 cxl: Check if vphb exists before iterating over AFU devices
   9e1485b1b570 arm64: Initialise high_memory global variable earlier
   96c00ece76be Linux 4.4.107
   a815c0a370cf ath9k: fix tx99 potential info leak
   26c66554d7bf IB/ipoib: Grab rtnl lock on heavy flush when calling ndo_open/stop
   112814db6ec4 RDMA/cma: Avoid triggering undefined behavior
   4bbb49138f4a macvlan: Only deliver one copy of the frame to the macvlan interface
   b8d510ff7165 udf: Avoid overflow when session starts at large offset
   a114af87c0ba scsi: bfa: integer overflow in debugfs
   798f08501424 scsi: sd: change allow_restart to bool in sysfs interface
   c387c02d604d scsi: sd: change manage_start_stop to bool in sysfs interface
   2e03af22f65c vt6655: Fix a possible sleep-in-atomic bug in vt6655_suspend
   930fb06d1617 scsi: scsi_devinfo: Add REPORTLUN2 to EMC SYMMETRIX blacklist entry
   24bc48af0aee raid5: Set R5_Expanded on parity devices as well as data.
   09379498aff0 pinctrl: adi2: Fix Kconfig build problem
   5f2dbdff20e0 usb: musb: da8xx: fix babble condition handling
   68d3bc40f5ca tty fix oops when rmmod 8250
   afa8f0a7af70 powerpc/perf/hv-24x7: Fix incorrect comparison in memord
   28a5b0e438f1 scsi: hpsa: destroy sas transport properties before scsi_host
   942eb7dd5e42 scsi: hpsa: cleanup sas_phy structures in sysfs when unloading
   ec662d656073 PCI: Detach driver before procfs & sysfs teardown on device remove
   02922f3bb37f xfs: fix incorrect extent state in xfs_bmap_add_extent_unwritten_real
   f267a1390b41 xfs: fix log block underflow during recovery cycle verification
   92eff81ad96a l2tp: cleanup l2tp_tunnel_delete calls
   230c4ba404d3 bcache: fix wrong cache_misses statistics
   271252373027 bcache: explicitly destroy mutex while exiting
   ab9b3db40828 GFS2: Take inode off order_write list when setting jdata flag
   2a5bb1284e72 thermal/drivers/step_wise: Fix temperature regulation misbehavior
   561b9d998e65 ppp: Destroy the mutex when cleanup
   083dd685aebd clk: tegra: Fix cclk_lp divisor register
   f56be2ce49c1 clk: imx6: refine hdmi_isfr's parent to make HDMI work on i.MX6 SoCs w/o VPU
   22a1e337ed68 clk: mediatek: add the option for determining PLL source clock
   b59614cfd2d3 mm: Handle 0 flags in _calc_vm_trans() macro
   44de70ecec2d crypto: tcrypt - fix buffer lengths in test_aead_speed()
   b397507641fb arm-ccn: perf: Prevent module unload while PMU is in use
   75ee360a5114 target/file: Do not return error for UNMAP if length is zero
   646191449e76 target:fix condition return in core_pr_dump_initiator_port()
   e14086b2c9bc iscsi-target: fix memory leak in lio_target_tiqn_addtpg()
   7d93603ddb65 target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd()
   09f29c7a953d powerpc/ipic: Fix status get and status clear
   c6c3637ee8ab powerpc/opal: Fix EBUSY bug in acquiring tokens
   59720463cf28 netfilter: ipvs: Fix inappropriate output of procfs
   f46b4bab4e93 powerpc/powernv/cpufreq: Fix the frequency read by /proc/cpuinfo
   ef476a74f8ed PCI/PME: Handle invalid data when reading Root Status
   e6d8207a84b0 dmaengine: ti-dma-crossbar: Correct am335x/am43xx mux value type
   600b973fc56f rtc: pcf8563: fix output clock rate
   ac0468efee60 video: fbdev: au1200fb: Return an error code if a memory allocation fails
   033d20b727f3 video: fbdev: au1200fb: Release some resources if a memory allocation fails
   314ce0575795 video: udlfb: Fix read EDID timeout
   2f5427451738 fbdev: controlfb: Add missing modes to fix out of bounds access
   57fa76a46673 sfc: don't warn on successful change of MAC
   c9b79738c0ab target: fix race during implicit transition work flushes
   dfd6deed8313 target: fix ALUA transition timeout handling
   7f5084b98f89 target: Use system workqueue for ALUA transitions
   f9b4a2e04c22 btrfs: add missing memset while reading compressed inline extents
   248aa3accad9 NFSv4.1 respect server's max size in CREATE_SESSION
   a49aa7aadbd3 efi/esrt: Cleanup bad memory map log messages
   dc81417eedf5 perf symbols: Fix symbols__fixup_end heuristic for corner cases
   acc7d1bd901c net/mlx4_core: Avoid delays during VF driver device shutdown
   5e469e44c8fd afs: Fix afs_kill_pages()
   80f74cef482f afs: Fix page leak in afs_write_begin()
   c58d7796ab93 afs: Populate and use client modification time
   fa034538cb04 afs: Fix the maths in afs_fs_store_data()
   1efae6ca3418 afs: Prevent callback expiry timer overflow
   43e68e3725df afs: Migrate vlocation fields to 64-bit
   9d8d20570f39 afs: Flush outstanding writes when an fd is closed
   549d7b98f55e afs: Adjust mode bits processing
   bb7a7cd6194f afs: Populate group ID from vnode status
   1c277e9ebba6 afs: Fix missing put_page()
   fec8348008b5 drm/radeon: reinstate oland workaround for sclk
   6a51e93b2fe3 mmc: mediatek: Fixed bug where clock frequency could be set wrong
   51b3eac39a6c sched/deadline: Use deadline instead of period when calculating overflow
   ca91884bcf7d sched/deadline: Throttle a constrained deadline task activated after the deadline
   cd0e18d2f24b sched/deadline: Make sure the replenishment timer fires in the next period
   4c6567f5af9a drm/radeon/si: add dpm quirk for Oland
   c383ebf1acd6 fjes: Fix wrong netdevice feature flags
   a33a9d0c705f scsi: hpsa: limit outstanding rescans
   0a609298214b scsi: hpsa: update check for logical volume status
   b0def6f1e26b openrisc: fix issue handling 8 byte get_user calls
   1236cc3664dc intel_th: pci: Add Gemini Lake support
   d270d24ee596 mlxsw: reg: Fix SPVMLR max record count
   e934e13550a0 mlxsw: reg: Fix SPVM max record count
   677a7aac2ec6 net: Resend IGMP memberships upon peer notification.
   26af6a8b51f1 dmaengine: Fix array index out of bounds warning in __get_unmap_pool()
   9cd4b8684621 net: wimax/i2400m: fix NULL-deref at probe
   b424289863d0 writeback: fix memory leak in wb_queue_work()
   fbdf477fcff6 netfilter: bridge: honor frag_max_size when refragmenting
   7edb2d2d8680 drm/omap: fix dmabuf mmap for dma_alloc'ed buffers
   dbfba339c729 Input: i8042 - add TUXEDO BU1406 (N24_25BU) to the nomux list
   df5678476040 NFSD: fix nfsd_reset_versions for NFSv4.
   5b0334584ad6 NFSD: fix nfsd_minorversion(.., NFSD_AVAIL)
   067cb6b2f716 net: bcmgenet: Power up the internal PHY before probing the MII
   a33e082dcaf4 net: bcmgenet: power down internal phy if open or resume fails
   8aaed873f3b9 net: bcmgenet: reserved phy revisions must be checked first
   c25da696fca1 net: bcmgenet: correct MIB access of UniMAC RUNT counters
   296b584763f7 net: bcmgenet: correct the RBUF_OVFL_CNT and RBUF_ERR_CNT MIB values
   accbd99507b1 net: initialize msg.msg_flags in recvfrom
   b5213e1e9f25 userfaultfd: selftest: vm: allow to build in vm/ directory
   ee9be9963039 userfaultfd: shmem: __do_fault requires VM_FAULT_NOPAGE
   0d0456ec2b08 md-cluster: free md_cluster_info if node leave cluster
   a1d72bc18e77 usb: phy: isp1301: Add OF device ID table
   75252bfe9e49 mac80211: Fix addition of mesh configuration element
   13e86efb2eee KEYS: add missing permission check for request_key() destination
   ef7ce82bc280 ext4: fix crash when a directory's i_size is too small
   2c367edaba65 ext4: fix fdatasync(2) after fallocate(2) operation
   52425e042843 dmaengine: dmatest: move callback wait queue to thread context
   af36d95af55f sched/rt: Do not pull from current CPU if only one CPU to pull
   f98ee9c0007b xhci: Don't add a virt_dev to the devs array before it's fully allocated
   ffc7565746bb Bluetooth: btusb: driver to enable the usb-wakeup feature
   8c7c3d5b785f ceph: drop negative child dentries before try pruning inode's alias
   2862cfca3989 usbip: fix stub_send_ret_submit() vulnerability to null transfer_buffer
   dfdf5fa3e664 USB: core: prevent malicious bNumInterfaces overflow
   05de6fa5c0e2 USB: uas and storage: Add US_FL_BROKEN_FUA for another JMicron JMS567 ID
   a34419b3f6a2 tracing: Allocate mask_str buffer dynamically
   c60db4f68593 autofs: fix careless error in recent commit
   8a311b0462b5 crypto: salsa20 - fix blkcipher_walk API usage
   43cd7f38612d crypto: hmac - require that the underlying hash algorithm is unkeyed
   4231b6a98fce Linux 4.4.106
   5c6db4afbd9f usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping
   a5fa9efe4e01 arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one
   9f5a8d610dd3 Revert "x86/mm/pat: Ensure cpa->pfn only contains page frame numbers"
   34933c2ce99c Revert "x86/efi: Hoist page table switching code into efi_call_virt()"
   1dfe268df584 Revert "x86/efi: Build our own page table structures"
   b90f87c641bc net/packet: fix a race in packet_bind() and packet_notifier()
   f50e9c872cb5 packet: fix crash in fanout_demux_rollover()
   d6189fa45c6d sit: update frag_off info
   6c154d536d94 rds: Fix NULL pointer dereference in __rds_rdma_map
   827fd89bc552 tipc: fix memory leak in tipc_accept_from_sock()
   047a7bb12d63 more bio_map_user_iov() leak fixes
   3a620404e24a s390: always save and restore all registers on context switch
   99962affcb8f ipmi: Stop timers before cleaning up the module
   b34957127058 audit: ensure that 'audit=1' actually enables audit for PID 1
   1b9baf30673c ipvlan: fix ipv6 outbound device
   cdfe2d0a4834 afs: Connect up the CB.ProbeUuid
   452ae0913614 IB/mlx5: Assign send CQ and recv CQ of UMR QP
   3d1d4642fc55 IB/mlx4: Increase maximal message size under UD QP
   8bfafc972a34 xfrm: Copy policy family in clone_policy
   5c15c5c8ebc5 jump_label: Invoke jump_label_test() via early_initcall()
   1b85cd5d9262 atm: horizon: Fix irq release error
   dde5bbd52a28 sctp: use the right sk after waking up from wait_buf sleep
   1ad621272bd7 sctp: do not free asoc when it is already dead in sctp_sendmsg
   59e52050b17c sparc64/mm: set fields in deferred pages
   7b99b00cf3f0 block: wake up all tasks blocked in get_request()
   5a54dcc51a4a sunrpc: Fix rpc_task_begin trace point
   c02608144e79 NFS: Fix a typo in nfs_rename()
   640192431a29 dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
   24c98ec494c2 lib/genalloc.c: make the avail variable an atomic_long_t
   90ec232a3911 route: update fnhe_expires for redirect when the fnhe exists
   41dee81f22c9 route: also update fnhe_genid when updating a route cache
   32f8870cc9a9 mac80211_hwsim: Fix memory leak in hwsim_new_radio_nl()
   0aab426757d3 kbuild: pkg: use --transform option to prefix paths in tar
   8f72d29e7024 EDAC, i5000, i5400: Fix definition of NRECMEMB register
   222de157ccd0 EDAC, i5000, i5400: Fix use of MTR_DRAM_WIDTH macro
   f1ff979f97bd powerpc/powernv/ioda2: Gracefully fail if too many TCE levels requested
   d42ebf56380f drm/amd/amdgpu: fix console deadlock if late init failed
   40b2b6453f89 axonram: Fix gendisk handling
   f2396d60746f netfilter: don't track fragmented packets
   ca6d40bb082a zram: set physical queue limits to avoid array out of bounds accesses
   39c626c1f9e3 i2c: riic: fix restart condition
   a836e1952f28 crypto: s5p-sss - Fix completing crypto request in IRQ handler
   7c5deeccc664 ipv6: reorder icmpv6_init() and ip6_mr_init()
   84bc40c4b31b bnx2x: do not rollback VF MAC/VLAN filters we did not configure
   871e4b11eba2 bnx2x: fix possible overrun of VFPF multicast addresses array
   1aead0538b89 bnx2x: prevent crash when accessing PTP with interface down
   6bbc908cfc1c spi_ks8995: fix "BUG: key accdaa28 not in .data!"
   687121453005 arm64: KVM: Survive unknown traps from guests
   5dc5c8e65515 arm: KVM: Survive unknown traps from guests
   ccf72fe2e5cc KVM: nVMX: reset nested_run_pending if the vCPU is going to be reset
   0a12875fa51f irqchip/crossbar: Fix incorrect type of register size
   8a15c626996c scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters
   d9d47a6d6862 workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq
   14a7aa2ae61e libata: drop WARN from protocol error in ata_sff_qc_issue()
   f9b291aed2a9 kvm: nVMX: VMCLEAR should not cause the vCPU to shut down
   ef21f3a12bb1 USB: gadgetfs: Fix a potential memory leak in 'dev_config()'
   4036947a43a0 usb: gadget: configs: plug memory leak
   24e9fc7ef051 HID: chicony: Add support for another ASUS Zen AiO keyboard
   3aec56b81960 gpio: altera: Use handle_level_irq when configured as a level_high
   c52017de0ba6 ARM: OMAP2+: Release device node after it is no longer needed.
   14c396184529 ARM: OMAP2+: Fix device node reference counts
   d180639d86e1 module: set __jump_table alignment to 8
   23f9e8448219 selftest/powerpc: Fix false failures for skipped tests
   3bf3fc6cbc8b x86/hpet: Prevent might sleep splat on resume
   0500c6d35274 ARM: OMAP2+: gpmc-onenand: propagate error on initialization failure
   572b639bde31 vti6: Don't report path MTU below IPV6_MIN_MTU.
   3771241e5bc3 Revert "s390/kbuild: enable modversions for symbols exported from asm"
   e891a29531d4 Revert "spi: SPI_FSL_DSPI should depend on HAS_DMA"
   f854e2099915 Revert "drm/armada: Fix compile fail"
   5327f9badacd mm: drop unused pmdp_huge_get_and_clear_notify()
   47c53ccca4a0 thp: fix MADV_DONTNEED vs. numa balancing race
   d4443b53732e thp: reduce indentation level in change_huge_pmd()
   696fbe191acd scsi: storvsc: Workaround for virtual DVD SCSI version
   dd8c78e2501e ARM: avoid faulting on qemu
   af1d17239682 ARM: BUG if jumping to usermode address in kernel mode
   750f60edebac arm64: fpsimd: Prevent registers leaking from dead tasks
   477b837533a2 KVM: VMX: remove I/O port 0x80 bypass on Intel hosts
   11030654676b arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one
   a0b99544dde8 media: dvb: i2c transfers over usb cannot be done from stack
   81bf294f5f7b drm/exynos: gem: Drop NONCONTIG flag for buffers allocated without IOMMU
   74b6030355a4 drm: extra printk() wrapper macros
   d6ff4cce9aa3 kdb: Fix handling of kallsyms_symbol_next() return value
   bb47cf7f8e47 s390: fix compat system call table
   dc41b6e35f93 iommu/vt-d: Fix scatterlist offset handling
   90a20a81dc1c ALSA: usb-audio: Add check return value for usb_string()
   9f5c6b108850 ALSA: usb-audio: Fix out-of-bound error
   e1d3b7d04d9d ALSA: seq: Remove spurious WARN_ON() at timer check
   659e7d2588f0 ALSA: pcm: prevent UAF in snd_pcm_info
   5986c9685f1e x86/PCI: Make broadcom_postcore_init() check acpi_disabled
   2c2e4b7d279a X.509: reject invalid BIT STRING for subjectPublicKey
   1471d1258921 ASN.1: check for error from ASN1_OP_END__ACT actions
   621dac1d6991 ASN.1: fix out-of-bounds read when parsing indefinite length item
   481efb4c7256 efi: Move some sysfs files to be read-only by root
   7e0091c2951f scsi: libsas: align sata_device's rps_resp on a cacheline
   98448333588c isa: Prevent NULL dereference in isa_bus driver callbacks
   90e2ea6dc851 hv: kvp: Avoid reading past allocated blocks from KVP file
   94739ddf35cb virtio: release virtio index when fail to device_register
   d73fcef16da0 can: usb_8dev: cancel urb on -EPIPE and -EPROTO
   191b419bd0b1 can: esd_usb2: cancel urb on -EPIPE and -EPROTO
   af11f3afc2c2 can: ems_usb: cancel urb on -EPIPE and -EPROTO
   bd424bd17572 can: kvaser_usb: cancel urb on -EPIPE and -EPROTO
   3e3dabd83630 can: kvaser_usb: ratelimit errors if incomplete messages are received
   816bc7dffea2 can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()
   b6fa54c18e8d can: kvaser_usb: free buf in error paths
   a68e3c90dfb1 can: ti_hecc: Fix napi poll return value for repoll
   69b0bf95a51e Linux 4.4.105
   da57b1f7e74f xen-netfront: avoid crashing on resume after a failure in talk_to_netback()
   e1cadf7c4af2 usb: host: fix incorrect updating of offset
   43135100f117 USB: usbfs: Filter flags passed in from user space
   c0493eb552e0 USB: devio: Prevent integer overflow in proc_do_submiturb()
   2ee8d2acf3ef USB: Increase usbfs transfer limit
   9d812f7bef8c USB: core: Add type-specific length check of BOS descriptors
   f044af8c1dc3 usb: ch9: Add size macro for SSP dev cap descriptor
   ddaa1ae2eb7f usb: Add USB 3.1 Precision time measurement capability descriptor support
   a1f03a9bcfa4 usb: xhci: fix panic in xhci_free_virt_devices_depth_first
   6a85ba4157a0 usb: hub: Cycle HUB power when initialization fails
   40012163e52a Revert "ocfs2: should wait dio before inode lock in ocfs2_setattr()"
   33621da4d4ef net: fec: fix multicast filtering hardware setup
   5d036ccddc5d xen-netfront: Improve error handling during initialization
   cc4add389789 mm: avoid returning VM_FAULT_RETRY from ->page_mkwrite handlers
   1b7dbabf0242 tcp: correct memory barrier usage in tcp_check_space()
   bc42f67b73cb dmaengine: pl330: fix double lock
   ca0836061019 tipc: fix cleanup at module unload
   e5afc84f644c net: sctp: fix array overrun read on sctp_timer_tbl
   7e9236c00152 drm/exynos/decon5433: set STANDALONE_UPDATE_F on output enablement
   e26d58f897ca NFSv4: Fix client recovery when server reboots multiple times
   48222dd037f5 KVM: arm/arm64: Fix occasional warning from the timer work function
   f2fb416f4af6 nfs: Don't take a reference on fl->fl_file for LOCK operation
   7228df818d90 ravb: Remove Rx overflow log messages
   1bb50d02a8d3 net/appletalk: Fix kernel memory disclosure
   c73b58cfa83e vti6: fix device register to report IFLA_INFO_KIND
   e6533243f74f ARM: OMAP1: DMA: Correct the number of logical channels
   e6f105531992 net: systemport: Pad packet before inserting TSB
   3a44ade54473 net: systemport: Utilize skb_put_padto()
   8633eec0ee08 kprobes/x86: Disable preemption in ftrace-based jprobes
   7317cb116754 perf test attr: Fix ignored test case result
   1c4d7600390b sysrq : fix Show Regs call trace on ARM
   c86fa9ed3a0f EDAC, sb_edac: Fix missing break in switch
   c2e1be144805 x86/entry: Use SYSCALL_DEFINE() macros for sys_modify_ldt()
   ecd996c24a79 serial: 8250: Preserve DLD[7:4] for PORT_XR17V35X
   86b9d66d1f3f usb: phy: tahvo: fix error handling in tahvo_usb_probe()
   b6ca48b5cd08 spi: sh-msiof: Fix DMA transfer size check
   a96c19f5ba09 serial: 8250_fintek: Fix rs485 disablement on invalid ioctl()
   429feb597df3 selftests/x86/ldt_get: Add a few additional tests for limits
   93f45d8c67dc s390/pci: do not require AIS facility
   80f93e24ecfc ima: fix hash algorithm initialization
   71ce1cac5b4d USB: serial: option: add Quectel BG96 id
   9e51ee1b76ef s390/runtime instrumentation: simplify task exit handling
   ef3567cc5284 serial: 8250_pci: Add Amazon PCI serial device ID
   a8293de0ee1f usb: quirks: Add no-lpm quirk for KY-688 USB 3.1 Type-C Hub
   636b080991ee uas: Always apply US_FL_NO_ATA_1X quirk to Seagate devices
   3f7477e64478 bcache: recover data from backing when data is clean
   f80f34d8ba92 bcache: only permit to recovery read error when cache device is clean
   bd3799391822 Linux 4.4.104
   bd249dd07827 nfsd: Fix another OPEN stateid race
   54298082dbac nfsd: Fix stateid races between OPEN and CLOSE
   d7f5f10f5159 nfsd: Make init_open_stateid() a bit more whole
   68e6cd9a0547 drm/i915: Prevent zero length "index" write
   e6bcff7b6aa1 drm/i915: Don't try indexed reads to alternate slave addresses
   a61474fa8749 NFS: revalidate "." etc correctly on "open".
   c8ea49b690ee mtd: nand: Fix writing mtdoops to nand flash.
   a155a9568d9a drm/panel: simple: Add missing panel_simple_unprepare() calls
   c7716f65721a drm/radeon: fix atombios on big endian
   4d027a8bcc7f Revert "drm/radeon: dont switch vt on suspend"
   5a7391b6d898 bcache: Fix building error on MIPS
   6b4901e0e349 eeprom: at24: check at24_read/write arguments
   5c65b739389f mmc: core: Do not leave the block driver in a suspended state
   a6493ad6fc89 KVM: x86: inject exceptions produced by x86_decode_insn
   1e9e6bdccb80 KVM: x86: Exit to user-mode on #UD intercept when emulator requires
   ab29b6b818aa KVM: x86: pvclock: Handle first-time write to pvclock-page contains random junk
   591ddc92d756 btrfs: clear space cache inode generation always
   0d05a5593f63 mm/madvise.c: fix madvise() infinite loop under special circumstances
   2b7ef6bdd286 mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
   f97fc9ab1ce2 x86/efi-bgrt: Replace early_memremap() with memremap()
   e85c6907b2b4 x86/efi-bgrt: Fix kernel panic when mapping BGRT data
   44ff3af83ee1 ARM: dts: omap3: logicpd-torpedo-37xx-devkit: Fix MMC1 cd-gpio
   36e0f05afd4e x86/efi: Build our own page table structures
   b73adb608520 x86/efi: Hoist page table switching code into efi_call_virt()
   87e2bd898d3a x86/mm/pat: Ensure cpa->pfn only contains page frame numbers
   b377c453b363 ipsec: Fix aborted xfrm policy dump crash
   27248d2fa77f netlink: add a start callback for starting a netlink dump
   08c15ad2e627 Linux 4.4.103
   3d7214a338d7 Revert "sctp: do not peel off an assoc from one netns to another one"
   c73eb1e0cc56 xen: xenbus driver must not accept invalid transaction ids
   eedd29f51078 s390/kbuild: enable modversions for symbols exported from asm
   681b2239862d ASoC: wm_adsp: Don't overrun firmware file buffer when reading region data
   b63209c78f9e btrfs: return the actual error value from from btrfs_uuid_tree_iterate
   e88f3fb0e340 ASoC: rsnd: don't double free kctrl
   47b99a3306d0 netfilter: nf_tables: fix oob access
   a1e4f6a15103 netfilter: nft_queue: use raw_smp_processor_id()
   85f286d6f8cd spi: SPI_FSL_DSPI should depend on HAS_DMA
   8537e96e4351 staging: iio: cdc: fix improper return value
   266913b390c3 iio: light: fix improper return value
   7e927748d4db mac80211: Suppress NEW_PEER_CANDIDATE event if no room
   9825826ed7bd mac80211: Remove invalid flag operations in mesh TSF synchronization
   f0d8fb74479b drm: Apply range restriction after color adjustment when allocation
   31447ebb1a86 ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE
   7e920566c352 ath10k: set CTS protection VDEV param only if VDEV is up
   ef751ca54602 ath10k: fix potential memory leak in ath10k_wmi_tlv_op_pull_fw_stats()
   b24769300a00 ath10k: ignore configuring the incorrect board_id
   64b22ee723ee ath10k: fix incorrect txpower set by P2P_DEVICE interface
   c4cf731af838 drm/armada: Fix compile fail
   7f69dc100400 net: 3com: typhoon: typhoon_init_one: fix incorrect return values
   609797646f9b net: 3com: typhoon: typhoon_init_one: make return values more specific
   d7c3d5333e39 net: Allow IP_MULTICAST_IF to set index to L3 slave
   778395506a7f dmaengine: zx: set DMA_CYCLIC cap_mask bit
   37a48e6d83f5 PCI: Apply _HPX settings only to relevant devices
   57d2ce160310 RDS: RDMA: return appropriate error on rdma map failures
   bbb1fc744894 e1000e: Separate signaling for link check/link up
   5df4097cfc70 e1000e: Fix return value test
   fbb2d8000a8f e1000e: Fix error path in link detection
   d6968bc56e44 PM / OPP: Add missing of_node_put(np)
   fd3c395d4d46 net/9p: Switch to wait_event_killable()
   91bd72dd8c72 fscrypt: lock mutex before checking for bounce page pool
   cb1831a83e54 sched/rt: Simplify the IPI based RT balancing logic
   5a11b8458b35 media: v4l2-ctrl: Fix flags field on Control events
   0870fb4c3566 cx231xx-cards: fix NULL-deref on missing association descriptor
   d758f4d8bf20 media: rc: check for integer overflow
   878c0f9a7c69 media: Don't do DMA on stack for firmware upload in the AS102 driver
   a2943ce580f5 powerpc/signal: Properly handle return value from uprobe_deny_signal()
   937a91cd3992 parisc: Fix validity check of pointer size argument in new CAS implementation
   aef7cdb6a6ff ixgbe: Fix skb list corruption on Power systems
   bb923a81c33e fm10k: Use smp_rmb rather than read_barrier_depends
   b4ca98b7a803 i40evf: Use smp_rmb rather than read_barrier_depends
   a8e699dfca04 ixgbevf: Use smp_rmb rather than read_barrier_depends
   2f7de4d5f525 igbvf: Use smp_rmb rather than read_barrier_depends
   391cdaaaa9d9 igb: Use smp_rmb rather than read_barrier_depends
   146d53371385 i40e: Use smp_rmb rather than read_barrier_depends
   76c389ca1331 NFC: fix device-allocation error return
   ecc5e8914766 IB/srp: Avoid that a cable pull can trigger a kernel crash
   3e32b40435b9 IB/srpt: Do not accept invalid initiator port names
   54a8d930b93f libnvdimm, namespace: make 'resource' attribute only readable by root
   4dae2f771fa7 libnvdimm, namespace: fix label initialization to use valid seq numbers
   037646313522 clk: ti: dra7-atl-clock: fix child-node lookups
   eca460c485f9 clk: ti: dra7-atl-clock: Fix of_node reference counting
   36d2f19430e2 SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status
   a694b1f85aea KVM: SVM: obey guest PAT
   8293dc75de47 KVM: nVMX: set IDTR and GDTR limits when loading L1 host state
   4e426ed57cd2 target: Fix QUEUE_FULL + SCSI task attribute handling
   63bfc4c90a87 iscsi-target: Fix non-immediate TMR reference leak
   8709c5386109 fs/9p: Compare qid.path in v9fs_test_inode
   1b11593eb742 fix a page leak in vhost_scsi_iov_to_sgl() error recovery
   509ab500a240 ALSA: hda/realtek - Fix ALC700 family no sound issue
   ef6745531648 ALSA: timer: Remove kernel warning at compat ioctl error paths
   3532750d20f5 ALSA: usb-audio: Add sanity checks in v2 clock parsers
   0b6cede2e455 ALSA: usb-audio: Fix potential out-of-bound access at parsing SU
   d1316b9d83de ALSA: usb-audio: Add sanity checks to FE parser
   b71cf750ddd3 ALSA: pcm: update tstamp only if audio_tstamp changed
   db12d9b5a181 ext4: fix interaction between i_size, fallocate, and delalloc after a crash
   189bc689547a ata: fixes kernel crash while tracing ata_eh_link_autopsy event
   f1be21021099 rtlwifi: fix uninitialized rtlhal->last_suspend_sec time
   3c260c60d20c rtlwifi: rtl8192ee: Fix memory leak when loading firmware
   a8b8ab79ca4f nfsd: deal with revoked delegations appropriately
   2a2d4b41472c nfs: Fix ugly referral attributes
   ab33df42eb3c NFS: Fix typo in nomigration mount option
   4e23be616976 isofs: fix timestamps beyond 2027
   85c79043808d bcache: check ca->alloc_thread initialized before wake up it
   9c093a258350 eCryptfs: use after free in ecryptfs_release_messaging()
   7d7b05e4ffd5 nilfs2: fix race condition that causes file system corruption
   9a4e08c634ce autofs: don't fail mount for transient error
   153142963ca1 MIPS: BCM47XX: Fix LED inversion for WRT54GSv1
   00fd53bc378f MIPS: Fix an n32 core file generation regset support regression
   4e82464aa4a3 dm: fix race between dm_get_from_kobject() and __dm_destroy()
   36c4819abc92 dm bufio: fix integer overflow when limiting maximum cache size
   a9f066404fd0 ALSA: hda: Add Raven PCI ID
   0c1faf9df0c8 MIPS: ralink: Fix typo in mt7628 pinmux function
   84c785ed786a MIPS: ralink: Fix MT7628 pinmux
   36a082ce590f ARM: 8721/1: mm: dump: check hardware RO bit for LPAE
   5f8046f7c9e3 ARM: 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE
   29c4b6b4f46d x86/decoder: Add new TEST instruction pattern
   4fdb1637b208 lib/mpi: call cond_resched() from mpi_powm() loop
   8ff3471878f3 sched: Make resched_cpu() unconditional
   3223ea129170 vsock: use new wait API for vsock_stream_sendmsg()
   df24d6c22460 AF_VSOCK: Shrink the area influenced by prepare_to_wait
   2417da3f4d6b ipv6: only call ip6_route_dev_notify() once for NETDEV_UNREGISTER
   5c2607d3e7cd s390/disassembler: increase show_code buffer size
   4337fa2425f6 s390/disassembler: add missing end marker for e7 table
   04bc7a273264 s390/runtime instrumention: fix possible memory corruption
   7ddbe701076d s390: fix transactional execution control register handling
   29ffb9c1fb4a Linux 4.4.102
   0208fabf7256 mm, hwpoison: fixup "mm: check the return value of lookup_page_ext for all call sites"
   5baf0fb260fc Linux 4.4.101
   a3805b10de80 mm/pagewalk.c: report holes in hugetlb ranges
   3630b2801907 mm/page_ext.c: check if page_ext is not prepared
   e34e744f70a6 mm: check the return value of lookup_page_ext for all call sites
   7b7a1c39e839 coda: fix 'kernel memory exposure attempt' in fsync
   c1b3703b643f mm/page_alloc.c: broken deferred calculation
   4ecf752738ac ipmi: fix unsigned long underflow
   c4baa4a5870c ocfs2: should wait dio before inode lock in ocfs2_setattr()
   8c325770546a nvme: Fix memory order on async queue deletion
   4310b6bfa8e0 arm64: fix dump_instr when PAN and UAO are in use
   1df403abfa9e serial: omap: Fix EFR write on RTS deassertion
   a9100b6f1a8a ima: do not update security.ima if appraisal status is not INTEGRITY_PASS
   51b8aea7abde net/sctp: Always set scope_id in sctp_inet6_skb_msgname
   ae93cefb9430 fealnx: Fix building error on MIPS
   2a0e60907e54 sctp: do not peel off an assoc from one netns to another one
   4cfc0b41af03 af_netlink: ensure that NLMSG_DONE never fails in dumps
   ef206ea779a9 vlan: fix a use-after-free in vlan_device_event()
   3bb6245e14ea bonding: discard lowest hash bit for 802.3ad layer3+4
   001e9cbe1dae netfilter/ipvs: clear ipvs_property flag when SKB net namespace changed
   0c1282c7f046 tcp: do not mangle skb->cb[] in tcp_make_synack()
   26d6298789e6 Linux 4.4.100
   f119ff8e5b6b USB: serial: garmin_gps: fix memory leak on probe errors
   8b36209e93df USB: serial: garmin_gps: fix I/O after failed probe and remove
   5cd938508c81 USB: serial: qcserial: add pid/vid for Sierra Wireless EM7355 fw update
   302dd596822a USB: Add delay-init quirk for Corsair K70 LUX keyboards
   965003b311e0 USB: usbfs: compute urb->actual_length for isochronous
   834a5d880a54 uapi: fix linux/rds.h userspace compilation errors
   16e7973f8e47 uapi: fix linux/rds.h userspace compilation error
   f5e303d54ac2 Revert "uapi: fix linux/rds.h userspace compilation errors"
   d9c8d4adb5a7 Revert "crypto: xts - Add ECB dependency"
   d2d72c0ee4c9 MIPS: Netlogic: Exclude netlogic,xlp-pic code from XLR builds
   9a8ef143951f MIPS: init: Ensure reserved memory regions are not added to bootmem
   034347aca034 MIPS: init: Ensure bootmem does not corrupt reserved memory
   a904ebe92a05 mm: add PHYS_PFN, use it in __phys_to_pfn()
   7f5eb098ef95 MIPS: End asm function prologue macros with .insn
   b15877443a93 staging: rtl8712: fixed little endian problem
   ade72053f452 ixgbe: do not disable FEC from the driver
   b6e7fb0be1e5 ixgbe: add mask for 64 RSS queues
   12ec51aaafe3 ixgbe: Reduce I2C retry count on X550 devices
   9d51db4caff9 ixgbe: handle close/suspend race with netif_device_detach/present
   f12976ce82cd ixgbe: fix AER error handling
   865fe71c0a06 arm64: dts: NS2: reserve memory for Nitro firmware
   e2d12bdaed6b ALSA: hda/realtek - Add new codec ID ALC299
   b1e8e6d4c065 gpu: drm: mgag200: mgag200_main:- Handle error from pci_iomap
   3e899991b99e backlight: adp5520: Fix error handling in adp5520_bl_probe()
   d6f21ea25118 backlight: lcd: Fix race condition during register
   fe21a3d68819 ALSA: vx: Fix possible transfer overflow
   3b985d39ed4f ALSA: vx: Don't try to update capture stream before running
   51abb2a73f16 scsi: lpfc: Clear the VendorVersion in the PLOGI/PLOGI ACC payload
   8d8723c8c187 scsi: lpfc: Correct issue leading to oops during link reset
   44eb947094c4 scsi: lpfc: Correct host name in symbolic_name field
   a7e7d319cc96 scsi: lpfc: FCoE VPort enable-disable does not bring up the VPort
   18477baf599e scsi: lpfc: Add missing memory barrier
   fdc1e9d553e1 staging: rtl8188eu: fix incorrect ERROR tags from logs
   0c098158785b scsi: ufs: add capability to keep auto bkops always enabled
   469e75ddff14 scsi: ufs-qcom: Fix module autoload
   bb848b61967f igb: Fix hw_dbg logging in igb_update_flash_i210
   ba83011a470c igb: close/suspend race in netif_device_detach
   559a20802838 igb: reset the PHY before reading the PHY ID
   7878dca7ca24 drm/sti: sti_vtg: Handle return NULL error from devm_ioremap_nocache
   b9ea0af4793b ata: SATA_MV should depend on HAS_DMA
   11cb9dedb2e6 ata: SATA_HIGHBANK should depend on HAS_DMA
   2066882df749 ata: ATA_BMDMA should depend on HAS_DMA
   4fd669feacd3 ARM: dts: Fix omap3 off mode pull defines
   955840ea5035 ARM: OMAP2+: Fix init for multiple quirks for the same SoC
   4a23041fa533 ARM: dts: Fix am335x and dm814x scm syscon to probe children
   84a97ea8b7b1 ARM: dts: Fix compatible for ti81xx uarts for 8250
   62641014202e fm10k: request reset when mbx->state changes
   2bb04f1ff63d extcon: palmas: Check the parent instance to prevent the NULL
   8d9142ff444e dmaengine: dmatest: warn user when dma test times out
   ec4f8a71c0fc Bluetooth: btusb: fix QCA Rome suspend/resume
   977784638f76 arm: crypto: reduce priority of bit-sliced AES cipher
   e455048c7ae9 net: qmi_wwan: fix divide by 0 on bad descriptors
   caeeef8438c3 net: cdc_ether: fix divide by 0 on bad descriptors
   46bdabbca02e sctp: do not peel off an assoc from one netns to another one
   11e8e55be18c xen-blkback: don't leak stack data via response ring
   49630dd2e10a bpf: don't let ldimm64 leak map addresses on unprivileged
   07e3aff243cd KVM: x86: fix singlestepping over syscall
   ceb5c560e2e4 ext4: fix data exposure after a crash
   0a418e57717d media: dib0700: fix invalid dvb_detach argument
   c344019c48a9 media: imon: Fix null-ptr-deref in imon_probe

(From OE-Core rev: 60445afe0f1a4dbf490fe2d43f6845db7968c88a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
(cherry picked from commit 266f505a7de69850da4b3e82ccbf4c8466adfe51)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Bruce Ashfield
4adfc3c04f linux-yocto/4.4: update to 4.4.99
Integrating the korg stable updates that comprise the following
commits:

   0cbac004e673 Linux 4.4.99
   e8d650563c5f misc: panel: properly restore atomic counter on error path
   01000c56cacc target: Fix node_acl demo-mode + uncached dynamic shutdown regression
   4063c2093349 target/iscsi: Fix iSCSI task reassignment handling
   7ecc076a5d51 brcmfmac: remove setting IBSS mode when stopping AP
   d27383faf144 tipc: fix link attribute propagation bug
   c8f13916c4c9 security/keys: add CONFIG_KEYS_COMPAT to Kconfig
   11fa3353205e tcp/dccp: fix other lockdep splats accessing ireq_opt
   6f8048cd59d7 tcp/dccp: fix lockdep splat in inet_csk_route_req()
   13eddc67565a tcp/dccp: fix ireq->opt races
   b9b0c99a426a ipip: only increase err_count for some certain type icmp in ipip_err
   9bae2ffb87d6 ppp: fix race in ppp device destruction
   4b5bb7723da1 sctp: reset owner sk for data chunks on out queues when migrating a sock
   bcb3b90cf3c8 tun: allow positive return values on dev_get_valid_name() call
   5c8a0850bae2 ip6_gre: only increase err_count for some certain type icmpv6 in ip6gre_err
   93b12f202a4e net/unix: don't show information about sockets from other namespaces
   84237c54b239 ipv6: flowlabel: do not leave opt->tot_len with garbage
   d552c8c5007a packet: avoid panic in packet_getsockopt()
   ef3a12f1dc4a sctp: add the missing sock_owned_by_user check in sctp_icmp_redirect
   4b27fe34a226 tun: call dev_get_valid_name() before register_netdevice()
   196f4755cc82 l2tp: check ps->sock before running pppol2tp_session_ioctl()
   71c4a0fc3576 tcp: fix tcp_mtu_probe() vs highest_sack
   735818a8b45c tun/tap: sanitize TUNSETSNDBUF input
   1e98fd54c356 ALSA: seq: Cancel pending autoload work at unbinding device
   b7c625ce6d27 Input: ims-psu - check if CDC union descriptor is sane
   de46c1adbea6 usb: usbtest: fix NULL pointer dereference
   c93df40f3c73 mac80211: don't compare TKIP TX MIC key in reinstall prevention
   cdac2028c901 mac80211: use constant time comparison with keys
   6440f0ee8a17 mac80211: accept key reinstall without changing anything
   c4e3d53bd9e7 Linux 4.4.98
   9c405157269d PKCS#7: fix unitialized boolean 'want'
   b01f1d60dd1c x86/oprofile/ppro: Do not use __this_cpu*() in preemptible context
   4df27e649308 can: c_can: don't indicate triple sampling support for D_CAN
   cdb5a2def61c can: sun4i: handle overrun in RX FIFO
   493cb19b2522 rbd: use GFP_NOIO for parent stat and data requests
   ba4828af60e2 drm/vmwgfx: Fix Ubuntu 17.10 Wayland black screen issue
   05b690ccb077 Input: elan_i2c - add ELAN060C to the ACPI table
   4694272c470a MIPS: AR7: Ensure that serial ports are properly set up
   721d4be9e05d MIPS: AR7: Defer registration of GPIO
   d0cfebd9b1db tools: firmware: check for distro fallback udev cancel rule
   4afaa496d7f3 selftests: firmware: send expected errors to /dev/null
   ed1deec127d9 selftests: firmware: add empty string and async tests
   c08f3a82f66f test: firmware_class: report errors properly on failure
   6004eb4d1adc MIPS: SMP: Fix deadlock & online race
   857e81041f69 MIPS: Fix race on setting and getting cpu_online_mask
   175c0622ab11 MIPS: SMP: Use a completion event to signal CPU up
   207c2143322c MIPS: Fix CM region target definitions
   ff8e97326b6a MIPS: microMIPS: Fix incorrect mask in insn_table_MM
   1e54b5f72115 ALSA: seq: Avoid invalid lockdep class warning
   adc4bacd5164 ALSA: seq: Fix OSS sysex delivery in OSS emulation
   4d5b67a54e6d ARM: 8720/1: ensure dump_instr() checks addr_limit
   3fc61b8dd6bb KEYS: fix NULL pointer dereference during ASN.1 parsing [ver #2]
   48276703a037 crypto: x86/sha1-mb - fix panic due to unaligned access
   44540ead8a8a workqueue: Fix NULL pointer dereference
   ad8c619750c4 x86/uaccess, sched/preempt: Verify access_ok() context
   44e0e2b47af2 platform/x86: hp-wmi: Do not shadow error values
   ce93b664540d platform/x86: hp-wmi: Fix error value for hp_wmi_tablet_state
   df5371592aca KEYS: trusted: fix writing past end of buffer in trusted_read()
   939cafad2f51 KEYS: trusted: sanitize all key material
   75f82a703b30 cdc_ncm: Set NTB format again after altsetting switch for Huawei devices
   5ffc673161be platform/x86: hp-wmi: Fix detection for dock and tablet mode
   f38a3a1c8f1a net: dsa: select NET_SWITCHDEV
   581243dc5528 s390/qeth: issue STARTLAN as first IPA command
   3652b0b6f2c2 IB/ipoib: Change list_del to list_del_init in the tx object
   aa4af0fca101 Input: mpr121 - set missing event capability
   0a731928f264 Input: mpr121 - handle multiple bits change of status register
   ffa6332b8d80 IPsec: do not ignore crypto err in ah4 input
   9ee83b03365a netfilter: nft_meta: deal with PACKET_LOOPBACK in netdev family
   cfb2cb34d32e usb: hcd: initialize hcd->flags to 0 when rm hcd
   6450c9a96ff3 serial: sh-sci: Fix register offsets for the IRDA serial port
   ca2090aa58ba phy: increase size of MII_BUS_ID_SIZE and bus_id
   079822da0a00 iio: trigger: free trigger resource correctly
   26fa336d69a2 crypto: vmx - disable preemption to enable vsx in aes_ctr.c
   30019ca7dc09 ARM: omap2plus_defconfig: Fix probe errors on UARTs 5 and 6
   83fe38f2c4a3 powerpc/corenet: explicitly disable the SDHC controller on kmcoge4
   158bc64a4dfe iommu/arm-smmu-v3: Clear prior settings when updating STEs
   f20065b466d4 KVM: PPC: Book 3S: XICS: correct the real mode ICP rejecting counter
   2393241b7a22 drm: drm_minor_register(): Clean up debugfs on failure
   4e0d26b22e79 xen/netback: set default upper limit of tx/rx queues to 8
   f3170e6607be PCI: mvebu: Handle changes to the bridge windows while enabled
   414aa11de923 video: fbdev: pmag-ba-fb: Remove bad `__init' annotation
   8a56b1b25e3c adv7604: Initialize drive strength to default when using DT
   c54d0707aa09 Linux 4.4.97
   2ed81e62b2ab staging: r8712u: Fix Sparse warning in rtl871x_xmit.c
   883706dcda17 xen: don't print error message in case of missing Xenstore entry
   298455f466cb bt8xx: fix memory leak
   4b7a35866b0c s390/dasd: check for device error pointer within state change interrupts
   45a012ace954 mei: return error on notification request to a disconnected client
   0e97077574c6 exynos4-is: fimc-is: Unmap region obtained by of_iomap()
   2d097e5f5c03 staging: lustre: ptlrpc: skip lock if export failed
   efa8f1b7a65a staging: lustre: hsm: stack overrun in hai_dump_data_field
   2d1d45396585 staging: lustre: llite: don't invoke direct_IO for the EOF case
   28a8fc6416ab platform/x86: intel_mid_thermal: Fix module autoload
   d1f96c30ce2d scsi: aacraid: Process Error for response I/O
   fff544c8cf68 xen/manage: correct return value check on xenbus_scanf()
   762d0762b9bb cx231xx: Fix I2C on Internal Master 3 Bus
   0806eaf13850 perf tools: Only increase index if perf_evsel__new_idx() succeeds
   3b7d9a95ccd3 drm/amdgpu: when dpm disabled, also need to stop/start vce.
   dec5fcf11b45 i2c: riic: correctly finish transfers
   358008062202 ext4: do not use stripe_width if it is not set
   5624ea161040 ext4: fix stripe-unaligned allocations
   a76eb0e8655e staging: rtl8712u: Fix endian settings for structs describing network packets
   f9776d7ee5f5 mfd: axp20x: Fix axp288 PEK_DBR and PEK_DBF irqs being swapped
   8800aba50292 mfd: ab8500-sysctrl: Handle probe deferral
   ed414aeb5291 ARM: pxa: Don't rely on public mmc header to include leds.h
   a3e021504fcf mmc: s3cmci: include linux/interrupt.h for tasklet_struct
   ba28f16cfa2a PM / wakeirq: report a wakeup_event on dedicated wekup irq
   b83c2880b348 Fix tracing sample code warning.
   a48fce662380 tracing/samples: Fix creation and deletion of simple_thread_fn creation
   ded34f972348 drm/msm: fix an integer overflow test
   031b02bc16ae drm/msm: Fix potential buffer overflow issue
   6e6eba5ba145 perf tools: Fix build failure on perl script context
   fa312b481b2b ocfs2: fstrim: Fix start offset of first cluster group during fstrim
   cc7d9933400f ARM: 8715/1: add a private asm/unaligned.h
   4e351b8dd8b7 ARM: dts: mvebu: pl310-cache disable double-linefill
   581ac5f431c9 arm64: ensure __dump_instr() checks addr_limit
   97d64b7f2fdf ASoC: adau17x1: Workaround for noise bug in ADC
   618b930317fb KEYS: fix out-of-bounds read during ASN.1 parsing
   97c5668c9724 KEYS: return full count in keyring_read() if buffer is too small
   d304c9169b38 cifs: check MaxPathNameComponentLength != 0 before using it
   8142e9516d5d ALSA: seq: Fix nested rwsem annotation for lockdep splat
   70358782743f ALSA: timer: Add missing mutex lock for compat ioctls
   27e68f1bca91 Linux 4.4.96
   b3d04695be52 Revert "drm: bridge: add DT bindings for TI ths8135"
   50044e419e83 ecryptfs: fix dereference of NULL user_key_payload
   da0933ceec96 x86/microcode/intel: Disable late loading on model 79
   a272dc770f7d regulator: fan53555: fix I2C device ids
   120ef1a38f79 can: kvaser_usb: Ignore CMD_FLUSH_QUEUE_REPLY messages
   c1b092102124 can: kvaser_usb: Correct return value in printout
   0c3cdb4536d1 can: sun4i: fix loopback mode
   62b54cc63a1c scsi: sg: Re-fix off by one in sg_fill_request_table()
   6e9abbc96411 scsi: zfcp: fix erp_action use-before-initialize in REC action trace
   1cbbd99f3bfe assoc_array: Fix a buggy node-splitting case
   2c99438cf66d Input: gtco - fix potential out-of-bound access
   31d770a8b887 Input: elan_i2c - add ELAN0611 to the ACPI table
   8b396ff8eee7 xen/gntdev: avoid out of bounds access in case of partial gntdev_mmap()
   82e05e935ffd fuse: fix READDIRPLUS skipping an entry
   7d74eecca960 spi: uapi: spidev: add missing ioctl header
   3505478d6fec usb: xhci: Handle error condition in xhci_stop_device()
   da0345d723f0 ceph: unlock dangling spinlock in try_flush_caps()
   5f1d33ab4d53 ALSA: hda - fix headset mic problem for Dell machines with alc236
   8c812f0335dd ALSA: hda/realtek - Add support for ALC236/ALC3204
   fce67b31c7cd workqueue: replace pool->manager_arb mutex with a flag
   9b36699635c5 Linux 4.4.95
   aa3a0a70bdb8 FS-Cache: fix dereference of NULL user_key_payload
   1bb1d4252d1e fscrypto: require write access to mount to set encryption policy
   8a004caec12b KEYS: Fix race between updating and finding a negative key
   1dda04c761ab fscrypt: fix dereference of NULL user_key_payload
   7d9e13d953f2 f2fs crypto: add missing locking for keyring_key access
   4db9f1113196 f2fs crypto: replace some BUG_ON()'s with error checks
   0f85c0954be4 sched/autogroup: Fix autogroup_move_group() to never skip sched_move_task()
   fcc65ab173eb parisc: Fix double-word compare and exchange in LWS code on 32-bit kernels
   558ca24dc296 parisc: Avoid trashing sr2 and sr3 in LWS code
   6f0dee7d9c9b pkcs7: Prevent NULL pointer dereference, since sinfo is not always set.
   33dea302f9bc KEYS: don't let add_key() update an uninstantiated key
   503ef5c070a1 lib/digsig: fix dereference of NULL user_key_payload
   2b7e02267d3c KEYS: encrypted: fix dereference of NULL user_key_payload
   51ba40fcfd67 rtlwifi: rtl8821ae: Fix connection lost problem
   cffdaa65e72f clockevents/drivers/cs5535: Improve resilience to spurious interrupts
   b178c94efdfd bus: mbus: fix window size calculation for 4GB windows
   260b6739e8b7 brcmsmac: make some local variables 'static const' to reduce stack size
   efdcbffb2b16 i2c: ismt: Separate I2C block read from SMBus block read
   68c610776cfb ALSA: hda: Remove superfluous '-' added by printk conversion
   f9e937124ec2 ALSA: seq: Enable 'use' locking in all configurations
   4516069f1b05 drm/nouveau/mmu: flush tlbs before deleting page tables
   195674adee57 drm/nouveau/bsp/g92: disable by default
   4d56587c28d4 can: esd_usb2: Fix can_dlc value for received RTR, frames
   aa629364c0e3 usb: musb: Check for host-mode using is_host_active() on reset interrupt
   583a4219841d usb: musb: sunxi: Explicitly release USB PHY on exit
   d68b07a19a9e can: gs_usb: fix busy loop if no more TX context is available
   f7d8b2e150ee ALSA: usb-audio: Add native DSD support for Pro-Ject Pre Box S2 Digital
   67e25805e748 usb: hub: Allow reset retry for USB2 devices on connect bounce
   d012ab210f5f usb: quirks: add quirk for WORLDE MINI MIDI keyboard
   d729f29a291f usb: cdc_acm: Add quirk for Elatec TWN3
   4512d6503a4d USB: serial: metro-usb: add MS7820 device id
   9dff499d8226 USB: core: fix out-of-bounds access bug in usb_get_bos_descriptor()
   abe43c97cae2 USB: devio: Revert "USB: devio: Don't corrupt user memory"
   af9a9a7bed51 Linux 4.4.94
   401231d063c5 Revert "tty: goldfish: Fix a parameter of a call to free_irq"
   cdbbea7809ca cpufreq: CPPC: add ACPI_PROCESSOR dependency
   c2c6f43e023a nfsd/callback: Cleanup callback cred on shutdown
   429a4ac5895d target/iscsi: Fix unsolicited data seq_end_offset calculation
   823ba64c5719 uapi: fix linux/mroute6.h userspace compilation errors
   028a419869e3 uapi: fix linux/rds.h userspace compilation errors
   c7a20ed2951f ceph: clean up unsafe d_parent accesses in build_dentry_path
   c128baf6a1bc i2c: at91: ensure state is restored after suspending
   d7ecae726698 net: mvpp2: release reference to txq_cpu[] entry after unmapping
   693e6513b244 scsi: scsi_dh_emc: return success in clariion_std_inquiry()
   9ac38e30f2b0 slub: do not merge cache if slub_debug contains a never-merge flag
   315689d2e202 ocfs2/dlmglue: prepare tracking logic to avoid recursive cluster lock
   d3335f5653ec crypto: xts - Add ECB dependency
   02744a55ed38 net/mlx4_core: Fix VF overwrite of module param which disables DMFS on new probed PFs
   7bf94b9595cc sparc64: Migrate hvcons irq to panicked cpu
   d14591e83b49 md/linear: shutup lockdep warnning
   48ca88f93533 f2fs: do not wait for writeback in write_begin
   3109615b52ee Btrfs: send, fix failure to rename top level inode due to name collision
   4d134d830ea7 iio: adc: xilinx: Fix error handling
   5c65ed5c07d7 netfilter: nf_ct_expect: Change __nf_ct_expect_check() return value.
   743a3ce1e0fd net/mlx4_en: fix overflow in mlx4_en_init_timestamp()
   7ed668eeb851 mac80211: fix power saving clients handling in iwlwifi
   3e8c1a04d335 mac80211_hwsim: check HWSIM_ATTR_RADIO_NAME length
   4a464dacc23f irqchip/crossbar: Fix incorrect type of local variables
   7e53f0390dbd watchdog: kempld: fix gcc-4.3 build
   28eab3db727e locking/lockdep: Add nest_lock integrity test
   d44e463c9460 Revert "bsg-lib: don't free job in bsg_prepare_job"
   01e3e6315171 tipc: use only positive error codes in messages
   685699703a0a net: Set sk_prot_creator when cloning sockets to the right proto
   1299f7e17e9e packet: only test po->has_vnet_hdr once in packet_snd
   1b6c80e797ee packet: in packet_do_bind, test fanout with bind_lock held
   ee534927f0c0 tun: bail out from tun_get_user() if the skb is empty
   b5f689d94bc3 l2tp: fix race condition in l2tp_tunnel_delete
   110cf3dd4bcc l2tp: Avoid schedule while atomic in exit_net
   93040aa17862 vti: fix use after free in vti_tunnel_xmit/vti6_tnl_xmit
   d9cb4dc0221e isdn/i4l: fetch the ppp_write buffer in one shot
   1a4f1ecdb257 bpf: one perf event close won't free bpf program attached by another perf event
   5be6824b9704 packet: hold bind lock when rebinding to fanout hook
   aa90be3e1248 net: emac: Fix napi poll list corruption
   3483c65090dc ip6_gre: skb_push ipv6hdr before packing the header in ip6gre_header
   5356f7e40d23 udpv6: Fix the checksum computation when HW checksum does not apply
   2ec54b21dd7b bpf/verifier: reject BPF_ALU64|BPF_END
   dee4506f067a sctp: potential read out of bounds in sctp_ulpevent_type_enabled()
   9f5bbe694df1 MIPS: Fix minimum alignment requirement of IRQ stack
   c088f7bc3310 drm/dp/mst: save vcpi with payloads
   951ba9f6c8b9 percpu: make this_cpu_generic_read() atomic w.r.t. interrupts

(From OE-Core rev: 45251e65d5a4a0d5bfb9584ca5c364959a0816d3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
(cherry picked from commit ab748d3239b3b641bb9e26cc36afed7fad540748)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Bruce Ashfield
21fe602a31 linux-yocto/4.4: update to v4.4.93
Integrating the korg -stable updates that comprise the following shortlogs:

   e1fe3813117f Linux 4.4.93
   ad505a7b4fb0 x86/alternatives: Fix alt_max_short macro to really be a max()
   208563455aac USB: serial: console: fix use-after-free after failed setup
   6c14436b5e84 USB: serial: qcserial: add Dell DW5818, DW5819
   34592e06c7af USB: serial: option: add support for TP-Link LTE module
   ac22f49fb845 USB: serial: cp210x: add support for ELV TFD500
   b1f5a26964bf USB: serial: ftdi_sio: add id for Cypress WICED dev board
   399c46095eb5 fix unbalanced page refcounting in bio_map_user_iov
   f3b538493e66 direct-io: Prevent NULL pointer access in submit_page_section
   ac94abbb7941 usb: gadget: composite: Fix use-after-free in usb_composite_overwrite_options
   16c1ef65f4db ALSA: line6: Fix leftover URB at error-path during probe
   5b01343ad1bd ALSA: caiaq: Fix stray URB at probe error path
   ca2523c9c569 ALSA: seq: Fix copy_from_user() call inside lock
   23709ae9b614 ALSA: seq: Fix use-after-free at creating a port
   dc7c3bd09c7d ALSA: usb-audio: Kill stray URB at exiting
   050c4bbc09f1 iommu/amd: Finish TLB flush in amd_iommu_unmap()
   eb7f31673bbc usb: renesas_usbhs: Fix DMAC sequence for receiving zero-length packet
   6a92b9997028 KVM: nVMX: fix guest CR4 loading when emulating L2 to L1 exit
   03bd90fc82e4 crypto: shash - Fix zero-length shash ahash digest crash
   2929cb995378 HID: usbhid: fix out-of-bounds bug
   e7485f0f6a7b dmaengine: edma: Align the memcpy acnt array size with the transfer
   29b202ebf599 MIPS: math-emu: Remove pr_err() calls from fpu_emu()
   2fff3c5c2be7 USB: dummy-hcd: Fix deadlock caused by disconnect detection
   5fd45516595a rcu: Allow for page faults in NMI handlers
   45bd4e408040 iwlwifi: mvm: use IWL_HCMD_NOCOPY for MCAST_FILTER_CMD
   6a6c61d8467d nl80211: Define policy for packet pattern attributes
   f2bb4bcc0411 CIFS: Reconnect expired SMB sessions
   bd36826958de ext4: in ext4_seek_{hole,data}, return -ENXIO for negative offsets
   6721969c7b8a brcmfmac: add length check in brcmf_cfg80211_escan_handler()
   69f53f5d37d5 Linux 4.4.92
   82854fb438ca ext4: don't allow encrypted operations without keys
   4f22f0793cce ext4: Don't clear SGID when inheriting ACLs
   40c00e5fac3a ext4: fix data corruption for mmap writes
   90fd6738731b sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs
   6d1400b09f99 nvme: protect against simultaneous shutdown invocations
   33d1fa43aad4 drm/i915/bios: ignore HDMI on port A
   b8af4466255c brcmfmac: setup passive scan if requested by user-space
   ee5bd0e4e69f uwb: ensure that endpoint is interrupt
   5a21af11c681 uwb: properly check kthread_run return value
   8b4196420dd6 iio: adc: mcp320x: Fix oops on module unload
   18215da0c241 iio: adc: mcp320x: Fix readout of negative voltages
   f2f68ec0b284 iio: ad7793: Fix the serial interface reset
   2c29a3868090 iio: core: Return error for failed read_reg
   b86df98578ab staging: iio: ad7192: Fix - use the dedicated reset function avoiding dma from stack.
   4b9c62a00aea iio: ad_sigma_delta: Implement a dedicated reset function
   0bab54141bac iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_madc_probe()'
   0141f858d2e1 iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()'
   4590ed795f0c xhci: fix finding correct bus_state structure for USB 3.1 hosts
   13713e63bdb3 USB: fix out-of-bounds in usb_set_configuration
   ddcbaf853dc5 usb: Increase quirk delay for USB devices
   feab51a916ed USB: core: harden cdc_parse_cdc_header
   5d9a9c3dcc1f USB: uas: fix bug in handling of alternate settings
   9e78ac87626a scsi: sd: Do not override max_sectors_kb sysfs setting
   fc29713fa7c7 iwlwifi: add workaround to disable wide channels in 5GHz
   146a9dc99025 HID: i2c-hid: allocate hid buffers for real worst case
   87509592ecc3 ftrace: Fix kmemleak in unregister_ftrace_graph
   60623d7ca38d stm class: Fix a use-after-free
   c85e9442f9e4 Drivers: hv: fcopy: restore correct transfer length
   2b91a52e1569 driver core: platform: Don't read past the end of "driver_override" buffer
   6d1bc9ee4c2d ALSA: usx2y: Suppress kernel warning at page allocation failures
   8cff1556ddbc ALSA: compress: Remove unused variable
   dd1f96a0a72c lsm: fix smack_inode_removexattr and xattr_getsecurity memleak
   a44be3e548e4 USB: g_mass_storage: Fix deadlock when driver is unbound
   2efab2c3a3ae usb: gadget: mass_storage: set msg_registered after msg registered
   b74a45450f80 USB: devio: Don't corrupt user memory
   e84b4a008365 USB: dummy-hcd: Fix erroneous synchronization change
   d1a0787b5a24 USB: dummy-hcd: fix infinite-loop resubmission bug
   d25a65e03f18 USB: dummy-hcd: fix connection failures (wrong speed)
   da358168126b usb: pci-quirks.c: Corrected timeout values used in handshake
   46c7b1fa4911 ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor
   ccc6a475800d usb: renesas_usbhs: fix usbhsf_fifo_clear() for RX direction
   a7131ed81805 usb: renesas_usbhs: fix the BCLR setting condition for non-DCP pipe
   e85bd5be6088 usb-storage: unusual_devs entry to fix write-access regression for Seagate external drives
   86377bf33089 usb: gadget: udc: atmel: set vbus irqflags explicitly
   f72264e79ae7 USB: gadgetfs: fix copy_to_user while holding spinlock
   d20fff0b09d9 USB: gadgetfs: Fix crash caused by inadequate synchronization
   c2eb312f3137 usb: gadget: inode.c: fix unbalanced spin_lock in ep0_write
   c030c36a88cd Linux 4.4.91
   2536c20e8285 ttpci: address stringop overflow warning
   2b2bfb537be4 ALSA: au88x0: avoid theoretical uninitialized access
   d32ee7026081 ARM: remove duplicate 'const' annotations'
   7cad91f22d5e IB/qib: fix false-postive maybe-uninitialized warning
   13af23e01812 drivers: firmware: psci: drop duplicate const from psci_of_match
   f6c8c71cc901 libata: transport: Remove circular dependency at free time
   0185496a115d xfs: remove kmem_zalloc_greedy
   088b9a41b605 i2c: meson: fix wrong variable usage in meson_i2c_put_data
   cb07496eab43 md/raid10: submit bio directly to replacement disk
   13099ee9c7d5 rds: ib: add error handle
   9bcd5ceef96e iommu/io-pgtable-arm: Check for leaf entry before dereferencing it
   cadfa3a688d2 parisc: perf: Fix potential NULL pointer dereference
   4203f2a73882 netfilter: nfnl_cthelper: fix incorrect helper->expect_class_max
   fa029020bddd exynos-gsc: Do not swap cb/cr for semi planar formats
   8bd7216d3386 MIPS: IRQ Stack: Unwind IRQ stack onto task stack
   f7f46b3ba20d netfilter: invoke synchronize_rcu after set the _hook_ to NULL
   e29066778bc2 bridge: netlink: register netdevice before executing changelink
   1b760fdad9f0 mmc: sdio: fix alignment issue in struct sdio_func
   e1e99dc319cc usb: plusb: Add support for PL-27A1
   4212115da67b team: fix memory leaks
   fa63895f47c9 net/packet: check length in getsockopt() called with PACKET_HDRLEN
   b9ff317b5cd4 net: core: Prevent from dereferencing null pointer when releasing SKB
   4e6cdc0a7dec MIPS: Lantiq: Fix another request_mem_region() return code check
   c5710390cc76 ASoC: dapm: fix some pointer error handling
   7b8c9e6e0fca usb: chipidea: vbus event may exist before starting gadget
   093fe104c5bb audit: log 32-bit socketcalls
   af3749456042 ASoC: dapm: handle probe deferrals
   8e8c3d4bb629 partitions/efi: Fix integer overflow in GPT size calculation
   abbccd855753 USB: serial: mos7840: fix control-message error handling
   0d1b459a0baf USB: serial: mos7720: fix control-message error handling
   8b2522eb44ae drm/amdkfd: fix improper return value on error
   bf184ddd2180 IB/ipoib: Replace list_del of the neigh->list with list_del_init
   f1d53c6d4843 IB/ipoib: rtnl_unlock can not come after free_netdev
   9326a1374b13 IB/ipoib: Fix deadlock over vlan_mutex
   01b3db29ba1e tty: goldfish: Fix a parameter of a call to free_irq
   f97c79e83f7e ARM: 8635/1: nommu: allow enabling REMAP_VECTORS_TO_RAM
   89642710fdb3 iio: adc: hx711: Add DT binding for avia,hx711
   a1f7b8ff496d iio: adc: axp288: Drop bogus AXP288_ADC_TS_PIN_CTRL register modifications
   297b8b01ec27 hwmon: (gl520sm) Fix overflows and crash seen when writing into limit attributes
   d89f41c20f32 sh_eth: use correct name for ECMR_MPDE bit
   effdf2b134d5 extcon: axp288: Use vbus-valid instead of -present to determine cable presence
   5603b10236da igb: re-assign hw address pointer on reset after PCI error
   1c3ef07eb8eb MIPS: ralink: Fix incorrect assignment on ralink_soc
   1e35a2adc078 MIPS: Ensure bss section ends on a long-aligned address
   b00cfc01e70f ARM: dts: r8a7790: Use R-Car Gen 2 fallback binding for msiof nodes
   6a501bddeba3 RDS: RDMA: Fix the composite message user notification
   d4f97441cb88 GFS2: Fix reference to ERR_PTR in gfs2_glock_iter_next
   11bf4a8e1d5a drm: bridge: add DT bindings for TI ths8135
   771dacea92cd drm_fourcc: Fix DRM_FORMAT_MOD_LINEAR #define
   37c2d0d3e850 Linux 4.4.90
   228969b4764f fix xen_swiotlb_dma_mmap prototype
   079c03f4a915 swiotlb-xen: implement xen_swiotlb_dma_mmap callback
   27323cb81eae video: fbdev: aty: do not leak uninitialized padding in clk to userspace
   150cd84bb6ea KVM: VMX: use cmpxchg64
   90df2daa1da0 ARM: pxa: fix the number of DMA requestor lines
   c575be9a393f ARM: pxa: add the number of DMA requestor lines
   a85f176c857e dmaengine: mmp-pdma: add number of requestors
   6124ed1a712a cxl: Fix driver use count
   9037837e0c32 KVM: VMX: remove WARN_ON_ONCE in kvm_vcpu_trigger_posted_interrupt
   fc39e561e343 KVM: VMX: do not change SN bit in vmx_update_pi_irte()
   5e9b526fcc90 timer/sysclt: Restrict timer migration sysctl values to 0 and 1
   ddf25aea679d gfs2: Fix debugfs glocks dump
   d25fea066a8e x86/fpu: Don't let userspace set bogus xcomp_bv
   4c16afac1875 btrfs: prevent to set invalid default subvolid
   0efde43517a5 btrfs: propagate error to btrfs_cmp_data_prepare caller
   9a7d93dd2cad btrfs: fix NULL pointer dereference from free_reloc_roots()
   b08dc7d4cfa1 PCI: Fix race condition with driver_override
   21a638c5efd6 kvm: nVMX: Don't allow L2 to access the hardware CR8
   7520be6a454c KVM: VMX: Do not BUG() on out-of-bounds guest IRQ
   e726c30c758b arm64: fault: Route pte translation faults via do_translation_fault
   638e7874f682 arm64: Make sure SPsel is always set
   9237605e0bfb seccomp: fix the usage of get/put_seccomp_filter() in seccomp_get_filter()
   668cee82cd28 bsg-lib: don't free job in bsg_prepare_job
   9d74367d1a35 nl80211: check for the required netlink attributes presence
   3393445ef440 vfs: Return -ENXIO for negative SEEK_HOLE / SEEK_DATA offsets
   3bb7084cc031 SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags
   02ef29f9cbb6 SMB: Validate negotiate (to protect against downgrade) even if signing off
   c096b31f9d9a Fix SMB3.1.1 guest authentication to Samba
   fe37a445ea3f powerpc/pseries: Fix parent_dn reference leak in add_dt_node()
   638b38505045 KEYS: prevent KEYCTL_READ on negative key
   539255aea88e KEYS: prevent creating a different user's keyrings
   af24e9d8ba1a KEYS: fix writing past end of user-supplied buffer in keyring_read()
   362711d59b0c crypto: talitos - fix sha224
   231c4f646b77 crypto: talitos - Don't provide setkey for non hmac hashing algs.
   9d2534917c25 scsi: scsi_transport_iscsi: fix the issue that iscsi_if_rx doesn't parse nlmsg properly
   29854a77f793 md/raid5: preserve STRIPE_ON_UNPLUG_LIST in break_stripe_batch_list
   d03d1567866e md/raid5: fix a race condition in stripe batch
   68a4a5289918 tracing: Erase irqsoff trace with empty write
   9c5afa726a52 tracing: Fix trace_pipe behavior for instance traces
   f75c0042f120 KVM: PPC: Book3S: Fix race and leak in kvm_vm_ioctl_create_spapr_tce()
   7d8fbf3db169 mac80211: flush hw_roc_start work before cancelling the ROC
   fcc949a48842 cifs: release auth_key.response for reconnect.
   10def3a67799 Linux 4.4.89
   ed1bf4397d22 ftrace: Fix memleak when unregistering dynamic ops when tracing disabled
   a069d0a43de4 bcache: fix bch_hprint crash and improve output
   f522051a84e5 bcache: fix for gc and write-back race
   a6c5e7a0cd01 bcache: Correct return value for sysfs attach errors
   d9c6a28a6a1c bcache: correct cache_dirty_target in __update_writeback_rate()
   0471f58e18e6 bcache: do not subtract sectors_to_gc for bypassed IO
   093457f2bd32 bcache: Fix leak of bdev reference
   5025da3b532b bcache: initialize dirty stripes in flash_dev_run()
   4931578fbeb5 media: uvcvideo: Prevent heap overflow when accessing mapped controls
   04affe4e1171 media: v4l2-compat-ioctl32: Fix timespec conversion
   7498bd605840 PCI: shpchp: Enable bridge bus mastering if MSI is enabled
   81306fc3dbb5 ARC: Re-enable MMU upon Machine Check exception
   d28e96be7c6a tracing: Apply trace_clock changes to instance max buffer
   753154fcfefe ftrace: Fix selftest goto location on error
   d8663aa27789 scsi: qla2xxx: Fix an integer overflow in sysfs code
   72896ca30a7f scsi: sg: fixup infoleak when using SG_GET_REQUEST_TABLE
   c04996ad58ee scsi: sg: factor out sg_fill_request_table()
   f0cd701d4750 scsi: sg: off by one in sg_ioctl()
   3682e0c61ffb scsi: sg: use standard lists for sg_requests
   6b498ad14472 scsi: sg: remove 'save_scat_len'
   cf22210c66ca scsi: storvsc: fix memory leak on ring buffer busy
   b4730f456e21 scsi: megaraid_sas: Return pended IOCTLs with cmd_status MFI_STAT_WRONG_STATE in case adapter is dead
   d9b8f1ccbb8c scsi: megaraid_sas: Check valid aen class range to avoid kernel panic
   4dd6cbbc2191 scsi: zfcp: trace high part of "new" 64 bit SCSI LUN
   1e6c640a75d0 scsi: zfcp: trace HBA FSF response by default on dismiss or timedout late response
   7194822422f9 scsi: zfcp: fix payload with full FCP_RSP IU in SCSI trace records
   d0fbe221b8f1 scsi: zfcp: fix missing trace records for early returns in TMF eh handlers
   1a847369487c scsi: zfcp: fix passing fsf_req to SCSI trace on TMF to correlate with HBA
   52661717ee66 scsi: zfcp: fix capping of unsuccessful GPN_FT SAN response trace records
   d0c02c6f3e85 scsi: zfcp: add handling for FCP_RESID_OVER to the fcp ingress path
   cfc49967434d scsi: zfcp: fix queuecommand for scsi_eh commands when DIX enabled
   19978c50db68 skd: Submit requests to firmware before triggering the doorbell
   0bcaf5178fe6 skd: Avoid that module unloading triggers a use-after-free
   f05dafbd7791 md/bitmap: disable bitmap_resize for file-backed bitmaps.
   30e81e7fe197 block: Relax a check in blk_start_queue()
   a918d32583e0 powerpc: Fix DAR reporting when alignment handler faults
   c53f01698f68 ext4: fix quota inconsistency during orphan cleanup for read-only mounts
   cd46241eb03c ext4: fix incorrect quotaoff if the quota feature is enabled
   5e9d28b003b0 crypto: AF_ALG - remove SGL terminator indicator when chaining
   9354f4d0beb0 MIPS: math-emu: MINA.<D|S>: Fix some cases of infinity and zero inputs
   f4d77fc754f2 MIPS: math-emu: <MAXA|MINA>.<D|S>: Fix cases of both infinite inputs
   322bf697bdc4 MIPS: math-emu: <MAXA|MINA>.<D|S>: Fix cases of input values with opposite signs
   a83ffb581f26 MIPS: math-emu: <MAX|MIN>.<D|S>: Fix cases of both inputs negative
   6acd1d26c32e MIPS: math-emu: <MAX|MAXA|MIN|MINA>.<D|S>: Fix cases of both inputs zero
   b6c818d813c6 MIPS: math-emu: <MAX|MAXA|MIN|MINA>.<D|S>: Fix quiet NaN propagation
   bf592dde1262 Input: i8042 - add Gigabyte P57 to the keyboard reset table
   c13c5c7e88d7 tty: fix __tty_insert_flip_char regression
   077933dcd5ca tty: improve tty_insert_flip_char() slow path
   e1e6620f042c tty: improve tty_insert_flip_char() fast path
   c576160ff3f3 mm: prevent double decrease of nr_reserved_highatomic
   6ea627b20205 nfsd: Fix general protection fault in release_lock_stateid()
   d5c59ee84820 md/raid5: release/flush io in raid5_do_work()
   e21d66048d4d x86/fsgsbase/64: Report FSBASE and GSBASE correctly in core dumps
   53e5f7b8d41b f2fs: check hot_data for roll-forward recovery
   be9994817ad5 ipv6: fix typo in fib6_net_exit()
   70479eafe3d9 ipv6: fix memory leak with multiple tables during netns destruction
   9b5e5d8a0045 gianfar: Fix Tx flow control deactivation
   5f529e0d7844 Revert "net: fix percpu memory leaks"
   40bc5355e134 Revert "net: use lib/percpu_counter API for fragmentation mem accounting"
   611a98c8eca3 tcp: initialize rcv_mss to TCP_MIN_MSS instead of 0
   081be8c9efd6 Revert "net: phy: Correctly process PHY_HALTED in phy_stop_machine()"
   6d8c8fd1c4c7 qlge: avoid memcpy buffer overflow
   354d36b746c3 ipv6: fix sparse warning on rt6i_node
   e51bf99be7cc ipv6: add rcu grace period before freeing fib6_node
   6eb7ae1223f7 ipv6: accept 64k - 1 packet length in ip6_find_1stfragopt()
   b52c9082f2eb Linux 4.4.88
   ad3903434142 xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present
   677a80364049 NFS: Fix 2 use after free issues in the I/O code
   84478477d0b8 ARM: 8692/1: mm: abort uaccess retries upon fatal signal
   f7ec367c8ea7 Bluetooth: Properly check L2CAP config option output buffer length
   556814701545 ALSA: msnd: Optimize / harden DSP and MIDI loops
   10863607c242 locktorture: Fix potential memory leak with rw lock test
   693b7f62a439 btrfs: resume qgroup rescan on rw remount
   f4596ead66a7 drm/bridge: adv7511: Re-write the i2c address before EDID probing
   e22a4308547c drm/bridge: adv7511: Switch to using drm_kms_helper_hotplug_event()
   9183e45db777 drm/bridge: adv7511: Use work_struct to defer hotplug handing to out of irq context
   c634cecad4c1 drm/bridge: adv7511: Fix mutex deadlock when interrupts are disabled
   aea7e5ce4a52 drm: adv7511: really enable interrupts for EDID detection
   a2e71dcfb0d4 scsi: sg: recheck MMAP_IO request length with lock held
   0d7592a03b8a scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE
   9a4cabf3bf8b cs5536: add support for IDE controller variant
   302364990c05 workqueue: Fix flag collision
   966e3a2d98c1 drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
   4a9c294d7b1e mwifiex: correct channel stat buffer overflows
   926374f5e669 dlm: avoid double-free on error path in dlm_device_{register,unregister}
   bf3a0acce440 Bluetooth: Add support of 13d3:3494 RTL8723BE device
   ca245a6414e4 rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter
   c5b8e1dd9629 Input: trackpoint - assume 3 buttons when buttons detection fails
   2c65494080c9 ath10k: fix memory leak in rx ring buffer allocation
   69eeacb5cd87 intel_th: pci: Add Cannon Lake PCH-LP support
   eb98d15d3cbe intel_th: pci: Add Cannon Lake PCH-H support
   1875ed81c2b7 driver core: bus: Fix a potential double free
   f3584d55a8d8 staging/rts5208: fix incorrect shift to extract upper nybble
   812e484133fb USB: core: Avoid race of async_completed() w/ usbdev_release()
   9f1d78c62a4b usb:xhci:Fix regression when ATI chipsets detected
   b3e92cd7a820 usb: Add device quirk for Logitech HD Pro Webcam C920-C
   6e957a81c77f USB: serial: option: add support for D-Link DWM-157 C1
   f7a0f7318c27 usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard

(From OE-Core rev: 837189ed8f4acc77b42f22b0c63798530105cdb7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e3ae1935a0e5fe0d5867250ef62ae8ffd08b5b4e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 8abd7663e6780fcda81ed44da9f90a2f6233e3a9)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Armin Kuster
e57b272e56 tzdata: update to 2018c
The 2018c release of the tz code and data is available. It follows on the 2018a and 2018b releases, which were published but were not announced until now, due to problems discovered late in their release processes. 2018a had a build-failure typo, and 2018a and 2018b both had problems with ICU and Java, downstream packages which do not support a feature (negative DST offsets) used in 2018a and 2018b. The typo has been fixed, and data changes using negative DST offsets have been reverted pending development of a mechanism to export data to platforms lacking support for such data.

  Briefly:
  São Tomé and Príncipe switched from +00 to +01.
  Brazil's DST will now start on November's first Sunday.
  Use Debian-style installation locations, instead of 4.3BSD-style.
  New zic option -t.

  Changes to past and future time stamps

    São Tomé and Príncipe switched from +00 to +01 on 2018-01-01 at
    01:00.  (Thanks to Steffen Thorsen and Michael Deckers.)

  Changes to future time stamps

    Starting in 2018 southern Brazil will begin DST on November's
    first Sunday instead of October's third Sunday. (Thanks to
    Steffen Thorsen.)

  Changes to past time stamps

    Japanese DST transitions (1948-1951) were Sundays at 00:00, not
    Saturdays or Sundays at 02:00.  (Thanks to Takayuki Nikai.)

    A discrepancy of 4 s in timestamps before 1931 in South Sudan has
    been corrected.  The 'backzone' and 'zone.tab' files did not agree
    with the 'africa' and 'zone1970.tab' files.  (Problem reported by
    Michael Deckers.)

    The abbreviation invented for Bolivia Summer Time (1931-2) is now
    BST instead of BOST, to be more consistent with the convention
    used for Latvian Summer Time (1918-9) and for British Summer Time.

  Changes to build procedure

    The default installation locations have been changed to mostly
    match Debian circa 2017, instead of being designed as an add-on to
    4.3BSD circa 1986.  This affects the Makefile macros TOPDIR,
    TZDIR, MANDIR, and LIBDIR.  New Makefile macros TZDEFAULT, USRDIR,
    USRSHAREDIR, BINDIR, ZDUMPDIR, and ZICDIR let installers tailor
    locations more precisely.  (This responds to suggestions from
    Brian Inglis and from Steve Summit.)

    The default installation procedure no longer creates the
    backward-compatibility link US/Pacific-New, which causes
    confusion during user setup (e.g., see Debian bug 815200).
    Use 'make BACKWARD="backward pacificnew"' to create the link
    anyway, for now.  Eventually we plan to remove the link entirely.

    tzdata.zi now contains a version-number comment.
    (Suggested by Tom Lane.)

    The Makefile now quotes values like BACKWARD more carefully when
    passing them to the shell.  (Problem reported by Zefram.)

    Builders no longer need to specify -DHAVE_SNPRINTF on platforms
    that have snprintf and use pre-C99 compilers. (Problem reported
    by Jon Skeet.)

    The build procedure now works around mawk 1.3.3's lack of support
    for character class expressions.  (Problem reported by Ohyama.)

(From OE-Core rev: 40a3b937a5e88daa8fc4900796bca8b447084df5)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 97927956a6629381b54973d01e16c5f039f5e5bb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit f266d17095441dd136c490578d7aae824ab16870)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Armin Kuster
94bb0642a6 tzcode: update to 2018c
removed patches now included in update.

The 2018a through 2018c releases reflect the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes. This announcement has merged the set of changes made by the three releases, to make it easier to see the difference between 2017c and 2018c; please see the 2018c NEWS file for more details about intermediate versions.

Release 2018c - 2018-01-22 23:00:44 -0800
Release 2018b - 2018-01-17 23:24:48 -0800
Release 2018a - 2018-01-12 22:29:21 -0800

Changes to code

    zic has a new option -t FILE that specifies the location of the
    file that determines local time when TZ is unset. The default for
    this location can be configured via the new TZDEFAULT makefile
    macro, which defaults to /etc/localtime.

    Diagnostics and commentary now distinguish UT from UTC more
    carefully; see theory.html for more information about UT vs UTC.

    zic has been ported to GCC 8's -Wstringop-truncation option.
    (Problem reported by Martin Sebor.)

  Changes to documentation and commentary

    The zic man page now documents the longstanding behavior that
    times and years can be out of the usual range, with negative times
    counting backwards from midnight and with year 0 preceding year 1.
    (Problem reported by Michael Deckers.)

    The theory.html file now mentions the POSIX limit of six chars
    per abbreviation, and lists alphabetic abbreviations used.

    The files tz-art.htm and tz-link.htm have been renamed to
    tz-art.html and tz-link.html, respectively, for consistency with
    other file names and to simplify web server configuration.

(From OE-Core rev: 461f09931b261de17057416799d5bb3ed72aa749)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit aae1131225b92d2f984a2de35b2e21592ae8195d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 017bbce4101e90388cf662e12157a788112e0727)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Armin Kuster
e9f4742ebf tzdata: update 2017c
LICENSE changed do to rewording
7097a65277 (diff-9879d6db96fd29134fc802214163b95a)

  Briefly:
  Northern Cyprus switches from +03 to +02/+03 on 2017-10-29.
  Fiji ends DST 2018-01-14, not 2018-01-21.
  Namibia switches from +01/+02 to +02 on 2018-04-01.
  Sudan switches from +03 to +02 on 2017-11-01.
  Tonga likely switches from +13/+14 to +13 on 2017-11-05.
  Turks & Caicos switches from -04 to -05/-04 on 2018-11-04.
  A new file tzdata.zi now holds a small text copy of all data.
  The zic input format has been regularized slightly.

  Changes to future time stamps

    Northern Cyprus has decided to resume EU rules starting
    2017-10-29, thus reinstituting winter time.

    Fiji ends DST 2018-01-14 instead of the 2018-01-21 previously
    predicted.  (Thanks to Dominic Fok.)  Adjust future predictions
    accordingly.

    Namibia will switch from +01 with DST to +02 all year on
    2017-09-03 at 02:00.  This affects UT offsets starting 2018-04-01
    at 02:00.  (Thanks to Steffen Thorsen.)

    Sudan will switch from +03 to +02 on 2017-11-01.  (Thanks to Ahmed
    Atyya and Yahia Abdalla.)  South Sudan is not switching, so
    Africa/Juba is no longer a link to Africa/Khartoum.

    Tonga has likely ended its experiment with DST, and will not
    adjust its clocks on 2017-11-05.  Although Tonga has not announced
    whether it will continue to observe DST, the IATA is assuming that
    it will not.  (Thanks to David Wade.)

    Turks & Caicos will switch from -04 all year to -05 with US DST on
    2018-03-11 at 03:00.  This affects UT offsets starting 2018-11-04
    at 02:00.  (Thanks to Steffen Thorsen.)

  Changes to past time stamps

    Namibia switched from +02 to +01 on 1994-03-21, not 1994-04-03.
    (Thanks to Arthur David Olson.)

    Detroit did not observe DST in 1967.

    Use railway time for Asia/Kolkata before 1941, by switching to
    Madras local time (UT +052110) in 1870, then to IST (UT +0530) in
    1906.  Also, treat 1941-2's +0630 as DST, like 1942-5.

    Europe/Dublin's 1946 and 1947 fallback transitions occurred at
    02:00 standard time, not 02:00 DST.  (Thanks to Michael Deckers.)

    Pacific/Apia and Pacific/Pago_Pago switched from Antipodean to
    American time in 1892, not 1879.  (Thanks to Michael Deckers.)

    Adjust the 1867 transition in Alaska to better reflect the
    historical record, by changing it to occur on 1867-10-18 at 15:30
    Sitka time rather than at the start of 1867-10-17 local time.
    Although strictly speaking this is accurate only for Sitka,
    the rest of Alaska's blanks need to be filled in somehow.

    Fix off-by-one errors in UT offsets for Adak and Nome before 1867.
    (Thanks to Michael Deckers.)

    Add 7 s to the UT offset in Asia/Yangon before 1920.

  Changes to zone names

    Remove Canada/East-Saskatchewan from the 'backward' file, as it
    exceeded the 14-character limit and was an unused misnomer anyway.

(From OE-Core rev: 87e0034383d828bbcc86c95f4d3c2b141584d682)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 77a8256d9cbfe24d470aac9b4cc2910a41ca0ee8)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 2ea37fd4fad2e5ef21c119b03f09bcf2b0e7266e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Armin Kuster
c0582aa978 tzcode-native: update to 2017c
LICENSE changes do to rewording
7097a65277 (diff-9879d6db96fd29134fc802214163b95a)

Backported to fixes from upstream too.

Changes to code

    zic and the reference runtime now reject multiple leap seconds
    within 28 days of each other, or leap seconds before the Epoch.
    As a result, support for double leap seconds, which was
    obsolescent and undocumented, has been removed.  Double leap
    seconds were an error in the C89 standard; they have never existed
    in civil timekeeping.  (Thanks to Robert Elz and Bradley White for
    noticing glitches in the code that uncovered this problem.)

    zic now warns about use of the obsolescent and undocumented -y
    option, and about use of the obsolescent TYPE field of Rule lines.

    zic now allows unambiguous abbreviations like "Sa" and "Su" for
    weekdays; formerly it rejected them due to a bug.  Conversely, zic
    no longer considers non-prefixes to be abbreviations; for example,
    it no longer accepts "lF" as an abbreviation for "lastFriday".
    Also, zic warns about the undocumented usage with a "last-"
    prefix, e.g., "last-Fri".

    Similarly, zic now accepts the unambiguous abbreviation "L" for
    "Link" in ordinary context and for "Leap" in leap-second context.
    Conversely, zic no longer accepts non-prefixes such as "La" as
    abbreviations for words like "Leap".

    zic no longer accepts leap second lines in ordinary input, or
    ordinary lines in leap second input.  Formerly, zic sometimes
    warned about this undocumented usage and handled it incorrectly.

    The new macro HAVE_TZNAME governs whether the tzname external
    variable is exported, instead of USG_COMPAT.  USG_COMPAT now
    governs only the external variables "timezone" and "daylight".
    This change is needed because the three variables are not in the
    same category: although POSIX requires tzname, it specifies the
    other two variables as optional.  Also, USG_COMPAT is now 1 or 0:
    if not defined, the code attempts to guess it from other macros.

    localtime.c and difftime.c no longer require stdio.h, and .c files
    other than zic.c no longer require sys/wait.h.

    zdump.c no longer assumes snprintf.  (Reported by Jonathan Leffler.)

    Calculation of time_t extrema works around a bug in GCC 4.8.4
    (Reported by Stan Shebs and Joseph Myers.)

    zic.c no longer mistranslates formats of line numbers in non-English
    locales.  (Problem reported by Benno Schulenberg.)

    Several minor changes have been made to the code to make it a
    bit easier to port to MS-Windows and Solaris.  (Thanks to Kees
    Dekker for reporting the problems.)

  Changes to documentation and commentary

    The two new files 'theory.html' and 'calendars' contain the
    contents of the removed file 'Theory'.  The goal is to document
    tzdb theory more accessibly.

    The zic man page now documents abbreviation rules.

    tz-link.htm now covers how to apply tzdata changes to clients.
    (Thanks to Jorge Fábregas for the AIX link.)  It also mentions MySQL.

    The leap-seconds.list URL has been updated to something that is
    more reliable for tzdb.  (Thanks to Tim Parenti and Brian Inglis.)

(From OE-Core rev: 0b1f73a77f8d01960f1fc1bf073d8c1f9a839fff)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 74af497f8d6b4e28d97c0f2cdb4ece90c2a6b8b5)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 12a538bbbc8d04e875f81bd65e9754d749273aac)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:12 +00:00
Enrico Scholz
e1f6d40f1d tzcode-native: quote ${CC}
build fails else with

| + make -j 8 -l 6 cc=ccache gcc
| make: *** No rule to make target 'gcc'.  Stop.

(From OE-Core rev: bf0103c7fce3d507e147e1f2381c402fca123364)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 5729c1563359e12ebb4451bb1ce7ba3fff4ed2d4)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Jan Kiszka
31b6cb2cbb tzdata: Install zone1970.tab
The modern version of zone.tab is required by tzselect e.g.

(From OE-Core rev: de467998ecfa5fa1d2e9dd43a4a3d828cf9ccade)

(From OE-Core rev: ac9bbd2b58a5bfcea7b244f40549ac870d5b241e)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Armin Kuster
c9c8e5eb56 tzdata: update to 2017b
(From OE-Core rev: 40edcd69d66b5f29d8855f081c72f909f07cb686)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Armin Kuster
25c21cc639 tzcode: update to 2017b
Briefly: Haiti has resumed DST.

  Changes to past and future time stamps

    Haiti resumed observance of DST in 2017.  (Thanks to Steffen Thorsen.)

  Changes to past time stamps

    Liberia changed from -004430 to +00 on 1972-01-07, not 1972-05-01.

    Use "MMT" to abbreviate Liberia's time zone before 1972, as "-004430"
    is one byte over the POSIX limit.  (Problem reported by Derick Rethans.)

(From OE-Core rev: 1d92651465e5cc5c7b234ed1646eb869e9afe699)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Otavio Salvador
7942f0c6f4 linux-firmware: Bump to bf04291 revision
This includes following changes:

bf04291 WHENCE: Add new qed firmware
d8fc990 WHENCE: Add new radeon firmware
7245319 WHENCE: Fix syntax error for iwlwifi-8265-31.ucode entry
18d71a8 Revert "ath10k: QCA988X hw2.0: update firmware to 10.2.4.70.63-2"
4ebfab3 ath10k: QCA6174 hw3.0: update board-2.bin
96a7402 ath10k: QCA6174 hw3.0: update firmware-6.bin to WLAN.RM.4.4.1-00051-QCARMSWP-1
59bf7e2 cxgb4: update firmware to revision 1.16.63.0

The MD5 checksum of WHENCE license file was due the changes above as
the firmware versions are listed there. It had no license term
changes.

The following security fixes included too:

CVE-2017-13080 and CVE-2017-13081
- iwlwifi: update firmwares for 3160, 3168, 7265D, 8000C and 8265
- iwlwifi: update firmwares for 3160, 3168, 7260, 7265 and 7265D
 which came in with 796c91268eb1b4a24ffb90dd1c681c7d88f5c061
 and 1a5fd9460d380acecb6cda96736d975ec8f57f6a in linux-firmwire

(From OE-Core rev: 5ffac18a797d771988ed08943d21459911332880)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit aea6ce797cc1b1ecc199979eb12aa42de8ff73d4)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Saul Wold
63e5cd99e6 linux-firmware: Split out the QAT firmware
Create a new qat package for those firmware blobs

(From OE-Core rev: 2d6a0ac81448db8d0262249ea325750b0e8433a4)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit b48c746736012cfd85e8263efcf125ecd17ca7bb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Mikko Ylinen
8cddcae875 linux-firmware: make i.MX SDMA split complete
The commit to split i.MX SDMA firmware blobs in their
own packages was not complete and results in a failure
when trying to install full linux-firmware:

 * Solver encountered 1 problem(s):
 * Problem 1/1:
 *   - nothing provides linux-firmware-imx-sdma-license needed
 *     by linux-firmware-1:0.0+git0+a61ac5cf83-r0.all
 *
 * Solution 1:
 *   - do not ask to install a package providing linux-firmware

Make the split complete by installing the license in
${PN}-imx-sdma-license and have the blob packages depend on it.

(From OE-Core rev: 4c4def67862e3457734dc755853b53c77d925837)

Signed-off-by: Mikko Ylinen <mikko.ylinen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 229f70a5f6d29d82e1a7b1f780e2149fb91d5385)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Otavio Salvador
e7cad54067 linux-firmware: Split i.MX SDMA firmwares
This splits out the i.MX SDMA firmwares for i.MX6 and i.MX7 SoCs. This
also includes the required runtime provides, conflicts and replaces
for the old firmware-imx which was provided by NXP BSP layer.

(From OE-Core rev: 6b1d3642e8f2f34f05ac8494dbef62e427e30caf)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b3f3078fd4349fdf6986dd57e4b04bce03630924)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Tomas Novotny
cb9b66db1a linux-firmware: package Broadcom BCM43362 firmware
(From OE-Core rev: 86a1e6a4d3b567cff511e943304fc59c0288aab1)

Signed-off-by: Tomas Novotny <tomas@novotny.cz>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit e013cff66ec364738e5ccb085c1079507de66aaa)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Stefan Agner
dd45dbf237 linux-firmware: bump to latest linux-firmware git revision
This requires MD5 sum updates for
- LICENSE.QualcommAtheros_ath10k: year change
- WHENCE: various version updates and addition of new firmwares

The new firmware for Qualcom Venus causes a QA error:
  QA Issue: linux-firmware: Recipe inherits the allarch class, but has packaged architecture-specific binaries

Since firmware typically do not run on the CPU, the architecture of
the firmware file is independent from the CPU architecture the image
will be running on. Disable the QA check for the linux-firmware
package by default.

(From OE-Core rev: 4b83bc0f95895dd9ff8c99a5fe09ed7c07454092)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit a83dd65e64e9b7fa702927f96947bd3f0537adfd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Stefan Agner
3f8a6e5818 linux-firmware: package Marvell PCIe WiFi firmwares
Add packages for Marvell Avastar 88W8897 and 88W8997 PCIe WiFi
chips.

(From OE-Core rev: de998e3487bcb4cde833e432d5393cb051da7ef6)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 75e918d0d4b4cd7908ea5b3c30ca5ea5bf148b75)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Maciej Pijanowski
e0bd661595 linux-firmware: package ibt-firmware
ibt-firmware was not packaged separately and was part of big linux-firmware
package. Packaging allows to install it separately, according to requirements.

(From OE-Core rev: 846f72411b85be6d9428c6c0d1e408033a310ac3)

Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f1414d6f9c327547023375f9e298f6f021eaee1b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Maciej Pijanowski
4f101d4400 linux-firmware: package iwlfifi-3160-[10-17] firmware
Package iwlwifi-3160-[10-17] firmware from iwlwifi-misc to seperate packages,
so it is possible to install only required firmare package.

(From OE-Core rev: 019f9ed61cebb6721e4b8ba5ab613eb8f0f53f77)

Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2a5966c957a6c2fbe914c1b3be0926ec0e62dab0)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Tim Orling
22aea86cc2 linux-firmware: add support for mt7601u WiFi chip
Mediatek MT7601U is a common 802.11 g/n WiFi USB chip

(From OE-Core rev: 0ddc41cc163d65a1ee0d12dba79f1091a69ddc5a)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit eb61f7ed04237513216cbff0612ceaa114dffdcc)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Ricardo Salveti
18dad72f77 linux-firmware: package Qualcomm QCA firmware
Firmware files for the QCA61x4 ROME BT family chips. Firmware shares the
same license as used by ath10k.

(From OE-Core rev: 4190a5c915bf75e642cf4ed5ee292c1e58092833)

Signed-off-by: Ricardo Salveti <rsalveti@rsalveti.net>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit cc5fa321bb8988344f10f4fbc843e23e5d73fe33)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Ng Wei Tee
0ec933118f linux-firmware: enable netronome firmware
It was previously disabled, as rpm refused to package it into noarch
package, due to the firmware being considered arch-specific. This
check is disabled in rpm now.

The netronome binaries has ELF headers which will trigger an
arch-specific error. INSANE_SKIP variable is used to skip some
package_qa check usage.

(From OE-Core rev: 2aa934bc429c407efc2a275616e16b677ceae9fe)

Signed-off-by: Ng Wei Tee <wei.tee.ng@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 8b2f6b308019e697c9d3e66969807eb573350d78)
Manual fixup to current base
Signed-off-by: Armin Kuster <akuster808@gmail.com>

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Saul Wold
3da3796133 linux-firmware: Remove iwlwifi-8000C-19 SRC_URI
Since it's been removed from the upstream repo and not fetchable
remove it here.  The newer firmware supports the device correctly.

(From OE-Core rev: c134c583e0ef315e88644d94e5a3920b92c6f39d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 8b8c40bdbd09ddd1409dc30e04ef847f6a15f109)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Peter Kjellerstedt
b1d990ab4c linux-firmware: Avoid a dependency on python-core
Remove the check_whence.py script since it is only needed to validate
the WHENCE file, and only if explicitly running `make check`.

(From OE-Core rev: 1fc4d5a31f05970d8d80b0106ea81d486f298e33)

(From OE-Core rev: 47665534549ea808c0ff2ce30d0cf9edf69693ff)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:11 +00:00
Chang, Rebecca Swee Fun
f5530152f9 linux-firmware: Fix build failure when update SRCREV to latest HEAD
When we update the SRCREV to latest, we will encouter the following
bitbake error.

Build error message:
| Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
| error: Arch dependent binaries in noarch package
|
|
| RPM build errors:
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0081-0001_1x40.nffw
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0099-0001_2x25.nffw
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_8x10.nffw
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0081-0001_4x10.nffw
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_4x10_1x40.nffw
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0099-0001_2x10.nffw
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0097-0001_2x40.nffw
|     Missing build-id in /home/phoongst/work2/test00/tmp/work/all-poky-linux/linux-firmware/1_0.0+gitAUTOINC+44d8e8d4fd-r0/package/lib/firmware/netronome/nic_AMDA0096-0001_2x10.nffw
|     Deprecated external dependency generator is used!
|     Arch dependent binaries in noarch package
| WARNING: exit code 1 from a shell command.

This is due to netronome firmware is not included in noarch package.
Hence we removed the netronome firmware before it is packaged,
until the rpm issue is resolved.

(From OE-Core rev: 8057e14fe582b2f2f8b02fb1d7fae2cfaae501f4)

Signed-off-by: Chang, Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Ng, Wei Tee <wei.tee.ng@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Ng, Wei Tee
e30f669335 linux-firmware: Set the license for carl9170 to GPLv2
linux-firmwara-carl9170 was set to a wrong license string.
Carl9170 firmware is bounded by GPLv2 via code inspection on
linux firmware source tree. Hence we include GPLv2 in LICENSE
field and set carl9170 firmware to the correct license.

[YOCTO #11090]

(From OE-Core rev: fa9767f2b6013d8f2f28dbe7f07c07906b40c5a5)

Signed-off-by: Ng, Wei Tee <wei.tee.ng@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Ng, Wei Tee
bbfd123ddb linux-firmware: update to revision a4dde74b
-change in amdgpu firmware copyright year
-change in radeon firmware copyright year
-LICENCE.mwl8335 was removed in linux-firmware source tree
-specify the copyright year for siano
-change in qla2xxx firmware copyright year

(From OE-Core rev: 731eaa63fab5b949a72d24294db8d9c9ea078b59)

Signed-off-by: Ng, Wei Tee <wei.tee.ng@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Amarnath Valluri
6354b82abb firmware: use ${nonarch_base_libdir} for firmware installation.
Replace hardcoded '/lib' in kernel firmware installation path with
${nonarch_base_libdir}.

(From OE-Core rev: a1fe1322684b928f594859b4ab5bb03a6cd44ffe)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Amarnath Valluri
3694260530 firmware: use ${nonarch_base_libdir} for firmware installation.
Replace hardcoded '/lib' in kernel firmware installation path with
${nonarch_base_libdir}.

(From OE-Core rev: 3a3f8464d761524d77c5e94bb3cfb069b50c1872)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Stefan Agner
4f041864a5 linux-firmware: Add Marvell sd88xx WiFi firmwares
Add packages for Marvells sd88xx SDIO WiFi firmwares.

(From OE-Core rev: 0eaef988f723e23d0de24e8a931a7f8b43c4a484)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Saul Wold
4fcc6ad901 linux-firmware: relocate ath9k_htc blobs to correct package
The newer firmware blobs were versioned and landing in the default
package so move them to their appropriately named package.

[YOCTO #10942]

(From OE-Core rev: 4a8f2686148c565b8415e5d402ddf340e56cddef)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Jason Wessel
14c0eabeea Revert "linux-firmware: Modify firmware installation path"
This reverts commit a46a23fed9acd097ecc8ab3985d18688abe7b065.

The 64bit/32bit multilib builds break because the kernel's
firmware loader cannot find the firmware because it
gets placed int the wrong directory.

(From OE-Core rev: 8ebb38c21b43372d73df7bda55ad9810eb8dd1e2)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Amarnath Valluri
ede168e974 linux-firmware: Modify firmware installation path
Install firmware files under ${base_libdir}/firmware instead of hardcoded
/lib/firmare.

(From OE-Core rev: a7a22a7a98cc8daf8b912ccb6741b243a22f164f)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Ross Burton
9fe6b4e4dc linux-firmware: remove alternatives for brcmfmac-stdio.bin
These alternatives are only used to provide an unversioned brcmfmac-sdio.bin,
which was required by kernels prior to 3.13.  As these alternatives all have the
same priority there's no determinism in which one is selected, and current
kernels (since January 2014) use the appropriately versioned firmware names.

(From OE-Core rev: ac8cc5184086e6ca396c5ff35c7fb69ea2f71fa8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Mike Looijmans
32701927a8 linux-firmware: Split out Realtek chipsets rtl8188 rtl8723 rtl8821
Add rtl8188 rtl8712 rtl8723 rtl8821 packages to install only firmware for the
corresponding chipset. Uses a rather blunt approach by simply adding all firmware
files with matching prefix, to keep the package count down a bit.

(From OE-Core rev: 62a5c0a40d13594a0f16a01701e70dac5e492125)

(From OE-Core rev: f2c160e30f2dda32b91eb594730cd2bd76132a4f)

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Maxin B. John
e345d4dd23 pax-utils: update SRC_URI
The gentoo.osuosl.org mirror doesn't store all versions of pax-utils, so
use the maintainers own mirror which stores them all.

Fixes [YOCTO #11559]

(From OE-Core rev: 2892e05c3c1655b97b983ad783ca57c680ab8acb)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-04 11:12:10 +00:00
Kristi Rifenbark
a845564a1a documentation: Updated manual revision table for 2.2.4 release date
(From yocto-docs rev: 7ac638cfa0cfe6f333db0bdffe0f590af6c6305d)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-14 15:24:42 +00:00
Kristi Rifenbark
266df6e913 dev-manual: Fixed variable link to DEFAULTTUNE variable
Fixed [YOCTO #12458]

(From yocto-docs rev: 06f52ae5939e133dd56b9b9b4c1b15645c686195)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-14 15:24:42 +00:00
Scott Rifenbark
47c44fb870 documentation: Prepared for a 2.2.4 point release
poky.ent - changed variables to reflect 2.2.4
mega-manual.sed - "2.2.4" for "2.2.3" string replace
<manual>.xml - Updated manual revision date for "TBD 2018"

(From yocto-docs rev: aba8dcce56de3db01c6abfec9ace1588f0394dca)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-14 15:24:42 +00:00
Kristi Rifenbark
6657e86f00 ref-manual, yocto-project-qs, poky.ent: Fixed CentOS package
Fixes [YOCTO #12467]

Changed the CentOS variable to use python34-pip
instead of python3-pip. Removed notes indicating
CentOS 6.x exceptions because this version does
not support CentOS 6.x.

(From yocto-docs rev: 7134eb2ac156b86ef844a9a46c4a8a9444ff6770)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-02-14 15:24:42 +00:00
Richard Purdie
759a8085af populate_sdk_ext: Set cleandirs correctly
The current conflicting use of SDKDEPLOYDIR causes a race between do_populate_sdk
and do_populate_sdk_ext potentially causing the SDK to either go missing or the
build to fail.

(From OE-Core rev: 39fd8c129e2bff7f2f1649b7f6e036ccc50fd5d8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-22 10:40:02 +00:00
Richard Purdie
148df1e45f lib/oe/package_manager/sdk: Ensure do_populate_sdk_ext and do_populate_sdk repos don't conflict
(From OE-Core rev: c9c0927bb6e71253cbdd5b6b780dca829526e1d8)

(From OE-Core rev: 04610f713e47cd5fc9e44e258589cb24f27bf1bc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-22 10:40:02 +00:00
Richard Purdie
ac476b6aab image: Fix previous broken commit to set expand parameter to getVar
(From OE-Core rev: eb5ca672c793e7c2151e7f2fef26e0c25130d840)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-21 00:01:03 +00:00
Richard Purdie
4696946d80 image: Expand PV to avoid AUTOREV parsing failures
Currently, setting PV to include SRCPV for build-appliance results in:

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was
${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher
failure: Fetch command export ftp_proxy="http://proxy.yocto.io:5187/"; export
FTP_PROXY="http://proxy.yocto.io:5187/"; export PATH="${TMPDIR}/work/
qemux86_64-poky-linux/build-appliance-image/fetcheravoidrecurse-r0/
recipe-sysroot-native/usr/bin/python3-native:${TMPDIR}/work/
qemux86_64-poky-linux/build-appliance-image/fetcheravoidrecurse-r0/
recipe-sysroot-native/usr/bin/python3-native:${TMPDIR}/work/
qemux86_64-poky-linux/build-appliance-image/fetcheravoidrecurse-r0/
recipe-sysroot-native/usr/bin/python3-native:/home/pokybuild/
yocto-autobuilder/yocto-worker/buildtools/build/scripts:${TMPDIR}/
work/qemux86_64-poky-linux/build-appliance-image/fetcheravoidrecurse-r0/
recipe-sysroot-native/usr/bin/x86_64-poky-linux:${TMPDIR}/work/
qemux86_64-poky-linux/build-appliance-image/fetcheravoidrecurse-r0/
recipe-sysroot/usr/bin/crossscripts:${TMPDIR}/work/qemux86_64-poky-linux/
build-appliance-image/fetcheravoidrecurse-r0/recipe-sysroot-native/usr/sbin:
${TMPDIR}/work/qemux86_64-poky-linux/build-appliance-image/
fetcheravoidrecurse-r0/recipe-sysroot-native/usr/bin:${TMPDIR}/work/
qemux86_64-poky-linux/build-appliance-image/fetcheravoidrecurse-r0/
recipe-sysroot-native/sbin:${TMPDIR}/work/qemux86_64-poky-linux/
build-appliance-image/fetcheravoidrecurse-r0/recipe-sysroot-native/bin:/home/
pokybuild/yocto-autobuilder/yocto-worker/buildtools/build/bitbake/bin:${TMPDIR}
/hosttools"; export HOME="/home/pokybuild"; git -c core.fsyncobjectfiles=0
ls-remote git://git.yoctoproject.org/poky  failed with exit code 127, output:
/bin/sh: 1: git: not found

This is because PV is being expanded when TMPDIR is unset.

Expand PV in advance to avoid this problem.

(From OE-Core rev: 9ce26c121f52d5194732be34f93e86128e1fdeaf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-20 22:29:40 +00:00
Scott Rifenbark
8298428c03 bitbake: bitbake-user-manual: Fixed porno hack for hello world example
Someone hacked the http://hambedded site or it was moved and some
links to that site in the BB manual had been hijacked to point to
an entry portal for a pornography site.  Replaced the link with an
archived version that restores the integrity of the links.

(Bitbake rev: 894814cca59f14b0f808680ea8fdf63063f01e7d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-17 22:32:23 +00:00
Richard Purdie
1f5effb6a6 libunwind: Disable documentation explicitly
We don't have latex2man in HOSTTOOLs so documentaion is never built but this
dependency does cause problems on older releases like morty, pre-HOSTTOOLS.
Document the configuration explicitly in master.

(From OE-Core rev: 7e4ac608a2ac077c68e178fd1519c8e98403cff3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-14 22:10:54 +00:00
Alexander Kanavin
04ba2c349c webkitgtk: update to 2.18.5 (includes Spectre mitigations; see commit description)
This is the only available stable version with mitigation fixes for Spectre.
Webkit upstream developers do not port CVE fixes to earlier stable series,
no exception was made in this case.

More information:

https://webkit.org/blog/8048/what-spectre-and-meltdown-mean-for-webkit/
https://webkitgtk.org/security/WSA-2018-0001.html
https://webkitgtk.org/2018/01/10/webkitgtk2.18.5-released.html

This commit also contains the following commits added in master branch after morty release:

webkitgtk: update to 2.14.1

Rebase 0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch

(From OE-Core rev: a44d50c827b5180ff901d31c443ea02e100b10d5)

(From OE-Core rev: 22f686cd6b818d27571bd42060246851cc2e093a)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkit: Reduce duplication in MIPS variants.

Reduce duplication in MIPS variants now that the MACHINEOVERRIDES
variable is defined

(From OE-Core rev: f76d972aff47412a2cbd2d47134d66046cfe574a)

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: drop patch 0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch

 * This patch is not longer needed. Upstream has fixed this issue in:
   https://trac.webkit.org/changeset/205672 which is already included
   in WebKitGTK+ >= 2.14.0

(From OE-Core rev: 812c52f654c1bccca033163100055e3a8b8cda6e)

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Add an option to disable opengl support

(From OE-Core rev: 04e17727a3d1b52f6f93078fd16c6c7c9ba2b0d4)

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Use MIPS MACHINE_OVERRIDES

The mipsarch* MACHINE_OVERRIDES can be used to pass the same
parameters to MIPS pre-R2 and R6 ISA variants.

Use them to reduce duplication in supporting MIPS R6 ISA.

(From OE-Core rev: 8369b3568828b1dcff0f3a061a18367f018ac447)

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: update to 2.14.2

(From OE-Core rev: ccce954f7f0b24390ce36460cf05499c8169ed10)

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
Revert "webkitgtk: drop patch 0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch"

This reverts commit 812c52f654c1bccca033163100055e3a8b8cda6e.

Upstream fixed the issue with GCC. But the build still fails with Clang.
Therefore reintroduce this patch until a better solution is found.
Upstream bug: https://bugs.webkit.org/show_bug.cgi?id=161697

(From OE-Core rev: 39be43943e3de0eb0ab9b61b405f3b76f12a307d)

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Fix atomic detection on arm architecture

(From OE-Core rev: a77fc49defcf3a30a8f026cfdbd56565750f5a61)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: patch & disable JIT for x32

It might not be speedy, but it does build now.

(From OE-Core rev: 79f7e215ee7c176f02efafe7359aaa77dbd9430c)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: add missing python-native dep

Since we can't inherit pythonnative, we need this dep explicitly.

(From OE-Core rev: 63530f59e43738bac081aaf3c89ec57006038dce)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: update to 2.14.5

Remove a reference to WebKit/LICENSE, as the directory is not there anymore
(and the LICENSE file in it hasn't been moved somewhere else) - it was
a relic of webkit 1.x era.

(From OE-Core rev: 10331f42acfa5dc429198b7c025cc2360511e534)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Fix build on aarch64

Do not try to do runtime tests during cross compile
Fixes

| CMake Error at Source/cmake/OptionsCommon.cmake:73 (math):
|   math cannot parse the expression: "-1": syntax error, unexpected exp_MINUS,
|   expecting exp_OPENPARENT or exp_NUMBER (1)

(From OE-Core rev: 528006009dddd876a830e0a8f248658182a37f37)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Upgrade to 2.16.1

Fix build with gcc7
Move all patches to webkit folder
Drop patches that were backports or have been upstreamed

(From OE-Core rev: bfbdd1a2069f199be9ba0909dd512469ff17b65e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: remove native python dependency

Using host python seems to be fine.

(From OE-Core rev: 7cf80640f53bd8faa4874c2dad5f630a935475f6)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Fix build for armv5

Detect atomics during configure

(From OE-Core rev: 424ffbde2111130137e307eb9e598ad50451c865)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Upgrade to 2.16.3

Use bfd linker on ppc, this is because gold fails to link
webkit libraries when PIE is enabled

(From OE-Core rev: 8808d4b13a946499bc6e84a1be15f53d8ab3f673)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Upgrade to 2.16.5

Adjust some dependencies: libgcrypt is now required (instead of gnutls)
and the following build deps where missing: gettext-native, glib-2.0
and glib-2.0-native.

Also the CMake argument ENABLE_CREDENTIAL_STORAGE has been renamed to
USE_LIBSECRET.

This new upstream release (2.16.4 actually) includes security fixes for
CVE: CVE-2017-2538

(From OE-Core rev: ef68005a8c527e9b1d05b7769f0ec8ebe9ec3f91)

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: update to 2.16.6

(From OE-Core rev: 198ccdbefa481f725492b5d8834213fe26431be5)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Do not use -isystem forcibly

this causes include_next <stdlib.h> to not find
this header since -isystem <sysroot> is added via
cmake, we alrady are using --sysroot so rely on that

(From OE-Core rev: a0f2d1389a7e76b64003fea391a0cd485ff5fe77)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: Add a recommends on shared-mime-info.

 * without this package installed any WebKitGTK+ based browser
   will fail to correctly open html files (and other files)
   from disk (file:// URIs). It will open them as plain txt files.

(From OE-Core rev: b708cb53b46d9d82a7853bcd0f25ef6bc417bd10)

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: disable gobject-introspection on armv7a

Disable gobject-introspection on armv7a and armv7ve
to avoid do_compile failure:

| qemu: uncaught target signal 11 (Segmentation fault) - core dumped
| Segmentation fault

(From OE-Core rev: bdddd81c8b4eab6bbf7a8697992b48cb5a30ae4a)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

===
webkitgtk: update to 2.18.3

gcc7.patch, musl-fixes.patch, and ppc-musl-fix.patch all change code that is no
longer present in upstream tree. However, a patch with different musl fixes
has been added.

The rest of the patches are rebased to the new tree.

Libtasn is a new dependency.

Disable Gstreamer GL support on x86 due to clashing headers problem.

(From OE-Core rev: 3acae2dcd130122fe76504ec855af78db829d6ec)
===
webkitgtk: fix build with musl and x32

Make the x32 check generic to make it work with musl as well.

Fixes [YOCTO #12118]

(From OE-Core rev: dbd604ccf34e304769937b15051c047561de47f7)
===

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-14 22:10:54 +00:00
Alexander Kanavin
bbc0795ada ruby: update to 2.4.0
Existing version of ruby-native (2.2.5) was crashing on my machine (and others' too),
yet a functional ruby is necessary to upgrade webkit to a version that less vulnerable
to Spectre.

I've performed the update by copying the ruby recipe directory over from the current
pyro tree; if you want to see the list of specific commits, issue this command:

git log 99656fecf4 meta/recipes-devtools/ruby
(up to commit e593d3aeb2)

(From OE-Core rev: 4734a4b41898e3df252b6234ed1270a915fd1f68)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-14 22:10:54 +00:00
Mikko Rapeli
e6aadcc2a0 glib.inc: set CVE_PRODUCT to glib
NVD uses product glib and vendor gnome for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2016-6855

(From OE-Core rev: 4d4d07650d600fcb8fb1de8592494c3a9e4189ce)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 69d6342d45316389afb4b062088919689db0a6dd)
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Mikko Rapeli
d36ebaf622 glibc-common.inc: set CVE_PRODUCT to glibc
All recipes which include this .inc map to glibc NVD component.

(From OE-Core rev: 221266dcf1f8825b5e4cf397d67cf535facca7e7)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 613a13725db4e05539974cc7c66584a287d7b4bd)
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Mikko Rapeli
fc351083e6 sqlite3.inc: set CVE_PRODUCT to sqlite
It is used in NVD for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2016-6153

(From OE-Core rev: c717da006b2f12c5ec4bcdc6bdbcb4d1098829a5)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit cec6f26f4d2f16c9a58fac5a6344e3d43b36ed09)
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Mikko Rapeli
046247aa09 python.inc: set CVE_PRODUCT to python
All python versions are just python in NVD like this CVE
for python 3.4.4:

https://nvd.nist.gov/vuln/detail/CVE-2016-5699

(From OE-Core rev: 166ba306f2e7e18ad69e355c160739cb67814236)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 848e1be494e8ea10c729f95f02acb366e1843d75)
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Mikko Rapeli
322ce34aea icu.inc: set CVE_PRODUCT to international_components_for_unicode
NVD uses it for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2014-8146

(From OE-Core rev: de11341de3fc073f4aad91746a398168d1833333)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit eaac39100cadc81c89e6eb5ab389cd684699aa90)
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Mikko Rapeli
bb025abb93 bluez5.inc: set CVE_PRODUCT to bluez
bluez is the product name in NVD database for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2016-7837

(From OE-Core rev: 3ca903e5305ad2236ecf763e241a26f4df18e278)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit aade84aa54bb2f958572623ed6464184efd19862)
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Mikko Rapeli
2d6d1d51eb acpid.inc: set CVE_PRODUCT to acpid2
It is used in NVD database for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2011-4578

(From OE-Core rev: 03225f76dd255ae2f70d0ebdece62be284f2a090)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 966052df79df0f68565ebc40887170322d3f85b8)
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Andre McCurdy
6acd060d07 cmake: avoid configure failures if CFLAGS contains -Wstrict-prototypes
(From OE-Core rev: 294b706d2b5d6732c8b05e6cf0300c62de1f909f)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 0c89b010ce2e426f55ac7c6f94befef988913834)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Thiruvadi Rajaraman
9c53a526d0 binutils: CVE-2017-15938
Source: binutils-gdb.git
MR: 76766
Type: Security Fix
Disposition: Backport from binutils master
ChangeID: f080669b4e6f7c9088e30858238da5f4315192f3
Description:

    PR22209, invalid memory read in find_abstract_instance_name

    This patch adds bounds checking for DW_FORM_ref_addr die refs, and
    calculates them relative to the first .debug_info section.  See the
    big comment for why calculating relative to the current .debug_info
    section was wrong for relocatable object files.

        PR 22209
        * dwarf2.c (struct comp_unit): Delete sec_info_ptr field.
        (find_abstract_instance_name): Calculate DW_FORM_ref_addr relative
        to stash->info_ptr_memory, and check die_ref is within that memory.
        Set info_ptr_end correctly when another CU is refd.  Check die_ref
        for DW_FORM_ref4 etc. is within CU.

Affects: <= 2.29
(From OE-Core rev: 592f315516e602bd9a9bdc3d116771528cd433d1)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Thiruvadi Rajaraman
7006ecaba3 binutils: CVE-2017-15024
Source: binutils-gdb.git
MR: 76524
Type: Security Fix
Disposition: Backport from binutils master
ChangeID: 5f22a66eabb228b655605b964ecd350aee700806
Description:

    PR22187, infinite loop in find_abstract_instance_name

    This patch prevents the simple case of infinite recursion in
    find_abstract_instance_name by ensuring that the attributes being
    processed are not the same as the previous call.

    The patch also does a little cleanup, and leaves in place some changes
    to the nested_funcs array that I made when I wrongly thought looping
    might occur in scan_unit_for_symbols.

        PR 22187
        * dwarf2.c (find_abstract_instance_name): Add orig_info_ptr and
        pname param.  Return status.  Make name const.  Don't abort,
        return an error.  Formatting.  Exit if current info_ptr matches
        orig_info_ptr.  Update callers.
        (scan_unit_for_symbols): Start at nesting_level of zero.  Make
        nested_funcs an array of structs for extensibility.  Formatting.

Affects: <= 2.29
(From OE-Core rev: 3e88bb5e933ebbf9c3445bac1814dc0ac105bf45)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Thiruvadi Rajaraman
05281ec4a6 binutils: CVE-2017-14729
Source: binutils-gdb.git
MR: 76278
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 05de8bcd22d8d0b54badcd3826cd370b3aed81de
Description:

x86: Guard against corrupted PLT

There should be only one entry in PLT for a given symbol.  Set howto to
NULL after processing a PLT entry to guard against corrupted PLT so that
the duplicated PLT entries are skipped.

PR binutils/22170

Affects: <= 2.29
(From OE-Core rev: 51fc4c8d86bc7c567794305bcc08e5054e9e204a)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Thiruvadi Rajaraman
e7f53f5fe5 binutils: CVE-2017-9955
Source: binutils-gdb.git
MR: 73893
Type: Security Fix
Disposition: Backport from 'binutils-gdb.git/master' branch
ChangeID: 94c3ef8c1fa2e84e84ad76fb45307848d98817c8
Description:

PR 21665 : Fixed multiple heap based buffer overflow

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: a36978f0dd372ec836f63942f965652ca3716e3f)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Thiruvadi Rajaraman
ab884ff9a7 binutils: CVE-2017-9954
Source: binutils-gdb.git
MR: 73906
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 13858130a02bbe84744fd33ecbf2bbbd2360c09c
Description:

 Fix address violation parsing a corrupt texhex format file.

        PR binutils/21670
        * tekhex.c (getvalue): Check for the source pointer exceeding the
        end pointer before the first byte is read.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 162fce9416dcde1a0b7edfbf772fa6e6e18c46a4)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:09 +00:00
Thiruvadi Rajaraman
525986d6c6 binutils: CVE-2017-9745
Source: binutils-gdb.git
MR: 74062
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 2ec9457275509bfd8dc9185fbdcd485192a82cca
Description:

    Handle EITR records in VMS Alpha binaries with overlarge command length parameters.

        PR binutils/21579
        * vms-alpha.c (_bfd_vms_slurp_etir): Extend check of cmd_length.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: f8542a9cf50c8001f675f68e42234c306d8ce1e7)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
9753c5aa54 binutils: CVE-2017-9756
Source: binutils-gdb.git
MR: 73919
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: bd4a354c2a1bd14e26232fc88a736950aa19403a
Description:

    Prevent address violation problem when disassembling corrupt aarch64 binary.

        PR binutils/21595
        * aarch64-dis.c (aarch64_ext_ldst_reglist): Check for an out of
        range value.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: f48d4c21673c16760c5a9ff51934127339234f85)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
1e97a1e661 binutils: CVE-2017-9755
Source: binutils-gdb.git
MR: 73932
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 49ad5f3244cd51ee6714c1b60cc1c3f84d7de7c8
Description:

 i386-dis: Add 2 tests with invalid bnd register

        PR binutils/21594
        * testsuite/gas/i386/mpx.s: Add 2 tests with invalid bnd
        register.
        * testsuite/gas/i386/x86-64-mpx.s: Likewise.
        * testsuite/gas/i386/mpx.d: Updated.
        * testsuite/gas/i386/x86-64-mpx.d: Likewise.

 i386-dis: Check valid bnd register

 Since there are only 4 bnd registers, return "(bad)" for register
 number > 3.

        PR binutils/21594
        * i386-dis.c (OP_E_register): Check valid bnd register.
        (OP_G): Likewise.

Affects: <= 2.28
Author: H.J. Lu <hjl.tools@gmail.com>
(From OE-Core rev: 98b66508f8b382f047d12df430b6e812a9336ab9)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
5f6bb8fe3d binutils: CVE-2017-9753_and_CVE-2017-9754
Source: binutils-gdb.git
MR: 73958, 73945
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: a39fdc82900af3f5d6ae396c913ac902f4ef7f60
Description:

    Fix seg-faults in objdump when disassembling a corrupt versados binary.

        PR binutils/21591
        * versados.c (versados_mkobject): Zero the allocated tdata structure.
        (process_otr): Check for an invalid offset in the otr structure.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 7d46daa5e580e841f83b9070b3c84e87d8fd1181)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
3daf8af948 binutils: CVE-2017-9752
Source: binutils-gdb.git
MR: 73971
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: fe0e1d0f234ed157135818c24f4270c34e093828
Description:

 Fix potential address violations when processing a corrupt Alpha VMA binary.

        PR binutils/21589
        * vms-alpha.c (_bfd_vms_get_value): Add an extra parameter - the
        maximum value for the ascic pointer.  Check that name processing
        does not read beyond this value.
        (_bfd_vms_slurp_etir): Add checks for attempts to read beyond the
        end of etir record.
Affects: <= 2.28

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: ea89dfe868085b463dfc24df78b49d1703989484)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
d2b21b2a14 binutils: CVE-2017-9750
Source: binutils-gdb.git
MR: 73997
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 36893e1db9214b4da972a1eeb482be34405f0410
Description:

 Fix address violation problems when disassembling a corrupt RX binary.

        PR binutils/21587
        * rx-decode.opc: Include libiberty.h
        (GET_SCALE): New macro - validates access to SCALE array.
        (GET_PSCALE): New macro - validates access to PSCALE array.
        (DIs, SIs, S2Is, rx_disp): Use new macros.
        * rx-decode.c: Regenerate.

Affects: <= 2.28

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: d8996fd2bf72fa774202724864ef014592a16ece)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
bf0d750159 binutils: CVE-2017-9747
Source: binutils-gdb.git
MR: 74036
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: b25bffca0b51e9c13ba752534b64bd28a147a135
Description:

Fix address violation parsing a corrupt ieee binary.

PR binutils/21581
  (ieee_archive_p): Use a static buffer to avoid compiler bugs.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: c12bb8d25b9af2df8cbff0a457c2d049efdf49d9)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
30c6b86347 binutils: CVE-2017-9748
Source: binutils-gdb.git
MR: 74023
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: efff4d9ed538ff859ab5105a3594690e860d0779
Description:

Avoid a possible compiler bug by using a static buffer instead of a stack local buffer.

PR binutils/21582
   * ieee.c (ieee_object_p): Use a static buffer to avoid compiler
     bugs.
Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: fe9fed67e2f62223626f6683b197bc3b55092d54)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
776302af49 binutils: CVE-2017-9746
Source: binutils-gdb.git
MR: 74049
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 8dad195531894850a242ccf70990a963cf16f291
Description:

 Fix address violation when disassembling a corrupt binary.

 PR binutils/21580
    binutils * objdump.c (disassemble_bytes): Check for buffer overrun when
    printing out rae insns.

    ld  * testsuite/ld-nds32/diff.d: Adjust expected output.
Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 2a13567ea790d71a36eab0293f5a1918ef447e13)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
b5093a5c87 binutils: CVE-2017-9749
Source: binutils-gdb.git
MR: 74010
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 5b89fbcab899af53585b61bd40724a38bff831d3
Description:

  Prevent invalid array accesses when disassembling a corrupt bfin binary.

        PR binutils/21586
        * bfin-dis.c (gregs): Clip index to prevent overflow.
        (regs): Likewise.
        (regs_lo): Likewise.
        (regs_hi): Likewise.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 3306cbace5069e58bb62f31ec91ca805410bd949)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
321f980a1e binutils: CVE-2017-9751
Source: git://sourceware.org/git/binutils-gdb.git
MR: 73984
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: b0488808caeeef072f9b00dd174c750da5e58b4b
Description:

 Fix address violation when disassembling a corrupt RL78 binary.

        PR binutils/21588
        * rl78-decode.opc (OP_BUF_LEN): Define.
        (GETBYTE): Check for the index exceeding OP_BUF_LEN.
        (rl78_decode_opcode): Use OP_BUF_LEN as the length of the op_buf
        array.
        * rl78-decode.c: Regenerate.
Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 40325ae2c4160fa99cebd5cef3f8df5063976076)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
67d5e33d4f binutils: CVE-2017-7299
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74257
Type: Security Fix
Disposition: Backport from 'embedded-binutils-master'
ChangeID: b55df05e3d3fd21bd30edaea124135892747b1ee
Description:

Linking non-ELF file broken by PR20908 fix

PR ld/20968
PR ld/20908
   * elflink.c (bfd_elf_final_link): Revert 2016-12-02 change.  Move
     reloc counting code later after ELF flavour test.

PR lf/20908
   * elflink.c (bfd_elf_final_link): Check for ELF flavour binaries
     when following indirect links.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 020863d45d39a336723300138777583afb0b12c7)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
b5e7f89850 binutils: CVE-2017-8398
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74127
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 410078b468de6dc1c908342283a6abe5bdf38d54
Description:

Fix heap-buffer overflow bugs caused when dumping debug information from a corrupt binary.

  PR binutils/21438
     * dwarf.c (process_extended_line_op): Do not assume that the
       string extracted from the section is NUL terminated.
       (fetch_indirect_string): If the string retrieved from the section
       is not NUL terminated, return an error message.
       (fetch_indirect_line_string): Likewise.
       (fetch_indexed_string): Likewise.

Affects: <= 2.29

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 1e19e656a97caf61f26ab4f52339b9413d3bb29f)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
226c2fd1f7 binutils: CVE-2017-8394
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74166
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: d614742d33a55da6cafede60cd171766afb0aa1d
Description:

PR 21414, null pointer deref of _bfd_elf_large_com_section sym

        PR 21414
        * section.c (GLOBAL_SYM_INIT): Make available in bfd.h.
        * elf.c (lcomm_sym): New.
        (_bfd_elf_large_com_section): Use lcomm_sym section symbol.
        * bfd-in2.h: Regenerate.

Affects: <= 2.29
Author: Alan Modra <amodra@gmail.com>
(From OE-Core rev: 0d6e08ffc4760947653ad9368d594074d506f697)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
fdee751f82 binutils: CVE-2017-8421
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74140
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 5f6dd48c427de8663c5a80af6db44ce5c579d42c
Description:

Prevent memory exhaustion from a corrupt PE binary with an overlarge number of relocs.

PR 21440
 * objdump.c (dump_relocs_in_section): Check for an excessive
   number of relocs before attempting to dump them.

Affects: <= 2.29

Author: Alan Modra <amodra@gmail.com>
(From OE-Core rev: 09c642a70e2a12dcc01ffe45c333011a142c02a7)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
52bc287aca binutils: CVE-2017-8396
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74101
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: db47540066f83529439566f8621d6e35fe86b77c
Description:

buffer overflow in perform_relocation

The existing reloc offset range tests didn't catch small negative
offsets less than the size of the reloc field.

PR 21432
 * reloc.c (reloc_offset_in_range): New function.
   (bfd_perform_relocation, bfd_install_relocation): Use it.
   (_bfd_final_link_relocate): Likewise.

Affects: <= 2.29
Author: Alan Modra <amodra@gmail.com>
(From OE-Core rev: e5aa4adaddbae184bbbb1c42f79c1deba931c72a)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Manjunath S Matti
2dcc1db01d Fix seg-fault in the linker when examining a corrupt binary.
Source: https://sourceware.org/
MR: 74244
Type: Security Fix
Disposition: Backport from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=531336e3a0b79ed60cfc36ad2d6579b6a71175da
ChangeID: 69cc8699fcb0655f3a48778e514552dfaea7229c
Description:

	Fix seg-fault in the linker when examining a corrupt binary.

	PR ld/20909
	* aoutx.h (aout_link_add_symbols): Fix off-by-one error in check
	for an illegal string offset.

CVE: CVE-2017-7300
Affects: < 2.27-r0.9.1
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: c1b259c5fef13e1ecff9a68d82cde49c777ffa4d)

Signed-off-by: Manjunath S Matti <mmatti@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
f98a25139e binutils: CVE-2017-8397
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74114
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: d55e7590c08c4db483bba2fa35df8fbb6283686e
Description:

 Fix a seg-fault when processing a corrupt binary containing reloc(s) with negative addresses.

        PR binutils/21434
        * reloc.c (bfd_perform_relocation): Check for a negative address
        in the reloc.

Affects: <= 2.29

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 6dd9179c4208c8d13f7e9c784d9993606416ab97)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
70f2d42e84 binutils: CVE-2017-8395
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74153
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 27dce214c561f9ae6f874990432f9d76a7de29d4
Description:

    Fix seg-fault attempting to compress a debug section in a corrupt binary.

        PR binutils/21431
        * compress.c (bfd_init_section_compress_status): Check the return
        value from bfd_malloc.

Affects: <= 2.29

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: addac2e8f6f6132807a590a032a4292079542fbe)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:08 +00:00
Thiruvadi Rajaraman
a36d21557b binutils: CVE-2017-8393
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74179
Type: Security Fix
Disposition: Backport from binutils-2_29
ChangeID: 976156cd25454143883090ca42010c38c6d6af0f
Description:

PR 21412, get_reloc_section assumes .rel/.rela name for SHT_REL/RELA.

    This patch fixes an assumption made by code that runs for objcopy and
    strip, that SHT_REL/SHR_RELA sections are always named starting with a
    .rel/.rela prefix.  I'm also modifying the interface for
    elf_backend_get_reloc_section, so any backend function just needs to
    handle name mapping.

Affects: <= 2.29

Author: Alan Modra <amodra@gmail.com>
(From OE-Core rev: 24124406a2a1657b80ba2933bef40ccf798c8097)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
951aea1f7b binutils: CVE-2017-7304
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74192
Type: Security Fix
Disposition: Backport from binutils-2_28-branch
ChangeID: 9a4c249becded1b479c0b9e9f175aebb80294317
Description:

  Fix seg-fault in strip when copying a corrupt binary.

        PR binutils/20931
        * elf.c (copy_special_section_fields): Check for an invalid
        sh_link field before attempting to follow it.

Affects: <= 2.28

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: fcadfc35ebe90d3f0f3aa0db8caeddb5c07c3120)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
d827c87635 binutils: CVE-2017-7303
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74205
Type: Security Fix
Disposition: Backport from binutils-2_28-branch
ChangeID: db5bfb63661d39846c3b03353e1383c621759d48
Description:

    Fix seg-fault attempting to strip a corrupt binary.

        PR binutils/20922
        * elf.c (find_link): Check for null headers before attempting to
        match them.

Affects: <= 2.28
Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: ef1a98976886560396a514458edb80a21f09b808)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
742b9c8a28 binutils: CVE-2017-7302
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74218
Type: Security Fix
Disposition: Backport from binutils-2_28-branch
ChangeID: 11677f4fb24c7a49efc23ea7d54de1bf85e74b12
Description:

  Fix seg-fault running strip on a corrupt binary.

        PR binutils/20921
        * aoutx.h (squirt_out_relocs): Check for and report any relocs
        that could not be recognised.

Affects: <= 2.28

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: dbe4c78bee0ed36fc8789f1a13678be1b8c0bcf5)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
10e74c42ad binutils: CVE-2017-7301
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74231
Type: Security Fix
Disposition: Backport from binutils-2_28-branch
ChangeID: 1fbae9f71e3ad90f930f8b25d550de964e05c259
Description:

   Fix seg-fault in linker parsing a corrupt input file.

        PR ld/20924
        (aout_link_add_symbols): Fix off by one error checking for
        overflow of string offset.

Affects: <= 2.28

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 315608a626f9e21d198d1600ded69114ac1e16d1)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
a880a7f8d7 binutils: CVE-2017-7227
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74270
Type: Security Fix
Disposition: Backport from binutils-2_28-branch
ChangeID: e4e88f56ba13671afb5b3194ca4c1c59601e5fd5
Description:

Fix seg-fault in linker when passed a bogus input script.

    PR ld/20906
    * ldlex.l: Check for bogus strings in linker scripts.

Affects: <= 2.28

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: 650a5b69c4ae7cf91d13993225877d0187bcb65e)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
24a6fa6184 binutils: CVE-2017-7225
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74296
Type: Security Fix
Disposition: Backport from binutils-2_29-branch
ChangeID: d2cf3ab15c89351c941c92e4cdf28c2bfa9dcda8
Description:

Fix seg-fault running addr2line on a corrupt binary.

    PR binutils/20891
    * aoutx.h (find_nearest_line): Handle the case where the main file
      name and the directory name are both empty.

Affects: <= 2.29

Author: Nick Clifton <nickc@redhat.com>
(From OE-Core rev: ba01ee6899c8d36e6469f6d02d40866fb0502af9)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
f85b35f63a binutils: CVE-2017-7224
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74309
Type: Security Fix
Disposition: Backport from binutils-2_29-branch
ChangeID: 640c2ad711ead368a65079a464c55368851e8744
Description:

Fix a seg-fault disassembling a corrupt binary.

    PR binutils/20892
    * aoutx.h (find_nearest_line): Handle the case where the function
      name is empty.

Affects: <= 2.29
(From OE-Core rev: 54992e752e396fc5b3bc5b067cfc4741f1176bb3)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
39722ae3c6 binutils: CVE-2017-7223
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74322
Type: Security Fix
Disposition: Backport from binutils-2_29-branch
ChangeID: c7e14cdaab09996e736a6294834d3470ac9ddb6c
Description:

Fix seg fault attempting to unget an EOF character.

    PR gas/20898
    * app.c (do_scrub_chars): Do not attempt to unget EOF.

Affects: <= 2.29

(From OE-Core rev: b35c5c25947daf47b5cbccd8836e22234baa6f0f)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
281b2e20bf binutils: CVE-2017-12450_12452_12453_12454_12456
Source: git://sourceware.org/git/binutils-gdb.git
MR: 73854, 73827, 73814, 73801, 73775
Type: Security Fix
Disposition: Backport from binutils-2_29-branch
ChangeID: fb23096307f9903872a04edf171d1fd2099e35c5
Description:

Fix address violation errors parsing corrupt binary files.

PR 21813
    binutils* rddbg.c (read_symbol_stabs_debugging_info): Check for an empty
        string whilst concatenating symbol names.

    bfd * mach-o.c (bfd_mach_o_canonicalize_relocs): Pass the base address
        of the relocs to the canonicalize_one_reloc routine.
        * mach-o.h (struct bfd_mach_o_backend_data): Update the prototype
        for the _bfd_mach_o_canonicalize_one_reloc field.
        * mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add
        res_base parameter.  Use to check for corrupt pair relocs.
        * mach-o-aarch64.c (bfd_mach_o_arm64_canonicalize_one_reloc):
        Likewise.
        * mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc):
        Likewise.
        * mach-o-x86-64.c (bfd_mach_o_x86_64_canonicalize_one_reloc):
        Likewise.

        * vms-alpha.c (_bfd_vms_slurp_eihd): Make sure that there is
        enough data in the record before attempting to parse it.
        (_bfd_vms_slurp_eeom): Likewise.

        (_bfd_vms_slurp_egsd): Check for an invalid section index.
        (image_set_ptr): Likewise.
        (alpha_vms_slurp_relocs): Likewise.

Affects: <= 2.29
(From OE-Core rev: 2cc3922462c9dd86f50a419a2a4abb0f3b5b4745)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
c2b6a93e14 binutils: CVE-2017-12451
Source: git://sourceware.org/git/binutils-gdb.git
MR: 73840
Type: Security Fix
Disposition: Backport from binutils-2_29-branch
ChangeID: 582c686f18c059d665189a6a09df3a8cc4a3b093
Description:

Fix address violation when attempting to read a corrupt field in a COFF archive header structure.

PR 21786
* coff-rs6000.c (_bfd_strntol): New function.
  (_bfd_strntoll): New function.
  (GET_VALUE_IN_FIELD): New macro.
  (EQ_VALUE_IN_FIELD): new macro.
  (_bfd_xcoff_slurp_armap): Use new macros.
  (_bfd_xcoff_archive_p): Likewise.
  (_bfd_xcoff_read_ar_hdr): Likewise.
  (_bfd_xcoff_openr_next_archived_file): Likewise.
  (_bfd_xcoff_stat_arch_elt): Likewise.

Extend previous fix to coff-rs6000.c to coff64-rs6000.c

PR 21786
* coff64-rs6000.c (_bfd_strntol): New function.
  (_bfd_strntoll): New function.
  (GET_VALUE_IN_FIELD): New macro.
  (xcoff64_slurp_armap): Use new macros.

Affects: <= 2.29
(From OE-Core rev: 62eeac8e4684c129af6f36aa7c2b91270a5dacde)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
1ffd39135a binutils: CVE-2017-12449, CVE-2017_12455, CVE-2017-12457, CVE-2017-12458, CVE-2017-12459
Source: git://sourceware.org/git/binutils-gdb.git
MR: 73867, 73788, 73762, 73749, 73734
Type: Security Fix
Disposition: Backport from binutils-2_29-branch
ChangeID: 29a1fd75a879d40560b3891305b7d9577e26ffe5
Description:

Fix address violation issues encountered when parsing corrupt binaries.

PR 21840
 * mach-o.c (bfd_mach_o_read_symtab_strtab): Fail if the symtab
   size is -1.
 * nlmcode.h (nlm_swap_auxiliary_headers_in): Replace assertion
   with error return.
 * section.c (bfd_make_section_with_flags): Fail if the name or bfd
   are NULL.
 * vms-alpha.c (bfd_make_section_with_flags): Correct computation
   of end pointer.
   (evax_bfd_print_emh): Check for invalid string lengths.

Fix address violations when reading corrupt VMS records.

PR binutils/21618
 * vms-alpha.c (evax_bfd_print_emh): Check for insufficient record
   length.
   (evax_bfd_print_eeom): Likewise.
   (evax_bfd_print_egsd): Check for an overlarge record length.
   (evax_bfd_print_etir): Likewise.

Affects: <= 2.29

(From OE-Core rev: 62c4dc16dd8fe99cba970c5e7d8dfc063855d4b9)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
7963e14e40 binutils: CVE-2017-12448
Source: git://sourceware.org/git/binutils-gdb.git
MR: 73880
Type: Security Fix
Disposition: Backport from binutils-2_29-branch
ChangeID: 6ef7c8e941d7a1c069b29e4671178c0d02427e3f
Description:

Fix use-after-free error when parsing a corrupt nested archive.

PR 21787
* archive.c (bfd_generic_archive_p): If the bfd does not have the
  correct magic bytes at the start, set the error to wrong format
  and clear the format selector before returning NULL.

Affects: <= 2.29

(From OE-Core rev: 996e7af41b48107bab5eca0ea26f507541382bd5)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Thiruvadi Rajaraman
7296c9fbd6 binutils: CVE-2017-7226
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74283
Type: Security Fix
Disposition: Backport from binutils_v2_28
ChangeID: 82097a4b98d3d576e1b1bfb7ac9ae17fd153c909
Description:

Use strnlen to avoid running over the end of the string buffer.

Affects: <= 2.28

(From OE-Core rev: abc9e4eebafac084bee054954bd93288cd1d0a8c)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Armin Kuster
34041f58fd binutils: Security Fix CVE-2017-9041
Source: binutils-gdb.git
MR: 72791
Type: Security Fix
Disposition: Backport from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=919383ac718c2a3187ee2a9ad659daa22da26258
ChangeID: 7b4588368a367a4d57efbfdcd9c00fcc0875af7b
Description:

Affects: <= 2.28
(From OE-Core rev: d445a9abe7af0a1a54e466bdae8978f6ffb5f6bc)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Reviewed-by  Jeremy Puhlman <jpuhlman@mvista.com>

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Armin Kuster
4bca7db53e binutils: Security fix for CVE-2017-9040 and 2017-9042
Source: binutils-gdb.git
MR: 72756, 72805
Type: Security Fix
Disposition: Backport from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=7296a62a2a237f6b1ad8db8c38b090e9f592c8cf
ChangeID: af83ec9e8322e0e051bb684bd2fee5fe8a506fbc
Description:

excluded some changes as the code does not exist in our version. Does not affect fix.
Affects: <= Binutils 2017-04-12

(From OE-Core rev: 2dfdc0ceac466a4b80ece01a970cb5cfdc08d7ab)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Reviewed-by  Jeremy Puhlman <jpuhlman@mvista.com>

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Armin Kuster
4be76c16e3 binutils: Security Fix CVE-2017-9039
Source: binutils-gbd.git
MR: 72742
Type: Security Fix
Disposition: Backport from git://sourceware.org/binutils-gdb.git
ChangeID: 280f36838862ea67fdcd65b162c1a4835cf924dc
Description:

Affects: <= 2.28

(From OE-Core rev: 9d5c9ad603947136e23325b123bc37c4b939d783)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Reviewed-by  Jeremy Puhlman <jpuhlman@mvista.com>

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Armin Kuster
0251f82c13 binutis: Security fix CVE-2017-9038
Source: Binutils.org
MR: 72728
Type: Security Fix
Disposition: Backport from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f32ba72991d2406b21ab17edc234a2f3fa7fb23d
ChangeID: 7e242783945a87af0a821b924bd16624a0f18fb3
Description:

Affects: <= 2.28
(From OE-Core rev: 8df5d5d7809381a6e9b93bb6f772b1fd77046da9)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Reviewed-by  Jeremy Puhlman <jpuhlman@mvista.com>

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Armin Kuster
a69088e788 binutis: Security fix CVE-2017-7614
Source: binutils-gbd.git
MR: 71732
Type: Security Fix
Disposition: Backport from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b814a36d3440de95f2ac6eaa4fc7935c322ea456
ChangeID: 44d3f2d902013f6e8faf485bf736106a11603e16
Description:

minor change to get changelog to apply

Affects: binutils < 2.28
(From OE-Core rev: 72dc7aa95afb64bc9ff070e5c2b372d2db6ac5c6)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Reviewed-by  Jeremy Puhlman <jpuhlman@mvista.com>

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-07 17:10:07 +00:00
Richard Purdie
bd7388283b local.conf.sample: Weakly set BB_DISKMON_DIRS
For various reasons we need to be able to set and override this from
auto.conf on our test infrastructure. We have tried forcing the variable
but this then breaks other selftests. In the interests of not complicating
things further and needing to modify the tests across releases, weaken
the default assignment.

(From meta-yocto rev: 19d23e22922c2536e207e1f577f508f510c85b59)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-06 10:07:39 +00:00
brian avery
be00e9049f bitbake: toaster: remove cut and paste cruft
There was a superfluous section in toaster start/stop script that was
setting the TOASTER_DIR and had a set of comments around that setting.
This was done in two places and only the last one was effective. This
patch removes the spurious section to make it clearer what was
happening and what TOASTER_DIR was actually getting set to.

(Bitbake rev: aeed732ff6e8c1009c5efad3aadbbd3b0bbaeea7)

Signed-off-by: brian avery <brian.avery@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-04 18:05:06 +00:00
brian avery
3b3ba69fe3 bitbake: toaster: move sqlite database to TOASTER_DIR
The toaster.sqlite database was located in TOASTER_DIR/build.  This
meant that if you named your build directory something else (like cow),
Toaster would fail to make/find the database.  TOASTER_DIR is on the
whitelist unlike BUILDDIR and we need to be able to write there anyway
given our current layout so this should not disrupt anything.

[YOCTO #9992]

(Bitbake rev: 32b13d52ae37be343962cc1cf504f3d569fb1153)

Signed-off-by: brian avery <brian.avery@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-04 18:05:06 +00:00
brian avery
221f067e55 bitbake: toaster: bin/toaster whitelist TOASTER_DIR
Some of the tinfoil2 changes resulted in TOASTER_DIR being cleared by
the memory resident bitbake server toaster starts up.  This prevented
toaster from being able to connect to its sqlite database. Adding
TOASTER_DIR to the BB_ENV_EXTRAWHITE list stops the cooker from clearing
out the TOASTER_DIR variable.

[YOCTO #9252]

(Bitbake rev: 30da2715cd6a114faf99b09c74e73c5d84767b91)

Signed-off-by: brian avery <brian.avery@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-04 18:05:06 +00:00
Peter Kjellerstedt
e3ff03599e bitbake: fetch2: Do not fail to create symbolic links if they already exist
When the fetcher retrieves file:// URLs, there is no lock file being
used. This means that in case two separate tasks (typically from two
concurrent invocations of bitbake) want to download the same file://
URL at the same time, there is a very small chance that they also end
up wanting to create a symbolic link to the file at the same time.
This would previously lead to one of the tasks failing as the other
task would have created the link.

(Bitbake rev: 5f5e13bacde95a93633f621ec6b94a022c476a58)

Signed-off-by: Peter Kjellerstedt <pkj@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-18 16:44:37 +00:00
Paul Eggleton
84fd0eb005 bitbake: bitbake-layers: fix layerindex-fetch for Python 3
The data we read from an HTTPConnection comes in the form of bytes, but
we need it as a string, so in Python 3 we need to decode it (missed in
the Python 3 migration).

(Bitbake rev: e75c68819086788bac1c4ca8a35aebeaf604e624)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-18 15:09:19 +00:00
Richard Purdie
e662695150 build-appliance-image: Update to morty head revision
(From OE-Core rev: 1718f0a6c1de9c23660a9bebfd4420e3c4ed37e6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-14 13:30:25 +00:00
Richard Purdie
a3765887d3 populate_sdk_ext: Use prebuilt uninative tarball
For uninative to work, it relies on it being updated to new versions as
newer glibcs are built. This means the uninative generated by the current
build may not be as recent as the uninative that is being downloaded by
uninative.bbclass.

If this occurs, we can get symbol mismatch errors.

Ultimately, the sstate and the uninative versions need to match so we
should use the same tarball as uninative.bbclass is using, not the one
we built.

[YOCTO #12405]

(From OE-Core rev: 1e6beee55d2bbe40de54c09f7a48fcb1240a426e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-11 21:47:28 +00:00
Richard Purdie
590ef99df7 uninative: Handle futex hangs caused by glibc version mismatches
We've been seeing hangs in smart on the autobuilders where it hangs in
pthread futex calls. It appears to happen when some components are
installed from sstate (which use the interpreter from uninative)
and other components are built natively (and use the host's interpreter).

Its primarily affecting software which uses shared memory with futexs in
for locking purposes (which bdb does called from librpm from smart).

This isn't an issue in pyro and rocko and beyond since they use recipe
specific sysroots which included a change to always change to the
uninative interpreter. We could backport those changes but they're
fairly invasive changes to the sstate code. This patch is a more
minimal change which ensures binaries are always using the uninative
interpreter regardless of whether they're built locally or installed
from sstate.

This is only an issue if you're using an sstate mirror and hosts
with a variety of different libc versions. It has only become an issue
on recent libc versions where there was clearly some forwards compatibility
issue introduced.

(From OE-Core rev: 6b149a88cd33c65c7f306f785f4d24ee2909809c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-11 21:47:28 +00:00
sweeaun
ef888dd58f gnu-efi: Support musl-x32 build
To build 64-bit binaries for musl-x32.

(From OE-Core rev: a9301cbc90a61b54f99f321934f421d432ec8826)

(From OE-Core rev: 0a6be26cb8de71b74fd0520cd24185ed99a5911f)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hand applied for morty version

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:36 +00:00
Saul Wold
0ce85641cd gnu-efi: copy header files for x32 build
Gnu-efi needs to be build for 64bit since it is a boot time tool. It
needs these 2 headers to be in 64 bit versions, we can use the existing
32bit ones as there is not really any difference.

[YOCTO #11051]

(From OE-Core rev: 3398552663e1e18aaf352d682a77a8ad3af94e5a)

(From OE-Core rev: 7dcf05c29da3faac5ed8129a2b9cc6b00129fb07)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:36 +00:00
Christopher Larson
b2121ff9c3 gnu-efi: ignore arch mismatch for x32
(From OE-Core rev: 97976de2a5465cb476379ebc9d9e1b3f0837853a)

(From OE-Core rev: f75e1a55158a76e1f9d010abd1b1f78a4053923e)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:36 +00:00
Christopher Larson
08f62237c4 gnu-efi: build 64-bit for x32
We're targeting the x86_64 EFI ABI.

(From OE-Core rev: 24325410acb670a3e7bc626ac3607efa8df38dc5)

(From OE-Core rev: 6017c9b2009357ece12be18550ddfbafe555430a)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:36 +00:00
Khem Raj
ddd1da619d nspr: Fix build error due to missing stdint.h> include
(From OE-Core rev: 2f95c71ba17a6d68d3805efe82097c10b6740244)

(From OE-Core rev: 4e257a7429e1a7525c1939d4f011e938d4ca32b1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:36 +00:00
Alexander Kanavin
3fd818655a adwaita-icon-theme: add a patch to speed up the do_install() task
Goes down to 40 seconds from over 4 minutes :)

Note that there is no control over the amount of shell jobs; on my machine
this is not a problem, but if it's a problem on less capable hardware,
we can add some kind of limiter.

(From OE-Core rev: cd9af17028c069f52fb0616074170093dd63c143)

(From OE-Core rev: f7f659340fd54f05ee11bf34fdb2f6025c1d33cd)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
updated to apply to morty

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:36 +00:00
Khem Raj
250ca947da grub: Fix build with gcc7
backport patches from upsteam and adapt them to 2.0 codebase

(From OE-Core rev: 347976bf08158d1aa46dfea6f0f9d6dcc0d97395)

(From OE-Core rev: 74da4a06619558b34752d3588fd965a7994106e3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
Khem Raj
666076dfc0 grub: Fix build with glibc 2.25
Backport relevant patch from grub git

(From OE-Core rev: 5e501f8e3ecf14f31da3cca5ab762af5ddc81964)

(From OE-Core rev: c22d80c26ddab86ef8c87f028d505a237502d4e2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
Armin Kuster
14912b7859 systemd: fixes mips64 login issue
With out this patch, one can not login to a mips64 machine like qumumips64 or Octeon mips64 when
systemd is enabled.

remove PACKAGECONFIG option too

affects: systemd < 2.3.1

Reviewed-by: Jeremy Puhlman <jpuhlman@mvista.com>
(From OE-Core rev: ce97fa3c673c7adc7a1fb81e0fd47f103fe281de)

Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
Thiruvadi Rajaraman
40cfd513e9 glibc: CVE-2017-15670
Source: git://sourceware.org/git/glibc.git
MR: 76647
Type: Security Fix
Disposition: Backport from glibc-2.27
ChangeID: f4494e472d36748c2b3171a91640b26c638f6e0b
Description:

CVE-2017-15670: glob: Fix one-byte overflow [BZ #22320]
Affects: glibc < 2.27

(From OE-Core rev: 25bd45375fd90489a3d80955b2f0f7c800e9fc9a)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
Rajkumar Veer
b6a0e9dd64 glibc: Security fix for CVE-2017-8804
Source: https://sourceware.org
MR: 74337
Type: Security Fix
Disposition: Backport from https://sourceware.org/ml/libc-alpha/2017-05/msg00105.html
ChangeID: c8c51220e40185dd0ac3d657046e70b82cb94bee
Description:

CVE-2017-8804
sunrpc: xdr_bytes/xdr_string need to free buffer on error [BZ #21461]

Affects: glibc < 2.25

(From OE-Core rev: b7099c48641f5db6ec7831a48c9d9c5e9e9de6f9)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
George McCollister
bc8d34a327 glibc: Fix CVE-2017-1000366
Add backported patches from the upstream release/2.24/master branch to
fix CVE-2017-1000366. Also add a backported patch that resolves SSE
related build problems introduced by these patches.

(From OE-Core rev: 07e041138f0b037e7ddc75a33c7960668acdb8bb)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
George McCollister
02ab4bdbf7 glibc: Fix CVE-2015-5180
Add backported patch to fix CVE-2015-5180 from the upstream
release/2.24/master branch.

(From OE-Core rev: e8a6e3894c8aebac4aa6b0ceea021b95e94e6691)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
Alexander Kanavin
38961fcfcb python3: do not hardcode "lib" into site-packages search path
This was not working in multilib or x32 setups and amazingly, was not
noticed until now.

The actual modification is in Lib/site.py, the rest is just devtool moving things around in the patch.

(From OE-Core rev: 0713d2a325adf87d97ef5936061ff44274d5a913)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-09 14:34:35 +00:00
Joshua Watt
8c84d07063 cross-localedef-native: Include locale_t.h
Newer versions of glibc (2.26) moved the struct locale definition from
xlocale.h to bits/types/locale_t.h. For compatibility with build hosts
using this version of glibc, include this header.

See f0be25b6336db7492e47d2e8e72eb8af53b5506d in glibc

(From OE-Core rev: 4e9bb9ab2e5c603f3eb2d52ce272401c8e320cc0)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-07 13:14:52 +00:00
Khem Raj
04f0f7f124 fontconfig: Fix namespace conflicts with glibc
glibc 2.25 will come with TS 18661-1 macro definitions in limits.h which ends with following errors

| ../../fontconfig-2.12.1/src/fcmatch.c:324:63: error: 'PRI_CHAR_WIDTH_STRONG' undeclared here (not in a function)
|  #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp, PRI_##NAME##_STRONG, PRI_##NAME##_WEAK },
|                                                                ^
| ../../fontconfig-2.12.1/src/fcobjs.h:54:1: note: in expansion of macro 'FC_OBJECT'
|  FC_OBJECT (CHAR_WIDTH,  FcTypeInteger, NULL)
|  ^~~~~~~~~
| ../../fontconfig-2.12.1/src/fcmatch.c:324:84: error: 'PRI_CHAR_WIDTH_WEAK' undeclared here (not in a function)
|  #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp, PRI_##NAME##_STRONG, PRI_##NAME##_WEAK },
|                                                                                     ^
| ../../fontconfig-2.12.1/src/fcobjs.h:54:1: note: in expansion of macro 'FC_OBJECT'
|  FC_OBJECT (CHAR_WIDTH,  FcTypeInteger, NULL)
|  ^~~~~~~~~
| make[3]: *** [Makefile:632: fcmatch.lo] Error 1

(From OE-Core rev: 3575826752e7140da493c7f560fb5fcf483fc9b4)

(From OE-Core rev: 0d945f5b8f58fa2b909eea7b2a14db076e1dedb5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-04 17:34:35 +00:00
Kristi Rifenbark
1edad1a700 documentation: Updated manual revision history table
Changed release date from November to December 2017

(From yocto-docs rev: f4571c05c9004b0eb20a680cf7d3d1f7e6bc6d6b)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-29 23:42:02 +00:00
Richard Purdie
b9182def29 build-appliance-image: Update to morty head revision
(From OE-Core rev: 93b7f83a4212409a55ddf568a34468d4f6ef2c06)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-22 00:05:19 +00:00
Richard Purdie
d555b59a98 poky: Bump distro version to 2.2.3
(From meta-yocto rev: 10631e5f570c238c080381268c517944864ebb9a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-22 00:05:03 +00:00
Armin Kuster
80fe599578 neon: fix fetch error
ERROR: neon-native-0.30.1-r0 do_checkuri: Fetcher failure for URL: 'http://www.webdav.org/neon/neon-0.30.1.tar.gz'. URL http://www.webdav.org/neon/neon-0.30.1.tar.gz doesn't work
ERROR: neon-native-0.30.1-r0 do_checkuri: Function failed: do_checkuri

change to https and url to OSL.
www.webdav.org is down or dean

(From OE-Core rev: 5bf1ce30cbafe12b72e8215ed86d115cb22851c4)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
Armin Kuster
43853be4dd byacc: Fix fetch error
ERROR: byacc-20160606-r0 do_checkuri: Fetcher failure for URL: 'ftp://invisible-island.net/byacc/byacc-20160606.tgz'. URL ftp://invisible-island.net/byacc/byacc-20160606.tgz doesn't work

update to https and achive location

(From OE-Core rev: 0861820f83e9300745cd459255c2c9b1d37a3f9f)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
Armin Kuster
ccf5f67f5d mesa: fix SRC_URI
ERROR: mesa-2_12.0.1-r0 do_checkuri: Fetcher failure for URL: 'ftp://ftp.freedesktop.org/pub/mesa/12.0.1/mesa-12.0.1.tar.xz'. URL ftp://ftp.freedesktop.org/pub/mesa/12.0.1/mesa-12.0.1.tar.xz doesn't work

change to https and use older-versions path

(From OE-Core rev: dfab5f822c7fd73736953a3883bc16829cd5582e)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
Yi Zhao
97d7e4ca75 ppp: include netinet/in.h before linux/in.h in pppoe.h
The patch ppp-fix-building-with-linux-4.8.patch tries to fix build error
with 4.8 or newer linux headers, but it would break building with kernel
< 4.8. There is a better solution to fix this issue in upstream.
Backport the upstream patch and replace the old one.

[YOCTO #10457]

(From OE-Core rev: 6e50f316db897c1d64026b3d21acec7712e4cc09)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
Bruce Ashfield
b6e991f245 linux-yocto/4.8: update to v4.8.26
Integrating the stable commits from Paul Gortmaker for 4.8.26:

   72fd9e50372d Linux 4.8.26
   bca975f9d61e pstore: Shut down worker when unregistering
   831528f6d369 libnvdimm, pfn: fix 'npfns' vs section alignment
   24e6cea34654 libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
   6585d5899c12 libnvdimm, region: fix flush hint detection crash
   5679bab89552 ipmi: Fix kernel panic at ipmi_ssif_thread()
   a0edda9d006a Bluetooth: hci_intel: add missing tty-device sanity check
   bdfa99dcaf41 Bluetooth: hci_bcm: add missing tty-device sanity check
   3a197a20503b Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
   2dd96e6a56f6 tty: pty: Fix ldisc flush after userspace become aware of the data already
   bcb0e0973a3f serial: omap: suspend device on probe errors
   e689fc4ccff0 serial: omap: fix runtime-pm handling on unbind
   f1a81a255788 serial: samsung: Use right device for DMA-mapping calls
   a437a5323381 padata: free correct variable
   a05f144a9d3b CIFS: add misssing SFM mapping for doublequote
   349eb07c3118 cifs: fix CIFS_IOC_GET_MNT_INFO oops
   4ca4593289e4 CIFS: fix oplock break deadlocks
   dfc44a5e2f72 CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
   53c2f66294a5 SMB3: Work around mount failure when using SMB3 dialect to Macs
   f39f85a9ec9c Set unicode flag on cifs echo request to avoid Mac error
   ab4bab94e003 Fix match_prepath()
   853849a70bbb mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC
   2a5e703230d8 fs/block_dev: always invalidate cleancache in invalidate_bdev()
   70a6a7422b35 ceph: fix memory leak in __ceph_setxattr()
   1eeca04d2091 fs/xattr.c: zero out memory copied to userspace in getxattr
   6fba0c4d3153 orangefs: do not check possibly stale size on truncate
   aef961cbc788 orangefs: do not set getattr_time on orangefs_lookup
   ad35f4485072 orangefs: clean up oversize xattr validation
   decc9664a7e4 orangefs: fix bounds check for listxattr
   d62cac98eeb2 ext4: evict inline data when writing to memory map
   ae88e436f00e IB/hfi1: Prevent kernel QP post send hard lockups
   5512f0343e1c IB/mlx4: Reduce SRIOV multicast cleanup warning message to debug level
   c831cf234702 IB/mlx4: Fix ib device initialization error flow
   a2f97e715839 IB/IPoIB: ibX: failed to create mcg debug file
   4bb65c977cec IB/core: For multicast functions, verify that LIDs are multicast LIDs
   20ad33c71d4d IB/core: Fix sysfs registration error flow
   0c4446e4d65c dm thin: fix a memory leak when passing discard bio down
   8d5feb420e3b dm rq: check blk_mq_register_dev() return value in dm_mq_init_request_queue()
   c7c19f2ba5db dm era: save spacemap metadata root after the pre-commit
   820b3860065f crypto: algif_aead - Require setkey before accept(2)
   f0757bc95106 block: fix blk_integrity_register to use template's interval_exp if not 0
   491700e5904b KVM: arm/arm64: fix races in kvm_psci_vcpu_on
   2146d0cf63d9 KVM: x86: fix user triggerable warning in kvm_apic_accept_events()
   42f69a5e282f perf/x86: Fix Broadwell-EP DRAM RAPL events
   b07a3600b881 um: Fix PTRACE_POKEUSER on x86_64
   583a0e218a99 x86, pmem: Fix cache flushing for iovec write < 8 bytes
   57760637e50b selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
   60ca4f96555f x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
   7fbd5421d5be usb: hub: Do not attempt to autosuspend disconnected devices
   812c5f577e13 usb: hub: Fix error loop seen after hub communication errors
   41c09b5e0036 usb: Make sure usb/phy/of gets built-in
   2a164b1e1a37 usb: misc: add missing continue in switch
   f184320880ec staging: comedi: jr3_pci: cope with jiffies wraparound
   c38aa7ed4029 staging: comedi: jr3_pci: fix possible null pointer dereference
   452fd7a68826 staging: gdm724x: gdm_mux: fix use-after-free on module unload
   1ad9126ccbcb USB: Proper handling of Race Condition when two USB class drivers try to call init_usb_class simultaneously
   ea0e314f4b99 USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit
   4e9575b41329 usb: host: xhci: print correct command ring address
   fe51d203bf26 usb: xhci: bInterval quirk for TI TUSB73x0
   cb3c76399e7d iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement
   82d4c0daad4d target/fileio: Fix zero-length READ and WRITE handling
   1fb92530ac51 target: Fix compare_and_write_callback handling for non GOOD status
   82c59b4dee19 block: get rid of blk_integrity_revalidate()
   bb25c9749298 drm/ttm: fix use-after-free races in vm fault handling
   04b96345d77c f2fs: sanity check segment count
   8004022099cb net: mdio-mux: bcm-iproc: call mdiobus_free() in error path
   9974c98f5155 bpf: don't let ldimm64 leak map addresses on unprivileged
   8ed935b2461f bnxt_en: allocate enough space for ->ntp_fltr_bmap
   547e949b6556 ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
   41c79abb8e54 ipv6: initialize route null entry in addrconf_init()
   60b4e1ac1bcd rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
   3c76ecbb68fc ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
   51f0c06655d7 tcp: do not inherit fastopen_req from parent
   4f4ef66f8a54 net: usb: qmi_wwan: add Telit ME910 support
   9190457be81e net: ipv6: Do not duplicate DAD on link up
   fdbd8c9606d4 tcp: fix wraparound issue in tcp_lp
   402219c947aa bpf, arm64: fix jit branch offset related to ldimm64
   d1d3b5fac542 tcp: do not underestimate skb->truesize in tcp_trim_head()
   b74a9f53923e macsec: dynamically allocate space for sglist
   49e7abb4251d sparc64: fix fault handling in NGbzero.S and GENbzero.S
   6ed64cb9e610 ALSA: hda - Fix deadlock of controller device lock at unbinding
   8b5e31398ade staging: emxx_udc: remove incorrect __init annotations
   19c278eaeef5 staging: wlan-ng: add missing byte order conversion
   d923e0bc0605 brcmfmac: Make skb header writable before use
   ba43849f60c0 brcmfmac: Ensure pointer correctly set if skb data location changes
   a092754fb592 MIPS: R2-on-R6 MULTU/MADDU/MSUBU emulation bugfix
   f316b49a6127 scsi: mac_scsi: Fix MAC_SCSI=m option when SCSI=m
   276ac4dbab2f serial: 8250_omap: Fix probe and remove for PM runtime
   6525e9e63036 clk: rockchip: add "," to mux_pll_src_apll_dpll_gpll_usb480m_p on rk3036
   9d393de73c66 USB: serial: io_edgeport: fix descriptor error handling
   f66d82e82938 USB: serial: mct_u232: fix modem-status error handling
   f8de7e87ed68 USB: serial: quatech2: fix control-message error handling
   7070f0b5094f USB: serial: ftdi_sio: fix latency-timer error handling
   47f6ccfb10df USB: serial: ark3116: fix open error handling
   53aef8f0af7d USB: serial: ti_usb_3410_5052: fix control-message error handling
   2f54a3328f7a USB: serial: io_edgeport: fix epic-descriptor handling
   5f5f5ba0c0d7 USB: serial: ssu100: fix control-message error handling
   4b1da19109b9 USB: serial: digi_acceleport: fix incomplete rx sanity check
   c88342441acb USB: serial: keyspan_pda: fix receive sanity checks
   b3b834c7459c usb: chipidea: Handle extcon events properly
   0ff8c355d1fd usb: chipidea: Only read/write OTGSC from one place
   f5dc93d23c27 usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   f42b266cb8e0 usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   c350ac01f4f5 KVM: nVMX: do not leak PML full vmexit to L1
   3a1e3fa213cf KVM: nVMX: initialize PML fields in vmcs02
   2c44b9685a55 Revert "KVM: nested VMX: disable perf cpuid reporting"
   48d8e6283bc9 x86/platform/intel-mid: Correct MSI IRQ line for watchdog device
   bafa78c1a65e kprobes/x86: Fix kernel panic when certain exception-handling addresses are probed
   cf63da5d56fd clk: Make x86/ conditional on CONFIG_COMMON_CLK
   7b34882df641 x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0
   270dd7dbbf77 x86/ioapic: Restore IO-APIC irq_chip retrigger callback
   6a44ffd4dbc8 iwlwifi: mvm: writing zero bytes to debugfs causes a crash
   301082e9c9b7 iwlwifi: mvm: synchronize firmware DMA paging memory
   ee4cac606ac1 iwlwifi: mvm: fix references to first_agg_queue in DQA mode
   97d3c48bd7d4 iwlwifi: mvm: Use aux queue for offchannel frames in dqa
   8fffec6fff0b iwlwifi: mvm: fix reorder timer re-arming
   46913adaacf1 iwlwifi: pcie: don't increment / decrement a bool
   52368ddf6050 iwlwifi: mvm: overwrite skb info later
   83a12256b172 iwlwifi: fix MODULE_FIRMWARE for 6030
   86c87e0daa7f mwifiex: Avoid skipping WEP key deletion for AP
   748491d99d68 mwifiex: remove redundant dma padding in AMSDU
   1569633df83e mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
   ad4e8ed421e3 ARM: dts: sun7i: lamobo-r1: Fix CPU port RGMII settings
   c60416688ca4 ARM: OMAP5 / DRA7: Fix HYP mode boot for thumb2 build
   dd58846a5358 leds: ktd2692: avoid harmless maybe-uninitialized warning
   381a374688d0 arm: dts: qcom: Fix ipq board clock rates
   a109c21045cf arm64: dts: r8a7795: Mark EthernetAVB device node disabled
   23f7727a1514 powerpc/ftrace: Fix confusing help text for DISABLE_MPROFILE_KERNEL
   8a35dd72827b powerpc/powernv: Fix opal_exit tracepoint opcode
   492d4c504275 powerpc/mm: Fixup wrong LPCR_VRMASD value
   73ae00c24a34 cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
   f348742efaa7 tmp: use pdev for parent device in tpm_chip_alloc
   024f822c0f84 tpm: fix RC value check in tpm2_seal_trusted
   bb61249ebc26 hwmon: (it87) Fix pwm4 detection for IT8620 and IT8628
   2484c067e875 drm/sti: fix GDP size to support up to UHD resolution
   e90276910177 9p: fix a potential acl leak
   b1bde1d61aad dm ioctl: prevent stack leak in dm ioctl call
   19952586021f ceph: try getting buffer capability for readahead/fadvise
   2afa5529d98e hwmon: (it87) Avoid registering the same chip on both SIO addresses
   20f5706414a4 scsi: storvsc: Workaround for virtual DVD SCSI version
   bfd008363cd2 timerfd: Protect the might cancel mechanism proper
   c5eb2c3f266f ftrace/x86: Fix triple fault with graph tracing and suspend-to-ram
   79a67346f310 ARCv2: save r30 on kernel entry as gcc uses it for code-gen
   d3b2ff49ba72 net: can: usb: gs_usb: Fix buffer on stack
   a0b23de216d0 macsec: avoid heap overflow in skb_to_sgvec
   93f3107c481a nfsd: stricter decoding of write-like NFSv2/v3 ops
   0b02144efadc nfsd4: minor NFSv2/v3 write decoding cleanup
   cf2b8df2aeea nfsd: check for oversized NFSv2/v3 arguments
   25673437d3fa Input: i8042 - add Clevo P650RS to the i8042 reset list
   328bc25d3525 ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
   fe671099fe8d p9_client_readdir() fix
   29e8f9612740 MIPS: Avoid BUG warning in arch_check_elf
   a10a315719a5 MIPS: cevt-r4k: Fix out-of-bounds array access
   da135df655bf MIPS: KGDB: Use kernel context for sleeping threads
   741f4ca5cc4a ALSA: seq: Don't break snd_use_lock_sync() loop by timeout
   f379be22874a ALSA: firewire-lib: fix inappropriate assignment between signed/unsigned type
   44b8f005e518 ALSA: oxfw: fix regression to handle Stanton SCS.1m/1d
   52b55c9a73a4 ipv6: check raw payload size correctly in ioctl
   2d55be6b35f3 tcp: memset ca_priv data to 0 properly
   3571e0a934e0 ipv6: check skb->protocol before lookup for nexthop
   47a52f3af5b3 net: ipv6: regenerate host route if moved to gc list
   0719e904a617 macvlan: Fix device ref leak when purging bc_queue
   974c18f8cebc net/mlx5e: Fix ETHTOOL_GRXCLSRLALL handling
   ef68966cafe2 net/mlx5e: Fix small packet threshold
   1a3947d78b89 ip6mr: fix notification device destruction
   8907cd376e97 netpoll: Check for skb->queue_mapping
   58fb2345c82e net: ipv6: RTF_PCPU should not be settable from userspace
   92cfda6d6c88 dp83640: don't recieve time stamps twice
   efe73421873e sh_eth: unmap DMA buffers when freeing rings
   aa146f0df8e6 net: vrf: Fix setting NLM_F_EXCL flag when adding l3mdev rule
   193a114497ae net-timestamp: avoid use-after-free in ip_recv_error
   11d565eec8c8 ipv6: Fix idev->addr_list corruption
   aa1985f1aff7 tcp: clear saved_syn in tcp_disconnect()
   b5323dffe1b4 sctp: listen on the sock only when it's state is listening or closed
   eed6013d5c23 net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
   12add9d91a53 l2tp: fix PPP pseudo-wire auto-loading
   a3fa03ac269b l2tp: take reference on sessions being dumped
   9921b663da3b net/packet: fix overflow in check for tp_reserve
   fb125e7739e8 net/packet: fix overflow in check for tp_frame_nr
   d4380e099256 l2tp: purge socket queues in the .destruct() callback
   5ea6fbde7c3a kcm: return immediately after copy_from_user() failure
   b7c5f5e113a5 net: phy: handle state correctly in phy_stop_machine
   853ff758b593 net: neigh: guard against NULL solicit() method
   cc2ac542fad4 sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()
   875b971b846a sparc64: kern_addr_valid regression
   1e33ff438412 ping: implement proper locking
   fc5b4dcef3f8 Revert "mmc: sdhci-msm: Enable few quirks"
   cb66cad28324 x86/mce/AMD: Give a name to MCA bank 3 when accessed with legacy MSRs
   c15018165b38 powerpc/kprobe: Fix oops when kprobed on 'stdu' instruction
   19aea564a24f ubi/upd: Always flush after prepared for an update
   a4f1bff6eb6e mac80211: reject ToDS broadcast data frames
   6e9b4ada4075 mmc: sdhci-esdhc-imx: increase the pad I/O drive strength for DDR50 card
   d7f182088aab Input: elantech - add Fujitsu Lifebook E547 to force crc_enabled
   1edb7d9791b8 s390/mm: fix CMMA vs KSM vs others
   302dc30d4442 CIFS: remove bad_network_name flag
   08f16bf5c9ba cifs: Do not send echoes before Negotiate is complete
   07c9b2816029 ring-buffer: Have ring_buffer_iter_empty() return true when empty
   c2bd41c8a061 tracing: Allocate the snapshot buffer before enabling probe
   9ec3d1139f9b KEYS: fix keyctl_set_reqkey_keyring() to not leak thread keyrings
   46756acd3faf KEYS: Change the name of the dead type to ".dead" to prevent user access
   fd9a944708bd KEYS: Disallow keyrings beginning with '.' to be joined as session keyrings
   970e219ec7e1 Linux 4.8.25
   3f6b8912e69f Allow stack to grow up to address space limit
   19a363d4402a mm: fix new crash in unmapped_area_topdown()
   c8955c83e743 mm: larger stack guard gap, between vmas
   a82d21362f92 net: ipv6: check route protocol when deleting routes
   e359556b299b virtio-console: avoid DMA from stack
   528b66933f17 [media] dvb-usb-firmware: don't do DMA on stack
   5655955e2035 [media] dvb-usb: don't use stack for firmware load
   b86699b34fa2 mm: Tighten x86 /dev/mem with zeroing reads
   d5b2bb5bd980 rtc: tegra: Implement clock handling
   ac2ac7ec1681 x86/xen: Fix APIC id mismatch warning on Intel
   a831c1987779 platform/x86: acer-wmi: setup accelerometer when machine has appropriate notify event
   84170de6d3e2 nbd: fix 64-bit division
   c429ae72cf29 nbd: use loff_t for blocksize and nbd_set_size args
   1b141a09624f drm/nouveau/disp/mcp7x: disable dptmds workaround
   76b43ba43287 mm: memcontrol: use special workqueue for creating per-memcg caches
   72728f399c48 ext4: fix inode checksum calculation problem if i_extra_size is small
   33046ab810d1 [media] dvb-usb-v2: avoid use-after-free
   9ec073c459f4 ath9k: fix NULL pointer dereference
   fcbe53258784 crypto: ahash - Fix EINPROGRESS notification callback
   137b0eb0f463 crypto: algif_aead - Fix bogus request dereference in completion function
   1ff725fc2f3a ftrace: Fix function pid filter on instances
   de250a35cfc4 zram: do not use copy_page with non-page aligned address
   6285713e76c7 char: lack of bool string made CONFIG_DEVPORT always on
   d201330068bb ftrace: Fix removing of second function probe
   1c89c5b0ae04 irqchip/irq-imx-gpcv2: Fix spinlock initialization
   0f7c92a68fee pwm: rockchip: State of PWM clock should synchronize with PWM enabled state
   3618cee7ddb0 can: ifi: use correct register to read rx status
   e9561d080af6 libnvdimm: fix reconfig_mutex, mmap_sem, and jbd2_handle lockdep splat
   f65e33661a10 xen, fbfront: fix connecting to backend
   f582e5052686 target: Avoid mappedlun symlink creation during lun shutdown
   be322b49b2c8 scsi: sd: Fix capacity calculation with 32-bit sector_t
   c5958346d28c scsi: qla2xxx: Add fix to read correct register value for ISP82xx.
   303fe475c738 scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable
   86efd3fc929b scsi: sr: Sanity check returned mode data
   edadf1178d73 iscsi-target: Drop work-around for legacy GlobalSAN initiator
   1f501b60dde5 iscsi-target: Fix TMR reference leak during session shutdown
   2cb216efc35f efi/fb: Avoid reconfiguration of BAR that covers the framebuffer
   57765d387d5f efi/libstub: Skip GOP with PIXEL_BLT_ONLY format
   d90cac84a86b ACPI / scan: Set the visited flag for all enumerated devices
   5abbbaefcd3e x86/vdso: Plug race between mapping and ELF header setup
   920f423183ee x86/vdso: Ensure vdso32_enabled gets set to valid values only
   f4426d1f0c68 x86, pmem: fix broken __copy_user_nocache cache-bypass assumptions
   0624cecc272a x86/signals: Fix lower/upper bound reporting in compat siginfo
   9dcf17398d35 perf/x86: Avoid exposing wrong/stale data in intel_pmu_lbr_read_32()
   774eb28fa29d Input: xpad - add support for Razer Wildcat gamepad
   da3214318021 CIFS: store results of cifs_reopen_file to avoid infinite wait
   4c8f2f3e96f7 drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one
   fe2c5a1cab29 drm/nouveau/mpeg: mthd returns true on success now
   4f0d2ae5a754 zsmalloc: expand class bit
   14826db7e76f thp: fix MADV_DONTNEED vs clear soft dirty race
   307ea67867f7 thp: fix MADV_DONTNEED vs. MADV_FREE race
   84fcd4c616b3 tcmu: Skip Data-Out blocks before gathering Data-In buffer for BIDI case
   50a18a2c13e7 tcmu: Fix wrongly calculating of the base_command_size
   04129b9eac53 tcmu: Fix possible overwrite of t_data_sg's last iov[]
   1a96c4236345 cgroup, kthread: close race window where new kthreads can be migrated to non-root cgroups
   5af2034c5fa7 dma-buf: add support for compat ioctl
   47dc33b02d9f net/mlx4_core: Fix when to save some qp context flags for dynamic VST to VGT transitions
   ca1cf7fa5e89 net/mlx4_core: Fix racy CQ (Completion Queue) free
   c5d6272b48da net/mlx4_en: Fix bad WQE issue
   0cbe1ba52ac8 usb: hub: Wait for connection to be reestablished after port reset
   7e3909e459be blk-mq: Avoid memory reclaim when remapping queues
   e53675310932 net/packet: fix overflow in check for priv area size
   9f81b537bdcd crypto: caam - fix invalid dereference in caam_rsa_init_tfm()
   685e2f71d3d7 crypto: caam - fix RNG deinstantiation error checking
   4b8d172d131a MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK
   06f41eff1758 MIPS: Switch to the irq_stack in interrupts
   c48b1c1a49a2 MIPS: Only change $28 to thread_info if coming from user mode
   43862dab7d91 MIPS: Stack unwinding while on IRQ stack
   7f8386a79663 MIPS: Introduce irq_stack
   0f13c368b848 mtd: bcm47xxpart: fix parsing first block after aligned TRX
   009b4b307221 rt2x00: Fix incorrect usage of CONFIG_RT2X00_LIB_USB
   f436af7dd007 rt2x00usb: do not anchor rx and tx urb's
   ee88a8be30c3 rt2x00usb: fix anchor initialization
   ff61181a39f4 i2c: bcm2835: Fix hang for writing messages larger than 16 bytes
   eb4750b18bbf orangefs: fix buffer size mis-match between kernel space and user space.
   72b953eed0ad drm/i915: Stop using RP_DOWN_EI on Baytrail
   1701d71fc709 drm/i915: Avoid tweaking evaluation thresholds on Baytrail v3
   a8a385efec43 drm/i915: Nuke debug messages from the pipe update critical section
   d6e319631aec drm/i915/gen9: Increase PCODE request timeout to 50ms
   440e2c3517e5 usb-storage: Add ignore-residue quirk for Initio INIC-3619
   dd3716075af6 x86/reboot/quirks: Add ASUS EeeBook X205TA/W reboot quirk
   99219a2e9f79 x86/reboot/quirks: Add ASUS EeeBook X205TA reboot quirk
   4c3ef6907d0d platform/x86: asus-wmi: Detect quirk_no_rfkill from the DSDT
   95315644bbf7 platform/x86: asus-wmi: Set specified XUSB2PR value for X550LB
   b590aade4894 watchdog: s3c2410: Fix infinite interrupt in soft mode
   6fdc067c889b PCI: Add ACS quirk for Qualcomm QDF2400 and QDF2432
   2141fdc4e698 PCI: Sort the list of devices with D3 delay quirk by ID
   0ccdd4e7d8fe mmc: sdhci-of-esdhc: remove default broken-cd for ARM
   eb6e770ac347 PCI: Disable MSI for HiSilicon Hip06/Hip07 Root Ports
   1b87711b21ed PCI: Add Broadcom Northstar2 PAXC quirk for device class and MPSS
   59b53425ef16 ARM: smccc: Update HVC comment to describe new quirk parameter
   8d0029108932 drm/msm/adreno: move function declarations to header file
   d327e7b178fe firmware: qcom: scm: Fix interrupted SCM calls
   71ea9cad84ef arm: kernel: Add SMC structure parameter
   ebb1ca9607ad ASoC: sun4i-i2s: Add quirks to handle a31 compatible
   72f6e982940a ACPI: save NVS memory for Lenovo G50-45
   e362b1d5bfe9 ASoC: Intel: cht_bsw_rt5645: add Baytrail MCLK support
   535fcee36f5b ASoC: Intel: cht_bsw_rt5645: harden ACPI device detection
   b1ed3fbd993c ASoC: Intel: Baytrail: add quirk for Lenovo Thinkpad 10
   eee473322818 ASoC: codecs: rt5670: add quirk for Lenovo Thinkpad 10
   beca997c156f ASoC: rt5670: Add missing 10EC5072 ACPI ID
   1c8321c341da ACPI / button: Change default behavior to lid_init_state=open
   2b02ab5f7391 sata: ahci-da850: implement a workaround for the softreset quirk
   11f02d8d7fe6 PCI: Add ACS quirk for Intel Union Point
   9acd4d7d243a ARM: dts: STiH407-family: set snps,dis_u3_susphy_quirk
   61df7a67273c drm/mga: remove device_is_agp callback
   0a834595f470 usb: dwc3: host: pass quirk-broken-port-ped property for known broken revisions
   d0f8f71e4164 usb: dwc3: Add revision numbers for the USB 3.0 IP
   51ea9fa290a8 usb: host: xhci-plat: enable BROKEN_PED quirk if platform requested
   65e185bbe4d0 usb: xhci: add quirk flag for broken PED bits
   12757d3bd930 ARM: davinci: PM: support da8xx DT platforms
   cbb4822bc2c5 Input: gpio_keys - add support for GPIO descriptors
   36a721bb8fac serial: 8250_omap: Add OMAP_DMA_TX_KICK quirk for AM437x
   5fc8dd1fcaf5 usb: chipidea: msm: Rely on core to override AHBBURST
   9a07b4bc1627 scsi: ufs: issue link starup 2 times if device isn't active
   1afa312a5792 scsi: ufs: introduce a new ufshcd_statea UFSHCD_STATE_EH_SCHEDULED
   10c3c4d5694e drm/i915: actually drive the BDW reserved IDs
   b1451c6b586c drm/i915: more .is_mobile cleanups for BDW
   3afb3167148c drm/i915: fix INTEL_BDW_IDS definition
   955982e63676 drm/i915: Remove .is_mobile field from platform struct
   bc30de19926a drm/edid: constify edid quirk list
   4942997e5413 HID: usbhid: Add quirk for Mayflash/Dragonrise DolphinBar.
   07a85162b9b8 HID: usbhid: Add quirk for the Futaba TOSD-5711BB VFD
   62dce069c3e7 nvme: simplify stripe quirk
   38bbd1f16854 platform/x86: acer-wmi: Only supports AMW0_GUID1 on acer family
   2135d9cd273b ALSA: usb-audio: Add native DSD support for TEAC 501/503 DAC
   1fc78f3d70c3 PCI: Expand "VPD access disabled" quirk message
   508e2ef86c69 ALSA: usb-audio: add implicit fb quirk for Axe-Fx II
   0c79032c962a scsi: ufs: add quirk to increase host PA_SaveConfigTime
   a3cc3396dc8f PCI: thunder-pem: Factor out resource lookup
   6f35e25c8609 arm64: PCI: Add local struct device pointers
   d529876b02ee arm64: PCI: Manage controller-specific data on per-controller basis
   30c5d2cf21f2 x86/intel_idle: Add CPU model 0x4a (Atom Z34xx series)
   fade24327d61 svcauth_gss: Close connection when dropping an incoming message
   cc8fc2110982 scsi: ufs: ensure that host pa_tactivate is higher than device
   ae98a7756e77 mmc: sdhci-msm: Enable few quirks
   b1a90b94df54 HID: multitouch: do not retrieve all reports for all devices
   3d6c18b57d87 HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
   76cc100d5055 HID: microsoft: Add Surface 4 type cover pro 4 (JP)
   56974903bdfc HID: sensor-hub: add quirk for Microchip MM7150
   3aa2d02479fb HID: sensor-hub add quirk for Microsoft Surface 3
   dad6aeb660e1 scsi: ufs: introduce UFSHCD_QUIRK_PRDT_BYTE_GRAN quirk
   e1ce839b3c12 scsi: ufs: Enable no vccq quirk for skhynix device
   61ebc76124e1 clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend
   7d0017bedd43 net/mlx4_core: Use device ID defines
   5f376717da59 HID: i2c-hid: add a simple quirk to fix device defects
   b50df0349088 HID: usbhid: Add quirks for Mayflash/Dragonrise GameCube and PS3 adapters
   377bf00a97dd clk: lpc32xx: add a quirk for PWM and MS clock dividers
   28b80486dd11 random: use chacha20 for get_random_int/long
   5c14ae6c7827 mm/mempolicy.c: fix error handling in set_mempolicy and mbind.
   c47efb0b87cf Documentation: stable-kernel-rules: fix stable-tag format
   fa71007c6e60 MIPS: c-r4k: Fix Loongson-3's vcache/scache waysize calculation
   d28f0f2ce69a MIPS: Flush wrong invalid FTLB entry for huge page
   2d39761a305e MIPS: Add MIPS_CPU_FTLB for Loongson-3A R2
   f4546c48295c MIPS: Check TLB before handle_ri_rdhwr() for Loongson-3
   0f0cb6322f50 MIPS: Lantiq: fix missing xbar kernel panic
   01b1e6e66f38 MIPS: End spinlocks with .insn
   aa476702873f MIPS: ralink: Fix typos in rt3883 pinctrl
   003987fb012a MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels
   3788f4d19762 s390/uaccess: get_user() should zero on failure (again)
   a18a3a40ad5d s390/decompressor: fix initrd corruption caused by bss clear
   cf251fc84ece nios2: reserve boot memory for device tree
   c9c6823c8113 dm raid: fix NULL pointer dereference for raid1 without bitmap
   c51b530047c4 powerpc/crypto/crc32c-vpmsum: Fix missing preempt_disable()
   38494d50d37a powerpc: Don't try to fix up misaligned load-with-reservation instructions
   e00fe427b686 powerpc/64: Fix flush_(d|i)cache_range() called from modules
   7fd934338c40 powerpc/kernel: Use kprobe blacklist for asm functions
   c2517a0fb5c0 powerpc/mm: Add missing global TLB invalidate if cxl is active
   d29bfd4a2a5c powerpc: Disable HFSCR[TM] if TM is not supported
   9413b2816e7d metag/usercopy: Add missing fixups
   60e688fa135c metag/usercopy: Fix src fixup in from user rapf loops
   3bd77f9b75ff metag/usercopy: Set flags before ADDZ
   78ba0a0bc796 metag/usercopy: Zero rest of buffer from copy_from_user
   23fe537faf0a metag/usercopy: Add early abort to copy_to_user
   f93708a2faf5 metag/usercopy: Fix alignment error checking
   8a27f50ba14b metag/usercopy: Drop unused macros
   d3226caf07b4 brcmfmac: use local iftype avoiding use-after-free of virtual interface
   b4b6d1cb7013 ring-buffer: Fix return value check in test_ringbuffer()
   d06668b5c696 xfs: Honor FALLOC_FL_KEEP_SIZE when punching ends of files
   f135506f5ce4 dm verity fec: fix bufio leaks
   d10b19745ca0 dm verity fec: limit error correction recursion
   9536055f1ec5 ptrace: fix PTRACE_LISTEN race corrupting task->state
   bf895e98cfcb mm/page_alloc.c: fix print order in show_free_areas()
   93fb8a316b99 Reset TreeId to zero on SMB2 TREE_CONNECT
   00a743bf7f88 cfg80211: check rdev resume callback only for registered wiphy
   75479ff29b44 arm64: mm: unaligned access by user-land should be received as SIGBUS
   4e28a700651d iio: bmg160: reset chip when probing
   89d631362aab kvm: arm/arm64: Fix locking for kvm_free_stage2_pgd
   d52401c31a5f arm/arm64: KVM: Take mmap_sem in kvm_arch_prepare_memory_region
   73ba7e664274 arm/arm64: KVM: Take mmap_sem in stage2_unmap_vm
   6f5c6ce2d9e9 staging: android: ashmem: lseek failed due to no FMODE_LSEEK.
   a9edcc5125e7 sysfs: be careful of error returns from ops->show()
   f9b7f08dea27 drm/vmwgfx: fix integer overflow in vmw_surface_define_ioctl()
   b2e8f39a707a drm/vmwgfx: Remove getparam error message
   a339fb1acddf drm/ttm, drm/vmwgfx: Relax permission checking when opening surfaces
   7394c14ce409 drm/vmwgfx: avoid calling vzalloc with a 0 size in vmw_get_cap_3d_ioctl()
   2ba060df6cd2 drm/vmwgfx: NULL pointer dereference in vmw_surface_define_ioctl()
   f752c3934126 drm/vmwgfx: Type-check lookups of fence objects

(From OE-Core rev: 49dea7745d3f8e182566cb6bdf79e7b03560a699)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
Jose Lamego
b8d413eed6 python-3.3-multilib.patch: Fixes getpath on multilib configurations
When using multilib configurations either on arm/arm64 and x86/x86-64
python3 failed to execute due to a failure when looking for its
platform independent and dependent libraries.

This patch fixes this issue by assigning lib_python to the appropriate
macro.

[YOCTO #10812]

(From OE-Core rev: 8ef5c0511e51b82eaa45865df42ecbb2deeb7350)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Jose Lamego <jose.a.lamego@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
George McCollister
2cfc095148 zlib: Fix CVE-2016-9843
Add backported patch to fix CVE-2016-9843 which was fixed in zlib 1.2.9

https://nvd.nist.gov/vuln/detail/CVE-2016-9843

(From OE-Core rev: 32db742922b6e4127d65abf42905a07eca6a2255)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
George McCollister
ee4506739f zlib: Fix CVE-2016-9842
Add backported patch to fix CVE-2016-9842 which was fixed in zlib 1.2.9

https://nvd.nist.gov/vuln/detail/CVE-2016-9842

(From OE-Core rev: 715645a1be700e132a31aa9c40da1e66dd427ae8)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
George McCollister
ed3802b67f zlib: Fix CVE-2016-9841
Add backported patch to fix CVE-2016-9841 which was fixed in zlib 1.2.9

https://nvd.nist.gov/vuln/detail/CVE-2016-9841

(From OE-Core rev: aa650d4f5eb2b671e76d7c4da3ef080e26eed543)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:56 +00:00
George McCollister
c3450174c8 zlib: Fix CVE-2016-9840
Add backported patch to fix CVE-2016-9840 which was fixed in zlib 1.2.9

https://nvd.nist.gov/vuln/detail/CVE-2016-9840

(From OE-Core rev: c34064cceeb56806ed8ddf3aff73a3971378066c)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Jan Kiszka
7e357238ef tcf-agent: Fix daemon termination
The upstream init script uses SIGUSR2 to terminate that daemon because
SIGTERM is ignored. As the killproc function does not support specifying
a signal, switch to start-stop-daemon. Drop the retry loop because
SIGUSR2 is lethal for agent.

(From OE-Core rev: 1e6235de0a3f6302cee37332f03b1ba403c789d1)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Martin Kelly
3961ab82dd tcf-agent: kill with USR2 in systemd stop
tcf-agent ignores SIGTERM, so upstream uses USR2 instead. This issue was noticed
by Jan Kiszka and Brian Avery around the same time:

https://patchwork.openembedded.org/patch/139546/
https://patchwork.openembedded.org/patch/139560/

However, these patches fixed only the init scripts, not the systemd service
file. This patch fixes the systemd file.

(From OE-Core rev: f3c9d850af1c8dab9d46ddb136d84710e7f73fa2)

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Ross Burton
51d3a57bc8 opkg: fix conffile errors in 'opkg status' calls
If a conffile has been deleted (common when building a debugfs) the status
command will throw errors instead of handling that situation.  Stop the code
being executed in the first place if it wasn't asked for, and handle errors
gracefully.

[ YOCTO #10761 ]

(From OE-Core rev: c32bca840d262ebc5ac93b06d0bce79729a178b1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
André Draszik
c51ac0b5c3 coreutils_6.9: fix musl compilation
As per the patch

(From OE-Core rev: a0cb33b3285de03ae901e474da255efc88811c2d)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Acked-by: Sylvain Lemieux <slemieux@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>

Cherry-pick from meta-gplv2:

  http://git.yoctoproject.org/cgit/cgit.cgi/meta-gplv2/commit/?id=e42ded0ee35d0aab0de8fa090eda9f1c08bcbb4c

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Richard Purdie
169aff63bf coreutils_6.9: Disable broken man pages
These are generated from --help output of the host tools which is clearly
incorrect, particularly given the older nature of this recipe. Simply
disable them entirely.

(From OE-Core rev: a70dc7d38764e1835ed947599b7fcbe3cc71d5b1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Cherry-pick from meta-gplv2:

  http://git.yoctoproject.org/cgit/cgit.cgi/meta-gplv2/commit/?id=46349e1a8734fb94a04bf7c234c01fa175333238

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Andre McCurdy
230407cab0 gmp_4.2.1: prevent calls to mpn_add_nc() if HAVE_NATIVE_mpn_sub_nc is false
When building for aarch64 (ie relying only on generic C code rather
than asm) libgmp.so contains undefined references to __gmpn_add_nc
and __gmpn_sub_nc which causes attempts to link with -lgmp to fail:

 | .../usr/lib/libgmp.so: undefined reference to `__gmpn_sub_nc'
 | .../usr/lib/libgmp.so: undefined reference to `__gmpn_add_nc'

Solution based on a historical patch posted to the gmp mailing list:

  https://gmplib.org/list-archives/gmp-discuss/2006-May/002344.html

Cherry-pick from meta-gplv2:

  http://git.yoctoproject.org/cgit/cgit.cgi/meta-gplv2/commit/?id=d8668018d5d795be2297f878fd871a27edf532bf

(From OE-Core rev: 93af40ae113e9b505a9739ca2688360f12015fb7)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Andre McCurdy
61d7b4aa03 libevdev: add libcheck dependency
The libevdev configure script contains an unconditional check for
libcheck. If libcheck is found, libevdev unit tests will be built.

Without a dependency, the presence of libcheck in sysroot is non
deterministic (in morty and earlier) and builds can fail if libcheck
is available during do_configure but not during do_compile.

(In pyro and later, the libcheck dependency is not required to make
libevdev builds deterministic due to recipe specific sysroots).

(From OE-Core rev: 9dc52a9959b05c9fa548f1991366f29ae873a793)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Rajkumar Veer
eb70e899c4 ruby: Security fix for CVE-2017-14064
Ruby through 2.2.7, 2.3.x through 2.3.4, and 2.4.x through 2.4.1

(From OE-Core rev: 8d53b03e8fa1bc20c0d77d6cd7869bd7f7325987)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Rajkumar Veer
ecd6e7d101 ruby: Security fix for CVE-2017-14033
affects ruby before 2.2.8, 2.3.x before 2.3.5, and 2.4.x through 2.4.1

(From OE-Core rev: 6033983453ff7b39d9d0d0a64353611128e26fae)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Thiruvadi Rajaraman
32c81fb55d ruby: Security fix for CVE-2017-9229
affects ruby < 2.4.1

(From OE-Core rev: a636bf8cb5063f349b2af6594b131af6852b3076)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Thiruvadi Rajaraman
7039d1ad32 ruby: Secruity fix for CVE-2017-9226
affects ruby < 2.4.1

(From OE-Core rev: 0c1eec0c6a789e1e9dbfcc66c3fb8c7d1d8b4e99)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Thiruvadi Rajaraman
7f7e00483a ruby: Security fix for CVE-2017-9228
affects ruby < 2.4.1

(From OE-Core rev: cdfb60a7b573c034868ef27d8eb2c667f2a7ad1d)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Thiruvadi Rajaraman
5899c6b77c ruby: Security fix for CVE-2017-9227
affects ruby < 2.4.1

(From OE-Core rev: d83f18936a0eb470e8faf7adbd7c580c23fa3370)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Thiruvadi Rajaraman
cab5a620ac ruby: Security fix for CVE-2016-7798
affectes ruby < 2.3.1

(From OE-Core rev: 6af2319008dc16c61092f71ff227c285aac51288)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Rajkumar Veer
fe8a56109b curl: Security fix for CVE-2017-1000101
Affected versions: curl 7.34.0 to and including 7.54.1
Not affected versions: curl < 7.34.0 and >= 7.55.0

(From OE-Core rev: 3cd67ae472cf163a592aac6ca783e451068fca0c)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Rajkumar Veer
dc96e5ae3f curl: Security fix for CVE-2017-1000100
Affected versions: libcurl 7.15.0 to and including 7.54.1
Not affected versions: libcurl < 7.15.0 and >= 7.55.0

(From OE-Core rev: 2ad0d34313b30f3f18d2f15879294fab310aa874)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Thiruvadi Rajaraman
6131edc2c9 curl: Security fix for CVE-2016-9586
Affected versions: libcurl 7.1 to and including 7.51.0
Not affected versions: libcurl >= 7.52.0

(From OE-Core rev: 559ccc284987846c5b266cc2bc5ecd91c1c155f9)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:55 +00:00
Thiruvadi Rajaraman
c4339c0e74 curl: Security fix for CVE-2016-8624
Affected versions: curl 7.1 to and including 7.50.3
Not affected versions: curl >= 7.51.0

(From OE-Core rev: 26e464767ab53cb78e4ede10c77fe12907a7daad)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Thiruvadi Rajaraman
5affd0af1f curl: Security fix for CVE-2016-8617
Affected versions: curl 7.1 to and including 7.50.3
Not affected versions: curl >= 7.51.0

(From OE-Core rev: 3b73976716ee71a8040221f22c5fbda79512a958)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Thiruvadi Rajaraman
b0827cbb4b curl: Security fix for CVE-2016-8623
Affected versions: curl 7.10.7 to and including 7.50.3
Not affected versions: curl < 7.10.7 and curl >= 7.51.0

(From OE-Core rev: 2da99dc9f7f3d8373cc3108c18300723ad4a243a)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Thiruvadi Rajaraman
d8353bdb23 curl: Security fix for CVE-2016-8621
Affected versions: curl 7.12.2 to and including 7.50.3
Not affected versions: curl < 7.12.2 and curl >= 7.51.0

(From OE-Core rev: d664a1372c3322093038fc8443026e3499e977ec)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Thiruvadi Rajaraman
00c963cfa3 curl: Security fix for CVE-2016-8620
Affected versions: curl 7.34.0 to and including 7.50.3
Not affected versions: curl < 7.34.0 and curl >= 7.51.0

(From OE-Core rev: daeb0f5369f7c9ff470c9db3ba6ae42ac5abea2c)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Thiruvadi Rajaraman
5d93f6b23b curl: Security fix for CVE-2016-8619
Affected versions: curl 7.3 to and including 7.50.3
Not affected versions: curl < 7.3 and curl >= 7.51.0

(From OE-Core rev: 3b97fc78d9cfee6586f3d55f04f20f72fd1af8dd)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Thiruvadi Rajaraman
b29b1bc1d7 curl: Security fix for CVE-2016-8618
Affected versions: curl 7.1 to and including 7.50.3
Not affected versions: curl >= 7.51.0

(From OE-Core rev: 1fc1c9a11eee2f5ba727b18300a92949b166b035)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Thiruvadi Rajaraman
c8ebaaaf8d curl: Security fix for CVE-2016-8615
Affected versions: curl 7.1 to and including 7.50.3
Not affected versions: curl >= 7.51.0

(From OE-Core rev: b754be84206b454789fbd6d444d00a4e422cb3e9)

Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Rajkumar Veer
a5cbc746fa tiff: Security fix for CVE-2017-7593
(From OE-Core rev: ff3904dec584daf627c267bf639d69aca13a1227)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Rajkumar Veer
c505c12a07 tiff: Security fix for CVE-2017-7602
(From OE-Core rev: 12325a8ebb5cab1837a6f6092eaa623a1a784eb6)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Rajkumar Veer
9e658d2462 tiff: Security fix for CVE-2017-7601
(From OE-Core rev: ade8551d6a6810e87e83af72ea217aeca55c65c4)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Rajkumar Veer
e963d34b7f tiff: Security fix for CVE-2017-7598
(From OE-Core rev: 7e367796d4bf97e299ee966b120f924de0f2bb04)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Rajkumar Veer
3c0fab47bc tiff: Security fix for CVE-2017-7596
(From OE-Core rev: 94daee02cad9930d4ada648fd4bfdb63510643c0)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Rajkumar Veer
dc293a78fc tiff: Security fix for CVE-2017-7595
(From OE-Core rev: 6536bfecb13b06765fdf6cb6fd70ce64f9077b8e)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:54 +00:00
Rajkumar Veer
f8db77f490 tiff: Security fix for CVE-2017-7594
(From OE-Core rev: 7bdb52d06a46ad659fc85db1992f9c6ab2fcf065)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
8192fe8abe tiff: Security fix for CVE-2017-7592
(From OE-Core rev: 75e953388fa1973cdbd0897894a3e5398de16a10)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
de7d5146bc tiff: Security fix for CVE-2016-10270
(From OE-Core rev: eeb7197d85435ec73be8b77accc0feea7e1536bb)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
dcb2fc9d7c tiff: Security fix for CVE-2016-10269
(From OE-Core rev: 46504a224a9f33f1f8752bbcd51a285d19920524)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
7b108a757b tiff: Security fix CVE-2016-10267
(From OE-Core rev: 87aebc2b02131d2fce0621faf399916c4789c293)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
1ca6c2afe8 tiff: Security fix CVE-2016-10266
(From OE-Core rev: 3a604aa5cb0d35a9df10a5b958eb4a871de76c26)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
60d8855b3e tiff: Security fix CVE-2016-10268
(From OE-Core rev: 24b62c84102116e6531babc68d8d2fb33e3f2d5c)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
776791238d tiff: Secruity fix CVE-2016-10093
(From OE-Core rev: 6e39b24d003fb4e702097a01142fcfe2861593dd)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Rajkumar Veer
bef8d0ed39 tiff: Security fix for CVE-2016-10271
(From OE-Core rev: 8fb9a143e93de5a2de4b7d5fe2712c29d7ca4263)

Signed-off-by: Rajkumar Veer <rveer@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Yi Zhao
9b6e00b7d7 tiff: Security fixes
Fix CVE-2017-9147, CVE-2017-9936, CVE-2017-10668, CVE-2017-11335

References:
https://nvd.nist.gov/vuln/detail/CVE-2017-9147
https://nvd.nist.gov/vuln/detail/CVE-2017-9936
https://nvd.nist.gov/vuln/detail/CVE-2017-10668
https://nvd.nist.gov/vuln/detail/CVE-2017-11335

Patches from:
CVE-2017-9147:
4d4fa0b68a
CVE-2017-9936:
fe8d716595
CVE-2017-10688:
6173a57d39
CVE-2017-11355:
69bfeec247

(From OE-Core rev: 5c89539edb17d01ffe82a1b2e7d092816003ecf3)

(From OE-Core rev: eaf72d105bed54e332e2e5c0c5c0a0087ecd91dd)

(From OE-Core rev: dc7573cd330d1fc2e4bd50c1ba171906e1d5d5c0)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

minor fixes to get to apply

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Li Zhou
b35a4b34dd libtiff: Security Advisory - libtiff - CVE-2017-5225
Libtiff is vulnerable to a heap buffer overflow in the tools/tiffcp
resulting in DoS or code execution via a crafted BitsPerSample value.

Porting patch from <https://github.com/vadz/libtiff/commit/
5c080298d59efa53264d7248bbe3a04660db6ef7> to solve CVE-2017-5225.

(From OE-Core rev: 434990304bdfb70441b399ff8998dbe3fe1b1e1f)

(From OE-Core rev: d26ea3b9b698fcb059aaa34c2408e3b95ca4f31d)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Joshua Lock
0d44dbdaa8 ruby: fix build of ruby-native with gcc7
Marsalling is broken when ruby-2.2.x is built with gcc7, backport the change
fix  in Ruby SVN r57410 to apply to ruby 2.2.5:

https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=57410

Fixes [YOCTO #12271]

(From OE-Core rev: b9de98cdc816904583970369848181c2c79f1dc5)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-21 14:43:53 +00:00
Scott Rifenbark
1b231d7b06 documentation: Updated Doc set to 2.2.3
Poky.ent - variables changed
<manual>.xml - Updated manual revision table
mega-manual.sed - updated 2.2.2 to 2.2.3

(From yocto-docs rev: 4566d401f58f4532b71747c8fe8a486d1091a371)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-12 06:51:03 +00:00
Andre Rosa
6da3e0a0ab bitbake: Replace deprecated git branch parameter "--set-upstream"
Since 2017-08-17 (git version 2.14.1.473.g3ec7d702a) using deprecated
git branch parameter "--set-upstream" causes a fetcher error. Replace
it by "--set-upstream-to".

https://git.kernel.org/pub/scm/git/git.git/commit/?id=52668846ea2d41ffbd87cda7cb8e492dea9f2c4d
says, it's deprecated since 2012-08-30 so hopefully all still supported
host distributions have new enough git to support "--set-upstream-to".

ERROR: PACKAGE do_unpack: Fetcher failure: ...;
git -c core.fsyncobjectfiles=0 branch --set-upstream master origin/master failed with exit code 128, output:
fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.

ERROR: PACKAGE do_unpack: Function failed: base_do_unpack

(Bitbake rev: 991b533f1d61042a7b3edd1fbf3dea0bf9991606)

Signed-off-by: Andre Rosa <andre.rosa@lge.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-11-07 13:38:57 +00:00
Ross Burton
1d92cb1a20 wpa_supplicant: fix WPA2 key replay security bug
WPA2 is vulnerable to replay attacks which result in unauthenticated users
having access to the network.

* CVE-2017-13077: reinstallation of the pairwise key in the Four-way handshake

* CVE-2017-13078: reinstallation of the group key in the Four-way handshake

* CVE-2017-13079: reinstallation of the integrity group key in the Four-way
handshake

* CVE-2017-13080: reinstallation of the group key in the Group Key handshake

* CVE-2017-13081: reinstallation of the integrity group key in the Group Key
handshake

* CVE-2017-13082: accepting a retransmitted Fast BSS Transition Reassociation
Request and reinstalling the pairwise key while processing it

* CVE-2017-13086: reinstallation of the Tunneled Direct-Link Setup (TDLS)
PeerKey (TPK) key in the TDLS handshake

* CVE-2017-13087: reinstallation of the group key (GTK) when processing a
Wireless Network Management (WNM) Sleep Mode Response frame

* CVE-2017-13088: reinstallation of the integrity group key (IGTK) when
processing a Wireless Network Management (WNM) Sleep Mode Response frame

Backport patches from upstream to resolve these CVEs.

(From OE-Core rev: c79b479ab4b129007c6679bb0bdd8e2ec7ecb6ad)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-16 23:47:06 +01:00
Armin Kuster
577c91d706 linux-yotoc/4.1: update to 4.1.43 plus CVE-2017-1000251
(From meta-yocto rev: 95560bdc6414069ad2679f366fbf3a9946815d72)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:32:38 +01:00
Maxin B. John
21daf5cdc3 hostap-utils: use w1.fi for SRC_URI
epitest.fi is down and hostap-utils source is now available in
w1.fi. So, move SRC_URI to https://w1.fi

Since hostap-utils is only meant for old Intersil Prism2/2.5/3 wifi cards,
this recipe will be removed from oe-core in future (most likely to
meta-handheld)

[YOCTO #12051]

(From OE-Core rev: 541b14c58132e8460a762617889bd5e3d736c1a4)

(From OE-Core rev: 0bc03289b775fefcb7f03e5463c79e4f96cd0b12)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:32:38 +01:00
Armin Kuster
46a8c07a84 linux-yotoc/4.8: update to 4.8.25 plus CVE-2017-1000251
(From meta-yocto rev: 3a7bbdd637481afd6da47a4084c2dc7cac5836f4)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:30:53 +01:00
Armin Kuster
640b9c6080 linux-yotoc/4.4: update to 4.4.87 plus CVE-2017-1000251
(From meta-yocto rev: d642307afcc35f1ba01af5e5c3acd0848c93090b)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:30:53 +01:00
Ross Burton
49ace39866 diffstat: use HTTP mirror for SRC_URI
The Invisible Mirror FTP service is currently down, and FTP is horrible, so
switch to the HTTP mirror.

(From OE-Core rev: f31461f8ea11e82dbe14454a1149d9ec2120404d)

(From OE-Core rev: 4839f039036f3d72f9ef114a37500f9b498101df)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:30:53 +01:00
Alexander Kanavin
9be3cc6eaa v86d: take tarball from debian
Gentoo is removing the package due to dead upstream;
Debian might carry it for a while longer.

(From OE-Core rev: 5026730a2f0701ebad4ddf57990b1ae3b484ae72)

(From OE-Core rev: ac16b6d3a734de2e2ea3e491d23817774a3e57f6)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:30:53 +01:00
Armin Kuster
09c7d32f2d libpng: lsb version 1.2.56 url fix
The mirrors are not working so remove them. Simplify the SRC_URI as the archive in only in the older-releases dir.

(From OE-Core rev: 889cc3404255e9ba920909e90fbf3ab846a5d97a)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:40 +01:00
Ross Burton
068c1a2c22 libpng: use SourceForge mirror
The Gentoo mirror also deletes old versions when they're not used, so revert
back to the canonical SourceForge site, adding /older-releases/ to MIRRORS to
handle new releases moving the version we want.

Original idea by Maxin B. John <maxin.john@intel.com>.

(From OE-Core rev: 791a3493c88c9c249f21f6d893b2061e1d8a0af6)

(From OE-Core rev: 16af873638830477a435574f1fedc643af2e2661)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Hand applied to work with morty version

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:40 +01:00
Leonardo Sandoval
6ba57ee8b8 sign_rpm.bbclass: force rpm serial signing
Newer versions of gpg (at least 2.1.5 and 2.2.1) have issues when signing occurs in parallel
so (unfortunately) the signing must be done serially. Once the upstream problem is fixed,
this patch must be reverted, otherwise we loose all the intrinsic parallelism from
bitbake.

[YOCTO #12022]

(From OE-Core rev: 3aced3783b808449cd50f12684c061151861a1a5)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Leonardo Sandoval
913b20f799 selftest/cases/signing: ignore removal errors when cleaning temporary gpg directory
The high-level method tempfile.TemporaryDirectory give us no way to
ignore erros on removal thus use tempfile.mkdtemp instead. Ignoring possible issues
on removal is neccesary because it contains gpg sockets that are automatically removed
by the system once the process terminates, otherwise the following log is observed:

  ..
  ..
  File "/usr/lib/python3.5/shutil.py", line 436, in _rmtree_safe_fd
    os.unlink(name, dir_fd=topfd)
  FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.browser'

[YOCTO #11821]

(From OE-Core rev: e7f139c5d97a3871215c88c5bfc07ecf4e8fd7f3)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Armin Kuster
a0e04be746 lunux-yocto/4.8: update to 4.8.25 plus bluetooth: CVE-2017-1000251
(From OE-Core rev: fdb9c64f225eaf94c9087dfac52ed6a7779b0744)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Armin Kuster
ec31268aea linux-yocto/4.4: update to 4.4.87 plus bluetooth: CVE-2017-1000251
(From OE-Core rev: aadd6461cfd2d296df79efc253b7edbbe80f40f0)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Armin Kuster
0582ea3d8e linux-yocto/4.1: update to 4.1.43 plus bluetooth CVE-2017-1000251
(From OE-Core rev: 2653a523a936a4055fe06418cbe258d82de3e718)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Bruce Ashfield
08e0475d89 linux-yocto/4.1: fix gcc7 compilation and v4.1.39
Porting the mainline commit, to fix gcc7 builds:

  474c90156c [give up on gcc ilog2() constant optimizations]

We also integrate the 4.1.39 -stable update to pick up additional
fixes.

(From OE-Core rev: 774e0d3f429d383c55e9f54ab095f13694e1d8e6)

(From OE-Core rev: 7c816700d6f49c0e8fec142912738f36a7b1eb8c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit f0effea8716faae749a7d15003647d68fa0cabf7)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Nicolas Dechesne
a731546182 kernel.bbclass: fix KERNEL_IMAGETYPE(S) for Image.gz
KERNEL_IMAGETYPES lists all the kernel images that we want to build. in
cb17b6c2a7 (kernel.bbclass: support kernel image type of vmlinux.gz), some logic
was added to support vmlinux.gz which is not a target built by kernel
makefiles (only vmlinux). It is clear that the goal of this logic is only to
support vmlinux.gz and not others compressed format (such as Image.gz) which are
valid target for kernel makefiles.

For Image.gz we should rely on the kernel makefiles and not do the compression
in kernel class.

This patch updates the logic used to filter out non supported kernel target from
KERNEL_IMAGETYPES, and make vmlinux.gz a 'special case', instead of *.gz. If
more special cases are needed in the future, we could add them in a similar way.

This patch should be a no-op for anyone using vmlinux or vmlinux.gz, and on top
of that it is fixing the build for Image.gz which was not working until now.

(From OE-Core rev: 241cc3083f873743ac3551237acc62e55abbbf05)

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cfc0c897656fe67e81a6a5dcd936dff785529f41)
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Ross Burton
064ddc1652 bluez5: fix out-of-bounds access in SDP server (CVE-2017-1000250)
All versions of the SDP server in BlueZ 5.46 and earlier are vulnerable to an
information disclosure vulnerability which allows remote attackers to obtain
sensitive information from the bluetoothd process memory. This vulnerability
lies in the processing of SDP search attribute requests.

(From OE-Core rev: 8878d599cbc48b700f393d94657fe39db06fd533)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 17:27:39 +01:00
Richard Purdie
493b1c9aea bitbake: toaster/highlight.pack.js: Fix corrupted file
The newly added file in the last commit was corrupted, fix it.

(Bitbake rev: 7c9370f7fafc98e4c836255e72ff8acff1138997)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 11:07:16 +01:00
David Reyna
cb44402f97 bitbake: toaster: Remove prettify
Remove "prettify.js" and "prettify.css" due to license issues with Apache2.
Replace with "highlight.pack.js" with its BSD3 License.

[YOCTO #12206]

(Bitbake rev: 5732046a48779be5f42616ec08b32ae53b33b230)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Brian Avery <brian.avery@intel.com>
Signed-off-by: David Reyna <david.reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-10 09:42:09 +01:00
libertad
e2fcc721c2 devtool.py: update testcase Ids in morty
eSDK testcases Ids were modified on testopia, hence there needs to be a change in the devtool script.

[YOCTO #11603]

(From OE-Core rev: b835e9bf9da6ebc8fd5728b4587470e9a57d5966)

Signed-off-by: libertad <libertad.cruz@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-25 22:21:45 +01:00
Gerson Fernando Budke
4b1974d57c image.bbclass: Sorted ctypes to avoid basehash error
When selected multiple subimages a similar error could happend:
  Variable do_image_cpio[subimages] value changed \
    from 'cpio.gz.u-boot cpio.gz' to 'cpio.gz cpio.gz.u-boot'
To avoid this, 'ctypes' should be sorted at 'gen_conversion_cmds'.

This garantee that 'CONVERSION_CMD_xxx' are always written in tha same
order and consequently 'do_image_cpio' have the same hash.

(From OE-Core rev: 271f1a5f65b8685a1e3645026876251122ef3974)

(From OE-Core rev: 7401ef4d816030bd6844e2e1f1910ac86cdcbe70)

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-22 17:53:30 +01:00
Martin Jansa
dc51e92b00 glibc-locale: add runtime dependency on glibc
* the libc.so.6 dependency is detected always:
  $ grep FILERDEPENDS BUILD-*/pkgdata/qemux86/runtime/localedef
  BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef
  BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6
  BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef
  BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6

* but in some builds the glibc dependency isn't built soon enough:
  $ diff -uNr BUILD-*/pkgdata/qemux86/runtime/localedef
  --- BUILD-bad/pkgdata/qemux86/runtime/localedef 2017-09-02 21:17:50.000000000 +0000
  +++ BUILD-ok/pkgdata/qemux86/runtime/localedef  2017-09-11 10:15:49.954381592 +0000
  @@ -6,6 +6,7 @@
   LICENSE: GPLv2 & LGPLv2.1
   DESCRIPTION_localedef: glibc: compile locale definition files
   SUMMARY: Locale data from glibc
  +RDEPENDS_localedef: glibc (>= 2.26)
   SECTION: base
   PKG_localedef: localedef
   FILES_localedef: /usr/bin/localedef
  and the build fails with QA issues:
  http://errors.yoctoproject.org/Errors/Details/155529/

  ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.0), but no providers found in RDEPENDS_localedef? [file-rdeps]
  ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found in RDEPENDS_localedef? [file-rdeps]
  ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.3), but no providers found in RDEPENDS_localedef? [file-rdeps]
  ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.2), but no providers found in RDEPENDS_localedef? [file-rdeps]
  ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.1), but no providers found in RDEPENDS_localedef? [file-rdeps]
  ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6, but no providers found in RDEPENDS_localedef? [file-rdeps]
  ERROR: QA run found fatal errors. Please consider fixing them.

* reproducible with Yocto 2.2 Morty as well, with slightly different
  error message:
  ERROR: glibc-locale-2.24-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_localedef? [file-rdeps]

* cherry-picked from master 2d2b4d7383c93174fe8eeb72440e81345df71295

(From OE-Core rev: 6c6a06bb806ecd496bb1c3ad723f074ccb454076)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-13 22:13:05 +01:00
Jussi Kukkonen
a94a0c6402 neard: Fix parallel build issue
This only started showing up now for some reason but it does seem like
a legitimate bug in Makefile.am.

(From OE-Core rev: f43290f6e302dbacf5581d1fe1c6c991dd387779)

(From OE-Core rev: 56eae27b3a7bd938d6959e5b671fc48ea2ab80c7)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 17:15:55 +01:00
Richard Purdie
a17d574f09 oeqa/selftest: Drop http sstate sharing
Using httpServer from python for sharing sstate is known to be buggy, it can't
cope with the number/type of requests coming from bitbake and quietly fails
to share files.

This causes intermittent build failures which are hard to debug. We can
use a file:// url for the sstate mirror instead, removing the need for
the http server.

The sdk-update test is simply dropped since the SDK is never published
to this location and hence it would never have any update. Its equiavalent
to pointing at an empty web server. There is a better eSDK update test in
testsdk so rather than improve this one, lets drop it and concentrate on
the one there.

(From OE-Core rev: 7606f05e48ad2e31650e3a56bfcd04b4fbfad1e3)

(From OE-Core rev: 840a317e8a5518dbd1a025381441e13e906519ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 17:15:55 +01:00
Mariano Lopez
ce4016c070 selftest/eSDK.py: Cleanup when there is an error in setUpClass
Lately autobuilders are experiencing hangs with selftest,
it seems it is cause if an error happens in setUpClass
method of oeSDKExtSelfTest class because HTTP server
keeps running in background.

This patch will ensure tearDownClass will be run if there
is an error in setUpClass.

(From OE-Core rev: eb1383949f76c6eb36f86c051057f761a71016a3)

(From OE-Core rev: 5dc68a378d9f4ec2c313ac395e91225a02e5b2c7)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 17:15:55 +01:00
Francisco Pedraza
4ff1c8ddba oeqa/selftest: Adds test case for sdk-update eSDK
1. Test case adds perl recipe before build eSDK.
2. After this added recipe, the script verifies the update:

    ${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.sh
    oe-publish-sdk [esdk] [path-to-http]
    CORE_IMAGE_EXTRA_INSTALL = "perl"
    bitbake -c populate-sdk-ext [some-image]
    devtool sdk-update

This should fix [YOCTO #9369]

(From OE-Core rev: 21bd406bf89e9ceafe1a807877406be817cacca6)

(From OE-Core rev: 7824ca273e7e4b25d4efe5461c0402833f535d06)

Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 17:15:55 +01:00
Chen Qi
ffaf0ea565 selftest/eSDK.py: fix sstate dir not found error
Fix the error below when SSTATE_DIR is not "${BUILDDIR}/sstate-cache".

  FileNotFoundError: [Errno 2] No such file or directory: '/xxx/../sstate-cache'

(From OE-Core rev: 785f0343d04c1684363b5289a3012cf7e1caa95f)

(From OE-Core rev: 9d04fe3a0ce7eb418cd48438e1699825904e2dfb)

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>
2017-09-11 17:15:55 +01:00
Richard Purdie
60402978fe uninative: Update to 1.7 uninative release
This updates to a newer glibc and updates patchelf to include a bugfix
to work with gold.

(From OE-Core rev: a2ab288bd002ebb6e64d46e941fb122e1157ff49)

(From OE-Core rev: 32d172c25072251d6cc7fdd40929d76b5f1f5059)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 16:54:37 +01:00
Joshua Lock
666c8a87b2 yocto-uninative: Update to the 1.6 release
This release includes fixes for Windows/Mingw support.

(From OE-Core rev: b5f471b74b2da533abfad2601b221fa806fcf3b2)

(From OE-Core rev: 267e10420cac19ac3c1194d32993c3407bdc90f6)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 16:54:37 +01:00
Richard Purdie
f764659f54 yocto-uninative: Update to the 1.5 release
This upgrades to a version of patchelf which works on newer distros
and doesn't inflate binaries in crazy ways.

(From OE-Core rev: b857ec92564ee3f23adf88d2675d920aff13e141)

(From OE-Core rev: 1496ae0ab32315537649dea7e5a22a16fae0a528)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 16:54:37 +01:00
Richard Purdie
f8dd325b85 python3-native: Avoid use of getentropy/getrandom
getentropy/random() is only available in glibc 2.25+ and uninative may relocate
binaries onto systems that don't have this function. For now, force the code to
the older codepaths until we can come up with a better solution for this kind of
issue.

(From OE-Core rev: 92bda0024d85ae78345665cc2f9646c9881ed61b)

(From OE-Core rev: 2dc6ee0c520442418fa14cf3fe12b059209e9ab7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 16:54:37 +01:00
Richard Purdie
d47a5f1a15 python-numpy: Fix issues with recent glibc versions
Fix issues building on recent glibc versions (for python*-numpy-native).

(From OE-Core rev: 08a46b2477c1ea0e76695b51b59dc1bb46b1b521)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 16:53:39 +01:00
Richard Purdie
17597d2213 qemu: Backport a patch for recent glibc versions
This fixes compile failures of qemu-native with new versions of glibc. Patch
is taken from upstream.

(From OE-Core rev: b1b7a46f0febe7ac17ec46ecdf88b4120a7d75c4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 16:53:39 +01:00
Leonardo Sandoval
38613fdacf recipes-kernel: Skip kernel version check on kernel templates
Currently, SRCREV is set to AUTOREV, causing mismatch between PV and the kernel
version shown in the makefile (see below to see the bitbake log). The solution
is to comment the lines which defaults SRCREV to AUTOREV, leaving the previous
comment to replace the SRCREVs for real ones once kernel changes are done.

    ERROR: linux-yocto-4.8.12+gitAUTOINC+4fb6f24600_d4148a2064-r0.1
    do_kernel_version_sanity_check: Package Version (4.8.12+gitAUTOINC
    +4fb6f24600_d4148a2064) does not match of kernel being built (4.8.21).
    Please update the PV variable to match the kernel source.
    ERROR: linux-yocto-4.8.12+gitAUTOINC+4fb6f24600_d4148a2064-r0.1
    do_kernel_version_sanity_check: Function failed:
    do_kernel_version_sanity_check (log file is located
    at ../tmp/work/myqemu-poky-linux/linux-yocto/4.8.12+gitAUTOINC+4fb6f24600_d4148a2064-r0.1/temp/log.do_kernel_version_sanity_check.17509)

[YOCTO #11064]

(From meta-yocto rev: 51a42001c39d1b7c8170cc84904fa915295f1358)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez at linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-04 17:38:09 +01:00
Sona Sarmadi
767caa9cf3 connman: Fix for CVE-2017-12865
dnsproxy: Fix crash on malformed DNS response
If the response query string is malformed, we might access memory
pass the end of "name" variable in parse_response().

[YOCTO #11959]

(From OE-Core rev: fb3e30e45eea2042fdb0b667cbc2c79ae3f5a1a9)

(From OE-Core rev: 55a5a609e7c25fa3e62e1975a33a9cc10448165c)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>

Conflicts:
	meta/recipes-connectivity/connman/connman_1.33.bb
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-04 17:38:09 +01:00
Dmitry Rozhkov
0255195de4 scripts/runqemu: avoid overridden user input for bootparams
Currently runqemu hardcodes the "ip=" kernel boot parameter
when configuring QEMU to use tap or slirp networking. This makes
the guest system to have a network interface pre-configured
by kernel and causes systemd to fail renaming the interface
to whatever pleases it:

  Feb 21 10:10:20 intel-corei7-64 systemd-udevd[201]: Error changing
      net interface name 'eth0' to 'enp0s3': Device or resource busy,

Always append user input for kernel boot params after the ones
added by the script. This way user input has priority over runqemu's
default params.

(From OE-Core rev: 3f68b5c8d24b52aed5bb3ed970dd8f779b65b1b3)

(From OE-Core rev: 6050b4ac146722d6714589225ad58ccc26c9ca32)

Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-04 17:38:09 +01:00
Mike Crowe
2a70e84643 kernel, license, sstate, rootfs.py: Remove deploy directory README
It isn't clear that the README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
file in the deploy directory warrants the complexity it brings elsewhere.
Let's just remove it entirely.

In particular, if two do_image_complete tasks run in parallel they risk
both trying to put their image into ${DEPLOY_DIR_IMAGE} at the same time.
Both will contain a README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
file. In theory this should be safe because "cp -alf" will just cause one
to overwrite the other. Unfortunately, coreutils cp also has a race[1]
which means that if one copy creates the file at just the wrong point the
other will fail with:

 cp: cannot create hard link ‘..../tmp-glibc/deploy/images/pantera/README_-_DO_NOT_DELETE_FILES_IN_THIS_D.txt’ to
+‘..../tmp-glibc/work/rage_against-oe-linux-gnueabi/my-own-image/1.0-r0/deploy-my-own-image-complete/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt’: File exists

[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25680

(From OE-Core rev: 71e9e88847d7000781642ea6187ebd8f40dfdcfe)

(From OE-Core rev: 20c39fdbb25c1b1867709c5bfb3ae2baef249be9)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 23:43:50 +01:00
Gan Yau Wai
5224bf7c72 insane.bbclass: fix override handling in RDEPENDS QA
The package_qa_check_rdepends() in insane.bbclass has
incorrectly replace its localdata OVERRIDES value with
the package name. Fixing it by appending the package name
to the existing OVERRIDES value. This resolves RDEPENDS QA
error when setting PACKAGECONFIG using a pn- override at
local.conf.

Cherry picked from master 60d28dd72daee235150ab6605cbf953f1ea691df
and modified to work with older bitbake where 2nd parameter in
localdata.getVar was mandatory.

[YOCTO #11374]

(From OE-Core rev: 15fabf4d6507d2a3f9b98ad56e822eba35950662)

Signed-off-by: Gan Yau Wai <yau.wai.gan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Martin Jansa
1d063ba492 icecc.bbclass: prevent nativesdk builds depending on target specific KERNEL_CC
* without this we cause nativesdk-linux-libc-headers to depend
  on target specific KERNEL_CC (through icecc_get_tool ->
  icecc_is_kernel -> KERNEL_CC -> HOST_CC_KERNEL_ARCH ->
  TARGET_CC_KERNEL_ARCH -> TUNE_FEATURES(thumb) as shown by
  bitbake-diffsigs:

  OE qemux86@ ~/build/oe-core $ ls /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemu*/*sdk*/*/*do_configure.sigdata*
  /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemuarm/x86_64-nativesdk-oesdk-linux/nativesdk-linux-libc-headers/4.10-r0.do_configure.sigdata.3a9a423878d56524e0ee8e42eba1804f
  /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemux86/x86_64-nativesdk-oesdk-linux/nativesdk-linux-libc-headers/4.10-r0.do_configure.sigdata.401071dbaa88903ece37d35a47965ff2

  OE qemux86@ ~/build/oe-core $ bitbake-diffsigs /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemu*/*sdk*/*/*do_configure.sigdata*
  basehash changed from 39774238b66763c598153132e87a2c1a to aa2d66e770bf533e312536eb0a401c4c
  Variable TARGET_CC_KERNEL_ARCH value changed from '${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork-marm', '', d)} TUNE_FEATURES{thumb} = Set' to ''

(From OE-Core rev: 6aa5dcc472e6be971a4cef06aab5c1c125367eca)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Martin Jansa
895229c183 sstate-sysroot-cruft: Add /etc/ld.so.conf to whitelist
* it reports at least 2 issues in every build (this file in
  native and target sysroot) add it to whitelist

(From OE-Core rev: f15f98c2da473a2597e5178058e4855b5d5ac5ec)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Martin Jansa
dac0411384 test-dependencies.sh: Strip also '\.bb: .*' before adding failed recipe to list of failed
* format of bitbake tasks changed in:
  2c88afb   taskdata/runqueue: Rewrite without use of ID indirection

-ERROR: Task 4 (/OE/build/oe-core/openembedded-core/meta/recipes-devtools/rpm/sftp.bb, do_fetch) failed with exit code '1'
+ERROR: Task /OE/build/oe-core/openembedded-core/meta/recipes-devtools/rpm/sftp.bb:do_fetch (/OE/build/oe-core/openembedded-core/meta/recipes-devtools/rpm/sftp.bb:do_fetch) failed with exit code '1'

  so strip not only '\.bb, .*' used before, but also '\.bb:.*' to drop
  the task name to get recipe name.

* for more details see:
  http://lists.openembedded.org/pipermail/openembedded-core/2016-June/123132.html

* without this change you can see test-dependencies.sh trying to rebuild packages
  like:
  Building recipe: fbprogress (6/21)
  Building recipe: fbprogress.bb:do (7/21)
  where the later of course doesn't exist as a recipe

(From OE-Core rev: 1cea8997f7ce2d6a137d3648b4942a27e2c6e62e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Tom Rini
cd79140864 image: Fix "metadata is not deterministic" when chaining 2+ CONVERSION_CMDs
When we have more than one CONVERSION_CMD being used, for example
ext4.gz.sha256sum we will see errors about "metadata is not
deterministic".  This is because we do not have a stable order of
intermediate files that will be removed in the generated shell command.
We fix this by calling sorted() on the set of rm_tmp_images so that we
will have a stable hash again.

Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: a786b59a42e6b49229e2e0633728fd7b268438a9)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 98a2afeb3a53bec7a72a4a9846e1dba636cc6f3d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Tom Rini
341726ffdb image.bbclass: Correct chaining compression support
When chaining of compression/conversion types was added, we had a new
way to handle doing things like "ext4.bz2.sha256sum" or
"ext2.gz.u-boot".  However, because the U-Boot image class isn't
included normally, it wasn't properly converted at the time.  After the
support was added the "clean" argument that the .u-boot code uses no
longer functions.  The fix for this inadvertently broke chaining
compression/conversion.  First, correct the u-boot conversion code.

Fixes: 46bc438374de ("image.bbclass: do exact match for rootfs type")
Cc: Zhenhua Luo <zhenhua.luo@nxp.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: e1546856890a438b5ea3763af3cdc13db8e8f236)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0a7ce0b971a208956cb895ba5a869ec8c5d94703)

excluded lz4 and lzo chnages
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Ross Burton
07e5111828 systemd: refuse to load units with errors (CVE-2017-1000082)
If a unit has a statement such as User=0day where the username exists but is
strictly speaking invalid, the unit will be started as the root user instead.

Backport a patch from upstream to mitigate this by refusing to start units such
as this.

(From OE-Core rev: e56cb926c170f493ee2a9c4c63d0ecbf883d4685)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Ross Burton
7cc37c5390 systemd: remove upstreamed patch
The addition of missing.h to user-utils.c was done in v230 with 0b6b45d5.

(From OE-Core rev: b9e5a58f64e45be37b9532b20bf22d91257abbd6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Joshua Watt
5e4adbd780 archiver: Escape recipe name in regex
The recipe name needs to be escaped when using it in a regular expression so
that and special characters are treated literally

(From OE-Core rev: a26d12e43059fe37c843d3ff9480ead2e796e21f)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:54 +01:00
Maxin John
81f8a454d0 libpng12: move SRC_URI back to SOURCEFORGE_MIRROR
Since GENTOO_MIRROR removes older binaries, move back to
SOURCEFORGE_MIRROR. Also provide a MIRROR to "older-releases"
directory.

[YOCTO #11556]

(From OE-Core rev: 2340d0d244ea8eb3568d6ce06dd751bedf93eb1e)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Nikolay Merinov
0f33bfad25 systemd: Disable DefaultDependencies for sysv scripts on rcS runlevel
systemd-sysv-generator translate sysv services on rcS runlevel to
services that starts before sysinit.target. This behavour conflict
with default dependency on same tartget.

String that define "DefaultDependency=no" was lost from patch for
sysv generator during porting patches to systemd 229 in commit
64ab17b707.

Current commit returns changes required for services that work on
rcS runlevel.

(From OE-Core rev: 5c0a87c94ab086514039f2f8d0e9b06daa2179a7)

Signed-off-by: Nikolay Merinov <n.merinov@inango-systems.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Andre McCurdy
e45e0dbcca lsof: update SRC_URI
Upstream lsof releases are hosted on an ftp server which times out
download attempts from hosts for which it can not perform a DNS
reverse-lookup. See:

  https://people.freebsd.org/~abe/

http://www.mirrorservice.org seems to be the most commonly used
alternative (and using it for SRC_URI allows the custom
UPSTREAM_CHECK_URI to be removed).

(From OE-Core rev: ac31b1b2eaa22d32c5c3e7dcb6fa4f66303123e0)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 4e718242c1554021689a7946add055b22b81ec42)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Andre McCurdy
0ec430131e lsof: minor recipe cleanup
- Add HOMEPAGE
  - Remove ${S} from LIC_FILES_CHKSUM path
  - Use tabs consistently to indent do_configure()
  - Re-order LIC_FILES_CHKSUM definition to follow OE style guide

(From OE-Core rev: 4304ea26b7d4cd9d83b7f3414165e9399b640c73)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 78701c5b873605240226c502de3b940097433596)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Kai Kang
d5b5efafb4 lsof: clear setuid
Having 'lsof' as a +s (setuid) binary could lead to security issues if
a compromise in the binary is found.  It is better that it be -s by
default as a precaution.

(From OE-Core rev: 4ea593aed96129c58e6bc24df71334c2a2bccff0)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 346c65dd6855106069d1861ca965d3121eb084d1)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Armin Kuster
40a97fa9a7 ed: update SRC_URI to OSL
ERROR: ed-1.9-r0 do_checkuri: Function failed: do_checkuri

[Yocto # 11798]

(From OE-Core rev: 643979162fa7f0329ed9d01c4b1c7f142e2cae0e)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Armin Kuster
17fa797283 rng-tools: update SRC_URI to SOURCEFORGE_MIRROR
fixes:
k
ERROR: rng-tools-5-r0 do_checkuri: Function failed: do_checkuri

[Yocto # 11799]

(From OE-Core rev: df65f494bdb480b24d663c8e8f22c70e1ce8a3ea)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Armin Kuster
2d80c47b18 pcre: update SRC_URI to SOURCEFORGE_MIRROR
ERROR: libpcre-8.39-r0 do_checkuri: Function failed: do_checkuri

[Yocto # 11796]

(From OE-Core rev: 3fd12a06fabcdcac0ef40ca71eb694ac988e6cd7)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Catalin Enache
e6955b7d0d glibc: fix pthread_cond_broadcast issue (arm)
pthread_mutex functions such as pthread_cond_wait(), pthread_mutex_unlock() return
errors after PTHREAD_PRIO_INHERIT is enabled

Reference:
https://sourceware.org/bugzilla/show_bug.cgi?id=18463

Upstream patches:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=f0e3925bf3b8df6940c3346db17e42615979d458
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=13cb8f76da9d9420330796f469dbf10643ba5b12
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=23b5cae1af04f2d912910fdaf73cb482265798c1
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=ed19993b5b0d05d62cc883571519a67dae481a14
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=2e4cf778972573221e9b87fd992844ea9b67b9bf
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=abff18c0c6055ca5d1cd46923fd1205c057139a5

This issue is Morty specific (glibc 2.24).
The issue is no longer present in glibc 2.25 (master branch).

(From OE-Core rev: 6dc1f1c3cc871d00ecd59d5aeeef86b7e6965750)

Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Ed Bartosh
5b2a7393f9 wic: fix calculation of partition number
Total number of partitions should be taken into account when calculating
real partition number for msdos partition table. The number can be
different for the 4th partition: it can be 4 if there are 4 partitions in
the table and 5 if there are more than 4 partitions in the table. In the
latter case number 4 is occupied by extended partition.

[YOCTO #11790]

(From OE-Core rev: a1d18c00b8c9ce800a5147eaa71372083b8ae91e)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Armin Kuster
a746a4c171 docbook-utils: update SRC_URI from fedora to osl
WARNING: docbook-utils-native-0.6.14-r3 do_fetch: Failed to fetch URL ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz, attempting MIRRORS if available

(From OE-Core rev: ef47f682034f591c90572c082a753787aa1a8b9c)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Armin Kuster
b8987f1a23 sgml-common: update SRC_URI from fedora to OSL
WARNING: sgml-common-native-0.6.3-r1 do_fetch: Failed to fetch URL ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz, attempting MIRRORS if available

(From OE-Core rev: cdb32a75b935985e5e86184d97b5a05c8f3ff21a)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Armin Kuster
fa4a5024fc glibc: Security fix CVE-2016-6323
arm: mark __startcontext as .cantunwind, GNU

CVE: CVE-2016-6323
(From OE-Core rev: e80d454711f67a9a3a2a43bb7d9ff911c4664a84)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Marek Vasut
4f064564fd automake: Backport perl 5.22 fix
Backport 13f00eb4493c "automake: port to Perl 5.22 and later"
from automake upstream to fix build with perl 5.22 .

(From OE-Core rev: 7fa044e799db651d45e4732e2527acfc2bc7cd47)

(From OE-Core rev: 139d15f4af282eeef0a7f368eef518f400a4471a)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Ross Burton <ross.burton@intel.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Cody P Schafer <dev@codyps.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Maxin B. John
da6dd6f9fb GNU_MIRROR: switch from ftp to https
Based on the same reason behind DEBIAN's switch from ftp:
https://www.debian.org/News/2017/20170425

(From OE-Core rev: ba119d836c0f4b20a39c92fa2e64abb0d5a55ad4)

(From OE-Core rev: 16a43d53533dcc9bb6fca141b2a66cff648df0d2)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Maxin B. John
c35d3a6c5e DEBIAN_MIRROR: switch from ftp to http
All public-facing debian.org FTP services will be shut down on November 1, 2017
The mirrors should just be accessed using HTTP instead.

https://www.debian.org/News/2017/20170425

Fixes [YOCTO #11413]

(From OE-Core rev: c2cdc4d9155d7a3b9cba60fa9cbb448cf64c62bd)

(From OE-Core rev: 04790a0d9ddc072a19701ba449a3aefe51dc3997)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Zhixiong Chi
a5dfa90ea8 bash: CVE-2016-0634
A vulnerability was found in a way bash expands the $HOSTNAME.
Injecting the hostname with malicious code would cause it to run
each time bash expanded \h in the prompt string.

Porting patch from <https://ftp.gnu.org/gnu/bash/bash-4.3-patches/
bash43-047> to solve CVE-2016-0634

CVE: CVE-2016-0634

(From OE-Core rev: 7dd6aa1a4bf6e9fc8a1998cda6ac5397bb5cd5cb)

(From OE-Core rev: a4b37b05140b549960baef49237ce3316e84a041)

(From OE-Core rev: a75c9657f785be3b2d14b10a7044105329c88e8a)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Fan Xin
bd631d76b8 libxslt: Fix CVE-2017-5029
Backport upstream patch to fix CVE-2017-5029.

(From OE-Core rev: 5266e74c990df1cf965d162d9695eb5a698883ae)

(From OE-Core rev: 172f76a1a43921d92a385d6d123dffaf27eb368f)

(From OE-Core rev: 25b87ebfce7216b18e85b6bc5fc7f20bcf4cf31d)

Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Jussi Kukkonen
2c638f46ba libxslt: Add build fix (with ld-is-gold)
Libraries must be linked with "-lm", otherwise gold fails to link
binaries with those libraries.

(From OE-Core rev: 9175164380b50852a21a05d4e81294394c5486f4)

(From OE-Core rev: 3bd47a7db76cead77d0aa2b3b29f8513469dbe60)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Martin Jansa
f85376290f eudev: set LGPL-2.1+ for libudev package
(From OE-Core rev: 56210d562347eafd1433b3fbab64dd023ece421f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Cody P Schafer
72084f7513 elfutils: fix building elfutils-native with GCC7
This is heavily based on the oe-core master commit with the same
subject, but includes a backport of upstream's fix for the fallthrough
warnings rebased to 0.166 (the oe-core patch which targeted 0.168 did
not apply), a rebase of the format-truncation patch, and a backport of
the upstream format-length patch.

Info from OE-Core master patch follows:

	From OE-Core rev: aaf4c4f3d09ac3897205417eb15e19d54e0c0d05
	From: Joshua Lock <joshua.g.lock@intel.com>

	Backport a fix from upstream for a -Wformat-truncation=2 warning
	and implement a simple fix for a -Wimplicit-fallthrough warning.

	Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
	Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

(From OE-Core rev: 3b91be97ae8c36cd6bad86fed992efc9800f4c9e)

Signed-off-by: Cody P Schafer <dev@codyps.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:53 +01:00
Joshua Lock
5f7d84821f gcc-6.2: backport fix of check for empty string in ubsan.c
Building gcc-cross-initial with GCC7 on the host fails due to the
comparison of a pointer to an integer in ubsan_use_new_style_p, which
is forbidden by ISO C++:

ubsan.c:1474:23: error: ISO C++ forbids comparison between pointer and
integer [-fpermissive]
       || xloc.file == '\0' || xloc.file[0] == '\xff'

Backport the fix from upstream GCC to enable the build with GCC 7

(From OE-Core rev: 7a7fcbab0365b9501c737dbc02715be14dda72a3)

(From OE-Core rev: ad685600d52b2e8b6f4cdbf46baa9f14b51565dd)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Cody P Schafer <dev@codyps.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Yuanjie Huang
1188ce3e3f binutils: fix CVE-2017-7210
CVE: CVE-2017-7210
[BZ 21157] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21157

PR binutils/21157: Fix handling of corrupt STABS enum type strings.

(From OE-Core rev: 066a7acc4c19a4ef3428d0a7c695a2b08f45bc14)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Yuanjie Huang
5d6e240db6 binutils: fix CVE-2017-7209 in readelf
CVE: CVE-2017-7209
[BZ 21135] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21135

PR binutils/21135: Fix invalid read of section contents whilst
processing
a corrupt binary.

(From OE-Core rev: fd7a91e2a6db1fb806c57c137f72efcffbf1f26b)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Yuanjie Huang
c7e48934c9 binutils: fix CVE-2017-6969 in readelf
CVE: CVE-2017-6969
[BZ 21156] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21156

PR binutils/21156: Fix illegal memory accesses in readelf when
ing a corrupt binary.
PR binutils/21156: Fix another memory access error in readelf when
parsing a corrupt binary.

(From OE-Core rev: 565d4b9432c898e4483f392a91f4b4aaebb4b184)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Khem Raj
6131129c0a openssl-native: Compile with -fPIC
Fixes
| /usr/bin/ld: libcrypto.a(sha1-x86_64.o): relocation R_X86_64_PC32 against undefined symbol `OPENSSL_ia32cap_P' can not be used when making a shared object; recompile with -fPIC
| /usr/bin/ld: final link failed: Bad value

(From OE-Core rev: 9e6a0da06aa832fbce06326622744b2a5ab9c091)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 0a19e72081771fca8ed94fb2a2a8996fd3dce00c)
Signed-off-by: Mirza Krak <mirza.krak@endian.se>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Paul Eggleton
63eab150b2 packagegroup-core-standalone-sdk-target: add libssp
If you want to be able to use -fstack-protector then you need the
runtime support - you can either write this yourself or use libssp
supplied with GCC. If you're using GCC then it seems likely that you'd
just be using libssp, so include in the SDK by default; however use
RRECOMMENDS just in case it's been disabled or you aren't using GCC.

(From OE-Core rev: 6c990655e35bb3a14d59555662ec5802c9980028)

(From OE-Core rev: 69b5643ec66e1495c9d805736d8765a06f67416c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Daniel Schultz
af43028b3e wic: partition: Run fsck on EXT file systems
Mkfs may create EXT file systems which can only be optimized by fsck
and not by itself, e.g. directory optimization (in Pass 3A).

To prevent those optimizations during runtime, it will be performed after
the creation of an EXT file system.

(From OE-Core rev: b8af7c10637c14b2c226fb7063b736755ee46802)

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Daniel Schultz
e6a1c94eef e2fsprogs: Fix wrong error code after optimization
fsck.ext will return an error code of 1 if a file systems was checked
and successfully repaired. Even when an optimization was performed it
will return this error code.

This patch will change the error code to 0 if only optimizations had
changed the file systems.

The reason for this patch is a question I asked at the ext4 ML:
http://www.spinics.net/lists/linux-ext4/msg55700.html

Backport from git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
    Based on commit bf9f3b6d5b10d19218b4ed904c12b22e36ec57dd

(From OE-Core rev: 34ccb6b66162400c3a3164cbdcca02fc1b42c92b)

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Saul Wold
604b2b2c6c systemtap: Add patch to remove quotes
This fixes the -I include lines that are getting passed to the
kernel macros

[YOCTO #10990]

(From OE-Core rev: b4d2f41a474c111e5fc64cae635d851386d860ba)

(From OE-Core rev: d767d24edb32f2a4303579371df2e526cdbf5c04)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Alexander Kanavin
0d91032b84 systemtap: update to 3.1
Removed patches are in upstream.

Rebase monitor-option.patch and no-msgfmt-check.patch

Add support for python 3 probes
(this necessitates the 0001-Do-not-let-configure-write-a-python-location-into-th.patch
and the Add 0001-Install-python-modules-to-correct-library-dir.patch to
install python modules to correct destination).

Add perl to RDEPENDS to fix a QA warning about one of the installed files.

(From OE-Core rev: e3bccfba499565ea13f154a11dadcab48ef5e0ab)

(From OE-Core rev: 74f390351bdf5b8749cba6e2345ef14d3ff9f077)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Bruce Ashfield
4812871780 linux-yocto/4.8: update to 4.8.24
Integration the -stable updates to 4.8, which comprise the following
commits:

   ae51b3b4efe6 Linux 4.8.24
   accb950219c0 nvme/pci: Disable on removal when disconnected
   995be68699ef padata: avoid race in reordering
   bea2fdcc6d3e blk: improve order of bio handling in generic_make_request()
   26690f5a8bdf mm: workingset: fix premature shadow node shrinking with cgroups
   f52ade55d6e9 MIPS: Lantiq: Fix cascaded IRQ setup
   feae78cdcaef ARM: dts: BCM5301X: Correct GIC_PPI interrupt flags
   e36a1a1a9695 ARM: BCM5301X: Add back handler ignoring external imprecise aborts
   26fbe60844a9 mm, hugetlb: use pte_present() instead of pmd_present() in follow_huge_pmd()
   d15202219abe mm: rmap: fix huge file mmap accounting in the memcg stats
   72f38e33793c x86/mce: Fix copy/paste error in exception table entries
   9e08a6f8e64e x86/mm/KASLR: Exclude EFI region from KASLR VA space randomization
   100aa553e31b x86/mm/64: Enable KASLR for vmemmap memory region
   2e5c45495433 drm/etnaviv: (re-)protect fence allocation with GPU mutex
   7f160b149090 drm/vc4: Allocate the right amount of space for boot-time CRTC state.
   38cdfd6153cf drm/radeon: Override fpfn for all VRAM placements in radeon_evict_flags
   ccd0fc5589ca KVM: kvm_io_bus_unregister_dev() should never fail
   332e2ac55d3b KVM: x86: clear bus pointer when destroyed
   fcbdbe1290d6 serial: mxs-auart: Fix baudrate calculation
   3b7bb3391f62 USB: fix linked-list corruption in rh_call_control()
   5f004babfd46 tty/serial: atmel: fix race condition (TX+DMA)
   4509ea7b4349 ACPI: Do not create a platform_device for IOAPIC/IOxAPIC
   12fddf4d255f ACPI: Fix incompatibility with mcount-based function graph tracing
   8805bbdea121 nfsd: map the ENOKEY to nfserr_perm for avoiding warning
   1fa18f8fad45 mmc: sdhci-of-at91: fix MMC_DDR_52 timing selection
   3a0df02f0387 mmc: sdhci: Disable runtime pm when the sdio_irq is enabled
   d742580939f5 ASoC: Intel: Skylake: fix invalid memory access due to wrong reference of pointer
   726514355250 ASoC: atmel-classd: fix audio clock rate
   0dd77376bd45 ALSA: hda - fix a problem for lineout on a Dell AIO machine
   12788ff3a917 ALSA: seq: Fix race during FIFO resize
   5ccedc21345f PCI: iproc: Save host bridge window resource in struct iproc_pcie
   61b133e83718 scsi: scsi_dh_alua: Ensure that alua_activate() calls the completion function
   ae4a71a0b8b4 scsi: scsi_dh_alua: Check scsi_device_get() return value
   1b82bcc866c3 scsi: libsas: fix ata xfer length
   0b9b5b603f27 scsi: sg: check length passed to SG_NEXT_CMD_LEN
   8b02a4b8e3b3 xfs: Use xfs_icluster_size_fsb() to calculate inode alignment mask
   a8eded7e1484 xfs: tune down agno asserts in the bmap code
   7650b45a6dd8 xfs: Use xfs_icluster_size_fsb() to calculate inode chunk alignment
   e9d4a4b55c86 xfs: don't reserve blocks for right shift transactions
   81f456210999 xfs: split indlen reservations fairly when under reserved
   842c9d864561 xfs: handle indlen shortage on delalloc extent merge
   f90db61ed148 xfs: don't fail xfs_extent_busy allocation
   590e612677e2 xfs: reset b_first_retry_time when clear the retry status of xfs_buf_t
   c493142b3a2c xfs: verify free block header fields
   4dda58920fb9 xfs: check for obviously bad level values in the bmbt root
   0faf06ef8b24 xfs: filter out obviously bad btree pointers
   6974d828ce0c xfs: fail _dir_open when readahead fails
   365ec079aeeb xfs: fix toctou race when locking an inode to access the data map
   06a1dbe68823 xfs: fix eofblocks race with file extending async dio writes
   fc1ff6abfb5d xfs: pull up iolock from xfs_free_eofblocks()
   2de02a1aa708 xen/setup: Don't relocate p2m over existing one
   bd37e332bc35 libceph: force GFP_NOIO for socket allocations
   14d57fe1fcd3 sched/rt: Add a missing rescheduling point
   461aa14a19df metag/ptrace: Reject partial NT_METAG_RPIPE writes
   35d078d3b1f5 metag/ptrace: Provide default TXSTATUS for short NT_PRSTATUS
   9519f4083b0d metag/ptrace: Preserve previous registers for short regset write
   b2d2e181ebe4 sparc/ptrace: Preserve previous registers for short regset write
   0a89a38ebbae mips/ptrace: Preserve previous registers for short regset write
   a303cc3a707b h8300/ptrace: Fix incorrect register transfer count
   576d881764eb c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
   1661ca89ebd1 pinctrl: qcom: Don't clear status bit on irq_unmask
   5c52be1e1c55 virtio_balloon: init 1st buffer in stats vq
   171bd47e04fa KVM: x86: cleanup the page tracking SRCU instance
   37c063abc015 xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder
   f5e8896582a0 xfrm_user: validate XFRM_MSG_NEWAE XFRMA_REPLAY_ESN_VAL replay_window
   ef704417015e xfrm: policy: init locks early
   54b82b92b678 crypto: algif_hash - avoid zero-sized array
   35a836ab3d9b fbcon: Fix vc attr at deinit
   d64422cfc106 drm: reference count event->completion
   5b8d397ea73a drm/bridge: analogix dp: Fix runtime PM state on driver bind
   409d2330bd85 libceph: don't set weight to IN when OSD is destroyed
   cb7f50af5964 Drivers: hv: vmbus: Don't leak channel ids
   7d63e96a483f intel_th: Don't leak module refcount on failure to activate
   bca70ad00096 blk-mq: don't complete un-started request in timeout handler
   7ca7701e2615 cgroup, net_cls: iterate the fds of only the tasks which are being migrated
   c3accccd8ebe cpufreq: Restore policy min/max limits on CPU online
   42ec5a5b3f7a arm64: kaslr: Fix up the kernel image alignment
   b74685fc49ce ARM: at91: pm: cpu_idle: switch DDR to power-down mode
   cba43efed603 Revert "ARM: at91/dt: sama5d2: Use new compatible for ohci node"
   a54b0f345230 xen/acpi: upload PM state from init-domain to Xen
   3700c9549893 crypto: ccp - Assign DMA commands to the channel's CCP
   c05851c95c30 clk: sunxi-ng: mp: Adjust parent rate for pre-dividers
   298b4bcbee9e mmc: sdhci: Do not disable interrupts while waiting for clock
   d3bde483cd4e mmc: sdhci-of-arasan: fix incorrect timeout clock
   1a0c2899c1fc mmc: sdhci-of-at91: Support external regulators
   512b6b14b972 mmc: sdhci: Rename sdhci_set_power() to sdhci_set_power_noreg()
   fcc465466352 powerpc/64s: Fix idle wakeup potential to clobber registers
   e31490f131bd ext4: lock the xattr block before checksuming it
   9515b8a3e59d ext4: mark inode dirty after converting inline directory
   ee78dd996a48 parport: fix attempt to write duplicate procfiles
   7aa1f90f7bc9 iio: hid-sensor-trigger: Change get poll value function order to avoid sensor properties losing after resume from S3
   46ed5a6a0317 iio: sw-device: Fix config group initialization
   4fd6237dcb15 iio: adc: ti_am335x_adc: fix fifo overrun recovery
   10481fe5bcc5 mmc: ushc: fix NULL-deref at probe
   b18275c8ca06 uwb: hwa-rc: fix NULL-deref at probe
   90f875db3d83 uwb: i1480-dfu: fix NULL-deref at probe
   fedb7364f161 USB: usbtmc: fix probe error path
   19ab12977470 USB: usbtmc: add missing endpoint sanity check
   d2f6089a604a usb: hub: Fix crash after failure to read BOS descriptor
   4fe7f56d5936 usb: musb: cppi41: don't check early-TX-interrupt for Isoch transfer
   c314f1d496b3 USB: wusbcore: fix NULL-deref at probe
   67ca7e6fbefe USB: idmouse: fix NULL-deref at probe
   979ce26d7e67 USB: lvtest: fix NULL-deref at probe
   bc5daa8fcb39 USB: uss720: fix NULL-deref at probe
   778e23f6cd77 usb-core: Add LINEAR_FRAME_INTR_BINTERVAL USB quirk
   8d38a9d16950 usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's wBytesPerInterval
   ac5c5689dd1e ACM gadget: fix endianness in notifications
   8e39a4d96fa0 USB: serial: qcserial: add Dell DW5811e
   d3e557a5e277 USB: serial: option: add Quectel UC15, UC20, EC21, and EC25 modems
   0ff11fc75667 ALSA: hda - Adding a group of pin definition to fix headset problem
   73ac94f75f27 ALSA: seq: Fix racy cell insertions during snd_seq_pool_done()
   ed79a62ce3b5 Input: sur40 - validate number of endpoints before using them
   9f4a9350c962 Input: kbtab - validate number of endpoints before using them
   535ecfd9ce37 Input: cm109 - validate number of endpoints before using them
   d4d90cc1939b Input: yealink - validate number of endpoints before using them
   6cd3c938420d Input: hanwang - validate number of endpoints before using them
   114ea08f2b53 Input: ims-pcu - validate number of endpoints before using them
   8e536247967f Input: iforce - validate number of endpoints before using them
   d8e9da7cf4d2 Input: i8042 - add noloop quirk for Dell Embedded Box PC 3000
   d7bd4ff902d4 Input: elan_i2c - add ASUS EeeBook X205TA special touchpad fw
   15cbc365f36f tcp: initialize icsk_ack.lrcvtime at session start time
   8d816936cb47 socket, bpf: fix sk_filter use after free in sk_clone_lock
   599dca4e637a ipv4: provide stronger user input validation in nl_fib_input()
   4dce5676bf12 net: bcmgenet: remove bcmgenet_internal_phy_setup()
   e54a886d9c7e ipv6: make sure to initialize sockc.tsflags before first use
   de7b203e7a07 net/mlx5e: Count LRO packets correctly
   7e3b2755ae57 net/mlx5e: Count GSO packets correctly
   0bb7b7ed9983 net/mlx5: Increase number of max QPs in default profile
   de1454d45e43 net/mlx5: Add missing entries for set/query rate limit commands
   aea1c1b15494 net: vrf: Reset rt6i_idev in local dst after put
   30467a2d6a10 qmi_wwan: add Dell DW5811e
   74a4f76fd1ac net: unix: properly re-increment inflight counter of GC discarded candidates
   b4927d54c638 openvswitch: Add missing case OVS_TUNNEL_KEY_ATTR_PAD
   d98fc268e284 amd-xgbe: Fix jumbo MTU processing on newer hardware
   4ceda29faefa net: properly release sk_frag.page
   42603fb986e2 net: bcmgenet: Do not suspend PHY if Wake-on-LAN is enabled
   40dbeb5b15df net/openvswitch: Set the ipv6 source tunnel key address attribute correctly
   81ecfc287d5a cgroup/pids: remove spurious suspicious RCU usage warning
   b488f503b905 percpu: acquire pcpu_lock when updating pcpu_nr_empty_pop_pages
   1924ae622fd9 gfs2: Avoid alignment hole in struct lm_lockname
   e279f259f3e2 isdn/gigaset: fix NULL-deref at probe
   0907a6cf5831 target: Fix VERIFY_16 handling in sbc_parse_cdb
   6d71fefbf405 scsi: libiscsi: add lock around task lists to fix list corruption regression
   4835fd5ad7aa scsi: lpfc: Add shutdown method for kexec
   93ecb4c0e2cf target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export
   e5660310dac8 powerpc/boot: Fix zImage TOC alignment
   8ce12dd199ac cpufreq: Fix and clean up show_cpuinfo_cur_freq()
   4d5c2d2099a8 perf/core: Fix event inheritance on fork()
   f7b9504c680d perf/core: Fix use-after-free in perf_release()
   848b0d18a847 parisc: Optimize flush_kernel_vmap_range and invalidate_kernel_vmap_range
   fbb1e639d3e1 qla2xxx: Fix request queue corruption.
   60d674590d02 qla2xxx: Fix memory leak for abts processing
   e5e1af16aeae give up on gcc ilog2() constant optimizations
   2401ecb47c7f drm/vc4: Use runtime autosuspend to avoid thrashing V3D power state.
   c495444e18c6 drm/vc4: Fix termination of the initial scan for branch targets.
   97b74d794fa3 Linux 4.8.23
   5d2e054aa127 crypto: powerpc - Fix initialisation of crc32c context
   30eacf198cab locking/rwsem: Fix down_write_killable() for CONFIG_RWSEM_GENERIC_SPINLOCK=y
   6ceef14519cd futex: Add missing error handling to FUTEX_REQUEUE_PI
   0596ef2a1984 futex: Fix potential use-after-free in FUTEX_REQUEUE_PI
   e0421c6f49b0 x86/perf: Fix CR4.PCE propagation to use active_mm instead of mm
   b88efae3588c x86/kasan: Fix boot with KASAN=y and PROFILE_ANNOTATED_BRANCHES=y
   429bf916381e x86/tsc: Fix ART for TSC_KNOWN_FREQ
   5eb6ff068525 drm/vc4: Fix ->clock_select setting for the VEC encoder
   4a3f522f63ab drm/vc4: Fix race between page flip completion event and clean-up
   02c5256b110c clk: bcm2835: Fix ->fixed_divider of pllh_aux
   d5dd232fc11e usb: gadget: udc: atmel: remove memory leak
   e85561f6aca8 serial: 8250_pci: Detach low-level driver during PCI error recovery
   54c73832c576 ACPI / blacklist: Make Dell Latitude 3350 ethernet work
   f92b80712355 ACPI / blacklist: add _REV quirks for Dell Precision 5520 and 3520
   990db74c5c87 slub: move synchronize_sched out of slab_mutex on shrink
   06e966ded31e [media] uvcvideo: uvc_scan_fallback() for webcams with broken chain
   e30814bb2038 s390/zcrypt: Introduce CEX6 toleration
   c73c813f59ed block: allow WRITE_SAME commands with the SG_IO ioctl
   bb64e9763f59 drm/nouveau/disp/nv50-: specify ctrl/user separately when constructing classes
   3c5d63c13311 drm/nouveau/disp/nv50-: split chid into chid.ctrl and chid.user
   49e8233a2726 drm/nouveau/disp/gp102: fix cursor/overlay immediate channel indices
   275ff35915b3 vfio/spapr: Postpone default window creation
   a6cc475b194a vfio/spapr: Add a helper to create default DMA window
   95045ae80bba powerpc/mm/iommu, vfio/spapr: Put pages on VFIO container shutdown
   789e7eac7ee0 vfio/spapr: Reference mm in tce_container
   28a412c87e63 powerpc/iommu: Stop using @current in mm_iommu_xxx
   605c802e3cb9 powerpc/iommu: Pass mm_struct to init/cleanup helpers
   c70e411994d8 vfio/spapr: Postpone allocation of userspace version of TCE table
   89b9c28ca6d7 Drivers: hv: ring_buffer: count on wrap around mappings in get_next_pkt_raw() (v2)
   ea35dd4dc3d5 PCI: Do any VF BAR updates before enabling the BARs
   ddb11bb30cbc PCI: Ignore BAR updates on virtual functions
   bfaf6ec96d7f PCI: Update BARs using property bits appropriate for type
   c09761e3af3f PCI: Don't update VF BARs while VF memory space is enabled
   f49fdb5fb9aa PCI: Decouple IORESOURCE_ROM_ENABLE and PCI_ROM_ADDRESS_ENABLE
   4453d0980e47 PCI: Add comments about ROM BAR updating
   e9026b999d64 PCI: Remove pci_resource_bar() and pci_iov_resource_bar()
   bf5194f0e771 PCI: Separate VF BAR updates from standard BAR updates
   4c25b4da1978 x86/hyperv: Handle unknown NMIs on one CPU when unknown_nmi_panic
   f86de0bf6845 scsi: ibmvscsis: Synchronize cmds at remove time
   03780edbb14b scsi: ibmvscsis: Synchronize cmds at tpg_enable_store time
   6e76f14e8da7 scsi: ibmvscsis: Rearrange functions for future patches
   87e714992008 scsi: ibmvscsis: Clean up properly if target_submit_cmd/tmr fails
   26d9e831807f scsi: ibmvscsis: Return correct partition name/# to client
   017f9415d242 scsi: ibmvscsis: Issues from Dan Carpenter/Smatch
   1a865ae47435 igb: add i211 to i210 PHY workaround
   7af86b0c55e3 igb: Workaround for igb i210 firmware issue
   15fdb8c2a904 xen: do not re-use pirq number cached in pci device msi msg data
   4af906f27c02 dmaengine: iota: ioat_alloc_chan_resources should not perform sleeping allocations.
   7815d4127881 dccp: fix memory leak during tear-down of unsuccessful connection request
   348714c022b1 tun: fix premature POLLOUT notification on tun devices
   a1bc0a9f122e dccp/tcp: fix routing redirect race
   0a787971aa5b bridge: drop netfilter fake rtable unconditionally
   ee1d5c66f7d9 ipv6: avoid write to a possibly cloned skb
   81ed14c04c32 ipv6: make ECMP route replacement less greedy
   0949ba4922e5 mpls: Do not decrement alive counter for unregister events
   76aaba0ce52e mpls: Send route delete notifications when router module is unloaded
   48325fbb1d05 act_connmark: avoid crashing on malformed nlattrs with null parms
   4331398f440e uapi: fix linux/packet_diag.h userspace compilation error
   f5f6f5529468 net/tunnel: set inner protocol in network gro hooks
   2a00f4bf0780 vrf: Fix use-after-free in vrf_xmit
   61e3a5db6e7d dccp: fix use-after-free in dccp_feat_activate_values
   39ff72664911 net: fix socket refcounting in skb_complete_tx_timestamp()
   9d88ea01fe88 net: fix socket refcounting in skb_complete_wifi_ack()
   65f7a3f9b6c0 tcp: fix various issues for sockets morphing to listen state
   5531ae9e101d dccp: Unlock sock before calling sk_free()
   beb7cb3c2a3d ipv6: orphan skbs in reassembly unit
   728edccaedbf net: net_enable_timestamp() can be called from irq contexts
   e9f82ae95dcc net: don't call strlen() on the user buffer in packet_bind_spkt()
   b0c360a043c0 tcp/dccp: block BH for SYN processing
   b64d0db77b52 mlxsw: spectrum_router: Avoid potential packets loss
   8e1715480d7c l2tp: avoid use-after-free caused by l2tp_ip_backlog_recv
   44797e4d24c0 net sched actions: decrement module reference count after table flush.
   9c1294eeb41e ipv4: mask tos for input route
   368d2236b926 vxlan: don't allow overwrite of config src addr
   9ead713bc6ac vti6: return GRE_KEY for vti6
   a305478b6e7d vxlan: correctly validate VXLAN ID against VXLAN_N_VID
   bc68673783c7 net/mlx5e: Fix wrong CQE decompression
   4e8f4987b785 IB/mlx5: Verify that Q counters are supported
   f0d5cfb83dcb ext4: don't BUG when truncating encrypted inodes on the orphan list
   9ac44a73a4c5 [media] rc: raw decoder for keymap protocol is not loaded on register
   56174559c310 dm: flush queued bios when process blocks to avoid deadlock
   875142c6e879 KVM: arm/arm64: Let vcpu thread modify its own active state
   220f66f1f4d8 KVM: s390: Fix guest migration for huge guests resulting in panic
   3dd1f5f0b22c serial: samsung: Continue to work if DMA request fails
   2a7c66c1a7c0 USB: serial: io_ti: fix information leak in completion handler
   71f396d687e9 USB: serial: io_ti: fix NULL-deref in interrupt callback
   d9682fbb1252 USB: iowarrior: fix NULL-deref in write
   e1affee35832 USB: iowarrior: fix NULL-deref at probe
   07c5918e96e7 USB: serial: omninet: fix reference leaks at open
   782317bc4eba USB: serial: safe_serial: fix information leak in completion handler
   15b553818e00 usb: host: xhci-plat: Fix timeout on removal of hot pluggable xhci controllers
   e5df1d8231d8 usb: host: xhci-dbg: HCIVERSION should be a binary number
   a03e4fb73679 usb: gadget: function: f_fs: pass companion descriptor along
   bf600df6aa66 usb: dwc3-omap: Fix missing break in dwc3_omap_set_mailbox()
   40b091328f1c usb: dwc3: gadget: make Set Endpoint Configuration macros safe
   7ab8263169d2 usb: gadget: dummy_hcd: clear usb_gadget region before registration
   0a9e57a61494 PCI: Prevent VPD access for QLogic ISP2722
   0c925288d9e2 powerpc/xics: Work around limitations of OPAL XICS priority handling
   e7ef86271857 powerpc: Emulation support for load/store instructions on LE
   88cb0342bbc9 i2c: add missing of_node_put in i2c_mux_del_adapters
   49817d5f81a0 efi/arm: Fix boot crash with CONFIG_CPUMASK_OFFSTACK=y
   b463b3b26bf5 tracing: Add #undef to fix compile error
   03a9b9c5eb0f cpmac: remove hopeless #warning
   9e7e1616fb69 MIPS: ralink: Remove unused rt*_wdt_reset functions
   774bd1f0f2e0 MIPS: ralink: Cosmetic change to prom_init().
   1ec4e1a6c373 mtd: pmcmsp: use kstrndup instead of kmalloc+strncpy
   e6c4a646d490 MIPS: Update lemote2f_defconfig for CPU_FREQ_STAT change
   b70dce737466 MIPS: ip22: Fix ip28 build for modern gcc
   c5f71770663f MIPS: Update ip27_defconfig for SCSI_DH change
   4baa71bf6ca0 MIPS: ip27: Disable qlge driver in defconfig
   810c65dcf036 crypto: improve gcc optimization flags for serpent and wp512
   4b256e46c8e3 USB: serial: digi_acceleport: fix OOB data sanity check
   b88d9bf6ce41 fat: fix using uninitialized fields of fat_inode/fsinfo_inode
   bd390a837bf2 mm: do not call mem_cgroup_free() from within mem_cgroup_alloc()
   bc83fdbb1b88 thp: fix another corner case of munlock() vs. THPs
   6f3effcbddd2 x86/tlb: Fix tlb flushing when lguest clears PGE
   52f93fd5358e x86, mm: fix gup_pte_range() vs DAX mappings
   ab0eea711de5 libceph: use BUG() instead of BUG_ON(1)
   6dd79e33d04d drm/i915: Fix not finding the VBT when it overlaps with OPREGION_ASLE_EXT
   267b0207162b drm: Cancel drm_fb_helper_dirty_work on unload
   60a94aca40ff drm/i915/gvt: Disable access to stolen memory as a guest
   076bb9ce1a9f drm/atomic: fix an error code in mode_fixup()
   a6d98a3a3c5c drm/imx: imx-tve: Do not set the regulator voltage
   3036e519c3f8 drm/ttm: Make sure BOs being swapped out are cacheable
   8c52d5581851 drm/edid: Add EDID_QUIRK_FORCE_8BPC quirk for Rotel RSX-1058
   b4f89786c979 drm/ast: Fix AST2400 POST failure without BMC FW or VBIOS
   23c1fdaced81 drm/ast: Call open_key before enable_mmio in POST code
   cb624df381a6 drm/ast: Fix test for VGA enabled
   8b6e3ca35b51 drm/amdgpu: add more cases to DCE11 possible crtc mask setup
   77a708d95727 mac80211: use driver-indicated transmitter STA only for data frames
   72aaf6d71167 mac80211: don't handle filtered frames within a BA session
   680c812d7bdc mac80211: don't reorder frames with SN smaller than SSN
   e9d8c725c29b mac80211: flush delayed work when entering suspend
   9a7a9c5c88b2 xtensa: move parse_tag_fdt out of #ifdef CONFIG_BLK_DEV_INITRD
   b389c603b09e pwm: pca9685: Fix period change with same duty cycle
   711e95e9a7d4 nlm: Ensure callback code also checks that the files match
   29f3a5545183 target: Fix NULL dereference during LUN lookup + active I/O shutdown
   f82148e9ffd3 pci/hotplug/pnv-php: Remove WARN_ON() in pnv_php_put_slot()
   1d53d522e4d1 ceph: remove req from unsafe list when unregistering it
   a0e963dbeecc ktest: Fix child exit code processing
   d8e905726d90 memory/atmel-ebi: Fix ns <-> cycles conversions
   aef2ccf1d832 orangefs: Use RCU for destroy_inode
   f0453d44086f fs: Better permission checking for submounts
   eef4fcd21313 IB/srp: Fix race conditions related to task management
   24960d72feeb IB/srp: Avoid that duplicate responses trigger a kernel bug
   f3572a0ce31f IB/SRP: Avoid using IB_MR_TYPE_SG_GAPS
   63129c2502c1 IB/mlx5: Fix out-of-bound access
   f54cae186e6e IB/ipoib: Fix deadlock between rmmod and set_mode
   77563b9714b9 mnt: Tuck mounts under others instead of creating shadow/side mounts.
   521cf3b70359 brcmfmac: fix incorrect event channel deduction
   55730c566d11 cxl: Prevent read/write to AFU config space while AFU not configured
   3c20ea7dd380 net: mvpp2: fix DMA address calculation in mvpp2_txq_inc_put()
   7006fe7139f6 s390: use correct input data address for setup_randomness
   e936795084d3 s390: make setup_randomness work
   bb318913c8ab s390: TASK_SIZE for kernel threads
   64deb4069c4b s390/chsc: Add exception handler for CHSC instruction
   a35d74c9c4a0 s390/kdump: Use "LINUX" ELF note name instead of "CORE"
   b3e8ded18f8e s390/dcssblk: fix device size calculation in dcssblk_direct_access()
   e1b323f8b65e s390/qdio: clear DSCI prior to scanning multiple input queues
   7d9a72f5eb8c Bluetooth: Add another AR3012 04ca:3018 device
   7f422c5aec89 KVM: VMX: use correct vmcs_read/write for guest segment selector/base
   61157eabc44e KVM: s390: Disable dirty log retrieval for UCONTROL guests
   d44d2ea64003 serial: 8250_pci: Add MKS Tenta SCOM-0800 and SCOM-0801 cards
   eaae8c8005c1 tty: n_hdlc: get rid of racy n_hdlc.tbuf

(From OE-Core rev: 78ae0bb02175e601ca99387855a743a37294dee2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 16:50:52 +01:00
Richard Purdie
88ad6d975e bitbake: wget: Fix handling of urls with user/password
URL decoding was improved in the core a while ago and this looks like
a leftover from those times which caused urls needing a user/password to
fail. Use the parameters from the core instead of the broken split
implementation.

[YOCTO #11262]

(Bitbake rev: 32a249cf33f79b579a2cf6224c7d23cdb20d376f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 15:12:43 +01:00
Patrick Ohly
7d5822bf4c bitbake: codeparser.py: support deeply nested tokens
For shell constructs like
   echo hello & wait $!
the process_tokens() method ended up with a situation where "token"
in the "name, value = token" assignment was a list of tuples
and not the expected tuple, causing the assignment to fail.

There were already two for loops (one in _parse_shell(), one in
process_tokens()) which iterated over token lists. Apparently the
actual nesting can also be deeper.

Now there is just one such loop in process_token_list() which calls
itself recursively when it detects that a list entry is another list.

As a side effect (improvement?!) of the loop removal in
_parse_shell(), the local function definitions in process_tokens() get
executed less often.

Fixes: [YOCTO #10668]

(Bitbake rev: 887ea6d25cee5114365dfbf1130603599e13ee80)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-21 22:36:09 +01:00
Ross Burton
2e132efa2f libgcrypt: fix CVE-2017-7526
Fixes CVE-2017-7526, 'flush+reload side-channel attack on RSA secret keys dubbed
"Sliding right into disaster"'.

(From OE-Core rev: e3911133ee9aad7cc3ae89faea80a097f6614fab)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-19 11:30:27 +01:00
Ross Burton
bbe268e060 libgcrypt: fix CVE-2017-9526
In libgcrypt before 1.7.7, an attacker who learns the EdDSA session key (from
side-channel observation during the signing process) can easily recover the
long-term secret key. 1.7.7 makes a cipher/ecc-eddsa.c change to store this
session key in secure memory, to ensure that constant-time point operations are
used in the MPI library.

(From OE-Core rev: 04d7a4adafa09f9f3012c355f4f2f9728cb0b166)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-19 11:30:27 +01:00
Richard Purdie
fd7f2d644a bitbake: siggen: Make calc_taskhash match get_taskhash for file checksums
The code in these two functions is meant to be equivlanet in behaviour
but isn't. Add in code to ensure files that don't exist are handled
consistently by both functions. Users did report being able to generate
tracebacks otherwise.

(Bitbake rev: df69c0257aaa9f4e2f4a20d130b7bc0ce2ca0848)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-27 13:46:44 +01:00
Robert Yang
d4b41223d3 oe/path.py: fix for "Argument list too long"
Issue: LIN9-1648

Fixed when len(TMPDIR) = 410:
$ bitbake core-image-sato-sdk
[snip]
Subprocess output:
/bin/sh: /bin/cp: Argument list too long

ERROR: core-image-sato-sdk-1.0-r0 do_rootfs: Function failed: do_rootfs
[snip]

This is because "copyhardlinktree(src, dst)" does "cp -afl src/* dst",
while src/* is expanded to "src/file1 src/file2, src/file3..." which
causes the "Argument list too long", use ./* as src and change cwd in
subprocess.check_output() to fix the problem.

(From OE-Core rev: a3dc93eb25fba32109edd1db6e8766074fb52e4b)

(From OE-Core rev: befda6ce3fd916ab04c035d1d82ed173759f7f09)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-27 11:28:04 +01:00
Changhyeok Bae
a992a31803 ref-manual: uClibc Replaced by musl from Yocto 2.2
(From yocto-docs rev: e131c26ee1ab268679f7762dbe26760bd859e0e5)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:16:50 +01:00
Richard Purdie
b4cf48ecee package_ipk: Clean up Source entry in ipk packages
There is the potential for sensitive information to leak through the urls
there and removing it brings this into the behavior of the other package
backends since filtering it is likely error prone.

Since ipks don't appear to be generated at all if we don't set this, set
the field to the recipe name used (basename only, no paths). This avoids
information leaking. We may want to drop the field if opkg can allow that
at a future point but the recipe name is a suitable identifier for now.

Reported-by: Andrej Valek <andrej.valek@siemens.com>
(From OE-Core rev: 4c353eeff45f91533f22392f129bc5a477ee5207)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-16 10:21:06 +01:00
Leonardo Sandoval
cf781e2f9b scripts/lib/bsp/kernel.py: force patching when branch is machine branch is re-use
When a branch is re-used, the kernel tools turns off any patch pushing unless
'mark patching' is explicitly set.

[YOCTO #10674]

(From meta-yocto rev: 4f3cd59d76e3d8a43a4460528082c0086bdbba41)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 11:58:46 +01:00
Scott Rifenbark
e707865a6a yocto-project-qs, poky.ent: Fixed pip3 and pexpect package names
Fixes [YOCTO #11578]

The package names "pip3" and "pexpect" do not exist for Ubuntu
and Debian.  They need to be "python3-pip3" and "python3-pexpect".
I changed them in the poky.ent file and did some reformatting so
the install lines appear nice.  I updated the other distributions
as well.

(From yocto-docs rev: 43c92b88c40815d906cfc5fabb3190b0aa4778c7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:19:41 +01:00
Ed Bartosh
47fc2d6139 sstate.bbclass: check if mirror directory is writable
Commit 51edde6537 makes a wrong assumption
that SSTATE_MIRRORS have write permissions.

A mirror is by definition outside of it's user control. In my use case
it happens I does not have permissions to update the access time of the
dereferenced symbolic-link file.

Checked if file is writable before changing its atime.

Thanks to Paulo Neves for the patch.

[YOCTO #11307]

(From OE-Core rev: 112ae104287ad4078a9fa90fb2a42f4c814ef824)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-13 07:33:08 +01:00
Ross Burton
8a96509017 oeqa/selftest: lock down Meson git revision for reliability
The test_recipetool_create_github test fetches HEAD of the repository so
upstream changes can (and do) break the test.  Avoid these problems by passing
the rev= argument in the URL to lock the checkout to the same version that is
fetched in the github_tarball test.

Also pass the commands to runCmd() as a list instead of a string, the semicolon
in the URL needs more quotes if the shell is involved and passing a list
bypasses the shell entirely.

(From OE-Core rev: cbb5961d3db27f81967345a73267920f2623ccac)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:02 +01:00
Richard Purdie
4a48386e91 elfutils: update homepage and upstream souce
In git://sourceware.org/git/elfutils.git:
----------------
commit 1700fd25e6caf26663af2bd994d1d99fab9df59f
Author: Mark Wielaard <mark@klomp.org>
Date:   Sat Dec 24 22:31:41 2016 +0100

    http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/

    fedorahosted used to be our home, but we are now hosted at sourceware.

    Change the elfutils project home to http://elfutils.org/
    Point hosted services (email, release, git, bug tracker and web pages)
    to https://sourceware.org/elfutils/

    Move design notes from README to NOTES.
    Add URLs for home, releases, bugs, git and mailinglist to README.

    Make the --version output of all tools the same by using a common
    print_version function and update the publicly shown copyright holder
    to the elfutils developers.

    Signed-off-by: Mark Wielaard <mark@klomp.org>
------------------

Based on a patch from Hongxu Jia <hongxu.jia@windriver.com>

(From OE-Core rev: 4ee8ad29e0eb3584eb8c6e1ba21a5a18d7a59714)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:02 +01:00
Choong YinThong
3643da7804 libnewt: replace fedorahosted.org SRC_URI with pagure.io source
fedorahosted.org was retired on March 1st, 2017. This is to
update the SRC_URI to point to pagure.io. pagure.io is a
replacement for fedorahosted.

[YOCTO #11226]

(From OE-Core rev: b85905bc8b845c9da7d2a086ea239ec00d5142e3)

(From OE-Core rev: 8ae35a4391bd0313cdc8091140fa8c8648122161)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:02 +01:00
Choong YinThong
61b729a3a8 xmlto: replace fedorahosted.org SRC_URI with pagure.io source
fedorahosted.org was retired on March 1st, 2017. This is to
update the SRC_URI to point to pagure.io. pagure.io is a
replacement for fedorahosted.

[YOCTO #11226]

(From OE-Core rev: 79ae1e98a7c3fd4c732ea4cd0b3099d4e319a111)

(From OE-Core rev: 6785157e7b30ca112ec5c65487a9e7e65b9dd5de)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:02 +01:00
Choong YinThong
f7c6d8da56 libuser: replace fedorahosted.org SRC_URI with pagure.io source
fedorahosted.org was retired on March 1st, 2017. This is to
update the SRC_URI to point to pagure.io. pagure.io is a
replacement for fedorahosted.

[YOCTO #11226]

(From OE-Core rev: bbe3cde5fc2102fd84ba065ed14f2732bcd0d420)

(From OE-Core rev: 34312ac6edf13dc3e3d8f31b2a07df9044a9a8aa)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:01 +01:00
Choong YinThong
a55be63437 liberation-fonts: replace fedorahosted.org SRC_URI with pagure.io source
fedorahosted.org was retired on March 1st, 2017. This is to
update the SRC_URI to point to pagure.io. pagure.io is a
replacement for fedorahosted.

[YOCTO #11226]

(From OE-Core rev: 441ad240db4ce64d854e263e14dc6a1752aed956)

(From OE-Core rev: 516d55d3550d86c7458d20cea1adca7dc30ab66b)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:01 +01:00
Choong YinThong
7ff5544bf3 cronie: replace fedorahosted.org SRC_URI with github.com source
fedorahosted.org was retired on March 1st, 2017. This is to
update the SRC_URI to point to github.com.

[YOCTO #11226]

(From OE-Core rev: b0703175ed650d89870309e4065cda917199ac93)

(From OE-Core rev: a34ca1b1ee4c6e39a7fbc10fc9fc7aebfdbe8abc)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:01 +01:00
Choong YinThong
96bdd99f36 chkconfig: replace fedorahosted.org SRC_URI with github.com source
fedorahosted.org was retired on March 1st, 2017. This is to update
the SRC_URI to point to github.com.

[YOCTO #11226]

(From OE-Core rev: 0fb5427937576fe46d463b9c9953d0bcdc1f256a)

(From OE-Core rev: 5d57ccab9720f6c75cfefdf0cb153007d79beb2e)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:01 +01:00
Choong YinThong
b6a1004c73 selftest/recipetool: replace fedorahosted.org SRC_URI with github.com source
fedorahosted.org was retired on March 1st, 2017. This is to
update the SRC_URI to point to github.com.

[YOCTO #11226]

(From OE-Core rev: 9b3c9193d4a04061e64e43d55782a4d73ee166ad)

(From OE-Core rev: c9c0528d7f298dae4f543ab4006057022abe71e5)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 18:00:01 +01:00
Joshua Lock
21aa71dbaa perf: add perf-feature for systemtap
Based on OE-Core rev: 8aafed5f4757550f2ff688e1b8981e5e8e6e3428 if systemtap
isn't disabled it's possible to race with systemtap headers being present
during autodetection and disappearing during the build:

    tests/sdt.c:14:21: fatal error: sys/sdt.h: No such file or directory
     #include <sys/sdt.h>

(From OE-Core rev: b206497bf2a68b1b009ae5a6b1c5a29df3966443)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-01 13:50:38 +01:00
Richard Purdie
d05941ae45 build-appliance-image: Update to morty head revision
(From OE-Core rev: 8daed12b4327e4c362a7af4ddc38e7a9cea2c939)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-29 00:21:14 +01:00
Chang Rebecca Swee Fun
e92165f5ce cryptodev-linux: update SRC_URI
Gna! project announced that the download site from gna.org HTTP server
will soon be closing down. We have verified that the site is no longer
accessible without network proxy cache. We need to update SRC_URI to
point to new alternative (nwl.cc HTTP server) in order to avoid fetcher
issues in future.

[YOCTO #11575]

(From OE-Core rev: eaf1f56a865f8b71ef3ff4e3108b77fcc690d151)

Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-27 14:52:35 +01:00
Mariano Lopez
48a8c893ad selftest: Avoid sstate corruption by calling cleansstate
Currently selftest doesn't use sstates because some tests
clean sstate cache; using sstates would give a performance
boost instead of building everything from scratch.

With this sstates are not corrupted using different methods
depending on tests:

devtool: These tests needed to delete the cache so SSTATE_DIR
as SSTATE_MIRRORS and set a temporal SSTATE_DIR.

sstatetests: This module already used a temporal SSTATE_DIR, so
just set up the SSTATE_MIRRORS.

Rest: Removed cleansstate, some of them required to force a
certain task, others were just removed or changed for another
task.

[YOCTO #10929]

(From OE-Core rev: 62c61087a10cc3b26fbff32c9e2efd1704a39724)

(From OE-Core rev: 44ca8b1c23e4b2cf470e9be42705e3cca23b7f85)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-27 00:21:04 +01:00
Richard Purdie
078915fbf5 selftest: Disable SSTATE_MIRRORS for sstate signing test
Building ed into an sstate mirror, then leaving it enabled for
oe-selftest -r signing.Signing.test_signing_sstate_archive results in:

NOTE: recipe ed-1.14.1-r0: task do_populate_lic_setscene: Started
WARNING: ed-1.14.1-r0 do_populate_lic_setscene: Failed to fetch URL file://29/sstate:ed::1.14.1:r0::3:290bbc39f3b25cc27028dafce4b5aa48_populate_lic.tgz.sig;downloadfilename=29/sstate:ed::1.14.1:r0::3:290bbc39f3b25cc27028dafce4b5aa48_populate_lic.tgz.sig, attempting MIRRORS if available
ERROR: ed-1.14.1-r0 do_populate_lic_setscene: Fetcher failure: Unable to find file file://29/sstate:ed::1.14.1:r0::3:290bbc39f3b25cc27028dafce4b5aa48_populate_lic.tgz.sig;downloadfilename=29/sstate:ed::1.14.1:r0::3:290bbc39f3b25cc27028dafce4b5aa48_populate_lic.tgz.sig anywhere. The paths that were searched were:
    /media/build1/poky/build/test-sstate
    /media/build1/poky/build/test-sstate
WARNING: ed-1.14.1-r0 do_populate_lic_setscene: Cannot verify signature on sstate package /media/build1/poky/build/test-sstate/29/sstate:ed::1.14.1:r0::3:290bbc39f3b25cc27028dafce4b5aa48_populate_lic.tgz
NOTE: recipe ed-1.14.1-r0: task do_populate_lic_setscene: Succeeded

so we need to disable SSTATE_MIRRORS for this test.

(From OE-Core rev: 2ce9962851fe58c099599679340fd87e90f426ec)

(From OE-Core rev: 9bb708cf31850f5a3e53660ee9ea5a9ba7615e43)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-27 00:15:04 +01:00
Richard Purdie
3e5a09491d build-appliance-image: Update to morty head revision
(From OE-Core rev: ce06f3a0c9859df1f897583659f836234c47d2d7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-25 17:40:57 +01:00
Richard Purdie
8bbf2e6903 poky: Update distro version to 2.2.2
(From meta-yocto rev: 6ef1a11d63f08771668c8d52c7359a35b104e2f1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-25 17:40:46 +01:00
Ross Burton
c2ade72828 oeqa/selftest: remove test_sanity_unsafe_binary_references
This test was attempting to exercise a broken test, for some reason this broke
with patches under review but investigation revealed that the test itself is
broken.  The test has been removed, so there's no need to test it.

(From OE-Core rev: 4f5f552cd6601ba244ef4efc782616bc477e1340)

(From OE-Core rev: 0b9bb6d9ec4e030ab64bac73680df4657cb7d066)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-25 17:38:36 +01:00
Ross Burton
00966fd90d insane: remove broken unsafe-references-in-binaries test
This test aims to detect binaries in /bin which link to libraries in /usr/lib,
for the case where the user has /usr on a separate filesystem to /.

However it doesn't scan both image/ and the sysroot, so if a binary in /bin
links to a library in /usr/lib that was built by the same recipe then it will
error out.

This test isn't enabled by default, and because of this serious bug I suspect
nobody else is enabling it either.  As /usr being on a separate partition to /
is a very rare configuration these days I think we should delete the test: if
someone cares sufficiently they should write a test that actually works.

(From OE-Core rev: a6af5bbf3dad6f0951c67a0aae13ef86a8906893)

(From OE-Core rev: 2f5b5685f75fc63489b628b540fcdd4c7cb27096)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-25 17:38:36 +01:00
Alexander Kanavin
e7f948f28a selftest: do not perform a full build in test_continue
This was fetching and building the toolchain and everything else
against empty download dir and sstate cache, and so was enormously slow.
The test does not need that, it only checks that one fetch task fails and
another succeeds when using bitbake's -k option.

(From OE-Core rev: 6c69b5edc5711d2e5304a931e43eba562a095191)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-25 17:38:36 +01:00
Scott Rifenbark
78890ea227 documentation: Prepared for YP 2.2.2 release of the manuals
Changes include:

 * poky.ent - changing variables for 2.2.2
 * mega-manual.sed - updated "2.2.1" to "2.2.2" for links
 * *.xml - Changed all the manual revision tables to say
   "June 2017" for now.

(From yocto-docs rev: 9f3d983b754398b383b754df74d09fa17911137f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:18:42 +01:00
Catalin Enache
1fb5079557 ghostscript : CVE-2016-10219, CVE-2016-10220, CVE-2017-5951
The intersect function in base/gxfill.c in Artifex Software, Inc. Ghostscript
9.20 allows remote attackers to cause a denial of service (divide-by-zero
error and application crash) via a crafted file.

The gs_makewordimagedevice function in base/gsdevmem.c in Artifex Software, Inc.
Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL
pointer dereference and application crash) via a crafted file that is
mishandled in the PDF Transparency module.

The mem_get_bits_rectangle function in base/gdevmem.c in Artifex Software, Inc.
Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL
pointer dereference and application crash) via a crafted file.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10219
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10220
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5951

Upstream patches:
http://git.ghostscript.com/?p=ghostpdl.git;h=4bef1a1d32e29b68855616020dbff574b9cda08f
http://git.ghostscript.com/?p=ghostpdl.git;h=daf85701dab05f17e924a48a81edc9195b4a04e8
http://git.ghostscript.com/?p=ghostpdl.git;h=bfa6b2ecbe48edc69a7d9d22a12419aed25960b8

(From OE-Core rev: 6679a4d4379f6f18554ed0042546cce94d5d0b19)

(From OE-Core rev: 55fa8b210139509859258c0ee11b3534f10fa509)

Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Catalin Enache
0c5ab30a30 ghostscript: CVE-2017-7207
The mem_get_bits_rectangle function in Artifex Software, Inc.
Ghostscript 9.20 allows remote attackers to cause a denial
of service (NULL pointer dereference) via a crafted PostScript
document.

Reference:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-7207

Upstream patch:
http://git.ghostscript.com/?p=ghostpdl.git;h=309eca4e0a31ea70dcc844812691439312dad091

(From OE-Core rev: 0f22a27c2abd2f2dd9119681f139dd85dcb6479d)

(From OE-Core rev: 3497bb564fa3bb1d6b938630cd660ee77bec5ab7)

Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Catalin Enache
3b12b433c0 libxml2: CVE-2016-9318
libxml2 2.9.4 and earlier, as used in XMLSec 1.2.23 and earlier
and other products, does not offer a flag directly indicating that
the current document may be read but other files may not be opened,
which makes it easier for remote attackers to conduct XML External
Entity (XXE) attacks via a crafted document.

Reference:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9318

Upstream patch:
https://git.gnome.org/browse/libxml2/commit/?id=2304078555896cf1638c628f50326aeef6f0e0d0

(From OE-Core rev: 0dd44c00e3b2fbc3befc3f361624a3a60161d979)

(From OE-Core rev: 53c39f29578a4468e7f64a7403e77c28d951de6a)

Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Yi Zhao
01c4b5499d bind: Security fix CVE-2016-6170
CVE-2016-6170: ISC BIND through 9.9.9-P1, 9.10.x through 9.10.4-P1, and
9.11.x through 9.11.0b1 allows primary DNS servers to cause a denial of
service (secondary DNS server crash) via a large AXFR response, and
possibly allows IXFR servers to cause a denial of service (IXFR client
crash) via a large IXFR response and allows remote authenticated users
to cause a denial of service (primary DNS server crash) via a large
UPDATE message.

External References:
https://nvd.nist.gov/vuln/detail/CVE-2016-6170

Patch from:
https://source.isc.org/cgi-bin/gitweb.cgi?p=bind9.git;a=commit;h=1bbcfe2fc84f57b1e4e075fb3bc2a1dd0a3a851f

(From OE-Core rev: 14abd767349bc868ca59838f1af3aaf17dfe4350)

(From OE-Core rev: 1d7829ce5e125d9c416ebd66e9363e78f8f5ae1c)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Yi Zhao
1e26fcb8bb bind: Security fix CVE-2016-8864
CVE-2016-8864: named in ISC BIND 9.x before 9.9.9-P4, 9.10.x before
9.10.4-P4, and 9.11.x before 9.11.0-P1 allows remote attackers to cause
a denial of service (assertion failure and daemon exit) via a DNAME
record in the answer section of a response to a recursive query,
related to db.c and resolver.c.

External References:
https://nvd.nist.gov/vuln/detail/CVE-2016-8864

Patch from:
https://source.isc.org/cgi-bin/gitweb.cgi?p=bind9.git;a=commit;h=c1d0599a246f646d1c22018f8fa09459270a44b8

(From OE-Core rev: c06f3a5993c7d63d91840c2a4d5b621e946ef78f)

(From OE-Core rev: 6c1969bf82f36650c696c9fd7f0aa35d60dc4214)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Yuanjie Huang
b37b775e77 glibc: Fix use after free in pthread_create()
[BZ 20116] -- https://sourceware.org/bugzilla/show_bug.cgi?id=20116

The commit documents the ownership rules around 'struct pthread' and
when a thread can read or write to the descriptor. With those ownership
rules in place it becomes obvious that pd->stopped_start should not be
touched in several of the paths during thread startup, particularly so
for detached threads. In the case of detached threads, between the time
the thread is created by the OS kernel and the creating thread checks
pd->stopped_start, the detached thread might have already exited and the
memory for pd unmapped. As a regression test we add a simple test which
exercises this exact case by quickly creating detached threads with
large enough stacks to ensure the thread stack cache is bypassed and the
stacks are unmapped. Before the fix the testcase segfaults, after the
fix it works correctly and completes without issue.

For a detailed discussion see:
https://www.sourceware.org/ml/libc-alpha/2017-01/msg00505.html

(cherry-picked from commit f8bf15febcaf137bbec5a61101e88cd5a9d56ca8)

(From OE-Core rev: eaa844b6ce75d68f952de67ea5145a54a1968171)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Jussi Kukkonen
c90540df8b xorg-font-common.inc: Remove x11 requirement for -native
(From OE-Core rev: 1c6f6b014c2fca7bad93ce3b770721fd770bb006)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Jussi Kukkonen
293288ef1c mkfontscale: Remove x11 requirement for -native
Make sure we can build native tools without "x11" feature.

(From OE-Core rev: e3aa3ae25cdf2523cd510c97aeabde46b24cbc08)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Jussi Kukkonen
5b46dfb4fe mkfontdir: Remove x11 requirement for -native
Make sure we can build native tools without "x11" in features.

(From OE-Core rev: efeb161baf06ed0602f47ddcc71d53703972e759)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Bruce Ashfield
ec212b2220 linux-yocto/4.4: update to v4.4.60
Updating to the korg stable relase with the following shortlog summary:

   8f8ee9706b0a Linux 4.4.60
   84bd21a708b8 padata: avoid race in reordering
   5cca175b6cda blk: Ensure users for current->bio_list can see the full list.
   2cbd78f4239b blk: improve order of bio handling in generic_make_request()
   063d30f187f5 power: reset: at91-poweroff: timely shutdown LPDDR memories
   42462d23e60b KVM: kvm_io_bus_unregister_dev() should never fail
   3a1246b46df5 rtc: s35390a: improve irq handling
   a55ae9d1937b rtc: s35390a: implement reset routine as suggested by the reference
   fdd4bc9313e5 rtc: s35390a: make sure all members in the output are set
   b3ed3864912e rtc: s35390a: fix reading out alarm
   6280ac931a23 MIPS: Lantiq: Fix cascaded IRQ setup
   47e2fe17d14d mm, hugetlb: use pte_present() instead of pmd_present() in follow_huge_pmd()
   ef55c3df5dbd drm/radeon: Override fpfn for all VRAM placements in radeon_evict_flags
   3eb392056aeb KVM: x86: clear bus pointer when destroyed
   eac3ab3e6915 USB: fix linked-list corruption in rh_call_control()
   0a1757cfa5ba tty/serial: atmel: fix TX path in atmel_console_write()
   74b8fc017d76 tty/serial: atmel: fix race condition (TX+DMA)
   566a8711a7dd ACPI: Do not create a platform_device for IOAPIC/IOxAPIC
   3342857ac074 ACPI: Fix incompatibility with mcount-based function graph tracing
   ab48ab614b8c ASoC: atmel-classd: fix audio clock rate
   ce3dcfdbff04 ALSA: hda - fix a problem for lineout on a Dell AIO machine
   a90d7447e4a1 ALSA: seq: Fix race during FIFO resize
   75a03869c93a scsi: libsas: fix ata xfer length
   a92f411914ca scsi: sg: check length passed to SG_NEXT_CMD_LEN
   18639c4bad72 scsi: mpt3sas: fix hang on ata passthrough commands
   1eed198ce16b xen/setup: Don't relocate p2m over existing one
   ba46d8fab00a libceph: force GFP_NOIO for socket allocations
   61a4577c9a44 Linux 4.4.59
   2bed5987692c sched/rt: Add a missing rescheduling point
   7a5202190810 fscrypt: remove broken support for detecting keyring key revocation
   573341eba9c4 metag/ptrace: Reject partial NT_METAG_RPIPE writes
   e441102d8c07 metag/ptrace: Provide default TXSTATUS for short NT_PRSTATUS
   2d9bc3695012 metag/ptrace: Preserve previous registers for short regset write
   962b95a88574 sparc/ptrace: Preserve previous registers for short regset write
   c8693666856c mips/ptrace: Preserve previous registers for short regset write
   e1dc8904b33b h8300/ptrace: Fix incorrect register transfer count
   6e174bbd0631 c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
   800791e7e0fd pinctrl: qcom: Don't clear status bit on irq_unmask
   927d04793f8a virtio_balloon: init 1st buffer in stats vq
   22c9e7c092f6 xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder
   cce7e56dd73f xfrm_user: validate XFRM_MSG_NEWAE XFRMA_REPLAY_ESN_VAL replay_window
   a9a76a3e318e xfrm: policy: init locks early
   0a5766a6a73b Linux 4.4.58
   f8a62dbc7902 crypto: algif_hash - avoid zero-sized array
   540d6d756ff8 fbcon: Fix vc attr at deinit
   ac601978a2aa serial: 8250_pci: Detach low-level driver during PCI error recovery
   b8687d83b34c ACPI / blacklist: Make Dell Latitude 3350 ethernet work
   d3607fc2976e ACPI / blacklist: add _REV quirks for Dell Precision 5520 and 3520
   4e2c66bb6658 uvcvideo: uvc_scan_fallback() for webcams with broken chain
   ce5494107946 s390/zcrypt: Introduce CEX6 toleration
   7023f502c835 block: allow WRITE_SAME commands with the SG_IO ioctl
   9fd9e1436380 vfio/spapr: Postpone allocation of userspace version of TCE table
   4110080574ac PCI: Do any VF BAR updates before enabling the BARs
   bcbdcf48469b PCI: Ignore BAR updates on virtual functions
   d4f09ea7e35c PCI: Update BARs using property bits appropriate for type
   131f7969048b PCI: Don't update VF BARs while VF memory space is enabled
   40a85d68185f PCI: Decouple IORESOURCE_ROM_ENABLE and PCI_ROM_ADDRESS_ENABLE
   1278c9f87f11 PCI: Add comments about ROM BAR updating
   cef498a2c75a PCI: Remove pci_resource_bar() and pci_iov_resource_bar()
   a87693ec42f2 PCI: Separate VF BAR updates from standard BAR updates
   e4ce31c0265d x86/hyperv: Handle unknown NMIs on one CPU when unknown_nmi_panic
   ca7e3bdc9c7e igb: add i211 to i210 PHY workaround
   4db313df4946 igb: Workaround for igb i210 firmware issue
   ec52364445a4 xen: do not re-use pirq number cached in pci device msi msg data
   6d43e485e006 xfs: clear _XBF_PAGES from buffers when readahead page
   f154de03f416 USB: usbtmc: add missing endpoint sanity check
   74c8dd066cc0 nl80211: fix dumpit error path RTNL deadlocks
   7922c1becb36 xfs: fix up xfs_swap_extent_forks inline extent handling
   c4cf86f69597 xfs: don't allow di_size with high bit set
   48da8f817b9d libceph: don't set weight to IN when OSD is destroyed
   73dd1edf50a6 raid10: increment write counter after bio is split
   175039632065 cpufreq: Restore policy min/max limits on CPU online
   e1af444e52ce ARM: dts: at91: sama5d2: add dma properties to UART nodes
   2705b183263b ARM: at91: pm: cpu_idle: switch DDR to power-down mode
   55b6c187cf9d iommu/vt-d: Fix NULL pointer dereference in device_to_iommu
   c856b66c8aac xen/acpi: upload PM state from init-domain to Xen
   52e40a2fcc39 mmc: sdhci: Do not disable interrupts while waiting for clock
   27d9bf096406 ext4: mark inode dirty after converting inline directory
   c7d1545c48ff parport: fix attempt to write duplicate procfiles
   7413d1f8991e iio: hid-sensor-trigger: Change get poll value function order to avoid sensor properties losing after resume from S3
   8f189e1d0eca iio: adc: ti_am335x_adc: fix fifo overrun recovery
   dcf879cb9ed3 mmc: ushc: fix NULL-deref at probe
   2c251e568e1a uwb: hwa-rc: fix NULL-deref at probe
   815321da2e26 uwb: i1480-dfu: fix NULL-deref at probe
   14a2032287d4 usb: hub: Fix crash after failure to read BOS descriptor
   47285be050ca usb: musb: cppi41: don't check early-TX-interrupt for Isoch transfer
   a7cb1fafe429 USB: wusbcore: fix NULL-deref at probe
   d6389d6abb8a USB: idmouse: fix NULL-deref at probe
   a7712869e2e7 USB: lvtest: fix NULL-deref at probe
   73490abe249c USB: uss720: fix NULL-deref at probe
   2c929ea720f9 usb-core: Add LINEAR_FRAME_INTR_BINTERVAL USB quirk
   8a8a8007871a usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's wBytesPerInterval
   19f0fe67b9d0 ACM gadget: fix endianness in notifications
   9218793a39de USB: serial: qcserial: add Dell DW5811e
   8f0f081647cc USB: serial: option: add Quectel UC15, UC20, EC21, and EC25 modems
   1ea551eec703 ALSA: hda - Adding a group of pin definition to fix headset problem
   ed00b613bbcb ALSA: ctxfi: Fix the incorrect check of dma_set_mask() call
   b55ffcb1bc8a ALSA: seq: Fix racy cell insertions during snd_seq_pool_done()
   549993001e7d Input: sur40 - validate number of endpoints before using them
   b3c4c0c470b5 Input: kbtab - validate number of endpoints before using them
   c05490638ddf Input: cm109 - validate number of endpoints before using them
   e916f1d6188e Input: yealink - validate number of endpoints before using them
   0812c6855c89 Input: hanwang - validate number of endpoints before using them
   6bed7c1e2b78 Input: ims-pcu - validate number of endpoints before using them
   a07d3669654a Input: iforce - validate number of endpoints before using them
   5f9243e4fca6 Input: i8042 - add noloop quirk for Dell Embedded Box PC 3000
   9ac7bd114e13 Input: elan_i2c - add ASUS EeeBook X205TA special touchpad fw
   afaed241928f tcp: initialize icsk_ack.lrcvtime at session start time
   95aa915c2f04 socket, bpf: fix sk_filter use after free in sk_clone_lock
   38dece41e5be ipv4: provide stronger user input validation in nl_fib_input()
   85f00dac91a1 net: bcmgenet: remove bcmgenet_internal_phy_setup()
   fdcee7c1e2f8 net/mlx5e: Count LRO packets correctly
   9d1894cba25c net/mlx5: Increase number of max QPs in default profile
   610c6bcc5fcf net: unix: properly re-increment inflight counter of GC discarded candidates
   ae43f9360a21 amd-xgbe: Fix jumbo MTU processing on newer hardware
   f3126725228c net: properly release sk_frag.page
   12f0bffc489d net: bcmgenet: Do not suspend PHY if Wake-on-LAN is enabled
   b362d6735156 net/openvswitch: Set the ipv6 source tunnel key address attribute correctly
   a5c3f390eb77 Linux 4.4.57
   5fa513cb0721 ext4: fix fencepost in s_first_meta_bg validation
   d88b83e66bbf percpu: acquire pcpu_lock when updating pcpu_nr_empty_pop_pages
   e08f608ab428 gfs2: Avoid alignment hole in struct lm_lockname
   4f47ca488256 isdn/gigaset: fix NULL-deref at probe
   d267ecbdfdb4 target: Fix VERIFY_16 handling in sbc_parse_cdb
   246760c61d9c scsi: libiscsi: add lock around task lists to fix list corruption regression
   82bd06aba880 scsi: lpfc: Add shutdown method for kexec
   0a621633cdfa target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export
   582f548924cd md/raid1/10: fix potential deadlock
   b24473976b98 powerpc/boot: Fix zImage TOC alignment
   09875d1393d4 cpufreq: Fix and clean up show_cpuinfo_cur_freq()
   f02729f2ab87 perf/core: Fix event inheritance on fork()
   4cb0c0b73d1c give up on gcc ilog2() constant optimizations
   6052eb871217 kernek/fork.c: allocate idle task for a CPU always on its local node
   6cc5b73d7969 hv_netvsc: use skb_get_hash() instead of a homegrown implementation
   cea050150323 tpm_tis: Use devm_free_irq not free_irq
   13a26889cbc1 drm/amdgpu: add missing irq.h include
   68ea3948ed3d s390/pci: fix use after free in dma_init
   50730d7f361f KVM: PPC: Book3S PR: Fix illegal opcode emulation
   e2d9577854f5 xen/qspinlock: Don't kick CPU if IRQ is not initialized
   b1a0f744f8e6 Drivers: hv: avoid vfree() on crash
   0a2512768f16 Drivers: hv: balloon: don't crash when memory is added in non-sorted order
   3787a071d145 pinctrl: cherryview: Do not mask all interrupts in probe
   962c66c74184 ACPI / video: skip evaluating _DOD when it does not exist
   12e1a3cd11ea cxlflash: Increase cmd_per_lun for better throughput
   f8c07cbc2e72 crypto: mcryptd - Fix load failure
   10659b8f5c60 crypto: cryptd - Assign statesize properly
   c78c3376ec67 crypto: ghash-clmulni - Fix load failure
   45d9558837d4 USB: don't free bandwidth_mutex too early
   ac1a97d8a562 usb: core: hub: hub_port_init lock controller instead of bus

(From OE-Core rev: 80712877c843139e1990a4e4360a48dba003a560)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 52a6823d4279d580a2b4bbfdc06234a903a17d93)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:34 +01:00
Bruce Ashfield
22cd02a09d linux-yocto/4.4: update to v4.4.56
Integrating the korg release with the following shortlog:

   0136bca4e0f6 Linux 4.4.56
   99d403faba47 futex: Add missing error handling to FUTEX_REQUEUE_PI
   44854c191e2c futex: Fix potential use-after-free in FUTEX_REQUEUE_PI
   62f57041fbdf x86/perf: Fix CR4.PCE propagation to use active_mm instead of mm
   8e0ec20539f8 x86/kasan: Fix boot with KASAN=y and PROFILE_ANNOTATED_BRANCHES=y
   3a19419c50c6 fscrypto: lock inode while setting encryption policy
   fd74e8d258da fscrypt: fix renaming and linking special files
   c10ffe988f15 net sched actions: decrement module reference count after table flush.
   676fe978525d dccp: fix memory leak during tear-down of unsuccessful connection request
   4ab956b56133 dccp/tcp: fix routing redirect race
   56f9b9502f2d bridge: drop netfilter fake rtable unconditionally
   aed728c38c48 ipv6: avoid write to a possibly cloned skb
   5f8bc3856e28 ipv6: make ECMP route replacement less greedy
   b57955ea30e1 mpls: Send route delete notifications when router module is unloaded
   710fbeb3f5c5 act_connmark: avoid crashing on malformed nlattrs with null parms
   6c72458ab428 uapi: fix linux/packet_diag.h userspace compilation error
   e671f1cc588f vrf: Fix use-after-free in vrf_xmit
   d0ebde92fbeb dccp: fix use-after-free in dccp_feat_activate_values
   ec4d8692b76e net: fix socket refcounting in skb_complete_tx_timestamp()
   9e7683301bee net: fix socket refcounting in skb_complete_wifi_ack()
   2681a7853ad7 tcp: fix various issues for sockets morphing to listen state
   9216632bf4a0 dccp: Unlock sock before calling sk_free()
   a70c32859704 net: net_enable_timestamp() can be called from irq contexts
   f331d6445a3e net: don't call strlen() on the user buffer in packet_bind_spkt()
   2cd0afc64e33 l2tp: avoid use-after-free caused by l2tp_ip_backlog_recv
   354f79125f12 ipv4: mask tos for input route
   f1b3aae1f1bf vti6: return GRE_KEY for vti6
   51a219a1371e vxlan: correctly validate VXLAN ID against VXLAN_N_VID
   0c0be310ba29 netlink: remove mmapped netlink support
   28ec98bc2e4a Linux 4.4.55
   1c5265be54d3 ext4: don't BUG when truncating encrypted inodes on the orphan list
   cd8ad4d9eb6d dm: flush queued bios when process blocks to avoid deadlock
   66dd58f56eab nfit, libnvdimm: fix interleave set cookie calculation
   a084aeef5633 s390/kdump: Use "LINUX" ELF note name instead of "CORE"
   b0e85701a776 KVM: s390: Fix guest migration for huge guests resulting in panic
   61fbad6a28fd mvsas: fix misleading indentation
   72ca0ab30680 serial: samsung: Continue to work if DMA request fails
   72bb2b96b856 USB: serial: io_ti: fix information leak in completion handler
   e71c7bad6844 USB: serial: io_ti: fix NULL-deref in interrupt callback
   6498086195b9 USB: iowarrior: fix NULL-deref in write
   179295c38d23 USB: iowarrior: fix NULL-deref at probe
   54f11a9662b6 USB: serial: omninet: fix reference leaks at open
   3cdc94638746 USB: serial: safe_serial: fix information leak in completion handler
   cf09c7d60ccc usb: host: xhci-plat: Fix timeout on removal of hot pluggable xhci controllers
   40c5634ffe3d usb: host: xhci-dbg: HCIVERSION should be a binary number
   4a1a3bb70fb4 usb: gadget: function: f_fs: pass companion descriptor along
   10af24856503 usb: dwc3: gadget: make Set Endpoint Configuration macros safe
   f47b97f2cdaa usb: gadget: dummy_hcd: clear usb_gadget region before registration
   2ca39d130015 powerpc: Emulation support for load/store instructions on LE
   074893495b72 tracing: Add #undef to fix compile error
   127651058594 MIPS: Netlogic: Fix CP0_EBASE redefinition warnings
   2e4aff2405af MIPS: DEC: Avoid la pseudo-instruction in delay slots
   5fad17434465 mm: memcontrol: avoid unused function warning
   5e45d834f762 cpmac: remove hopeless #warning
   32883383f5e0 MIPS: ralink: Remove unused rt*_wdt_reset functions
   4b91e7a2a9a7 MIPS: ralink: Cosmetic change to prom_init().
   3dc8f1e3a8f2 mtd: pmcmsp: use kstrndup instead of kmalloc+strncpy
   d2a8d746ae95 MIPS: Update lemote2f_defconfig for CPU_FREQ_STAT change
   c018595d83a3 MIPS: ip22: Fix ip28 build for modern gcc
   7a6a965f350e MIPS: Update ip27_defconfig for SCSI_DH change
   8ed0fdcc0c11 MIPS: ip27: Disable qlge driver in defconfig
   adc48c710b7e MIPS: Update defconfigs for NF_CT_PROTO_DCCP/UDPLITE change
   e041ad066440 crypto: improve gcc optimization flags for serpent and wp512
   a8cb5c02a20f USB: serial: digi_acceleport: fix OOB-event processing
   4d95645f3dd5 USB: serial: digi_acceleport: fix OOB data sanity check

(From OE-Core rev: 1b27f57fffb2ac7ffc22e294bda05b851cb2cf1c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit aac3bd4b9a3a2dca42eff68beec1b075ae8e532a)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Bruce Ashfield
18ae18f6ea linux-yocto/4.4: update to v4.4.53
Updating from v4.4.41 to v4.4.53, with the following list of changes:

   49616e715061 Linux 4.4.53
   9cee69465035 scsi: lpfc: Correct WQ creation for pagesize
   1d316060cad5 MIPS: IP22: Fix build error due to binutils 2.25 uselessnes.
   4dd29050e46e MIPS: IP22: Reformat inline assembler code to modern standards.
   15959b728d07 powerpc/xmon: Fix data-breakpoint
   afee78f03ee6 dmaengine: ipu: Make sure the interrupt routine checks all interrupts.
   79a7ff1443bd bcma: use (get|put)_device when probing/removing device driver
   5a1f03f1ee91 md linear: fix a race between linear_add() and linear_congested()
   037cd23726b3 rtc: sun6i: Switch to the external oscillator
   ee360e99dae0 rtc: sun6i: Add some locking
   a0378b5bfc27 NFSv4: fix getacl ERANGE for some ACL buffer sizes
   5d23e89065cd NFSv4: fix getacl head length estimation
   52fb4bdcea4c NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
   3ee4f442e5b3 nfsd: special case truncates some more
   6030493a3422 nfsd: minor nfsd_setattr cleanup
   781e6a08381d rtlwifi: rtl8192c-common: Fix "BUG: KASAN:
   6e10c33cb87a rtlwifi: Fix alignment issues
   70a09029b7be gfs2: Add missing rcu locking for glock lookup
   44dd30e04c1f rdma_cm: fail iwarp accepts w/o connection params
   88326fe95f59 RDMA/core: Fix incorrect structure packing for booleans
   f414af249f1e Drivers: hv: util: Backup: Fix a rescind processing issue
   9b45ab285388 Drivers: hv: util: Fcopy: Fix a rescind processing issue
   abaeda7f709a Drivers: hv: util: kvp: Fix a rescind processing issue
   862d2b7d21d3 hv: init percpu_list in hv_synic_alloc()
   374907e8d116 hv: allocate synic pages for all present CPUs
   80190fcc48f6 usb: gadget: udc: fsl: Add missing complete function.
   61e9e9bcfd7b usb: host: xhci: plat: check hcc_params after add hcd
   900466a746f5 usb: musb: da8xx: Remove CPPI 3.0 quirk and methods
   89eb5ed1536e w1: ds2490: USB transfer buffers need to be DMAable
   1df66c452471 w1: don't leak refcount on slave attach failure in w1_attach_slave_device()
   20bc8a897e48 can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
   3584716db12a iio: pressure: mpl3115: do not rely on structure field ordering
   2ab6b8c7172c iio: pressure: mpl115: do not rely on structure field ordering
   e83a28c521a6 arm/arm64: KVM: Enforce unconditional flush to PoC when mapping to stage-2
   d4a8db66b946 fuse: add missing FR_FORCE
   434ed4aff140 crypto: testmgr - Pad aes_ccm_enc_tv_template vector
   7666ef1a36cc ath9k: use correct OTP register offsets for the AR9340 and AR9550
   1aeced70f77d ath9k: fix race condition in enabling/disabling IRQs
   dc7bbf895e43 ath5k: drop bogus warning on drv_set_key with unsupported cipher
   6af0acc0b69f target: Fix multi-session dynamic se_node_acl double free OOPs
   4a3c526ced41 target: Obtain se_node_acl->acl_kref during get_initiator_node_acl
   da259399e487 samples/seccomp: fix 64-bit comparison macros
   6ad4196f1952 ext4: return EROFS if device is r/o and journal replay is needed
   9a79248c083d ext4: preserve the needs_recovery flag when the journal is aborted
   6ec4583e9b03 ext4: fix inline data error paths
   9d636818dbac ext4: fix data corruption in data=journal mode
   8774c73cf696 ext4: trim allocation requests to group size
   a3068b3e8066 ext4: do not polute the extents cache while shifting extents
   3daefdae5f8b ext4: Include forgotten start block on fallocate insert range
   cd3db55c64ae loop: fix LO_FLAGS_PARTSCAN hang
   356d71df7398 block/loop: fix race between I/O and set_status
   973f40f368f7 jbd2: don't leak modified metadata buffers on an aborted journal
   c0ef1f537a97 Fix: Disable sys_membarrier when nohz_full is enabled
   ea240cfed99b sd: get disk reference in sd_check_events()
   33950b56d2c2 scsi: use 'scsi_device_from_queue()' for scsi_dh
   2dc9a859eb89 scsi: aacraid: Reorder Adapter status check
   18dbfcae65a3 scsi: storvsc: properly set residual data length on errors
   80bccab34a57 scsi: storvsc: properly handle SRB_ERROR when sense message is present
   5cdc8193ac38 scsi: storvsc: use tagged SRB requests if supported by the device
   6a284310d5dd dm stats: fix a leaked s->histogram_boundaries array
   fdea1f972158 dm cache: fix corruption seen when using cache > 2TB
   f0ae01568e0c ipc/shm: Fix shmat mmap nil-page protection
   c5c893e7c44e mm: do not access page->mapping directly on page_endio
   66f43a576879 mm: vmpressure: fix sending wrong events on underflow
   612e4679b865 mm/page_alloc: fix nodes for reclaim in fast path
   31dac0e870dd iommu/vt-d: Tylersburg isoch identity map check is done too late.
   07852563dba6 iommu/vt-d: Fix some macros that are incorrectly specified in intel-iommu
   5cc0cd0e3a5a regulator: Fix regulator_summary for deviceless consumers
   272d60bfce0e staging: rtl: fix possible NULL pointer dereference
   8c8f42c9a4a7 ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine
   cd585d3ba5c8 ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming
   003aa343724f ALSA: seq: Fix link corruption by event error handling
   70dbc00f7e11 ALSA: ctxfi: Fallback DMA mask to 32bit
   9879f9d01a3c ALSA: timer: Reject user params with too small ticks
   b9bf1f0657c5 ALSA: hda - fix Lewisburg audio issue
   1f4f37076d52 ALSA: hda/realtek - Cannot adjust speaker's volume on a Dell AIO
   6b1d7b6f54c7 ARM: dts: at91: Enable DMA on sama5d2_xplained console
   be83ed085fcd ARM: dts: at91: Enable DMA on sama5d4_xplained console
   b401418c6cc3 ARM: at91: define LPDDR types
   f3a0b2004080 media: fix dm1105.c build error
   b0bde9f6a057 uvcvideo: Fix a wrong macro
   5988e7320179 am437x-vpfe: always assign bpp variable
   ab7546e49100 MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps
   cc387ae0898e MIPS: Calculate microMIPS ra properly when unwinding the stack
   d75d675a0552 MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions
   72a0cfae59b4 MIPS: Fix get_frame_info() handling of microMIPS function size
   2998bf60d385 MIPS: Prevent unaligned accesses during stack unwinding
   0d45490221a2 MIPS: Clear ISA bit correctly in get_frame_info()
   f1be0f5814a6 MIPS: Lantiq: Keep ethernet enabled during boot
   093292b8f8f7 MIPS: OCTEON: Fix copy_from_user fault handling for large buffers
   b32e43cf3f74 MIPS: BCM47XX: Fix button inversion for Asus WL-500W
   5636da7aba4d MIPS: Fix special case in 64 bit IP checksumming.
   faf6aa4b129d samples: move mic/mpssd example code from Documentation
   dd4534d88b93 Linux 4.4.52
   c171caf7be28 kvm: vmx: ensure VMCS is current while enabling PML
   e0913cc300c7 Revert "usb: chipidea: imx: enable CI_HDRC_SET_NON_ZERO_TTHA"
   151d4c0fb55b rtlwifi: rtl_usb: Fix for URB leaking when doing ifconfig up/down
   de5634875b60 block: fix double-free in the failure path of cgwb_bdi_init()
   15696979d80f goldfish: Sanitize the broken interrupt handler
   d7f97304a485 x86/platform/goldfish: Prevent unconditional loading
   67f47e57f9ca USB: serial: ark3116: fix register-accessor error handling
   b04a2ca5c4b3 USB: serial: opticon: fix CTS retrieval at open
   06b1cf346a4d USB: serial: spcp8x5: fix modem-status handling
   22034ee5dab8 USB: serial: ftdi_sio: fix line-status over-reporting
   cfad0817222d USB: serial: ftdi_sio: fix extreme low-latency setting
   af82872b65e0 USB: serial: ftdi_sio: fix modem-status error handling
   bcea8e993772 USB: serial: cp210x: add new IDs for GE Bx50v3 boards
   1ae570ab1c06 USB: serial: mos7840: fix another NULL-deref at open
   04fae8abfaef tty: serial: msm: Fix module autoload
   49ed6307508e net: socket: fix recvmmsg not returning error from sock_error
   ce9ecb8d7f3c ip: fix IP_CHECKSUM handling
   353dd7290025 irda: Fix lockdep annotations in hashbin_delete().
   a95df078e866 dccp: fix freeing skb too early for IPV6_RECVPKTINFO
   fe41cfb48f2d packet: Do not call fanout_release from atomic contexts
   abd672deb170 packet: fix races in fanout_add()
   2b3eb43342a0 net/llc: avoid BUG_ON() in skb_orphan()
   e8330cb5ae47 blk-mq: really fix plug list flushing for nomerge queues
   f0414c1f8bb7 rtc: interface: ignore expired timers when enqueuing new timers
   a82ac399bcf2 rtlwifi: rtl_usb: Fix missing entry in USB driver's private data
   f1924ac09c96 Linux 4.4.51
   5a86b1150f6c mmc: core: fix multi-bit bus width without high-speed mode
   6f26f0ba2435 bcache: Make gc wakeup sane, remove set_task_state()
   aee7d0412f17 ntb_transport: Pick an unused queue
   c6c6851adbaf NTB: ntb_transport: fix debugfs_remove_recursive
   efa061998d22 printk: use rcuidle console tracepoint
   6787d3ecbef7 ARM: 8658/1: uaccess: fix zeroing of 64-bit get_user()
   e6394c7d1c19 futex: Move futex_init() to core_initcall
   906bb56e3a12 drm/dp/mst: fix kernel oops when turning off secondary monitor
   b32128386bf8 drm/radeon: Use mode h/vdisplay fields to hide out of bounds HW cursor
   c6cbae45a57f Input: elan_i2c - add ELAN0605 to the ACPI table
   65de8bfbbe20 Fix missing sanity check in /dev/sg
   8107096d243d scsi: don't BUG_ON() empty DMA transfers
   d7b146c69229 fuse: fix use after free issue in fuse_dev_do_read()
   385a592dc7ce siano: make it work again with CONFIG_VMAP_STACK
   f9400118b015 vfs: fix uninitialized flags in splice_to_pipe()
   c50b74d88661 Linux 4.4.50
   b9dee56027ae l2tp: do not use udp_ioctl()
   afb4feb8bfef ping: fix a null pointer dereference
   9117c897c9aa packet: round up linear to header len
   58691e5b4f27 net: introduce device min_header_len
   6f99825e7632 sit: fix a double free on error path
   a4226c7ebfb5 sctp: avoid BUG_ON on sctp_wait_for_sndbuf
   f46f344841ec mlx4: Invoke softirqs after napi_reschedule
   0db25098cb6c macvtap: read vnet_hdr_size once
   625bd9e43b3b tun: read vnet_hdr_sz once
   82e9f6b90a0e tcp: avoid infinite loop in tcp_splice_read()
   96ada0a978fa ipv6: tcp: add a missing tcp_v6_restore_cb()
   eaa3a58f4503 ip6_gre: fix ip6gre_err() invalid reads
   13c3646dac70 netlabel: out of bound access in cipso_v4_validate()
   2d9c2e011fd3 ipv4: keep skb->dst around in presence of IP options
   22449a01baa5 net: use a work queue to defer net_disable_timestamp() work
   f3ece3b38437 tcp: fix 0 divide in __tcp_select_window()
   3f5b5134ec7c ipv6: pointer math error in ip6_tnl_parse_tlv_enc_lim()
   41e07a7e01d9 ipv6: fix ip6_tnl_parse_tlv_enc_lim()
   e6c654c9c092 can: Fix kernel panic at security_sock_rcv_skb
   702c0ce9a7c7 Linux 4.4.49
   5b0465dd4ad4 drm/i915: fix use-after-free in page_flip_completed()
   a44ca389a736 ALSA: seq: Don't handle loop timeout at snd_seq_pool_done()
   e5f20a3fd6db ALSA: seq: Fix race at creating a queue
   010ada0cfcb9 xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend()
   1c0da0ac217b scsi: mpt3sas: disable ASPM for MPI2 controllers
   4d6bdf7c73e7 scsi: aacraid: Fix INTx/MSI-x issue with older controllers
   52e02d6bf304 scsi: zfcp: fix use-after-free by not tracing WKA port open/close on failed send
   f2d256a2d49f netvsc: Set maximum GSO size in the right place
   b9c29d45f980 mac80211: Fix adding of mesh vendor IEs
   2f46791849be ARM: 8642/1: LPAE: catch pending imprecise abort on unmask
   04ed4a9e21f5 target: Fix COMPARE_AND_WRITE ref leak for non GOOD status
   0c863accadb0 target: Fix early transport_generic_handle_tmr abort scenario
   ee44e73832c2 target: Use correct SCSI status during EXTENDED_COPY exception
   44d03b9280ed target: Don't BUG_ON during NodeACL dynamic -> explicit conversion
   fcc038db5959 ARM: 8643/3: arm/ptrace: Preserve previous registers for short regset write
   cc187c6200f8 hns: avoid stack overflow with CONFIG_KASAN
   3b7ff5ed114f cpumask: use nr_cpumask_bits for parsing functions
   fd96835e205d Revert "x86/ioapic: Restore IO-APIC irq_chip retrigger callback"
   e72c13d93e9e selinux: fix off-by-one in setprocattr
   e871ea6bcf99 ARC: [arcompact] brown paper bag bug in unaligned access delay slot fixup
   6a1bd9063246 Linux 4.4.48
   87ebcc534d47 base/memory, hotplug: fix a kernel oops in show_valid_zones()
   374d06699537 x86/irq: Make irq activate operations symmetric
   94c0517fd0cb USB: serial: option: add device ID for HP lt2523 (Novatel E371)
   9cf89ade1afd usb: gadget: f_fs: Assorted buffer overflow checks.
   e4c1e6648298 USB: Add quirk for WORLDE easykey.25 MIDI keyboard
   b4b3442e5032 USB: serial: pl2303: add ATEN device ID
   244e7f00035d USB: serial: qcserial: add Dell DW5570 QDL
   f4f09b79a0c4 KVM: x86: do not save guest-unsupported XSAVE state
   8b51676d6cd9 HID: wacom: Fix poor prox handling in 'wacom_pl_irq'
   b3c8c31ed24c percpu-refcount: fix reference leak during percpu-atomic transition
   3a8e217851c9 mmc: sdhci: Ignore unexpected CARD_INT interrupts
   85fb980acb01 can: bcm: fix hrtimer/tasklet termination in bcm op removal
   4025ab36c81c mm, fs: check for fatal signals in do_generic_file_read()
   e86a8769579e mm/memory_hotplug.c: check start_pfn in test_pages_in_a_zone()
   920bba109299 cifs: initialize file_info_lock
   7aeb95ceb84b zswap: disable changing params if init fails
   5dadebc67586 svcrpc: fix oops in absence of krb5 module
   2b4e56fde91b NFSD: Fix a null reference case in find_or_create_lock_stateid()
   f584bb6df7a2 powerpc: Add missing error check to prom_find_boot_cpu()
   9b993e2c3df6 powerpc/eeh: Fix wrong flag passed to eeh_unfreeze_pe()
   db18e92ceb8d libata: apply MAX_SEC_1024 to all CX1-JB*-HP devices
   579a917538f1 ata: sata_mv:- Handle return value of devm_ioremap.
   d49d465d178f perf/core: Fix PERF_RECORD_MMAP2 prot/flags for anonymous memory
   72bb4b549085 crypto: arm64/aes-blk - honour iv_out requirement in CBC and CTR modes
   ae7d33f53a56 crypto: api - Clear CRYPTO_ALG_DEAD bit before registering an alg
   c4305f00852c drm/nouveau/nv1a,nv1f/disp: fix memory clock rate retrieval
   2a3797ef69c5 drm/nouveau/disp/gt215: Fix HDA ELD handling (thus, HDMI audio) on gt215
   e21a3cad35bc ext4: validate s_first_meta_bg at mount time
   62e546b2d3a0 PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe hierarchies
   4686ea264f1d Linux 4.4.47
   384e4bf0def9 net: dsa: Bring back device detaching in dsa_slave_suspend()
   74a7c39ec627 qmi_wwan/cdc_ether: add device ID for HP lt2523 (Novatel E371) WWAN card
   0492a033fb71 af_unix: move unix_mknod() out of bindlock
   e674c70bafe7 r8152: don't execute runtime suspend if the tx is not empty
   980b9afd9ecc bridge: netlink: call br_changelink() during br_dev_newlink()
   8f9e4ad8d7f3 tcp: initialize max window for a new fastopen socket
   8051bf2890e9 ipv6: addrconf: Avoid addrconf_disable_change() using RCU read-side lock
   8a066a87025e net: phy: bcm63xx: Utilize correct config_intr function
   6fec199362c4 net: fix harmonize_features() vs NETIF_F_HIGHDMA
   4f5e54bdd052 ax25: Fix segfault after sock connection timeout
   062b7f35ff6c ravb: do not use zero-length alignment DMA descriptor
   7d691d89eed0 openvswitch: maintain correct checksum state in conntrack actions
   b82981fb273d tcp: fix tcp_fastopen unaligned access complaints on sparc
   ec9e993f30f6 net: systemport: Decouple flow control from __bcm_sysport_tx_reclaim
   40e7c725ab0f net: ipv4: fix table id in getroute response
   2e84b8ce6fc3 net: lwtunnel: Handle lwtunnel_fill_encap failure
   290db2cd517e mlxsw: pci: Fix EQE structure definition
   811bb1b9d9ab mlxsw: switchx2: Fix memory leak at skb reallocation
   9edb2d75d81b mlxsw: spectrum: Fix memory leak at skb reallocation
   595ac452c451 r8152: fix the sw rx checksum is unavailable
   6c1ed78cb074 Linux 4.4.46
   d0721893214e mm, memcg: do not retry precharge charges
   14b97492d6e1 platform/x86: intel_mid_powerbtn: Set IRQ_ONESHOT
   d430c37db796 pinctrl: broxton: Use correct PADCFGLOCK offset
   5ddaf6804e24 s5k4ecgx: select CRC32 helper
   5288474d2f48 IB/umem: Release pid in error and ODP flow
   e114e66eec3d IB/ipoib: move back IB LL address into the hard header
   800a78f9e62b drm/i915: Don't leak edid in intel_crt_detect_ddc()
   d79e41188a1e SUNRPC: cleanup ida information when removing sunrpc module
   edef1086bf09 NFSv4.0: always send mode in SETATTR after EXCLUSIVE4
   0f64f22c0686 nfs: Don't increment lock sequence ID after NFS4ERR_MOVED
   bde741e9cc23 parisc: Don't use BITS_PER_LONG in userspace-exported swab.h header
   acb63c8b576d ARC: [arcompact] handle unaligned access delay slot corner case
   42ad7663677d ARC: udelay: fix inline assembler by adding LP_COUNT to clobber list
   bca1a95c9e20 can: ti_hecc: add missing prepare and unprepare of the clock
   63fe33a78428 can: c_can_pci: fix null-pointer-deref in c_can_start() - set device pointer
   bae49e72f951 s390/ptrace: Preserve previous registers for short regset write
   8637de3a318d RDMA/cma: Fix unknown symbol when CONFIG_IPV6 is not enabled
   d65032ab06f4 ISDN: eicon: silence misleading array-bounds warning
   d1b232c2ce53 sysctl: fix proc_doulongvec_ms_jiffies_minmax()
   f11e8bf8e99b mm/mempolicy.c: do not put mempolicy before using its nodemask
   c83ad9703e71 drm: Fix broken VT switch with video=1366x768 option
   23bc4e136bca tile/ptrace: Preserve previous registers for short regset write
   63db7c91a3c0 fbdev: color map copying bounds checking
   ef30573ef2b1 Linux 4.4.45
   8323d0555fe3 arm64: avoid returning from bad_mode
   6e65a4c698cf selftest/powerpc: Wrong PMC initialized in pmc56_overflow test
   a5291c1a9eae dmaengine: pl330: Fix runtime PM support for terminated transfers
   238623ce487f ite-cir: initialize use_demodulator before using it
   b02d7a8219bc blackfin: check devm_pinctrl_get() for errors
   a4d2fa085b9a ARM: 8613/1: Fix the uaccess crash on PB11MPCore
   baa2610c4962 ARM: ux500: fix prcmu_is_cpu_in_wfi() calculation
   68664ae14535 ARM: dts: imx6qdl-nitrogen6_max: fix sgtl5000 pinctrl init
   c55f8aaf4a19 arm64/ptrace: Reject attempts to set incomplete hardware breakpoint fields
   4c87fc7f2059 arm64/ptrace: Avoid uninitialised struct padding in fpr_set()
   03ee97d68d8b arm64/ptrace: Preserve previous registers for short regset write - 3
   d8263f1753ce arm64/ptrace: Preserve previous registers for short regset write - 2
   76e08d2966a9 arm64/ptrace: Preserve previous registers for short regset write
   41a9abb0e06b ARM: dts: da850-evm: fix read access to SPI flash
   62c3d36309d3 ceph: fix bad endianness handling in parse_reply_info_extra
   abfa5e8ae937 ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs
   294b0aadc8c2 svcrdma: avoid duplicate dma unmapping during error recovery
   098b62b757a4 clocksource/exynos_mct: Clear interrupt when cpu is shut down
   a07563c3cf05 ubifs: Fix journal replay wrt. xattr nodes
   7ea1eb731453 qla2xxx: Fix crash due to null pointer access
   86915782ff65 x86/ioapic: Restore IO-APIC irq_chip retrigger callback
   212bab3c5b0b mtd: nand: xway: disable module support
   80aeb7bf5ca0 ieee802154: atusb: do not use the stack for buffers to make them DMA able
   8f6f508f70ff mmc: mxs-mmc: Fix additional cycles after transmission stop
   75c60df15c85 HID: corsair: fix control-transfer error handling
   0f37d20fdc70 HID: corsair: fix DMA buffers on stack
   4740d1d7d429 PCI: Enumerate switches below PCI-to-PCIe bridges
   dc4e372f9a47 fuse: clear FR_PENDING flag when moving requests out of pending queue
   6f3002c22087 svcrpc: don't leak contexts on PROC_DESTROY
   3b434ca8592a x86/PCI: Ignore _CRS on Supermicro X8DTH-i/6/iF/6F
   36672b8b99e2 tmpfs: clear S_ISGID when setting posix ACLs
   39d7c9ce35a1 ARM: dts: imx31: fix AVIC base address
   d2e4968e3c0d ARM: dts: imx31: move CCM device node to AIPS2 bus devices
   280d00a94293 ARM: dts: imx31: fix clock control module interrupts description
   2ba399c693c0 perf scripting: Avoid leaking the scripting_context variable
   aa02f29e95f3 IB/IPoIB: Remove can't use GFP_NOIO warning
   ea470497eb31 IB/mlx4: When no DMFS for IPoIB, don't allow NET_IF QPs
   f1c9169478ca IB/mlx4: Fix port query for 56Gb Ethernet links
   c7a40c48f7a5 IB/mlx4: Fix out-of-range array index in destroy qp flow
   1be54a4ec45a IB/mlx4: Set traffic class in AH
   4ffb36efe22c IB/mlx5: Wait for all async command completions to complete
   97085e2a386a ftrace/x86: Set ftrace_stub to weak to prevent gcc from using short jumps to it
   a7dd347a67c0 Linux 4.4.44
   45611fb9e0af pinctrl: sh-pfc: Do not unconditionally support PIN_CONFIG_BIAS_DISABLE
   ef6eadbf7b16 powerpc/ibmebus: Fix device reference leaks in sysfs interface
   488e7b2c5b6a powerpc/ibmebus: Fix further device reference leaks
   4d1b5086f7e2 bus: vexpress-config: fix device reference leak
   6e8210ad2585 blk-mq: Always schedule hctx->next_cpu
   ddf0c377bf82 ACPI / APEI: Fix NMI notification handling
   4af7970b3593 block: cfq_cpd_alloc() should use @gfp
   2c1dd423a567 cpufreq: powernv: Disable preemption while checking CPU throttling state
   33ebdfe913fd NFSv4.1: nfs4_fl_prepare_ds must be careful about reporting success.
   11804232d1ad NFS: Fix a performance regression in readdir
   8ff851bf2240 pNFS: Fix race in pnfs_wait_on_layoutreturn
   7aae6e3c0c52 pinctrl: meson: fix gpio request disabling other modes
   f0382c090a20 btrfs: fix error handling when run_delayed_extent_op fails
   205e997acde7 btrfs: fix locking when we put back a delayed ref that's too new
   68b97d287e28 x86/cpu: Fix bootup crashes by sanitizing the argument of the 'clearcpuid=' command-line option
   0cf23324af1c USB: serial: ch341: fix modem-control and B0 handling
   1d25a05642c8 USB: serial: ch341: fix resume after reset
   a1a0612b7dde drm/radeon: drop verde dpm quirks
   b9d6631395a1 sysctl: Drop reference added by grab_header in proc_sys_readdir
   ca81117b7432 sysrq: attach sysrq handler correctly for 32-bit kernel
   075f493a974e tty/serial: atmel_serial: BUG: stop DMA from transmitting in stop_tx
   4a6716f16517 mnt: Protect the mountpoint hashtable with mount_lock
   836fd7c9e6e6 vme: Fix wrong pointer utilization in ca91cx42_slave_get
   d5fcd719e889 xhci: fix deadlock at host remove by running watchdog correctly
   ae76af251806 i2c: fix kernel memory disclosure in dev interface
   f64b9acc368c i2c: print correct device invalid address
   085f4ebec797 Input: elants_i2c - avoid divide by 0 errors on bad touchscreen data
   214a8e98e6bc USB: serial: ch341: fix open and resume after B0
   802b4ef3b989 USB: serial: ch341: fix control-message error handling
   bc74606d8d80 USB: serial: ch341: fix open error handling
   e29f709c2f56 USB: serial: ch341: fix initial modem-control state
   3ef5bc0b385f USB: serial: kl5kusb105: fix line-state error handling
   4a1ecf37a59f nl80211: fix sched scan netlink socket owner destruction
   9d3875c0c462 KVM: x86: Introduce segmented_write_std
   3490e72ad6d0 KVM: x86: emulate FXSAVE and FXRSTOR
   d9c4c1e7c2cf KVM: x86: add asm_safe wrapper
   4fa0090249fb KVM: x86: add Align16 instruction flag
   1fc673d96f9d KVM: x86: flush pending lapic jump label updates on module unload
   3d27cd4b2527 jump_labels: API for flushing deferred jump label updates
   34a55c9d4a2d KVM: eventfd: fix NULL deref irqbypass consumer
   816307c80d4d KVM: x86: fix emulation of "MOV SS, null selector"
   1a46e6ecf896 mm/hugetlb.c: fix reservation race when freeing surplus pages
   6bbb8ff3b68e ocfs2: fix crash caused by stale lvb with fsdlm plugin
   70429b970bde mm: fix devm_memremap_pages crash, use mem_hotplug_{begin, done}
   6de62ec07d2a selftests: do not require bash for the generated test
   2deaeea23fbd selftests: do not require bash to run netsocktests testcase
   2e2679a168fe Input: i8042 - add Pegatron touchpad to noloop table
   51377793758a Input: xpad - use correct product id for x360w controllers
   d9ea51a9bea4 Linux 4.4.43
   e21901d7a5eb mm/init: fix zone boundary creation
   e3f77bb158f9 ALSA: usb-audio: Add a quirk for Plantronics BT600
   a1c81f839c6f spi: mvebu: fix baudrate calculation for armada variant
   dfd64d112a02 ARM: OMAP4+: Fix bad fallthrough for cpuidle
   04dc1be104fe ARM: zynq: Reserve correct amount of non-DMA RAM
   bed280bbc995 powerpc: Fix build warning on 32-bit PPC
   fa48a1607580 ALSA: firewire-tascam: Fix to handle error from initialization of stream data
   a2f727149ee4 HID: hid-cypress: validate length of report
   70e05a9f2f4f net: vrf: do not allow table id 0
   c177d491a948 net: ipv4: Fix multipath selection with vrf
   67b21973ecf4 gro: Disable frag0 optimization on IPv6 ext headers
   db7119eaacf4 gro: use min_t() in skb_gro_reset_offset()
   5169043e9722 gro: Enter slow-path if there is no tailroom
   0d3b9c2746d3 r8152: fix rx issue for runtime suspend
   c31a3c79928b r8152: split rtl8152_suspend function
   807cac887d95 ipv4: Do not allow MAIN to be alias for new LOCAL w/ custom rules
   0d431f94c181 igmp: Make igmp group member RFC 3376 compliant
   14e8d568f14f drop_monitor: consider inserted data in genlmsg_end
   81e7916476ca drop_monitor: add missing call to genlmsg_end
   1ff0308f33ce net/mlx5: Avoid shadowing numa_node
   18d971f84c84 net/mlx5: Check FW limitations on log_max_qp before setting it
   3f2847608cb9 net: stmmac: Fix race between stmmac_drv_probe and stmmac_open
   67bce5821c9a net, sched: fix soft lockup in tc_classify
   58d0d7a45ef8 ipv6: handle -EFAULT from skb_copy_bits
   6ac0b3810cdc net: vrf: Drop conntrack data after pass through VRF device on Tx
   1e5298d4c82b ser_gigaset: return -ENOMEM on error instead of success
   33c7b0f74c57 netvsc: reduce maximum GSO size
   49c4446a2e13 Linux 4.4.42
   adf640eaefac usb: gadget: composite: always set ep->mult to a sensible value
   f108b2de9cd0 Revert "usb: gadget: composite: always set ep->mult to a sensible value"
   6053479cbbc5 tick/broadcast: Prevent NULL pointer dereference
   af817b3fc6e5 drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y values
   9205be7fa632 cx23885-dvb: move initialization of a8293_pdata
   6b59fb520123 net: vxge: avoid unused function warnings
   8003ac65d0a5 net: ti: cpmac: Fix compiler warning due to type confusion
   becfb50c66cb cred/userns: define current_user_ns() as a function
   f5a636fd416f staging: comedi: dt282x: tidy up register bit defines
   8f251525da14 powerpc/pci/rpadlpar: Fix device reference leaks
   ccd7bd29c2e6 md: MD_RECOVERY_NEEDED is set for mddev->recovery
   1d3124821f3a crypto: arm64/aes-ce - fix for big endian
   5b21c5489206 crypto: arm64/aes-xts-ce: fix for big endian
   abca9c2d2cab crypto: arm64/sha1-ce - fix for big endian
   83f8a200af45 crypto: arm64/aes-neon - fix for big endian
   bd17e2d36615 crypto: arm64/aes-ccm-ce: fix for big endian
   bed5c78798e1 crypto: arm/aes-ce - fix for big endian
   4c575a30db8c crypto: arm64/ghash-ce - fix for big endian
   820c2ac4c9f4 crypto: arm64/sha2-ce - fix for big endian
   6119edd2d87a s390/crypto: unlock on error in prng_tdes_read()
   85baf9416b7e mmc: mmc_test: Uninitialized return value
   b0cb7f60998c PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend
   fc44d3d05478 irqchip/bcm7038-l1: Implement irq_cpu_offline() callback
   69dc8473b750 target/iscsi: Fix double free in lio_target_tiqn_addtpg()
   e57c830c9041 scsi: mvsas: fix command_active typo
   079c4b43e1fe ASoC: samsung: i2s: Fixup last IRQ unsafe spin lock call
   83882724eb65 iommu/vt-d: Flush old iommu caches for kdump when the device gets context mapped
   91bc81b9661c iommu/vt-d: Fix pasid table size encoding
   dc78a9e1b4f8 iommu/amd: Fix the left value check of cmd buffer
   b54dcc3b68ef iommu/amd: Missing error code in amd_iommu_init_device()
   46105512474f clk: imx31: fix rewritten input argument of mx31_clocks_init()
   f371ee85268d clk: clk-wm831x: fix a logic error
   92e993abb928 hwmon: (g762) Fix overflows and crash seen when writing limit attributes
   fd504f529160 hwmon: (nct7802) Fix overflows seen when writing into limit attributes
   5e351caeaa96 hwmon: (ds620) Fix overflows seen when writing temperature limits
   fbab1832e7e8 hwmon: (amc6821) sign extension temperature
   07c05622f63d hwmon: (scpi) Fix module autoload
   9453d46a12ba cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected
   8353a5deec10 ath10k: use the right length of "background"
   56ef587b77fd stable-fixup: hotplug: fix unused function warning
   acb7df233b72 usb: dwc3: ep0: explicitly call dwc3_ep0_prepare_one_trb()
   ecd4ad9ab7e9 usb: dwc3: ep0: add dwc3_ep0_prepare_one_trb()
   efcd2e082f0f usb: dwc3: gadget: always unmap EP0 requests
   7927c0314060 staging: iio: ad7606: fix improper setting of oversampling pins
   3e4302f99aed mei: bus: fix mei_cldev_enable KDoc
   e94800df8c1f USB: serial: io_ti: bind to interface after fw download
   1224bb23fe15 USB: phy: am335x-control: fix device and of_node leaks
   d36d0122ff51 ARM: dts: r8a7794: Correct hsusb parent clock
   de2cf4998a52 USB: serial: kl5kusb105: abort on open exception path
   f5531856c2c7 ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream()
   d576c36a3e1f usb: musb: blackfin: add bfin_fifo_offset in bfin_ops
   e675483ee2f1 usb: hub: Move hub_port_disable() to fix warning if PM is disabled
   02ef64ac647f usb: musb: Fix trying to free already-free IRQ 4
   60dffc173220 usb: dwc3: pci: add Intel Gemini Lake PCI ID
   59185ef00b46 xhci: Fix race related to abort operation
   ce737ba8e23e xhci: Use delayed_work instead of timer for command timeout
   b07b4fa72500 usb: xhci-mem: use passed in GFP flags instead of GFP_KERNEL
   3e3f05182b39 USB: serial: mos7720: fix parallel probe
   5c83e07c3c8b USB: serial: mos7720: fix parport use-after-free on probe errors
   2f525ed5efb8 USB: serial: mos7720: fix use-after-free on probe errors
   f2e8b37a9970 USB: serial: mos7720: fix NULL-deref at open
   857757872704 USB: serial: mos7840: fix NULL-deref at open
   1b1fdc715807 USB: serial: kobil_sct: fix NULL-deref in write
   b60b91268cd0 USB: serial: cyberjack: fix NULL-deref at open
   b835f4cd6700 USB: serial: oti6858: fix NULL-deref at open
   374250ed9b26 USB: serial: io_edgeport: fix NULL-deref at open
   ad4de3d91872 USB: serial: ti_usb_3410_5052: fix NULL-deref at open
   f0bdd7e0ccb2 USB: serial: garmin_gps: fix memory leak on failed URB submit
   e3d6a0da47e6 USB: serial: iuu_phoenix: fix NULL-deref at open
   11743d704e51 USB: serial: io_ti: fix I/O after disconnect
   7ef8807cce7d USB: serial: io_ti: fix another NULL-deref at open
   33a5d0cc25f4 USB: serial: io_ti: fix NULL-deref at open
   0243498813d2 USB: serial: spcp8x5: fix NULL-deref at open
   65d107038ec6 USB: serial: keyspan_pda: verify endpoints at probe
   c6aa86222ec5 USB: serial: pl2303: fix NULL-deref at open
   4e106709060f USB: serial: quatech2: fix sleep-while-atomic in close
   7b5d7880019c USB: serial: omninet: fix NULL-derefs at open and disconnect
   d88f0f6c5ba0 usb: xhci: hold lock over xhci_abort_cmd_ring()
   f286c2513ba6 xhci: Handle command completion and timeout race
   86bb666386ee usb: host: xhci: Fix possible wild pointer when handling abort command
   3447b3772934 usb: xhci: fix return value of xhci_setup_device()
   2d1b4fcba4a7 xhci: free xhci virtual devices with leaf nodes first
   b303a108541e usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Apollo Lake
   b4b404b99177 xhci: workaround for hosts missing CAS bit
   e224b8b7215f usb: xhci: fix possible wild pointer
   438efb640e83 usb: dwc3: core: avoid Overflow events
   96a21e702606 usb: gadget: composite: Test get_alt() presence instead of set_alt()
   bd4e78bbc93f USB: dummy-hcd: fix bug in stop_activity (handle ep0)
   7cc00abef071 USB: fix problems with duplicate endpoint addresses
   f6ff9981743c USB: gadgetfs: fix checks of wTotalLength in config descriptors
   74e36bffe645 USB: gadgetfs: fix use-after-free bug
   fe75330a27fc USB: gadgetfs: fix unbounded memory allocation bug
   10a4380ea145 usb: gadgetfs: restrict upper bound on device configuration size
   9cc601b40d76 usb: storage: unusual_uas: Add JMicron JMS56x to unusual device
   96175db0a647 usb: musb: dsps: implement clear_ep_rxintr() callback
   2a0e2a89cc41 usb: musb: core: add clear_ep_rxintr() to musb_platform_ops
   e72575d2d76e KVM: MIPS: Flush KVM entry code from icache globally
   7b95f36fc6fa KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS
   9b73f43fcef4 mac80211: initialize fast-xmit 'info' later
   6e28a02f0e86 ARM: davinci: da850: don't add emac clock to lookup table twice
   bb1cacd88e07 ALSA: usb-audio: Fix irq/process data synchronization
   16b968a1ca96 ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL
   b87483c27624 ALSA: hda - Fix up GPIO for ASUS ROG Ranger

(From OE-Core rev: 70c124ae85360428aa6942c5efd527d6139ab7ec)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bf00e5e265d3f878d2af36a48d597ce477bd6f4f)

fixed merge conflicts
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Bruce Ashfield
4eb24dc6ac linux-yocto/4.1: update to v4.1.38
Updating to the korg 4.1.38 -stable release with the following changes:

   f40b3cc69de8 Linux 4.1.38
   d8435bb5e8fb gro: Allow tunnel stacking in the case of FOU/GUE
   066b300e5be4 tunnels: Don't apply GRO to multiple layers of encapsulation.
   b11e1542feca net: ipv4: Convert IP network timestamps to be y2038 safe
   5023ae270216 ipip: Properly mark ipip GRO packets as encapsulated.
   3e3267311e3b sg_write()/bsg_write() is not fit to be called under KERNEL_DS
   363f1a90b7f3 fs: exec: apply CLOEXEC before changing dumpable task flags
   c63e64ae7665 IB/cma: Fix a race condition in iboe_addr_get_sgid()
   6242668e855c Revert "ALSA: usb-audio: Fix race at stopping the stream"
   dd5035276792 kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF)
   6fdb4af13f9f drivers/gpu/drm/ast: Fix infinite loop if read fails
   d1b9fb84c423 target/user: Fix use-after-free of tcmu_cmds if they are expired
   bbe48c2f932e kernel/debug/debug_core.c: more properly delay for secondary CPUs
   1b51fce881b2 scsi: avoid a permanent stop of the scsi device's request queue
   f413092ea8e0 IB/multicast: Check ib_find_pkey() return value
   8c84816cedcb IPoIB: Avoid reading an uninitialized member variable
   5eba61298b74 block_dev: don't test bdev->bd_contains when it is not stable
   25e9e2367457 btrfs: limit async_work allocation and worker func duration
   ced9b7a66a35 mm/vmscan.c: set correct defer count for shrinker
   a62e45871b7b Input: drv260x - fix input device's parent assignment
   e1589b27ffb9 libceph: verify authorize reply on connect
   ed21b94ebbf4 ALSA: hiface: Fix M2Tech hiFace driver sampling rate change
   f8c36e2b98b7 s390/vmlogrdr: fix IUCV buffer allocation
   0848a2672eb3 kconfig/nconf: Fix hang when editing symbol with a long prompt
   7b53fb41d447 SUNRPC: fix refcounting problems with auth_gss messages.
   14927595fec9 ext4: return -ENOMEM instead of success
   576cfe615feb nfs_write_end(): fix handling of short copies
   77f3c11c13dd fgraph: Handle a case where a tracer ignores set_graph_notrace
   29955c9a00d5 timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion
   951f4b1f13a7 USB: serial: option: add dlink dwm-158
   0c4f2f61d68f USB: serial: option: add support for Telit LE922A PIDs 0x1040, 0x1041
   0a32f5b4f72d ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks
   1d53a630766e dm space map metadata: fix 'struct sm_metadata' leak on failed create
   67bcfac25cb8 arm/xen: Use alloc_percpu rather than __alloc_percpu
   d09b66f9e70b drm/radeon: add additional pci revision to dpm workaround
   e9631583d6c0 drm/radeon: Hide the HW cursor while it's out of bounds
   beeda93356ae drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y values
   7198dbbaa242 drm/radeon: Also call cursor_move_locked when the cursor size changes
   15a12fbbf365 CIFS: Fix a possible memory corruption during reconnect
   51fce08b64ec CIFS: Fix a possible memory corruption in push locks
   7f16769173df CIFS: Fix missing nls unload in smb2_reconnect()
   0ee8faf89305 USB: cdc-acm: add device id for GW Instek AFG-125
   a2080cc28041 mmc: sdhci: Fix recovery from tuning timeout
   2a1dc36fdc71 ALSA: usb-audio: Fix race at stopping the stream
   93f5b2b5d28b xfs: set AGI buffer type in xlog_recover_clear_agi_bucket
   73e7d7aef06c block: protect iterate_bdevs() against concurrent close
   a6d0744b18ae ASoC: intel: Fix crash at suspend/resume without card registration
   90604ed2f10c Btrfs: fix tree search logic when replaying directory entry deletes
   575b6eddbf73 Btrfs: fix deadlock caused by fsync when logging directory entries
   32a27da220fb powerpc/ps3: Fix system hang with GCC 5 builds
   07340eaf0743 USB: serial: kl5kusb105: fix open error path
   b4fa7414cb79 thermal: hwmon: Properly report critical temperature in sysfs
   3225aec938da md/raid5: limit request size according to implementation limits
   93da0de16c94 firmware: fix usermode helper fallback loading
   d7a1bfa59593 xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing
   315419538d84 tpm xen: Remove bogus tpm_chip_unregister
   fee2ddaee775 f2fs: set ->owner for debugfs status file's file_operations
   f52d439916f0 ALSA: hda - fix headset-mic problem on a Dell laptop
   506d7d521174 dm crypt: mark key as invalid until properly loaded
   4a7036809383 KVM: PPC: Book3S HV: Don't lose hardware R/C bit updates in H_PROTECT
   ec05ce11c1e9 KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state
   b1a758009739 ext4: add sanity checking to count_overhead()
   31eb998aa42d ext4: use more strict checks for inodes_per_block on mount
   526cfedac0b3 ext4: sanity check the block and cluster size at mount time
   c2404d06b82e usb: hub: Fix auto-remount of safely removed or ejected USB-3 devices
   2861b336b594 ssb: Fix error routine when fallback SPROM fails
   44ef406441e2 ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards.
   be733405b057 staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask
   9d45d2e79800 ext4: fix stack memory corruption with 64k block size
   d6ddc9cf431b ext4: fix mballoc breakage with 64k block size
   b3409ef1849b loop: return proper error from loop_queue_rq()
   9e19c28455b3 crypto: caam - fix AEAD givenc descriptors
   332086b806ac regulator: stw481x-vmmc: fix ages old enable error
   9e4033f56d3d USB: UHCI: report non-PME wakeup signalling for Intel hardware
   257cb82ee6d7 PCI: Check for PME in targeted sleep state
   78ef3e710efd scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs before reset
   28a8e88f1d2f drm/gma500: Add compat ioctl
   6ec54b062038 usb: gadget: composite: correctly initialize ep->maxpacket
   33166482bf49 drm/i915: Unalias obj->phys_handle and obj->userptr
   d7633e23c7f6 drm/i915/gen9: fix the WaWmMemoryReadLatency implementation

(From OE-Core rev: 96172bb6be3d4baf140b3b7db326930162103ab3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b60f1f2e0a5db22b466c8c812dea1716787c0d9a)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Bruce Ashfield
15e0b3178f linux-yocto/4.8: update to v4.8.18
Paul Gortmaker has started doing 4.8 -stable updates. This integrates
his 4.8.18 queue from:

   git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux-4.8.y.git

Change log is as follows:

   28dda89acd7c Linux 4.8.18
   936e79682048 tick/broadcast: Prevent NULL pointer dereference
   f22b03e15427 clocksource/dummy_timer: Move hotplug callback after the real timers
   8f78db7e5df0 xfs: use GPF_NOFS when allocating btree cursors
   1d818a81bac6 xfs: ignore leaf attr ichdr.count in verifier during log replay
   62ef2c9c1d94 xfs: don't allow di_size with high bit set
   db28776559c7 xfs: error out if trying to add attrs and anextents > 0
   fb70f2a64910 xfs: don't crash if reading a directory results in an unexpected hole
   ebff27d76e7e xfs: complain if we don't get nextents bmap records
   14c3f0b270aa xfs: check for bogus values in btree block headers
   31f0f90742a3 xfs: pass state not whichfork to trace_xfs_extlist
   430a362685e9 xfs: Move AGI buffer type setting to xfs_read_agi
   20aa52b53586 xfs: new inode extent list lookup helpers
   c7b75fcea4e6 xfs: fix unbalanced inode reclaim flush locking
   e89df591f833 xfs: check minimum block size for CRC filesystems
   b04a2c02f4d7 xfs: provide helper for counting extents from if_bytes
   f4e7f4cd52b1 xfs: don't BUG() on mixed direct and mapped I/O
   49f159ae6e80 xfs: check return value of _trans_reserve_quota_nblks
   23bb39fdbb96 xfs: don't call xfs_sb_quota_from_disk twice
   d3c7d2aa00d4 tpm_tis: Check return values from get_burstcount.
   9fc58e555d78 drm/i915/gen9: fix the WM memory bandwidth WA for Y tiling cases
   4f075608d2c4 drm/i915/gen9: unconditionally apply the memory bandwidth WA
   55e9c9d00d70 drm/i915: disable PSR by default on HSW/BDW
   2c266a9a3631 drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y values
   e4d1900e15db s390/topology: always use s390 specific sched_domain_topology_level
   b04e5322d8a4 powerpc/pci/rpadlpar: Fix device reference leaks
   458e63f135d6 PCI: Enable access to non-standard VPD for Chelsio devices (cxgb3)
   05a725c46f56 PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+
   8d12795b1eac PCI: Convert Mellanox broken INTx quirks to be for listed devices only
   24af87eb2ffa PCI: Convert broken INTx masking quirks from HEADER to FINAL
   ec9f277f52e9 PCI: Add Mellanox device IDs
   9e7c8ebc1316 staging: media: davinci_vpfe: unlock on error in vpfe_reqbufs()
   8c6c73a692c9 f2fs: hide a maybe-uninitialized warning
   a91f2c1d4f45 f2fs: remove percpu_count due to performance regression
   93634e1cc928 md: MD_RECOVERY_NEEDED is set for mddev->recovery
   239b31c50bde crypto: arm64/aes-ce - fix for big endian
   a3141467e092 crypto: arm64/aes-xts-ce: fix for big endian
   7c26ef18f05a crypto: arm64/sha1-ce - fix for big endian
   cb70151453a1 crypto: arm64/aes-neon - fix for big endian
   c1c451bea4af crypto: arm64/aes-ccm-ce: fix for big endian
   c4957563b255 crypto: arm/aes-ce - fix for big endian
   dcb0c4ebc7ad crypto: arm64/ghash-ce - fix for big endian
   d60ecc7f02a4 crypto: arm64/sha2-ce - fix for big endian
   f9315853c7c1 s390/crypto: unlock on error in prng_tdes_read()
   a76c795f53e7 mm, compaction: fix NR_ISOLATED_* stats for pfn based migration
   d3b82f9a9716 mm: khugepaged: fix radix tree node leak in shmem collapse error path
   ab533014582f mm: khugepaged: close use-after-free race during shmem collapsing
   c9777f749c4c mm/hugetlb.c: use the right pte val for compare in hugetlb_cow
   0ff00251359e mmc: mmc_test: Uninitialized return value
   abe558647a0f PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend
   b90b6b8cce53 irqchip/bcm7038-l1: Implement irq_cpu_offline() callback
   d6229a05dd06 ima: fix memory leak in ima_release_policy
   8cbe9b689467 sbp-target: Fix second argument of percpu_ida_alloc()
   fed8068fd1de target/iscsi: Fix double free in lio_target_tiqn_addtpg()
   ec92af68808e scsi: mvsas: fix command_active typo
   efe08cc6939b ASoC: samsung: i2s: Fixup last IRQ unsafe spin lock call
   a5a550bd0768 ASoC: cht_bsw_rt5645: Fix leftover kmalloc
   3fcdecb0f9f6 iommu/vt-d: Flush old iommu caches for kdump when the device gets context mapped
   22604a045edb iommu/vt-d: Fix pasid table size encoding
   f7dd8813279b iommu/amd: Fix the left value check of cmd buffer
   9a134d29af48 iommu/amd: Missing error code in amd_iommu_init_device()
   35a294dd5723 clk: renesas: mstp: Support 8-bit registers for r7s72100
   8a7022b2ffad clk: imx31: fix rewritten input argument of mx31_clocks_init()
   8b4940dd9224 clk: sunxi-ng: sun8i-h3: Set CLK_SET_RATE_PARENT for audio module clocks
   a13af6a13e68 clk: ti: dra7: fix "failed to lookup clock node gmac_gmii_ref_clk_div" boot message
   c54f34533601 clk: clk-wm831x: fix a logic error
   36c3481984b5 clk: qcom: ipq806x: Fix board clk rates
   fdd91f12bebc hwmon: (g762) Fix overflows and crash seen when writing limit attributes
   18d749bb756f hwmon: (nct7802) Fix overflows seen when writing into limit attributes
   1e6b9473280a hwmon: (ds620) Fix overflows seen when writing temperature limits
   0bc18f1d87d9 hwmon: (amc6821) sign extension temperature
   4c8493cb90b9 hwmon: (scpi) Fix module autoload
   d618b1647e27 platform/x86: fujitsu-laptop: use brightness_set_blocking for LED-setting callbacks
   b803e5984015 x86/cpu: Probe CPUID leaf 6 even when cpuid_level == 6
   1121b5f49eb7 debugfs: improve DEFINE_DEBUGFS_ATTRIBUTE for !CONFIG_DEBUG_FS
   f4b9eaba036c clk: renesas: cpg-mssr: Fix inverted debug check
   a25cb9b5744b efi/efivar_ssdt_load: Don't return success on allocation failure
   b36f676475bd cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected
   40b0bbe612bb ath10k: use the right length of "background"
   3e0f61361a82 nl80211: Use different attrs for BSSID and random MAC addr in scan req
   3d04e6a06abc mac80211: fix tid_agg_rx NULL dereference
   f4ded840a335 drm/i915: tune down the fast link training vs boot fail
   2ed2b3cc6ae3 drm/i915/dp: add lane_count check in intel_dp_check_link_status
   ac2370c93a40 usb: dwc3: gadget: always unmap EP0 requests
   6039272a760e usb: dwc3: ep0: explicitly call dwc3_ep0_prepare_one_trb()
   4f76ead23734 usb: dwc3: ep0: add dwc3_ep0_prepare_one_trb()
   7acc87fae524 iio: accel: st_accel: fix LIS3LV02 reading and scaling
   d59378efa7ac staging: iio: ad7606: fix improper setting of oversampling pins
   401316ef7253 mei: move write cb to completion on credentials failures
   3ab87b8fd267 mei: bus: fix mei_cldev_enable KDoc
   c103d55bb7d7 USB: serial: io_ti: bind to interface after fw download
   d302588a910f ARM: dts: sun7i: bananapi-m1-plus: Enable USB PHY for USB host support
   56dce131ec69 arm64: dts: hip06: Correct hardware pin number of usb node
   0c03658a3e7b USB: phy: am335x-control: fix device and of_node leaks
   518a4d8d533c ARM: dts: r8a7794: Correct hsusb parent clock
   7780eb2fd54b usb: gadget: Fix second argument of percpu_ida_alloc()
   a3ff51875d83 USB: serial: kl5kusb105: abort on open exception path
   5f8a0a2fd33b ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream()
   fb106dc8b847 usb: musb: blackfin: add bfin_fifo_offset in bfin_ops
   1bff22506598 usb: gadget: udc: core: fix return code of usb_gadget_probe_driver()
   c7c4ad7fce6d usb: hub: Move hub_port_disable() to fix warning if PM is disabled
   b7fb0479ecd6 usb: musb: Fix trying to free already-free IRQ 4
   217c03eaf10c usb: dwc3: gadget: Fix full speed mode
   7de3c659811a usb: dwc3: pci: Fix dr_mode misspelling
   6fdac0047799 usb: dwc3: pci: add Intel Gemini Lake PCI ID
   220d6521aac2 xhci: Fix race related to abort operation
   d3f3b0bd0756 xhci: Use delayed_work instead of timer for command timeout
   0da62a5b5242 usb: xhci-mem: use passed in GFP flags instead of GFP_KERNEL
   997d598c694f USB: serial: mos7720: fix parallel probe
   eb9e22ac9265 USB: serial: mos7720: fix parport use-after-free on probe errors
   c91243377c8d USB: serial: mos7720: fix use-after-free on probe errors
   b756fba5e563 USB: serial: mos7720: fix NULL-deref at open
   8cc2ae8e130e USB: serial: mos7840: fix NULL-deref at open
   68ab1ccfc085 USB: serial: kobil_sct: fix NULL-deref in write
   37ca8378e77c USB: serial: cyberjack: fix NULL-deref at open
   fd435e99f5ed USB: serial: oti6858: fix NULL-deref at open
   1653f66ba3fb USB: serial: io_edgeport: fix NULL-deref at open
   73ec9d58b1c7 USB: serial: ti_usb_3410_5052: fix NULL-deref at open
   d1706b42d164 USB: serial: garmin_gps: fix memory leak on failed URB submit
   b653000d9b0c USB: serial: iuu_phoenix: fix NULL-deref at open
   427bac51ce67 USB: serial: io_ti: fix I/O after disconnect
   59f740cd834c USB: serial: io_ti: fix another NULL-deref at open
   2ef82cf063c8 USB: serial: io_ti: fix NULL-deref at open
   8d5f29b2d578 USB: serial: spcp8x5: fix NULL-deref at open
   e1fe8df45b74 USB: serial: keyspan_pda: verify endpoints at probe
   10da95b6a2eb USB: serial: pl2303: fix NULL-deref at open
   e29498ba6e1f USB: serial: quatech2: fix sleep-while-atomic in close
   05859d754d6f USB: serial: omninet: fix NULL-derefs at open and disconnect
   be17e1c916ce usb: return error code when platform_get_irq fails
   0e9fc72194ce usb: xhci: hold lock over xhci_abort_cmd_ring()
   527f810d8a86 xhci: Handle command completion and timeout race
   c18ca85fd6de usb: host: xhci: Fix possible wild pointer when handling abort command
   67a7de5a2f35 usb: xhci: fix return value of xhci_setup_device()
   775a2bec9cdf xhci: free xhci virtual devices with leaf nodes first
   80c502e0ce6f usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Apollo Lake
   d3a9f7c7e8c4 usb: xhci: fix possible wild pointer
   5ded28d83128 usb: gadget: composite: Test get_alt() presence instead of set_alt()
   16718d267e09 USB: dummy-hcd: fix bug in stop_activity (handle ep0)
   47acb8434892 USB: fix problems with duplicate endpoint addresses
   a45f34e820c6 USB: gadgetfs: fix checks of wTotalLength in config descriptors
   27b4d04d1b87 USB: gadgetfs: fix use-after-free bug
   cd4da96b1bac USB: gadgetfs: fix unbounded memory allocation bug
   1fa95887b663 usb: gadgetfs: restrict upper bound on device configuration size
   e4efa88511eb usb: storage: unusual_uas: Add JMicron JMS56x to unusual device
   05ace125078d usb: musb: dsps: implement clear_ep_rxintr() callback
   38caa4d8986e usb: musb: core: add clear_ep_rxintr() to musb_platform_ops
   483c56831853 KVM: MIPS: Flush KVM entry code from icache globally
   08aa895b61e1 KVM: MIPS: Don't clobber CP0_Status.UX
   d33b04df932e KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS
   e3843cdbf81a drm/i915: Force VDD off on the new power seqeuencer before starting to use it
   dbce182845b4 gcc-plugins: update gcc-common.h for gcc-7
   970150316c04 mac80211: initialize fast-xmit 'info' later
   cf3b94f8fe70 ARM: davinci: da850: don't add emac clock to lookup table twice
   391c21a9ab0a parisc: Mark cr16 clocksource unstable on SMP systems
   684f6df20889 fscrypt: fix renaming and linking special files
   6c55d3ad7fb3 ALSA: usb-audio: Fix irq/process data synchronization
   3074297922e2 ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL
   81a35981225c ALSA: hda - Fix up GPIO for ASUS ROG Ranger
   576b9d7789d8 iio: bmi160: Fix time needed to sleep after command execution
   ad2a1ae984c6 iio: max44000: correct value in illuminance_integration_time_available
   ee8e4a73dbf6 iio: common: st_sensors: fix channel data parsing

(From OE-Core rev: dc5cb390c5563c5d839c29cf3f85c2317f7cff64)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1a3daa89e28d58d35692cd2ae2af3e49c9f536fb)

fix merge conflict do to changes in master

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Bruce Ashfield
e309d144d7 linux-yocto/4.8: update to -rt10
Paul Gortmaker has updated 4.8 to the latest -rt release. This
integrates those changes to standard/preempt-rt/*. As usual the
branches are kept fast forward, and a clean copy of the patches
can be found on standard/preempt-rt/rebase.

(From OE-Core rev: f20ab66d2d012c535755af556d81412d5182cefd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 9b4a71785221e2b67180fe6047e2ba2ad83f6523)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Bruce Ashfield
c69d0d3756 linux-yocto/4.1: update to v4.1.37
Integrating the -stable release. Changes are as follows:

   35327468a79d Linux 4.1.37
   c27edfb64bbf scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression
   016d02981cce tipc: check minimum bearer MTU
   efcf38bd4020 net: ping: check minimum size on ICMP header length
   e29fdf045048 packet: fix race condition in packet_set_ring
   fabaaaa96d54 net: add recursion limit to GRO
   7abf32087c1d Bluetooth: Fix potential NULL dereference in RFCOMM bind callback
   74cd81c810b9 ptrace: being capable wrt a process requires mapped uids/gids
   8165fc3eb28c scsi: arcmsr: Buffer overflow in arcmsr_iop_message_xfer()
   1171afc4a34e mnt: Add a per mount namespace limit on the number of mounts
   62fa696b7b43 posix_acl: Clear SGID bit when setting file permissions
   de42b9559d0c fs: Avoid premature clearing of capabilities
   cb8e1eef351b fs: Give dentry to inode_change_ok() instead of inode
   2ee3ceeccd34 nfsd: Disable NFSv2 timestamp workaround for NFSv3+
   820bc4582ab9 fuse: Propagate dentry down to inode_change_ok()
   89bc54c54027 xfs: Propagate dentry down to inode_change_ok()
   1b364dc9edba xattr: Option to disable meta-data block cache
   9a66bc6ee0f9 tcp: fix use after free in tcp_xmit_retransmit_queue()
   ebdb88b8e465 x86/kexec: add -fno-PIE
   672612a21845 scripts/has-stack-protector: add -fno-PIE
   e06ded86d961 x86/init: Fix cr4_init_shadow() on CR4-less machines
   eec746939372 ARM: 8617/1: dma: fix dma_max_pfn()
   58024f829d0b mm,ksm: fix endless looping in allocating memory when ksm enable
   d427d645ccf9 can: dev: fix deadlock reported after bus-off
   791a92897274 cpuset: handle race between CPU hotplug and cpuset_hotplug_work
   6b82b0601ac2 mtd: nand: davinci: Reinitialize the HW ECC engine in 4bit hwctl
   e537a0977f3e drm/msm: fix use of copy_from_user() while holding spinlock
   b56eb9cdc5f1 bus: arm-ccn: Fix PMU handling of MN
   7298a8bf4c63 bus: arm-ccn: Provide required event arguments

(From OE-Core rev: f38c64c607373070982d52c40af545d37a7217ee)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 592468a262cc01e4954be33b4281ffca84fea838)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Bruce Ashfield
4b4f7aee6d linux-yocto/4.8: -stable update to v4.8.17
Updating to the korg 4.8.17 -stable release. Changes are as follows:

   3d8f8d06abb3 Linux 4.8.17
   adf363fd5ab9 drm/i915: skip the first 4k of stolen memory on everything >= gen8
   000e612673da drm/i915: Initialize dev_priv->atomic_cdclk_freq at init time
   22aba475d97b drm/i915: Fix cdclk vs. dev_cdclk mess when not recomputing things
   294bb3402c76 drm/i915/dsi: Do not clear DPOUNIT_CLOCK_GATE_DISABLE from vlv_init_display_clock_gating
   6a412ff3df87 drm/i915/dsi: Fix chv_exec_gpio disabling the GPIOs it is setting
   4803ec2a74c4 net: mvpp2: fix dma unmapping of TX buffers for fragments
   48f26edb689c sg_write()/bsg_write() is not fit to be called under KERNEL_DS
   d787c6b32c3f kconfig/nconf: Fix hang when editing symbol with a long prompt
   e141d1a21e31 target/user: Fix use-after-free of tcmu_cmds if they are expired
   29f3d1127c4b libnvdimm, pfn: fix align attribute
   3a4e4281b5cd powerpc/ps3: Fix system hang with GCC 5 builds
   e451d674bac5 powerpc/64e: Convert cmpi to cmpwi in head_64.S
   0349fbebd984 SUNRPC: fix refcounting problems with auth_gss messages.
   c513ade4ca56 pNFS: Fix a deadlock between read resends and layoutreturn
   abb2903f1ac2 pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid
   f061c76c1d56 pNFS: Don't clear the layout stateid if a layout return is outstanding
   7de1b81c27fd pNFS: On error, do not send LAYOUTGET until the LAYOUTRETURN has completed
   8f5ff877bf19 nfs_write_end(): fix handling of short copies
   1678adac85da libceph: verify authorize reply on connect
   1f93d1a77b17 PCI: Check for PME in targeted sleep state
   c75bc2bde102 i40iw: Use correct src address in memcpy to rdma stats counters
   7d0a6cf3e8c9 Input: drv260x - fix input device's parent assignment
   b7843712cbd2 v4l: tvp5150: Add missing break in set control handler
   4963b1910090 media: solo6x10: fix lockup by avoiding delayed register write
   88bfde25e60f s5p-mfc: fix failure path of s5p_mfc_alloc_memdev()
   c3fe33d185e0 mn88473: fix chip id check on probe
   84b2f664409c mn88472: fix chip id check on probe
   15d1d226eab4 IB/cma: Fix a race condition in iboe_addr_get_sgid()
   7b3721aff59b IB/rxe: Fix a memory leak in rxe_qp_cleanup()
   2a0aa77a54fb IB/multicast: Check ib_find_pkey() return value
   37d4adba02d3 IPoIB: Avoid reading an uninitialized member variable
   f079fc11f28e IB/mad: Fix an array index check
   e661b5d4b94f fgraph: Handle a case where a tracer ignores set_graph_notrace
   b2758da04d73 platform/x86: asus-nb-wmi.c: Add X45U quirk
   f61152e3bbf0 ftrace/x86_32: Set ftrace_stub to weak to prevent gcc from using short jumps to it
   8569aadeed3f vsock/virtio: fix src/dst cid format
   576ea9e5e92e fsnotify: Fix possible use-after-free in inode iteration on umount
   43983ce75e61 kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF)
   9a5cf8c4b112 KVM: PPC: Book3S HV: Don't lose hardware R/C bit updates in H_PROTECT
   b751eb6e9d99 KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state
   0773e9248ae3 scsi: aacraid: remove wildcard for series 9 controllers
   b202064f0b3f md/raid5: limit request size according to implementation limits
   47090341ec97 sc16is7xx: Drop bogus use of IRQF_ONESHOT
   c33e1abd2e31 arm64: KVM: pmu: Reset PMSELR_EL0.SEL to a sane value before entering the guest
   d3d61bb37afb s390/kexec: use node 0 when re-adding crash kernel memory
   9652b62af49d s390/vmlogrdr: fix IUCV buffer allocation
   f356ab038e78 firmware: fix usermode helper fallback loading
   5c98bf834d6f ARC: mm: arc700: Don't assume 2 colours for aliasing VIPT dcache
   cc328ce59a4a scsi: avoid a permanent stop of the scsi device's request queue
   6d675dffd425 scsi: zfcp: fix rport unblock race with LUN recovery
   057fe03d627e scsi: zfcp: do not trace pure benign residual HBA responses at default level
   5cebfea8080c scsi: zfcp: fix use-after-"free" in FC ingress path after TMF
   de8a06c673ac iscsi-target: Return error if unable to add network portal
   9c3928be0dba scsi: megaraid_sas: Do not set MPI2_TYPE_CUDA for JBOD FP path for FW which does not support JBOD sequence map
   dbd4e6c60b4f scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs before reset
   3863ab6d710d stm class: Fix device leak in open error path
   698ac693dbb4 vt: fix Scroll Lock LED trigger name
   6d8bb567102c block: protect iterate_bdevs() against concurrent close
   2695afd5e9c2 mei: me: add lewisburg device ids
   7be0a5f39d64 mei: request async autosuspend at the end of enumeration
   dfc3c8a0fa1b drivers/gpu/drm/ast: Fix infinite loop if read fails
   0f95e4a58ecd drm/amdgpu: fix init save/restore list in gfx_v8.0
   8bfa4f5e6395 drm/gma500: Add compat ioctl
   10b598df92d9 drm/radeon/si: load the proper firmware on 0x87 oland boards
   cdb7aaaaecff drm/radeon: add additional pci revision to dpm workaround
   1f884ec818a6 drm/radeon: Hide the HW cursor while it's out of bounds
   6fb94229b2f6 drm/radeon: Also call cursor_move_locked when the cursor size changes
   9c6fb7bf404d drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex
   2a7a43772bff drm/nouveau/i2c/gk110b,gm10x: use the correct implementation
   28d186430686 drm/nouveau/ttm: wait for bo fence to signal before unmapping vmas
   82d9824d9446 drm/nouveau/ltc: protect clearing of comptags with mutex
   ce71868acee2 drm/nouveau/bios: require checksum to match for fast acpi shadow method
   764e8e8af190 drm/nouveau/kms: lvds panel strap moved again on maxwell
   00e1fb138ffa drm/nouveau/gr: fallback to legacy paths during firmware lookup
   fef542735a48 drm/amd/amdgpu: enable GUI idle INT after enabling CGCG
   bab520835f81 ACPI / video: Add force_native quirk for HP Pavilion dv6
   b7eea51a3a5c ACPI / video: Add force_native quirk for Dell XPS 17 L702X
   ce8100660364 staging: comedi: ni_mio_common: fix E series ni_ai_insn_read() data
   689d59259385 staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask
   823c5c94f716 hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()
   235394e1625c docs: sphinx-extensions: make rstFlatTable work with docutils 0.13
   a26a016a4e2f thermal: hwmon: Properly report critical temperature in sysfs
   def2c87dc7ac clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk
   2f885dafe704 arm64: tegra: Add VDD_GPU regulator to Jetson TX1
   bd12562fceb4 gpio: chardev: Return error for seek operations
   61d0b7139cf9 timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion
   95d2a43e5a59 regulator: stw481x-vmmc: fix ages old enable error
   52980ceb1832 mmc: sdhci: Fix recovery from tuning timeout
   0ed0b2592437 ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards.
   d80ff7cb5d06 ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
   42e76c596c93 cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts
   d2546f653bb0 rtl8xxxu: Work around issue with 8192eu and 8723bu devices not reconnecting
   2abcc023a460 perf/x86/intel/cstate: Prevent hotplug callback leak
   7b9e1a16a1b0 perf/x86: Fix exclusion of BTS and LBR for Goldmont
   e24523a80c19 rtlwifi: Fix enter/exit power_save
   c9fce6ba9c09 ssb: Fix error routine when fallback SPROM fails
   c65ed08dcc04 Linux 4.8.16
   645897231f96 driver core: fix race between creating/querying glue dir and its cleanup
   f199bdbaab37 Revert "netfilter: move nat hlist_head to nf_conn"
   99d6d4e0c50c Revert "netfilter: nat: convert nat bysrc hash to rhashtable"
   774225699b4d arm64: mark reserved memblock regions explicitly in iomem
   587e89bd56c1 xfs: set AGI buffer type in xlog_recover_clear_agi_bucket
   959e363eaf14 arm/xen: Use alloc_percpu rather than __alloc_percpu
   6fbd3fb6c4df xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing
   883f12a20583 tpm xen: Remove bogus tpm_chip_unregister
   8419f5215db3 kernel/debug/debug_core.c: more properly delay for secondary CPUs
   63b33e0885d6 watchdog: qcom: fix kernel panic due to external abort on non-linefetch
   bf902ead61d8 watchdog: mei_wdt: request stop on reboot to prevent false positive event
   2f826a72ea8b kernel/watchdog: use nmi registers snapshot in hardlockup handler
   bbf23f00d55e CIFS: Fix a possible memory corruption in push locks
   9f1f5076149a CIFS: Fix missing nls unload in smb2_reconnect()
   ff04da387c10 CIFS: Fix a possible memory corruption during reconnect
   6cb589c7529f ASoC: intel: Fix crash at suspend/resume without card registration
   769c0922d4a6 dm space map metadata: fix 'struct sm_metadata' leak on failed create
   ab10ab0a2a3d dm raid: fix discard support regression
   454b98d3f2b5 dm rq: fix a race condition in rq_completed()
   26011e67339e dm crypt: mark key as invalid until properly loaded
   bd5fcd18c8c3 dm flakey: return -EINVAL on interval bounds error in flakey_ctr()
   1ca66d6a19d2 dm table: an 'all_blk_mq' table must be loaded for a blk-mq DM device
   d948d3b1e416 dm table: fix 'all_blk_mq' inconsistency when an empty table is loaded
   45f631113b36 blk-mq: Do not invoke .queue_rq() for a stopped queue
   e3742a15d6cd PM / OPP: Pass opp_table to dev_pm_opp_put_regulator()
   8b63a922ac07 usb: gadget: composite: always set ep->mult to a sensible value
   d4f4b2e659f5 mm, page_alloc: keep pcp count and list contents in sync if struct page is corrupted
   0927d281a2fc mm/vmscan.c: set correct defer count for shrinker
   3e0ef1b8e0cc nvmet: Fix possible infinite loop triggered on hot namespace removal
   6290a3bcd3c3 loop: return proper error from loop_queue_rq()
   bf0f02079039 f2fs: fix overflow due to condition check order
   154d83a8384e f2fs: set ->owner for debugfs status file's file_operations
   67e5239c8366 Revert "f2fs: use percpu_counter for # of dirty pages in inode"
   d06eaf28f1bb ext4: do not perform data journaling when data is encrypted
   e33673bef6f0 ext4: return -ENOMEM instead of success
   3664877022ea ext4: reject inodes with negative size
   1bfcffbb8801 ext4: add sanity checking to count_overhead()
   9689eb99ce0f ext4: fix in-superblock mount options processing
   52a9daa3d5c0 ext4: use more strict checks for inodes_per_block on mount
   7505584356d2 ext4: fix stack memory corruption with 64k block size
   86efd99f0ebe ext4: fix mballoc breakage with 64k block size
   8022387d236a crypto: caam - fix AEAD givenc descriptors
   ade692b8f1f5 ptrace: Capture the ptracer's creds not PT_PTRACE_CAP
   23d179acb363 vfs,mm: fix return value of read() at s_maxbytes
   e45692fa1aea mm: Add a user_ns owner to mm_struct and fix ptrace permission checks
   04804d83d483 block_dev: don't test bdev->bd_contains when it is not stable
   52d69727a441 fs: exec: apply CLOEXEC before changing dumpable task flags
   781e976ac2c6 exec: Ensure mm->user_ns contains the execed files
   fc1d3e5f3cd0 btrfs: make file clone aware of fatal signals
   8c59356c1232 Btrfs: fix incremental send failure caused by balance
   02fffa116bda Btrfs: don't BUG() during drop snapshot
   0f2e022db237 btrfs: fix a possible umount deadlock
   65563ab7271b Btrfs: fix memory leak in do_walk_down
   364b85c57d25 btrfs: clean the old superblocks before freeing the device
   6a6e9276f3f5 Btrfs: don't leak reloc root nodes on error
   4d3d9b59d963 Btrfs: return gracefully from balance if fs tree is corrupted
   a6522e487b2c Btrfs: bail out if block group has different mixed flag
   d7839adcb0e3 Btrfs: fix memory leak in reading btree blocks
   1a087cd869c6 clk: ti: omap36xx: Work around sprz319 advisory 2.1
   2b96c4b19e0a ALSA: hda: when comparing pin configurations, ignore assoc in addition to seq
   dc8144f49988 ALSA: hda - Gate the mic jack on HP Z1 Gen3 AiO
   685c4db17890 ALSA: hda - fix headset-mic problem on a Dell laptop
   b757fc019fc9 ALSA: hda - ignore the assoc and seq when comparing pin configurations
   38c6095f48fe ALSA: hda/ca0132 - Add quirk for Alienware 15 R2 2016
   5496ec423449 ALSA: hiface: Fix M2Tech hiFace driver sampling rate change
   abf549a8b969 ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks
   6b0a56e9aaf3 usbip: vudc: fix: Clear already_seen flag also for ep0
   a9143e58d3cc USB: UHCI: report non-PME wakeup signalling for Intel hardware
   4422a26936ae usb: gadget: composite: correctly initialize ep->maxpacket
   be8f1c44177a usb: gadget: f_uac2: fix error handling at afunc_bind
   79d5a30e37ab usb: hub: Fix auto-remount of safely removed or ejected USB-3 devices
   e3dfbc8904b3 usb: dwc3: gadget: set PCM1 field of isochronous-first TRBs
   269edaef820f USB: cdc-acm: add device id for GW Instek AFG-125
   741523f3da82 USB: serial: kl5kusb105: fix open error path
   f34b7e027eeb USB: serial: option: add dlink dwm-158
   e47e81c4e705 USB: serial: option: add support for Telit LE922A PIDs 0x1040, 0x1041
   3aa3cb940878 Btrfs: fix qgroup rescan worker initialization
   691ea6c7eb1e Btrfs: fix emptiness check for dirtied extent buffers at check_leaf()
   0695d8b10a88 btrfs: store and load values of stripes_min/stripes_max in balance status item
   80f7d2836e37 Btrfs: fix relocation incorrectly dropping data references
   f1b268d7a8e2 Btrfs: fix tree search logic when replaying directory entry deletes
   65553a02a313 Btrfs: fix deadlock caused by fsync when logging directory entries
   361e82137a2d Btrfs: fix BUG_ON in btrfs_mark_buffer_dirty
   562de9c7ce24 btrfs: limit async_work allocation and worker func duration
   f080d7094838 aoe: fix crash in page count manipulation
   8bba2e2e62cb Linux 4.8.15
   762c9bb16fce crypto: rsa - Add Makefile dependencies to fix parallel builds
   014e5a7d9354 hotplug: Make register and unregister notifier API symmetric
   3527ad05b46e batman-adv: Check for alloc errors when preparing TT local data
   32ccd76788a5 m68k: Fix ndelay() macro
   9fc7a4758608 ceph: don't set req->r_locked_dir in ceph_d_revalidate
   a05f493f8d4e ARM: dts: imx7d: fix LCDIF clock assignment
   798c825fb006 ARM: dts: orion5x: fix number of sata port for linkstation ls-gl
   d271b9bec2d3 Revert "ACPI: Execute _PTS before system reboot"
   3ee9f16cff18 can: peak: fix bad memory access and free sequence
   212e0ff80970 can: raw: raw_setsockopt: limit number of can_filter that can be set
   bdb5ed2040f5 crypto: marvell - Don't corrupt state of an STD req for re-stepped ahash
   bfef274e4dae crypto: mcryptd - Check mcryptd algorithm compatibility
   86bea59218a0 crypto: caam - fix pointer size for AArch64 boot loader, AArch32 kernel
   666531ca650e crypto: marvell - Don't copy hash operation twice into the SRAM
   04925ba9b944 acpi, nfit: fix bus vs dimm confusion in xlat_status
   53ed7c2e8d02 acpi, nfit: validate ars_status output buffer size
   e04e2dace316 acpi, nfit, libnvdimm: fix / harden ars_status output length handling
   483ac1487a9d acpi, nfit: fix extended status translations for ACPI DSMs
   0525cebf8ef7 perf/x86: Fix full width counter, counter overflow
   eceab1fd7f9e vhost-vsock: fix orphan connection reset
   b0224f36735e sched/autogroup: Fix 64-bit kernel nice level adjustment
   2a477999977c scsi: lpfc: fix oops/BUG in lpfc_sli_ringtxcmpl_put()
   ac65fe0bbdea device-dax: fix private mapping restriction, permit read-only
   2386c6b188c5 locking/rtmutex: Use READ_ONCE() in rt_mutex_owner()
   7b2347c8e803 locking/rtmutex: Prevent dequeue vs. unlock race
   bed4eef2e8fa zram: restrict add/remove attributes to root only
   4fb7569c7370 parisc: Fix TLB related boot crash on SMP machines
   b81e5db49515 parisc: Remove unnecessary TLB purges from flush_dcache_page_asm and flush_icache_page_asm
   7e8f68aa1833 parisc: Purge TLB before setting PTE
   6e284445bab5 fuse: fix clearing suid, sgid for chown()
   e70d6d2d7383 powerpc/boot: Fix build failure in 32-bit boot wrapper
   a82ad493f045 powerpc/mm: Fix lazy icache flush on pre-POWER5
   84b36287c72d powerpc/eeh: Fix deadlock when PE frozen state can't be cleared
   7b8c57cad53a Linux 4.8.14
   1670d1584701 esp6: Fix integrity verification when ESN are used
   b3e9d4982939 esp4: Fix integrity verification when ESN are used
   be5339492b29 flowcache: Increase threshold for refusing new allocations
   3a116fa8c95d Revert: "ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit()"
   686182870c6a ipv4: Set skb->protocol properly for local output
   e67bd82fb79d ipv6: Set skb->protocol properly for local output
   22d94c326660 Don't feed anything but regular iovec's to blk_rq_map_user_iov
   e4a6c61c6b71 constify iov_iter_count() and iter_is_iovec()
   907bc3181c9a sparc32: Fix inverted invalid_frame_pointer checks on sigreturns
   360e257f8cf3 sparc64: fix compile warning section mismatch in find_node()
   2f02dcb673a4 sparc64: Fix find_node warning if numa node cannot be found
   ad02ec7d37a2 ipv4: Drop suffix update from resize code
   0b1c601d367f ipv4: Drop leaf from suffix pull/push functions
   cd8a6c0e95bf ipv4: Fix memory leak in exception case for splitting tries
   a8780378b39e ipv4: Restore fib_trie_flush_external function and fix call ordering
   5ff5e5c06c25 net: ping: check minimum size on ICMP header length
   f818e5d86aef net: avoid signed overflows for SO_{SND|RCV}BUFFORCE
   bfecf9017f8b geneve: avoid use-after-free of skb->data
   4daa2c73eb05 tipc: check minimum bearer MTU
   1ff3209a21c8 sh_eth: remove unchecked interrupts for RZ/A1
   bbf913d774b7 net: bcmgenet: Utilize correct struct device for all DMA operations
   accb7c99fc0f cdc_ether: Fix handling connection notification
   34457543e203 ip6_offload: check segs for NULL in ipv6_gso_segment.
   cef222d40f2e packet: fix race condition in packet_set_ring
   17941a9d6409 GSO: Reload iph after pskb_may_pull
   ff0d7874078d net/dccp: fix use-after-free in dccp_invalid_packet
   023cd33ece37 net: macb: fix the RX queue reset in macb_rx()
   25d9b4bb64ea netlink: Do not schedule work from sk_destruct
   f5dad3473d83 netlink: Call cb->done from a worker thread
   360d6a23e79d net/sched: pedit: make sure that offset is valid
   aa239369bdfa net: dsa: fix unbalanced dsa_switch_tree reference counting
   9a7479273949 net, sched: respect rcu grace period on cls destruction
   a9437ebc69f5 net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link change
   ddf053431efe udplite: call proper backlog handlers
   7b0aa75be3ab ipv6: bump genid when the IFA_F_TENTATIVE flag is clear
   58c8cc33de6c rtnl: fix the loop index update error in rtnl_dump_ifinfo()
   84df56749f48 l2tp: fix racy SOCK_ZAPPED flag check in l2tp_ip{,6}_bind()
   7f8b251a0985 rtnetlink: fix FDB size computation
   c39caa8f80c0 af_unix: conditionally use freezable blocking calls in read
   bdc5c63e4b38 net: sky2: Fix shutdown crash
   a75684ab7a12 ip6_tunnel: disable caching when the traffic class is inherited
   1b079d5b9fc1 net: check dead netns for peernet2id_alloc()
   65dfc8b4547f net: dsa: b53: Fix VLAN usage and how we treat CPU port
   f959eb507439 virtio-net: add a missing synchronize_net()
   8070f33be6c4 gro_cells: mark napi struct as not busy poll candidates
   55d64c0b3c15 Linux 4.8.13
   a4edb1a2b045 arm64: suspend: Reconfigure PSTATE after resume from idle
   6353400d9130 arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call
   b49b1ae6d341 arm64: cpufeature: Schedule enable() calls instead of calling them via IPI
   e4e77deda200 batman-adv: Detect missing primaryif during tp_send as error
   f106de5604dd clk: sunxi: Fix M factor computation for APB1
   9e2d9e95094a perf/x86: Restore TASK_SIZE check on frame pointer
   ab34b429a01f drm/mediatek: fix null pointer dereference
   43b5bb262711 pwm: Fix device reference leak
   6c6947613979 KVM: use after free in kvm_ioctl_create_device()
   ff8b06b4efa6 arm64: dts: juno: fix cluster sleep state entry latency on all SoC versions
   f67b89acdfa1 drm/radeon: fix check for port PM availability
   835bb5cd3653 drm/amdgpu: fix check for port PM availability
   972d595824b6 drm/radeon: fix power state when port pm is unavailable (v2)
   be1b75edf20b drm/amdgpu: fix power state when port pm is unavailable
   bd78c077f8fe drm/i915: drop the struct_mutex when wedged or trying to reset
   5dd86b6e5873 drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt() error
   05abe7452b71 KVM: arm/arm64: vgic: Don't notify EOI for non-SPIs
   ca42bd35d308 mwifiex: printk() overflow with 32-byte SSIDs
   de9ba13ebfdb PCI: Set Read Completion Boundary to 128 iff Root Port supports it (_HPX)
   4f4857148b4a PCI: Export pcie_find_root_port
   27dce9bcad4d mm: workingset: fix NULL ptr in count_shadow_nodes
   60e33689a06e rcu: Fix soft lockup for rcu_nocb_kthread
   b6f9e236b7ef Input: psmouse - disable automatic probing of BYD touchpads
   6ca8ab7052c4 Input: change KEY_DATA from 0x275 to 0x277
   600bec25b855 ovl: fix d_real() for stacked fs
   5661a6926871 mm: fix false-positive WARN_ON() in truncate/invalidate for hugetlb
   48b6b50a2ba5 kasan: update kasan_global for gcc 7
   db04d354b7f1 zram: fix unbalanced idr management at hot removal
   010020900006 thp: fix corner case of munlock() of PTE-mapped THPs
   08fd95de5eee mm, thp: propagation of conditional compilation in khugepaged.c
   76e59ecacd54 ARC: Don't use "+l" inline asm constraint
   b43fb9f6f162 ARC: mm: PAE40: Fix crash at munmap
   8d1ee7b245ef scsi: libfc: fix seconds_since_last_reset miscalculation
   10e2627377b0 scsi: hpsa: use bus '3' for legacy HBA devices
   e170c1003c02 libata-scsi: Fixup ata_gen_passthru_sense()

(From OE-Core rev: e58e0ed459c18e2e8de63350e95a45307ce2b7c7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 9cd1850a0a8882796f89c65c073bc80f915f413f)

fix merged conflicts do to changes in master
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Bruce Ashfield
8f829dfb12 linux-yocto/4.4: update to v4.4.41
Integrating the korg -stable release. Changes are as follows:

   cdd86b972265 Linux 4.4.41
   9f11a0ab6a96 net: mvpp2: fix dma unmapping of TX buffers for fragments
   d85727365859 sg_write()/bsg_write() is not fit to be called under KERNEL_DS
   7fb5a936457d kconfig/nconf: Fix hang when editing symbol with a long prompt
   e321f384d8a5 target/user: Fix use-after-free of tcmu_cmds if they are expired
   e5de1c724c06 powerpc: Convert cmp to cmpd in idle enter sequence
   cadaba838f1b powerpc/ps3: Fix system hang with GCC 5 builds
   8a2bcaae1bc7 nfs_write_end(): fix handling of short copies
   b66e3126569e libceph: verify authorize reply on connect
   edfe6a79f905 PCI: Check for PME in targeted sleep state
   8db00756afbd Input: drv260x - fix input device's parent assignment
   44685f03dd56 media: solo6x10: fix lockup by avoiding delayed register write
   952a9f5af9f8 IB/cma: Fix a race condition in iboe_addr_get_sgid()
   b7f73ada92a3 IB/multicast: Check ib_find_pkey() return value
   7b1369215616 IPoIB: Avoid reading an uninitialized member variable
   0de381ca35b5 IB/mad: Fix an array index check
   e945df4c6bc2 fgraph: Handle a case where a tracer ignores set_graph_notrace
   88e41441ccd4 platform/x86: asus-nb-wmi.c: Add X45U quirk
   2ef502e860f1 ftrace/x86_32: Set ftrace_stub to weak to prevent gcc from using short jumps to it
   19aa9c14989e kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF)
   129e4323df37 KVM: PPC: Book3S HV: Don't lose hardware R/C bit updates in H_PROTECT
   ddf5718adfb8 KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state
   1c8841c9b7d2 md/raid5: limit request size according to implementation limits
   d78006d2345f sc16is7xx: Drop bogus use of IRQF_ONESHOT
   b988320dab53 s390/vmlogrdr: fix IUCV buffer allocation
   656c9abd574b firmware: fix usermode helper fallback loading
   429a533a3d9a ARC: mm: arc700: Don't assume 2 colours for aliasing VIPT dcache
   dbb67e1d585d scsi: avoid a permanent stop of the scsi device's request queue
   565ae61d8995 scsi: zfcp: fix rport unblock race with LUN recovery
   3b3739dfa69c scsi: zfcp: do not trace pure benign residual HBA responses at default level
   1cc0f9488b91 scsi: zfcp: fix use-after-"free" in FC ingress path after TMF
   bccd78746f88 scsi: megaraid_sas: Do not set MPI2_TYPE_CUDA for JBOD FP path for FW which does not support JBOD sequence map
   49ea06561154 scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs before reset
   edf1169bbbaa vt: fix Scroll Lock LED trigger name
   f4f02a856a92 block: protect iterate_bdevs() against concurrent close
   abb78811e242 mei: request async autosuspend at the end of enumeration
   1f9c91a37542 drivers/gpu/drm/ast: Fix infinite loop if read fails
   970dc8cdec9c drm/gma500: Add compat ioctl
   0e0b70f581fc drm/radeon: add additional pci revision to dpm workaround
   62a272498dbe drm/radeon: Hide the HW cursor while it's out of bounds
   deac395e0ba8 drm/radeon: Also call cursor_move_locked when the cursor size changes
   cb8d63d885e9 drm/nouveau/i2c/gk110b,gm10x: use the correct implementation
   adea4a7b0f2b drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex
   d32d4b3d7c9f drm/nouveau/ltc: protect clearing of comptags with mutex
   3a2990e67b05 drm/nouveau/bios: require checksum to match for fast acpi shadow method
   a163451c80b0 drm/nouveau/kms: lvds panel strap moved again on maxwell
   69e236e70ead ACPI / video: Add force_native quirk for HP Pavilion dv6
   2c2375e40d28 ACPI / video: Add force_native quirk for Dell XPS 17 L702X
   01b6089b5622 staging: comedi: ni_mio_common: fix E series ni_ai_insn_read() data
   5283a7bedbcb staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask
   e692edec93c1 thermal: hwmon: Properly report critical temperature in sysfs
   9d9541d44a26 clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk
   e01b04be3eb0 timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion
   96ea1b9ea099 regulator: stw481x-vmmc: fix ages old enable error
   842ec27cd3f2 mmc: sdhci: Fix recovery from tuning timeout
   dae7cb414834 ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards.
   b63929e8e130 cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts
   05f4183ab5a4 rtlwifi: Fix enter/exit power_save
   f5d90f434c9a ssb: Fix error routine when fallback SPROM fails
   a3edc7b2e537 Linux 4.4.40
   7a2b4ee54b3f ppp: defer netns reference release for ppp channel
   37de955c11b5 driver core: fix race between creating/querying glue dir and its cleanup
   f85a337b4066 xfs: set AGI buffer type in xlog_recover_clear_agi_bucket
   fdb17ddd0a49 arm/xen: Use alloc_percpu rather than __alloc_percpu
   9397e79c4b2d xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing
   00a0de085d60 tpm xen: Remove bogus tpm_chip_unregister
   f93777c91544 kernel/debug/debug_core.c: more properly delay for secondary CPUs
   f2b8b3455b22 kernel/watchdog: use nmi registers snapshot in hardlockup handler
   597f9c03b2d5 CIFS: Fix a possible memory corruption in push locks
   a9c69e152897 CIFS: Fix missing nls unload in smb2_reconnect()
   f0b715409cb9 CIFS: Fix a possible memory corruption during reconnect
   6dcb01e78333 ASoC: intel: Fix crash at suspend/resume without card registration
   701ec6e5cea7 dm space map metadata: fix 'struct sm_metadata' leak on failed create
   85290a163b06 dm crypt: mark key as invalid until properly loaded
   9188611f81e3 dm flakey: return -EINVAL on interval bounds error in flakey_ctr()
   f0898dc2852b blk-mq: Do not invoke .queue_rq() for a stopped queue
   c53af76d5de1 usb: gadget: composite: always set ep->mult to a sensible value
   b35f34f66943 exec: Ensure mm->user_ns contains the execed files
   0812936b11ea fs: exec: apply CLOEXEC before changing dumpable task flags
   14d8e5cae039 mm/vmscan.c: set correct defer count for shrinker
   ffef1630187b loop: return proper error from loop_queue_rq()
   011ded975e34 f2fs: set ->owner for debugfs status file's file_operations
   3460edfc70c2 ext4: do not perform data journaling when data is encrypted
   36af7cd560b9 ext4: return -ENOMEM instead of success
   519a30148e23 ext4: reject inodes with negative size
   f655b3575c47 ext4: add sanity checking to count_overhead()
   3995881b0f72 ext4: fix in-superblock mount options processing
   386588013810 ext4: use more strict checks for inodes_per_block on mount
   7b74c351de1c ext4: fix stack memory corruption with 64k block size
   26492d8a22b0 ext4: fix mballoc breakage with 64k block size
   4b6050922fb8 crypto: caam - fix AEAD givenc descriptors
   1c1f15f8ebfb ptrace: Capture the ptracer's creds not PT_PTRACE_CAP
   03eed7afbc09 mm: Add a user_ns owner to mm_struct and fix ptrace permission checks
   d80411dea6a4 block_dev: don't test bdev->bd_contains when it is not stable
   85cfbd9db2c6 btrfs: make file clone aware of fatal signals
   323ffc03ddb2 Btrfs: don't BUG() during drop snapshot
   107800061996 Btrfs: fix memory leak in do_walk_down
   5a9b659edef6 Btrfs: don't leak reloc root nodes on error
   8ca6845a58cd Btrfs: return gracefully from balance if fs tree is corrupted
   78a587c608f9 Btrfs: bail out if block group has different mixed flag
   25ee81e54620 Btrfs: fix memory leak in reading btree blocks
   590202271ffd clk: ti: omap36xx: Work around sprz319 advisory 2.1
   119b6658ce05 ALSA: hda: when comparing pin configurations, ignore assoc in addition to seq
   f0ea0ade046e ALSA: hda - Gate the mic jack on HP Z1 Gen3 AiO
   fa695bdc1741 ALSA: hda - fix headset-mic problem on a Dell laptop
   faff777fb456 ALSA: hda - ignore the assoc and seq when comparing pin configurations
   518fca87c645 ALSA: hda/ca0132 - Add quirk for Alienware 15 R2 2016
   29348065c339 ALSA: hiface: Fix M2Tech hiFace driver sampling rate change
   d0ba0f6a8291 ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks
   cbb2a2563587 USB: UHCI: report non-PME wakeup signalling for Intel hardware
   8ede2d7908aa usb: gadget: composite: correctly initialize ep->maxpacket
   c67c2ed829f3 usb: gadget: f_uac2: fix error handling at afunc_bind
   747b31526369 usb: hub: Fix auto-remount of safely removed or ejected USB-3 devices
   acca3cf0d62b USB: cdc-acm: add device id for GW Instek AFG-125
   5d6a392b6d36 USB: serial: kl5kusb105: fix open error path
   6a6e113cd928 USB: serial: option: add dlink dwm-158
   17907f291779 USB: serial: option: add support for Telit LE922A PIDs 0x1040, 0x1041
   1f5adadcd032 Btrfs: fix qgroup rescan worker initialization
   b5e715ed11ec btrfs: store and load values of stripes_min/stripes_max in balance status item
   919b74ba5ed5 Btrfs: fix tree search logic when replaying directory entry deletes
   0d619cf6f982 btrfs: limit async_work allocation and worker func duration
   a34f0e8a2f89 Linux 4.4.39
   5d488dee9236 crypto: rsa - Add Makefile dependencies to fix parallel builds
   1c0f4e0ebb79 hotplug: Make register and unregister notifier API symmetric
   537e42d759ae batman-adv: Check for alloc errors when preparing TT local data
   f03531d09125 m68k: Fix ndelay() macro
   55e15b2f44d7 arm64: futex.h: Add missing PAN toggling
   e29949ed3903 can: peak: fix bad memory access and free sequence
   083021bdba1e can: raw: raw_setsockopt: limit number of can_filter that can be set
   9a3baed9103b crypto: mcryptd - Check mcryptd algorithm compatibility
   c4db8a7d1e0c perf/x86: Fix full width counter, counter overflow
   c6a5bf4cda12 locking/rtmutex: Use READ_ONCE() in rt_mutex_owner()
   b27d9147f24a locking/rtmutex: Prevent dequeue vs. unlock race
   e286b6c16758 zram: restrict add/remove attributes to root only
   a0bd6aa097a4 parisc: Fix TLB related boot crash on SMP machines
   605f315c5a83 parisc: Remove unnecessary TLB purges from flush_dcache_page_asm and flush_icache_page_asm
   db9598605768 parisc: Purge TLB before setting PTE
   4bcea472de10 powerpc/eeh: Fix deadlock when PE frozen state can't be cleared
   c95b7f1fab0c Linux 4.4.38
   52783ada69b4 esp6: Fix integrity verification when ESN are used
   3bf28ce9c749 esp4: Fix integrity verification when ESN are used
   2176ec1c82ea ipv4: Set skb->protocol properly for local output
   25d8b7c105e1 ipv6: Set skb->protocol properly for local output
   d41fb2fbb28d Don't feed anything but regular iovec's to blk_rq_map_user_iov
   fd1aa12c6340 constify iov_iter_count() and iter_is_iovec()
   899b60535a2a sparc64: fix compile warning section mismatch in find_node()
   ed7b60db00a1 sparc64: Fix find_node warning if numa node cannot be found
   438e91da24fa sparc32: Fix inverted invalid_frame_pointer checks on sigreturns
   06cdad2b6d92 net: ping: check minimum size on ICMP header length
   77125815f058 net: avoid signed overflows for SO_{SND|RCV}BUFFORCE
   6e682c528b3e geneve: avoid use-after-free of skb->data
   a89e2ff894bc sh_eth: remove unchecked interrupts for RZ/A1
   c36a2a14f26d net: bcmgenet: Utilize correct struct device for all DMA operations
   5a01eaf19858 packet: fix race condition in packet_set_ring
   1a15519fdcdb net/dccp: fix use-after-free in dccp_invalid_packet
   baaf0c65bc8e netlink: Do not schedule work from sk_destruct
   d1ed9c1dba63 netlink: Call cb->done from a worker thread
   6c42bd6a393c net/sched: pedit: make sure that offset is valid
   cfa7c16d4577 net, sched: respect rcu grace period on cls destruction
   94de6f2ffb3d net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link change
   56366fa0ad46 l2tp: fix racy SOCK_ZAPPED flag check in l2tp_ip{,6}_bind()
   aece024e38cb rtnetlink: fix FDB size computation
   6ef59b986190 af_unix: conditionally use freezable blocking calls in read
   acf9504ae220 net: sky2: Fix shutdown crash
   49695d1e3b81 ip6_tunnel: disable caching when the traffic class is inherited
   2b54505c877f net: check dead netns for peernet2id_alloc()
   790fd11f9ed6 virtio-net: add a missing synchronize_net()

(From OE-Core rev: c3c66220630162c84ead895dc98c7d951b0e2e85)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 2042e74352fcec84ac69645387273438794966f6)

fixed up merge conflicts do to changes in master
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Martin Balik
2de92f2768 busybox: Security fix BUG9071
(From OE-Core rev: 3842dc98a471530e23305d09669d7f4bdc05a532)

Signed-off-by: Martin Balik <martin.balik@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0354a9b7adad27b012bcd6bb6cab54dfe0297bcd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Andrej Valek
094b64ea8b busybox: Security fix CVE-2016-6301
ntpd: NTP server denial of service flaw

CVE: CVE-2016-6301
(From OE-Core rev: dafbf8a9e9ed068ecbf22cc816f9a6a3a2da7aa9)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 301dc9df16cce1f4649f90af47159bc21be0de59)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Haiqing Bai
254336d09b busybox: ifupdown:pass interface device name for ipv6 route command
IPv6 routes need the device argument for link-local routes, or they
cannot be used at all. E.g. "gateway fe80::def" seems to be used in
some places, but kernel refuses to insert the route unless device
name is explicitly specified in the route addition.

(From OE-Core rev: 4d9fcf9f2fa573218cda3a133e0da34c4185838a)

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 96ed437d57316153453bb5e170a4fd4f3a95883d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Lukasz Nowak
27258d249e busybox: allow libiproute to handle table ids larger than 255
These changes are required for compatibility with ConnMan, which by default
uses table ids greater than 255.

(From OE-Core rev: 8ab20681730a3cbd75ed0c7c208a30b437714915)

Signed-off-by: Lukasz Nowak <lnowak@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit e9114bdd8a83b88f59526780910c49e3092fdd57)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Yuanjie Huang
1693b28967 binutils: Fix CVE-2017-6965 and CVE-2017-6966
Backport upstream commit to address vulnerabilities:

CVE: CVE-2017-6965
[BZ 21137] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21137

Fix readelf writing to illegal addresses whilst processing corrupt input
files containing symbol-difference relocations.

	PR binutils/21137
	* readelf.c (target_specific_reloc_handling): Add end parameter.
	Check for buffer overflow before writing relocated values.
	(apply_relocations): Pass end to target_specific_reloc_handling.

CVE: CVE-2017-6966
[BZ 21139] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21139

Fix read-after-free error in readelf when processing multiple, relocated
sections in an MSP430 binary.

	PR binutils/21139
	* readelf.c (target_specific_reloc_handling): Add num_syms
	parameter.  Check for symbol table overflow before accessing
	symbol value.  If reloc pointer is NULL, discard all saved state.
	(apply_relocations): Pass num_syms to target_specific_reloc_handling.
	Call target_specific_reloc_handling with a NULL reloc pointer
	after processing all of the relocs.

(From OE-Core rev: 477afc5634698d6c5cdb6d7705a31d859495695d)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Daniel Díaz
5476c5d9d8 base-files: resize only serial tty's in profile
[Backported from master.]

We don't want to run resize on non serial consoles. There's
been an earlier attempt (6557787), so this builds upon that.

The problem we're seeing is that if there is text buffered in
the virtual console (like from a desperate user trying to
enter login details), resize will get stuck while calling
  ioctl(tty, TCSETAW);

Since serial consoles are named (not just numbered), this
change limits resize's reach even further to run only on
/dev/tty[A-z] (thus avoiding /dev/tty[0-9]).

(From OE-Core rev: 00ff70dc6284a510e4fe3acfaae6b59663fd3141)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Choong YinThong
7391de7bf6 logrotate: replace fedorahosted.org SRC_URI with github.com source
fedorahosted.org was retired on March 1st, 2017. This is to
update the SRC_URI to point to github.com.
Update the ${PN} to ${BPN} in order to pass the autobuilder
mulitlib enable configuration.

[YOCTO #11226]

(From OE-Core rev: b935c1e9dd17afa85a9ffe213d5f94051f585529)

Signed-off-by: Choong YinThong <yin.thong.choong@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Joe Slater
017b38fc78 volatile-binds: correct some errors reported by systemd
systemd-tmpfiles-setup will fail at boot, so we suppress
the default versions of etc.conf and home.conf.

We also make sure that /var/{cache,spool} and /srv are writeable
if they exist.

(From OE-Core rev: a7c6129a7c9c0c7e1b729e16a60b2ca704af3f97)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Sullivan, California L
be54ac0ebd parselogs: Whitelist NUC6 firmware load error message on genericx86-64
This was already whitelisted, but the 4.8 kernel changed the error
message, causing it to get caught by parselogs again.

Fixes [YOCTO #10494].

(From OE-Core rev: a163060c25615fd29cdc477319f83997e65d0846)

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit e1bad14231115f3b1a2bf844ef5b2022c648b55d)
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Ed Bartosh
e9c681777b sstate.bbclass: update .siginfo atime
.siginfo files are not being accessed from local or NFS-mounted
sstate mirrors when sstate package is installed, so their atime
is not updated. If sstate mirror is cleaned based on access time,
they get deleted, even though they are still being used.

Updated atime of .siginfo symlinks with 'touch -a'. This command
dereferences symlinks pointing to the local mirror and updates
atime of the .siginfo file on the mirror.

[YOCTO #10857]

(From OE-Core rev: 9f8013e3339533c7d60139c1993a5d077fe02ee5)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Martin Jansa
a8500d9c75 rootfs.py: Respect OPKGLIBDIR variable
* when OPKGLIBDIR doesn't have the default /var/lib value it will
  silently fail to copy package database from normal rootfs to debugfs
  rootfs and then when trying to install *-dbg complimentary packages
  it won't install anything, because installed_pkgs.txt file generated
  from debugfs is empty

(From OE-Core rev: 0554537271f56d95cb43e09bb831f57f82e8f3ac)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Martin Jansa
46b3cc9d8d package_manager.py: respect OPKGLIBDIR
* respect it for incremental rootfs generation
* add lists_dir option to opkg.conf
* also fix setting info_dir and status_file when they use default value, the
  problem is that self.opkg_dir is already prefixed with rootfs directory,
  comparing it with /var/lib/opkg always returned false and the options were
  appended to config file unnecessary
* with opkg 0.3.4 we can use VARDIR prefix added in:
  commit d2a8e23dc669adc398f4bb8bcfcabfcf925708f7
  Author: Florin Gherendi <floring2502@gmail.com>
  Date:   Mon Dec 19 12:25:38 2016 +0200
  libopkg: make the /var and /etc directories configurable at compile time.

(From OE-Core rev: f1d21d1d408d89cc3bd59cd30ab10c902863c7c0)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:33 +01:00
Anders Darander
53b19e7e7f python-3-manifest: fix adding imp to importlib
Commit: 512334f102a33833d39af53467894315f0715d07
	"python-3.5-manifest: Add imp to importlib"

added imp to importlib in the generated manifest, but not in the generator script.

(From OE-Core rev: 70bea8d0be82781ce615794434225418cce63a90)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Robert Yang
3305872894 runqemu: support multiple qemus running when nfs
Fixed:
* In build1:
  $ runqemu nfs qemux86-64
  In build2:
  $ runqemu nfs qemux86-64

  It would fail before since the port numerbs and conf files are
  conflicted, now make runqemu-export-rootfs work together with runqemu to
  fix the problem.

* And we don't need export PSEUDO_LOCALSTATEDIR in runqemu, the
  runqemu-export-rootfs can handle it well based on NFS_EXPORT_DIR.

* Remove "async" option from unfsd to fix warning in syslog:
  Warning: unknown exports option `async' ignored

* Fixed typos

Both slirp and tap can work.

(From OE-Core rev: f3a9ff2cea88cf4c90b1037b3ca17e6a63ea33ee)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Robert Yang
8a2eb1a75e runqemu-export-rootfs: fix inconsistent var names
Fixed:
$ runqemu nfs qemux86-64
[snip]
On your target please remember to add the following options for NFS
nfsroot=IP_ADDRESS:/path/to/nfsroot,nfsvers=3,port=,mountprog=,nfsprog=,udp,mountport=
[snip]

Note that the values are null, this is because their var names are
inconsistent.

[YOCTO #10519]

(From OE-Core rev: b572921b359010f281cdb861a73bf05317c6dacf)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Juro Bystricky
7549ae82cd sanity.bbclass: modify check for shell
Due to the recently implemented update-alternatives for bash binary,
sanity checker may end up with a (false-positive) error such as:

Error, /bin/sh links to /bin/bash.bash, must be dash or bash

This patch modifies the test: presence of "/bash" or "/dash" in shell binary
name results in pass.

[YOCTO#11108]

(From OE-Core rev: 3f2bc735e514b27a21ac47524fe0c5ca16e19dd7)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Andre McCurdy
99c6c878ee image_types.bbclass: fix image dependency chain collection
If image type "foo" depends on image type "bar.xz", then dependencies
should be collected from the base image type (ie "IMAGE_DEPENDS_bar")
not from "IMAGE_DEPENDS_bar.xz".

(From OE-Core rev: 854fff614059100494326adeec7c48fa5272d080)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8a9f249a9166347cc0468191ce130003e3d306e1)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Randy Witt
6c3d10ea62 image_types.bbclass: IMAGE_TYPEDEP_ now adds deps for conversion types
Previously if IMAGE_TYPEDEP_* contained a conversion type of the form,
"foo.bar", the dependency on CONVERSION_DEPENDS_bar would not get added
to the task depends for do_rootfs.

[YOCTO #10883]

(From OE-Core rev: c0ff0e1ff872b04006b26c6db4f8c9cf053b0764)

Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 037d39898e0e16c6d5b24a8d3844abfb328d3c14)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Zubair Lutfullah Kakakhel
7c0a184f8b gmp: Disable assembly for MIPS R6
gmplib has some assembly routines. These have not been optimized
for MIPS R6 yet. Add --disable-assembly so that the C implementation
is used.

(From OE-Core rev: b21d5c0c615c99bd0d756ab32818acc3b648fb4e)

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit b0975809fe43b7506cc30a60245f5e32b275a3ec)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Zubair Lutfullah Kakakhel
ae95c1e7cb openssl: Add support for many MIPS configurations
Add more case statements to catch MIPS tune configurations

(From OE-Core rev: d9f8f12881d1b1be5761f0aa3a1785f979dc9076)

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit cd1f6fbf9a2113cf510c25de2eb3895468e79149)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Maxin John
458b9e6949 busybox: refresh the flock patch
Upstream accepted the flock fix with some improvements. Backport those
changes.

(From OE-Core rev: 58c01c9ccbec416b297dacd4b917d4073c35c6fb)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Daniel Schultz
b5fe7ef2ed wic: plugins: rawcopy: Fixed wrong variable type
Without the int() function this variable will be a string. This will led
to a error in Filemap on line 545 due wrong types.

> [...]
>   File
> ".../poky/scripts/lib/wic/filemap.py", line 545, in sparse_copy
>     if start < skip < end:
> TypeError: unorderable types: int() < str()

(From OE-Core rev: 5b9bcfef9086c19a4577d36729b7b339f959d5c4)

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 46b5814bcdc0e7e3cb293e877e2aa949baf5fef8)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Daniel Schultz
561ff936f1 wic: filemap: Fixed spared_copy skip
This patches removes the empty space in front of the copied file which
was skipped. Without this reduction it's not possible to place a
partition with rawcopy and skip parameter on a desired alignment.

(From OE-Core rev: e29deac69ed29226b68001db2fcfb3ed24c0568a)

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 5c024d71f9413b81ee1707dbc41f0721f8f27bdb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Richard Purdie
c567b4e058 tzcode-native: Set cc to ${CC}
Building on a system without "cc" showed this recipe doesn't respect
the $CC variable. Fix this by passing the right option to the makefile.

(From OE-Core rev: 313d977fdfe571ad6edf65c6ed20bbb0110dc320)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 402080c0a77443f541fa3d658b79f3fba327279d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Armin Kuster
fe4703c473 tzdata: update to 2017a
Briefly: Southern Chile moves from -04/-03 to -03, and Mongolia
  discontinues DST.

  Changes to future time stamps

    Mongolia no longer observes DST.  (Thanks to Ganbold Tsagaankhuu.)

    Chile's Region of Magallanes moves from -04/-03 to -03 year-round.
    Its clocks diverge from America/Santiago starting 2017-05-13 at
    23:00, hiving off a new zone America/Punta_Arenas.  Although the
    Chilean government says this change expires in May 2019, for now
    assume it's permanent.  (Thanks to Juan Correa and Deborah
    Goldsmith.)  This also affects Antarctica/Palmer.

  Changes to past time stamps

    Fix many entries for historical time stamps for Europe/Madrid
    before 1979, to agree with tables compiled by Pere Planesas of the
    National Astronomical Observatory of Spain.  As a side effect,
    this changes some time stamps for Africa/Ceuta before 1929, which
    are probably guesswork anyway.  (Thanks to Steve Allen and
    Pierpaolo Bernardi for the heads-ups, and to Michael Deckers for
    correcting the 1901 transition.)

    Ecuador observed DST from 1992-11-28 to 1993-02-05.
    (Thanks to Alois Treindl.)

    Asia/Atyrau and Asia/Oral were at +03 (not +04) before 1930-06-21.
    (Thanks to Stepan Golosunov.)

  Changes to past and future time zone abbreviations

    Switch to numeric time zone abbreviations for South America, as
    part of the ongoing project of removing invented abbreviations.
    This avoids the need to invent an abbreviation for the new Chilean
    new zone.  Similarly, switch from invented to numeric time zone
    abbreviations for Afghanistan, American Samoa, the Azores,
    Bangladesh, Bhutan, the British Indian Ocean Territory, Brunei,
    Cape Verde, Chatham Is, Christmas I, Cocos (Keeling) Is, Cook Is,
    Dubai, East Timor, Eucla, Fiji, French Polynesia, Greenland,
    Indochina, Iran, Iraq, Kiribati, Lord Howe, Macquarie, Malaysia,
    the Maldives, Marshall Is, Mauritius, Micronesia, Mongolia,
    Myanmar, Nauru, Nepal, New Caledonia, Niue, Norfolk I, Palau,
    Papua New Guinea, the Philippines, Pitcairn, Qatar, Réunion, St
    Pierre & Miquelon, Samoa, Saudi Arabia, Seychelles, Singapore,
    Solomon Is, Tokelau, Tuvalu, Wake, Vanuatu, Wallis & Futuna, and
    Xinjiang; for 20-minute daylight saving time in Ghana before 1943;
    for half-hour daylight saving time in Belize before 1944 and in
    the Dominican Republic before 1975; and for Canary Islands before
    1946, for Guinea-Bissau before 1975, for Iceland before 1969, for
    Indian Summer Time before 1942, for Indonesia before around 1964,
    for Kenya before 1960, for Liberia before 1973, for Madeira before
    1967, for Namibia before 1943, for the Netherlands in 1937-9, for
    Pakistan before 1971, for Western Sahara before 1977, and for
    Zaporozhye in 1880-1924.

    For Alaska time from 1900 through 1967, instead of "CAT" use the
    abbreviation "AST", the abbreviation commonly used at the time
    (Atlantic Standard Time had not been standardized yet).  Use "AWT"
    and "APT" instead of the invented abbreviations "CAWT" and "CAPT".

    Use "CST" and "CDT" instead of invented abbreviations for Macau
    before 1999 and Taiwan before 1938, and use "JST" instead of the
    invented abbreviation "JCST" for Japan and Korea before 1938.

  Change to database entry category

    Move the Pacific/Johnston link from 'australasia' to 'backward',
    since Johnston is now uninhabited.

(From OE-Core rev: 697ea2e2776e54b5cac70461b8aafa2c9b7a0bc3)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 784a8379260759700ab8482b1699c9567d6e9f3f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Armin Kuster
c7fc10a5f6 tzcode-native: update to 2017a
Changes to code

    zic no longer mishandles some transitions in January 2038 when it
    attempts to work around Qt bug 53071.  This fixes a bug affecting
    Pacific/Tongatapu that was introduced in zic 2016e. localtime.c
    now contains a workaround, useful when loading a file generated by
    a buggy zic.  (Problem and localtime.c fix reported by Bradley
    White.)

    zdump -i now outputs non-hour numeric time zone abbreviations
    without a colon, e.g., "+0530" rather than "+05:30".  This agrees
    with zic %z and with common practice, and simplifies auditing of
    zdump output.

    zdump is now buildable again with -DUSE_LTZ=0.
    (Problem reported by Joseph Myers.)

    zdump.c now always includes private.h, to avoid code duplication
    with private.h.  (Problem reported by Kees Dekker.)

    localtime.c no longer mishandles early or late timestamps
    when TZ is set to a POSIX-style string that specifies DST.
    (Problem reported by Kees Dekker.)

    date and strftime now cause %z to generate "-0000" instead of
    "+0000" when the UT offset is zero and the time zone abbreviation
    begins with "-".

  Changes to documentation and commentary

    The 'Theory' file now better documents choice of historical time
    zone abbreviations.  (Problems reported by Michael Deckers.)

    tz-link.htm now covers leap smearing, which is popular in clouds.

(From OE-Core rev: 064457dd47cff339ae442c29ce23648a83a695b9)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 6c95fbf51ec538e29083a4a890d106b732c1b182)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Armin Kuster
af70b781ae tzcode-native: update to 2016j
Changes to code

    zic no longer mishandles file systems that lack hard links, fixing
    bugs introduced in 2016g.  (Problems reported by Tom Lane.)
    Also, when the destination already contains symbolic links, zic
    should now work better on systems where the 'link' system call
    does not follow symbolic links.

Changes to documentation and commentary

    tz-link.htm now documents the relationship between release version
    numbers and development-repository commit tags.  (Suggested by
    Paul Koning.)

    The 'Theory' file now documents UT.

    iso3166.tab now accents "Curaçao", and commentary now mentions
the names "Cabo Verde" and "Czechia". (Thanks to Jiří Boháč.)

(From OE-Core rev: 3fb5ddce97af1d4ada0dcc7f9c0ceef6ac392918)

(From OE-Core rev: b83b3565554c923468049ea1fdc9bb5dcec631aa)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f9d6b482f2275c054dff91b81ac901b612f9c9b4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Armin Kuster
bd2009ecfc tzdata: update to 2016j
Briefly: Saratov, Russia moves from +03 to +04 on 2016-12-04.

  Changes to future time stamps

    Saratov, Russia switches from +03 to +04 on 2016-12-04 at 02:00.
    This hives off a new zone Europe/Saratov from Europe/Volgograd.
    (Thanks to Yuri Konotopov and Stepan Golosunov.)

  Changes to past time stamps

    The new zone Asia/Atyrau for Atyraū Region, Kazakhstan, is like
    Asia/Aqtau except it switched from +05/+06 to +04/+05 in spring
    1999, not fall 1994.  (Thanks to Stepan Golosunov.)

  Changes to past time zone abbreviations

    Asia/Gaza and Asia/Hebron now use "EEST", not "EET", to denote
summer time before 1948. The old use of "EET" was a typo.

(From OE-Core rev: a0b389b5f3effad5194109f9914dec6125b3569d)

(From OE-Core rev: 5e117f4250d6155d3014f85dd1cbbfad0afdf282)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 147d7802926153ef0abb12d5e738576d8dfd02d7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Sona Sarmadi
b6e0d7c99f tar: CVE-2016-6321
Skip members whose names contain "..".

Reference:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6321

Upstream patch:
http://git.savannah.gnu.org/cgit/tar.git/commit/?id=7340f67b9860ea0531c1450e5aa261c50f671

(From OE-Core rev: 3dd835eb0cdd6f530aef5c870d06bc971eec7857)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit cfa2b5facd1aa6a2bac4cb04687e1a977c533934)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Li Zhou
30166f042d bash: fix CVE-2016-9401
popd in bash might allow local users to bypass the restricted shell
and cause a use-after-free via a crafted address.

Porting patch from <https://ftp.gnu.org/pub/gnu/bash/bash-4.4-patches/
bash44-006> to solve CVE-2016-9401.

(From OE-Core rev: 9b5e17b45ca5b2518f1f7c13bb2f79b5b669744f)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 6987b317d5ce8dc50a37ebba395aa8424bec358c)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:07:32 +01:00
Daniel Lublin
924e576b89 bitbake: lib/bs4: Fix imports from html5lib >= 0.9999999/1.0b8
As of html5lib 0.9999999/1.0b8 (released on July 14, 2016), some modules
have moved from _base to base. Handle this, while staying compatible
with earlier versions.

(Bitbake rev: bdf7a362ecdafd47f309b7a21feac4b94624f287)

Signed-off-by: Daniel Lublin <daniel@lublin.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-26 13:19:51 +01:00
Richard Purdie
e292e935b0 Revert "file: update SRCREV for 5.28 to fix fetch fail on missing commit"
This reverts commit 87c17b352daa63bc4f62e8802982288ab1839f1b.

Upstream restored the original hashes.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-21 22:39:46 +00:00
Paul Gortmaker
555d776785 file: update SRCREV for 5.28 to fix fetch fail on missing commit
Machines that cloned a while ago will have the commit, but new
deployments won't because it seems the upstream changed/rebased
and the old commit ID has been garbage-collected away.  Hence
the fetch fails to check out the named commit ID.

Both the old (gone) commit, and the "new" commit show the same
dates and commit log and point at 5.28, so hopefully this is
the right thing to do.  A git diff of the two seems to only show
a blanket uprev of CVS tags and deletion of a couple autogen'd
files, and no real source changes.

(From OE-Core rev: adb71e06768adadda7b69c3b5e81ca3ad67237f4)

Cc: Christos Zoulas <christos@zoulas.com>
(From OE-Core rev: 87c17b352daa63bc4f62e8802982288ab1839f1b)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-20 13:59:22 +00:00
Juro Bystricky
ca020278b3 bitbake: cooker.py: run sanity checks for multiconfig
Also run sanity check for all additional multiconfig configurations
as listed in BBMULTICONFIG, not just the "default" configuration.

[YOCTO#10810]

(Bitbake rev: 0f7fdaa8212a8b9f1f089d32e652400d6c4b4822)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-16 15:34:08 +00:00
Juro Bystricky
ca66b08b3b bitbake: cooker.py: new multiconfig '*' syntax support
Currently you cannot build a target for all the configured multiconfigs without
specifying a list. The list can be quite long, requiring to type several lines
of text.

This enhancement is to support globbing so that you can do this,
e.g. instead of:

    $ bitbake multiconfig:A:bash multiconfig:B:bash bash

you can do:

    $ bitbake multiconfig:*:bash

There are real world use cases where it is desirable to use multiconfig with
two different tasks. For example:  SDKs with multiple toolchains but also
containing set of additional host tools, or multiconfig builds requiring one image for
the  main CPU(s) and a different co-image for a companion CPU.
For this reason, two variations of the new syntax are supported.

For example, the following:

    $ bitbake multiconfig:*:meta-toolhchain

would expand to:

    $ bitbake multiconfig:A:meta-toolchain multiconfig:B:meta-toolchain meta-toolchain

However the following:

    $ bitbake multiconfig:*:meta-toolhchain hosttools

would expand to:

    $ bitbake multiconfig:A:meta-toolchain multiconfig:B:meta-toolchain hosttools

In other words, if the user specified the "default" task explicitly, it replaces the implicit
"default" task.

[YOCTO#10680]

(Bitbake rev: 3e80d47bea51b64ed6c8bffc033f2d11a630481e)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-16 15:34:08 +00:00
Richard Purdie
c8daf50729 bitbake: data_smart: Fix unneeded variable manipulation
If was pointed out that if we have:

XXX = " A"
XXX_remove_inactive-override = "YY"

then XXX can become "A" and the leading space can be removed. This is because
the remove override code changes the variable value even when there is no
removals active. In the process it dirties the cache.

We don't really need to do this so tweak the code accordingly.

(Bitbake rev: f1ee6dfd3d193a9055320bdd555c1dbaa63f9475)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-16 12:49:06 +00:00
Markus Lehtonen
6c08cf277a lib/oe/gpg_sign: fix rpm signing with gpg > 2.1
We need to check the gpg version and alter its command line options
accordingly.

[YOCTO #11054]

(From OE-Core rev: 863459e6b565eb6b1a74b78bc01e884ffeac2085)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 44a44b7e582a5a654baf21829d168568481c13d9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14 15:21:07 +00:00
Markus Lehtonen
35c95af7a8 lib/oe/gpg_sign: make gpg version a property of the signer
(From OE-Core rev: 951d22cb62891c4bc078925c4af8445d7be940e0)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit a00a362e3dc18ba04230cbbd6f91264e5d76f40d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14 15:21:07 +00:00
Markus Lehtonen
5e874ac0b1 rpm: support customizing gpg command line
Add a new %_gpg_sign_cmd_extra_args macro that allows customizing the
gpg options used when signing rpm packages. This is needed to be able to
sign packages with gpg 2.1 which requires "--pinentry-mode loopback" to
allow non-interactive signing.

[YOCTO #11054]

(From OE-Core rev: 5cbba2c4016ad84a54f83531868aa6e66eef468e)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 373a7146d596d27376a003014df0d06f3df5348d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14 15:21:07 +00:00
Markus Lehtonen
fd78c35086 lib/oe/gpg_sign: sign rpm packages in chunks of 100
Split the file list into chunks in order to avoid
"OSError: [Errno 7] Argument list too long"

This would happend when a package has huge amount of subpackages, e.g.
glibc-locale.

[YOCTO #11069]

(From OE-Core rev: 786eafd7b1080eccfe1c7d417eede20d75d80cb0)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 874f5016fd4dc76bc867b68470297fe59e78a9e6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14 15:21:07 +00:00
Joe Slater
1038cb98e6 e2fsprogs: have configure expand @mkdir_p@
Without doing this, locale data is not written
into usr/src/locale.

We could also just use MKDIR_P instead of mkdir_p.

(From OE-Core rev: 6a767f6587a9d60e21fa1d9687c7c08efe3f89ab)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14 15:20:42 +00:00
Juro Bystricky
8ab3fa3758 python-3.5-manifest: Add imp to importlib
The imp python module is the forerunner of importlib. Include imp in
the importlib subpackage instead of the misc subpackage so that it can
be depended on without bringing in a bunch of unrelated, unused modules.

(Slightly modified backport of afd9de380d
by George McCollister <george.mccollister@gmail.com>)

[YOCTO#11134]

(From OE-Core rev: 65f6010346c08bf90f381a2d834dd9908ba2100c)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14 15:20:12 +00:00
George McCollister
b0f3c0fb99 gdb-cross-canadian: Depend on nativesdk-python3-importlib
Add missing dependency on nativesdk-python3-importlib so the imp Python
module is installed.

Before this patch, running gdb from the sdk would give the following
error:

Python Exception <class 'ImportError'> No module named 'imp':

(From OE-Core rev: ad00a31fbe93e073a2d83616efcd08c5a7ef37c9)

(From OE-Core rev: d6e7dc5cbf1cc09c8882a717cd4dd34d10ec7fa3)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14 15:20:12 +00:00
Richard Purdie
6a1f33cc40 build-appliance-image: Update to morty head revision
(From OE-Core rev: 55c835c73cc41b6fc809c941c295d62a612e49e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-08 12:00:36 +00:00
Alexandru Moise
8ba5b9eae3 openssl: CVE: CVE-2017-3731
If an SSL/TLS server or client is running on a 32-bit host, and a
specific cipher is being used, then a truncated packet can cause that
server or client  to perform an out-of-bounds read, usually resulting
in a crash.

Backported from:
8e20499629
2198b3a55d

* CVE: CVE-2017-3731

Upstream-status: Backport

(From OE-Core rev: 1fe1cb3e6e03b4f7f0d30b2b67edc8809a18fe70)

Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-08 12:00:21 +00:00
Sona Sarmadi
a2f06ef254 libx11: CVE-2016-7943
The XListFonts function in X.org libX11 before 1.6.4 might allow
remote X servers to gain privileges via vectors involving length
fields, which trigger out-of-bounds write operations.

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7943
https://lists.x.org/archives/xorg-announce/2016-October/002720.html

Upstream patch:
https://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=8c29f1607a31dac0911e45a0dd3d74173822b3c9

(From OE-Core rev: d627e5bd50f66275cb3a77036ea3376a6f1e9a96)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-08 12:00:21 +00:00
Sona Sarmadi
eed433faba libX11: CVE-2016-7942
The XGetImage function in X.org libX11 before 1.6.4 might allow remote X
servers to gain privileges via vectors involving image type and geometry,
which triggers out-of-bounds read operations.

References
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7942
Upstream patch
https://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=8ea762f94f4c942d898fdeb590a1630c83235c17

(From OE-Core rev: 6d4421301a54c26e390fa943805574ced6e18c3a)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-08 12:00:21 +00:00
Sona Sarmadi
4f991d93f6 libXrandr: fix for CVE-2016-7947 and CVE-2016-7948
CVE-2016-7947
Insufficient validation of server responses result in Integer overflows

CVE-2016-7948
Insufficient validation of server responses result in various data mishandlings

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7947
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7948
https://lists.x.org/archives/xorg-announce/2016-October/002720.html

Upstream patch for both CVEs:
https://cgit.freedesktop.org/xorg/lib/libXrandr/commit/?id=a0df3e1c7728205e5c7650b2e6dce684139254a6

(From OE-Core rev: 1c293e889f6eeae36f8f6ddd9676c65d613ad0fc)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-08 12:00:21 +00:00
Sona Sarmadi
b45822fe66 libxrender: CVE-2016-7949
Insufficient validation of server responses results
in overflow of previously reserved memory

Upstream patch:
https://cgit.freedesktop.org/xorg/lib/libXrender/commit/?id=9362c7ddd1af3b168953d0737877bc52d79c94f4

External References:
https://lists.x.org/archives/xorg-announce/2016-October/002720.html
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-7949

(From OE-Core rev: 87ffd7ce2e8ece8b44ff3f1c219a74b3590cf14b)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-08 12:00:21 +00:00
David Vincent
7cf454e23c classes: Fix alternatives and rc.d ordering
When using an alternative as an initscript, the ordering between
update-rc.d and update-alternatives tasks during prerm and postinst
tasks must always be the following in order to work:
  * prerm:
    - stop daemon
    - remove alternative

  * postinst:
    - add alternative
    - start daemon

This patchset adds comments to the scripts generated by both classes and
organize the generated sections based on those comments.

[YOCTO #10433]

(From OE-Core rev: b0c70bef015f1b2a30556a5db5e255592d5bf316)

Signed-off-by: David Vincent <freesilicon@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit aa87b1a4dcc14e4dfe719b6c55045c5662bc59c2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-08 12:00:21 +00:00
Paul Eggleton
5bdf7c980b bitbake: tinfoil: clean environment when starting up cooker
During normal bitbake execution, the environment is cleaned of variables
not on a whitelist while starting up cooker, and then restored
afterwards. Prior to the tinfoil2 rework in master we were taking a
number of shortcuts within tinfoil and one of those was not doing this
environment cleaning. However, prior to OE-Core rev
3d39ca5c91dbb62fb43199f916bd390cd6212e3d we didn't have any code (as far
as I'm aware) that was affected by this shortcut, hence why this wasn't
an issue up to now.

The result is the following error when attempting to run "devtool build"
in the eSDK, as CCACHE_PATH is allowed through from the eSDK's
environment setup script:

----------- snip -----------
ccache: error: Could not find compiler "gcc" in PATH
...
subprocess.CalledProcessError: Command 'gcc  --version' returned
non-zero exit status 1
----------- snip -----------

We can fix this by simply doing the environment filtering while we are
starting up cooker, thus the environment when uninative.bbclass comes to
do the gcc version check it is not affected by CCACHE_PATH or other
variables in the external environment that should be filtered out.

For clarity, this patch is only applicable to the bitbake 1.32 branch
as used for the OE-Core morty branch - master uses the reworked
tinfoil2 and doesn't need this fix.

Fixes [YOCTO #10961].

(Bitbake rev: a240f5ff71092cb209c44a071cd6fa07756ccfa0)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:52:19 +00:00
Richard Purdie
1371bb4c43 bitbake: bitbake-worker: Handle cooker/worker IO deadlocking
I noiced builds where tasks seemed to be taking a surprisingly long time.
When I looked at the output of top/pstree, these tasks were no longer
running despite being listed in knotty. Some were in D/Z state waiting for
their exit code to be collected, others were simply not present at all.

strace showed communication problems between the worker and cooker, each
was trying to write to the other and nearly deadlocking. Eventually, timeouts
would allow them to echange 64kb of data but this was only happening every
few seconds.

Whilst this particularly affected builds on machines with large numbers
of cores (and hence highly parallal task execution) and in cases where
I had a lot of debug enabled, this situation is clearly bad in general.

This patch introduces a thread to the worker which is used to write data
back to cooker. This means that the deadlock can't occur and data flows
much more freely and effectively.

(Bitbake rev: f48befe1163147b02a9926ee38af0f7258a477e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:52:19 +00:00
Scott Rifenbark
e732dfb8df yocto-project-qs, poky.ent: Added "pexpect" to essential packages
Fixes [YOCTO #10889]

Missing this package.  Speculation is that this package was
part of the Python 2.7 stuff but not Python 3.  So, adding it
clears the issue up.

(From yocto-docs rev: fc6bfab923f18a8ec91e29fed2404690d0afeb5d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:51:32 +00:00
Andreas Müller
62175510dc nspr: set correct version in pkg-config file
while we are at it clean up sed

(From OE-Core rev: 69e9f7ec8ba8649784a27e9c7dc7a6987a53c22e)

(From OE-Core rev: cb4f5ecf32006192baaf41218a3d7b43ca1c2951)

(From OE-Core rev: 79f821fb6c1b425ca5cb5e6db360c2743d6c989e)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:51:32 +00:00
Denys Dmytriyenko
f2ff6a40c4 attr/ea-acl: pass --disable-gettext when USE_NLS=no
Fixes following error in configure:
  FATAL ERROR: msgfmt does not seem to be installed.
  attr cannot be built without a working gettext installation.

(From OE-Core rev: 85e087d9b323ad87c59900f01aad751c9c7a9e3a)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>

(From OE-Core rev: d044fad8a0ac5d57deb88b25106f3a39cb7c1636)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:51:32 +00:00
Denys Dmytriyenko
28b0f21342 linux-dtb: strip DTB extension properly in postinst/postrm
The use of awk -F "." in do_install/do_deploy to strip filename extension
was deprecated long time ago in 72980d5bb465f0640ed451d1ebb9c5d2a210ad0c.

Make a similar change in postinst/postrm to properly use basename command.

Otherwise DTB files that contain dots in the name result in broken symlinks
that point to non-existent truncated files.

(From OE-Core rev: ed0f9cf63cb1226f9d92377e13ef63e36a95d29d)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>

(From OE-Core rev: 40c2addf0f0ee16b1c1334cf00f1490ffeaac475)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:51:32 +00:00
Sona Sarmadi
6e43936704 libxtst: 1.2.2 -> 1.2.3
Upgrade libxtst from 1.2.2 to 1.2.3 to address:
Out of Bounds Write Denial of Service Vulnerability, CVE-2016-7951

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7951
https://cgit.freedesktop.org/xorg/lib/libXtst/commit/?id=9556ad67af3129ec4a7a4f4b54a0d59701beeae3

(From OE-Core rev: 02a0dd90c3f3b1fc6ebddc17feb824d11848b2a7)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:51:32 +00:00
Manjukumar Matha
314c727daa binutils-2.27.inc: Fix alignment frags for aarch64
There was bug with alignment frags for aarch64 in binutils. This is fixed in
master of binutils. This patch backports the fix to binutils 2.27 version.

(From OE-Core rev: f6f87019073d4f3caa7766aca89faa6781690fba)

(From OE-Core rev: c2dcf53587957244e231e1489efa75062a7ceacc)

Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-03 09:51:32 +00:00
Ed Bartosh
a3fa5ce876 populate_sdk_ext: whitelist do_package tasks
With enabled SSTATE_MIRRORS sstate code expects mirrors to
contain entries for all tasks, which is not the case for ext
installer as it uses reduced sstate cache.

Added do_package tasks to BB_SETSCENE_ENFORCE_WHITELIST to prevent
installer failing with ERROR: Sstate artifact unavailable

[YOCTO #10832]

(From OE-Core rev: 2ed46ada4b8e496493835e84b36f7e9c367f59d2)

(From OE-Core rev: eb2fc2cd9081a4533ed30fe81c9f491b06cc5ae1)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-12 17:52:04 +00:00
Ed Bartosh
fd30939f5f populate_sdk_ext: fix working with uninative sstate
Mapped uninative sstate directories to make ext SDK installer to
use them when it's run on systems with gcc version different from
gcc version used to build installer.

[YOCTO #10832]

(From OE-Core rev: fb945c0fd2e66d70461e6cf2e602020eeabe32f7)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-12 17:52:04 +00:00
Joshua Lock
e0b862b68c zlib: update SRC_URI to fix fetching
Upstream have removed the file from zlib.net as a new version has
been released, switch to fetching from the official sourceforge
mirror.

[YOCTO #10879]

(From OE-Core rev: bb99e4a620efd59556539c156cd98ea23aae74c8)

(From OE-Core rev: b7599330f1d629384e16a5fbeffc1a65c1555667)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-12 17:52:04 +00:00
Richard Purdie
4b8ddc4322 build-appliance-image: Update to morty head revision
(From OE-Core rev: ae3513b8e752d0dc1757fbfc681f644a3f2855b0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:26:52 +00:00
Richard Purdie
ae1e127566 Bump version for 2.2.1 morty release
(From meta-yocto rev: 6602215d67cf5d75752e2156a79ddab69a400bee)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:26:30 +00:00
Scott Rifenbark
a9e1475efc documentation: Prepare for 2.2.1 release
* poky.ent - changed variables appropriately for 2.2.1
 * <manual> - updated the manual revision tables to have a new
   2.2.1 entry indicating a "January 2017" release
 * mega-manual.sed - Updated the "2.2" string to "2.2.1" so
   links will work.

(From yocto-docs rev: 20eeccff9fdad25f7b21aa6326999deb3d58abc4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Scott Rifenbark
25032be4a3 dev-manual: Added cross-reference for tool-chain installation.
(From yocto-docs rev: 9b0be1e92eca1256cc2578b807f33e91fa0ad3b2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Scott Rifenbark
1b3d0e5168 dev-manual: Updated "Building an Initial RAM Filesystem (initramfs) Image" section
Fixes [YOCTO #7096]

Applied a couple review comments to the section to clarify where
to set key variables.  Also fixed an incorrect variable name used
to specify the *.cpio file.

(From yocto-docs rev: 1ef9bb89057be46878a70c558268b5ace43967f8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Martin Vuille
0a94b71878 dev-manual: Fixed "recipetool create" example
Fixes [YOCTO #10763]

The final example in the section describing how to create
the base recipe using receipetool create was wrong.  I updated
it to use the -d option in addition to the -o opetion.  I also
changed the description to match appropriately.

(From yocto-docs rev: 749970f4394af3855751c776689b7002232f2d13)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Scott Rifenbark
1e51b7173a dev-manual, ref-manual: Created new section on initramfs
Fixes [YOCTO #7096]

We did not document how to create an initramfs image to be included
with a kernel build.  Various variables sort of inferred the
knowledge.  I created a new section in the "Common Tasks" section
of the dev-manual that describes how to create an initramfs image.

Also, I updated the kernel.bbclass reference section to point back
to the new "how-to" section.

Finally, I also created a bunch of cross-reference links from various
related variables back to the new "how-to" section.

(From yocto-docs rev: a14e550494641c46ac2518632cbf251e07d459fd)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Scott Rifenbark
5068f2c960 ref-manual, dev-manual: Removed term "wic-partitioned"
This term was incorrect and I have replaced it with the
term "partitioned."

(From yocto-docs rev: af1bf889bf862b1bc861de72888a82e25997ab71)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Scott Rifenbark
ba8fc212de dev-manual: Updated to the "Creating Partitioned Images" section
new information on how wic works

(From yocto-docs rev: c5bfbba2bc810eb1ff8825b66aa1397cfeed8ce1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Scott Rifenbark
ac6773117a ref-manual: Added WKS_FILE description for new variable
This new variable points to the location of the wics kickstart
file.

(From yocto-docs rev: 6d9a7220ed41c8a512eccbad0ae170072d40fc6f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Scott Rifenbark
13d9371e40 sdk-manual: Added note about nullpointer error for launch eclipse
Fixes [YOCTO #10714]

Apparently there is some issues with GTK3 libraries for the Mars
Eclipse version.  The note provides a workaround that requires
editing the eclipse.ini file.

(From yocto-docs rev: 89ace71c6d9d3a9db84bb9bb2b2abe4779a516f6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:23:10 +00:00
Kevin Hao
13783cce0b meta-yocto-bsp: bump to the latest linux stable kernel for the non-x86 BSPs
Boot test for all these boards.

(From meta-yocto rev: bfabbe8ef170be5c9c5218612dddb98e0f332891)

(From meta-yocto rev: 5344fde92a6a4d283d8f38beb93ee14c3337e789)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Juro Bystricky
e0d8921bf0 edgerouter.py: avoid python3 exception
This fixes an error such as:

Exception: File "/master/poky/meta-yocto-bsp/lib/oeqa/controllers/edgeroutertarget.py", line 47
    self.image_fstype = self.get_image_fstype(d)
TabError: inconsistent use of tabs and spaces in indentation

(From meta-yocto rev: 5ff5dc2767dfef93c314e7465a52ca2dce553604)

(From meta-yocto rev: d1c50ea67f53b5fa2618b460efe4cc879d7cee0c)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Alejandro Hernandez
61d424fbb3 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.8
Updates to Linux 4.8.12
- Includes CVE-2016-8655

(From meta-yocto rev: cccbd2d315a69befd090744af095e89bdd0e77bb)

(From meta-yocto rev: a931e4468c39df92cde2ad7bb649dafcd006fba2)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Alejandro Hernandez
b50444c90e linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4
Updates to Linux 4.4.36
- Includes CVE-2016-8655

(From meta-yocto rev: 95bc86ba1bb33ef2e6808fa7d080c07904073daf)

(From meta-yocto rev: 5e9c0edbfb8cf5a1ad09c6254e432fe27f182fd1)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Alejandro Hernandez
11cc61020e linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1
Updates to Linux 4.1.36
- Includes CVE-2016-8655

(From meta-yocto rev: 4966f0daa0ae91bd2c1329b4a5434d0fb0c7f477)

(From meta-yocto rev: 6ca9e9d4da1522c9e10c2c1104e5ba3c371d4cb9)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Kevin Hao
a81ec4c00f meta-yocto-bsp: bump to the latest stable linux kernel for the non-x86 BSPs
Boot test for all these boards.

(From meta-yocto rev: e3e35cf4d251dbac5d87fb8f48b7e0a5babb9b1b)

(From meta-yocto rev: 0c4dd1340e8a2f62e46c52f797c1b80ae9605ccf)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Richard Purdie
84b3a5ac35 bitbake: cookerdata: Convert multiconfig to use BB_CURRENT_MC
People are struggling with multiconfig as the point the conf file
is injected into the data store is not what people expect. We can't
really use a post config since that is too late and we can't really
use a pre config file since that is too early. In OE terms, we need
something right around the local.conf point so it behaves in a similar
way.

A way to handle this is to set the new variable BB_CURRENT_MC to be the
currently selected multiconfig, then the metadata itself can choose
when to inject the approriate configuration.

(Bitbake rev: 1469828fa747da0aaaa3e964954ff17f2b3180fa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Richard Purdie
7bab6ffc45 bitbake: runqueue: Only start fakeroot workers when needed
Fakeroot workers usually have dependencies that need to be ready before they
can be started. Starting them as a block therefore doesn't work as the
dependencies may or may not have been built. Therefore start the multiconfig
fakeworkers individually upon demand.

[YOCTO #10344]

(Bitbake rev: ac5ea74152b011256209c8b5664216f290b123e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:47 +00:00
Richard Purdie
6b49da40e7 bitbake: runqueue: Ensure setscene tasks with overlapping stamps don't parallel execute
In multiconfig, mutliple tasks can execute which share the same stamp file. These
must not execute in parallel, the idea is the first should execute, the subsequent
ones should see a valid stamp and get skipped.

The normal task execution code has stamps code to handle this, this adds similar
code to the setscene execute() function to handle the issue there too.

(Bitbake rev: df8408a6b54fc908d4de81529b34477b8924d181)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
4bcf8babc4 bitbake: runqueue: Fix setscene issues with multiconfig
setscene was being entirelu skipped for multiconfig variants as the tasks
were simply not being spotted. If the default config was also being built
it masked the problem. When this was fixed by using taskfn instead of fn
in lookups against dataCache, several other instances of this problem were
highlighted.

This goes through and corrects the setscene code to correclty use taskfn
instead of fn in the appropriate places meaning setscene tasks for multiconfig
now work correctly.

(Bitbake rev: a5d81eefe9106f2080001b7313e2b15ab21ea55b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
ba5ee79aba bitbake: siggen: Fix clean_basepath to work with multiconfig
Tasknames can now start with "multiconfig:" which broke the virtual: comparison code and
lead to unpredictable checksums with nativesdk recipes. This adds in handling for
the new additional prefix which unbreaks nativesdk builds when using multiconfig.

(Bitbake rev: 0ca6b8438624d892ee7ef3b42df0024604b64567)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
f94e71c40a bitbake: build/uihelper: Show better information about multiconfig tasks on UI
Currently the UI shows X is building, possibly multiple times but doesn't
say which of the multilibs that might be. This adds a prefix to the task
name so the mulitconfig being built can be identified.

(Bitbake rev: dfb775c67a96a79f3b85104870c0ade46ef2a9ea)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
30259219ca bitbake: runqueue: Ensure pseudo executes from the correct place (use the right datastore with multiconfig)
The location of the fakeroot command and the various environmental values need
to be taken from the right multiconfig datastore, not the shared one. This
patch ensures the right one is used for cases like a split TMPDIR.

[YOCTO #10344]

(Bitbake rev: c241f16670cada2cdf45ecddb4961e16edb83486)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
86f91f680a bitbake: bitbake: cooker: Handle inofity queue overflows more gracefully
If many files change and the inotify queue overflows, rather than print
a traceback, invalidate the caches and warn the user.

[YOCTO #10676]

(Bitbake rev: 058f8517c041b80e8b591ad7d34a68281b2d03fc)

(Bitbake rev: 4fafb6c6d261de78dd1bc3824a1389d191b70321)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
e171e9a088 bitbake: bitbake: cooker: Fix world taskgraph generation issue
The processing of the "do_" prefix to tasks is currently inconsistent
and has resulted in "bitbake world -g" being broken as task prefixes
don't get handled correctly.

Make the "do_" task prefix handling consistent through various codepaths.

[YOCTO #10651]

(Bitbake rev: 3d7186353e804c9410096c408bc337a98c8b33fe)

(Bitbake rev: 100439e715841ecfd6460d59cd51c831184b328d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
a411abf823 bitbake: bitbake: utils: Avoid traceback errors
Avoid errors like:

ERROR: Exception handler error: 'NoneType' object has no attribute 'decode'

(Bitbake rev: 1aeb45abe56061f044c2347889c191d5256ff21f)

(Bitbake rev: 1f08fe503b484d4cf5e093f9e3e4c9bbe0be4eda)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
6a3f93a377 libgcc-common: Don't apply symlinks for nativesdk
nativesdk-libgcc doesn't need a symlink into the target space and if we do this
sstate installation of the recipe can fail depending on whether it races with
the cross-canadian toolchains.

(From OE-Core rev: b2c1e1fe4221862e0dbf5d08960f0d0228e47c72)

(From OE-Core rev: 62012e81c6f7aaad5d9c5e8bec2e2417433572e3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
b4f432e390 bitbake.conf: Add inclusion of BB_CURRENT_MC.conf after local.conf
People are strugling with multiconfig as the up front inclusion of the
configuration file doesn't do what people expect. The only way to meet
user expectations is to include the file immediately after local.conf.

We add BB_CURRENT_MC to bitbake so that the metadata can determine when
to include the extra configuration.

(From OE-Core rev: a6a3894fb2cb2097d2404b8b8cb2b85df595cfa9)

(From OE-Core rev: 378ba0c92172ed7850ec1b0eb2971afb0dae427b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Richard Purdie
6f65543778 uninative: Parameterise the use of STAGING_DIR
This means that a user can change TMPDIR in a multiconfig situation
and still only have one path to the uninative setup. Without this change
its not possile to make such a setup work.

(From OE-Core rev: 779422c5458f5f643b3a4a0dedaa4d9ad709367a)

(From OE-Core rev: f50547fb9d70a8ae079380c25e697da3d2c2b181)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Ed Bartosh
124df4ee35 selftest: wic: fix test_qemu
Setting WKS_FILE variable in qemux86-64 made wic test to
use wrong wks file to produce an image and resulted in
test_qemu failure.

Used conditional assignment in qemux86-64 and explicitly
set WKS_FILE in wic testing suite to make the suite to use
wic-image-minimal.wsk. This should fix test_qemu failure.

(From OE-Core rev: 3bca4d18c2712e3b154bacfb917f0a749ebaddeb)

(From OE-Core rev: bda4e3cceda2205a0a5d916ef5b674df560d43f9)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Ross Burton
6c5a52ca8f utils: Always use datastore's PATH for host_gcc_version
BUILD_CC may reference something like ccache and expect this to come from
ccache-native, we at least have some selftests which assume this. Modify the
code to use PATH when runnig BUILD_CC to ensure the tests continue to work
as expected.

(From OE-Core rev: f3e753372baac43d0921186340cf260df056de20)

(From OE-Core rev: e7ec3228d9a2f40165b60f273205c17438b2c9bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Hand applied and used d.getVar(True)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Jackie Huang
51e2f226bd valgrind: make ld-XXX.so strlen intercept optional
Hack: Depending on how glibc was compiled (e.g. optimised
for size or built with _FORTIFY_SOURCE enabled) the strlen
symbol might not be found in ld-XXX.so. Therefore although
we should still try to intercept it, don't make it mandatory
to do so.

(From OE-Core rev: 84ec50e587e7464b260b1b189659b93b6dab0ef6)

(From OE-Core rev: 850735191c131d7baab72e7df6292b189ea56801)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Ed Bartosh
8108c47740 uninative: rebuild uninative for gcc 4.8 and 4.9
Some c++ libraries fail to build if uninative is built
with gcc 5.x and host gcc version is either 4.8 or 4.9.

The issue should be solved by making separate uninative sstate
directory structure sstate-cache/universal-<gcc version> for host gcc
versions 4.8 and 4.9. This causes rebuilds of uninative if host gcc
is either 4.8 or 4.9 and it doesn't match gcc version used to build
uninative.

[YOCTO #10441]

(From OE-Core rev: d36f41e5658bbbb6080ee833027879c119edf3e0)

(From OE-Core rev: 3d39ca5c91dbb62fb43199f916bd390cd6212e3d)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Andrej Valek
c8f4fb15de libxml2: Fix more NULL pointer derefs
The NULL pointer dereferencing could produced some
security problems.
This is a preventive security fix.

(From OE-Core rev: 8f3008114d5000a0865f50833db7c3a3f9808601)

(From OE-Core rev: 401d552f9e4ed3341e42864e566dddb2b26019dc)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Andrej Valek
359189b6e6 libxml2: fix CVE-2016-4658 Disallow namespace nodes in XPointer points and ranges
Namespace nodes must be copied to avoid use-after-free errors.
But they don't necessarily have a physical representation in a
document, so simply disallow them in XPointer ranges.

(From OE-Core rev: 00e928bd1c2aed9caeaf9e411743805d2139a023)

(From OE-Core rev: cf810d5cc17cb6b9f53d21a404c89afe372accb7)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Andrej Valek
5ba779d5ab libxml2: Necessary changes before fixing CVE-2016-5131
xpath:
 - Check for errors after evaluating first operand.
 - Add sanity check for empty stack.
 - Include comparation in changes from xmlXPathCmpNodesExt to xmlXPathCmpNodes

(From OE-Core rev: 96ef568f75dded56a2123b63dcc8b443f796afe0)

(From OE-Core rev: 68b0f3a0bf8dfdf49be4aed1745a7f50662c555d)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:46 +00:00
Paul Eggleton
41e8df8228 lib/oe/rootfs: fix log_check warnings being printed twice with RPM packaging
We were calling _log_check() in the RPM-specific rootfs class as well as
in the base class; this is unnecessary and resulted in any errors/warnings
generated during the actual package installation time triggering two warnings
instead of one. Drop the call from RpmRootfs._create() to fix this.

(From OE-Core rev: 541c56d755ba0354297673e857628026ad9e4df2)

(From OE-Core rev: 9654a6a238a44ed1025a45e4ad1cb779a8684344)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Armin Kuster
baf73313b3 libtiff: Update to 4.0.7
Major changes:
The libtiff tools bmp2tiff, gif2tiff, ras2tiff, sgi2tiff, sgisv, and ycbcr are completely removed from the distribution, used for demos.

CVEs fixed:
CVE-2016-9297
CVE-2016-9448
CVE-2016-9273
CVE-2014-8127
CVE-2016-3658
CVE-2016-5875
CVE-2016-5652
CVE-2016-3632

plus more that are not identified in the changelog.

removed patches integrated into update.
more info: http://libtiff.maptools.org/v4.0.7.html

(From OE-Core rev: 9945cbccc4c737c84ad441773061acbf90c7baed)

(From OE-Core rev: 009b330591b27bd14d4c8ceb767c78fd7eb924fd)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Bruce Ashfield
985beaaa13 kernel-yocto: explicitly trap subcommand errors
To trap errors and halt processing, do_kernel_metadata was recently
switched to exit on any non zero return code. While the concept is
sound, there are subcommands that have legitimate non-zero return
codes.

Instead of removing set +e, we'll explicitly check the return code
of the commands that can error, and throw a bbfatal to alert the
user.

(From OE-Core rev: a4705e62d0973c290011fc0d250501d358b659e8)

(From OE-Core rev: a4888a63620fa05e1399355d9e20c2da586efb4c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Bruce Ashfield
c5489cb14a linux-yocto/4.8: update to -rt7
Updating to the latest 4.8-rt

(From OE-Core rev: 9f4565a308be55c1bf11706041c0565d48bda4f4)

(From OE-Core rev: d7ca7a37c8a5f8baefadc44bdfc1a697d2fe4616)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Yuanjie Huang
80d90725f5 glibc: Enable backtrace from abort on ARM
ARM stack frames for abort and raise were limited to the the actual
abort and raise call, such as:

Obtained 4 stack frames.
./test-app(print_trace+0x1c) [0x10a08]
./test-app() [0x10b3c]
/lib/libc.so.6(__default_sa_restorer+0) [0x4adae1e0]
/lib/libc.so.6(gsignal+0xa0) [0x4adacf74]

This is not terribly useful when trying to figure out what function
may have called called the abort, especially when using pthreads.

After the change the trace would now look like:

Obtained 8 stack frames.
./test-app(print_trace+0x1c) [0x10a08]
./test-app() [0x10b3c]
/lib/libc.so.6(__default_sa_restorer+0) [0x4befe1e0]
/lib/libc.so.6(gsignal+0xa0) [0x4befcf74]
/lib/libc.so.6(abort+0x134) [0x4befe358]
./test-app(dummy_function+0x50) [0x10adc]
./test-app(main+0xd4) [0x10c24]
/lib/libc.so.6(__libc_start_main+0x114) [0x4bee7a58]

(From OE-Core rev: 93bf8713d8e13c278543baea94fb8dad0cb80e49)

(From OE-Core rev: b0e6a6048fa09dceac78bf8c46d484690ff5b098)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Chen Qi
389d0a02d7 Use weak assignment for SERIAL_CONSOLES in qemu configuration files
Use weak assignment for SERIAL_CONSOLES in qemu configuration files so that
the value could serve as a default value and could be easily overridden in
configuration files like local.conf.

When using the default value for SERIAL_CONSOLES in qemux86-64,we would have
annoying messages on console complaining about respawning getty on ttyS1.
Although the value is set by purpose, at least we need to provide an easy way
to override it.

(From OE-Core rev: 5f060b66162c41a295995947b918253450870117)

(From OE-Core rev: 5a19335f0f1d763a066a8c9ead23bb332e229f93)

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>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Ross Burton
ea584f108c archiver: don't change directory when generating tarball
There's no need to chdir() as tarfile.add() can be told what name to use in the
archive.

(From OE-Core rev: d0b282bce34db44dde4dd7f53a64dfaafe6789de)

(From OE-Core rev: d637d5f02be4eab26cfab7352a8ea584fb1f7e4d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Awais Belal
29184b22d7 grub2: fix some quirks and div by zero
Rather than erroring out on a single attempt while
terminating EFI services, make a few retries because
such quirks are found in a few implementations.
Also fix a div by zero issue in the same framework
which causes an infinite reboot on the target.
Both patches included here are backports.

(From OE-Core rev: 5e6ac806bd9b8bf885ef1e88484e91e4cdaaa69a)

(From OE-Core rev: dbe597b317067362e7acddbefd0d6768f6a44e8c)

Signed-off-by: Awais Belal <awais_belal@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Alessio Igor Bogani
0533d4e8ec wic: Create a logical partition only when it is really mandatory
Don't worth bother with logical partition on MBR partition type (aka
msdos) if disk image generated by wic should have 4 partitions.

(From OE-Core rev: 36a558fbdc96094626e7de1a3510691e30885368)

(From OE-Core rev: 98a3e096eaa6cfdf1532c7c03c57222ae8cd6533)

Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Chen Qi
2cfd1582df libarchive: fix ALTERNATIVE_PRIORITY to avoid conflict
'tar' utility from tar and bsdtar has the same alternative priority.
'cpio' utility from cpio and bsdcpio has the same alternative priority.

Lower the ALTERNATIVE_PRIORITY to avoid conflict.

(From OE-Core rev: 9a59ff628771b586666999d44923968a6bc58956)

(From OE-Core rev: 773ea033e973abd2b97c62b8095d7142c020ad24)

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>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Ross Burton
6011f5658d cve-check: allow recipes to override the product name
Add a new variable CVE_PRODUCT for the product name to look up in the NVD
database.  Default this to BPN, but allow recipes such as tiff (which is libtiff
in NVD) to override it.

(From OE-Core rev: ba330051570a4c991885ee726cb187e0c911bd4f)

(From OE-Core rev: bee636b759feafba544e95d6355c52eb85e4ba72)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Ross Burton
b9879ad3f9 curl: set CVE_PRODUCT
This is 'libcurl' in NVD.

(From OE-Core rev: f5381da49ac781ef017a1b9816c00b512ca9c7c2)

(From OE-Core rev: ae9910f08207d0bb1c57e72e4463768bc0445e48)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Ross Burton
1c8b9df38c tiff: set CVE_PRODUCT
This is 'libtiff' in NVD.

(From OE-Core rev: 0c8d1523f3ad0ada2d1b8f9abffbc2b898a744ca)

(From OE-Core rev: e89a617a64e25036b4f172692c7a461b5291cabb)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Juro Bystricky
1933b492ca targetloader.py: drop test for ClassType
ClassType was removed from python3.
The code testing for ClassType kept throwing AttributeError exceptions:

    module 'types' has no attribute 'ClassType'

The exceptions prevented loading of any dynamically resolved target
controllers.

(From OE-Core rev: d62f18c39bc0ed3b0f5ac8465b393c15f2143ecf)

(From OE-Core rev: 6258471b7077839519898d537b99dce0a0fc8aa4)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Bruce Ashfield
da3332f2e2 linux-yocto/4.x: CVE-2016-8655
Backporting upstream commit 84ac726023 [packet: fix race condition in
packet_set_ring] to address CVE-2016-8655

(From OE-Core rev: db7799747b263507427e325638353142ae79403c)

(From OE-Core rev: 9ec9712436080bb08c99d5ac6783383955bb7dc1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Bruce Ashfield
50cf219c3a linux-yocto-rt/4.4: update to -rt43
After the update to 4.4.36 -rt no longer builds. The fixes for the
issues are found in the v4.4-rt43 release.

(From OE-Core rev: 262fff10ba5cdedbee9ba9ecf00f98dc9159477c)

(From OE-Core rev: 86e24908bb28d4e0ee7defdc64a2efd8eefe37c7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Bruce Ashfield
c3d06886b7 kern-tools: ensure that no shared directories are used
We need to avoid using shared/common directories for any files that are
part of specific build, since permissions issues in multi user
environments will cause issues.

Integrating the following commit to solve the issue:

   scc: move unused patch queue under output dir

(From OE-Core rev: cad65cc0eef2e06cb5ae08062ffae7a4d43a51ad)

(From OE-Core rev: e57f861496ed07aca8785a53971b34c99a4d64bd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Bruce Ashfield
5580c222b4 linux-yocto/4.8: update to v4.8.12
shortlog of the changes follow:

   356ccf6d2b0c Linux 4.8.12
   f81c90012f2f scsi: mpt3sas: Unblock device after controller reset
   3de3eebb10fd flow_dissect: call init_default_flow_dissectors() earlier
   7838fbe25a95 mm, oom: stop pre-mature high-order OOM killer invocations
   374ff835e2b6 can: bcm: fix support for CAN FD frames
   7ed8d94b99b3 powerpc/boot: Fix the early OPAL console wrappers
   7cbe9568fa04 powerpc/mm: Fixup kernel read only mapping
   30988ea31783 powerpc: Set missing wakeup bit in LPCR on POWER9
   8d248df485f2 device-dax: fail all private mapping attempts
   f87a483126b5 device-dax: check devm_nsio_enable() return value
   5b08489eba14 xc2028: Fix use-after-free bug properly
   9030deb21f29 X.509: Fix double free in x509_cert_parse() [ver #3]
   0257b7e20c07 mpi: Fix NULL ptr dereference in mpi_powm() [ver #3]
   bdab996a7a9e mmc: sdhci-of-esdhc: fixup PRESENT_STATE read
   0a80bef18a9f parisc: Also flush data TLB in flush_icache_page_asm
   09e35a83cdc9 parisc: Fix race in pci-dma.c
   3cb2bc6fdc54 parisc: Switch to generic sched_clock implementation
   113b60efa37c parisc: Fix races in parisc_setup_cache_timing()
   b2f64572db2e thermal/powerclamp: add back module device table
   6dfe1643b56a perf/x86/intel: Cure bogus unwind from PEBS entries
   403f47ddbf6b perf/core: Fix address filter parser
   c5795c5f682d x86/traps: Ignore high word of regs->cs in early_fixup_exception()
   885bad1e5f32 x86/fpu: Fix invalid FPU ptrace state after execve()
   1a42cd56229b NFSv4.x: hide array-bounds warning
   154c665b2b02 apparmor: fix change_hat not finding hat after policy replacement
   9c15a98542f0 cfg80211: limit scan results cache size
   f204d21ee0b7 tile: avoid using clocksource_cyc2ns with absolute cycle count
   c707019bef62 scsi: mpt3sas: Fix secure erase premature termination
   b33387f6a68d Fix USB CB/CBI storage devices with CONFIG_VMAP_STACK=y
   89a28f3a3c77 USB: serial: ftdi_sio: add support for TI CC3200 LaunchPad
   6476f6530187 USB: serial: cp210x: add ID for the Zone DPMX
   7445ffb75ed5 usb: chipidea: move the lock initialization to core file
   32fe669c8634 KVM: x86: check for pic and ioapic presence before use
   c02d13809180 KVM: x86: fix out-of-bounds accesses of rtc_eoi map
   39b653013527 KVM: x86: drop error recovery in em_jmp_far and em_ret_far
   3c22c81377d4 KVM: x86: fix out-of-bounds access in lapic
   eb060c1a03f7 iommu/vt-d: Fix IOMMU lookup for SR-IOV Virtual Functions
   8b23f16343f6 iommu/vt-d: Fix PASID table allocation
   36bd5bfe4349 Linux 4.8.11
   a9a0027757f8 gpio: pca953x: Fix corruption of other gpios in set_multiple.
   88fce76cf590 gpio: pca953x: Move memcpy into mutex lock for set multiple
   9a7b80894951 netfilter: nft_dynset: fix element timeout for HZ != 1000
   fd4251fa4d09 IB/cm: Mark stale CM id's whenever the mad agent was unregistered
   8ce92be782f8 IB/uverbs: Fix leak of XRC target QPs
   160149299f71 IB/hfi1: Remove incorrect IS_ERR check
   46e47543175b IB/core: Avoid unsigned int overflow in sg_alloc_table
   82c377d05311 IB/mlx5: Fix NULL pointer dereference on debug print
   554e4b69f1bb IB/mlx5: Fix fatal error dispatching
   32091ee63d17 IB/mlx5: Fix memory leak in query device
   21822a5bbddd IB/mlx5: Use cache line size to select CQE stride
   ad886a0e9035 IB/mlx5: Validate requested RQT size
   76a93a6f8dd7 IB/mlx4: Fix create CQ error flow
   4234e6a06f8b IB/mlx4: Check gid_index return value
   fc9275365065 IB/rxe: Clear queue buffer when modifying QP to reset
   3c87b4a8f6d5 IB/rxe: Fix handling of erroneous WR
   c4605a0e9605 IB/rxe: Fix kernel panic in UDP tunnel with GRO and RX checksum
   04d016249998 IB/rxe: Update qp state for user query
   bac1543b764c perf hists: Fix column length on --hierarchy
   4cba876de64d PM / sleep: don't suspend parent when async child suspend_{noirq, late} fails
   2e2c8f0e7502 PM / sleep: fix device reference leak in test_suspend
   fd669bf2a099 uwb: fix device reference leaks
   ab17baeaea91 sunrpc: svc_age_temp_xprts_now should not call setsockopt non-tcp transports
   8c7ea73e3a9b mfd: core: Fix device reference leak in mfd_clone_cell
   545ea4003db9 iwlwifi: mvm: wake the wait queue when the RX sync counter is zero
   8bfaf856695b iwlwifi: mvm: fix d3_test with unified D0/D3 images
   8cdfd32398b5 iwlwifi: mvm: fix netdetect starting/stopping for unified images
   6e3324dc039c iwlwifi: pcie: mark command queue lock with separate lockdep class
   b822907865cc iwlwifi: pcie: fix SPLC structure parsing
   edb60ee4bc65 rtc: omap: Fix selecting external osc
   5f95e68daae3 clk: imx: fix integer overflow in AV PLL round rate
   fec43900c9b7 clk: mmp: mmp2: fix return value check in mmp2_clk_init()
   63465eaf7b2e clk: mmp: pxa168: fix return value check in pxa168_clk_init()
   a42bbd552ded clk: mmp: pxa910: fix return value check in pxa910_clk_init()
   bb6c9ec826be virtio-net: drop legacy features in virtio 1 mode
   899f5426eebf drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no AUX ch specified in the VBT
   f6920e506992 drm/i915: Refresh that status of MST capable connectors in ->detect()
   56a02a5f60ea drm/amdgpu: Attach exclusive fence to prime exported bo's. (v5)
   3eac4767dd7e powerpc/64: Fix setting of AIL in hypervisor mode
   fc312878ffe3 crypto: caam - do not register AES-XTS mode on LP units
   54f28973e8a5 ARM: dts: imx53-qsb: Fix regulator constraints
   7001b98b9dce ext4: sanity check the block and cluster size at mount time
   56df604296c2 kbuild: Steal gcc's pie from the very beginning
   e14754cb8f0c x86/kexec: add -fno-PIE
   ad4e2f324ade scripts/has-stack-protector: add -fno-PIE
   1c7727d0bca0 kbuild: add -fno-PIE
   20bcbe246933 Disable the __builtin_return_address() warning globally after all
   504b60516ba7 i2c: i2c-mux-pca954x: fix deselect enabling for device-tree
   45244660281c i2c: mux: fix up dependencies
   ce97f5012b6d ALSA: hda - Fix mic regression by ASRock mobo fixup
   23e14ee1abcf ALSA: hda - add a new condition to check if it is thinkpad
   85fcb62a58b2 ALSA: usb-audio: Fix use-after-free of usb_device at disconnect
   e902f10da218 gpio: do not double-check direction on sleeping chips
   b21b327d96bc can: bcm: fix warning in bcm_connect/proc_register
   50e6cd2feff7 mfd: stmpe: Fix RESET regression on STMPE2401
   e015527c6fbd mfd: intel-lpss: Do not put device in reset state on suspend
   8b4d44f46bf2 IB/hfi1: Fix rnr_timer addition
   06eac15f11e0 IB/rdmavt: rdmavt can handle non aligned page maps
   ca720a2b11b4 fuse: fix fuse_write_end() if zero bytes were copied
   de58c50e84e2 genirq: Use irq type from irqdata instead of irqdesc
   8844024c8839 ftrace: Add more checks for FTRACE_FL_DISABLED in processing ip records
   c5d20ce0b459 ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records
   f271087fb2ea KVM: arm64: Fix the issues when guest PMCCFILTR is configured
   8d8b37e242de arm64: KVM: pmu: Fix AArch32 cycle counter access
   1cb9b2489e77 KVM: Disable irq while unregistering user notifier
   23555ca21394 KVM: x86: fix missed SRCU usage in kvm_lapic_set_vapic_addr
   f8c74cf95655 x86/cpu/AMD: Fix cpu_llc_id for AMD Fam17h systems

(From OE-Core rev: beb9adb4763a1bbed182503371921e676ccd4ae2)

(From OE-Core rev: a09653cae042c287c109f6891f7abedfddaba828)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:45 +00:00
Bruce Ashfield
a17d78b33c linux-yocto/4.4: update to v4.4.36
shortlog of the changes follow:

   87c6c6ef5b17 Linux 4.4.36
   6eddf5c993dd scsi: mpt3sas: Unblock device after controller reset
   c178e4809df7 flow_dissect: call init_default_flow_dissectors() earlier
   0b7860d6e88c mei: fix return value on disconnection
   bab2f72f70ea mei: me: fix place for kaby point device ids.
   4f13967ecd20 mei: me: disable driver on SPT SPS firmware
   e1049372d7a7 drm/radeon: Ensure vblank interrupt is enabled on DPMS transition to on
   249090830942 mpi: Fix NULL ptr dereference in mpi_powm() [ver #3]
   cd4235a794c0 parisc: Also flush data TLB in flush_icache_page_asm
   7a1ab6a2bf3a parisc: Fix race in pci-dma.c
   e541fd815db9 parisc: Fix races in parisc_setup_cache_timing()
   0c0ddbf7efec NFSv4.x: hide array-bounds warning
   be79d7fa43f9 apparmor: fix change_hat not finding hat after policy replacement
   8316338a201b cfg80211: limit scan results cache size
   4df31626fc08 tile: avoid using clocksource_cyc2ns with absolute cycle count
   ffffc1ed47e7 scsi: mpt3sas: Fix secure erase premature termination
   ab0867dd8bc8 Fix USB CB/CBI storage devices with CONFIG_VMAP_STACK=y
   f3f95f177269 USB: serial: ftdi_sio: add support for TI CC3200 LaunchPad
   1f36db0b397f USB: serial: cp210x: add ID for the Zone DPMX
   55d061bf9d23 usb: chipidea: move the lock initialization to core file
   341f9730c29b KVM: x86: check for pic and ioapic presence before use
   b7f9404d1b48 KVM: x86: drop error recovery in em_jmp_far and em_ret_far
   c091bbddbc5e iommu/vt-d: Fix IOMMU lookup for SR-IOV Virtual Functions
   d88a1bd00cfa iommu/vt-d: Fix PASID table allocation
   0a5b451a53d4 Linux 4.4.35
   1ba7fafae3c2 netfilter: nft_dynset: fix element timeout for HZ != 1000
   698a8dddb8a5 IB/cm: Mark stale CM id's whenever the mad agent was unregistered
   2b026a265a9a IB/uverbs: Fix leak of XRC target QPs
   eba83a85caba IB/core: Avoid unsigned int overflow in sg_alloc_table
   c524185c81d4 IB/mlx5: Fix fatal error dispatching
   734039913373 IB/mlx5: Use cache line size to select CQE stride
   7cf5b7882184 IB/mlx4: Fix create CQ error flow
   41664d7077e9 IB/mlx4: Check gid_index return value
   04c0800c73b2 PM / sleep: don't suspend parent when async child suspend_{noirq, late} fails
   469fcbcb84d8 PM / sleep: fix device reference leak in test_suspend
   680bc27065b9 uwb: fix device reference leaks
   dd214a159de6 mfd: core: Fix device reference leak in mfd_clone_cell
   d2adb5ebec61 iwlwifi: pcie: fix SPLC structure parsing
   1f995573bac8 rtc: omap: Fix selecting external osc
   c8aa3e98c1a8 clk: mmp: mmp2: fix return value check in mmp2_clk_init()
   96576127ffb7 clk: mmp: pxa168: fix return value check in pxa168_clk_init()
   a4709b4582ac clk: mmp: pxa910: fix return value check in pxa910_clk_init()
   d039fc37ec7f drm/amdgpu: Attach exclusive fence to prime exported bo's. (v5)
   96f10a6239a2 crypto: caam - do not register AES-XTS mode on LP units
   454cf79b05c5 ext4: sanity check the block and cluster size at mount time
   147117cf23c0 kbuild: Steal gcc's pie from the very beginning
   e543f094a38a x86/kexec: add -fno-PIE
   3a868dde1824 scripts/has-stack-protector: add -fno-PIE
   f740b5cc39dd kbuild: add -fno-PIE
   936d157fa7ae i2c: mux: fix up dependencies
   4e583b89add6 can: bcm: fix warning in bcm_connect/proc_register
   0c6e0db9686b mfd: intel-lpss: Do not put device in reset state on suspend
   b7321bcc8b1c fuse: fix fuse_write_end() if zero bytes were copied
   d4a774fdb92f KVM: Disable irq while unregistering user notifier
   b689e86c9a8f KVM: x86: fix missed SRCU usage in kvm_lapic_set_vapic_addr
   aea9d760b8ba x86/cpu/AMD: Fix cpu_llc_id for AMD Fam17h systems
   4eb9a8100248 Linux 4.4.34
   b4bbdcef7d90 sparc64: Delete now unused user copy fixup functions.
   cb85910b0d45 sparc64: Delete now unused user copy assembler helpers.
   1c7e17b1c4d6 sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.
   7181969338f8 sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting.
   bfc8be659309 sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting.
   dc3a7a7d2c85 sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting.
   1731d90d8a55 sparc64: Convert U1copy_{from,to}_user to accurate exception reporting.
   8a444c770f6e sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting.
   c718e917b3d3 sparc64: Convert copy_in_user to accurate exception reporting.
   dd8a78b2b6ad sparc64: Prepare to move to more saner user copy exception handling.
   756723ad553d sparc64: Delete __ret_efault.
   f5a69ff7486e sparc64: Handle extremely large kernel TLB range flushes more gracefully.
   d36a1ac49d24 sparc64: Fix illegal relative branches in hypervisor patched TLB cross-call code.
   5d8eb954763d sparc64: Fix instruction count in comment for __hypervisor_flush_tlb_pending.
   217f829ae967 sparc64: Fix illegal relative branches in hypervisor patched TLB code.
   2ba06323db41 sparc64: Handle extremely large kernel TSB range flushes sanely.
   75931800733c sparc: Handle negative offsets in arch_jump_label_transform
   8fd11efa2140 sparc64 mm: Fix base TSB sizing when hugetlb pages are used
   4e90b6880135 sparc: serial: sunhv: fix a double lock bug
   a395f7a66eec sparc: Don't leak context bits into thread->fault_address
   4e772c53ab98 tty: Prevent ldisc drivers from re-using stale tty fields
   225a24ae9733 tcp: take care of truncations done by sk_filter()
   ae9e052a58ef ipv4: use new_gw for redirect neigh lookup
   5c67f9477bb2 net: __skb_flow_dissect() must cap its return value
   b67ed647d135 sock: fix sendmmsg for partial sendmsg
   0650eeb4f187 fib_trie: Correct /proc/net/route off by one error
   3f8857a4971d sctp: assign assoc_id earlier in __sctp_connect
   65d29c185614 ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped
   99131760a885 ipv6: dccp: fix out of bound access in dccp_v6_err()
   a2df29ed840f dccp: fix out of bound access in dccp_v4_err()
   ad6d0a82016b dccp: do not send reset to already closed sockets
   69a5c7ca2e62 tcp: fix potential memory corruption
   8777977b22c4 ip6_tunnel: Clear IP6CB in ip6tunnel_xmit()
   c5bad811ca4d bgmac: stop clearing DMA receive control register right after it is set
   6e9ca1b61cc8 net: mangle zero checksum in skb_checksum_help()
   ac4c2cf6f57a net: clear sk_err_soft in sk_clone_lock()
   74e53a3a053f dctcp: avoid bogus doubling of cwnd after loss
   86429bd405de Linux 4.4.33
   21cc1a183a9d netfilter: fix namespace handling in nf_log_proc_dostring
   ee5dd6878886 btrfs: qgroup: Prevent qgroup->reserved from going subzero
   ae6d4df4a7a0 mmc: mxs: Initialize the spinlock prior to using it
   ae5b8dbfe6be ASoC: sun4i-codec: return error code instead of NULL when create_card fails
   125e84726d7c ACPI / APEI: Fix incorrect return value of ghes_proc()
   5cd2cd84d573 i40e: fix call of ndo_dflt_bridge_getlink()
   5be7e6b48b21 hwrng: core - Don't use a stack buffer in add_early_randomness()
   ba8580f6cf03 lib/genalloc.c: start search from start of chunk
   c048b6711ed6 mei: bus: fix received data size check in NFC fixup
   19426f065d1e iommu/vt-d: Fix dead-locks in disable_dmar_iommu() path
   f029e7b34f25 iommu/amd: Free domain id when free a domain of struct dma_ops_domain
   f5bb84163704 tty/serial: at91: fix hardware handshake on Atmel platforms
   49163391881a dmaengine: at_xdmac: fix spurious flag status for mem2mem transfers
   fff40ee4d224 drm/i915: Respect alternate_ddc_pin for all DDI ports
   d7b0055e5566 KVM: MIPS: Precalculate MMIO load resume PC
   d24587404922 scsi: mpt3sas: Fix for block device of raid exists even after deleting raid disk
   6e897d034d4c scsi: qla2xxx: Fix scsi scan hang triggered if adapter fails during init
   29cf142cefed iio: orientation: hid-sensor-rotation: Add PM function (fix non working driver)
   caff14e99c63 iio: hid-sensors: Increase the precision of scale to fix wrong reading interpretation.
   dbbc5e6bcf36 clk: qoriq: Don't allow CPU clocks higher than starting value
   2c5cdadeab5d toshiba-wmi: Fix loading the driver on non Toshiba laptops
   f523deedff82 drbd: Fix kernel_sendmsg() usage - potential NULL deref
   f1de32232db3 usb: gadget: u_ether: remove interrupt throttling
   0ab4186bf238 USB: cdc-acm: fix TIOCMIWAIT
   290ffd550e34 staging: nvec: remove managed resource from PS2 driver
   4aa859ea591e Revert "staging: nvec: ps2: change serio type to passthrough"
   729eb8d9f7b7 drivers: staging: nvec: remove bogus reset command for PS/2 interface
   6bba8c37ceed staging: iio: ad5933: avoid uninitialized variable in error case
   a98e483ca784 pinctrl: cherryview: Prevent possible interrupt storm on resume
   126d0a2fe878 pinctrl: cherryview: Serialize register access in suspend/resume
   c45bfaa9211e ARC: timer: rtc: implement read loop in "C" vs. inline asm
   3b21a0b468a3 s390/hypfs: Use get_free_page() instead of kmalloc to ensure page alignment
   e835220ed25f coredump: fix unfreezable coredumping task
   5c54f79ad234 swapfile: fix memory corruption via malformed swapfile
   2f7496c48a7b dib0700: fix nec repeat handling
   a04769029386 ASoC: cs4270: fix DAPM stream name mismatch
   f3155797b91c ALSA: info: Limit the proc text input size
   c1ea2b3c07c6 ALSA: info: Return error for invalid read/write

(From OE-Core rev: 7d8d71ba5bc2dd8884c3f43a8d71a6d399c4e2fe)

(From OE-Core rev: ccca1eda8bb40dc79099d80e0314521aafa9f4aa)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Bruce Ashfield
521b01ab7c linux-yoct/4.1: update to v4.1.36
Shortlog of the changes:

   8576fa45c10e Linux 4.1.36
   39f99860357c kbuild: add -fno-PIE
   bf5d3d296abf firewire: net: fix fragmented datagram_size off-by-one
   c604dec3d5a6 firewire: net: guard against rx buffer overflows
   9fe6256c0020 parisc: Ensure consistent state when switching to kernel stack at syscall entry
   83a474ed7003 ovl: fsync after copy-up
   c0b309f18b01 virtio: console: Unlock vqs while freeing buffers
   4fe9ae4d3fcf md: be careful not lot leak internal curr_resync value into metadata. -- (all)
   e1e5cab9b43c md: sync sync_completed has correct value as recovery finishes.
   97d53c4d89e0 scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware
   d207c6603fc6 scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded
   169eb57c9e8d drm/radeon/si_dpm: workaround for SI kickers
   c1593e5dcc2a drm/dp/mst: Check peer device type before attempting EDID read
   e5c6bbbcc7be drm/dp/mst: add some defines for logical/physical ports
   dadd5803301f drm/dp/mst: Clear port->pdt when tearing down the i2c adapter
   a2d4bd9c99cc KVM: MIPS: Precalculate MMIO load resume PC
   b05ff0cb0dea KVM: MIPS: Make ERET handle ERL before EXL
   90a107c0b85b drm/radeon: drop register readback in cayman_cp_int_cntl_setup
   9a9a2373142a scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices
   1b15bd739689 Revert "drm/radeon: fix DP link training issue with second 4K monitor"
   5bc028b10d04 powerpc: Convert cmp to cmpd in idle enter sequence
   00a4335dfaa5 drm/radeon/si_dpm: Limit clocks on HD86xx part
   469bc68e081c drm/radeon/si/dpm: add workaround for for Jet parts
   85a2af9f690a USB: serial: cp210x: fix tiocmget error handling
   0854ce492ec3 Input: i8042 - add XMG C504 to keyboard reset table
   0e9bbbdfe9f8 ALSA: hda - Merge RIRB_PRE_DELAY into CTX_WORKAROUND caps
   02426cf24407 mac80211: discard multicast and 4-addr A-MSDUs
   f065a553f36e ubifs: Fix regression in ubifs_readdir()
   5fdb4fad291f GenWQE: Fix bad page access during abort of resource allocation
   55a2f87cd564 mm/list_lru.c: avoid error-path NULL pointer deref
   52e7b6bd8378 btrfs: fix races on root_log_ctx lists
   9f2d48f0745f vt: clear selection before resizing
   93ec720c6f10 tty: limit terminal size to 4M chars
   ca963122cab2 ALSA: usb-audio: Add quirk for Syntek STK1160
   3dc8f1f0decb KEYS: Fix short sprintf buffer in /proc/keys show function
   1f7ff6f7910e hv: do not lose pending heartbeat vmbus packets
   9662d19bab68 mei: txe: don't clean an unprocessed interrupt cause.
   a64291d578dd ANDROID: binder: Clear binder and cookie when setting handle in flat binder struct
   11924cba404d ANDROID: binder: Add strong ref checks
   39709c84807f dm table: fix missing dm_put_target_type() in dm_table_add_target()
   c91812c8ef76 usb: increase ohci watchdog delay to 275 msec
   51b231bd1a95 arm64: KVM: Take S1 walks into account when determining S2 write faults
   bb21e0295064 arm/arm64: KVM: Handle out-of-RAM cache maintenance as a NOP
   7fbfac87fbf5 USB: serial: fix potential NULL-dereference at probe
   605a6960617f xhci: workaround for hosts missing CAS bit
   c23a6dce1147 xhci: add restart quirk for Intel Wildcatpoint PCH
   4c17f91bb370 kvm: x86: memset whole irq_eoi
   9c5e89d59d56 libxfs: clean up _calc_dquots_per_chunk
   d1375c3e4f2e target: Don't override EXTENDED_COPY xcopy_pt_cmd SCSI status code
   ac49951623e1 target: Re-add missing SCF_ACK_KREF assignment in v4.1.y
   eaf55207fe3b ubifs: Abort readdir upon error
   b9ce8700a2e3 UBIFS: Fix possible memory leak in ubifs_readdir()
   cad1ca2a9485 ubifs: Fix xattr_names length in exit paths
   dfeb7e4f30e9 arm64: percpu: rewrite ll/sc loops in assembly
   3c9c01324032 powerpc/mm: Prevent unlikely crash in copro_calculate_slb()
   c1f5e5f89b99 isofs: Do not return EACCES for unknown filesystems
   b15662c8e266 irqchip/gic-v3-its: Fix entry size mask for GITS_BASER
   af17243fc1b4 arm64: kernel: Init MDCR_EL2 even in the absence of a PMU
   c911b72eaff1 USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7
   59eabe8bb60f memstick: rtsx_usb_ms: Manage runtime PM when accessing the device
   86559fc191ca memstick: rtsx_usb_ms: Runtime resume the device when polling for cards
   a89634cf709b mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led
   e79c2f2f7b30 mmc: rtsx_usb_sdmmc: Avoid keeping the device runtime resumed when unused
   f125e7f2285c mmc: sdhci: cast unsigned int to unsigned long long to avoid unexpeted error
   517052446f36 usb: gadget: function: u_ether: don't starve tx request queue
   66f38bf99faa ceph: fix error handling in ceph_read_iter
   9e9ca450cd93 irqchip/gicv3: Handle loop timeout proper
   88b6c9f4146a drm/radeon: change vblank_time's calculation method to reduce computational error.
   dcf4c1144f3a jbd2: fix incorrect unlock on j_list_lock
   a3da255ead60 scsi: Fix use-after-free
   8df981058e4f mmc: core: Annotate cmd_hdr as __le32
   7ea3d2e9c6aa x86/mm: Expand the exception table logic to allow new handling options

(From OE-Core rev: 41ab5422d4dc62b6e21ccad975b2a22960d3a44b)

(From OE-Core rev: cf6fd639735709e8216b257ccc0c4a431dec499e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Bruce Ashfield
87e5e492bc linux-yocto/4.4/4.8: Fix remaining kernel_configcheck warnings in Intel BSPs
Integrating the following meta-data change to remove warnings during
kernel configuration checking:

  bec7e0ace0e5 leds.cfg: Remove CONFIG_LEDS_TRIGGER_CPU
  cc857e64ea34 bsp/intel-quark: Remove bosch-pressure-sensor-i2c
  3198ab25af74 features/i2c: Support I2C_MUX by default

(From OE-Core rev: 2cf5fae50a3b7f232ad667c6c60eaa3f2aafd149)

(From OE-Core rev: 84268e01a48d074f45af8d5e8f36ab9a99505176)

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Bruce Ashfield
9db1372e45 linux-yocto/4.8: aufs warning and ixgbe calltrace
Integrating the following commits to fix aufs/ixgbe issues:

   Author: Liwei Song <liwei.song@windriver.com>
   Date:   Mon Dec 5 00:50:16 2016 -0500

       ixgbe: initialize u64_stats_sync structures early at ixgbe_probe

       Fix the following CallTrace:
       INFO: trying to register non-static key.
       the code is fine but needs lockdep annotation.
       turning off the locking correctness validator.
       CPU: 71 PID: 1 Comm: swapper/0 Not tainted 4.8.8-WR9.0.0.1_standard #11
       Hardware name: Intel Corporation S2600WTT/S2600WTT,
       BIOS GRNDSDP1.86B.0036.R05.1407140519 07/14/2014
        00200086 00200086 eb5e1ab8 c144dd70 00000000 00000000 eb5e1af8 c10af89a
        c1d23de4 eb5e1af8 00000009 eb5d8600 eb5d8638 eb5e1af8 c10b14d8 00000009
        0000000a c1d32911 00000000 00000000 e44c826c eb5d8000 eb5e1b74 c10b214e
       Call Trace:
        [<c144dd70>] dump_stack+0x5f/0x8f
        [<c10af89a>] register_lock_class+0x25a/0x4c0
        [<c10b14d8>] ? check_irq_usage+0x88/0xc0
        [<c10b214e>] __lock_acquire+0x5e/0x17a0
        [<c1abdb9b>] ? _raw_spin_unlock_irqrestore+0x3b/0x70
        [<c10cf14a>] ? rcu_read_lock_sched_held+0x8a/0x90
        [<c10b3c5f>] lock_acquire+0x9f/0x1f0
        [<c1922dcf>] ? dev_get_stats+0x5f/0x110
        [<c176e6b3>] ixgbe_get_stats64+0x113/0x320
        [<c1922dcf>] ? dev_get_stats+0x5f/0x110
        [<c1922dcf>] dev_get_stats+0x5f/0x110
        [<c1ab5415>] rtnl_fill_stats+0x40/0x105
        [<c193dd45>] rtnl_fill_ifinfo+0x4c5/0xd20
        [<c11c5115>] ? __kmalloc_node_track_caller+0x1a5/0x410
        [<c1917487>] ? __kmalloc_reserve.isra.42+0x27/0x80
        [<c191754f>] ? __alloc_skb+0x6f/0x270
        [<c1942291>] rtmsg_ifinfo_build_skb+0x71/0xd0
        [<c194230a>] rtmsg_ifinfo.part.23+0x1a/0x50
        [<c1923dad>] ? call_netdevice_notifiers_info+0x2d/0x60
        [<c194236b>] rtmsg_ifinfo+0x2b/0x40
        [<c192f997>] register_netdevice+0x3d7/0x4d0
        [<c192faa7>] register_netdev+0x17/0x30
        [<c177b83d>] ixgbe_probe+0x118d/0x1610
        [<c1498202>] local_pci_probe+0x32/0x80
        [<c1498172>] ? pci_match_device+0xd2/0x100
        [<c14991e0>] pci_device_probe+0xc0/0x110
        [<c1652cc5>] driver_probe_device+0x1c5/0x280
        [<c1498172>] ? pci_match_device+0xd2/0x100
        [<c1652e09>] __driver_attach+0x89/0x90
        [<c1652d80>] ? driver_probe_device+0x280/0x280
        [<c165114f>] bus_for_each_dev+0x4f/0x80
        [<c165269e>] driver_attach+0x1e/0x20
        [<c1652d80>] ? driver_probe_device+0x280/0x280
        [<c1652317>] bus_add_driver+0x1a7/0x220
        [<c1653a79>] driver_register+0x59/0xe0
        [<c1f897b8>] ? igb_init_module+0x49/0x49
        [<c1497b2a>] __pci_register_driver+0x4a/0x50
        [<c1f8985d>] ixgbe_init_module+0xa5/0xc4
        [<c1000485>] do_one_initcall+0x35/0x150
        [<c107e818>] ? parameq+0x18/0x70
        [<c1f395d8>] ? repair_env_string+0x12/0x51
        [<c107ead0>] ? parse_args+0x260/0x3b0
        [<c1074f73>] ? __usermodehelper_set_disable_depth+0x43/0x50
        [<c1f39e90>] kernel_init_freeable+0x19b/0x267
        [<c1f395c6>] ? set_debug_rodata+0xf/0xf
        [<c10b1e7b>] ? trace_hardirqs_on+0xb/0x10
        [<c1abdc02>] ? _raw_spin_unlock_irq+0x32/0x50
        [<c1085f0b>] ? finish_task_switch+0xab/0x1f0
        [<c1085ec9>] ? finish_task_switch+0x69/0x1f0
        [<c1ab6a30>] kernel_init+0x10/0x110
        [<c108bd65>] ? schedule_tail+0x25/0x80
        [<c1abe422>] ret_from_kernel_thread+0xe/0x24
        [<c1ab6a20>] ? rest_init+0x130/0x130

       This CallTrace occurred on 32-bit kernel with CONFIG_PROVE_LOCKING
       enabled.

       This happens at ixgbe driver probe hardware stage, when comes to
       ixgbe_get_stats64, the seqcount/seqlock still not initialize, although
       this was initialize in TX/RX resources setup routin, but it was too late,
       then lockdep give this Warning.

       To fix this, move the u64_stats_init function to driver probe stage,
       which before we get the status of seqcount and after the RX/TX ring
       was finished init.

       Signed-off-by: Liwei Song <liwei.song@windriver.com>
       Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

   Author: Kexin(Casey) Chen <Casey.Chen@windriver.com>
   Date:   Tue Nov 29 14:14:07 2016 -0800

       aufs: fix compile warning

       fs/aufs/debug.h:95:19: warning: comparison of constant '0'
       with boolean expression is always false [-Wbool-compare]
          if (unlikely((e) < 0)) \
                           ^

       fs/aufs/vdir.c:852:2: note: in expansion of macro 'AuTraceErr'
          AuTraceErr(!valid);
          ^~~~~~~~~~

       In expansion of AuTraceErr(!valid), comparison of (!valid)
       and constant '0' always passes unlikely(x) false. function
       'static int seek_vdir(struct file *file, struct dir_context *ctx)'
       is to find whether there is a valid vd_deblk following ctx->pos.
       return 1 means valid, 0 for not. Change to AuTraceErr(valid - 1)
       makes more sense.

       Signed-off-by: Kexin(Casey) Chen <Casey.Chen@windriver.com>
       Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

(From OE-Core rev: ae7d870954cf6a3608933335fedc425677aee0e3)

(From OE-Core rev: 815e3fdaa7964773587e24d40f3eaedc00cae10b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Robert Yang
d33274cd75 diffutils: do_configure: fix "Argument list too long"
Fixed when len(TMPDIR) =  410:
aclocal: error: cannot open echo [snip]: Argument list too long

This is becuase it has a lot of m4 files, use relative path for them
can fix the problem.

It doesn't happen when MACHINE="qemux86", I think it is because
intel-x86-64 is longer than qemux86.

(From OE-Core rev: 5210ccd61ef52a191454a4587cfeb22079df746d)

(From OE-Core rev: 3903e93c50616b592ac1a2a241573305bb9265a9)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Andreas Oberritter
b3484ab7f6 kernel.bbclass: fix kernel_do_compile for KERNEL_IMAGETYPE = "vmlinux.gz" on mips
The target directory didn't exist.

(From OE-Core rev: bd62851dc236a0279c735b290782602e275de5c1)

(From OE-Core rev: a7c49e98cff402b5400643ae2a04ae3f345c5bce)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Andreas Oberritter
45c87f4b4b kernel.bbclass: do not copy bundled initramfs to /boot
These files cause warnings because they don't get packaged, now that they
don't land in kernel-vmlinux anymore.

(From OE-Core rev: a49569e3a7534779bbe3f01a0647fd076c95798d)

(From OE-Core rev: 6a4e09b295d760654fd43897841c014d50f109ab)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Andreas Oberritter
b6df490f47 kernel.bbclass: Avoid wildcards for kernel images
With multiple kernel images enabled starting with 'vmlinux', e.g.
vmlinux.gz and vmlinux.bin, all files landed inside the
kernel-vmlinux package.

On top of that, even initramfs images were included, e.g.
vmlinux.gz-initramfs-*.

(From OE-Core rev: b7f4133b44b740e8ac8e758b0d4a3ee32d326332)

(From OE-Core rev: a248ef51ae680e81cf78f07fe242ac6e01a5fcb4)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Andreas Oberritter
5b0b9943f5 kernel.bbclass: Use real filenames in kernel packages
When iterating over kernel image types to set up their packaging
variables, don't use make targets but the real names.

It was surprising if both vmlinux.bin and vmlinux.gz were enabled
and only the latter had its filename extension removed from the
package name.

(From OE-Core rev: aa189f183e10588f7e8d642f351bd9b8d69f3ea9)

(From OE-Core rev: 07e93839ee0dc25904fb93d6ae236e3ab16982ec)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Andreas Oberritter
2d74e26228 kernel.bbclass: allow uncompressed initramfs archives
The code failed to copy the initramfs in case it was a plain
cpio archive.

(From OE-Core rev: 7dbdb4ea91aa027866da2bd46c65fe65a25c848f)

(From OE-Core rev: 0d65292296ed9fb82e7bfbcca42d4b7a39ba6ca9)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Paul Eggleton
1dcc0ab902 recipetool: fix encoding-related errors creating python recipes
Yet another instance of us expecting a string back from subprocess when
in Python 3 what you get back is bytes. Just decode the output within
run_command() so we avoid this everywhere.

(From OE-Core rev: 103faae78cdff5280c7b7cdb7ca01e0868d02ec9)

(From OE-Core rev: f9e0267a64069fa2488ceb7ca1f6dbe5bfb66c18)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Alexander Kanavin
e8b00a62b1 grub2: enforce -no-pie if supported by compiler
Recent distros are enabling -pie by default; in case of grub
we need to turn it off.

(From OE-Core rev: aaff6c99dde3f1058bb3c4b320f27753c6c992ad)

(From OE-Core rev: ba7cfc296b07fe62d46a6c143d9a7d344de9f446)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Mingli Yu
4dd5ede472 tiff: Fix several CVE issues
Fix CVE-2016-9533, CVE-2016-9534, CVE-2016-9536 and
CVE-2016-9537

External References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9533
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9534
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9536
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9537

Patch from:
83a4b92815 (diff-c8b4b355f9b5c06d585b23138e1c185f)

(From OE-Core rev: f75ecefee21ef89b147fff9afae01a6f09c93198)

(From OE-Core rev: 48d672e514d730ddda14f25f19f09c6d865a6526)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Mingli Yu
7760427c61 tiff: Security fix CVE-2016-9538
* tools/tiffcrop.c: fix read of undefined buffer in
readContigStripsIntoBuffer() due to uint16 overflow.

External References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9538

Patch from:
43c0b81a81 (diff-c8b4b355f9b5c06d585b23138e1c185f)

(From OE-Core rev: 9af5d5ea882c853e4cb15006f990d3814eeea9ae)

(From OE-Core rev: 33cad1173f6d1b803b794a2ec57fe8a9ef19fb44)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Mingli Yu
5d2c218f57 tiff: Security fix CVE-2016-9535
* libtiff/tif_predict.h, libtiff/tif_predict.c:
Replace assertions by runtime checks to avoid assertions in debug mode,
or buffer overflows in release mode. Can happen when dealing with
unusual tile size like YCbCr with subsampling.

External References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9535

Patch from:
3ca657a879
6a984bf790

(From OE-Core rev: 61d3feb9cad9f61f6551b43f4f19bfa33cadd275)

(From OE-Core rev: d55b4470c20f4a4b73b1e6f148a45d94649dfdb5)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Ross Burton
b6d7bc53e2 tiff: set CVE NAME
(From OE-Core rev: a28dc4cf7a8f67444f2f88248966478e385491d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Richard Purdie
3c6b603bc7 subversion: Fix issues in LDFLAGS sed manipulation
The existing sed expression can match expressions like
--sysroot=/some/path/xxx-linux/ which clearly isn't intended and
injects incorrect paths into LDFLAGS.

Fix this in the same way we address the problem in CFLAGS. This fixes corrupt
build paths and incorrect paths in .la files amongst other issues.

(From OE-Core rev: 9a8382422ddbb0972dc25b752204f4908bb9857c)

(From OE-Core rev: 980140fc0735df66592c09acda9686386711f2b5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Richard Purdie
ef7ccf837b attr: Convert SSTATEPOSTINSTFUNCS to a do_install_append
A SSTATEPOSTINSTFUNCS function here is overkill, just do this in a
do_install_append_class-native and create relative symlinks rather
than absolute ones which would then have to be relocated.

(From OE-Core rev: 518e8d0216b0f42f574e42288804f553b9ff6f99)

(From OE-Core rev: f884ee9b911d1ce38b84d90113113c6e8c30253b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Richard Purdie
56fb4af388 staging: Drop unused SYSROOT_LOCK
This hasn't been used in years and isn't referenced anywhere, drop
the definition.

(From OE-Core rev: 68258f856f08f35813964e58ef761471e29373ad)

(From OE-Core rev: b8b261d2e40457ee2e0cf1e8f40bd22230eb8ca7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Bruce Ashfield
587b9ecd37 kernel-yocto: exit on non-zero return code
Historically the processing of kernel meta data contained some
commands that exited with a non-zero return code. Special processing
was required to properly deal with their exit.

That is no longer true, and instead of handling all return codes
and doing an explicit 'exit' call, we can remove set -e from the
routine and have all errors be trapped and stop processing.

(From OE-Core rev: 476ffd57cf5b6fba40d4e3f5dd913824ab8a8d3d)

(From OE-Core rev: 620c74336dad517037fcf26c8f7bf8c013b213c1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:44 +00:00
Bruce Ashfield
443ce32b63 kern-tools: fix processing for no branch meta-data
Lernel meta-data that has patches, but no branches, can trigger an
error due to no branch specific patch queue.

This error then cascades to more issues since the tools are using
a named file in /tmp to store and display error messages to the
user.

We fix both issues though the following kern tools tweaks:

  commit bd9e1d6c9b0a34ff3e19a06999aaf57ffadfd04c
  Author: Bruce Ashfield <bruce.ashfield@windriver.com>
  Date:   Fri Dec 2 13:09:40 2016 -0500

    scc: use mktemp for consolidated output capture

    To provide useful error messages the tools dump pre-processed
    files and messages to a temporary file. If multiple users are
    doing builds, this means they either race, or can have permissions
    issues.

    By creating the temporary file via mktemp, we avoid both issues.
    (We also make sure to clean these up on exit, or /tmp will get
    polluted quickly).

  commit a287da4bfe0b4acb8f2b0627bd8e7abd1a1dde26
  Author: Bruce Ashfield <bruce.ashfield@windriver.com>
  Date:   Fri Dec 2 13:08:08 2016 -0500

    patch: do not assume a branch specific patch queue is needed

    When processing input files per-branch and global patch queues are
    generated. If the meta-data has not created any branches in the
    repo, no branch specific queue is required.

    The tools assumed that one is always valid, and hence would throw a
    non-zero exit code and stop processing.

    By testing for a named per-branch queue, we avoid this issue.

(From OE-Core rev: 0fd7da7375f0dcc59b56791fd482de557507c04c)

(From OE-Core rev: 6bc941a2a8e83e2db409af50ad77a0932e3ffe28)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Bruce Ashfield
9a36dcdb9b linux-yocto-dev: update to 4.9-rcX
(From OE-Core rev: 27c53cb8d0f1d408cb9791697305187944ad07b9)

(From OE-Core rev: c71f23e5ad72368045c44026955664dc69faef66)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Bruce Ashfield
1ca43bb304 linux-yocto/4.8: update to v4.8.10
Integrating the 4.8.9 and 4.8.10 -stable updates. The commit log is
as follows:

   cf5ae2989a32 Linux 4.8.10
   5cd8f6788ff3 usb: gadget: f_fs: stop sleeping in ffs_func_eps_disable
   e2458382c792 usb: gadget: f_fs: edit epfile->ep under lock
   e34a0f1c53b5 sparc64: Delete now unused user copy fixup functions.
   af97481a6f5b sparc64: Delete now unused user copy assembler helpers.
   ac663c54f40b sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.
   d91bb7a87e26 sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting.
   a15859f9d839 sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting.
   bb522726d311 sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting.
   b0580eadc19f sparc64: Convert U1copy_{from,to}_user to accurate exception reporting.
   50e927483ccf sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting.
   620ec41010d1 sparc64: Convert copy_in_user to accurate exception reporting.
   bf4d0da8e800 sparc64: Prepare to move to more saner user copy exception handling.
   bbbab9f59ea7 sparc64: Delete __ret_efault.
   81a91edbb91a sparc64: Handle extremely large kernel TLB range flushes more gracefully.
   7f8a50eb38d3 sparc64: Fix illegal relative branches in hypervisor patched TLB cross-call code.
   f7ef55af2f1b sparc64: Fix instruction count in comment for __hypervisor_flush_tlb_pending.
   2a28ab3d4148 sparc64: Fix illegal relative branches in hypervisor patched TLB code.
   f4fb552a033e sparc64: Handle extremely large kernel TSB range flushes sanely.
   51915c6d9070 sparc: Handle negative offsets in arch_jump_label_transform
   da6fe239ceff spi: spidev_test: fix build with musl libc
   4ea98e573d65 net: stmmac: Fix lack of link transition for fixed PHYs
   150b491b1b88 sctp: change sk state only when it has assocs in sctp_shutdown
   5235fcfa6cf8 bnx2: Wait for in-flight DMA to complete at probe stage
   6523ff2e27fe Revert "bnx2: Reset device during driver initialization"
   224fb8cbefb2 mlxsw: spectrum_router: Correctly dump neighbour activity
   9092bbd64bd9 mlxsw: spectrum: Fix refcount bug on span entries
   5712922773b5 Revert "include/uapi/linux/atm_zatm.h: include linux/time.h"
   2b5f22e4f7fd tcp: take care of truncations done by sk_filter()
   22a78d4c7f43 ipv4: use new_gw for redirect neigh lookup
   bccb4093d464 net: __skb_flow_dissect() must cap its return value
   a1632e969a55 net: icmp_route_lookup should use rt dev to determine L3 domain
   9885f474d92b sock: fix sendmmsg for partial sendmsg
   b78ba0a0f231 fib_trie: Correct /proc/net/route off by one error
   92fd1c1f2fd2 net: icmp6_send should use dst dev to determine L3 domain
   09ee09498bca bpf: fix htab map destruction when extra reserve is in use
   de289ad2e575 sctp: assign assoc_id earlier in __sctp_connect
   76b5fee5cfa0 ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped
   84d9c612bb7a ipv6: dccp: fix out of bound access in dccp_v6_err()
   ba93cf7d2118 dccp: fix out of bound access in dccp_v4_err()
   378a61101374 dccp: do not send reset to already closed sockets
   72b03e549b95 dccp: do not release listeners too soon
   b3523a0773ed tcp: fix return value for partial writes
   1f49cc6fa91c ipv4: allow local fragmentation in ip_finish_output_gso()
   842a858fa048 tcp: fix potential memory corruption
   fc3b825f2c81 ip6_tunnel: Clear IP6CB in ip6tunnel_xmit()
   f5f4b71d5632 bgmac: stop clearing DMA receive control register right after it is set
   0c7f764d2c6a net: mangle zero checksum in skb_checksum_help()
   ac22a3ba0796 net: clear sk_err_soft in sk_clone_lock()
   5b078dc6fb64 dctcp: avoid bogus doubling of cwnd after loss
   876577321657 Linux 4.8.9
   07d00beb1e04 netfilter: fix namespace handling in nf_log_proc_dostring
   8ef009e09c13 drm/i915: Fix mismatched INIT power domain disabling during suspend
   88a45e5d2c0d drm/amdgpu: fix a vm_flush fence leak
   25ed6e4b0b65 drm/amdgpu: fix fence slab teardown
   de5e9aa77a3c NFSv4.1: work around -Wmaybe-uninitialized warning
   18c801047a18 libceph: fix legacy layout decode with pool 0
   53c1792b94da memcg: prevent memcg caches to be both OFF_SLAB & OBJFREELIST_SLAB
   02e1ee6b3e1c mmc: mxs: Initialize the spinlock prior to using it
   ce0702e35aeb pinctrl: iproc: Fix iProc and NSP GPIO support
   320244ac9eb6 ASoC: sun4i-codec: return error code instead of NULL when create_card fails
   2140d4fd9277 ASoC: Intel: Skylake: Always acquire runtime pm ref on unload
   5037fdbc62c2 gpio: of: fix GPIO drivers with multiple gpio_chip for a single node
   7a9239fd0480 gpio/mvebu: Use irq_domain_add_linear
   6de98e87effb batman-adv: Modify neigh_list only with rcu-list functions
   a3f000ce7b44 ACPI/PCI: pci_link: Include PIRQ_PENALTY_PCI_USING for ISA IRQs
   6c76dd0c7066 ACPI/PCI: pci_link: penalize SCI correctly
   86c711665c84 ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages
   ad185d9251e1 ACPI / APEI: Fix incorrect return value of ghes_proc()
   b55ebc89ab1d mmc: sdhci-msm: Fix error return code in sdhci_msm_probe()
   85284c0850f9 i40e: fix call of ndo_dflt_bridge_getlink()
   1242c9dfab0c hwrng: core - Don't use a stack buffer in add_early_randomness()
   c1a2ada73dac lib/genalloc.c: start search from start of chunk
   06bb5ebedbb4 s390/dumpstack: restore reliable indicator for call traces
   1ef1bd02ad23 rtc: pcf2123: Add missing error code assignment before test
   4baabb72e9dd clk: samsung: clk-exynos-audss: Fix module autoload
   3bbdbd8aa3c8 x86/build: Fix build with older GCC versions
   f5eadc27a60c Revert "clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init"
   645a6b823739 nvme: Delete created IO queues on reset
   07c4cbe01341 svcrdma: Tail iovec leaves an orphaned DMA mapping
   4131e00a436e svcrdma: Skip put_page() when send_reply() fails
   755ab7aa1466 mei: bus: fix received data size check in NFC fixup
   d1b564536c6a perf top: Fix refreshing hierarchy entries on TUI
   6ac4e06b717f Input: synaptics-rmi4 - fix error handling in I2C transport driver
   d3716f1b3e4b Input: synaptics-rmi4 - fix error handling in SPI transport driver
   66503ec38f34 watchdog: core: Fix devres_alloc() allocation size
   c5e9e5cc8cd1 agp/intel: Flush chipset writes after updating a single PTE
   813617a4c8dc iommu/vt-d: Fix dead-locks in disable_dmar_iommu() path
   b6ef0b142208 iommu/amd: Free domain id when free a domain of struct dma_ops_domain
   2ef38255b588 iommu/io-pgtable-arm: Check for v7s-incapable systems
   d3d9428d7133 xprtrdma: Fix DMAR failure in frwr_op_map() after reconnect
   31c749bee3de xprtrdma: use complete() instead complete_all()
   67080e2785a3 drm/amd: fix scheduler fence teardown order v2
   b0da5ab2ffb5 drm/amdgpu: fix sched fence slab teardown
   920a85ba4306 tty/serial: at91: fix hardware handshake on Atmel platforms
   9d76a886eb2f drm/amdgpu: fix crash in acp_hw_fini
   6e652d18d73d drm/amdgpu: disable runtime pm in certain cases
   8c8fdc683295 drm/i915/dp: Extend BDW DP audio workaround to GEN9 platforms
   db8e005bf2ba drm/i915/dp: BDW cdclk fix for DP audio
   f50b7450a8e4 drm/i915: Respect alternate_ddc_pin for all DDI ports
   e1b24f6a0b3c drm/radeon: disable runtime pm in certain cases
   eb13abb0e515 KVM: arm/arm64: vgic: Prevent access to invalid SPIs
   2850fad5acb0 scsi: scsi_dh_alua: Fix a reference counting bug
   5fac70d772a4 scsi: scsi_dh_alua: fix missing kref_put() in alua_rtpg_work()
   f29bcd11a170 scsi: mpt3sas: Fix for block device of raid exists even after deleting raid disk
   b2040deabb07 scsi: qla2xxx: Fix scsi scan hang triggered if adapter fails during init
   1281b9683f96 iio: st_sensors: fix scale configuration for h3lis331dl
   4dfb6d1dd11d iio: orientation: hid-sensor-rotation: Add PM function (fix non working driver)
   341c5534edad iio: hid-sensors: Increase the precision of scale to fix wrong reading interpretation.
   b9d031f354da cdc-acm: fix uninitialized variable
   c480880cd12c clk: qoriq: Don't allow CPU clocks higher than starting value
   ee27fd32c499 toshiba-wmi: Fix loading the driver on non Toshiba laptops
   f713523a234c drbd: Fix kernel_sendmsg() usage - potential NULL deref
   31da266e4b9a usb: gadget: u_ether: remove interrupt throttling
   264e4131a167 USB: cdc-acm: fix TIOCMIWAIT
   c12c24eeaf77 usb: dwc3: Fix error handling for core init
   6b95417150b7 staging: nvec: remove managed resource from PS2 driver
   82239ab105a5 Revert "staging: nvec: ps2: change serio type to passthrough"
   529789866abe drivers: staging: nvec: remove bogus reset command for PS/2 interface
   dea774aac054 staging: comedi: ni_tio: fix buggy ni_tio_clock_period_ps() return value
   5d510185f99a staging: sm750fb: Fix bugs introduced by early commits
   45983d678b70 staging: iio: ad5933: avoid uninitialized variable in error case
   5289e59246dd mmc: mmc: Use 500ms as the default generic CMD6 timeout
   ce4dfe7d927e mmc: sdhci: Fix unexpected data interrupt handling
   bde8d3f73375 mmc: sdhci: Fix CMD line reset interfering with ongoing data transfer
   10d24701f3f4 cpupower: Correct return type of cpu_power_is_cpu_online() in cpufreq-set
   f062e738c19b pinctrl: cherryview: Prevent possible interrupt storm on resume
   1d99fe3317e3 pinctrl: cherryview: Serialize register access in suspend/resume
   f5ad96462615 arc: Implement arch-specific dma_map_ops.mmap
   004e7c97f181 PCI: Don't attempt to claim shadow copies of ROM
   7fac0361f94e ARC: timer: rtc: implement read loop in "C" vs. inline asm
   4058116db4d0 s390/hypfs: Use get_free_page() instead of kmalloc to ensure page alignment
   2f3e0b82ebe9 coredump: fix unfreezable coredumping task
   d6ee4f47e2e7 mm/hugetlb: fix huge page reservation leak in private mapping error paths
   e87bf4f558f1 mm: hwpoison: fix thp split handling in memory_failure()
   67c79e166d46 swapfile: fix memory corruption via malformed swapfile
   c87739e5d029 shmem: fix pageflags after swapping DMA32 object
   5b5243b606ec mm, frontswap: make sure allocated frontswap map is assigned
   2e594273d4c5 dib0700: fix nec repeat handling
   9964230320d5 ASoC: cs4270: fix DAPM stream name mismatch
   9386a722d250 ALSA: info: Limit the proc text input size
   c3ea1b15b71e ALSA: info: Return error for invalid read/write

(From OE-Core rev: b5e43be6aaf912cf6c679ee98ed61cf34dd00ee8)

(From OE-Core rev: 05c1981319f4f5637e72ed4f86e91d38483c8dc8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Jair Gonzalez
bbc7130507 parselogs: Whitelist GPT warnings as the device is fully functional
The warning occurs when the GPT image is not the same size than the
media into which it's being flashed, causing the backup GPT table
not being at the end of the disk. However, this is expected as the
image is created before having the information about the destination
media. The error is harmless, so it will be whitelisted.

Fixes [YOCTO 10481].

(From OE-Core rev: 5cc5cdc788308a79f8f0706e6d794c602ef427ed)

(From OE-Core rev: 941194d29d8e4c334d3f85ce7709c894cf34b8d1)

Signed-off-by: Jair Gonzalez <jair.de.jesus.gonzalez.plascencia@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
California Sullivan
745517685b parselogs.py: Whitelist iwlwifi firmware load error messages
The iwlwifi module of any given kernel has a minimum and maximum
supported firmware version. The kernel begins by attempting to load the
maximum version, and decrements until it is successful. The 4.8 kernel's
maximum supported firmware version is 24, but thus far only 22 has been
released, meaning we get errors for 24 and 23.

Filter out iwlwifi firmware load error messages, as they are not
necessarily indicative of real problems.

(From OE-Core rev: 7df570c2310efac8f9898da15deaac2b7df16655)

(From OE-Core rev: 23aa95a8a15cd0b7bdc43dba9375e139f4b20607)

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Patrick Ohly
ed9e0b8aaf scripts/send-pull-request: Avoid multiple chain headers
When creating a patch set with cover letter using the
send-pull-request script, both the "In-Reply-To" and "References"
headers are appended twice in patch 2 and subsequent.

That's because git-format-patch already inserted them and then
git-send-email repeats that. Suppressing mail threading in
git-send-email with --no-thread avoids the problem and is the
right solution because it works regardless whether git-send-email is
called once or twicee.

Repeating these headers is a violation of RFC 2822 and can confuse
mail programs. For example, Patchwork does not detect a patch series
problem when there are these extra headers.

[YOCTO #10718]

(From OE-Core rev: 303a1aa3df43eb0b693d8602062fa33c4a08fdd6)

(From OE-Core rev: 025d21b856e650c8edefd2d06493e84f8416d50f)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Martin Vuille
926f3dfe2d terminal.py: Pass string instead of bytes to ExecutionError to avoid exception
Based on run() in bitbake/lib/bb/process.py, ExecutionError() expects strings
not bytes. Passing bytes results in a "TypeError: Can't convert 'bytes' object
to str implicitly" exception.

Fixes Bug 10729

(From OE-Core rev: 063b63d4d324c23322ac1b6b7c7928e725d7b968)

(From OE-Core rev: df4d5246d47acc54aa322b777364c9b86f9a4c54)

Signed-off-by: Martin Vuille <jpmv27@yahoo.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Yi Zhao
4073438491 libxml2: Security fix CVE-2016-5131
CVE-2016-5131 libxml2: Use-after-free vulnerability in libxml2 through
2.9.4, as used in Google Chrome before 52.0.2743.82, allows remote
attackers to cause a denial of service or possibly have unspecified
other impact via vectors related to the XPointer range-to function.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-5131

Patch from:
https://git.gnome.org/browse/libxml2/commit/?id=9ab01a277d71f54d3143c2cf333c5c2e9aaedd9e

(From OE-Core rev: 640bd2b98ff33e49b42f1087650ebe20d92259a4)

(From OE-Core rev: 1e284447b9bf42e1fd6080f5a50fe01c8267a4e6)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Zhixiong Chi
6fe39199a4 tiff: Security fix CVE-2016-9539
tools/tiffcrop.c in libtiff 4.0.6 has an out-of-bounds read in
readContigTilesIntoBuffer(). Reported as MSVR 35092.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9539

Patch from:
ae9365db1b

(From OE-Core rev: 58bf0a237ca28459eb8c3afa030c0054f5bc1f16)

(From OE-Core rev: 0933a11707a369c8eaefebd31e8eea634084d66e)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Zhixiong Chi
3f0c6a8f5c tiff: Security fix CVE-2016-9540
tools/tiffcp.c in libtiff 4.0.6 has an out-of-bounds write on tiled
images with odd tile width versus image width. Reported as MSVR 35103,
aka "cpStripToTile heap-buffer-overflow."

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-9540

Patch from:
5ad9d8016f

(From OE-Core rev: cc97dc66006c7892473e3b4790d05e12445bb927)

(From OE-Core rev: ad2c4710ef15c35f6dd4e7642efbceb2cbf81736)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
David Vincent
2fa2739850 slang: Disable parallel make install
Installation task fails if run in parallel. This case happens if we
define PARALLEL_MAKEINST to a different value of PARALLEL_MAKE.

(From OE-Core rev: bbe59d7c49b540d65c871666c95cc89a23cab474)

(From OE-Core rev: 1aff7c867c0ad926f204459b65d3088900871ec9)

Signed-off-by: David Vincent <freesilicon@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Mark Asselstine
d87772571f systemd.bbclass: don't block on service restart
The current class works fine when a recipe uses SYSTEMD_AUTO_ENABLE
'enable' and has no on device pkg_postinst(), ie when the postinst is
run as part of rootfs creation.  However, when there is a component of
pkg_postinst() that is run on device the 'systemctl restart' is run as
part of the run_postinsts.service at boot. This results in the boot
spinning indefinitely with:

[ *** ] A start job is running for Run pending postinsts (7s / no limit)

The issue could potentially be that the packages service has an
'After' clause which comes later in the boot, beyond
run_postinsts.service, creating a chicken before the egg
scenario. Even service files without an 'After' clause cause this
situation however. Despite this not being the cause of the issue this
fix will prevent this scenario from happenning.

Using strace we are able to find that during boot, when
run_postinsts.service is running attempting to start or restart any
service will result in the call get stuck on poll(). Since the
run_postinsts.service does not monitor the outcome of the call to
restart we can work around this by using '--no-block'.

(From OE-Core rev: 6ad6a0084a73088fc2a27ab9958e5c46d6e094fc)

(From OE-Core rev: caad8aa89f9815a278e39296497596996a35fe95)

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Aníbal Limón
cebbc4372a perl: Fix ptest update hash of ExtUtils/Liblist/Kid.pm in customized.dat
The perl ptest is failing due to a patch changes the file
ExtUtils/Liblist/Kid.pm and the customized.dat file wasn't updated.

[YOCTO #8656]

(From OE-Core rev: 0ed3cc09e3988367fa57bd08fb7db12b7fb9dabe)

(From OE-Core rev: 5a0ee17cf17ce0b0deac54f990e2128674768b38)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Ed Bartosh
14f514d93c qemux86*.conf: set wic-related parameters
Set directdisk.wks as default wks to use for qemux86 machines.
Set requried dependeincies to build directdisk image.

This should simplify building wic images for qemux86* machines.
It should be enough to add wic to the list of IMAGE_FSTYPES to get
the images built.

[YOCTO #10637, YOCTO #8719]

(From OE-Core rev: 8716b8b9be05e3f140bfa426a8e0d4eeaa2edcbe)

(From OE-Core rev: 3d99674a712cf06c62aa3a98b6696d430547fcec)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Patrick Ohly
793092d1a1 pseudo: include fix for xattr corruption
pseudo_1.8.1.bb gets the backported patch and pseudo_git.bb gets
updated to include the commit.

(From OE-Core rev: 4e98f3a6e6f61d9d9037ac828b9c4869f7e11458)

(From OE-Core rev: 264114805cc942e052e79bdaa5ae7978d68fdd8e)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Samuli Piippo
903c4158a5 mesa: make sure GLES3 headers are installed
Since there is no libgles3-mesa package that would pull in the headers,
add dependency to libgles2-mesa-dev. Now there no need to manually add
GLES3 headers to image or toolchain.

(From OE-Core rev: a93bbfa096cd7de8e935c6c2d2ad98d72a1c297f)

(From OE-Core rev: fd02a12e875a900e46f50d92772098298ed4bc73)

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Ross Burton
468b78967a insane: rewrite the expanded-d test as a QAPKGTEST
Instead of being executed for every file in every package, this is now just
called for each package.  It is also now correctly called for packages which
don't have any content but do have postinst scripts.

[ YOCTO #10711 ]

(From OE-Core rev: afda72b2424528eaff9054327530bdf5654bec66)

(From OE-Core rev: b653bfb800a470894ec93c8bb4acd12a143716a6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Ross Burton
93b13d9995 insane: add QAPKGTEST, a package-wide equivilant to QAPATHTEST
QAPATHTEST defines a function that is executed for every file in every package.
For tests which just need to look at the datastore this is massive overkill.

Add QAPKGTEST, which is invoked for each package in the recipe.

(From OE-Core rev: acc3cc26099c77e4eeb44c75bc7167ab58ef1147)

(From OE-Core rev: e7751fa0bdb5bc9b217a0bf267a9c658bec997fa)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Ross Burton
67965302e2 insane: factor out the test matrix processing
Pull the test matrix processing out as a function so it can be reused.

(From OE-Core rev: 3caccd3f6079b7e284d32e1eb0217107425e7bf8)

(From OE-Core rev: 3b21c285d4ff08ae6f613700c5936e39e7e3051d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:43 +00:00
Ross Burton
71c8568b38 insane: fix expanded-d test
This test should be looking for the expanded value of ${D} in the expanded value
of pkg_postinst and so on, but one of the getVar() calls was passing
expand=False so the test would never be true.

(From OE-Core rev: cc545044cba51317bee32e3bf674723e422e3a8a)

(From OE-Core rev: 9d4f094a7c9cbff0d3db5f339d084b2b7c70df86)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Alexandre Belloni
3a96984d3a insane: Add aarch64 baremetal mappings to the QA arch test
Add mappings for aarch64-elf and aarch64_be-elf to binary lookup table
which allows for the generation of baremetal toolchains.

(From OE-Core rev: e90a1c4b8fd7baa738eb4683e5eac60905e04296)

(From OE-Core rev: 9a8a4fe56901f88f143e86652edc7039345d49fc)

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Khem Raj
44a13f115d arch-arm64.inc: Include arch-armv7ve.inc
All armv8 implementations from a53 - a73 supports
virtual extentions

(From OE-Core rev: f896375c60d8ce0f1293f5329163172e946f46df)

(From OE-Core rev: 4bf27daace6528b1fa6062be0600ca36441d81f9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
eee2e545d0 kern-tools: error checking and tree generation fixes
During processing of the kernel meta data the kern tools were
not properly exiting on syntax errors or invalid commands.

Noticing and debugging these issues wasn't trivial. To make this
easier, we now trap the error and dump the offending meta-data
for the user to see.

There was also an issue with creating branches during tree
generation, which is resolved by always switching to the
active branch.

The following are the commit logs of the changes themselves:

[
  commit b36f6f9a5695f2084b83823393e13ca42284bed9
  Author: Paul Gortmaker <paul.gortmaker@windriver.com>
  Date:   Sat Oct 22 17:23:25 2016 -0400

      kgit-scc: dont mention meta-repo in help ; it doesnt exist

      Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

  commit 08463d684c1952e74c25344cddace4c3f24c739d
  Author: Bruce Ashfield <bruce.ashfield@windriver.com>
  Date:   Mon Oct 31 14:30:12 2016 -0400

      scc: exit on error

      If there is an error in the processing of the input files, scc
      should exit and inform the user.

      scc is executed on a combined/preprocessed file and as a result
      it doesn't have the granularity to see each input file individually.

      Rather than moving preprocessing into scc (from spp), we can trap
      the line number of the error and dump context around the line.
      This gives the user a pointer to the input file and the specific
      line that caused the problem.

      Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

  commit bf99953e8ac14cee653e559f2d4a6022c847a182
  Author: Bruce Ashfield <bruce.ashfield@windriver.com>
  Date:   Fri Oct 28 21:23:27 2016 -0400

      kgit-meta: always checkout branches on branch commands

      During a tree generation we must always make the branch active when
      we see any kind of branch command. This ensures that any subsequent
      patches are applied in the proper context.

      Previously, only branch creation was changing the active branch, and
      this mean that tree generation was not determinstic and relied
      on the order of processing to generate a correct tree.

      Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
]

(From OE-Core rev: 83d10e2acef936b1f38804988f10eafa48db36f9)

(From OE-Core rev: 95dd034a5d911c6f703856d7baeb6e61cb625396)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
35207b387f linux-yocto/4.4: update to v4.4.32
Updating from v4.4.30 -> v4.4.32. The shortlog summary of the changes
follows:

   4dab3e4df994 Linux 4.4.32
   ae94da4c53b7 scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression
   2be0548e64f1 drm/radeon: fix DP mode validation
   ccc31f819918 drm/radeon/dp: add back special handling for NUTMEG
   227994b52c73 drm/amdgpu: fix DP mode validation
   2e8cfc1fe985 drm/amdgpu/dp: add back special handling for NUTMEG
   72c13445dfb4 KVM: MIPS: Drop other CPU ASIDs on guest MMU changes
   c57deabd2b17 Revert KVM: MIPS: Drop other CPU ASIDs on guest MMU changes
   e28a472742bf of: silence warnings due to max() usage
   d21daf7f3ee8 packet: on direct_xmit, limit tso and csum to supported devices
   bd891f40f04f sctp: validate chunk len before actually using it
   7c230d0e546a net sched filters: fix notification of filter delete with proper handle
   d46c76765da6 udp: fix IP_CHECKSUM handling
   80d59090d4e3 net: sctp, forbid negative length
   1a680e543f84 ipv4: use the right lock for ping_group_range
   827ada2d671b ipv4: disable BH in set_ping_group_range()
   3cb00b90e8b1 net: add recursion limit to GRO
   02558fa0e061 rtnetlink: Add rtnexthop offload flag to compare mask
   ebfbfc2e4df8 bridge: multicast: restore perm router ports on multicast enable
   f467184e2323 net: pktgen: remove rcu locking in pktgen_change_name()
   e635b4766174 ipv6: correctly add local routes when lo goes up
   f9d4850af3c8 ip6_tunnel: fix ip6_tnl_lookup
   705b5aca17c3 ipv6: tcp: restore IP6CB for pktoptions skbs
   6d123f1d396b netlink: do not enter direct reclaim from netlink_dump()
   d72cb5fb36bd packet: call fanout_release, while UNREGISTERING a netdev
   63091b2c1dea net: Add netdev all_adj_list refcnt propagation to fix panic
   9edbf4a0b60b net/sched: act_vlan: Push skb->data to mac_header prior calling skb_vlan_*() functions
   bb7ffb6b68a9 net: pktgen: fix pkt_size
   bc5d8ced3c98 net: fec: set mac address unconditionally
   0ee4acb7b3be tg3: Avoid NULL pointer dereference in tg3_io_error_detected()
   6eb0061fa630 ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route
   4f312a802994 ip6_gre: fix flowi6_proto value in ip6gre_xmit_other()
   aadcd6a96010 tcp: fix a compile error in DBGUNDO()
   ac40148543c5 tcp: fix wrong checksum calculation on MTU probing
   d2e01b15657c net: avoid sk_forward_alloc overflows
   a35ce624a3ae tcp: fix overflow in __tcp_retransmit_skb()
   beb996c1c399 Linux 4.4.31
   78bd7c9bf60b HID: usbhid: add ATEN CS962 to list of quirky devices
   69e14ce88389 ubi: fastmap: Fix add_vol() return value test in ubi_attach_fastmap()
   91e1f7b0eb25 kvm: x86: Check memopp before dereference (CVE-2016-8630)
   62fa839b8fff tty: vt, fix bogus division in csi_J
   93fe5c7bb4e0 usb: dwc3: Fix size used in dma_free_coherent()
   4b06152a4822 pwm: Unexport children before chip removal
   353bbacfd57f UBI: fastmap: scrub PEB when bitflips are detected in a free PEB EC header
   1d79b67c4a8a Disable "frame-address" warning
   c5b2cd97b1d3 smc91x: avoid self-comparison warning
   603c78000f8c cgroup: avoid false positive gcc-6 warning
   8a618bc7e586 drm/exynos: fix error handling in exynos_drm_subdrv_open
   26a5f0596ff2 mm/cma: silence warnings due to max() usage
   58fca2f1563b ARM: 8584/1: floppy: avoid gcc-6 warning
   f0b13816ad4f powerpc/ptrace: Fix out of bounds array access warning
   eeae15feceaf x86/xen: fix upper bound of pmd loop in xen_cleanhighmap()
   95f2bdbe50d0 perf build: Fix traceevent plugins build race
   9702108e3def drm/dp/mst: Check peer device type before attempting EDID read
   1262212d3b8e drm/radeon: drop register readback in cayman_cp_int_cntl_setup
   1734d4e14221 drm/radeon/si_dpm: workaround for SI kickers
   231be2b99e4a drm/radeon/si_dpm: Limit clocks on HD86xx part
   4b32256b2706 Revert "drm/radeon: fix DP link training issue with second 4K monitor"
   a1ffa7c37a4c mmc: dw_mmc-pltfm: fix the potential NULL pointer dereference
   c77a2346226e scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware
   69ee0ed0c6f9 scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded
   9075faf1406c scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices
   d9237e75fd74 mac80211: discard multicast and 4-addr A-MSDUs
   1d22568ce5ed firewire: net: fix fragmented datagram_size off-by-one
   46e14262a063 firewire: net: guard against rx buffer overflows
   304cc8b5b437 Input: i8042 - add XMG C504 to keyboard reset table
   daac9e1c85c9 dm mirror: fix read error on recovery after default leg failure
   88586a4f884c virtio: console: Unlock vqs while freeing buffers
   50e1c4d90aff virtio_ring: Make interrupt suppression spec compliant
   f2d9107bd0a0 parisc: Ensure consistent state when switching to kernel stack at syscall entry
   e3d312c435dd ovl: fsync after copy-up
   ab69d3a03e22 KVM: MIPS: Make ERET handle ERL before EXL
   159766dff4d4 KVM: x86: fix wbinvd_dirty_mask use-after-free
   cb270a3f1666 dm: free io_barrier after blk_cleanup_queue call
   f49f9df84eb2 USB: serial: cp210x: fix tiocmget error handling
   00877d139396 tty: limit terminal size to 4M chars
   e8a806797070 xhci: add restart quirk for Intel Wildcatpoint PCH
   fde4a5f237ab hv: do not lose pending heartbeat vmbus packets
   3425e397fb23 vt: clear selection before resizing
   dc1555e670c3 Fix potential infoleak in older kernels
   bd5cc3294de3 GenWQE: Fix bad page access during abort of resource allocation
   ce423aca0126 usb: increase ohci watchdog delay to 275 msec
   54af73d02eb4 xhci: use default USB_RESUME_TIMEOUT when resuming ports.
   a98f0e91b0fc USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7
   f2ecc94504f4 USB: serial: fix potential NULL-dereference at probe
   660c04e8f174 usb: gadget: function: u_ether: don't starve tx request queue
   c0510383011f mei: txe: don't clean an unprocessed interrupt cause.
   dc70a200aac2 ubifs: Fix regression in ubifs_readdir()
   0222377bb2cb ubifs: Abort readdir upon error
   f0d6ba518421 btrfs: fix races on root_log_ctx lists
   8910c3388253 ANDROID: binder: Clear binder and cookie when setting handle in flat binder struct
   14f09e8e7cd8 ANDROID: binder: Add strong ref checks
   c5be1e1314ee ALSA: hda - Fix headset mic detection problem for two Dell laptops
   34a8b859da9f ALSA: hda - Adding a new group of pin cfg into ALC295 pin quirk table
   4a30dbab6584 ALSA: hda - allow 40 bit DMA mask for NVidia devices
   b0b3d37edb19 ALSA: hda - Raise AZX_DCAPS_RIRB_DELAY handling into top drivers
   aa72457de77b ALSA: hda - Merge RIRB_PRE_DELAY into CTX_WORKAROUND caps
   d08ae42a106d ALSA: usb-audio: Add quirk for Syntek STK1160
   940d7ecbc57c KEYS: Fix short sprintf buffer in /proc/keys show function
   299991298b04 mm: memcontrol: do not recurse in direct reclaim
   9fa32e04f810 mm/list_lru.c: avoid error-path NULL pointer deref
   fd9e4cea96df libxfs: clean up _calc_dquots_per_chunk
   0daca12d6774 h8300: fix syscall restarting
   44084f15b706 drm/dp/mst: Clear port->pdt when tearing down the i2c adapter
   4125fe7f8d31 i2c: core: fix NULL pointer dereference under race condition
   eeb1846df1c8 i2c: xgene: Avoid dma_buffer overrun

(From OE-Core rev: cdc73ef471c9bf304810a7457c0cb10116d70ef1)

(From OE-Core rev: 9620bb22013223d1cd24cd177e54206d4950cc41)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
a871504b70 linux-yocto/4.8: update from v4.8.6 -> v4.8.8
Updating to the korg -stable release 4.8.8. The short log change
summary follows:

   61385cc1db42 Linux 4.8.8
   8ed841d6c045 scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression
   32f60e9b621f scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices
   eb2ca7aac349 usb: dwc3: gadget: properly account queued requests
   38db26fb3ae5 arch/powerpc: Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold
   a143c6022cef packet: on direct_xmit, limit tso and csum to supported devices
   a6289d9ac3fe ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit()
   c9e086b9009a sctp: validate chunk len before actually using it
   5a37dce1b679 net sched filters: fix notification of filter delete with proper handle
   d46b19687fec net: ipv6: Do not consider link state for nexthop validation
   eb77db88ea11 macsec: Fix header length if SCI is added if explicitly disabled
   027ab3b8ee5a netvsc: fix incorrect receive checksum offloading
   b75edf27a6c3 udp: fix IP_CHECKSUM handling
   5ee356021c42 sctp: fix the panic caused by route update
   d90cbfaf5439 net: sctp, forbid negative length
   64774617da37 net: fec: Call swap_buffer() prior to IP header alignment
   c6c82c2b707e ipv4: use the right lock for ping_group_range
   8418193f7052 ipv4: disable BH in set_ping_group_range()
   23c110c4cdbc net: add recursion limit to GRO
   d3bbd04b92fd net: core: Correctly iterate over lower adjacency list
   fc5722f8f8f2 rtnetlink: Add rtnexthop offload flag to compare mask
   4ac3ca8c2933 switchdev: Execute bridge ndos only for bridge ports
   63d82a2cbd0c bridge: multicast: restore perm router ports on multicast enable
   e9a5921c393f net: pktgen: remove rcu locking in pktgen_change_name()
   2eeb5735dd04 net/mlx4_en: fixup xdp tx irq to match rx
   27bb6e31d32d IB/ipoib: move back IB LL address into the hard header
   f280126ec8d8 ipv6: correctly add local routes when lo goes up
   0f3e77623916 ip6_tunnel: fix ip6_tnl_lookup
   a148a818df84 net: phy: Trigger state machine on state change and not polling.
   2a9099899a6a ipv6: tcp: restore IP6CB for pktoptions skbs
   50b43ad1dce6 net_sched: reorder pernet ops and act ops registrations
   dac04913ee27 drivers/ptp: Fix kernel memory disclosure
   3f841d1555ad netlink: do not enter direct reclaim from netlink_dump()
   5086cadf8fa4 packet: call fanout_release, while UNREGISTERING a netdev
   6fff1319fdac net: Add netdev all_adj_list refcnt propagation to fix panic
   9caee42c800e net/sched: act_vlan: Push skb->data to mac_header prior calling skb_vlan_*() functions
   c002dfd8adaa net: pktgen: fix pkt_size
   ff1b27c31706 net: fec: set mac address unconditionally
   567aeca9fbb7 Linux 4.8.7
   1bf121d3b234 HID: usbhid: add ATEN CS962 to list of quirky devices
   05a833d4b051 cpufreq: intel_pstate: Set P-state upfront in performance mode
   c89771511deb ubi: fastmap: Fix add_vol() return value test in ubi_attach_fastmap()
   591bf1362e9e btrfs: qgroup: Prevent qgroup->reserved from going subzero
   0c879624701d kvm: x86: Check memopp before dereference (CVE-2016-8630)
   725a92be3926 ARM: fix oops when using older ARMv4T CPUs
   e339609bf377 tty: vt, fix bogus division in csi_J
   4a22930a74ac v4l: vsp1: Prevent pipelines from running when not streaming
   59f9693a170a usb: musb: Fix hardirq-safe hardirq-unsafe lock order error
   086ac9180437 usb: chipidea: host: fix NULL ptr dereference during shutdown
   07bae478e1c1 usb: dwc3: Fix size used in dma_free_coherent()
   fedede0963c4 pwm: Unexport children before chip removal
   7b4b77b9566d omapfb: fix return value check in dsi_bind()
   a3e55d6342b2 video: fbdev: pxafb: potential NULL dereference on error
   13d0f5b3a399 uapi: add missing install of sync_file.h
   db5025bd08ef UBI: fastmap: scrub PEB when bitflips are detected in a free PEB EC header
   cc94524e8940 netfilter: xt_NFLOG: fix unexpected truncated packet
   720a40113e78 i2c: mark device nodes only in case of successful instantiation
   f7d8d44a68de drm: i915: Wait for fences on new fb, not old
   1cefe4cb4f8c drm/i915/fbc: fix CFB size calculation for gen8+
   809e9e6fc390 drm/i915: Clean up DDI DDC/AUX CH sanitation
   ba0a959e0334 drm/i915: Respect alternate_aux_channel for all DDI ports
   426a724c9972 drm: Release reference from blob lookup after replacing property
   5064a6a05387 drm/dp/mst: Check peer device type before attempting EDID read
   e6fcf953a995 drm/i915/gen9: fix watermarks when using the pipe scaler
   0f7f9c456380 drm/i915/gen9: fix DDB partitioning for multi-screen cases
   0cc98b5963f8 drm/fb-helper: Keep references for the current set of used connectors
   14f4a463dc78 drm/fb-helper: Fix connector ref leak on error
   6222f1e0b9ef drm/fb-helper: Don't call dirty callback for untouched clips
   7290da41b8da drm/nouveau/acpi: fix check for power resources support
   fd5f9e1e28cb drm/radeon: drop register readback in cayman_cp_int_cntl_setup
   e136de5d7331 drm/radeon/si_dpm: workaround for SI kickers
   fe777e7a595c drm/radeon/si_dpm: Limit clocks on HD86xx part
   fa6227dbfd6a drm/imx: ipuv3-plane: Access old u/vbo properly in ->atomic_check for YU12/YV12
   d040374f3473 drm/imx: ipuv3-plane: Switch EBA buffer only when we don't need modeset
   51ed5a2bbf38 Revert "drm/radeon: fix DP link training issue with second 4K monitor"
   ac6f210dd7a6 md: be careful not lot leak internal curr_resync value into metadata. -- (all)
   eba4fe9db92f RAID10: ignore discard error
   21faa6dbf53f RAID1: ignore discard error
   b80fcd58e6f6 mmc: dw_mmc-pltfm: fix the potential NULL pointer dereference
   1244d3c3a0f6 scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware
   2a1a0a6f1d60 scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded
   5bac49422b4a ath10k: cache calibration data when the core is stopped
   a7d092e946f5 Revert "ath9k_hw: implement temperature compensation support for AR9003+"
   aea7cb3b7ceb mac80211: discard multicast and 4-addr A-MSDUs
   27fa1e735c70 firewire: net: fix fragmented datagram_size off-by-one
   032430fb6a2c firewire: net: guard against rx buffer overflows
   facb17b67ac9 Input: i8042 - add XMG C504 to keyboard reset table
   8b535f07898a rtl8xxxu: Fix rtl8723bu driver reload issue
   1c9edb27261e rtl8xxxu: Fix big-endian problem reporting mactime
   ece1b51ae1c4 rtl8xxxu: Fix memory leak in handling rxdesc16 packets
   5a805cd29284 dm raid: fix activation of existing raid4/10 devices
   6e5456768ba1 dm raid: fix compat_features validation
   056290446e8a dm rq: clear kworker_task if kthread_run() returned an error
   13a59a868756 dm table: fix missing dm_put_target_type() in dm_table_add_target()
   159a17e8dbf6 dm mirror: fix read error on recovery after default leg failure
   d8db5234adef virtio: console: Unlock vqs while freeing buffers
   7569d22a820d virtio_pci: Limit DMA mask to 44 bits for legacy virtio devices
   0c2f67a6196d virtio_ring: Make interrupt suppression spec compliant
   c528df925fba parisc: Ensure consistent state when switching to kernel stack at syscall entry
   592de1000694 ovl: fsync after copy-up
   3ad464dadb7c ovl: update S_ISGID when setting posix ACLs
   be9015460ed5 ovl: fix get_acl() on tmpfs
   2b632307635f MIPS: KASLR: Fix handling of NULL FDT
   1734afcce32b nfsd: Fix general protection fault in release_lock_stateid()
   202c6676b963 ARM: dts: fix the SD card on the Snowball
   db20b510ca5c ARM: mvebu: Select corediv clk for all mvebu v7 SoC
   c627b2e76ae2 KVM: MIPS: Precalculate MMIO load resume PC
   f3a0c969e788 KVM: MIPS: Make ERET handle ERL before EXL
   961cf133b710 KVM: s390: Fix STHYI buffer alignment for diag224
   88aca01f8cb4 KVM: x86: fix wbinvd_dirty_mask use-after-free
   ea261d177aed dm: free io_barrier after blk_cleanup_queue call
   377a2a273c4b Staging: wilc1000: Fix kernel Oops on opening the device
   0c4ffbf9e118 iio:chemical:atlas-ph-sensor: Fix use of 32 bit int to hold 16 bit big endian value
   52a1e76f16e2 arm64: dts: marvell: fix clocksource for CP110 master SPI0
   0dff3c6321a5 tty: limit terminal size to 4M chars
   44f0722dc9ac xhci: workaround for hosts missing CAS bit
   0894224ae7c0 xhci: add restart quirk for Intel Wildcatpoint PCH
   b2d28d93cf83 hv: do not lose pending heartbeat vmbus packets
   eeae0a12a166 vt: clear selection before resizing
   9710f5b19328 x86/smpboot: Init apic mapping before usage
   58b0a7f115f8 GenWQE: Fix bad page access during abort of resource allocation
   b9aa0a7290f5 usb: increase ohci watchdog delay to 275 msec
   241208e7b721 usb: renesas_usbhs: add wait after initialization for R-Car Gen3
   00dbeb06292b xhci: use default USB_RESUME_TIMEOUT when resuming ports.
   1e306cd37a66 USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7
   d082fd105eb9 USB: serial: cp210x: fix tiocmget error handling
   e8bf726705bd USB: serial: fix potential NULL-dereference at probe
   23124735a6f0 usb: gadget: function: u_ether: don't starve tx request queue
   fe4af125085a usb: gadget: udc: atmel: fix endpoint name
   420d16894425 mei: txe: don't clean an unprocessed interrupt cause.
   5d30e8f65073 ubifs: Fix regression in ubifs_readdir()
   b8176cc56bf1 ubifs: Abort readdir upon error
   1755f43e9a90 timers: Lock base for same bucket optimization
   e18ed431d7da timers: Plug locking race vs. timer migration
   b5e3a038997a timers: Prevent base clock corruption when forwarding
   665f7bf33aa8 timers: Prevent base clock rewind when forwarding clock
   0d621c57e739 x86/microcode/AMD: Fix more fallout from CONFIG_RANDOMIZE_MEMORY=y
   e599203f55ad powerpc/64: Fix race condition in setting lock bit in idle/wakeup code
   51d784b54768 powerpc/64: Re-fix race condition between going idle and entering guest
   2c7ff0e5c311 powerpc/mm/radix: Use tlbiel only if we ever ran on the current cpu
   ae150de2d5e0 powerpc: Convert cmp to cmpd in idle enter sequence
   1198fbca645e btrfs: fix races on root_log_ctx lists
   bc720ae2ffab cxl: Fix leaking pid refs in some error paths
   2a997e83960b ANDROID: binder: Clear binder and cookie when setting handle in flat binder struct
   599cfd58ffde ANDROID: binder: Add strong ref checks
   2a0efa30b15c ALSA: hda - Fix headset mic detection problem for two Dell laptops
   2585e17b71c7 ALSA: hda - Fix surround output pins for ASRock B150M mobo
   14456570a4a5 ALSA: hda - Adding a new group of pin cfg into ALC295 pin quirk table
   54186c7dd2ec ALSA: hda - allow 40 bit DMA mask for NVidia devices
   0f574c90d747 ALSA: seq: Fix time account regression
   8ccf154b2654 ALSA: usb-audio: Add quirk for Syntek STK1160
   9d3f5b85ef8b device-dax: fix percpu_ref_exit ordering
   33bcff297228 security/keys: make BIG_KEYS dependent on stdrng.
   5152986c9257 KEYS: Sort out big_key initialisation
   5daa841d0437 KEYS: Fix short sprintf buffer in /proc/keys show function
   0a38e6c551c4 thermal/powerclamp: correct cpu support check
   5db5e0c11c13 mm: memcontrol: do not recurse in direct reclaim
   68adb469dd3b mm/slab: fix kmemcg cache creation delayed issue
   67ae004e2c52 mm/list_lru.c: avoid error-path NULL pointer deref
   5cb73199ca48 libxfs: clean up _calc_dquots_per_chunk
   d00057ecf82f gpio: GPIO_GET_LINE{HANDLE,EVENT}_IOCTL: Fix file descriptor leak
   c70eb2cc1276 gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix another information leak
   6bba4b226521 gpio: GPIO_GET_LINEEVENT_IOCTL: Reject invalid line and event flags
   e2144827d96b gpio: GPIO_GET_LINEHANDLE_IOCTL: Reject invalid line flags
   c0699405b147 gpio: GPIO_GET_LINEEVENT_IOCTL: Validate line offset
   49bdfb21e37d gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix information leak
   e22edf53b40f gpio: GPIO_GET_LINEHANDLE_IOCTL: Validate line offset
   a23a59c56a53 gpio: GPIO_GET_CHIPINFO_IOCTL: Fix information leak
   78ae767553e4 gpio: GPIO_GET_CHIPINFO_IOCTL: Fix line offset validation
   56ffab4f532e gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get()
   4366246129ca h8300: fix syscall restarting
   a639266ae0c3 spi: mark device nodes only in case of successful instantiation
   d6634d871199 spi: fsl-espi: avoid processing uninitalized data on error
   0cee66b72acc drm/dp/mst: Clear port->pdt when tearing down the i2c adapter
   f2ffb21fb495 i2c: core: fix NULL pointer dereference under race condition
   0fda1cdcbb72 i2c: xgene: Avoid dma_buffer overrun
   9c619c2a8d4d i2c: rk3x: Give the tuning value 0 during rk3x_i2c_v0_calc_timings

(From OE-Core rev: f95903012735e764ae0608a17fc6d4d8c139eb83)

(From OE-Core rev: 02cbbeb726923df8122d5e30a1908a0897e8cd6c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
c3be679a54 linux-yocto/4.8: update to v4.8.6-rt5
Paul Gortmaker sent along updates to the latest 4.8 -rt version.
Updating the SRCREVs to include the following commits:

   f83a3d4a643b v4.8.6-rt5
   74c7ffc2e3f2 NFSv4: don't disable preemption on !RT
   9711dc408890 kbuild: Add -fno-pie to KBUILD_AFLAGS:
   7b4d4278e307 v4.8.6-rt4
   24aa22031f3c v4.8.2-rt3
   8541163464e2 kbuild: add -fno-PIE
   81b61ced2d45 NFSv4: replace seqcount_t with a seqlock_t
   a8300ce29d0c worqueue: document the proper argument
   9711591ebdc3 genirq: document swork member
   1aace69fd88f rbtree: include barrier.h
   74d4589809f2 rxrpc: remove unused static variables
   a941e2f0611c x86/apic: get rid of "warning: 'acpi_ioapic_lock' defined but not used"
   9888d1c2e3ab hotplug: Call mmdrop_delayed() in sched_cpu_dying() if PREEMPT_RT_FULL
   debf0ec42b2e drivers/zram: Don't disable preemption in zcomp_stream_get/put()
   c84b472ee376 mm/zs_malloc: Fix bit spinlock replacement
   c17de80bfeba zsmalloc: turn that get_cpu_light() into a local_lock()
   33586701e8ad connector/cn_proc: Protect send_msg() with a local lock on RT
   b20867d36bcd ftrace: Fix trace header alignment

(From OE-Core rev: 6840594c43b892056886f471575ccb49a78f34e4)

(From OE-Core rev: 0ec50af0cbc8c3fc6301637e4efeaf99fea0512e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
02bfc6a0dc linux-yocto/4.1: update to v4.1.35
Updating to the korg -stable release.

(From OE-Core rev: c0231b1306034cc03987a5fbabd6f17125c9392b)

(From OE-Core rev: b4b0a4232cf4bd22a4cb0941998c6f66429a23b8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
6a25e7a5fd linux-yocto/4.4: update to v4.4.30
Updating to the korg -stable release.

(From OE-Core rev: feed13b4d108a93b4e95ed9f80f9624e1bd1cdf5)

(From OE-Core rev: a916135b282e1a350a380b96eb0b04d2820bea6e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
da9ceffa9e linux-yocto/4.8: fix cryptodev compilation error
It was reported that compilation was broken for the in tree variant of
cryptodev. This commit integrates two patches that fix the issue:

  efbdfa1ed95f cryptodev: stomp dynamic version numbering for in tree builds
  32f54070205f cryptodev: fix compile error when enable CONFIG_CRYPTODEV

(From OE-Core rev: b91469ac21825a86eb7a71f1e91206719061bcaa)

(From OE-Core rev: 4ce2375e4ef1ef37e87c95faa0cae6171f390afa)

Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Bruce Ashfield
7033e66e9f linux-yocto/4.8: update to 4.8.6
Integrating the korg -stable release.

(From OE-Core rev: 2a7d3173c7a05cd09bbcf5fe465403b2d4b2b589)

(From OE-Core rev: f805e0c996342b1171035792bcc06d90026d5e5f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Ross Burton
3c9a34aaea conf: add C++ flags for uninative interoperatility
Create a common include file for compiler flags which allow native binaries to
be interoperable on a wide range of hosts. In particular the C++ ABI is
problematic so choose the CXX11 version to allow interoperation between gcc4 and
gcc5 based hosts. Moving this to a common include instead of uninative.bbclass
allows uninative to be configured later and used in the eSDK (where its
mandatory) even if the base configuration doesn't enable uninative by default
(e.g. nodistro in OE-Core).

[ YOCTO #10645 ]

(From OE-Core rev: 60c912ae9306532bdd4c5e09a65863ee77c12f43)

(From OE-Core rev: 10dea25aac31c156350e3e73f937472404c22d81)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Fabio Berton
91ec543003 binutils: Fix build for c293pcie PPC machine
The following patch fix build for c293pcie PPC machine :
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=8941017b

This patch is a backport from master branch.

Fix error:
/
|ERROR: binutils-2.27-r0 do_package: runstrip: ''powerpc-fslc-linux-gnuspe-strip'
|--remove-section=.comment --remove-section=.note --strip-unneeded
|'../tmp/work/ppce500v2-fslc-linux-gnuspe/binutils/2.27-r0/package/usr/lib/
|libbfd-2.27.0.20160806.so'' strip command failed with 1
|(b'powerpc-fslc-linux-gnuspe-strip: ../tmp/work/ppce500v2-fslc-linux-gnuspe/
|binutils/2.27-r0/package/usr/lib/stJMAEnm: Not enough room for program headers,
|try linking with -N\npowerpc-fslc-linux-gnuspe-strip:../tmp/work/
|ppce500v2-fslc-linux-gnuspe/binutils/2.27-r0/package/usr/lib/stJMAEnm
|[.note.gnu.build-id]: Bad value\n')
\

(From OE-Core rev: 3526c23ae98d2e08af20b77175c12907355ec42a)

(From OE-Core rev: 639b1b6d187ee44b3f67b9d013517a0c904fffc4)

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Maciej Borzecki
d6f478d9df wic: fix function comment typos
Fix typos in documentation of Image.add_partition() and
Image.__format_disks().

(From OE-Core rev: f5bf7bf253224912c66bab89f48ff63a73e0d698)

(From OE-Core rev: 44ce5b4bb0873d5a2dec25f2dc489a6ab8f7995e)

Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Maciej Borzecki
0a25fbfdb4 wic: check that filesystem is specified for a rootfs partition
We explicitly check for --fstype if no source was provided for a
partition. However, this was not the case for rootfs partitions. Make
sure to raise an error if filesystem was left unspecified when preparing
a rootfs partition image.

(From OE-Core rev: b8c35fcad57810a87aa25ebeb533adf286eed565)

(From OE-Core rev: dc4d1cfc4d6bd01432857448f66af5492cad7574)

Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Maciej Borzecki
0c5596e5d3 wic: make sure that partition size is always an integer in internal processing
The size field of Partition class is expected to be an integer and ought
to be set inside prepare_*() method. Make sure that this is always the
case.

(From OE-Core rev: a37838f995ae642b0b8bdd47a605a264fb3bf200)

(From OE-Core rev: 4e869343952aef8748b40e538c14ad8b94221910)

Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:42 +00:00
Yi Zhao
25cd713c44 tiff: Security fix CVE-2016-3632
CVE-2016-3632 libtiff: The _TIFFVGetField function in tif_dirinfo.c in
LibTIFF 4.0.6 and earlier allows remote attackers to cause a denial of
service (out-of-bounds write) or execute arbitrary code via a crafted
TIFF image.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3632
http://bugzilla.maptools.org/show_bug.cgi?id=2549
https://bugzilla.redhat.com/show_bug.cgi?id=1325095

The patch is from RHEL7.

(From OE-Core rev: 9206c86239717718be840a32724fd1c190929370)

(From OE-Core rev: 0c6928f4129e5b1e24fa2d42279353e9d15d39f0)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Yi Zhao
abcb751f02 nfs-utils: fix protocol minor version fall-back
Mount nfs directory would fail if no specific nfsvers:
mount -t nfs IP:/foo/bar/ /mnt/
mount.nfs: an incorrect mount option was specified

mount.nfs currently expects mount(2) to fail with EPROTONOSUPPORT if
the kernel doesn't understand the requested NFS version.
Unfortunately if the requested minor is not known to the kernel
it returns -EINVAL.

Backport patch from nfs-utils-1.3.4 to fix this issue.

(From OE-Core rev: 332596628697d28ae6e8c2271c9658aaf5e54796)

(From OE-Core rev: 2b8362c42f9a7d689084ad956370d2d6c4fa9179)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Yi Zhao
ebbaae9005 openssl: Security fix CVE-2016-7055
There is a carry propagating bug in the Broadwell-specific Montgomery
multiplication procedure that handles input lengths divisible by, but
longer than 256 bits.

External References:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7055
https://www.openssl.org/news/secadv/20161110.txt

Patch from:
57c4b9f6a2

(From OE-Core rev: 07cfa9e2bceb07f3baf40681f8c57f4d3da0aee5)

(From OE-Core rev: 090c2ff292a4d92142c3f33c7517be69d9c16c24)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
T.O. Radzy Radzykewycz
545a4d2e56 OpenSSL: CVE-2004-2761 replace MD5 hash algorithm
Use SHA256 as default digest for OpenSSL instead of MD5.

CVE: CVE-2004-2761

    The MD5 Message-Digest Algorithm is not collision resistant,
    which makes it easier for context-dependent attackers to
    conduct spoofing attacks, as demonstrated by attacks on the
    use of MD5 in the signature algorithm of an X.509 certificate.

Upstream-Status: Backport
Backport from OpenSSL 2.0 to OpenSSL 1.0.2
Commit f8547f62c212837dbf44fb7e2755e5774a59a57b

Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
(From OE-Core rev: f924428cf0c22a0b62769f8f31f11f173f25014f)

(From OE-Core rev: 0066e5c5559009f250b6e5953d5830db2c8769e1)

Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
Signed-off-by: T.O. Radzy Radzykewycz <radzy@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Khem Raj
8325c93df9 cmake.bbclass: Set CXXFLAGS and CFLAGS
We strip the TOOLCHAIN_OPTIONS and HOST_CC_ARCH from CC/CXX in cmake.bbclass
whereas CFLAFS and CXXFLAGS assume that TOOLCHAIN_OPTIONS are
part of CC/CXX variables, this causes compile failures when cmake
is running compiler tests during configure on some architectures
especially armhf, because hf ABI information -mfloat-abi is part
of TOOLCHAIN_OPTIONS, so what happens is that testcase gets compiled
without hard-float, howver, during linking the float ABI option
is passed via LDFLAGS, now linker rejects this and fails like
/mnt/a/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/6.2.0/ld: error: cmTC_27947 uses VFP register arguments, CMakeFiles/cmTC_27947.dir/src.cxx.o does not
mnt/a/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/6.2.0/ld: failed to merge target specific data of file CMakeFiles/cmTC_27947.dir/src.cxx.o
collect2: error: ld returned 1 exit status

This means that CMake now fails the configure time test too
which is not right, e.g. it might disable features which actually do exist
and should be enabled e.g. in case above it is resulting as below

Performing C++ SOURCE FILE Test HAS_BUILTIN_SYNC_SUB_AND_FETCH failed with the following output:

Its actually a bug in CMake see
https://gitlab.kitware.com/cmake/cmake/issues/16421

CMake is ignoring CMAKE_CXX_FLAGS when using CHECK_CXX_SOURCE_COMPILES
function.

Until it is fixed upstream, we add HOST_CC_ARCH and TOOLCHAIN_OPTIONS
to CFLAGS and CXXFLAGS, so that we can ensure that compiler invocation
remains consistent.

(From OE-Core rev: 826f3cdb474b5728b22f08d2342fc90235ca9e7d)

(From OE-Core rev: 7e5fd5914e15397a56425130c2322ace67da2ee4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Zhixiong Chi
cb2967921e tiff: Security fix CVE-2016-3658
The TIFFWriteDirectoryTagLongLong8Array function in tif_dirwrite.c in the tiffset tool
allows remote attackers to cause a denial of service (out-of-bounds read) via vectors
involving the ma variable.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3658
http://bugzilla.maptools.org/show_bug.cgi?id=2546

Patch from:
45c68450be

(From OE-Core rev: c060e91d2838f976774d074ef07c9e7cf709f70a)

(From OE-Core rev: cc266584158c8dfc8583d21534665b6152a4f7ee)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Kai Kang
460bbf456b qemu: update run-ptest script
The Makefile in directory tests has been renamed, then update script
run-ptest to follow the change.

(From OE-Core rev: 364565f3f3baccc9757ce0dcb393464b38055b4f)

(From OE-Core rev: aece2afafbd304adee30978537b9404a9344dd4e)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Kai Kang
8d1afc2a0d qemu: fix CVE-2016-7909
Backport patch to fix CVE-2016-7909 of qemu.

Ref:
https://security-tracker.debian.org/tracker/CVE-2016-7909

(From OE-Core rev: 126783ca25a5ae9daf87ac563239fbff4696a682)

(From OE-Core rev: 469267010b43a1c114e22009c9ac68f36c22f896)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
André Draszik
31d4000b15 openssl: fix bashism in c_rehash shell script
This script claims to be a /bin/sh script, but it uses
a bashism:

from checkbashisms:

possible bashism in meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh line 151 (should be 'b = a'):
	    if [ "x/" == "x$( echo ${FILE} | cut -c1 -)" ]

This causes build issues on systems that don't have
/bin/sh symlinked to bash:

Updating certificates in ${WORKDIR}/rootfs/etc/ssl/certs...
<builddir>/tmp/sysroots/x86_64-linux/usr/bin/c_rehash: 151: [: x/: unexpected operator
 ...

Fix this by using POSIX shell syntax for the comparison.

(From OE-Core rev: 0526524c74d4c9019fb014a2984119987f6ce9d3)

(From OE-Core rev: 2ece9c0e955ee99543968ddfd14da909e23ae611)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Reviewed-by: Sylvain Lemieux <slemieux@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Ross Burton
a469b6efc6 systemtap: fix native linking on recent Ubuntu
The latest Ubuntu uses yet more aggressive hardening options, which causes the
unconventional build order used by systemtap to fail.

[ YOCTO #10521 ]

(From OE-Core rev: 5ca6ac8739ea4a273df7b8e5c5f7d481619923d8)

(From OE-Core rev: 3397af5877a41a6a59aeb90f8610c759cad38795)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Ross Burton
6d57ce3fa3 systemtap: remove explicit msgfmt check
Passing --disable-nls should be enough to disable the requirement for a full
gettext to be present, but the upstream configure explicitly checks for msgfmt
even if it isn't going to be used.  To avoid having to depend on gettext-native,
patch this check out.

(From OE-Core rev: 2f8d2a74f73490c1ae35131d3eb3592f7ee0a1e4)

(From OE-Core rev: 7d689876574ba47e5ad07d67ad40fd865b0c27f5)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Ed Bartosh
c852c9352f systemd-bootdisk.wks: use PARTUUID
Root device name in systemd-bootdisk.wks is 'sda'. This can cause
images, produced using this wks to refuse booting if real device
name is not 'sda'. For example, when booting MinnowBoard MAX from
MicroSD card the boot process stucks with this message on the boot
console output: Waiting for root device /dev/sda2...
This happens because real device name of MicroSD card on this device
is mmcblk1.

Used --use-uuid option for root partition. This should make
wic to put partiion UUID instead of device name into kernel command
line.

[YOCTO #10485]

(From OE-Core rev: 5b73d5f484cc844affe91ec19d881d42e187f30c)

(From OE-Core rev: 71a365d57359dd8d9bfce66985975b1533e983d7)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Khem Raj
c0526ab007 libbsd: Fix build with musl
a.out.h support is not across all architectures only
x86/x86_64 support is in linux/a.out.h, this patch
abstracts the minimum needed constructs into itself

(From OE-Core rev: 757224640bbf4ebf17aea22fa1419c9c3bcd89ce)

(From OE-Core rev: 7985b295384f98fd6ea88f3aff197ccf0369977b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Li Zhou
1a118330c3 db: disable the ARM assembler mutex code
The swpb in macro MUTEX_SET will cause "undefined instruction" error
on the new arm arches which don't support this assembly instruction
any more. If use ldrex/strex to replace swpb, the old arm arches don't
support them. So to avoid this issue, just disable the ARM assembler
mutex code, and use the default pthreads mutex.

(From OE-Core rev: aafbc548ebc66dc0d703526f9a98f784e9c9605b)

(From OE-Core rev: d6a0ef7e9dfbda3d55ba18f2bcc69f04d502495d)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
André Draszik
53ad465b40 cve-check.bbclass: CVE-2014-2524 / readline v5.2
Contrary to the CVE report, the vulnerable trace functions
don't exist in readline v5.2 (which we keep for GPLv2+
purposes), they were added in readline v6.0 only - let's
whitelist that CVE in order to avoid false positives.

See also the discussion in
 https://patchwork.openembedded.org/patch/81765/

(From OE-Core rev: b881a288eec598002685f68da80a24e0478fa496)

(From OE-Core rev: b4498a6b734661fdfe3ff4e0a9850e796b72005c)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Reviewed-by: Lukasz Nowak <lnowak@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Robert Yang
2336faa9aa qemuarm64.conf: make runqemu's graphics work
Fixed:
$ runqemu qemuarm64 (without -nographics)
There is no output in qemu console without this fix.

(From OE-Core rev: 40a64e64b2ff41661ff254d0836c5f60120c6795)

(From OE-Core rev: f07c139e91d2173dac4289727d1401a19d6ed821)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Daniel Díaz
a4c7f45b8b weston: Add no-input-device patch to 1.11.0.
The included patch, backported from Weston master (and OE-Core
master since Weston 1.11.1, b6864b1), allows it to run without
any input device at launch. An ini option is introduced for
this purpose, so there is no behavioral change.

Related change in weston.ini:
  [core]
  require-input=true

Default is true; setting it false allows Weston to run
without a keyboard or mouse, which is handy for automated
environments.

(From OE-Core rev: 8fa5e442d16b1d04066b51b9fd56be41ae67d2d5)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Koen Kooi
6b736febdc libbsd 0.8.3: BBCLASSEXTEND to native and nativesdk
Android-tools depends on it and to build the native versions of fastboot, adb, mkbootimg and others libbsd needs to support native builds.

(From OE-Core rev: 5d6761dacd370fdb6f29269a22cfbca86f301024)

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit b02cef58ee35dd277fff48538ce2803df1cbc4d5)
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Armin Kuster
4c1020aad6 tzdata: update to 2016i
Briefly: Cyprus split into two time zones on 2016-10-30, and Tonga
  reintroduces DST on 2016-11-06.

  Changes to future time stamps

    Pacific/Tongatapu begins DST on 2016-11-06 at 02:00, ending on
    2017-01-15 at 03:00.  Assume future observances in Tonga will be
    from the first Sunday in November through the third Sunday in
    January, like Fiji.  (Thanks to Pulu ʻAnau.)  Switch to numeric
    time zone abbreviations for this zone.

  Changes to past and future time stamps

    Northern Cyprus is now +03 year round, causing a split in Cyprus
    time zones starting 2016-10-30 at 04:00.  This creates a zone
    Asia/Famagusta.  (Thanks to Even Scharning and Matt Johnson.)

    Antarctica/Casey switched from +08 to +11 on 2016-10-22.
    (Thanks to Steffen Thorsen.)

  Changes to past time stamps

    Several corrections were made for pre-1975 time stamps in Italy.
    These affect Europe/Malta, Europe/Rome, Europe/San_Marino, and
    Europe/Vatican.

    First, the 1893-11-01 00:00 transition in Italy used the new UT
    offset (+01), not the old (+00:49:56).  (Thanks to Michael
    Deckers.)

    Second, rules for daylight saving in Italy were changed to agree
    with Italy's National Institute of Metrological Research (INRiM)
    except for 1944, as follows (thanks to Pierpaolo Bernardi, Brian
    Inglis, and Michael Deckers):

      The 1916-06-03 transition was at 24:00, not 00:00.

      The 1916-10-01, 1919-10-05, and 1920-09-19 transitions were at
      00:00, not 01:00.

      The 1917-09-30 and 1918-10-06 transitions were at 24:00, not
      01:00.

      The 1944-09-17 transition was at 03:00, not 01:00.  This
      particular change is taken from Italian law as INRiM's table,
      (which says 02:00) appears to have a typo here.  Also, keep the
      1944-04-03 transition for Europe/Rome, as Rome was controlled by
      Germany then.

      The 1967-1970 and 1972-1974 fallback transitions were at 01:00,
      not 00:00.

(From OE-Core rev: daf95f7fd9f7ab65685d7b764d8e50df8d00d308)

(From OE-Core rev: 550901db388eda2476da24b71117223be999688b)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Armin Kuster
afaef2018f tzcode: update to 2016i
Changes to code

  The code should now be buildable on AmigaOS merely by setting the
  appropriate Makefile variables.  (From a patch by Carsten Larsen.)

(From OE-Core rev: d2b8c4ee535684f5d874082a7f76efbda1907ea5)

(From OE-Core rev: 757f2cb2f2acaf41d3f81c5b9bb0afd8e05001db)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:41 +00:00
Kai Kang
724fa5a489 openssh: fix CVE-2016-8858
Backport patch to fix CVE-2016-8858 of openssh.

Ref:
https://bugzilla.redhat.com/show_bug.cgi?id=1384860

(From OE-Core rev: 134a05616839d002970b2e7124ea38348d10209b)

(From OE-Core rev: 07e289d7212d6343370bfc883631a19f37bc85f1)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:40 +00:00
Ross Burton
101173d6cf lib/oe/qa: handle binaries with segments outside the first 4kb
The ELF parser was assuming that the segment tables are in the first 4kb of the
binary.  Whilst this generally appears to be the case, there have been instances
where the segment table is elsewhere (offset 2MB, in this sample I have).  Solve
this problem by mmap()ing the file instead.

Also clean up the code a little whilst chasing the problem.

(From OE-Core rev: b88c6bd61e7c3388b3902de1adb5e48a88f2e235)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:40 +00:00
Ross Burton
b0b646ab3c Revert "epiphany: remove unnecessary libwnck3 dependency"
This version of epiphany still needs libwnck3.

This reverts commit fb5c4f181176710a4cfb3c875b5edb4e5aa5df73.

(From OE-Core rev: eec53627ac5c3aa811a0bd97f06a4827ef0189d3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:40 +00:00
Ross Burton
7dc792da69 Revert "libwnck3: remove the recipe"
The epiphany in morty still needs libwnck3, so bring it back.

This reverts commit 129281e8557ec8d29ecf863675884713a3050f4b.

(From OE-Core rev: d09108805dab4595101706f6e75a0a622d3b0cda)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-11 17:21:40 +00:00
Scott Rifenbark
5aa481dfed ref-manual: Added KERNEL_IMAGE_BASE_NAME change to 2.2 migration
The fact that the OpenEmbedded build system can now build
multiple image types caused the KERNEL_IMAGE_BASE_NAME variable
to have the KERNEL_IMAGETYPE portion removed.  This could cause
existing recipes that use the KERNEL_IMAGE_BASE_NAME variable
directly issues.  I added a section indicating that the user
should address those recipes to avoid problems.

(From yocto-docs rev: 2b4a36b45846e296c15d62ee8fabdd9ff29b2b0f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-08 16:36:47 +00:00
Scott Rifenbark
872d4bccc8 ref-manual: Updated KERNEL_IMAGE_BASE_NAME glossary description
Fixes [YOCTO #10717]

Now that multiple images can be built, the KERNEL_IMAGE_BASE_NAME
no longer requires "${KERNEL_IMAGETYPE}" as part of its default
value.  I have removed this portion of the default definition
described in the glossary.

(From yocto-docs rev: 54abeb3fbbac8b6d319183f88803fbe71b27fcbe)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-08 16:36:47 +00:00
Scott Rifenbark
d9e3f7629b dev-manual: Added note about RPM not dealing with post-install
Fixes [YOCTO #10351]

I added a note to the "Post Installation Scripts" section of the
"Writing a New Recipe" section to call out the fact that the
RPM package manager will not install packages on the target when
any RPM post-install script returns a non-zero exit code when
the script is run on the target.

(From yocto-docs rev: a2b36b4a352522e3c576a45ee239af51eda518c1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-08 16:36:47 +00:00
Scott Rifenbark
2a6bba4378 ref-manual, dev-manual: Added references to SYSROOT_DIRS
Fixes [YOCTO #10692]

I updated the STAGING_DIR variable description to have a reference
to the SYSROOT_DIRS variable as well as the "Sharing Files
Between Recipes" section of the dev-manual.

I also updated the "Sharing Files Between Recipes" section so
that the role of SYSROOT_DIRS is explained and actually used
in an example to add another directory.

(From yocto-docs rev: 23114b4bc708398bae8c4559793dd36bc53c96a2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-08 16:36:47 +00:00
Scott Rifenbark
e56cd9d7d0 sdk-manual: Updated the section on adding docs to standard SDK
Fixes [YOCTO #8584]

Made some edits to tighten this down and make it more efficient.

(From yocto-docs rev: f25c0cf08877b62a6e2523b5d4caa83c008ef004)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-08 16:36:47 +00:00
brian avery
73454473d7 bitbake: toaster: settings set ALLOWED_HOSTS to * in debug mode
As of Django 1.8.16, Django is rejecting any HTTP_HOST header that is
not on the ALLOWED_HOST list.  We often need to reference the
toaster server via a fqdn, if we start it via webport=0.0.0.0:8000 for
instance, and are hitting the server from a laptop. This change does
reduce  the protection from a DNS rebinding attack, however, if you are
running the toaster server outside a protected network, you should be
using the production instance.

[YOCTO #10578]

(Bitbake rev: 59a3f391ac5ac194f30d11a39676356464269d55)

Signed-off-by: brian avery <brian.avery@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 11:38:51 +00:00
Scott Rifenbark
ee6fb7521b documentation: Added new appendix for customizing standard SDK
Fixes [YOCTO #8584]

This fix essentially had to document how to add the API
documentation to the standard SDK.  The fix required adding a
new appendix to the SDK manual on how to customize that
standard SDK.  I could not put just one topic in a new appendix
so I also added a sub-section on how to add indidual packages
to the standard SDK.

Other changes here were the introduction of a new file for the new
appendix, updated the mega-manual.xml file so that it would include
the new chapter when the MM was built.  Finally, I added some
cross-referencing to the new appendix from the TOOLCHAIN_HOST_TASK
and TOOLCHAIN_TARGET_TASK variables.  And a cross reference from the
distro features section on the api-documentation bullet.

(From yocto-docs rev: d2b5224df82959e0ce52d12f579a572b86f9fc70)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:38:35 +00:00
Scott Rifenbark
6f33cfec73 ref-manual: Added api-documentation to distro features
Fixes [YOCTO #8584]

Updated the "Distro Features" section to include the
"api-documentation" feature.

(From yocto-docs rev: ad02528f13390c2c0dc5717c1f9088212def37be)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:38:35 +00:00
Scott Rifenbark
e706bc85a7 dev-manual: Fixed typo for "${INC_PR}.0"
The string appeared in the text as "$(INC_PR).0".  So, fixed
it to be proper with the curly braces.

(From yocto-docs rev: 113296272e60da09c88660d09a5e8ba06f0fda7a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:38:35 +00:00
Scott Rifenbark
0de5f9472d ref-manual: Fixed presentation of "openSUSE" in supported distros
The way I had this string was incorrect.  I changed it to "openSUSE".

(From yocto-docs rev: 1b44f58f7cf9c68186dd271b4779b3a368757b1d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:38:35 +00:00
Scott Rifenbark
047790941e ref-manual: Updated the RDEPENDS variable description.
Fixes [YOCTO #10445]

Pointed out that the EXTENDPKGV variable is hard to locate in the
BB manual.  Firstly, we don't document that variable in the
BB manual.... maybe we should.  For the ref-manual, however, it is
barely referenced in a side example from the dev-manual.  So, I
updated the RDEPENDS variable to have a "Tip" box in the area where
it is shown how to use the package version as part of the RDEPENDs
variable.

(From yocto-docs rev: f42525ba8a4d20722d15c9fa250c494a90ff478b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:38:35 +00:00
Scott Rifenbark
0a22517801 dev-manual: Updated "Exporting Tests" section
Fixed [YOCTO #10588]

This section was confusing due to the fact that it used an actual
set of IP addresses and image name where they should be clearly
called out as examples.  Fixed it.

(From yocto-docs rev: 006a25fad282b03aacd59eb8dc1a44cad2c19fc4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Scott Rifenbark
38366d30fc ref-manual: Updated the supported distro list for Morty.
(From yocto-docs rev: 8643b19b096039f321b85dbaf1f68c7d3c26f791)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Scott Rifenbark
71f907cbe1 yocto-project-qs: Fixed typo
Fixes [YOCTO #10451]

Added a missing closing parentheses to a sentence.

(From yocto-docs rev: 8fc10d592eb426c5b173be2280b72fa7ccf3510c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Scott Rifenbark
604a71f7c0 ref-manual: Fixed tense issue for migration 2.2 section
The "runqemu Ported to Python" section was using past tense
for a note about previous usage patterns being supported.  I
changed this to present tense.

(From yocto-docs rev: 15aa9d5a0164fa9553cf252a651d6aa5fb1c23f0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Scott Rifenbark
56238f3676 yocto-project-qs: Fixed the minnowboard example to use .wic and base
(From yocto-docs rev: 072ac7943ddcefd90ec36ee74a8571adf2cefb1b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Markus Lehtonen
feb145f6ce bitbake: bitbake-worker: print full traceback instead of message only
Print full traceback instead of just the exception message in the
child() function inside fork_off_task(). This makes debugging a lot
easier as the function catches a generic "Exception" and the exception
message alone might not give much information.

[YOCTO #10393]

(Bitbake rev: 61cc397a5b7136afb37052a2860c6c39a176ddab)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Markus Lehtonen
8472ed0c89 bitbake: data: fix exception handling in exported_vars()
Fix a bug where a totally wrong value of a variable would be exported if
an exception happened during d.getVar(). Also, print a warning if an
exception happends instead of silently ignoring it. It would probably be
best just to raise the exception, instead, but use the warning for now
in order to avoid breaking existing builds.

[YOCTO #10393]

(Bitbake rev: 59c606cfc6e0a4f367344d4e3def6017fb560d75)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Richard Purdie
a34582a85e bitbake: siggen: Ensure taskhash mismatches don't override existing data
We recalculate the taskhash to ensure the version we have matches
what we think it should be. When we write out a sigdata file, use
the calculated value so that we don't overwrite any existing file.
This leaves any original taskhash sigdata file intact to allow a
debugging comparison.

(Bitbake rev: dac68af6f4add9c99cb7adcf23b2ae89b96ca075)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Richard Purdie
f17446b645 bitbake: siggen: Pass basehash to worker processes and sanity check reparsing result
Bitbake can parse metadata in the cooker and in the worker during builds. If
the metadata isn't deterministic, it can change between these two parses and
this confuses things a lot. It turns out to be hard to debug these issues
currently.

This patch ensures the basehashes from the original parsing are passed into
the workers and that these are checked when reparsing for consistency. The user
is shown an error message if inconsistencies are found.

There is debug code in siggen.py (see the "Slow but can be useful for debugging
mismatched basehashes" commented code), we don't enable this by default due to
performance issues. If you run into this message, enable this code and you will
find "sigbasedata" files in tmp/stamps which should correspond to the hashes
shown in this error message. bitbake-diffsigs on the files should show which
variables are changing.

(Bitbake rev: 46207262ee6cdd2e49c4765481a6a24702ca4843)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Richard Purdie
aea27a0554 bitbake: build: Ensure we preserve sigbasedata files as well as sigdata ones
We don't remove sigdata files, we also shouldn't remove sigbasedata files
as this hinders debugging.

(Bitbake rev: 06e7c00f2e1ddda6a2632ec2354a3c8f5c34562d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Richard Purdie
350df1de9c rm_work: Ensure we don't remove sigbasedata files
We don't remove sigdata files, we also shouldn't remove sigbasedata files
as this hinders debugging.

(From OE-Core rev: 988349f90c8dc5498b1f08f71e99b13e928a0fd0)

(From OE-Core rev: c8d96b10ee3bc2eae0fd269d2564286fd0bc82ed)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Richard Purdie
350a850d44 sstate: Ensure we don't remove sigbasedata files
We don't remove sigdata files, we also shouldn't remove sigbasedata files
as this hinders debugging.

(From OE-Core rev: 1ebd85f8dfe45b92c0137547c05e013e340f9cec)

(From OE-Core rev: 3764a5ce8a1f26b46c389c256c10596ed8d31cc7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Andre McCurdy
87d51bd79b gdb: update 7.11+git1a982b689c -> 7.11.1
41d8236 Set GDB version number to 7.11.1.
  136613e Fix PR gdb/19828: gdb -p <process from a container>: internal error
  a0de87e Make gdb/linux-nat.c consider a waitstatus pending on the infrun side
  cf2cd51 Add mi-threads-interrupt.exp test (PR 20039)
  f0a8d0d Fix double prompt output after run control MI commands with mi-async on (PR 20045)
  b5f0db4 Fix -exec-run not running asynchronously with mi-async on (PR gdb/18077)
  7f8e34d Use target_terminal_ours_for_output in MI

(From OE-Core rev: 371345c0dc49bf781c27aea1e9f6a4c947fa30e6)

(From OE-Core rev: 23a7c411b39eece9c80e1fde84894c75ca8dcbe0)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Dengke Du
d16356eb26 subversion: fix "svnadmin create" fail on x86
When run the following command on x86:

        svnadmin create /var/test_repo

It cause segmentation fault error like the following:

        [16499.751837] svnadmin[21117]: segfault at 83 ip 00000000f74bf7f6 sp 00000000ffdd9b34 error 4 in libc-2.24.so[f7441000+1af000]
        Segmentation fault (core dumped)

This is because in source code ./subversion/libsvn_fs_fs/low_level.c,
function svn_fs_fs__unparse_footer, when:

        target arch:    x86
        apr_off_t:      4 bytes

if the "APR_OFF_T_FMT" is "lld", it still use type "apr_off_t" to pass
data to apr, but in apr source code file apr_snprintf.c the function
apr_vformatter meet "lld", it would use the:

        i_quad = va_arg(ap, apr_int64_t);

It uses the apr_int64_t to deal data, it read 8 bytes, so the follow-up
data may be error.

(From OE-Core rev: 7ea7e3db7801b58495b89a95ec2751d618d3a29f)

(From OE-Core rev: 81b9ac05bdb3dc89c6fd17acbfff7cc4f4685108)

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Paul Eggleton
a531ca4636 classes/populate_sdk_ext: prevent invalid TEMPLATECONF entering eSDK
If you are using a repository which contains a .templateconf file that
sets TEMPLATECONF to point into a layer it contains, but you aren't
using that layer in your bblayers.conf, the eSDK would produce an error
during the preparation step of the installation. An example would be
using the poky repository but setting DISTRO to your own custom distro
and removing meta-poky from your bblayers.conf. The eSDK doesn't
support creating new build directories, so we don't care about the
templates and can thus force a known good value to prevent this from
happening.

Fixes [YOCTO #10568].

(From OE-Core rev: 5ee32191a18013061dfa72e64713a94c5d321496)

(From OE-Core rev: 7fbc086f47ef6e36c819836deaa1b2fb3f0ec97a)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
Paul Eggleton
8d1d9cfdb5 oe-setup-builddir: fix TEMPLATECONF error message
This directory shouldn't contain local.conf and bblayers.conf - just
templates for them; except it doesn't have to contain those, it just has
to exist to pass this test. Change the error message accordingly, and
mention TEMPLATECONF so that the user has at least some context.

(From OE-Core rev: 61adaaa4348c670769f8750223977dbefe369ffb)

(From OE-Core rev: 3136666fee621d94ec4c48e706f0dad3b6b6f08c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:58 +00:00
André Draszik
c2fd90f245 bash_3.2.x: update recipe version to match what we're shipping
Make sure the recipe version matches what we're
actually shipping, so that tools like cve-check
can do the right thing.

Rather than fetching version 3.2.48 and applying all
patches up to and including version 3.2.57, we just
fetch the latter in the first place.

(From OE-Core rev: 614ac87f2832c5359f371439559be88d6106cd6b)

(From OE-Core rev: db3f5330d7a38bb07aca0d65aa94ca36beb721d6)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Acked-by: Sylvain Lemieux <slemieux@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Kai Kang
0572d73d11 qemu: fix CVE-2016-7423 and CVE-2016-7908
Backport patches to fix CVE-2016-7423 and CVE-2016-7908 of qemu.

(From OE-Core rev: 1f4c303fd64a4bc05882de01676f241f0df6da78)

(From OE-Core rev: 34b9be55c31deb4eab5056cf1698c8052aca2596)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Kai Kang
1bad6c2d73 qemu: supplementary fix of CVE-2016-5403
It is reported in qemu community that VM always exits with:

| 2016-10-17T07:33:40.393592Z qemu-kvm: Virtqueue size exceede

when VM is suspend and resume. Solution from the maintainer of virtio
is to merge following 3 commits:

http://git.qemu.org/?p=qemu.git;a=commit;h=bccdef6
http://git.qemu.org/?p=qemu.git;a=commit;h=58a83c6
http://git.qemu.org/?p=qemu.git;a=commit;h=4b7f91e

The first 2 commits have been merged in qemu 2.7.0. Then apply the
third one.

(From OE-Core rev: db5b9254fbbc30e50b50c7c8cd1f04dcc965cd52)

(From OE-Core rev: 7fa650825957257e6f99d44907c65fd46875125c)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Robert P. J. Day
f068277f90 oe-pkgdata-util: Use standard verb form in help info.
"Shows" -> "Show", to be consistent with standard form of help output.

(From OE-Core rev: 5a7994df6cdb5af8d240e2802e6bb3d9671f17e3)

(From OE-Core rev: 417ee79d97b0f016c4b55c49690107d541cfc250)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Armin Kuster
ff95390bee tzdata: Update to 2016h
Changes to future time stamps

    Asia/Gaza and Asia/Hebron end DST on 2016-10-29 at 01:00, not
    2016-10-21 at 00:00.  (Thanks to Sharef Mustafa.)  Predict that
    future fall transitions will be on the last Saturday of October
    at 01:00, which is consistent with predicted spring transitions
    on the last Saturday of March.  (Thanks to Tim Parenti.)

Changes to past time stamps

    In Turkey, transitions in 1986-1990 were at 01:00 standard time
    not at 02:00, and the spring 1994 transition was on March 20, not
    March 27.  (Thanks to Kıvanç Yazan.)

Changes to past and future time zone abbreviations

    Asia/Colombo now uses numeric time zone abbreviations like "+0530"
    instead of alphabetic ones like "IST" and "LKT".  Various
    English-language sources use "IST", "LKT" and "SLST", with no
    working consensus.  (Usage of "SLST" mentioned by Sadika
    Sumanapala.)

(From OE-Core rev: ff11ca44fec8e4b2aa523e032bd967e3ab8339a8)

(From OE-Core rev: 5637d1555b51569cdd7202ee47a0b913a0b429cb)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Armin Kuster
19bee74728 tzcode-native: update to 2016h
Changes to code

zic no longer mishandles relativizing file names when creating
symbolic links like /etc/localtime, when these symbolic links
are outside the usual directory hierarchy.  This fixes a bug
introduced in 2016g.  (Problem reported by Andreas Stieger.)

(From OE-Core rev: 9c5de646e01a83219be74e99dcf7c1e56ba38b53)

(From OE-Core rev: 9288b6e699abbf5b314029b0db9230ca159b335a)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Robert P. J. Day
849863fdaf testsdk.bbclass: Clean up comments, clarify image choices.
Make it clear that SDK testing can use any valid image.

(From OE-Core rev: d190c69347921a626665a53469dcf99b3c86994b)

(From OE-Core rev: 7c16202e8c532f4d6ae78ac4bd324f7d975e8a76)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Olaf Mandel
ac8981c01d texi2html: Allow compiling out-of-source
Compiling texi2html 5.0 out-of-source with USE_NLS set to no failed
because it tried to copy from srcdir without using that variable.
Fix this issue and add a reference to the upstream commit.

(From OE-Core rev: 28a37020f50e513b247015b1b0a784c99d41aae3)

(From OE-Core rev: f31ec69379a752e18321ce600a09db9de48fc263)

Signed-off-by: Olaf Mandel <o.mandel@menlosystems.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
3081194a9f valgrind: update to 3.12.0
Remove backported gcc5-port.patch
Remove 11_mips-link-tool.patch as there is nothing in the target file
(or the entire source tree) that resembles anything contained in the patch.

(From OE-Core rev: 221093e850fbc3c154e9069f1958384b59ba3f70)

(From OE-Core rev: 7178febeb04f9b7326554f6b57ed50345fd95126)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
b6335e4251 libarchive: update to 3.2.2
(From OE-Core rev: 14fc66856a59e44d6861ed4ef88909908e597615)

(From OE-Core rev: 9fde7e21d5f61553c371124380982ecd6402ccb9)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
274d77860f libwnck3: remove the recipe
Nothing requires it in oe-core now, so it will be re-added to meta-openembedded.

(From OE-Core rev: 5741419426c6f8255d55560e3a4721fa4c68a179)

(From OE-Core rev: 129281e8557ec8d29ecf863675884713a3050f4b)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
8d2e24810e epiphany: remove unnecessary libwnck3 dependency
libwnck3 dependency was removed upstream

(From OE-Core rev: 0af26d519fd282d0b270939a75ce33eba715669b)

(From OE-Core rev: fb5c4f181176710a4cfb3c875b5edb4e5aa5df73)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
a368478133 rt-tests: fix the recipe version to match upstream
Upstream had a 2.0 tag for a while, then removed it and added a 1.1 tag :-/
Let's make it match to avoid confusion. There's only one new commit
added, which adds a missing manpage.

Also, update the outdated version comment in rt-tests.inc

(From OE-Core rev: 799a7b74f1219040fe2d43dcdcd145600a9fecbd)

(From OE-Core rev: 5a577f1aa4891646075a559fc94e52cfe34b96c9)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
77bc68c7ac webkitgtk: remove lib_package inherit as executables are now installed in libexecdir
(From OE-Core rev: 60751d66118103712f7670412051234cec41e439)

(From OE-Core rev: dd46a43b9ebc6b3183e5ad154c1736330e93e04e)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
4708f7af51 gnome-desktop3: fix dependencies
libxrandr dependency has been removed upstream

Udev dependecy has been added upstream:

    commit b8cbfbe06475703f333367976eae9477f229891a

    pnp-ids: Use udev's hwdb to query PNP IDs

(From OE-Core rev: 5f939fbf229e3c05d6b726f481a0e862ad5a5ceb)

(From OE-Core rev: 623f9eb815ae0a53f96222947b566c4e6d74ab97)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Alexander Kanavin
17a550b9de lttng-tools: do not install shared libraries in ptest package
This was creating a race in runtime library dependency resolution
where sometimes the library was assumed to be provided by the ptest
package.

(From OE-Core rev: c4a10c0b4bc14f4bac06deed8ecb64d0303f4029)

(From OE-Core rev: 10e32463236df05458af7fb7d1ef388f380ab10c)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Ross Burton
30cdca66c5 shadow: add nologin.8 to alternatives
This manpage is also shipped in util-linux-doc as an alternative, so it needs to
be managed as an alternative here too.

(From OE-Core rev: 0c1e8e0939b39dcf6ea753b41da5ec9bc6ebb82a)

(From OE-Core rev: 4a916484adbf7ae38338279b83f8a64c2cee4f3e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Ross Burton
54e8fa5060 util-linux: add su.1 to update-alternatives
The su binary is handled by alternatives but the man page wasn't, so
installing both util-linux-doc and shadow-doc produces errors.

Also use d.expand() to neaten the code.

(From OE-Core rev: 70a161ee88d3d54fec6d59039c181b43f1857dc3)

(From OE-Core rev: bec07530536c36b2ab2a7818a9ffc475faba27ac)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Mike Looijmans
9600da51e4 busybox/mdev.conf: Ignore eMMC RPMB and boot block devices
eMMC devices may report block devices like "mmcblk0rpmb" and
"mmcblk0boot0". These are not actually block devices and any
read/write operation on them will fail. To prevent spamming error
messages attempting to mount them, just ignore these devices.

(From OE-Core rev: 9f4a85eb929f67420d9689d7dddadd120ed49843)

(From OE-Core rev: 50d97edaeb18a4c6374101d222410a3b0f344bf2)

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Samuli Piippo
ee6ff5ce83 package_manager.py: correctly remove all dependent packages
Do not use --force-depends when trying to remove all dependent packages,
as it removes only the selected package and not the dependent packages.

(From OE-Core rev: a82e8725902086dab785a0b14305927dae1e4e8d)

(From OE-Core rev: 0666c66b2719f59e556c12d5875dea696006ed0b)

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Robert Yang
7a308a7919 insane.bbclass:buildpaths: open() file with 'rb'
open() is default to 'rt' which may cause decoding errors when open
binary file:
$ bitbake xcursor-transparent-theme
[snip]
Exception: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfd in position 18: invalid start byte
[snip]

(From OE-Core rev: ddbab61f47efd9b4fde38ef8f0f3482c78abe37c)

(From OE-Core rev: 8364558a2904d21c9b31d29bfb8f2d9cbeac8659)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:57 +00:00
Paul Eggleton
6a1ef8a965 classes/nativesdk: set SDK_OLDEST_KERNEL appropriately
SDK_OLDEST_KERNEL currently only controls the check on SDK installation,
however as with OLDEST_KERNEL it should be controlling the OLDEST_KERNEL
value for building glibc used in the SDK. Thus, set it in
nativesdk.bbclass. This means we need to move the default to
bitbake.conf so that it can be seen in both places.

Also set a more reasonable default for SDK_OLDEST_KERNEL for x86/x86-64 as
glibc 2.24 still supports back to 2.6.32 there and there are still
people wanting to build SDKs that will install on older distros (e.g.
CentOS 6). However it's not possible to set this with overrides since
there aren't any for the SDK_ARCH, however we can instead set the variable
from conf files in conf/machine-sdk especially as there is now a soft
default for SDKMACHINE.

Fixes [YOCTO #10561].

(From OE-Core rev: 42d5781e31c5bf76b5b7e27abed4f6f3fd65bf40)

(From OE-Core rev: e02aa8e8b62eae0f83beca850466408dd060b248)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Paul Eggleton
95a10d1dfc classes/populate_sdk_base: fix usage of & character in SDK_TITLE
If you used an & character in SDK_TITLE (possibly indirectly from
DISTRO_NAME) then sed interpreted this as a directive to paste in the
replaced string (@SDK_TITLE@ in this case). Escape any & characters in
SDK_TITLE to avoid that.

(From OE-Core rev: acb85689c13cfdac21435509001048af5c3a7e99)

(From OE-Core rev: bbad3402d431ac178cabdc00fcaf37b3a1a6bfd6)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Yi Zhao
914e89709c tiff: Security fix CVE-2016-3622
CVE-2016-3622 libtiff: The fpAcc function in tif_predict.c in the
tiff2rgba tool in LibTIFF 4.0.6 and earlier allows remote attackers to
cause a denial of service (divide-by-zero error) via a crafted TIFF
image.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3622
http://www.openwall.com/lists/oss-security/2016/04/07/4

Patch from:
92d966a5fc

(From OE-Core rev: 0af0466f0381a72b560f4f2852e1d19be7b6a7fb)

(From OE-Core rev: 928eadf8442cf87fb2d4159602bd732336d74bb7)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Yi Zhao
f33e739fc2 tiff: Security fix CVE-2016-3623
CVE-2016-3623 libtiff: The rgb2ycbcr tool in LibTIFF 4.0.6 and earlier
allows remote attackers to cause a denial of service (divide-by-zero) by
setting the (1) v or (2) h parameter to 0.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3623
http://bugzilla.maptools.org/show_bug.cgi?id=2569

Patch from:
bd024f0701

(From OE-Core rev: d66824eee47b7513b919ea04bdf41dc48a9d85e9)

(From OE-Core rev: f0e77ffa6bbc3adc61a2abd5dbc9228e830c055d)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Yi Zhao
719a8dcd0d tiff: Security fix CVE-2016-3991
CVE-2016-3991 libtiff: Heap-based buffer overflow in the loadImage
function in the tiffcrop tool in LibTIFF 4.0.6 and earlier allows remote
attackers to cause a denial of service (out-of-bounds write) or execute
arbitrary code via a crafted TIFF image with zero tiles.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3991
http://bugzilla.maptools.org/show_bug.cgi?id=2543

Patch from:
e596d4e27c

(From OE-Core rev: d31267438a654ecb396aefced201f52164171055)

(From OE-Core rev: cf58711f12425fc1c29ed1e3bf3919b3452aa2b2)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Yi Zhao
d94c22d4e4 tiff: Security fix CVE-2016-3990
CVE-2016-3990 libtiff: Heap-based buffer overflow in the
horizontalDifference8 function in tif_pixarlog.c in LibTIFF 4.0.6 and
earlier allows remote attackers to cause a denial of service (crash) or
execute arbitrary code via a crafted TIFF image to tiffcp.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3990
http://bugzilla.maptools.org/show_bug.cgi?id=2544

Patch from:
6a4dbb07cc

(From OE-Core rev: c6492563037bcdf7f9cc50c8639f7b6ace261e62)

(From OE-Core rev: d7165cd738ac181fb29d2425e360f2734b0d1107)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Yi Zhao
ee2a19d38e tiff: Security fix CVE-2016-3945
CVE-2016-3945 libtiff: Multiple integer overflows in the (1)
cvt_by_strip and (2) cvt_by_tile functions in the tiff2rgba tool in
LibTIFF 4.0.6 and earlier, when -b mode is enabled, allow remote
attackers to cause a denial of service (crash) or execute arbitrary code
via a crafted TIFF image, which triggers an out-of-bounds write.

External References:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3945
http://bugzilla.maptools.org/show_bug.cgi?id=2545

Patch from:
7c39352ccd

(From OE-Core rev: 04b9405c7e980d7655c2fd601aeeae89c0d83131)

(From OE-Core rev: 3a4d2618c50aed282af335ef213c5bc0c9f0534e)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Chen Qi
57bcb0b509 systemd: CVE-2016-7795
The manager_invoke_notify_message function in systemd 231 and earlier allows
local users to cause a denial of service (assertion failure and PID 1 hang)
via a zero-length message received over a notify socket.

The patch is a backport from the latest git repo.

Please see the link below for more information.
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-7795

(From OE-Core rev: 543570cafa8d7f595b489d03d05f0aa4478f8539)

(From OE-Core rev: df3f4785fc69d3ddbd30ccd954aad3d3618c5916)

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>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Robert Yang
698bbcad68 oe/copy_buildsystem.py: dereference symlink
When there is a relative symlink in the layer, for example:
symA -> ../out/of/layer/file

symA will be invalid fater copied, it would be invalid from build time
if it points to a relative path, and would be invalid after extracted
the sdk if it points to a absolute py. Dereference symlink when copy
will fix the problem.

Use tar rather than shutil.copytree() to copy is because:
1) shutil.copytree(symlinks=Fasle) has bugs when dereference symlinks:
   https://bugs.python.org/issue21697
   And Ubunutu 1404 doesn't upgrade python3 to fix the problem.

2) shutil.copytree(symlinks=False) raises errors when there is a invalid
   symlink, and tar just prints a warning, tar is preferred here since
   the real world is unpredicatable

3) tar is faster than shutil.copytree() as said by oe.path.copytree()

So use tar to copy.

(From OE-Core rev: f4d70bb0882eec4fb46cd942f2796fad57c72982)

(From OE-Core rev: 51d3cab8aab593481be16cadaca6fcddbb64bc52)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Dmitry Rozhkov
25fa4e9e8f openssl: rehash actual mozilla certificates inside rootfs
The c_rehash utility is supposed to be run in the folder /etc/ssl/certs
of a rootfs where the package ca-certificates puts symlinks to
various CA certificates stored in /usr/share/ca-certificates/mozilla/.
These symlinks are absolute. This means that when c_rehash is run
at rootfs creation time it can't hash the actual files since they
actually reside in the build host's directory
$SYSROOT/usr/share/ca-certificates/mozilla/.

This problem doesn't reproduce when building on Debian or Ubuntu
hosts though, because these OSs have the certificates installed
in the same /usr/share/ca-certificates/mozilla/ folder.
Images built in other distros, e.g. Fedora, have problems with
connecting to https servers when using e.g. python's http lib.

The patch fixes c_rehash to check if it runs on a build host
by testing $SYSROOT and to translate the paths to certificates
accordingly.

(From OE-Core rev: 5199b990edf4d9784c19137d0ce9ef141cd85e46)

(From OE-Core rev: 9ab0cba49d9ab67aacfcfb47689f4a77a72a0866)

Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
George McCollister
3d471b811d uboot-sign: fix do_concat_dtb for .img, .rom
Now that out of tree building is enabled, ${B} must be used instead of
${S} as the path for UBOOT_BINARY.

(From OE-Core rev: 1fe17c52e4d7ce1b9d69aaa2cd9d4b351a4b2603)

(From OE-Core rev: 87705ab8f7224dbc1f397f9c388260a6370a06d9)

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Chen Qi
8b84b31dc2 rpm: fix file location of rpm2cpio.real
rpm2cpio is in ${PN}-common, but rpm2cpio.real is in ${PN}. This seperation
is really weird. Put them both in ${PN}-common.

(From OE-Core rev: 8a0af7e4ae8ba8ce0c7fd2a9f6ab7cc070f47af0)

(From OE-Core rev: 0f87812a515ae349885929558fbfb315f4a10ec7)

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>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
André Draszik
2e6624293c boost: disable 'wave' in MIPS16e mode
This doesn't compile, see
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77757#c2

(From OE-Core rev: 59f77d48528498f12cc9d1ba641a9c7ff50ba03a)

(From OE-Core rev: eaed926c023d1e25c29dcfc078c37461e29895b9)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Acked-by: Sylvain Lemieux <slemieux@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Ross Burton
8c69cdacea slang: clean up options and dependencies
The AC_PATH_XTRA check for X11 headers is never actually used, so patch that out
and remove the options in EXTRA_OECONF.

Move pcre/png/zlib toggles to PACKAGECONFIG, retaining the behaviour that only
PCRE is enabled by default.

Add missing libiconv dependency.

(From OE-Core rev: 3587053646c34002fa18b87834516ce27fbd0788)

(From OE-Core rev: 200cc00b048dbef11b01c6402d6525559de76306)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Ross Burton
b814b6df0b slang: add PREMIRRORS to handle upstream moving tarballs
The slang maintainer only puts the current release at
jedsoft.org/releases/slang/slang-1.2.3.tar.bz2, all previous releases are moved
into /releases/slang/old/.

As this breaks the fetch the moment a new version is released, use PREMIRRORS to
also look in the /old/ directory.

(From OE-Core rev: 50d49766ab76b67e312f6a1d91977a40d1020919)

(From OE-Core rev: f2783109ac7939eba722dc2f863661ade03e4a8a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Paul Eggleton
26e8ebc511 classes/license: fix handling of symlinks pointed to in LIC_FILES_CHKSUM
If you set LIC_FILES_CHKSUM to point to a relative symlink then you'll
get "Could not copy license file" warnings in copy_license_files() since
the symlink won't be valid after it's copied. If the source is a symlink
then we need to dereference it first.

I encountered this when I used recipetool on the sources for capnproto,
where the c++ directory contains a LICENSE.txt symlink to the LICENSE
file in the parent directory, and this symlink ends up being pointed to
in LIC_FILES_CHKSUM.

(From OE-Core rev: c4d3b1e9c37b920444e53d3231552da18d101882)

(From OE-Core rev: 650ddf1d8b687845099a8ac463c3a550a7965095)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Lukasz Nowak
874ccd1bb3 connman: fix bad file descriptor initialisation
Import a patch from upstream, which fixes a connman daemon freeze
under certain conditions (multiple active interfaces, no r/w storage).

(From OE-Core rev: bba18cdce6fb6c5ff2f7161198d46607a72747d6)

(From OE-Core rev: 87d6ccd8c7775b1d3e2571b6e17091538a8bd6c8)

Signed-off-by: Lukasz Nowak <lnowak@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Juro Bystricky
a628a17a44 build-appliance-image: Fix incorrect PATH
When modifying the PATH variable in .bashrc, double quote characters
were used, resulting in expanding the variable $PATH with the value of
PATH of the system building the Build Appliance.

The original intent was to enter an un-expanded (literal) $PATH.
In order to that, one must use single quotes instead of double quotes.

[YOCTO#10434] [YOCTO#10504]

(From OE-Core rev: 6238faf901956e2a350315a66ca1ce557deaa513)

(From OE-Core rev: ac2b0413526df46cfdcae2d3f9add1a29fe3c2b5)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Markus Lehtonen
4d30681e8b python: fix python-tests rdepends
test.regrtest depends on most of python modules so require all of them.

[YOCTO #10522]

(From OE-Core rev: a8dc4bc039d1c01a78fdc1f727cbfc6f2feffe93)

(From OE-Core rev: 545a2d41f57232d58d19feb3fb0375be5553e47d)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
Khem Raj
4722bfbda9 binutils-2.27: Fix linker segfaults when linking binary files
Fixes segfaults when doing partial linking and generaring binary objects

/tmp/binu/ld/ld-new -r -b binary -o etc_certs_ui_ca_pem.o etc_certs_ui_ca_pem

0  elf32_arm_count_additional_relocs (sec=0x79bf40) at /mnt/a/work/oe/binutils-gdb/bfd/elf32-arm.c:18210
1  0x000000000047635a in bfd_elf_final_link (abfd=abfd@entry=0x783250, info=info@entry=0x748400 <link_info>) at /mnt/a/work/oe/binutils-gdb/bfd/elflink.c:11224
2  0x000000000044df7b in elf32_arm_final_link (abfd=0x783250, info=0x748400 <link_info>) at /mnt/a/work/oe/binutils-gdb/bfd/elf32-arm.c:12131
3  0x0000000000418917 in ldwrite () at /mnt/a/work/oe/binutils-gdb/ld/ldwrite.c:577
4  0x000000000040365f in main (argc=<optimized out>, argv=<optimized out>) at /mnt/a/work/oe/binutils-gdb/ld/ldmain.c:433

gold works ok. The patch is already applied in master binutils

(From OE-Core rev: 00d1913520f1572fa7def865e57852c7f25b0ec4)

(From OE-Core rev: 2b1a571899eec018d6f44876b743e06835ed761d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-16 10:37:56 +00:00
brian avery
6c9f6b5f70 bitbake: toaster: buildinfohelper Handle regex paths
We were presuming that all the layer dependency information was of the
form "^/path/to/layer" to we were just stripping the leading "^" off of
the layer information when we were matching the layer priorities to the
toaster database.  This patch splits out the priorities layer match which
gets a  regex from the task/recipe match which is gets a path.

(Bitbake rev: 82775c80d169266cc18ca2b2065a05c79dc6fbfc)

Signed-off-by: brian avery <brian.avery@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-03 17:41:15 +00:00
Richard Purdie
dc8508f609 build-applance-image: Fix to use the release branch for morty
(From OE-Core rev: 2a59d0fa7bda78927435603e3049ce373cf6a198)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-26 11:11:10 +01:00
Richard Purdie
bf5dd36042 build-appliance-image: Update to morty head revision
(From OE-Core rev: 742e6d462948cdc89e5c538c9d834ff4fb42352e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-26 09:34:02 +01:00
Kevin Hao
746c681be4 meta-yocto-bsp: linux-yocto: bump to the latest stable version for non-x86 BSPs
Built and boot test for all these boards on 4.1, 4.4 and 4.8 kernels.

(From meta-yocto rev: d4627701a3a5d8c82f49747c41c5b3226da56d07)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-26 09:31:59 +01:00
Alejandro Hernandez
73aa36e3ee linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4
Upgrades to Linux 4.4.26

(From meta-yocto rev: 96275ed6faffd11b4ca2e958381f3b02122f1eeb)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-26 09:31:59 +01:00
Alejandro Hernandez
cddb7f10b8 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1
(From meta-yocto rev: 16ef41db64dffb57a8a863631e20fde2521f1880)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-26 09:31:59 +01:00
Alejandro Hernandez
399903724b linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.8
Upgrades to Linux 4.8.3

(From meta-yocto rev: eef04c03f794a7776129118e99feb94165e8fd5e)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-26 09:31:59 +01:00
Bruce Ashfield
e09163a08b linux-yocto/4.8: sync preempt-rt with upstream project
The initial 4.8 -rt feature was directly from Paul Gortmaker, and
now the 'upstream' -rt has done a release on the same kernel
version.

Paul has sync'd the initial effort with the upstream work, and we
now have a consolidated standard/preempt-rt/*

Along with the rsync'd content, Paul has fixed -rt boot on 32 bit
x86.

(From OE-Core rev: 1270050079feeefc38744fdbfe23b16aa1b632a3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-26 09:31:59 +01:00
Paul Eggleton
2c0efd2f33 devtool: runqemu: work around runqemu script path assumption
The new runqemu script assumes that if OECORE_NATIVE_SYSROOT is set then
it shouldn't try to run bitbake to find out the values of various
variables such as DEPLOY_DIR_IMAGE; this assumption is incorrect for the
extensible SDK. To work around this, clear OECORE_NATIVE_SYSROOT in the
environment when running runqemu.

Fixes [YOCTO #10447].

(From OE-Core rev: abff69a48bf3076ce8e21356accdc8d85d2c8dbf)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 22:40:13 +01:00
Saul Wold
fb1df184b9 image_types: Use softer setting of WKS_FILE
This will allow for more flexibility and overrides in BSP
layers.

(From OE-Core rev: 1886ab2f1dc1e3b5758a85604998e8deb9198f5e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:59:04 +01:00
Scott Rifenbark
e127d017e1 ref-manual: Removed host package requirements for SDK
These requirements were in place for the ADT, which is gone now.
I have removed the four supported host lists for packages to
support the SDK.

(From yocto-docs rev: e0f36333b3a0e5f3503f6ac48b87c3ae8c23afe3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:56:27 +01:00
Scott Rifenbark
0915ee7dc3 ref-manual: Applied minor corrections to 2.2 migration section.
Moved a couple notes around and changed some wordings...
nothing major.

(From yocto-docs rev: 518d368c4c981df5ddde6681859906c9eb16ff62)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:56:27 +01:00
Scott Rifenbark
7c3cdf8a17 yocto-project-qs: Created two sub-sections for the "Build" section.
Fixes [YOCTO #10462]

The section that shows how to build images had two examples all
within the same section.  It was suggested to place these examples
in their own sub-sections.  Good suggestion.  I broke them out into
sub-sections titled appropriately.

(From yocto-docs rev: b97918820cfa12a2d5dfbccd6c0ce22b16d65206)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:56:27 +01:00
Scott Rifenbark
9ae4ab56e7 yocto-project-qs: Fixed the example to use 'dd' instead of 'mkefidisk.sh'
Fixes [YOCTO #10451]

The example that writes the image to bootable media did not seem
to work when using 'mkefidisk.sh'.  It does work using 'dd'.  I changed
the procedure to use 'dd'.

(From yocto-docs rev: e3f90869291f619db1d830b127ade66986eba886)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:56:27 +01:00
Scott Rifenbark
e40a8d739a ref-manual: Added BBMULTICONFIG glossary description.
(From yocto-docs rev: a37069875e661ee07edf17275441c29d84363479)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:56:27 +01:00
Scott Rifenbark
5e0d6341ab dev-manual: Added section for multi-configuration support
I added a new section in the "Common Tasks" chapter to support
the fact that BB can now build for multi-configurations.

(From yocto-docs rev: 0bf464908200d6c40c35fbf753712a8b0201dd88)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:56:27 +01:00
Scott Rifenbark
41e74881b0 ref-manual: Updated 2.2 migration for runqemu porting to python
Indicated that the configuration file is not mandatory.  Also,
documented the supported qemu* machines should you run the
script without a configuration file.

(From yocto-docs rev: c01e8ff8e3233e56a220be042616d5810f181a58)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-25 17:56:27 +01:00
6767 changed files with 453774 additions and 473126 deletions

12
.gitignore vendored
View File

@@ -1,14 +1,12 @@
*.pyc
*.pyo
/*.patch
/.repo/
/build*/
pyshtables.py
pstage/
scripts/oe-git-proxy-socks
sources/
meta-*/
buildtools/
!meta-skeleton
!meta-selftest
hob-image-*.bb
@@ -20,13 +18,9 @@ hob-image-*.bb
!meta-yocto
!meta-yocto-bsp
!meta-yocto-imported
/documentation/*/eclipse/
/documentation/*/*.html
/documentation/*/*.pdf
/documentation/*/*.tgz
/bitbake/doc/bitbake-user-manual/bitbake-user-manual.html
/bitbake/doc/bitbake-user-manual/bitbake-user-manual.pdf
/bitbake/doc/bitbake-user-manual/bitbake-user-manual.tgz
documentation/user-manual/user-manual.html
documentation/user-manual/user-manual.pdf
documentation/user-manual/user-manual.tgz
pull-*/
bitbake/lib/toaster/contrib/tts/backlog.txt
bitbake/lib/toaster/contrib/tts/log/*

24
LICENSE
View File

@@ -1,20 +1,14 @@
Different components of OpenEmbedded are under different licenses (a mix
of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
details of the individual licenses.
of MIT and GPLv2). Please see:
meta/COPYING.GPLv2 (GPLv2)
meta/COPYING.MIT (MIT)
meta-selftest/COPYING.MIT (MIT)
meta-skeleton/COPYING.MIT (MIT)
All metadata is MIT licensed unless otherwise stated. Source code
included in tree for individual recipes (e.g. patches) are under
the LICENSE stated in the associated recipe (.bb file) unless
otherwise stated.
included in tree for individual recipes is under the LICENSE stated in
the associated recipe (.bb file) unless otherwise stated.
License information for any other files is either explicitly stated
or defaults to GPL version 2 only.
Individual files contain the following style tags instead of the full license
text to identify their license:
SPDX-License-Identifier: GPL-2.0-only
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
or defaults to GPL version 2.

View File

@@ -1,288 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,25 +0,0 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,5 +0,0 @@
Some project contributors who are sadly no longer with us:
Greg Gilbert (treke) - Ahead of his time with licensing
Thomas Wood (thos) - Creator of the original sato
Scott Rifenbark (scottrif) - Our long standing techwriter whose words live on

View File

@@ -1,35 +0,0 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
DESTDIR = final
ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0)
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed")
endif
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile.sphinx clean publish
publish: Makefile.sphinx html singlehtml
rm -rf $(BUILDDIR)/$(DESTDIR)/
mkdir -p $(BUILDDIR)/$(DESTDIR)/
cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/
cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html
sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html
clean:
@rm -rf $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile.sphinx
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

58
README Normal file
View File

@@ -0,0 +1,58 @@
Poky
====
Poky is an integration of various components to form a complete prepackaged
build system and development environment. It features support for building
customised embedded device style images. There are reference demo images
featuring a X11/Matchbox/GTK themed UI called Sato. The system supports
cross-architecture application development using QEMU emulation and a
standalone toolchain and SDK with IDE integration.
Additional information on the specifics of hardware that Poky supports
is available in README.hardware. Further hardware support can easily be added
in the form of layers which extend the systems capabilities in a modular way.
As an integration layer Poky consists of several upstream projects such as
BitBake, OpenEmbedded-Core, Yocto documentation and various sources of information
e.g. for the hardware support. Poky is in turn a component of the Yocto Project.
The Yocto Project has extensive documentation about the system including a
reference manual which can be found at:
http://yoctoproject.org/documentation
OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "nodistro") and contains only emulated machine support.
For information about OpenEmbedded, see the OpenEmbedded website:
http://www.openembedded.org/
Where to Send Patches
=====================
As Poky is an integration repository (built using a tool called combo-layer),
patches against the various components should be sent to their respective
upstreams:
bitbake:
Git repository: http://git.openembedded.org/bitbake/
Mailing list: bitbake-devel@lists.openembedded.org
documentation:
Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/
Mailing list: yocto@yoctoproject.org
meta-poky, meta-yocto-bsp:
Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto(-bsp)
Mailing list: poky@yoctoproject.org
Everything else should be sent to the OpenEmbedded Core mailing list. If in
doubt, check the oe-core git repository for the content you intend to modify.
Before sending, be sure the patches apply cleanly to the current oe-core git
repository.
Git repository: http://git.openembedded.org/openembedded-core/
Mailing list: openembedded-core@lists.openembedded.org
Note: The scripts directory should be treated with extra care as it is a mix of
oe-core and poky-specific files.

View File

@@ -1,29 +0,0 @@
OpenEmbedded-Core
=================
OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "nodistro") and contains only emulated machine support.
For information about OpenEmbedded, see the OpenEmbedded website:
http://www.openembedded.org/
The Yocto Project has extensive documentation about OE including a reference manual
which can be found at:
http://yoctoproject.org/documentation
Contributing
------------
Please refer to
http://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
for guidelines on how to submit patches.
Mailing list:
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Source code:
http://git.openembedded.org/openembedded-core/

View File

@@ -1 +0,0 @@
meta-yocto-bsp/README.hardware

360
README.hardware Normal file
View File

@@ -0,0 +1,360 @@
Poky Hardware README
====================
This file gives details about using Poky with the reference machines
supported out of the box. A full list of supported reference target machines
can be found by looking in the following directories:
meta/conf/machine/
meta-yocto-bsp/conf/machine/
If you are in doubt about using Poky/OpenEmbedded with your hardware, consult
the documentation for your board/device.
Support for additional devices is normally added by creating BSP layers - for
more information please see the Yocto Board Support Package (BSP) Developer's
Guide - documentation source is in documentation/bspguide or download the PDF
from:
http://yoctoproject.org/documentation
Support for physical reference hardware has now been split out into a
meta-yocto-bsp layer which can be removed separately from other layers if not
needed.
QEMU Emulation Targets
======================
To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported:
* ARM (qemuarm)
* x86 (qemux86)
* x86-64 (qemux86-64)
* PowerPC (qemuppc)
* MIPS (qemumips)
Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.
Hardware Reference Boards
=========================
The following boards are supported by the meta-yocto-bsp layer:
* Texas Instruments Beaglebone (beaglebone)
* Freescale MPC8315E-RDB (mpc8315e-rdb)
For more information see the board's section below. The appropriate MACHINE
variable value corresponding to the board is given in brackets.
Reference Board Maintenance
===========================
Send pull requests, patches, comments or questions about meta-yocto-bsps to poky@yoctoproject.org
Maintainers: Kevin Hao <kexin.hao@windriver.com>
Bruce Ashfield <bruce.ashfield@windriver.com>
Consumer Devices
================
The following consumer devices are supported by the meta-yocto-bsp layer:
* Intel x86 based PCs and devices (genericx86)
* Ubiquiti Networks EdgeRouter Lite (edgerouter)
For more information see the device's section below. The appropriate MACHINE
variable value corresponding to the device is given in brackets.
Specific Hardware Documentation
===============================
Intel x86 based PCs and devices (genericx86*)
=============================================
The genericx86 and genericx86-64 MACHINE are tested on the following platforms:
Intel Xeon/Core i-Series:
+ Intel NUC5 Series - ix-52xx Series SOC (Broadwell)
+ Intel NUC6 Series - ix-62xx Series SOC (Skylake)
+ Intel Shumway Xeon Server
Intel Atom platforms:
+ MinnowBoard MAX - E3825 SOC (Bay Trail)
+ MinnowBoard MAX - Turbot (ADI Engineering) - E3826 SOC (Bay Trail)
- These boards can be either 32bot or 64bit modes depending on firmware
- See minnowboard.org for details
+ Intel Braswell SOC
and is likely to work on many unlisted Atom/Core/Xeon based devices. The MACHINE
type supports ethernet, wifi, sound, and Intel/vesa graphics by default in
addition to common PC input devices, busses, and so on.
Depending on the device, it can boot from a traditional hard-disk, a USB device,
or over the network. Writing generated images to physical media is
straightforward with a caveat for USB devices. The following examples assume the
target boot device is /dev/sdb, be sure to verify this and use the correct
device as the following commands are run as root and are not reversable.
USB Device:
1. Build a live image. This image type consists of a simple filesystem
without a partition table, which is suitable for USB keys, and with the
default setup for the genericx86 machine, this image type is built
automatically for any image you build. For example:
$ bitbake core-image-minimal
2. Use the "dd" utility to write the image to the raw block device. For
example:
# dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb
If the device fails to boot with "Boot error" displayed, or apparently
stops just after the SYSLINUX version banner, it is likely the BIOS cannot
understand the physical layout of the disk (or rather it expects a
particular layout and cannot handle anything else). There are two possible
solutions to this problem:
1. Change the BIOS USB Device setting to HDD mode. The label will vary by
device, but the idea is to force BIOS to read the Cylinder/Head/Sector
geometry from the device.
2. Use a ".wic" image with an EFI partition
a) With a default grub-efi bootloader:
# dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb
b) Use systemd-boot instead
- Build an image with EFI_PROVIDER="systemd-boot" then use the above
dd command to write the image to a USB stick.
Texas Instruments Beaglebone (beaglebone)
=========================================
The Beaglebone is an ARM Cortex-A8 development board with USB, Ethernet, 2D/3D
accelerated graphics, audio, serial, JTAG, and SD/MMC. The Black adds a faster
CPU, more RAM, eMMC flash and a micro HDMI port. The beaglebone MACHINE is
tested on the following platforms:
o Beaglebone Black A6
o Beaglebone A6 (the original "White" model)
The Beaglebone Black has eMMC, while the White does not. Pressing the USER/BOOT
button when powering on will temporarily change the boot order. But for the sake
of simplicity, these instructions assume you have erased the eMMC on the Black,
so its boot behavior matches that of the White and boots off of SD card. To do
this, issue the following commands from the u-boot prompt:
# mmc dev 1
# mmc erase 0 512
To further tailor these instructions for your board, please refer to the
documentation at http://www.beagleboard.org/bone and http://www.beagleboard.org/black
From a Linux system with access to the image files perform the following steps:
1. Build an image. For example:
$ bitbake core-image-minimal
2. Use the "dd" utility to write the image to the SD card. For example:
# dd core-image-minimal-beaglebone.wic of=/dev/sdb
3. Insert the SD card into the Beaglebone and boot the board.
Freescale MPC8315E-RDB (mpc8315e-rdb)
=====================================
The MPC8315 PowerPC reference platform (MPC8315E-RDB) is aimed at hardware and
software development of network attached storage (NAS) and digital media server
applications. The MPC8315E-RDB features the PowerQUICC II Pro processor, which
includes a built-in security accelerator.
(Note: you may find it easier to order MPC8315E-RDBA; this appears to be the
same board in an enclosure with accessories. In any case it is fully
compatible with the instructions given here.)
Setup instructions
------------------
You will need the following:
* NFS root setup on your workstation
* TFTP server installed on your workstation
* Straight-thru 9-conductor serial cable (DB9, M/F) connected from your
PC to UART1
* Ethernet connected to the first ethernet port on the board
--- Preparation ---
Note: if you have altered your board's ethernet MAC address(es) from the
defaults, or you need to do so because you want multiple boards on the same
network, then you will need to change the values in the dts file (patch
linux/arch/powerpc/boot/dts/mpc8315erdb.dts within the kernel source). If
you have left them at the factory default then you shouldn't need to do
anything here.
--- Booting from NFS root ---
Load the kernel and dtb (device tree blob), and boot the system as follows:
1. Get the kernel (uImage-mpc8315e-rdb.bin) and dtb (uImage-mpc8315e-rdb.dtb)
files from the tmp/deploy directory, and make them available on your TFTP
server.
2. Connect the board's first serial port to your workstation and then start up
your favourite serial terminal so that you will be able to interact with
the serial console. If you don't have a favourite, picocom is suggested:
$ picocom /dev/ttyUSB0 -b 115200
3. Power up or reset the board and press a key on the terminal when prompted
to get to the U-Boot command line
4. Set up the environment in U-Boot:
=> setenv ipaddr <board ip>
=> setenv serverip <tftp server ip>
=> setenv bootargs root=/dev/nfs rw nfsroot=<nfsroot ip>:<rootfs path> ip=<board ip>:<server ip>:<gateway ip>:255.255.255.0:mpc8315e:eth0:off console=ttyS0,115200
5. Download the kernel and dtb, and boot:
=> tftp 1000000 uImage-mpc8315e-rdb.bin
=> tftp 2000000 uImage-mpc8315e-rdb.dtb
=> bootm 1000000 - 2000000
--- Booting from JFFS2 root ---
1. First boot the board with NFS root.
2. Erase the MTD partition which will be used as root:
$ flash_eraseall /dev/mtd3
3. Copy the JFFS2 image to the MTD partition:
$ flashcp core-image-minimal-mpc8315e-rdb.jffs2 /dev/mtd3
4. Then reboot the board and set up the environment in U-Boot:
=> setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttyS0,115200
Ubiquiti Networks EdgeRouter Lite (edgerouter)
==============================================
The EdgeRouter Lite is part of the EdgeMax series. It is a MIPS64 router
(based on the Cavium Octeon processor) with 512MB of RAM, which uses an
internal USB pendrive for storage.
Setup instructions
------------------
You will need the following:
* RJ45 -> serial ("rollover") cable connected from your PC to the CONSOLE
port on the device
* Ethernet connected to the first ethernet port on the board
If using NFS as part of the setup process, you will also need:
* NFS root setup on your workstation
* TFTP server installed on your workstation (if fetching the kernel from
TFTP, see below).
--- Preparation ---
Build an image (e.g. core-image-minimal) using "edgerouter" as the MACHINE.
In the following instruction it is based on core-image-minimal. Another target
may be similiar with it.
--- Booting from NFS root / kernel via TFTP ---
Load the kernel, and boot the system as follows:
1. Get the kernel (vmlinux) file from the tmp/deploy/images/edgerouter
directory, and make them available on your TFTP server.
2. Connect the board's first serial port to your workstation and then start up
your favourite serial terminal so that you will be able to interact with
the serial console. If you don't have a favourite, picocom is suggested:
$ picocom /dev/ttyS0 -b 115200
3. Power up or reset the board and press a key on the terminal when prompted
to get to the U-Boot command line
4. Set up the environment in U-Boot:
=> setenv ipaddr <board ip>
=> setenv serverip <tftp server ip>
5. Download the kernel and boot:
=> tftp tftp $loadaddr vmlinux
=> bootoctlinux $loadaddr coremask=0x3 root=/dev/nfs rw nfsroot=<nfsroot ip>:<rootfs path> ip=<board ip>:<server ip>:<gateway ip>:<netmask>:edgerouter:eth0:off mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)
--- Booting from USB disk ---
To boot from the USB disk, you either need to remove it from the edgerouter
box and populate it from another computer, or use a previously booted NFS
image and populate from the edgerouter itself.
Type 1: Use partitioned image
-----------------------------
Steps:
1. Remove the USB disk from the edgerouter and insert it into a computer
that has access to your build artifacts.
2. Flash the image.
# dd core-image-minimal-edgerouter.wic of=/dev/sdb
3. Insert USB disk into the edgerouter and boot it.
Type 2: NFS
-----------
Note: If you place the kernel on the ext3 partition, you must re-create the
ext3 filesystem, since the factory u-boot can only handle 128 byte inodes and
cannot read the partition otherwise.
These boot instructions assume that you have recreated the ext3 filesystem with
128 byte inodes, you have an updated uboot or you are running and image capable
of making the filesystem on the board itself.
1. Boot from NFS root
2. Mount the USB disk partition 2 and then extract the contents of
tmp/deploy/core-image-XXXX.tar.bz2 into it.
Before starting, copy core-image-minimal-xxx.tar.bz2 and vmlinux into
rootfs path on your workstation.
and then,
# mount /dev/sda2 /media/sda2
# tar -xvjpf core-image-minimal-XXX.tar.bz2 -C /media/sda2
# cp vmlinux /media/sda2/boot/vmlinux
# umount /media/sda2
# reboot
3. Reboot the board and press a key on the terminal when prompted to get to the U-Boot
command line:
# reboot
4. Load the kernel and boot:
=> ext2load usb 0:2 $loadaddr boot/vmlinux
=> bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rw rootwait mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)

View File

@@ -1 +0,0 @@
meta-poky/README.poky

View File

@@ -1,15 +0,0 @@
QEMU Emulation Targets
======================
To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported in 32 and 64 bit variants:
* ARM (qemuarm + qemuarm64)
* x86 (qemux86 + qemux86-64)
* PowerPC (qemuppc only)
* MIPS (qemumips + qemumips64)
Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.

View File

@@ -1,2 +0,0 @@
*min.js binary
*min.css binary

339
bitbake/COPYING Normal file
View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

19
bitbake/HEADER Normal file
View File

@@ -0,0 +1,19 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# <one line to give the program's name and a brief idea of what it does.>
# Copyright (C) <year> <name of author>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

View File

@@ -1,13 +1,4 @@
BitBake is licensed under the GNU General Public License version 2.0. See
LICENSE.GPL-2.0-only for further details.
Individual files contain the following style tags instead of the full license text:
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
BitBake is licensed under the GNU General Public License version 2.0. See COPYING for further details.
The following external components are distributed with this software:
@@ -24,6 +15,3 @@ Foundation and individual contributors.
* QUnit is redistributed under the MIT license.
* Font Awesome fonts redistributed under the SIL Open Font License 1.1
* simplediff is distributed under the zlib license.

View File

@@ -1,288 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,25 +0,0 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,35 +0,0 @@
Bitbake
=======
BitBake is a generic task execution engine that allows shell and Python tasks to be run
efficiently and in parallel while working within complex inter-task dependency constraints.
One of BitBake's main users, OpenEmbedded, takes this core and builds embedded Linux software
stacks using a task-oriented approach.
For information about Bitbake, see the OpenEmbedded website:
http://www.openembedded.org/
Bitbake plain documentation can be found under the doc directory or its integrated
html version at the Yocto Project website:
http://yoctoproject.org/documentation
Contributing
------------
Please refer to
http://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
for guidelines on how to submit patches, just note that the latter documentation is intended
for OpenEmbedded (and its core) not bitbake patches (bitbake-devel@lists.openembedded.org)
but in general main guidelines apply. Once the commit(s) have been created, the way to send
the patch is through git-send-email. For example, to send the last commit (HEAD) on current
branch, type:
git send-email -M -1 --to bitbake-devel@lists.openembedded.org
Mailing list:
http://lists.openembedded.org/mailman/listinfo/bitbake-devel
Source code:
http://git.openembedded.org/bitbake/

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
@@ -7,8 +9,18 @@
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
@@ -24,9 +36,9 @@ from bb import cookerdata
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.")
sys.exit("Please use a locale setting which supports 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.49.0"
__version__ = "1.32.0"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -1,17 +1,28 @@
#!/usr/bin/env python3
# bitbake-diffsigs / bitbake-dumpsig
# BitBake task signature data dump and comparison utility
# bitbake-diffsigs
# BitBake task signature data comparison utility
#
# Copyright (C) 2012-2013, 2017 Intel Corporation
# Copyright (C) 2012-2013 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
import warnings
import argparse
import fnmatch
import optparse
import logging
import pickle
@@ -19,180 +30,109 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), '
import bb.tinfoil
import bb.siggen
import bb.msg
myname = os.path.basename(sys.argv[0])
logger = bb.msg.logger_create(myname)
def logger_create(name, output=sys.stderr):
logger = logging.getLogger(name)
console = logging.StreamHandler(output)
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
if output.isatty():
format.enable_color()
console.setFormatter(format)
logger.addHandler(console)
logger.setLevel(logging.INFO)
return logger
is_dump = myname == 'bitbake-dumpsig'
logger = logger_create('bitbake-diffsigs')
def find_siginfo(tinfoil, pn, taskname, sigs=None):
result = None
tinfoil.set_event_mask(['bb.event.FindSigInfoResult',
'logging.LogRecord',
'bb.command.CommandCompleted',
'bb.command.CommandFailed'])
ret = tinfoil.run_command('findSigInfo', pn, taskname, sigs)
if ret:
while True:
event = tinfoil.wait_event(1)
if event:
if isinstance(event, bb.command.CommandCompleted):
break
elif isinstance(event, bb.command.CommandFailed):
logger.error(str(event))
sys.exit(2)
elif isinstance(event, bb.event.FindSigInfoResult):
result = event.result
elif isinstance(event, logging.LogRecord):
logger.handle(event)
else:
logger.error('No result returned from findSigInfo command')
sys.exit(2)
return result
def find_compare_task(bbhandler, pn, taskname):
""" Find the most recent signature files for the specified PN/task and compare them """
def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
""" Find the most recent signature files for the specified PN/task """
def get_hashval(siginfo):
if siginfo.endswith('.siginfo'):
return siginfo.rpartition(':')[2].partition('_')[0]
else:
return siginfo.rpartition('.')[2]
if not hasattr(bb.siggen, 'find_siginfo'):
logger.error('Metadata does not support finding signature data files')
sys.exit(1)
if not taskname.startswith('do_'):
taskname = 'do_%s' % taskname
if sig1 and sig2:
sigfiles = find_siginfo(bbhandler, pn, taskname, [sig1, sig2])
if len(sigfiles) == 0:
logger.error('No sigdata files found matching %s %s matching either %s or %s' % (pn, taskname, sig1, sig2))
sys.exit(1)
elif not sig1 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig1))
sys.exit(1)
elif not sig2 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig2))
sys.exit(1)
latestfiles = [sigfiles[sig1], sigfiles[sig2]]
filedates = bb.siggen.find_siginfo(pn, taskname, None, bbhandler.config_data)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-3:]
if not latestfiles:
logger.error('No sigdata files found matching %s %s' % (pn, taskname))
sys.exit(1)
elif len(latestfiles) < 2:
logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (pn, taskname))
sys.exit(1)
else:
filedates = find_siginfo(bbhandler, pn, taskname)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:]
if not latestfiles:
logger.error('No sigdata files found matching %s %s' % (pn, taskname))
sys.exit(1)
# It's possible that latestfiles contain 3 elements and the first two have the same hash value.
# In this case, we delete the second element.
# The above case is actually the most common one. Because we may have sigdata file and siginfo
# file having the same hash value. Comparing such two files makes no sense.
if len(latestfiles) == 3:
hash0 = get_hashval(latestfiles[0])
hash1 = get_hashval(latestfiles[1])
if hash0 == hash1:
latestfiles.pop(1)
return latestfiles
# Define recursion callback
def recursecb(key, hash1, hash2):
hashes = [hash1, hash2]
hashfiles = bb.siggen.find_siginfo(key, None, hashes, bbhandler.config_data)
recout = []
if len(hashfiles) == 2:
out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb)
recout.extend(list(' ' + l for l in out2))
else:
recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
return recout
# Recurse into signature comparison
output = bb.siggen.compare_sigfiles(latestfiles[0], latestfiles[1], recursecb)
if output:
print('\n'.join(output))
sys.exit(0)
# Define recursion callback
def recursecb(key, hash1, hash2):
hashes = [hash1, hash2]
hashfiles = find_siginfo(tinfoil, key, None, hashes)
recout = []
if len(hashfiles) == 0:
recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
elif not hash1 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash1))
elif not hash2 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash2))
else:
out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb, color=color)
for change in out2:
for line in change.splitlines():
recout.append(' ' + line)
parser = optparse.OptionParser(
description = "Compares siginfo/sigdata files written out by BitBake",
usage = """
%prog -t recipename taskname
%prog sigdatafile1 sigdatafile2
%prog sigdatafile1""")
return recout
parser.add_option("-t", "--task",
help = "find the signature data files for last two runs of the specified task and compare them",
action="store", dest="taskargs", nargs=2, metavar='recipename taskname')
parser = argparse.ArgumentParser(
description=("Dumps" if is_dump else "Compares") + " siginfo/sigdata files written out by BitBake")
parser.add_argument('-D', '--debug',
help='Enable debug output',
action='store_true')
if is_dump:
parser.add_argument("-t", "--task",
help="find the signature data file for the last run of the specified task",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument("sigdatafile1",
help="Signature file to dump. Not used when using -t/--task.",
action="store", nargs='?', metavar="sigdatafile")
else:
parser.add_argument('-c', '--color',
help='Colorize the output (where %(metavar)s is %(choices)s)',
choices=['auto', 'always', 'never'], default='auto', metavar='color')
parser.add_argument('-d', '--dump',
help='Dump the last signature data instead of comparing (equivalent to using bitbake-dumpsig)',
action='store_true')
parser.add_argument("-t", "--task",
help="find the signature data files for the last two runs of the specified task and compare them",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument("-s", "--signature",
help="With -t/--task, specify the signatures to look for instead of taking the last two",
action="store", dest="sigargs", nargs=2, metavar=('fromsig', 'tosig'))
parser.add_argument("sigdatafile1",
help="First signature file to compare (or signature file to dump, if second not specified). Not used when using -t/--task.",
action="store", nargs='?')
parser.add_argument("sigdatafile2",
help="Second signature file to compare",
action="store", nargs='?')
options = parser.parse_args()
if is_dump:
options.color = 'never'
options.dump = True
options.sigdatafile2 = None
options.sigargs = None
if options.debug:
logger.setLevel(logging.DEBUG)
color = (options.color == 'always' or (options.color == 'auto' and sys.stdout.isatty()))
options, args = parser.parse_args(sys.argv)
if options.taskargs:
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
if not options.dump and options.sigargs:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1], options.sigargs[0], options.sigargs[1])
else:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1])
if options.dump:
logger.debug("Signature file: %s" % files[-1])
output = bb.siggen.dump_sigfile(files[-1])
else:
if len(files) < 2:
logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (options.taskargs[0], options.taskargs[1]))
sys.exit(1)
# Recurse into signature comparison
logger.debug("Signature file (previous): %s" % files[-2])
logger.debug("Signature file (latest): %s" % files[-1])
output = bb.siggen.compare_sigfiles(files[-2], files[-1], recursecb, color=color)
find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1])
else:
if options.sigargs:
logger.error('-s/--signature can only be used together with -t/--task')
sys.exit(1)
try:
if not options.dump and options.sigdatafile1 and options.sigdatafile2:
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
output = bb.siggen.compare_sigfiles(options.sigdatafile1, options.sigdatafile2, recursecb, color=color)
elif options.sigdatafile1:
output = bb.siggen.dump_sigfile(options.sigdatafile1)
else:
logger.error('Must specify signature file(s) or -t/--task')
parser.print_help()
if len(args) == 1:
parser.print_help()
else:
try:
if len(args) == 2:
output = bb.siggen.dump_sigfile(sys.argv[1])
else:
output = bb.siggen.compare_sigfiles(sys.argv[1], sys.argv[2])
except IOError as e:
logger.error(str(e))
sys.exit(1)
except (pickle.UnpicklingError, EOFError):
logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
sys.exit(1)
except IOError as e:
logger.error(str(e))
sys.exit(1)
except (pickle.UnpicklingError, EOFError):
logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
sys.exit(1)
if output:
print('\n'.join(output))
if output:
print('\n'.join(output))

View File

@@ -1 +0,0 @@
bitbake-diffsigs

65
bitbake/bin/bitbake-dumpsig Executable file
View File

@@ -0,0 +1,65 @@
#!/usr/bin/env python3
# bitbake-dumpsig
# BitBake task signature dump utility
#
# Copyright (C) 2013 Intel Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
import warnings
import optparse
import logging
import pickle
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb.siggen
def logger_create(name, output=sys.stderr):
logger = logging.getLogger(name)
console = logging.StreamHandler(output)
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
if output.isatty():
format.enable_color()
console.setFormatter(format)
logger.addHandler(console)
logger.setLevel(logging.INFO)
return logger
logger = logger_create('bitbake-dumpsig')
parser = optparse.OptionParser(
description = "Dumps siginfo/sigdata files written out by BitBake",
usage = """
%prog sigdatafile""")
options, args = parser.parse_args(sys.argv)
if len(args) == 1:
parser.print_help()
else:
try:
output = bb.siggen.dump_sigfile(args[1])
except IOError as e:
logger.error(str(e))
sys.exit(1)
except (pickle.UnpicklingError, EOFError):
logger.error('Invalid signature data - ensure you are specifying a sigdata/siginfo file')
sys.exit(1)
if output:
print('\n'.join(output))

View File

@@ -1,170 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import hashlib
import logging
import os
import pprint
import sys
import threading
import time
try:
import tqdm
ProgressBar = tqdm.tqdm
except ImportError:
class ProgressBar(object):
def __init__(self, *args, **kwargs):
pass
def __enter__(self):
return self
def __exit__(self, *args, **kwargs):
pass
def update(self):
pass
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
DEFAULT_ADDRESS = 'unix://./hashserve.sock'
METHOD = 'stress.test.method'
def main():
def handle_stats(args, client):
if args.reset:
s = client.reset_stats()
else:
s = client.get_stats()
pprint.pprint(s)
return 0
def handle_stress(args, client):
def thread_main(pbar, lock):
nonlocal found_hashes
nonlocal missed_hashes
nonlocal max_time
client = hashserv.create_client(args.address)
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
start_time = time.perf_counter()
l = client.get_unihash(METHOD, taskhash.hexdigest())
elapsed = time.perf_counter() - start_time
with lock:
if l:
found_hashes += 1
else:
missed_hashes += 1
max_time = max(elapsed, max_time)
pbar.update()
max_time = 0
found_hashes = 0
missed_hashes = 0
lock = threading.Lock()
total_requests = args.clients * args.requests
start_time = time.perf_counter()
with ProgressBar(total=total_requests) as pbar:
threads = [threading.Thread(target=thread_main, args=(pbar, lock), daemon=False) for _ in range(args.clients)]
for t in threads:
t.start()
for t in threads:
t.join()
elapsed = time.perf_counter() - start_time
with lock:
print("%d requests in %.1fs. %.1f requests per second" % (total_requests, elapsed, total_requests / elapsed))
print("Average request time %.8fs" % (elapsed / total_requests))
print("Max request time was %.8fs" % max_time)
print("Found %d hashes, missed %d" % (found_hashes, missed_hashes))
if args.report:
with ProgressBar(total=args.requests) as pbar:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
outhash = hashlib.sha256()
outhash.update(args.outhash_seed.encode('utf-8'))
outhash.update(str(i).encode('utf-8'))
client.report_unihash(taskhash.hexdigest(), METHOD, outhash.hexdigest(), taskhash.hexdigest())
with lock:
pbar.update()
parser = argparse.ArgumentParser(description='Hash Equivalence Client')
parser.add_argument('--address', default=DEFAULT_ADDRESS, help='Server address (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
subparsers = parser.add_subparsers()
stats_parser = subparsers.add_parser('stats', help='Show server stats')
stats_parser.add_argument('--reset', action='store_true',
help='Reset server stats')
stats_parser.set_defaults(func=handle_stats)
stress_parser = subparsers.add_parser('stress', help='Run stress test')
stress_parser.add_argument('--clients', type=int, default=10,
help='Number of simultaneous clients')
stress_parser.add_argument('--requests', type=int, default=1000,
help='Number of requests each client will perform')
stress_parser.add_argument('--report', action='store_true',
help='Report new hashes')
stress_parser.add_argument('--taskhash-seed', default='',
help='Include string in taskhash')
stress_parser.add_argument('--outhash-seed', default='',
help='Include string in outhash')
stress_parser.set_defaults(func=handle_stress)
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
func = getattr(args, 'func', None)
if func:
client = hashserv.create_client(args.address)
# Try to establish a connection to the server now to detect failures
# early
client.connect()
return func(args, client)
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -1,62 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2018 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import logging
import argparse
import sqlite3
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
VERSION = "1.0.0"
DEFAULT_BIND = 'unix://./hashserve.sock'
def main():
parser = argparse.ArgumentParser(description='Hash Equivalence Reference Server. Version=%s' % VERSION,
epilog='''The bind address is the path to a unix domain socket if it is
prefixed with "unix://". Otherwise, it is an IP address
and port in form ADDRESS:PORT. To bind to all addresses, leave
the ADDRESS empty, e.g. "--bind :8686". To bind to a specific
IPv6 address, enclose the address in "[]", e.g.
"--bind [::1]:8686"'''
)
parser.add_argument('--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")')
parser.add_argument('--database', default='./hashserv.db', help='Database file (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
server = hashserv.create_server(args.bind, args.database)
server.serve_forever()
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -7,8 +7,18 @@
# Copyright (C) 2011 Mentor Graphics Corporation
# Copyright (C) 2011-2015 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import logging
import os
@@ -20,9 +30,35 @@ topdir = os.path.dirname(bindir)
sys.path[0:0] = [os.path.join(topdir, 'lib')]
import bb.tinfoil
import bb.msg
logger = bb.msg.logger_create('bitbake-layers', sys.stdout)
def tinfoil_init(parserecipes):
import bb.tinfoil
tinfoil = bb.tinfoil.Tinfoil(tracking=True)
tinfoil.prepare(not parserecipes)
tinfoil.logger.setLevel(logger.getEffectiveLevel())
return tinfoil
def logger_create(name, output=sys.stderr):
logger = logging.getLogger(name)
loggerhandler = logging.StreamHandler(output)
loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
logger.addHandler(loggerhandler)
logger.setLevel(logging.INFO)
return logger
def logger_setup_color(logger, color='auto'):
from bb.msg import BBLogFormatter
console = logging.StreamHandler(sys.stdout)
formatter = BBLogFormatter("%(levelname)s: %(message)s")
console.setFormatter(formatter)
logger.handlers = [console]
if color == 'always' or (color == 'auto' and console.stream.isatty()):
formatter.enable_color()
logger = logger_create('bitbake-layers', sys.stdout)
def main():
parser = argparse.ArgumentParser(
@@ -31,7 +67,6 @@ def main():
add_help=False)
parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
parser.add_argument('-F', '--force', help='Force add without recipe parse verification', action='store_true')
parser.add_argument('--color', choices=['auto', 'always', 'never'], default='auto', help='Colorize output (where %(metavar)s is %(choices)s)', metavar='COLOR')
global_args, unparsed_args = parser.parse_known_args()
@@ -48,19 +83,13 @@ def main():
elif global_args.quiet:
logger.setLevel(logging.ERROR)
# Need to re-run logger_create with color argument
# (will be the same logger since it has the same name)
bb.msg.logger_create('bitbake-layers', output=sys.stdout,
color=global_args.color,
level=logger.getEffectiveLevel())
logger_setup_color(logger, global_args.color)
plugins = []
tinfoil = bb.tinfoil.Tinfoil(tracking=True)
tinfoil.logger.setLevel(logger.getEffectiveLevel())
tinfoil = tinfoil_init(False)
try:
tinfoil.prepare(True)
for path in ([topdir] +
tinfoil.config_data.getVar('BBPATH').split(':')):
tinfoil.config_data.getVar('BBPATH', True).split(':')):
pluginpath = os.path.join(path, 'lib', 'bblayers')
bb.utils.load_plugins(logger, plugins, pluginpath)
@@ -80,7 +109,7 @@ def main():
if getattr(args, 'parserecipes', False):
tinfoil.config_data.disableTracking()
tinfoil.parse_recipes()
tinfoil.parseRecipes()
tinfoil.config_data.enableTracking()
return args.func(args)

View File

@@ -1,8 +1,4 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys,logging
import optparse

View File

@@ -2,8 +2,18 @@
#
# Copyright (C) 2012 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys, logging
@@ -12,27 +22,15 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib
import unittest
try:
import bb
import hashserv
import layerindexlib
except RuntimeError as exc:
sys.exit(str(exc))
tests = ["bb.tests.codeparser",
"bb.tests.color",
"bb.tests.cooker",
"bb.tests.cow",
"bb.tests.data",
"bb.tests.event",
"bb.tests.fetch",
"bb.tests.parse",
"bb.tests.persist_data",
"bb.tests.runqueue",
"bb.tests.siggen",
"bb.tests.utils",
"hashserv.tests",
"layerindexlib.tests.layerindexobj",
"layerindexlib.tests.restapi",
"layerindexlib.tests.cooker"]
"bb.tests.utils"]
for t in tests:
t = '.'.join(t.split('.')[:3])

View File

@@ -1,54 +0,0 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2020 Richard Purdie
#
import os
import sys
import warnings
import logging
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
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.")
# Users shouldn't be running this code directly
if len(sys.argv) != 10 or not sys.argv[1].startswith("decafbad"):
print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.")
sys.exit(1)
import bb.server.process
lockfd = int(sys.argv[2])
readypipeinfd = int(sys.argv[3])
logfile = sys.argv[4]
lockname = sys.argv[5]
sockname = sys.argv[6]
timeout = sys.argv[7]
xmlrpcinterface = (sys.argv[8], int(sys.argv[9]))
if xmlrpcinterface[0] == "None":
xmlrpcinterface = (None, xmlrpcinterface[1])
if timeout == "None":
timeout = None
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
so = open(logfile, 'a+')
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(so.fileno(), sys.stderr.fileno())
# Have stdout and stderr be the same so log output matches chronologically
# and there aren't two seperate buffers
sys.stderr = sys.stdout
logger = logging.getLogger("BitBake")
# Ensure logging messages get sent to the UI as events
handler = bb.event.LogHandler()
logger.addHandler(handler)
bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface)

View File

@@ -1,7 +1,4 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
@@ -20,7 +17,7 @@ from multiprocessing import Lock
from threading import Thread
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.")
sys.exit("Please use a locale setting which supports 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.")
# Users shouldn't be running this code directly
if len(sys.argv) != 2 or not sys.argv[1].startswith("decafbad"):
@@ -65,6 +62,7 @@ if 0:
format_str = "%(levelname)s: %(message)s"
conlogformat = bb.msg.BBLogFormatter(format_str)
consolelog = logging.FileHandler(logfilename)
bb.msg.addDefaultlogFilter(consolelog)
consolelog.setFormatter(conlogformat)
logger.addHandler(consolelog)
@@ -97,7 +95,6 @@ def worker_flush(worker_queue):
pass
while (worker_queue_int or not worker_queue.empty()):
try:
(_, ready, _) = select.select([], [worker_pipe], [], 1)
if not worker_queue.empty():
worker_queue_int = worker_queue_int + worker_queue.get()
written = os.write(worker_pipe, worker_queue_int)
@@ -138,7 +135,7 @@ def sigterm_handler(signum, frame):
os.killpg(0, signal.SIGTERM)
sys.exit()
def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskhash, unihash, appends, taskdepdata, extraconfigdata, quieterrors=False, dry_run_exec=False):
def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, appends, taskdepdata, quieterrors=False):
# We need to setup the environment BEFORE the fork, since
# a fork() or exec*() activates PSEUDO...
@@ -154,10 +151,8 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
except TypeError:
umask = taskdep['umask'][taskname]
dry_run = cfg.dry_run or dry_run_exec
# We can't use the fakeroot environment in a dry run as it possibly hasn't been built
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not cfg.dry_run:
envvars = (workerdata["fakerootenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
@@ -194,6 +189,9 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
global worker_pipe_lock
pipein.close()
signal.signal(signal.SIGTERM, sigterm_handler)
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, sigterm_handler)
bb.utils.signal_on_parent_exit("SIGTERM")
# Save out the PID so that the event can include it the
@@ -208,11 +206,6 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
# This ensures signals sent to the controlling terminal like Ctrl+C
# don't stop the child processes.
os.setsid()
signal.signal(signal.SIGTERM, sigterm_handler)
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, sigterm_handler)
# No stdin
newsi = os.open(os.devnull, os.O_RDWR)
os.dup2(newsi, sys.stdin.fileno())
@@ -226,24 +219,16 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
the_data = databuilder.mcdata[mc]
the_data.setVar("BB_WORKERCONTEXT", "1")
the_data.setVar("BB_TASKDEPDATA", taskdepdata)
if cfg.limited_deps:
the_data.setVar("BB_LIMITEDDEPS", "1")
the_data.setVar("BUILDNAME", workerdata["buildname"])
the_data.setVar("DATE", workerdata["date"])
the_data.setVar("TIME", workerdata["time"])
for varname, value in extraconfigdata.items():
the_data.setVar(varname, value)
bb.parse.siggen.set_taskdata(workerdata["sigdata"])
if "newhashes" in workerdata:
bb.parse.siggen.set_taskhashes(workerdata["newhashes"])
ret = 0
the_data = bb_cache.loadDataFull(fn, appends)
the_data.setVar('BB_TASKHASH', taskhash)
the_data.setVar('BB_UNIHASH', unihash)
the_data.setVar('BB_TASKHASH', workerdata["runq_hash"][task])
bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN"), taskname.replace("do_", "")))
bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN", True), taskname.replace("do_", "")))
# exported_vars() returns a generator which *cannot* be passed to os.environ.update()
# successfully. We also need to unset anything from the environment which shouldn't be there
@@ -258,11 +243,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
the_data.setVar(e, fakeenv[e])
the_data.setVarFlag(e, 'export', "1")
task_exports = the_data.getVarFlag(taskname, 'exports')
task_exports = the_data.getVarFlag(taskname, 'exports', True)
if task_exports:
for e in task_exports.split():
the_data.setVarFlag(e, 'export', '1')
v = the_data.getVar(e)
v = the_data.getVar(e, True)
if v is not None:
os.environ[e] = v
@@ -274,7 +259,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
logger.critical(traceback.format_exc())
os._exit(1)
try:
if dry_run:
if cfg.dry_run:
return 0
return bb.build.exec_task(fn, taskname, the_data, cfg.profile)
except:
@@ -343,7 +328,6 @@ class BitbakeWorker(object):
self.cookercfg = None
self.databuilder = None
self.data = None
self.extraconfigdata = None
self.build_pids = {}
self.build_pipes = {}
@@ -378,20 +362,16 @@ class BitbakeWorker(object):
pass
if len(self.queue):
self.handle_item(b"cookerconfig", self.handle_cookercfg)
self.handle_item(b"extraconfigdata", self.handle_extraconfigdata)
self.handle_item(b"workerdata", self.handle_workerdata)
self.handle_item(b"newtaskhashes", self.handle_newtaskhashes)
self.handle_item(b"runtask", self.handle_runtask)
self.handle_item(b"finishnow", self.handle_finishnow)
self.handle_item(b"ping", self.handle_ping)
self.handle_item(b"quit", self.handle_quit)
for pipe in self.build_pipes:
if self.build_pipes[pipe].input in ready:
self.build_pipes[pipe].read()
self.build_pipes[pipe].read()
if len(self.build_pids):
while self.process_waitpid():
continue
self.process_waitpid()
def handle_item(self, item, func):
@@ -408,21 +388,14 @@ class BitbakeWorker(object):
self.databuilder.parseBaseConfiguration()
self.data = self.databuilder.data
def handle_extraconfigdata(self, data):
self.extraconfigdata = pickle.loads(data)
def handle_workerdata(self, data):
self.workerdata = pickle.loads(data)
bb.build.verboseShellLogging = self.workerdata["build_verbose_shell"]
bb.build.verboseStdoutLogging = self.workerdata["build_verbose_stdout"]
bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
bb.msg.loggerDefaultDebugLevel = self.workerdata["logdefaultdebug"]
bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
for mc in self.databuilder.mcdata:
self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])
self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.workerdata["hashservaddr"])
def handle_newtaskhashes(self, data):
self.workerdata["newhashes"] = pickle.loads(data)
def handle_ping(self, _):
workerlog_write("Handling ping\n")
@@ -437,10 +410,10 @@ class BitbakeWorker(object):
sys.exit(0)
def handle_runtask(self, data):
fn, task, taskname, taskhash, unihash, quieterrors, appends, taskdepdata, dry_run_exec = pickle.loads(data)
fn, task, taskname, quieterrors, appends, taskdepdata = pickle.loads(data)
workerlog_write("Handling runtask %s %s %s\n" % (task, fn, taskname))
pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, fn, task, taskname, taskhash, unihash, appends, taskdepdata, self.extraconfigdata, quieterrors, dry_run_exec)
pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, fn, task, taskname, appends, taskdepdata, quieterrors)
self.build_pids[pid] = task
self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout)
@@ -453,9 +426,9 @@ class BitbakeWorker(object):
try:
pid, status = os.waitpid(-1, os.WNOHANG)
if pid == 0 or os.WIFSTOPPED(status):
return False
return None
except OSError:
return False
return None
workerlog_write("Exit code of %s for pid %s\n" % (status, pid))
@@ -474,8 +447,6 @@ class BitbakeWorker(object):
worker_fire_prepickled(b"<exitcode>" + pickle.dumps((task, status)) + b"</exitcode>")
return True
def handle_finishnow(self, _):
if self.build_pids:
logger.info("Sending SIGTERM to remaining %s tasks", len(self.build_pids))
@@ -511,3 +482,4 @@ worker_thread.join()
workerlog_write("exitting")
sys.exit(0)

531
bitbake/bin/bitdoc Executable file
View File

@@ -0,0 +1,531 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import optparse, os, sys
# bitbake
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__), 'lib'))
import bb
import bb.parse
from string import split, join
__version__ = "0.0.2"
class HTMLFormatter:
"""
Simple class to help to generate some sort of HTML files. It is
quite inferior solution compared to docbook, gtkdoc, doxygen but it
should work for now.
We've a global introduction site (index.html) and then one site for
the list of keys (alphabetical sorted) and one for the list of groups,
one site for each key with links to the relations and groups.
index.html
all_keys.html
all_groups.html
groupNAME.html
keyNAME.html
"""
def replace(self, text, *pairs):
"""
From pydoc... almost identical at least
"""
while pairs:
(a, b) = pairs[0]
text = join(split(text, a), b)
pairs = pairs[1:]
return text
def escape(self, text):
"""
Escape string to be conform HTML
"""
return self.replace(text,
('&', '&amp;'),
('<', '&lt;' ),
('>', '&gt;' ) )
def createNavigator(self):
"""
Create the navgiator
"""
return """<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="g" href="index.html">Home</a></td>
<td><a accesskey="n" href="all_groups.html">Groups</a></td>
<td><a accesskey="u" href="all_keys.html">Keys</a></td>
</tr></table>
"""
def relatedKeys(self, item):
"""
Create HTML to link to foreign keys
"""
if len(item.related()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for it in item.related():
txts.append("""<a href="key%(it)s.html">%(it)s</a>""" % vars() )
return txt + ",".join(txts)
def groups(self, item):
"""
Create HTML to link to related groups
"""
if len(item.groups()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for group in item.groups():
txts.append( """<a href="group%s.html">%s</a> """ % (group, group) )
return txt + ",".join(txts)
def createKeySite(self, item):
"""
Create a site for a key. It contains the header/navigator, a heading,
the description, links to related keys and to the groups.
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2><span class="refentrytitle">%s</span></h2>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Related Keys</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Groups</h2>
<p>
%s
</p>
</div>
</body>
""" % (item.name(), self.createNavigator(), item.name(),
self.escape(item.description()), self.relatedKeys(item), self.groups(item))
def createGroupsSite(self, doc):
"""
Create the Group Overview site
"""
groups = ""
sorted_groups = sorted(doc.groups())
for group in sorted_groups:
groups += """<a href="group%s.html">%s</a><br>""" % (group, group)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Groups</h2>
%s
</body>
""" % (self.createNavigator(), groups)
def createIndex(self):
"""
Create the index file
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Bitbake Documentation</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Documentation Entrance</h2>
<a href="all_groups.html">All available groups</a><br>
<a href="all_keys.html">All available keys</a><br>
</body>
""" % self.createNavigator()
def createKeysSite(self, doc):
"""
Create Overview of all avilable keys
"""
keys = ""
sorted_keys = sorted(doc.doc_keys())
for key in sorted_keys:
keys += """<a href="key%s.html">%s</a><br>""" % (key, key)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Keys</h2>
%s
</body>
""" % (self.createNavigator(), keys)
def createGroupSite(self, gr, items, _description = None):
"""
Create a site for a group:
Group the name of the group, items contain the name of the keys
inside this group
"""
groups = ""
description = ""
# create a section with the group descriptions
if _description:
description += "<h2 Description of Grozp %s</h2>" % gr
description += _description
items.sort(lambda x, y:cmp(x.name(), y.name()))
for group in items:
groups += """<a href="key%s.html">%s</a><br>""" % (group.name(), group.name())
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
%s
<div class="refsynopsisdiv">
<h2>Keys in Group %s</h2>
<pre class="synopsis">
%s
</pre>
</div>
</body>
""" % (gr, self.createNavigator(), description, gr, groups)
def createCSS(self):
"""
Create the CSS file
"""
return """.synopsis, .classsynopsis
{
background: #eeeeee;
border: solid 1px #aaaaaa;
padding: 0.5em;
}
.programlisting
{
background: #eeeeff;
border: solid 1px #aaaaff;
padding: 0.5em;
}
.variablelist
{
padding: 4px;
margin-left: 3em;
}
.variablelist td:first-child
{
vertical-align: top;
}
table.navigation
{
background: #ffeeee;
border: solid 1px #ffaaaa;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.navigation a
{
color: #770000;
}
.navigation a:visited
{
color: #550000;
}
.navigation .title
{
font-size: 200%;
}
div.refnamediv
{
margin-top: 2em;
}
div.gallery-float
{
float: left;
padding: 10px;
}
div.gallery-float img
{
border-style: none;
}
div.gallery-spacer
{
clear: both;
}
a
{
text-decoration: none;
}
a:hover
{
text-decoration: underline;
color: #FF0000;
}
"""
class DocumentationItem:
"""
A class to hold information about a configuration
item. It contains the key name, description, a list of related names,
and the group this item is contained in.
"""
def __init__(self):
self._groups = []
self._related = []
self._name = ""
self._desc = ""
def groups(self):
return self._groups
def name(self):
return self._name
def description(self):
return self._desc
def related(self):
return self._related
def setName(self, name):
self._name = name
def setDescription(self, desc):
self._desc = desc
def addGroup(self, group):
self._groups.append(group)
def addRelation(self, relation):
self._related.append(relation)
def sort(self):
self._related.sort()
self._groups.sort()
class Documentation:
"""
Holds the documentation... with mappings from key to items...
"""
def __init__(self):
self.__keys = {}
self.__groups = {}
def insert_doc_item(self, item):
"""
Insert the Doc Item into the internal list
of representation
"""
item.sort()
self.__keys[item.name()] = item
for group in item.groups():
if not group in self.__groups:
self.__groups[group] = []
self.__groups[group].append(item)
self.__groups[group].sort()
def doc_item(self, key):
"""
Return the DocumentationInstance describing the key
"""
try:
return self.__keys[key]
except KeyError:
return None
def doc_keys(self):
"""
Return the documented KEYS (names)
"""
return self.__keys.keys()
def groups(self):
"""
Return the names of available groups
"""
return self.__groups.keys()
def group_content(self, group_name):
"""
Return a list of keys/names that are in a specefic
group or the empty list
"""
try:
return self.__groups[group_name]
except KeyError:
return []
def parse_cmdline(args):
"""
Parse the CMD line and return the result as a n-tuple
"""
parser = optparse.OptionParser( version = "Bitbake Documentation Tool Core version %s, %%prog version %s" % (bb.__version__, __version__))
usage = """%prog [options]
Create a set of html pages (documentation) for a bitbake.conf....
"""
# Add the needed options
parser.add_option( "-c", "--config", help = "Use the specified configuration file as source",
action = "store", dest = "config", default = os.path.join("conf", "documentation.conf") )
parser.add_option( "-o", "--output", help = "Output directory for html files",
action = "store", dest = "output", default = "html/" )
parser.add_option( "-D", "--debug", help = "Increase the debug level",
action = "count", dest = "debug", default = 0 )
parser.add_option( "-v", "--verbose", help = "output more chit-char to the terminal",
action = "store_true", dest = "verbose", default = False )
options, args = parser.parse_args( sys.argv )
bb.msg.init_msgconfig(options.verbose, options.debug)
return options.config, options.output
def main():
"""
The main Method
"""
(config_file, output_dir) = parse_cmdline( sys.argv )
# right to let us load the file now
try:
documentation = bb.parse.handle( config_file, bb.data.init() )
except IOError:
bb.fatal( "Unable to open %s" % config_file )
except bb.parse.ParseError:
bb.fatal( "Unable to parse %s" % config_file )
if isinstance(documentation, dict):
documentation = documentation[""]
# Assuming we've the file loaded now, we will initialize the 'tree'
doc = Documentation()
# defined states
state_begin = 0
state_see = 1
state_group = 2
for key in bb.data.keys(documentation):
data = documentation.getVarFlag(key, "doc", False)
if not data:
continue
# The Documentation now starts
doc_ins = DocumentationItem()
doc_ins.setName(key)
tokens = data.split(' ')
state = state_begin
string= ""
for token in tokens:
token = token.strip(',')
if not state == state_see and token == "@see":
state = state_see
continue
elif not state == state_group and token == "@group":
state = state_group
continue
if state == state_begin:
string += " %s" % token
elif state == state_see:
doc_ins.addRelation(token)
elif state == state_group:
doc_ins.addGroup(token)
# set the description
doc_ins.setDescription(string)
doc.insert_doc_item(doc_ins)
# let us create the HTML now
bb.utils.mkdirhier(output_dir)
os.chdir(output_dir)
# Let us create the sites now. We do it in the following order
# Start with the index.html. It will point to sites explaining all
# keys and groups
html_slave = HTMLFormatter()
f = file('style.css', 'w')
print >> f, html_slave.createCSS()
f = file('index.html', 'w')
print >> f, html_slave.createIndex()
f = file('all_groups.html', 'w')
print >> f, html_slave.createGroupsSite(doc)
f = file('all_keys.html', 'w')
print >> f, html_slave.createKeysSite(doc)
# now for each group create the site
for group in doc.groups():
f = file('group%s.html' % group, 'w')
print >> f, html_slave.createGroupSite(group, doc.group_content(group))
# now for the keys
for key in doc.doc_keys():
f = file('key%s.html' % doc.doc_item(key).name(), 'w')
print >> f, html_slave.createKeySite(doc.doc_item(key))
if __name__ == "__main__":
main()

View File

@@ -1,169 +0,0 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""git-make-shallow: make the current git repository shallow
Remove the history of the specified revisions, then optionally filter the
available refs to those specified.
"""
import argparse
import collections
import errno
import itertools
import os
import subprocess
import sys
version = 1.0
def main():
if sys.version_info < (3, 4, 0):
sys.exit('Python 3.4 or greater is required')
git_dir = check_output(['git', 'rev-parse', '--git-dir']).rstrip()
shallow_file = os.path.join(git_dir, 'shallow')
if os.path.exists(shallow_file):
try:
check_output(['git', 'fetch', '--unshallow'])
except subprocess.CalledProcessError:
try:
os.unlink(shallow_file)
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
args = process_args()
revs = check_output(['git', 'rev-list'] + args.revisions).splitlines()
make_shallow(shallow_file, args.revisions, args.refs)
ref_revs = check_output(['git', 'rev-list'] + args.refs).splitlines()
remaining_history = set(revs) & set(ref_revs)
for rev in remaining_history:
if check_output(['git', 'rev-parse', '{}^@'.format(rev)]):
sys.exit('Error: %s was not made shallow' % rev)
filter_refs(args.refs)
if args.shrink:
shrink_repo(git_dir)
subprocess.check_call(['git', 'fsck', '--unreachable'])
def process_args():
# TODO: add argument to automatically keep local-only refs, since they
# can't be easily restored with a git fetch.
parser = argparse.ArgumentParser(description='Remove the history of the specified revisions, then optionally filter the available refs to those specified.')
parser.add_argument('--ref', '-r', metavar='REF', action='append', dest='refs', help='remove all but the specified refs (cumulative)')
parser.add_argument('--shrink', '-s', action='store_true', help='shrink the git repository by repacking and pruning')
parser.add_argument('revisions', metavar='REVISION', nargs='+', help='a git revision/commit')
if len(sys.argv) < 2:
parser.print_help()
sys.exit(2)
args = parser.parse_args()
if args.refs:
args.refs = check_output(['git', 'rev-parse', '--symbolic-full-name'] + args.refs).splitlines()
else:
args.refs = get_all_refs(lambda r, t, tt: t == 'commit' or tt == 'commit')
args.refs = list(filter(lambda r: not r.endswith('/HEAD'), args.refs))
args.revisions = check_output(['git', 'rev-parse'] + ['%s^{}' % i for i in args.revisions]).splitlines()
return args
def check_output(cmd, input=None):
return subprocess.check_output(cmd, universal_newlines=True, input=input)
def make_shallow(shallow_file, revisions, refs):
"""Remove the history of the specified revisions."""
for rev in follow_history_intersections(revisions, refs):
print("Processing %s" % rev)
with open(shallow_file, 'a') as f:
f.write(rev + '\n')
def get_all_refs(ref_filter=None):
"""Return all the existing refs in this repository, optionally filtering the refs."""
ref_output = check_output(['git', 'for-each-ref', '--format=%(refname)\t%(objecttype)\t%(*objecttype)'])
ref_split = [tuple(iter_extend(l.rsplit('\t'), 3)) for l in ref_output.splitlines()]
if ref_filter:
ref_split = (e for e in ref_split if ref_filter(*e))
refs = [r[0] for r in ref_split]
return refs
def iter_extend(iterable, length, obj=None):
"""Ensure that iterable is the specified length by extending with obj."""
return itertools.islice(itertools.chain(iterable, itertools.repeat(obj)), length)
def filter_refs(refs):
"""Remove all but the specified refs from the git repository."""
all_refs = get_all_refs()
to_remove = set(all_refs) - set(refs)
if to_remove:
check_output(['xargs', '-0', '-n', '1', 'git', 'update-ref', '-d', '--no-deref'],
input=''.join(l + '\0' for l in to_remove))
def follow_history_intersections(revisions, refs):
"""Determine all the points where the history of the specified revisions intersects the specified refs."""
queue = collections.deque(revisions)
seen = set()
for rev in iter_except(queue.popleft, IndexError):
if rev in seen:
continue
parents = check_output(['git', 'rev-parse', '%s^@' % rev]).splitlines()
yield rev
seen.add(rev)
if not parents:
continue
check_refs = check_output(['git', 'merge-base', '--independent'] + sorted(refs)).splitlines()
for parent in parents:
for ref in check_refs:
print("Checking %s vs %s" % (parent, ref))
try:
merge_base = check_output(['git', 'merge-base', parent, ref]).rstrip()
except subprocess.CalledProcessError:
continue
else:
queue.append(merge_base)
def iter_except(func, exception, start=None):
"""Yield a function repeatedly until it raises an exception."""
try:
if start is not None:
yield start()
while True:
yield func()
except exception:
pass
def shrink_repo(git_dir):
"""Shrink the newly shallow repository, removing the unreachable objects."""
subprocess.check_call(['git', 'reflog', 'expire', '--expire-unreachable=now', '--all'])
subprocess.check_call(['git', 'repack', '-ad'])
try:
os.unlink(os.path.join(git_dir, 'objects', 'info', 'alternates'))
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
subprocess.check_call(['git', 'prune', '--expire', 'now'])
if __name__ == '__main__':
main()

View File

@@ -3,30 +3,50 @@
# toaster - shell script to start Toaster
# Copyright (C) 2013-2015 Intel Corp.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# SPDX-License-Identifier: GPL-2.0-or-later
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
HELP="
Usage 1: source toaster start|stop [webport=<address:port>] [noweb] [nobuild] [toasterdir]
Usage: source toaster start|stop [webport=<address:port>] [noweb]
Optional arguments:
[nobuild] Setup the environment for capturing builds with toaster but disable managed builds
[noweb] Setup the environment for capturing builds with toaster but don't start the web server
[noweb] Setup the environment for building with toaster but don't start the development server
[webport] Set the development server (default: localhost:8000)
[toasterdir] Set absolute path to be used as TOASTER_DIR (default: BUILDDIR/../)
Usage 2: source toaster manage [createsuperuser|lsupdates|migrate|makemigrations|checksettings|collectstatic|...]
"
custom_extention()
webserverKillAll()
{
custom_extension=$BBBASEDIR/lib/toaster/orm/fixtures/custom_toaster_append.sh
if [ -f $custom_extension ] ; then
$custom_extension $*
fi
local pidfile
for pidfile in ${BUILDDIR}/.toastermain.pid ${BUILDDIR}/.runbuilds.pid; do
if [ -f ${pidfile} ]; then
pid=`cat ${pidfile}`
while kill -0 $pid 2>/dev/null; do
kill -SIGTERM -$pid 2>/dev/null
sleep 1
done
rm ${pidfile}
fi
done
}
databaseCheck()
webserverStartAll()
{
# do not start if toastermain points to a valid process
if ! cat "${BUILDDIR}/.toastermain.pid" 2>/dev/null | xargs -I{} kill -0 {} ; then
retval=1
rm "${BUILDDIR}/.toastermain.pid"
fi
retval=0
# you can always add a superuser later via
# ../bitbake/lib/toaster/manage.py createsuperuser --username=<ME>
@@ -45,45 +65,9 @@ databaseCheck()
return $retval
fi
return $retval
}
webserverKillAll()
{
local pidfile
if [ -f ${BUILDDIR}/.toastermain.pid ] ; then
custom_extention web_stop_postpend
else
custom_extention noweb_stop_postpend
fi
for pidfile in ${BUILDDIR}/.toastermain.pid ${BUILDDIR}/.runbuilds.pid; do
if [ -f ${pidfile} ]; then
pid=`cat ${pidfile}`
while kill -0 $pid 2>/dev/null; do
kill -SIGTERM $pid 2>/dev/null
sleep 1
done
rm ${pidfile}
fi
done
}
webserverStartAll()
{
# do not start if toastermain points to a valid process
if ! cat "${BUILDDIR}/.toastermain.pid" 2>/dev/null | xargs -I{} kill -0 {} ; then
retval=1
rm "${BUILDDIR}/.toastermain.pid"
fi
retval=0
# check the database
databaseCheck || return 1
echo "Starting webserver..."
$MANAGE runserver --noreload "$ADDR_PORT" \
$MANAGE runserver "$ADDR_PORT" \
</dev/null >>${BUILDDIR}/toaster_web.log 2>&1 \
& echo $! >${BUILDDIR}/.toastermain.pid
@@ -95,7 +79,6 @@ webserverStartAll()
else
echo "Toaster development webserver started at http://$ADDR_PORT"
echo -e "\nYou can now run 'bitbake <target>' on the command line and monitor your build in Toaster.\nYou can also use a Toaster project to configure and run a build.\n"
custom_extention web_start_postpend $ADDR_PORT
fi
return $retval
@@ -123,18 +106,12 @@ verify_prereq() {
# Verify Django version
reqfile=$(python3 -c "import os; print(os.path.realpath('$BBBASEDIR/toaster-requirements.txt'))")
exp='s/Django\([><=]\+\)\([^,]\+\),\([><=]\+\)\(.\+\)/'
# expand version parts to 2 digits to support 1.10.x > 1.8
# (note:helper functions hard to insert in-line)
exp=$exp'import sys,django;'
exp=$exp'version=["%02d" % int(n) for n in django.get_version().split(".")];'
exp=$exp'vmin=["%02d" % int(n) for n in "\2".split(".")];'
exp=$exp'vmax=["%02d" % int(n) for n in "\4".split(".")];'
exp=$exp'sys.exit(not (version \1 vmin and version \3 vmax))'
exp=$exp'/p'
exp=$exp'import sys,django;version=django.get_version().split(".");'
exp=$exp'sys.exit(not (version \1 "\2".split(".") and version \3 "\4".split(".")))/p'
if ! sed -n "$exp" $reqfile | python3 - ; then
req=`grep ^Django $reqfile`
echo "This program needs $req"
echo "Please install with pip3 install -r $reqfile"
echo "Please install with pip install -r $reqfile"
return 2
fi
@@ -152,9 +129,7 @@ fi
export BBBASEDIR=`dirname $TOASTER`/..
MANAGE="python3 $BBBASEDIR/lib/toaster/manage.py"
if [ -z "$OE_ROOT" ]; then
OE_ROOT=`dirname $TOASTER`/../..
fi
OE_ROOT=`dirname $TOASTER`/../..
# this is the configuraton file we are using for toaster
# we are using the same logic that oe-setup-builddir uses
@@ -177,19 +152,15 @@ fi
unset OE_ROOT
WEBSERVER=1
export TOASTER_BUILDSERVER=1
ADDR_PORT="localhost:8000"
TOASTERDIR=`dirname $BUILDDIR`
unset CMD
for param in $*; do
case $param in
noweb )
WEBSERVER=0
;;
nobuild )
TOASTER_BUILDSERVER=0
;;
start )
CMD=$param
;;
@@ -206,24 +177,13 @@ for param in $*; do
ADDR_PORT="localhost:$PORT"
fi
;;
toasterdir=*)
TOASTERDIR="${param#*=}"
;;
manage )
CMD=$param
manage_cmd=""
;;
--help)
echo "$HELP"
return 0
;;
*)
if [ "manage" == "$CMD" ] ; then
manage_cmd="$manage_cmd $param"
else
echo "$HELP"
exit 1
fi
echo "$HELP"
return 1
;;
esac
@@ -247,7 +207,7 @@ fi
# 2) the build dir (in build)
# 3) the sqlite db if that is being used.
# 4) pid's we need to clean up on exit/shutdown
export TOASTER_DIR=$TOASTERDIR
export TOASTER_DIR=`dirname $BUILDDIR`
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE TOASTER_DIR"
# Determine the action. If specified by arguments, fine, if not, toggle it
@@ -265,7 +225,6 @@ fi
echo "The system will $CMD."
# Execute the commands
custom_extention toaster_prepend $CMD $ADDR_PORT
case $CMD in
start )
@@ -281,44 +240,19 @@ case $CMD in
line='INHERIT+="toaster buildhistory"'
grep -q "$line" $conf || echo $line >> $conf
if [ $WEBSERVER -eq 0 ] ; then
# Do not update the database for "noweb" unless
# it does not yet exist
if [ ! -f "$TOASTER_DIR/toaster.sqlite" ] ; then
if ! databaseCheck; then
echo "Failed ${CMD}."
return 4
fi
fi
custom_extention noweb_start_postpend $ADDR_PORT
fi
if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then
echo "Failed ${CMD}."
return 4
fi
export BITBAKE_UI='toasterui'
if [ $TOASTER_BUILDSERVER -eq 1 ] ; then
$MANAGE runbuilds \
</dev/null >>${BUILDDIR}/toaster_runbuilds.log 2>&1 \
& echo $! >${BUILDDIR}/.runbuilds.pid
else
echo "Toaster build server not started."
fi
$MANAGE runbuilds & echo $! >${BUILDDIR}/.runbuilds.pid
# set fail safe stop system on terminal exit
trap stop_system SIGHUP
echo "Successful ${CMD}."
custom_extention toaster_postpend $CMD $ADDR_PORT
return 0
;;
stop )
stop_system
echo "Successful ${CMD}."
;;
manage )
cd $BBBASEDIR/lib/toaster
$MANAGE $manage_cmd
;;
esac
custom_extention toaster_postpend $CMD $ADDR_PORT

View File

@@ -1,12 +1,25 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2014 Alex Damian
#
# SPDX-License-Identifier: GPL-2.0-only
#
# This file re-uses code spread throughout other Bitbake source files.
# As such, all other copyrights belong to their own right holders.
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
This command takes a filename as a single parameter. The filename is read

View File

@@ -1,13 +0,0 @@
{
"version": 1,
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
}
}
}

View File

@@ -1,89 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2020 Joshua Watt <JPEWhacker@gmail.com>
#
# SPDX-License-Identifier: MIT
import argparse
import os
import random
import shutil
import signal
import subprocess
import sys
import time
def try_unlink(path):
try:
os.unlink(path)
except:
pass
def main():
def cleanup():
shutil.rmtree("tmp/cache", ignore_errors=True)
try_unlink("bitbake-cookerdaemon.log")
try_unlink("bitbake.sock")
try_unlink("bitbake.lock")
parser = argparse.ArgumentParser(
description="Bitbake parser torture test",
epilog="""
A torture test for bitbake's parser. Repeatedly interrupts parsing until
bitbake decides to deadlock.
""",
)
args = parser.parse_args()
if not "BUILDDIR" in os.environ:
print(
"'BUILDDIR' not found in the environment. Did you initialize the build environment?"
)
return 1
os.chdir(os.environ["BUILDDIR"])
run_num = 0
while True:
if run_num % 100 == 0:
print("Calibrating wait time...")
cleanup()
start_time = time.monotonic()
r = subprocess.run(["bitbake", "-p"])
max_wait_time = time.monotonic() - start_time
if r.returncode != 0:
print("Calibration run exited with %d" % r.returncode)
return 1
print("Maximum wait time is %f seconds" % max_wait_time)
run_num += 1
wait_time = random.random() * max_wait_time
print("Run #%d" % run_num)
print("Will sleep for %f seconds" % wait_time)
cleanup()
with subprocess.Popen(["bitbake", "-p"]) as proc:
time.sleep(wait_time)
proc.send_signal(signal.SIGINT)
try:
proc.wait(45)
except subprocess.TimeoutExpired:
print("Run #%d: Waited too long. Possible deadlock!" % run_num)
proc.wait()
return 1
if proc.returncode == 0:
print("Exited successfully. Timeout too long?")
else:
print("Exited with %d" % proc.returncode)
if __name__ == "__main__":
sys.exit(main())

View File

@@ -1,6 +1,8 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2012, 2018 Wind River Systems, Inc.
# Copyright (C) 2012 Wind River Systems, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -16,68 +18,51 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Used for dumping the bb_cache.dat
# This is used for dumping the bb_cache.dat, the output format is:
# recipe_path PN PV PACKAGES
#
import os
import sys
import argparse
import warnings
# For importing bb.cache
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '../lib'))
from bb.cache import CoreRecipeInfo
import pickle
import pickle as pickle
class DumpCache(object):
def __init__(self):
parser = argparse.ArgumentParser(
description="bb_cache.dat's dumper",
epilog="Use %(prog)s --help to get help")
parser.add_argument("-r", "--recipe",
help="specify the recipe, default: all recipes", action="store")
parser.add_argument("-m", "--members",
help = "specify the member, use comma as separator for multiple ones, default: all members", action="store", default="")
parser.add_argument("-s", "--skip",
help = "skip skipped recipes", action="store_true")
parser.add_argument("cachefile",
help = "specify bb_cache.dat", nargs = 1, action="store", default="")
def main(argv=None):
"""
Get the mapping for the target recipe.
"""
if len(argv) != 1:
print("Error, need one argument!", file=sys.stderr)
return 2
self.args = parser.parse_args()
cachefile = argv[0]
def main(self):
with open(self.args.cachefile[0], "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
while True:
try:
key = pickled.load()
val = pickled.load()
except Exception:
break
if isinstance(val, CoreRecipeInfo):
pn = val.pn
with open(cachefile, "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
while cachefile:
try:
key = pickled.load()
val = pickled.load()
except Exception:
break
if isinstance(val, CoreRecipeInfo) and (not val.skipped):
pn = val.pn
# Filter out the native recipes.
if key.startswith('virtual:native:') or pn.endswith("-native"):
continue
if self.args.recipe and self.args.recipe != pn:
continue
# 1.0 is the default version for a no PV recipe.
if "pv" in val.__dict__:
pv = val.pv
else:
pv = "1.0"
if self.args.skip and val.skipped:
continue
if self.args.members:
out = key
for member in self.args.members.split(','):
out += ": %s" % val.__dict__.get(member)
print("%s" % out)
else:
print("%s: %s" % (key, val.__dict__))
elif not self.args.recipe:
print("%s %s" % (key, val))
print("%s %s %s %s" % (key, pn, pv, ' '.join(val.packages)))
if __name__ == "__main__":
try:
dump = DumpCache()
ret = dump.main()
except Exception as esc:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)
sys.exit(main(sys.argv[1:]))

View File

@@ -1,18 +0,0 @@
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -6,12 +6,12 @@
"
" This sets up the syntax highlighting for BitBake files, like .bb, .bbclass and .inc
if &compatible || version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || version < 600
finish
endif
" .bb, .bbappend and .bbclass
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
" .inc
au BufNewFile,BufRead *.inc set filetype=bitbake

View File

@@ -1,13 +1,2 @@
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl cms< sts< sw< et< sua<"
setlocal commentstring=#\ %s
setlocal softtabstop=4 shiftwidth=4 expandtab
setlocal suffixesadd+=.bb,.bbclass
set sts=4 sw=4 et
set cms=#%s

View File

@@ -1,343 +0,0 @@
" Vim indent file
" Language: BitBake
" Copyright: Copyright (C) 2019 Agilent Technologies, Inc.
" Maintainer: Chris Laplante <chris.laplante@agilent.com>
" License: You may redistribute this under the same terms as Vim itself
if exists("b:did_indent")
finish
endif
if exists("*BitbakeIndent")
finish
endif
runtime! indent/sh.vim
unlet b:did_indent
setlocal indentexpr=BitbakeIndent(v:lnum)
setlocal autoindent nolisp
function s:is_bb_python_func_def(lnum)
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return 0
endif
let top = synIDattr(stack[0], "name")
echo top
return synIDattr(stack[0], "name") == "bbPyFuncDef"
endfunction
"""" begin modified from indent/python.vim, upstream commit 7a9bd7c1e0ce1baf5a02daf36eeae3638aa315c7
"""" This copied code is licensed the same as Vim itself.
setlocal indentkeys+=<:>,=elif,=except
let s:keepcpo= &cpo
set cpo&vim
let s:maxoff = 50 " maximum number of lines to look backwards for ()
function GetPythonIndent(lnum)
" If this line is explicitly joined: If the previous line was also joined,
" line it up with that one, otherwise add two 'shiftwidth'
if getline(a:lnum - 1) =~ '\\$'
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
return indent(a:lnum - 1)
endif
return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (shiftwidth() * 2))
endif
" If the start of the line is in a string don't change the indent.
if has('syntax_items')
\ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
return -1
endif
" Search backwards for the previous non-empty line.
let plnum = prevnonblank(v:lnum - 1)
if plnum == 0
" This is the first non-empty line, use zero indent.
return 0
endif
call cursor(plnum, 1)
" Identing inside parentheses can be very slow, regardless of the searchpair()
" timeout, so let the user disable this feature if he doesn't need it
let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0)
if disable_parentheses_indenting == 1
let plindent = indent(plnum)
let plnumstart = plnum
else
" searchpair() can be slow sometimes, limit the time to 150 msec or what is
" put in g:pyindent_searchpair_timeout
let searchpair_stopline = 0
let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
" If the previous line is inside parenthesis, use the indent of the starting
" line.
" Trick: use the non-existing "dummy" variable to break out of the loop when
" going too far back.
let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if parlnum > 0
" We may have found the opening brace of a BitBake Python task, e.g. 'python do_task {'
" If so, ignore it here - it will be handled later.
if s:is_bb_python_func_def(parlnum)
let parlnum = 0
let plindent = indent(plnum)
let plnumstart = plnum
else
let plindent = indent(parlnum)
let plnumstart = parlnum
endif
else
let plindent = indent(plnum)
let plnumstart = plnum
endif
" When inside parenthesis: If at the first line below the parenthesis add
" two 'shiftwidth', otherwise same as previous line.
" i = (a
" + b
" + c)
call cursor(a:lnum, 1)
let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if p > 0
if s:is_bb_python_func_def(p)
" Handle first non-empty line inside a BB Python task
if p == plnum
return shiftwidth()
endif
" Handle the user actually trying to close a BitBake Python task
let line = getline(a:lnum)
if line =~ '^\s*}'
return -2
endif
" Otherwise ignore the brace
let p = 0
else
if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'.
let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if pp > 0
return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
endif
return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
endif
if plnumstart == p
return indent(plnum)
endif
return plindent
endif
endif
endif
" Get the line and remove a trailing comment.
" Use syntax highlighting attributes when possible.
let pline = getline(plnum)
let pline_len = strlen(pline)
if has('syntax_items')
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let max = col
else
let min = col + 1
endif
endwhile
let pline = strpart(pline, 0, min - 1)
endif
else
let col = 0
while col < pline_len
if pline[col] == '#'
let pline = strpart(pline, 0, col)
break
endif
let col = col + 1
endwhile
endif
" If the previous line ended with a colon, indent this line
if pline =~ ':\s*$'
return plindent + shiftwidth()
endif
" If the previous line was a stop-execution statement...
" TODO: utilize this logic to deindent when ending a bbPyDefRegion
if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\|bb\.fatal\)\>'
" See if the user has already dedented
if indent(a:lnum) > indent(plnum) - shiftwidth()
" If not, recommend one dedent
return indent(plnum) - shiftwidth()
endif
" Otherwise, trust the user
return -1
endif
" If the current line begins with a keyword that lines up with "try"
if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
let lnum = a:lnum - 1
while lnum >= 1
if getline(lnum) =~ '^\s*\(try\|except\)\>'
let ind = indent(lnum)
if ind >= indent(a:lnum)
return -1 " indent is already less than this
endif
return ind " line up with previous try or except
endif
let lnum = lnum - 1
endwhile
return -1 " no matching "try"!
endif
" If the current line begins with a header keyword, dedent
if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'
" Unless the previous line was a one-liner
if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>'
return plindent
endif
" Or the user has already dedented
if indent(a:lnum) <= plindent - shiftwidth()
return -1
endif
return plindent - shiftwidth()
endif
" When after a () construct we probably want to go back to the start line.
" a = (b
" + c)
" here
if parlnum > 0
return plindent
endif
return -1
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
""" end of stuff from indent/python.vim
let b:did_indent = 1
setlocal indentkeys+=0\"
function BitbakeIndent(lnum)
if !has('syntax_items')
return -1
endif
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return -1
endif
let name = synIDattr(stack[0], "name")
" TODO: support different styles of indentation for assignments. For now,
" we only support like this:
" VAR = " \
" value1 \
" value2 \
" "
"
" i.e. each value indented by shiftwidth(), with the final quote " completely unindented.
if name == "bbVarValue"
" Quote handling is tricky. kernel.bbclass has this line for instance:
" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}""
" Instead of trying to handle crazy cases like that, just assume that a
" double-quote on a line by itself (following an assignment) means the
" user is closing the assignment, and de-dent.
if getline(a:lnum) =~ '^\s*"$'
return 0
endif
let prevstack = synstack(a:lnum - 1, 1)
if len(prevstack) == 0
return -1
endif
let prevname = synIDattr(prevstack[0], "name")
" Only indent if there was actually a continuation character on
" the previous line, to avoid misleading indentation.
let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name")
let prev_continued = prevlinelastchar == "bbContinue"
" Did the previous line introduce an assignment?
if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1
if prev_continued
return shiftwidth()
endif
endif
if !prev_continued
return 0
endif
" Autoindent can take it from here
return -1
endif
if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
let ret = GetPythonIndent(a:lnum)
" Should normally always be indented by at least one shiftwidth; but allow
" return of -1 (defer to autoindent) or -2 (force indent to 0)
if ret == 0
return shiftwidth()
elseif ret == -2
return 0
endif
return ret
endif
" TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot'
" Need to submit a patch upstream to Vim to provide an extension point.
" Unlike the Python indenter, the Sh indenter is way too large to copy and
" modify here.
if name == "bbShFuncRegion"
return GetShIndent()
endif
" TODO:
" + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user
" types an obvious BB keyword like addhandler or addtask, or starts
" writing a shell task. Maybe too hard to implement...
return -1
endfunction

14
bitbake/contrib/vim/plugin/newbb.vim Normal file → Executable file
View File

@@ -10,7 +10,7 @@
"
" Will try to use git to find the user name and email
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || v:version < 600
finish
endif
@@ -25,7 +25,7 @@ endfun
fun! <SID>GetUserEmail()
let l:user_email = system("git config --get user.email")
if v:shell_error
return "unknown@user.org"
return "unknow@user.org"
else
return substitute(l:user_email, "\n", "", "")
endfun
@@ -41,10 +41,6 @@ fun! BBHeader()
endfun
fun! NewBBTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
@@ -52,7 +48,7 @@ fun! NewBBTemplate()
call BBHeader()
" New the bb template
put ='SUMMARY = \"\"'
put ='DESCRIPTION = \"\"'
put ='HOMEPAGE = \"\"'
put ='LICENSE = \"\"'
put ='SECTION = \"\"'
@@ -62,7 +58,7 @@ fun! NewBBTemplate()
" Go to the first place to edit
0
/^SUMMARY =/
/^DESCRIPTION =/
exec "normal 2f\""
if paste == 1
@@ -80,7 +76,7 @@ if v:progname =~ "vimdiff"
endif
augroup NewBB
au BufNewFile,BufReadPost *.bb
au BufNewFile *.bb
\ if g:bb_create_on_empty |
\ call NewBBTemplate() |
\ endif

View File

@@ -1,46 +0,0 @@
" Vim plugin file
" Purpose: Create a template for new bbappend file
" Author: Joshua Watt <JPEWhacker@gmail.com>
" Copyright: Copyright (C) 2017 Joshua Watt <JPEWhacker@gmail.com>
"
" This file is licensed under the MIT license, see COPYING.MIT in
" this source distribution for the terms.
"
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
finish
endif
fun! NewBBAppendTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
" New bbappend template
0 put ='FILESEXTRAPATHS_prepend := \"${THISDIR}/${PN}:\"'
2
if paste == 1
set paste
endif
endfun
if !exists("g:bb_create_on_empty")
let g:bb_create_on_empty = 1
endif
" disable in case of vimdiff
if v:progname =~ "vimdiff"
let g:bb_create_on_empty = 0
endif
augroup NewBBAppend
au BufNewFile,BufReadPost *.bbappend
\ if g:bb_create_on_empty |
\ call NewBBAppendTemplate() |
\ endif
augroup END

View File

@@ -12,7 +12,7 @@
"
" It's an entirely new type, just has specific syntax in shell and python code
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || v:version < 600
finish
endif
if exists("b:current_syntax")
@@ -58,8 +58,8 @@ syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbV
syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python
" Vars metadata flags
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.+]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
" Includes and requires
syn keyword bbInclude inherit include require contained
@@ -67,15 +67,15 @@ syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref
syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest
" Add taks and similar
syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained
syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained
syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
syn match bbStatementLine "^\(addtask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
" OE Important Functions
syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained
" Generic Functions
syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions
syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions
" BitBake shell metadata
syn include @shell syntax/sh.vim
@@ -83,7 +83,7 @@ if exists("b:current_syntax")
unlet b:current_syntax
endif
syn keyword bbShFakeRootFlag fakeroot contained
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([\.0-9A-Za-z_${}\-\.]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_${}-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@shell
" Python value inside shell functions
@@ -91,7 +91,7 @@ syn region shDeref start=+${@+ skip=+\\$+ excludenl end=+}+ contained co
" BitBake python metadata
syn keyword bbPyFlag python contained
syn match bbPyFuncDef "^\(fakeroot\s*\)\?\(python\)\(\s\+[0-9A-Za-z_${}\-\.]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn match bbPyFuncDef "^\(python\s\+\)\([0-9A-Za-z_${}-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@python
" BitBake 'def'd python functions

View File

@@ -1 +0,0 @@
_build/

View File

@@ -1,35 +1,91 @@
# Minimal makefile for Sphinx documentation
# This is a single Makefile to handle all generated BitBake documents.
# The Makefile needs to live in the documentation directory and all figures used
# in any manuals must be .PNG files and live in the individual book's figures
# directory.
#
# The Makefile has these targets:
#
# pdf: generates a PDF version of a manual.
# html: generates an HTML version of a manual.
# tarball: creates a tarball for the doc files.
# validate: validates
# clean: removes files
#
# The Makefile generates an HTML version of every document. The
# variable DOC indicates the folder name for a given manual.
#
# To build a manual, you must invoke 'make' with the DOC argument.
#
# Examples:
#
# make DOC=bitbake-user-manual
# make pdf DOC=bitbake-user-manual
#
# The first example generates the HTML version of the User Manual.
# The second example generates the PDF version of the User Manual.
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?= -j auto
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
DESTDIR = final
ifeq ($(DOC),bitbake-user-manual)
XSLTOPTS = --stringparam html.stylesheet bitbake-user-manual-style.css \
--stringparam chapter.autolabel 1 \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html tarball
TARFILES = bitbake-user-manual-style.css bitbake-user-manual.html figures/bitbake-title.png
MANUALS = $(DOC)/$(DOC).html
FIGURES = figures
STYLESHEET = $(DOC)/*.css
ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0)
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed")
endif
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/current
XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
.PHONY: help Makefile clean publish
all: $(ALLPREQ)
publish: Makefile html singlehtml
rm -rf $(BUILDDIR)/$(DESTDIR)/
mkdir -p $(BUILDDIR)/$(DESTDIR)/
cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/
cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html
sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html
pdf:
ifeq ($(DOC),bitbake-user-manual)
@echo " "
@echo "********** Building."$(DOC)
@echo " "
cd $(DOC); ../tools/docbook-to-pdf $(DOC).xml ../template; cd ..
endif
html:
ifeq ($(DOC),bitbake-user-manual)
# See http://www.sagehill.net/docbookxsl/HtmlOutput.html
@echo " "
@echo "******** Building "$(DOC)
@echo " "
cd $(DOC); xsltproc $(XSLTOPTS) -o $(DOC).html $(DOC)-customization.xsl $(DOC).xml; cd ..
endif
tarball: html
@echo " "
@echo "******** Creating Tarball of document files"
@echo " "
cd $(DOC); tar -cvzf $(DOC).tgz $(TARFILES); cd ..
validate:
cd $(DOC); xmllint --postvalid --xinclude --noout $(DOC).xml; cd ..
publish:
@if test -f $(DOC)/$(DOC).html; \
then \
echo " "; \
echo "******** Publishing "$(DOC)".html"; \
echo " "; \
scp -r $(MANUALS) $(STYLESHEET) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
cd $(DOC); scp -r $(FIGURES) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
else \
echo " "; \
echo $(DOC)".html missing. Generate the file first then try again."; \
echo " "; \
fi
clean:
@rm -rf $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
rm -rf $(MANUALS); rm $(DOC)/$(DOC).tgz;

View File

@@ -15,41 +15,25 @@ Each folder is self-contained regarding content and figures.
If you want to find HTML versions of the BitBake manuals on the web,
go to http://www.openembedded.org/wiki/Documentation.
Sphinx
======
Makefile
========
The BitBake documentation was migrated from the original DocBook
format to Sphinx based documentation for the Yocto Project 3.2
release.
The Makefile processes manual directories to create HTML, PDF,
tarballs, etc. Details on how the Makefile work are documented
inside the Makefile. See that file for more information.
Additional information related to the Sphinx migration, and guidelines
for developers willing to contribute to the BitBake documentation can
be found in the Yocto Project Documentation README file:
To build a manual, you run the make command and pass it the name
of the folder containing the manual's contents.
For example, the following command run from the documentation directory
creates an HTML and a PDF version of the BitBake User Manual.
The DOC variable specifies the manual you are making:
https://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/tree/documentation/README
$ make DOC=bitbake-user-manual
How to build the Yocto Project documentation
============================================
template
========
Contains various templates, fonts, and some old PNG files.
Sphinx is written in Python. While it might work with Python2, for
obvious reasons, we will only support building the BitBake
documentation with Python3.
Sphinx might be available in your Linux distro packages repositories,
however it is not recommend using distro packages, as they might be
old versions, especially if you are using an LTS version of your
distro. The recommended method to install Sphinx and all required
dependencies is to use the Python Package Index (pip).
To install all required packages run:
$ pip3 install sphinx sphinx_rtd_theme pyyaml
To build the documentation locally, run:
$ cd documentation
$ make -f Makefile.sphinx html
The resulting HTML index page will be _build/html/index.html, and you
can browse your own copy of the locally generated documentation with
your browser.
tools
=====
Contains a tool to convert the DocBook files to PDF format.

View File

@@ -1,14 +0,0 @@
{% extends "!breadcrumbs.html" %}
{% block breadcrumbs %}
<li>
<span class="doctype_switcher_placeholder">{{ doctype or 'single' }}</span>
<span class="version_switcher_placeholder">{{ release }}</span>
</li>
<li> &raquo;</li>
{% for doc in parents %}
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
{% endfor %}
<li>{{ title }}</li>
{% endblock %}

View File

@@ -1,7 +0,0 @@
{% extends "!layout.html" %}
{% block extrabody %}
<div id="outdated-warning" style="text-align: center; background-color: #FFBABA; color: #6A0E0E;">
</div>
{% endblock %}

View File

@@ -0,0 +1,29 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
<!--
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
-->
<xsl:include href="../template/permalinks.xsl"/>
<xsl:include href="../template/section.title.xsl"/>
<xsl:include href="../template/component.title.xsl"/>
<xsl:include href="../template/division.title.xsl"/>
<xsl:include href="../template/formal.object.heading.xsl"/>
<xsl:include href="../template/gloss-permalinks.xsl"/>
<xsl:param name="html.stylesheet" select="'user-manual-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
<xsl:param name="appendix.autolabel">A</xsl:param>
<!-- <xsl:param name="generate.toc" select="'article nop'"></xsl:param> -->
</xsl:stylesheet>

View File

@@ -1,733 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=========
Execution
=========
|
The primary purpose for running BitBake is to produce some kind of
output such as a single installable package, a kernel, a software
development kit, or even a full, board-specific bootable Linux image,
complete with bootloader, kernel, and root filesystem. Of course, you
can execute the ``bitbake`` command with options that cause it to
execute single tasks, compile single recipe files, capture or clear
data, or simply return information about the execution environment.
This chapter describes BitBake's execution process from start to finish
when you use it to create an image. The execution process is launched
using the following command form: ::
$ bitbake target
For information on
the BitBake command and its options, see ":ref:`The BitBake Command
<bitbake-user-manual-command>`" section.
.. note::
Prior to executing BitBake, you should take advantage of available
parallel thread execution on your build host by setting the
:term:`BB_NUMBER_THREADS` variable in
your project's ``local.conf`` configuration file.
A common method to determine this value for your build host is to run
the following: ::
$ grep processor /proc/cpuinfo
This command returns
the number of processors, which takes into account hyper-threading.
Thus, a quad-core build host with hyper-threading most likely shows
eight processors, which is the value you would then assign to
``BB_NUMBER_THREADS``.
A possibly simpler solution is that some Linux distributions (e.g.
Debian and Ubuntu) provide the ``ncpus`` command.
Parsing the Base Configuration Metadata
=======================================
The first thing BitBake does is parse base configuration metadata. Base
configuration metadata consists of your project's ``bblayers.conf`` file
to determine what layers BitBake needs to recognize, all necessary
``layer.conf`` files (one from each layer), and ``bitbake.conf``. The
data itself is of various types:
- **Recipes:** Details about particular pieces of software.
- **Class Data:** An abstraction of common build information (e.g. how to
build a Linux kernel).
- **Configuration Data:** Machine-specific settings, policy decisions,
and so forth. Configuration data acts as the glue to bind everything
together.
The ``layer.conf`` files are used to construct key variables such as
:term:`BBPATH` and :term:`BBFILES`.
``BBPATH`` is used to search for configuration and class files under the
``conf`` and ``classes`` directories, respectively. ``BBFILES`` is used
to locate both recipe and recipe append files (``.bb`` and
``.bbappend``). If there is no ``bblayers.conf`` file, it is assumed the
user has set the ``BBPATH`` and ``BBFILES`` directly in the environment.
Next, the ``bitbake.conf`` file is located using the ``BBPATH`` variable
that was just constructed. The ``bitbake.conf`` file may also include
other configuration files using the ``include`` or ``require``
directives.
Prior to parsing configuration files, BitBake looks at certain
variables, including:
- :term:`BB_ENV_WHITELIST`
- :term:`BB_ENV_EXTRAWHITE`
- :term:`BB_PRESERVE_ENV`
- :term:`BB_ORIGENV`
- :term:`BITBAKE_UI`
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution. By default, BitBake cleans
the environment variables and provides tight control over the shell
execution environment. However, through the use of these first four
variables, you can apply your control regarding the environment
variables allowed to be used by BitBake in the shell during execution of
tasks. See the
":ref:`bitbake-user-manual/bitbake-user-manual-metadata:Passing Information Into the Build Task Environment`"
section and the information about these variables in the variable
glossary for more information on how they work and on how to use them.
The base configuration metadata is global and therefore affects all
recipes and tasks that are executed.
BitBake first searches the current working directory for an optional
``conf/bblayers.conf`` configuration file. This file is expected to
contain a :term:`BBLAYERS` variable that is a
space-delimited list of 'layer' directories. Recall that if BitBake
cannot find a ``bblayers.conf`` file, then it is assumed the user has
set the ``BBPATH`` and ``BBFILES`` variables directly in the
environment.
For each directory (layer) in this list, a ``conf/layer.conf`` file is
located and parsed with the :term:`LAYERDIR` variable
being set to the directory where the layer was found. The idea is these
files automatically set up :term:`BBPATH` and other
variables correctly for a given build directory.
BitBake then expects to find the ``conf/bitbake.conf`` file somewhere in
the user-specified ``BBPATH``. That configuration file generally has
include directives to pull in any other metadata such as files specific
to the architecture, the machine, the local environment, and so forth.
Only variable definitions and include directives are allowed in BitBake
``.conf`` files. Some variables directly influence BitBake's behavior.
These variables might have been set from the environment depending on
the environment variables previously mentioned or set in the
configuration files. The ":ref:`bitbake-user-manual/bitbake-user-manual-ref-variables:Variables Glossary`"
chapter presents a full list of
variables.
After parsing configuration files, BitBake uses its rudimentary
inheritance mechanism, which is through class files, to inherit some
standard classes. BitBake parses a class when the inherit directive
responsible for getting that class is encountered.
The ``base.bbclass`` file is always included. Other classes that are
specified in the configuration using the
:term:`INHERIT` variable are also included. BitBake
searches for class files in a ``classes`` subdirectory under the paths
in ``BBPATH`` in the same way as configuration files.
A good way to get an idea of the configuration files and the class files
used in your execution environment is to run the following BitBake
command: ::
$ bitbake -e > mybb.log
Examining the top of the ``mybb.log``
shows you the many configuration files and class files used in your
execution environment.
.. note::
You need to be aware of how BitBake parses curly braces. If a recipe
uses a closing curly brace within the function and the character has
no leading spaces, BitBake produces a parsing error. If you use a
pair of curly braces in a shell function, the closing curly brace
must not be located at the start of the line without leading spaces.
Here is an example that causes BitBake to produce a parsing error: ::
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" at the start of the line causes a parsing error ######
}
EOF
}
Writing the recipe this way avoids the error:
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" with a leading space at the start of the line avoids the error ######
}
EOF
}
Locating and Parsing Recipes
============================
During the configuration phase, BitBake will have set
:term:`BBFILES`. BitBake now uses it to construct a
list of recipes to parse, along with any append files (``.bbappend``) to
apply. ``BBFILES`` is a space-separated list of available files and
supports wildcards. An example would be: ::
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
BitBake parses each
recipe and append file located with ``BBFILES`` and stores the values of
various variables into the datastore.
.. note::
Append files are applied in the order they are encountered in BBFILES.
For each file, a fresh copy of the base configuration is made, then the
recipe is parsed line by line. Any inherit statements cause BitBake to
find and then parse class files (``.bbclass``) using
:term:`BBPATH` as the search path. Finally, BitBake
parses in order any append files found in ``BBFILES``.
One common convention is to use the recipe filename to define pieces of
metadata. For example, in ``bitbake.conf`` the recipe name and version
are used to set the variables :term:`PN` and
:term:`PV`: ::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
In this example, a recipe called "something_1.2.3.bb" would set
``PN`` to "something" and ``PV`` to "1.2.3".
By the time parsing is complete for a recipe, BitBake has a list of
tasks that the recipe defines and a set of data consisting of keys and
values as well as dependency information about the tasks.
BitBake does not need all of this information. It only needs a small
subset of the information to make decisions about the recipe.
Consequently, BitBake caches the values in which it is interested and
does not store the rest of the information. Experience has shown it is
faster to re-parse the metadata than to try and write it out to the disk
and then reload it.
Where possible, subsequent BitBake commands reuse this cache of recipe
information. The validity of this cache is determined by first computing
a checksum of the base configuration data (see
:term:`BB_HASHCONFIG_WHITELIST`) and
then checking if the checksum matches. If that checksum matches what is
in the cache and the recipe and class files have not changed, BitBake is
able to use the cache. BitBake then reloads the cached information about
the recipe instead of reparsing it from scratch.
Recipe file collections exist to allow the user to have multiple
repositories of ``.bb`` files that contain the same exact package. For
example, one could easily use them to make one's own local copy of an
upstream repository, but with custom modifications that one does not
want upstream. Here is an example: ::
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5" BBFILE_PRIORITY_local = "10"
.. note::
The layers mechanism is now the preferred method of collecting code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
.. _bb-bitbake-providers:
Providers
=========
Assuming BitBake has been instructed to execute a target and that all
the recipe files have been parsed, BitBake starts to figure out how to
build the target. BitBake looks through the ``PROVIDES`` list for each
of the recipes. A ``PROVIDES`` list is the list of names by which the
recipe can be known. Each recipe's ``PROVIDES`` list is created
implicitly through the recipe's :term:`PN` variable and
explicitly through the recipe's :term:`PROVIDES`
variable, which is optional.
When a recipe uses ``PROVIDES``, that recipe's functionality can be
found under an alternative name or names other than the implicit ``PN``
name. As an example, suppose a recipe named ``keyboard_1.0.bb``
contained the following: ::
PROVIDES += "fullkeyboard"
The ``PROVIDES``
list for this recipe becomes "keyboard", which is implicit, and
"fullkeyboard", which is explicit. Consequently, the functionality found
in ``keyboard_1.0.bb`` can be found under two different names.
.. _bb-bitbake-preferences:
Preferences
===========
The ``PROVIDES`` list is only part of the solution for figuring out a
target's recipes. Because targets might have multiple providers, BitBake
needs to prioritize providers by determining provider preferences.
A common example in which a target has multiple providers is
"virtual/kernel", which is on the ``PROVIDES`` list for each kernel
recipe. Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file: ::
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
The default :term:`PREFERRED_PROVIDER` is the provider
with the same name as the target. BitBake iterates through each target
it needs to build and resolves them and their dependencies using this
process.
Understanding how providers are chosen is made complicated by the fact
that multiple versions might exist for a given provider. BitBake
defaults to the highest version of a provider. Version comparisons are
made using the same method as Debian. You can use the
:term:`PREFERRED_VERSION` variable to
specify a particular version. You can influence the order by using the
:term:`DEFAULT_PREFERENCE` variable.
By default, files have a preference of "0". Setting
``DEFAULT_PREFERENCE`` to "-1" makes the recipe unlikely to be used
unless it is explicitly referenced. Setting ``DEFAULT_PREFERENCE`` to
"1" makes it likely the recipe is used. ``PREFERRED_VERSION`` overrides
any ``DEFAULT_PREFERENCE`` setting. ``DEFAULT_PREFERENCE`` is often used
to mark newer and more experimental recipe versions until they have
undergone sufficient testing to be considered stable.
When there are multiple "versions" of a given recipe, BitBake defaults
to selecting the most recent version, unless otherwise specified. If the
recipe in question has a
:term:`DEFAULT_PREFERENCE` set lower than
the other recipes (default is 0), then it will not be selected. This
allows the person or persons maintaining the repository of recipe files
to specify their preference for the default selected version.
Additionally, the user can specify their preferred version.
If the first recipe is named ``a_1.1.bb``, then the
:term:`PN` variable will be set to "a", and the
:term:`PV` variable will be set to 1.1.
Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by
default. However, if you define the following variable in a ``.conf``
file that BitBake parses, you can change that preference: ::
PREFERRED_VERSION_a = "1.1"
.. note::
It is common for a recipe to provide two versions -- a stable,
numbered (and preferred) version, and a version that is automatically
checked out from a source code repository that is considered more
"bleeding edge" but can be selected only explicitly.
For example, in the OpenEmbedded codebase, there is a standard,
versioned recipe file for BusyBox, ``busybox_1.22.1.bb``, but there
is also a Git-based version, ``busybox_git.bb``, which explicitly
contains the line ::
DEFAULT_PREFERENCE = "-1"
to ensure that the
numbered, stable version is always preferred unless the developer
selects otherwise.
.. _bb-bitbake-dependencies:
Dependencies
============
Each target BitBake builds consists of multiple tasks such as ``fetch``,
``unpack``, ``patch``, ``configure``, and ``compile``. For best
performance on multi-core systems, BitBake considers each task as an
independent entity with its own set of dependencies.
Dependencies are defined through several variables. You can find
information about variables BitBake uses in the
:doc:`bitbake-user-manual-ref-variables` near the end of this manual. At a
basic level, it is sufficient to know that BitBake uses the
:term:`DEPENDS` and
:term:`RDEPENDS` variables when calculating
dependencies.
For more information on how BitBake handles dependencies, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:Dependencies`
section.
.. _ref-bitbake-tasklist:
The Task List
=============
Based on the generated list of providers and the dependency information,
BitBake can now calculate exactly what tasks it needs to run and in what
order it needs to run them. The
:ref:`bitbake-user-manual/bitbake-user-manual-execution:executing tasks`
section has more information on how BitBake chooses which task to
execute next.
The build now starts with BitBake forking off threads up to the limit
set in the :term:`BB_NUMBER_THREADS`
variable. BitBake continues to fork threads as long as there are tasks
ready to run, those tasks have all their dependencies met, and the
thread threshold has not been exceeded.
It is worth noting that you can greatly speed up the build time by
properly setting the ``BB_NUMBER_THREADS`` variable.
As each task completes, a timestamp is written to the directory
specified by the :term:`STAMP` variable. On subsequent
runs, BitBake looks in the build directory within ``tmp/stamps`` and
does not rerun tasks that are already completed unless a timestamp is
found to be invalid. Currently, invalid timestamps are only considered
on a per recipe file basis. So, for example, if the configure stamp has
a timestamp greater than the compile timestamp for a given target, then
the compile task would rerun. Running the compile task again, however,
has no effect on other providers that depend on that target.
The exact format of the stamps is partly configurable. In modern
versions of BitBake, a hash is appended to the stamp so that if the
configuration changes, the stamp becomes invalid and the task is
automatically rerun. This hash, or signature used, is governed by the
signature policy that is configured (see the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:checksums (signatures)`
section for information). It is also
possible to append extra metadata to the stamp using the
``[stamp-extra-info]`` task flag. For example, OpenEmbedded uses this
flag to make some tasks machine-specific.
.. note::
Some tasks are marked as "nostamp" tasks. No timestamp file is
created when these tasks are run. Consequently, "nostamp" tasks are
always rerun.
For more information on tasks, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:tasks` section.
Executing Tasks
===============
Tasks can be either a shell task or a Python task. For shell tasks,
BitBake writes a shell script to
``${``\ :term:`T`\ ``}/run.do_taskname.pid`` and then
executes the script. The generated shell script contains all the
exported variables, and the shell functions with all variables expanded.
Output from the shell script goes to the file
``${T}/log.do_taskname.pid``. Looking at the expanded shell functions in
the run file and the output in the log files is a useful debugging
technique.
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal. Future versions of BitBake will
write the functions to files similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
The order in which BitBake runs the tasks is controlled by its task
scheduler. It is possible to configure the scheduler and define custom
implementations for specific use cases. For more information, see these
variables that control the behavior:
- :term:`BB_SCHEDULER`
- :term:`BB_SCHEDULERS`
It is possible to have functions run before and after a task's main
function. This is done using the ``[prefuncs]`` and ``[postfuncs]``
flags of the task that lists the functions to run.
.. _checksums:
Checksums (Signatures)
======================
A checksum is a unique signature of a task's inputs. The signature of a
task can be used to determine if a task needs to be run. Because it is a
change in a task's inputs that triggers running the task, BitBake needs
to detect all the inputs to a given task. For shell tasks, this turns
out to be fairly easy because BitBake generates a "run" shell script for
each task and it is possible to create a checksum that gives you a good
idea of when the task's data changes.
To complicate the problem, some things should not be included in the
checksum. First, there is the actual specific build path of a given task
- the working directory. It does not matter if the working directory
changes because it should not affect the output for target packages. The
simplistic approach for excluding the working directory is to set it to
some fixed value and create the checksum for the "run" script. BitBake
goes one step better and uses the
:term:`BB_HASHBASE_WHITELIST` variable
to define a list of variables that should never be included when
generating the signatures.
Another problem results from the "run" scripts containing functions that
might or might not get called. The incremental build solution contains
code that figures out dependencies between shell functions. This code is
used to prune the "run" scripts down to the minimum set, thereby
alleviating this problem and making the "run" scripts much more readable
as a bonus.
So far we have solutions for shell scripts. What about Python tasks? The
same approach applies even though these tasks are more difficult. The
process needs to figure out what variables a Python function accesses
and what functions it calls. Again, the incremental build solution
contains code that first figures out the variable and function
dependencies, and then creates a checksum for the data used as the input
to the task.
Like the working directory case, situations exist where dependencies
should be ignored. For these cases, you can instruct the build process
to ignore a dependency by using a line like the following: ::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
This example ensures that the
``PACKAGE_ARCHS`` variable does not depend on the value of ``MACHINE``,
even if it does reference it.
Equally, there are cases where we need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
following: ::
PACKAGE_ARCHS[vardeps] = "MACHINE"
This example explicitly
adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies. When running in debug mode (i.e. using
``-DDD``), BitBake produces output when it discovers something for which
it cannot figure out dependencies.
Thus far, this section has limited discussion to the direct inputs into
a task. Information based on direct inputs is referred to as the
"basehash" in the code. However, there is still the question of a task's
indirect inputs - the things that were already built and present in the
build directory. The checksum (or signature) for a particular task needs
to add the hashes of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision. However, the
effect is to generate a master checksum that combines the basehash and
the hashes of the task's dependencies.
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced. Within the BitBake
configuration file, we can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes - variables never
included in any checksum. This example uses variables from OpenEmbedded
to help illustrate the concept: ::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
The previous example excludes the work directory, which is part of
``TMPDIR``.
The rules for deciding which hashes of dependent tasks to include
through dependency chains are more complex and are generally
accomplished with a Python function. The code in
``meta/lib/oe/sstatesig.py`` shows two examples of this and also
illustrates how you can insert your own policy into the system if so
desired. This file defines the two basic signature generators
OpenEmbedded-Core uses: "OEBasic" and "OEBasicHash". By default, there
is a dummy "noop" signature handler enabled in BitBake. This means that
behavior is unchanged from previous versions. ``OE-Core`` uses the
"OEBasicHash" signature handler by default through this setting in the
``bitbake.conf`` file: ::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same as the "OEBasic"
version but adds the task hash to the stamp files. This results in any
metadata change that changes the task hash, automatically causing the
task to be run again. This removes the need to bump
:term:`PR` values, and changes to metadata automatically
ripple across the build.
It is also worth noting that the end result of these signature
generators is to make some dependency and hash information available to
the build. This information includes:
- ``BB_BASEHASH_task-``\ *taskname*: The base hashes for each task in the
recipe.
- ``BB_BASEHASH_``\ *filename:taskname*: The base hashes for each
dependent task.
- ``BBHASHDEPS_``\ *filename:taskname*: The task dependencies for
each task.
- ``BB_TASKHASH``: The hash of the currently running task.
It is worth noting that BitBake's "-S" option lets you debug BitBake's
processing of signatures. The options passed to -S allow different
debugging modes to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler itself. The
simplest parameter to pass is "none", which causes a set of signature
information to be written out into ``STAMPS_DIR`` corresponding to the
targets specified. The other currently available parameter is
"printdiff", which causes BitBake to try to establish the closest
signature match it can (e.g. in the sstate cache) and then run
``bitbake-diffsigs`` over the matches to determine the stamps and delta
where these two stamp trees diverge.
.. note::
It is likely that future versions of BitBake will provide other
signature handlers triggered through additional "-S" parameters.
You can find more information on checksum metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Setscene
========
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake the
luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
BitBake needs to have reliable data indicating whether or not an
artifact is compatible. Signatures, described in the previous section,
provide an ideal way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
If an object can be reused, the problem then becomes how to replace a
given task or set of tasks with the pre-built artifact. BitBake solves
the problem with the "setscene" process.
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets. If cached
information is available, BitBake uses this information instead of
running the main tasks.
BitBake first calls the function defined by the
:term:`BB_HASHCHECK_FUNCTION` variable
with a list of tasks and corresponding hashes it wants to build. This
function is designed to be fast and returns a list of the tasks for
which it believes in can obtain artifacts.
Next, for each of the tasks that were returned as possibilities, BitBake
executes a setscene version of the task that the possible artifact
covers. Setscene versions of a task have the string "_setscene" appended
to the task name. So, for example, the task with the name ``xxx`` has a
setscene task named ``xxx_setscene``. The setscene version of the task
executes and provides the necessary artifacts returning either success
or failure.
As previously mentioned, an artifact can cover more than one task. For
example, it is pointless to obtain a compiler if you already have the
compiled binary. To handle this, BitBake calls the
:term:`BB_SETSCENE_DEPVALID` function for
each successful setscene task to know whether or not it needs to obtain
the dependencies of that task.
Finally, after all the setscene tasks have executed, BitBake calls the
function listed in
:term:`BB_SETSCENE_VERIFY_FUNCTION2`
with the list of tasks BitBake thinks has been "covered". The metadata
can then ensure that this list is correct and can inform BitBake that it
wants specific tasks to be run regardless of the setscene result.
You can find more information on setscene metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Logging
=======
In addition to the standard command line option to control how verbose
builds are when execute, bitbake also supports user defined
configuration of the `Python
logging <https://docs.python.org/3/library/logging.html>`__ facilities
through the :term:`BB_LOGCONFIG` variable. This
variable defines a json or yaml `logging
configuration <https://docs.python.org/3/library/logging.config.html>`__
that will be intelligently merged into the default configuration. The
logging configuration is merged using the following rules:
- The user defined configuration will completely replace the default
configuration if top level key ``bitbake_merge`` is set to the value
``False``. In this case, all other rules are ignored.
- The user configuration must have a top level ``version`` which must
match the value of the default configuration.
- Any keys defined in the ``handlers``, ``formatters``, or ``filters``,
will be merged into the same section in the default configuration,
with the user specified keys taking replacing a default one if there
is a conflict. In practice, this means that if both the default
configuration and user configuration specify a handler named
``myhandler``, the user defined one will replace the default. To
prevent the user from inadvertently replacing a default handler,
formatter, or filter, all of the default ones are named with a prefix
of "``BitBake.``"
- If a logger is defined by the user with the key ``bitbake_merge`` set
to ``False``, that logger will be completely replaced by user
configuration. In this case, no other rules will apply to that
logger.
- All user defined ``filter`` and ``handlers`` properties for a given
logger will be merged with corresponding properties from the default
logger. For example, if the user configuration adds a filter called
``myFilter`` to the ``BitBake.SigGen``, and the default configuration
adds a filter called ``BitBake.defaultFilter``, both filters will be
applied to the logger
As an example, consider the following user logging configuration file
which logs all Hash Equivalence related messages of VERBOSE or higher to
a file called ``hashequiv.log`` ::
{
"version": 1,
"handlers": {
"autobuilderlog": {
"class": "logging.FileHandler",
"formatter": "logfileFormatter",
"level": "DEBUG",
"filename": "hashequiv.log",
"mode": "w"
}
},
"formatters": {
"logfileFormatter": {
"format": "%(name)s: %(levelname)s: %(message)s"
}
},
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
}
}
}

View File

@@ -0,0 +1,932 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id="bitbake-user-manual-execution">
<title>Execution</title>
<para>
The primary purpose for running BitBake is to produce some kind
of output such as a single installable package, a kernel, a software
development kit, or even a full, board-specific bootable Linux image,
complete with bootloader, kernel, and root filesystem.
Of course, you can execute the <filename>bitbake</filename>
command with options that cause it to execute single tasks,
compile single recipe files, capture or clear data, or simply
return information about the execution environment.
</para>
<para>
This chapter describes BitBake's execution process from start
to finish when you use it to create an image.
The execution process is launched using the following command
form:
<literallayout class='monospaced'>
$ bitbake <replaceable>target</replaceable>
</literallayout>
For information on the BitBake command and its options,
see
"<link linkend='bitbake-user-manual-command'>The BitBake Command</link>"
section.
<note>
<para>
Prior to executing BitBake, you should take advantage of available
parallel thread execution on your build host by setting the
<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
variable in your project's <filename>local.conf</filename>
configuration file.
</para>
<para>
A common method to determine this value for your build host is to run
the following:
<literallayout class='monospaced'>
$ grep processor /proc/cpuinfo
</literallayout>
This command returns the number of processors, which takes into
account hyper-threading.
Thus, a quad-core build host with hyper-threading most likely
shows eight processors, which is the value you would then assign to
<filename>BB_NUMBER_THREADS</filename>.
</para>
<para>
A possibly simpler solution is that some Linux distributions
(e.g. Debian and Ubuntu) provide the <filename>ncpus</filename> command.
</para>
</note>
</para>
<section id='parsing-the-base-configuration-metadata'>
<title>Parsing the Base Configuration Metadata</title>
<para>
The first thing BitBake does is parse base configuration
metadata.
Base configuration metadata consists of your project's
<filename>bblayers.conf</filename> file to determine what
layers BitBake needs to recognize, all necessary
<filename>layer.conf</filename> files (one from each layer),
and <filename>bitbake.conf</filename>.
The data itself is of various types:
<itemizedlist>
<listitem><para><emphasis>Recipes:</emphasis>
Details about particular pieces of software.
</para></listitem>
<listitem><para><emphasis>Class Data:</emphasis>
An abstraction of common build information
(e.g. how to build a Linux kernel).
</para></listitem>
<listitem><para><emphasis>Configuration Data:</emphasis>
Machine-specific settings, policy decisions,
and so forth.
Configuration data acts as the glue to bind everything
together.</para></listitem>
</itemizedlist>
</para>
<para>
The <filename>layer.conf</filename> files are used to
construct key variables such as
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
and
<link linkend='var-BBFILES'><filename>BBFILES</filename></link>.
<filename>BBPATH</filename> is used to search for
configuration and class files under the
<filename>conf</filename> and <filename>classes</filename>
directories, respectively.
<filename>BBFILES</filename> is used to locate both recipe
and recipe append files
(<filename>.bb</filename> and <filename>.bbappend</filename>).
If there is no <filename>bblayers.conf</filename> file,
it is assumed the user has set the <filename>BBPATH</filename>
and <filename>BBFILES</filename> directly in the environment.
</para>
<para>
Next, the <filename>bitbake.conf</filename> file is located
using the <filename>BBPATH</filename> variable that was
just constructed.
The <filename>bitbake.conf</filename> file may also include other
configuration files using the
<filename>include</filename> or
<filename>require</filename> directives.
</para>
<para>
Prior to parsing configuration files, Bitbake looks
at certain variables, including:
<itemizedlist>
<listitem><para>
<link linkend='var-BB_ENV_WHITELIST'><filename>BB_ENV_WHITELIST</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_ENV_EXTRAWHITE'><filename>BB_ENV_EXTRAWHITE</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_PRESERVE_ENV'><filename>BB_PRESERVE_ENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_ORIGENV'><filename>BB_ORIGENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BITBAKE_UI'><filename>BITBAKE_UI</filename></link>
</para></listitem>
</itemizedlist>
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution.
By default, BitBake cleans the environment variables and provides tight
control over the shell execution environment.
However, through the use of these first four variables, you can
apply your control regarding the
environment variables allowed to be used by BitBake in the shell
during execution of tasks.
See the
"<link linkend='passing-information-into-the-build-task-environment'>Passing Information Into the Build Task Environment</link>"
section and the information about these variables in the
variable glossary for more information on how they work and
on how to use them.
</para>
<para>
The base configuration metadata is global
and therefore affects all recipes and tasks that are executed.
</para>
<para>
BitBake first searches the current working directory for an
optional <filename>conf/bblayers.conf</filename> configuration file.
This file is expected to contain a
<link linkend='var-BBLAYERS'><filename>BBLAYERS</filename></link>
variable that is a space-delimited list of 'layer' directories.
Recall that if BitBake cannot find a <filename>bblayers.conf</filename>
file, then it is assumed the user has set the <filename>BBPATH</filename>
and <filename>BBFILES</filename> variables directly in the environment.
</para>
<para>
For each directory (layer) in this list, a <filename>conf/layer.conf</filename>
file is located and parsed with the
<link linkend='var-LAYERDIR'><filename>LAYERDIR</filename></link>
variable being set to the directory where the layer was found.
The idea is these files automatically set up
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
and other variables correctly for a given build directory.
</para>
<para>
BitBake then expects to find the <filename>conf/bitbake.conf</filename>
file somewhere in the user-specified <filename>BBPATH</filename>.
That configuration file generally has include directives to pull
in any other metadata such as files specific to the architecture,
the machine, the local environment, and so forth.
</para>
<para>
Only variable definitions and include directives are allowed
in BitBake <filename>.conf</filename> files.
Some variables directly influence BitBake's behavior.
These variables might have been set from the environment
depending on the environment variables previously
mentioned or set in the configuration files.
The
"<link linkend='ref-variables-glos'>Variables Glossary</link>"
chapter presents a full list of variables.
</para>
<para>
After parsing configuration files, BitBake uses its rudimentary
inheritance mechanism, which is through class files, to inherit
some standard classes.
BitBake parses a class when the inherit directive responsible
for getting that class is encountered.
</para>
<para>
The <filename>base.bbclass</filename> file is always included.
Other classes that are specified in the configuration using the
<link linkend='var-INHERIT'><filename>INHERIT</filename></link>
variable are also included.
BitBake searches for class files in a
<filename>classes</filename> subdirectory under
the paths in <filename>BBPATH</filename> in the same way as
configuration files.
</para>
<para>
A good way to get an idea of the configuration files and
the class files used in your execution environment is to
run the following BitBake command:
<literallayout class='monospaced'>
$ bitbake -e > mybb.log
</literallayout>
Examining the top of the <filename>mybb.log</filename>
shows you the many configuration files and class files
used in your execution environment.
</para>
<note>
<para>
You need to be aware of how BitBake parses curly braces.
If a recipe uses a closing curly brace within the function and
the character has no leading spaces, BitBake produces a parsing
error.
If you use a pair of curly braces in a shell function, the
closing curly brace must not be located at the start of the line
without leading spaces.
</para>
<para>
Here is an example that causes BitBake to produce a parsing
error:
<literallayout class='monospaced'>
fakeroot create_shar() {
cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" at the start of the line causes a parsing error ######
}
EOF
}
</literallayout>
Writing the recipe this way avoids the error:
<literallayout class='monospaced'>
fakeroot create_shar() {
cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
######The following "}" with a leading space at the start of the line avoids the error ######
}
EOF
}
</literallayout>
</para>
</note>
</section>
<section id='locating-and-parsing-recipes'>
<title>Locating and Parsing Recipes</title>
<para>
During the configuration phase, BitBake will have set
<link linkend='var-BBFILES'><filename>BBFILES</filename></link>.
BitBake now uses it to construct a list of recipes to parse,
along with any append files (<filename>.bbappend</filename>)
to apply.
<filename>BBFILES</filename> is a space-separated list of
available files and supports wildcards.
An example would be:
<literallayout class='monospaced'>
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
</literallayout>
BitBake parses each recipe and append file located
with <filename>BBFILES</filename> and stores the values of
various variables into the datastore.
<note>
Append files are applied in the order they are encountered in
<filename>BBFILES</filename>.
</note>
For each file, a fresh copy of the base configuration is
made, then the recipe is parsed line by line.
Any inherit statements cause BitBake to find and
then parse class files (<filename>.bbclass</filename>)
using
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
as the search path.
Finally, BitBake parses in order any append files found in
<filename>BBFILES</filename>.
</para>
<para>
One common convention is to use the recipe filename to define
pieces of metadata.
For example, in <filename>bitbake.conf</filename> the recipe
name and version are used to set the variables
<link linkend='var-PN'><filename>PN</filename></link> and
<link linkend='var-PV'><filename>PV</filename></link>:
<literallayout class='monospaced'>
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
</literallayout>
In this example, a recipe called "something_1.2.3.bb" would set
<filename>PN</filename> to "something" and
<filename>PV</filename> to "1.2.3".
</para>
<para>
By the time parsing is complete for a recipe, BitBake
has a list of tasks that the recipe defines and a set of
data consisting of keys and values as well as
dependency information about the tasks.
</para>
<para>
BitBake does not need all of this information.
It only needs a small subset of the information to make
decisions about the recipe.
Consequently, BitBake caches the values in which it is
interested and does not store the rest of the information.
Experience has shown it is faster to re-parse the metadata than to
try and write it out to the disk and then reload it.
</para>
<para>
Where possible, subsequent BitBake commands reuse this cache of
recipe information.
The validity of this cache is determined by first computing a
checksum of the base configuration data (see
<link linkend='var-BB_HASHCONFIG_WHITELIST'><filename>BB_HASHCONFIG_WHITELIST</filename></link>)
and then checking if the checksum matches.
If that checksum matches what is in the cache and the recipe
and class files have not changed, Bitbake is able to use
the cache.
BitBake then reloads the cached information about the recipe
instead of reparsing it from scratch.
</para>
<para>
Recipe file collections exist to allow the user to
have multiple repositories of
<filename>.bb</filename> files that contain the same
exact package.
For example, one could easily use them to make one's
own local copy of an upstream repository, but with
custom modifications that one does not want upstream.
Here is an example:
<literallayout class='monospaced'>
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"
</literallayout>
<note>
The layers mechanism is now the preferred method of collecting
code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
</note>
</para>
</section>
<section id='bb-bitbake-providers'>
<title>Providers</title>
<para>
Assuming BitBake has been instructed to execute a target
and that all the recipe files have been parsed, BitBake
starts to figure out how to build the target.
BitBake looks through the <filename>PROVIDES</filename> list
for each of the recipes.
A <filename>PROVIDES</filename> list is the list of names by which
the recipe can be known.
Each recipe's <filename>PROVIDES</filename> list is created
implicitly through the recipe's
<link linkend='var-PN'><filename>PN</filename></link> variable
and explicitly through the recipe's
<link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
variable, which is optional.
</para>
<para>
When a recipe uses <filename>PROVIDES</filename>, that recipe's
functionality can be found under an alternative name or names other
than the implicit <filename>PN</filename> name.
As an example, suppose a recipe named <filename>keyboard_1.0.bb</filename>
contained the following:
<literallayout class='monospaced'>
PROVIDES += "fullkeyboard"
</literallayout>
The <filename>PROVIDES</filename> list for this recipe becomes
"keyboard", which is implicit, and "fullkeyboard", which is explicit.
Consequently, the functionality found in
<filename>keyboard_1.0.bb</filename> can be found under two
different names.
</para>
</section>
<section id='bb-bitbake-preferences'>
<title>Preferences</title>
<para>
The <filename>PROVIDES</filename> list is only part of the solution
for figuring out a target's recipes.
Because targets might have multiple providers, BitBake needs
to prioritize providers by determining provider preferences.
</para>
<para>
A common example in which a target has multiple providers
is "virtual/kernel", which is on the
<filename>PROVIDES</filename> list for each kernel recipe.
Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file:
<literallayout class='monospaced'>
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
</literallayout>
The default
<link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
is the provider with the same name as the target.
Bitbake iterates through each target it needs to build and
resolves them and their dependencies using this process.
</para>
<para>
Understanding how providers are chosen is made complicated by the fact
that multiple versions might exist for a given provider.
BitBake defaults to the highest version of a provider.
Version comparisons are made using the same method as Debian.
You can use the
<link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link>
variable to specify a particular version.
You can influence the order by using the
<link linkend='var-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link>
variable.
</para>
<para>
By default, files have a preference of "0".
Setting <filename>DEFAULT_PREFERENCE</filename> to "-1" makes the
recipe unlikely to be used unless it is explicitly referenced.
Setting <filename>DEFAULT_PREFERENCE</filename> to "1" makes it
likely the recipe is used.
<filename>PREFERRED_VERSION</filename> overrides any
<filename>DEFAULT_PREFERENCE</filename> setting.
<filename>DEFAULT_PREFERENCE</filename> is often used to mark newer
and more experimental recipe versions until they have undergone
sufficient testing to be considered stable.
</para>
<para>
When there are multiple “versions” of a given recipe,
BitBake defaults to selecting the most recent
version, unless otherwise specified.
If the recipe in question has a
<link linkend='var-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link>
set lower than the other recipes (default is 0), then
it will not be selected.
This allows the person or persons maintaining
the repository of recipe files to specify
their preference for the default selected version.
Additionally, the user can specify their preferred version.
</para>
<para>
If the first recipe is named <filename>a_1.1.bb</filename>, then the
<link linkend='var-PN'><filename>PN</filename></link> variable
will be set to “a”, and the
<link linkend='var-PV'><filename>PV</filename></link>
variable will be set to 1.1.
</para>
<para>
Thus, if a recipe named <filename>a_1.2.bb</filename> exists, BitBake
will choose 1.2 by default.
However, if you define the following variable in a
<filename>.conf</filename> file that BitBake parses, you
can change that preference:
<literallayout class='monospaced'>
PREFERRED_VERSION_a = "1.1"
</literallayout>
</para>
<note>
<para>
It is common for a recipe to provide two versions -- a stable,
numbered (and preferred) version, and a version that is
automatically checked out from a source code repository that
is considered more "bleeding edge" but can be selected only
explicitly.
</para>
<para>
For example, in the OpenEmbedded codebase, there is a standard,
versioned recipe file for BusyBox,
<filename>busybox_1.22.1.bb</filename>,
but there is also a Git-based version,
<filename>busybox_git.bb</filename>, which explicitly contains the line
<literallayout class='monospaced'>
DEFAULT_PREFERENCE = "-1"
</literallayout>
to ensure that the numbered, stable version is always preferred
unless the developer selects otherwise.
</para>
</note>
</section>
<section id='bb-bitbake-dependencies'>
<title>Dependencies</title>
<para>
Each target BitBake builds consists of multiple tasks such as
<filename>fetch</filename>, <filename>unpack</filename>,
<filename>patch</filename>, <filename>configure</filename>,
and <filename>compile</filename>.
For best performance on multi-core systems, BitBake considers each
task as an independent
entity with its own set of dependencies.
</para>
<para>
Dependencies are defined through several variables.
You can find information about variables BitBake uses in
the <link linkend='ref-variables-glos'>Variables Glossary</link>
near the end of this manual.
At a basic level, it is sufficient to know that BitBake uses the
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link> and
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> variables when
calculating dependencies.
</para>
<para>
For more information on how BitBake handles dependencies, see the
"<link linkend='dependencies'>Dependencies</link>" section.
</para>
</section>
<section id='ref-bitbake-tasklist'>
<title>The Task List</title>
<para>
Based on the generated list of providers and the dependency information,
BitBake can now calculate exactly what tasks it needs to run and in what
order it needs to run them.
The
"<link linkend='executing-tasks'>Executing Tasks</link>" section has more
information on how BitBake chooses which task to execute next.
</para>
<para>
The build now starts with BitBake forking off threads up to the limit set in the
<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
variable.
BitBake continues to fork threads as long as there are tasks ready to run,
those tasks have all their dependencies met, and the thread threshold has not been
exceeded.
</para>
<para>
It is worth noting that you can greatly speed up the build time by properly setting
the <filename>BB_NUMBER_THREADS</filename> variable.
</para>
<para>
As each task completes, a timestamp is written to the directory specified by the
<link linkend='var-STAMP'><filename>STAMP</filename></link> variable.
On subsequent runs, BitBake looks in the build directory within
<filename>tmp/stamps</filename> and does not rerun
tasks that are already completed unless a timestamp is found to be invalid.
Currently, invalid timestamps are only considered on a per
recipe file basis.
So, for example, if the configure stamp has a timestamp greater than the
compile timestamp for a given target, then the compile task would rerun.
Running the compile task again, however, has no effect on other providers
that depend on that target.
</para>
<para>
The exact format of the stamps is partly configurable.
In modern versions of BitBake, a hash is appended to the
stamp so that if the configuration changes, the stamp becomes
invalid and the task is automatically rerun.
This hash, or signature used, is governed by the signature policy
that is configured (see the
"<link linkend='checksums'>Checksums (Signatures)</link>"
section for information).
It is also possible to append extra metadata to the stamp using
the <filename>[stamp-extra-info]</filename> task flag.
For example, OpenEmbedded uses this flag to make some tasks machine-specific.
</para>
<note>
Some tasks are marked as "nostamp" tasks.
No timestamp file is created when these tasks are run.
Consequently, "nostamp" tasks are always rerun.
</note>
<para>
For more information on tasks, see the
"<link linkend='tasks'>Tasks</link>" section.
</para>
</section>
<section id='executing-tasks'>
<title>Executing Tasks</title>
<para>
Tasks can be either a shell task or a Python task.
For shell tasks, BitBake writes a shell script to
<filename>${</filename><link linkend='var-T'><filename>T</filename></link><filename>}/run.do_taskname.pid</filename>
and then executes the script.
The generated shell script contains all the exported variables,
and the shell functions with all variables expanded.
Output from the shell script goes to the file
<filename>${T}/log.do_taskname.pid</filename>.
Looking at the expanded shell functions in the run file and
the output in the log files is a useful debugging technique.
</para>
<para>
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal.
Future versions of BitBake will write the functions to files
similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
</para>
<para>
The order in which BitBake runs the tasks is controlled by its
task scheduler.
It is possible to configure the scheduler and define custom
implementations for specific use cases.
For more information, see these variables that control the
behavior:
<itemizedlist>
<listitem><para>
<link linkend='var-BB_SCHEDULER'><filename>BB_SCHEDULER</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_SCHEDULERS'><filename>BB_SCHEDULERS</filename></link>
</para></listitem>
</itemizedlist>
It is possible to have functions run before and after a task's main
function.
This is done using the <filename>[prefuncs]</filename>
and <filename>[postfuncs]</filename> flags of the task
that lists the functions to run.
</para>
</section>
<section id='checksums'>
<title>Checksums (Signatures)</title>
<para>
A checksum is a unique signature of a task's inputs.
The signature of a task can be used to determine if a task
needs to be run.
Because it is a change in a task's inputs that triggers running
the task, BitBake needs to detect all the inputs to a given task.
For shell tasks, this turns out to be fairly easy because
BitBake generates a "run" shell script for each task and
it is possible to create a checksum that gives you a good idea of when
the task's data changes.
</para>
<para>
To complicate the problem, some things should not be included in
the checksum.
First, there is the actual specific build path of a given task -
the working directory.
It does not matter if the working directory changes because it should not
affect the output for target packages.
The simplistic approach for excluding the working directory is to set
it to some fixed value and create the checksum for the "run" script.
BitBake goes one step better and uses the
<link linkend='var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></link>
variable to define a list of variables that should never be included
when generating the signatures.
</para>
<para>
Another problem results from the "run" scripts containing functions that
might or might not get called.
The incremental build solution contains code that figures out dependencies
between shell functions.
This code is used to prune the "run" scripts down to the minimum set,
thereby alleviating this problem and making the "run" scripts much more
readable as a bonus.
</para>
<para>
So far we have solutions for shell scripts.
What about Python tasks?
The same approach applies even though these tasks are more difficult.
The process needs to figure out what variables a Python function accesses
and what functions it calls.
Again, the incremental build solution contains code that first figures out
the variable and function dependencies, and then creates a checksum for the data
used as the input to the task.
</para>
<para>
Like the working directory case, situations exist where dependencies
should be ignored.
For these cases, you can instruct the build process to ignore a dependency
by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
</literallayout>
This example ensures that the <filename>PACKAGE_ARCHS</filename> variable does not
depend on the value of <filename>MACHINE</filename>, even if it does reference it.
</para>
<para>
Equally, there are cases where we need to add dependencies BitBake
is not able to find.
You can accomplish this by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardeps] = "MACHINE"
</literallayout>
This example explicitly adds the <filename>MACHINE</filename> variable as a
dependency for <filename>PACKAGE_ARCHS</filename>.
</para>
<para>
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies.
When running in debug mode (i.e. using <filename>-DDD</filename>), BitBake
produces output when it discovers something for which it cannot figure out
dependencies.
</para>
<para>
Thus far, this section has limited discussion to the direct inputs into a task.
Information based on direct inputs is referred to as the "basehash" in the
code.
However, there is still the question of a task's indirect inputs - the
things that were already built and present in the build directory.
The checksum (or signature) for a particular task needs to add the hashes
of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision.
However, the effect is to generate a master checksum that combines the basehash
and the hashes of the task's dependencies.
</para>
<para>
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced.
Within the BitBake configuration file, we can give BitBake some extra information
to help it construct the basehash.
The following statement effectively results in a list of global variable
dependency excludes - variables never included in any checksum.
This example uses variables from OpenEmbedded to help illustrate
the concept:
<literallayout class='monospaced'>
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
</literallayout>
The previous example excludes the work directory, which is part of
<filename>TMPDIR</filename>.
</para>
<para>
The rules for deciding which hashes of dependent tasks to include through
dependency chains are more complex and are generally accomplished with a
Python function.
The code in <filename>meta/lib/oe/sstatesig.py</filename> shows two examples
of this and also illustrates how you can insert your own policy into the system
if so desired.
This file defines the two basic signature generators OpenEmbedded Core
uses: "OEBasic" and "OEBasicHash".
By default, there is a dummy "noop" signature handler enabled in BitBake.
This means that behavior is unchanged from previous versions.
<filename>OE-Core</filename> uses the "OEBasicHash" signature handler by default
through this setting in the <filename>bitbake.conf</filename> file:
<literallayout class='monospaced'>
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
</literallayout>
The "OEBasicHash" <filename>BB_SIGNATURE_HANDLER</filename> is the same as the
"OEBasic" version but adds the task hash to the stamp files.
This results in any metadata change that changes the task hash, automatically
causing the task to be run again.
This removes the need to bump
<link linkend='var-PR'><filename>PR</filename></link>
values, and changes to metadata automatically ripple across the build.
</para>
<para>
It is also worth noting that the end result of these signature generators is to
make some dependency and hash information available to the build.
This information includes:
<itemizedlist>
<listitem><para><filename>BB_BASEHASH_task-</filename><replaceable>taskname</replaceable>:
The base hashes for each task in the recipe.
</para></listitem>
<listitem><para><filename>BB_BASEHASH_</filename><replaceable>filename</replaceable><filename>:</filename><replaceable>taskname</replaceable>:
The base hashes for each dependent task.
</para></listitem>
<listitem><para><filename>BBHASHDEPS_</filename><replaceable>filename</replaceable><filename>:</filename><replaceable>taskname</replaceable>:
The task dependencies for each task.
</para></listitem>
<listitem><para><filename>BB_TASKHASH</filename>:
The hash of the currently running task.
</para></listitem>
</itemizedlist>
</para>
<para>
It is worth noting that BitBake's "-S" option lets you
debug Bitbake's processing of signatures.
The options passed to -S allow different debugging modes
to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler
itself.
The simplest parameter to pass is "none", which causes a
set of signature information to be written out into
<filename>STAMPS_DIR</filename>
corresponding to the targets specified.
The other currently available parameter is "printdiff",
which causes BitBake to try to establish the closest
signature match it can (e.g. in the sstate cache) and then
run <filename>bitbake-diffsigs</filename> over the matches
to determine the stamps and delta where these two
stamp trees diverge.
<note>
It is likely that future versions of BitBake will
provide other signature handlers triggered through
additional "-S" parameters.
</note>
</para>
<para>
You can find more information on checksum metadata in the
"<link linkend='task-checksums-and-setscene'>Task Checksums and Setscene</link>"
section.
</para>
</section>
<section id='setscene'>
<title>Setscene</title>
<para>
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake
the luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
</para>
<para>
BitBake needs to have reliable data indicating whether or not an
artifact is compatible.
Signatures, described in the previous section, provide an ideal
way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
</para>
<para>
If an object can be reused, the problem then becomes how to
replace a given task or set of tasks with the pre-built artifact.
BitBake solves the problem with the "setscene" process.
</para>
<para>
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets.
If cached information is available, BitBake uses this information instead of
running the main tasks.
</para>
<para>
BitBake first calls the function defined by the
<link linkend='var-BB_HASHCHECK_FUNCTION'><filename>BB_HASHCHECK_FUNCTION</filename></link>
variable with a list of tasks and corresponding
hashes it wants to build.
This function is designed to be fast and returns a list
of the tasks for which it believes in can obtain artifacts.
</para>
<para>
Next, for each of the tasks that were returned as possibilities,
BitBake executes a setscene version of the task that the possible
artifact covers.
Setscene versions of a task have the string "_setscene" appended to the
task name.
So, for example, the task with the name <filename>xxx</filename> has
a setscene task named <filename>xxx_setscene</filename>.
The setscene version of the task executes and provides the necessary
artifacts returning either success or failure.
</para>
<para>
As previously mentioned, an artifact can cover more than one task.
For example, it is pointless to obtain a compiler if you
already have the compiled binary.
To handle this, BitBake calls the
<link linkend='var-BB_SETSCENE_DEPVALID'><filename>BB_SETSCENE_DEPVALID</filename></link>
function for each successful setscene task to know whether or not it needs
to obtain the dependencies of that task.
</para>
<para>
Finally, after all the setscene tasks have executed, BitBake calls the
function listed in
<link linkend='var-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></link>
with the list of tasks BitBake thinks has been "covered".
The metadata can then ensure that this list is correct and can
inform BitBake that it wants specific tasks to be run regardless
of the setscene result.
</para>
<para>
You can find more information on setscene metadata in the
"<link linkend='task-checksums-and-setscene'>Task Checksums and Setscene</link>"
section.
</para>
</section>
</chapter>

View File

@@ -1,652 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=====================
File Download Support
=====================
|
BitBake's fetch module is a standalone piece of library code that deals
with the intricacies of downloading source code and files from remote
systems. Fetching source code is one of the cornerstones of building
software. As such, this module forms an important part of BitBake.
The current fetch module is called "fetch2" and refers to the fact that
it is the second major version of the API. The original version is
obsolete and has been removed from the codebase. Thus, in all cases,
"fetch" refers to "fetch2" in this manual.
The Download (Fetch)
====================
BitBake takes several steps when fetching source code or files. The
fetcher codebase deals with two distinct processes in order: obtaining
the files from somewhere (cached or otherwise) and then unpacking those
files into a specific location and perhaps in a specific way. Getting
and unpacking the files is often optionally followed by patching.
Patching, however, is not covered by this module.
The code to execute the first part of this process, a fetch, looks
something like the following: ::
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
This code sets up an instance of the fetch class. The instance uses a
space-separated list of URLs from the :term:`SRC_URI`
variable and then calls the ``download`` method to download the files.
The instantiation of the fetch class is usually followed by: ::
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
This code unpacks the downloaded files to the specified by ``WORKDIR``.
.. note::
For convenience, the naming in these examples matches the variables
used by OpenEmbedded. If you want to see the above code in action,
examine the OpenEmbedded class file ``base.bbclass``
.
The ``SRC_URI`` and ``WORKDIR`` variables are not hardcoded into the
fetcher, since those fetcher methods can be (and are) called with
different variable names. In OpenEmbedded for example, the shared state
(sstate) code uses the fetch module to fetch the sstate files.
When the ``download()`` method is called, BitBake tries to resolve the
URLs by looking for source files in a specific search order:
- *Pre-mirror Sites:* BitBake first uses pre-mirrors to try and find
source files. These locations are defined using the
:term:`PREMIRRORS` variable.
- *Source URI:* If pre-mirrors fail, BitBake uses the original URL (e.g
from ``SRC_URI``).
- *Mirror Sites:* If fetch failures occur, BitBake next uses mirror
locations as defined by the :term:`MIRRORS` variable.
For each URL passed to the fetcher, the fetcher calls the submodule that
handles that particular URL type. This behavior can be the source of
some confusion when you are providing URLs for the ``SRC_URI`` variable.
Consider the following two URLs: ::
http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
In the former case, the URL is passed to the ``wget`` fetcher, which does not
understand "git". Therefore, the latter case is the correct form since the Git
fetcher does know how to use HTTP as a transport.
Here are some examples that show commonly used mirror definitions: ::
PREMIRRORS ?= "\
bzr://.*/.\* http://somemirror.org/sources/ \\n \
cvs://.*/.\* http://somemirror.org/sources/ \\n \
git://.*/.\* http://somemirror.org/sources/ \\n \
hg://.*/.\* http://somemirror.org/sources/ \\n \
osc://.*/.\* http://somemirror.org/sources/ \\n \
p4://.*/.\* http://somemirror.org/sources/ \\n \
svn://.*/.\* http://somemirror.org/sources/ \\n"
MIRRORS =+ "\
ftp://.*/.\* http://somemirror.org/sources/ \\n \
http://.*/.\* http://somemirror.org/sources/ \\n \
https://.*/.\* http://somemirror.org/sources/ \\n"
It is useful to note that BitBake
supports cross-URLs. It is possible to mirror a Git repository on an
HTTP server as a tarball. This is what the ``git://`` mapping in the
previous example does.
Since network accesses are slow, BitBake maintains a cache of files
downloaded from the network. Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download directory,
which is specified by the :term:`DL_DIR` variable.
File integrity is of key importance for reproducing builds. For
non-local archive downloads, the fetcher code can verify SHA-256 and MD5
checksums to ensure the archives have been downloaded correctly. You can
specify these checksums by using the ``SRC_URI`` variable with the
appropriate varflags as follows: ::
SRC_URI[md5sum] = "value"
SRC_URI[sha256sum] = "value"
You can also specify the checksums as
parameters on the ``SRC_URI`` as shown below: ::
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
If multiple URIs exist, you can specify the checksums either directly as
in the previous example, or you can name the URLs. The following syntax
shows how you name the URIs: ::
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
After a file has been downloaded and
has had its checksum checked, a ".done" stamp is placed in ``DL_DIR``.
BitBake uses this stamp during subsequent builds to avoid downloading or
comparing a checksum for the file again.
.. note::
It is assumed that local storage is safe from data corruption. If
this were not the case, there would be bigger issues to worry about.
If :term:`BB_STRICT_CHECKSUM` is set, any
download without a checksum triggers an error message. The
:term:`BB_NO_NETWORK` variable can be used to
make any attempted network access a fatal error, which is useful for
checking that mirrors are complete as well as other things.
.. _bb-the-unpack:
The Unpack
==========
The unpack process usually immediately follows the download. For all
URLs except Git URLs, BitBake uses the common ``unpack`` method.
A number of parameters exist that you can specify within the URL to
govern the behavior of the unpack stage:
- *unpack:* Controls whether the URL components are unpacked. If set to
"1", which is the default, the components are unpacked. If set to
"0", the unpack stage leaves the file alone. This parameter is useful
when you want an archive to be copied in and not be unpacked.
- *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
to use DOS line ending conversion on text files.
- *basepath:* Instructs the unpack stage to strip the specified
directories from the source path when unpacking.
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
The unpack call automatically decompresses and extracts files with ".Z",
".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm". ".srpm", ".deb" and
".bz2" extensions as well as various combinations of tarball extensions.
As mentioned, the Git fetcher has its own unpack method that is
optimized to work with Git trees. Basically, this method works by
cloning the tree into the final directory. The process is completed
using references so that there is only one central copy of the Git
metadata needed.
.. _bb-fetchers:
Fetchers
========
As mentioned earlier, the URL prefix determines which fetcher submodule
BitBake uses. Each submodule can support different URL parameters, which
are described in the following sections.
.. _local-file-fetcher:
Local file fetcher (``file://``)
--------------------------------
This submodule handles URLs that begin with ``file://``. The filename
you specify within the URL can be either an absolute or relative path to
a file. If the filename is relative, the contents of the
:term:`FILESPATH` variable is used in the same way
``PATH`` is used to find executables. If the file cannot be found, it is
assumed that it is available in :term:`DL_DIR` by the
time the ``download()`` method is called.
If you specify a directory, the entire directory is unpacked.
Here are a couple of example URLs, the first relative and the second
absolute: ::
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
.. _http-ftp-fetcher:
HTTP/FTP wget fetcher (``http://``, ``ftp://``, ``https://``)
-------------------------------------------------------------
This fetcher obtains files from web and FTP servers. Internally, the
fetcher uses the wget utility.
The executable and parameters used are specified by the
``FETCHCMD_wget`` variable, which defaults to sensible values. The
fetcher supports a parameter "downloadfilename" that allows the name of
the downloaded file to be specified. Specifying the name of the
downloaded file is useful for avoiding collisions in
:term:`DL_DIR` when dealing with multiple files that
have the same name.
Some example URLs are as follows: ::
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
.. note::
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example:
::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
Such URLs should should be modified by replacing semi-colons with '&'
characters:
::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
In most cases this should work. Treating semi-colons and '&' in
queries identically is recommended by the World Wide Web Consortium
(W3C). Note that due to the nature of the URL, you may have to
specify the name of the downloaded file as well:
::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
.. _cvs-fetcher:
CVS fetcher (``(cvs://``)
-------------------------
This submodule handles checking out files from the CVS version control
system. You can configure it using a number of different variables:
- :term:`FETCHCMD_cvs <FETCHCMD>`: The name of the executable to use when running
the ``cvs`` command. This name is usually "cvs".
- :term:`SRCDATE`: The date to use when fetching the CVS source code. A
special value of "now" causes the checkout to be updated on every
build.
- :term:`CVSDIR`: Specifies where a temporary
checkout is saved. The location is often ``DL_DIR/cvs``.
- CVS_PROXY_HOST: The name to use as a "proxy=" parameter to the
``cvs`` command.
- CVS_PROXY_PORT: The port number to use as a "proxyport="
parameter to the ``cvs`` command.
As well as the standard username and password URL syntax, you can also
configure the fetcher with various URL parameters:
The supported parameters are as follows:
- *"method":* The protocol over which to communicate with the CVS
server. By default, this protocol is "pserver". If "method" is set to
"ext", BitBake examines the "rsh" parameter and sets ``CVS_RSH``. You
can use "dir" for local directories.
- *"module":* Specifies the module to check out. You must supply this
parameter.
- *"tag":* Describes which CVS TAG should be used for the checkout. By
default, the TAG is empty.
- *"date":* Specifies a date. If no "date" is specified, the
:term:`SRCDATE` of the configuration is used to
checkout a specific date. The special value of "now" causes the
checkout to be updated on every build.
- *"localdir":* Used to rename the module. Effectively, you are
renaming the output directory to which the module is unpacked. You
are forcing the module into a special directory relative to
:term:`CVSDIR`.
- *"rsh":* Used in conjunction with the "method" parameter.
- *"scmdata":* Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep". The tarball is expanded into
the work directory. By default, the CVS metadata is removed.
- *"fullpath":* Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper paths.
- *"norecurse":* Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
- *"port":* The port to which the CVS server connects.
Some example URLs are as follows: ::
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
.. _svn-fetcher:
Subversion (SVN) Fetcher (``svn://``)
-------------------------------------
This fetcher submodule fetches code from the Subversion source control
system. The executable used is specified by ``FETCHCMD_svn``, which
defaults to "svn". The fetcher's temporary working directory is set by
:term:`SVNDIR`, which is usually ``DL_DIR/svn``.
The supported parameters are as follows:
- *"module":* The name of the svn module to checkout. You must provide
this parameter. You can think of this parameter as the top-level
directory of the repository data you want.
- *"path_spec":* A specific directory in which to checkout the
specified svn module.
- *"protocol":* The protocol to use, which defaults to "svn". If
"protocol" is set to "svn+ssh", the "ssh" parameter is also used.
- *"rev":* The revision of the source code to checkout.
- *"scmdata":* Causes the ".svn" directories to be available during
compile-time when set to "keep". By default, these directories are
removed.
- *"ssh":* An optional parameter used when "protocol" is set to
"svn+ssh". You can use this parameter to specify the ssh program used
by svn.
- *"transportuser":* When required, sets the username for the
transport. By default, this parameter is empty. The transport
username is different than the username used in the main URL, which
is passed to the subversion command.
Following are three examples using svn: ::
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
SRC_URI = "svn://myrepos/proj1;module=trunk;protocol=http;path_spec=${MY_DIR}/proj1"
.. _git-fetcher:
Git Fetcher (``git://``)
------------------------
This fetcher submodule fetches code from the Git source control system.
The fetcher works by creating a bare clone of the remote into
:term:`GITDIR`, which is usually ``DL_DIR/git2``. This
bare clone is then cloned into the work directory during the unpack
stage when a specific tree is checked out. This is done using alternates
and by reference to minimize the amount of duplicate data on the disk
and make the unpack process fast. The executable used can be set with
``FETCHCMD_git``.
This fetcher supports the following parameters:
- *"protocol":* The protocol used to fetch the files. The default is
"git" when a hostname is set. If a hostname is not set, the Git
protocol is "file". You can also use "http", "https", "ssh" and
"rsync".
- *"nocheckout":* Tells the fetcher to not checkout source code when
unpacking when set to "1". Set this option for the URL where there is
a custom routine to checkout code. The default is "0".
- *"rebaseable":* Indicates that the upstream Git repository can be
rebased. You should set this parameter to "1" if revisions can become
detached from branches. In this case, the source mirror tarball is
done per revision, which has a loss of efficiency. Rebasing the
upstream Git repository could cause the current revision to disappear
from the upstream repository. This option reminds the fetcher to
preserve the local cache carefully for future use. The default value
for this parameter is "0".
- *"nobranch":* Tells the fetcher to not check the SHA validation for
the branch when set to "1". The default is "0". Set this option for
the recipe that refers to the commit that is valid for a tag instead
of the branch.
- *"bareclone":* Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree. Only the
raw Git metadata is provided. This parameter implies the "nocheckout"
parameter as well.
- *"branch":* The branch(es) of the Git tree to clone. If unset, this
is assumed to be "master". The number of branch parameters much match
the number of name parameters.
- *"rev":* The revision to use for the checkout. The default is
"master".
- *"tag":* Specifies a tag to use for the checkout. To correctly
resolve tags, BitBake must access the network. For that reason, tags
are often not used. As far as Git is concerned, the "tag" parameter
behaves effectively the same as the "rev" parameter.
- *"subpath":* Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
- *"destsuffix":* The name of the path in which to place the checkout.
By default, the path is ``git/``.
- *"usehead":* Enables local ``git://`` URLs to use the current branch
HEAD as the revision for use with ``AUTOREV``. The "usehead"
parameter implies no branch and only works when the transfer protocol
is ``file://``.
Here are some example URLs: ::
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
.. _gitsm-fetcher:
Git Submodule Fetcher (``gitsm://``)
------------------------------------
This fetcher submodule inherits from the :ref:`Git
fetcher<bitbake-user-manual/bitbake-user-manual-fetching:git fetcher
(\`\`git://\`\`)>` and extends that fetcher's behavior by fetching a
repository's submodules. :term:`SRC_URI` is passed to the Git fetcher as
described in the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:git
fetcher (\`\`git://\`\`)` section.
.. note::
You must clean a recipe when switching between '``git://``' and
'``gitsm://``' URLs.
The Git Submodules fetcher is not a complete fetcher implementation.
The fetcher has known issues where it does not use the normal source
mirroring infrastructure properly. Further, the submodule sources it
fetches are not visible to the licensing and source archiving
infrastructures.
.. _clearcase-fetcher:
ClearCase Fetcher (``ccrc://``)
-------------------------------
This fetcher submodule fetches code from a
`ClearCase <http://en.wikipedia.org/wiki/Rational_ClearCase>`__
repository.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` settings. Here is an example: ::
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
The fetcher uses the ``rcleartool`` or
``cleartool`` remote client, depending on which one is available.
Following are options for the ``SRC_URI`` statement:
- *vob*: The name, which must include the prepending "/" character,
of the ClearCase VOB. This option is required.
- *module*: The module, which must include the prepending "/"
character, in the selected VOB.
.. note::
The module and vob options are combined to create the load rule in the
view config spec. As an example, consider the vob and module values from
the SRC_URI statement at the start of this section. Combining those values
results in the following: ::
load /example_vob/example_module
- *proto*: The protocol, which can be either ``http`` or ``https``.
By default, the fetcher creates a configuration specification. If you
want this specification written to an area other than the default, use
the ``CCASE_CUSTOM_CONFIG_SPEC`` variable in your recipe to define where
the specification is written.
.. note::
the SRCREV loses its functionality if you specify this variable. However,
SRCREV is still used to label the archive after a fetch even though it does
not define what is fetched.
Here are a couple of other behaviors worth mentioning:
- When using ``cleartool``, the login of ``cleartool`` is handled by
the system. The login require no special steps.
- In order to use ``rcleartool`` with authenticated users, an
"rcleartool login" is necessary before using the fetcher.
.. _perforce-fetcher:
Perforce Fetcher (``p4://``)
----------------------------
This fetcher submodule fetches code from the
`Perforce <https://www.perforce.com/>`__ source control system. The
executable used is specified by ``FETCHCMD_p4``, which defaults to "p4".
The fetcher's temporary working directory is set by
:term:`P4DIR`, which defaults to "DL_DIR/p4".
The fetcher does not make use of a perforce client, instead it
relies on ``p4 files`` to retrieve a list of
files and ``p4 print`` to transfer the content
of those files locally.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` values. The p4 executable is able to use the
config file defined by your system's ``P4CONFIG`` environment variable
in order to define the Perforce server URL and port, username, and
password if you do not wish to keep those values in a recipe itself. If
you choose not to use ``P4CONFIG``, or to explicitly set variables that
``P4CONFIG`` can contain, you can specify the ``P4PORT`` value, which is
the server's URL and port number, and you can specify a username and
password directly in your recipe within ``SRC_URI``.
Here is an example that relies on ``P4CONFIG`` to specify the server URL
and port, username, and password, and fetches the Head Revision: ::
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
Here is an example that specifies the server URL and port, username, and
password, and fetches a Revision based on a Label: ::
P4PORT = "tcp:p4server.example.net:1666"
SRC_URI = "p4://user:passwd@example-depot/main/source/..."
SRCREV = "release-1.0"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
.. note::
You should always set S to "${WORKDIR}/p4" in your recipe.
By default, the fetcher strips the depot location from the local file paths. In
the above example, the content of ``example-depot/main/source/`` will be placed
in ``${WORKDIR}/p4``. For situations where preserving parts of the remote depot
paths locally is desirable, the fetcher supports two parameters:
- *"module":*
The top-level depot location or directory to fetch. The value of this
parameter can also point to a single file within the depot, in which case
the local file path will include the module path.
- *"remotepath":*
When used with the value "``keep``", the fetcher will mirror the full depot
paths locally for the specified location, even in combination with the
``module`` parameter.
Here is an example use of the the ``module`` parameter: ::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/..."
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, including the directory itself. The top-level directory will
be accesible at ``${P4DIR}/source/``.
Here is an example use of the the ``remotepath`` parameter: ::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/...;remotepath=keep"
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, but the complete depot paths will be mirrored locally. The
top-level directory will be accessible at
``${P4DIR}/example-depot/main/source/``.
.. _repo-fetcher:
Repo Fetcher (``repo://``)
--------------------------
This fetcher submodule fetches code from ``google-repo`` source control
system. The fetcher works by initiating and syncing sources of the
repository into :term:`REPODIR`, which is usually
``${DL_DIR}/repo``.
This fetcher supports the following parameters:
- *"protocol":* Protocol to fetch the repository manifest (default:
git).
- *"branch":* Branch or tag of repository to get (default: master).
- *"manifest":* Name of the manifest file (default: ``default.xml``).
Here are some example URLs: ::
SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
Other Fetchers
--------------
Fetch submodules also exist for the following:
- Bazaar (``bzr://``)
- Mercurial (``hg://``)
- npm (``npm://``)
- OSC (``osc://``)
- Secure FTP (``sftp://``)
- Secure Shell (``ssh://``)
- Trees using Git Annex (``gitannex://``)
No documentation currently exists for these lesser used fetcher
submodules. However, you might find the code helpful and readable.
Auto Revisions
==============
We need to document ``AUTOREV`` and ``SRCREV_FORMAT`` here.

View File

@@ -0,0 +1,832 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter>
<title>File Download Support</title>
<para>
BitBake's fetch module is a standalone piece of library code
that deals with the intricacies of downloading source code
and files from remote systems.
Fetching source code is one of the cornerstones of building software.
As such, this module forms an important part of BitBake.
</para>
<para>
The current fetch module is called "fetch2" and refers to the
fact that it is the second major version of the API.
The original version is obsolete and has been removed from the codebase.
Thus, in all cases, "fetch" refers to "fetch2" in this
manual.
</para>
<section id='the-download-fetch'>
<title>The Download (Fetch)</title>
<para>
BitBake takes several steps when fetching source code or files.
The fetcher codebase deals with two distinct processes in order:
obtaining the files from somewhere (cached or otherwise)
and then unpacking those files into a specific location and
perhaps in a specific way.
Getting and unpacking the files is often optionally followed
by patching.
Patching, however, is not covered by this module.
</para>
<para>
The code to execute the first part of this process, a fetch,
looks something like the following:
<literallayout class='monospaced'>
src_uri = (d.getVar('SRC_URI', True) or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
</literallayout>
This code sets up an instance of the fetch class.
The instance uses a space-separated list of URLs from the
<link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
variable and then calls the <filename>download</filename>
method to download the files.
</para>
<para>
The instantiation of the fetch class is usually followed by:
<literallayout class='monospaced'>
rootdir = l.getVar('WORKDIR', True)
fetcher.unpack(rootdir)
</literallayout>
This code unpacks the downloaded files to the
specified by <filename>WORKDIR</filename>.
<note>
For convenience, the naming in these examples matches
the variables used by OpenEmbedded.
If you want to see the above code in action, examine
the OpenEmbedded class file <filename>base.bbclass</filename>.
</note>
The <filename>SRC_URI</filename> and <filename>WORKDIR</filename>
variables are not hardcoded into the fetcher, since those fetcher
methods can be (and are) called with different variable names.
In OpenEmbedded for example, the shared state (sstate) code uses
the fetch module to fetch the sstate files.
</para>
<para>
When the <filename>download()</filename> method is called,
BitBake tries to resolve the URLs by looking for source files
in a specific search order:
<itemizedlist>
<listitem><para><emphasis>Pre-mirror Sites:</emphasis>
BitBake first uses pre-mirrors to try and find source files.
These locations are defined using the
<link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
variable.
</para></listitem>
<listitem><para><emphasis>Source URI:</emphasis>
If pre-mirrors fail, BitBake uses the original URL (e.g from
<filename>SRC_URI</filename>).
</para></listitem>
<listitem><para><emphasis>Mirror Sites:</emphasis>
If fetch failures occur, BitBake next uses mirror locations as
defined by the
<link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
variable.
</para></listitem>
</itemizedlist>
</para>
<para>
For each URL passed to the fetcher, the fetcher
calls the submodule that handles that particular URL type.
This behavior can be the source of some confusion when you
are providing URLs for the <filename>SRC_URI</filename>
variable.
Consider the following two URLs:
<literallayout class='monospaced'>
http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
</literallayout>
In the former case, the URL is passed to the
<filename>wget</filename> fetcher, which does not
understand "git".
Therefore, the latter case is the correct form since the
Git fetcher does know how to use HTTP as a transport.
</para>
<para>
Here are some examples that show commonly used mirror
definitions:
<literallayout class='monospaced'>
PREMIRRORS ?= "\
bzr://.*/.* http://somemirror.org/sources/ \n \
cvs://.*/.* http://somemirror.org/sources/ \n \
git://.*/.* http://somemirror.org/sources/ \n \
hg://.*/.* http://somemirror.org/sources/ \n \
osc://.*/.* http://somemirror.org/sources/ \n \
p4://.*/.* http://somemirror.org/sources/ \n \
svn://.*/.* http://somemirror.org/sources/ \n"
MIRRORS =+ "\
ftp://.*/.* http://somemirror.org/sources/ \n \
http://.*/.* http://somemirror.org/sources/ \n \
https://.*/.* http://somemirror.org/sources/ \n"
</literallayout>
It is useful to note that BitBake supports
cross-URLs.
It is possible to mirror a Git repository on an HTTP
server as a tarball.
This is what the <filename>git://</filename> mapping in
the previous example does.
</para>
<para>
Since network accesses are slow, Bitbake maintains a
cache of files downloaded from the network.
Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download
directory, which is specified by the
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
variable.
</para>
<para>
File integrity is of key importance for reproducing builds.
For non-local archive downloads, the fetcher code can verify
SHA-256 and MD5 checksums to ensure the archives have been
downloaded correctly.
You can specify these checksums by using the
<filename>SRC_URI</filename> variable with the appropriate
varflags as follows:
<literallayout class='monospaced'>
SRC_URI[md5sum] = "<replaceable>value</replaceable>"
SRC_URI[sha256sum] = "<replaceable>value</replaceable>"
</literallayout>
You can also specify the checksums as parameters on the
<filename>SRC_URI</filename> as shown below:
<literallayout class='monospaced'>
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
</literallayout>
If multiple URIs exist, you can specify the checksums either
directly as in the previous example, or you can name the URLs.
The following syntax shows how you name the URIs:
<literallayout class='monospaced'>
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
</literallayout>
After a file has been downloaded and has had its checksum checked,
a ".done" stamp is placed in <filename>DL_DIR</filename>.
BitBake uses this stamp during subsequent builds to avoid
downloading or comparing a checksum for the file again.
<note>
It is assumed that local storage is safe from data corruption.
If this were not the case, there would be bigger issues to worry about.
</note>
</para>
<para>
If
<link linkend='var-BB_STRICT_CHECKSUM'><filename>BB_STRICT_CHECKSUM</filename></link>
is set, any download without a checksum triggers an
error message.
The
<link linkend='var-BB_NO_NETWORK'><filename>BB_NO_NETWORK</filename></link>
variable can be used to make any attempted network access a fatal
error, which is useful for checking that mirrors are complete
as well as other things.
</para>
</section>
<section id='bb-the-unpack'>
<title>The Unpack</title>
<para>
The unpack process usually immediately follows the download.
For all URLs except Git URLs, BitBake uses the common
<filename>unpack</filename> method.
</para>
<para>
A number of parameters exist that you can specify within the
URL to govern the behavior of the unpack stage:
<itemizedlist>
<listitem><para><emphasis>unpack:</emphasis>
Controls whether the URL components are unpacked.
If set to "1", which is the default, the components
are unpacked.
If set to "0", the unpack stage leaves the file alone.
This parameter is useful when you want an archive to be
copied in and not be unpacked.
</para></listitem>
<listitem><para><emphasis>dos:</emphasis>
Applies to <filename>.zip</filename> and
<filename>.jar</filename> files and specifies whether to
use DOS line ending conversion on text files.
</para></listitem>
<listitem><para><emphasis>basepath:</emphasis>
Instructs the unpack stage to strip the specified
directories from the source path when unpacking.
</para></listitem>
<listitem><para><emphasis>subdir:</emphasis>
Unpacks the specific URL to the specified subdirectory
within the root directory.
</para></listitem>
</itemizedlist>
The unpack call automatically decompresses and extracts files
with ".Z", ".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm".
".srpm", ".deb" and ".bz2" extensions as well as various combinations
of tarball extensions.
</para>
<para>
As mentioned, the Git fetcher has its own unpack method that
is optimized to work with Git trees.
Basically, this method works by cloning the tree into the final
directory.
The process is completed using references so that there is
only one central copy of the Git metadata needed.
</para>
</section>
<section id='bb-fetchers'>
<title>Fetchers</title>
<para>
As mentioned earlier, the URL prefix determines which
fetcher submodule BitBake uses.
Each submodule can support different URL parameters,
which are described in the following sections.
</para>
<section id='local-file-fetcher'>
<title>Local file fetcher (<filename>file://</filename>)</title>
<para>
This submodule handles URLs that begin with
<filename>file://</filename>.
The filename you specify within the URL can be
either an absolute or relative path to a file.
If the filename is relative, the contents of the
<link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
variable is used in the same way
<filename>PATH</filename> is used to find executables.
Failing that,
<link linkend='var-FILESDIR'><filename>FILESDIR</filename></link>
is used to find the appropriate relative file.
<note>
<filename>FILESDIR</filename> is deprecated and can
be replaced with <filename>FILESPATH</filename>.
Because <filename>FILESDIR</filename> is likely to be
removed, you should not use this variable in any new code.
</note>
If the file cannot be found, it is assumed that it is available in
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
by the time the <filename>download()</filename> method is called.
</para>
<para>
If you specify a directory, the entire directory is
unpacked.
</para>
<para>
Here are a couple of example URLs, the first relative and
the second absolute:
<literallayout class='monospaced'>
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
</literallayout>
</para>
</section>
<section id='http-ftp-fetcher'>
<title>HTTP/FTP wget fetcher (<filename>http://</filename>, <filename>ftp://</filename>, <filename>https://</filename>)</title>
<para>
This fetcher obtains files from web and FTP servers.
Internally, the fetcher uses the wget utility.
</para>
<para>
The executable and parameters used are specified by the
<filename>FETCHCMD_wget</filename> variable, which defaults
to sensible values.
The fetcher supports a parameter "downloadfilename" that
allows the name of the downloaded file to be specified.
Specifying the name of the downloaded file is useful
for avoiding collisions in
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
when dealing with multiple files that have the same name.
</para>
<para>
Some example URLs are as follows:
<literallayout class='monospaced'>
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
</literallayout>
</para>
<note>
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
</literallayout>
Such URLs should should be modified by replacing semi-colons with '&amp;' characters:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&amp;a=snapshot&amp;h=a5dd47"
</literallayout>
In most cases this should work. Treating semi-colons and '&amp;' in queries
identically is recommended by the World Wide Web Consortium (W3C).
Note that due to the nature of the URL, you may have to specify the name
of the downloaded file as well:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&amp;a=snapshot&amp;h=a5dd47;downloadfilename=myfile.bz2"
</literallayout>
</note>
</section>
<section id='cvs-fetcher'>
<title>CVS fetcher (<filename>(cvs://</filename>)</title>
<para>
This submodule handles checking out files from the
CVS version control system.
You can configure it using a number of different variables:
<itemizedlist>
<listitem><para><emphasis><filename>FETCHCMD_cvs</filename>:</emphasis>
The name of the executable to use when running
the <filename>cvs</filename> command.
This name is usually "cvs".
</para></listitem>
<listitem><para><emphasis><filename>SRCDATE</filename>:</emphasis>
The date to use when fetching the CVS source code.
A special value of "now" causes the checkout to
be updated on every build.
</para></listitem>
<listitem><para><emphasis><link linkend='var-CVSDIR'><filename>CVSDIR</filename></link>:</emphasis>
Specifies where a temporary checkout is saved.
The location is often <filename>DL_DIR/cvs</filename>.
</para></listitem>
<listitem><para><emphasis><filename>CVS_PROXY_HOST</filename>:</emphasis>
The name to use as a "proxy=" parameter to the
<filename>cvs</filename> command.
</para></listitem>
<listitem><para><emphasis><filename>CVS_PROXY_PORT</filename>:</emphasis>
The port number to use as a "proxyport=" parameter to
the <filename>cvs</filename> command.
</para></listitem>
</itemizedlist>
As well as the standard username and password URL syntax,
you can also configure the fetcher with various URL parameters:
</para>
<para>
The supported parameters are as follows:
<itemizedlist>
<listitem><para><emphasis>"method":</emphasis>
The protocol over which to communicate with the CVS server.
By default, this protocol is "pserver".
If "method" is set to "ext", BitBake examines the
"rsh" parameter and sets <filename>CVS_RSH</filename>.
You can use "dir" for local directories.
</para></listitem>
<listitem><para><emphasis>"module":</emphasis>
Specifies the module to check out.
You must supply this parameter.
</para></listitem>
<listitem><para><emphasis>"tag":</emphasis>
Describes which CVS TAG should be used for
the checkout.
By default, the TAG is empty.
</para></listitem>
<listitem><para><emphasis>"date":</emphasis>
Specifies a date.
If no "date" is specified, the
<link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
of the configuration is used to checkout a specific date.
The special value of "now" causes the checkout to be
updated on every build.
</para></listitem>
<listitem><para><emphasis>"localdir":</emphasis>
Used to rename the module.
Effectively, you are renaming the output directory
to which the module is unpacked.
You are forcing the module into a special
directory relative to
<link linkend='var-CVSDIR'><filename>CVSDIR</filename></link>.
</para></listitem>
<listitem><para><emphasis>"rsh"</emphasis>
Used in conjunction with the "method" parameter.
</para></listitem>
<listitem><para><emphasis>"scmdata":</emphasis>
Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep".
The tarball is expanded into the work directory.
By default, the CVS metadata is removed.
</para></listitem>
<listitem><para><emphasis>"fullpath":</emphasis>
Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper
paths.
</para></listitem>
<listitem><para><emphasis>"norecurse":</emphasis>
Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
</para></listitem>
<listitem><para><emphasis>"port":</emphasis>
The port to which the CVS server connects.
</para></listitem>
</itemizedlist>
Some example URLs are as follows:
<literallayout class='monospaced'>
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
</literallayout>
</para>
</section>
<section id='svn-fetcher'>
<title>Subversion (SVN) Fetcher (<filename>svn://</filename>)</title>
<para>
This fetcher submodule fetches code from the
Subversion source control system.
The executable used is specified by
<filename>FETCHCMD_svn</filename>, which defaults
to "svn".
The fetcher's temporary working directory is set by
<link linkend='var-SVNDIR'><filename>SVNDIR</filename></link>,
which is usually <filename>DL_DIR/svn</filename>.
</para>
<para>
The supported parameters are as follows:
<itemizedlist>
<listitem><para><emphasis>"module":</emphasis>
The name of the svn module to checkout.
You must provide this parameter.
You can think of this parameter as the top-level
directory of the repository data you want.
</para></listitem>
<listitem><para><emphasis>"protocol":</emphasis>
The protocol to use, which defaults to "svn".
Other options are "svn+ssh" and "rsh".
For "rsh", the "rsh" parameter is also used.
</para></listitem>
<listitem><para><emphasis>"rev":</emphasis>
The revision of the source code to checkout.
</para></listitem>
<listitem><para><emphasis>"date":</emphasis>
The date of the source code to checkout.
Specific revisions are generally much safer to checkout
rather than by date as they do not involve timezones
(e.g. they are much more deterministic).
</para></listitem>
<listitem><para><emphasis>"scmdata":</emphasis>
Causes the “.svn” directories to be available during
compile-time when set to "keep".
By default, these directories are removed.
</para></listitem>
<listitem><para><emphasis>"transportuser":</emphasis>
When required, sets the username for the transport.
By default, this parameter is empty.
The transport username is different than the username
used in the main URL, which is passed to the subversion
command.
</para></listitem>
</itemizedlist>
Following are two examples using svn:
<literallayout class='monospaced'>
SRC_URI = "svn://svn.oe.handhelds.org/svn;module=vip;proto=http;rev=667"
SRC_URI = "svn://svn.oe.handhelds.org/svn/;module=opie;proto=svn+ssh;date=20060126"
</literallayout>
</para>
</section>
<section id='git-fetcher'>
<title>Git Fetcher (<filename>git://</filename>)</title>
<para>
This fetcher submodule fetches code from the Git
source control system.
The fetcher works by creating a bare clone of the
remote into
<link linkend='var-GITDIR'><filename>GITDIR</filename></link>,
which is usually <filename>DL_DIR/git2</filename>.
This bare clone is then cloned into the work directory during the
unpack stage when a specific tree is checked out.
This is done using alternates and by reference to
minimize the amount of duplicate data on the disk and
make the unpack process fast.
The executable used can be set with
<filename>FETCHCMD_git</filename>.
</para>
<para>
This fetcher supports the following parameters:
<itemizedlist>
<listitem><para><emphasis>"protocol":</emphasis>
The protocol used to fetch the files.
The default is "git" when a hostname is set.
If a hostname is not set, the Git protocol is "file".
You can also use "http", "https", "ssh" and "rsync".
</para></listitem>
<listitem><para><emphasis>"nocheckout":</emphasis>
Tells the fetcher to not checkout source code when
unpacking when set to "1".
Set this option for the URL where there is a custom
routine to checkout code.
The default is "0".
</para></listitem>
<listitem><para><emphasis>"rebaseable":</emphasis>
Indicates that the upstream Git repository can be rebased.
You should set this parameter to "1" if
revisions can become detached from branches.
In this case, the source mirror tarball is done per
revision, which has a loss of efficiency.
Rebasing the upstream Git repository could cause the
current revision to disappear from the upstream repository.
This option reminds the fetcher to preserve the local cache
carefully for future use.
The default value for this parameter is "0".
</para></listitem>
<listitem><para><emphasis>"nobranch":</emphasis>
Tells the fetcher to not check the SHA validation
for the branch when set to "1".
The default is "0".
Set this option for the recipe that refers to
the commit that is valid for a tag instead of
the branch.
</para></listitem>
<listitem><para><emphasis>"bareclone":</emphasis>
Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree.
Only the raw Git metadata is provided.
This parameter implies the "nocheckout" parameter as well.
</para></listitem>
<listitem><para><emphasis>"branch":</emphasis>
The branch(es) of the Git tree to clone.
If unset, this is assumed to be "master".
The number of branch parameters much match the number of
name parameters.
</para></listitem>
<listitem><para><emphasis>"rev":</emphasis>
The revision to use for the checkout.
The default is "master".
</para></listitem>
<listitem><para><emphasis>"tag":</emphasis>
Specifies a tag to use for the checkout.
To correctly resolve tags, BitBake must access the
network.
For that reason, tags are often not used.
As far as Git is concerned, the "tag" parameter behaves
effectively the same as the "rev" parameter.
</para></listitem>
<listitem><para><emphasis>"subpath":</emphasis>
Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
</para></listitem>
<listitem><para><emphasis>"destsuffix":</emphasis>
The name of the path in which to place the checkout.
By default, the path is <filename>git/</filename>.
</para></listitem>
<listitem><para><emphasis>"usehead":</emphasis>
Enables local <filename>git://</filename> URLs to use the
current branch HEAD as the revision for use with
<filename>AUTOREV</filename>.
The "usehead" parameter implies no branch and only works
when the transfer protocol is
<filename>file://</filename>.
</para></listitem>
</itemizedlist>
Here are some example URLs:
<literallayout class='monospaced'>
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
</literallayout>
</para>
</section>
<section id='gitsm-fetcher'>
<title>Git Submodule Fetcher (<filename>gitsm://</filename>)</title>
<para>
This fetcher submodule inherits from the
<link linkend='git-fetcher'>Git fetcher</link> and extends
that fetcher's behavior by fetching a repository's submodules.
<link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
is passed to the Git fetcher as described in the
"<link linkend='git-fetcher'>Git Fetcher (<filename>git://</filename>)</link>"
section.
<note>
<title>Notes and Warnings</title>
<para>
You must clean a recipe when switching between
'<filename>git://</filename>' and
'<filename>gitsm://</filename>' URLs.
</para>
<para>
The Git Submodules fetcher is not a complete fetcher
implementation.
The fetcher has known issues where it does not use the
normal source mirroring infrastructure properly.
</para>
</note>
</para>
</section>
<section id='clearcase-fetcher'>
<title>ClearCase Fetcher (<filename>ccrc://</filename>)</title>
<para>
This fetcher submodule fetches code from a
<ulink url='http://en.wikipedia.org/wiki/Rational_ClearCase'>ClearCase</ulink>
repository.
</para>
<para>
To use this fetcher, make sure your recipe has proper
<link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
<link linkend='var-SRCREV'><filename>SRCREV</filename></link>, and
<link linkend='var-PV'><filename>PV</filename></link> settings.
Here is an example:
<literallayout class='monospaced'>
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
</literallayout>
The fetcher uses the <filename>rcleartool</filename> or
<filename>cleartool</filename> remote client, depending on
which one is available.
</para>
<para>
Following are options for the <filename>SRC_URI</filename>
statement:
<itemizedlist>
<listitem><para><emphasis><filename>vob</filename></emphasis>:
The name, which must include the
prepending "/" character, of the ClearCase VOB.
This option is required.
</para></listitem>
<listitem><para><emphasis><filename>module</filename></emphasis>:
The module, which must include the
prepending "/" character, in the selected VOB.
<note>
The <filename>module</filename> and <filename>vob</filename>
options are combined to create the <filename>load</filename> rule in
the view config spec.
As an example, consider the <filename>vob</filename> and
<filename>module</filename> values from the
<filename>SRC_URI</filename> statement at the start of this section.
Combining those values results in the following:
<literallayout class='monospaced'>
load /example_vob/example_module
</literallayout>
</note>
</para></listitem>
<listitem><para><emphasis><filename>proto</filename></emphasis>:
The protocol, which can be either <filename>http</filename> or
<filename>https</filename>.
</para></listitem>
</itemizedlist>
</para>
<para>
By default, the fetcher creates a configuration specification.
If you want this specification written to an area other than the default,
use the <filename>CCASE_CUSTOM_CONFIG_SPEC</filename> variable
in your recipe to define where the specification is written.
<note>
the <filename>SRCREV</filename> loses its functionality if you
specify this variable.
However, <filename>SRCREV</filename> is still used to label the
archive after a fetch even though it does not define what is
fetched.
</note>
</para>
<para>
Here are a couple of other behaviors worth mentioning:
<itemizedlist>
<listitem><para>
When using <filename>cleartool</filename>, the login of
<filename>cleartool</filename> is handled by the system.
The login require no special steps.
</para></listitem>
<listitem><para>
In order to use <filename>rcleartool</filename> with authenticated
users, an "rcleartool login" is necessary before using the fetcher.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='perforce-fetcher'>
<title>Perforce Fetcher (<filename>p4://</filename>)</title>
<para>
This fetcher submodule fetches code from the
<ulink url='https://www.perforce.com/'>Perforce</ulink>
source control system.
The executable used is specified by
<filename>FETCHCMD_p4</filename>, which defaults
to "p4".
The fetcher's temporary working directory is set by
<link linkend='var-P4DIR'><filename>P4DIR</filename></link>,
which defaults to "DL_DIR/p4".
</para>
<para>
To use this fetcher, make sure your recipe has proper
<link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
<link linkend='var-SRCREV'><filename>SRCREV</filename></link>, and
<link linkend='var-PV'><filename>PV</filename></link> values.
The p4 executable is able to use the config file defined by your
system's <filename>P4CONFIG</filename> environment variable in
order to define the Perforce server URL and port, username, and
password if you do not wish to keep those values in a recipe
itself.
If you choose not to use <filename>P4CONFIG</filename>,
or to explicitly set variables that <filename>P4CONFIG</filename>
can contain, you can specify the <filename>P4PORT</filename> value,
which is the server's URL and port number, and you can
specify a username and password directly in your recipe within
<filename>SRC_URI</filename>.
</para>
<para>
Here is an example that relies on <filename>P4CONFIG</filename>
to specify the server URL and port, username, and password, and
fetches the Head Revision:
<literallayout class='monospaced'>
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
</literallayout>
</para>
<para>
Here is an example that specifies the server URL and port,
username, and password, and fetches a Revision based on a Label:
<literallayout class='monospaced'>
P4PORT = "tcp:p4server.example.net:1666"
SRC_URI = "p4://user:passwd@example-depot/main/source/..."
SRCREV = "release-1.0"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
</literallayout>
<note>
You should always set <filename>S</filename>
to <filename>"${WORKDIR}/p4"</filename> in your recipe.
</note>
</para>
</section>
<section id='other-fetchers'>
<title>Other Fetchers</title>
<para>
Fetch submodules also exist for the following:
<itemizedlist>
<listitem><para>
Bazaar (<filename>bzr://</filename>)
</para></listitem>
<listitem><para>
Trees using Git Annex (<filename>gitannex://</filename>)
</para></listitem>
<listitem><para>
Secure FTP (<filename>sftp://</filename>)
</para></listitem>
<listitem><para>
Secure Shell (<filename>ssh://</filename>)
</para></listitem>
<listitem><para>
Repo (<filename>repo://</filename>)
</para></listitem>
<listitem><para>
OSC (<filename>osc://</filename>)
</para></listitem>
<listitem><para>
Mercurial (<filename>hg://</filename>)
</para></listitem>
</itemizedlist>
No documentation currently exists for these lesser used
fetcher submodules.
However, you might find the code helpful and readable.
</para>
</section>
</section>
<section id='auto-revisions'>
<title>Auto Revisions</title>
<para>
We need to document <filename>AUTOREV</filename> and
<filename>SRCREV_FORMAT</filename> here.
</para>
</section>
</chapter>

View File

@@ -1,415 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
Hello World Example
===================
BitBake Hello World
===================
The simplest example commonly used to demonstrate any new programming
language or tool is the "`Hello
World <http://en.wikipedia.org/wiki/Hello_world_program>`__" example.
This appendix demonstrates, in tutorial form, Hello World within the
context of BitBake. The tutorial describes how to create a new project
and the applicable metadata files necessary to allow BitBake to build
it.
Obtaining BitBake
=================
See the :ref:`bitbake-user-manual/bitbake-user-manual-hello:obtaining bitbake` section for
information on how to obtain BitBake. Once you have the source code on
your machine, the BitBake directory appears as follows: ::
$ ls -al
total 100
drwxrwxr-x. 9 wmat wmat 4096 Jan 31 13:44 .
drwxrwxr-x. 3 wmat wmat 4096 Feb 4 10:45 ..
-rw-rw-r--. 1 wmat wmat 365 Nov 26 04:55 AUTHORS
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 bin
drwxrwxr-x. 4 wmat wmat 4096 Jan 31 13:44 build
-rw-rw-r--. 1 wmat wmat 16501 Nov 26 04:55 ChangeLog
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 classes
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 conf
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 contrib
-rw-rw-r--. 1 wmat wmat 17987 Nov 26 04:55 COPYING
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 doc
-rw-rw-r--. 1 wmat wmat 69 Nov 26 04:55 .gitignore
-rw-rw-r--. 1 wmat wmat 849 Nov 26 04:55 HEADER
drwxrwxr-x. 5 wmat wmat 4096 Jan 31 13:44 lib
-rw-rw-r--. 1 wmat wmat 195 Nov 26 04:55 MANIFEST.in
-rw-rw-r--. 1 wmat wmat 2887 Nov 26 04:55 TODO
At this point, you should have BitBake cloned to a directory that
matches the previous listing except for dates and user names.
Setting Up the BitBake Environment
==================================
First, you need to be sure that you can run BitBake. Set your working
directory to where your local BitBake files are and run the following
command: ::
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
The console output tells you what version
you are running.
The recommended method to run BitBake is from a directory of your
choice. To be able to run BitBake from any directory, you need to add
the executable binary to your binary to your shell's environment
``PATH`` variable. First, look at your current ``PATH`` variable by
entering the following: ::
$ echo $PATH
Next, add the directory location
for the BitBake binary to the ``PATH``. Here is an example that adds the
``/home/scott-lenovo/bitbake/bin`` directory to the front of the
``PATH`` variable: ::
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
You should now be able to enter the ``bitbake`` command from the command
line while working from any directory.
The Hello World Example
=======================
The overall goal of this exercise is to build a complete "Hello World"
example utilizing task and layer concepts. Because this is how modern
projects such as OpenEmbedded and the Yocto Project utilize BitBake, the
example provides an excellent starting point for understanding BitBake.
To help you understand how to use BitBake to build targets, the example
starts with nothing but the ``bitbake`` command, which causes BitBake to
fail and report problems. The example progresses by adding pieces to the
build to eventually conclude with a working, minimal "Hello World"
example.
While every attempt is made to explain what is happening during the
example, the descriptions cannot cover everything. You can find further
information throughout this manual. Also, you can actively participate
in the :oe_lists:`/g/bitbake-devel`
discussion mailing list about the BitBake build tool.
.. note::
This example was inspired by and drew heavily from
`Mailing List post - The BitBake equivalent of "Hello, World!"
<http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html>`_.
As stated earlier, the goal of this example is to eventually compile
"Hello World". However, it is unknown what BitBake needs and what you
have to provide in order to achieve that goal. Recall that BitBake
utilizes three types of metadata files:
:ref:`bitbake-user-manual/bitbake-user-manual-intro:configuration files`,
:ref:`bitbake-user-manual/bitbake-user-manual-intro:classes`, and
:ref:`bitbake-user-manual/bitbake-user-manual-intro:recipes`.
But where do they go? How does BitBake find
them? BitBake's error messaging helps you answer these types of
questions and helps you better understand exactly what is going on.
Following is the complete "Hello World" example.
#. **Create a Project Directory:** First, set up a directory for the
"Hello World" project. Here is how you can do so in your home
directory: ::
$ mkdir ~/hello
$ cd ~/hello
This is the directory that
BitBake will use to do all of its work. You can use this directory
to keep all the metafiles needed by BitBake. Having a project
directory is a good way to isolate your project.
#. **Run BitBake:** At this point, you have nothing but a project
directory. Run the ``bitbake`` command and see what it does: ::
$ bitbake
The BBPATH variable is not set and bitbake did not
find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
DEBUG: Removed the following variables from the environment:
GNOME_DESKTOP_SESSION_ID, XDG_CURRENT_DESKTOP,
GNOME_KEYRING_CONTROL, DISPLAY, SSH_AGENT_PID, LANG, no_proxy,
XDG_SESSION_PATH, XAUTHORITY, SESSION_MANAGER, SHLVL,
MANDATORY_PATH, COMPIZ_CONFIG_PROFILE, WINDOWID, EDITOR,
GPG_AGENT_INFO, SSH_AUTH_SOCK, GDMSESSION, GNOME_KEYRING_PID,
XDG_SEAT_PATH, XDG_CONFIG_DIRS, LESSOPEN, DBUS_SESSION_BUS_ADDRESS,
_, XDG_SESSION_COOKIE, DESKTOP_SESSION, LESSCLOSE, DEFAULTS_PATH,
UBUNTU_MENUPROXY, OLDPWD, XDG_DATA_DIRS, COLORTERM, LS_COLORS
The majority of this output is specific to environment variables that
are not directly relevant to BitBake. However, the very first
message regarding the ``BBPATH`` variable and the
``conf/bblayers.conf`` file is relevant.
When you run BitBake, it begins looking for metadata files. The
:term:`BBPATH` variable is what tells BitBake where
to look for those files. ``BBPATH`` is not set and you need to set
it. Without ``BBPATH``, BitBake cannot find any configuration files
(``.conf``) or recipe files (``.bb``) at all. BitBake also cannot
find the ``bitbake.conf`` file.
#. **Setting BBPATH:** For this example, you can set ``BBPATH`` in
the same manner that you set ``PATH`` earlier in the appendix. You
should realize, though, that it is much more flexible to set the
``BBPATH`` variable up in a configuration file for each project.
From your shell, enter the following commands to set and export the
``BBPATH`` variable: ::
$ BBPATH="projectdirectory"
$ export BBPATH
Use your actual project directory in the command. BitBake uses that
directory to find the metadata it needs for your project.
.. note::
When specifying your project directory, do not use the tilde
("~") character as BitBake does not expand that character as the
shell would.
#. **Run BitBake:** Now that you have ``BBPATH`` defined, run the
``bitbake`` command again: ::
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 173, in parse_config_file
return bb.parse.handle(fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 99, in handle
return h['handle'](fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 120, in handle
abs_fn = resolve_file(fn, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 117, in resolve_file
raise IOError("file %s not found in %s" % (fn, bbpath))
IOError: file conf/bitbake.conf not found in /home/scott-lenovo/hello
ERROR: Unable to parse conf/bitbake.conf: file conf/bitbake.conf not found in /home/scott-lenovo/hello
This sample output shows that BitBake could not find the
``conf/bitbake.conf`` file in the project directory. This file is
the first thing BitBake must find in order to build a target. And,
since the project directory for this example is empty, you need to
provide a ``conf/bitbake.conf`` file.
#. **Creating conf/bitbake.conf:** The ``conf/bitbake.conf`` includes
a number of configuration variables BitBake uses for metadata and
recipe files. For this example, you need to create the file in your
project directory and define some key BitBake variables. For more
information on the ``bitbake.conf`` file, see
http://git.openembedded.org/bitbake/tree/conf/bitbake.conf.
Use the following commands to create the ``conf`` directory in the
project directory: ::
$ mkdir conf
From within the ``conf`` directory,
use some editor to create the ``bitbake.conf`` so that it contains
the following: ::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
TMPDIR = "${TOPDIR}/tmp"
CACHE = "${TMPDIR}/cache"
STAMP = "${TMPDIR}/${PN}/stamps"
T = "${TMPDIR}/${PN}/work"
B = "${TMPDIR}/${PN}"
.. note::
Without a value for PN , the variables STAMP , T , and B , prevent more
than one recipe from working. You can fix this by either setting PN to
have a value similar to what OpenEmbedded and BitBake use in the default
bitbake.conf file (see previous example). Or, by manually updating each
recipe to set PN . You will also need to include PN as part of the STAMP
, T , and B variable definitions in the local.conf file.
The ``TMPDIR`` variable establishes a directory that BitBake uses
for build output and intermediate files other than the cached
information used by the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:setscene`
process. Here, the ``TMPDIR`` directory is set to ``hello/tmp``.
.. tip::
You can always safely delete the tmp directory in order to rebuild a
BitBake target. The build process creates the directory for you when you
run BitBake.
For information about each of the other variables defined in this
example, check :term:`PN`, :term:`TOPDIR`, :term:`CACHE`, :term:`STAMP`,
:term:`T` or :term:`B` to take you to the definitions in the
glossary.
#. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file
exists, you can run the ``bitbake`` command again: ::
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 177, in _inherit
bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 92, in inherit
include(fn, file, lineno, d, "inherit")
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 100, in include
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
In the sample output,
BitBake could not find the ``classes/base.bbclass`` file. You need
to create that file next.
#. **Creating classes/base.bbclass:** BitBake uses class files to
provide common code and functionality. The minimally required class
for BitBake is the ``classes/base.bbclass`` file. The ``base`` class
is implicitly inherited by every recipe. BitBake looks for the class
in the ``classes`` directory of the project (i.e ``hello/classes``
in this example).
Create the ``classes`` directory as follows: ::
$ cd $HOME/hello
$ mkdir classes
Move to the ``classes`` directory and then create the
``base.bbclass`` file by inserting this single line: addtask build
The minimal task that BitBake runs is the ``do_build`` task. This is
all the example needs in order to build the project. Of course, the
``base.bbclass`` can have much more depending on which build
environments BitBake is supporting.
#. **Run BitBake:** After making sure that the ``classes/base.bbclass``
file exists, you can run the ``bitbake`` command again: ::
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
BitBake is finally reporting
no errors. However, you can see that it really does not have
anything to do. You need to create a recipe that gives BitBake
something to do.
#. **Creating a Layer:** While it is not really necessary for such a
small example, it is good practice to create a layer in which to
keep your code separate from the general metadata used by BitBake.
Thus, this example creates and uses a layer called "mylayer".
.. note::
You can find additional information on layers in the
":ref:`bitbake-user-manual/bitbake-user-manual-intro:Layers`" section.
Minimally, you need a recipe file and a layer configuration file in
your layer. The configuration file needs to be in the ``conf``
directory inside the layer. Use these commands to set up the layer
and the ``conf`` directory: ::
$ cd $HOME
$ mkdir mylayer
$ cd mylayer
$ mkdir conf
Move to the ``conf`` directory and create a ``layer.conf`` file that has the
following: ::
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/\*.bb"
BBFILE_COLLECTIONS += "mylayer"
`BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"
For information on these variables, click on :term:`BBFILES`,
:term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS` or :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>`
to go to the definitions in the glossary.
You need to create the recipe file next. Inside your layer at the
top-level, use an editor and create a recipe file named
``printhello.bb`` that has the following: ::
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
PV = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
The recipe file simply provides
a description of the recipe, the name, version, and the ``do_build``
task, which prints out "Hello World" to the console. For more
information on :term:`DESCRIPTION`, :term:`PN` or :term:`PV`
follow the links to the glossary.
#. **Run BitBake With a Target:** Now that a BitBake target exists, run
the command and provide that target: ::
$ cd $HOME/hello
$ bitbake printhello
ERROR: no recipe files to build, check your BBPATH and BBFILES?
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
We have created the layer with the recipe and
the layer configuration file but it still seems that BitBake cannot
find the recipe. BitBake needs a ``conf/bblayers.conf`` that lists
the layers for the project. Without this file, BitBake cannot find
the recipe.
#. **Creating conf/bblayers.conf:** BitBake uses the
``conf/bblayers.conf`` file to locate layers needed for the project.
This file must reside in the ``conf`` directory of the project (i.e.
``hello/conf`` for this example).
Set your working directory to the ``hello/conf`` directory and then
create the ``bblayers.conf`` file so that it contains the following: ::
BBLAYERS ?= " \
/home/<you>/mylayer \
"
You need to provide your own information for ``you`` in the file.
#. **Run BitBake With a Target:** Now that you have supplied the
``bblayers.conf`` file, run the ``bitbake`` command and provide the
target: ::
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|
Time: 00:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
********************
* *
* Hello, World! *
* *
********************
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
.. note::
After the first execution, re-running bitbake printhello again will not
result in a BitBake run that prints the same console output. The reason
for this is that the first time the printhello.bb recipe's do_build task
executes successfully, BitBake writes a stamp file for the task. Thus,
the next time you attempt to run the task using that same bitbake
command, BitBake notices the stamp and therefore determines that the task
does not need to be re-run. If you delete the tmp directory or run
bitbake -c clean printhello and then re-run the build, the "Hello,
World!" message will be printed again.

View File

@@ -0,0 +1,505 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<appendix id='hello-world-example'>
<title>Hello World Example</title>
<section id='bitbake-hello-world'>
<title>BitBake Hello World</title>
<para>
The simplest example commonly used to demonstrate any new
programming language or tool is the
"<ulink url="http://en.wikipedia.org/wiki/Hello_world_program">Hello World</ulink>"
example.
This appendix demonstrates, in tutorial form, Hello
World within the context of BitBake.
The tutorial describes how to create a new project
and the applicable metadata files necessary to allow
BitBake to build it.
</para>
</section>
<section id='example-obtaining-bitbake'>
<title>Obtaining BitBake</title>
<para>
See the
"<link linkend='obtaining-bitbake'>Obtaining BitBake</link>"
section for information on how to obtain BitBake.
Once you have the source code on your machine, the BitBake directory
appears as follows:
<literallayout class='monospaced'>
$ ls -al
total 100
drwxrwxr-x. 9 wmat wmat 4096 Jan 31 13:44 .
drwxrwxr-x. 3 wmat wmat 4096 Feb 4 10:45 ..
-rw-rw-r--. 1 wmat wmat 365 Nov 26 04:55 AUTHORS
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 bin
drwxrwxr-x. 4 wmat wmat 4096 Jan 31 13:44 build
-rw-rw-r--. 1 wmat wmat 16501 Nov 26 04:55 ChangeLog
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 classes
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 conf
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 contrib
-rw-rw-r--. 1 wmat wmat 17987 Nov 26 04:55 COPYING
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 doc
-rw-rw-r--. 1 wmat wmat 69 Nov 26 04:55 .gitignore
-rw-rw-r--. 1 wmat wmat 849 Nov 26 04:55 HEADER
drwxrwxr-x. 5 wmat wmat 4096 Jan 31 13:44 lib
-rw-rw-r--. 1 wmat wmat 195 Nov 26 04:55 MANIFEST.in
-rw-rw-r--. 1 wmat wmat 2887 Nov 26 04:55 TODO
</literallayout>
</para>
<para>
At this point, you should have BitBake cloned to
a directory that matches the previous listing except for
dates and user names.
</para>
</section>
<section id='setting-up-the-bitbake-environment'>
<title>Setting Up the BitBake Environment</title>
<para>
First, you need to be sure that you can run BitBake.
Set your working directory to where your local BitBake
files are and run the following command:
<literallayout class='monospaced'>
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
</literallayout>
The console output tells you what version you are running.
</para>
<para>
The recommended method to run BitBake is from a directory of your
choice.
To be able to run BitBake from any directory, you need to add the
executable binary to your binary to your shell's environment
<filename>PATH</filename> variable.
First, look at your current <filename>PATH</filename> variable
by entering the following:
<literallayout class='monospaced'>
$ echo $PATH
</literallayout>
Next, add the directory location for the BitBake binary to the
<filename>PATH</filename>.
Here is an example that adds the
<filename>/home/scott-lenovo/bitbake/bin</filename> directory
to the front of the <filename>PATH</filename> variable:
<literallayout class='monospaced'>
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
</literallayout>
You should now be able to enter the <filename>bitbake</filename>
command from the command line while working from any directory.
</para>
</section>
<section id='the-hello-world-example'>
<title>The Hello World Example</title>
<para>
The overall goal of this exercise is to build a
complete "Hello World" example utilizing task and layer
concepts.
Because this is how modern projects such as OpenEmbedded and
the Yocto Project utilize BitBake, the example
provides an excellent starting point for understanding
BitBake.
</para>
<para>
To help you understand how to use BitBake to build targets,
the example starts with nothing but the <filename>bitbake</filename>
command, which causes BitBake to fail and report problems.
The example progresses by adding pieces to the build to
eventually conclude with a working, minimal "Hello World"
example.
</para>
<para>
While every attempt is made to explain what is happening during
the example, the descriptions cannot cover everything.
You can find further information throughout this manual.
Also, you can actively participate in the
<ulink url='http://lists.openembedded.org/mailman/listinfo/bitbake-devel'></ulink>
discussion mailing list about the BitBake build tool.
</para>
<note>
This example was inspired by and drew heavily from these sources:
<itemizedlist>
<listitem><para>
<ulink url="http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html">Mailing List post - The BitBake equivalent of "Hello, World!"</ulink>
</para></listitem>
<listitem><para>
<ulink url="https://web.archive.org/web/20150325165911/http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/">Hambedded Linux blog post - From Bitbake Hello World to an Image</ulink>
</para></listitem>
</itemizedlist>
</note>
<para>
As stated earlier, the goal of this example
is to eventually compile "Hello World".
However, it is unknown what BitBake needs and what you have
to provide in order to achieve that goal.
Recall that BitBake utilizes three types of metadata files:
<link linkend='configuration-files'>Configuration Files</link>,
<link linkend='classes'>Classes</link>, and
<link linkend='recipes'>Recipes</link>.
But where do they go?
How does BitBake find them?
BitBake's error messaging helps you answer these types of questions
and helps you better understand exactly what is going on.
</para>
<para>
Following is the complete "Hello World" example.
</para>
<orderedlist>
<listitem><para><emphasis>Create a Project Directory:</emphasis>
First, set up a directory for the "Hello World" project.
Here is how you can do so in your home directory:
<literallayout class='monospaced'>
$ mkdir ~/hello
$ cd ~/hello
</literallayout>
This is the directory that BitBake will use to do all of
its work.
You can use this directory to keep all the metafiles needed
by BitBake.
Having a project directory is a good way to isolate your
project.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
At this point, you have nothing but a project directory.
Run the <filename>bitbake</filename> command and see what
it does:
<literallayout class='monospaced'>
$ bitbake
The BBPATH variable is not set and bitbake did not
find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
DEBUG: Removed the following variables from the environment:
GNOME_DESKTOP_SESSION_ID, XDG_CURRENT_DESKTOP,
GNOME_KEYRING_CONTROL, DISPLAY, SSH_AGENT_PID, LANG, no_proxy,
XDG_SESSION_PATH, XAUTHORITY, SESSION_MANAGER, SHLVL,
MANDATORY_PATH, COMPIZ_CONFIG_PROFILE, WINDOWID, EDITOR,
GPG_AGENT_INFO, SSH_AUTH_SOCK, GDMSESSION, GNOME_KEYRING_PID,
XDG_SEAT_PATH, XDG_CONFIG_DIRS, LESSOPEN, DBUS_SESSION_BUS_ADDRESS,
_, XDG_SESSION_COOKIE, DESKTOP_SESSION, LESSCLOSE, DEFAULTS_PATH,
UBUNTU_MENUPROXY, OLDPWD, XDG_DATA_DIRS, COLORTERM, LS_COLORS
</literallayout>
The majority of this output is specific to environment variables
that are not directly relevant to BitBake.
However, the very first message regarding the
<filename>BBPATH</filename> variable and the
<filename>conf/bblayers.conf</filename> file
is relevant.</para>
<para>
When you run BitBake, it begins looking for metadata files.
The
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
variable is what tells BitBake where to look for those files.
<filename>BBPATH</filename> is not set and you need to set it.
Without <filename>BBPATH</filename>, Bitbake cannot
find any configuration files (<filename>.conf</filename>)
or recipe files (<filename>.bb</filename>) at all.
BitBake also cannot find the <filename>bitbake.conf</filename>
file.
</para></listitem>
<listitem><para><emphasis>Setting <filename>BBPATH</filename>:</emphasis>
For this example, you can set <filename>BBPATH</filename>
in the same manner that you set <filename>PATH</filename>
earlier in the appendix.
You should realize, though, that it is much more flexible to set the
<filename>BBPATH</filename> variable up in a configuration
file for each project.</para>
<para>From your shell, enter the following commands to set and
export the <filename>BBPATH</filename> variable:
<literallayout class='monospaced'>
$ BBPATH="<replaceable>projectdirectory</replaceable>"
$ export BBPATH
</literallayout>
Use your actual project directory in the command.
BitBake uses that directory to find the metadata it needs for
your project.
<note>
When specifying your project directory, do not use the
tilde ("~") character as BitBake does not expand that character
as the shell would.
</note>
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
Now that you have <filename>BBPATH</filename> defined, run
the <filename>bitbake</filename> command again:
<literallayout class='monospaced'>
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 173, in parse_config_file
return bb.parse.handle(fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 99, in handle
return h['handle'](fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 120, in handle
abs_fn = resolve_file(fn, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 117, in resolve_file
raise IOError("file %s not found in %s" % (fn, bbpath))
IOError: file conf/bitbake.conf not found in /home/scott-lenovo/hello
ERROR: Unable to parse conf/bitbake.conf: file conf/bitbake.conf not found in /home/scott-lenovo/hello
</literallayout>
This sample output shows that BitBake could not find the
<filename>conf/bitbake.conf</filename> file in the project
directory.
This file is the first thing BitBake must find in order
to build a target.
And, since the project directory for this example is
empty, you need to provide a <filename>conf/bitbake.conf</filename>
file.
</para></listitem>
<listitem><para><emphasis>Creating <filename>conf/bitbake.conf</filename>:</emphasis>
The <filename>conf/bitbake.conf</filename> includes a number of
configuration variables BitBake uses for metadata and recipe
files.
For this example, you need to create the file in your project directory
and define some key BitBake variables.
For more information on the <filename>bitbake.conf</filename>,
see
<ulink url='https://web.archive.org/web/20150325165911/http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#an-overview-of-bitbakeconf'></ulink>
</para>
<para>Use the following commands to create the <filename>conf</filename>
directory in the project directory:
<literallayout class='monospaced'>
$ mkdir conf
</literallayout>
From within the <filename>conf</filename> directory, use
some editor to create the <filename>bitbake.conf</filename>
so that it contains the following:
<literallayout class='monospaced'>
TMPDIR = "${<link linkend='var-TOPDIR'>TOPDIR</link>}/tmp"
<link linkend='var-CACHE'>CACHE</link> = "${TMPDIR}/cache"
<link linkend='var-STAMP'>STAMP</link> = "${TMPDIR}/stamps"
<link linkend='var-T'>T</link> = "${TMPDIR}/work"
<link linkend='var-B'>B</link> = "${TMPDIR}"
</literallayout>
The <filename>TMPDIR</filename> variable establishes a directory
that BitBake uses for build output and intermediate files (other
than the cached information used by the
<link linkend='setscene'>Setscene</link> process.
Here, the <filename>TMPDIR</filename> directory is set to
<filename>hello/tmp</filename>.
<note><title>Tip</title>
You can always safely delete the <filename>tmp</filename>
directory in order to rebuild a BitBake target.
The build process creates the directory for you
when you run BitBake.
</note></para>
<para>For information about each of the other variables defined in this
example, click on the links to take you to the definitions in
the glossary.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
After making sure that the <filename>conf/bitbake.conf</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
<literallayout class='monospaced'>
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 177, in _inherit
bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 92, in inherit
include(fn, file, lineno, d, "inherit")
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 100, in include
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
</literallayout>
In the sample output, BitBake could not find the
<filename>classes/base.bbclass</filename> file.
You need to create that file next.
</para></listitem>
<listitem><para><emphasis>Creating <filename>classes/base.bbclass</filename>:</emphasis>
BitBake uses class files to provide common code and functionality.
The minimally required class for BitBake is the
<filename>classes/base.bbclass</filename> file.
The <filename>base</filename> class is implicitly inherited by
every recipe.
BitBake looks for the class in the <filename>classes</filename>
directory of the project (i.e <filename>hello/classes</filename>
in this example).
</para>
<para>Create the <filename>classes</filename> directory as follows:
<literallayout class='monospaced'>
$ cd $HOME/hello
$ mkdir classes
</literallayout>
Move to the <filename>classes</filename> directory and then
create the <filename>base.bbclass</filename> file by inserting
this single line:
<literallayout class='monospaced'>
addtask build
</literallayout>
The minimal task that BitBake runs is the
<filename>do_build</filename> task.
This is all the example needs in order to build the project.
Of course, the <filename>base.bbclass</filename> can have much
more depending on which build environments BitBake is
supporting.
For more information on the <filename>base.bbclass</filename> file,
you can look at
<ulink url='https://web.archive.org/web/20150325165911/http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#tasks'></ulink>.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
After making sure that the <filename>classes/base.bbclass</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
<literallayout class='monospaced'>
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
</literallayout>
BitBake is finally reporting no errors.
However, you can see that it really does not have anything
to do.
You need to create a recipe that gives BitBake something to do.
</para></listitem>
<listitem><para><emphasis>Creating a Layer:</emphasis>
While it is not really necessary for such a small example,
it is good practice to create a layer in which to keep your
code separate from the general metadata used by BitBake.
Thus, this example creates and uses a layer called "mylayer".
<note>
You can find additional information on adding a layer at
<ulink url='https://web.archive.org/web/20150325165911/http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#adding-an-example-layer'></ulink>.
</note>
</para>
<para>Minimally, you need a recipe file and a layer configuration
file in your layer.
The configuration file needs to be in the <filename>conf</filename>
directory inside the layer.
Use these commands to set up the layer and the <filename>conf</filename>
directory:
<literallayout class='monospaced'>
$ cd $HOME
$ mkdir mylayer
$ cd mylayer
$ mkdir conf
</literallayout>
Move to the <filename>conf</filename> directory and create a
<filename>layer.conf</filename> file that has the following:
<literallayout class='monospaced'>
BBPATH .= ":${<link linkend='var-LAYERDIR'>LAYERDIR</link>}"
<link linkend='var-BBFILES'>BBFILES</link> += "${LAYERDIR}/*.bb"
<link linkend='var-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</link> += "mylayer"
<link linkend='var-BBFILE_PATTERN'>BBFILE_PATTERN_mylayer</link> := "^${LAYERDIR_RE}/"
</literallayout>
For information on these variables, click the links
to go to the definitions in the glossary.</para>
<para>You need to create the recipe file next.
Inside your layer at the top-level, use an editor and create
a recipe file named <filename>printhello.bb</filename> that
has the following:
<literallayout class='monospaced'>
<link linkend='var-DESCRIPTION'>DESCRIPTION</link> = "Prints Hello World"
<link linkend='var-PN'>PN</link> = 'printhello'
<link linkend='var-PV'>PV</link> = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
</literallayout>
The recipe file simply provides a description of the
recipe, the name, version, and the <filename>do_build</filename>
task, which prints out "Hello World" to the console.
For more information on these variables, follow the links
to the glossary.
</para></listitem>
<listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
Now that a BitBake target exists, run the command and provide
that target:
<literallayout class='monospaced'>
$ cd $HOME/hello
$ bitbake printhello
ERROR: no recipe files to build, check your BBPATH and BBFILES?
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
</literallayout>
We have created the layer with the recipe and the layer
configuration file but it still seems that BitBake cannot
find the recipe.
BitBake needs a <filename>conf/bblayers.conf</filename> that
lists the layers for the project.
Without this file, BitBake cannot find the recipe.
</para></listitem>
<listitem><para><emphasis>Creating <filename>conf/bblayers.conf</filename>:</emphasis>
BitBake uses the <filename>conf/bblayers.conf</filename> file
to locate layers needed for the project.
This file must reside in the <filename>conf</filename> directory
of the project (i.e. <filename>hello/conf</filename> for this
example).</para>
<para>Set your working directory to the <filename>hello/conf</filename>
directory and then create the <filename>bblayers.conf</filename>
file so that it contains the following:
<literallayout class='monospaced'>
BBLAYERS ?= " \
/home/&lt;you&gt;/mylayer \
"
</literallayout>
You need to provide your own information for
<filename>you</filename> in the file.
</para></listitem>
<listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
Now that you have supplied the <filename>bblayers.conf</filename>
file, run the <filename>bitbake</filename> command and provide
the target:
<literallayout class='monospaced'>
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|
Time: 00:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
********************
* *
* Hello, World! *
* *
********************
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
</literallayout>
BitBake finds the <filename>printhello</filename> recipe and
successfully runs the task.
<note>
After the first execution, re-running
<filename>bitbake printhello</filename> again will not
result in a BitBake run that prints the same console
output.
The reason for this is that the first time the
<filename>printhello.bb</filename> recipe's
<filename>do_build</filename> task executes
successfully, BitBake writes a stamp file for the task.
Thus, the next time you attempt to run the task
using that same <filename>bitbake</filename> command,
BitBake notices the stamp and therefore determines
that the task does not need to be re-run.
If you delete the <filename>tmp</filename> directory
or run <filename>bitbake -c clean printhello</filename>
and then re-run the build, the "Hello, World!" message will
be printed again.
</note>
</para></listitem>
</orderedlist>
</section>
</appendix>

View File

@@ -1,651 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
========
Overview
========
|
Welcome to the BitBake User Manual. This manual provides information on
the BitBake tool. The information attempts to be as independent as
possible regarding systems that use BitBake, such as OpenEmbedded and
the Yocto Project. In some cases, scenarios or examples within the
context of a build system are used in the manual to help with
understanding. For these cases, the manual clearly states the context.
.. _intro:
Introduction
============
Fundamentally, BitBake is a generic task execution engine that allows
shell and Python tasks to be run efficiently and in parallel while
working within complex inter-task dependency constraints. One of
BitBake's main users, OpenEmbedded, takes this core and builds embedded
Linux software stacks using a task-oriented approach.
Conceptually, BitBake is similar to GNU Make in some regards but has
significant differences:
- BitBake executes tasks according to provided metadata that builds up
the tasks. Metadata is stored in recipe (``.bb``) and related recipe
"append" (``.bbappend``) files, configuration (``.conf``) and
underlying include (``.inc``) files, and in class (``.bbclass``)
files. The metadata provides BitBake with instructions on what tasks
to run and the dependencies between those tasks.
- BitBake includes a fetcher library for obtaining source code from
various places such as local files, source control systems, or
websites.
- The instructions for each unit to be built (e.g. a piece of software)
are known as "recipe" files and contain all the information about the
unit (dependencies, source file locations, checksums, description and
so on).
- BitBake includes a client/server abstraction and can be used from a
command line or used as a service over XML-RPC and has several
different user interfaces.
History and Goals
=================
BitBake was originally a part of the OpenEmbedded project. It was
inspired by the Portage package management system used by the Gentoo
Linux distribution. On December 7, 2004, OpenEmbedded project team
member Chris Larson split the project into two distinct pieces:
- BitBake, a generic task executor
- OpenEmbedded, a metadata set utilized by BitBake
Today, BitBake is the primary basis of the
`OpenEmbedded <http://www.openembedded.org/>`__ project, which is being
used to build and maintain Linux distributions such as the `Angstrom
Distribution <http://www.angstrom-distribution.org/>`__, and which is
also being used as the build tool for Linux projects such as the `Yocto
Project <http://www.yoctoproject.org>`__.
Prior to BitBake, no other build tool adequately met the needs of an
aspiring embedded Linux distribution. All of the build systems used by
traditional desktop Linux distributions lacked important functionality,
and none of the ad hoc Buildroot-based systems, prevalent in the
embedded space, were scalable or maintainable.
Some important original goals for BitBake were:
- Handle cross-compilation.
- Handle inter-package dependencies (build time on target architecture,
build time on native architecture, and runtime).
- Support running any number of tasks within a given package,
including, but not limited to, fetching upstream sources, unpacking
them, patching them, configuring them, and so forth.
- Be Linux distribution agnostic for both build and target systems.
- Be architecture agnostic.
- Support multiple build and target operating systems (e.g. Cygwin, the
BSDs, and so forth).
- Be self-contained, rather than tightly integrated into the build
machine's root filesystem.
- Handle conditional metadata on the target architecture, operating
system, distribution, and machine.
- Be easy to use the tools to supply local metadata and packages
against which to operate.
- Be easy to use BitBake to collaborate between multiple projects for
their builds.
- Provide an inheritance mechanism to share common metadata between
many packages.
Over time it became apparent that some further requirements were
necessary:
- Handle variants of a base recipe (e.g. native, sdk, and multilib).
- Split metadata into layers and allow layers to enhance or override
other layers.
- Allow representation of a given set of input variables to a task as a
checksum. Based on that checksum, allow acceleration of builds with
prebuilt components.
BitBake satisfies all the original requirements and many more with
extensions being made to the basic functionality to reflect the
additional requirements. Flexibility and power have always been the
priorities. BitBake is highly extensible and supports embedded Python
code and execution of any arbitrary tasks.
.. _Concepts:
Concepts
========
BitBake is a program written in the Python language. At the highest
level, BitBake interprets metadata, decides what tasks are required to
run, and executes those tasks. Similar to GNU Make, BitBake controls how
software is built. GNU Make achieves its control through "makefiles",
while BitBake uses "recipes".
BitBake extends the capabilities of a simple tool like GNU Make by
allowing for the definition of much more complex tasks, such as
assembling entire embedded Linux distributions.
The remainder of this section introduces several concepts that should be
understood in order to better leverage the power of BitBake.
Recipes
-------
BitBake Recipes, which are denoted by the file extension ``.bb``, are
the most basic metadata files. These recipe files provide BitBake with
the following:
- Descriptive information about the package (author, homepage, license,
and so on)
- The version of the recipe
- Existing dependencies (both build and runtime dependencies)
- Where the source code resides and how to fetch it
- Whether the source code requires any patches, where to find them, and
how to apply them
- How to configure and compile the source code
- How to assemble the generated artifacts into one or more installable
packages
- Where on the target machine to install the package or packages
created
Within the context of BitBake, or any project utilizing BitBake as its
build system, files with the ``.bb`` extension are referred to as
recipes.
.. note::
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged output from
a project, it is best to maintain a single descriptive term -
"recipes". Put another way, a single "recipe" file is quite capable
of generating a number of related but separately installable
"packages". In fact, that ability is fairly common.
Configuration Files
-------------------
Configuration files, which are denoted by the ``.conf`` extension,
define various configuration variables that govern the project's build
process. These files fall into several areas that define machine
configuration, distribution configuration, possible compiler tuning,
general common configuration, and user configuration. The main
configuration file is the sample ``bitbake.conf`` file, which is located
within the BitBake source tree ``conf`` directory.
Classes
-------
Class files, which are denoted by the ``.bbclass`` extension, contain
information that is useful to share between metadata files. The BitBake
source tree currently comes with one class metadata file called
``base.bbclass``. You can find this file in the ``classes`` directory.
The ``base.bbclass`` class files is special since it is always included
automatically for all recipes and classes. This class contains
definitions for standard basic tasks such as fetching, unpacking,
configuring (empty by default), compiling (runs any Makefile present),
installing (empty by default) and packaging (empty by default). These
tasks are often overridden or extended by other classes added during the
project development process.
Layers
------
Layers allow you to isolate different types of customizations from each
other. While you might find it tempting to keep everything in one layer
when working on a single project, the more modular your metadata, the
easier it is to cope with future changes.
To illustrate how you can use layers to keep things modular, consider
customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
rather than a general layer, called a Board Support Package (BSP) layer.
Furthermore, the machine customizations should be isolated from recipes
and metadata that support a new GUI environment, for example. This
situation gives you a couple of layers: one for the machine
configurations and one for the GUI environment. It is important to
understand, however, that the BSP layer can still make machine-specific
additions to recipes within the GUI environment layer without polluting
the GUI layer itself with those machine-specific changes. You can
accomplish this through a recipe that is a BitBake append
(``.bbappend``) file.
.. _append-bbappend-files:
Append Files
------------
Append files, which are files that have the ``.bbappend`` file
extension, extend or override information in an existing recipe file.
BitBake expects every append file to have a corresponding recipe file.
Furthermore, the append file and corresponding recipe file must use the
same root filename. The filenames can differ only in the file type
suffix used (e.g. ``formfactor_0.0.bb`` and
``formfactor_0.0.bbappend``).
Information in append files extends or overrides the information in the
underlying, similarly-named recipe files.
When you name an append file, you can use the "``%``" wildcard character
to allow for matching recipe names. For example, suppose you have an
append file named as follows: ::
busybox_1.21.%.bbappend
That append file
would match any ``busybox_1.21.``\ x\ ``.bb`` version of the recipe. So,
the append file would match the following recipe names: ::
busybox_1.21.1.bb
busybox_1.21.2.bb
busybox_1.21.3.bb
.. note::
The use of the " % " character is limited in that it only works directly in
front of the .bbappend portion of the append file's name. You cannot use the
wildcard character in any other location of the name.
If the ``busybox`` recipe was updated to ``busybox_1.3.0.bb``, the
append name would not match. However, if you named the append file
``busybox_1.%.bbappend``, then you would have a match.
In the most general case, you could name the append file something as
simple as ``busybox_%.bbappend`` to be entirely version independent.
Obtaining BitBake
=================
You can obtain BitBake several different ways:
- **Cloning BitBake:** Using Git to clone the BitBake source code
repository is the recommended method for obtaining BitBake. Cloning
the repository makes it easy to get bug fixes and have access to
stable branches and the master branch. Once you have cloned BitBake,
you should use the latest stable branch for development since the
master branch is for BitBake development and might contain less
stable changes.
You usually need a version of BitBake that matches the metadata you
are using. The metadata is generally backwards compatible but not
forward compatible.
Here is an example that clones the BitBake repository: ::
$ git clone git://git.openembedded.org/bitbake
This command clones the BitBake
Git repository into a directory called ``bitbake``. Alternatively,
you can designate a directory after the ``git clone`` command if you
want to call the new directory something other than ``bitbake``. Here
is an example that names the directory ``bbdev``: ::
$ git clone git://git.openembedded.org/bitbake bbdev
- **Installation using your Distribution Package Management System:**
This method is not recommended because the BitBake version that is
provided by your distribution, in most cases, is several releases
behind a snapshot of the BitBake repository.
- **Taking a snapshot of BitBake:** Downloading a snapshot of BitBake
from the source code repository gives you access to a known branch or
release of BitBake.
.. note::
Cloning the Git repository, as described earlier, is the preferred
method for getting BitBake. Cloning the repository makes it easier
to update as patches are added to the stable branches.
The following example downloads a snapshot of BitBake version 1.17.0: ::
$ wget http://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
After extraction of the tarball using
the tar utility, you have a directory entitled ``bitbake-1.17.0``.
- **Using the BitBake that Comes With Your Build Checkout:** A final
possibility for getting a copy of BitBake is that it already comes
with your checkout of a larger BitBake-based build system, such as
Poky. Rather than manually checking out individual layers and gluing
them together yourself, you can check out an entire build system. The
checkout will already include a version of BitBake that has been
thoroughly tested for compatibility with the other components. For
information on how to check out a particular BitBake-based build
system, consult that build system's supporting documentation.
.. _bitbake-user-manual-command:
The BitBake Command
===================
The ``bitbake`` command is the primary interface to the BitBake tool.
This section presents the BitBake command syntax and provides several
execution examples.
Usage and syntax
----------------
Following is the usage and syntax for BitBake: ::
$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
will provide the layer, BBFILES and other configuration information.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue Continue as much as possible after an error. While the
target that failed and anything depending on it cannot
be built, as much as possible will be built before
stopping.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD Specify the task to execute. The exact options
available depend on the metadata. Some examples might
be 'compile' or 'populate_sysroot' or 'listtasks' may
give a list of the tasks available.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Enable tracing of shell tasks (with 'set -x'). Also
print bb.note(...) messages to stdout (in addition to
writing them to ${T}/log.do_&lt;task&gt;).
-D, --debug Increase the debug level. You can specify this more
than once. -D sets the debug level to 1, where only
bb.debug(1, ...) messages are printed to stdout; -DD
sets the debug level to 2, where both bb.debug(1, ...)
and bb.debug(2, ...) messages are printed; etc.
Without -D, no debug messages are printed. Note that
-D only affects output to stdout. All debug messages
are written to ${T}/log.do_taskname, regardless of the
debug level.
-q, --quiet Output less log message data to the terminal. You can
specify this more than once.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
Dump out the signature construction information, with
no task execution. The SIGNATURE_HANDLER parameter is
passed to the handler. Two common values are none and
printdiff but the handler may define more/less. none
means only dump the signature, printdiff means compare
the dumped signature with the cached one.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (knotty, ncurses or taskexp
- default knotty).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake xmlrpc server to bind
to.
-T SERVER_TIMEOUT, --idle-timeout=SERVER_TIMEOUT
Set timeout to unload bitbake server due to
inactivity, set to -1 means no unload, default:
Environment variable BB_SERVER_TIMEOUT.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--setscene-only Only run setscene tasks, don't run any real tasks.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate any running bitbake server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
--runall=RUNALL Run the specified task for any recipe in the taskgraph
of the specified target (even if it wouldn't otherwise
have run).
--runonly=RUNONLY Run only the specified task within the taskgraph of
the specified targets (and any task dependencies those
tasks may have).
.. _bitbake-examples:
Examples
--------
This section presents some examples showing how to use BitBake.
.. _example-executing-a-task-against-a-single-recipe:
Executing a Task Against a Single Recipe
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Executing tasks for a single recipe file is relatively simple. You
specify the file in question, and BitBake parses it and executes the
specified task. If you do not specify a task, BitBake executes the
default task, which is "build". BitBake obeys inter-task dependencies
when doing so.
The following command runs the build task, which is the default task, on
the ``foo_1.0.bb`` recipe file: ::
$ bitbake -b foo_1.0.bb
The following command runs the clean task on the ``foo.bb`` recipe file: ::
$ bitbake -b foo.bb -c clean
.. note::
The "-b" option explicitly does not handle recipe dependencies. Other
than for debugging purposes, it is instead recommended that you use
the syntax presented in the next section.
Executing Tasks Against a Set of Recipe Files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are a number of additional complexities introduced when one wants
to manage multiple ``.bb`` files. Clearly there needs to be a way to
tell BitBake what files are available and, of those, which you want to
execute. There also needs to be a way for each recipe to express its
dependencies, both for build-time and runtime. There must be a way for
you to express recipe preferences when multiple recipes provide the same
functionality, or when there are multiple versions of a recipe.
The ``bitbake`` command, when not using "--buildfile" or "-b" only
accepts a "PROVIDES". You cannot provide anything else. By default, a
recipe file generally "PROVIDES" its "packagename" as shown in the
following example: ::
$ bitbake foo
This next example "PROVIDES" the
package name and also uses the "-c" option to tell BitBake to just
execute the ``do_clean`` task: ::
$ bitbake -c clean foo
Executing a List of Task and Recipe Combinations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The BitBake command line supports specifying different tasks for
individual targets when you specify multiple targets. For example,
suppose you had two targets (or recipes) ``myfirstrecipe`` and
``mysecondrecipe`` and you needed BitBake to run ``taskA`` for the first
recipe and ``taskB`` for the second recipe: ::
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
Generating Dependency Graphs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to generate dependency graphs using the ``dot`` syntax.
You can convert these graphs into images using the ``dot`` tool from
`Graphviz <http://www.graphviz.org>`__.
When you generate a dependency graph, BitBake writes two files to the
current working directory:
- ``task-depends.dot``: Shows dependencies between tasks. These
dependencies match BitBake's internal task execution list.
- ``pn-buildlist``: Shows a simple list of targets that are to be
built.
To stop depending on common depends, use the "-I" depend option and
BitBake omits them from the graph. Leaving this information out can
produce more readable graphs. This way, you can remove from the graph
``DEPENDS`` from inherited classes such as ``base.bbclass``.
Here are two examples that create dependency graphs. The second example
omits depends common in OpenEmbedded from the graph: ::
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
Executing a Multiple Configuration Build
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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".
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 ``conf`` named ``multiconfig``. Following is an example
for two separate targets:
.. image:: figures/bb_multiconfig_files.png
:align: center
The reason for this required file hierarchy is because the ``BBPATH``
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.
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.
Aside from separate configuration files for each target, you must also
enable BitBake to perform multiple configuration builds. Enabling is
accomplished by setting the
:term:`BBMULTICONFIG` variable in the
``local.conf`` configuration file. As an example, suppose you had
configuration files for ``target1`` and ``target2`` defined in the build
directory. The following statement in the ``local.conf`` file both
enables BitBake to perform multiple configuration builds and specifies
the two extra multiconfigs: ::
BBMULTICONFIG = "target1 target2"
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: ::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
Here is an example for two extra multiconfigs: ``target1`` and ``target2``: ::
$ bitbake mc::target mc:target1:target mc:target2:target
.. _bb-enabling-multiple-configuration-build-dependencies:
Enabling Multiple Configuration Build Dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
To enable dependencies in a multiple configuration build, you must
declare the dependencies in the recipe using the following statement
form: ::
task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend"
To better show how to use this statement, consider an example with two
multiconfigs: ``target1`` and ``target2``: ::
image_task[mcdepends] = "mc:target1:target2:image2:rootfs_task"
In this example, the
``from_multiconfig`` is "target1" and the ``to_multiconfig`` is "target2". The
task on which the image whose recipe contains image_task depends on the
completion of the rootfs_task used to build out image2, which is
associated with the "target2" multiconfig.
Once you set up this dependency, you can build the "target1" multiconfig
using a BitBake command as follows: ::
$ bitbake mc:target1:image1
This command executes all the tasks needed to create ``image1`` for the "target1"
multiconfig. Because of the dependency, BitBake also executes through
the ``rootfs_task`` for the "target2" multiconfig build.
Having a recipe depend on the root filesystem of another build might not
seem that useful. Consider this change to the statement in the image1
recipe: ::
image_task[mcdepends] = "mc:target1:target2:image2:image_task"
In this case, BitBake must create ``image2`` for the "target2" build since
the "target1" build depends on it.
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.

View File

@@ -0,0 +1,710 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id="bitbake-user-manual-intro">
<title>Overview</title>
<para>
Welcome to the BitBake User Manual.
This manual provides information on the BitBake tool.
The information attempts to be as independent as possible regarding
systems that use BitBake, such as OpenEmbedded and the
Yocto Project.
In some cases, scenarios or examples within the context of
a build system are used in the manual to help with understanding.
For these cases, the manual clearly states the context.
</para>
<section id="intro">
<title>Introduction</title>
<para>
Fundamentally, BitBake is a generic task execution
engine that allows shell and Python tasks to be run
efficiently and in parallel while working within
complex inter-task dependency constraints.
One of BitBake's main users, OpenEmbedded, takes this core
and builds embedded Linux software stacks using
a task-oriented approach.
</para>
<para>
Conceptually, BitBake is similar to GNU Make in
some regards but has significant differences:
<itemizedlist>
<listitem><para>
BitBake executes tasks according to provided
metadata that builds up the tasks.
Metadata is stored in recipe (<filename>.bb</filename>)
and related recipe "append" (<filename>.bbappend</filename>)
files, configuration (<filename>.conf</filename>) and
underlying include (<filename>.inc</filename>) files, and
in class (<filename>.bbclass</filename>) files.
The metadata provides
BitBake with instructions on what tasks to run and
the dependencies between those tasks.
</para></listitem>
<listitem><para>
BitBake includes a fetcher library for obtaining source
code from various places such as local files, source control
systems, or websites.
</para></listitem>
<listitem><para>
The instructions for each unit to be built (e.g. a piece
of software) are known as "recipe" files and
contain all the information about the unit
(dependencies, source file locations, checksums, description
and so on).
</para></listitem>
<listitem><para>
BitBake includes a client/server abstraction and can
be used from a command line or used as a service over
XML-RPC and has several different user interfaces.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id="history-and-goals">
<title>History and Goals</title>
<para>
BitBake was originally a part of the OpenEmbedded project.
It was inspired by the Portage package management system
used by the Gentoo Linux distribution.
On December 7, 2004, OpenEmbedded project team member
Chris Larson split the project into two distinct pieces:
<itemizedlist>
<listitem><para>BitBake, a generic task executor</para></listitem>
<listitem><para>OpenEmbedded, a metadata set utilized by
BitBake</para></listitem>
</itemizedlist>
Today, BitBake is the primary basis of the
<ulink url="http://www.openembedded.org/">OpenEmbedded</ulink>
project, which is being used to build and maintain Linux
distributions such as the
<ulink url='http://www.angstrom-distribution.org/'>Angstrom Distribution</ulink>,
and which is also being used as the build tool for Linux projects
such as the
<ulink url='http://www.yoctoproject.org'>Yocto Project</ulink>.
</para>
<para>
Prior to BitBake, no other build tool adequately met the needs of
an aspiring embedded Linux distribution.
All of the build systems used by traditional desktop Linux
distributions lacked important functionality, and none of the
ad hoc Buildroot-based systems, prevalent in the
embedded space, were scalable or maintainable.
</para>
<para>
Some important original goals for BitBake were:
<itemizedlist>
<listitem><para>
Handle cross-compilation.
</para></listitem>
<listitem><para>
Handle inter-package dependencies (build time on
target architecture, build time on native
architecture, and runtime).
</para></listitem>
<listitem><para>
Support running any number of tasks within a given
package, including, but not limited to, fetching
upstream sources, unpacking them, patching them,
configuring them, and so forth.
</para></listitem>
<listitem><para>
Be Linux distribution agnostic for both build and
target systems.
</para></listitem>
<listitem><para>
Be architecture agnostic.
</para></listitem>
<listitem><para>
Support multiple build and target operating systems
(e.g. Cygwin, the BSDs, and so forth).
</para></listitem>
<listitem><para>
Be self contained, rather than tightly
integrated into the build machine's root
filesystem.
</para></listitem>
<listitem><para>
Handle conditional metadata on the target architecture,
operating system, distribution, and machine.
</para></listitem>
<listitem><para>
Be easy to use the tools to supply local metadata and packages
against which to operate.
</para></listitem>
<listitem><para>
Be easy to use BitBake to collaborate between multiple
projects for their builds.
</para></listitem>
<listitem><para>
Provide an inheritance mechanism to share
common metadata between many packages.
</para></listitem>
</itemizedlist>
Over time it became apparent that some further requirements
were necessary:
<itemizedlist>
<listitem><para>
Handle variants of a base recipe (e.g. native, sdk,
and multilib).
</para></listitem>
<listitem><para>
Split metadata into layers and allow layers
to enhance or override other layers.
</para></listitem>
<listitem><para>
Allow representation of a given set of input variables
to a task as a checksum.
Based on that checksum, allow acceleration of builds
with prebuilt components.
</para></listitem>
</itemizedlist>
BitBake satisfies all the original requirements and many more
with extensions being made to the basic functionality to
reflect the additional requirements.
Flexibility and power have always been the priorities.
BitBake is highly extensible and supports embedded Python code and
execution of any arbitrary tasks.
</para>
</section>
<section id="Concepts">
<title>Concepts</title>
<para>
BitBake is a program written in the Python language.
At the highest level, BitBake interprets metadata, decides
what tasks are required to run, and executes those tasks.
Similar to GNU Make, BitBake controls how software is
built.
GNU Make achieves its control through "makefiles", while
BitBake uses "recipes".
</para>
<para>
BitBake extends the capabilities of a simple
tool like GNU Make by allowing for the definition of much more
complex tasks, such as assembling entire embedded Linux
distributions.
</para>
<para>
The remainder of this section introduces several concepts
that should be understood in order to better leverage
the power of BitBake.
</para>
<section id='recipes'>
<title>Recipes</title>
<para>
BitBake Recipes, which are denoted by the file extension
<filename>.bb</filename>, are the most basic metadata files.
These recipe files provide BitBake with the following:
<itemizedlist>
<listitem><para>Descriptive information about the
package (author, homepage, license, and so on)</para></listitem>
<listitem><para>The version of the recipe</para></listitem>
<listitem><para>Existing dependencies (both build
and runtime dependencies)</para></listitem>
<listitem><para>Where the source code resides and
how to fetch it</para></listitem>
<listitem><para>Whether the source code requires
any patches, where to find them, and how to apply
them</para></listitem>
<listitem><para>How to configure and compile the
source code</para></listitem>
<listitem><para>Where on the target machine to install the
package or packages created</para></listitem>
</itemizedlist>
</para>
<para>
Within the context of BitBake, or any project utilizing BitBake
as its build system, files with the <filename>.bb</filename>
extension are referred to as recipes.
<note>
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged
output from a project, it is best to maintain a single
descriptive term - "recipes".
Put another way, a single "recipe" file is quite capable
of generating a number of related but separately installable
"packages".
In fact, that ability is fairly common.
</note>
</para>
</section>
<section id='configuration-files'>
<title>Configuration Files</title>
<para>
Configuration files, which are denoted by the
<filename>.conf</filename> extension, define
various configuration variables that govern the project's build
process.
These files fall into several areas that define
machine configuration options, distribution configuration
options, compiler tuning options, general common
configuration options, and user configuration options.
The main configuration file is the sample
<filename>bitbake.conf</filename> file, which is
located within the BitBake source tree
<filename>conf</filename> directory.
</para>
</section>
<section id='classes'>
<title>Classes</title>
<para>
Class files, which are denoted by the
<filename>.bbclass</filename> extension, contain
information that is useful to share between metadata files.
The BitBake source tree currently comes with one class metadata file
called <filename>base.bbclass</filename>.
You can find this file in the
<filename>classes</filename> directory.
The <filename>base.bbclass</filename> class files is special since it
is always included automatically for all recipes
and classes.
This class contains definitions for standard basic tasks such
as fetching, unpacking, configuring (empty by default),
compiling (runs any Makefile present), installing (empty by
default) and packaging (empty by default).
These tasks are often overridden or extended by other classes
added during the project development process.
</para>
</section>
<section id='layers'>
<title>Layers</title>
<para>
Layers allow you to isolate different types of
customizations from each other.
While you might find it tempting to keep everything in one layer
when working on a single project, the more modular you organize
your metadata, the easier it is to cope with future changes.
</para>
<para>
To illustrate how you can use layers to keep things modular,
consider customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
rather than a general layer, called a Board Support Package (BSP)
Layer.
Furthermore, the machine customizations should be isolated from
recipes and metadata that support a new GUI environment, for
example.
This situation gives you a couple of layers: one for the machine
configurations and one for the GUI environment.
It is important to understand, however, that the BSP layer can still
make machine-specific additions to recipes within
the GUI environment layer without polluting the GUI layer itself
with those machine-specific changes.
You can accomplish this through a recipe that is a BitBake append
(<filename>.bbappend</filename>) file.
</para>
</section>
<section id='append-bbappend-files'>
<title>Append Files</title>
<para>
Append files, which are files that have the
<filename>.bbappend</filename> file extension, extend or
override information in an existing recipe file.
</para>
<para>
BitBake expects every append file to have a corresponding recipe file.
Furthermore, the append file and corresponding recipe file
must use the same root filename.
The filenames can differ only in the file type suffix used
(e.g. <filename>formfactor_0.0.bb</filename> and
<filename>formfactor_0.0.bbappend</filename>).
</para>
<para>
Information in append files extends or
overrides the information in the underlying,
similarly-named recipe files.
</para>
<para>
When you name an append file, you can use the
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.x.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>
If the <filename>busybox</filename> recipe was updated to
<filename>busybox_1.3.0.bb</filename>, the append name would not
match.
However, if you named the append file
<filename>busybox_1.%.bbappend</filename>, then you would have a match.
</para>
<para>
In the most general case, you could name the append file something as
simple as <filename>busybox_%.bbappend</filename> to be entirely
version independent.
</para>
</section>
</section>
<section id='obtaining-bitbake'>
<title>Obtaining BitBake</title>
<para>
You can obtain BitBake several different ways:
<itemizedlist>
<listitem><para><emphasis>Cloning BitBake:</emphasis>
Using Git to clone the BitBake source code repository
is the recommended method for obtaining BitBake.
Cloning the repository makes it easy to get bug fixes
and have access to stable branches and the master
branch.
Once you have cloned BitBake, you should use
the latest stable
branch for development since the master branch is for
BitBake development and might contain less stable changes.
</para>
<para>You usually need a version of BitBake
that matches the metadata you are using.
The metadata is generally backwards compatible but
not forward compatible.</para>
<para>Here is an example that clones the BitBake repository:
<literallayout class='monospaced'>
$ git clone git://git.openembedded.org/bitbake
</literallayout>
This command clones the BitBake Git repository into a
directory called <filename>bitbake</filename>.
Alternatively, you can
designate a directory after the
<filename>git clone</filename> command
if you want to call the new directory something
other than <filename>bitbake</filename>.
Here is an example that names the directory
<filename>bbdev</filename>:
<literallayout class='monospaced'>
$ git clone git://git.openembedded.org/bitbake bbdev
</literallayout></para></listitem>
<listitem><para><emphasis>Installation using your Distribution
Package Management System:</emphasis>
This method is not
recommended because the BitBake version that is
provided by your distribution, in most cases,
is several
releases behind a snapshot of the BitBake repository.
</para></listitem>
<listitem><para><emphasis>Taking a snapshot of BitBake:</emphasis>
Downloading a snapshot of BitBake from the
source code repository gives you access to a known
branch or release of BitBake.
<note>
Cloning the Git repository, as described earlier,
is the preferred method for getting BitBake.
Cloning the repository makes it easier to update as
patches are added to the stable branches.
</note></para>
<para>The following example downloads a snapshot of
BitBake version 1.17.0:
<literallayout class='monospaced'>
$ wget http://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
</literallayout>
After extraction of the tarball using the tar utility,
you have a directory entitled
<filename>bitbake-1.17.0</filename>.
</para></listitem>
<listitem><para><emphasis>Using the BitBake that Comes With Your
Build Checkout:</emphasis>
A final possibility for getting a copy of BitBake is that it
already comes with your checkout of a larger Bitbake-based build
system, such as Poky or Yocto Project.
Rather than manually checking out individual layers and
gluing them together yourself, you can check
out an entire build system.
The checkout will already include a version of BitBake that
has been thoroughly tested for compatibility with the other
components.
For information on how to check out a particular BitBake-based
build system, consult that build system's supporting documentation.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id="bitbake-user-manual-command">
<title>The BitBake Command</title>
<para>
The <filename>bitbake</filename> command is the primary interface
to the BitBake tool.
This section presents the BitBake command syntax and provides
several execution examples.
</para>
<section id='usage-and-syntax'>
<title>Usage and syntax</title>
<para>
Following is the usage and syntax for BitBake:
<literallayout class='monospaced'>
$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
will provide the layer, BBFILES and other configuration information.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue Continue as much as possible after an error. While the
target that failed and anything depending on it cannot
be built, as much as possible will be built before
stopping.
-a, --tryaltconfigs Continue with builds by trying to use alternative
providers where possible.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD Specify the task to execute. The exact options
available depend on the metadata. Some examples might
be 'compile' or 'populate_sysroot' or 'listtasks' may
give a list of the tasks available.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Output more log message data to the terminal.
-D, --debug Increase the debug level. You can specify this more
than once.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
Dump out the signature construction information, with
no task execution. The SIGNATURE_HANDLER parameter is
passed to the handler. Two common values are none and
printdiff but the handler may define more/less. none
means only dump the signature, printdiff means compare
the dumped signature with the cached one.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (depexp, goggle, hob, knotty
or ncurses - default knotty).
-t SERVERTYPE, --servertype=SERVERTYPE
Choose which server type to use (process or xmlrpc -
default process).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake server to bind to.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate the remote server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
</literallayout>
</para>
</section>
<section id='bitbake-examples'>
<title>Examples</title>
<para>
This section presents some examples showing how to use BitBake.
</para>
<section id='example-executing-a-task-against-a-single-recipe'>
<title>Executing a Task Against a Single Recipe</title>
<para>
Executing tasks for a single recipe file is relatively simple.
You specify the file in question, and BitBake parses
it and executes the specified task.
If you do not specify a task, BitBake executes the default
task, which is "build”.
BitBake obeys inter-task dependencies when doing
so.
</para>
<para>
The following command runs the build task, which is
the default task, on the <filename>foo_1.0.bb</filename>
recipe file:
<literallayout class='monospaced'>
$ bitbake -b foo_1.0.bb
</literallayout>
The following command runs the clean task on the
<filename>foo.bb</filename> recipe file:
<literallayout class='monospaced'>
$ bitbake -b foo.bb -c clean
</literallayout>
<note>
The "-b" option explicitly does not handle recipe
dependencies.
Other than for debugging purposes, it is instead
recommended that you use the syntax presented in the
next section.
</note>
</para>
</section>
<section id='executing-tasks-against-a-set-of-recipe-files'>
<title>Executing Tasks Against a Set of Recipe Files</title>
<para>
There are a number of additional complexities introduced
when one wants to manage multiple <filename>.bb</filename>
files.
Clearly there needs to be a way to tell BitBake what
files are available and, of those, which you
want to execute.
There also needs to be a way for each recipe
to express its dependencies, both for build-time and
runtime.
There must be a way for you to express recipe preferences
when multiple recipes provide the same functionality, or when
there are multiple versions of a recipe.
</para>
<para>
The <filename>bitbake</filename> command, when not using
"--buildfile" or "-b" only accepts a "PROVIDES".
You cannot provide anything else.
By default, a recipe file generally "PROVIDES" its
"packagename" as shown in the following example:
<literallayout class='monospaced'>
$ bitbake foo
</literallayout>
This next example "PROVIDES" the package name and also uses
the "-c" option to tell BitBake to just execute the
<filename>do_clean</filename> task:
<literallayout class='monospaced'>
$ bitbake -c clean foo
</literallayout>
</para>
</section>
<section id='executing-a-list-of-task-and-recipe-combinations'>
<title>Executing a List of Task and Recipe Combinations</title>
<para>
The BitBake command line supports specifying different
tasks for individual targets when you specify multiple
targets.
For example, suppose you had two targets (or recipes)
<filename>myfirstrecipe</filename> and
<filename>mysecondrecipe</filename> and you needed
BitBake to run <filename>taskA</filename> for the first
recipe and <filename>taskB</filename> for the second
recipe:
<literallayout class='monospaced'>
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
</literallayout>
</para>
</section>
<section id='generating-dependency-graphs'>
<title>Generating Dependency Graphs</title>
<para>
BitBake is able to generate dependency graphs using
the <filename>dot</filename> syntax.
You can convert these graphs into images using the
<filename>dot</filename> tool from
<ulink url='http://www.graphviz.org'>Graphviz</ulink>.
</para>
<para>
When you generate a dependency graph, BitBake writes four files
to the current working directory:
<itemizedlist>
<listitem><para><emphasis><filename>package-depends.dot</filename>:</emphasis>
Shows BitBake's knowledge of dependencies between
runtime targets.
</para></listitem>
<listitem><para><emphasis><filename>pn-depends.dot</filename>:</emphasis>
Shows dependencies between build-time targets
(i.e. recipes).
</para></listitem>
<listitem><para><emphasis><filename>task-depends.dot</filename>:</emphasis>
Shows dependencies between tasks.
</para></listitem>
<listitem><para><emphasis><filename>pn-buildlist</filename>:</emphasis>
Shows a simple list of targets that are to be built.
</para></listitem>
</itemizedlist>
</para>
<para>
To stop depending on common depends, use the "-I" depend
option and BitBake omits them from the graph.
Leaving this information out can produce more readable graphs.
This way, you can remove from the graph
<filename>DEPENDS</filename> from inherited classes
such as <filename>base.bbclass</filename>.
</para>
<para>
Here are two examples that create dependency graphs.
The second example omits depends common in OpenEmbedded from
the graph:
<literallayout class='monospaced'>
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
</literallayout>
</para>
</section>
</section>
</section>
</chapter>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,984 @@
/*
Generic XHTML / DocBook XHTML CSS Stylesheet.
Browser wrangling and typographic design by
Oyvind Kolas / pippin@gimp.org
Customised for Poky by
Matthew Allum / mallum@o-hand.com
Thanks to:
Liam R. E. Quin
William Skaggs
Jakub Steiner
Structure
---------
The stylesheet is divided into the following sections:
Positioning
Margins, paddings, width, font-size, clearing.
Decorations
Borders, style
Colors
Colors
Graphics
Graphical backgrounds
Nasty IE tweaks
Workarounds needed to make it work in internet explorer,
currently makes the stylesheet non validating, but up until
this point it is validating.
Mozilla extensions
Transparency for footer
Rounded corners on boxes
*/
/*************** /
/ Positioning /
/ ***************/
body {
font-family: Verdana, Sans, sans-serif;
min-width: 640px;
width: 80%;
margin: 0em auto;
padding: 2em 5em 5em 5em;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color: #00557D;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: bold;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: bold;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: bold;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
.authorgroup {
background-color: transparent;
background-repeat: no-repeat;
padding-top: 256px;
background-image: url("figures/bitbake-title.png");
background-position: left top;
margin-top: -256px;
padding-right: 50px;
margin-left: 0px;
text-align: right;
width: 740px;
}
h3.author {
margin: 0em 0me 0em 0em;
padding: 0em 0em 0em 0em;
font-weight: normal;
font-size: 100%;
color: #333;
clear: both;
}
.author tt.email {
font-size: 66%;
}
.titlepage hr {
width: 0em;
clear: both;
}
.revhistory {
padding-top: 2em;
clear: both;
}
.toc,
.list-of-tables,
.list-of-examples,
.list-of-figures {
padding: 1.33em 0em 2.5em 0em;
color: #00557D;
}
.toc p,
.list-of-tables p,
.list-of-figures p,
.list-of-examples p {
padding: 0em 0em 0em 0em;
padding: 0em 0em 0.3em;
margin: 1.5em 0em 0em 0em;
}
.toc p b,
.list-of-tables p b,
.list-of-figures p b,
.list-of-examples p b{
font-size: 100.0%;
font-weight: bold;
}
.toc dl,
.list-of-tables dl,
.list-of-figures dl,
.list-of-examples dl {
margin: 0em 0em 0.5em 0em;
padding: 0em 0em 0em 0em;
}
.toc dt {
margin: 0em 0em 0em 0em;
padding: 0em 0em 0em 0em;
}
.toc dd {
margin: 0em 0em 0em 2.6em;
padding: 0em 0em 0em 0em;
}
div.glossary dl,
div.variablelist dl {
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
font-weight: normal;
width: 20em;
text-align: right;
}
.variablelist dl dt {
margin-top: 0.5em;
}
.glossary dl dd,
.variablelist dl dd {
margin-top: -1em;
margin-left: 25.5em;
}
.glossary dd p,
.variablelist dd p {
margin-top: 0em;
margin-bottom: 1em;
}
div.calloutlist table td {
padding: 0em 0em 0em 0em;
margin: 0em 0em 0em 0em;
}
div.calloutlist table td p {
margin-top: 0em;
margin-bottom: 1em;
}
div p.copyright {
text-align: left;
}
div.legalnotice p.legalnotice-title {
margin-bottom: 0em;
}
p {
line-height: 1.5em;
margin-top: 0em;
}
dl {
padding-top: 0em;
}
hr {
border: solid 1px;
}
.mediaobject,
.mediaobjectco {
text-align: center;
}
img {
border: none;
}
ul {
padding: 0em 0em 0em 1.5em;
}
ul li {
padding: 0em 0em 0em 0em;
}
ul li p {
text-align: left;
}
table {
width :100%;
}
th {
padding: 0.25em;
text-align: left;
font-weight: normal;
vertical-align: top;
}
td {
padding: 0.25em;
vertical-align: top;
}
p a[id] {
margin: 0px;
padding: 0px;
display: inline;
background-image: none;
}
a {
text-decoration: underline;
color: #444;
}
pre {
overflow: auto;
}
a:hover {
text-decoration: underline;
/*font-weight: bold;*/
}
/* This style defines how the permalink character
appears by itself and when hovered over with
the mouse. */
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }
div.informalfigure,
div.informalexample,
div.informaltable,
div.figure,
div.table,
div.example {
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
div.informalfigure p.title b,
div.informalexample p.title b,
div.informaltable p.title b,
div.figure p.title b,
div.example p.title b,
div.table p.title b{
padding-top: 0em;
margin-top: 0em;
font-size: 100%;
font-weight: normal;
}
.mediaobject .caption,
.mediaobject .caption p {
text-align: center;
font-size: 80%;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
.epigraph {
padding-left: 55%;
margin-bottom: 1em;
}
.epigraph p {
text-align: left;
}
.epigraph .quote {
font-style: italic;
}
.epigraph .attribution {
font-style: normal;
text-align: right;
}
span.application {
font-style: italic;
}
.programlisting {
font-family: monospace;
font-size: 80%;
white-space: pre;
margin: 1.33em 0em;
padding: 1.33em;
}
.tip,
.warning,
.caution,
.note {
margin-top: 1em;
margin-bottom: 1em;
}
/* force full width of table within div */
.tip table,
.warning table,
.caution table,
.note table {
border: none;
width: 100%;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
padding: 0.8em 0.0em 0.0em 0.0em;
margin : 0em 0em 0em 0em;
}
.tip p,
.warning p,
.caution p,
.note p {
margin-top: 0.5em;
margin-bottom: 0.5em;
padding-right: 1em;
text-align: left;
}
.acronym {
text-transform: uppercase;
}
b.keycap,
.keycap {
padding: 0.09em 0.3em;
margin: 0em;
}
.itemizedlist li {
clear: none;
}
.filename {
font-size: medium;
font-family: Courier, monospace;
}
div.navheader, div.heading{
position: absolute;
left: 0em;
top: 0em;
width: 100%;
background-color: #cdf;
width: 100%;
}
div.navfooter, div.footing{
position: fixed;
left: 0em;
bottom: 0em;
background-color: #eee;
width: 100%;
}
div.navheader td,
div.navfooter td {
font-size: 66%;
}
div.navheader table th {
/*font-family: Georgia, Times, serif;*/
/*font-size: x-large;*/
font-size: 80%;
}
div.navheader table {
border-left: 0em;
border-right: 0em;
border-top: 0em;
width: 100%;
}
div.navfooter table {
border-left: 0em;
border-right: 0em;
border-bottom: 0em;
width: 100%;
}
div.navheader table td a,
div.navfooter table td a {
color: #777;
text-decoration: none;
}
/* normal text in the footer */
div.navfooter table td {
color: black;
}
div.navheader table td a:visited,
div.navfooter table td a:visited {
color: #444;
}
/* links in header and footer */
div.navheader table td a:hover,
div.navfooter table td a:hover {
text-decoration: underline;
background-color: transparent;
color: #33a;
}
div.navheader hr,
div.navfooter hr {
display: none;
}
.qandaset tr.question td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.qandaset tr.answer td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.answer td {
padding-bottom: 1.5em;
}
.emphasis {
font-weight: bold;
}
/************* /
/ decorations /
/ *************/
.titlepage {
}
.part .title {
}
.subtitle {
border: none;
}
/*
h1 {
border: none;
}
h2 {
border-top: solid 0.2em;
border-bottom: solid 0.06em;
}
h3 {
border-top: 0em;
border-bottom: solid 0.06em;
}
h4 {
border: 0em;
border-bottom: solid 0.06em;
}
h5 {
border: 0em;
}
*/
.programlisting {
border: solid 1px;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example {
border: 1px solid;
}
.tip,
.warning,
.caution,
.note {
border: 1px solid;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom: 1px solid;
}
.question td {
border-top: 1px solid black;
}
.answer {
}
b.keycap,
.keycap {
border: 1px solid;
}
div.navheader, div.heading{
border-bottom: 1px solid;
}
div.navfooter, div.footing{
border-top: 1px solid;
}
/********* /
/ colors /
/ *********/
body {
color: #333;
background: white;
}
a {
background: transparent;
}
a:hover {
background-color: #dedede;
}
h1,
h2,
h3,
h4,
h5,
h6,
h7,
h8 {
background-color: transparent;
}
hr {
border-color: #aaa;
}
.tip, .warning, .caution, .note {
border-color: #fff;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom-color: #fff;
}
.warning {
background-color: #f0f0f2;
}
.caution {
background-color: #f0f0f2;
}
.tip {
background-color: #f0f0f2;
}
.note {
background-color: #f0f0f2;
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
color: #044;
}
div.figure,
div.table,
div.example,
div.informalfigure,
div.informaltable,
div.informalexample {
border-color: #aaa;
}
pre.programlisting {
color: black;
background-color: #fff;
border-color: #aaa;
border-width: 2px;
}
.guimenu,
.guilabel,
.guimenuitem {
background-color: #eee;
}
b.keycap,
.keycap {
background-color: #eee;
border-color: #999;
}
div.navheader {
border-color: black;
}
div.navfooter {
border-color: black;
}
/*********** /
/ graphics /
/ ***********/
/*
body {
background-image: url("images/body_bg.jpg");
background-attachment: fixed;
}
.navheader,
.note,
.tip {
background-image: url("images/note_bg.jpg");
background-attachment: fixed;
}
.warning,
.caution {
background-image: url("images/warning_bg.jpg");
background-attachment: fixed;
}
.figure,
.informalfigure,
.example,
.informalexample,
.table,
.informaltable {
background-image: url("images/figure_bg.jpg");
background-attachment: fixed;
}
*/
h1,
h2,
h3,
h4,
h5,
h6,
h7{
}
/*
Example of how to stick an image as part of the title.
div.article .titlepage .title
{
background-image: url("figures/white-on-black.png");
background-position: center;
background-repeat: repeat-x;
}
*/
div.preface .titlepage .title,
div.colophon .title,
div.chapter .titlepage .title,
div.article .titlepage .title
{
}
div.section div.section .titlepage .title,
div.sect2 .titlepage .title {
background: none;
}
h1.title {
background-color: transparent;
background-repeat: no-repeat;
height: 256px;
text-indent: -9000px;
overflow:hidden;
}
h2.subtitle {
background-color: transparent;
text-indent: -9000px;
overflow:hidden;
width: 0px;
display: none;
}
/*************************************** /
/ pippin.gimp.org specific alterations /
/ ***************************************/
/*
div.heading, div.navheader {
color: #777;
font-size: 80%;
padding: 0;
margin: 0;
text-align: left;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 50px;
background: url('/gfx/heading_bg.png') transparent;
background-repeat: repeat-x;
background-attachment: fixed;
border: none;
}
div.heading a {
color: #444;
}
div.footing, div.navfooter {
border: none;
color: #ddd;
font-size: 80%;
text-align:right;
width: 100%;
padding-top: 10px;
position: absolute;
bottom: 0px;
left: 0px;
background: url('/gfx/footing_bg.png') transparent;
}
*/
/****************** /
/ nasty ie tweaks /
/ ******************/
/*
div.heading, div.navheader {
width:expression(document.body.clientWidth + "px");
}
div.footing, div.navfooter {
width:expression(document.body.clientWidth + "px");
margin-left:expression("-5em");
}
body {
padding:expression("4em 5em 0em 5em");
}
*/
/**************************************** /
/ mozilla vendor specific css extensions /
/ ****************************************/
/*
div.navfooter, div.footing{
-moz-opacity: 0.8em;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example,
.tip,
.warning,
.caution,
.note {
-moz-border-radius: 0.5em;
}
b.keycap,
.keycap {
-moz-border-radius: 0.3em;
}
*/
table tr td table tr td {
display: none;
}
hr {
display: none;
}
table {
border: 0em;
}
.photo {
float: right;
margin-left: 1.5em;
margin-bottom: 1.5em;
margin-top: 0em;
max-width: 17em;
border: 1px solid gray;
padding: 3px;
background: white;
}
.seperator {
padding-top: 2em;
clear: both;
}
#validators {
margin-top: 5em;
text-align: right;
color: #777;
}
@media print {
body {
font-size: 8pt;
}
.noprint {
display: none;
}
}
.tip,
.note {
background: #f0f0f2;
color: #333;
padding: 20px;
margin: 20px;
}
.tip h3,
.note h3 {
padding: 0em;
margin: 0em;
font-size: 2em;
font-weight: bold;
color: #333;
}
.tip a,
.note a {
color: #333;
text-decoration: underline;
}
.footnote {
font-size: small;
color: #333;
}
/* Changes the announcement text */
.tip h3,
.warning h3,
.caution h3,
.note h3 {
font-size:large;
color: #00557D;
}

View File

@@ -0,0 +1,88 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id='bitbake-user-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
<bookinfo>
<mediaobject>
<imageobject>
<imagedata fileref='figures/bitbake-title.png'
format='SVG'
align='left' scalefit='1' width='100%'/>
</imageobject>
</mediaobject>
<title>
BitBake User Manual
</title>
<authorgroup>
<author>
<firstname>Richard Purdie, Chris Larson, and </firstname> <surname>Phil Blundell</surname>
<affiliation>
<orgname>BitBake Community</orgname>
</affiliation>
<email>bitbake-devel@lists.openembedded.org</email>
</author>
</authorgroup>
<!--
# Add in some revision history if we want it here.
<revhistory>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
</revhistory>
-->
<copyright>
<year>2004-2016</year>
<holder>Richard Purdie</holder>
<holder>Chris Larson</holder>
<holder>and Phil Blundell</holder>
</copyright>
<legalnotice>
<para>
This work is licensed under the Creative Commons Attribution License.
To view a copy of this license, visit
<ulink url="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</ulink>
or send a letter to Creative Commons, 444 Castro Street,
Suite 900, Mountain View, California 94041, USA.
</para>
</legalnotice>
</bookinfo>
<xi:include href="bitbake-user-manual-intro.xml"/>
<xi:include href="bitbake-user-manual-execution.xml"/>
<xi:include href="bitbake-user-manual-metadata.xml"/>
<xi:include href="bitbake-user-manual-fetching.xml"/>
<xi:include href="bitbake-user-manual-ref-variables.xml"/>
<xi:include href="bitbake-user-manual-hello.xml"/>
</book>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,281 @@
/* Feuille de style DocBook du projet Traduc.org */
/* DocBook CSS stylesheet of the Traduc.org project */
/* (c) Jean-Philippe Gu<47>rard - 14 ao<61>t 2004 */
/* (c) Jean-Philippe Gu<47>rard - 14 August 2004 */
/* Cette feuille de style est libre, vous pouvez la */
/* redistribuer et la modifier selon les termes de la Licence */
/* Art Libre. Vous trouverez un exemplaire de cette Licence sur */
/* http://tigreraye.org/Petit-guide-du-traducteur.html#licence-art-libre */
/* This work of art is free, you can redistribute it and/or */
/* modify it according to terms of the Free Art license. You */
/* will find a specimen of this license on the Copyleft */
/* Attitude web site: http://artlibre.org as well as on other */
/* sites. */
/* Please note that the French version of this licence as shown */
/* on http://tigreraye.org/Petit-guide-du-traducteur.html#licence-art-libre */
/* is only official licence of this document. The English */
/* is only provided to help you understand this licence. */
/* La derni<6E>re version de cette feuille de style est toujours */
/* disponible sur<75>: http://tigreraye.org/style.css */
/* Elle est <20>galement disponible sur<75>: */
/* http://www.traduc.org/docs/HOWTO/lecture/style.css */
/* The latest version of this stylesheet is available from: */
/* http://tigreraye.org/style.css */
/* It is also available on: */
/* http://www.traduc.org/docs/HOWTO/lecture/style.css */
/* N'h<>sitez pas <20> envoyer vos commentaires et corrections <20> */
/* Jean-Philippe Gu<47>rard <jean-philippe.guerard@tigreraye.org> */
/* Please send feedback and bug reports to */
/* Jean-Philippe Gu<47>rard <jean-philippe.guerard@tigreraye.org> */
/* $Id: style.css,v 1.14 2004/09/10 20:12:09 fevrier Exp fevrier $ */
/* Pr<50>sentation g<>n<EFBFBD>rale du document */
/* Overall document presentation */
body {
/*
font-family: Apolline, "URW Palladio L", Garamond, jGaramond,
"Bitstream Cyberbit", "Palatino Linotype", serif;
*/
margin: 7%;
background-color: white;
}
/* Taille du texte */
/* Text size */
* { font-size: 100%; }
/* Gestion des textes mis en relief imbriqu<71>s */
/* Embedded emphasis */
em { font-style: italic; }
em em { font-style: normal; }
em em em { font-style: italic; }
/* Titres */
/* Titles */
h1 { font-size: 200%; font-weight: 900; }
h2 { font-size: 160%; font-weight: 900; }
h3 { font-size: 130%; font-weight: bold; }
h4 { font-size: 115%; font-weight: bold; }
h5 { font-size: 108%; font-weight: bold; }
h6 { font-weight: bold; }
/* Nom de famille en petites majuscules (uniquement en fran<61>ais) */
/* Last names in small caps (for French only) */
*[class~="surname"]:lang(fr) { font-variant: small-caps; }
/* Blocs de citation */
/* Quotation blocs */
div[class~="blockquote"] {
border: solid 2px #AAA;
padding: 5px;
margin: 5px;
}
div[class~="blockquote"] > table {
border: none;
}
/* Blocs lit<69>raux<75>: fond gris clair */
/* Literal blocs: light gray background */
*[class~="literallayout"] {
background: #f0f0f0;
padding: 5px;
margin: 5px;
}
/* Programmes et captures texte<74>: fond bleu clair */
/* Listing and text screen snapshots: light blue background */
*[class~="programlisting"], *[class~="screen"] {
background: #f0f0ff;
padding: 5px;
margin: 5px;
}
/* Les textes <20> remplacer sont surlign<67>s en vert p<>le */
/* Replaceable text in highlighted in pale green */
*[class~="replaceable"] {
background-color: #98fb98;
font-style: normal; }
/* Tables<65>: fonds gris clair & bords simples */
/* Tables: light gray background and solid borders */
*[class~="table"] *[class~="title"] { width:100%; border: 0px; }
table {
border: 1px solid #aaa;
border-collapse: collapse;
padding: 2px;
margin: 5px;
}
/* Listes simples en style table */
/* Simples lists in table presentation */
table[class~="simplelist"] {
background-color: #F0F0F0;
margin: 5px;
border: solid 1px #AAA;
}
table[class~="simplelist"] td {
border: solid 1px #AAA;
}
/* Les tables */
/* Tables */
*[class~="table"] table {
background-color: #F0F0F0;
border: solid 1px #AAA;
}
*[class~="informaltable"] table { background-color: #F0F0F0; }
th,td {
vertical-align: baseline;
text-align: left;
padding: 0.1em 0.3em;
empty-cells: show;
}
/* Alignement des colonnes */
/* Colunms alignment */
td[align=center] , th[align=center] { text-align: center; }
td[align=right] , th[align=right] { text-align: right; }
td[align=left] , th[align=left] { text-align: left; }
td[align=justify] , th[align=justify] { text-align: justify; }
/* Pas de marge autour des images */
/* No inside margins for images */
img { border: 0; }
/* Les liens ne sont pas soulign<67>s */
/* No underlines for links */
:link , :visited , :active { text-decoration: none; }
/* Prudence<63>: cadre jaune et fond jaune clair */
/* Caution: yellow border and light yellow background */
*[class~="caution"] {
border: solid 2px yellow;
background-color: #ffffe0;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="caution"] th {
vertical-align: middle
}
*[class~="caution"] table {
background-color: #ffffe0;
border: none;
}
/* Note importante<74>: cadre jaune et fond jaune clair */
/* Important: yellow border and light yellow background */
*[class~="important"] {
border: solid 2px yellow;
background-color: #ffffe0;
padding: 1em 6px 1em;
margin: 5px;
}
*[class~="important"] th {
vertical-align: middle
}
*[class~="important"] table {
background-color: #ffffe0;
border: none;
}
/* Mise en <20>vidence<63>: texte l<>g<EFBFBD>rement plus grand */
/* Highlights: slightly larger texts */
*[class~="highlights"] {
font-size: 110%;
}
/* Note<74>: cadre bleu et fond bleu clair */
/* Notes: blue border and light blue background */
*[class~="note"] {
border: solid 2px #7099C5;
background-color: #f0f0ff;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="note"] th {
vertical-align: middle
}
*[class~="note"] table {
background-color: #f0f0ff;
border: none;
}
/* Astuce<63>: cadre vert et fond vert clair */
/* Tip: green border and light green background */
*[class~="tip"] {
border: solid 2px #00ff00;
background-color: #f0ffff;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="tip"] th {
vertical-align: middle;
}
*[class~="tip"] table {
background-color: #f0ffff;
border: none;
}
/* Avertissement<6E>: cadre rouge et fond rouge clair */
/* Warning: red border and light red background */
*[class~="warning"] {
border: solid 2px #ff0000;
background-color: #fff0f0;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="warning"] th {
vertical-align: middle;
}
*[class~="warning"] table {
background-color: #fff0f0;
border: none;
}
/* Fin */
/* The End */

View File

@@ -105,7 +105,7 @@ Show debug logging for the specified logging domains
profile the command and print a report
.TP
.B \-uUI, \-\-ui=UI
User interface to use. Currently, knotty, taskexp or ncurses can be specified as UI.
User interface to use. Currently, hob, depexp, goggle or ncurses can be specified as UI.
.TP
.B \-tSERVERTYPE, \-\-servertype=SERVERTYPE
Choose which server to use, none, process or xmlrpc.

View File

@@ -1,101 +0,0 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import sys
import datetime
current_version = "dev"
# String used in sidebar
version = 'Version: ' + current_version
if current_version == 'dev':
version = 'Version: Current Development'
# Version seen in documentation_options.js and hence in js switchers code
release = current_version
# -- Project information -----------------------------------------------------
project = 'Bitbake'
copyright = '2004-%s, Richard Purdie, Chris Larson, and Phil Blundell' \
% datetime.datetime.now().year
author = 'Richard Purdie, Chris Larson, and Phil Blundell'
# external links and substitutions
extlinks = {
'yocto_docs': ('https://docs.yoctoproject.org%s', None),
'oe_lists': ('https://lists.openembedded.org%s', None),
}
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autosectionlabel',
'sphinx.ext.extlinks',
]
autosectionlabel_prefix_document = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# master document name. The default changed from contents to index. so better
# set it ourselves.
master_doc = 'index'
# create substitution for project configuration variables
rst_prolog = """
.. |project_name| replace:: %s
.. |copyright| replace:: %s
.. |author| replace:: %s
""" % (project, copyright, author)
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
try:
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
except ImportError:
sys.stderr.write("The Sphinx sphinx_rtd_theme HTML theme was not found.\
\nPlease make sure to install the sphinx_rtd_theme python package.\n")
sys.exit(1)
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['sphinx-static']
# Add customm CSS and JS files
html_css_files = ['theme_overrides.css']
html_js_files = ['switchers.js']
# Hide 'Created using Sphinx' text
html_show_sphinx = False
# Add 'Last updated' on each page
html_last_updated_fmt = '%b %d, %Y'
# Remove the trailing 'dot' in section numbers
html_secnumber_suffix = " "

View File

@@ -1,3 +0,0 @@
=====
Index
=====

View File

@@ -1,38 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
BitBake User Manual
===================
|
.. toctree::
:caption: Table of Contents
:numbered:
bitbake-user-manual/bitbake-user-manual-intro
bitbake-user-manual/bitbake-user-manual-execution
bitbake-user-manual/bitbake-user-manual-metadata
bitbake-user-manual/bitbake-user-manual-fetching
bitbake-user-manual/bitbake-user-manual-ref-variables
bitbake-user-manual/bitbake-user-manual-hello
.. toctree::
:maxdepth: 1
:hidden:
genindex
releases
----
.. include:: <xhtml1-lat1.txt>
| BitBake Community
| Copyright |copy| |copyright|
| <bitbake-devel@lists.openembedded.org>
This work is licensed under the Creative Commons Attribution License. To view a
copy of this license, visit http://creativecommons.org/licenses/by/2.5/ or send
a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View,
California 94041, USA.

59
bitbake/doc/poky.ent Normal file
View File

@@ -0,0 +1,59 @@
<!ENTITY DISTRO "1.4">
<!ENTITY DISTRO_NAME "tbd">
<!ENTITY YOCTO_DOC_VERSION "1.4">
<!ENTITY POKYVERSION "8.0">
<!ENTITY YOCTO_POKY "poky-&DISTRO_NAME;-&POKYVERSION;">
<!ENTITY COPYRIGHT_YEAR "2010-2013">
<!ENTITY YOCTO_DL_URL "http://downloads.yoctoproject.org">
<!ENTITY YOCTO_HOME_URL "http://www.yoctoproject.org">
<!ENTITY YOCTO_LISTS_URL "http://lists.yoctoproject.org">
<!ENTITY YOCTO_BUGZILLA_URL "http://bugzilla.yoctoproject.org">
<!ENTITY YOCTO_WIKI_URL "https://wiki.yoctoproject.org">
<!ENTITY YOCTO_AB_URL "http://autobuilder.yoctoproject.org">
<!ENTITY YOCTO_GIT_URL "http://git.yoctoproject.org">
<!ENTITY YOCTO_ADTREPO_URL "http://adtrepo.yoctoproject.org">
<!ENTITY OE_HOME_URL "http://www.openembedded.org">
<!ENTITY OE_LISTS_URL "http://lists.linuxtogo.org/cgi-bin/mailman">
<!ENTITY OE_DOCS_URL "http://docs.openembedded.org">
<!ENTITY OH_HOME_URL "http://o-hand.com">
<!ENTITY BITBAKE_HOME_URL "http://developer.berlios.de/projects/bitbake/">
<!ENTITY ECLIPSE_MAIN_URL "http://www.eclipse.org/downloads">
<!ENTITY ECLIPSE_DL_URL "http://download.eclipse.org">
<!ENTITY ECLIPSE_DL_PLUGIN_URL "&YOCTO_DL_URL;/releases/eclipse-plugin/&DISTRO;">
<!ENTITY ECLIPSE_UPDATES_URL "&ECLIPSE_DL_URL;/tm/updates/3.3">
<!ENTITY ECLIPSE_INDIGO_URL "&ECLIPSE_DL_URL;/releases/indigo">
<!ENTITY ECLIPSE_JUNO_URL "&ECLIPSE_DL_URL;/releases/juno">
<!ENTITY ECLIPSE_INDIGO_CDT_URL "&ECLIPSE_DL_URL;tools/cdt/releases/indigo">
<!ENTITY YOCTO_DOCS_URL "&YOCTO_HOME_URL;/docs">
<!ENTITY YOCTO_SOURCES_URL "&YOCTO_HOME_URL;/sources/">
<!ENTITY YOCTO_AB_PORT_URL "&YOCTO_AB_URL;:8010">
<!ENTITY YOCTO_AB_NIGHTLY_URL "&YOCTO_AB_URL;/nightly/">
<!ENTITY YOCTO_POKY_URL "&YOCTO_DL_URL;/releases/poky/">
<!ENTITY YOCTO_RELEASE_DL_URL "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;">
<!ENTITY YOCTO_TOOLCHAIN_DL_URL "&YOCTO_RELEASE_DL_URL;/toolchain/">
<!ENTITY YOCTO_ECLIPSE_DL_URL "&YOCTO_RELEASE_DL_URL;/eclipse-plugin/indigo;">
<!ENTITY YOCTO_ADTINSTALLER_DL_URL "&YOCTO_RELEASE_DL_URL;/adt_installer">
<!ENTITY YOCTO_POKY_DL_URL "&YOCTO_RELEASE_DL_URL;/&YOCTO_POKY;.tar.bz2">
<!ENTITY YOCTO_MACHINES_DL_URL "&YOCTO_RELEASE_DL_URL;/machines">
<!ENTITY YOCTO_QEMU_DL_URL "&YOCTO_MACHINES_DL_URL;/qemu">
<!ENTITY YOCTO_PYTHON-i686_DL_URL "&YOCTO_DL_URL;/releases/miscsupport/python-nativesdk-standalone-i686.tar.bz2">
<!ENTITY YOCTO_PYTHON-x86_64_DL_URL "&YOCTO_DL_URL;/releases/miscsupport/python-nativesdk-standalone-x86_64.tar.bz2">
<!ENTITY YOCTO_DOCS_QS_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/yocto-project-qs/yocto-project-qs.html">
<!ENTITY YOCTO_DOCS_ADT_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/adt-manual/adt-manual.html">
<!ENTITY YOCTO_DOCS_REF_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/ref-manual/ref-manual.html">
<!ENTITY YOCTO_DOCS_BSP_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/bsp-guide/bsp-guide.html">
<!ENTITY YOCTO_DOCS_DEV_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/dev-manual/dev-manual.html">
<!ENTITY YOCTO_DOCS_KERNEL_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/kernel-manual/kernel-manual.html">
<!ENTITY YOCTO_ADTPATH_DIR "/opt/poky/&DISTRO;">
<!ENTITY YOCTO_POKY_TARBALL "&YOCTO_POKY;.tar.bz2">
<!ENTITY OE_INIT_PATH "&YOCTO_POKY;/oe-init-build-env">
<!ENTITY OE_INIT_FILE "oe-init-build-env">
<!ENTITY UBUNTU_HOST_PACKAGES_ESSENTIAL "gawk wget git-core diffstat unzip texinfo \
build-essential chrpath">
<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ eglibc-devel texinfo chrpath \
ccache">
<!ENTITY OPENSUSE_HOST_PACKAGES_ESSENTIAL "python gcc gcc-c++ git chrpath make wget python-xml \
diffstat texinfo python-curses">
<!ENTITY CENTOS_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath">

View File

@@ -1,130 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=========================
Current Release Manuals
=========================
****************************
3.1 'dunfell' Release Series
****************************
- :yocto_docs:`3.1 BitBake User Manual </3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.1 BitBake User Manual </3.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.2 BitBake User Manual </3.1.2/bitbake-user-manual/bitbake-user-manual.html>`
==========================
Previous Release Manuals
==========================
*************************
3.0 'zeus' Release Series
*************************
- :yocto_docs:`3.0 BitBake User Manual </3.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.1 BitBake User Manual </3.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.2 BitBake User Manual </3.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.3 BitBake User Manual </3.0.3/bitbake-user-manual/bitbake-user-manual.html>`
****************************
2.7 'warrior' Release Series
****************************
- :yocto_docs:`2.7 BitBake User Manual </2.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.1 BitBake User Manual </2.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.2 BitBake User Manual </2.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.3 BitBake User Manual </2.7.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.4 BitBake User Manual </2.7.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.6 'thud' Release Series
*************************
- :yocto_docs:`2.6 BitBake User Manual </2.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.1 BitBake User Manual </2.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.2 BitBake User Manual </2.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.3 BitBake User Manual </2.6.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.4 BitBake User Manual </2.6.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.5 'sumo' Release Series
*************************
- :yocto_docs:`2.5 BitBake User Manual </2.5/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.1 BitBake User Manual </2.5.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.2 BitBake User Manual </2.5.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.3 BitBake User Manual </2.5.3/bitbake-user-manual/bitbake-user-manual.html>`
**************************
2.4 'rocko' Release Series
**************************
- :yocto_docs:`2.4 BitBake User Manual </2.4/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.1 BitBake User Manual </2.4.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.2 BitBake User Manual </2.4.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.3 BitBake User Manual </2.4.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.4 BitBake User Manual </2.4.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.3 'pyro' Release Series
*************************
- :yocto_docs:`2.3 BitBake User Manual </2.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.1 BitBake User Manual </2.3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.2 BitBake User Manual </2.3.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.3 BitBake User Manual </2.3.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.4 BitBake User Manual </2.3.4/bitbake-user-manual/bitbake-user-manual.html>`
**************************
2.2 'morty' Release Series
**************************
- :yocto_docs:`2.2 BitBake User Manual </2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.1 BitBake User Manual </2.2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.2 BitBake User Manual </2.2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.3 BitBake User Manual </2.2.3/bitbake-user-manual/bitbake-user-manual.html>`
****************************
2.1 'krogoth' Release Series
****************************
- :yocto_docs:`2.1 BitBake User Manual </2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.1 BitBake User Manual </2.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.2 BitBake User Manual </2.1.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.3 BitBake User Manual </2.1.3/bitbake-user-manual/bitbake-user-manual.html>`
***************************
2.0 'jethro' Release Series
***************************
- :yocto_docs:`1.9 BitBake User Manual </1.9/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0 BitBake User Manual </2.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.1 BitBake User Manual </2.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.2 BitBake User Manual </2.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.3 BitBake User Manual </2.0.3/bitbake-user-manual/bitbake-user-manual.html>`
*************************
1.8 'fido' Release Series
*************************
- :yocto_docs:`1.8 BitBake User Manual </1.8/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.1 BitBake User Manual </1.8.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.2 BitBake User Manual </1.8.2/bitbake-user-manual/bitbake-user-manual.html>`
**************************
1.7 'dizzy' Release Series
**************************
- :yocto_docs:`1.7 BitBake User Manual </1.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.1 BitBake User Manual </1.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.2 BitBake User Manual </1.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.3 BitBake User Manual </1.7.3/bitbake-user-manual/bitbake-user-manual.html>`
**************************
1.6 'daisy' Release Series
**************************
- :yocto_docs:`1.6 BitBake User Manual </1.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.1 BitBake User Manual </1.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.2 BitBake User Manual </1.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.3 BitBake User Manual </1.6.3/bitbake-user-manual/bitbake-user-manual.html>`

View File

@@ -1,233 +0,0 @@
(function() {
'use strict';
var all_versions = {
'dev': 'dev (3.2)',
'3.1.2': '3.1.2',
'3.0.3': '3.0.3',
'2.7.4': '2.7.4',
};
var all_doctypes = {
'single': 'Individual Webpages',
'mega': "All-in-one 'Mega' Manual",
};
// Simple version comparision
// Return 1 if a > b
// Return -1 if a < b
// Return 0 if a == b
function ver_compare(a, b) {
if (a == "dev") {
return 1;
}
if (a === b) {
return 0;
}
var a_components = a.split(".");
var b_components = b.split(".");
var len = Math.min(a_components.length, b_components.length);
// loop while the components are equal
for (var i = 0; i < len; i++) {
// A bigger than B
if (parseInt(a_components[i]) > parseInt(b_components[i])) {
return 1;
}
// B bigger than A
if (parseInt(a_components[i]) < parseInt(b_components[i])) {
return -1;
}
}
// If one's a prefix of the other, the longer one is greater.
if (a_components.length > b_components.length) {
return 1;
}
if (a_components.length < b_components.length) {
return -1;
}
// Otherwise they are the same.
return 0;
}
function build_version_select(current_series, current_version) {
var buf = ['<select>'];
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series) {
if (version == current_version)
buf.push('<option value="' + version + '" selected="selected">' + title + '</option>');
else
buf.push('<option value="' + version + '">' + title + '</option>');
if (version != current_version)
buf.push('<option value="' + current_version + '" selected="selected">' + current_version + '</option>');
} else {
buf.push('<option value="' + version + '">' + title + '</option>');
}
});
buf.push('</select>');
return buf.join('');
}
function build_doctype_select(current_doctype) {
var buf = ['<select>'];
$.each(all_doctypes, function(doctype, title) {
if (doctype == current_doctype)
buf.push('<option value="' + doctype + '" selected="selected">' +
all_doctypes[current_doctype] + '</option>');
else
buf.push('<option value="' + doctype + '">' + title + '</option>');
});
if (!(current_doctype in all_doctypes)) {
// In case we're browsing a doctype that is not yet in all_doctypes.
buf.push('<option value="' + current_doctype + '" selected="selected">' +
current_doctype + '</option>');
all_doctypes[current_doctype] = current_doctype;
}
buf.push('</select>');
return buf.join('');
}
function navigate_to_first_existing(urls) {
// Navigate to the first existing URL in urls.
var url = urls.shift();
// Web browsers won't redirect file:// urls to file urls using ajax but
// its useful for local testing
if (url.startsWith("file://")) {
window.location.href = url;
return;
}
if (urls.length == 0) {
window.location.href = url;
return;
}
$.ajax({
url: url,
success: function() {
window.location.href = url;
},
error: function() {
navigate_to_first_existing(urls);
}
});
}
function get_docroot_url() {
var url = window.location.href;
var root = DOCUMENTATION_OPTIONS.URL_ROOT;
var urlarray = url.split('/');
// Trim off anything after '/'
urlarray.pop();
var depth = (root.match(/\.\.\//g) || []).length;
for (var i = 0; i < depth; i++) {
urlarray.pop();
}
return urlarray.join('/') + '/';
}
function on_version_switch() {
var selected_version = $(this).children('option:selected').attr('value');
var url = window.location.href;
var current_version = DOCUMENTATION_OPTIONS.VERSION;
var docroot = get_docroot_url()
var new_versionpath = selected_version + '/';
if (selected_version == "dev")
new_versionpath = '';
// dev versions have no version prefix
if (current_version == "dev") {
var new_url = docroot + new_versionpath + url.replace(docroot, "");
var fallback_url = docroot + new_versionpath;
} else {
var new_url = url.replace('/' + current_version + '/', '/' + new_versionpath);
var fallback_url = new_url.replace(url.replace(docroot, ""), "");
}
console.log(get_docroot_url())
console.log(url + " to url " + new_url);
console.log(url + " to fallback " + fallback_url);
if (new_url != url) {
navigate_to_first_existing([
new_url,
fallback_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
function on_doctype_switch() {
var selected_doctype = $(this).children('option:selected').attr('value');
var url = window.location.href;
if (selected_doctype == 'mega') {
var docroot = get_docroot_url()
var current_version = DOCUMENTATION_OPTIONS.VERSION;
// Assume manuals before 3.2 are using old docbook mega-manual
if (ver_compare(current_version, "3.2") < 0) {
var new_url = docroot + "mega-manual/mega-manual.html";
} else {
var new_url = docroot + "singleindex.html";
}
} else {
var new_url = url.replace("singleindex.html", "index.html")
}
if (new_url != url) {
navigate_to_first_existing([
new_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
// Returns the current doctype based upon the url
function doctype_segment_from_url(url) {
if (url.includes("singleindex") || url.includes("mega-manual"))
return "mega";
return "single";
}
$(document).ready(function() {
var release = DOCUMENTATION_OPTIONS.VERSION;
var current_doctype = doctype_segment_from_url(window.location.href);
var current_series = release.substr(0, 3);
var version_select = build_version_select(current_series, release);
$('.version_switcher_placeholder').html(version_select);
$('.version_switcher_placeholder select').bind('change', on_version_switch);
var doctype_select = build_doctype_select(current_doctype);
$('.doctype_switcher_placeholder').html(doctype_select);
$('.doctype_switcher_placeholder select').bind('change', on_doctype_switch);
if (ver_compare(release, "3.1") < 0) {
$('#outdated-warning').html('Version ' + release + ' of the project is now considered obsolete, please select and use a more recent version');
$('#outdated-warning').css('padding', '.5em');
} else if (release != "dev") {
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series && version != release) {
$('#outdated-warning').html('This document is for outdated version ' + release + ', you should select the latest release version in this series, ' + version + '.');
$('#outdated-warning').css('padding', '.5em');
}
});
}
});
})();

View File

@@ -1,162 +0,0 @@
/*
SPDX-License-Identifier: CC-BY-2.0-UK
*/
body {
font-family: Verdana, Sans, sans-serif;
margin: 0em auto;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color: #00557D;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: bold;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: bold;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: bold;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
em {
font-weight: bold;
}
.pre {
font-size: medium;
font-family: Courier, monospace;
}
.wy-nav-content a {
text-decoration: underline;
color: #444;
background: transparent;
}
.wy-nav-content a:hover {
text-decoration: underline;
background-color: #dedede;
}
.wy-nav-content a:visited {
color: #444;
}
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }
@media screen {
/* content column
*
* RTD theme's default is 800px as max width for the content, but we have
* tables with tons of columns, which need the full width of the view-port.
*/
.wy-nav-content{max-width: none; }
/* inline literal: drop the borderbox, padding and red color */
code, .rst-content tt, .rst-content code {
color: inherit;
border: none;
padding: unset;
background: inherit;
font-size: 85%;
}
.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal {
color: inherit;
}
/* Admonition should be gray, not blue or green */
.rst-content .note .admonition-title,
.rst-content .tip .admonition-title,
.rst-content .warning .admonition-title,
.rst-content .caution .admonition-title,
.rst-content .important .admonition-title {
background: #f0f0f2;
color: #00557D;
}
.rst-content .note,
.rst-content .tip,
.rst-content .important,
.rst-content .warning,
.rst-content .caution {
background: #f0f0f2;
}
/* Remove the icon in front of note/tip element, and before the logo */
.icon-home:before, .rst-content .admonition-title:before {
display: none
}
/* a custom informalexample container is used in some doc */
.informalexample {
border: 1px solid;
border-color: #aaa;
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
/* Remove the blue background in the top left corner, around the logo */
.wy-side-nav-search {
background: inherit;
}
}

1
bitbake/doc/template/Vera.xml vendored Normal file

File diff suppressed because one or more lines are too long

1
bitbake/doc/template/VeraMoBd.xml vendored Normal file

File diff suppressed because one or more lines are too long

1
bitbake/doc/template/VeraMono.xml vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,39 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="component.title">
<xsl:param name="node" select="."/>
<xsl:variable name="level">
<xsl:choose>
<xsl:when test="ancestor::d:section">
<xsl:value-of select="count(ancestor::d:section)+1"/>
</xsl:when>
<xsl:when test="ancestor::d:sect5">6</xsl:when>
<xsl:when test="ancestor::d:sect4">5</xsl:when>
<xsl:when test="ancestor::d:sect3">4</xsl:when>
<xsl:when test="ancestor::d:sect2">3</xsl:when>
<xsl:when test="ancestor::d:sect1">2</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="h{$level+1}" namespace="http://www.w3.org/1999/xhtml">
<xsl:attribute name="class">title</xsl:attribute>
<xsl:if test="$generate.id.attributes = 0">
<xsl:call-template name="anchor">
<xsl:with-param name="node" select="$node"/>
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
</xsl:if>
<xsl:apply-templates select="$node" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$node"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

64
bitbake/doc/template/db-pdf.xsl vendored Normal file
View File

@@ -0,0 +1,64 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl" />
<!-- check project-plan.sh for how this is generated, needed to tweak
the cover page
-->
<xsl:include href="/tmp/titlepage.xsl"/>
<!-- To force a page break in document, i.e per section add a
<?hard-pagebreak?> tag.
-->
<xsl:template match="processing-instruction('hard-pagebreak')">
<fo:block break-before='page' />
</xsl:template>
<!--Fix for defualt indent getting TOC all wierd..
See http://sources.redhat.com/ml/docbook-apps/2005-q1/msg00455.html
FIXME: must be a better fix
-->
<xsl:param name="body.start.indent" select="'0'"/>
<!--<xsl:param name="title.margin.left" select="'0'"/>-->
<!-- stop long-ish header titles getting wrapped -->
<xsl:param name="header.column.widths">1 10 1</xsl:param>
<!-- customise headers and footers a little -->
<xsl:template name="head.sep.rule">
<xsl:if test="$header.rule != 0">
<xsl:attribute name="border-bottom-width">0.5pt</xsl:attribute>
<xsl:attribute name="border-bottom-style">solid</xsl:attribute>
<xsl:attribute name="border-bottom-color">#cccccc</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="foot.sep.rule">
<xsl:if test="$footer.rule != 0">
<xsl:attribute name="border-top-width">0.5pt</xsl:attribute>
<xsl:attribute name="border-top-style">solid</xsl:attribute>
<xsl:attribute name="border-top-color">#cccccc</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:attribute-set name="header.content.properties">
<xsl:attribute name="color">#cccccc</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="footer.content.properties">
<xsl:attribute name="color">#cccccc</xsl:attribute>
</xsl:attribute-set>
<!-- general settings -->
<xsl:param name="fop1.extensions" select="1"></xsl:param>
<xsl:param name="paper.type" select="'A4'"></xsl:param>
<xsl:param name="section.autolabel" select="1"></xsl:param>
<xsl:param name="body.font.family" select="'verasans'"></xsl:param>
<xsl:param name="title.font.family" select="'verasans'"></xsl:param>
<xsl:param name="monospace.font.family" select="'veramono'"></xsl:param>
</xsl:stylesheet>

25
bitbake/doc/template/division.title.xsl vendored Normal file
View File

@@ -0,0 +1,25 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="division.title">
<xsl:param name="node" select="."/>
<h1>
<xsl:attribute name="class">title</xsl:attribute>
<xsl:call-template name="anchor">
<xsl:with-param name="node" select="$node"/>
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
<xsl:apply-templates select="$node" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$node"/>
</xsl:call-template>
</h1>
</xsl:template>
</xsl:stylesheet>

58
bitbake/doc/template/fop-config.xml vendored Normal file
View File

@@ -0,0 +1,58 @@
<fop version="1.0">
<!-- Strict user configuration -->
<strict-configuration>true</strict-configuration>
<!-- Strict FO validation -->
<strict-validation>true</strict-validation>
<!--
Set the baseDir so common/openedhand.svg references in plans still
work ok. Note, relative file references to current dir should still work.
-->
<base>../template</base>
<font-base>../template</font-base>
<!-- Source resolution in dpi (dots/pixels per inch) for determining the
size of pixels in SVG and bitmap images, default: 72dpi -->
<!-- <source-resolution>72</source-resolution> -->
<!-- Target resolution in dpi (dots/pixels per inch) for specifying the
target resolution for generated bitmaps, default: 72dpi -->
<!-- <target-resolution>72</target-resolution> -->
<!-- default page-height and page-width, in case
value is specified as auto -->
<default-page-settings height="11in" width="8.26in"/>
<!-- <use-cache>false</use-cache> -->
<renderers>
<renderer mime="application/pdf">
<fonts>
<font metrics-file="VeraMono.xml"
kerning="yes"
embed-url="VeraMono.ttf">
<font-triplet name="veramono" style="normal" weight="normal"/>
</font>
<font metrics-file="VeraMoBd.xml"
kerning="yes"
embed-url="VeraMoBd.ttf">
<font-triplet name="veramono" style="normal" weight="bold"/>
</font>
<font metrics-file="Vera.xml"
kerning="yes"
embed-url="Vera.ttf">
<font-triplet name="verasans" style="normal" weight="normal"/>
<font-triplet name="verasans" style="normal" weight="bold"/>
<font-triplet name="verasans" style="italic" weight="normal"/>
<font-triplet name="verasans" style="italic" weight="bold"/>
</font>
<auto-detect/>
</fonts>
</renderer>
</renderers>
</fop>

View File

@@ -0,0 +1,21 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="formal.object.heading">
<xsl:param name="object" select="."/>
<xsl:param name="title">
<xsl:apply-templates select="$object" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
</xsl:param>
<p class="title">
<b><xsl:copy-of select="$title"/></b>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$object"/>
</xsl:call-template>
</p>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,14 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="glossentry/glossterm">
<xsl:apply-imports/>
<xsl:if test="$generate.permalink != 0">
<xsl:call-template name="permalink">
<xsl:with-param name="node" select=".."/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

25
bitbake/doc/template/permalinks.xsl vendored Normal file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="generate.permalink" select="1"/>
<xsl:param name="permalink.text"></xsl:param>
<xsl:template name="permalink">
<xsl:param name="node"/>
<xsl:if test="$generate.permalink != '0'">
<span class="permalink">
<a alt="Permalink" title="Permalink">
<xsl:attribute name="href">
<xsl:call-template name="href.target">
<xsl:with-param name="object" select="$node"/>
</xsl:call-template>
</xsl:attribute>
<xsl:copy-of select="$permalink.text"/>
</a>
</span>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

55
bitbake/doc/template/section.title.xsl vendored Normal file
View File

@@ -0,0 +1,55 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="d">
<xsl:template name="section.title">
<xsl:variable name="section"
select="(ancestor::section |
ancestor::simplesect|
ancestor::sect1|
ancestor::sect2|
ancestor::sect3|
ancestor::sect4|
ancestor::sect5)[last()]"/>
<xsl:variable name="renderas">
<xsl:choose>
<xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
<xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
<xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
<xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
<xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
<xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="level">
<xsl:choose>
<xsl:when test="$renderas != ''">
<xsl:value-of select="$renderas"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="section.level">
<xsl:with-param name="node" select="$section"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="section.heading">
<xsl:with-param name="section" select="$section"/>
<xsl:with-param name="level" select="$level"/>
<xsl:with-param name="title">
<xsl:apply-templates select="$section" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:if test="$level &gt; 0">
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$section"/>
</xsl:call-template>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,51 @@
#!/bin/sh
if [ -z "$1" -o -z "$2" ]; then
echo "usage: [-v] $0 <docbook file> <templatedir>"
echo
echo "*NOTE* you need xsltproc, fop and nwalsh docbook stylesheets"
echo " installed for this to work!"
echo
exit 0
fi
FO=`echo $1 | sed s/.xml/.fo/` || exit 1
PDF=`echo $1 | sed s/.xml/.pdf/` || exit 1
TEMPLATEDIR=$2
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
XSL_BASE_URI="http://docbook.sourceforge.net/release/xsl/current"
# Creates a temporary XSL stylesheet based on titlepage.xsl
xsltproc -o /tmp/titlepage.xsl \
--xinclude \
$XSL_BASE_URI/template/titlepage.xsl \
$TEMPLATEDIR/titlepage.templates.xml || exit 1
# Creates the file needed for FOP
xsltproc --xinclude \
--stringparam hyphenate false \
--stringparam formal.title.placement "figure after" \
--stringparam ulink.show 1 \
--stringparam body.font.master 9 \
--stringparam title.font.master 11 \
--stringparam draft.watermark.image "$TEMPLATEDIR/draft.png" \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--output $FO \
$TEMPLATEDIR/db-pdf.xsl \
$1 || exit 1
# Invokes the Java version of FOP. Uses the additional configuration file common/fop-config.xml
fop -c $TEMPLATEDIR/fop-config.xml -fo $FO -pdf $PDF || exit 1
rm -f $FO
rm -f /tmp/titlepage.xsl
echo
echo " #### Success! $PDF ready. ####"
echo

View File

@@ -1,16 +1,31 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# This is a copy on write dictionary and set which abuses classes to try and be nice and fast.
#
# Copyright (C) 2006 Tim Ansell
# Copyright (C) 2006 Tim Amsell
#
# Please Note:
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#Please Note:
# Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW.
# Assign a file to __warn__ to get warnings about slow operations.
#
import copy
import types
ImmutableTypes = (
bool,
complex,
@@ -23,11 +38,9 @@ ImmutableTypes = (
MUTABLE = "__mutable__"
class COWMeta(type):
pass
class COWDictMeta(COWMeta):
__warn__ = False
__hasmutable__ = False
@@ -36,15 +49,12 @@ class COWDictMeta(COWMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
copy = cow
__call__ = cow
@@ -76,9 +86,8 @@ class COWDictMeta(COWMeta):
return value
__getmarker__ = []
def __getreadonly__(cls, key, default=__getmarker__):
"""
"""\
Get a value (even if mutable) which you promise not to change.
"""
return cls.__getitem__(key, default, True)
@@ -141,33 +150,28 @@ class COWDictMeta(COWMeta):
yield value
if type == "items":
yield (key, value)
return
raise StopIteration()
def iterkeys(cls):
return cls.iter("keys")
def itervalues(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("values", readonly)
def iteritems(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("items", readonly)
class COWSetMeta(COWDictMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) -3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
def add(cls, value):
@@ -185,11 +189,131 @@ class COWSetMeta(COWDictMeta):
def iteritems(cls):
raise TypeError("sets don't have 'items'")
# These are the actual classes you use!
class COWDictBase(metaclass=COWDictMeta):
class COWDictBase(object, metaclass = COWDictMeta):
__count__ = 0
class COWSetBase(metaclass=COWSetMeta):
class COWSetBase(object, metaclass = COWSetMeta):
__count__ = 0
if __name__ == "__main__":
import sys
COWDictBase.__warn__ = sys.stderr
a = COWDictBase()
print("a", a)
a['a'] = 'a'
a['b'] = 'b'
a['dict'] = {}
b = a.copy()
print("b", b)
b['c'] = 'b'
print()
print("a", a)
for x in a.items():
print(x)
print("--")
print("b", b)
for x in b.items():
print(x)
print()
b['dict']['a'] = 'b'
b['a'] = 'c'
print("a", a)
for x in a.items():
print(x)
print("--")
print("b", b)
for x in b.items():
print(x)
print()
try:
b['dict2']
except KeyError as e:
print("Okay!")
a['set'] = COWSetBase()
a['set'].add("o1")
a['set'].add("o1")
a['set'].add("o2")
print("a", a)
for x in a['set'].values():
print(x)
print("--")
print("b", b)
for x in b['set'].values():
print(x)
print()
b['set'].add('o3')
print("a", a)
for x in a['set'].values():
print(x)
print("--")
print("b", b)
for x in b['set'].values():
print(x)
print()
a['set2'] = set()
a['set2'].add("o1")
a['set2'].add("o1")
a['set2'].add("o2")
print("a", a)
for x in a.items():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
del b['b']
try:
print(b['b'])
except KeyError:
print("Yay! deleted key raises error")
if 'b' in b:
print("Boo!")
else:
print("Yay - has_key with delete works!")
print("a", a)
for x in a.items():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
b.__revertitem__('b')
print("a", a)
for x in a.items():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
b.__revertitem__('dict')
print("a", a)
for x in a.items():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Build System Python Library
#
@@ -6,14 +8,24 @@
#
# Based on Gentoo's portage.py.
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
__version__ = "1.49.0"
__version__ = "1.32.0"
import sys
if sys.version_info < (3, 5, 0):
raise RuntimeError("Sorry, python 3.5.0 or later is required for this version of bitbake")
if sys.version_info < (3, 4, 0):
raise RuntimeError("Sorry, python 3.4.0 or later is required for this version of bitbake")
class BBHandledException(Exception):
@@ -35,23 +47,15 @@ class NullHandler(logging.Handler):
def emit(self, record):
pass
class BBLoggerMixin(object):
def __init__(self, *args, **kwargs):
# Does nothing to allow calling super() from derived classes
pass
def setup_bblogger(self, name):
Logger = logging.getLoggerClass()
class BBLogger(Logger):
def __init__(self, name):
if name.split(".")[0] == "BitBake":
self.debug = self.bbdebug
Logger.__init__(self, name)
def bbdebug(self, level, msg, *args, **kwargs):
loglevel = logging.DEBUG - level + 1
if not bb.event.worker_pid:
if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
return
if loglevel > bb.msg.loggerDefaultLogLevel:
return
return self.log(loglevel, msg, *args, **kwargs)
return self.log(logging.DEBUG - level + 1, msg, *args, **kwargs)
def plain(self, msg, *args, **kwargs):
return self.log(logging.INFO + 1, msg, *args, **kwargs)
@@ -59,59 +63,15 @@ class BBLoggerMixin(object):
def verbose(self, msg, *args, **kwargs):
return self.log(logging.INFO - 1, msg, *args, **kwargs)
def verbnote(self, msg, *args, **kwargs):
return self.log(logging.INFO + 2, msg, *args, **kwargs)
Logger = logging.getLoggerClass()
class BBLogger(Logger, BBLoggerMixin):
def __init__(self, name, *args, **kwargs):
self.setup_bblogger(name)
super().__init__(name, *args, **kwargs)
logging.raiseExceptions = False
logging.setLoggerClass(BBLogger)
class BBLoggerAdapter(logging.LoggerAdapter, BBLoggerMixin):
def __init__(self, logger, *args, **kwargs):
self.setup_bblogger(logger.name)
super().__init__(logger, *args, **kwargs)
if sys.version_info < (3, 6):
# These properties were added in Python 3.6. Add them in older versions
# for compatibility
@property
def manager(self):
return self.logger.manager
@manager.setter
def manager(self, value):
self.logger.manager = value
@property
def name(self):
return self.logger.name
def __repr__(self):
logger = self.logger
level = logger.getLevelName(logger.getEffectiveLevel())
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
logging.LoggerAdapter = BBLoggerAdapter
logger = logging.getLogger("BitBake")
logger.addHandler(NullHandler())
logger.setLevel(logging.DEBUG - 2)
mainlogger = logging.getLogger("BitBake.Main")
class PrefixLoggerAdapter(logging.LoggerAdapter):
def __init__(self, prefix, logger):
super().__init__(logger, {})
self.__msg_prefix = prefix
def process(self, msg, kwargs):
return "%s%s" %(self.__msg_prefix, msg), kwargs
# This has to be imported after the setLoggerClass, as the import of bb.msg
# can result in construction of the various loggers.
import bb.msg
@@ -133,18 +93,6 @@ def debug(lvl, *args):
def note(*args):
mainlogger.info(''.join(args))
#
# A higher prioity note which will show on the console but isn't a warning
#
# Something is happening the user should be aware of but they probably did
# something to make it happen
#
def verbnote(*args):
mainlogger.verbnote(''.join(args))
#
# Warnings - things the user likely needs to pay attention to and fix
#
def warn(*args):
mainlogger.warning(''.join(args))

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake 'Build' implementation
#
@@ -8,17 +10,27 @@
#
# Based on Gentoo's portage.py.
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import sys
import logging
import shlex
import glob
import itertools
import time
import re
import stat
import bb
import bb.msg
@@ -29,8 +41,7 @@ from bb import data, event, utils
bblogger = logging.getLogger('BitBake')
logger = logging.getLogger('BitBake.Build')
verboseShellLogging = False
verboseStdoutLogging = False
NULL = open(os.devnull, 'r+')
__mtime_cache = {}
@@ -58,22 +69,36 @@ else:
builtins['bb'] = bb
builtins['os'] = os
class FuncFailed(Exception):
def __init__(self, name = None, logfile = None):
self.logfile = logfile
self.name = name
if name:
self.msg = 'Function failed: %s' % name
else:
self.msg = "Function failed"
def __str__(self):
if self.logfile and os.path.exists(self.logfile):
msg = ("%s (log file is located at %s)" %
(self.msg, self.logfile))
else:
msg = self.msg
return msg
class TaskBase(event.Event):
"""Base class for task events"""
def __init__(self, t, fn, logfile, d):
def __init__(self, t, logfile, d):
self._task = t
self._fn = fn
self._package = d.getVar("PF")
self._mc = d.getVar("BB_CURRENT_MC")
self.taskfile = d.getVar("FILE")
self._package = d.getVar("PF", True)
self._mc = d.getVar("BB_CURRENT_MC", True)
self.taskfile = d.getVar("FILE", True)
self.taskname = self._task
self.logfile = logfile
self.time = time.time()
self.pn = d.getVar("PN")
self.pv = d.getVar("PV")
event.Event.__init__(self)
self._message = "recipe %s: task %s: %s" % (d.getVar("PF"), t, self.getDisplayName())
self._message = "recipe %s: task %s: %s" % (d.getVar("PF", True), t, self.getDisplayName())
def getTask(self):
return self._task
@@ -88,8 +113,8 @@ class TaskBase(event.Event):
class TaskStarted(TaskBase):
"""Task execution started"""
def __init__(self, t, fn, logfile, taskflags, d):
super(TaskStarted, self).__init__(t, fn, logfile, d)
def __init__(self, t, logfile, taskflags, d):
super(TaskStarted, self).__init__(t, logfile, d)
self.taskflags = taskflags
class TaskSucceeded(TaskBase):
@@ -98,9 +123,9 @@ class TaskSucceeded(TaskBase):
class TaskFailed(TaskBase):
"""Task execution failed"""
def __init__(self, task, fn, logfile, metadata, errprinted = False):
def __init__(self, task, logfile, metadata, errprinted = False):
self.errprinted = errprinted
super(TaskFailed, self).__init__(task, fn, logfile, metadata)
super(TaskFailed, self).__init__(task, logfile, metadata)
class TaskFailedSilent(TaskBase):
"""Task execution failed (silently)"""
@@ -110,8 +135,8 @@ class TaskFailedSilent(TaskBase):
class TaskInvalid(TaskBase):
def __init__(self, task, fn, metadata):
super(TaskInvalid, self).__init__(task, fn, None, metadata)
def __init__(self, task, metadata):
super(TaskInvalid, self).__init__(task, None, metadata)
self._message = "No such task '%s'" % task
class TaskProgress(event.Event):
@@ -153,33 +178,15 @@ class LogTee(object):
def __repr__(self):
return '<LogTee {0}>'.format(self.name)
def flush(self):
self.outfile.flush()
class StdoutNoopContextManager:
"""
This class acts like sys.stdout, but adds noop __enter__ and __exit__ methods.
"""
def __enter__(self):
return sys.stdout
def __exit__(self, *exc_info):
pass
def write(self, string):
return sys.stdout.write(string)
def flush(self):
sys.stdout.flush()
@property
def name(self):
return sys.stdout.name
def exec_func(func, d, dirs = None):
#
# pythonexception allows the python exceptions generated to be raised
# as the real exceptions (not FuncFailed) and without a backtrace at the
# origin of the failure.
#
def exec_func(func, d, dirs = None, pythonexception=False):
"""Execute a BB 'function'"""
try:
@@ -188,13 +195,13 @@ def exec_func(func, d, dirs = None):
oldcwd = None
flags = d.getVarFlags(func)
cleandirs = flags.get('cleandirs') if flags else None
cleandirs = flags.get('cleandirs')
if cleandirs:
for cdir in d.expand(cleandirs).split():
bb.utils.remove(cdir, True)
bb.utils.mkdirhier(cdir)
if flags and dirs is None:
if dirs is None:
dirs = flags.get('dirs')
if dirs:
dirs = d.expand(dirs).split()
@@ -220,17 +227,17 @@ def exec_func(func, d, dirs = None):
else:
lockfiles = None
tempdir = d.getVar('T')
tempdir = d.getVar('T', True)
# or func allows items to be executed outside of the normal
# task set, such as buildhistory
task = d.getVar('BB_RUNTASK') or func
task = d.getVar('BB_RUNTASK', True) or func
if task == func:
taskfunc = task
else:
taskfunc = "%s.%s" % (task, func)
runfmt = d.getVar('BB_RUNFMT') or "run.{func}.{pid}"
runfmt = d.getVar('BB_RUNFMT', True) or "run.{func}.{pid}"
runfn = runfmt.format(taskfunc=taskfunc, task=task, func=func, pid=os.getpid())
runfile = os.path.join(tempdir, runfn)
bb.utils.mkdirhier(os.path.dirname(runfile))
@@ -251,7 +258,7 @@ def exec_func(func, d, dirs = None):
with bb.utils.fileslocked(lockfiles):
if ispython:
exec_func_python(func, d, runfile, cwd=adir)
exec_func_python(func, d, runfile, cwd=adir, pythonexception=pythonexception)
else:
exec_func_shell(func, d, runfile, cwd=adir)
@@ -271,7 +278,7 @@ _functionfmt = """
{function}(d)
"""
logformatter = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
def exec_func_python(func, d, runfile, cwd=None):
def exec_func_python(func, d, runfile, cwd=None, pythonexception=False):
"""Execute a python BB 'function'"""
code = _functionfmt.format(function=func)
@@ -296,7 +303,13 @@ def exec_func_python(func, d, runfile, cwd=None):
bb.methodpool.insert_method(func, text, fn, lineno - 1)
comp = utils.better_compile(code, func, "exec_python_func() autogenerated")
utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated")
utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated", pythonexception=pythonexception)
except (bb.parse.SkipRecipe, bb.build.FuncFailed):
raise
except:
if pythonexception:
raise
raise FuncFailed(func, None)
finally:
bb.debug(2, "Python function %s finished" % func)
@@ -308,98 +321,22 @@ def exec_func_python(func, d, runfile, cwd=None):
def shell_trap_code():
return '''#!/bin/sh\n
__BITBAKE_LAST_LINE=0
# Emit a useful diagnostic if something fails:
bb_sh_exit_handler() {
bb_exit_handler() {
ret=$?
if [ "$ret" != 0 ]; then
echo "WARNING: exit code $ret from a shell command."
fi
exit $ret
case $ret in
0) ;;
*) case $BASH_VERSION in
"") echo "WARNING: exit code $ret from a shell command.";;
*) echo "WARNING: ${BASH_SOURCE[0]}:${BASH_LINENO[0]} exit $ret from '$BASH_COMMAND'";;
esac
exit $ret
esac
}
bb_bash_exit_handler() {
ret=$?
{ set +x; } > /dev/null
trap "" DEBUG
if [ "$ret" != 0 ]; then
echo "WARNING: ${BASH_SOURCE[0]}:${__BITBAKE_LAST_LINE} exit $ret from '$1'"
echo "WARNING: Backtrace (BB generated script): "
for i in $(seq 1 $((${#FUNCNAME[@]} - 1))); do
if [ "$i" -eq 1 ]; then
echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${__BITBAKE_LAST_LINE}"
else
echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${BASH_LINENO[$((i-1))]}"
fi
done
fi
exit $ret
}
bb_bash_debug_handler() {
local line=${BASH_LINENO[0]}
# For some reason the DEBUG trap trips with lineno=1 when scripts exit; ignore it
if [ "$line" -eq 1 ]; then
return
fi
# Track the line number of commands as they execute. This is so we can have access to the failing line number
# in the EXIT trap. See http://gnu-bash.2382.n7.nabble.com/trap-echo-quot-trap-exit-on-LINENO-quot-EXIT-gt-wrong-linenumber-td3666.html
if [ "${FUNCNAME[1]}" != "bb_bash_exit_handler" ]; then
__BITBAKE_LAST_LINE=$line
fi
}
case $BASH_VERSION in
"") trap 'bb_sh_exit_handler' 0
set -e
;;
*) trap 'bb_bash_exit_handler "$BASH_COMMAND"' 0
trap '{ bb_bash_debug_handler; } 2>/dev/null' DEBUG
set -e
shopt -s extdebug
;;
esac
trap 'bb_exit_handler' 0
set -e
'''
def create_progress_handler(func, progress, logfile, d):
if progress == 'percent':
# Use default regex
return bb.progress.BasicProgressHandler(d, outfile=logfile)
elif progress.startswith('percent:'):
# Use specified regex
return bb.progress.BasicProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
elif progress.startswith('outof:'):
# Use specified regex
return bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
elif progress.startswith("custom:"):
# Use a custom progress handler that was injected via OE_EXTRA_IMPORTS or __builtins__
import functools
from types import ModuleType
parts = progress.split(":", 2)
_, cls, otherargs = parts[0], parts[1], (parts[2] or None) if parts[2:] else None
if cls:
def resolve(x, y):
if not x:
return None
if isinstance(x, ModuleType):
return getattr(x, y, None)
return x.get(y)
cls_obj = functools.reduce(resolve, cls.split("."), bb.utils._context)
if not cls_obj:
# Fall-back on __builtins__
cls_obj = functools.reduce(resolve, cls.split("."), __builtins__)
if cls_obj:
return cls_obj(d, outfile=logfile, otherargs=otherargs)
bb.warn('%s: unknown custom progress handler in task progress varflag value "%s", ignoring' % (func, cls))
else:
bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress))
return logfile
def exec_func_shell(func, d, runfile, cwd=None):
"""Execute a shell function from the metadata
@@ -416,7 +353,7 @@ def exec_func_shell(func, d, runfile, cwd=None):
bb.data.emit_func(func, script, d)
if verboseShellLogging or bb.utils.to_boolean(d.getVar("BB_VERBOSE_LOGS", False)):
if bb.msg.loggerVerboseLogs:
script.write("set -x\n")
if cwd:
script.write("cd '%s'\n" % cwd)
@@ -432,24 +369,28 @@ exit $ret
cmd = runfile
if d.getVarFlag(func, 'fakeroot', False):
fakerootcmd = d.getVar('FAKEROOT')
fakerootcmd = d.getVar('FAKEROOT', True)
if fakerootcmd:
cmd = [fakerootcmd, runfile]
if verboseStdoutLogging:
logfile = LogTee(logger, StdoutNoopContextManager())
if bb.msg.loggerDefaultVerbose:
logfile = LogTee(logger, sys.stdout)
else:
logfile = StdoutNoopContextManager()
logfile = sys.stdout
progress = d.getVarFlag(func, 'progress')
progress = d.getVarFlag(func, 'progress', True)
if progress:
try:
logfile = create_progress_handler(func, progress, logfile, d)
except:
from traceback import format_exc
logger.error("Failed to create progress handler")
logger.error(format_exc())
raise
if progress == 'percent':
# Use default regex
logfile = bb.progress.BasicProgressHandler(d, outfile=logfile)
elif progress.startswith('percent:'):
# Use specified regex
logfile = bb.progress.BasicProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
elif progress.startswith('outof:'):
# Use specified regex
logfile = bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
else:
bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress))
fifobuffer = bytearray()
def readfifo(data):
@@ -468,8 +409,6 @@ exit $ret
bb.plain(value)
elif cmd == 'bbnote':
bb.note(value)
elif cmd == 'bbverbnote':
bb.verbnote(value)
elif cmd == 'bbwarn':
bb.warn(value)
elif cmd == 'bberror':
@@ -491,7 +430,7 @@ exit $ret
else:
break
tempdir = d.getVar('T')
tempdir = d.getVar('T', True)
fifopath = os.path.join(tempdir, 'fifo.%s' % os.getpid())
if os.path.exists(fifopath):
os.unlink(fifopath)
@@ -499,64 +438,13 @@ exit $ret
with open(fifopath, 'r+b', buffering=0) as fifo:
try:
bb.debug(2, "Executing shell function %s" % func)
with open(os.devnull, 'r+') as stdin, logfile:
bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
except bb.process.ExecutionError as exe:
# Find the backtrace that the shell trap generated
backtrace_marker_regex = re.compile(r"WARNING: Backtrace \(BB generated script\)")
stdout_lines = (exe.stdout or "").split("\n")
backtrace_start_line = None
for i, line in enumerate(reversed(stdout_lines)):
if backtrace_marker_regex.search(line):
backtrace_start_line = len(stdout_lines) - i
break
# Read the backtrace frames, starting at the location we just found
backtrace_entry_regex = re.compile(r"#(?P<frameno>\d+): (?P<funcname>[^\s]+), (?P<file>.+?), line ("
r"?P<lineno>\d+)")
backtrace_frames = []
if backtrace_start_line:
for line in itertools.islice(stdout_lines, backtrace_start_line, None):
match = backtrace_entry_regex.search(line)
if match:
backtrace_frames.append(match.groupdict())
with open(runfile, "r") as script:
script_lines = [line.rstrip() for line in script.readlines()]
# For each backtrace frame, search backwards in the script (from the line number called out by the frame),
# to find the comment that emit_vars injected when it wrote the script. This will give us the metadata
# filename (e.g. .bb or .bbclass) and line number where the shell function was originally defined.
script_metadata_comment_regex = re.compile(r"# line: (?P<lineno>\d+), file: (?P<file>.+)")
better_frames = []
# Skip the very last frame since it's just the call to the shell task in the body of the script
for frame in backtrace_frames[:-1]:
# Check whether the frame corresponds to a function defined in the script vs external script.
if os.path.samefile(frame["file"], runfile):
# Search backwards from the frame lineno to locate the comment that BB injected
i = int(frame["lineno"]) - 1
while i >= 0:
match = script_metadata_comment_regex.match(script_lines[i])
if match:
# Calculate the relative line in the function itself
relative_line_in_function = int(frame["lineno"]) - i - 2
# Calculate line in the function as declared in the metadata
metadata_function_line = relative_line_in_function + int(match["lineno"])
better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format(
frameno=frame["frameno"],
funcname=frame["funcname"],
file=match["file"],
lineno=metadata_function_line
))
break
i -= 1
else:
better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format(**frame))
if better_frames:
better_frames = ("\t{0}".format(frame) for frame in better_frames)
exe.extra_message = "\nBacktrace (metadata-relative locations):\n{0}".format("\n".join(better_frames))
raise
try:
with open(os.devnull, 'r+') as stdin:
bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
except bb.process.CmdError:
logfn = d.getVar('BB_LOGFILE', True)
raise FuncFailed(func, logfn)
finally:
os.unlink(fifopath)
@@ -586,18 +474,18 @@ def _exec_task(fn, task, d, quieterr):
logger.debug(1, "Executing task %s", task)
localdata = _task_data(fn, task, d)
tempdir = localdata.getVar('T')
tempdir = localdata.getVar('T', True)
if not tempdir:
bb.fatal("T variable not set, unable to build")
# Change nice level if we're asked to
nice = localdata.getVar("BB_TASK_NICE_LEVEL")
nice = localdata.getVar("BB_TASK_NICE_LEVEL", True)
if nice:
curnice = os.nice(0)
nice = int(nice) - curnice
newnice = os.nice(nice)
logger.debug(1, "Renice to %s " % newnice)
ionice = localdata.getVar("BB_TASK_IONICE_LEVEL")
ionice = localdata.getVar("BB_TASK_IONICE_LEVEL", True)
if ionice:
try:
cls, prio = ionice.split(".", 1)
@@ -608,7 +496,7 @@ def _exec_task(fn, task, d, quieterr):
bb.utils.mkdirhier(tempdir)
# Determine the logfile to generate
logfmt = localdata.getVar('BB_LOGFMT') or 'log.{task}.{pid}'
logfmt = localdata.getVar('BB_LOGFMT', True) or 'log.{task}.{pid}'
logbase = logfmt.format(task=task, pid=os.getpid())
# Document the order of the tasks...
@@ -645,6 +533,7 @@ def _exec_task(fn, task, d, quieterr):
self.triggered = True
# Handle logfiles
si = open('/dev/null', 'r')
try:
bb.utils.mkdirhier(os.path.dirname(logfn))
logfile = open(logfn, 'w')
@@ -658,8 +547,7 @@ def _exec_task(fn, task, d, quieterr):
ose = [os.dup(sys.stderr.fileno()), sys.stderr.fileno()]
# Replace those fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), osi[1])
os.dup2(si.fileno(), osi[1])
os.dup2(logfile.fileno(), oso[1])
os.dup2(logfile.fileno(), ose[1])
@@ -675,15 +563,17 @@ def _exec_task(fn, task, d, quieterr):
localdata.setVar('BB_LOGFILE', logfn)
localdata.setVar('BB_RUNTASK', task)
localdata.setVar('BB_TASK_LOGGER', bblogger)
flags = localdata.getVarFlags(task)
try:
try:
event.fire(TaskStarted(task, fn, logfn, flags, localdata), localdata)
event.fire(TaskStarted(task, logfn, flags, localdata), localdata)
except (bb.BBHandledException, SystemExit):
return 1
except FuncFailed as exc:
logger.error(str(exc))
return 1
try:
for func in (prefuncs or '').split():
@@ -691,16 +581,16 @@ def _exec_task(fn, task, d, quieterr):
exec_func(task, localdata)
for func in (postfuncs or '').split():
exec_func(func, localdata)
except bb.BBHandledException:
event.fire(TaskFailed(task, fn, logfn, localdata, True), localdata)
return 1
except Exception as exc:
except FuncFailed as exc:
if quieterr:
event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
event.fire(TaskFailedSilent(task, logfn, localdata), localdata)
else:
errprinted = errchk.triggered
logger.error(str(exc))
event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
event.fire(TaskFailed(task, logfn, localdata, errprinted), localdata)
return 1
except bb.BBHandledException:
event.fire(TaskFailed(task, logfn, localdata, True), localdata)
return 1
finally:
sys.stdout.flush()
@@ -717,13 +607,14 @@ def _exec_task(fn, task, d, quieterr):
os.close(osi[0])
os.close(oso[0])
os.close(ose[0])
si.close()
logfile.close()
if os.path.exists(logfn) and os.path.getsize(logfn) == 0:
logger.debug(2, "Zero size logfn %s, removing", logfn)
bb.utils.remove(logfn)
bb.utils.remove(loglink)
event.fire(TaskSucceeded(task, fn, logfn, localdata), localdata)
event.fire(TaskSucceeded(task, logfn, localdata), localdata)
if not localdata.getVarFlag(task, 'nostamp', False) and not localdata.getVarFlag(task, 'selfstamp', False):
make_stamp(task, localdata)
@@ -737,7 +628,7 @@ def exec_task(fn, task, d, profile = False):
quieterr = True
if profile:
profname = "profile-%s.log" % (d.getVar("PN") + "-" + task)
profname = "profile-%s.log" % (d.getVar("PN", True) + "-" + task)
try:
import cProfile as profile
except:
@@ -777,9 +668,9 @@ def stamp_internal(taskname, d, file_name, baseonly=False, noextra=False):
stamp = d.stamp[file_name]
extrainfo = d.stamp_extrainfo[file_name].get(taskflagname) or ""
else:
stamp = d.getVar('STAMP')
file_name = d.getVar('BB_FILENAME')
extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info') or ""
stamp = d.getVar('STAMP', True)
file_name = d.getVar('BB_FILENAME', True)
extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or ""
if baseonly:
return stamp
@@ -813,9 +704,9 @@ def stamp_cleanmask_internal(taskname, d, file_name):
stamp = d.stampclean[file_name]
extrainfo = d.stamp_extrainfo[file_name].get(taskflagname) or ""
else:
stamp = d.getVar('STAMPCLEAN')
file_name = d.getVar('BB_FILENAME')
extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info') or ""
stamp = d.getVar('STAMPCLEAN', True)
file_name = d.getVar('BB_FILENAME', True)
extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or ""
if not stamp:
return []
@@ -851,7 +742,7 @@ def make_stamp(task, d, file_name = None):
# as it completes
if not task.endswith("_setscene") and task != "do_setscene" and not file_name:
stampbase = stamp_internal(task, d, None, True)
file_name = d.getVar('BB_FILENAME')
file_name = d.getVar('BB_FILENAME', True)
bb.parse.siggen.dump_sigtask(file_name, task, stampbase, True)
def del_stamp(task, d, file_name = None):
@@ -873,7 +764,7 @@ def write_taint(task, d, file_name = None):
if file_name:
taintfn = d.stamp[file_name] + '.' + task + '.taint'
else:
taintfn = d.getVar('STAMP') + '.' + task + '.taint'
taintfn = d.getVar('STAMP', True) + '.' + task + '.taint'
bb.utils.mkdirhier(os.path.dirname(taintfn))
# The specific content of the taint file is not really important,
# we just need it to be random, so a random UUID is used
@@ -911,7 +802,6 @@ def add_tasks(tasklist, d):
if name in flags:
deptask = d.expand(flags[name])
task_deps[name][task] = deptask
getTask('mcdepends')
getTask('depends')
getTask('rdepends')
getTask('deptask')
@@ -925,9 +815,6 @@ def add_tasks(tasklist, d):
task_deps['parents'][task] = []
if 'deps' in flags:
for dep in flags['deps']:
# Check and warn for "addtask task after foo" while foo does not exist
#if not dep in tasklist:
# bb.warn('%s: dependent task %s for %s does not exist' % (d.getVar('PN'), dep, task))
dep = d.expand(dep)
task_deps['parents'][task].append(dep)
@@ -974,52 +861,3 @@ def deltask(task, d):
if task in deps:
deps.remove(task)
d.setVarFlag(bbtask, 'deps', deps)
def preceedtask(task, with_recrdeptasks, d):
"""
Returns a set of tasks in the current recipe which were specified as
precondition by the task itself ("after") or which listed themselves
as precondition ("before"). Preceeding tasks specified via the
"recrdeptask" are included in the result only if requested. Beware
that this may lead to the task itself being listed.
"""
preceed = set()
# Ignore tasks which don't exist
tasks = d.getVar('__BBTASKS', False)
if task not in tasks:
return preceed
preceed.update(d.getVarFlag(task, 'deps') or [])
if with_recrdeptasks:
recrdeptask = d.getVarFlag(task, 'recrdeptask')
if recrdeptask:
preceed.update(recrdeptask.split())
return preceed
def tasksbetween(task_start, task_end, d):
"""
Return the list of tasks between two tasks in the current recipe,
where task_start is to start at and task_end is the task to end at
(and task_end has a dependency chain back to task_start).
"""
outtasks = []
tasks = list(filter(lambda k: d.getVarFlag(k, "task"), d.keys()))
def follow_chain(task, endtask, chain=None):
if not chain:
chain = []
chain.append(task)
for othertask in tasks:
if othertask == task:
continue
if task == endtask:
for ctask in chain:
if ctask not in outtasks:
outtasks.append(ctask)
else:
deps = d.getVarFlag(othertask, 'deps', False)
if task in deps:
follow_chain(othertask, endtask, chain)
chain.pop()
follow_chain(task_start, task_end)
return outtasks

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Cache implementation
#
@@ -13,26 +15,32 @@
# Copyright (C) 2005 Holger Hans Peter Freyther
# Copyright (C) 2005 ROAD GmbH
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys
import logging
import pickle
from collections import defaultdict, Mapping
from collections import defaultdict
import bb.utils
from bb import PrefixLoggerAdapter
import re
logger = logging.getLogger("BitBake.Cache")
__cache_version__ = "154"
__cache_version__ = "150"
def getCacheFile(path, filename, mc, data_hash):
mcspec = ''
if mc:
mcspec = ".%s" % mc
return os.path.join(path, filename + mcspec + "." + data_hash)
def getCacheFile(path, filename, data_hash):
return os.path.join(path, filename + "." + data_hash)
# RecipeInfoCommon defines common data retrieving methods
# from meta data for caches. CoreRecipeInfo as well as other
@@ -63,7 +71,7 @@ class RecipeInfoCommon(object):
@classmethod
def flaglist(cls, flag, varlist, metadata, squash=False):
out_dict = dict((var, metadata.getVarFlag(var, flag))
out_dict = dict((var, metadata.getVarFlag(var, flag, True))
for var in varlist)
if squash:
return dict((k,v) for (k,v) in out_dict.items() if v)
@@ -78,31 +86,30 @@ class RecipeInfoCommon(object):
class CoreRecipeInfo(RecipeInfoCommon):
__slots__ = ()
cachefile = "bb_cache.dat"
cachefile = "bb_cache.dat"
def __init__(self, filename, metadata):
def __init__(self, filename, metadata):
self.file_depends = metadata.getVar('__depends', False)
self.timestamp = bb.parse.cached_mtime(filename)
self.variants = self.listvar('__VARIANTS', metadata) + ['']
self.appends = self.listvar('__BBAPPEND', metadata)
self.nocache = self.getvar('BB_DONT_CACHE', metadata)
self.provides = self.depvar('PROVIDES', metadata)
self.rprovides = self.depvar('RPROVIDES', metadata)
self.pn = self.getvar('PN', metadata) or bb.parse.vars_from_file(filename,metadata)[0]
self.packages = self.listvar('PACKAGES', metadata)
if not self.packages:
self.packages.append(self.pn)
self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata)
self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata)
self.skipreason = self.getvar('__SKIPPED', metadata)
if self.skipreason:
self.pn = self.getvar('PN', metadata) or bb.parse.BBHandler.vars_from_file(filename,metadata)[0]
self.skipped = True
self.provides = self.depvar('PROVIDES', metadata)
self.rprovides = self.depvar('RPROVIDES', metadata)
return
self.tasks = metadata.getVar('__BBTASKS', False)
self.pn = self.getvar('PN', metadata)
self.packages = self.listvar('PACKAGES', metadata)
if not self.pn in self.packages:
self.packages.append(self.pn)
self.basetaskhashes = self.taskvar('BB_BASEHASH', self.tasks, metadata)
self.hashfilename = self.getvar('BB_HASHFILENAME', metadata)
@@ -115,12 +122,16 @@ class CoreRecipeInfo(RecipeInfoCommon):
self.defaultpref = self.intvar('DEFAULT_PREFERENCE', metadata)
self.not_world = self.getvar('EXCLUDE_FROM_WORLD', metadata)
self.stamp = self.getvar('STAMP', metadata)
self.stampclean = self.getvar('STAMPCLEAN', metadata)
self.stampclean = self.getvar('STAMPCLEAN', metadata)
self.stamp_extrainfo = self.flaglist('stamp-extra-info', self.tasks, metadata)
self.file_checksums = self.flaglist('file-checksums', self.tasks, metadata, True)
self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata)
self.depends = self.depvar('DEPENDS', metadata)
self.provides = self.depvar('PROVIDES', metadata)
self.rdepends = self.depvar('RDEPENDS', metadata)
self.rprovides = self.depvar('RPROVIDES', metadata)
self.rrecommends = self.depvar('RRECOMMENDS', metadata)
self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata)
self.rdepends_pkg = self.pkgvar('RDEPENDS', self.packages, metadata)
self.rrecommends_pkg = self.pkgvar('RRECOMMENDS', self.packages, metadata)
self.inherits = self.getvar('__inherit_cache', metadata, expand=False)
@@ -206,16 +217,16 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.packages_dynamic[package].append(fn)
# Build hash of runtime depends and recommends
for package in self.packages:
for package in self.packages + [self.pn]:
cachedata.rundeps[fn][package] = list(self.rdepends) + self.rdepends_pkg[package]
cachedata.runrecs[fn][package] = list(self.rrecommends) + self.rrecommends_pkg[package]
# Collect files we may need for possible world-dep
# calculations
if not self.not_world:
if self.not_world:
logger.debug(1, "EXCLUDE FROM WORLD: %s", fn)
else:
cachedata.possible_world.append(fn)
#else:
# logger.debug(2, "EXCLUDE FROM WORLD: %s", fn)
# create a collection of all targets for sanity checking
# tasks, such as upstream versions, license, and tools for
@@ -224,7 +235,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.hashfn[fn] = self.hashfilename
for task, taskhash in self.basetaskhashes.items():
identifier = '%s:%s' % (fn, task)
identifier = '%s.%s' % (fn, task)
cachedata.basetaskhash[identifier] = taskhash
cachedata.inherits[fn] = self.inherits
@@ -238,7 +249,7 @@ def virtualfn2realfn(virtualfn):
Convert a virtual file name to a real one + the associated subclass keyword
"""
mc = ""
if virtualfn.startswith('mc:'):
if virtualfn.startswith('multiconfig:'):
elems = virtualfn.split(':')
mc = elems[1]
virtualfn = ":".join(elems[2:])
@@ -259,7 +270,7 @@ def realfn2virtual(realfn, cls, mc):
if cls:
realfn = "virtual:" + cls + ":" + realfn
if mc:
realfn = "mc:" + mc + ":" + realfn
realfn = "multiconfig:" + mc + ":" + realfn
return realfn
def variant2virtual(realfn, variant):
@@ -268,11 +279,11 @@ def variant2virtual(realfn, variant):
"""
if variant == "":
return realfn
if variant.startswith("mc:"):
if variant.startswith("multiconfig:"):
elems = variant.split(":")
if elems[2]:
return "mc:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn
return "mc:" + elems[1] + ":" + realfn
return "multiconfig:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn
return "multiconfig:" + elems[1] + ":" + realfn
return "virtual:" + variant + ":" + realfn
def parse_recipe(bb_data, bbfile, appends, mc=''):
@@ -285,7 +296,7 @@ def parse_recipe(bb_data, bbfile, appends, mc=''):
bb_data.setVar("__BBMULTICONFIG", mc)
# expand tmpdir to include this topdir
bb_data.setVar('TMPDIR', bb_data.getVar('TMPDIR') or "")
bb_data.setVar('TMPDIR', bb_data.getVar('TMPDIR', True) or "")
bbfile_loc = os.path.abspath(os.path.dirname(bbfile))
oldpath = os.path.abspath(os.getcwd())
bb.parse.cached_mtime_noerror(bbfile_loc)
@@ -328,7 +339,7 @@ class NoCache(object):
bb_data = self.load_bbfile(virtualfn, appends, virtonly=True)
return bb_data[virtual]
def load_bbfile(self, bbfile, appends, virtonly = False, mc=None):
def load_bbfile(self, bbfile, appends, virtonly = False):
"""
Load and parse one .bb build file
Return the data and whether parsing resulted in the file being skipped
@@ -341,10 +352,6 @@ class NoCache(object):
datastores = parse_recipe(bb_data, bbfile, appends, mc)
return datastores
if mc is not None:
bb_data = self.databuilder.mcdata[mc].createCopy()
return parse_recipe(bb_data, bbfile, appends, mc)
bb_data = self.data.createCopy()
datastores = parse_recipe(bb_data, bbfile, appends)
@@ -354,7 +361,7 @@ class NoCache(object):
bb_data = self.databuilder.mcdata[mc].createCopy()
newstores = parse_recipe(bb_data, bbfile, appends, mc)
for ns in newstores:
datastores["mc:%s:%s" % (mc, ns)] = newstores[ns]
datastores["multiconfig:%s:%s" % (mc, ns)] = newstores[ns]
return datastores
@@ -362,98 +369,61 @@ class Cache(NoCache):
"""
BitBake Cache implementation
"""
def __init__(self, databuilder, mc, data_hash, caches_array):
def __init__(self, databuilder, data_hash, caches_array):
super().__init__(databuilder)
data = databuilder.data
# Pass caches_array information into Cache Constructor
# It will be used later for deciding whether we
# need extra cache file dump/load support
self.mc = mc
self.logger = PrefixLoggerAdapter("Cache: %s: " % (mc if mc else "default"), logger)
# It will be used later for deciding whether we
# need extra cache file dump/load support
self.caches_array = caches_array
self.cachedir = data.getVar("CACHE")
self.cachedir = data.getVar("CACHE", True)
self.clean = set()
self.checked = set()
self.depends_cache = {}
self.data_fn = None
self.cacheclean = True
self.data_hash = data_hash
self.filelist_regex = re.compile(r'(?:(?<=:True)|(?<=:False))\s+')
if self.cachedir in [None, '']:
self.has_cache = False
self.logger.info("Not using a cache. "
"Set CACHE = <directory> to enable.")
logger.info("Not using a cache. "
"Set CACHE = <directory> to enable.")
return
self.has_cache = True
self.cachefile = getCacheFile(self.cachedir, "bb_cache.dat", self.data_hash)
def getCacheFile(self, cachefile):
return getCacheFile(self.cachedir, cachefile, self.mc, self.data_hash)
def prepare_cache(self, progress):
if not self.has_cache:
return 0
loaded = 0
self.cachefile = self.getCacheFile("bb_cache.dat")
self.logger.debug(1, "Cache dir: %s", self.cachedir)
logger.debug(1, "Using cache in '%s'", self.cachedir)
bb.utils.mkdirhier(self.cachedir)
cache_ok = True
if self.caches_array:
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
cache_exists = os.path.exists(cachefile)
self.logger.debug(2, "Checking if %s exists: %r", cachefile, cache_exists)
cache_ok = cache_ok and cache_exists
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
cache_ok = cache_ok and os.path.exists(cachefile)
cache_class.init_cacheData(self)
if cache_ok:
loaded = self.load_cachefile(progress)
self.load_cachefile()
elif os.path.isfile(self.cachefile):
self.logger.info("Out of date cache found, rebuilding...")
else:
self.logger.debug(1, "Cache file %s not found, building..." % self.cachefile)
# We don't use the symlink, its just for debugging convinience
if self.mc:
symlink = os.path.join(self.cachedir, "bb_cache.dat.%s" % self.mc)
else:
symlink = os.path.join(self.cachedir, "bb_cache.dat")
if os.path.exists(symlink):
bb.utils.remove(symlink)
try:
os.symlink(os.path.basename(self.cachefile), symlink)
except OSError:
pass
return loaded
def cachesize(self):
if not self.has_cache:
return 0
logger.info("Out of date cache found, rebuilding...")
def load_cachefile(self):
cachesize = 0
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
try:
with open(cachefile, "rb") as cachefile:
cachesize += os.fstat(cachefile.fileno()).st_size
except FileNotFoundError:
pass
return cachesize
def load_cachefile(self, progress):
previous_progress = 0
previous_percent = 0
# Calculate the correct cachesize of all those cache files
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
self.logger.debug(1, 'Loading cache file: %s' % cachefile)
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
with open(cachefile, "rb") as cachefile:
cachesize += os.fstat(cachefile.fileno()).st_size
bb.event.fire(bb.event.CacheLoadStarted(cachesize), self.data)
for cache_class in self.caches_array:
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
with open(cachefile, "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
# Check cache version information
@@ -461,15 +431,15 @@ class Cache(NoCache):
cache_ver = pickled.load()
bitbake_ver = pickled.load()
except Exception:
self.logger.info('Invalid cache, rebuilding...')
return 0
logger.info('Invalid cache, rebuilding...')
return
if cache_ver != __cache_version__:
self.logger.info('Cache version mismatch, rebuilding...')
return 0
logger.info('Cache version mismatch, rebuilding...')
return
elif bitbake_ver != bb.__version__:
self.logger.info('Bitbake version mismatch, rebuilding...')
return 0
logger.info('Bitbake version mismatch, rebuilding...')
return
# Load the rest of the cache file
current_progress = 0
@@ -492,17 +462,25 @@ class Cache(NoCache):
self.depends_cache[key] = [value]
# only fire events on even percentage boundaries
current_progress = cachefile.tell() + previous_progress
progress(cachefile.tell() + previous_progress)
current_percent = 100 * current_progress / cachesize
if current_percent > previous_percent:
previous_percent = current_percent
bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
self.data)
previous_progress += current_progress
return len(self.depends_cache)
# Note: depends cache number is corresponding to the parsing file numbers.
# The same file has several caches, still regarded as one item in the cache
bb.event.fire(bb.event.CacheLoadCompleted(cachesize,
len(self.depends_cache)),
self.data)
def parse(self, filename, appends):
"""Parse the specified filename, returning the recipe information"""
self.logger.debug(1, "Parsing %s", filename)
logger.debug(1, "Parsing %s", filename)
infos = []
datastores = self.load_bbfile(filename, appends, mc=self.mc)
datastores = self.load_bbfile(filename, appends)
depends = []
variants = []
# Process the "real" fn last so we can store variants list
@@ -554,7 +532,7 @@ class Cache(NoCache):
cached, infos = self.load(fn, appends)
for virtualfn, info_array in infos:
if info_array[0].skipped:
self.logger.debug(1, "Skipping %s: %s", virtualfn, info_array[0].skipreason)
logger.debug(1, "Skipping %s: %s", virtualfn, info_array[0].skipreason)
skipped += 1
else:
self.add_info(virtualfn, info_array, cacheData, not cached)
@@ -590,21 +568,21 @@ class Cache(NoCache):
# File isn't in depends_cache
if not fn in self.depends_cache:
self.logger.debug(2, "%s is not cached", fn)
logger.debug(2, "Cache: %s is not cached", fn)
return False
mtime = bb.parse.cached_mtime_noerror(fn)
# Check file still exists
if mtime == 0:
self.logger.debug(2, "%s no longer exists", fn)
logger.debug(2, "Cache: %s no longer exists", fn)
self.remove(fn)
return False
info_array = self.depends_cache[fn]
# Check the file's timestamp
if mtime != info_array[0].timestamp:
self.logger.debug(2, "%s changed", fn)
logger.debug(2, "Cache: %s changed", fn)
self.remove(fn)
return False
@@ -615,37 +593,45 @@ class Cache(NoCache):
fmtime = bb.parse.cached_mtime_noerror(f)
# Check if file still exists
if old_mtime != 0 and fmtime == 0:
self.logger.debug(2, "%s's dependency %s was removed",
fn, f)
logger.debug(2, "Cache: %s's dependency %s was removed",
fn, f)
self.remove(fn)
return False
if (fmtime != old_mtime):
self.logger.debug(2, "%s's dependency %s changed",
fn, f)
logger.debug(2, "Cache: %s's dependency %s changed",
fn, f)
self.remove(fn)
return False
if hasattr(info_array[0], 'file_checksums'):
for _, fl in info_array[0].file_checksums.items():
fl = fl.strip()
if not fl:
continue
# Have to be careful about spaces and colons in filenames
flist = self.filelist_regex.split(fl)
for f in flist:
if not f:
while fl:
# A .split() would be simpler but means spaces or colons in filenames would break
a = fl.find(":True")
b = fl.find(":False")
if ((a < 0) and b) or ((b > 0) and (b < a)):
f = fl[:b+6]
fl = fl[b+7:]
elif ((b < 0) and a) or ((a > 0) and (a < b)):
f = fl[:a+5]
fl = fl[a+6:]
else:
break
fl = fl.strip()
if "*" in f:
continue
f, exist = f.split(":")
if (exist == "True" and not os.path.exists(f)) or (exist == "False" and os.path.exists(f)):
self.logger.debug(2, "%s's file checksum list file %s changed",
fn, f)
logger.debug(2, "Cache: %s's file checksum list file %s changed",
fn, f)
self.remove(fn)
return False
if tuple(appends) != tuple(info_array[0].appends):
self.logger.debug(2, "appends for %s changed", fn)
self.logger.debug(2, "%s to %s" % (str(appends), str(info_array[0].appends)))
if appends != info_array[0].appends:
logger.debug(2, "Cache: appends for %s changed", fn)
logger.debug(2, "%s to %s" % (str(appends), str(info_array[0].appends)))
self.remove(fn)
return False
@@ -654,10 +640,10 @@ class Cache(NoCache):
virtualfn = variant2virtual(fn, cls)
self.clean.add(virtualfn)
if virtualfn not in self.depends_cache:
self.logger.debug(2, "%s is not cached", virtualfn)
logger.debug(2, "Cache: %s is not cached", virtualfn)
invalid = True
elif len(self.depends_cache[virtualfn]) != len(self.caches_array):
self.logger.debug(2, "Extra caches missing for %s?" % virtualfn)
logger.debug(2, "Cache: Extra caches missing for %s?" % virtualfn)
invalid = True
# If any one of the variants is not present, mark as invalid for all
@@ -665,10 +651,10 @@ class Cache(NoCache):
for cls in info_array[0].variants:
virtualfn = variant2virtual(fn, cls)
if virtualfn in self.clean:
self.logger.debug(2, "Removing %s from cache", virtualfn)
logger.debug(2, "Cache: Removing %s from cache", virtualfn)
self.clean.remove(virtualfn)
if fn in self.clean:
self.logger.debug(2, "Marking %s as not clean", fn)
logger.debug(2, "Cache: Marking %s as not clean", fn)
self.clean.remove(fn)
return False
@@ -681,10 +667,10 @@ class Cache(NoCache):
Called from the parser in error cases
"""
if fn in self.depends_cache:
self.logger.debug(1, "Removing %s from cache", fn)
logger.debug(1, "Removing %s from cache", fn)
del self.depends_cache[fn]
if fn in self.clean:
self.logger.debug(1, "Marking %s as unclean", fn)
logger.debug(1, "Marking %s as unclean", fn)
self.clean.remove(fn)
def sync(self):
@@ -697,13 +683,12 @@ class Cache(NoCache):
return
if self.cacheclean:
self.logger.debug(2, "Cache is clean, not saving.")
logger.debug(2, "Cache is clean, not saving.")
return
for cache_class in self.caches_array:
cache_class_name = cache_class.__name__
cachefile = self.getCacheFile(cache_class.cachefile)
self.logger.debug(2, "Writing %s", cachefile)
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
with open(cachefile, "wb") as f:
p = pickle.Pickler(f, pickle.HIGHEST_PROTOCOL)
p.dump(__cache_version__)
@@ -722,18 +707,8 @@ class Cache(NoCache):
return bb.parse.cached_mtime_noerror(cachefile)
def add_info(self, filename, info_array, cacheData, parsed=None, watcher=None):
if self.mc is not None:
(fn, cls, mc) = virtualfn2realfn(filename)
if mc:
self.logger.error("Unexpected multiconfig %s", filename)
return
vfn = realfn2virtual(fn, cls, self.mc)
else:
vfn = filename
if isinstance(info_array[0], CoreRecipeInfo) and (not info_array[0].skipped):
cacheData.add_from_recipeinfo(vfn, info_array)
cacheData.add_from_recipeinfo(filename, info_array)
if watcher:
watcher(info_array[0].file_depends)
@@ -758,61 +733,6 @@ class Cache(NoCache):
info_array.append(cache_class(realfn, data))
self.add_info(file_name, info_array, cacheData, parsed)
class MulticonfigCache(Mapping):
def __init__(self, databuilder, data_hash, caches_array):
def progress(p):
nonlocal current_progress
nonlocal previous_progress
nonlocal previous_percent
nonlocal cachesize
current_progress = previous_progress + p
if current_progress > cachesize:
# we might have calculated incorrect total size because a file
# might've been written out just after we checked its size
cachesize = current_progress
current_percent = 100 * current_progress / cachesize
if current_percent > previous_percent:
previous_percent = current_percent
bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
databuilder.data)
cachesize = 0
current_progress = 0
previous_progress = 0
previous_percent = 0
self.__caches = {}
for mc, mcdata in databuilder.mcdata.items():
self.__caches[mc] = Cache(databuilder, mc, data_hash, caches_array)
cachesize += self.__caches[mc].cachesize()
bb.event.fire(bb.event.CacheLoadStarted(cachesize), databuilder.data)
loaded = 0
for c in self.__caches.values():
loaded += c.prepare_cache(progress)
previous_progress = current_progress
# Note: depends cache number is corresponding to the parsing file numbers.
# The same file has several caches, still regarded as one item in the cache
bb.event.fire(bb.event.CacheLoadCompleted(cachesize, loaded), databuilder.data)
def __len__(self):
return len(self.__caches)
def __getitem__(self, key):
return self.__caches[key]
def __contains__(self, key):
return key in self.__caches
def __iter__(self):
for k in self.__caches:
yield k
def init(cooker):
"""
@@ -872,8 +792,8 @@ class MultiProcessCache(object):
self.cachedata_extras = self.create_cachedata()
def init_cache(self, d, cache_file_name=None):
cachedir = (d.getVar("PERSISTENT_DIR") or
d.getVar("CACHE"))
cachedir = (d.getVar("PERSISTENT_DIR", True) or
d.getVar("CACHE", True))
if cachedir in [None, '']:
return
bb.utils.mkdirhier(cachedir)
@@ -963,55 +883,3 @@ class MultiProcessCache(object):
bb.utils.unlockfile(glf)
class SimpleCache(object):
"""
BitBake multi-process cache implementation
Used by the codeparser & file checksum caches
"""
def __init__(self, version):
self.cachefile = None
self.cachedata = None
self.cacheversion = version
def init_cache(self, d, cache_file_name=None, defaultdata=None):
cachedir = (d.getVar("PERSISTENT_DIR") or
d.getVar("CACHE"))
if not cachedir:
return defaultdata
bb.utils.mkdirhier(cachedir)
self.cachefile = os.path.join(cachedir,
cache_file_name or self.__class__.cache_file_name)
logger.debug(1, "Using cache in '%s'", self.cachefile)
glf = bb.utils.lockfile(self.cachefile + ".lock")
try:
with open(self.cachefile, "rb") as f:
p = pickle.Unpickler(f)
data, version = p.load()
except:
bb.utils.unlockfile(glf)
return defaultdata
bb.utils.unlockfile(glf)
if version != self.cacheversion:
return defaultdata
return data
def save(self, data):
if not self.cachefile:
return
glf = bb.utils.lockfile(self.cachefile + ".lock")
with open(self.cachefile, "wb") as f:
p = pickle.Pickler(f, -1)
p.dump([data, self.cacheversion])
bb.utils.unlockfile(glf)

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Extra RecipeInfo will be all defined in this file. Currently,
# Only Hob (Image Creator) Requests some extra fields. So
@@ -10,8 +12,18 @@
# Copyright (C) 2011, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from bb.cache import RecipeInfoCommon

View File

@@ -2,13 +2,24 @@
#
# Copyright (C) 2012 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import glob
import operator
import os
import stat
import pickle
import bb.utils
import logging
from bb.cache import MultiProcessCache
@@ -73,7 +84,7 @@ class FileChecksumCache(MultiProcessCache):
else:
dest[0][h] = source[0][h]
def get_checksums(self, filelist, pn, localdirsexclude):
def get_checksums(self, filelist, pn):
"""Get checksums for a list of files"""
def checksum_file(f):
@@ -86,11 +97,8 @@ class FileChecksumCache(MultiProcessCache):
def checksum_dir(pth):
# Handle directories recursively
if pth == "/":
bb.fatal("Refusing to checksum /")
dirchecksums = []
for root, dirs, files in os.walk(pth, topdown=True):
[dirs.remove(d) for d in list(dirs) if d in localdirsexclude]
for root, dirs, files in os.walk(pth):
for name in files:
fullpth = os.path.join(root, name)
checksum = checksum_file(fullpth)

View File

@@ -1,41 +1,20 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
BitBake code parser
Parses actual code (i.e. python and shell) for functions and in-line
expressions. Used mainly to determine dependencies on other functions
and variables within the BitBake metadata. Also provides a cache for
this information in order to speed up processing.
(Not to be confused with the code that parses the metadata itself,
see lib/bb/parse/ for that).
NOTE: if you change how the parsers gather information you will almost
certainly need to increment CodeParserCache.CACHE_VERSION below so that
any existing codeparser cache gets invalidated. Additionally you'll need
to increment __cache_version__ in cache.py in order to ensure that old
recipe caches don't trigger "Taskhash mismatch" errors.
"""
import ast
import sys
import codegen
import logging
import pickle
import bb.pysh as pysh
import os.path
import bb.utils, bb.data
import hashlib
from itertools import chain
from bb.pysh import pyshyacc, pyshlex
from bb.pysh import pyshyacc, pyshlex, sherrors
from bb.cache import MultiProcessCache
logger = logging.getLogger('BitBake.CodeParser')
def bbhash(s):
return hashlib.sha256(s.encode("utf-8")).hexdigest()
return hashlib.md5(s.encode("utf-8")).hexdigest()
def check_indent(codestr):
"""If the code is indented, add a top level piece of code to 'remove' the indentation"""
@@ -56,10 +35,30 @@ def check_indent(codestr):
return codestr
# Basically pickle, in python 2.7.3 at least, does badly with data duplication
# upon pickling and unpickling. Combine this with duplicate objects and things
# are a mess.
#
# When the sets are originally created, python calls intern() on the set keys
# which significantly improves memory usage. Sadly the pickle/unpickle process
# doesn't call intern() on the keys and results in the same strings being duplicated
# in memory. This also means pickle will save the same string multiple times in
# the cache file.
#
# By having shell and python cacheline objects with setstate/getstate, we force
# the object creation through our own routine where we can call intern (via internSet).
#
# We also use hashable frozensets and ensure we use references to these so that
# duplicates can be removed, both in memory and in the resulting pickled data.
#
# By playing these games, the size of the cache file shrinks dramatically
# meaning faster load times and the reloaded cache files also consume much less
# memory. Smaller cache files, faster load times and lower memory usage is good.
#
# A custom getstate/setstate using tuples is actually worth 15% cachesize by
# avoiding duplication of the attribute names!
class SetCache(object):
def __init__(self):
self.setcache = {}
@@ -118,11 +117,7 @@ class shellCacheLine(object):
class CodeParserCache(MultiProcessCache):
cache_file_name = "bb_codeparser.dat"
# NOTE: you must increment this if you change how the parsers gather information,
# so that an existing cache gets invalidated. Additionally you'll need
# to increment __cache_version__ in cache.py in order to ensure that old
# recipe caches don't trigger "Taskhash mismatch" errors.
CACHE_VERSION = 11
CACHE_VERSION = 8
def __init__(self):
MultiProcessCache.__init__(self)
@@ -191,15 +186,13 @@ class BufferedLogger(Logger):
def flush(self):
for record in self.buffer:
if self.target.isEnabledFor(record.levelno):
self.target.handle(record)
self.target.handle(record)
self.buffer = []
class PythonParser():
getvars = (".getVar", ".appendVar", ".prependVar", "oe.utils.conditional")
getvars = (".getVar", ".appendVar", ".prependVar")
getvarflags = (".getVarFlag", ".appendVarFlag", ".prependVarFlag")
containsfuncs = ("bb.utils.contains", "base_contains")
containsanyfuncs = ("bb.utils.contains_any", "bb.utils.filter")
containsfuncs = ("bb.utils.contains", "base_contains", "bb.utils.contains_any")
execfuncs = ("bb.build.exec_func", "bb.build.exec_task")
def warn(self, func, arg):
@@ -218,17 +211,13 @@ class PythonParser():
def visit_Call(self, node):
name = self.called_node_name(node.func)
if name and (name.endswith(self.getvars) or name.endswith(self.getvarflags) or name in self.containsfuncs or name in self.containsanyfuncs):
if name and (name.endswith(self.getvars) or name.endswith(self.getvarflags) or name in self.containsfuncs):
if isinstance(node.args[0], ast.Str):
varname = node.args[0].s
if name in self.containsfuncs and isinstance(node.args[1], ast.Str):
if varname not in self.contains:
self.contains[varname] = set()
self.contains[varname].add(node.args[1].s)
elif name in self.containsanyfuncs and isinstance(node.args[1], ast.Str):
if varname not in self.contains:
self.contains[varname] = set()
self.contains[varname].update(node.args[1].s.split())
elif name.endswith(self.getvarflags):
if isinstance(node.args[1], ast.Str):
self.references.add('%s[%s]' % (varname, node.args[1].s))
@@ -350,9 +339,8 @@ class ShellParser():
def _parse_shell(self, value):
try:
tokens, _ = pyshyacc.parse(value, eof=True, debug=False)
except Exception:
bb.error('Error during parse shell code, the last 5 lines are:\n%s' % '\n'.join(value.split('\n')[-5:]))
raise
except pyshlex.NeedMore:
raise sherrors.ShellSyntaxError("Unexpected EOF")
self.process_tokens(tokens)

View File

@@ -6,8 +6,18 @@ Provide an interface to interact with the bitbake server through 'commands'
# Copyright (C) 2006-2007 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
The bitbake server takes 'commands' from its UI/commandline.
@@ -18,15 +28,8 @@ and must not trigger events, directly or indirectly.
Commands are queued in a CommandQueue
"""
from collections import OrderedDict, defaultdict
import bb.event
import bb.cooker
import bb.remotedata
class DataStoreConnectionHandle(object):
def __init__(self, dsindex=0):
self.dsindex = dsindex
class CommandCompleted(bb.event.Event):
pass
@@ -40,8 +43,6 @@ class CommandFailed(CommandExit):
def __init__(self, message):
self.error = message
CommandExit.__init__(self, 1)
def __str__(self):
return "Command execution failed: %s" % self.error
class CommandError(Exception):
pass
@@ -54,39 +55,26 @@ class Command:
self.cooker = cooker
self.cmds_sync = CommandsSync()
self.cmds_async = CommandsAsync()
self.remotedatastores = None
# FIXME Add lock for this
self.currentAsyncCommand = None
def runCommand(self, commandline, ro_only = False):
command = commandline.pop(0)
# Ensure cooker is ready for commands
if command != "updateConfig" and command != "setFeatures":
self.cooker.init_configdata()
if not self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
if hasattr(CommandsSync, command):
# Can run synchronous commands straight away
command_method = getattr(self.cmds_sync, command)
if ro_only:
if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'):
if not hasattr(command_method, 'readonly') or False == getattr(command_method, 'readonly'):
return None, "Not able to execute not readonly commands in readonly mode"
try:
self.cooker.process_inotify_updates()
if getattr(command_method, 'needconfig', True):
if getattr(command_method, 'needconfig', False):
self.cooker.updateCacheSync()
result = command_method(self, commandline)
except CommandError as exc:
return None, exc.args[0]
except (Exception, SystemExit) as exc:
except (Exception, SystemExit):
import traceback
if isinstance(exc, bb.BBHandledException):
# We need to start returning real exceptions here. Until we do, we can't
# tell if an exception is an instance of bb.BBHandledException
return None, "bb.BBHandledException()\n" + traceback.format_exc()
return None, traceback.format_exc()
else:
return result, None
@@ -95,12 +83,11 @@ class Command:
if command not in CommandsAsync.__dict__:
return None, "No such command"
self.currentAsyncCommand = (command, commandline)
self.cooker.idleCallBackRegister(self.cooker.runCommands, self.cooker)
self.cooker.configuration.server_register_idlecallback(self.cooker.runCommands, self.cooker)
return True, None
def runAsyncCommand(self):
try:
self.cooker.process_inotify_updates()
if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown):
# updateCache will trigger a shutdown of the parser
# and then raise BBHandledException triggering an exit
@@ -138,18 +125,14 @@ class Command:
def finishAsyncCommand(self, msg=None, code=None):
if msg or msg == "":
bb.event.fire(CommandFailed(msg), self.cooker.data)
bb.event.fire(CommandFailed(msg), self.cooker.expanded_data)
elif code:
bb.event.fire(CommandExit(code), self.cooker.data)
bb.event.fire(CommandExit(code), self.cooker.expanded_data)
else:
bb.event.fire(CommandCompleted(), self.cooker.data)
bb.event.fire(CommandCompleted(), self.cooker.expanded_data)
self.currentAsyncCommand = None
self.cooker.finishcommand()
def reset(self):
if self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
class CommandsSync:
"""
A class of synchronous commands
@@ -196,7 +179,6 @@ class CommandsSync:
"""
varname = params[0]
value = str(params[1])
command.cooker.extraconfigdata[varname] = value
command.cooker.data.setVar(varname, value)
def getSetVariable(self, command, params):
@@ -236,19 +218,59 @@ class CommandsSync:
command.cooker.configuration.postfile = postfiles
setPrePostConfFiles.needconfig = False
def getCpuCount(self, command, params):
"""
Get the CPU count on the bitbake server
"""
return bb.utils.cpu_count()
getCpuCount.readonly = True
getCpuCount.needconfig = False
def matchFile(self, command, params):
fMatch = params[0]
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.matchFile(fMatch, mc)
return command.cooker.matchFile(fMatch)
matchFile.needconfig = False
def getUIHandlerNum(self, command, params):
return bb.event.get_uihandler()
getUIHandlerNum.needconfig = False
getUIHandlerNum.readonly = True
def generateNewImage(self, command, params):
image = params[0]
base_image = params[1]
package_queue = params[2]
timestamp = params[3]
description = params[4]
return command.cooker.generateNewImage(image, base_image,
package_queue, timestamp, description)
def ensureDir(self, command, params):
directory = params[0]
bb.utils.mkdirhier(directory)
ensureDir.needconfig = False
def setVarFile(self, command, params):
"""
Save a variable in a file; used for saving in a configuration file
"""
var = params[0]
val = params[1]
default_file = params[2]
op = params[3]
command.cooker.modifyConfigurationVar(var, val, default_file, op)
setVarFile.needconfig = False
def removeVarFile(self, command, params):
"""
Remove a variable declaration from a file
"""
var = params[0]
command.cooker.removeConfigurationVar(var)
removeVarFile.needconfig = False
def createConfigFile(self, command, params):
"""
Create an extra configuration file
"""
name = params[0]
command.cooker.createConfigFile(name)
createConfigFile.needconfig = False
def setEventMask(self, command, params):
handlerNum = params[0]
@@ -273,286 +295,9 @@ class CommandsSync:
def updateConfig(self, command, params):
options = params[0]
environment = params[1]
cmdline = params[2]
command.cooker.updateConfigOpts(options, environment, cmdline)
command.cooker.updateConfigOpts(options, environment)
updateConfig.needconfig = False
def parseConfiguration(self, command, params):
"""Instruct bitbake to parse its configuration
NOTE: it is only necessary to call this if you aren't calling any normal action
(otherwise parsing is taken care of automatically)
"""
command.cooker.parseConfiguration()
parseConfiguration.needconfig = False
def getLayerPriorities(self, command, params):
command.cooker.parseConfiguration()
ret = []
# regex objects cannot be marshalled by xmlrpc
for collection, pattern, regex, pri in command.cooker.bbfile_config_priorities:
ret.append((collection, pattern, regex.pattern, pri))
return ret
getLayerPriorities.readonly = True
def getRecipes(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.recipecaches[mc].pkg_pn.items())
getRecipes.readonly = True
def getRecipeDepends(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.recipecaches[mc].deps.items())
getRecipeDepends.readonly = True
def getRecipeVersions(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].pkg_pepvpr
getRecipeVersions.readonly = True
def getRecipeProvides(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].fn_provides
getRecipeProvides.readonly = True
def getRecipePackages(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].packages
getRecipePackages.readonly = True
def getRecipePackagesDynamic(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].packages_dynamic
getRecipePackagesDynamic.readonly = True
def getRProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].rproviders
getRProviders.readonly = True
def getRuntimeDepends(self, command, params):
ret = []
try:
mc = params[0]
except IndexError:
mc = ''
rundeps = command.cooker.recipecaches[mc].rundeps
for key, value in rundeps.items():
if isinstance(value, defaultdict):
value = dict(value)
ret.append((key, value))
return ret
getRuntimeDepends.readonly = True
def getRuntimeRecommends(self, command, params):
ret = []
try:
mc = params[0]
except IndexError:
mc = ''
runrecs = command.cooker.recipecaches[mc].runrecs
for key, value in runrecs.items():
if isinstance(value, defaultdict):
value = dict(value)
ret.append((key, value))
return ret
getRuntimeRecommends.readonly = True
def getRecipeInherits(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].inherits
getRecipeInherits.readonly = True
def getBbFilePriority(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].bbfile_priority
getBbFilePriority.readonly = True
def getDefaultPreference(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].pkg_dp
getDefaultPreference.readonly = True
def getSkippedRecipes(self, command, params):
# Return list sorted by reverse priority order
import bb.cache
def sortkey(x):
vfn, _ = x
realfn, _, mc = bb.cache.virtualfn2realfn(vfn)
return (-command.cooker.collections[mc].calc_bbfile_priority(realfn)[0], vfn)
skipdict = OrderedDict(sorted(command.cooker.skiplist.items(), key=sortkey))
return list(skipdict.items())
getSkippedRecipes.readonly = True
def getOverlayedRecipes(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.collections[mc].overlayed.items())
getOverlayedRecipes.readonly = True
def getFileAppends(self, command, params):
fn = params[0]
try:
mc = params[1]
except IndexError:
mc = ''
return command.cooker.collections[mc].get_file_appends(fn)
getFileAppends.readonly = True
def getAllAppends(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.collections[mc].bbappends
getAllAppends.readonly = True
def findProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.findProviders(mc)
findProviders.readonly = True
def findBestProvider(self, command, params):
(mc, pn) = bb.runqueue.split_mc(params[0])
return command.cooker.findBestProvider(pn, mc)
findBestProvider.readonly = True
def allProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(bb.providers.allProviders(command.cooker.recipecaches[mc]).items())
allProviders.readonly = True
def getRuntimeProviders(self, command, params):
rprovide = params[0]
try:
mc = params[1]
except IndexError:
mc = ''
all_p = bb.providers.getRuntimeProviders(command.cooker.recipecaches[mc], rprovide)
if all_p:
best = bb.providers.filterProvidersRunTime(all_p, rprovide,
command.cooker.data,
command.cooker.recipecaches[mc])[0][0]
else:
best = None
return all_p, best
getRuntimeProviders.readonly = True
def dataStoreConnectorCmd(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
d = command.remotedatastores[dsindex]
ret = getattr(d, method)(*args, **kwargs)
if isinstance(ret, bb.data_smart.DataSmart):
idx = command.remotedatastores.store(ret)
return DataStoreConnectionHandle(idx)
return ret
def dataStoreConnectorVarHistCmd(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
d = command.remotedatastores[dsindex].varhistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorIncHistCmd(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
d = command.remotedatastores[dsindex].inchistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorRelease(self, command, params):
dsindex = params[0]
if dsindex <= 0:
raise CommandError('dataStoreConnectorRelease: invalid index %d' % dsindex)
command.remotedatastores.release(dsindex)
def parseRecipeFile(self, command, params):
"""
Parse the specified recipe file (with or without bbappends)
and return a datastore object representing the environment
for the recipe.
"""
fn = params[0]
mc = bb.runqueue.mc_from_tid(fn)
appends = params[1]
appendlist = params[2]
if len(params) > 3:
config_data = command.remotedatastores[params[3]]
else:
config_data = None
if appends:
if appendlist is not None:
appendfiles = appendlist
else:
appendfiles = command.cooker.collections[mc].get_file_appends(fn)
else:
appendfiles = []
# We are calling bb.cache locally here rather than on the server,
# but that's OK because it doesn't actually need anything from
# the server barring the global datastore (which we have a remote
# version of)
if config_data:
# We have to use a different function here if we're passing in a datastore
# NOTE: we took a copy above, so we don't do it here again
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles, mc)['']
else:
# Use the standard path
parser = bb.cache.NoCache(command.cooker.databuilder)
envdata = parser.loadDataFull(fn, appendfiles)
idx = command.remotedatastores.store(envdata)
return DataStoreConnectionHandle(idx)
parseRecipeFile.readonly = True
class CommandsAsync:
"""
A class of asynchronous commands
@@ -566,15 +311,8 @@ class CommandsAsync:
"""
bfile = params[0]
task = params[1]
if len(params) > 2:
internal = params[2]
else:
internal = False
if internal:
command.cooker.buildFileInternal(bfile, task, fireevents=False, quietlog=True)
else:
command.cooker.buildFile(bfile, task)
command.cooker.buildFile(bfile, task)
buildFile.needcache = False
def buildTargets(self, command, params):
@@ -624,6 +362,17 @@ class CommandsAsync:
command.finishAsyncCommand()
generateTargetsTree.needcache = True
def findCoreBaseFiles(self, command, params):
"""
Find certain files in COREBASE directory. i.e. Layers
"""
subdir = params[0]
filename = params[1]
command.cooker.findCoreBaseFiles(subdir, filename)
command.finishAsyncCommand()
findCoreBaseFiles.needcache = False
def findConfigFiles(self, command, params):
"""
Find config files which provide appropriate values
@@ -723,22 +472,3 @@ class CommandsAsync:
command.finishAsyncCommand()
resetCooker.needcache = False
def clientComplete(self, command, params):
"""
Do the right thing when the controlling client exits
"""
command.cooker.clientComplete()
command.finishAsyncCommand()
clientComplete.needcache = False
def findSigInfo(self, command, params):
"""
Find signature info files via the signature generator
"""
(mc, pn) = bb.runqueue.split_mc(params[0])
taskname = params[1]
sigs = params[2]
res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.databuilder.mcdata[mc])
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.databuilder.mcdata[mc])
command.finishAsyncCommand()
findSigInfo.needcache = False

6
bitbake/lib/bb/compat.py Normal file
View File

@@ -0,0 +1,6 @@
"""Code pulled from future python versions, here for compatibility"""
from collections import MutableMapping, KeysView, ValuesView, ItemsView, OrderedDict
from functools import total_ordering

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,6 @@
#!/usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
@@ -6,14 +9,23 @@
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import logging
import os
import re
import sys
import hashlib
from functools import wraps
import bb
from bb import data
@@ -23,12 +35,16 @@ logger = logging.getLogger("BitBake")
parselog = logging.getLogger("BitBake.Parsing")
class ConfigParameters(object):
def __init__(self, argv=None):
self.options, targets = self.parseCommandLine(argv or sys.argv)
def __init__(self, argv=sys.argv):
self.options, targets = self.parseCommandLine(argv)
self.environment = self.parseEnvironment()
self.options.pkgs_to_build = targets or []
self.options.tracking = False
if hasattr(self.options, "show_environment") and self.options.show_environment:
self.options.tracking = True
for key, val in self.options.__dict__.items():
setattr(self, key, val)
@@ -57,22 +73,15 @@ class ConfigParameters(object):
def updateToServer(self, server, environment):
options = {}
for o in ["abort", "force", "invalidate_stamp",
"dry_run", "dump_signatures",
"extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout",
"nosetscene", "setsceneonly", "skipsetscene",
"runall", "runonly", "writeeventlog"]:
for o in ["abort", "tryaltconfigs", "force", "invalidate_stamp",
"verbose", "debug", "dry_run", "dump_signatures",
"debug_domains", "extra_assume_provided", "profile",
"prefile", "postfile"]:
options[o] = getattr(self.options, o)
options['build_verbose_shell'] = self.options.verbose
options['build_verbose_stdout'] = self.options.verbose
options['default_loglevel'] = bb.msg.loggerDefaultLogLevel
options['debug_domains'] = bb.msg.loggerDefaultDomains
ret, error = server.runCommand(["updateConfig", options, environment, sys.argv])
ret, error = server.runCommand(["updateConfig", options, environment])
if error:
raise Exception("Unable to update the server configuration with local parameters: %s" % error)
raise Exception("Unable to update the server configuration with local parameters: %s" % error)
def parseActions(self):
# Parse any commandline into actions
@@ -118,40 +127,50 @@ class CookerConfiguration(object):
"""
def __init__(self):
self.debug_domains = bb.msg.loggerDefaultDomains
self.default_loglevel = bb.msg.loggerDefaultLogLevel
self.debug_domains = []
self.extra_assume_provided = []
self.prefile = []
self.postfile = []
self.prefile_server = []
self.postfile_server = []
self.debug = 0
self.cmd = None
self.abort = True
self.force = False
self.profile = False
self.nosetscene = False
self.setsceneonly = False
self.skipsetscene = False
self.invalidate_stamp = False
self.dump_signatures = []
self.build_verbose_shell = False
self.build_verbose_stdout = False
self.dry_run = False
self.tracking = False
self.interface = []
self.writeeventlog = False
self.limited_deps = False
self.runall = []
self.runonly = []
self.env = {}
def setConfigParameters(self, parameters):
for key in self.__dict__.keys():
if key in parameters.options.__dict__:
setattr(self, key, parameters.options.__dict__[key])
self.env = parameters.environment.copy()
self.tracking = parameters.tracking
def setServerRegIdleCallback(self, srcb):
self.server_register_idlecallback = srcb
def __getstate__(self):
state = {}
for key in self.__dict__.keys():
state[key] = getattr(self, key)
if key == "server_register_idlecallback":
state[key] = None
else:
state[key] = getattr(self, key)
return state
def __setstate__(self,state):
for k in state:
setattr(self, k, state[k])
setattr(self, k, state[k])
def catch_parse_error(func):
@@ -164,7 +183,7 @@ def catch_parse_error(func):
import traceback
parselog.critical(traceback.format_exc())
parselog.critical("Unable to parse %s: %s" % (fn, exc))
raise bb.BBHandledException()
sys.exit(1)
except bb.data_smart.ExpansionError as exc:
import traceback
@@ -176,10 +195,10 @@ def catch_parse_error(func):
if not fn.startswith(bbdir):
break
parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb))
raise bb.BBHandledException()
sys.exit(1)
except bb.parse.ParseError as exc:
parselog.critical(str(exc))
raise bb.BBHandledException()
sys.exit(1)
return wrapped
@catch_parse_error
@@ -193,7 +212,7 @@ def _inherit(bbclass, data):
def findConfigFile(configfile, data):
search = []
bbpath = data.getVar("BBPATH")
bbpath = data.getVar("BBPATH", True)
if bbpath:
for i in bbpath.split(":"):
search.append(os.path.join(i, "conf", configfile))
@@ -208,27 +227,6 @@ def findConfigFile(configfile, data):
return None
#
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
# up to /. If that fails, we search for a conf/bitbake.conf in BBPATH.
#
def findTopdir():
d = bb.data.init()
bbpath = None
if 'BBPATH' in os.environ:
bbpath = os.environ['BBPATH']
d.setVar('BBPATH', bbpath)
layerconf = findConfigFile("bblayers.conf", d)
if layerconf:
return os.path.dirname(os.path.dirname(layerconf))
if bbpath:
bitbakeconf = bb.utils.which(bbpath, "conf/bitbake.conf")
if bitbakeconf:
return os.path.dirname(os.path.dirname(bitbakeconf))
return None
class CookerDataBuilder(object):
def __init__(self, cookercfg, worker = False):
@@ -254,7 +252,7 @@ class CookerDataBuilder(object):
filtered_keys = bb.utils.approved_variables()
bb.data.inheritFromOS(self.basedata, self.savedenv, filtered_keys)
self.basedata.setVar("BB_ORIGENV", self.savedenv)
if worker:
self.basedata.setVar("BB_WORKERCONTEXT", "1")
@@ -262,13 +260,12 @@ class CookerDataBuilder(object):
self.mcdata = {}
def parseBaseConfiguration(self):
data_hash = hashlib.sha256()
try:
bb.parse.init_parser(self.basedata)
self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
if self.data.getVar("BB_WORKERCONTEXT", False) is None:
bb.fetch.fetcher_init(self.data)
bb.parse.init_parser(self.data)
bb.codeparser.parser_cache_init(self.data)
bb.event.fire(bb.event.ConfigParsed(), self.data)
@@ -286,39 +283,23 @@ class CookerDataBuilder(object):
bb.event.fire(bb.event.ConfigParsed(), self.data)
bb.parse.init_parser(self.data)
data_hash.update(self.data.get_hash().encode('utf-8'))
self.data_hash = self.data.get_hash()
self.mcdata[''] = self.data
multiconfig = (self.data.getVar("BBMULTICONFIG") or "").split()
multiconfig = (self.data.getVar("BBMULTICONFIG", True) or "").split()
for config in multiconfig:
mcdata = self.parseConfigurationFiles(self.prefiles, self.postfiles, config)
bb.event.fire(bb.event.ConfigParsed(), mcdata)
self.mcdata[config] = mcdata
data_hash.update(mcdata.get_hash().encode('utf-8'))
if multiconfig:
bb.event.fire(bb.event.MultiConfigParsed(self.mcdata), self.data)
self.data_hash = data_hash.hexdigest()
except (SyntaxError, bb.BBHandledException):
raise bb.BBHandledException()
raise bb.BBHandledException
except bb.data_smart.ExpansionError as e:
logger.error(str(e))
raise bb.BBHandledException()
raise bb.BBHandledException
except Exception:
logger.exception("Error parsing configuration files")
raise bb.BBHandledException()
# Create a copy so we can reset at a later date when UIs disconnect
self.origdata = self.data
self.data = bb.data.createCopy(self.origdata)
self.mcdata[''] = self.data
def reset(self):
# We may not have run parseBaseConfiguration() yet
if not hasattr(self, 'origdata'):
return
self.data = bb.data.createCopy(self.origdata)
self.mcdata[''] = self.data
raise bb.BBHandledException
def _findLayerConf(self, data):
return findConfigFile("bblayers.conf", data)
@@ -339,25 +320,15 @@ class CookerDataBuilder(object):
data.setVar("TOPDIR", os.path.dirname(os.path.dirname(layerconf)))
data = parse_config_file(layerconf, data)
layers = (data.getVar('BBLAYERS') or "").split()
broken_layers = []
layers = (data.getVar('BBLAYERS', True) or "").split()
data = bb.data.createCopy(data)
approved = bb.utils.approved_variables()
# Check whether present layer directories exist
for layer in layers:
if not os.path.isdir(layer):
broken_layers.append(layer)
if broken_layers:
parselog.critical("The following layer directories do not exist:")
for layer in broken_layers:
parselog.critical(" %s", layer)
parselog.critical("Please check BBLAYERS in %s" % (layerconf))
raise bb.BBHandledException()
for layer in layers:
parselog.critical("Layer directory '%s' does not exist! "
"Please check BBLAYERS in %s" % (layer, layerconf))
sys.exit(1)
parselog.debug(2, "Adding layer %s", layer)
if 'HOME' in approved and '~' in layer:
layer = os.path.expanduser(layer)
@@ -372,37 +343,7 @@ class CookerDataBuilder(object):
data.delVar('LAYERDIR_RE')
data.delVar('LAYERDIR')
bbfiles_dynamic = (data.getVar('BBFILES_DYNAMIC') or "").split()
collections = (data.getVar('BBFILE_COLLECTIONS') or "").split()
invalid = []
for entry in bbfiles_dynamic:
parts = entry.split(":", 1)
if len(parts) != 2:
invalid.append(entry)
continue
l, f = parts
invert = l[0] == "!"
if invert:
l = l[1:]
if (l in collections and not invert) or (l not in collections and invert):
data.appendVar("BBFILES", " " + f)
if invalid:
bb.fatal("BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid))
layerseries = set((data.getVar("LAYERSERIES_CORENAMES") or "").split())
collections_tmp = collections[:]
for c in collections:
collections_tmp.remove(c)
if c in collections_tmp:
bb.fatal("Found duplicated BBFILE_COLLECTIONS '%s', check bblayers.conf or layer.conf to fix it." % c)
compat = set((data.getVar("LAYERSERIES_COMPAT_%s" % c) or "").split())
if compat and not (compat & layerseries):
bb.fatal("Layer %s is not compatible with the core layer which only supports these series: %s (layer is compatible with %s)"
% (c, " ".join(layerseries), " ".join(compat)))
elif not compat and not data.getVar("BB_WORKERCONTEXT"):
bb.warn("Layer %s should set LAYERSERIES_COMPAT_%s in its conf/layer.conf file to list the core layer names it is compatible with." % (c, c))
if not data.getVar("BBPATH"):
if not data.getVar("BBPATH", True):
msg = "The BBPATH variable is not set"
if not layerconf:
msg += (" and bitbake did not find a conf/bblayers.conf file in"
@@ -417,7 +358,7 @@ class CookerDataBuilder(object):
data = parse_config_file(p, data)
# Handle any INHERITs and inherit the base class
bbclasses = ["base"] + (data.getVar('INHERIT') or "").split()
bbclasses = ["base"] + (data.getVar('INHERIT', True) or "").split()
for bbclass in bbclasses:
data = _inherit(bbclass, data)
@@ -427,9 +368,9 @@ class CookerDataBuilder(object):
handlerfn = data.getVarFlag(var, "filename", False)
if not handlerfn:
parselog.critical("Undefined event handler function '%s'" % var)
raise bb.BBHandledException()
sys.exit(1)
handlerln = int(data.getVarFlag(var, "lineno", False))
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln)
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask", True) or "").split(), handlerfn, handlerln)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))

View File

@@ -1,20 +1,48 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
Python Daemonizing helper
Originally based on code Copyright (C) 2005 Chad J. Schroeder but now heavily modified
to allow a function to be daemonized and return for bitbake use by Richard Purdie
Configurable daemon behaviors:
1.) The current working directory set to the "/" directory.
2.) The current file creation mode mask set to 0.
3.) Close all open files (1024).
4.) Redirect standard I/O streams to "/dev/null".
A failed call to fork() now raises an exception.
References:
1) Advanced Programming in the Unix Environment: W. Richard Stevens
http://www.apuebook.com/apue3e.html
2) The Linux Programming Interface: Michael Kerrisk
http://man7.org/tlpi/index.html
3) Unix Programming Frequently Asked Questions:
http://www.faqs.org/faqs/unix-faq/programmer/faq/
Modified to allow a function to be daemonized and return for
bitbake use by Richard Purdie
"""
import os
import sys
import io
import traceback
__author__ = "Chad J. Schroeder"
__copyright__ = "Copyright (C) 2005 Chad J. Schroeder"
__version__ = "0.2"
import bb
# Standard Python modules.
import os # Miscellaneous OS interfaces.
import sys # System-specific parameters and functions.
# Default daemon parameters.
# File mode creation mask of the daemon.
# For BitBake's children, we do want to inherit the parent umask.
UMASK = None
# Default maximum for the number of available file descriptors.
MAXFD = 1024
# The standard I/O file descriptors are redirected to /dev/null by default.
if (hasattr(os, "devnull")):
REDIRECT_TO = os.devnull
else:
REDIRECT_TO = "/dev/null"
def createDaemon(function, logfile):
"""
@@ -22,10 +50,6 @@ def createDaemon(function, logfile):
background as a daemon, returning control to the caller.
"""
# Ensure stdout/stderror are flushed before forking to avoid duplicate output
sys.stdout.flush()
sys.stderr.flush()
try:
# Fork a child process so the parent can exit. This returns control to
# the command-line or shell. It also guarantees that the child will not
@@ -41,6 +65,36 @@ def createDaemon(function, logfile):
# leader of the new process group, we call os.setsid(). The process is
# also guaranteed not to have a controlling terminal.
os.setsid()
# Is ignoring SIGHUP necessary?
#
# It's often suggested that the SIGHUP signal should be ignored before
# the second fork to avoid premature termination of the process. The
# reason is that when the first child terminates, all processes, e.g.
# the second child, in the orphaned group will be sent a SIGHUP.
#
# "However, as part of the session management system, there are exactly
# two cases where SIGHUP is sent on the death of a process:
#
# 1) When the process that dies is the session leader of a session that
# is attached to a terminal device, SIGHUP is sent to all processes
# in the foreground process group of that terminal device.
# 2) When the death of a process causes a process group to become
# orphaned, and one or more processes in the orphaned group are
# stopped, then SIGHUP and SIGCONT are sent to all members of the
# orphaned group." [2]
#
# The first case can be ignored since the child is guaranteed not to have
# a controlling terminal. The second case isn't so easy to dismiss.
# The process group is orphaned when the first child terminates and
# POSIX.1 requires that every STOPPED process in an orphaned process
# group be sent a SIGHUP signal followed by a SIGCONT signal. Since the
# second child is not STOPPED though, we can safely forego ignoring the
# SIGHUP signal. In any case, there are no ill-effects if it is ignored.
#
# import signal # Set handlers for asynchronous events.
# signal.signal(signal.SIGHUP, signal.SIG_IGN)
try:
# Fork a second child and exit immediately to prevent zombies. This
# causes the second child process to be orphaned, making the init
@@ -54,46 +108,86 @@ def createDaemon(function, logfile):
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
if (pid != 0):
if (pid == 0): # The second child.
# We probably don't want the file mode creation mask inherited from
# the parent, so we give the child complete control over permissions.
if UMASK is not None:
os.umask(UMASK)
else:
# Parent (the first child) of the second child.
# exit() or _exit()?
# _exit is like exit(), but it doesn't call any functions registered
# with atexit (and on_exit) or any registered signal handlers. It also
# closes any open file descriptors, but doesn't flush any buffered output.
# Using exit() may cause all any temporary files to be unexpectedly
# removed. It's therefore recommended that child branches of a fork()
# and the parent branch(es) of a daemon use _exit().
os._exit(0)
else:
os.waitpid(pid, 0)
# exit() or _exit()?
# _exit is like exit(), but it doesn't call any functions registered
# with atexit (and on_exit) or any registered signal handlers. It also
# closes any open file descriptors. Using exit() may cause all stdio
# streams to be flushed twice and any temporary files may be unexpectedly
# removed. It's therefore recommended that child branches of a fork()
# and the parent branch(es) of a daemon use _exit().
return
# The second child.
# Close all open file descriptors. This prevents the child from keeping
# open any file descriptors inherited from the parent. There is a variety
# of methods to accomplish this task. Three are listed below.
#
# Try the system configuration variable, SC_OPEN_MAX, to obtain the maximum
# number of open file descriptors to close. If it doesn't exist, use
# the default value (configurable).
#
# try:
# maxfd = os.sysconf("SC_OPEN_MAX")
# except (AttributeError, ValueError):
# maxfd = MAXFD
#
# OR
#
# if (os.sysconf_names.has_key("SC_OPEN_MAX")):
# maxfd = os.sysconf("SC_OPEN_MAX")
# else:
# maxfd = MAXFD
#
# OR
#
# Use the getrlimit method to retrieve the maximum file descriptor number
# that can be opened by this process. If there is no limit on the
# resource, use the default value.
#
import resource # Resource usage information.
maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
if (maxfd == resource.RLIM_INFINITY):
maxfd = MAXFD
# Iterate through and close all file descriptors.
# for fd in range(0, maxfd):
# try:
# os.close(fd)
# except OSError: # ERROR, fd wasn't open to begin with (ignored)
# pass
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
# Redirect the standard I/O file descriptors to the specified file. Since
# the daemon has no controlling terminal, most daemons redirect stdin,
# stdout, and stderr to /dev/null. This is done to prevent side-effects
# from reads and writes to the standard I/O file descriptors.
try:
so = open(logfile, 'a+')
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(so.fileno(), sys.stderr.fileno())
except io.UnsupportedOperation:
sys.stdout = open(logfile, 'a+')
# This call to open is guaranteed to return the lowest file descriptor,
# which will be 0 (stdin), since it was closed above.
# os.open(REDIRECT_TO, os.O_RDWR) # standard input (0)
# Have stdout and stderr be the same so log output matches chronologically
# and there aren't two seperate buffers
sys.stderr = sys.stdout
# Duplicate standard input to standard output and standard error.
# os.dup2(0, 1) # standard output (1)
# os.dup2(0, 2) # standard error (2)
try:
function()
except Exception as e:
traceback.print_exc()
finally:
bb.event.print_ui_queue()
# os._exit() doesn't flush open files like os.exit() does. Manually flush
# stdout and stderr so that any logging output will be seen, particularly
# exception tracebacks.
sys.stdout.flush()
sys.stderr.flush()
os._exit(0)
si = open('/dev/null', 'r')
so = open(logfile, 'w')
se = so
# Replace those fds with our own
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
function()
os._exit(0)

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake 'Data' implementations
@@ -20,12 +22,22 @@ the speed is more critical here.
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# SPDX-License-Identifier: GPL-2.0-only
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# 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:
@@ -66,6 +78,59 @@ def initVar(var, d):
"""Non-destructive var init for data structure"""
d.initVar(var)
def setVar(var, value, d):
"""Set a variable to a given value"""
d.setVar(var, value)
def getVar(var, d, exp = False):
"""Gets the value of a variable"""
return d.getVar(var, exp)
def renameVar(key, newkey, d):
"""Renames a variable from key to newkey"""
d.renameVar(key, newkey)
def delVar(var, d):
"""Removes a variable from the data set"""
d.delVar(var)
def appendVar(var, value, d):
"""Append additional value to a variable"""
d.appendVar(var, value)
def setVarFlag(var, flag, flagvalue, d):
"""Set a flag for a given variable to a given value"""
d.setVarFlag(var, flag, flagvalue)
def getVarFlag(var, flag, d):
"""Gets given flag from given var"""
return d.getVarFlag(var, flag, False)
def delVarFlag(var, flag, d):
"""Removes a given flag from the variable's flags"""
d.delVarFlag(var, flag)
def setVarFlags(var, flags, d):
"""Set the flags for a given variable
Note:
setVarFlags will not clear previous
flags. Think of this method as
addVarFlags
"""
d.setVarFlags(var, flags)
def getVarFlags(var, d):
"""Gets a variable's flags"""
return d.getVarFlags(var)
def delVarFlags(var, d):
"""Removes a variable's flags"""
d.delVarFlags(var)
def keys(d):
"""Return a list of keys in d"""
return d.keys()
@@ -79,7 +144,7 @@ def expand(s, d, varname = None):
return d.expand(s, varname)
def expandKeys(alterdata, readdata = None):
if readdata is None:
if readdata == None:
readdata = alterdata
todolist = {}
@@ -109,7 +174,7 @@ def inheritFromOS(d, savedenv, permitted):
for s in savedenv.keys():
if s in permitted:
try:
d.setVar(s, savedenv.getVar(s), op = 'from env')
d.setVar(s, savedenv.getVar(s, True), op = 'from env')
if s in exportlist:
d.setVarFlag(s, "export", True, op = 'auto env export')
except TypeError:
@@ -129,8 +194,8 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
try:
if all:
oval = d.getVar(var, False)
val = d.getVar(var)
except (KeyboardInterrupt):
val = d.getVar(var, True)
except (KeyboardInterrupt, bb.build.FuncFailed):
raise
except Exception as exc:
o.write('# expansion of %s threw %s: %s\n' % (var, exc.__class__.__name__, str(exc)))
@@ -161,12 +226,6 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
return True
if func:
# Write a comment indicating where the shell function came from (line number and filename) to make it easier
# for the user to diagnose task failures. This comment is also used by build.py to determine the metadata
# location of shell functions.
o.write("# line: {0}, file: {1}\n".format(
d.getVarFlag(var, "lineno", False),
d.getVarFlag(var, "filename", False)))
# NOTE: should probably check for unbalanced {} within the var
val = val.rstrip('\n')
o.write("%s() {\n%s\n}\n" % (varExpanded, val))
@@ -190,7 +249,7 @@ def emit_env(o=sys.__stdout__, d = init(), all=False):
keys = sorted((key for key in d.keys() if not key.startswith("__")), key=isfunc)
grouped = groupby(keys, isfunc)
for isfunc, keys in grouped:
for key in sorted(keys):
for key in keys:
emit_var(key, o, d, all and not isfunc) and o.write('\n')
def exported_keys(d):
@@ -202,9 +261,9 @@ def exported_vars(d):
k = list(exported_keys(d))
for key in k:
try:
value = d.getVar(key)
value = d.getVar(key, True)
except Exception as err:
bb.warn("%s: Unable to export ${%s}: %s" % (d.getVar("FILE"), key, err))
bb.warn("%s: Unable to export ${%s}: %s" % (d.getVar("FILE", True), key, err))
continue
if value is not None:
@@ -214,13 +273,13 @@ def emit_func(func, o=sys.__stdout__, d = init()):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
keys = (key for key in d.keys() if not key.startswith("__") and not d.getVarFlag(key, "func", False))
for key in sorted(keys):
for key in keys:
emit_var(key, o, d, False)
o.write('\n')
emit_var(func, o, d, False) and o.write('\n')
newdeps = bb.codeparser.ShellParser(func, logger).parse_shell(d.getVar(func))
newdeps |= set((d.getVarFlag(func, "vardeps") or "").split())
newdeps = bb.codeparser.ShellParser(func, logger).parse_shell(d.getVar(func, True))
newdeps |= set((d.getVarFlag(func, "vardeps", True) or "").split())
seen = set()
while newdeps:
deps = newdeps
@@ -229,8 +288,8 @@ def emit_func(func, o=sys.__stdout__, d = init()):
for dep in deps:
if d.getVarFlag(dep, "func", False) and not d.getVarFlag(dep, "python", False):
emit_var(dep, o, d, False) and o.write('\n')
newdeps |= bb.codeparser.ShellParser(dep, logger).parse_shell(d.getVar(dep))
newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split())
newdeps |= bb.codeparser.ShellParser(dep, logger).parse_shell(d.getVar(dep, True))
newdeps |= set((d.getVarFlag(dep, "vardeps", True) or "").split())
newdeps -= seen
_functionfmt = """
@@ -253,7 +312,7 @@ def emit_func_python(func, o=sys.__stdout__, d = init()):
pp = bb.codeparser.PythonParser(func, logger)
pp.parse_python(d.getVar(func, False))
newdeps = pp.execs
newdeps |= set((d.getVarFlag(func, "vardeps") or "").split())
newdeps |= set((d.getVarFlag(func, "vardeps", True) or "").split())
seen = set()
while newdeps:
deps = newdeps
@@ -265,7 +324,7 @@ def emit_func_python(func, o=sys.__stdout__, d = init()):
pp = bb.codeparser.PythonParser(dep, logger)
pp.parse_python(d.getVar(dep, False))
newdeps |= pp.execs
newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split())
newdeps |= set((d.getVarFlag(dep, "vardeps", True) or "").split())
newdeps -= seen
def update_data(d):
@@ -277,58 +336,49 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
try:
if key[-1] == ']':
vf = key[:-1].split('[')
value, parser = d.getVarFlag(vf[0], vf[1], False, retparser=True)
value = d.getVarFlag(vf[0], vf[1], False)
parser = d.expandWithRefs(value, key)
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.getVar(key, False)
def handle_contains(value, contains, d):
newvalue = ""
for k in sorted(contains):
l = (d.getVar(k) or "").split()
for item in sorted(contains[k]):
for word in item.split():
if not word in l:
newvalue += "\n%s{%s} = Unset" % (k, item)
break
l = (d.getVar(k, True) or "").split()
for word in sorted(contains[k]):
if word in l:
newvalue += "\n%s{%s} = Set" % (k, word)
else:
newvalue += "\n%s{%s} = Set" % (k, item)
newvalue += "\n%s{%s} = Unset" % (k, word)
if not newvalue:
return value
if not value:
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", True)))
parser.parse_python(value, filename=varflags.get("filename"), lineno=varflags.get("lineno"))
deps = deps | parser.references
deps = deps | (keys & parser.execs)
value = handle_contains(value, parser.contains, d)
else:
value, parsedvar = d.getVarFlag(key, "_content", False, retparser=True)
parsedvar = d.expandWithRefs(value, key)
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:
@@ -338,12 +388,10 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
if "exports" in varflags:
deps = deps | set(varflags["exports"].split())
else:
value, parser = d.getVarFlag(key, "_content", False, retparser=True)
parser = d.expandWithRefs(value, key)
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")
@@ -362,8 +410,6 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
deps |= set((vardeps or "").split())
deps -= set(varflags.get("vardepsexclude", "").split())
except bb.parse.SkipRecipe:
raise
except Exception as e:
bb.warn("Exception during build_dependencies for %s" % key)
raise
@@ -371,11 +417,11 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
#bb.note("Variable %s references %s and calls %s" % (key, str(deps), str(execs)))
#d.setVarFlag(key, "vardeps", deps)
def generate_dependencies(d, whitelist):
def generate_dependencies(d):
keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False))
varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS')
varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True)
deps = {}
values = {}
@@ -386,7 +432,7 @@ def generate_dependencies(d, whitelist):
newdeps = deps[task]
seen = set()
while newdeps:
nextdeps = newdeps - whitelist
nextdeps = newdeps
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
@@ -397,43 +443,6 @@ def generate_dependencies(d, whitelist):
#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.sha256(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)

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