Compare commits

..

554 Commits

Author SHA1 Message Date
Richard Purdie
24a833f40d build-appliance-image: Update to sumo head revision
(From OE-Core rev: 2a4595f0c45a9c0ecdeb1d92613821321e48a1ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:32:48 +01:00
Richard Purdie
2464dd4040 poky.conf: Bump version for sumo 2.5.1
(From meta-yocto rev: bbe6518893a76f4d61c8800eb1054d96e3be8880)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:32:38 +01:00
Armin Kuster
22e02daa5b binutls: Security fix CVE-2018-10534
Affects <= 2.30

(From OE-Core rev: d18dfef01fb7d37029e5a612f79201adf7ff5921)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:03 +01:00
Armin Kuster
f9998b8ce6 binutls: Security fix CVE-2018-10535
Affects <= 2.30

(From OE-Core rev: 1ff22881249591d64fe61353a4d97ab91dc8efa0)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:03 +01:00
Armin Kuster
8126375423 binutls: Security fix CVE-2018-10372
Affects <= 2.30

(From OE-Core rev: 832316491aab8b90719cefeba2bfd94cef04b80f)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:03 +01:00
Armin Kuster
6d092834bd binutls: Security fix CVE-2018-10373
Affects <= 2.30

(From OE-Core rev: 3c83b9be884015e238249c0382299aedf4d81459)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:03 +01:00
Armin Kuster
ea6a69cb83 binutls: Security fix CVE-2018-7568
Affects <= 2.30

(From OE-Core rev: 9dee4cec26322604e71ca5db4b17b1088a98971b)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Armin Kuster
219deb5228 binutls: Security fix CVE-2018-7569
Affects <= 2.30

(From OE-Core rev: f79f5162088ceb29cf4820d2c3ef2aff263d7967)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Armin Kuster
3db593919b binutls: Security fix CVE-2018-7208
Affects <= 2.30

(From OE-Core rev: a994ef27a997bce0dd18f8e507b8d795b8111aeb)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Armin Kuster
e23d924838 binutls: Security fix CVE-2018-7642
Affects <= 2.30

(From OE-Core rev: 8c58ec80990a2c6b8b5e0832b3d5fe2c3f4378ff)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Armin Kuster
0112dfc031 binutls: Security fix CVE-2018-6759
Affects <= 2.30

(From OE-Core rev: 8f9b8ee0e7ad6526a3f93a8f0ca8e9fe055fdff6)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Armin Kuster
b283276544 binutls: Security fix CVE-2018-6872
Affects <= 2.30

(From OE-Core rev: 9626b58123eb50cb830443b3f514988f5417cc6c)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Armin Kuster
b44ea09983 binutls: Security fix CVE-2018-7643
Affects <= 2.30

(From OE-Core rev: 70308a1133a3bd0e9d297bd66be4e05722484e7a)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Armin Kuster
b83fd9847f binutils: Security fix CVE-2018-8945
Affects <= 2.30

(From OE-Core rev: d128790b8593ee0cccd5e3c935ff28fb27644a8c)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Joshua Watt
50072546a5 classes/sanity: Clean up getstatusoutput usage
Replace usage of oe.utils.getstatusoutput() with direct subprocess
calls.

(From OE-Core rev: 140ecb4af80c44680278f98153353f2900e7fa98)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-06 16:24:02 +01:00
Martin Jansa
b8f9048de8 linux-firmware: add separate packages for all brcm files
* no changes in the content of previously existing packages

* include some silly commands I've used to "parse" WHENCE file to
  generate these, some manual changes are still needed, like separating
  cypress licensed files, removing duplicates when 2 files are included
  in the same package (bcm4356-pcie is exception because sdio and pcie
  files have different license).

(From OE-Core rev: 27fc32b6c5231b3539940d1e260ab1df3ea4bd14)

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-08-04 07:42:21 +01:00
Martin Jansa
8912733e28 linux-firmware: update LICENSE for bcm43* packages according to WHENCE file
* the license was updated
  brcm/brcmfmac43430-sdio.bin:
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=ec734a30
  brcm/brcmfmac43340-sdio.bin:
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=5ac5ad5c
  brcm/brcmfmac43362-sdio.bin:
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=be1c535e
  brcm/brcmfmac4354-sdio.bin:
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=a2921812

* this shows that with every upgrade the changes in WHENCE file should
  checked carefully

(From OE-Core rev: 114e54c2459fe4c65e837b6a22c75c9f0d40ffbb)

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-08-04 07:42:21 +01:00
Martin Jansa
94ddbc21ae linux-firmware: add ${PN}-cypress-license handling from meta-raspberrypi
* this will break meta-raspberrypi once more, by including
  ${PN}-cypress-license package twice in PACKAGES
  I've sent fix here:
  https://github.com/agherzan/meta-raspberrypi/pull/295

(From OE-Core rev: 75caa5dfc79df02b12f1b077ccbd80e4d69c9ead)

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-08-04 07:42:20 +01:00
Ross Burton
72d2148535 python2: Fix build with gcc8
(From OE-Core rev: 910f68c9c8dc26e12d28ef29e956af63d100f121)

(From OE-Core rev: 04c2d53ef48a09747d0577d9ec1ffa548d247615)

Signed-off-by: Ross Burton <ross.burton@intel.com>
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: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-04 07:42:20 +01:00
Changqing Li
6369ddde0c libxml2: fix libxml2 ptest fails
for core-image-minimal image,  missing these two dependency
will cause below warning and error:

warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
./test/icu_parse_test.xml generated an error

(From OE-Core rev: 848031cf0b89b752c6fedcb63fc6938642a87fd8)

(From OE-Core rev: e27b09395c3bd5eb92f0478de03f9738874a7e66)

Signed-off-by: Changqing Li <changqing.li@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-08-04 07:42:20 +01:00
Joshua Watt
b91562697d u-boot: Fix pylibfdt generation
u-boot attempts to build a Python library called pylibfdt. By default,
u-boot would attempt to use the build host's Python interpreter, which
causes numerous problems, not least of which is that it fails if the
host doesn't have the Python development package installed (complaining
about not being able to find Python.h)

Rectify this situation by including the proper build time dependencies
for pylibfdt and passing the proper arguments to make.

[YOCTO #12867]

(From OE-Core rev: 3b0b16300b351878790729d6270cd113bca73eff)

(From OE-Core rev: 71c9fc5a9398dc77a4e0f440a7fde346990c0475)

Signed-off-by: Joshua Watt <JPEWhacker@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-08-04 07:42:20 +01:00
Yongxin Liu
78e1856f58 kdump: start kdump.service after basic.target
If kdump.service is set to run on boot and dump-capture kernel isn't
placed in /dev/root, kdump.service will fail to load the kernel,
since other partitions are not mounted yet. Starting kdump.service
after basic.target guarantees dump-capture kernel can be loaded in
this situation.

(From OE-Core rev: ac9a54fc617ff5f1eb75fa8500187c5ed3effe46)

(From OE-Core rev: d6f922ddc14e0b17af5f1de46ec905de2a21a751)

Signed-off-by: Yongxin Liu <yongxin.liu@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>
2018-08-01 23:00:28 +01:00
Joel Stanley
b0d7de41e3 gcc-7.3: Backport fixes for std::pair high memory usage
C++ applications that contain a specfic use of std::pair with tempates
cause the build to require many gigabytes of RAM to build.

This is a fix that was applied to the upstream GCC 7 branch.

Change-Id: I213f96d1d6332e2dce5765482ff3413f1abd7ff8
(From OE-Core rev: 51a09ba2729a840a9f2f87b68c7f50a3e6ac0d04)

(From OE-Core rev: dc6d466edde2ebe26e2ece5601429baabff38bbb)

Signed-off-by: Joel Stanley <joel@jms.id.au>
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-08-01 23:00:28 +01:00
Joel Stanley
d2ad05e0b1 gcc-7.3: Fix build on ppc64le hosts
When building on ppc64le hosts that have GCC 8 (such as Ubuntu 18.10)
the GCC build bootstrap fails.

 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162

This is a fix that was applied to the upstream GCC 7 branch.

Change-Id: I7796d2a999ec420805dd1c6cf0a1ecba1de5a897
(From OE-Core rev: c17f5e7e954487ad3e97e26c3e0d31443d658d5a)

(From OE-Core rev: 7d1ab4088f67f267b0c5a8ce9913feeedc3a7d7d)

Signed-off-by: Joel Stanley <joel@jms.id.au>
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-08-01 23:00:28 +01:00
Khem Raj
50fe2fd0e9 glibc-locale: Fix host-user-contaminated QA errors
Fixes

ERROR: glibc-locale-2.27-r0 do_package_qa: QA Issue: glibc-locale: /glibc-binary-localedata-hy-am/usr/lib/locale/hy_AM/LC_MEASUREMENT.tmp is owned by uid 3004, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]

(From OE-Core rev: 06d831d12fe2a2366480c79f4c018942937b753a)

(From OE-Core rev: 06003fba975adb1c6c374eb31067bf356cc81baa)

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>
2018-08-01 23:00:28 +01:00
Andrej Valek
13b591a304 shadow: fix CVE-2017-2616
(From OE-Core rev: 94a1e2794df15f0f2cb62ae030cd81e6c0798b1f)

(From OE-Core rev: 8894c70ae5a44974f74434d251def3148818a866)

Signed-off-by: Andrej Valek <andrej.valek@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-08-01 22:59:24 +01:00
Joe Slater
753640469e tiff: security fix CVE-2018-7456
NULL pointer use as described at nvd.nist.gov/vuln/detail/CVE-2018-7456.

(From OE-Core rev: 122da5cec495fc8ddfd880327e7c3ed0dc70e04f)

(From OE-Core rev: 0556a6929ea298a3db329b1c1447f01fc65264f9)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-01 22:59:23 +01:00
Joe Slater
6bfd543340 tiff: security fix CVE-2018-8905
Buffer overflow described at nvd.nits.gov/vuln/detail/CVE-2018-8905.

(From OE-Core rev: 3f6f2a0619b4e243e6a9e52cee2cdd625ebf6769)

(From OE-Core rev: bfa9a8505a143c345ca1038fd5919ac2f6fec722)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-01 22:59:23 +01:00
Richard Purdie
fe22033339 yocto-uninative: Upgrade to version 2.2
This version adds nativesdk-libnss-nis to resolve glibc symbol issues

We need this to avoid symbol mismatch issues for binaries that use this
on newer systems which then won't run on older ones where it isn't present.

(From OE-Core rev: 98c7ab9cf32765d604c35dc69bc7bd90e94fc8f3)

(From OE-Core rev: 026408c9d90e6241ce1b3d4cadefc48b7aba1734)

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-08-01 22:59:23 +01:00
Martin Jansa
86aaecf948 gio-module-cache.bbclass: disable update_gio_module_cache postinst script for nativesdk
* it fails to execute native binary inside the qemu usermode for target
  arch as shown e.g. for qemuarm and raspberrypi3 build on x86_64
  builder:

  qemuarm-webos-linux-gnueabi/webos-ndk-basic/1.0.0-1-r3/temp/log.do_populate_sdk:
    NOTE: > Executing update_gio_module_cache-nativesdk intercept ...
    WARNING: The postinstall intercept hook 'update_gio_module_cache-nativesdk' failed, details in log.do_populate_sdk
    qemuarm-webos-linux-gnueabi/webos-ndk-basic/1.0.0-1-r3/sdk/image/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/libexec/nativesdk-gio-querymodules: Invalid ELF image for this architecture

  qemuarm-webos-linux-gnueabi/my-sdk/1.0.0-1-r3/sdk/image/opt/webos-sdk-x86_64/7.0~s14/sysroots/armv5te-webos-linux-gnueabi/usr/libexec/gio-querymodules:
    ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=5b7f0c77e8ee9587f4e02eaf1d54a1e230e539bd, stripped
  qemuarm-webos-linux-gnueabi/my-sdk/1.0.0-1-r3/sdk/image/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/libexec/nativesdk-gio-querymodules:
    ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=eeded124aa53c7ac997dd6326e5d9b75e8d9c43d, stripped

  qemuarm-webos-linux-gnueabi/webos-ndk-basic/1.0.0-1-r3/intercept_scripts-ac629c4abfb418548877d2a412f7e552bd21e66f0b645b8875dc56ed9f0df40d/update_gio_module_cache-nativesdk
bindir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/bin
base_libdir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/lib
libexecdir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/libexec
libdir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/lib
binprefix=nativesdk-

set -e

PSEUDO_UNLOAD=1 qemuwrapper -L $D -E
LD_LIBRARY_PATH=$D${libdir}:$D${base_libdir} \
        $D${libexecdir}/${binprefix}gio-querymodules
$D${libdir}/gio/modules/

[ ! -e $D${libdir}/gio/modules/giomodule.cache ] ||
        chown root:root $D${libdir}/gio/modules/giomodule.cache

  raspberrypi3-webos-linux-gnueabi/webos-ndk-basic/1.0.0-1-r3/temp/log.do_populate_sdk:
    NOTE: > Executing update_gio_module_cache-nativesdk intercept ...
    WARNING: The postinstall intercept hook 'update_gio_module_cache-nativesdk' failed, details in log.do_populate_sdk
    raspberrypi3-webos-linux-gnueabi/webos-ndk-basic/1.0.0-1-r3/sdk/image/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/libexec/nativesdk-gio-querymodules: Invalid ELF image for this architecture

  raspberrypi3-webos-linux-gnueabi/my-sdk/1.0.0-1-r3/sdk/image/opt/webos-sdk-x86_64/7.0~s14/sysroots/cortexa7t2hf-neon-vfpv4-webos-linux-gnueabi/usr/libexec/gio-querymodules:
    ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=5267f1e542b014522af5ab54443d768ba6b47351, stripped
  raspberrypi3-webos-linux-gnueabi/my-sdk/1.0.0-1-r3/sdk/image/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/libexec/nativesdk-gio-querymodules:
    ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=eeded124aa53c7ac997dd6326e5d9b75e8d9c43d, stripped

  raspberrypi3-webos-linux-gnueabi/webos-ndk-basic/1.0.0-1-r3/intercept_scripts-a4270d1427cca0a9d172dbcd8dc262957c8e081c657e1123cc9ad551d65f22ea/update_gio_module_cache-nativesdk
bindir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/bin
base_libdir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/lib
libexecdir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/libexec
libdir=/opt/webos-sdk-x86_64/7.0~s14/sysroots/x86_64-webossdk-linux/usr/lib
binprefix=nativesdk-

set -e

PSEUDO_UNLOAD=1 qemuwrapper -L $D -E
LD_LIBRARY_PATH=$D${libdir}:$D${base_libdir} \
        $D${libexecdir}/${binprefix}gio-querymodules
$D${libdir}/gio/modules/

[ ! -e $D${libdir}/gio/modules/giomodule.cache ] ||
        chown root:root $D${libdir}/gio/modules/giomodule.cache

* it isn't needed in master, because nativesdk postinst were fixed by:
  commit d10fd6ae3fe46290c6e3a5250878966d9f12ca3f
  Author: Alexander Kanavin <alexander.kanavin@linux.intel.com>
  Date:   Mon Jun 11 16:38:20 2018 +0300
  Subject: qemuwrapper-cross: enable multilib and nativesdk variants of the script
* which depends on:
  commit d4f5b8e26acaadffac6df10f9a9d9ebfb3045f5f
  Author: Alexander Kanavin <alexander.kanavin@linux.intel.com>
  Date:   Mon Jun 11 16:38:17 2018 +0300
  Subject: gtk-immodules-cache.bbclass: convert cache creation to postinst_intercept mechanism

* backporting just these 2 isn't enough, we would need to backport
  something else as well, otherwise it fails with:
  webos-ndk-basic/1.0.0-1-r3/intercept_scripts-a4270d1427cca0a9d172dbcd8dc262957c8e081c657e1123cc9ad551d65f22ea/update_gio_module_cache-nativesdk:
  nativesdk-qemuwrapper: not found

  and at this point I would rather safely disable it for nativesdk
  in sumo instead of backporting bunch more commits to stable branch

(From OE-Core rev: 11487d960e8a10ba9f33cffaa631e941b8874fa6)

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-07-30 00:02:53 +01:00
Daniel Díaz
13dc9eedc3 glibc: Avoid multilibbing on wordsize.h
Once another header #includes <bits/wordsize.h>, there is a
potential recursion going on because the
multilib_header_wrapper.h #includes <bits/wordsize.h> again!

This should not happen because an __arm__ (32-bits) or an
__aarch64__ (64-bits) environment guarantees that we will
be getting the correct definition, but when building against
a different target (like BPF), recursion is what happens.

This can be seen, for instance, when building eBPF programs
from the kernel with `clang -target bpf', such as the ones
located in linux/tools/testing/selftests/bpf/.

(From OE-Core rev: a74c77d6168101e88c3a3bce7130f4f52cfab95d)

(From OE-Core rev: 7fe620ed0f9bb0404a1929d9c1c47f432f9a6b37)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
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-07-30 00:02:52 +01:00
Joshua Watt
e4f158a461 u-boot: Fix build race condition
Backports 2f61b13d6acba787b00598d519c85222e993e4ca (included in the
2018.07 release) which fixes a race condition when building.

[YOCTO #12705]

(From OE-Core rev: 77586b8e1e50234f34b6c469c41819e36cc8a786)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-30 00:02:52 +01:00
Andre McCurdy
b136c92b29 curl: update 7.60.0 -> 7.61.0
https://curl.haxx.se/changes.html#7_61_0

(From OE-Core rev: b26ca91574a88745910d44777bb17ac0616baf3e)

(From OE-Core rev: 99ea485195327fcdd63f682a41a4b340a2fd1dda)

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>
2018-07-30 00:02:52 +01:00
Rui Wang
5fad6a5755 bash: fix wrong exit status offset
In Linux,8 bits of the return code and 8 bits of the number of
the killing signal are mixed into a single value on the exit code,
so the exit status offset should be 8. But the autoconf checker
can not determine it while cross compiling, and then it is set to
the default value 0, which will cause generating the wrong exit
code if program exit with an error code.

(From OE-Core rev: e2dea46607a24620d6d2c250efc9b2e95bfd5ad8)

(From OE-Core rev: befc0dcbbd5d0ccc97ffac1ce24247ac4b001137)

Signed-off-by: Rui Wang <rui.wang@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>
2018-07-30 00:02:52 +01:00
Ross Burton
d79d44e27f gnutls: use HTTP instead of FTP
HTTP is in general more reliable so use that in the SRC_URI.

(From OE-Core rev: 4f3378e0763a94a5daac7169f498177fc6ef4e75)

(From OE-Core rev: 195f7a1d1a40c341ca6c84232194a565e9daa9d6)

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-07-30 00:02:52 +01:00
Joe Slater
f259167b77 tiff: security fix CVE-2018-10963
Denial of service described at https://nvd.nist.gov/vuln/detail/CVE-2018-10963.

(From OE-Core rev: d19a9b41d3b2dcba3b102a8289b7787b4b131e96)

(From OE-Core rev: d1327439b800e21a8116f8e33e4fe9d2b6c17198)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-30 00:02:52 +01:00
Ross Burton
884b883562 insane: optimise buildpath search
Instead of decoding every file we open as UTF-8 (with many errors as machine
code isn't UTF-8), convert the build path to the UTF-8 byte representation and
search for that instead.

(From OE-Core rev: ffb52d383bfe413cf31fef13663fe9937a146c76)

(From OE-Core rev: e0e366731116e62857fa3bdec9e3897aafcc8137)

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-07-30 00:02:52 +01:00
Anuj Mittal
2919a89054 wic/engine: use up all free space when expanding partitions
Currently we just divide up the free space by the number of partitions
that need to be re-sized. This leads to problems when a user has
explicitly specified a subset of partitions (but not all) that need
to re-sized along with the sizes. As an example, for an image with 3
partitions, if we use:

wic write image.wic /dev/sdb --expand 1:10G

This would lead to paritions 2 and 3 each being re-sized to one thirds
of the free space instead of half.

Change the behavior to use up all the free space.

(From OE-Core rev: a88f1b5d88dbc5fb28be24b9787d73b9e0cdf183)

(From OE-Core rev: 167d0c4a9f45e3b8172fc34bf80f3fa587513b0a)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-30 00:02:52 +01:00
Anuj Mittal
19c1d1f902 wic/engine: fix errors when expanding partitions
The UEFI spec implies that GPT partitions should be assumed to be on a 2048
sector boundary (for a 512 byte sector) and the current logic just
divides the free sectors available by the number of partitions that need
re-sizing, which may or may not align and the final result might
overshoot the limits imposed after alignment.

Since we are expanding already aligned partitions, just divide up the
free space in multiples of 2048. Also use the exec_cmd wrapper instead
of the subprocess call directly.

Fixes [YOCTO #12840]

(From OE-Core rev: 5eef63f5afdfbab8e30748cb1bf42bf2e6524759)

(From OE-Core rev: 2217c4ec7682adce1fe683233d80c6d54888300b)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-30 00:02:52 +01:00
Rasmus Villemoes
305711f10a perf: disable parallelism for 'make clean'
Whenever perf got rebuilt, I was consistently getting errors such as

| find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory
| find: '[...]/perf/1.0-r9/perf-1.0/plugin_mac80211.so': No such file or directory
| find: find: '[...]/perf/1.0-r9/perf-1.0/libtraceevent.a''[...]/perf/1.0-r9/perf-1.0/libtraceevent.a': No such file or directory: No such file or directory
|
[...]
| find: cannot delete '/mnt/xfs/devel/pil/yocto/tmp-glibc/work/wandboard-oe-linux-gnueabi/perf/1.0-r9/perf-1.0/util/.pstack.o.cmd': No such file or directory

breaking the whole build. The root cause seems to be that the implicit
'make clean' done during do_configure ends up running in parallel, and
thus multiple find commands attempt to stat and/or delete the same
file.

A patch disabling parallelism for the clean target has been ack'ed
upstream (lkml.kernel.org/r/20180705134955.GB3686@krava), but it should
be harmless to pass JOBS=1 even with a fixed kernel. This can be removed
if and when all relevant -stable kernels have that patch.

(From OE-Core rev: bb58203b668df42fd08c2e5fa4a172cf63e37369)

(From OE-Core rev: d12722681a4c13c1a6bc9c965cc43c4544ce7aa9)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
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-07-30 00:02:52 +01:00
Bruce Ashfield
651d49ee02 linux-yocto/4.12: update to v4.12.26
Integrating Paul Gortmaker's -stable 4.12 release, which comprises
the following commits:

b0f63e84c132 Linux 4.12.26
61be5424616e usbnet: fix alignment for frames with no ethernet header
6d0519e75609 tipc: fix memory leak in tipc_accept_from_sock()
8560506d5b7a tipc: call tipc_rcv() only if bearer is up in tipc_udp_recv()
5ceba73f1c24 tcp: remove buggy call to tcp_v6_restore_cb()
450a839e54a6 tcp/dccp: block bh before arming time_wait timer
872d246eaed9 stmmac: reset last TSO segment size after device open
74386d6ee7bf sit: update frag_off info
3df033244a42 s390/qeth: fix GSO throughput regression
b7bd0107008f s390/qeth: fix early exit from error path
7f02573318ba s390/qeth: build max size GSO skbs on L2 devices
3c8a527e0496 rds: Fix NULL pointer dereference in __rds_rdma_map
00c0600c0a35 net: remove hlist_nulls_add_tail_rcu()
193d9a02e802 net: realtek: r8169: implement set_link_ksettings()
8fb1c5e220ee net: qmi_wwan: add Quectel BG96 2c7c:0296
0c2ba29a13d9 net/packet: fix a race in packet_bind() and packet_notifier()
bb06331e9156 net: openvswitch: datapath: fix data type in queue_gso_packets
ea15a664c5b8 usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping
7f11deffc177 ipmi: Stop timers before cleaning up the module
fb006a18929e fix kcm_clone()
ee82eaf439cc RDMA/cxgb4: Annotate r2 and stag as __be32
b71be191d4ed md: free unused memory after bitmap resize
6d24efc56915 dm raid: fix panic when attempting to force a raid to sync
490fc05683b4 blk-mq: Avoid that request queue removal can trigger list corruption
d9e8cb49aaf1 ide: ide-atapi: fix compile error with defining macro DEBUG
115978628b54 ipvlan: fix ipv6 outbound device
ee2ce344ee06 powerpc/powernv/idle: Round up latency and residency values
0fe4d3f9fb5b afs: Connect up the CB.ProbeUuid
94bdd552d7b1 IB/mlx5: Assign send CQ and recv CQ of UMR QP
aa02d85e4d08 IB/mlx4: Increase maximal message size under UD QP
dd955bcce383 bnxt_re: changing the ip address shouldn't affect new connections
a4b3e59bcb04 f2fs: fix to clear FI_NO_PREALLOC
78f9d39a2735 xfrm: Copy policy family in clone_policy
4577662b6010 atm: horizon: Fix irq release error
d7241b40fe6d kbuild: rpm-pkg: fix jobserver unavailable warning
bffb011d5446 mailbox: mailbox-test: don't rely on rx_buffer content to signal data ready
849ef7edfa4c clk: hi3660: fix incorrect uart3 clock freqency
d561354fe15d clk: uniphier: fix DAPLL2 clock rate of Pro5
eada5db0be6e clk: qcom: common: fix legacy board-clock registration
11ea07285eb4 geneve: fix fill_info when link down
4e0b53bd177a sctp: return error if the asoc has been peeled off in sctp_wait_for_sndbuf
be7cba326d33 sctp: use the right sk after waking up from wait_buf sleep
2c485f6fa3be sctp: do not free asoc when it is already dead in sctp_sendmsg
6e2b427a32da slub: fix sysfs duplicate filename creation when slub_debug=O
e66ebbc23607 zsmalloc: calling zs_map_object() from irq is a bug
dc423eda615d sparc64/mm: set fields in deferred pages
956c73ca6664 block: wake up all tasks blocked in get_request()
1f35bda74d1a dt-bindings: usb: fix reg-property port-number range
412c76f0f9b8 sunrpc: Fix rpc_task_begin trace point
09f79313b317 NFS: Fix a typo in nfs_rename()
a550f7b43f63 dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
80f443550f8f lib/genalloc.c: make the avail variable an atomic_long_t
1dfea0e03917 drivers/rapidio/devices/rio_mport_cdev.c: fix resource leak in error handling path in 'rio_dma_transfer()'
4add25bf3dff route: update fnhe_expires for redirect when the fnhe exists
c53ad6cb2f86 route: also update fnhe_genid when updating a route cache
d09b814cd2aa gre6: use log_ecn_error module parameter in ip6_tnl_rcv()
f9ef4cd05462 mac80211_hwsim: Fix memory leak in hwsim_new_radio_nl()
a95269b0e4e5 x86/mpx/selftests: Fix up weird arrays
76e5bd0ae30a coccinelle: fix parallel build with CHECK=scripts/coccicheck
59f2aa43a314 kbuild: pkg: use --transform option to prefix paths in tar
50ce05457e39 irqchip/qcom: Fix u32 comparison with value less than zero
e3fec500f619 ARM: avoid faulting on qemu
602f85aeefb7 crypto: talitos - fix ctr-aes-talitos
73e76cb0ca1f crypto: talitos - fix use of sg_link_tbl_len
f17fe30404de crypto: talitos - fix AEAD for sha224 on non sha224 capable chips
f5fa317606b7 crypto: talitos - fix setkey to check key weakness
519619ec114a crypto: talitos - fix memory corruption on SEC2
e7984cca5abc crypto: talitos - fix AEAD test failures
64d05b5d1d86 bus: arm-ccn: fix module unloading Error: Removing state 147 which has instances left.
e14e213dfd51 bus: arm-ccn: Fix use of smp_processor_id() in preemptible context
63efd55a2c6b bus: arm-ccn: Check memory allocation failure
fd30c25b5596 bus: arm-cci: Fix use of smp_processor_id() in preemptible context
d358187f050b media: dvb: i2c transfers over usb cannot be done from stack
2ae277ebe31f drm/exynos: gem: Drop NONCONTIG flag for buffers allocated without IOMMU
0792a5a27074 drm/bridge: analogix dp: Fix runtime PM state in get_modes() callback
fdc899328ff3 kdb: Fix handling of kallsyms_symbol_next() return value
08f22e2251fd brcmfmac: change driver unbind order of the sdio function devices
f9a77013fa02 powerpc/64s: Initialize ISAv3 MMU registers before setting partition table
9c6dfd696e5a KVM: s390: Fix skey emulation permission check
092937ce1aae s390: fix compat system call table
4f4b2e279816 s390: always save and restore all registers on context switch
8c54b7d880d4 smp/hotplug: Move step CPUHP_AP_SMPCFD_DYING to the correct place
a2ec325c7d20 iommu/vt-d: Fix scatterlist offset handling
743ac71ece80 ALSA: usb-audio: Fix the missing ctl name suffix at parsing SU
1df6e988ae39 ALSA: usb-audio: Add check return value for usb_string()
974394e57a05 ALSA: usb-audio: Fix out-of-bound error
f4753360efda ALSA: seq: Remove spurious WARN_ON() at timer check
478c2ed7ca1c ALSA: pcm: prevent UAF in snd_pcm_info
b12060cae8c2 btrfs: handle errors while updating refcounts in update_ref_for_cow
ecfc013c7f23 btrfs: fix missing error return in btrfs_drop_snapshot
45822ea3d1bf X.509: fix comparisons of ->pkey_algo
19057ced2699 X.509: reject invalid BIT STRING for subjectPublicKey
a3ad8e49bc26 KEYS: reject NULL restriction string when type is specified
7c2ccfe13faa KEYS: add missing permission check for request_key() destination
664879ff9aef ASN.1: check for error from ASN1_OP_END__ACT actions
4c0e7ec3072d ASN.1: fix out-of-bounds read when parsing indefinite length item
17a6f363daf9 efi/esrt: Use memunmap() instead of kfree() to free the remapping
8dd372dd8845 efi: Move some sysfs files to be read-only by root
97c6b857262f scsi: libsas: align sata_device's rps_resp on a cacheline
eb78a8b8f172 scsi: use dma_get_cache_alignment() as minimum DMA alignment
db4a32fa5cf2 scsi: dma-mapping: always provide dma_get_cache_alignment
1f55442d0992 isa: Prevent NULL dereference in isa_bus driver callbacks
93fdb7dc713e hv: kvp: Avoid reading past allocated blocks from KVP file
d745d533737a pinctrl: armada-37xx: Fix direction_output() callback behavior
ae6add36f3ce iio: adc: meson-saradc: fix the bit_idx of the adc_en clock
50c87ecdb250 iio: adc: cpcap: fix incorrect validation
657257ba13ae iio: health: max30102: Temperature should be in milli Celsius
3da92b4ab2cc virtio: release virtio index when fail to device_register
f6fe0d2777b2 can: peak/pcie_fd: fix potential bug in restarting tx queue
654babccd437 can: usb_8dev: cancel urb on -EPIPE and -EPROTO
bda1dccdda47 can: esd_usb2: cancel urb on -EPIPE and -EPROTO
9ff8eb7ef05b can: ems_usb: cancel urb on -EPIPE and -EPROTO
51e5de2b036b can: mcba_usb: cancel urb on -EPROTO
c94c94a367ef can: kvaser_usb: cancel urb on -EPIPE and -EPROTO
c8474d8798ab can: kvaser_usb: ratelimit errors if incomplete messages are received
1936ba2b0b40 can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()
bc86162fa81a can: kvaser_usb: free buf in error paths
4a879f2d1636 can: ti_hecc: Fix napi poll return value for repoll
09b06e3f7b1d can: flexcan: fix VF610 state transition issue
f81db8e7d0cb can: peak/pci: fix potential bug when probe() fails
7b747f65c553 can: mcba_usb: fix device disconnect bug
0a3964b0a8d3 usb: f_fs: Force Reserved1=1 in OS_DESC_EXT_COMPAT
d1c24d05d7ec serdev: ttyport: fix tty locking in close
541fbaaf6db7 serdev: ttyport: fix NULL-deref on hangup
a6d00d0df9e5 serdev: ttyport: add missing receive_buf sanity checks
b30e0bedb66b usb: gadget: udc: renesas_usb3: fix number of the pipes

(From OE-Core rev: 5fddf0226efc996f7eeba76f15e3335c9e60c2f3)

(From OE-Core rev: 650cbbf76742adfd4e8c44c2c98dbeaaebc9e3bc)

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>
2018-07-30 00:02:52 +01:00
Bruce Ashfield
4106e8591a linux-yocto/4.12: bump to v4.12.25
Integrating Paul Gortmaker's v4.12.25 -stable queue, which comprises the
following commits:

  e61748ef5db0 Linux 4.12.25
  c34553e3e8af x86/bugs: Rename SSBD_NO to SSB_NO
  4aa9e65a91b9 x86/bugs: Remove x86_spec_ctrl_set()
  7283d22a40c4 x86/bugs: Expose x86_spec_ctrl_base directly
  60fb8f1bbd46 x86/speculation: Rework speculative_store_bypass_update()
  cc8a65725832 x86/cpufeatures: Disentangle SSBD enumeration
  4cadf648f802 x86/cpufeatures: Disentangle MSR_SPEC_CTRL enumeration from IBRS
  14476a34b4d0 x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP
  e66dd0595eac x86/cpu: Make alternative_msr_write work for 32-bit code
  32e38eda9958 x86/bugs: Fix the parameters alignment and missing void
  5593194735ea x86/bugs: Make cpu_show_common() static
  86e7eb199990 x86/bugs: Fix __ssb_select_mitigation() return type
  4efd9170a722 Documentation/spec_ctrl: Do some minor cleanups
  e074092d9d0a proc: Use underscores for SSBD in 'status'
  f57b4be9a391 x86/bugs: Rename _RDS to _SSBD
  f395cafed558 x86/speculation: Make "seccomp" the default mode for Speculative Store Bypass
  9599751872de seccomp: Move speculation migitation control to arch code
  647fb2d84f05 seccomp: Add filter flag to opt-out of SSB mitigation
  44d5a1d9fe07 seccomp: Use PR_SPEC_FORCE_DISABLE
  9490e71c3074 prctl: Add force disable speculation
  ad5b97fe1ab6 x86/bugs: Make boot modes __ro_after_init
  cfc00a7877b6 seccomp: Enable speculation flaw mitigations
  bc4bf81c64b0 proc: Provide details on speculation flaw mitigations
  a41d2136a447 nospec: Allow getting/setting on non-current task
  7e17279e72b9 x86/speculation: Add prctl for Speculative Store Bypass mitigation
  eea6b1abc91e x86/process: Allow runtime control of Speculative Store Bypass
  c8630c28cd28 prctl: Add speculation control prctls
  ecefae5ca101 x86/speculation: Create spec-ctrl.h to avoid include hell
  4bcdf54612aa x86/bugs/AMD: Add support to disable RDS on Fam[15,16,17]h if requested
  6ce1317929a3 x86/bugs: Whitelist allowed SPEC_CTRL MSR values
  cd5e5e6f2e39 x86/bugs/intel: Set proper CPU features and setup RDS
  d97584229d85 x86/bugs: Provide boot parameters for the spec_store_bypass_disable mitigation
  793b7453cfc5 x86/cpufeatures: Add X86_FEATURE_RDS
  c6c3cd47ccbb x86/bugs: Expose /sys/../spec_store_bypass
  2d92a521bda7 x86/bugs: Read SPEC_CTRL MSR during boot and re-use reserved bits
  81865e325abe x86/bugs: Concentrate bug reporting into a separate function
  45245a5b9dc4 x86/bugs: Concentrate bug detection into a separate function
  05e82d536970 x86/nospec: Simplify alternative_msr_write()
  effb0dfecfa2 x86/cpu_entry_area: Sync cpu_entry_area to initial_page_table
  89fffee9d555 x86/xen: Zero MSR_IA32_SPEC_CTRL before suspend
  76199d7beb0b x86/speculation: Move firmware_restrict_branch_speculation_*() from C to CPP
  426210b00b02 x86/speculation: Use IBRS if available before calling into firmware
  63904f8a6d41 x86/entry/64: Fix CR3 restore in paranoid_exit()
  35cf6a9daf5f x86/cpu: Change type of x86_cache_size variable to unsigned int
  7fded60b2cb7 x86/spectre: Fix an error message
  343945a16727 x86/speculation: Add <asm/msr-index.h> dependency
  eb0f059ee2de nospec: Move array_index_nospec() parameter checking into separate macro
  31951a39de73 x86/speculation: Fix up array_index_nospec_mask() asm constraint
  344711f16fec x86/entry/64: Remove the unused 'icebp' macro
  d4324affaf05 x86/entry/64: Fix paranoid_entry() frame pointer warning
  3cadbc9228b4 x86/entry/64: Indent PUSH_AND_CLEAR_REGS and POP_REGS properly
  0d561147160c x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros
  22c1269eefa9 x86/entry/64: Use PUSH_AND_CLEAN_REGS in more cases
  ac897d25b1d3 x86/entry/64: Introduce the PUSH_AND_CLEAN_REGS macro
  226eea037fa6 x86/entry/64: Interleave XOR register clearing with PUSH instructions
  120d889cac9f x86/entry/64: Merge the POP_C_REGS and POP_EXTRA_REGS macros into a single POP_REGS macro
  2d5eb3888f24 x86/entry/64: Merge SAVE_C_REGS and SAVE_EXTRA_REGS, remove unused extensions
  797a6f4444f1 x86/speculation: Clean up various Spectre related details
  ff032faca431 KVM/nVMX: Set the CPU_BASED_USE_MSR_BITMAPS if we have a valid L02 MSR bitmap
  1aaab2d1a1fd KVM/x86: Reduce retpoline performance impact in slot_handle_level_range(), by always inlining iterator helper methods
  dd17c0f5a114 Revert "x86/speculation: Simplify indirect_branch_prediction_barrier()"
  add7dd4f1f81 x86/speculation: Correct Speculation Control microcode blacklist again
  358f03a9395f x86/speculation: Update Speculation Control microcode blacklist
  0307861327c7 x86/mm/pti: Fix PTI comment in entry_SYSCALL_64()
  a612b987b028 x86/entry/64/compat: Clear registers for compat syscalls, to reduce speculation attack surface
  1b8b432f6dee x86/entry/64: Clear registers for exceptions/interrupts, to reduce speculation attack surface
  513e4bbfc32c x86/entry/64: Clear extra registers beyond syscall arguments, to reduce speculation attack surface

(From OE-Core rev: 400c1bd54c0191b96bccfe0d2755995bdfc04fc1)

(From OE-Core rev: 50bf492ce1db930b5a1c3f0d750015c04a6aaaf0)

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>
2018-07-30 00:02:52 +01:00
Lei Maohui
80a498040f linux-libc-headers: To fix build error when enable mutilib on aarch64 Big endian.
(From OE-Core rev: 1c31fa6929fc97e2fb0c4fbfcc66c789c39c1117)

(From OE-Core rev: 4a75ecc980d27ff0d0ed74f6cce0aff41cd080fd)

Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.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>
2018-07-30 00:02:52 +01:00
Richard Purdie
20a5843837 staging: Always use the default sysroot for allarch recipes
Without this, recipes can't find allarch data files like autoconf-archive.

(From OE-Core rev: 8ae70703f68853a8714a4fb8fa5d959b5e21a02d)

(From OE-Core rev: 9e7aaabc456e186274912edcf6b7f5bb2be1333d)

(From OE-Core rev: a46011097e76813a440a5497d97e56b83541bcb5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-30 00:02:52 +01:00
Richard Purdie
f55516fef5 staging: Improve fixup processing code
With the fixes to other parts of multilib, it was found that the fixup code's
assumptions about the recipe sysroot were incorrect. We need to use the value
calculated earlier in the function.

It turns out there is a rather neat way to do this which cleans up the code
as an added bonus.

(From OE-Core rev: 2c1978fe1a5b72167c49010fbdd39a9e2eefdef8)

(From OE-Core rev: ef7e612e54d7629518a13ed3b1c2967bf70347a2)

(From OE-Core rev: c1455f3b052fc589fad628e97e35bcc9296726e1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-30 00:02:52 +01:00
Richard Purdie
842ad94cad staging/image: Fix multilib recipe sysroot issues
Currently if you enable multilib, then build an image, the multilib
recipe sysroot is build in the wrong WORKDIR. If you then clean and
rebuild the image you see "file exists" errors.

This patch ensures the real WORKDIR is used consistently and then
cleans/rebuilds also work correctly.

(From OE-Core rev: c013ae59a158378d06ecf8eb123df0a10bf986b4)

(From OE-Core rev: 7631301b5fc27ab9dda00fcf3d4a0faf685c26dd)

(From OE-Core rev: e167e99621009f92d677ff6dac303d09e42361b5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-30 00:02:52 +01:00
Alex Kiernan
96fbd39ba3 bmap-tools: Add python3-fcntl dependency
Add missing python3-fcntl dependency

(From OE-Core rev: 5821db83e5c21a7a85b8675951e4e9c1893e4b26)

(From OE-Core rev: 6aaed231cce829aa6684a7e10c7cf0e8b0504781)

Signed-off-by: Alex Kiernan <alex.kiernan@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>
2018-07-19 10:53:52 +01:00
Olof Johansson
66051c128d rpm: Avoid leaking temporary scriplet files
RPM writes each package scriptlet (post-/preinstall) to
/var/tmp/rpm-tmp.XXXXXX --- a lot of files potentially gets created.
When debugging is enabled, these temporary scriptlet files aren't
cleaned up at all and after a while this results in the filesystem
resources are eaten up (like running out of available inodes).

Normally, the temporary files would have been written to the tmp
directory of the target sysroot (which we can easily clean up), but in
this tree, you can't necessarily run the scriptlets.

Fixes [YOCTO #12792]

(From OE-Core rev: ffb0ece83e74797f4c3da3866bb3d691c388a5e5)

(From OE-Core rev: f0e1683d53e3b7436c04d665a181cdf5909e987c)

Signed-off-by: Olof Johansson <olofjn@axis.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-07-19 10:53:52 +01:00
Fabio Berton
5a1a699415 busybox: Add patch to ignore -c on umount command
Fix error when umounting filesystem on shutdown with a systemd distro.

See more datails here: [https://github.com/systemd/systemd/issues/7786]

(From OE-Core rev: ae23367c85d1a6c84c25736ac3c9a059acbc8dbe)

(From OE-Core rev: 29b1555481a30f9a7eda43f67f3e8ceb5da1b0aa)

(From OE-Core rev: b233c8db7635250c59c02598308b0ea54580f4d0)

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
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-07-19 10:53:52 +01:00
Otavio Salvador
66f380e4b0 go: Update 1.10.2 -> 1.10.3
go1.10.3 (released 2018/06/05) includes fixes to the go command, and
the crypto/tls, crypto/x509, and strings packages. In particular, it
adds minimal support to the go command for the vgo transition.

(From OE-Core rev: 37f288d783257cb9e6c035aaab1b661b1016b4c3)

(From OE-Core rev: aef0052ba416e24e503f5c984f254d023c32d5b3)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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-07-19 10:53:52 +01:00
Otavio Salvador
96341ef44f go: Update 1.9.6 -> 1.9.7
go1.9.7 (released 2018/06/05) includes fixes to the go command, and
the crypto/x509, and strings packages. In particular, it adds minimal
support to the go command for the vgo transition.

(From OE-Core rev: 98d3ec92e8953304db51c73aff7a4e81b97f668c)

(From OE-Core rev: 8c90d5c8ecc146d37de5d7f1076a963c18f04f4c)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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-07-19 10:53:52 +01:00
Otavio Salvador
5e5b2ed9e8 linux-firmware: upgrade to d114732 revision
Following changes are applied:

d114732 Merge branch 'for-upstreaming-v1.7.2-vsw' of https://github.com/felix-cavium/linux-firmware
fe4a9d4 brcm: update firmware for bcm4356 pcie
a292181 brcm: update firmware for bcm4354 sdio
be1c535 brcm: update firmware for bcm43362 sdio
5ac5ad5 brcm: update firmware for bcm43340 sdio
ec734a3 brcm: update firmware for bcm43430 sdio
ba51e86 Update Cypress license termination clause
1fa9ce3 amdgpu: update vega10 VCE firmware to version 55.3
9489f55 linux-firmware: Update firmware patch for Intel Bluetooth 7265 (D0)
6be4747 linux-firmware:Update firmware patch for Intel Bluetooth 7265 (D1)
4949d88 Merge branch 'master' of https://github.com/vgarodia/linux-firmware
7602644 qcom: add venus firmware files for v5.2
7518922 Update AMD cpu microcode for family 15h
3f8243c linux-firmware: Update firmware patch for Intel Bluetooth 8260
2c4f7c1 qed: Add firmware 8.37.2.0
0e193ca linux-firmware: liquidio: update vswitch firmware to v1.7.2
2a9b2cf Merge branch 'for-upstreaming-v1.7.2' of https://github.com/felix-cavium/linux-firmware
112d300 linux-firmware: Update firmware file for Intel Bluetooth,8265
629a5e0 linux-firmware: Update firmware patch for Intel Bluetooth 7260 (B5/B6)
7035335 linux-firmware: Update firmware patch for Intel Bluetooth 7260 (B3/B4)
c84bd66 linux-firmware: Update firmware file for Intel Bluetooth,9260
897330f linux-firmware:Update firmware patch for Intel Bluetooth 7265 (D1)
e94352c linux-firmware: Update firmware file for Intel Bluetooth,9560
7710151 linux-firmware: Update AMD cpu microcode
be1e8c5 Merge commit 'a6327c5a5f74c3d11da76d0dcb51c6f5db7f8a35' of https://github.com/Netronome/linux-firmware
86d39f8 amdgpu: sync up polaris12 firmware with 18.10 release
b5320a9 amdgpu: sync up polaris11 firmware with 18.10 release
152c924 amdgpu: sync up polaris10 firmware with 18.10 release
0d672f7 amdgpu: sync up vega10 firmware with 18.10 release
30447b1 amdgpu: sync up carrizo firmware with 18.10 release
dd6f936 amdgpu: sync up topaz firmware with 18.10 release
de9c175 amdgpu: sync up stoney firmware with 18.10 release
5e22609 amdgpu: sync up tonga firmware with 18.10 release
499042e amdgpu: sync up fiji firmware with 18.10 release
1db3eec amdgpu: sync up raven firmware with 18.10 release
a6327c5 nfp: Add symlink for Agilio CX 1x40GbE flower firmware
8b78780 nfp: update Agilio SmartNIC flower firmware to rev AOTC-2.9.A.16
d3b6941 linux-firmware: liquidio: update firmware to v1.7.2

License-Update: copyright years updated and filelist updated.
(From OE-Core rev: 6be8744d1b8ee35eb47acd517cfa29b2a7f455d5)

(From OE-Core rev: 087a50f4d8075a91fa6aa373a3dc05017e62f1f9)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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-07-19 10:53:52 +01:00
Christopher Larson
71625594a9 ovmf: set PARALLEL_MAKE for target as well
This can fail for target, not just native.

(From OE-Core rev: 747c7dc8702d2241475894876d06a2f1f2b29fed)

(From OE-Core rev: 0d4ccd6eac41c878b5a9eec10e1a00b76241b846)

Signed-off-by: Christopher Larson <chris_larson@mentor.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-07-19 10:53:52 +01:00
Christopher Larson
f9f9698c9a pcmciautils: depend on bison-native
pcmciautils needs yacc as well as lex.

(From OE-Core rev: dd5208ae22d47504443785daece4bff6331d8904)

(From OE-Core rev: 356fab8a31985b231580666f1f7e198fbf4070f8)

Signed-off-by: Christopher Larson <chris_larson@mentor.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-07-19 10:53:52 +01:00
He Zhe
5bde99bb6c cryptodev: Fix build errors with v4.17+
Backport from upstream to update internal syscall function usage.
https://github.com/cryptodev-linux/cryptodev-linux
f60aa08c63fc02780554a0a12180a478ca27d49f

(From OE-Core rev: 270a1e9bcf26a43f5cbdc5b901c4c6f79495311d)

(From OE-Core rev: 8289497565e7d5e6d3a8ff0bb58d8369f3bd3292)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-19 10:53:52 +01:00
Hannu Lounento
a1403113c3 systemd: remove the group 'lock'
The upstream commit 61f32bff6130a44d077886d38cff89ad161bf177 included in
the release v229 removed the use of the group:

    commit 61f32bff6130a44d077886d38cff89ad161bf177
    Author: Martin Pitt <martin.pitt@ubuntu.com>
    Date:   Mon Feb 1 12:09:34 2016 +0100

        tmpfiles: drop /run/lock/lockdev

        Hardly any software uses that any more, and better locking mechanisms like
        flock() have been available for many years.

        Also drop the corresponding "lock" group from sysusers.d/basic.conf.in, as
        nothing else is using this.

    [...]
    diff --git a/sysusers.d/basic.conf.in b/sysusers.d/basic.conf.in
    index 823d6cb20..b2dc5ebd4 100644
    --- a/sysusers.d/basic.conf.in
    +++ b/sysusers.d/basic.conf.in
    @@ -19,7 +19,6 @@ g wheel   -     -            -

     # Access to certain kernel and userspace facilities
     g kmem    -     -            -
    -g lock    -     -            -
     g tty     @TTY_GID@     -            -
     g utmp    -     -            -
    [...]

The upstream documentation doc/UIDS-GIDS.md says that basic.conf.in is "the
precise list of the currently defined groups":

    ## Special `systemd` GIDs

    `systemd` defines no special UIDs beyond what Linux already defines (see
    above). However, it does define some special group/GID assignments, which are
    primarily used for `systemd-udevd`'s device management. The precise list of the
    currently defined groups is found in this `sysusers.d` snippet:
    [basic.conf](https://raw.githubusercontent.com/systemd/systemd/master/sysusers.d/basic.conf.in)

    It's strongly recommended that downstream distributions include these groups in
    their default group databases.

Removing the creation of the group also avoids the need to define a GID
for it when using static ids.

(From OE-Core rev: da3659155cd1825a4a8d3d7c5288b4273714de15)

(From OE-Core rev: d3e1ec73a27e0c9305d3c3bd09c141b16d4c7d0d)

Signed-off-by: Hannu Lounento <hannu.lounento@vaisala.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-07-19 10:53:52 +01:00
Ross Burton
b43dff84e9 minicom: change SRC_URI to use Debian mirrors
Alioth is dead and the minicom project on Salsa (the replacement for Alioth)
doesn't actually have any files in, so just use the Debian mirror instead.

(From OE-Core rev: b0338efcdabeec79c568c74b6888d7d523e8e9dc)

(From OE-Core rev: 62bd9b6efb377ed59cfc1594c36be5805d2951fd)

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-07-19 10:53:52 +01:00
Ross Burton
dbd9f6867e mirrors: add Debian snapshot mirror for 2018
Add a Debian snapshot mirror from 2018 (specifically, 10th March, the date 9.4
was released) to DEBIAN_MIRRORS.

(From OE-Core rev: f3f394913b4e4a7c601ad1158faaf8b9d493e1c7)

(From OE-Core rev: 3d969e8f2979c7b4e7dff268f68c53b782bfa5e4)

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-07-19 10:53:52 +01:00
Ross Burton
b8385ce3d1 shadow: update SRC_URI now Alioth is down
Alioth is dead so we can't use it for SRC_URI anymore.  There is a shadow
repository on GitHub which is the new upstream, but for some reason it is
missing the 4.2.1 tag and tarball that we use.  Also 4.2.1 was never uploaded
into Debian itself, so we can't use their mirror network either.

For now point SRC_URI at the Yocto Project source mirror and set
UPSTREAM_CHECK_URI so that we get nagged to upgrade to 4.6.

(From OE-Core rev: b3e246fef166030f327b5a852718ea907ada1759)

(From OE-Core rev: cdc91a056e315bea71c3ac1a1ac4024d3214a99d)

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-07-19 10:53:52 +01:00
Ross Burton
21344f58ea chrpath: Alioth is dead, use DEBIAN_MIRROR
The previous host of chrpath, Alioth, is dead.  chrpath hasn't yet moved to
Salsa, so download the tarball from the Debian mirrors.

(From OE-Core rev: a8a2c5ec891286a1e7fd5ebdd33565f9ae3965c2)

(From OE-Core rev: 53d9da66dcb684cd2d1c703a4887c30ce7bf14d7)

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-07-19 10:53:52 +01:00
Armin Kuster
0f3409c195 iso-codes: fix SRC_URI
The original FTP server, alioth.debian.org has been permanently taken down by the Debian Project and replaced with salsa.debian.org.

(From OE-Core rev: 565394d69925837c0d6f2140bc9489b68dc39474)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-19 10:53:52 +01:00
Richard Purdie
5887f81bb5 oeqa/selftest/systemd_boot: Never use cleansstate in QA tests without special handling of SSTATE_DIR
Removing things straight from the live sstate directory is prone to issues
since other builds may be relying on the artefact presence.

Also, cleansstate is very slow on the huge sstate that the autobuilder has
on slow NFS drives. This may well be causing long buildtimes in oe-selftest
as the time taken to remove the artefact by be long.

(From meta-yocto rev: f927d1582c93ea71ef760e4de8d5a6accc365284)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-15 16:19:20 +01:00
Scott Rifenbark
90f7edb32a sdk-manual: Updates to section on obtaining the SDK
Updated the example to more current information.

(From yocto-docs rev: 6c37cc5231ae560762c5bc8234331d53ebe7b69d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-07 10:59:45 +01:00
Scott Rifenbark
40abca6f9a sdk-manual: Updates to "Building an SDK Installer" section.
Updated some links.  Also, rewrote the note about the libraries.
It was inaccurate.

(From yocto-docs rev: ca6593ea9336dd1974ce65ce1d9ca15af8583915)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-07 10:59:45 +01:00
Scott Rifenbark
51f84650f2 sdk-manual: Updates to the section for locating SDK installers
I corrected some wrong information.  Provided the correct terminology
for the build host, and provided quotations for supplied values to
be in line with manual writing conventions.

(From yocto-docs rev: aa88f3f09dce042a2f5b39bf059401b0cd08a6cc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-07 10:59:45 +01:00
Richard Purdie
4fc9ea2377 meta-yocto-bsp: bump to the latest linux stable kernel for edgerouter/beaglebone
Bump to the latest stable kernel for 4.14 and 4.15 for edgerouter/beaglebone
to fix gcc8 build issues.

(From meta-yocto rev: c5e07b460cf9477181d2dcde8ea93daeeacc9a2e)

(From meta-yocto rev: fa9a4576256d3cab1160cdfde208bff5f10e2288)

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-07-02 11:43:52 +01:00
Kevin Hao
c130b354fd meta-yocto-bsp: bump to the latest linux stable kernel for the non-x86 BSPs
Bump to the latest stable kernel for 4.12, 4.14 and 4.15.

(From meta-yocto rev: eb025ae398c0042ddc7be75e4ebdeb1fb1344c03)

(From meta-yocto rev: 5b1e359882f827f1e95eb79007ae57116a1d9832)

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>
2018-07-02 11:43:52 +01:00
Anuj Mittal
ac4cf2f467 linux-yocto: update genericx86* SRCREVs for 4.15
Bump to kernel release 4.15.18.

(From meta-yocto rev: 64e3554d2bdaf037fc7ed86ace468ff2f75a698b)

(From meta-yocto rev: c1f23ef034fe208d549581f899a896cd83a13df0)

Signed-off-by: Anuj Mittal <anuj.mittal@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-07-02 11:43:52 +01:00
Anuj Mittal
65b254ec37 linux-yocto: update genericx86* SRCREVs for 4.14
Bump to kernel release 4.14.48.

(From meta-yocto rev: f37cf4dbcadabbbc8445b5c51187a59c2e64d3ec)

(From meta-yocto rev: caf30fdf67f67c7856d345849887b5111b12d318)

Signed-off-by: Anuj Mittal <anuj.mittal@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-07-02 11:43:52 +01:00
Anuj Mittal
166772f13b linux-yocto: update genericx86* SRCREVs for 4.12
Bump to kernel release 4.12.24.

(From meta-yocto rev: a2960aacf413837c168e303a89b80fdbb12d3263)

(From meta-yocto rev: 53d90f39d536ebeac9bb7b74a5e245f475f38087)

Signed-off-by: Anuj Mittal <anuj.mittal@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-07-02 11:43:52 +01:00
Tzu Hsiang Lin
d53a5f1e8b 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: eb3bdcc9e7cb273de4114367887d1d7df9f036b7)

Signed-off-by: Tzu Hsiang Lin <t9360341@ntut.org.tw>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:43:52 +01:00
Kai Kang
c1e3ae9039 lame: remove LICENSE_FLAGS
The patent on mp3 format due to expire, so remove LICENSE_FLAGS from
lame recipe.

Ref:
https://bugzilla.gnome.org/show_bug.cgi?id=774252

(From OE-Core rev: 891dee3d20655eae35310fd684152516b91b44d9)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit ef98095cabeb54bd86c2cb78229a1180c7403d4d)
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>
2018-07-02 11:41:26 +01:00
Kai Kang
4640db3533 mpg123: remove LICENSE_FLAGS
mgp123 is patent free from version 1.25.0, so remove LICENSE_FLAGS.

https://mpg123.de/cgi-bin/news.cgi#2017-05-29

(From OE-Core rev: 71210b3299c3818fd89c002a4467f74228b3223e)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit b0bc82a5f238db82425b3b146e269bc6605cbdce)
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>
2018-07-02 11:41:26 +01:00
Jeremy Puhlman
cb3a943773 Qemu: CVE-2018-11806 slirp-heap-buffer-overflow
(From OE-Core rev: d3d0798086177c463142e33f1493be6e34536c64)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
[Fixed up for Sumo context]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Richard Purdie
1ae140f7be lttng-modules: upgrade 2.10.5 -> 2.10.6
(From OE-Core rev: 3ba2701c2cb837c4c8590604021c4a6c50bf894b)

(From OE-Core rev: 5a046900e4796ced8a0e471825429de035f25836)

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-07-02 11:41:26 +01:00
Anuj Mittal
67e55bf282 bitbake-blayers/create: add version for example recipe
Add version field in recipe name for example recipe created by
bitbake-layers.

Fixes [YOCTO #12767]

(From OE-Core rev: c62f6b9643d31b465ea0e919882e411a5ed35c56)

(From OE-Core rev: 963837bde1c0221333883505cc359e54bf98b10c)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 425af487a3)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Robert Yang
158ad96a6c send-error-report: decode response from server
Fixed:
b'Your entry can be found here: http://<snip>'

Now looks like:
Your entry can be found here: http://<snip>

(From OE-Core rev: 4510973fe12a61c21e12b46b8315c56f91eff5b7)

(From OE-Core rev: 8a5ee520cee8c2fd0c2d87f2bba5a6a7a4729bd6)

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>
(cherry picked from commit e4bacbf94a)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Armin Kuster
fff93becc6 popt: update SRC_URI
It appears the rpm5.org has been down for some time, switch to fossies

WARNING: popt-native-1.16-r3 do_fetch: Failed to fetch URL http://rpm5.org/files/popt/popt-1.16.tar.gz, attempting MIRRORS if available

(From OE-Core rev: 347ee336dcc94e6fa4e4788117013615b90abd70)

(From OE-Core rev: 9e3bf0ce4ebb885ca0ede0e636d80e032c29e744)

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 50804c0663)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Ricardo Ribalda Delgado
71bcd4c0a2 xinetd: Fix systemd service for systemd>237
SystemD 237 implements a stricted PIDfile handling that breaks several
daemons [1].

Change the way we start xinetd, mimicing other distros [2].

Fixes:
root@qt5122:~# journalctl -u xinetd
-- Logs begin at Fri 2018-05-25 14:33:29 UTC, end at Mon 2018-06-11 07:33:08 UTC. --
May 25 14:33:31 qt5122 systemd[1]: Starting Xinetd A Powerful Replacement For Inetd...
May 25 14:33:31 qt5122 systemd[1]: xinetd.service: Permission denied while opening PID file or unsafe symlink chain: /var/run/xinetd.pid
Jun 11 07:27:24 qt5122 systemd[1]: xinetd.service: Start operation timed out. Terminating.
Jun 11 07:27:24 qt5122 systemd[1]: xinetd.service: Failed with result 'timeout'.
Jun 11 07:27:24 qt5122 systemd[1]: Failed to start Xinetd A Powerful Replacement For Inetd.
Jun 11 07:31:38 qt5122 systemd[1]: Starting Xinetd A Powerful Replacement For Inetd...
Jun 11 07:31:38 qt5122 systemd[1]: xinetd.service: Permission denied while opening PID file or unsafe symlink chain: /var/run/xinetd.pid
Jun 11 07:33:08 qt5122 systemd[1]: xinetd.service: Start operation timed out. Terminating.
Jun 11 07:33:08 qt5122 systemd[1]: xinetd.service: Failed with result 'timeout'.
Jun 11 07:33:08 qt5122 systemd[1]: Failed to start Xinetd A Powerful Replacement For Inetd.

[1]: https://github.com/systemd/systemd/issues/8085
[2]: e490406367

(From OE-Core rev: eea25f03e4c46cfe0d05df46f8f50e1389179c80)

(From OE-Core rev: 23dda7c814eb65ac95695982173149142e53fa52)

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e4b365eb76)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Zhixiong Chi
869d3586b0 glibc: fix CVE-2017-18269 and CVE-2018-11236
Backport two CVE patches from the upstream
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=summary
commit 5460617d1567657621107d895ee2dd83bc1f88f2
commit cd66c0e584c6d692bc8347b5e72723d02b8a8ada

(From OE-Core rev: 398ac946745bbfad55deb382aeafec0be3298819)

(From OE-Core rev: 39b480b95c7123cd06b171782c610231d274313a)

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>
(cherry picked from commit d2efd1f20e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Andre McCurdy
7ff0775d27 cpio: fix CVE-2016-2037
"The cpio_safer_name_suffix function in util.c in cpio 2.11 allows
remote attackers to cause a denial of service (out-of-bounds write)
via a crafted cpio file."

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

Note that there appear to be two versions of this fix. The original
patch posted to the bug-cpio mailing list [1] is used by Debian [2],
but apparently causes regression [3]. The patch accepted to the
upstream git repo [4] seems to be the most complete fix.

  [1] https://lists.gnu.org/archive/html/bug-cpio/2016-01/msg00005.html
  [2] https://security-tracker.debian.org/tracker/CVE-2016-2037
  [3] https://www.mail-archive.com/bug-cpio@gnu.org/msg00584.html
  [4] http://git.savannah.gnu.org/cgit/cpio.git/commit/?id=d36ec5f4e93130efb24fb9678aafd88e8070095b

(From OE-Core rev: f170288ac706126e69a504a14d564b2e5c3513e4)

(From OE-Core rev: 5f9d19c53c7704bb8d14f3f7dc36fe54fa501e67)

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>
(cherry picked from commit 31a87d4d1d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Andre McCurdy
80c4c6eabd cpio: rely on texinfo.bbclass for texinfo-native dependency
(From OE-Core rev: 7dad119dd0ee82b14a82b2a0b5a89f790e3bc007)

(From OE-Core rev: a716b58a098233ceb9c2403dda428e2b0eded9a9)

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>
(cherry picked from commit a0a395a8c6)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Andre McCurdy
7e6d2d8831 cpio: move contents of cpio_v2.inc into the cpio recipe
Merge contents of cpio_v2.inc into the only recipe which uses it.

(From OE-Core rev: 162ff3871779d646dadc7e7287f4667641d6e612)

(From OE-Core rev: f3e929b6d4304c36264e70a3358ffabf1e1e4e2a)

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>
(cherry picked from commit b177ee9244)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Nicola Lunghi
c456332d5c Add license file EPL-2.0
it is from:

https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt

And add 'EPL-2.0' to SRC_DISTRIBUTE_LICENSES.

(From OE-Core rev: f045b3d2c62c70a87277596d20bdb8830faa2963)

(From OE-Core rev: 04921e411328006b3b33f49197201745d53d2b0c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 72f2b9d6c7)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Hong Liu
9a09626430 wpa-supplicant: fix the bug for PATCHTOOL = "patch"
When switch PATCHTOOL to patch, applying 'key-replay-cve-multiple.patch' failed:

checking file src/ap/ieee802_11.c
checking file src/ap/wpa_auth.c
checking file src/ap/wpa_auth.h
checking file src/ap/wpa_auth_ft.c
checking file src/ap/wpa_auth_i.h
checking file src/common/wpa_common.h
checking file src/rsn_supp/wpa.c
checking file src/rsn_supp/wpa_i.h
checking file src/rsn_supp/wpa.c
Hunk #1 FAILED at 709.
Hunk #2 FAILED at 757.
Hunk #3 succeeded at 840 (offset -12 lines).
Hunk #4 FAILED at 868.
Hunk #5 FAILED at 900.
Hunk #6 FAILED at 924.
Hunk #7 succeeded at 1536 (offset -38 lines).
Hunk #8 FAILED at 2386.
Hunk #9 FAILED at 2920.
Hunk #10 succeeded at 2940 (offset -46 lines).
Hunk #11 FAILED at 2998.
8 out of 11 hunks FAILED
checking file src/rsn_supp/wpa_i.h
Hunk #1 FAILED at 32.
1 out of 1 hunk FAILED
checking file src/common/wpa_common.h
Hunk #1 succeeded at 215 with fuzz 1.
checking file src/rsn_supp/wpa.c
checking file src/rsn_supp/wpa_i.h
checking file src/ap/wpa_auth.c
Hunk #1 succeeded at 1898 (offset -3 lines).
Hunk #2 succeeded at 2470 (offset -3 lines).
checking file src/rsn_supp/tdls.c
checking file wpa_supplicant/wnm_sta.c
checking file src/rsn_supp/wpa.c
Hunk #1 succeeded at 2378 (offset -62 lines).
checking file src/rsn_supp/wpa_ft.c
checking file src/rsn_supp/wpa_i.h
Hunk #1 succeeded at 123 (offset -5 lines).

So split the wpa-supplicant/key-replay-cve-multiple to 8 patches.

(From OE-Core rev: 4e9bc513c22b9a52c48588ef276e2ab7f7781526)

(From OE-Core rev: df1b1402733b2f6070badc2cace866030b11241d)

Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 61e587b32d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Changqing Li
c029685b18 nettle: do the multilib_header magic for nettle-stdint.h and version.h
add multilib support for this receipe, or it will conflicts in mutlilib setting

(From OE-Core rev: ea618e061fa190e4ae647da6466d074b49940395)

(From OE-Core rev: 5a77f191a451c8592be605020597253b37cea1e9)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c8a1e372f3)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Ross Burton
d62fbd6281 attr/acl: disable make clean
These packages use hand-grown makefiles which don't handle cleans as they can
invoke /usr/bin/gmake directly which may not exist.  Until new upstream releases
are made (which have ported to automake) set CLEANBROKEN to work around this.

[ YOCTO #12775 ]

(From OE-Core rev: eb924bc684f92fc2d806715872667f241e54b365)

(From OE-Core rev: 1ff55b8810ec2ed61dc6b7c73464a97d7088839d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bd0d7c7ed5)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Chen Qi
56f615a526 sysklogd: fix typo in RCONFLICTS
It should be RCONFLICTS_${PN} instead of RCONFLICTS_${PN}-syslog.
There's no ${PN}-syslog package.

(From OE-Core rev: 840d04182bc71ae3f6f562f668b9900c5625e1aa)

(From OE-Core rev: 356c5c2ea005b5ee1723a1b3e2826fdd3007db5a)

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>
(cherry picked from commit ae49d379b7)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
S. Lockwood-Childs
86835a90ef sqlite3: consistent set of features for nativesdk
Enable use of pread() and enable column metadata API for nativesdk builds.
This brings nativesdk in line with target and native builds.

(From OE-Core rev: 7c8b85e1c3d852975cd5961a297aa939bf4c7fe7)

(From OE-Core rev: b476119fb72511fb384600db659c73c9bd6486e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 086610faf0)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
S. Lockwood-Childs
80b6843e73 coreutils: fix nativesdk install failure
The change "fix hostname conflict with other packages" moved the
hostname util to the list of base_bindir_progs, so do_install_append()
now expects hostname to have been built.

coreutils do_install_append() is shared between target and nativesdk
builds (though not used by native build, see comment) so hostname should
be enabled to build on both of them.

(From OE-Core rev: 57f1f5708306a6121b1172c5163c6566d5bcb89c)

(From OE-Core rev: c936af150459873fe9d135b7d5c2c0d0d9e7745f)

Signed-off-by: S. Lockwood-Childs <sjl@vctlabs.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5f3a3d4063)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Khem Raj
48e24c2edd ovmf: Fix build with gcc8
(From OE-Core rev: 278b00ddccb274150ed85e48e984675b40fc9aaa)

(From OE-Core rev: 2e4a05879f56e96bcdc0770d3fe27abc8b9af35e)

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>
2018-07-02 11:41:26 +01:00
Richard Purdie
19e2eb5079 yocto-uninative: Update to version 2.1
This fixes issues with fontforge-native.

(From OE-Core rev: cec85a6fcadc24fd266fa34631cb095e0a773c1a)

(From OE-Core rev: 57ecdffd14b671e09ec90a0d0ff4bba4efec43c0)

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-07-02 11:41:26 +01:00
Bruce Ashfield
3238a7bdd6 linux-yocto/4.14/4.15: fix gcc8 mips compilation issues
Making the following commit available to fix mips gcc8 build issues:

   commit e25dbfe95302eeaa1a03a828d05c09479574488a
   Author: Kevin Hao <kexin.hao@windriver.com>
   Date:   Mon Jun 11 18:17:54 2018 +0800

       MIPS: Use '+=" instead of '=' to avoid the CFLAGS override

       We used the CFLAGS_xxx to workaround the gcc 8 build warnings
       for some specific file. But CFLAGS_xxx is also used with '=' in
       other places of this Makefile. This override the gcc 8 workaround,
       so replace all the '=' with '+=" to fix this issue.

       Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
       Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

(From OE-Core rev: 8ab5b439ea82ac775494a0ce7a6f3615b61c94be)

(From OE-Core rev: fca73646ccfe7af4d65a7f13b5c7c56063579d3f)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Bruce Ashfield
df07b9f7a4 linux-yocto/4.15: crypto: aes-generic - fix aes-generic regression on powerpc
Integrating the following upstream commit to fix gcc regression:

    crypto: aes-generic - fix aes-generic regression on powerpc

    commit 6e36719fbe90213fbba9f50093fa2d4d69b0e93c upstream

    My last bugfix added -Os on the command line, which unfortunately
    caused  a build regression on powerpc in some configurations.

    I've done some more analysis of the original problem and found
    slightly different workaround that avoids this regression and also
    results in better performance on gcc-7.0: -fcode-hoisting is an
    optimization step that got added in gcc-7 and that for all gcc-7 versions causes
    worse performance.

    This disables -fcode-hoisting on all compilers that understand the
    option. For gcc-7.1 and 7.2 I found the same performance as my previous
    patch (using -Os), in gcc-7.0 it was even better. On gcc-8 I could see
    no change in performance from this patch. In theory, code hoisting
    should not be able make things better for the AES cipher, so leaving it
    disabled for gcc-8 only serves to simplify the Makefile
    change.

    Reported-by: kbuild test robot <fengguang.wu@intel.com>
    Link: https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg30418.html
    Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83356
    Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83651
    Fixes: 148b974deea9 ("crypto: aes-generic - build with -Os on gcc-7+")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(From OE-Core rev: 69e2b2ce2f499058d48a3b35febc757247e9df69)

(From OE-Core rev: 6c6b822a57565564ba7a9bd464322b0ee6bd0764)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:26 +01:00
Bruce Ashfield
cdf8402165 linux-yocto/4.14: update to v4.14.48
Updating to the latest korg -stable for v4.14, which comprises the following
commits:

   2c6025ebc7fd Linux 4.14.48
   1dd9566d9542 powerpc/mm/slice: Fix hugepage allocation at hint address on 8xx
   399e039634a4 powerpc/mm/slice: Enhance for supporting PPC32
   b8b23e8926b3 powerpc/mm/slice: create header files dedicated to slices
   e14db4feb035 powerpc/mm/slice: Remove intermediate bitmap copy
   c95c5f419e57 drm/i915: Disable LVDS on Radiant P845
   72571f26757e drm/i915/lvds: Move acpi lid notification registration to registration phase
   ffedc7ade784 drm/psr: Fix missed entry in PSR setup time table.
   5890358c60e5 intel_th: Use correct device when freeing buffers
   792be048cf9c Revert "rt2800: use TXOP_BACKOFF for probe frames"
   a7027b7d698e mm/huge_memory.c: __split_huge_page() use atomic ClearPageDirty()
   4a1b66bcec03 IB/core: Fix error code for invalid GID entry
   bdf1daba5f62 hwtracing: stm: fix build error on some arches
   1f8c4ed2dba5 stm class: Use vmalloc for the master map
   a70f19b29560 scsi: scsi_transport_srp: Fix shost to rport translation
   8a6576219da8 MIPS: prctl: Disallow FRE without FR with PR_SET_FP_MODE requests
   f7a36d7ac838 MIPS: ptrace: Fix PTRACE_PEEKUSR requests for 64-bit FGRs
   ed5bd13bec35 MIPS: lantiq: gphy: Drop reboot/remove reset asserts
   6d67a723ef37 iio: adc: select buffer for at91-sama5d2_adc
   838f25e3d9f2 iio:kfifo_buf: check for uint overflow
   30ab9366f763 iio:buffer: make length types match kfifo types
   d30819abd1c4 iio: ad7793: implement IIO_CHAN_INFO_SAMP_FREQ
   a6f81fcb2c39 tcp: avoid integer overflows in tcp_rcv_space_adjust()
   96b086a7bfe5 kbuild: clang: disable unused variable warnings only when constant
   9b6eda5797b1 platform/chrome: cros_ec_lpc: remove redundant pointer request
   a81920c73eb0 ASoC: Intel: sst: remove redundant variable dma_dev_name
   bcc9c6f03201 rtlwifi: rtl8192cu: Remove variable self-assignment in rf.c
   8524af02d132 drm/amd/powerplay: Fix enum mismatch
   074e30a3fc09 dma-buf: remove redundant initialization of sg_table
   5a92c6e3e2f3 drm/i915: Always sanity check engine state upon idling
   151b144bc602 kbuild: clang: remove crufty HOSTCFLAGS
   bc342bc02954 cfg80211: further limit wiphy names to 64 bytes
   9808c97d3cb4 selinux: KASAN: slab-out-of-bounds in xattr_getsecurity
   c6a95f37d3a0 tracing: Make the snapshot trigger work with instances
   8441a0014a29 tracing: Fix crash when freeing instances with event triggers
   2be683020be4 Input: elan_i2c_smbus - fix corrupted stack
   9a85abc79483 Input: synaptics - add Lenovo 80 series ids to SMBus
   9c707c93e179 Input: synaptics - add Intertouch support on X1 Carbon 6th and X280
   af504c5a88b3 Input: synaptics - Lenovo Thinkpad X1 Carbon G5 (2017) with Elantech trackpoints should use RMI
   88859f6cc5c4 Input: synaptics - Lenovo Carbon X1 Gen5 (2017) devices should use RMI
   d1db300b8ffc xfs: detect agfl count corruption and reset agfl
   d9a59eac3fd6 xfs: convert XFS_AGFL_SIZE to a helper function
   54978daa9dc5 PCI: hv: Fix 2 hang issues in hv_compose_msi_msg()
   085fc1967b56 Revert "pinctrl: msm: Use dynamic GPIO numbering"
   4cbe6caa4c6c x86/MCE/AMD: Cache SMCA MISC block addresses
   5df3a1b9f87b x86/mce/AMD: Carve out SMCA get_block_address() code
   6bcf3b066c69 objtool: Fix "noreturn" detection for recursive sibling calls
   806a730c0b0b objtool: Detect RIP-relative switch table references, part 2
   afb5e5c8a125 objtool: Detect RIP-relative switch table references
   2c26d5784e71 objtool: Support GCC 8 switch tables
   1bea53df12c4 objtool: Support GCC 8's cold subfunctions
   b968dd7650c8 mm: fix the NULL mapping case in __isolate_lru_page()
   6a19487d5a93 fix io_destroy()/aio_complete() race
   57a3ca783596 Linux 4.14.47
   3e496be2038a Revert "vti4: Don't override MTU passed on link creation via IFLA_MTU"
   bf4367d790c5 Linux 4.14.46
   48aaff1bcde7 Revert "perf record: Fix crash in pipe mode"
   ec39812d2117 tools: sync up .h files with the repective arch and uapi .h files
   c0f1d9bfd913 perf tools: Add trace/beauty/generated/ into .gitignore
   2c2b15bb0e88 Linux 4.14.45
   cd95b6e70712 drm/vmwgfx: Set dmabuf_size when vmw_dmabuf_init is successful
   829484eb3e00 kdb: make "mdr" command repeat
   39958037723a pinctrl: mcp23s08: spi: Fix regmap debugfs entries
   bd36ea57d6d5 pinctrl: msm: Use dynamic GPIO numbering
   bd1a6e338c1b regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_match()'
   36016bab698b ARM: dts: porter: Fix HDMI output routing
   105479a0278c ARM: dts: imx7d: cl-som-imx7: fix pinctrl_enet
   0b7761ec49e4 i40e: Add delay after EMP reset for firmware to recover
   be5f9b150b64 regmap: Correct comparison in regmap_cached
   253aa8296a5e ARM: dts: at91: tse850: use the correct compatible for the eeprom
   ffc1f3ac180c drm: rcar-du: lvds: Fix LVDS startup on R-Car Gen2
   e5b5d9be211e drm: rcar-du: lvds: Fix LVDS startup on R-Car Gen3
   ce7da8b88f6a netlabel: If PF_INET6, check sk_buff ip header version
   b9cd90c15ea7 selftests/net: fixes psock_fanout eBPF test case
   6ce500756288 perf tests: Fix dwarf unwind for stripped binaries
   dac66c47df6c perf report: Fix memory corruption in --branch-history mode --branch-history
   fb872eb1131d perf tests: Use arch__compare_symbol_names to compare symbols
   da5329644ad6 perf report: Fix wrong jump arrow
   4489f688fc3b perf test: Fix test case inet_pton to accept inlines.
   39478b7590d0 x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified
   4c27990631f1 drm/rockchip: Respect page offset for PRIME mmap calls
   8755c4061ea9 MIPS: Octeon: Fix logging messages with spurious periods after newlines
   f0cf2575cd47 dpaa_eth: fix pause capability advertisement logic
   80300e879f9e pinctrl: sh-pfc: r8a7796: Fix MOD_SEL register pin assignment for SSI pins group
   46d8696c613b rcu: Call touch_nmi_watchdog() while printing stall warnings
   162af93fa251 net: stmmac: call correct function in stmmac_mac_config_rx_queues_routing()
   4a856adf2823 audit: return on memory error to avoid null pointer dereference
   a548ba4de32e PCMCIA / PM: Avoid noirq suspend aborts during suspend-to-idle
   7d5ab9bf4f34 ARM: dts: bcm283x: Fix pin function of JTAG pins
   c10dc67e720b ARM: dts: bcm283x: Fix probing of bcm2835-i2s
   13b520688d2c power: supply: ltc2941-battery-gauge: Fix temperature units
   72662ff1cf85 sh_eth: fix TSU init on SH7734/R8A7740
   83e698e4684a ixgbe: prevent ptp_rx_hang from running when in FILTER_ALL mode
   504583768092 udf: Provide saner default for invalid uid / gid
   cb808972d770 PCI: Add function 1 DMA alias quirk for Marvell 88SE9220
   5197a9786fee dpaa_eth: fix SG mapping
   602234ea4466 cpufreq: Reorder cpufreq_online() error code path
   8a6be5403774 net: stmmac: ensure that the MSS desc is the last desc to set the own bit
   a3d4c34cdea9 net: stmmac: ensure that the device has released ownership before reading data
   957094fcc06f drm/amdgpu: adjust timeout for ib_ring_tests(v2)
   230d616f58a9 drm/amdgpu: disable GFX ring and disable PQ wptr in hw_fini
   de9054cdc8d0 ARM: dts: dra71-evm: Correct evm_sd regulator max voltage
   ee6f703020ab drm: omapdrm: dss: Move initialization code from component bind to probe
   909474cd384c dmaengine: qcom: bam_dma: get num-channels and num-ees from dt
   7efeaf6d5193 vfio-ccw: fence off transport mode
   fe2fc07d2a31 pinctrl: artpec6: dt: add missing pin group uart5nocts
   72678f7a2922 pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs
   39c655c5edfe hwrng: stm32 - add reset during probe
   259cdaff0e91 watchdog: asm9260_wdt: fix error handling in asm9260_wdt_probe()
   87337cb5663c enic: enable rq before updating rq descriptors
   b3b26307208e dmaengine: rcar-dmac: Check the done lists in rcar_dmac_chan_get_residue()
   e41de468a6f4 dmaengine: pl330: fix a race condition in case of threaded irqs
   a64948842d00 block: null_blk: fix 'Invalid parameters' when loading module
   f0078d2068b2 tools: hv: fix compiler warnings about major/target_fname
   f85634b7b6d0 drm/bridge: sii902x: Retry status read after DDI I2C
   3b64e1cf6b92 phy: qcom-qmp: Fix phy pipe clock gating
   10626a0c2027 ALSA: vmaster: Propagate slave error
   b1ebc21c146b phy: rockchip-emmc: retry calpad busy trimming
   1fadfed83913 x86/devicetree: Fix device IRQ settings in DT
   5e54596b33f6 x86/devicetree: Initialize device tree before using it
   c78e4a47bc4d gfs2: Fix fallocate chunk size
   c1dab7872b32 soc: qcom: wcnss_ctrl: Fix increment in NV upload
   0a3b66b55a95 arm64: dts: qcom: Fix SPI5 config on MSM8996
   b9e852513fca perf/x86/intel: Fix event update for auto-reload
   359769ca6d16 perf/x86/intel: Fix large period handling on Broadwell CPUs
   ecaa7bd342ad efi/arm*: Only register page tables when they exist
   e6e5de32470b cdrom: do not call check_disk_change() inside cdrom_open()
   017f2ee20675 perf/x86/intel: Properly save/restore the PMU state in the NMI handler
   8f8ebc0ba07c hwmon: (pmbus/adm1275) Accept negative page register values
   afcbcb432e84 hwmon: (pmbus/max8688) Accept negative page register values
   127b06ef520d drm/panel: simple: Fix the bus format for the Ontat panel
   ede5dd7822c6 perf/core: Fix perf_output_read_group()
   8ba9b0300c18 max17042: propagate of_node to power supply device
   ed6244e8b280 perf/core: Fix installing cgroup events on CPU
   82e93a83598b f2fs: fix to check extent cache in f2fs_drop_extent_tree
   fc8cf0e7aa37 f2fs: fix to clear CP_TRIMMED_FLAG
   393e472db4c8 f2fs: fix to set KEEP_SIZE bit in f2fs_zero_range
   d71b8b0d37da cxl: Check if PSL data-cache is available before issue flush request
   bf3a501c1dc0 powerpc/powernv/npu: Fix deadlock in mmio_invalidate()
   dc81e7182747 powerpc: Add missing prototype for arch_irq_work_raise()
   903c66e35fb7 drm/meson: Fix an un-handled error path in 'meson_drv_bind_master()'
   b4d7f0dae8c1 drm/meson: Fix some error handling paths in 'meson_drv_bind_master()'
   6eaf0dd1d9d5 ipmi_ssif: Fix kernel panic at msg_done_handler
   b5c7dedc8426 watchdog: aspeed: Fix translation of reset mode to ctrl register
   e2906fc86978 watchdog: dw: RMW the control register
   e2b3fa0ce98f PCI: Restore config space on runtime resume despite being unbound
   12c663e4f8e4 MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
   2a0bc4ad7c63 net/smc: pay attention to MAX_ORDER for CQ entries
   289e6fa33b0b spi: bcm-qspi: fIX some error handling paths
   1fae5e92788c regulator: gpio: Fix some error handling paths in 'gpio_regulator_probe()'
   9fe2e97e6f2d coresight: Use %px to print pcsr instead of %p
   12b29e1cfe6a drm/amdkfd: add missing include of mm.h
   739c8e70889a IB/core: Honor port_num while resolving GID for IB link layer
   7166fb174758 perf stat: Fix core dump when flag T is used
   8cde08971b41 perf top: Fix top.call-graph config option reading
   25b69a422b59 KVM: lapic: stop advertising DIRECTED_EOI when in-kernel IOAPIC is in use
   982f8f14e704 i2c: mv64xxx: Apply errata delay only in standard mode
   8d1b1e7902af cxgb4: Fix queue free path of ULD drivers
   1d1646c408f6 ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c
   c827ed01821d ACPICA: Fix memory leak on unusual memory leak
   bf9b263b3e75 ACPICA: Events: add a return on failure from acpi_hw_register_read
   601ae35b3f19 dt-bindings: add device tree binding for Allwinner H6 main CCU
   35a4f782b521 remoteproc: imx_rproc: Fix an error handling path in 'imx_rproc_probe()'
   4a092479bb4f bcache: quit dc->writeback_thread when BCACHE_DEV_DETACHING is set
   590e13a68177 zorro: Set up z->dev.dma_mask for the DMA API
   5e8f4ec7899b IB/mlx5: Set the default active rate and width to QDR and 4X
   4a8b1c46af58 cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path
   f69b52965de0 iommu/mediatek: Fix protect memory setting
   8c8f0b1f597d drm/vmwgfx: Unpin the screen object backup buffer when not used
   791a1ef7df36 ext4: don't complain about incorrect features when probing
   1891e0bb60b4 arm: dts: socfpga: fix GIC PPI warning
   b5fb65c559ec virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
   a54e06d490a1 watchdog: aspeed: Allow configuring for alternate boot
   cd2399b49de4 ima: Fallback to the builtin hash algorithm
   bc72e4fcc12a ima: Fix Kconfig to select TPM 2.0 CRB interface
   d7b13824c390 cxgb4: Setup FW queues before registering netdev
   aa5a781f59fb ath9k: fix crash in spectral scan
   085ec7d554c1 nvme-pci: disable APST for Samsung NVMe SSD 960 EVO + ASUS PRIME Z370-A
   7e5487b3990d ath10k: Fix kernel panic while using worker (ath10k_sta_rc_update_wk)
   5db7e1bb6a13 watchdog: davinci_wdt: fix error handling in davinci_wdt_probe()
   fc7bcbb94027 net/mlx5: Protect from command bit overflow
   d018d551e7b2 selftests: Print the test we're running to /dev/kmsg
   faace30e6e6a tools/thermal: tmon: fix for segfault
   b652092f8e99 rsi: fix kernel panic observed on 64bit machine
   31dbd9cfcb23 powerpc/perf: Fix kernel address leak via sampling registers
   6a0a9f0ab8a9 powerpc/perf: Prevent kernel address leak to userspace via BHRB buffer
   68a38cedff76 hwmon: (nct6775) Fix writing pwmX_mode
   dbce9e41161c parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
   f37519543460 iwlwifi: mvm: check if mac80211_queue is valid in iwl_mvm_disable_txq
   6a020bb3c620 m68k: set dma and coherent masks for platform FEC ethernets
   80fceaf3f16a intel_th: Use correct method of finding hub
   1366b31d1829 iommu/amd: Take into account that alloc_dev_data() may return NULL
   6bc2bf6023dd ath10k: advertize beacon_int_min_gcd
   9c222c497ba2 ieee802154: ca8210: fix uninitialised data read
   c3a2a8782059 powerpc/mpic: Check if cpu_possible() in mpic_physmask()
   fc2de796926b ACPI: acpi_pad: Fix memory leak in power saving threads
   d023498fef35 drivers: macintosh: rack-meter: really fix bogus memsets
   8effa2182d02 xen/acpi: off by one in read_acpi_id()
   637b9b187f4e rxrpc: Don't treat call aborts as conn aborts
   4a9fabcd3440 rxrpc: Fix Tx ring annotation after initial Tx failure
   204bfcda8244 btrfs: qgroup: Fix root item corruption when multiple same source snapshots are created with quota enabled
   de00d5729482 btrfs: fix lockdep splat in btrfs_alloc_subvolume_writers
   92efba91a792 Btrfs: fix copy_items() return value when logging an inode
   d7255626a082 btrfs: tests/qgroup: Fix wrong tree backref level
   27a913cc9177 powerpc/64s: sreset panic if there is no debugger or crash dump handlers
   305f25c1ed53 net: bgmac: Correctly annotate register space
   435290f7a40a net: bgmac: Fix endian access in bgmac_dma_tx_ring_free()
   4a6cd791d6c1 sparc64: Make atomic_xchg() an inline function rather than a macro.
   22f1bde5d1bf fscache: Fix hanging wait on page discarded by writeback
   6d03ff166926 lan78xx: Connect phy early
   80b8f3da4912 KVM: VMX: raise internal error for exception during invalid protected mode state
   fd97bbca67fc x86/mm: Fix bogus warning during EFI bootup, use boot_cpu_has() instead of this_cpu_has() in build_cr3_noflush()
   3aeaeecda057 sched/rt: Fix rq->clock_update_flags < RQCF_ACT_SKIP warning
   be6a5ad51a53 powerpc/64s/idle: Fix restore of AMOR on POWER9 after deep sleep
   839c27f71376 ocfs2/dlm: don't handle migrate lockres if already in shutdown
   9ebe297713af IB/rxe: Fix for oops in rxe_register_device on ppc64le arch
   370b3353f4f8 btrfs: Fix possible softlock on single core machines
   acfd8e886566 Btrfs: fix NULL pointer dereference in log_dir_items
   afef64b10877 Btrfs: bail out on error during replay_dir_deletes
   5ade3c9618f6 mm: thp: fix potential clearing to referenced flag in page_idle_clear_pte_refs_one()
   8d700626fb57 mm: fix races between address_space dereference and free in page_evicatable
   763111d9f337 mm/ksm: fix interaction with THP
   378a1e49f9d1 ibmvnic: Zero used TX descriptor counter on reset
   d04e5e72dfe9 dp83640: Ensure against premature access to PHY registers after reset
   4be06bc0916d perf clang: Add support for recent clang versions
   ee7c28b280b8 perf tools: Fix perf builds with clang support
   6689a4c7b9ed powerpc/fscr: Enable interrupts earlier before calling get_user()
   96fdc64d8eda cpufreq: CPPC: Initialize shared perf capabilities of CPUs
   8bff7ca99fda Force log to disk before reading the AGF during a fstrim
   28143fe3e3e2 sr: get/drop reference to device in revalidate and check_events
   3a0de65acdd9 z3fold: fix memory leak
   2ab7738102ad swap: divide-by-zero when zero length swap file on ssd
   9c9844d9c9d0 fs/proc/proc_sysctl.c: fix potential page fault while unregistering sysctl table
   59bdc587231c x86/mm: Do not forbid _PAGE_RW before init for __ro_after_init
   c1af6891982e x86/pgtable: Don't set huge PUD/PMD on non-leaf entries
   c527ab91f021 Btrfs: fix loss of prealloc extents past i_size after fsync log replay
   f2924e32dcf2 Btrfs: clean up resources during umount after trans is aborted
   1908ca222b36 nvme: don't send keep-alives to the discovery controller
   145b7e06de33 firmware: dmi_scan: Fix UUID length safety check
   d9179b4aa407 sh: fix debug trap failure to process signals before return to user
   4ee9130f6423 net: mvneta: fix enable of all initialized RXQs
   206199412bae vlan: Fix vlan insertion for packets without ethernet header
   34a9a036350f net: Fix untag for vlan packets without ethernet header
   235ca6a0330d qede: Do not drop rx-checksum invalidated packets.
   78c986bf85b7 hv_netvsc: enable multicast if necessary
   28bbb0d963e0 mm/kmemleak.c: wait for scan completion before disabling free
   08e9dbd5184e mm/vmstat.c: fix vmstat_update() preemption BUG
   d2a5d00dcd85 mm/page_owner: fix recursion bug after changing skip entries
   da9ec481d66d mm, slab: memcg_link the SLAB's kmem_cache
   0bbd8e2593ad qede: Fix barrier usage after tx doorbell write.
   38a85f8214e2 builddeb: Fix header package regarding dtc source links
   5b5f4fd97d8f llc: properly handle dev_queue_xmit() return value
   25801736ca48 x86/alternatives: Fixup alternative_call_2
   06956ca1aab3 perf/x86/intel: Fix linear IP of PEBS real_ip on Haswell and later CPUs
   5b3b9ce272a6 net/mlx5: Make eswitch support to depend on switchdev
   07af604f00a5 net: dsa: mt7530: fix module autoloading for OF platform drivers
   77c18f7ea417 bonding: fix the err path for dev hwaddr sync in bond_enslave
   6da5c98d65f0 net: qmi_wwan: add BroadMobi BM806U 2020:2033
   e78be20d1122 lan78xx: Set ASD in MAC_CR when EEE is enabled.
   373304e44fa9 ARM: 8748/1: mm: Define vdso_start, vdso_end as array
   cbecd7187cdf batman-adv: fix packet loss for broadcasted DHCP packets to a server
   110a7c19d9d1 batman-adv: fix multicast-via-unicast transmission with AP isolation
   bbeb1a42dc58 drm/amdkfd: Fix scratch memory with HWS enabled
   629b3a66d5ca selftests: ftrace: Add a testcase for probepoint
   04905c21ad69 selftests: ftrace: Add a testcase for string type with kprobe_event
   f7ed525fcb56 selftests: ftrace: Add probe event argument syntax testcase
   58be6253b003 xfrm: Fix transport mode skb control buffer usage.
   49f4a8c52eeb mm, thp: do not cause memcg oom for thp
   6ca473201d70 mm/mempolicy.c: avoid use uninitialized preferred_node
   5498a2b5795f drm/ast: Fixed 1280x800 Display Issue
   c269eb77dc22 net: dsa: Fix functional dsa-loop dependency on FIXED_PHY
   bf922554682b net/sched: fix idr leak in the error path of tcf_skbmod_init()
   91314c273170 net/sched: fix idr leak in the error path of __tcf_ipt_init()
   01a80839635d net/sched: fix idr leak in the error path of tcp_pedit_init()
   97689fea3c80 net/sched: fix idr leak in the error path of tcf_act_police_init()
   154040a5a869 net/sched: fix idr leak in the error path of tcf_simp_init()
   29e36c3099fc net/sched: fix idr leak on the error path of tcf_bpf_init()
   f8d93c59c78c RDMA/qedr: Fix QP state initialization race
   8ed753eee9bd RDMA/qedr: Fix rc initialization on CNQ allocation failure
   90b87707f0f7 RDMA/qedr: fix QP's ack timeout configuration
   7245e2d1790b RDMA/ucma: Correct option size check using optlen
   405544d5f864 kbuild: make scripts/adjust_autoksyms.sh robust against timestamp races
   0839b0ce6eb6 brcmfmac: Fix check for ISO3166 code
   4ff78587dea6 perf/cgroup: Fix child event counting bug
   92ab37923634 drm/tegra: Shutdown on driver unbind
   3a297d091edb iwlwifi: mvm: fix array out of bounds reference
   7867e6d82fc9 iwlwifi: mvm: make sure internal station has a valid id
   1001e8ec25db iwlwifi: mvm: clear tx queue id when unreserving aggregation queue
   4eaa2618051a iwlwifi: mvm: Increase session protection time after CS
   b57f0fe6e38b vti6: Fix dev->max_mtu setting
   5815901c29c2 vti4: Don't override MTU passed on link creation via IFLA_MTU
   34b6ba622ac4 ip_tunnel: Clamp MTU to bounds on new link
   e675b292c282 vti4: Don't count header length twice on tunnel setup
   87e07eff2772 batman-adv: Fix skbuff rcsum on packet reroute
   f31f64b2d253 net/sched: fix NULL dereference in the error path of tcf_sample_init()
   6b4a3d4e63f1 batman-adv: fix header size check in batadv_dbg_arp()
   99ba9a972870 vlan: Fix out of order vlan headers with reorder header off
   01a68a265ef5 net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off
   000fe789aa76 iwlwifi: mvm: fix error checking for multi/broadcast sta
   ac2b8f5e361f iwlwifi: mvm: Correctly set IGTK for AP
   85e5ae55652e iwlwifi: mvm: set the correct tid when we flush the MCAST sta
   404cbeb36ef7 xfrm: fix rcu_read_unlock usage in xfrm_local_error
   942138f356aa drm/nouveau/bl: fix backlight regression
   872398068503 drm/imx: move arming of the vblank event to atomic_flush
   418c85ea458a gpu: ipu-v3: prg: avoid possible array underflow
   05c401183c2f KVM: arm/arm64: vgic: Add missing irq_lock to vgic_mmio_read_pending
   6ef5b2e5241a sunvnet: does not support GSO for sctp
   8387fbac8e18 ipv4: lock mtu in fnhe when received PMTU < net.ipv4.route.min_pmtu
   7c84e5e9c62c workqueue: use put_device() instead of kfree()
   845c2de95786 bnxt_en: Check valid VNIC ID in bnxt_hwrm_vnic_set_tpa().
   27eebf0800cf can: m_can: select pinctrl state in each suspend/resume function
   27fe367cdde0 can: m_can: change comparison to bitshift when dealing with a mask
   533f5f847dfd netfilter: ebtables: fix erroneous reject of last rule
   2299285fb181 dmaengine: mv_xor_v2: Fix clock resource by adding a register clock
   e2d9442dfe84 lib/test_kmod.c: fix limit check on number of test devices created
   21ccc62ec725 selftests/vm/run_vmtests: adjust hugetlb size according to nr_cpus
   bad682e26d6a arm64: Relax ARM_SMCCC_ARCH_WORKAROUND_1 discovery
   341029c2024b ARM: davinci: fix the GPIO lookup for omapl138-hawk
   b7f1129a2c77 hv_netvsc: fix locking during VF setup
   b37bc05f44c6 hv_netvsc: fix locking for rx_mode
   9241c4f47205 hv_netvsc: fix filter flags
   e7f2b054916f xen: xenbus: use put_device() instead of kfree()
   9238d1fa3ee6 xen-blkfront: move negotiate_mq to cover all cases of new VBDs
   b2709f786741 cxgb4: do not set needs_free_netdev for mgmt dev's
   ba5b9b64e883 IB/core: Fix possible crash to access NULL netdev
   7ae100c41393 net: smsc911x: Fix unload crash when link is up
   a2b2d6ae5a3f net: qcom/emac: Use proper free methods during TX
   c6ce72d59cab qed: Free RoCE ILT Memory on rmmod qedr
   7538ab34136d fsl/fman: avoid sleeping in atomic context while adding an address
   ccf92117d49d fbdev: Fixing arbitrary kernel leak in case FBIOGETCMAP_SPARC in sbusfb_ioctl_helper().
   175e365a6662 IB/mlx5: Fix an error code in __mlx5_ib_modify_qp()
   5759427a0ca8 IB/mlx4: Include GID type when deleting GIDs from HW table under RoCE
   9636bbd409ba IB/mlx4: Fix corruption of RoCEv2 IPv4 GIDs
   7b10604ddf51 RDMA/qedr: Fix iWARP write and send with immediate
   40fe662649be RDMA/qedr: Fix kernel panic when running fio over NFSoRDMA
   87bcb00aa934 ia64/err-inject: Use get_user_pages_fast()
   d98ba4f4567d e1000e: allocate ring descriptors with dma_zalloc_coherent
   d1355ae4c345 e1000e: Fix check_for_link return value with autoneg off
   f766148e47d7 perf record: Fix crash in pipe mode
   8997115bf791 ARM: dts: rockchip: Add missing #sound-dai-cells on rk3288
   a0cc3c18d34c hv_netvsc: propagate rx filters to VF
   ed85935eeafb hv_netvsc: filter multicast/broadcast
   c039c53d1952 hv_netvsc: use napi_schedule_irqoff
   5f8156fd34cf batman-adv: Fix multicast packet loss with a single WANT_ALL_IPV4/6 flag
   73ecd80bca2b watchdog: sbsa: use 32-bit read for WCV
   49995a2931bb watchdog: f71808e_wdt: Fix magic close handling
   266675ab52db rds: Incorrect reference counting in TCP socket creation
   2b6e7f2ff81a iwlwifi: mvm: Correctly set the tid for mcast queue
   3f2eb4ded1ec iwlwifi: mvm: Direct multicast frames to the correct station
   ef3dfb138159 iwlwifi: mvm: fix "failed to remove key" message
   3a0bbca21ca5 iwlwifi: avoid collecting firmware dump if not loaded
   233d80617248 iwlwifi: mvm: fix assert 0x2B00 on older FWs
   6f970847f0e9 iwlwifi: mvm: Fix channel switch for count 0 and 1
   d6bcdf0b14d8 iwlwifi: mvm: fix TX of CCMP 256
   d9ed3aed6d83 net: ethtool: don't ignore return from driver get_fecparam method
   f03cd5862f55 selftests/powerpc: Skip the subpage_prot tests if the syscall is unavailable
   2b103dee283f nvme: pci: pass max vectors as num_possible_cpus() to pci_alloc_irq_vectors
   d68e66060488 nvme-pci: Fix EEH failure on ppc
   3c84b5aaf7a5 block: display the correct diskname for bio
   07d3fb191b5a ceph: fix potential memory leak in init_caches()
   010f5ccbf4c4 Btrfs: fix log replay failure after linking special file and fsync
   9925eea3225e Btrfs: send, fix issuing write op when processing hole in no data mode
   b114296692b0 btrfs: use kvzalloc to allocate btrfs_fs_info
   acb162b9cdb6 drm/sun4i: Fix dclk_set_phase
   cd2dee1ea6d5 arm64: dts: rockchip: Fix rk3399-gru-* s2r (pinctrl hogs, wifi reset)
   5877f41cf8c8 xfrm: Fix ESN sequence number handling for IPsec GSO packets.
   30310d407715 drm/amd/amdgpu: Correct VRAM width for APUs with GMC9
   5b71573794b0 xen/pirq: fix error path cleanup when binding MSIs
   62ee80d3b45b RDMA/bnxt_re: Fix the ib_reg failure cleanup
   2bce0d98b9d9 RDMA/bnxt_re: Fix incorrect DB offset calculation
   466199b440d9 RDMA/bnxt_re: Unconditionly fence non wire memory operations
   b73bc820c4d1 IB/mlx: Set slid to zero in Ethernet completion struct
   2a71d94e4f6b ipvs: remove IPS_NAT_MASK check to fix passive FTP
   738310e1dbc9 ARC: setup cpu possible mask according to possible-cpus dts property
   f7f78191c910 ARC: mcip: update MCIP debug mask when the new cpu came online
   50de7f4347cf ARC: mcip: halt GFRC counter when ARC cores halt
   e44fe4d2a81b spectrum: Reference count VLAN entries
   5a8392f2dc13 mlxsw: spectrum: Treat IPv6 unregistered multicast as broadcast
   47a8c89258e5 mlxsw: core: Fix flex keys scratchpad offset conflict
   953a64ca3353 net/smc: use link_id of server in confirm link reply
   e0a5a0f4749f nvmet: fix PSDT field check in command format
   c6885fb45d4e net/tcp/illinois: replace broken algorithm reference link
   bb19a6a9b598 gianfar: Fix Rx byte accounting for ndev stats
   10c7390ee340 clocksource/drivers/mips-gic-timer: Use correct shift count to extract data
   f97c2bf56bb7 powerpc/boot: Fix random libfdt related build errors
   9bbedb9742f3 ARM: dts: bcm283x: Fix unit address of local_intc
   c43ff936255b ARM: dts: NSP: Fix amount of RAM on BCM958625HR
   615bf75c4690 nbd: fix return value in error handling path
   d2e2e20bbdd3 sit: fix IFLA_MTU ignored on NEWLINK
   2b0fbc2fcd2f ip6_tunnel: fix IFLA_MTU ignored on NEWLINK
   29764acd50d3 ip_gre: fix IFLA_MTU ignored on NEWLINK
   f07b6505f474 bcache: fix kcrashes with fio in RAID5 backend dev
   421c15e803de dmaengine: rcar-dmac: fix max_chunk_size for R-Car Gen3
   3c08f8140a9a virtio-gpu: fix ioctl and expose the fixed status to userspace.
   8b156a0a49c9 r8152: fix tx packets accounting
   9c3e4e41c206 selftests/futex: Fix line continuation in Makefile
   784858e73805 qrtr: add MODULE_ALIAS macro to smd
   0129ee813ef7 ARM: orion5x: Revert commit 4904dbda41c8.
   3ecb681ccf6b xen/pvcalls: fix null pointer dereference on map->sock
   6c88c93898ca ceph: fix dentry leak when failing to init debugfs
   e080e814deb1 libceph, ceph: avoid memory leak when specifying same option several times
   682def914242 clocksource/drivers/fsl_ftm_timer: Fix error return checking
   44cb7ed6e5e2 nvme-pci: Fix nvme queue cleanup if IRQ setup fails
   588078bb272e batman-adv: Fix netlink dumping of BLA backbones
   f03c64fbdd9b batman-adv: Fix netlink dumping of BLA claims
   f08cabec0696 batman-adv: Ignore invalid batadv_v_gw during netlink send
   8b7e379faf15 batman-adv: Ignore invalid batadv_iv_gw during netlink send
   dd20ff0d079d netfilter: ebtables: convert BUG_ONs to WARN_ONs
   84fc57f472f9 netfilter: ipt_CLUSTERIP: put config instead of freeing it
   596816fabe42 netfilter: ipt_CLUSTERIP: put config struct if we can't increment ct refcount
   ff8c6751ecf3 batman-adv: invalidate checksum on fragment reassembly
   ee7a88fc775e batman-adv: fix packet checksum in receive path
   879a73b10a93 md/raid1: fix NULL pointer dereference
   0a4c60471d13 md: fix a potential deadlock of raid5/raid10 reshape
   2565b271aed0 fs: dcache: Use READ_ONCE when accessing i_dir_seq
   3623c1f37efa fs: dcache: Avoid livelock between d_alloc_parallel and __d_add
   ed49851ce15c ARM: dts: imx6dl: Include correct dtsi file for Engicam i.CoreM6 DualLite/Solo RQS
   5f95541a0db5 kvm: fix warning for CONFIG_HAVE_KVM_EVENTFD builds
   1fe15ab15935 KVM: nVMX: Don't halt vcpu when L1 is injecting events to L2
   ce8bdc7aabf9 macvlan: fix use-after-free in macvlan_common_newlink()
   a383f44e7a34 arm64: fix unwind_frame() for filtered out fn for function graph tracing
   3d82155f8547 mac80211: drop frames with unexpected DS bits from fast-rx to slow path
   dff5da4724bb x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations
   95e8297ab206 locking/xchg/alpha: Fix xchg() and cmpxchg() memory ordering bugs
   4ba4273e7218 x86/intel_rdt: Fix incorrect returned value when creating rdgroup sub-directory in resctrl file system
   09897fcbd42a integrity/security: fix digsig.c build error with header file
   0b9f26e97f2b regulatory: add NUL to request alpha2
   c254a86a333c smsc75xx: fix smsc75xx_set_features()
   cc4a2d71cff3 ARM: OMAP: Fix dmtimer init for omap1
   90c9ae5943c3 nfs: system crashes after NFS4ERR_MOVED recovery
   4b0a3b9a511d arm64: dts: cavium: fix PCI bus dtc warnings
   e47c1bf99a14 PKCS#7: fix direct verification of SignerInfo signature
   a72612a1c39d selftests/bpf/test_maps: exit child process without error in ENOMEM case
   dac5d3a100c6 s390/cio: clear timer when terminating driver I/O
   c5b1b2e2185d s390/cio: fix return code after missing interrupt
   5df337455c5a s390/cio: fix ccw_device_start_timeout API
   aa6eeca7bcd7 powerpc/bpf/jit: Fix 32-bit JIT for seccomp_data access
   e1bb3673ae9d soc: imx: gpc: de-register power domains only if initialized
   e65cd9a20343 seccomp: add a selftest for get_metadata
   32e139dfb684 selftests/memfd: add run_fuse_test.sh to TEST_FILES
   305eb32d45f0 bug.h: work around GCC PR82365 in BUG()
   14488f25339e kernel/relay.c: limit kmalloc size to KMALLOC_MAX_SIZE
   cf15cd63000b virtio_net: fix XDP code path in receive_small()
   0e498db68095 md: raid5: avoid string overflow warning
   ca353544670d locking/xchg/alpha: Add unconditional memory barrier to cmpxchg()
   badacb781dce net/mlx5e: Return error if prio is specified when offloading eswitch vlan push
   2e9f41ace36b ibmvnic: Check for NULL skb's in NAPI poll routine
   775cc792bb08 RDMA/bnxt_re: Fix system crash during load/unload
   c0935f1ef990 RDMA/bnxt_re: Unpin SQ and RQ memory if QP create fails
   c5c0632b9c7b arm64: perf: correct PMUVer probing
   33b3f7b5af5d drm/meson: fix vsync buffer update
   2c6a5cc09b46 drm/exynos: fix comparison to bitshift when dealing with a mask
   3f925cc2d399 drm/exynos: g2d: use monotonic timestamps
   c5db4c271ca5 md raid10: fix NULL deference in handle_write_completed()
   3ed913b61e6a gpu: ipu-v3: prg: fix device node leak in ipu_prg_lookup_by_phandle
   9ccb1d53c6ac gpu: ipu-v3: pre: fix device node leak in ipu_pre_lookup_by_phandle
   8dcb7ddb2c83 mac80211: Fix sending ADDBA response for an ongoing session
   707c81727baa mac80211: Do not disconnect on invalid operating class
   f6bfc88f14cc cfg80211: clear wep keys after disconnection
   a7f126b2e1ad mac80211: fix calling sleeping function in atomic context
   99d4fe95e4f6 mac80211: fix a possible leak of station stats
   f49e3a9acc52 mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4
   020c32a91ee0 xfrm: do not call rcu_read_unlock when afinfo is NULL in xfrm_get_tos
   d0d9330fa2a3 s390/dasd: fix handling of internal requests
   e08f86697835 md: fix md_write_start() deadlock w/o metadata devices
   ca4363bf7cb8 MD: Free bioset when md_run fails
   f146c6e6506f rxrpc: Work around usercopy check
   54881db3251a NFC: llcp: Limit size of SDP URI
   e5ea0a89bf7b iwlwifi: mvm: always init rs with 20mhz bandwidth rates
   6e752ba6436b iwlwifi: mvm: fix IBSS for devices that support station type API
   8c1cc43e745d iwlwifi: mvm: fix security bug in PN checking
   1510627c63b7 ARM: dts: rockchip: Fix DWMMC clocks
   23b738ce746a arm64: dts: rockchip: Fix DWMMC clocks
   357b528e6b70 IB/uverbs: Fix unbalanced unlock on error path for rdma_explicit_destroy
   5b0622bfe637 IB/uverbs: Fix possible oops with duplicate ioctl attributes
   cdd37f48d6a0 IB/uverbs: Fix method merging in uverbs_ioctl_merge
   44ef222ad099 xhci: workaround for AMD Promontory disabled ports wakeup
   94203f213c19 tls: retrun the correct IV in getsockopt
   cec7d77a1db8 ibmvnic: Clean RX pool buffers during device close
   322d7195572d ibmvnic: Free RX socket buffer in case of adapter error
   4431066edd13 ibmvnic: Wait until reset is complete to set carrier on
   ddca5c776fff ARM: OMAP1: clock: Fix debugfs_create_*() usage
   d615dddc6e0c ARM: OMAP2+: Fix sar_base inititalization for HS omaps
   c22e3886fc65 ARM: OMAP3: Fix prm wake interrupt for resume
   7ffe100ce67c ARM: OMAP2+: timer: fix a kmemleak caused in omap_get_timer_dt
   b2f5d98f3300 selftests: memfd: add config fragment for fuse
   b9ddf39dd579 selftests: pstore: Adding config fragment CONFIG_PSTORE_RAM=m
   a666ad4bbcfb selftest/vDSO: fix O=
   198e26a0efef selftests: sync: missing CFLAGS while compiling
   4adc95c5a020 libata: Fix compile warning with ATA_DEBUG enabled
   afe088b034b4 arm64: dts: rockchip: correct ep-gpios for rk3399-sapphire
   fa4cf9010ed6 arm64: dts: rockchip: fix rock64 gmac2io stability issues
   6fc72fd1565b ptr_ring: prevent integer overflow when calculating size
   052eb2d6dc61 ARC: Fix malformed ARC_EMUL_UNALIGNED default
   0f097096b77a mac80211: mesh: fix wrong mesh TTL offset calculation
   49e30752177f MIPS: generic: Fix machine compatible matching
   3084902aa9fd powerpc/64s: Add support for a store forwarding barrier at kernel entry/exit
   b90a6bddc8af powerpc/64s: Fix section mismatch warnings from setup_rfi_flush()
   1618f211f96e powerpc/pseries: Restore default security feature flags on setup
   f092a180128e powerpc: Move default security feature flags
   a28ff26d5e44 powerpc/pseries: Fix clearing of security feature flags
   046e9adae42a powerpc/64s: Wire up cpu_show_spectre_v2()
   6e77feadbfbc powerpc/64s: Wire up cpu_show_spectre_v1()
   7a62b0f64804 powerpc/pseries: Use the security flags in pseries_setup_rfi_flush()
   3bf1695bbb24 powerpc/powernv: Use the security flags in pnv_setup_rfi_flush()
   d71a3e0a2d0a powerpc/64s: Enhance the information in cpu_show_meltdown()
   ae8afdf604d3 powerpc/64s: Move cpu_show_meltdown()
   f2fdeebd8537 powerpc/powernv: Set or clear security feature flags
   9ba774cc0f75 powerpc/pseries: Set or clear security feature flags
   e2ba26dba530 powerpc: Add security feature flags for Spectre/Meltdown
   4c5463a5a374 powerpc/pseries: Add new H_GET_CPU_CHARACTERISTICS flags
   d1cb5ff450d3 powerpc/rfi-flush: Call setup_rfi_flush() after LPM migration
   123f6d5ccaa2 powerpc/rfi-flush: Differentiate enabled and patched flush types
   6af06dcdea08 powerpc/rfi-flush: Always enable fallback flush on pseries
   d744f8457f2f powerpc/rfi-flush: Make it possible to call setup_rfi_flush() again
   5412a9d91d65 powerpc/rfi-flush: Move the logic to avoid a redo into the debugfs code
   bf434b31bad6 powerpc/powernv: Support firmware disable of RFI flush
   dff1a7e6c3ae powerpc/pseries: Support firmware disable of RFI flush
   2245d95d9f7a powerpc/64s: Improve RFI L1-D cache flush fallback
   421e1fadb0b0 x86/kvm: fix LAPIC timer drift when guest uses periodic mode
   b3ce16455c4b kvm: x86: IA32_ARCH_CAPABILITIES is always supported
   e765fd97e0c2 KVM: x86: Update cpuid properly when CR4.OSXAVE or CR4.PKE is changed
   16c463a4ecfa KVM: s390: vsie: fix < 8k check for the itdba
   9c5eee605677 KVM/VMX: Expose SSBD properly to guests
   058dfcf9c24f kernel/sys.c: fix potential Spectre v1 issue
   1da530fe155d kasan: fix memory hotplug during boot
   b052960484fd kasan: free allocated shadow memory on MEM_CANCEL_ONLINE
   9c7821c67a71 mm/kasan: don't vfree() nonexistent vm_area
   afdc490b36b0 ipc/shm: fix shmat() nil address after round-down when remapping
   67dd0bad8189 Revert "ipc/shm: Fix shmat mmap nil-page protection"
   0472f94cef2e idr: fix invalid ptr dereference on item delete
   2a039b93679f sr: pass down correctly sized SCSI sense buffer
   a59bd819576d IB/umem: Use the correct mm during ib_umem_release
   7a5b3b91f858 IB/hfi1: Use after free race condition in send context error path
   df07f2718440 powerpc/64s: Clear PCR on boot
   92169a015bdd arm64: lse: Add early clobbers to some input/output asm operands
   760e4d7e89a5 drm/vmwgfx: Fix 32-bit VMW_PORT_HB_[IN|OUT] macros
   a0f8cbce7b57 xen-swiotlb: fix the check condition for xen_swiotlb_free_coherent
   4182f5a075f1 libata: blacklist Micron 500IT SSD with MU01 firmware
   21712abb8ba2 libata: Blacklist some Sandisk SSDs for NCQ
   f2a3c8bb4d10 mmc: sdhci-iproc: add SDHCI_QUIRK2_HOST_OFF_CARD_ON for cygnus
   4da8f20a992c mmc: sdhci-iproc: fix 32bit writes for TRANSFER_MODE register
   ebedf0b29047 mmc: sdhci-iproc: remove hard coded mmc cap 1.8v
   f440ea85d429 do d_instantiate/unlock_new_inode combinations safely
   ba3fbb7afde9 ALSA: timer: Fix pause event notification
   fbcede36bbfd aio: fix io_destroy(2) vs. lookup_ioctx() race
   b9659ff375cb fs: don't scan the inode cache before SB_BORN is set
   1e5edf32e44d affs_lookup(): close a race with affs_remove_link()
   2871a701329c KVM: Fix spelling mistake: "cop_unsuable" -> "cop_unusable"
   bba75a0ccdb5 MIPS: Fix ptrace(2) PTRACE_PEEKUSR and PTRACE_POKEUSR accesses to o32 FGRs
   769fc447cced MIPS: ptrace: Expose FIR register through FP regset
   368b70857dd7 MIPS: c-r4k: Fix data corruption related to cache coherence
   102b97d6241d Linux 4.14.44
   6b73dfbd3cfc rtc: goldfish: Add missing MODULE_LICENSE
   6f34e436509e rtc: rp5c01: fix possible race condition
   78227b671e0d rtc: tx4939: avoid unintended sign extension on a 24 bit shift
   459aa4904ab2 rtc: m41t80: fix race conditions
   6266010c3895 rtc: rk808: fix possible race condition
   6c1c17116484 rtc: hctosys: Ensure system time doesn't overflow time_t
   731d965a587c rtc: snvs: Fix usage of snvs_rtc_enable
   8293e6238e03 serial: altera: ensure port->regshift is honored consistently
   e10bbc220e1a serial: 8250: Don't service RX FIFO if interrupts are disabled
   1c447ea13703 serial: arc_uart: Fix out-of-bounds access through DT alias
   db69a1a58844 serial: fsl_lpuart: Fix out-of-bounds access through DT alias
   24182ff06635 serial: imx: Fix out-of-bounds access through serial port index
   5f53807e751e serial: mxs-auart: Fix out-of-bounds access through serial port index
   491e61fe3c53 serial: samsung: Fix out-of-bounds access through serial port index
   eb81dd52b425 serial: sh-sci: Fix out-of-bounds access through DT alias
   d1e7f966521d serial: xuartps: Fix out-of-bounds access through DT alias
   604e648e8bf0 media: cx25821: prevent out-of-bounds read on array card
   9b7c44c43946 media: vivid: fix incorrect capabilities for radio
   8cfcd5bbb723 media: vb2: Fix videobuf2 to map correct area
   81173a58638f media: i2c: adv748x: fix HDMI field heights
   93c72937a26b media: v4l: vsp1: Fix display stalls when requesting too many inputs
   d600eadf7d80 media: em28xx: Add Hauppauge SoloHD/DualHD bulk models
   d62c8d80f84f media: lgdt3306a: Fix a double kfree on i2c device remove
   53ba3526baad media: s3c-camif: fix out-of-bounds array access
   5ebcb4612748 media: cx23885: Set subdev host data to clk_freq pointer
   24858b9c030a media: cx23885: Override 888 ImpactVCBe crystal frequency
   1c94830eeea5 media: ov5645: add missing of_node_put() in error path
   cc4b4af51c13 media: Don't let tvp5150_get_vbi() go out of vbi_ram_default array
   07999bccf2e0 media: dmxdev: fix error code for invalid ioctls
   7bc147610d1e clk: samsung: exynos3250: Fix PLL rates
   3fabe01cdf75 clk: samsung: exynos5250: Fix PLL rates
   90e14be44331 clk: samsung: exynos5433: Fix PLL rates
   256499854098 clk: samsung: exynos5260: Fix PLL rates
   8f4eef93e1ab clk: samsung: exynos7: Fix PLL rates
   264530c6ad12 clk: samsung: s3c2410: Fix PLL rates
   573dda18a809 clk: rockchip: Prevent calculating mmc phase if clock rate is zero
   04adc8209a9a clk: tegra: Fix pll_u rate configuration
   99f29b5c1cc4 clk: hisilicon: mark wdt_mux_p[] as const
   2dc1d1a8715e clk: Don't show the incorrect clock phase
   a225a3ba3213 clk: rockchip: Fix wrong parent for SDMMC phase clock for rk3228
   9311d0b6b466 ASoC: samsung: i2s: Ensure the RCLK rate is properly determined
   27cbb1df79c5 ASoC: topology: create TLV data for dapm widgets
   fbeec965b8d1 ASoC: samsung: odroid: Fix 32000 sample rate handling
   b3bbda7bad73 ASoC: rockchip: rk3288-hdmi-analog: Select needed codecs
   98ffb5cf47e4 ASoC: hdmi-codec: Fix module unloading caused kernel crash
   48e835f89769 scsi: lpfc: Fix frequency of Release WQE CQEs
   8fd4131a9fcc scsi: lpfc: Fix soft lockup in lpfc worker thread during LIP testing
   d5d331cdfcb2 scsi: lpfc: Fix issue_lip if link is disabled
   a9bcbce385ed scsi: mvsas: fix wrong endianness of sgpio api
   5e315f31faef scsi: core: Make SCSI Status CONDITION MET equivalent to GOOD
   3de235c7753b scsi: aacraid: Insure command thread is not recursively stopped
   10859964e0e1 scsi: iscsi_tcp: set BDI_CAP_STABLE_WRITES when data digest enabled
   b1a706fdb5a8 scsi: sd: Keep disk read-only when re-reading partition
   2bb6b7decff0 scsi: mpt3sas: Do not mark fw_event workqueue as WQ_MEM_RECLAIM
   fbc801716092 scsi: qedi: Fix kernel crash during port toggle
   dc6cb0cb91d5 scsi: qla4xxx: skip error recovery in case of register disconnect.
   b24fd4cd9491 scsi: aacraid: fix shutdown crash when init fails
   942cb7bd774a scsi: qedi: Fix truncation of CHAP name and secret
   a9eb1e1031a0 scsi: storvsc: Increase cmd_per_lun for higher speed devices
   1ad71103e12e scsi: qla2xxx: Avoid triggering undefined behavior in qla2x00_mbx_completion()
   62d16de3109f scsi: mptfusion: Add bounds check in mptctl_hp_targetinfo()
   0bf213d90bb2 scsi: sym53c8xx_2: iterator underflow in sym_getsync()
   a1ac3da8431a scsi: bnx2fc: Fix check in SCSI completion handler for timed out request
   af9930622461 scsi: ufs: Enable quirk to ignore sending WRITE_SAME command
   b0ef004e86cf scsi: qla2xxx: Fix memory corruption during hba reset test
   59ad4bb71714 scsi: mpt3sas: fix an out of bound write
   2b2a92910c19 crypto: inside-secure - fix the invalidation step during cra_exit
   c787fb6bdac2 crypto: sunxi-ss - Add MODULE_ALIAS to sun4i-ss
   d03a0a61dc82 crypto: inside-secure - fix the extra cache computation
   6df26587d22d crypto: inside-secure - fix the cache_len computation
   a04b30fd74a1 crypto: inside-secure - do not process request if no command was issued
   41b6f0ffb3ac crypto: ccp - don't disable interrupts while setting up debugfs
   223ba92a8059 crypto: atmel-aes - fix the keys zeroing on errors
   173c55493b81 crypto: inside-secure - wait for the request to complete if in the backlog
   43624647a97c staging: lustre: lmv: correctly iput lmo_root
   281bb7920cc0 staging: ks7010: Use constants from ieee80211_eid instead of literal ints.
   d5ae597ed13d staging: rtl8192u: return -ENOMEM on failed allocation of priv->oldaddr
   20b9506df1b4 staging: fsl-dpaa2/eth: Fix incorrect casts
   ff8eb22e5bb8 staging: lustre: fix bug in osc_enter_cache_try
   bf30d26981a8 staging: bcm2835-audio: Release resources on module_exit()
   0fe68f20e09f xhci: Show what USB release number the xHC supports from protocol capablity
   0249054e4bfd Bluetooth: btusb: Add device ID for RTL8822BE
   e4504b80e012 media: em28xx: USB bulk packet size fix
   f5f6bff50f36 media: lgdt3306a: Fix module count mismatch on usb unplug
   f3f3442027b5 usb: gadget: composite: fix incorrect handling of OS desc requests
   9170c1411eca usb: gadget: udc: change comparison to bitshift when dealing with a mask
   b80114337d31 usbip: Correct maximum value of CONFIG_USBIP_VHCI_HC_PORTS
   dd5541c7a60d usb: gadget: ffs: Execute copy_to_user() with USER_DS set
   7f48c9ddca72 usb: gadget: ffs: Let setup() return USB_GADGET_DELAYED_STATUS
   11cb14a19679 usb: dwc2: host: Fix transaction errors in host mode
   51250a9357d8 usb: dwc2: hcd: Fix host channel halt flow
   db81323e6a5d usb: dwc2: Fix interval type issue
   39280c27031b xhci: zero usb device slot_id member when disabling and freeing a xhci slot
   55aaef4bd8a0 usb: dwc3: Makefile: fix link error on randconfig
   834329c4ad4c usb: dwc3: Update DWC_usb31 GTXFIFOSIZ reg fields
   7fb2d2f1b04d usb: dwc3: Add SoftReset PHY synchonization delay
   81ba08e69fe2 ALSA: usb-audio: Add native DSD support for Luxman DA-06
   d711223606e8 Bluetooth: btusb: Add USB ID 7392:a611 for Edimax EW-7611ULB
   89509cdb713f net-usb: add qmi_wwan if on lte modem wistron neweb d18q1
   58249157c6ad net/usb/qmi_wwan.c: Add USB id for lt4120 modem
   ce04fbcdb39a USB: OHCI: Fix NULL dereference in HCDs using HCD_LOCAL_MEM
   e5c8a6d499a1 usb: host: xhci-plat: revert "usb: host: xhci-plat: enable clk in resume timing"
   38ed02d85840 ARM: dts: imx7d-sdb: Fix regulator-usb-otg2-vbus node name
   5788084ba3cd net: usbnet: fix potential deadlock on 32bit hosts
   f7b3f33c79b7 usb: cdc_acm: prevent race at write to acm while system resumes
   ee4ed01d4b5c usb: dwc2: Fix dwc2_hsotg_core_init_disconnected()
   a3fcccd4a7ef usb: gadget: fsl_udc_core: fix ep valid checks
   36d66139a351 usb: gadget: core: Fix use-after-free of usb_request
   aefc5ce2342a usb: dwc3: omap: don't miss events during suspend/resume
   e8f101ec20c0 usb: dwc3: Undo PHY init if soft reset fails
   0cc948e8ddb5 usb: gadget: f_uac2: fix bFirstInterface in composite gadget
   0ff6b2cac941 x86/kexec: Avoid double free_page() upon do_kexec_load() failure
   f119414a8f8d hfsplus: stop workqueue when fill_super() failed
   9f2c35864ad6 cfg80211: limit wiphy names to 128 bytes
   360964411d57 loop: fix LOOP_GET_STATUS lock imbalance
   c18270ac9f84 loop: don't call into filesystem while holding lo_ctl_mutex
   3c017b9fede9 scsi: zfcp: fix infinite iteration on ERP ready list
   d827bea2d18c scsi: sg: allocate with __GFP_ZERO in sg_build_indirect()
   58442874542f scsi: libsas: defer ata device eh commands to libata
   c1a35f5ddf36 s390: use expoline thunks in the BPF JIT
   457b944b61e6 s390: extend expoline to BC instructions
   a206c82f9bc9 s390: move spectre sysfs attribute code
   2a146a9b3240 s390/kernel: use expoline for indirect branches
   f1bd3b99607b s390/ftrace: use expoline for indirect branches
   0d201ff077a8 s390/lib: use expoline for indirect branches
   d7aa3f13e146 s390/crc32-vx: use expoline for indirect branches
   e3ad546e6094 s390: move expoline assembler macros to a header
   9a38169fb602 s390: add assembler macros for CPU alternatives
   131ff238b859 ext2: fix a block leak
   ea5ffcd46716 sparc: vio: use put_device() instead of kfree()
   c98b38c5ede4 hv_netvsc: Fix net device attach on older Windows hosts
   c7da51021c8d hv_netvsc: Ensure correct teardown message sequence order
   c5345b11680f hv_netvsc: Split netvsc_revoke_buf() and netvsc_teardown_gpadl()
   d8c3e04d3913 hv_netvsc: Use Windows version instead of NVSP version on GPAD teardown
   be9c798d0d13 hv_netvsc: common detach logic
   905f85c289d7 hv_netvsc: change GPAD teardown order on older versions
   9c6439c7b168 hv_netvsc: use RCU to fix concurrent rx and queue changes
   1f3ef8a7a3c6 hv_netvsc: disable NAPI before channel close
   f9aab25e3326 hv_netvsc: defer queue selection to VF
   0ac663c5674a hv_netvsc: fix race in napi poll when rescheduling
   99e06589bd5d hv_netvsc: cancel subchannel setup before halting device
   0ed8945b3aa6 hv_netvsc: fix error unwind handling if vmbus_open fails
   4857dca4dd65 hv_netvsc: only wake transmit queue if link is up
   0395570f81fe hv_netvsc: avoid retry on send during shutdown
   36a9609cef4a hv_netvsc: Use the num_online_cpus() for channel limit
   4c5fef778957 hv_netvsc: empty current transmit aggregation if flow blocked
   41f24dbef177 hv_netvsc: preserve hw_features on mtu/channels/ringparam changes
   284a58c02eeb hv_netvsc: netvsc_teardown_gpadl() split
   6296e73e459d hv_netvsc: Set tx_table to equal weight after subchannels open
   ef1c5903cd2a hv_netvsc: Add initialization of tx_table in netvsc_device_add()
   b3a303352e51 hv_netvsc: Rename tx_send_table to tx_table
   5acc4d1e8fe2 hv_netvsc: Rename ind_table to rx_table
   836f8472f1bd hv_netvsc: Fix the real number of queues of non-vRSS cases
   099612827aa3 vmxnet3: use DMA memory barriers where required
   74327eda43d0 vmxnet3: set the DMA mask before the first DMA map operation
   c89d534301a0 tcp: purge write queue in tcp_connect_init()
   edabcd0f12ae sock_diag: fix use-after-free read in __sk_free
   01a658c1b9d4 packet: in packet_snd start writing at link layer allocation
   c02756173e65 net: test tailroom before appending to linear skb
   2cedbdda01fe net/smc: check for missing nlattrs in SMC_PNETID messages
   8ffa5f978394 net: sched: red: avoid hashing NULL child
   53b2dbbee18d net/sched: fix refcnt leak in the error path of tcf_vlan_init()
   5ff45c86e90a net/mlx4_core: Fix error handling in mlx4_init_port_info.
   047df46d6cef net: Fix a bug in removing queues from XPS map
   1dff08485b9e Linux 4.14.43
   92a3c944d6d5 x86/bugs: Rename SSBD_NO to SSB_NO
   e8837f0a000f KVM: SVM: Implement VIRT_SPEC_CTRL support for SSBD
   3f44c1a3c293 x86/speculation, KVM: Implement support for VIRT_SPEC_CTRL/LS_CFG
   71179d5dcbb9 x86/bugs: Rework spec_ctrl base and mask logic
   d13f068b94a1 x86/bugs: Remove x86_spec_ctrl_set()
   987f49474b06 x86/bugs: Expose x86_spec_ctrl_base directly
   6befd3a735e0 x86/bugs: Unify x86_spec_ctrl_{set_guest,restore_host}
   3e6ab4ca1345 x86/speculation: Rework speculative_store_bypass_update()
   8e1c285a050c x86/speculation: Add virtualized speculative store bypass disable support
   72f46c229ac2 x86/bugs, KVM: Extend speculation control for VIRT_SPEC_CTRL
   b213ab46cde4 x86/speculation: Handle HT correctly on AMD
   7f1efb5e74e3 x86/cpufeatures: Add FEATURE_ZEN
   bbc0d1c33566 x86/cpufeatures: Disentangle SSBD enumeration
   8e0836d1413b x86/cpufeatures: Disentangle MSR_SPEC_CTRL enumeration from IBRS
   b1d1984f3898 x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP
   b1a6028c2374 KVM: SVM: Move spec control call after restore of GS
   bd2059282934 x86/cpu: Make alternative_msr_write work for 32-bit code
   5a53a5fefb73 x86/bugs: Fix the parameters alignment and missing void
   f69c4dd36766 x86/bugs: Make cpu_show_common() static
   4fbc01632e77 x86/bugs: Fix __ssb_select_mitigation() return type
   8dc742f930cc Documentation/spec_ctrl: Do some minor cleanups
   43c47eb2a274 proc: Use underscores for SSBD in 'status'
   89ba80e61a39 x86/bugs: Rename _RDS to _SSBD
   0f18f44ce076 x86/speculation: Make "seccomp" the default mode for Speculative Store Bypass
   61dfdc12ff35 seccomp: Move speculation migitation control to arch code
   9939db75cd5b seccomp: Add filter flag to opt-out of SSB mitigation
   d829fcceb8f5 seccomp: Use PR_SPEC_FORCE_DISABLE
   20d036a2e223 prctl: Add force disable speculation
   c024722ffecd x86/bugs: Make boot modes __ro_after_init
   87895ae1e9b2 seccomp: Enable speculation flaw mitigations
   dd88d569eeff proc: Provide details on speculation flaw mitigations
   7d1254a1489c nospec: Allow getting/setting on non-current task
   d8553911627a x86/speculation: Add prctl for Speculative Store Bypass mitigation
   704609d39680 x86/process: Allow runtime control of Speculative Store Bypass
   33f6a06810cb prctl: Add speculation control prctls
   81c3c2b5917a x86/speculation: Create spec-ctrl.h to avoid include hell
   97224b3da698 x86/KVM/VMX: Expose SPEC_CTRL Bit(2) to the guest
   716bfae3b3f4 x86/bugs/AMD: Add support to disable RDS on Fam[15,16,17]h if requested
   fa2f1c65246d x86/bugs: Whitelist allowed SPEC_CTRL MSR values
   128e69909f7c x86/bugs/intel: Set proper CPU features and setup RDS
   65f747a6b108 x86/bugs: Provide boot parameters for the spec_store_bypass_disable mitigation
   832b579e1e83 x86/cpufeatures: Add X86_FEATURE_RDS
   c6dc89dd04e3 x86/bugs: Expose /sys/../spec_store_bypass
   94ae9d262843 x86/bugs, KVM: Support the combination of guest and host IBRS
   7c9b4959cda4 x86/bugs: Read SPEC_CTRL MSR during boot and re-use reserved bits
   3ce1634f6165 x86/bugs: Concentrate bug reporting into a separate function
   69dc73805969 x86/bugs: Concentrate bug detection into a separate function
   8410540f5aaf x86/nospec: Simplify alternative_msr_write()
   671c9a69f426 btrfs: fix reading stale metadata blocks after degraded raid1 mounts
   7ea5cff55c45 btrfs: Fix delalloc inodes invalidation during transaction abort
   0d670384af3c btrfs: Split btrfs_del_delalloc_inode into 2 functions
   1d16f615bb7d btrfs: fix crash when trying to resume balance without the resume flag
   f9b02febeabf btrfs: property: Set incompat flag if lzo/zstd compression is set
   de1f96cc4a30 Btrfs: send, fix invalid access to commit roots due to concurrent snapshotting
   59bbb5ca4d95 Btrfs: fix xattr loss after power failure
   ca477b42aeaa ARM: 8772/1: kprobes: Prohibit kprobes on get_user functions
   bd4aeb75dab5 ARM: 8770/1: kprobes: Prohibit probing on optimized_callback
   14b4cfb5ab54 ARM: 8769/1: kprobes: Fix to use get_kprobe_ctlblk after irq-disabed
   6986750cb57c tick/broadcast: Use for_each_cpu() specially on UP kernels
   a697b90ef09e x86/mm: Drop TS_COMPAT on 64-bit exec() syscall
   5f3ca3928e08 ARM: 8771/1: kprobes: Prohibit kprobes on do_undefinstr
   e5cefe3570a0 efi: Avoid potential crashes, fix the 'struct efi_pci_io_protocol_32' definition for mixed mode
   83a39c0e4adb x86/pkeys: Do not special case protection key 0
   359b8ff3281c x86/pkeys: Override pkey when moving away from PROT_EXEC
   a6565fdd90cb s390: remove indirect branch from do_softirq_own_stack
   ce2e68b3c260 s390/qdio: don't release memory in qdio_setup_irq()
   56130d932232 s390/cpum_sf: ensure sample frequency of perf event attributes is non-zero
   c568bdf37b6e s390/qdio: fix access to uninitialized qdio_q fields
   e2266ea100ea drm/i915/gen9: Add WaClearHIZ_WM_CHICKEN3 for bxt and glk
   fc170bda2283 mm: don't allow deferred pages with NEED_PER_CPU_KM
   572e2385ae35 radix tree: fix multi-order iteration race
   f6c0f020ee5b lib/test_bitmap.c: fix bitmap optimisation tests to report errors correctly
   5b86f020a789 drm: Match sysfs name in link removal to link creation
   094595ce5701 powerpc/powernv: Fix NVRAM sleep in invalid context when crashing
   f4f05f62d3d1 i2c: designware: fix poll-after-enable regression
   f9882808e355 netfilter: nf_socket: Fix out of bounds access in nf_sk_lookup_slow_v{4,6}
   d233f8d5bdd3 netfilter: nf_tables: can't fail after linking rule into active rule list
   321bc88ec098 netfilter: nf_tables: free set name in error path
   bca7faea5410 tee: shm: fix use-after-free via temporarily dropped reference
   9a19a93bddb3 tracing/x86/xen: Remove zero data size trace events trace_xen_mmu_flush_tlb{_all}
   d2dee2253be8 vfio: ccw: fix cleanup if cp_prefetch fails
   92ce74164efa powerpc: Don't preempt_disable() in show_cpuinfo()
   27ea98a4c50c KVM: arm/arm64: VGIC/ITS: protect kvm_read_guest() calls with SRCU lock
   b6f6d8bfe779 KVM: arm/arm64: VGIC/ITS save/restore: protect kvm_read_guest() calls
   b7f0fc1f0615 spi: bcm-qspi: Always read and set BSPI_MAST_N_BOOT_CTRL
   d18c3d2304de spi: bcm-qspi: Avoid setting MSPI_CDRAM_PCS for spi-nor master
   45804b0e3cb3 spi: pxa2xx: Allow 64-bit DMA
   50c0e85887bf ALSA: control: fix a redundant-copy issue
   6283fcc9b93a ALSA: hda: Add Lenovo C50 All in one to the power_save blacklist
   13fe9058ed09 ALSA: usb: mixer: volume quirk for CM102-A+/102S+
   e842726eccf3 usbip: usbip_host: fix bad unlock balance during stub_probe()
   ec0c93951ecb usbip: usbip_host: fix NULL-ptr deref and use-after-free errors
   5cd4dd77782e usbip: usbip_host: run rebind from exit when module is removed
   cf3bcc3231ad usbip: usbip_host: delete device from busid_table after rebind
   a3d5f6ecba99 usbip: usbip_host: refine probe and disconnect debug msgs to be useful
   d88700f79448 Linux 4.14.42
   5c9a9508de30 proc: do not access cmdline nor environ from file-backed areas
   7a4eda600d77 l2tp: revert "l2tp: fix missing print session offset info"
   036bbd584b0b xfrm: fix xfrm_do_migrate() with AEAD e.g(AES-GCM)
   b0e5b437ecfd btrfs: Take trans lock before access running trans in check_delayed_ref
   d2d85f8d2249 xfrm: Use __skb_queue_tail in xfrm_trans_queue
   73cda9030380 scsi: aacraid: Correct hba_send to include iu_type
   59afc1841b70 udp: fix SO_BINDTODEVICE
   8151fe6861a0 nsh: fix infinite loop
   66fefcabae5e net/mlx5e: Allow offloading ipv4 header re-write for icmp
   cb9e5a0817f4 ipv6: fix uninit-value in ip6_multipath_l3_keys()
   19bf346ca705 hv_netvsc: set master device
   6ecec17f71f5 net/mlx5: Avoid cleaning flow steering table twice during error flow
   eac1ab609be0 net/mlx5e: TX, Use correct counter in dma_map error flow
   b047794cc36c net: sched: fix error path in tcf_proto_create() when modules are not configured
   f6294114ade4 bonding: send learning packets for vlans on slave
   2eca993ddc83 bonding: do not allow rlb updates to invalid mac
   f754c9c88045 tg3: Fix vunmap() BUG_ON() triggered from tg3_free_consistent().
   413d2627692d tcp: ignore Fast Open on repair mode
   3cfe95a0eb02 tcp_bbr: fix to zero idle_restart only upon S/ACKed data
   bf2f3bae31a2 sctp: use the old asoc when making the cookie-ack chunk in dupcook_d
   4dce9afc2d35 sctp: remove sctp_chunk_put from fail_mark err path in sctp_ulpevent_make_rcvmsg
   d3d4d69d9bbd sctp: handle two v4 addrs comparison in sctp_inet6_cmp_addr
   f6c962d27d1a sctp: fix the issue that the cookie-ack with auth can't get processed
   3b54f1fd8770 sctp: delay the authentication for the duplicated cookie-echo chunk
   30ffa967adc3 rds: do not leak kernel memory to user land
   2753ebb4e96c r8169: fix powering up RTL8168h
   2bb66a711cc8 qmi_wwan: do not steal interfaces from class drivers
   c1ce5f359066 openvswitch: Don't swap table in nlattr_set() after OVS_ATTR_NESTED is found
   8e1b8e327903 net/tls: Fix connection stall on partial tls record
   3ac0f3e0b823 net/tls: Don't recursively call push_record during tls_write_space callbacks
   78ac65e8e940 net: support compat 64-bit time in {s,g}etsockopt
   b2a4d52fae0d net_sched: fq: take care of throttled flows before reuse
   6a5b0444e703 net sched actions: fix refcnt leak in skbmod
   1abd8c5fea11 net/mlx5: E-Switch, Include VF RDMA stats in vport statistics
   57e0a9f2174e net/mlx5e: Err if asked to offload TC match on frag being first
   edc0c15f6f61 net/mlx4_en: Verify coalescing parameters are in range
   2213a18303a2 net/mlx4_en: Fix an error handling path in 'mlx4_en_init_netdev()'
   6b10014800ce net: ethernet: ti: cpsw: fix packet leaking in dual_mac mode
   1029fb466b44 net: ethernet: sun: niu set correct packet size in skb
   1e22ffab52c0 llc: better deal with too small mtu
   a7aea8e27359 ipv4: fix memory leaks in udp_sendmsg, ping_v4_sendmsg
   c751af522989 ipv4: fix fnhe usage by non-cached routes
   91c2d70192c7 dccp: fix tasklet usage
   2c13a91e0fc5 bridge: check iface upper dev when setting master via ioctl
   ece94a76618e 8139too: Use disable_irq_nosync() in rtl8139_poll_controller()
   3f07ecbec151 Linux 4.14.41
   e8bbbd11e637 KVM: x86: remove APIC Timer periodic/oneshot spikes
   5138dd0db530 KVM: PPC: Book3S HV: Fix handling of large pages in radix page fault handler
   82e91e07e654 perf/x86: Fix possible Spectre-v1 indexing for x86_pmu::event_map()
   7093d5d0caa7 perf/core: Fix possible Spectre-v1 indexing for ->aux_pages[]
   6467123872a1 perf/x86/msr: Fix possible Spectre-v1 indexing in the MSR driver
   4e4bb64df800 perf/x86/cstate: Fix possible Spectre-v1 indexing for pkg_msr
   df2c71fb5c04 perf/x86: Fix possible Spectre-v1 indexing for hw_perf_event cache_*
   bd05324cdd3a tracing/uprobe_event: Fix strncpy corner case
   bb0b090d836a sched/autogroup: Fix possible Spectre-v1 indexing for sched_prio_to_weight[]
   f2a42c6bca67 smb3: directory sync should not return an error
   57e2ce8bbace nvme: add quirk to force medium priority for SQ creation
   db433f83a81f thermal: exynos: Propagate error value from tmu_read()
   33df2f8a8c87 thermal: exynos: Reading temperature makes sense only when TMU is turned on
   4aa9ef8a29ad Bluetooth: btusb: Only check needs_reset_resume DMI table for QCA rome chipsets
   4fcd0333b21e Bluetooth: btusb: Add Dell XPS 13 9360 to btusb_needs_reset_resume_table
   9ddc1d27a913 Revert "Bluetooth: btusb: Fix quirk for Atheros 1525/QCA6174"
   99e9acc27033 cpufreq: schedutil: Avoid using invalid next_freq
   64a03d3b240f PCI / PM: Check device_may_wakeup() in pci_enable_wake()
   89d5c4eb8105 PCI / PM: Always check PME wakeup capability for runtime wakeup support
   e2023117b877 atm: zatm: Fix potential Spectre v1
   cc21a603273c net: atm: Fix potential Spectre v1
   87aa17ca56b9 drm/atomic: Clean private obj old_state/new_state in drm_atomic_state_default_clear()
   969d4595f4a8 drm/atomic: Clean old_state/new_state in drm_atomic_state_default_clear()
   34a21b17abd6 drm/nouveau: Fix deadlock in nv50_mstm_register_connector()
   b2e01797216d drm/i915: Fix drm:intel_enable_lvds ERROR message in kernel log
   2b2b00374a54 drm/vc4: Fix scaling of uni-planar formats
   d2901e247b10 can: hi311x: Work around TX complete interrupt erratum
   ad25cf42f4c7 can: hi311x: Acquire SPI lock on ->do_get_berr_counter
   d0ca84d74f9f can: kvaser_usb: Increase correct stats counter in kvaser_usb_rx_can_msg()
   4636b4e25112 ceph: fix rsize/wsize capping in ceph_direct_read_write()
   2270dfcc4b12 mm, oom: fix concurrent munlock and oom reaper unmap, v3
   8ee7dabb311d mm: sections are not offlined during memory hotremove
   21fb6d8bc504 z3fold: fix reclaim lock-ups
   899997129276 tracing: Fix regex_match_front() to not over compare the test string
   586d02c1479f dm integrity: use kvfree for kvmalloc'd memory
   3b93fff8f452 libata: Apply NOLPM quirk for SanDisk SD7UB3Q*G1001 SSDs
   d1d5c31fc3a5 rfkill: gpio: fix memory leak in probe error path
   a7ea57b025b1 gpio: fix error path in lineevent_create
   28534d29479d gpio: fix aspeed_gpio unmask irq
   0f40bb84e25e gpioib: do not free unrequested descriptors
   ef7c4825fe5f compat: fix 4-byte infoleak via uninitialized struct field
   50ed0188af8d arm64: Add work around for Arm Cortex-A55 Erratum 1024718
   ca0ecba3ddf3 KVM: PPC: Book3S HV: Fix VRMA initialization with 2MB or 1GB memory backing
   f768d0f981e6 KVM: PPC: Book3S HV: Fix guest time accounting with VIRT_CPU_ACCOUNTING_GEN
   c51eb7379dfa KVM: PPC: Book3S HV: Fix trap number return from __kvmppc_vcore_entry
   683b4520d07e bdi: Fix oops in wb_workfn()
   6b5a99167a79 bdi: wake up concurrent wb_shutdown() callers.
   8c12bd91b597 tcp: fix TCP_REPAIR_QUEUE bound checking
   108cd022c59b perf: Remove superfluous allocation error check
   17ffa29c3556 memcg: fix per_node_info cleanup
   ac91ff2a5f12 inetpeer: fix uninit-value in inet_getpeer
   566804864cd9 soreuseport: initialise timewait reuseport field
   154ff3e04015 ipv4: fix uninit-value in ip_route_output_key_hash_rcu()
   09e45996b3e7 dccp: initialize ireq->ir_mark
   f9327803193a net: fix uninit-value in __hw_addr_add_ex()
   5652aed1de29 net: initialize skb->peeked when cloning
   ced9763b911d net: fix rtnh_ok()
   bf2ecb934603 netlink: fix uninit-value in netlink_sendmsg
   1b6d0db7ed22 crypto: af_alg - fix possible uninit-value in alg_bind()
   19042316b9e1 kcm: Call strp_stop before strp_done in kcm_attach
   725f5ae1a695 netfilter: ebtables: don't attempt to allocate 0-sized compat array
   88c43b469db5 ipvs: fix rtnl_lock lockups caused by start_sync_thread

(From OE-Core rev: 625ab268d598b13b822ffc1cabb6d3452068b29a)

(From OE-Core rev: c2e154ee8cc18ba6333e7481af4aab764cd5af15)

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>
2018-07-02 11:41:26 +01:00
Bruce Ashfield
7a7d18f58b linux-yocto: add kernel sample configuration fragment
Add a fragment to the various kernels to support QA testing
of samples.

(From OE-Core rev: 98f78e3e3d65085c000bdfcf890ea498520c0075)

(From OE-Core rev: 479fe63ff0f6636d20f4fb3524ecd1d2e3bb29b3)

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>
2018-07-02 11:41:25 +01:00
Bruce Ashfield
abe624ea73 linux-yocto/4.12: gcc8 + platform support
Integrating the following changes to fix gcc8 issues, add perf support
for new platforms, and misc bug fixes:

   7e7ac3f0fda9 perf vendor events intel: Update Goldmont events to V12
   0a384f4a74bb perf intel-pt: Always set no branch for dummy event
   d55c0eebc474 perf intel-pt: Set no_aux_samples for the tracking event
   1f0b8b1b621f perf vendor events: Add Goldmont Plus V1 event file
   6b230bd7967e objtool, perf: Fix GCC 8 -Wrestrict error
   2eb720eab978 tools/lib/subcmd/pager.c: do not alias select() params
   16818d5811b1 clocksource/drivers/arm_arch_timer: Fix mem frame loop initialization
   0924074f300a of: dynamic: fix memory leak related to properties of __of_node_dup
   f6579a9e6a8e debugobjects: Make kmemleak ignore debug objects
   9184d19fa9ba intel-socfpga: dts: improve qspi node for rsu feature
   68846ecd1d27 intel-socfpga: dts: add rsu node to enable rsu driver
   9f174f4e95f7 FogBugz #514234: arm64: dts: stratix10: Add PL330 DMA to Stratix10 dts
   8a97ef8580e8 FogBugz #554835-3: Intel RSU binding documentation
   c850e5570554 FogBugz #554835-1: Add Stratix 10 SoC RSU Driver
   e030a1b198b4 FogBugz #549288-4: dts: add Stratix10 sdram ecc
   c25a3bffb901 FogBugz #549288-3: edac: Add support for Stratix10 SDRAM EDAC
   64430c11c84b FogBugz #549288-2: Add Stratix10 ECC Manager binding
   c34e0d995e50 FogBugz #549288-1: misc: Stratix10 Protected register access defines
   ac8afaba8d13 mtd: spi-nor: cadence-quadspi: Fix page fault kernel panic
   16431863e036 FogBugz #554812: fpga: stratix10: unitialized data
   1ee99e139667 arm64: dts: stratix10: Change pad skew values for EMAC0 PHY driver
   3269b14acb76 FogBugz #251539-2: dts: Add Altera Quad SPI Driver Device Tree Binding
   99a5d81c3ea7 FogBugz #251539-1: Add Altera Quad SPI Driver

(From OE-Core rev: 37410a8ff156530dabdfdc7be4cd575768fa688d)

(From OE-Core rev: bffa3ca508b8542157efdd2ff61ff8a7922a6468)

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>
2018-07-02 11:41:25 +01:00
Bruce Ashfield
b22a3f4aac kern-tools: avoid merge_config concatenation issues
Integrating the following kern-tools commit:

    tools/merge_config.sh: add CR after each fragment

    If a fragment file doesn't contain a CR at the end, two config
    options may be merged on the same line in the result file, leading to
    misconfiguration.

    This patch adds a CR after each fragment to ensure that config
    options are well separated in the result file.

    Bug-AGL: SPEC-1475

    Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

(From OE-Core rev: c36727f2cad6c2d51aff8da6e2acd5642afe9848)

(From OE-Core rev: bd85f104d214c86e52204d0fe7e66039361d8b9f)

Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
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>
2018-07-02 11:41:25 +01:00
Bruce Ashfield
5e03004baf linux-yocto/4.12: fix ppc cryptodev build
commit 6e36719fbe9 [crypto: aes-generic - fix aes-generic regression on
powerpc] addresses a build regression by 4.14-stable. So we cherry pick
it onto our branches while it works through the -stable process.

(From OE-Core rev: 01a4a4e24a2b61229be32f8852b2d5bc28c5689c)

(From OE-Core rev: 8f18cedf2442537249483ae88cfa240aedfab5f1)

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>
2018-07-02 11:41:25 +01:00
Bruce Ashfield
43de26b5d0 linux-yocto/4.14/4.15: gcc8 fixes
Integrating Khem's gcc8 kernel patches so that 4.14 and 4.15 can build
with the gcc8 compiler updates.

  51273ff79f4a tools/lib/subcmd/pager.c: do not alias select() params
  b632c05a6263 objtool, perf: Fix GCC 8 -Wrestrict error
  20bc5eb24ac1 mips64: Disable attribute-alias warning
  975042cc72dd mips: Disable attribute-alias warnings
  8632f470f02c powerpc/ptrace: Disable array-bounds warning with gcc8
  59e401ffeda4 powerpc: Disable attribute-alias warnings from gcc8

(From OE-Core rev: eed723d09992c9b89fcb2760f8c95f69c201aa3c)

(From OE-Core rev: b03b4cfed3d06e397c4bc2a1d59b2a3838a97a2a)

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>
2018-07-02 11:41:25 +01:00
Bruce Ashfield
f5907bf55a linux-yocto/4.15: update to v4.15.18
Updating v4.15 to the final korg -stable for the v4.15 series. It comprises
the following commits:

   a8ec862fd39d Linux 4.15.18
   c4f45cf301e6 ovl: set lower layer st_dev only if setting lower st_ino
   9def916c750d rtl8187: Fix NULL pointer dereference in priv->conf_mutex
   7a2a6d71eed4 Bluetooth: hci_bcm: Treat Interrupt ACPI resources as always being active-low
   154b354f3171 Bluetooth: Fix connection if directed advertising and privacy is used
   4eb2f39266ac getname_kernel() needs to make sure that ->name != ->iname in long case
   84f086ee4e6a mm/gup_benchmark: handle gup failures
   7e255357ef66 get_user_pages_fast(): return -EFAULT on access_ok failure
   4d03a2e6b9b6 s390/compat: fix setup_frame32
   e025da42c8e6 s390/ipl: ensure loadparm valid flag is set
   0d4e77fe0659 s390/qdio: don't merge ERROR output buffers
   f3eae28761c3 s390/qdio: don't retry EQBS after CCQ 96
   4f2217cbe648 nfit: fix region registration vs block-data-window ranges
   3adc135469c8 block/loop: fix deadlock after loop_set_status
   9d8a3dc99219 apparmor: fix resource audit messages when auditing peer
   93d36bc65698 apparmor: fix display of .ns_name for containers
   5f7dc7d33ed3 apparmor: fix logging of the existence test for signals
   b88779931388 scsi: qla2xxx: Fix small memory leak in qla2x00_probe_one on probe failure
   e4e64ce3fbc4 nfsd: fix incorrect umasks
   f6b213293ed9 hugetlbfs: fix bug in pgoff overflow checking
   004f2df3ae48 xen: xenbus_dev_frontend: Fix XS_TRANSACTION_END handling
   ff37d99aebb3 ovl: fix lookup with middle layer opaque dir and absolute path redirects
   645840a17612 blk-mq: don't keep offline CPUs mapped to hctx 0
   01e12511b9e9 blk-mq: order getting budget and driver tag
   3e0b25015e05 lib: fix stall in __bitmap_parselist()
   a8ce442c67ff nvme: Skip checking heads without namespaces
   c5f1f15ab5f1 block: Change a rcu_read_{lock,unlock}_sched() pair into rcu_read_{lock,unlock}()
   54e869fce691 f2fs: fix heap mode to reset it back
   418a68e55acb sunrpc: remove incorrect HMAC request initialization
   1ff02d3465dc x86/apic: Fix signedness bug in APIC ID validity checks
   84ad0b9e121f ath9k: Protect queue draining by rcu_read_lock()
   70146f28e419 hwmon: (ina2xx) Fix access to uninitialized mutex
   717b489baaf0 x86/mce/AMD: Get address from already initialized block
   ab0ed342375f perf/core: Fix use-after-free in uprobe_perf_close()
   aa9cf90591f8 KVM: PPC: Book3S HV: trace_tlbie must not be called in realmode
   02c74a999d69 PCI: hv: Fix 2 hang issues in hv_compose_msi_msg()
   b5f7ba13889a PCI: hv: Serialize the present and eject work items
   4d12fdda9978 Drivers: hv: vmbus: do not mark HV_PCIE as perf_device
   ed7308bce0a2 parisc: Fix HPMC handler by increasing size to multiple of 16 bytes
   2cad1487248d parisc: Fix out of array access in match_pci_device()
   351b3d90c18d ipmi: Fix some error cleanup issues
   9bb8f59e6ba0 media: v4l: vsp1: Fix header display list status check in continuous mode
   2276552990c4 media: v4l2-compat-ioctl32: don't oops on overlay
   44f9357a588e lan78xx: Correctly indicate invalid OTP
   a6f8bdd9b583 vhost: Fix vhost_copy_to_user()
   5c877c58589f ip_gre: clear feature flags when incompatible o_flags are set
   a818b1e8182e l2tp: fix race in duplicate tunnel detection
   186fab54f609 l2tp: fix races in tunnel creation
   d6b25a259ef9 vhost: fix vhost_vq_access_ok() log check
   f76f647e536b slip: Check if rstate is initialized before uncompressing
   89a990000cd5 rds: MP-RDS may use an invalid c_path
   14fb3c646653 cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN
   17da5b1d0a46 netfilter: ipset: Missing nfnl_lock()/nfnl_unlock() is added to ip_set_net_exit()
   7b3f3fa2bdeb drm/i915/edp: Do not do link training fallback or prune modes on EDP
   b22a1fa1b34f Linux 4.15.17
   9e6ee870ad5a net/mlx4_core: Fix memory leak while delete slave's resources
   94f1b8485ce3 vhost_net: add missing lock nesting notation
   a17ab0a5c81c team: move dev_mc_sync after master_upper_dev_link in team_port_add
   0f9e7b328bff route: check sysctl_fib_multipath_use_neigh earlier than hash
   13ed54d5252e vhost: validate log when IOTLB is enabled
   2030a5c0ab13 net/mlx5e: Fix traffic being dropped on VF representor
   2b9260fb6f35 net/mlx4_en: Fix mixed PFC and Global pause user control requests
   e2b83b778065 strparser: Fix sign of err codes
   73a697b3ef62 net/sched: fix NULL dereference on the error path of tcf_skbmod_init()
   39eab2e79f81 net/sched: fix NULL dereference in the error path of tunnel_key_init()
   d6bda9865d4c net/mlx5e: Sync netdev vxlan ports at open
   75744bdbce5f net/mlx5e: Don't override vport admin link state in switchdev mode
   5dfa4fb5cd26 ipv6: sr: fix seg6 encap performances with TSO enabled
   d0f3ccf5293c nfp: use full 40 bits of the NSP buffer address
   9d49e497222c net/sched: fix NULL dereference in the error path of tcf_sample_init()
   e95cdaee3d7d net/mlx5e: Fix memory usage issues in offloading TC flows
   07c70edfbefd net/mlx5e: Avoid using the ipv6 stub in the TC offload neigh update path
   5075e98fb92f net/sched: fix NULL dereference in the error path of tcf_vlan_init()
   a61bf7ba7f9f net_sched: fix a missing idr_remove() in u32_delete_key()
   8c09a81ed1b9 net/mlx5e: Set EQE based as default TX interrupt moderation mode
   34eb1263d97f vti6: better validate user provided tunnel names
   4fba1a669a9a ip6_tunnel: better validate user provided tunnel names
   efcc90fcf90a ip6_gre: better validate user provided tunnel names
   c64153772333 ipv6: sit: better validate user provided tunnel names
   bc4718fcee7c ip_tunnel: better validate user provided tunnel names
   764975439e8b net: fool proof dev_valid_name()
   b9c36c30ccac bonding: process the err returned by dev_set_allmulti properly in bond_enslave
   1999253e11b6 bonding: move dev_mc_sync after master_upper_dev_link in bond_enslave
   4021b1a4ef73 bonding: fix the err path for dev hwaddr sync in bond_enslave
   088d65ddf9c5 vrf: Fix use after free and double free in vrf_finish_output
   51c6ba0d8d71 vlan: also check phy_driver ts_info for vlan's real device
   25d45c0fd16c vhost: correctly remove wait queue during poll failure
   3407271beb99 sky2: Increase D3 delay to sky2 stops working after suspend
   7e72ce101da8 sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
   9db59791e2b7 sctp: do not leak kernel memory to user space
   cb2b72372ab2 r8169: fix setting driver_data after register_netdev
   3b1c6b30170e pptp: remove a buggy dst release in pptp_connect()
   db714a1ff359 net/sched: fix NULL dereference in the error path of tcf_bpf_init()
   c7aea3ee65f1 net sched actions: fix dumping which requires several messages to user space
   ae4d4eb29e54 net/mlx5e: Verify coalescing parameters in range
   7102de5aef56 netlink: make sure nladdr has correct size in netlink_connect()
   bbf5fab136f6 net/ipv6: Increment OUTxxx counters after netfilter hook
   e3b4bc07821c net/ipv6: Fix route leaking between VRFs
   202f1915fa1d net: fix possible out-of-bound read in skb_network_protocol()
   7dd65ec55e31 net: dsa: Discard frames from unused ports
   14fed02e94a8 lan78xx: Crash in lan78xx_writ_reg (Workqueue: events lan78xx_deferred_multicast_write)
   dad8b0244bac ipv6: the entire IPv6 header chain must fit the first fragment
   30d032b72d06 arp: fix arp_filter on l3slave devices
   fea978223b59 x86/microcode: Fix CPU synchronization routine
   32bfd224e9d6 x86/microcode: Attempt late loading only when new microcode is present
   8e1161f94614 x86/microcode: Synchronize late microcode loading
   7bc523cc535e x86/microcode: Request microcode on the BSP
   194ed6edd93f x86/microcode/intel: Look into the patch cache first
   399c019ea77c x86/microcode: Do not upload microcode if CPUs are offline
   1089ac9dda39 x86/microcode/intel: Writeback and invalidate caches before updating microcode
   1c1f5b2cd2cf x86/microcode/intel: Check microcode revision before updating sibling threads
   abb00ec05909 x86/microcode: Get rid of struct apply_microcode_ctx
   5cea945c5a3b x86/CPU: Check CPU feature bits after microcode upgrade
   1a6150b2bad3 x86/CPU: Add a microcode loader callback
   e280980606e7 x86/microcode: Propagate return value from updating functions
   d3839c26e68d drm/i915/cnp: Properly handle VBT ddc pin out of bounds.
   1710c3baec14 drm/i915/cnp: Ignore VBT request for know invalid DDC pin.
   87ef4d6fc6b0 thermal: int3400_thermal: fix error handling in int3400_thermal_probe()
   452aecd060f2 tcmu: release blocks for partially setup cmds
   46279ed31169 perf tools: Fix copyfile_offset update of output offset
   feb5c349feb5 crypto: aes-generic - build with -Os on gcc-7+
   50dbed12aaa7 mtd: mtd_oobtest: Handle bitflips during reads
   dad8f5220c5d Input: goodix - disable IRQs while suspended
   d7c122fd723f ibmvnic: Don't handle RX interrupts when not up.
   82c353ad3da1 sdhci: Advertise 2.0v supply on SDIO host controller
   55a0ef8d9d71 x86/gart: Exclude GART aperture from vmcore
   6a68ef47bea6 gpio: thunderx: fix error return code in thunderx_gpio_probe()
   27fac1611fdd RDMA/cma: Fix rdma_cm path querying for RoCE
   ce87afbbada6 scsi: megaraid_sas: unload flag should be set after scsi_remove_host is called
   458419bb8429 scsi: megaraid_sas: Error handling for invalid ldcount provided by firmware in RAID map
   edde080c5e33 PM / domains: Don't skip driver's ->suspend|resume_noirq() callbacks
   3018e3d5171e cxgb4vf: Fix SGE FL buffer initialization logic for 64K pages
   b2320552d1f5 drm/amd/powerplay: fix memory leakage when reload (v2)
   70557b7f58db i40evf: don't rely on netif_running() outside rtnl_lock()
   6e80af54604d Bluetooth: hci_bcm: Make shutdown and device wake GPIO optional
   d8d843fe374b Bluetooth: hci_bcm: Validate IRQ before using it
   e34b75c7db20 Bluetooth: hci_bcm: Mandate presence of shutdown and device wake GPIO
   3ca4e49e9be7 uio_hv_generic: check that host supports monitor page
   f0e9997e06a5 EDAC, mv64x60: Fix an error handling path
   7018cb0149d1 serdev: Fix serdev_uevent failure on ACPI enumerated serdev-controllers
   3af99e83a278 block, bfq: put async queues for root bfq groups too
   a551b16c4903 tty: n_gsm: Allow ADM response in addition to UA for control dlci
   13ba69ddf542 blk-mq: fix kernel oops in blk_mq_tag_idle()
   1aa0564aae9e net/mlx5e: IPoIB, Use correct timestamp in child receive flow
   d4beec7ede2a scsi: libsas: initialize sas_phy status according to response of DISCOVER
   a8e93148d4e6 scsi: libsas: fix error when getting phy events
   c16490ba27bb scsi: libsas: fix memory leak in sas_smp_get_phy_events()
   614361530f03 net: Fix netdev_WARN_ONCE macro
   088ebc83060e scsi: libsas: Use dynamic alloced work to avoid sas event lost
   eead4cd85fe3 bcache: segregate flash only volume write streams
   9390f52f68a8 bcache: stop writeback thread after detaching
   18303da51818 bcache: ret IOERR when read meets metadata error
   2300dbc6d1f3 net: hns3: fix for changing MTU
   dfa20d9d7fa9 net: hns3: Fix an error macro definition of HNS3_TQP_STAT
   f55dc2a4c18d net: hns3: Fix a loop index error of tqp statistics query
   4434e6f5820f net: hns3: Fix an error of total drop packet statistics
   c8de98d55dc4 net/mlx5: Fix race for multiple RoCE enable
   717df1176636 wl1251: check return from call to wl1251_acx_arp_ip_filter
   eb49779a13d9 rt2x00: do not pause queue unconditionally on error path
   14d7f455a4da power: supply: axp288_charger: Properly stop work on probe-error / remove
   c9ec5c8ac418 ASoC: Intel: sst: Fix the return value of 'sst_send_byte_stream_mrfld()'
   b00f942fef90 staging: lustre: disable preempt while sampling processor id.
   731edfbaf9e5 perf report: Fix a no annotate browser displayed issue
   4c4f48c3e5d7 tpm: return a TPM_RC_COMMAND_CODE response if command is not implemented
   0a592432e6e9 nvme_fcloop: fix abort race condition
   513f897ed6e5 nvme_fcloop: disassocate local port structs
   9d0b9e874ecf pinctrl: baytrail: Enable glitch filter for GPIOs used as interrupts
   ab0ba11b94b5 nvme-fabrics: don't check for non-NULL module in nvmf_register_transport
   2c624d6fede9 nvme-fabrics: protect against module unload during create_ctrl
   3d4d30ecc250 backlight: tdo24m: Fix the SPI CS between transfers
   3f9ae3bb4dca blk-mq: fix race between updating nr_hw_queues and switching io sched
   f86fd0585e8e blk-mq: avoid to map CPU into stale hw queue
   5be1bc32b82d IB/rdmavt: Allocate CQ memory on the correct node
   a5a2a6bd5d4a powernv-cpufreq: Add helper to extract pstate from PMSR
   618d78622811 arm64: asid: Do not replace active_asids if already 0
   a257594a30d3 gpio: label descriptors using the device name
   b2b11aebe49e crypto: crypto4xx - perform aead icv check in the driver
   56d3fab6bc64 vfb: fix video mode and line_length being set when loaded
   7f12c3f9eec6 mac80211: Fix setting TX power on monitor interfaces
   110909d7a0c9 ACPI: EC: Fix debugfs_create_*() usage
   03e965ebd983 irqchip/gic-v3: Fix the driver probe() fail due to disabled GICC entry
   c97d465daddd irqchip/ompic: fix return value check in ompic_of_init()
   f885f0701f6d scsi: mpt3sas: Proper handling of set/clear of "ATA command pending" flag.
   f212235717ed scsi: libiscsi: Allow sd_shutdown on bad transport
   f4fecf24ae66 RDMA/hns: Update the usage of sr_max and rr_max field
   311b60b294b4 spi: sh-msiof: Fix timeout failures for TX-only DMA transfers
   902dae240b4a IB/ipoib: Fix for notify send CQ failure messages
   3ca14535c781 drm/msm: Fix NULL deref in adreno_load_gpu
   70a6a6877a88 ASoC: Intel: cht_bsw_rt5645: Analog Mic support
   df85cc29794a ASoC: Intel: Skylake: Disable clock gating during firmware and library download
   4577c7f85eda media: videobuf2-core: don't go out of the buffer range
   a8d3eea33c25 clk: sunxi-ng: a83t: Add M divider to TCON1 clock
   e0870e5401ee f2fs: fix lock dependency in between dio_rwsem & i_mmap_sem
   bde6301dbf14 hwmon: (ina2xx) Make calibration register value fixed
   2bddcdd33e3a RDMA/cma: Mark end of CMA ID messages
   7f0880203e52 thermal/drivers/hisi: Remove bogus const from function return type
   a696e385ac75 selftests/net: fix bugs in address and port initialization
   abf63e3cb1a8 net_sch: red: Fix the new offload indication
   ffc544a91a0f gpiolib: don't dereference a desc before validation
   ebc5545383f7 PM / devfreq: Fix potential NULL pointer dereference in governor_store
   34e1b76c57d0 clk: divider: fix incorrect usage of container_of
   5218e11fbd2f watchdog: dw_wdt: add stop watchdog operation
   3a0289a45385 VFS: close race between getcwd() and d_move()
   827fe75987f1 IB/mlx5: Report inner RSS capability
   b644c41acce1 net/mlx4_en: Change default QoS settings
   965736ee654d ACPI / video: Default lcd_only to true on Win8-ready and newer machines
   ce6b782c6f38 rds; Reset rs->rs_bound_addr in rds_add_bound() failure path
   e78a6e9aee5b l2tp: fix missing print session offset info
   d8ffa7dfceb5 net: hns3: add Asym Pause support to phy default features
   353900b83514 net: hns3: fix for getting auto-negotiation state in hclge_get_autoneg
   4edd8be70f11 net: hns3: free the ring_data structrue when change tqps
   295c02ce3322 perf evsel: Enable ignore_missing_thread for pid option
   88d7e9f141c3 perf evsel: Fix swap for samples with raw data
   9ab8894f195d perf probe: Add warning message if there is unexpected event name
   ef0fa7a1ec6e perf probe: Find versioned symbols from map
   2dffefdf975a thermal: power_allocator: fix one race condition issue for thermal_instances list
   4dfb698be2a5 ipv6: Reinject IPv6 packets if IPsec policy matches after SNAT
   542f2cc70fe6 Bluetooth: Add a new 04ca:3015 QCA_ROME device
   7ee903fb3a1b ARM: dts: ls1021a: add "fsl,ls1021a-esdhc" compatible string to esdhc node
   9f8a75a2299e clk: meson: mpll: use 64-bit maths in params_from_rate
   be7835d54626 i40iw: Validate correct IRD/ORD connection parameters
   551ace11e153 i40iw: Correct Q1/XF object count equation
   c2f3d4bf8e4b i40iw: Fix sequence number for the first partial FPDU
   49859d3c5536 Linux 4.15.16
   b36c97615b98 Revert "ip6_vti: adjust vti mtu according to mtu of lower device"
   f4c360885236 Revert "cpufreq: Fix governor module removal race"
   2dae6069c488 Revert "ARM: dts: omap3-n900: Fix the audio CODEC's reset pin"
   0dd269e2a25b Revert "ARM: dts: am335x-pepper: Fix the audio CODEC's reset pin"
   657fda9505c8 Fix slab name "biovec-(1<<(21-12))"
   8282afd8abee net: hns: Fix ethtool private flags
   84c68b621e90 ARM: dts: DRA76-EVM: Set powerhold property for tps65917
   3d07d9f2eebb vt: change SGR 21 to follow the standards
   48eaa5be295c Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
   fd50992f99c2 Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list
   ec46704f08e8 Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370
   9abdc666b793 Revert "base: arch_topology: fix section mismatch build warnings"
   f1fcba111d9e staging: comedi: ni_mio_common: ack ai fifo error interrupts.
   21f07630e75f Btrfs: fix unexpected cow in run_delalloc_nocow
   e847da275f04 crypto: x86/cast5-avx - fix ECB encryption when long sg follows short one
   860783c283c8 crypto: arm,arm64 - Fix random regeneration of S_shipped
   493601f76734 crypto: ccp - return an actual key size from RSA max_size callback
   7abca04ef3a0 crypto: caam - Fix null dereference at error path
   48b9d82caba8 crypto: ahash - Fix early termination in hash walk
   4010d75d2eb4 crypto: talitos - fix IPsec cipher in length
   05c93fe33f94 crypto: testmgr - Fix incorrect values in PKCS#1 test vector
   c3c97a9f2f52 crypto: inside-secure - fix clock management
   7bc247d1fd68 crypto: talitos - don't persistently map req_ctx->hw_context and req_ctx->buf
   27036ade0732 crypto: lrw - Free rctx->ext with kzfree
   5afddba2aaae parport_pc: Add support for WCH CH382L PCI-E single parallel port card.
   39fd6d094397 media: usbtv: prevent double free in error case
   9b664c6a9f68 /dev/mem: Avoid overwriting "err" in read_mem()
   3cde7e2ccec6 mei: remove dev_err message on an unsupported ioctl
   29361c257631 serial: 8250: Add Nuvoton NPCM UART
   ffed9ae46844 USB: serial: cp210x: add ELDAT Easywave RX09 id
   b8541b3dc59c USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator
   6693f178c9ab USB: serial: ftdi_sio: add RT Systems VX-8 cable
   b5abde6ca2d2 bitmap: fix memset optimization on big-endian systems
   7b2dcf7cc456 drm/i915/dp: Write to SET_POWER dpcd to enable MST hub.
   886125faf5d1 Bluetooth: Fix missing encryption refresh on Security Request
   8f723a276a4d phy: qcom-ufs: add MODULE_LICENSE tag
   a192706b71fa netfilter: x_tables: add and use xt_check_proc_name
   7ab7e3e2a0d4 netfilter: drop template ct when conntrack is skipped.
   c16c62bb4d9f l2tp: fix races with ipv4-mapped ipv6 addresses
   dd19573992b5 netfilter: bridge: ebt_among: add more missing match size checks
   8f4ed22f6b5e netfilter: x_tables: make allocation less aggressive
   5bb3f4acc8aa percpu: add __GFP_NORETRY semantics to the percpu balancing path
   c7f2bd1850a8 xfrm: Refuse to insert 32 bit userspace socket policies on 64 bit systems
   94f84ba56f3d net: xfrm: use preempt-safe this_cpu_read() in ipcomp_alloc_tfms()
   e13d781171fb ipv6: fix possible deadlock in rt6_age_examine_exception()
   b2bf2cb68880 RDMA/ucma: Introduce safer rdma_addr_size() variants
   f55b41ce03a7 RDMA/ucma: Check that device exists prior to accessing it
   c0cbbca14176 RDMA/ucma: Check that device is connected prior to access it
   c88aaa5ab28a RDMA/rdma_cm: Fix use after free race with process_one_req
   5eb56dd0ba03 RDMA/ucma: Ensure that CM_ID exists prior to access it
   0b17ac3f080d RDMA/ucma: Fix use-after-free access in ucma_close
   a6474d6ef156 RDMA/ucma: Check AF family prior resolving address
   7df65ad1d45a xfrm_user: uncoditionally validate esn replay attribute struct
   abb971a27ed5 partitions/msdos: Unable to mount UFS 44bsd partitions
   cc842a34bfb2 powerpc/64s: Fix i-side SLB miss bad address handler saving nonvolatile GPRs
   f8e68e8f8db5 powerpc/64s: Fix lost pending interrupt due to race causing lost update to irq_happened
   5c0b4a907396 powerpc/mm: Workaround Nest MMU bug with TLB invalidations
   d657375f3616 powerpc/mm: Add tracking of the number of coprocessors using a context
   b61312ebb1c9 i2c: i2c-stm32f7: fix no check on returned setup
   19254443adf9 ipc/shm.c: add split function to shm_vm_ops
   f2fb59601631 ceph: only dirty ITER_IOVEC pages for direct read
   9b5b7c382e11 perf/hwbp: Simplify the perf-hwbp code, fix documentation
   a408b211f579 x86/platform/uv/BAU: Add APIC idt entry
   740aa1579526 ALSA: pcm: potential uninitialized return values
   4321a749661b ALSA: pcm: Use dma_bytes as size parameter in dma_mmap_coherent()
   5891c83b01ad ALSA: usb-audio: Add native DSD support for TEAC UD-301
   6aa2e5ddc3cd mtd: nand: atmel: Fix get_sectorsize() function
   e80deb59802c mtd: jedec_probe: Fix crash in jedec_read_mfr()
   26692e9a0aaf ARM: dts: sun6i: a31s: bpi-m2: add missing regulators
   acc7f0201fc3 ARM: dts: sun6i: a31s: bpi-m2: improve pmic properties
   955901702381 ARM: 8746/1: vfp: Go back to clearing vfp_current_hw_state[]
   37496fe93169 ARM: OMAP: Fix SRAM W+X mapping
   ae0a11b2bd33 Linux 4.15.15
   ab58638491e1 team: Fix double free in error path
   a21aaaf921ab skbuff: Fix not waking applications when errors are enqueued
   0a5c5886c3b4 qede: Fix qedr link update
   71aa561fa21b net: systemport: Rewrite __bcm_sysport_tx_reclaim()
   347de2ecf61b net: Only honor ifindex in IP_PKTINFO if non-0
   ffa24344d004 netlink: avoid a double skb free in genlmsg_mcast()
   b471f6727288 net/iucv: Free memory obtained by kzalloc
   24f6021c26ef net: fec: Fix unbalanced PM runtime calls
   fbc1ee88e866 net: ethernet: ti: cpsw: add check for in-band mode setting with RGMII PHY interface
   41d133c01d20 net: ethernet: arc: Fix a potential memory leak if an optional regulator is deferred
   8e903f508390 l2tp: do not accept arbitrary sockets
   f1c344162052 ipv6: fix access to non-linear packet in ndisc_fill_redirect_hdr_option()
   5df0f40809d4 dccp: check sk for closed state in dccp_sendmsg()
   01a82ba817fc dpaa_eth: remove duplicate increment of the tx_errors counter
   8e84c72fe1b7 dpaa_eth: increment the RX dropped counter when needed
   d50884855ed0 dpaa_eth: remove duplicate initialization
   e9b0efd5940c dpaa_eth: fix error in dpaa_remove()
   5b10a404419f soc/fsl/qbman: fix issue in qman_delete_cgr_safe()
   2a00d08da9ff s390/qeth: on channel error, reject further cmd requests
   e992c8b81cd0 s390/qeth: lock read device while queueing next buffer
   4b6cd4820c66 s390/qeth: when thread completes, wake up all waiters
   657a7148bd4b s390/qeth: free netdevice when removing a card
   aac53ed860ee net: Fix hlist corruptions in inet_evict_bucket()
   5eb1b63557d8 net: use skb_to_full_sk() in skb_update_prio()
   7d7d04a6e6d5 ieee802154: 6lowpan: fix possible NULL deref in lowpan_device_event()
   a69b268ae27d sch_netem: fix skb leak in netem_enqueue()
   b6b64dea97e0 kcm: lock lower socket in kcm_attach
   b1bb7e6aa293 test_rhashtable: add test case for rhltable with duplicate objects
   93589a0ae7e7 rhashtable: Fix rhlist duplicates insertion
   8b24af17d5fc ppp: avoid loop in xmit recursion detection code
   a1209e98ff49 net sched actions: return explicit error when tunnel_key mode is not specified
   37c446138df8 ipv6: Reflect MTU changes on PMTU of exceptions for MTU-less routes
   9401d455a739 net: phy: Tell caller result of phy_change()
   33dcdffc31e5 mlxsw: spectrum_buffers: Set a minimum quota for CPU port traffic
   af1ba7e5e0cd ipv6: sr: fix scheduling in RCU when creating seg6 lwtunnel state
   68e01f404461 ipv6: sr: fix NULL pointer dereference when setting encap source address
   7340d647447f ipv6: old_dport should be a __be16 in __ip6_datagram_connect()
   812cb9e2340d net: ipv6: keep sk status consistent after datagram connect failure
   f09036d3d61c macvlan: filter out unsupported feature flags
   2076d28a639e devlink: Remove redundant free on error path
   9c94855066d3 net: phy: relax error checking when creating sysfs link netdev->phydev
   956c93369149 sysfs: symlink: export sysfs_create_link_nowarn()
   986468a18f78 qed: Fix non TCP packets should be dropped on iWARP ll2 connection
   960058fe1963 tcp: purge write queue upon aborting the connection
   10849a12c052 qed: Fix MPA unalign flow in case header is split across two packets.
   cce2b12ee5af openvswitch: meter: fix the incorrect calculation of max delta_t
   1759a5455f7d net: dsa: Fix dsa_is_user_port() test inversion
   0ba3b3aac901 Linux 4.15.14
   9c5ee9934c90 bpf, x64: increase number of passes
   18a9e4d888d6 bpf: skip unnecessary capability check
   700082a54165 kbuild: disable clang's default use of -fmerge-all-constants
   c7674a71bc38 staging: android: ion: Zero CMA allocated memory
   e8689b8bbae9 iio: imu: st_lsm6dsx: introduce conf_lock mutex
   0757dce21913 iio: imu: st_lsm6dsx: fix endianness in st_lsm6dsx_read_oneshot()
   b7a6e26b331d iio: ABI: Fix name of timestamp sysfs file
   b844443b8e89 perf/x86/intel/uncore: Fix multi-domain PCI CHA enumeration bug on Skylake servers
   190e67640d20 perf/x86/intel: Don't accidentally clear high bits in bdw_limit_period()
   a002966e849b trace/bpf: remove helper bpf_perf_prog_read_value from tracepoint type programs
   e623ff1aceff perf/core: Fix ctx_event_type in ctx_resched()
   f736f6560e04 perf stat: Fix CVS output format for non-supported counters
   b42e3e521999 perf/x86/intel/uncore: Fix Skylake UPI event format
   7d4e27d30070 hwmon: (k10temp) Add temperature offset for Ryzen 1900X
   1a0d6102cd02 hwmon: (k10temp) Only apply temperature offset if result is positive
   591b6ad1ddbc x86/boot/64: Verify alignment of the LOAD segment
   b3d1a5bc0e47 x86/build/64: Force the linker to use 2MB page size
   8c42170a40fb kvm/x86: fix icebp instruction handling
   ab26ea17a6dc posix-timers: Protect posix clock array access against speculation
   cd7abf600406 x86/efi: Free efi_pgd with free_pages()
   279ebed98bb2 x86/vsyscall/64: Use proper accessor to update P4D entry
   1e4ed1727e2a selftests/x86/ptrace_syscall: Fix for yet more glibc interference
   69a71b6b418c x86/entry/64: Don't use IST entry for #BP stack
   64c98ba6ddb5 tty: vt: fix up tabstops properly
   dfde88160d7b can: cc770: Fix use after free in cc770_tx_interrupt()
   89fc6c01aae9 can: cc770: Fix queue stall & dropped RTR reply
   f543d85120e1 can: cc770: Fix stalls on rt-linux, remove redundant IRQ ack
   f29397c91e05 can: ifi: Check core revision upon probe
   717885b66fb8 can: ifi: Repair the error handling
   4f39b4fd443c can: peak/pcie_fd: remove useless code when interface starts
   054317e751c7 can: peak/pcie_fd: fix echo_skb is occupied! bug
   9a6730ae707b staging: ncpfs: memory corruption in ncp_read_kernel()
   7b6f657ad598 mtd: nand: fsl_ifc: Read ECCSTAT0 and ECCSTAT1 registers for IFC 2.0
   7cc7ee831a35 mtd: nand: fsl_ifc: Fix eccstat array overflow for IFC ver >= 2.0.0
   1d65c538a1e1 mtd: nand: fsl_ifc: Fix nand waitfunc return value
   a49c7c336348 mtdchar: fix usage of mtd_ooblayout_ecc()
   9b474cd0749d tracing: probeevent: Fix to support minus offset from symbol
   d2e051d5d636 rtlwifi: rtl8723be: Fix loss of signal
   8c210a84ed36 brcmfmac: fix P2P_DEVICE ethernet address generation
   6b7ece4accf1 libnvdimm, {btt, blk}: do integrity setup before add_disk()
   0cb158fadfd5 ACPI / watchdog: Fix off-by-one error at resource assignment
   b0b2d4f74b72 acpi, numa: fix pxm to online numa node associations
   517f745e5e64 module: propagate error in modules_open()
   c8f7955b5493 mm/vmscan: wake up flushers for legacy cgroups too
   01592437b0ec drm: udl: Properly check framebuffer mmap offsets
   1554edbbb723 drm: Reject getfb for multi-plane framebuffers
   f6b53a429e65 drm/amd/display: Add one to EDID's audio channel count when passing to DC
   fa81f6281879 drm/amd/display: We shouldn't set format_default on plane as atomic driver
   19f2fd88d999 drm/radeon: Don't turn off DP sink when disconnected
   5001c04d08bb drm/vmwgfx: Fix a destoy-while-held mutex problem.
   b7c3cc858b02 drm/vmwgfx: Fix black screen and device errors when running without fbdev
   f981611c4ae3 Revert "mm: page_alloc: skip over regions of invalid pfns where possible"
   d3d155da63b9 mm/shmem: do not wait for lock_page() in shmem_unused_huge_shrink()
   29c11d86b74f mm/thp: do not wait for lock_page() in deferred_split_scan()
   babe10f62b6b mm/khugepaged.c: convert VM_BUG_ON() to collapse fail
   63da3be586bb x86/mm: implement free pmd/pte page interfaces
   0454e2fad930 mm/vmalloc: add interfaces to free unmapped page table
   6104f7df1e22 h8300: remove extraneous __BIG_ENDIAN definition
   e0fdb5385c4b hugetlbfs: check for pgoff value overflow
   2800f9c188c7 media: tegra-cec: reset rx_buf_cnt when start bit detected
   0f44e9da465e nfsd: remove blocked locks on client teardown
   401c02d7c9b5 cgroup: fix rule checking for threaded mode switching
   6823e0efcb01 sched, cgroup: Don't reject lower cpu.max on ancestors
   aa0832d01611 libata: Modify quirks for MX100 to limit NCQ_TRIM quirk to MU01 version
   85fd780b26aa libata: Make Crucial BX100 500GB LPM quirk apply to all firmware versions
   a3121f28e584 libata: Apply NOLPM quirk to Crucial M500 480 and 960GB SSDs
   a51206d6a1c3 libata: Enable queued TRIM for Samsung SSD 860
   2cd5b672744b libata: disable LPM for Crucial BX100 SSD 500GB drive
   3c23829899da libata: Apply NOLPM quirk to Crucial MX100 512GB SSDs
   0f849a36c2c3 libata: don't try to pass through NCQ commands to non-NCQ devices
   25af1a9219d6 libata: remove WARN() for DMA or PIO command without data
   b679d0e7d685 libata: fix length validation of ATAPI-relayed SCSI commands
   7ec32f585fef Bluetooth: btusb: Fix quirk for Atheros 1525/QCA6174
   a7f0ce743bfe Bluetooth: btusb: Add Dell OptiPlex 3060 to btusb_needs_reset_resume_table
   ee1195515988 Bluetooth: btusb: Remove Yoga 920 from the btusb_needs_reset_resume_table
   6c927e37a857 pinctrl: samsung: Validate alias coming from DT
   98bb0e40fa7f Drivers: hv: vmbus: Fix ring buffer signaling
   8fe98b2177a9 RDMA/mlx5: Fix crash while accessing garbage pointer and freed memory
   808176cd9eeb clk: sunxi-ng: a31: Fix CLK_OUT_* clock ops
   c3c66b380218 clk: bcm2835: Protect sections updating shared registers
   318078995410 clk: bcm2835: Fix ana->maskX definitions
   cb5cfed66ebc lockdep: fix fs_reclaim warning
   b5f2a5c3c09c ahci: Add PCI-id for the Highpoint Rocketraid 644L card
   23a6254a4ddf PCI: Add function 1 DMA alias quirk for Highpoint RocketRAID 644L
   5b863a4deb8b mmc: dw_mmc: fix falling from idmac to PIO mode when dw_mci_reset occurs
   8049c2c413da mmc: dw_mmc: exynos: fix the suspend/resume issue for exynos5433
   b4a2de90aeb6 mmc: dw_mmc: Fix the DTO/CTO timeout overflow calculation for 32-bit systems
   40888f31f9cf mmc: block: fix updating ext_csd caches on ioctl call
   836b7527a839 mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards
   1e0ca4f53915 mmc: core: Fix tracepoint print of blk_addr and blksz
   b49428a00020 ALSA: hda/realtek - Always immediately update mute LED with pin VREF
   291bebca94a0 ALSA: hda/realtek - Fix Dell headset Mic can't record
   953434bdd33e ALSA: hda/realtek - Fix speaker no sound after system resume
   1082b81751dd ALSA: hda - Force polling mode on CFL for fixing codec communication
   33cc51d03b60 ALSA: aloop: Fix access to not-yet-ready substream via cable
   66ef51a5c402 ALSA: aloop: Sync stale timer before release
   771782b6fb94 ALSA: usb-audio: Fix parsing descriptor of UAC2 processing unit
   32e6d1ee98ab iio: adc: meson-saradc: unlock on error in meson_sar_adc_lock()
   e1db7d19c6fa iio: st_pressure: st_accel: pass correct platform data to init
   805a995cb8a3 iio: chemical: ccs811: Corrected firmware boot/application mode transition
   f047d3d7f86d MIPS: lantiq: ase: Enable MFD_SYSCON
   ea8cbb7cc71b MIPS: lantiq: Enable AHB Bus for USB
   6b26df694632 MIPS: lantiq: Fix Danube USB clock
   2dcbf520510c MIPS: ralink: Fix booting on MT7621
   fb43da3ac012 MIPS: ralink: Remove ralink_halt()

(From OE-Core rev: 7dd52d9e39109d8b24227163857595f17be16f4d)

(From OE-Core rev: aa9cf8f91431483dea7148ca7dd6d4ffae580334)

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>
2018-07-02 11:41:25 +01:00
Bruce Ashfield
2ca0e6fddd linux-yocto/4.14: update to v4.14.30
Integrating the korg -stable releases for 4.14, which comprise the
following commits:

   fc72a4171174 Linux 4.14.40
   27f29dbceb3c tracing: Fix bad use of igrab in trace_uprobe.c
   d86aaca9cea2 irqchip/qcom: Fix check for spurious interrupts
   bd2088d1d77a platform/x86: asus-wireless: Fix NULL pointer dereference
   87fa7da673b4 usb: musb: trace: fix NULL pointer dereference in musb_g_tx()
   303e99bde8dc usb: musb: host: fix potential NULL pointer dereference
   ec6de93fab50 USB: serial: option: adding support for ublox R410M
   3f0c247910d0 USB: serial: option: reimplement interface masking
   0e548f5abae9 USB: Accept bulk endpoints with 1024-byte maxpacket
   425a02545d5e usb: dwc3: gadget: Fix list_del corruption in dwc3_ep_dequeue
   0cc49bb627ad USB: serial: visor: handle potential invalid device configuration
   0799a0ea96e4 errseq: Always report a writeback error once
   b4f6e858433e test_firmware: fix setting old custom fw path back on exit, second try
   43b3ba6ece54 drm/bridge: vga-dac: Fix edid memory leak
   df9703e7e72a drm/vmwgfx: Fix a buffer object leak
   758f3340b803 iw_cxgb4: Atomically flush per QP HW CQEs
   d7683a5c8c94 IB/hfi1: Fix NULL pointer dereference when invalid num_vls is used
   79181a45aa9a IB/hfi1: Fix loss of BECN with AHG
   7f185bc79bb9 IB/hfi1: Fix handling of FECN marked multicast packet
   b5ebbbc72671 IB/mlx5: Use unlimited rate when static rate is not supported
   a27293f2f6e1 NET: usb: qmi_wwan: add support for ublox R410M PID 0x90b2
   14ad51557092 RDMA/mlx5: Protect from shift operand overflow
   be855252ebce RDMA/mlx5: Fix multiple NULL-ptr deref errors in rereg_mr flow
   3ae1bf368135 RDMA/ucma: Allow resolving address w/o specifying source address
   38a65e753503 RDMA/cxgb4: release hw resources on device removal
   bd9ca962eeb0 xfs: prevent creating negative-sized file via INSERT_RANGE
   b68c7af0b2e7 rtlwifi: cleanup 8723be ant_sel definition
   fcd835be6c17 rtlwifi: btcoex: Add power_on_setting routine
   10579ed39e20 Input: atmel_mxt_ts - add touchpad button mapping for Samsung Chromebook Pro
   894937021946 Input: leds - fix out of bound access
   2c698f7b169a scsi: target: Fix fortify_panic kernel exception
   f4438b15755e tracepoint: Do not warn on ENOMEM
   bd0e2aec5686 ALSA: aloop: Add missing cable lock to ctl API callbacks
   4e3460ae33c6 ALSA: aloop: Mark paused device as inactive
   9581fff37b1a ALSA: dice: fix kernel NULL pointer dereference due to invalid calculation for array index
   dfe7f043bcfc ALSA: seq: Fix races at MIDI encoding in snd_virmidi_output_trigger()
   e5e9a770cec2 ALSA: pcm: Check PCM state at xfern compat ioctl
   5f6e6d063ac1 ALSA: hda - Fix incorrect usage of IS_REACHABLE()
   c1e76c30079d USB: serial: option: Add support for Quectel EP06
   c8a622ed9e53 ACPI / button: make module loadable when booted in non-ACPI mode
   63d9df9eb7a5 crypto: talitos - fix IPsec cipher in length
   e9caf1e1d5d4 percpu: include linux/sched.h for cond_resched()
   6a3c946b205f net: don't call update_pmtu unconditionally
   3a928a262c1c geneve: update skb dst pmtu on tx path
   7d6240f0fb85 Linux 4.14.39
   7fddff51f245 powerpc/eeh: Fix race with driver un/bind
   e5a290c4ff77 arm/arm64: KVM: Add PSCI version selection API
   a2066aa76a7a tick/sched: Do not mess with an enqueued hrtimer
   922e5129eb01 x86/microcode: Do not exit early from __reload_late()
   7c6bcaac737f x86/microcode/intel: Save microcode patch unconditionally
   b319531024d9 x86/smpboot: Don't use mwait_play_dead() on AMD systems
   ce911a5b1fea x86/ipc: Fix x32 version of shmid64_ds and msqid64_ds
   8e99c881e497 tools/lib/subcmd/pager.c: do not alias select() params
   d1f1f7771a6a objtool, perf: Fix GCC 8 -Wrestrict error
   bf1d7023c901 drm/i915: Enable display WA#1183 from its correct spot
   559121f5a165 drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders
   79340bda01ab rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops
   20b0f757da3b cpufreq: powernv: Fix hardlockup due to synchronous smp_call in timer interrupt
   3a5465d0b61d earlycon: Use a pointer table to fix __earlycon_table stride
   9922fd0c681f fpga-manager: altera-ps-spi: preserve nCONFIG state
   7563d6f2be58 libceph: validate con->state at the top of try_write()
   c2bc3eb5599f libceph: reschedule a tick in finish_hunting()
   76f7b52b5bf0 libceph: un-backoff on tick when we have a authenticated session
   b02bbcce8ea3 ASoC: fsl_esai: Fix divisor calculation failure at lower ratio
   674d38ea1850 crypto: drbg - set freed buffers to NULL
   a32a944a60c8 powerpc/powernv/npu: Do a PID GPU TLB flush when invalidating a large address range
   f2acc8dc0644 powerpc/mm: Flush cache on memory hot(un)plug
   5a5ea3401799 KVM: arm/arm64: Close VMID generation race
   0ddb53a67cbd ARM: socfpga_defconfig: Remove QSPI Sector 4K size force
   f671ee8de31a ARM: amba: Don't read past the end of sysfs "driver_override" buffer
   23abff7b984f ARM: amba: Fix race condition with driver_override
   bcd73c772ec1 ARM: amba: Make driver_override output consistent with other buses
   1a6e0a900bce PCI: aardvark: Fix PCIe Max Read Request Size setting
   6b3751e249ff PCI: aardvark: Use ISR1 instead of ISR0 interrupt in legacy irq mode
   f0ae21a86eb5 PCI: aardvark: Set PIO_ADDR_LS correctly in advk_pcie_rd_conf()
   e90b89088a10 PCI: aardvark: Fix logic in advk_pcie_{rd,wr}_conf()
   fd0485e2cc7b ANDROID: binder: prevent transactions into own process.
   bddabeb71f3f vfio: ccw: process ssch with interrupts disabled
   be10336a9072 bfq-iosched: ensure to clear bic/bfqq pointers when preparing request
   b23b4174275d scsi: sd: Defer spinning up drive while SANITIZE is in progress
   a5f4276787d6 kobject: don't use WARN for registration failures
   6840b774dc4d mtd: rawnand: tango: Fix struct clk memory leak
   f69cd2d30a80 mtd: cfi: cmdset_0002: Do not allow read/write to suspend erase block.
   204e0761846b mtd: cfi: cmdset_0001: Workaround Micron Erase suspend bug.
   1de1ad0c2c42 mtd: cfi: cmdset_0001: Do not allow read/write to suspend erase block.
   6c677c5968aa mtd: spi-nor: cadence-quadspi: Fix page fault kernel panic
   3d4612bf62c8 ALSA: hda/realtek - change the location for one of two front mics
   53c4197a2d7e ALSA: hda/realtek - Update ALC255 depop optimize
   c9df23efe5cc ALSA: hda/realtek - Add some fixes for ALC233
   d680a34d82b6 ALSA: hda: Hardening for potential Spectre v1
   bda3aba8c0a1 ALSA: seq: oss: Hardening for potential Spectre v1
   4a52a2127240 ALSA: seq: oss: Fix unbalanced use lock for synth MIDI device
   30ddc329d562 ALSA: core: Report audio_tstamp in snd_pcm_sync_ptr
   00e0495d8327 ALSA: pcm: Return negative delays from SNDRV_PCM_IOCTL_DELAY.
   6ab1a94d17db ALSA: control: Hardening for potential Spectre v1
   9d57d45965dd ALSA: rme9652: Hardening for potential Spectre v1
   f8616ffbb78d ALSA: hdspm: Hardening for potential Spectre v1
   8f1705268fd2 ALSA: asihpi: Hardening for potential Spectre v1
   b67a05364e5d ALSA: opl3: Hardening for potential Spectre v1
   19baecfc1105 ALSA: hda - Skip jack and others for non-existing PCM streams
   d03fbe62e173 ALSA: dice: fix error path to destroy initialized stream data
   ba9c9886a40d ALSA: dice: fix OUI for TC group
   545906124041 tty: Use __GFP_NOFAIL for tty_ldisc_get()
   877f418171af tty: Avoid possible error pointer dereference at tty_ldisc_restore().
   6a50af86a62b tty: n_gsm: Fix DLCI handling for ADM mode if debug & 2 is not set
   6ba9a47d1fc5 tty: n_gsm: Fix long delays with control frame timeouts in ADM mode
   4854b9665c81 tty: Don't call panic() at tty_ldisc_init()
   c0ed8ece4ef3 drm/virtio: fix vq wait_event condition
   998d43ce034b virtio_console: reset on out of memory
   e9287108acce virtio_console: move removal code
   75fc6f2d39bf virtio_console: drop custom control queue cleanup
   6b1c41a0f718 virtio_console: free buffers after reset
   4217a339b37d virtio_console: don't tie bufs to a vq
   7ae93ff136a0 virtio: add ability to iterate over vqs
   cf7405f67543 ALSA: usb-audio: Skip broken EU on Dell dock USB-audio
   e6d2055ba32f USB: Increment wakeup count on remote wakeup.
   c59dc4d13519 usb: core: Add quirk for HP v222w 16GB Mini
   333909311d70 usb: typec: ucsi: Increase command completion timeout value
   f310eb70657e USB: serial: cp210x: add ID for NI USB serial console
   747120e77100 USB: serial: ftdi_sio: use jtag quirk for Arrow USB Blaster
   8f30aa32b716 USB: serial: simple: add libtransistor console
   0b932b1ca9da xhci: Fix USB ports for Dell Inspiron 5775
   64abd2428e54 Revert "xhci: plat: Register shutdown for xhci_plat"
   b792b1f7d01c usbip: vhci_hcd: check rhport before using in vhci_hub_control()
   4abe5b775a16 usbip: vhci_hcd: Fix usb device and sockfd leaks
   944edaf13dee usbip: usbip_host: fix to hold parent lock for device_attach() calls
   470bf16ae1ab usbip: usbip_event: fix to not print kernel pointer address
   76dbabb38a18 random: rate limit unseeded randomness warnings
   ffc5b50a2b53 random: fix possible sleeping allocation from irq context
   812b51a63000 random: set up the NUMA crng instances after the CRNG is fully initialized
   ae0db58dabe5 ext4: fix bitmap position validation
   b39430ea0687 ext4: add validity checks for bitmap block numbers
   55cc3bb0a6c7 ext4: add MODULE_SOFTDEP to ensure crc32c is included in the initramfs
   4a3674acbf8b ext4: set h_journal if there is a failure starting a reserved handle
   1a538cb0879d ext4: prevent right-shifting extents beyond EXT_MAX_BLOCKS
   a87463f7420c Linux 4.14.38
   3e4915873cff ACPI / video: Only default only_lcd to true on Win8-ready _desktops_
   c371fe019001 s390/uprobes: implement arch_uretprobe_is_alive()
   5dad51054d8a s390/dasd: fix IO error for newly defined devices
   3b5c2e1d163a s390/cio: update chpid descriptor after resource accessibility event
   a75bf6f71744 tracing: Fix missing tab for hwlat_detector print format
   d82923c017de block/swim: Fix IO error at end of medium
   06dc2e919593 block/swim: Fix array bounds check
   8c37ac3c04e7 block/swim: Select appropriate drive on device open
   cdb0d5fa2528 block/swim: Rename macros to avoid inconsistent inverted logic
   f359e87feb88 block/swim: Remove extra put_disk() call from error path
   b7100feb26d2 block/swim: Don't log an error message for an invalid ioctl
   0dd9146a2291 block/swim: Check drive type
   43f8a4f2c8b2 m68k/mac: Don't remap SWIM MMIO region
   75b98294e09a fsnotify: Fix fsnotify_mark_connector race
   68c09d548bfc cdrom: information leak in cdrom_ioctl_media_changed()
   f4df47e36ac0 scsi: mptsas: Disable WRITE SAME
   77df079be9b4 commoncap: Handle memory allocation failure.
   540e7b5be492 Revert "mm/hmm: fix header file if/else/endif maze"
   a252b9732243 arm64: dts: rockchip: remove vdd_log from rk3399-puma
   fcc347bc1e34 microblaze: Setup dependencies for ASM optimized lib functions
   5787b55b5019 s390: correct module section names for expoline code revert
   f836b34fb056 s390: correct nospec auto detection init order
   fce1bf054f0b s390: add sysfs attributes for spectre
   68cb884e1228 s390: report spectre mitigation via syslog
   719b84c9aec2 s390: add automatic detection of the spectre defense
   ea1bbd53f055 s390: move nobp parameter functions to nospec-branch.c
   6cdc4b21d219 s390/entry.S: fix spurious zeroing of r0
   74a93ae5c328 s390: do not bypass BPENTER for interrupt system calls
   6288e169a25e s390: Replace IS_ENABLED(EXPOLINE_*) with IS_ENABLED(CONFIG_EXPOLINE_*)
   1d966a6aded3 KVM: s390: force bp isolation for VSIE
   b609eb65f315 s390: introduce execute-trampolines for branches
   0bd4c47c2026 s390: run user space and KVM guests with modified branch prediction
   43cccd87c184 s390: add options to change branch prediction behaviour for the kernel
   c257f81b6d45 s390/alternative: use a copy of the facility bit mask
   2ae89b86a77f s390: add optimized array_index_mask_nospec
   2ae8b68382ce s390: scrub registers on kernel entry and KVM exit
   ea5566fecd03 KVM: s390: wire up bpb feature
   37e79747128b s390: enable CPU alternatives unconditionally
   b44533a06fd8 s390: introduce CPU alternatives
   55c80adf0d0e virtio_net: fix adding vids on big-endian
   d86aacaaf9d2 virtio_net: split out ctrl buffer
   16c36a2c7632 net: ethernet: ti: cpsw: fix tx vlan priority mapping
   7814c479de7a llc: fix NULL pointer deref for SOCK_ZAPPED
   543a60112f01 llc: hold llc_sap before release_sock()
   4c2c574cf6ed net: sched: ife: check on metadata length
   388f3d9708fc net: sched: ife: handle malformed tlv length
   75020d6319ee tcp: clear tp->packets_out when purging write queue
   da499024f6fe net: sched: ife: signal not finding metaid
   2f781ebfb08f strparser: Fix incorrect strp->need_bytes value.
   109feb04c851 amd-xgbe: Only use the SFP supported transceiver signals
   9a66123182a6 strparser: Do not call mod_delayed_work with a timeout of LONG_MAX
   346ba2f22107 amd-xgbe: Improve KR auto-negotiation and training
   29b623b60549 sctp: do not check port in sctp_inet6_cmp_addr
   f42036e8051e amd-xgbe: Add pre/post auto-negotiation phy hooks
   dd997151740f vlan: Fix reading memory beyond skb->tail in skb_vlan_tagged_multi
   88b7895e7c6d pppoe: check sockaddr length in pppoe_connect()
   ed2ba25f6d50 tipc: add policy for TIPC_NLA_NET_ADDR
   6da813d79cfa packet: fix bitfield update race
   70a615d7daa0 team: fix netconsole setup over team
   07cb0b54d7d9 net/smc: fix shutdown in state SMC_LISTEN
   7b4f4d759c8e team: avoid adding twice the same option to the event list
   012e5e5b6991 net: fix deadlock while clearing neighbor proxy table
   d5387e66388f tcp: md5: reject TCP_MD5SIG or TCP_MD5SIG_EXT on established sockets
   7c2352520e51 net: af_packet: fix race in PACKET_{R|T}X_RING
   b76d3f3309cf tcp: don't read out-of-bounds opsize
   cb225e80c9a3 llc: delete timers synchronously in llc_sk_free()
   15efa783286c net: validate attribute sizes in neigh_dump_table()
   dbf57fd1e05e l2tp: check sockaddr length in pppol2tp_connect()
   c7a936b1dd0f KEYS: DNS: limit the length of option strings
   a370d8a3aaf2 ipv6: sr: fix NULL pointer dereference in seg6_do_srh_encap()- v4 pkts
   8d34c6773459 ipv6: add RTA_TABLE and RTA_PREFSRC to rtm_ipv6_policy
   e0286ea0846c bonding: do not set slave_dev npinfo before slave_enable_netpoll in bond_enslave
   5f50186dd810 Revert "ath10k: send (re)assoc peer command when NSS changed"
   781eeb7af2bd tpm: add retry logic
   f6891ec29c59 tpm: tpm-interface: fix tpm_transmit/_cmd kdoc
   ac5881b7814d tpm: cmd_ready command can be issued only after granting locality
   3b38734ed9fe i40e: Fix attach VF to VM issue
   00c54b354411 drm: bridge: dw-hdmi: Fix overflow workaround for Amlogic Meson GX SoCs
   94c0308279ec Revert "pinctrl: intel: Initialize GPIO properly when used through irqchip"
   753be7e83bb8 Linux 4.14.37
   f606893fbbc6 mac80211_hwsim: fix use-after-free bug in hwsim_exit_net
   679833ea1822 Revert "KVM: X86: Fix SMRAM accessing even if VM is shutdown"
   75dceb6872b3 RDMA/mlx5: Fix NULL dereference while accessing XRC_TGT QPs
   01e71c218219 perf: Return proper values for user stack errors
   66038084560d perf: Fix sample_max_stack maximum check
   5bcf16944454 netfilter: x_tables: limit allocation requests for blob rule heads
   764f2162d97a netfilter: compat: reject huge allocation requests
   8d92d5336539 netfilter: compat: prepare xt_compat_init_offsets to return errors
   82b68ecde5d0 netfilter: x_tables: add counters allocation wrapper
   fab0b3ce67a5 netfilter: x_tables: cap allocations at 512 mbyte
   89f3232c394e alarmtimer: Init nanosleep alarm timer on stack
   76cd54fa70ce RDMA/core: Reduce poll batch for direct cq polling
   de16dfcc510d irqchip/gic-v3: Change pr_debug message to pr_devel
   4032cd4fd3ae cpumask: Make for_each_cpu_wrap() available on UP as well
   c834b955d3f0 irqchip/gic-v3: Ignore disabled ITS nodes
   2d8d8d23c485 perf test: Fix test trace+probe_libc_inet_pton.sh for s390x
   74cd9414788c powerpc/powernv: IMC fix out of bounds memory access at shutdown
   c74e004c6273 locking/qspinlock: Ensure node->count is updated before initialising node
   5350cb0111d2 x86/platform/UV: Fix GAM Range Table entries less than 1GB
   288b373264c5 powerpc/mm/hash64: Zero PGD pages on allocation
   f4d6e4598a29 vfs/proc/kcore, x86/mm/kcore: Fix SMAP fault when dumping vsyscall user page
   c064b7c1d203 PM / wakeirq: Fix unbalanced IRQ enable for wakeirq
   afa0ce071488 ACPI / EC: Restore polling during noirq suspend/resume phases
   85bd5c686fe9 bpf: fix rlimit in reuseport net selftest
   ee5fe4bdcf2a net: stmmac: discard disabled flags in interrupt status register
   26bebd5a7865 SUNRPC: Don't call __UDPX_INC_STATS() from a preemptible context
   f58e4ecb9b2e KVM: PPC: Book3S HV: Fix handling of secondary HPTEG in HPT resizing code
   d6b00490a04d tools/libbpf: handle issues with bpf ELF objects containing .eh_frames
   327aac8ccbc5 net: Extra '_get' in declaration of arch_get_platform_mac_address
   0b1fa241dd86 svcrdma: Fix Read chunk round-up
   e781fff7b78f rxrpc: Don't put crypto buffers on the stack
   c5ce9e5b57cc selftests/ftrace: Add some missing glob checks
   ae9c78af577f cpufreq: intel_pstate: Enable HWP during system resume on CPU0
   c4c9fd55899f bcache: return attach error when no cache set exist
   4c8e0270dc7a bcache: fix for data collapse after re-attaching an attached device
   311e31419b72 bcache: fix for allocator and register thread race
   f89edd17aff4 bcache: properly set task state in bch_writeback_thread()
   05921c492fdb cifs: silence compiler warnings showing up with gcc-8.0.0
   4b95781cb6f3 PM / domains: Fix up domain-idle-states OF parsing
   05e52e5bd103 proc: fix /proc/*/map_files lookup
   4ec317a41d80 arm64: spinlock: Fix theoretical trylock() A-B-A with LSE atomics
   693b9589c297 RDS: IB: Fix null pointer issue
   a8e7a4e24374 bpf: sockmap, fix leaking maps with attached but not detached progs
   05c062c3685e xen/grant-table: Use put_page instead of free_page
   70f3461c23ff xen-netfront: Fix race between device setup and open
   2f79b5e52d46 perf evsel: Fix period/freq terms setup
   b1f9f9fb3f99 MIPS: Generic: Support GIC in EIC mode
   76e3ea2f9563 perf record: Fix period option handling
   f938c2acc829 MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS
   3e01c16d8751 bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y
   74abca65f1e4 ACPI / scan: Use acpi_bus_get_status() to initialize ACPI_TYPE_DEVICE devs
   f920e914801c ACPI / bus: Do not call _STA on battery devices with unmet dependencies
   51939996acde ACPI: processor_perflib: Do not send _PPC change notification if not ready
   573cb560b4ed firmware: dmi_scan: Fix handling of empty DMI strings
   ee06ed9ba518 x86/dumpstack: Avoid uninitlized variable
   423505471f5e x86/power: Fix swsusp_arch_resume prototype
   074372c8124c netfilter: ipv6: nf_defrag: Kill frag queue on RFC2460 failure
   2cd5100363b7 s390/eadm: fix CONFIG_BLOCK include dependency
   eb41efa13865 drm/nouveau/pmu/fuc: don't use movw directly anymore
   fd370b8e65e3 IB/core: Map iWarp AH type to undefined in rdma_ah_find_type
   f63bb02694f0 IB/ipoib: Fix for potential no-carrier state
   8f96d408a954 IB/hfi1: Fix for potential refcount leak in hfi1_open_file()
   5ceae7690f0d IB/hfi1: Re-order IRQ cleanup to address driver cleanup race
   73027d80d67e blk-mq: fix discard merge with scheduler attached
   6eddea4ba5cc openvswitch: Remove padding from packet before L3+ conntrack processing
   3b1d9626fc58 mm/fadvise: discard partial page if endbyte is also EOF
   1f9c87e25158 mm: pin address_space before dereferencing it while isolating an LRU page
   8054b87fccd4 mm: thp: use down_read_trylock() in khugepaged to avoid long block
   6acb8818eff4 sparc64: update pmdp_invalidate() to return old pmd value
   78185a93d42d asm-generic: provide generic_pmdp_establish()
   305e56756da7 mm/mempolicy: add nodes_empty check in SYSC_migrate_pages
   6cab60ac6a0a mm/mempolicy: fix the check of nodemask from user
   a7fbc7f3134a ocfs2: return error when we attempt to access a dirty bh in jbd2
   a66174eb4a14 ocfs2/acl: use 'ip_xattr_sem' to protect getting extended attribute
   66aaeed2796e ocfs2: return -EROFS to mount.ocfs2 if inode block is invalid
   710b5124aac6 fs/dax.c: release PMD lock even when there is no PMD support in DAX
   cc0600dae30f x86/kvm/vmx: do not use vm-exit instruction length for fast MMIO when running nested
   d757c3a9cf4a kvm: Map PFN-type memory regions as writable (if possible)
   a6a25002e6d8 tcp_nv: fix potential integer overflow in tcpnv_acked
   ad10785a706e netfilter: x_tables: fix pointer leaks to userspace
   2b7cc93682ac x86/hyperv: Check for required priviliges in hyperv_init()
   cdf635a66c5b gianfar: prevent integer wrapping in the rx handler
   67fa8bfff771 ntb_transport: Fix bug with max_mw_size parameter
   d810c548157f RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure
   0bddd43ac200 powerpc/numa: Ensure nodes initialized for hotplug
   0caebc381032 powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes
   b086dd2d79d9 samples/bpf: Partially fixes the bpf.o build
   64e5e46cdd8b i40e: fix reported mask for ntuple filters
   1ec85fe4e259 i40e: program fragmented IPv4 filter input set
   7addb3e4ad3d ixgbe: don't set RXDCTL.RLPML for 82599
   27eb641f2368 jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path
   19b3638ce460 RDMA/uverbs: Use an unambiguous errno for method not supported
   827aab45cb16 crypto: artpec6 - remove select on non-existing CRYPTO_SHA384
   592ea370bf1c device property: Define type of PROPERTY_ENRTY_*() macros
   c5fda2b8610b tty: serial: exar: Relocate sleep wake-up handling
   519a7119527c x86/hyperv: Stop suppressing X86_FEATURE_PCID
   9a1dda252663 fm10k: fix "failed to kill vid" message for VF
   0e7a0c139cbf igb: Clear TXSTMP when ptp_tx_work() is timeout
   187bf28199d8 igb: Allow to remove administratively set MAC on VFs
   048af64fd48f ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink
   f25ba4f6be4a blk-mq-debugfs: don't allow write on attributes with seq_operations set
   a42ebbdae0a5 KVM: s390: vsie: use READ_ONCE to access some SCB fields
   48d441324a58 platform/x86: thinkpad_acpi: suppress warning about palm detection
   b9d78055c6ae i40evf: ignore link up if not running
   09f6d65db13b i40evf: Don't schedule reset_task when device is being removed
   7c7ae4ed2fcd bpf: test_maps: cleanup sockmaps when test ends
   c6c6e38aeff2 block: Set BIO_TRACE_COMPLETION on new bio during split
   f2e73df302f3 nfp: fix error return code in nfp_pci_probe()
   8591958413bf HID: roccat: prevent an out of bounds read in kovaplus_profile_activated()
   6a5505da41fa Input: stmfts - set IRQ_NOAUTOEN to the irq flag
   8afed2798e50 scsi: fas216: fix sense buffer initialization
   800fda575b11 scsi: devinfo: fix format of the device list
   a09881cfb713 f2fs: avoid hungtask when GC encrypted block if io_bits is set
   889177d172d3 RDMA/cma: Check existence of netdevice during port validation
   48b8839d91a4 Btrfs: raid56: fix race between merge_bio and rbio_orig_end_io
   ebe064401f07 Btrfs: fix unexpected EEXIST from btrfs_get_extent
   c231cec825a9 btrfs: fail mount when sb flag is not in BTRFS_SUPER_FLAG_SUPP
   d91bb7c6988b Btrfs: fix scrub to repair raid6 corruption
   db6d651eccde btrfs: Fix out of bounds access in btrfs_search_slot
   a4909c8518f7 Btrfs: set plug for fsync
   fb5d97a19fc3 ipmi/powernv: Fix error return code in ipmi_powernv_probe()
   afadc440a1cc mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl()
   18004e6f26ec kconfig: Fix expr_free() E_NOT leak
   0f511f3dda8c kconfig: Fix automatic menu creation mem leak
   8bf116b258c2 kconfig: Don't leak main menus during parsing
   9f2df99f9eb0 watchdog: sp5100_tco: Fix watchdog disable bit
   ebf5ffca1bf2 PCI: Add dummy pci_irqd_intx_xlate() for CONFIG_PCI=n build
   c212c855a09d MIPS: Fix clean of vmlinuz.{32,ecoff,bin,srec}
   81fbb7e26ea1 nfs: Do not convert nfs_idmap_cache_timeout to jiffies
   35ceddc59cd4 IB/cq: Don't force IB_POLL_DIRECT poll context for ib_process_cq_direct
   58bc0fd8434d spi: a3700: Clear DATA_OUT when performing a read
   5bb5b9c68192 net: stmmac: dwmac-meson8b: propagate rate changes to the parent clock
   5bfa11c96192 net: stmmac: dwmac-meson8b: fix setting the RGMII TX clock on Meson8b
   2a71a742f09b ubifs: Fix uninitialized variable in search_dh_cookie()
   a1dfcb01e374 blk-mq: turn WARN_ON in __blk_mq_run_hw_queue into printk
   2e102fe86ede dm mpath: return DM_MAPIO_REQUEUE on blk-mq rq allocation failure
   223ed638e937 dm thin: fix documentation relative to low water mark threshold
   e9c8a5fa078c iommu/vt-d: Use domain instead of cache fetching
   6ec6bd8ec2e3 powerpc: System reset avoid interleaving oops using die synchronisation
   bc5fddf315f8 iommu/exynos: Don't unconditionally steal bus ops
   77d17d0e8934 perf record: Fix failed memory allocation for get_cpuid_str
   1fe5e88c389a tools lib traceevent: Fix get_field_str() for dynamic strings
   4e63115b6b9d perf callchain: Fix attr.sample_max_stack setting
   448bcd67b4c5 tools lib traceevent: Simplify pointer print logic and fix %pF
   0eda4d03ef4c perf unwind: Do not look just at the global callchain_param.record_mode
   f3a7d11834f3 scsi: qla2xxx: Fix warning in qla2x00_async_iocb_timeout()
   f3ce194cae63 i40iw: Zero-out consumer key on allocate stag for FMR
   b3b2ca24d9f7 i40iw: Free IEQ resources
   0d5ef8956c84 Input: synaptics - reset the ABS_X/Y fuzz after initializing MT axes
   0d9a46ae3204 libbpf: Makefile set specified permission mode
   d925c3087422 Input: psmouse - fix Synaptics detection when protocol is disabled
   03fdc4ef7a67 PCI: Add function 1 DMA alias quirk for Marvell 9128
   c45ab4fb384c selftest: ftrace: Fix to pick text symbols for kprobes
   342d9092a501 xprtrdma: Fix backchannel allocation of extra rpcrdma_reps
   79f2ced39657 platform/x86: dell-laptop: Filter out spurious keyboard backlight change events
   80bd91ab9ad8 KVM: s390: use created_vcpus in more places
   a5a8ca753c0c tracing/hrtimer: Fix tracing bugs by taking all clock bases and modes into account
   e0a1cec3db0a netfilter: ipv6: nf_defrag: Pass on packets to stack per RFC2460
   ddf09f2a0896 KVM: PPC: Book3S HV: Enable migration of decrementer register
   b7b27e19e374 RDMA/core: Clarify rdma_ah_find_type
   8e40eae185f8 kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl
   3f3017fa1540 ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read()
   d3222cfc0b58 ALSA: hda - Use IS_REACHABLE() for dependency on input
   4e7284b34c78 ACPI / LPSS: Do not instiate platform_dev for devs without MMIO resources
   7a420b5d95a5 NFSv4: always set NFS_LOCK_LOST when a lock is lost.
   239c948e3266 x86/tsc: Allow TSC calibration without PIT
   4a5d70332d57 firewire-ohci: work around oversized DMA reads on JMicron controllers
   1f52b0c64215 usb: musb: Fix external abort in musb_remove on omap2430
   de4c4914cce2 usb: musb: call pm_runtime_{get,put}_sync before reading vbus registers
   43de32cdf0f4 usb: musb: fix enumeration after resume
   829239740c12 drm/i915/bxt, glk: Increase PCODE timeouts during CDCLK freq changing
   5c825627d4e5 drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state
   6312eff3c70e drm/i915: Do no use kfree() to free a kmem_cache_alloc() return value
   8e0489cf4d09 drm/i915/audio: Fix audio detection issue on GLK
   c53f225fd792 drm/i915/gvt: throw error on unhandled vfio ioctls
   325abf3db041 drm/vc4: Fix memory leak during BO teardown
   08641a24d4e7 x86/tsc: Prevent 32bit truncation in calc_hpet_ref()
   c6aaaaa4d62a clocksource/imx-tpm: Correct -ETIME return condition check
   b8d4055372b5 x86/acpi: Prevent X2APIC id 0xffffffff from being accounted
   f6edc45e21c3 btrfs: fix unaligned access in readdir
   240a52868485 cifs: do not allow creating sockets except with SMB1 posix exensions
   d6949f48093c Linux 4.14.36
   7c9b87a78a17 writeback: safer lock nesting
   071ff203d962 media: staging: lirc_zilog: incorrect reference counting
   e7a08ffb2d89 Revert "media: lirc_zilog: driver only sends LIRCCODE"
   8caa4c5fde76 iwlwifi: add a bunch of new 9000 PCI IDs
   0c61952c3d19 iwlwifi: add shared clock PHY config flag for some devices
   30593709f80d net: dsa: Discard frames from unused ports
   90a32d1f0ec9 mm/filemap.c: fix NULL pointer in page_cache_tree_insert()
   5e7575c6690a autofs: mount point create should honour passed in mode
   d4d49cb1c20a Don't leak MNT_INTERNAL away from internal mounts
   085125572a45 rpc_pipefs: fix double-dput()
   0bb4a6f2ff1a orangefs_kill_sb(): deal with allocation failures
   bb5def77d0a1 hypfs_kill_super(): deal with failed allocations
   c780ac96e120 jffs2_kill_sb(): deal with failed allocations
   22ec5ee71086 drm/i915: Correctly handle limited range YCbCr data on VLV/CHV
   4bddb1209a6d mmc: sdhci-pci: Only do AMD tuning for HS200
   28f46dee49d3 fanotify: fix logic of events on child
   a2a9d0190f99 udf: Fix leak of UTF-16 surrogates into encoded strings
   f86815184c47 powerpc/lib: Fix off-by-one in alternate feature patching
   ce3b0b0589a8 powerpc/xive: Fix trying to "push" an already active pool VP
   49a52f7d9274 powerpc/eeh: Fix enabling bridge MMIO windows
   a5f6e787b9b0 MIPS: memset.S: Fix clobber of v1 in last_fixup
   6da34ca1ca3e MIPS: memset.S: Fix return of __clear_user from Lpartial_fixup
   7b34760dc682 MIPS: memset.S: EVA & fault support for small_memset
   23f5562852b9 MIPS: uaccess: Add micromips clobbers to bzero invocation
   1da964d421da HID: wacom: bluetooth: send exit report for recent Bluetooth devices
   0e159a9e1823 HID: hidraw: Fix crash on HIDIOCGFEATURE with a destroyed device
   27840bc4ebb2 HID: input: fix battery level reporting on BT mice
   90936d903c2f random: add new ioctl RNDRESEEDCRNG
   d152fcc17314 random: crng_reseed() should lock the crng instance that it is modifying
   7b6b1f3a1923 random: use a different mixing algorithm for add_device_randomness()
   6e513bc20ca6 random: fix crng_ready() test
   8036cdaa1b13 ALSA: hda/realtek - adjust the location of one mic
   adc02ac60919 ALSA: hda/realtek - set PINCFG_HEADSET_MIC to parse_flags
   11e9bed2b971 ALSA: hda - New VIA controller suppor no-snoop path
   fcf38cf55e28 ALSA: rawmidi: Fix missing input substream checks in compat ioctls
   43b3e7915edd ALSA: line6: Use correct endpoint type for midi output
   bdc6f4c3db08 drm/radeon: Fix PCIe lane width calculation
   110b72d9351f drm/radeon: add PX quirk for Asus K73TK
   791469d6b882 drm/rockchip: Clear all interrupts before requesting the IRQ
   f188464e3d54 drm/amdgpu/si: implement get/set pcie_lanes asic callback
   f056e3339741 drm/amdgpu: Fix PCIe lane width calculation
   57e56826611a drm/amdgpu/sdma: fix mask in emit_pipeline_sync
   c73d9e350085 drm/amdgpu: Fix always_valid bos multiple LRU insertions.
   674b6963cec2 drm/amdgpu: Add an ATPX quirk for hybrid laptop
   312d02879f9f ALSA: pcm: Fix endless loop for XRUN recovery in OSS emulation
   157113cb7c89 ALSA: pcm: Fix mutex unbalance in OSS emulation ioctls
   048747b04842 ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams
   bd889a82fb01 ALSA: pcm: Avoid potential races between OSS ioctls and read/write
   4d2ea307ffa1 ALSA: pcm: Use ERESTARTSYS instead of EINTR in OSS emulation
   2ccdea040e81 vfio/pci: Virtualize Maximum Read Request Size
   23a63d96e015 watchdog: f71808e_wdt: Fix WD_EN register read
   28fe0fba29f2 dt-bindings: clock: mediatek: add binding for fixed-factor clock axisel_d4
   ecb67e92d42e thermal: imx: Fix race condition in imx_thermal_probe()
   c9b200ce2be5 pwm: rcar: Fix a condition to prevent mismatch value setting to duty
   ff18ffb1f81d clk: bcm2835: De-assert/assert PLL reset signal when appropriate
   dc7a428ae26f clk: mediatek: fix PWM clock source by adding a fixed-factor clock
   d8b6fdbe513d clk: fix false-positive Wmaybe-uninitialized warning
   37d8947c0b07 clk: mvebu: armada-38x: add support for missing clocks
   f13b4a61989f PCI: Mark Broadcom HT1100 and HT2000 Root Port Extended Tags as broken
   4b684fbbc58e mmc: tmio: Fix error handling when issuing CMD23
   e5e2841e20ff mmc: jz4740: Fix race condition in IRQ mask update
   180d28f824ce iommu/vt-d: Fix a potential memory leak
   5a999c2bef68 um: Use POSIX ucontext_t instead of struct ucontext
   f57f3f346d05 um: Compile with modern headers
   dc0f00327452 ring-buffer: Check if memory is available before allocation
   4171ea2471a1 nfit: skip region registration for incomplete control regions
   5520091356b0 nfit, address-range-scrub: fix scrub in-progress reporting
   b68b77c935dd libnvdimm, namespace: use a safe lookup for dimm device name
   45980ba59916 libnvdimm, dimm: fix dpa reservation vs uninitialized label area
   a43d8e0ee79d tpm: self test failure should not cause suspend to fail
   c1edd3b19f30 cxl: Fix possible deadlock when processing page faults from cxllib
   156b45ed2207 dmaengine: at_xdmac: fix rare residue corruption
   e99ca1ee070d IB/srp: Fix completion vector assignment algorithm
   fe71b03e6983 IB/srp: Fix srp_abort()
   0bb5579128e6 ALSA: pcm: Fix UAF at PCM release via PCM timer access
   d3b14a66e14b RDMA/rxe: Fix an out-of-bounds read
   28ce82e3c8b1 RDMA/mlx5: Protect from NULL pointer derefence
   b140d9468870 RDMA/ucma: Don't allow setting RDMA_OPTION_IB_PATH without an RDMA device
   79fbd052ea63 dm crypt: limit the number of allocated pages
   e7793f2a2ac8 ext4: add extra checks to ext4_xattr_block_get()
   9703952178f1 ext4: add bounds checking to ext4_xattr_find_entry()
   598e04ae2fc4 ext4: move call to ext4_error() into ext4_xattr_check_block()
   b2623d816656 ext4: don't allow r/w mounts if metadata blocks overlap the superblock
   26dbb30c58ff ext4: always initialize the crc32c checksum driver
   8e0e94683f84 ext4: fail ext4_iget for root directory if unallocated
   a57eb14b740e ext4: limit xattr size to INT_MAX
   5058b70d2118 ext4: protect i_disksize update by i_data_sem in direct write path
   bd499f553849 ext4: don't update checksum of new initialized bitmaps
   73297f13a003 ext4: pass -ESHUTDOWN code to jbd2 layer
   09439481998a ext4: eliminate sleep from shutdown ioctl
   7ebcea259682 ext4: shutdown should not prevent get_write_access
   867175f94485 jbd2: if the journal is aborted then don't allow update of the log tail
   6151a5a45fc4 block: use 32-bit blk_status_t on Alpha
   7044bf9ef6c8 extcon: intel-cht-wc: Set direction and drv flags for V5 boost GPIO
   b0afd9d1cb5a random: use a tighter cap in credit_entropy_bits_safe()
   439e8b2dcab1 irqchip/gic: Take lock when updating irq type
   283637785763 thunderbolt: Prevent crash when ICM firmware is not running
   5ae695df59e1 thunderbolt: Resume control channel after hibernation image is created
   7a4a66c504fb thunderbolt: Serialize PCIe tunnel creation with PCI rescan
   6f40f6ee22b9 thunderbolt: Wait a bit longer for ICM to authenticate the active NVM
   73b969f6a920 ASoC: topology: Fix kcontrol name string handling
   7e23ef535073 ASoC: ssm2602: Replace reg_default_raw with reg_default
   1b3d2e7a3409 soc: mediatek: fix the mistaken pointer accessed when subdomains are added
   3f306336cdee HID: core: Fix size as type u32
   f671ac7a5317 HID: Fix hid_report_len usage
   25b6ee378dc4 powerpc/powernv: Fix OPAL NVRAM driver OPAL_BUSY loops
   7c854f2e1ff0 powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops
   a55d2c9d42f9 powerpc/kexec_file: Fix error code when trying to load kdump kernel
   fa99a3470e91 powerpc/kprobes: Fix call trace due to incorrect preempt count
   3df05fcf8911 powerpc/64: Fix smp_wmb barrier definition use use lwsync consistently
   1699bd03742d powerpc/64: Call H_REGISTER_PROC_TBL when running as a HPT guest on POWER9
   f4eff13a2780 powerpc/64s: Fix dt_cpu_ftrs to have restore_cpu clear unwanted LPCR bits
   c3baeca67d85 powerpc/powernv: Handle unknown OPAL errors in opal_nvram_write()
   693b03f9b185 CIFS: fix sha512 check in cifs_crypto_secmech_release
   7a55d160b730 CIFS: add sha512 secmech
   0910e2804f2e CIFS: refactor crypto shash/sdesc allocation&free
   fd5cc02cbef9 i2c: i801: Restore configuration at shutdown
   44ff2389a840 i2c: i801: Save register SMBSLVCMD value only once
   d6b3a5c87d45 HID: i2c-hid: fix size check and type usage
   70dbed63a96d smb3: Fix root directory when server returns inode number of zero
   bf895b2a637d fix smb3-encryption breakage when CONFIG_DEBUG_SG=y
   fdbd79540520 cifs: fix memory leak in SMB2_open()
   59d3a952e4f3 usb: dwc3: gadget: never call ->complete() from ->ep_queue()
   093dcb929c8e usb: dwc3: pci: Properly cleanup resource
   30e9a1cddc4d usb: dwc3: prevent setting PRTCAP to OTG from debugfs
   f7f9187a110e USB:fix USB3 devices behind USB3 hubs not resuming at hibernate thaw
   96dc465173a1 USB: gadget: f_midi: fixing a possible double-free in f_midi
   a2b540651d8c ACPI / hotplug / PCI: Check presence of slot itself in get_slot_status()
   d6e98387b2e9 ACPI / video: Add quirk to force acpi-video backlight on Samsung 670Z5E
   3dac1fe2719d regmap: Fix reversed bounds check in regmap_raw_write()
   666d1084c13d xen-netfront: Fix hang on device removal
   e7b00dc28275 x86/xen: Delay get_cpu_cap until stack canary is established
   fcd054c733cf media: vsp1: Fix BRx conditional path in WPF
   2fb28b075f80 media: vivid: check if the cec_adapter is valid
   9864a1ef8679 media: atomisp_fops.c: disable atomisp_compat_ioctl32
   9629964f032c spi: Fix unregistration of controller with fixed SPI bus number
   e4ff723039dc spi: Fix scatterlist elements size in spi_map_buf
   faddb17685f9 spi: atmel: init FIFOs before spi enable
   38866e866121 ARM: dts: at91: sama5d4: fix pinctrl compatible string
   c57b7e1a150e ARM: dts: exynos: Fix IOMMU support for GScaler devices on Exynos5250
   838ea3802e9d ARM: dts: at91: at91sam9g25: fix mux-mask pinctrl property
   958d6e41888f arm: dts: mt7623: fix USB initialization fails on bananapi-r2
   2106cd34635e ARM: EXYNOS: Fix coupled CPU idle freeze on Exynos4210
   326e61ce9761 ARM: dts: da850-lego-ev3: Fix battery voltage gpio
   8f1a2803e4c2 KVM: arm/arm64: vgic-its: Fix potential overrun in vgic_copy_lpi_list
   8fdbba69cb34 ARM64: dts: meson: reduce odroid-c2 eMMC maximum rate
   7732495c599c usb: gadget: udc: core: update usb_ep_queue() documentation
   aea6c0b4aee8 phy: allwinner: sun4i-usb: poll vbus changes on A23/A33 when driving VBUS
   334d8f201ef5 usb: musb: gadget: misplaced out of bounds check
   20eaa393fcd3 mm, slab: reschedule cache_reap() on the same CPU
   703eee654360 ipc/shm: fix use-after-free of shm file via remap_file_pages()
   c25ef6220fac resource: fix integer overflow at reallocation
   f659e7e79f52 fs/reiserfs/journal.c: add missing resierfs_warning() arg
   6337067b2ab6 task_struct: only use anon struct under randstruct plugin
   28cb085f1598 mm/hmm: hmm_pfns_bad() was accessing wrong struct
   963722d031e5 mm/hmm: fix header file if/else/endif maze
   e84e6914ccb4 mm/ksm.c: fix inconsistent accounting of zero pages
   577b4eb23811 ubi: Reject MLC NAND
   7ade852714de ubi: Fix error for write access
   bf3fbf54a9ae ubi: fastmap: Don't flush fastmap work on detach
   09844df06087 ubifs: Check ubifs_wbuf_sync() return code
   f1e90bf95e55 cpufreq: CPPC: Use transition_delay_us depending transition_latency
   9427a4aecf23 tty: make n_tty_read() always abort if hangup is in progress
   672f07d8274b Linux 4.14.35
   9a0a509839f3 nfsd: fix incorrect umasks
   61534984904e hugetlbfs: fix bug in pgoff overflow checking
   0319ce67b793 xen: xenbus_dev_frontend: Fix XS_TRANSACTION_END handling
   80f509d4919d ovl: fix lookup with middle layer opaque dir and absolute path redirects
   5ee935daaaeb blk-mq: don't keep offline CPUs mapped to hctx 0
   a333a284fff2 lib: fix stall in __bitmap_parselist()
   f9e66750d4bd f2fs: fix heap mode to reset it back
   e4fa275b8fdd sunrpc: remove incorrect HMAC request initialization
   3d06535693a3 ath9k: Protect queue draining by rcu_read_lock()
   aa3bfa29fcd5 hwmon: (ina2xx) Fix access to uninitialized mutex
   360ecf51864e x86/mce/AMD: Get address from already initialized block
   c81968e93aca x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type
   0ee4f31673af x86/mce/AMD: Pass the bank number to smca_get_bank_type()
   99971efd7d9a x86/MCE: Report only DRAM ECC as memory errors on AMD systems
   a2813b4cfe3b rtl8187: Fix NULL pointer dereference in priv->conf_mutex
   9e483bc229f5 Bluetooth: hci_bcm: Treat Interrupt ACPI resources as always being active-low
   f58ef38ef1a8 Bluetooth: Fix connection if directed advertising and privacy is used
   c3efeaa3b154 getname_kernel() needs to make sure that ->name != ->iname in long case
   adea72f0e570 get_user_pages_fast(): return -EFAULT on access_ok failure
   3da5723b4f05 s390/ipl: ensure loadparm valid flag is set
   c6c8e42071dc s390/qdio: don't merge ERROR output buffers
   b6366b15a267 s390/qdio: don't retry EQBS after CCQ 96
   3a6771e2fb32 nfit: fix region registration vs block-data-window ranges
   51a9580d67a2 block/loop: fix deadlock after loop_set_status
   54b990ede4c3 apparmor: fix resource audit messages when auditing peer
   a0358f605283 apparmor: fix display of .ns_name for containers
   1d0d8beb35cd apparmor: fix logging of the existence test for signals
   b18daa09fefe scsi: qla2xxx: Fix small memory leak in qla2x00_probe_one on probe failure
   0ed20e4b52af x86/MCE/AMD: Define a function to get SMCA bank type
   8e52e2f41c43 radeon: hide pointless #warning when compile testing
   6f22be4ba787 perf/core: Fix use-after-free in uprobe_perf_close()
   674e18de7bde perf intel-pt: Fix timestamp following overflow
   4039579fca38 perf intel-pt: Fix error recovery from missing TIP packet
   0733facf3be9 perf intel-pt: Fix sync_switch
   ff295906bd9b perf intel-pt: Fix overlap detection to identify consecutive buffers correctly
   42b53a13ecac KVM: PPC: Book3S HV: trace_tlbie must not be called in realmode
   5661d43b03c5 PCI: hv: Serialize the present and eject work items
   a160105b5503 Drivers: hv: vmbus: do not mark HV_PCIE as perf_device
   abd9fd4a3b04 parisc: Fix HPMC handler by increasing size to multiple of 16 bytes
   08be2c1b6bb6 parisc: Fix out of array access in match_pci_device()
   4d167edf0f6a media: v4l: vsp1: Fix header display list status check in continuous mode
   e7a4d7c2fe38 media: v4l2-compat-ioctl32: don't oops on overlay
   c0e0cd653e6a lan78xx: Correctly indicate invalid OTP
   2ea541eb4064 vhost: Fix vhost_copy_to_user()
   e240ffd5a3be vhost: fix vhost_vq_access_ok() log check
   381ebff25898 slip: Check if rstate is initialized before uncompressing
   427b8a146973 rds: MP-RDS may use an invalid c_path
   856d5d075a92 cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN
   073e82701bc0 netfilter: ipset: Missing nfnl_lock()/nfnl_unlock() is added to ip_set_net_exit()
   ffebeb0d7c37 Linux 4.14.34
   fdae5b620566 net/mlx4_core: Fix memory leak while delete slave's resources
   9fdeb33e1913 vhost_net: add missing lock nesting notation
   8c316b625705 team: move dev_mc_sync after master_upper_dev_link in team_port_add
   233ba28e1862 route: check sysctl_fib_multipath_use_neigh earlier than hash
   2f8aa659d4c0 vhost: validate log when IOTLB is enabled
   72b880f43990 net/mlx5e: Fix traffic being dropped on VF representor
   9408bceb0649 net/mlx4_en: Fix mixed PFC and Global pause user control requests
   477c73abf26a strparser: Fix sign of err codes
   1c71bfe84deb net/sched: fix NULL dereference on the error path of tcf_skbmod_init()
   a19024a3f343 net/sched: fix NULL dereference in the error path of tunnel_key_init()
   e096c8bf4fb8 net/mlx5e: Sync netdev vxlan ports at open
   baab1f0c4885 net/mlx5e: Don't override vport admin link state in switchdev mode
   1ec7966ab7db ipv6: sr: fix seg6 encap performances with TSO enabled
   e52a45bb392f nfp: use full 40 bits of the NSP buffer address
   ddf79878f1e0 net/mlx5e: Fix memory usage issues in offloading TC flows
   9282181c1cc5 net/mlx5e: Avoid using the ipv6 stub in the TC offload neigh update path
   b9c6ddda3805 vti6: better validate user provided tunnel names
   109dce20c6ed ip6_tunnel: better validate user provided tunnel names
   72363c63b070 ip6_gre: better validate user provided tunnel names
   a7309cad9c2e ipv6: sit: better validate user provided tunnel names
   6816295fe958 ip_tunnel: better validate user provided tunnel names
   048a64fbc229 net: fool proof dev_valid_name()
   77b9fc371d4d bonding: process the err returned by dev_set_allmulti properly in bond_enslave
   22ab1f8751fa bonding: move dev_mc_sync after master_upper_dev_link in bond_enslave
   d7e7ab42581e bonding: fix the err path for dev hwaddr sync in bond_enslave
   65c42a2d475d vrf: Fix use after free and double free in vrf_finish_output
   09cb8267add5 vlan: also check phy_driver ts_info for vlan's real device
   4f288c97b5c5 vhost: correctly remove wait queue during poll failure
   c5fc4dc51cb0 sky2: Increase D3 delay to sky2 stops working after suspend
   3fdd43709d70 sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
   3f80d01bbd87 sctp: do not leak kernel memory to user space
   c17f6594abfa r8169: fix setting driver_data after register_netdev
   a7c8900c1fc2 pptp: remove a buggy dst release in pptp_connect()
   21563c4df30e net/sched: fix NULL dereference in the error path of tcf_bpf_init()
   cd19a9b12ab4 net sched actions: fix dumping which requires several messages to user space
   787b940625ca netlink: make sure nladdr has correct size in netlink_connect()
   7948bc92791b net/ipv6: Increment OUTxxx counters after netfilter hook
   d1b820bd98a1 net/ipv6: Fix route leaking between VRFs
   589a3f305185 net: fix possible out-of-bound read in skb_network_protocol()
   629eeaaccb23 lan78xx: Crash in lan78xx_writ_reg (Workqueue: events lan78xx_deferred_multicast_write)
   52f0a5ff60e4 ipv6: the entire IPv6 header chain must fit the first fragment
   cdd74d6ac80e arp: fix arp_filter on l3slave devices
   8413a3a63d37 x86/microcode: Fix CPU synchronization routine
   c81d7069dcd6 x86/microcode: Attempt late loading only when new microcode is present
   b0b1ac38e018 x86/microcode: Synchronize late microcode loading
   509df2b865f1 x86/microcode: Request microcode on the BSP
   d2725848230d x86/microcode/intel: Look into the patch cache first
   e87c2b553a35 x86/microcode: Do not upload microcode if CPUs are offline
   1707112c82fa x86/microcode/intel: Writeback and invalidate caches before updating microcode
   170f8ec16c22 x86/microcode/intel: Check microcode revision before updating sibling threads
   22cc8816d013 x86/microcode: Get rid of struct apply_microcode_ctx
   35da0d504a98 x86/CPU: Check CPU feature bits after microcode upgrade
   00ba4bcf4b92 x86/CPU: Add a microcode loader callback
   962e6b2d1665 x86/microcode: Propagate return value from updating functions
   b6a11be5c433 crypto: arm64/aes-ce-cipher - move assembler code to .S file
   f1b46925f59e objtool: Add Clang support
   5dff63583f0d thermal: int3400_thermal: fix error handling in int3400_thermal_probe()
   bc166ca4234c tcmu: release blocks for partially setup cmds
   6a88a999c45d perf tools: Fix copyfile_offset update of output offset
   7cae67e31292 crypto: aes-generic - build with -Os on gcc-7+
   3847b9e016df mtd: mtd_oobtest: Handle bitflips during reads
   88f6f0490f8c Input: goodix - disable IRQs while suspended
   c427d7e44a32 ibmvnic: Don't handle RX interrupts when not up.
   62eaf7e149a5 sdhci: Advertise 2.0v supply on SDIO host controller
   997901406c0a x86/gart: Exclude GART aperture from vmcore
   4aafb8cdcc11 gpio: thunderx: fix error return code in thunderx_gpio_probe()
   cfafed12f459 RDMA/cma: Fix rdma_cm path querying for RoCE
   15dfb9baba2c scsi: megaraid_sas: unload flag should be set after scsi_remove_host is called
   70077054384d scsi: megaraid_sas: Error handling for invalid ldcount provided by firmware in RAID map
   b432f980596c cxgb4vf: Fix SGE FL buffer initialization logic for 64K pages
   d017aeb58a3e i40evf: don't rely on netif_running() outside rtnl_lock()
   d96a094c987f uio_hv_generic: check that host supports monitor page
   28b35f9aa0c0 EDAC, mv64x60: Fix an error handling path
   effbffc91da3 block, bfq: put async queues for root bfq groups too
   4ed8692bb2d6 tty: n_gsm: Allow ADM response in addition to UA for control dlci
   8976d64b2f0f blk-mq: fix kernel oops in blk_mq_tag_idle()
   b728b7e24fbc scsi: libsas: initialize sas_phy status according to response of DISCOVER
   f890a23603e3 scsi: libsas: fix error when getting phy events
   8644d14c3240 scsi: libsas: fix memory leak in sas_smp_get_phy_events()
   fad9bcb1176b bcache: segregate flash only volume write streams
   ef60904109f4 bcache: stop writeback thread after detaching
   71468ce63dc9 bcache: ret IOERR when read meets metadata error
   b20482cebfb2 net: hns3: fix for changing MTU
   be6a161e1302 net: hns3: Fix an error macro definition of HNS3_TQP_STAT
   611abba6eb68 net: hns3: Fix a loop index error of tqp statistics query
   5669ec0b9588 net: hns3: Fix an error of total drop packet statistics
   35a9ebd920aa net/mlx5: Fix race for multiple RoCE enable
   46d19334ca40 wl1251: check return from call to wl1251_acx_arp_ip_filter
   f722a6a61179 rt2x00: do not pause queue unconditionally on error path
   1530dcc90331 power: supply: axp288_charger: Properly stop work on probe-error / remove
   87b9099cf141 ASoC: Intel: sst: Fix the return value of 'sst_send_byte_stream_mrfld()'
   89deb4ad015b staging: lustre: disable preempt while sampling processor id.
   01ff15fcf466 perf report: Fix a no annotate browser displayed issue
   3b3fb4be7ca1 tpm: return a TPM_RC_COMMAND_CODE response if command is not implemented
   f0504bf54b4d nvme_fcloop: fix abort race condition
   39ede1fd200f nvme_fcloop: disassocate local port structs
   5391891c0a46 pinctrl: baytrail: Enable glitch filter for GPIOs used as interrupts
   dd3e1a4e769e backlight: tdo24m: Fix the SPI CS between transfers
   fb1ef85d5885 blk-mq: fix race between updating nr_hw_queues and switching io sched
   eaa077800ff6 blk-mq: avoid to map CPU into stale hw queue
   cf4c90693651 IB/rdmavt: Allocate CQ memory on the correct node
   da5e12ab599a powernv-cpufreq: Add helper to extract pstate from PMSR
   1f1e5ca1c737 gpio: label descriptors using the device name
   e985dcf4fa1b vfb: fix video mode and line_length being set when loaded
   bb23fbd8fb06 mac80211: Fix setting TX power on monitor interfaces
   74f5124bc3ff ACPI: EC: Fix debugfs_create_*() usage
   04568f4df228 irqchip/gic-v3: Fix the driver probe() fail due to disabled GICC entry
   b5d2cafbe359 scsi: mpt3sas: Proper handling of set/clear of "ATA command pending" flag.
   3807b6fec674 scsi: libiscsi: Allow sd_shutdown on bad transport
   978c2812b805 spi: sh-msiof: Fix timeout failures for TX-only DMA transfers
   1d65600e9722 ASoC: Intel: cht_bsw_rt5645: Analog Mic support
   522371c28210 ASoC: Intel: Skylake: Disable clock gating during firmware and library download
   543d317db8be media: videobuf2-core: don't go out of the buffer range
   6e7b07606bfe clk: sunxi-ng: a83t: Add M divider to TCON1 clock
   bd4a96921d8b hwmon: (ina2xx) Make calibration register value fixed
   ddc09c522035 RDMA/cma: Mark end of CMA ID messages
   7743aa143055 selftests/net: fix bugs in address and port initialization
   b72d39b1da82 PM / devfreq: Fix potential NULL pointer dereference in governor_store
   e6bc3a4b0c23 clk: divider: fix incorrect usage of container_of
   1cf98fd005f5 watchdog: dw_wdt: add stop watchdog operation
   db470ce8c6ee VFS: close race between getcwd() and d_move()
   87a25a385832 net/mlx4_en: Change default QoS settings
   378259c7d0a2 ACPI / video: Default lcd_only to true on Win8-ready and newer machines
   ea620e414bde rds; Reset rs->rs_bound_addr in rds_add_bound() failure path
   ab4ac0fc4712 l2tp: fix missing print session offset info
   fcb762cb4b5c net: hns3: fix for getting auto-negotiation state in hclge_get_autoneg
   f7b0ea2245a0 net: hns3: free the ring_data structrue when change tqps
   93b8f4a2302b perf evsel: Enable ignore_missing_thread for pid option
   d606bac136ec perf probe: Add warning message if there is unexpected event name
   3efc86f667fc perf probe: Find versioned symbols from map
   ea40afb5c379 thermal: power_allocator: fix one race condition issue for thermal_instances list
   fd78be4b37cc ipv6: Reinject IPv6 packets if IPsec policy matches after SNAT
   78728d84f338 Bluetooth: Add a new 04ca:3015 QCA_ROME device
   2e9a8b6a7d52 ARM: dts: ls1021a: add "fsl,ls1021a-esdhc" compatible string to esdhc node
   800ffac10754 clk: meson: mpll: use 64-bit maths in params_from_rate
   fbd4d9046a1a i40iw: Validate correct IRD/ORD connection parameters
   c5cd3cc217a9 i40iw: Correct Q1/XF object count equation
   0bc82eae1256 i40iw: Fix sequence number for the first partial FPDU
   b867b7a7e590 Linux 4.14.33
   6bc3a54e06c6 Revert "ip6_vti: adjust vti mtu according to mtu of lower device"
   cfbed9b55636 Revert "cpufreq: Fix governor module removal race"
   a99aaeccdefd Revert "ARM: dts: omap3-n900: Fix the audio CODEC's reset pin"
   118118eb3818 Revert "ARM: dts: am335x-pepper: Fix the audio CODEC's reset pin"
   92e3d3f67d79 Fix slab name "biovec-(1<<(21-12))"
   b31397c9b945 net: hns: Fix ethtool private flags
   9b47e99ac970 ARM: dts: DRA76-EVM: Set powerhold property for tps65917
   52dcf4a6afbc vt: change SGR 21 to follow the standards
   8ac678a4b363 Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
   4043155add40 Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list
   ac72f0080c1a Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370
   0d3f8c0217f9 Revert "base: arch_topology: fix section mismatch build warnings"
   a59779368b33 staging: comedi: ni_mio_common: ack ai fifo error interrupts.
   4be89529c013 Btrfs: fix unexpected cow in run_delalloc_nocow
   62532640c8e1 crypto: x86/cast5-avx - fix ECB encryption when long sg follows short one
   b5a888390998 crypto: arm,arm64 - Fix random regeneration of S_shipped
   ee54953ecd47 crypto: ccp - return an actual key size from RSA max_size callback
   056f3bd2399b crypto: caam - Fix null dereference at error path
   c3657fd0c15f crypto: ahash - Fix early termination in hash walk
   ad35fdc00a7c crypto: testmgr - Fix incorrect values in PKCS#1 test vector
   41e960b042fc crypto: inside-secure - fix clock management
   77827f3d63d0 crypto: lrw - Free rctx->ext with kzfree
   3c6096ca8e49 parport_pc: Add support for WCH CH382L PCI-E single parallel port card.
   1f17d5033fe3 media: usbtv: prevent double free in error case
   5f834dd24bae /dev/mem: Avoid overwriting "err" in read_mem()
   66a65ca5b8fd mei: remove dev_err message on an unsupported ioctl
   cbf733ca587c serial: 8250: Add Nuvoton NPCM UART
   c0aed3667b3d USB: serial: cp210x: add ELDAT Easywave RX09 id
   f4d01432eeda USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator
   e1e87ebd5b79 USB: serial: ftdi_sio: add RT Systems VX-8 cable
   ac5a36bb6957 bitmap: fix memset optimization on big-endian systems
   52a0c9a14f52 usb: dwc2: Improve gadget state disconnection handling
   87a97ab15e44 Bluetooth: Fix missing encryption refresh on Security Request
   cf88ae752cd3 phy: qcom-ufs: add MODULE_LICENSE tag
   839a4c3b4a48 netfilter: x_tables: add and use xt_check_proc_name
   2a55ad7440e6 netfilter: drop template ct when conntrack is skipped.
   b0850604cc5d l2tp: fix races with ipv4-mapped ipv6 addresses
   bbfbc396f076 netfilter: bridge: ebt_among: add more missing match size checks
   546ade704a98 netfilter: x_tables: make allocation less aggressive
   72682b162dae percpu: add __GFP_NORETRY semantics to the percpu balancing path
   dffe655ddb48 xfrm: Refuse to insert 32 bit userspace socket policies on 64 bit systems
   a6232ffa2a02 net: xfrm: use preempt-safe this_cpu_read() in ipcomp_alloc_tfms()
   b0d95e686f45 RDMA/ucma: Introduce safer rdma_addr_size() variants
   4fbf77d7a9fe RDMA/ucma: Check that device exists prior to accessing it
   4dba68fd1dfe RDMA/ucma: Check that device is connected prior to access it
   6c2c0da62b5d RDMA/rdma_cm: Fix use after free race with process_one_req
   4cd0242812a9 RDMA/ucma: Ensure that CM_ID exists prior to access it
   ac895355571a RDMA/ucma: Fix use-after-free access in ucma_close
   123f9f8981d2 RDMA/ucma: Check AF family prior resolving address
   25fd02ea40db xfrm_user: uncoditionally validate esn replay attribute struct
   ac2cb9f3de88 partitions/msdos: Unable to mount UFS 44bsd partitions
   0726ba0491ca powerpc/64s: Fix i-side SLB miss bad address handler saving nonvolatile GPRs
   4c6d2518e1fe powerpc/64s: Fix lost pending interrupt due to race causing lost update to irq_happened
   834a06e59896 i2c: i2c-stm32f7: fix no check on returned setup
   f025072cbfe3 ipc/shm.c: add split function to shm_vm_ops
   f00a344718dd ceph: only dirty ITER_IOVEC pages for direct read
   ca04476df8fd perf/hwbp: Simplify the perf-hwbp code, fix documentation
   b276b3465531 x86/platform/uv/BAU: Add APIC idt entry
   58eaa556bd0a ALSA: pcm: potential uninitialized return values
   17c9ea37cb60 ALSA: pcm: Use dma_bytes as size parameter in dma_mmap_coherent()
   ba0b1c7761b4 ALSA: usb-audio: Add native DSD support for TEAC UD-301
   be0fdc488672 mtd: nand: atmel: Fix get_sectorsize() function
   e9eddb705648 mtd: jedec_probe: Fix crash in jedec_read_mfr()
   67356ab6e6a9 ARM: dts: sun6i: a31s: bpi-m2: add missing regulators
   46e10c38af0c ARM: dts: sun6i: a31s: bpi-m2: improve pmic properties
   d377d3d041b7 ARM: 8746/1: vfp: Go back to clearing vfp_current_hw_state[]
   a4941a5fbcf0 ARM: OMAP: Fix SRAM W+X mapping
   9a2e216d9e89 Linux 4.14.32
   bba757a2c128 s390/qeth: on channel error, reject further cmd requests
   e52456422017 s390/qeth: lock read device while queueing next buffer
   dd5ec7314030 s390/qeth: when thread completes, wake up all waiters
   b469bdd0f511 s390/qeth: free netdevice when removing a card
   299902b581ea dpaa_eth: remove duplicate increment of the tx_errors counter
   5bf75fca4367 dpaa_eth: increment the RX dropped counter when needed
   dde9b6a83797 dpaa_eth: remove duplicate initialization
   5bbb99d2fde0 dpaa_eth: fix error in dpaa_remove()
   29cd9c2d1f42 soc/fsl/qbman: fix issue in qman_delete_cgr_safe()
   43d8f3c5d3ad team: Fix double free in error path
   329f4710f89c skbuff: Fix not waking applications when errors are enqueued
   e90e9771d9a3 qede: Fix qedr link update
   c6841b478e6b net: systemport: Rewrite __bcm_sysport_tx_reclaim()
   474aa5149753 net: Only honor ifindex in IP_PKTINFO if non-0
   06d3f43d52bb netlink: avoid a double skb free in genlmsg_mcast()
   2980f37b6111 net/iucv: Free memory obtained by kzalloc
   a14b791d9863 net: fec: Fix unbalanced PM runtime calls
   9cdb0f25fbb4 net: ethernet: ti: cpsw: add check for in-band mode setting with RGMII PHY interface
   89142a0e0b70 net: ethernet: arc: Fix a potential memory leak if an optional regulator is deferred
   2d5b0ed04c5a l2tp: do not accept arbitrary sockets
   18c647456ac9 ipv6: fix access to non-linear packet in ndisc_fill_redirect_hdr_option()
   91d27e0c3025 dccp: check sk for closed state in dccp_sendmsg()
   946b9671ac02 net: Fix hlist corruptions in inet_evict_bucket()
   4ff5078b0396 net: use skb_to_full_sk() in skb_update_prio()
   f6cdb675ca0a ieee802154: 6lowpan: fix possible NULL deref in lowpan_device_event()
   f77ff13a06c1 sch_netem: fix skb leak in netem_enqueue()
   515bc34124f3 kcm: lock lower socket in kcm_attach
   07cf9d303c7c rhashtable: Fix rhlist duplicates insertion
   090da7ced80b ppp: avoid loop in xmit recursion detection code
   28b488f7cb3a net sched actions: return explicit error when tunnel_key mode is not specified
   2274d77c3675 net: phy: Tell caller result of phy_change()
   42cf2a1e5ac4 mlxsw: spectrum_buffers: Set a minimum quota for CPU port traffic
   dbad5abd2b16 ipv6: sr: fix scheduling in RCU when creating seg6 lwtunnel state
   cb4963b49426 ipv6: sr: fix NULL pointer dereference when setting encap source address
   5defa8c9269a ipv6: old_dport should be a __be16 in __ip6_datagram_connect()
   a8f02befc87d net: ipv6: keep sk status consistent after datagram connect failure
   82fb817863e3 macvlan: filter out unsupported feature flags
   b51eb57dac9c devlink: Remove redundant free on error path
   67a1dc567567 net: phy: relax error checking when creating sysfs link netdev->phydev
   223c54244252 sysfs: symlink: export sysfs_create_link_nowarn()
   497166d63780 qed: Fix non TCP packets should be dropped on iWARP ll2 connection
   e44c1733059c tcp: purge write queue upon aborting the connection
   dbbf2d1e4077 tcp: reset sk_send_head in tcp_write_queue_purge
   9861e6647c85 Linux 4.14.31
   7514cd2f6d21 bpf, x64: increase number of passes
   b4e02202a0ba bpf: skip unnecessary capability check
   3e1130970ec3 kbuild: disable clang's default use of -fmerge-all-constants
   3fdc6f0d1484 x86/pkeys/selftests: Rename 'si_pkey' to 'siginfo_pkey'
   d6e6e57e6045 usb: xhci: Fix potential memory leak in xhci_disable_slot()
   4208d820ed23 usb: xhci: Disable slot even when virt-dev is null
   213b332c71a9 staging: lustre: ptlrpc: kfree used instead of kvfree
   26023c977975 staging: android: ion: Zero CMA allocated memory
   af00a24c9ea2 iio: imu: st_lsm6dsx: fix endianness in st_lsm6dsx_read_oneshot()
   c7d20ac820ad iio: ABI: Fix name of timestamp sysfs file
   294a6268bf16 perf/x86/intel/uncore: Fix multi-domain PCI CHA enumeration bug on Skylake servers
   59dbc2a44921 perf/x86/intel: Don't accidentally clear high bits in bdw_limit_period()
   227e2f91f0c9 perf/core: Fix ctx_event_type in ctx_resched()
   b69902a42097 perf stat: Fix CVS output format for non-supported counters
   d244e5897c1f perf/x86/intel/uncore: Fix Skylake UPI event format
   5fb252cad61f drm/syncobj: Stop reusing the same struct file for all syncobj -> fd
   a9b385a59b1f x86/boot/64: Verify alignment of the LOAD segment
   faf470583a57 x86/build/64: Force the linker to use 2MB page size
   06b281015054 kvm/x86: fix icebp instruction handling
   f7fbe38cc55b posix-timers: Protect posix clock array access against speculation
   b08952bbc171 x86/efi: Free efi_pgd with free_pages()
   373ccbd6eb03 x86/vsyscall/64: Use proper accessor to update P4D entry
   852d9679a778 selftests/x86/ptrace_syscall: Fix for yet more glibc interference
   5a29ce2b9880 x86/entry/64: Don't use IST entry for #BP stack
   3832d40ef22e tty: vt: fix up tabstops properly
   5c955c3cfb58 can: cc770: Fix use after free in cc770_tx_interrupt()
   63affa180c7d can: cc770: Fix queue stall & dropped RTR reply
   b3ab7e3dee87 can: cc770: Fix stalls on rt-linux, remove redundant IRQ ack
   18f29aa5b55d can: ifi: Check core revision upon probe
   8a731531d08f can: ifi: Repair the error handling
   e7dc75584302 can: peak/pcie_fd: remove useless code when interface starts
   74f08b1e0de8 can: peak/pcie_fd: fix echo_skb is occupied! bug
   2a2b9ef30926 staging: ncpfs: memory corruption in ncp_read_kernel()
   3f3a6707770a mtd: nand: fsl_ifc: Read ECCSTAT0 and ECCSTAT1 registers for IFC 2.0
   1aa0e4115330 mtd: nand: fsl_ifc: Fix eccstat array overflow for IFC ver >= 2.0.0
   91ff3795b188 mtd: nand: fsl_ifc: Fix nand waitfunc return value
   84f7a040cf04 mtdchar: fix usage of mtd_ooblayout_ecc()
   70001527f446 tracing: probeevent: Fix to support minus offset from symbol
   1a697e6ef91b rtlwifi: rtl8723be: Fix loss of signal
   7964c00a4a7e brcmfmac: fix P2P_DEVICE ethernet address generation
   865a0221c7e2 libnvdimm, {btt, blk}: do integrity setup before add_disk()
   7fbddfb00176 ACPI / watchdog: Fix off-by-one error at resource assignment
   8f860adbb3d8 acpi, numa: fix pxm to online numa node associations
   b8b8151806ff mm/vmscan: wake up flushers for legacy cgroups too
   c8deec718121 drm: udl: Properly check framebuffer mmap offsets
   fc1142a8ca2d drm: Reject getfb for multi-plane framebuffers
   b53d42b4ab92 drm/radeon: Don't turn off DP sink when disconnected
   19246741a6df drm/vmwgfx: Fix a destoy-while-held mutex problem.
   4be50a9fe670 drm/vmwgfx: Fix black screen and device errors when running without fbdev
   99b6ead444cf Revert "mm: page_alloc: skip over regions of invalid pfns where possible"
   f5dad0409a72 mm/shmem: do not wait for lock_page() in shmem_unused_huge_shrink()
   b6b6783c8097 mm/thp: do not wait for lock_page() in deferred_split_scan()
   8b8b5c4f7f3a mm/khugepaged.c: convert VM_BUG_ON() to collapse fail
   5bbd932ff58f x86/mm: implement free pmd/pte page interfaces
   acdb4981644c mm/vmalloc: add interfaces to free unmapped page table
   04d47fc40367 h8300: remove extraneous __BIG_ENDIAN definition
   1e8628443ede hugetlbfs: check for pgoff value overflow
   797bfd05d404 nfsd: remove blocked locks on client teardown
   aa0533f4f7b2 cgroup: fix rule checking for threaded mode switching
   2b4bb9f3869b libata: Modify quirks for MX100 to limit NCQ_TRIM quirk to MU01 version
   65ab5809b48d libata: Make Crucial BX100 500GB LPM quirk apply to all firmware versions
   596d0a8e7c77 libata: Apply NOLPM quirk to Crucial M500 480 and 960GB SSDs
   01b6d6839a28 libata: Enable queued TRIM for Samsung SSD 860
   603f0168c1ef libata: disable LPM for Crucial BX100 SSD 500GB drive
   3962dd60a67b libata: Apply NOLPM quirk to Crucial MX100 512GB SSDs
   5e67e65d21d0 libata: don't try to pass through NCQ commands to non-NCQ devices
   cd47a2ccc602 libata: remove WARN() for DMA or PIO command without data
   8745d2063d28 libata: fix length validation of ATAPI-relayed SCSI commands
   15a4417cc652 Bluetooth: btusb: Fix quirk for Atheros 1525/QCA6174
   cd3141c02404 Bluetooth: btusb: Add Dell OptiPlex 3060 to btusb_needs_reset_resume_table
   3a64bcc3e67a Bluetooth: btusb: Remove Yoga 920 from the btusb_needs_reset_resume_table
   b64ffeecfbdd pinctrl: samsung: Validate alias coming from DT
   a1da0548a932 Drivers: hv: vmbus: Fix ring buffer signaling
   8f59abbdeb9d RDMA/mlx5: Fix crash while accessing garbage pointer and freed memory
   9efd9903f561 clk: sunxi-ng: a31: Fix CLK_OUT_* clock ops
   55306d632ab8 clk: bcm2835: Protect sections updating shared registers
   2eb67f85d55b clk: bcm2835: Fix ana->maskX definitions
   ef006d43bc61 lockdep: fix fs_reclaim warning
   a05b610534a9 ahci: Add PCI-id for the Highpoint Rocketraid 644L card
   8f5f582cabd7 PCI: Add function 1 DMA alias quirk for Highpoint RocketRAID 644L
   aa26895af31b mmc: dw_mmc: fix falling from idmac to PIO mode when dw_mci_reset occurs
   a592984e03e6 mmc: dw_mmc: exynos: fix the suspend/resume issue for exynos5433
   23a8825aea65 mmc: dw_mmc: Fix the DTO/CTO timeout overflow calculation for 32-bit systems
   72439a30c096 mmc: block: fix updating ext_csd caches on ioctl call
   39254113845c mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards
   fcc71c97a384 mmc: core: Fix tracepoint print of blk_addr and blksz
   856da5e097e0 ALSA: hda/realtek - Always immediately update mute LED with pin VREF
   7a42d11ab86e ALSA: hda/realtek - Fix Dell headset Mic can't record
   dc9d942e45c0 ALSA: hda/realtek - Fix speaker no sound after system resume
   8d49f5625eda ALSA: hda - Force polling mode on CFL for fixing codec communication
   88079d335aac ALSA: aloop: Fix access to not-yet-ready substream via cable
   1fcbcfff716f ALSA: aloop: Sync stale timer before release
   3aa7360be333 ALSA: usb-audio: Fix parsing descriptor of UAC2 processing unit
   2b706310e520 iio: adc: meson-saradc: unlock on error in meson_sar_adc_lock()
   d1138478e071 iio: st_pressure: st_accel: pass correct platform data to init
   f81b0e627b67 iio: chemical: ccs811: Corrected firmware boot/application mode transition
   ea26b66f10cb MIPS: lantiq: ase: Enable MFD_SYSCON
   124532fc3c28 MIPS: lantiq: Enable AHB Bus for USB
   8b23936074d9 MIPS: lantiq: Fix Danube USB clock
   e73ac1875971 MIPS: ralink: Fix booting on MT7621
   fb45c56ebd0f MIPS: ralink: Remove ralink_halt()
   de8cdc557231 Linux 4.14.30
   5019b23699f4 RDMA/vmw_pvrdma: Fix usage of user response structures in ABI file
   957435b566c9 kbuild: fix linker feature test macros when cross compiling with Clang
   e82496fbe3a0 RDMA/ucma: Don't allow join attempts for unsupported AF family
   ce3e82c0630f RDMA/ucma: Fix access to non-initialized CM_ID object
   712b442c68c2 clk: migrate the count of orphaned clocks at init
   02db484a0583 RDMA/core: Do not use invalid destination in determining port reuse
   8b0c4a2e04f7 serial: 8250_pci: Don't fail on multiport card class
   00fb52a3828d IB/mlx5: Fix out-of-bounds read in create_raw_packet_qp_rq
   cf1eb16eef13 IB/mlx5: Fix integer overflows in mlx5_ib_create_srq
   3748694f1b91 scsi: mpt3sas: wait for and flush running commands on shutdown/unload
   9d72b2696e0a scsi: mpt3sas: fix oops in error handlers after shutdown/unload
   0493d72ee4d6 dmaengine: ti-dma-crossbar: Fix event mapping for TPCC_EVT_MUX_60_63
   e618ff1ac59c crypto: artpec6 - set correct iv size for gcm(aes)
   53555c8fc8a2 clk: si5351: Rename internal plls to avoid name collisions
   fa97cdb4c71e clk: axi-clkgen: Correctly handle nocount bit in recalc_rate()
   9e9d9b1a3dbf clk: Don't touch hardware when reparenting during registration
   24c92f975cb2 clk: at91: pmc: Wait for clocks when resuming
   14d920fc4579 nfsd4: permit layoutget of executable-only files
   1de82078a0c0 ARM: dts: aspeed-evb: Add unit name to memory node
   e434a6eaed8c RDMA/ocrdma: Fix permissions for OCRDMA_RESET_STATS
   7b7e076f8cad scsi: lpfc: Fix issues connecting with nvme initiator
   1626beb0b5d8 scsi: lpfc: Fix SCSI LUN discovery when SCSI and NVME enabled
   6f4649f3bef8 soc: qcom: smsm: fix child-node lookup
   f1f225794a41 ip_gre: fix potential memory leak in erspan_rcv
   9cd6c84e9377 ip_gre: fix error path when erspan_rcv failed
   e6cfc525163e ip6_vti: adjust vti mtu according to mtu of lower device
   f2b32ce1ccef iommu/vt-d: clean up pr_irq if request_threaded_irq fails
   915bd53d68f6 pinctrl: rockchip: enable clock when reading pin direction register
   130e535210ba pinctrl: Really force states during suspend/resume
   06299bd0cf73 media: davinci: fix a debug printk
   fea718819c69 PCI: rcar: Handle rcar_pcie_parse_request_of_pci_ranges() failures
   e1645629785b PCI: endpoint: Fix find_first_zero_bit() usage
   194b5ce11968 PCI: designware-ep: Fix ->get_msi() to check MSI_EN bit
   d67d7bf8f12d coresight: Fix disabling of CoreSight TPIU
   f16a65befe74 pty: cancel pty slave port buf's work in tty_release
   728e120d1786 drm/omap: DMM: Check for DMM readiness after successful transaction commit
   9967208b4f6c mmc: sdhci-xenon: wait 5ms after set 1.8V signal enable
   83a2960ff6d1 omapdrm: panel: fix compatible vendor string for td028ttec1
   f7eda23c2990 vgacon: Set VGA struct resource types
   58668d153baf iser-target: avoid reinitializing rdma contexts for isert commands
   a3e4b8fe6479 IB/umem: Fix use of npages/nmap fields
   251695a39f05 RDMA/cma: Use correct size when writing netlink stats
   a4ac7cb593ad IB/ipoib: Avoid memory leak if the SA returns a different DGID
   9766562956fd rtc: ac100: Fix multiple race conditions
   badf37254bc7 media: s5p-mfc: Fix lock contention - request_firmware() once
   639dab36edbd sfp: fix non-detection of PHY
   1a6610de8c1b sfp: fix EEPROM reading in the case of non-SFF8472 SFPs
   1b485793ce84 net: phy: meson-gxl: check phy_write return value
   ea60e54b22aa /dev/mem: Add bounce buffer for copy-out
   79a49fcc0768 mmc: block: fix logical error to avoid memory leak
   9dd93e524955 mmc: avoid removing non-removable hosts during suspend
   c1326c691f4d drm/tilcdc: ensure nonatomic iowrite64 is not used
   e2a6f2967f67 dmaengine: zynqmp_dma: Fix race condition in the probe
   f4a0f85594ba platform/chrome: Use proper protocol transfer function
   71233e2541a4 watchdog: Fix kref imbalance seen if handle_boot_enabled=0
   08b810901020 watchdog: Fix potential kref imbalance when opening watchdog
   008029510ac8 cros_ec: fix nul-termination for firmware build info
   79c3f5cf466d serial: 8250_dw: Disable clock on error
   f1be26620373 tty: goldfish: Enable 'earlycon' only if built-in
   5ff0741646fd qmi_wwan: set FLAG_SEND_ZLP to avoid network initiated disconnect
   a9a14b17f72c media: [RESEND] media: dvb-frontends: Add delay to Si2168 restart
   057ee30417e5 ath10k: handling qos at STA side based on AP WMM enable/disable
   824f8613ea62 media: bt8xx: Fix err 'bt878_probe()'
   2159db50a572 rtlwifi: always initialize variables given to RT_TRACE()
   9f180c6db58e rtlwifi: rtl_pci: Fix the bug when inactiveps is enabled.
   9854881c225a spi: sh-msiof: Avoid writing to registers from spi_master.setup()
   6467b3e25447 hv_netvsc: Fix the TX/RX buffer default sizes
   8dc11c413557 hv_netvsc: Fix the receive buffer size limit
   e53e85d5082c RDMA/iwpm: Fix uninitialized error code in iwpm_send_mapinfo()
   4df82a41e819 drm/msm: fix leak in failed get_pages
   b3cff08483d0 media: c8sectpfe: fix potential NULL pointer dereference in c8sectpfe_timer_interrupt
   b453f9d8c55e cpufreq: longhaul: Revert transition_delay_us to 200 ms
   e59e19dc4086 Bluetooth: btqcomsmd: Fix skb double free corruption
   5b58533858e3 Bluetooth: hci_qca: Avoid setup failure on missing rampatch
   23081c335df9 staging: android: ashmem: Fix possible deadlock in ashmem_ioctl
   23e73e2ab4d2 scsi: megaraid_sas: Do not use 32-bit atomic request descriptor for Ventura controllers

(From OE-Core rev: 6ddaf2e408fa733214a5ff9a5b9ef171304f02a5)

(From OE-Core rev: ecfe2f319efaeb2152398088c47a43a10d448199)

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>
2018-07-02 11:41:25 +01:00
Ross Burton
529be09f81 shared-mime-info: fix license statement
The freedesktop.org.xml data and the update-mime-database tool are both GPLv2 as
per COPYING, so change LICENSE to GPLv2.

test-mime-magic.c is LGPLv2+ but we don't install that so isn't relevant.

(From OE-Core rev: 4ca838097c43755e19f8ffc66436f9ad773fcd39)

(From OE-Core rev: a590642af4d0d93b1d380409f45f5ef7e1793466)

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-07-02 11:41:25 +01:00
Andre McCurdy
9f3445c9e5 dropbear: drop run time detection of read-only rootfs
Previously, when dropbear was started via its init script, relocation
of DROPBEAR_RSAKEY_DIR to support read-only rootfs was handled at
run time from within the init script.

Update the init script to take advantage of the read-only rootfs
config setup by read_only_rootfs_hook() and therefore be consistent
with startup under systemd (where relocation of DROPBEAR_RSAKEY_DIR
is handled by the read_only_rootfs_hook() at build time).

(From OE-Core rev: 4990f87b2f6a8b30c8d1c767636e7f5527f595ba)

(From OE-Core rev: b1f3fac327da43ccc079a03d3554f1365b298608)

Signed-off-by: Andre McCurdy <armccurdy@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-07-02 11:41:25 +01:00
Andrej Valek
92c5eeaff9 busybox: Fix lzma segfaults
- fix multiple lzma segmentation faults
- patch includes multiple fixing commits
- test-cases have been removed due to binary data

(From OE-Core rev: e865e5056235a9b4e3911d4c734a3ffa71bb9e62)

(From OE-Core rev: 5e1a402e8cf5e87ea200a04c4218cbd7b8d608d7)

Signed-off-by: Andrej Valek <andrej.valek@siemens.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-07-02 11:41:25 +01:00
Andre McCurdy
3dfc5e4d30 bitbake.conf: drop redundant -nv from FETCHCMD_wget
Since the addition of progress reporting, the wget fetcher will
over-ride -nv by unconditionally appending "--progress=dot -v" to the
final wget command line.

  http://git.openembedded.org/bitbake/commit/?id=4027649f422ee64b1c4e1ad8d48ac295050afbff

(From OE-Core rev: 69f4f4aa56291e1e507a62d45834df65d699ec51)

(From OE-Core rev: acd9a694e40c54a7ce8015a89f22391c90fd73c1)

Signed-off-by: Andre McCurdy <armccurdy@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-07-02 11:41:25 +01:00
Chen Qi
956eb9241d oeqa/core/target/ssh.py: increase maximum read bytes from 1024 to 4096
When running testimage task for core-image-sato-sdk, the following
error appeared.

  UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 at position 0: invalid start byte

Checking the codes, I found it's caused by setting a 1024 limit for the
read method of the StreamReader object.

Comments from the manual:
"""
The chars argument indicates the number of decoded code points or bytes to
return. The read() method will never return more data than requested, but
it might return less, if there is not enough available.
"""

When running `systemctl status --full' on target, this error occurs.

This patch increase the bytes limit to 4096 to fix the error.

(From OE-Core rev: f1fad60ae3be4450aca6058d5665fb10a9148b44)

(From OE-Core rev: bc64cf4fce0631b689c9818ac24e6a2a9d8effec)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
2ab2828c71 testimage.bbclass: move codes into testimage_main
testimage-auto is expected to run testimage task's codes automatically.
But in fact, it's currently missing some codes, including testimage_sanity
and create_rpm_index.

This leads to the problem of unexpected runtime failure of test_dnf_makecache.
The error message is as below.

  RESULTS - dnf.DnfRepoTest.test_dnf_makecache - Testcase 1744: ERROR

This error is caused by the fact that create_rpm_index is not executed
before running the tests.

There's no reason why such codes should not be in testimage_main, so
move them into it.

(From OE-Core rev: fa7ba486ded13907f63f9300f66350ba2835a3f7)

(From OE-Core rev: d55013db85db28bb061b40976cdda7022fa1eb22)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
724ad979a6 bitbake.conf: fix HOSTTOOLS setting related to image testing
A list of tools are added to HOSTTOOLS depending on if we inherit
testimage or not. Unfortunately, if we use TEST_IMAGE variable to
automate the test, these tools are not added to HOSTTOOLS.

Modify the condition to also check TEST_IMAGE to fix the above problem.

Also, change to use if...else... instead of list index for such setting.

(From OE-Core rev: 263f8ad612674b0b47cd980212556332c17cb370)

(From OE-Core rev: d2701a747209b99e816655eb5f70a2bf666c4314)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
24a4db03dc oeqa/runtime/cases/multilib.py: fix test_file_connman skipping logic
The test_file_connman should be executed only when 'lib32-connman' is
installed and 'connman' is not installed.

When lib32-connman and connman are both installed, the /usr/sbin/connmand
could be from connman or lib32-connman, depending on the installation
order. What we want to check is the connmand command from lib32-connman,
so we need to make sure that connman is not there to cause chaos.

(From OE-Core rev: bc6839394c06bb695b92b2183337e7381da1e86c)

(From OE-Core rev: 55eed10368da6b3179e3ad1ab9322cff32fa99cf)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
b6b05c99b0 oeqa/runtime/cases/multilib.py: skip if needed packages are not available
1) The test cases use 'readelf' command to do the check. This command
   is from binutils. So skip the test if the needed binutils package is
   not installed.

   The related error message in log.do_testimage is like below.

     Output:  sh: readelf: not found

2) The test case tests /lib/libc.so.6 from lib32-libc6. So skip the test
   if lib32-libc6 is not installed.

   The related error message in log.do_testimage is like below.

     Output:   readelf: Error: 'lib/libc.so.6': No such file

(From OE-Core rev: eae929a5c224f5c3468d6a0466d1bbb3f678a5a1)

(From OE-Core rev: cb80105bbd03d8d9cc10139ed6f39b193e79c1b8)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
6af590bd29 oeqa/runtime/cases/rpm.py: skip if rpm not available
This test case should only run when rpm package is installed.
So skip it if rpm package is not installed. This fixes:

  RESULTS - rpm.RpmBasicTest.test_rpm_help - Testcase 1059: FAILED

(From OE-Core rev: bb909a60c04248d015d988e4454f0a11b1c287da)

(From OE-Core rev: 520c375d49df29453213c3cd4e2155e80e27a0ca)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
d83cda97df oeqa/core/decorator/data.py: fix skipIfNotInDataVar
The var might not be set, resulting in unexpected error.

  RESULTS - multilib.MultilibTest.test_check_multilib_libc - Testcase 1593: ERROR

The above error is due to MULTILIBS being not set, which is the default
for OE. This patch fixes this problem.

Also, the debugging message in skipIfNotInDataVar is currently confusing.
Instead of
DEBUG: Checking if 'MULTILIBS' value is in 'multilib:lib32' to run the test
it should be
DEBUG: Checking if 'MULTILIBS' value contains 'multilib:lib32' to run the test

This patch also fixes it.

(From OE-Core rev: 3f5c678664a2bba43d99508779dc2ce227cf52a2)

(From OE-Core rev: ea84439d42b578237d03d876992511eec73c5511)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
e8f0fbad1c testimage.bbclass: also check 'auto' to create rpm index
Having 'auto' in TEST_SUITES will also run the 'dnf' test cases,
so also check it to determine whether to create rpm index or not.

This is to fix the following error when TEST_SUITES = "auto".

  RESULTS - dnf.DnfRepoTest.test_dnf_makecache - Testcase 1744: ERROR

(From OE-Core rev: c1f4177848d25a9121f2a85da655ee414cd424b1)

(From OE-Core rev: 43f62481f40fdd1399e468d7fbeb93793e19f9a9)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
351a829d15 oeqa/runtime/cases/dnf_runtime.py: skip test if PACKAGE_FEED_URIS is not set
This test is to test the behaviour of PACKAGE_FEED_URIS is correct or not.
If it's not even set, it makes no sense to do such test. So skip this
test if PACKAGE_FEED_URIS is not set.

(From OE-Core rev: 37e3d9d91cc0c8d0dac48463a888c692f4648f66)

(From OE-Core rev: d442e67e94d589ce744e3c440e51470e63132459)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
398aaf26aa oeqa/core/decorator/__init__.py: use 'cls' instead of 'obj'
Use 'cls' instead of 'obj' to better reflect that registerDecorator
actually serves as a class decorator.

(From OE-Core rev: e06e4c859e8be5225d80806a2ebe175f0b152fe1)

(From OE-Core rev: 9daf742004f4256bcb429165cfbf8dfc735a9686)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
c0f6a11b21 oeqa/core/decorator/__init__.py: set metaclass to ABCMeta
OETestFilter is a subclass of OETestDecorator. It wants to make
use of @abstractmethod decorator. But such decorator requires
metaclass to be ABCMeta to have effect. So add it now to achieve
the designed behaviour.

Comments from python's manual:
"""
Using this decorator requires that the class's metaclass is ABCMeta
or is derived from it.
"""

(From OE-Core rev: 28c4fafb2322ea8c37bcd7710f22f46ef552a902)

(From OE-Core rev: 8c3a8c5d9fb31edbc37d8239c4cf5312a815a344)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
1066af1468 testimage.bbclass: fix behavior of empty TEST_SUITES
The current behaviour of TEST_SUITES is very confusing.

setting: TEST_SUITES = ""
result:  Execute all test cases.

setting: TEST_SUITES = "some_case_not_exist"
result:  Error out with 'Empty test suite' message.

The expected behaviour of TEST_SUITES should be:
1. when 'auto' is in it, execute as many test cases as possible
2. when no valid test case is specified, error out and give user message

The first one is implemented by a previous patch.
The second one is fixed in this patch.

Also add debug message to show test cases to be executed. This is
for easier debugging.

(From OE-Core rev: 909568821fbad8a6a7034b10a2dc349a210fdfc6)

(From OE-Core rev: 57f08e7ace4cc9486f86aafd1ade6ab5ad6a94d7)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Chen Qi
72f658348b oeqa/core/loader.py: support the 'auto' keyword
In previous OEQA, having 'auto' in TEST_SUITES results in executing
as many test cases as possible.

This behaviour is broken for now. From the codes in core/loader.py,
I can see that it tries to use another keyword 'all'. But in fact,
it does not work.

I've checked the current manual. The manual says using 'auto'.
Below is the current information in manual.

  """
  Alternatively, you can provide the "auto" option to have all applicable
  tests run against the image.

  TEST_SUITES_append = " auto"
  """

So we should restore this behaviour. This patch does so.

Also, output warning message is some module is named as 'auto', as this
is a reserved keyword.

(From OE-Core rev: a65460a063a958cc887c756db5f7ab18e3f5a8c1)

(From OE-Core rev: 8c247f5141f15160d670b49d9963f4143faedff5)

Signed-off-by: Chen Qi <Qi.Chen@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-07-02 11:41:25 +01:00
Anuj Mittal
33eb2fb5cd wic/bootimg-efi.py: recognize initrd when using grub
Make sure that we're able to use the initrd value specified in the wks
file when using grub-efi bootloader with bootimg-efi wic plugin.

Fixes [YOCTO #12689]

(From OE-Core rev: f1d5bb1f21e11714357aff4ae7e52421e3756c5a)

(From OE-Core rev: 941bf7bc40e11cbe9e68ccf14155196713709558)

Signed-off-by: Anuj Mittal <anuj.mittal@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-07-02 11:41:25 +01:00
Anuj Mittal
4b871ee7a7 wic/engine.py: improve error message when required tools are missing
Instead of showing that command 'None' was found, show the name of
actual command that wasn't found on the host machine or at the native
sysroot path provided by user.

(From OE-Core rev: 3157ebb131e01e74689b1f87a35278350f315e7d)

(From OE-Core rev: 73697d9e44e92b8e7c0cdd46339981f5633f09af)

Signed-off-by: Anuj Mittal <anuj.mittal@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-07-02 11:41:25 +01:00
Martin Jansa
41733717da qemu: refresh patches with devtool and make them applicable with git
(From OE-Core rev: e8fb42f3a54e8b8d68ae216a48534fa745ea99f1)

(From OE-Core rev: 0c0f1849ea0e40296117510b4d87a2505fe18e16)

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>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:25 +01:00
Martin Kelly
28b0c96473 nativesdk-python*: suppress user site dirs
Currently, $HOME/.local is being added into sys.path in the Python SDK
causing subtle host contamination. Suppress this by exporting
PYTHONNOUSERSITE = "1" as documented in PEP 370.

This issue occurred in the past for python*-native and was fixed
similarly in OE-core commit 8fe9fb4d5a61dcbcb3fc5b9ee0234cc135af873f
("python*native.bbclass: suppress user site dirs").

(From OE-Core rev: 0dc36439cb9fe1cea50bed59da6302f78372a30b)

(From OE-Core rev: 376827d359a3769ee6477eac6e6b349a2050a867)

Signed-off-by: Martin Kelly <mkelly@xevo.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-07-02 11:41:25 +01:00
Anuj Mittal
5e2232b3c5 qemux86-directdisk.wks: remove uvesafb.mode_option
Let this be dictated by the module parameter value being set by qemu
machine configuration.

(From OE-Core rev: c40b241e8d40c8bc1c9e6065b12e260662f5bba4)

(From OE-Core rev: 5a3dec9fb42838ddfec7c0b216367bf4c9a32db6)

Signed-off-by: Anuj Mittal <anuj.mittal@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-07-02 11:41:25 +01:00
Anuj Mittal
2c63f6bc0e qemux86*: change default wic wks to qemux86-directdisk
When runqemu is invoked with an image type (wic, hddimg etc) as a parameter,
the kernel value and command line parameters from qemuboot.conf
are ignored and not passed to qemu cmdline.

As an example, when using:

$ runqemu wic kvm

It results in no network interface and video mode warnings when qemu is up because
the -kernel and -append options were not passed.

Change qemu conf to use qemux86-directdisk.wks that supplies the kernel parameters
that are appended to the bootloader configuration when generating qemu wic
images instead of relying on qemuboot.conf.

Fixes [YOCTO #12224]

(From OE-Core rev: 3b79d9a78816d2eb70fe54ca6cd086d94c115f05)

(From OE-Core rev: d22318def2af68f7c8b82605ba3fda8fcfcc9d0a)

Signed-off-by: Anuj Mittal <anuj.mittal@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-07-02 11:41:25 +01:00
Fathi Boudra
5c247b9ca7 ltp: build open posix test suite
We ship the open posix test suite already but it isn't compiled.
Let's build it and make it ready to use on the device.

(From OE-Core rev: 79b22a2539b7dec762523ca544e27b9cce7ee81e)

(From OE-Core rev: 65c044207fdc38f4b332278b120302f04366269e)

Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
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-07-02 11:41:25 +01:00
Andre McCurdy
93c6b789ef bitbake.conf: drop obsolete commented out value for TARGET_LDFLAGS
The commented out value for TARGET_LDFLAGS dates back to the switch
to sysroot enabled toolchains in 2007 and is now obsolete.

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

(From OE-Core rev: d47245b038d27aa5228052af71d973b9ac1c3a46)

(From OE-Core rev: 963ce2f8c68d4c82011aaae13ac109bdaacdaaf2)

Signed-off-by: Andre McCurdy <armccurdy@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-07-02 11:41:25 +01:00
Robert Yang
20d625c69c runqemu-extract-sdk: allow install debugfs on rootfs
Usually, the debugfs' (-dbg.tar.*) work follow is:
1) Install regular rootfs to dir_foo
2) Install debugfs (-dbg.tar.*) to the same dir_foo

So we need to allow installing the debugfs on top of the rootfs.

(From OE-Core rev: c54147b286d72d7c4f8ca55a5a62f5d27bd5364a)

(From OE-Core rev: fdd2fca2257172251ffb0fbc6dcd60bed01ee0f0)

Signed-off-by: Robert Yang <liezhi.yang@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-07-02 11:41:25 +01:00
Catalin Enache
7f47789362 init-install: add timeout for legacy grub
After installing an image from an iso, booting the system using
the legacy boots makes the grub prompt wait for an enter.

This is not desirable since many of this devices are embedded
devices that should start by them self without user entry.

(From OE-Core rev: f6d85426e48d458d0835d4fd3314ce53ab92bd38)

(From OE-Core rev: c82968498e57fb726b299ff4fff2b61e92e22063)

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>
2018-07-02 11:41:25 +01:00
Liwei Song
7704098449 linux-firmware: package rtl8168 firmware
Add package for rtl8168 firmware which is required by Realtek
Ethernet Controller.

(From OE-Core rev: e5315d5d820cb1b164c75a0cab3804f6c69b5ba9)

(From OE-Core rev: 9910484a101279060cd0c9bc3e8b8af8700ba255)

Signed-off-by: Liwei Song <liwei.song@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-07-02 11:41:25 +01:00
Robert Yang
27881c8e92 site/powerpc64-linux: add cvs_cv_func_printf_ptr
Fixed when powerpc64:
$ bitbake <image> -ctestsdk
[snip]
checking whether printf supports %p... configure: error: cannot run test program while cross compiling
See `config.log' for more details.
test_cvs (oeqa.sdk.buildcvs.BuildCvsTest) ... FAIL
[snip]

The cvs_cv_func_printf_ptr is already in powerpc32-linux.

(From OE-Core rev: cbba73baf94cd0ee99d010abab79140cd5e4b99e)

(From OE-Core rev: b0488665785a07391b9a3ac25c3943b43ccb0a5c)

Signed-off-by: Robert Yang <liezhi.yang@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-07-02 11:41:25 +01:00
Ovidiu Panait
de85243b22 nativesdk-rpm: Add wrappers for nativesdk support
When installing the SDK to a non-default path, running "rpm --showrc" from the
sdk will produce the following error:
error: Unable to open /opt/windriver/wrlinux-small/10.17.41/sysroots/x86_64-wrlinuxsdk-linux/usr/lib/rpm/rpmrc for reading: No such file or directory.

Fix this by adding wrappers that dynamically export the RPM_CONFIGDIR,
RPM_ETCCONFIGDIR and MAGIC environment variables, pointing to the proper
sdk locations.

(From OE-Core rev: 760103cdaed3e820888d8984ec0b76cfc831d534)

(From OE-Core rev: bca05415510ebd847da0035536e32ab5fca1c3e2)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Hongxu Jia <hongxu.jia@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-07-02 11:41:25 +01:00
Yue Tao
67f4c5d1b6 initscripts: Avoid starting rpcbind daemon twice
Check the status before start it to avoid duplicates.

(From OE-Core rev: ca3ef7d1ef9b1f0dc4d3170b1ad20d5f725872a1)

(From OE-Core rev: 2f3faa2d80a2d848fe18fc375628b69a1ca4ee52)

Signed-off-by: Yue Tao <Yue.Tao@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Jeff Polk <jeff.polk@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-07-02 11:41:25 +01:00
yadi.hu@windriver.com
4b173dcf7c shadow: fix pam configs for chpasswd, newusers
Fix below errors while pam is enabled on target:

  root@qemux86:~# newusers
  newusers: PAM: Authentication failure
  root@qemux86:~# chpasswd
  chpasswd: PAM: Authentication failure

The configs copied from "chgpasswd" which command works with pam.

(From OE-Core rev: f6efc1dbd1f3a0f68ee731ff2b5a5d798ecf2cf8)

(From OE-Core rev: 67a504e3bfa8272c0ced9caf98e38896c576e3b8)

Signed-off-by: Hu <yadi.hu@windriver.com>
Signed-off-by: Wenzong Fan <wenzong.fan@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-07-02 11:41:25 +01:00
Mingli Yu
4e184cf1c4 at: add libselinux to PACKAGECONFIG
* add libselinux to PACKAGECONFIG for at

(From OE-Core rev: 978309270afc0e3d3fd9c46f68ddf28db99d7416)

(From OE-Core rev: f2893771f49737ef9a26cf1875ad2fba00f92139)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@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-07-02 11:41:25 +01:00
Li Wang
0a0f10c738 gawk: fix command location in ptest script
* Correct the command location in ptest scripts such as
  update the line "#!/bin/awk -f" to "#!/usr/bin/awk -f" in the
  file /usr/lib64/gawk/ptest/test/fcall_exit2.awk belongs
  to package gawk-ptest and the line "#!/usr/local/bin/gawk -f"
  to "#!/usr/bin/gawk -f" in the file
  /usr/lib64/gawk/ptest/test/fnarydel.awk

(From OE-Core rev: 66aa9f1424202a583acd168182ae13ea68e2ab15)

(From OE-Core rev: ef52d0a065c7cdbddbce98e50e7abf0dd3ef9e3e)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Mingli Yu <Mingli.Yu@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-07-02 11:41:25 +01:00
Chen Qi
1339b251c6 gawk: upgrade to 4.2.1
(From OE-Core rev: 86f137436da8a6d4aded66e586ba2b1eff725022)

(From OE-Core rev: a2cedb6fa38392ea8d96428b18c8861cbbf3df10)

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>
[Bug fix release per gawk release notes]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-02 11:41:24 +01:00
Kai Kang
cc5e38f39f shadow: update ownership and permission of /var/spool/mail
Update shadow to change ownership of /var/spool/mail from root:root to
root:mail and permission from 0755 to 0775 just as in most popular
distributions such as fedora and debian(It also set setgid bit in debian
but we don't need it).

(From OE-Core rev: b3ab5fe359c38cdd5cd86cb8ffe076d7a2baac18)

(From OE-Core rev: a77eff19be1d5812999bf584364000440f218fbb)

Signed-off-by: Kai Kang <kai.kang@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-07-02 11:41:24 +01:00
Scott Rifenbark
9e7dd7fdd3 sdk-manual: Updates to Depolying and Debugging
Made several formatting changes for selections.  These should
be using quotes and not being formatted in Courier.

(From yocto-docs rev: 0ca787b3ce91afbb4ea4aeb12052cff39892e99f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
aa6ea8847b sdk-manual: Updates to neon section building the project
Rendered a menu correctly instead of in formatting mode.

(From yocto-docs rev: 4c98d18ee3fbc57a369df4eb1251cafaaf16adee)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
d71f08e7d3 sdk-manual: Updates to configuring the cross-toolchains section.
The step that describes how Eclipse runs the Autotools is too
detailed and can run into problems as Autotools workflow changes.
I made it more general.

(From yocto-docs rev: 5a67a115395d3e18523c4a3b3be24c214e560e54)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
af334f2444 sdk-manual: Updated Neon creating the project section
Needed to render fields and items from the dialog in normal
text, not in formatted text.

(From yocto-docs rev: a2e17bd828ab1205bbb0c99fa00a76c2f5727e99)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
04acd2fc0b sdk-manual: Updates to configuring targe options sections
Both Neon and Oxygen needed some changes for correct use of the
way we refer to menus and fields.

(From yocto-docs rev: c35168b623f6bece20ae7df1ae430259b2d20044)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
c232b559f7 sdk-manual: Updates to configuring the cross compiler options
Used correct formatting for menu items and items fromt the
dialog screens.

(From yocto-docs rev: 28b37c9b0785da50a0da19757d70429de06991b5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
84a37339cc sdk-manual: Fixed section capitalization problem.
(From yocto-docs rev: 5f3272a0e327cae5f17700ba98aec6960b50ff8b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
9b7c894507 sdk-manual: Used ordered list for sequence-dependent items.
The list in the "Configuring the Neon Eclipse Yocto Plug-In
section should be an ordered list and not a bulleted list.

(From yocto-docs rev: 9e616582ee27d0bb976427d21d54b023f83eff56)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
e7cbff7002 sdk-manual: Updates to Neon intalling YP plug-in from latest source
I provided similar wordings in places in this section as were provided
in the parallel "oxygen" section.

(From yocto-docs rev: 956ee839f05d6608c315899c4444d125db338ef7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
92f7ba16da sdk-manual: Updated the step to install the pre-build YP plug-in
Needed to consolidate a couple steps here.  When you add in the
location for the YP Plug-in, it auto-populates the options.
Updated the prose to reflect that.

(From yocto-docs rev: 3d621a1fe552c6133517256c21efdfe4cacfe6ed)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
409b08f123 sdk-manual: Updated steps to configure Neon Eclipse IDE
The "Configuring the Neon Eclipse IDE" section needed a bit more
information in the note.  Telling the users that if some options
are already installed they will not appear in the list.

(From yocto-docs rev: 09b3252aaf49574e669b67e3ff00dceab89b40f5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
c548cc7b0a sdk-manual: Updated the Neon step to unpack the tarball
Steps indicated you had to be in a clean directory to unpack the
tarball.  This is false.  You can be in any directory and unpack the
file.  Unpacking it puts all the files into a directory named
"eclipse".

(From yocto-docs rev: 426aa18db25dbc275674a8aef26ede586a79ed3f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
0a8a26d8bc sdk-manual: Updates to step to download Neon Eclipse.
Fixed this step to be more accurate.

(From yocto-docs rev: 9df184b4ed7e8a7fa5849624911b810129c099a7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
f4253f4d4e sdk-manual: Fixed link in the intro section for Neon
The link was pointing to the Chapter 5 as if it were in a different
manual.  The link worked but should have been pointing to the actual
section of the Eclipse flow overview.  Fixed it.

(From yocto-docs rev: c60bc694a5b25fd2a9df5a10691ba301d39c5f16)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
99ad8448a6 sdk-manual: Updated the note in Eclipse configuration section
Using consistent wording.

(From yocto-docs rev: 067cba1b925cca971e783bd7e4abc9c965b0d8de)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
3e898a6da0 sdk-manual: Updated step to install Oxygen
The step describes the installation process and the intial launch
process.  No information exists for describing how you launch
Oxygen from outside the install process.  I added a note that
tells where the "eclipse" binary is installed and an example
line to invoke it.

(From yocto-docs rev: 6e3dbc9e123394d311da234e4457b9a6c253ff0d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
f535f16c2b sdk-manual: Removed superfluous text from Step 5 of the flow.
(From yocto-docs rev: 0869e5d1d2cc9239adbf58ad83c3305b34f38f01)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
d4fa6e28ab sdk-manual: Updated workflow step on getting the image
Provided better instructions and accounted for the fact that it
is just this workflow here that is assuming the need for a
YP-built image.

(From yocto-docs rev: edba9e07d7029e9276ebfd288448f4849ff3aed4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Scott Rifenbark
ce41cdbf31 sdk-manual: Updates to Eclipse Workflow section
Updated the "Workflow Using Eclipse" section head to not match so
closely the "Working With Eclipse" section heading.  TOC appeared
funny.

Also, updated the step 1 to be more accurate regarding the real
need of having a YP build host and where to go to get information
on setting it up.

(From yocto-docs rev: 4951b3f492c24724f1169068ee3593ad93b0c48a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-28 09:23:04 +01:00
Peter Kjellerstedt
4b6ff20a44 rpm: Restore performance in Docker containers
If the maximum number of open file descriptors is much greater than the
usual 1024 (for example inside a Docker container), the performance
drops significantly.

This was reported upstream in:
https://bugzilla.redhat.com/show_bug.cgi?id=1537564
which resulted in:
https://github.com/rpm-software-management/rpm/pull/444

The pull request above has now been integrated and this commit contains
a backport of its three patches, which together change the behavior of
rpm so that its performance is now independent of the maximum number of
open file descriptors.

(From OE-Core rev: 6ecb10e3952af4a77bc79160ecd81117e97d022a)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:58 +01:00
Peter Kjellerstedt
a20981354f Revert "rpm: add a patch to help with Docker performance issues"
This reverts commit 6f1822e5f1eaafd8bc46e999de730c1fcca77f3a.

This patch only solved a part of the problem.

(From OE-Core rev: 00a243c532095b593267d0e5075ea255eaabe720)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:58 +01:00
Richard Purdie
11fdce318f rpm: Fix patch to ensure variables aren't used uninitialised
Recent patches were applied which removed a function which set the xx
variable. This means xx can be uninitalised and prerm functions can fail.

This adjusts the patch to ensure the xx value isn't used in such a way.

(From OE-Core rev: 3feebf7d28ef1049075a9d2ad3d64fc9b35015f2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:58 +01:00
Otavio Salvador
c438388d6b linux-firmware: upgrade to 8fc2d4e5 revision
8fc2d4e Merge git://git.marvell.com/mwifiex-firmware
e1abab6 linux-firmware: update Marvell USB8997 firmware image to add WPA2 vulnerability fix
c38c231 linux-firmware: update Marvell SD8897-B0 firmware image to add WPA2 vulnerability fix
0686ec7 Merge branch 'firmware-update' of https://github.com/intel/opa-firmware
bb7f773 Update Intel OPA hfi1 firmware
397a604 qed: Add firmware 8.33.12.0
40d4117 linux-firmware: Add firmware file for Intel Bluetooth,9560
bf3934f linux-firmware: Add firmware file for Intel Bluetooth,9260
f865934 linux-firmware: Update firmware file for Intel Bluetooth,8265
7dab503 Merge branch 'for-upstream' of git://git.chelsio.net/pub/git/linux-firmware
0caed67 cxgb4: update firmware to revision 1.19.1.0
0783fb9 nfp: add symlink for mixed mode Agilio CX 2x25GbE cards
380957e nfp: update Agilio SmartNIC flower firmware to rev 5701
b562d2f linux-firmware: update wil6210 firmware to 5.2.0.18
c1aa76a linux-firmware: rsi: update firmware images for Redpine 9113 chipset
1621614 Merge tag 'iwlwifi-fw-2018-04-06' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware
50c1323 iwlwifi: update firmwares for 3160, 3168 and 7265
c711ea5 iwlwifi: add some new FW versions and update older ones
8c1e439 amdgpu: update vce firmware for Polaris
31accdf linux-firmware: Add firmware file for Intel Bluetooth,9560
89139e8 linux-firmware: Add firmware file for Intel Bluetooth,9260
58cdb52 linux-firmware: Update firmware file for Intel Bluetooth,8265
9cb49be linux-firmware: Update firmware patch for Intel Bluetooth 8260
a3be6d4 Merge https://github.com/Netronome/linux-firmware into netro

License-Update: new files and version update. Same terms.
(From OE-Core rev: 8c0ee2072d493ecd09284c27fc8d627e3e6c5ae8)

(From OE-Core rev: 1325518f8f2dafc09acd1bef5f93aa3550063306)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:58 +01:00
Khem Raj
e7233e33a1 libxcrypt: Upgrade to 4.0.1
Minor release primary fixes are
* get it building with gcc8
* Fixes for riscv64

drop local gcc8 support patch which is not needed now

(From OE-Core rev: b02ac5dd2dc27fe742cb7f20a12090eda3190c84)

(From OE-Core rev: 793d613253ea23ee4dc0819591e5c9851e6bd829)

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>
[Fixup for Sumo context, skipped gcc8 fix]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:58 +01:00
Armin Kuster
2b2ea2fa33 cmake: fix build issue with boost 1.66.0
this fixes a build issue with boost 1.66.0

[Yocto 12762]

(From OE-Core rev: 2ff3d3296deacb9af4d9ad0b92cd7ba5f94b7182)

(From OE-Core rev: eeb16e3601f884dfc0d3ddc54263f6bc5ccf8314)

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-06-15 17:56:57 +01:00
Alexander Kanavin
684b953071 sysvinit-inittab: do not use 'exit 1' to postpone to first boot
Instead, first check if we need to do anything at all during first boot,
and if so, either postpone to first boot via pkg_postinst_ontarget()
when running on host, or run the necessary setup code when running on target.

(From OE-Core rev: 16df1717c3813ba773e0dfa2d1db471816d8b99b)

This is a backport from master

(From OE-Core rev: f9f045ce9cbd441375f15911f3535cb1e304ba5b)

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: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Bruce Ashfield
1b2380158c linux-yoct/4.12: update to v4.12.24
Updating to include Paul Gortmaker's latest round of stable updates, which
comprise the following commits:

   dc2f71a08d7a Linux 4.12.24
   4cab262afa69 iio: adc: ti-ads1015: add 10% to conversion wait time
   89f573e6f136 tools include: Do not use poison with C++
   d4f418739d68 kprobes/x86: Disable preemption in ftrace-based jprobes
   28861253362b perf test attr: Fix ignored test case result
   12c60baac963 staging: fsl-mc/dpio: Fix incorrect comparison
   43e1cab01765 serial: imx: Update cached mctrl value when changing RTS
   6122e955f082 usbip: tools: Install all headers needed for libusbip development
   c1fce3e6296c serial: sh-sci: suppress warning for ports without dma channels
   444cfc461e20 sysrq : fix Show Regs call trace on ARM
   0040e82b1a65 usb: xhci: Return error when host is dead in xhci_disable_slot()
   e1667a3749da staging: fsl-dpaa2/eth: Account for Rx FD buffers on error path
   7e22cbc6bd55 usb: mtu3: fix error return code in ssusb_gadget_init()
   c528464afcea EDAC, sb_edac: Fix missing break in switch
   e207a0c6a285 clocksource/drivers/arm_arch_timer: Validate CNTFRQ after enabling frame
   c3c5783f9303 serial: 8250: Preserve DLD[7:4] for PORT_XR17V35X
   ca7b446eff2f PCI: dra7xx: Create functional dependency between PCIe and PHY
   7897f75fc207 usb: phy: tahvo: fix error handling in tahvo_usb_probe()
   c240911c41c3 mmc: sdhci-msm: fix issue with power irq
   97227123b5f0 mmc: tmio: check mmc_regulator_get_supply return value
   05ce425fa841 spi: spi-axi: fix potential use-after-free after deregistration
   42f90afc67e4 spi: sh-msiof: Fix DMA transfer size check
   c652d0d523bf staging: rtl8188eu: avoid a null dereference on pmlmepriv
   3dc08560ab63 serial: 8250_fintek: Fix rs485 disablement on invalid ioctl()
   d57c00699295 m68k: fix ColdFire node shift size calculation
   df74b0c1e0b4 staging: greybus: loopback: Fix iteration count on async path
   96be1d656724 x86/entry/64: Don't use IST entry for #BP stack (part #2)
   8e3f9a001776 selftests/x86/ldt_get: Add a few additional tests for limits
   0d0517d16bc5 s390/pci: do not require AIS facility
   778bf06a0661 PM / Domains: Fix genpd to deal with drivers returning 1 from ->prepare()
   bd4084ce13d2 s390: vfio-ccw: Do not attempt to free no-op, test and tic cda.
   fd6fe520a496 ima: fix hash algorithm initialization
   83cd72f27843 usb: host: fix incorrect updating of offset
   4ab295bc9cdf USB: usbfs: Filter flags passed in from user space
   d8ce9fecf049 USB: Fix off by one in type-specific length check of BOS SSP capability
   dc9843bd9e72 USB: core: Add type-specific length check of BOS descriptors
   ab95f86f0fac usb: xhci: fix panic in xhci_free_virt_devices_depth_first
   c1b551b8718a xhci: Don't show incorrect WARN message about events for empty rings
   8412154c096c USB: ulpi: fix bus-node lookup
   10d2d61bff44 usb: hub: Cycle HUB power when initialization fails
   da44857edd20 powerpc/kprobes: Fix call trace due to incorrect preempt count
   67482fcb1f0a powerpc/kprobes: Disable preemption before invoking probe handler for optprobes
   6f745a984365 powerpc/jprobes: Disable preemption when triggered through ftrace
   3fefceeaca8e USB: serial: usb_debug: add new USB device id
   9c971e7d3a9f USB: serial: option: add Quectel BG96 id
   cc01c484eee9 serial: 8250_pci: Add Amazon PCI serial device ID
   d16393b7a9d8 usb: quirks: Add no-lpm quirk for KY-688 USB 3.1 Type-C Hub
   7a0ac9cc347c uas: Always apply US_FL_NO_ATA_1X quirk to Seagate devices
   52c2b20403f0 s390/runtime instrumentation: simplify task exit handling
   04dd38b88979 drm/fsl-dcu: enable IRQ before drm_atomic_helper_resume()
   f363e7cdb4f6 drm/fsl-dcu: avoid disabling pixel clock twice on suspend
   2845e7d136c8 drm/i915: Prevent zero length "index" write
   79413d6f2f6f drm/i915: Don't try indexed reads to alternate slave addresses
   f5cc8d6842e6 drm/i915/gvt: Correct ADDR_4K/2M/1G_MASK definition
   1fab446c5b5a drm/i915: Fix false-positive assert_rpm_wakelock_held in i915_pmic_bus_access_notifier v2
   708262ebbebc md: forbid a RAID5 from having both a bitmap and a journal.
   40219fc4a45b e1000e: fix the use of magic numbers for buffer overrun issue
   9bbd7fc437e0 include/linux/compiler-clang.h: handle randomizable anonymous structs
   13782a203fb8 drm/amd/pp: fix typecast error in powerplay.
   dd1ab1b7a09e drm/ttm: once more fix ttm_buffer_object_transfer
   1e1df0b0eb71 drm/hisilicon: Ensure LDI regs are properly configured.
   e10ca648a294 drm/panel: simple: Add missing panel_simple_unprepare() calls
   28fb6325953c drm/radeon: fix atombios on big endian
   0f7ff143e866 drm/tilcdc: Precalculate total frametime in tilcdc_crtc_set_mode()
   00debaff36fb drm/amdgpu: Remove check which is not valid for certain VBIOS
   53543b5a5062 drm/amdgpu: Properly allocate VM invalidate eng v2
   6095ee5e76ed drm/amdgpu: correct reference clock value on vega10
   8544b664f20e Revert "drm/radeon: dont switch vt on suspend"
   3b28b8cd6364 nvme-pci: add quirk for delay before CHK RDY for WDC SN200
   2c1ae94e88ee hwmon: (jc42) optionally try to disable the SMBUS timeout
   8fcaaeed325c bcache: recover data from backing when data is clean
   027fe49240fa bcache: only permit to recovery read error when cache device is clean
   3746f4374ee2 bcache: Fix building error on MIPS
   72ea117f664e cxl: Check if vphb exists before iterating over AFU devices
   8ee52dd3b01a i2c: i801: Fix Failed to allocate irq -2147483648 error
   ab7ae0720406 eeprom: at24: check at24_read/write arguments
   1025c12d637b eeprom: at24: correctly set the size for at24mac402
   32aba2ddc564 eeprom: at24: fix reading from 24MAC402/24MAC602
   ec5216d0e845 mmc: core: prepend 0x to OCR entry in sysfs
   a64429e1d089 mmc: core: prepend 0x to pre_eol_info entry in sysfs
   32f6d6221e55 mmc: core: Do not leave the block driver in a suspended state
   fa455ca7acc6 arm64: module-plts: factor out PLT generation code for ftrace
   d9c2c353dc61 s390: revert ELF_ET_DYN_BASE base changes
   5c10828c07be lockd: lost rollback of set_grace_period() in lockd_down_net()
   91ed144855d5 crypto: skcipher - Fix skcipher_walk_aead_common
   0ff5af74c047 nfsd: fix panic in posix_unblock_lock called from nfs4_laundromat
   b187299249a2 nfsd: Fix another OPEN stateid race
   2e36e8a92541 nfsd: Fix stateid races between OPEN and CLOSE
   237c8c16013d btrfs: clear space cache inode generation always
   e6eedfd1ca3f mm/hugetlb: fix NULL-pointer dereference on 5-level paging machine
   b19cd2bae194 autofs: revert "autofs: take more care to not update last_used on path walk"
   9c0369beda80 device-dax: implement ->split() to catch invalid munmap attempts
   0d73cfed1391 platform/x86: hp-wmi: Fix tablet mode detection for convertibles

(From OE-Core rev: 5f5603c33368d7b0143aeb77a95bed90bb92cb51)

(From OE-Core rev: 63240522d5693e3e59da0ef849fe342acd5ab3c2)

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>
2018-06-15 17:56:57 +01:00
Bruce Ashfield
f3c4457dd8 linux-yocto/4.12: update to v4.12.23
Integrating the -stable updates from Paul Gortmake that comprise the following
commits:

   6e83f40c507e Linux 4.12.23
   55e376304f1b e1000e: fix buffer overrun while the I219 is processing DMA transactions
   3882bb678dd8 e1000e: Fix return value test
   167170375055 e1000e: Fix error path in link detection
   47722947f954 ARM64: dts: meson-gxl: Add alternate ARM Trusted Firmware reserved memory zone
   1dbaaa42b464 media: v4l2-ctrl: Fix flags field on Control events
   c7c9d8c465d7 [media] cx231xx-cards: fix NULL-deref on missing association descriptor
   6ee1ead888a3 media: rc: check for integer overflow
   6f70063599b3 media: Don't do DMA on stack for firmware upload in the AS102 driver
   ef4c54828c1d powerpc/64s/hash: Allow MAP_FIXED allocations to cross 128TB boundary
   d308f45eb9e7 powerpc/64s/hash: Fix fork() with 512TB process address space
   61c9dab21d03 powerpc/64s/hash: Fix 128TB-512TB virtual address boundary case allocation
   40744bdf965e powerpc/64s/hash: Fix 512T hint detection to use >= 128T
   c5866bd94f03 powerpc/64s/radix: Fix 128TB-512TB virtual address boundary case allocation
   49e9f537eb43 powerpc/signal: Properly handle return value from uprobe_deny_signal()
   fb991189ca1f parisc: Fix validity check of pointer size argument in new CAS implementation
   ae519d5e90b9 ixgbe: Fix skb list corruption on Power systems
   2a827971bc99 fm10k: Use smp_rmb rather than read_barrier_depends
   b1222f423f70 i40evf: Use smp_rmb rather than read_barrier_depends
   61d3820d1146 ixgbevf: Use smp_rmb rather than read_barrier_depends
   8c40cc266d42 igbvf: Use smp_rmb rather than read_barrier_depends
   d05a14e4483e igb: Use smp_rmb rather than read_barrier_depends
   9062b3d8fadd i40e: Use smp_rmb rather than read_barrier_depends
   bb0ddf274e82 spi-nor: intel-spi: Fix broken software sequencing codes
   11604df811a9 IB/srp: Avoid that a cable pull can trigger a kernel crash
   7a2f561b9470 IB/hfi1: Fix incorrect available receive user context count
   305382ae2297 IB/cm: Fix memory corruption in handling CM request
   9792edc692f1 IB/CM: Create appropriate path records when handling CM request
   0624d71dcd6f IB/srpt: Do not accept invalid initiator port names
   ff4035fcfb4d svcrdma: Preserve CB send buffer across retransmits
   f18fd397f0c1 libnvdimm, namespace: make 'resource' attribute only readable by root
   91d9aa084602 libnvdimm, region : make 'resource' attribute only readable by root
   ea9427658840 libnvdimm, namespace: fix label initialization to use valid seq numbers
   c0bcae085da8 libnvdimm, pfn: make 'resource' attribute only readable by root
   aa91e16e2756 libnvdimm, dimm: clear 'locked' status on successful DIMM enable
   eca24c2a944d clk: ti: dra7-atl-clock: fix child-node lookups
   104ab8491706 SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status
   a6579fafe2b9 dax: fix general protection fault in dax_alloc_inode
   b4f77dd3db27 dax: fix PMD faults on zero-length files
   12b2a43aa1b0 lockd: double unregister of inetaddr notifiers
   f2fa2903113c irqchip/gic-v3: Fix ppi-partitions lookup
   c08ddb437ddb genirq: Track whether the trigger type has been set
   fc12863e2ba3 raid1: prevent freeze_array/wait_all_barriers deadlock
   3c56a460c8bf block: Fix a race between blk_cleanup_queue() and timeout handling
   1e28e345115e p54: don't unregister leds when they are not initialized
   937209dd49f8 mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush sequence
   73d36ccc25ad mtd: nand: mtk: fix infinite ECC decode IRQ issue
   886c51dad821 mtd: nand: Fix writing mtdoops to nand flash.
   684797376fd0 mtd: nand: omap2: Fix subpage write
   b58d7cba2730 target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK
   8412e7db941c target: Fix quiese during transport_write_pending_qf endless loop
   7c302f595f4b target: Fix caw_sem leak in transport_generic_request_failure
   cc36f84ff1f0 target: Fix QUEUE_FULL + SCSI task attribute handling
   41411af9e8ad target: fix null pointer regression in core_tmr_drain_tmr_list
   8734ebeb8106 iscsi-target: Fix non-immediate TMR reference leak
   2e2bc1186a08 iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
   6de2abbd4c31 scsi: lpfc: Fix oops if nvmet_fc_register_targetport fails
   2000b870234f scsi: lpfc: Fix FCP hba_wqidx assignment
   01f0e334995a scsi: lpfc: Fix crash receiving ELS while detaching driver
   020ccb98ef75 scsi: lpfc: fix pci hot plug crash in list_add call
   9b58a782f5a4 scsi: lpfc: fix pci hot plug crash in timer management routines
   e316d92e10ac scsi: sd_zbc: Fix sd_zbc_read_zoned_characteristics()
   f98e27e575f1 net/9p: Switch to wait_event_killable()
   8be417a79efc fs/9p: Compare qid.path in v9fs_test_inode
   2e349fe9c2bb fix a page leak in vhost_scsi_iov_to_sgl() error recovery
   c0697b079ae5 mfd: lpc_ich: Avoton/Rangeley uses SPI_BYT method
   2ace5971b1c1 ASoC: sun8i-codec: Set the BCLK divider
   c7316d6679de ASoC: sun8i-codec: Fix left and right channels inversion
   2eb91e439cdf ASoC: sun8i-codec: Invert Master / Slave condition
   0a116d482fa8 ALSA: hda/realtek - Fix ALC700 family no sound issue
   1505048e3ff8 ALSA: hda: Fix too short HDMI/DP chmap reporting
   1a1f798bfb30 ALSA: timer: Remove kernel warning at compat ioctl error paths
   1051d7755bda ALSA: usb-audio: Add sanity checks in v2 clock parsers
   199cd7823763 ALSA: usb-audio: Fix potential out-of-bound access at parsing SU
   cf7d9d2b53dc ALSA: usb-audio: Add sanity checks to FE parser
   aba17bf44d13 ALSA: pcm: update tstamp only if audio_tstamp changed
   29259072ec04 ext4: prevent data corruption with journaling + DAX
   97da4f9039cb ext4: prevent data corruption with inline data + DAX
   5ddf166442c3 ext4: fix interaction between i_size, fallocate, and delalloc after a crash
   9ed0b612fb77 ata: fixes kernel crash while tracing ata_eh_link_autopsy event
   9d238de93426 fsnotify: fix pinning group in fsnotify_prepare_user_wait()
   5b981d854914 fsnotify: pin both inode and vfsmount mark
   91b0d40827a2 fsnotify: clean up fsnotify_prepare/finish_user_wait()
   99a127e4a587 md/bitmap: revert a patch
   b11cb870192e Bluetooth: btqcomsmd: Add support for BD address setup
   cd4c4ed7d2a0 md: don't check MD_SB_CHANGE_CLEAN in md_allow_write
   96e829f152c7 rtlwifi: fix uninitialized rtlhal->last_suspend_sec time
   7d43a23c6689 rtlwifi: rtl8192ee: Fix memory leak when loading firmware
   ef7cb0278073 nfsd: deal with revoked delegations appropriately
   b6996af90c58 NFS: revalidate "." etc correctly on "open".
   76d4c8adb264 NFS: Avoid RCU usage in tracepoints
   78e607a16574 nfs: Fix ugly referral attributes
   43f950f570f7 NFS: Revert "NFS: Move the flock open mode check into nfs_flock()"
   52e54c5dc1d3 NFS: Fix typo in nomigration mount option
   930ac0de39d5 isofs: fix timestamps beyond 2027
   70fb63a15260 fanotify: fix fsnotify_prepare_user_wait() failure
   568131ebc640 bcache: check ca->alloc_thread initialized before wake up it
   4739cc25fe6a libceph: don't WARN() if user tries to add invalid key
   f5e35be74237 eCryptfs: use after free in ecryptfs_release_messaging()
   8fa715eede18 fscrypt: lock mutex before checking for bounce page pool
   e880aa103552 nilfs2: fix race condition that causes file system corruption
   0eb9f2d0c80d autofs: fix careless error in recent commit
   7724ca25f299 autofs: don't fail mount for transient error
   020cd1b07344 rt2x00usb: mark device removed when get ENOENT usb error
   728ec449a62c MIPS: math-emu: Fix final emulation phase for certain instructions
   e67e9e160afb MIPS: BCM47XX: Fix LED inversion for WRT54GSv1
   b7fc80471672 MIPS: Fix an n32 core file generation regset support regression
   695a30121f31 MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry
   649b942f5f21 dm: discard support requires all targets in a table support discards
   9a77250fe32f dm: fix race between dm_get_from_kobject() and __dm_destroy()
   0f222c2c6239 MIPS: pci: Remove KERN_WARN instance inside the mt7620 driver
   badd13d39a0d dm: allocate struct mapped_device with kvzalloc
   1ea71c17d132 ovl: Put upperdentry if ovl_check_origin() fails
   20f908eac772 dm bufio: fix integer overflow when limiting maximum cache size
   21e0f5780760 dm mpath: remove annoying message of 'blk_get_request() returned -11'
   84370754991c dm crypt: allow unaligned bv_offset
   c27aa7e405c2 dm cache: fix race condition in the writeback mode overwrite_bio optimisation
   463a9e155dab dm integrity: allow unaligned bv_offset
   fa7ebbb65fac ALSA: hda: Add Raven PCI ID
   571d0222e808 PCI: Apply Cavium ThunderX ACS quirk to more Root Ports
   86602f1c5aac PCI: Set Cavium ACS capability quirk flags to assert RR/CR/SV/UF
   fc037283c8a7 PCI/ASPM: Use correct capability pointer to program LTR_L1.2_THRESHOLD
   f56bf6a0bd36 PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
   03a249b08df1 PM / OPP: Add missing of_node_put(np)
   2c1211c2edc9 nbd: don't start req until after the dead connection logic
   01d54a192605 nbd: wait uninterruptible for the dead timeout
   7bc2c995f8db net: mvneta: fix handling of the Tx descriptor counter
   504d2a22b3af MIPS: ralink: Fix typo in mt7628 pinmux function
   2f51d995b2b7 MIPS: ralink: Fix MT7628 pinmux
   55cc724a945f ARM: 8721/1: mm: dump: check hardware RO bit for LPAE
   884c853ff37b ARM: 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE
   c6a032594344 arm64: Implement arch-specific pte_access_permitted()
   8420a2afdea5 x86/entry/64: Fix entry_SYSCALL_64_after_hwframe() IRQ tracing
   95f53ae99256 lib/mpi: call cond_resched() from mpi_powm() loop
   a5d620687584 sched: Make resched_cpu() unconditional
   188ec06978ac serdev: fix registration of second slave
   9a6630779ac1 cpufreq: schedutil: Reset cached_raw_freq when not in sync with next_freq
   12da4fd9af22 ACPI / EC: Fix regression related to triggering source of EC event handling
   1925155cbaf8 s390/disassembler: correct disassembly lines alignment
   3bbfc892e348 s390/disassembler: increase show_code buffer size
   f2dd6d7f4453 s390/disassembler: add missing end marker for e7 table
   e4d2498802cf s390/guarded storage: fix possible memory corruption
   c1de5b04dff3 s390/runtime instrumention: fix possible memory corruption
   1156f0d1e7b9 s390/noexec: execute kexec datamover without DAT
   893ce3be12b7 s390: fix transactional execution control register handling
   e883dcdf2291 lguest: disable it vs. removing it.
   40bda3ef7bfd x86/entry/64: Don't use IST entry for #BP stack
   7414e2e34e6f kvm/x86: fix icebp instruction handling
   32ec5903cbbe perf/hwbp: Simplify the perf-hwbp code, fix documentation
   cc46dc546e06 media: usbtv: prevent double free in error case
   ffe911e1acac ALSA: seq: Make ioctls race-free

(From OE-Core rev: cd10e3be03a5c7c8c0e376c3e35fcba6d064a6db)

(From OE-Core rev: a00a3bc7d053dd2f0f6d3c20ca8a50e29a6afda9)

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>
2018-06-15 17:56:57 +01:00
Bruce Ashfield
9cb5182ac2 linux-yocto/4.12: update to v4.12.22
Paul Gortmaker released another 4.12-stable that comprises the following
changes:

   23dcfbfbca0a Linux 4.12.22
   d4879ce5efb7 arm64: Kill PSCI_GET_VERSION as a variant-2 workaround
   77915e1a7544 arm64: Add ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support
   b06fbedb6e14 arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
   1f400b388a20 arm/arm64: smccc: Make function identifiers an unsigned quantity
   f5d3afa3aecc firmware/psci: Expose SMCCC version through psci_ops
   4c69d3a66e60 firmware/psci: Expose PSCI conduit
   cfec930a45f8 arm64: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
   9e9697733818 arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support
   2a8574eb6e3f arm/arm64: KVM: Turn kvm_psci_version into a static inline
   2c79f828dfed arm64: KVM: Make PSCI_VERSION a fast path
   042626a87234 arm/arm64: KVM: Advertise SMCCC v1.1
   48a9e563e528 arm/arm64: KVM: Implement PSCI 1.0 support
   28283de68052 arm/arm64: KVM: Add smccc accessors to PSCI code
   33d47367626b arm/arm64: KVM: Add PSCI_VERSION helper
   82ca1dcebf95 arm/arm64: KVM: Consolidate the PSCI include files
   efb7c6b5b7f9 arm64: KVM: Increment PC after handling an SMC trap
   b720b7837ed8 arm64: Branch predictor hardening for Cavium ThunderX2
   6f2750c7a1c9 arm64: Implement branch predictor hardening for Falkor
   b56fa11959a7 arm64: Implement branch predictor hardening for affected Cortex-A CPUs
   5eb80f970c49 arm64: cputype: Add missing MIDR values for Cortex-A72 and Cortex-A75
   cf45e77d8106 arm64: entry: Apply BP hardening for suspicious interrupts from EL0
   e9c2f25bf62d arm64: entry: Apply BP hardening for high-priority synchronous exceptions
   b4f51ebd0fc3 arm64: KVM: Use per-CPU vector when BP hardening is enabled
   e8f7c5ba8c70 arm64: Move BP hardening to check_and_switch_context
   e2c124fa14e1 arm64: Add skeleton to harden the branch predictor against aliasing attacks
   ddd305f0fdf8 arm64: Move post_ttbr_update_workaround to C code
   204d987e7143 drivers/firmware: Expose psci_get_version through psci_ops structure
   8880e6380d91 arm64: cpufeature: Pass capability structure to ->enable callback
   48017c15187b arm64: Run enable method for errata work arounds on late CPUs
   cf64258fb122 arm64: cpufeature: __this_cpu_has_cap() shouldn't stop early
   7d550f8cb119 arm64: futex: Mask __user pointers prior to dereference
   b9d01590df34 arm64: uaccess: Mask __user pointers for __arch_{clear, copy_*}_user
   1b74ca827ed3 arm64: uaccess: Don't bother eliding access_ok checks in __{get, put}_user
   41b08b7c365b arm64: uaccess: Prevent speculative use of the current addr_limit
   1736debe11ef arm64: entry: Ensure branch through syscall table is bounded under speculation
   84e4780beea5 arm64: Use pointer masking to limit uaccess speculation
   d77d4c9aa433 arm64: Make USER_DS an inclusive limit
   b96ab81a6468 arm64: Implement array_index_mask_nospec()
   21eb21937d8e arm64: barrier: Add CSDB macros to control data-value prediction
   da1217a79997 arm64: idmap: Use "awx" flags for .idmap.text .pushsection directives
   c20b48f5b7a3 arm64: entry: Reword comment about post_ttbr_update_workaround
   15d4d37f7709 arm64: Force KPTI to be disabled on Cavium ThunderX
   3489abd67e33 arm64: kpti: Add ->enable callback to remap swapper using nG mappings
   b154d9be8c6f arm64: mm: Permit transitioning from Global to Non-Global without BBM
   1610bb019302 arm64: kpti: Make use of nG dependent on arm64_kernel_unmapped_at_el0()
   250a3a64585f arm64: Turn on KPTI only on CPUs that need it
   32da2aa26b97 arm64: cputype: Add MIDR values for Cavium ThunderX2 CPUs
   93d290bbe8f1 arm64: kpti: Fix the interaction between ASID switching and software PAN
   923618230c12 arm64: mm: Introduce TTBR_ASID_MASK for getting at the ASID in the TTBR
   51218390beb6 arm64: capabilities: Handle duplicate entries for a capability
   630cf7161fca arm64: Take into account ID_AA64PFR0_EL1.CSV3
   4b7ebe5c3644 arm64: Kconfig: Reword UNMAP_KERNEL_AT_EL0 kconfig entry
   e09f32469091 arm64: Kconfig: Add CONFIG_UNMAP_KERNEL_AT_EL0
   8202169d678a arm64: use RET instruction for exiting the trampoline
   414d9eabda3d arm64: kaslr: Put kernel vectors address in separate data page
   fce92f180168 arm64: entry: Add fake CPU feature for unmapping the kernel at EL0
   83584a583bff arm64: tls: Avoid unconditional zeroing of tpidrro_el0 for native tasks
   4732b98b6400 arm64: cpu_errata: Add Kryo to Falkor 1003 errata
   85dacaa58475 arm64: erratum: Work around Falkor erratum #E1003 in trampoline code
   bb0fa2f9cece arm64: entry: Hook up entry trampoline to exception vectors
   df7f7308d5f0 arm64: entry: Explicitly pass exception level to kernel_ventry macro
   14bcc912ca7e arm64: mm: Map entry trampoline into trampoline and kernel page tables
   c30f47afaa64 arm64: entry: Add exception trampoline page for exceptions from EL0
   21b891bf770f arm64: mm: Invalidate both kernel and user ASIDs when performing TLBI
   09e8df92ba8e arm64: mm: Add arm64_kernel_unmapped_at_el0 helper
   6832da386e60 arm64: mm: Allocate ASIDs in pairs
   bfd2ff25b585 arm64: mm: Fix and re-enable ARM64_SW_TTBR0_PAN
   1e4477930e5e arm64: mm: Rename post_ttbr0_update_workaround
   1e1890551573 arm64: mm: Remove pre_ttbr0_update_workaround for Falkor erratum #E1003
   0223b2589432 arm64: mm: Move ASID from TTBR0 to TTBR1
   9fe82f4ebdc3 arm64: mm: Temporarily disable ARM64_SW_TTBR0_PAN
   199f832ebf00 arm64: mm: Use non-global mappings for kernel space
   e9b0e14af7e3 arm64: move TASK_* definitions to <asm/processor.h>
   cab5207f57fd brd: remove unused brd_mutex
   7522521435a4 arm/syscalls: Optimize address limit check
   797f169015c5 Revert "arm/syscalls: Check address limit on user-mode return"
   3056c8f5be3a syscalls: Use CHECK_DATA_CORRUPTION for addr_limit_user_check
   74116ef5625a arm64: add VMAP_STACK overflow detection
   0d82fd80a2d1 arm64: add on_accessible_stack()
   c38502bc1472 arm64: add basic VMAP_STACK support
   c3a53247c1ff arm64: use an irq stack pointer
   73dcb6d84040 arm64: assembler: allow adr_this_cpu to use the stack pointer
   344a8e142697 arm64: factor out entry stack manipulation
   59c4a6fb5606 efi/arm64: add EFI_KIMG_ALIGN
   1a5300c6063f arm64: move SEGMENT_ALIGN to <asm/memory.h>
   3969d302c52f arm64: clean up irq stack definitions
   f030f0edba48 arm64: clean up THREAD_* definitions
   1f3c78245a4a arm64: factor out PAGE_* and CONT_* definitions
   8a5bc40e0c93 arm64: kernel: remove {THREAD,IRQ_STACK}_START_SP
   deba543af0b8 fork: allow arch-override of VMAP stack alignment
   774f64ce7b0f arm64: remove __die()'s stack dump
   7342855775d5 arm64: unwind: remove sp from struct stackframe
   553dbcbcff1d arm64: unwind: reference pt_regs via embedded stack frame
   926b0fe43412 arm64: unwind: disregard frame.sp when validating frame pointer
   da32ad8b5c11 arm64: unwind: avoid percpu indirection for irq stack
   eac4e8ecdd77 arm64: move non-entry code out of .entry.text
   b341e176374e arm64: consistently use bl for C exception entry
   3cdad1f0b9d0 arm64: Add ASM_BUG()
   01ace65c9150 arm64/vdso: Support mremap() for vDSO
   8050b6ba63cb arm64: Handle trapped DC CVAP
   0ee09d69dc93 arm64: Expose DC CVAP to userspace
   704046e3e554 arm64: Convert __inval_cache_range() to area-based
   b40935f19c73 arm64: mm: Fix set_memory_valid() declaration
   29530b5b549e arm64: Abstract syscallno manipulation
   f9f1c9d7d767 arm64: syscallno is secretly an int, make it official
   ab69949ffe23 x86/tracing: Build tracepoints only when they are used
   03793940e25c x86/tracing: Disentangle pagefault and resched IPI tracing key
   2822852ed8a5 x86/idt: Clean up the i386 low level entry macros
   d5654eb18f73 x86/idt: Remove the tracing IDT completely
   0d38071a05e7 x86/smp: Use static key for reschedule interrupt tracing
   4ef6e0f37891 x86/smp: Remove pointless duplicated interrupt code
   40b216cec86d x86/mce: Remove duplicated tracing interrupt code
   03f41cf538fd x86/irqwork: Get rid of duplicated tracing interrupt code
   418b9a493901 x86/apic: Remove the duplicated tracing versions of interrupts
   5be95f8dfffe x86/irq: Get rid of duplicated trace_x86_platform_ipi() code
   bd936c5d828a x86/apic: Remove the duplicated tracing version of local_timer_interrupt()
   f4971407abbb x86/traps: Simplify pagefault tracing logic
   2f436623b2c3 x86/tracing: Introduce a static key for exception tracing
   4395735bf0a9 arm64/syscalls: Check address limit on user-mode return
   3e1d12839e05 arm/syscalls: Check address limit on user-mode return
   649cd48799ef x86/syscalls: Check address limit on user-mode return
   8fe35f321cd3 audit: fix memleak in auditd_send_unicast_skb.
   4b1e889a4dd0 arm64: ptrace: Flush user-RW TLS reg to thread_struct before reading
   75a382c72d50 arm64: Add dump_backtrace() in show_regs

(From OE-Core rev: 9edeb4733e4a49d11febadc0e282c68c05e39575)

(From OE-Core rev: 7a87168a6e28da3f6b78d633f5f78d591c69323e)

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>
2018-06-15 17:56:57 +01:00
Andre McCurdy
664b1d5379 curl: update 7.59.0 -> 7.60.0
includes:
CVE-2018-1000300	CWE-122: Heap-based Buffer Overflow
CVE-2018-1000301	CWE-126: Buffer Over-read

  https://curl.haxx.se/changes.html#7_60_0

Also refresh 0001-replace-krb5-config-with-pkg-config.patch and drop
configure_ac.patch, which we've apparently been dragging along
unnecessarily for the past 5 years:

  c277bd6ce7

(From OE-Core rev: 4063c1e4b233b28ae14420a83960fd93b437a4a4)

(From OE-Core rev: 4decc8ca3bd1b6c1c67182782fe6019dc0efc4fa)

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>
2018-06-15 17:56:57 +01:00
Armin Kuster
3fc84130ca curl: update to 7.59.0
includes:
CVE-2018-1000300	CWE-122: Heap-based Buffer Overflow
CVE-2018-1000301	CWE-126: Buffer Over-read
CVE-2018-1000122	CWE-126: Buffer Over-read
CVE-2018-1000121	CWE-476: NULL Pointer Dereference
CVE-2018-1000120	CWE-122: Heap-based Buffer Overflow

(From OE-Core rev: 4c1ed0a1a265add8d856a6d2c6f04562b975c180)

(From OE-Core rev: 6582a76c990fe068fd37525943403ca9ff9c1d05)

Signed-off-by: Armin Kuster <akuster@mvista.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-06-15 17:56:57 +01:00
Jibin Xu
e55a5d7c2d wget: upgrade 1.19.4 -> 1.19.5
Noteworthy changes:

* Fix cookie injection (CVE-2018-0494)

* Enable TLS1.3 with recent OpenSSL environment

* New option --ciphers to set GnuTLS / OpenSSL ciphers directly

* Updated CSS grammar to CSS 2.2

* Fixed several memleaks found by OSS-Fuzz

* Fixed several buffer overflows found by OSS-Fuzz

* Fixed several integer overflows found by OSS-Fuzz

* Several minor bug fixes

(From OE-Core rev: 5b966e87aba19629408daeff25c1e6883300fb10)

(From OE-Core rev: 8e4edd3942351c49f312b5366b2359fdc2911482)

Signed-off-by: Jibin Xu <jibin.xu@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>
2018-06-15 17:56:57 +01:00
Martin Jansa
550bd17739 perf: fix build with kernel older than 4.8
* perf is failing to build for me since this oe-core commit:
  commit 9b38c824961fc9dce51bda95c25dac91a69fc64f
  Author: Hongxu Jia <hongxu.jia@windriver.com>
  Date:   Tue Apr 24 11:33:47 2018 +0800

    perf: make a copy of kernel source to perf workdir

  the problem is that perf sources in kernel older than 4.8 (in my case
  4.4) are depending on the "global" include headers outside tools
  directory, e.g. swab.h in:
  kernel-source/tools$ git grep swab.h
  perf/MANIFEST:include/linux/swab.h
  perf/MANIFEST:include/uapi/linux/swab.h
  perf/util/include/asm/byteorder.h:#include "../../../../include/uapi/linux/swab.h"

  this was resolved in 4.8 with:
  commit 7e3f36411342a54f1981fa97b43550b8406a3d69
  Author: Arnaldo Carvalho de Melo <acme@redhat.com>
  Date:   Mon Jul 18 17:42:16 2016 -0300

    perf tools: Remove tools/perf/util/include/asm/byteorder.h

    Not used anymore. This also stops include linux/swab.h directly
    from the kernel sources, remove that reference from the MANIFEST.

  and few more changes to make tools/include more complete and standalone:
  tools/include in 4.15:
  asm  asm-generic  linux  tools  trace  uapi

  tools/include in 4.4:
  asm  asm-generic  linux  tools

  but copying the include header even for kernels which don't really
  need it doesn't add big overhead, so just copy include to perf sources
  for all kernels.

(From OE-Core rev: 19fb2d11a8bb3c6dfdd5edc1b9155d642dc0f5e0)

(From OE-Core rev: 7950b1ed077eaecff1523221c297158aa54b7ecf)

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>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Khem Raj
58dc5e40c1 systemd: Define basename() for musl
(From OE-Core rev: 167098cdd875a02221ff6d15f443c02c1bcdc33f)

(From OE-Core rev: 5ff707e15c68d77c371b43a970e62302f7492545)

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>
2018-06-15 17:56:57 +01:00
Khem Raj
f50fe62931 systemd: Fix build with gcc8
(From OE-Core rev: 6a3805f06cd7832d70d5b652ec1be612f5f027e6)

(From OE-Core rev: 24e9ae887739f2ac6c3694b04c2c6159d6549be9)

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>
2018-06-15 17:56:57 +01:00
Ross Burton
3ca535a09d systemd: fix build with util-linux 2.32
(From OE-Core rev: 12b4fc15f6919d7573bea5d913fb805993e8640a)

(From OE-Core rev: ba7845c1b1773cf382ab13007ce91a3b0e46525f)

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-06-15 17:56:57 +01:00
Armin Kuster
2ccc08ca91 util-linux: update to 2.32
rfkill moved locations, update accordingly

refactored avoid_parallel_tests.patch

includes security fix:
CVE-2018-7738 (score: 7.2)
affects: < 2.32-rc1

see changelog for other bugfixes:
https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.32/v2.32-ChangeLog

(From OE-Core rev: a7a1e3155287d3bac7ab83e58d53ee2a364f2e29)

(From OE-Core rev: 29baeaeda83b0d99af29b8cb55b839da47979075)

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-06-15 17:56:57 +01:00
Martin Jansa
f7681fc8c7 grub2: fix build with gcc8
(From OE-Core rev: 3eca7aa8196ef8ed682659ff47f3f1e3b2c6867d)

(From OE-Core rev: cdd8c4f304c64a3bc20af88a77fe079655eaca8d)

Signed-off-by: Martin Jansa <Martin.Jansa@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-06-15 17:56:57 +01:00
Haris Okanovic
666d73e0d1 depmodwrapper-cross: Add kmod-native to DEPENDS
Add `DEPENDS += "kmod-native"` to ensure depmod utility is added to
recipe-sysroot-native during image build.

Without this dependency, image builds where BUILD_IMAGES_FROM_FEEDS=1
have depmodwrapper in recipe-sysroot-native but are missing depmod.
Kernel postinst scripts rely on depmod (via depmodwrapper) to index
newly installed modules.

(From OE-Core rev: d693457f9de92e4e8b61881638787e831f0ca197)

(From OE-Core rev: c60711bb734dceb8274720c898eba11bfd8da749)

Signed-off-by: Haris Okanovic <haris.okanovic@ni.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-06-15 17:56:57 +01:00
Andrea Galbusera
fe0c7b98c1 systemd: backport patch to fix build when gcrypt is enabled
When gcrypt support is present in PACKAGECONFIG, build fails due to the bug
reported in [1]. Since this is already solved upstream, this commit backports
the corresponding patch.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893602

(From OE-Core rev: 4f68722e37d28b5fdd30409570405bf65445eef2)

(From OE-Core rev: 628f6f20925fb4c7d5ac903d77dac1ee5b3affef)

Signed-off-by: Andrea Galbusera <gizero@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>
2018-06-15 17:56:57 +01:00
Krzysztof Taborski
5878d5d3f9 perl: native modules will not trigger build perl for target.
Currently building perl-native modules triggers
build perl for target due to PACKAGES_DYNAMIC regex.

This commit will cause, that perl native modules will
trigger perl-native build.

(From OE-Core rev: 7dd9772eca6df52db09b65537fdf689f1aa3fd8f)

(From OE-Core rev: 3ad793c9ae1eb0b0599078298d55a37042f11239)

Signed-off-by: Krzysztof Taborski <taborskikrzysztof@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-06-15 17:56:57 +01:00
Juro Bystricky
642944f788 distcc-doc_3.2: improve reproducibility
Remove timestamps from metadata of gzip compressed files.

(From OE-Core rev: 8d009dd8c3c56601905a156cb06f339dd4a298e6)

(From OE-Core rev: 909e8a99e3ca2db524d82f8fab829379b0b7d88b)

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-06-15 17:56:57 +01:00
Alexander Kanavin
bfef226edd ifupdown: correct the repository location
The old repo is gone.

(From OE-Core rev: f171137579bf3141032d309fa433c14ac9141e43)

(From OE-Core rev: 9c70812fa9c37f1a497eb6f8f37c95c6e8403e6d)

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-06-15 17:56:57 +01:00
Richard Purdie
2aa20d11ff settings-daemon: Drop pointless apply=yes in SRC_URI
(From OE-Core rev: ae8b78f2ef5df4b24f8e2294c5e2760367b8bf8d)

(From OE-Core rev: f02e257a1f9e30876b71afc99ea34668b6a2f39a)

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-06-15 17:56:57 +01:00
Otavio Salvador
ee210d1086 go: Update 1.9.4 -> 1.9.6
The 1.9.6 fixes a number of issues since 1.9.4 release, mainly:

go1.9.5 (released 2018/03/28) includes fixes to the compiler, go
command, and net/http/pprof package.

go1.9.6 (released 2018/05/01) includes fixes to the compiler and go
command.

(From OE-Core rev: d4abc33c81f7aa33c432ead92ae16df01ebe36c8)

(From OE-Core rev: 020b0c2a85f259d92fc6c737a86d04824aa545d9)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Otavio Salvador
0411a0d053 go: Upgrade 1.10.1 -> 1.10.2
This is a minor release that fixes many important issues found since
1.10.1 release.

(From OE-Core rev: 844f3191cd3d8746b7b31cff83e7655958226520)

(From OE-Core rev: 68eef4af5cfa466a7def567a8ce824e65accc708)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Mike Crowe
f9005f3dc6 alsa-utils: Fix error when removing unwanted udev rules
If alsa-utils configure is not passed a --with-udev-rules-dir option then
it defaults to using /lib/udev/rules.d. This meant that the hard-coded use
of ${D}/lib in do_install in 262e69c9c7acf0beb7bb6b96299e3c993c906434
worked correctly to remove the unwanted rules.

Subsequently, 0a4372705a030ca54ed420cdfec33d46ab93499c changed do_install
to use ${nonarch_base_libdir}, claiming to fix this in the usrmerge case.

This means that if udev is not present in PACKAGECONFIG and usrmerge is
present in DISTRO_FEATURES then the alsa-utils build system will install
the rules in ${D}/lib/udev/rules.d but do_install will attempt to remove
${D}/usr/lib, resulting in something like:

 rmdir: failed to remove '.../tmp-glibc/work/i586-oe-linux/alsa-utils/1.1.5-r0/image/usr/lib': No such file or directory

To fix this, let's just tell configure to install the rules in a specific
known location when udev is disabled. This location can then easily be
cleaned up in do_install without doing any harm if udev is enabled.

Tested both with and without usrmerge in DISTRO_FEATURES and with and
without udev in PACKAGECONFIG.

(From OE-Core rev: 022b644e6ba2caa0b32ce3323621c07f78166234)

(From OE-Core rev: 913eb3376defe17e32a35114cc4bec478e24cf62)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Cc: Phil Blundell <pb@pbcl.net>
Cc: 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-06-15 17:56:57 +01:00
Martin Lund
e54df7e22a mtd-utils: Add mtd-utils-tests package
Add mtd-utils-tests package which includes the test suites mtd-tests,
ubi-tests, fs-tests, etc.

These test suites are useful for verifying flash features or stress
testing.

(From OE-Core rev: 612d0468e34ca922b42a1176ab1e2feef72a2a13)

(From OE-Core rev: 1286cd2d3f5e37fed9021e0b3d6b8debd9ff3a71)

Signed-off-by: Martin Lund <malu@gomspace.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-06-15 17:56:57 +01:00
Hongxu Jia
379bc778e5 qemu: fix CVE-2017-16845
During Qemu guest migration, a destination process invokes ps2
post_load function. In that, if 'rptr' and 'count' values were
invalid, it could lead to OOB access or infinite loop issue.
Add check to avoid it.

(From OE-Core rev: 0d8f68fe43b4da1a0d356fe6bedb52b8f2a02081)

(From OE-Core rev: cdfceda098aa1a864cbb794065b9f555810c5c71)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Hongxu Jia
97917efa50 perf: make a copy of kernel source to perf workdir
Since perf contaminates linux shared workdir, it probably caused
kernel-devsrc compile failure at world build.
...
|0 blocks
|cpio: ./tools/perf/arch/arm/util/sedr7ORqk: Cannot stat:
No such file or directory
|0 blocks
...
cpio tried to find a file at ${S}/tools/perf and failed
if the input list is not valid.

Make a copy of kernel shared source directory into a perf workdir
could fix the issue.

Drop `Fix for rebuilding' which is obsolete

[YOCTO #10880]

(From OE-Core rev: 9b38c824961fc9dce51bda95c25dac91a69fc64f)

(From OE-Core rev: 1a39330bf79f3d36a1a0f6d34b421de53ff36405)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Joe Slater
3452141b02 python3-native: correctly invoke regen-importlib make target
Redefiine regen-all in Makefile to invoke regen-importlib after
building other regen- targets.  Change the recipe to not build it
before regen-all.  This avoids trying to build it multiple times,
which can occasionally fail.

(From OE-Core rev: 72d62c9af07bf34bb8fbb3958742eb592985acc2)

(From OE-Core rev: 5b9af58be9194233a05a10c3e5b5efd053cc28d2)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Ming Liu
d85fcec563 image_types_wic: add do_image_wic before do_image_complete
We have some tasks depending on image's do_image_complete task, and we
are also using WKS files to generate partitioned images, but now there
is lacking a inter dependency between do_image_wic and
do_image_complete, so we have to depend on both of them.

Fixed by adding the dependency.

(From OE-Core rev: e3a25f06f2cde701415f4130a43c9b3895d42f10)

(From OE-Core rev: a2f8f3d3ed92898c71c68dbfe27523e77e604af9)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Ricardo Salveti
86f7546783 grub-efi: add grub target and image for aarch64
Add missing target and image for aarch64, as the current revision is
already fully compatible with ARMv8.

(From OE-Core rev: 43dc32aa00c87f62dcf9a857d4e32469ce27c9e9)

(From OE-Core rev: df755db584d3a17505700965591eccb68695d00d)

Signed-off-by: Ricardo Salveti <ricardo@opensourcefoundries.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-06-15 17:56:57 +01:00
Niko Mauno
a455c16951 mtd-utils: Complement update-alternatives scope
Avoid collision of mtd-utils and mtd-utils-ubifs provided binaries
with identically named BusyBox provided applets in case packages
are installed to same rootfs, by adding relevant binaries to
update-alternatives scope

(From OE-Core rev: a9d8a8b27fc4bc6bdaa9133efd87430813a13212)

(From OE-Core rev: f06a276b7bd10f3ada796f943e7b702283da91eb)

Signed-off-by: Niko Mauno <niko.mauno@vaisala.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-06-15 17:56:57 +01:00
Chen Qi
eb24d4aeac linux-libc-headers: multilib_header asm/kvm_para.h and asm/bpf_perf_event.h
When building SDK via populate_sdk for qemuarm64 with multilib
enabled, we would have conflict about bits/floatn.h at populate_sdk
time.

  file /usr/include/asm/bpf_perf_event.h conflicts between attempted installs of lib32-linux-libc-headers-dev-4.15.7-r0.armv7vehf_vfp and linux-libc-headers-dev-4.15.7-r0.aarch64
  file /usr/include/asm/kvm_para.h conflicts between attempted installs of lib32-linux-libc-headers-dev-4.15.7-r0.armv7vehf_vfp and linux-libc-headers-dev-4.15.7-r0.aarch64

Apply oe_multilib_header on these header files to fix the problem.

(From OE-Core rev: 89b4e77129990b842e2ca917b98473ec58205e88)

(From OE-Core rev: 7df28830e9d08b516e8992d0fab4cea58c31aa67)

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>
2018-06-15 17:56:57 +01:00
Chen Qi
88c4375131 glibc: use oe_multilib_header on bits/floatn.h
When building SDK via populate_sdk for qemuarm64 with multilib
enabled, we would have conflict about bits/floatn.h at populate_sdk
time.

  file /usr/include/bits/floatn.h conflicts between attempted ins
talls of libc6-dev-2.27-r0.aarch64 and lib32-libc6-dev-2.27-r0.armv7vehf_vfp

Apply oe_multilib_header on this header file to fix the problem.

(From OE-Core rev: 650c59c8b6796cf4797ca1860be85f6ccf50bcd2)

(From OE-Core rev: 4aabbd41e9c414d4ac765d1d343ca5d62408eaea)

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>
2018-06-15 17:56:57 +01:00
Niko Mauno
a9803c97bb procps: Complement update-alternatives scope
Avoid collision of propcs provided w binary with BusyBox-provided
applet in case both are installed to same rootfs, by adding w to
update-alternatives scope via bindir_progs variable

(From OE-Core rev: de4206c6fd0c3be77d71958f532604b65a4dd5be)

(From OE-Core rev: ab78b6a9bfa7fbdc7dca44734060b62900e2b94e)

Signed-off-by: Niko Mauno <niko.mauno@vaisala.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-06-15 17:56:57 +01:00
Khem Raj
750e2e0ed4 llvm: Fix [compile-host-path] QA issue
Its trying to build NATIVE llvm-config which is
already built with llvm-native so we do not need
to rebuild it

Drop setting NINJA_STATUS explicitly, its no longer
needed, on the contrary it hinders the task status
update

(From OE-Core rev: f8393b2b4bc5fbd972be00cb17d0c574ae8deff9)

(From OE-Core rev: dae7d6abe71773962e0088b73b3584dd2d18c5f6)

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>
2018-06-15 17:56:57 +01:00
Hongxu Jia
06b5932512 perl: fix CVE-2017-12837
https://perl5.git.perl.org/perl.git/commitdiff/96c83ed78aeea1a0496dd2b2d935869a822dc8a5

(From OE-Core rev: bd53256e165f5bb59a28d77a466d71fce39080fa)

(From OE-Core rev: 5f808ec161d1604ffd1744f5d488b0ca9fc8f50f)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:57 +01:00
Sarah Marsh
00efe433ec recipetool: fixed uncaught NameError exception
When packaging a node application, a `NameError` can be thrown in create_npm.py if an optional npm dependency does not
support Linux.

(From OE-Core rev: 8293201d98d368d6322eaa960fb3e7cee2ba9368)

(From OE-Core rev: c5d0afb8d7faa2c2662264e913dc2733503ec204)

Signed-off-by: Sarah Marsh <sarah.marsh@arm.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-06-15 17:56:57 +01:00
Kevin Carli
13977b08a8 tzdata: fix a typo.
(From OE-Core rev: 6e3ea2f17bcd9d942f838ba972338d92e95f65d4)

(From OE-Core rev: 0447453bc1ce8e72c2cfefd8395e98300951713e)

Signed-off-by: Kevin Carli <k.carli@overkiz.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-06-15 17:56:57 +01:00
Scott Rifenbark
2c1f59f86b sdk-manual: Small edits correcting bits and pieces in Eclipse chapter.
(From yocto-docs rev: 6268fece1286d8240db7636271ac8c603039c558)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:39 +01:00
Scott Rifenbark
678f203185 sdk-manual: Edits to the Oxygen section
Found several items that were slightly off after working through the
procedure.  Updates to bring it into line with reality.

(From yocto-docs rev: bc024c4484db3fdfb44fdb6f8709ad47378d85e2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:39 +01:00
Scott Rifenbark
af8a19aefc sdk-manual: Updated the "Makefile-Based Projects" section.
Expanded this section to contain a figure of the flow and an
example that showcases the ways to override and use SDK
environment and Makefile variables.

(From yocto-docs rev: 422b5dda50c47d03adf2a8c4e8cfdb02eddff0ca)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:39 +01:00
Scott Rifenbark
d4cb513150 sdk-manual: Created a new Makefile flow diagram
The Makefile-Based Projects section was expanded to add a useful
example and figure.  Added this figure to the sdk-manual and
mega-manual figures folders.

Updated the Makefile to include the new figure as part of the
tar files for each manual.

(From yocto-docs rev: 5bf979f924200a31cb28fe9920b0877d5562e0f5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:39 +01:00
Scott Rifenbark
d468a60759 sdk-manual: Review edits to the "Autotools-Based Projects" section.
Autotools is simpler now as it uses "autoreconf" to one-step a bunch
of the existing tools such as aclocal and autoconf.  I updated the
figure to reflect the simpler flow and also the steps that accompany
the figure.

(From yocto-docs rev: 232f80b4723c1a51ed0d0e55c00b13e64390d69a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:39 +01:00
Scott Rifenbark
90eadbcb1d sdk-manual: Updates to the "Makefile-Based Projects" section.
I wrote the section to include a flow diagram using "make" and
provided a working example highlighting how to override environment
variables.

(From yocto-docs rev: c147d1ee1f6f33a5222eb1ccf466d1854c67815c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
b181828116 sdk-manual: Added cross-reference to Makefile section. Fixed syntax
Two changes here.  One was a note to the "make" step of the
Autotools-based section.  I cross-referenced the Makefile section
for information on how SDK installation environment variables
are respected and or overridden when using make variables.

Also, fixed the quotation syntax of the four environment variable
examples used in the "Makefile-Based Projects" section.

(From yocto-docs rev: a5742a8730359ed28f10108cb741913472337c57)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
be6f1d57a6 sdk-manual, mega-manual: Added Autotools flow figure
New figure for the section on Autotools workflow.  The figure
goes in the folders for both the sdk-manual and the
mega-manual.

Updated the Makefile to include the new figure in the tarball
when creating both manuals.

(From yocto-docs rev: 01f33f7ee293de4dbe0398aae6c087de686be965)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
98423875ef sdk-manual: Updated the Autotools workflow example.
Did a re-write of this section with better explanations.
I also pulled the bit about passing parameters to the
configure script into the step that talks about that.

(From yocto-docs rev: 778e566100450cce15808f80ace2b92f811001a7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
21a4304581 sdk-manual: Changed "configure.ac" file in the autotools-based example
The line used to be "AC_PROG_INSTALL".  I did some digging and can't
really figure out why the example is not following the standard
"helloworld" stuff out there all over the internet.  So, I have the
user create a configure.in file as follows now:

   AC_INIT(hello,0.1)
   AM_INIT_AUTOMAKE([foreign])
   AC_PROG_CC
   AC_CONFIG_FILES(makefile)
   AC_OUTPUT

The original was as follows:

   AC_INIT(HELLO,0.1)
   AM_INIT_AUTOMAKE([foreign])
   AC_PROG_CC
   AC_PROG_INSTALL
   AC_OUTPUT(Makefile)

(From yocto-docs rev: 21eac500384aaea577ce90098c835cd140517941)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
1ac0172485 sdk-manual: Updated link to variables set for cross-toolchain script
The link was going to a spot from which another link was suggested.
Too many redirections for the reader.  Linked to the original place
instead.

(From yocto-docs rev: 9983cecb37f179a8eef28ab20a6539f8af100978)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
ace8ba1d82 sdk-manual: Updated formatting for "configure" script
Formatting used for the "configure" script created using the
"autoconf" command in the example.

(From yocto-docs rev: 6c57cd80acc0d5fa5f75a4b6341bc2521ceb43b5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
48ac8e4cc1 sdk-manual: Replaced "configure.in" with "configure.ac"
The Autotools example called for a "configure.in" file as part
of the "hello-world" example.  When working through the example,
a warning occurs saying that the file needs to be "configure.ac".
I changed the example.

(From yocto-docs rev: f2ec3e564f828ad79f778d47862b4b422ad5a147)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
a43d7c7607 sdk-manual: Added cross-referencing to "Autotools-Based Projects"
Needed to reference a couple terms for first use: "cross-development
toolchain" and "OpenEmbedded build system".

(From yocto-docs rev: a0058122b00833bad84af007dfe466e9a2f6434b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
38af2da157 sdk-manual: Edits to "Running the SDK Environment Setup Script"
Minor edits to this section.

(From yocto-docs rev: 40217ebcbae17f39cc8eca17f309068f4d055c23)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
7544fbc608 sdk-manual: Edits to standard SDK intro and install sections
Changed the output to reflect the real command's output.  Updated
prose to match (mostly) that used in the similar extensible SDK
sections.

(From yocto-docs rev: dd929244162eaf00f5e552ea8a96a7c2a89daa9f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
3286f68185 sdk-manual: Edits to "Creating a Derivative SDK With Additional Components"
Fixed some poor writing in this section.

(From yocto-docs rev: ed59c0e30d6c093f0dda54c0d61a2863a7e826e0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
18658481ef sdk-manual: Edits to "Installing Additional Items Into the Extensible SDK"
Minor edits.

(From yocto-docs rev: 4a8d8eb83f4a9712e883a4fed98038d14ef48fb6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
0caf1dc925 sdk-manual: Edits to "Restoring the Target Device to its Original State"
Fixed a grammar error and made a few other corrections.

(From yocto-docs rev: 22c2f0643975b620fb543b651eae7c510b141770)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
162db35c6b sdk-manual: Edits to "Packaging" section.
Edits to improve writing.

(From yocto-docs rev: 470549b0d5c74f256fec2947e701a0fa3a0f6591)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
055ee2f780 sdk-manual: Edits to "Sharing Files Between Recipes"
Added a cross-reference to the term "build host".  Corrected
a subject/verb grammar error.

(From yocto-docs rev: 4f5c3a49555601d8a20da1b629a46bde03866e78)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
2186084192 sdk-manual: Edits to "Finding Logs and Work Files"
This section was poorly organized with a mile long sentence as
the opener.  Fixed it.

(From yocto-docs rev: c2496c7aebc056395b7a796501cf6cd5f6519fff)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
1e3fedacb3 sdk-manual: Added links to sample tasks to "Working With Recipes"
(From yocto-docs rev: 4c59f516de8edff7eb9ae27194c9af27a853dfa9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
6e9bfc5901 sdk-manual: Edits to "Adding Node.js Modules"
Fixed a few sentences up by providing clearer text.

(From yocto-docs rev: 64af3ec2c380d73dc863b2aea7878544b472218d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
6f5ad8b8d3 sdk-manual: Edits to "Adding Native Tools"
Added a cross-reference link to the term "bulid host" and removed
the redundant word "system".

(From yocto-docs rev: 258086ab4af3739a845d6031e5875c13084e7eb0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
85645c7dc2 sdk-manual: Edits to "Adding Makefile-Only Software"
Fixed some prose in various places.

(From yocto-docs rev: f368408a3764ad9248478383236261066772f0b6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
b598e35761 sdk-manual: Edits to "License Detection"
Updates to prose for better understanding.

(From yocto-docs rev: 5c4384d4311d8fbedad0eb9ebb77427a1dbbbdcf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
ace3fe02d1 sdk-manual: Edits to "Dependency Detection and Mapping"
Updated various prose for better understanding.

(From yocto-docs rev: 13d5330dc5de232311fbb43d5041d0f7f11de6c0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
da9a1145d6 sdk-manual: Edits to "Name and Version"
Poor writing left over in here.  Updated some of the prose.

(From yocto-docs rev: 9812ce3f1b6a4931a1b8b634a6d1f69c0e96c957)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
d2aece029e sdk-manual: Edits to "A Closer look at devtool add" section.
Corrected some prose to be clearer.

(From yocto-docs rev: 9ab0ef0c00792f07f3b45466baeafe30199f048f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
a36e4fea7a sdk-manual, mega-manual: Updated devtool add and upgrade figures
Took out the $TMPDIR part for the output and left more generically
as "Build Output".

(From yocto-docs rev: 90b3c468dbea19c87340bd234ffe1b263ffa1e4f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
12c05ab1b0 sdk-manual: Changes to the devtool upgrade section.
Edits to improve this section.

(From yocto-docs rev: af0084dd82b7dcec73db5a1b4e6760b7b7738bf9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
1b8867ad08 sdk-manual, mega-manual: Updated the devtool upgrade flow diagram.
Added more detail at the top for how the local recipe interacts
with the Upstream Source.

(From yocto-docs rev: fea704bc485c53bf27ce43f5d1d491bf652ddc9c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
d7221d823c sdk-manual: Edits to the devtool add workflow section.
Minor edits from the read-through.

(From yocto-docs rev: ee25d5a607591823401b6c7e8b9b7dccf707f996)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
464af1a042 sdk-manual, mega-manual: Updated devtool add flow diagram
Added more detail on how the upstream source or files from
srctree are located.

(From yocto-docs rev: 11c4679ee91afbb96a7ea82f6e32c90b5e3a0d66)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
9435650a71 sdk-manual: Updated devtool add workflow section.
Had to update the figure to use "Upstream Source" labels and
fix a wrong "devtool edit-recipe" command. That new figure went into
both figures folders for the sdk-manual and mega-manual areas.

Provideds some cleaner wording.

(From yocto-docs rev: b55ccf14a9a4b8948a920f0942da1fdda93b2e9e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Scott Rifenbark
c60a06bc65 sdk-manual: Edits to section on running the sdk installation script
I changed the way we handle the list of exported variables resulting
from running the *.sh installation script.  Rather than list them
all out (they were getting to be quite numerous), I am referencing a
few as examples and recommending the user look at the actual *.sh file
if they would like to examine the entire list.

(From yocto-docs rev: fa60c255a12bd3dd79da4a77c3150937eeb4e201)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 11:26:38 +01:00
Richard Purdie
e7b6fad758 bitbake: bitbake: Update version to stable release branch version 1.38
(Bitbake rev: 6a9d86998fdd42b13690f024af33b6bf36b9d028)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-06 13:35:10 +01:00
Scott Rifenbark
b369e613a1 sdk-manual: Updates to "Running the Extensible SDK Environment Setup Script"
Some Minor edits to this section.  Also, a scrub of the list of variables
exported when running the install script.  The list is out of date and
is missing many variables.  I noted these in comments for now and will
add them in later.

(From yocto-docs rev: a03f00142f82dd4b2b10332f2fe1c71c2bdd8c35)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:06 +01:00
Scott Rifenbark
ee37ab28c6 sdk-manual: Updated the "Installing the Extensible SDK" section.
The text had not been updated to include the many architectures
now supported in the Index of Releases toolchain directories.
I added the list of architectures.

Renamed the section to a more appropriate section heading.

Verified the example and put in the latest output.

(From yocto-docs rev: a567f5101d230ef1fa4428e9c6905e9e23bd5855)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:06 +01:00
Scott Rifenbark
e53bec948f sdk-manual: Minor edits to the intro chapter.
(From yocto-docs rev: 706b4adfd925d247da2ce7405f12ce1e05666a9e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:06 +01:00
Scott Rifenbark
9928893e93 bsp-guide: Fixed MACHINE_EXTRA_RRECOMMENDS syntax in conf file example
Fixes [YOCTO #12628]

The syntax for MACHINE_EXTRA_RRECOMMENDS was off in the machine.conf
example.  I have removed that leading space, which should not have
been there.  This matches the actual file in poky now.

(From yocto-docs rev: 11e38c4c2b23f9a8ae9a0655a07af1a5682c24b8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:06 +01:00
Scott Rifenbark
8d011018b0 dev-manual: Removed "newbie" chapter.
This chapter only had the stuff about submitting a defect against
YP and making a change to YP.  I moved that information into the
common tasks chapter as it is "how-to" information.  Removal of this
chapter alse required that the mega-manual.xml file be updated to
not include the chapter.

(From yocto-docs rev: 4421b1585c21a6f7862525ba972f7e765626066e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
a9bdc538e6 dev-manual: Moved "Speeding Up the Build" and renamed it.
Renamed to "Speeding Up a Build" and moved out of the setting up
chapter to the common tasks chapter. Fixed a couple links in the
ref-manual.

(From yocto-docs rev: c53fddd353230c8ef1abc21c7a2d2b1f492f034a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Kristi Rifenbark
9ec257403e ref-manual: Finalized edits on the 2.5 Migration section
(From yocto-docs rev: 54259a4d4d69be73e7c614baa2a8d87faa2e3ea5)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
89670c77ec dev-manual: Moved "Building Software from an External Source" section.
This section is now organized under the parent "Building" section in
the common tasks chapter.

(From yocto-docs rev: bc1bc9965cda547e45ff09a1c9e77be5e8c0a3d9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
eba93335ae dev-manual: Moved "Building Images for More than One Machine" section.
This section is now organized inside the parent "Building" section
in the common tasks chapter.

(From yocto-docs rev: 71be83e1ebfd2ad8606bddf852a4c06ab7d7c53d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
207d90b56f dev-manual: Moved "Building a Tiny System"
This section is now part of the building parent section.  I have moved
it there in the common tasks chapter.

(From yocto-docs rev: a9fccb1bca8e18169d93416c7a6e17723bcf01c7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
95c73d34ee dev-manual: Moved "Building an Initial RAM Filesystem (initramfs) Image"
This section now belongs under the parent "building" section in the
common tasks chapter.

(From yocto-docs rev: dad6029b9b45fd6ec564894ba101991fd8a2162e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
95d778d74f dev-manual: Moved "Building Targets with Multiple Configurations"
This is a "building" topic.  I moved it beneath the new parent
"building" section.

(From yocto-docs rev: 0426f0dd6871c8063476945b93743ffc5cfc0856)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
4b3c17707b dev-manual: Moved the "Simple Build" section
I had a section on building an image up in chapter that talks about
getting set up to use YP.  I moved the build section to a new parent
section that will hold topics on building various things.  I renamed
the section to "Building a Simple Image".  I had to fix several links
in the sdk-manual, overview-manual, and dev-manual.

(From yocto-docs rev: c119fc7c6148e7b08acad374fe2981842e9462a3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
b43a1706c3 dev-manual: Pulled cloning sections up into a parent section.
(From yocto-docs rev: 68ef556831f687e25e3f4df068db4ea86bffb3b3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
ec0f2a13dd dev-manual: Updated intro paragraph to exclude removed sections
(From yocto-docs rev: 886ec9153314acbdcfa510806b441ba02c0bdd2d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
802df60c97 dev-manual: Changed "Working With Yocto Project Source Files" title
Changed to "Locating Yocto Project Source Files".  I am moving the
sections on cloning repositories out from under this section.

(From yocto-docs rev: 3889aadab9b603097b6cc5b7afb9d0066021106c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:05 +01:00
Scott Rifenbark
45028b41f3 dev-manual: Changed title to remove redundancy
The "Setting Up the Development Host to Use the Yocto Project" title
changed to "Preparing the Build Host".  Fixed links in a lot of
other manual.

(From yocto-docs rev: 00e487e01a0e2a16f5b8d786b3124cbe5115b38b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
1fae7f57cc dev-manual: Moved section on setting up a team YP environment
This section was in the chapter on the open source development
environment.  It is better suited to be in a newly named chapter
"Setting Up to Use the Yocto Project".  I have moved it.

(From yocto-docs rev: 028f8f7a1b93a023a99ffadb01b0da699b4081c2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
ef3b230abf dev-manual: Updated intro chapter
The chapter was not the best given the new nature of the manual.  I added
better introductory wording.

(From yocto-docs rev: cb4695575c0105e0cd5e50c2132e98553babe147)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
15fa336a1f overview-manual, dev-manual: Moved licensing how-to stuff to dev-manual
The section on licensing in the overview-manual was really "how-to"
information.  I moved this to a new section in the dev-manual for
"working with licenses".  I fixed some references in the ref-manual and
in the bsp-guide as well.

(From yocto-docs rev: f150a1ea2da900aae88fc5fa60f4115cc213ba2d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
4bfd9d31c7 dev-manual: Updated "Enabling Runtime Tests on QEMU"
Fixes [YOCTO #12517]

Added some qualifying information for how to generate a list of tap
devices to enable runtime tests on QEMU.

(From yocto-docs rev: 4359a355944f6cf4ec1e14ecbedc690ef37ff743)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
f98348164a overview-manual, dev-manual: Moved Wayland and Weston
The Wayland and Weston topic moved from the overview-manual to
the dev-manual.  The topic was really a "how-to" topic and not
a concepts topic.

(From yocto-docs rev: b0f20a67c99590c48d595f4e572339bb5b6b83b3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
4e2918d17e ref-manual: Chanaged a link to Wayland topic.
The Wayland and Weston topic moved from the overview-manual to the
dev-manual.  The lone link to this topic was in the ref-images
chapter.  I updated the link.

(From yocto-docs rev: 6c335f8d3618e3285f91fe20aea33a1c1f1c0ddf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Kristi Rifenbark
56a780bf26 ref-manual: Formatting pass of 2.5 Migration section
(From yocto-docs rev: 50308cc7f04d3fc54c06766f85e15e76a99f0b4b)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
83a6c0ea0c overview-manual, dev-manual: Moved sstate debug tips sections
Two sections at the end of the shared state concepts section
in the overview-manual are really task sections.  I took those
and created a couple new sections in the dev-manual to house
those topics.

(From yocto-docs rev: 86382e7873d796f44554c8e04d3bd8091d350f51)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
7e4b8b4cab overview-manual: Updated "Invalidating Shared State" section
Removed "OpenEmbedded" in the string "OpenEmbedded build system."

(From yocto-docs rev: d44b370b0fb993c32c9dfe3515188fa9e7ff2437)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
32bd07cc59 overview-manual: Updated "Shared State" section.
Added the line with "stamp-extra-info" flag to the example from
the deploy.bbclass.  This line was missing or it had been added
since the original writing of this section.

(From yocto-docs rev: 50f5482c2132235962d4ab48d0d7263628df1728)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
88872ce422 overview-manual: Updated "Cross-Development Toolchain Generation"
I made some small edits to this section.

(From yocto-docs rev: a2cc355c1bdfbf10f86f8d4994cc81dfb12d8f87)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
372e47e927 documentation: Removed release date ENTITY
Now that 2.5 has released, I replaced the ENTITY variable used for
the moving month and year with the actual release month and year
(i.e. May 2018).

(From yocto-docs rev: 2d6e8ddce4fce0c405d2aea69cea2a5b262410f7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Kristi Rifenbark
1c36ba246d ref-manual: Added 2.5 Migration Section
(From yocto-docs rev: 5d6c1b69e5559eced5142f46421302f61c95404c)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:04 +01:00
Scott Rifenbark
f0c51b94cc ref-manual: Updated the SDK_OUTPUT variable
Added more realistic information on how this variable is set.

(From yocto-docs rev: 47e6cb7d00eeb8001c4a53c13600feb5ef4d4660)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
dae0aa5a9a ref-manual: Updated SDK_HOST_MANIFEST variable.
Grammar fix.

(From yocto-docs rev: aa5a60c8e3bf3f243678169b323e7ea5df7a6c19)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
7bf6af45ef overview-manual: Minor edits to the SDK generation section.
Added the descriptions for the SDK_HOST_MANIFEST and
SDK_TARGET_MANIFEST variables.

(From yocto-docs rev: 212d6c5b3290016431604e67dfb27a1408ac0463)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
e20dc4814b overview-manual, mega-manual: Updated the sdk figure
Added the manifest files to the figure and the associated variables.
Also added the test files.

(From yocto-docs rev: cfba55462d1c37ef2ff6454890da64a40f9c3607)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
85a4c9ea5d overview-manual: Minor wording changes to the "Images" section.
(From yocto-docs rev: a3e825e6086ec7674641658cc956020e3e1cd9dd)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
d4ba120a80 overview-manual, mega-manual: Updated the Images figure
I needed to add some italic formatting for variable type strings.

(From yocto-docs rev: afc6d2d10081f9e9d940075c03b3e704b37cf13b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
e821a9e28f overview-manual: Updates to the "Images" section.
Some minor rewrites.

(From yocto-docs rev: 71cbc1c389389ffac9e59faacdc56d3ea05facd7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
5df9175624 overview-manual: Updates to "Setscene Tasks and Shared State"
Updated with a few minor wording changes.  Tried to get a little
more active from some of the passive wording.

(From yocto-docs rev: 7dcd8117e3ea40d4b3c1ee5c3b1ea3c2bd29893a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
08ccc9c864 ref-manual: Updated PACKAGE_CLASSES variable note.
The note about the TAR backend not working was changed to soften
the warning.  It has "limited functionality" rather than
"broken".

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
0c8da03bb1 overview-manual: Updated text for Image and SDK generation.
General improvements to both sections.

(From yocto-docs rev: 977fdeaf1258613c3dfc41d78c8125fdba9b2a24)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
f71afe3613 overview-manual, mega-manual: Updated image generation image
The figure for image generation of the BitBake process
needed some enhancing.

(From yocto-docs rev: fc978663a7962d1515d4f47abe8ae522b9e24ce1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
ee2e1a0399 overview-manual, mega-manual: Updated SDK generation image
The image needed a little bit of clean up.

(From yocto-docs rev: d4fb680be194b7f9b192e06f0081a09504649633)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:03 +01:00
Scott Rifenbark
16764fa2e8 overview-manual: Updated the "Package Splitting" section.
Rewrite included the "do_populate_sysroot" task and a bunch of
STAGING_DIR_* variables.

(From yocto-docs rev: 53484d4982a41f83ac9355aada46526b5d05f64a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
fb0b55eca4 overview-manual, mega-manual: Updated package splitting figure
More changes to the "analysis-for-package-splitting.png" figure.
I needed to work in "do_populate_sysroot" task and several
STAGING_DIR_* variables.

(From yocto-docs rev: fcb88024a7dfff1b6cca49770f67bf4c1f548362)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
47bde7f6c0 overview-manual: Changed title for configure/compile section.
The stage of the BitBake workflow is really "Configuration, Compilation,
and Staging".  I updated the title to be such.

(From yocto-docs rev: 4aab6d001119aa8c52e09ef0f6f66694719add29)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
ce95b0483a ref-manual: Updated the STAGING_DIR variable description.
This variable plays a much smaller role since recipe-specific
sysroots were implemented.  I have rewritten the description to say
that STAGING_DIR helps construct the recipe-sysroots directory.

(From yocto-docs rev: c1ad18abe67111738efc18725c4f7706b55738cb)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
dfa62e1d56 overview-manual, mega-manual: Updated the config/compile figure
The figure had the wrong hierarchy for the "image", "recipe-sysroot",
and "recipe-sysroot-native" folders.  Moved out a level.

(From yocto-docs rev: e1f45b666b1cd589cee9c9ae6dba01467b991ef9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
18012d8276 overview-manual, mega-manual: Updated the package splitting figure.
Figure was out of date.

(From yocto-docs rev: 5b56862ec39fc05299cd6d468f13f75b74c3b800)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
a6cec71d97 ref-manual: Updated the PKGDATA_DIR variable description
Added a reference to the STAGING_DIR_HOST variable, which is part of the
default directory used as the shared, global-state directory holding
data generated during the packaging process.

(From yocto-docs rev: d68dcec327e96f1da0879681dcde43d4f1769af0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
461dba44fa ref-manual: Updated STAGING_DIR_HOST variable description.
Fixed some grammar issues.

(From yocto-docs rev: 5d19e2102d1251dd4fa561995c29191c1489f7fc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
f37bb8f663 overview-manual: Updated the "Configuration and Compilation" section
This section needed some verbiage tweaks.  Nothing major.  Just a
few modifications to help clarify some areas.

(From yocto-docs rev: 9deabf424387fd1441882ce8cf28ea69421ea237)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
1f52760a51 overview-manual, mega-manual: Updated Config and Compile figure
The "configuration-compile-autoreconfig.png" figure was badly
out of date.  It was not showing the two sysroot directories
and did not use the $BPN variable.  I have updated the figure
and placed in both the overview-manual/figures area and the
mega-manual/figures area.

(From yocto-docs rev: dba3b2b65f18870229dcb3dbcb8fadc099165894)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
3f21849152 ref-manual: Revision updates to BUILDHISTORY_FEATURES variable.
Re-oredered the four options to be alphabetical.

(From yocto-docs rev: 7976ee05c935fd6c24abea99f71436003656cc73)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
9e2ba7ed66 overview-manual: Small revisions to "Patching" section.
(From yocto-docs rev: 081a60766b67e8822e0c841f3259ff633580149c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:02 +01:00
Scott Rifenbark
7cbf582ac1 ref-manual: Updated the FILESPATH variable description
Added some key references to the patching areas of discussion across
the manual set.

(From yocto-docs rev: f198529b3072a4a03fd368ea307e8e004c46a344)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
e0b42062a2 ref-manual: Added a link to the patching section in the SRC_URI variable
The file:// protocol is primarily used for digging out patch files that
are local with the metadata (layer).  I put a link in the paragraph that
is talking about them to the "Patching" section in the overview-manual.

(From yocto-docs rev: 18a7b4b81d192fb2cfd96763de4cfabd61c3a0ea)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
e73f2204fb ref-manual: Review edits added to do_patch task
Mentioned the role of SRC_URI earlier in the description as it is key.
Replaced "some_recipe" with "some_package" as the emphisis is not on
the recipe at that point in the example.

(From yocto-docs rev: f7f86941fdf866a693386335374f835078db3ddf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
381cfb71e1 sdk-manual, mega-manual: Updated devtool modify workflow diagram
Added detail for the step one.  Clearer.

(From yocto-docs rev: ef95d547180ce53fade7a3764f8d362422472c7a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
4a2f73dc28 sdk-manual: Updated devtool modify workflow section.
I found this section a bit loosely worded and could result in
confusion to a user ramping up with YP.  I have done an extensive
rewrite focusing on exact wordings.

(From yocto-docs rev: af64c07d259e06fb13572fc224636ed240037b57)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
30f70172bf ref-manual: Updated do_patch task description
I added more content to this task description to help describe how
patching is performed and how the task uses the "apply" parameter
that can be provided with the SRC_URI variable.

(From yocto-docs rev: 6717a3326b0005f6a57be4cc026693b7cd9e8d08)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
6c7faa0c8e overview-manual: Added a link to the do_patch task.
(From yocto-docs rev: 934de6a59cef6a7b80530de1ccbe7006bb196238)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
142b7e0479 overview-manual: Updated "Patching" section.
This section presents a deep dive into the patching phase of the
build process.  I removed the vague "apply=yes" reference and added
more references for the reader to read and learn about patching.

The bit about the SRC_URI parameters (i.e. "apply") is going to be
covered in the do_patch documentation since that is the task that
handles that stuff.

(From yocto-docs rev: 5a2c98543ccc9ed24d16bb9442b674532940c0da)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
8e9bc8ff77 overview-manual: Increased viewport for patching.png image.
(From yocto-docs rev: fb8419753846e391dfc1b2dd5973eaff7627c57a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Peter Kjellerstedt
3b33767b75 ref-manual: Updated the BUILDHISTORY_FEATURES variable description
Added a new feature (task) to the list of available features you
can use with the variable.  The "task" feature saves output file
signatures for sstate tasks.

(From yocto-docs rev: 0669580ce40c46f0b5f8204a6b00e11f725a383c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
e392813249 ref-manual: Added "Patching" section reference to do_patch task
(From yocto-docs rev: 48335f99d896994283042752bd9ec4d20bd6d363)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
992c7e5634 overview-manual: Converted paragraph on figure to note
The paragraph at the end of the section about the file
hierarchies is better cast as a note.

(From yocto-docs rev: 4e8a33be61ea1ea5db12fc5fc97832393213fb5d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:01 +01:00
Scott Rifenbark
02aa4d3ec4 overview-manual: Updated the "patching.png" figure
The figure had a bad "PN" variable being used in the "S" directory.
This needed to be changed to "BPN".

(From yocto-docs rev: beafc55eb3646ecb96929e44538de952207f0b76)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
c5fbbdbde3 overview-manual, mega-manual: Updated source-fetching.png figure
The figure was incorrect. Replaced the PN variable with BPN for
the "S" directory.

(From yocto-docs rev: 440edcdae932a83b6c32b51e85d97178a77b4bed)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
4c813dd7a8 overview-manual: Updated "Source Fetching" section.
I scrubbed through this section and provided much better
explanations of the inside workings of BitBake fetching source
with building recipes.  During that, I fixed an error where
the PN variable was being used rather than the BPN variable.

(From yocto-docs rev: 5765987259ac46f140e099d8e1da2ab33f006d36)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
b57adc5531 ref-manual: Updated the TARGET_OS variable description
Provided a more complete and clear description.

(From yocto-docs rev: 65505debfb82536e7e2d4ff7e5bc14c6af1a7cf6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
e918f3b194 ref-manual: Updated PACKAGE_ARCH variable description.
I added a link to the BUILD_ARCH variable.  The variable is part
of the glossary but for some reason there was no link to it.
I also added a note for a link to the SDK_ARCH variable, which
was described inline.  By convention, I do not like to link to
variables inline as the underlining used to indicate a link messes
with with underscore characters that are usually a part of a
varible's name.

(From yocto-docs rev: a2f487141375ee7ce226eece85424e709ddc67a3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
cce30462a8 toaster-manual: Updated step 7 of the To "Installation" section
Changed some wordings to accomodate reviewer feedback.

(From yocto-docs rev: 6de69db7ae5bbbe5e6e7f0b5f6b9b1326f3f5f6a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
926f08b8bf toaster-manual: Updated "Setting Up Toaster Without a Web Server"
This section had a new bullet added for talking about one instance
of Toaster web server to track and capture multiple command-line
builds.

Also, provided better wording surrounding shutting down Toaster.

(From yocto-docs rev: 9dbe242bf90860afabc9ab218992d2b81aaf8896)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
d420ddaf4f mega-manual: Updated the package-feeds.png file
This image was out of date.

(From yocto-docs rev: 061f2766217a6a3914c14e7bfcf09e2c03f73165)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
4e4a9d7173 overview-manual: Updated the package-feeds.png figure
The figure was out of date.

(From yocto-docs rev: ae84cd2a09f81415e22333d179bcd146560b34da)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Martin Kelly
8cfb40ce4c dev-manual: New section in QEMU for workaround under KVM
As suggested in a recent mail thread by Martin Jansa, there are cases in
which QEMU under KVM will crash because of CPU feature incompatibilities
between compiled binaries and the host CPU under which qemu is run.
Although this is hard to fully escape, we should document the issue to
help people work around it.  I have taked Martin's suggested patch
and did some rewording for the new section.

(From yocto-docs rev: 6c625fcf631a82529bc58ec8fb0c18dbe13188d2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
a571f74ef3 toaster-manual: Updated database schema step for Toaster
The step for getting toaster to create the database schema,
default data, and gather the statically-served files changed.
I updated with the proper steps.

(From yocto-docs rev: 2c3f7ac7f9419c32147be860897984d391a0e930)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
361b88c81f toaster-manual: Updated bad links and added two sections
The links to the DATABASES, SECRET_KEY, and STATIC_ROOT
were bad.  They were pointing to old dated software. I updated the
links.

Also, added a couple new sections.  One is how to start a
Toaster environment without its web server.  The other is how
to start a Toaster environment without a build server.

(From yocto-docs rev: afe2708014600c0a86c649f6533dd1f6317fe742)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
92de2a42c3 documentation: Added ENTITY variable to track a release date and year
(From yocto-docs rev: 65a87312f541e2f2b01fa1918f7a12da607fe7ab)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
959b0eef35 poky.ent: Added a new variable for the release month and year
This month and date is always jumping around.  I decided to add a
variable so that I only need to to update that when a release date
changes.

signed-off by: Scott Rifenark <srifenbark@gmail.com>

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:18:00 +01:00
Scott Rifenbark
39f6b021d6 overview-manual: Updated "Sources" section with minor edits.
(From yocto-docs rev: 7cc11321fec1e9cd17f20129fbb201b7891eaf60)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
bbd6856b2f overview-manual, mega-manual: Updated figures
Updated the layer-input.png and source-input.png figures.
Had to trim them so they were tighter in the figure.  Also,
updated some context in the source-input.png figures.

(From yocto-docs rev: cad644af48b0a1cb2baeb8d2649b9aa7ccbdeda5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
ae5e39c4d6 overview-manual, mega-manual: Updates to layers discussion for build flow
The "Metadata, Machine Configuratrion, and Policy Configuration"
section discusses the three types of layers fed into the OpenEmbedded
build system workflow figure.  I updated the figures and text
supporting this discussion.  The figure had to be moved to the
mega-manual/figures folder also.

(From yocto-docs rev: 39dd671333f7b3df616920aab08e01c926deca1c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
5c05ff08d0 eclipse-help.sed: Cleaned up delimiters for readability.
No need to escape out quote characters in a .sed file.  Also, using
the @ character is cleaner.

(From yocto-docs rev: f87ca83a6faf5b772d719cd03d6fa0a9b21174bb)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
98c0b1ea5d overview-manual: Updates to "User Configuration" section.
This section was pretty out of date.  I have updated many areas
of the text.

(From yocto-docs rev: 640cdc7fb9d4f93c86b907d631e4f90b261d5ea1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
edd28ad3c9 dev-manual: Updated "Enabling Your Layer" section.
The bblayers.conf example files were out of date.  Updated them.

(From yocto-docs rev: fd5d75604a3ad66e56c421634f349dce3e38f609)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
7f2615b124 overview-manual, mega-manual: Updated user-configuration.png image
This image was out of date.  I updated it.

(From yocto-docs rev: feb287a72201363c43607508d2e8f1da3993f93f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
8d7b8798d5 overview-manual: Updates to "OpenEmbedded Build System Concepts"
I removed the less than pretty build process figure and swapped
in the more aesthetically pleasing one.  Also, am refering to
the figure as the "general workflow figure".

(From yocto-docs rev: 093f1337131bc658d6afd1b56fb3661a76751aad)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
d1f415bef5 Makefile: Removed the old version of the BitBake workflow figure.
That figure is no longer used in the manual set.  The newer,
more aesthetically pleasing one is.

(From yocto-docs rev: 853567672533777aa5d9baa3969d08673a8dd71f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
f0bd4e42a4 overview-manual, mega-manual: Removed bitbake workflow figure
This version of the figure was not as cool looking as the other
version, which is preferred.  I have removed it.

(From yocto-docs rev: ed0346b00ee6b47d90efedd1dd69e4a92a42afe9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
e24c3ab549 overview-manual: Bolstered the "Layers" section in the concepts chapter.
This section was really sparse for being in the concepts chapter of
this manual.  I added some more text to it.

(From yocto-docs rev: 9369ba5292126957f89f8b96e06bc2492825c54b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
3ed721c919 overview-manual: Updates to "Components" section.
I changed the "Metadata (Recipes)" title to simply "Recipes".
It is less confusing since the term "Metadata" is in general recipes,
classes, and configurations.  Provdided a few small edits elsewhere
in the section.

(From yocto-docs rev: 566b54f58ca7859bf860f25e433bff4b429c2507)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
46304ec792 brief-yoctoprojectqs: Removed all references to "OpenEmbedded"
(From yocto-docs rev: fd405db2962d20055ba213e35ed0d13c7672d2e8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
0e1009fd84 brief-yoctoprojectqs: Added clarifying statement for the build system
The term "OpenEmbedded build system" was being introduced with just a
link.  Apparently, that is not enough for marketing.  I added a
clause with some more information about it.

(From yocto-docs rev: e7a3a581d44e21976c3f6fe19330e19af1ae0773)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:59 +01:00
Scott Rifenbark
901bcea5cb overview-manual: Changed build workflow title
The section titled "Development Concepts" is really mis-titled.
It is more about the OpenEmbedded Build System.  So, I renamed the
section "OpenEmbedded Build System Concepts."  There were a couple
links all within the overview-manual.  No other place in the YP
doc set linked to that heading.

(From yocto-docs rev: 889eaf3373a80ca0978ee79ecd2ff26aefb9025b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
a8e67bb0ef overview-manual: Added a link to OpenEmbedded-Core
(From yocto-docs rev: c4642a81045a2267ceac967b7668cb64b4db1286)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
7b94e3ef35 overview-manual: Added intro text for the concepts chapter.
(From yocto-docs rev: 6ea1e6f016957da96d6cf8a058ec9c18c9843949)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
615e0e83de brief-yoctoprojectqs: Added reviewer feedback
Softened the opening paragraph so it was not introducing any special
terms right off the bat.  Renamed the section on the hardware layer
to configuring the build for specific hardware.  Put in a link to
"build host" and used that term throughout.

(From yocto-docs rev: a324cb2f9c499dc8d68d1d87265930c308cbebb7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
9a30cafe7a overview-manual: Removed redundant paragraph.
(From yocto-docs rev: 215ed3598780737feb928bb3b515882c468dbb27)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
f679e515f3 overview-manual: Updated checkout example for Git based on a tag.
(From yocto-docs rev: ee0021b0db85ced7a36b0f25e1c1e09a0f5b1894)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
3a4c4c9deb overview-manual: Better wording for a workflow summary paragraph.
(From yocto-docs rev: db3679a4ac22964302e4ff1b16856c25a7ce69fd)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
e364100e22 overview-manual: Fixed wording for use of DOWNLOADS page.
(From yocto-docs rev: 575e33179779ab147b2bfc27183f2b9a25628a5a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
8a2db4a819 overview-manual: Added clearer instructions for downloading software
(From yocto-docs rev: df16ac0829aaf99841044de99200efdf3a03cb41)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
c9c30d04e2 overview-manual: Grammar fix.
(From yocto-docs rev: 81515d5ba7f26c7b93548a338ca7ab8ce649e387)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
f62a1b5e3e overview-manual: Grammar fix and link to build system added.
(From yocto-docs rev: 3130b38b638c8487032f3732afdd6954ab6bbfad)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
5b267a7c3c overview-manual: Added a link to the "build host" term.
(From yocto-docs rev: e3bdd81857752db01c3404c2eb29792439239fa9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
1021bc0e27 overview-manual: Fixed grammar issue.
(From yocto-docs rev: a3075cdd5a3db1883dc358f7ccd6721d89677387)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
a24760a203 overview-manual: Added link to layers section.
(From yocto-docs rev: 8a9588d27aa86bb194e85dd6bd0c885ce96507e5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
706bcdd045 overview-manual: Fixed grammar issue.
(From yocto-docs rev: b911f05e5e3ae7161785ca3dd5cea5ffc565b804)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
91dfb148bf overview-manual: Removed redundant text for "build system"
(From yocto-docs rev: 513082f4d63ac618d67d35b886a0347f059a8fe5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
0e578d24b8 overview-manual: Fixed reference to "chapter" that was "section"
(From yocto-docs rev: d40924637836043fd92a2464f38f3d97c0cbcbb7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:58 +01:00
Scott Rifenbark
40054b4933 overview-manual: Fixed link to the matchbox repo.
(From yocto-docs rev: 73ba1ab13a977c15db9d5aa7cd560006e3a4ef70)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
4adaa35324 overview-manual: Added a link to the Toaster User Manual
(From yocto-docs rev: 5571f28452c3af9a7394924cb2509693a6f8f528)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
5c90012aba overview-manual: Added a few links to the "Poky" term.
(From yocto-docs rev: 34007b337ae0636156d64464d39470c9f20b78f0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
9359a102a9 overview-manual: Added a few links for "OpenEmbedded build system" term.
(From yocto-docs rev: c6c23daac976e69b7e5c1a4b42abcac33b0694e2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
39569a8d87 brief-yoctoprojectqs: Added link to "OpenEmbedded build system" term.
(From yocto-docs rev: a7a5dc58b1f66cf270d737fa6ddd447364cf77c1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
749108cc66 brief-yoctoprojectqs: Added more detail about layer greatness.
(From yocto-docs rev: 935497e3d3a39cdc5eadcdd790466e3d18a65f25)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
bc1e7cb1ce overview-manual: Added link to YP Compatible program section.
(From yocto-docs rev: e5361d48c0807ab2f7bc674ec615e432baff2819)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
27ad38e33e overview-manual: Added a link to the YP workflow area from "Challenges"
(From yocto-docs rev: cf90be30c3a89a55295060bb4604a468509423ed)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
c09c157936 overview-manual: Added links to supplemental webpage docs.
In the "Challenges" section, the bullet item about YP's steep
learning curve referenced the "what I wish I'd Known" and
"Transitioning to a Custom Environment for Systems Development"
docs.  I added links to these.

(From yocto-docs rev: 627042de38495f79d512c6b98c46193b1de0db47)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
163e2add0e overview-manual: Added link to license information.
The "License Manifest" bullet needed a link to the License
stuff in the dev-manual.

(From yocto-docs rev: 6350d68a6c1c5432fd833930437b4e5fe502033b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
2a44f10a36 overview-manual: Added link to release cycle
The bullet "Releases According to a Strict Schedule" bullet
mentions the release cycle.  I added a link to that section.

(From yocto-docs rev: c206c31d20aabe657863fc05274e2d533cdf7252)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:57 +01:00
Scott Rifenbark
80960a8531 overview-manual: Updated "Supports Partial Builds" bullet
Added a link into the concepts area for sstate.

(From yocto-docs rev: ac395452c3a2f34fb9775c77051b526e39fd9b4c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:56 +01:00
Scott Rifenbark
abc1dd634c overview-manual: Added meaningful links to feature bullet
The "Widely Adopted Across the Industry" bullet item did not
have good links to the YP home page.  Added them in.

(From yocto-docs rev: 8695f3e2bcc2a0d37dd8e6b113639628bffdf4b2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:56 +01:00
Scott Rifenbark
f722acdcdd overview-manual: Cleaned up other reference paragraph.
(From yocto-docs rev: add845649de2c91489dd2e920865707eb3224243)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:56 +01:00
Scott Rifenbark
ba99090189 overview-manual: Added a bullet intro topic for the new concepts chapt.
(From yocto-docs rev: 4b05fd99cfb258c56957fdf864754065a74f407a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:56 +01:00
Scott Rifenbark
8961b3d9c8 overview-manual: Updated title .PNG file
The file was stretching beyond the rendered display window such
that part of the Yocto Logo was missing.  Also had to place the
updated .PNG file in the mega-manual/figures folder.

(From yocto-docs rev: 5b73c54fcb2c3f60aee2ff7dc19c4aad102aa505)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
f339efdd31 dev-manual: Updated wording for Manage Granular Level Packaging
Changed wording to be clear about how PACKAGE_ARCH is being set
when based on the Freescale MACHINE_SUBARCH variable.

(From yocto-docs rev: 76c4ad514e44755f1d4dcec61bb0a74c1b77243e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
ffd352ae2a brief-yoctoprojectqs: Added sections on layers
Added a section on adding a machine layer.  Used Altera as an
example.  Also, added a section on creating a general layer.

(From yocto-docs rev: fc36f006bd483a5c26d2b79a18431d16ec27dc00)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
01fd8fcd50 dev-manual: Updated managing granular level packaging discussion.
In the section that talks about building an image for multiple
machines, there was a bullet item on managing granular level
packaging.  It had an old example that used the "daisy" release
that showed how to share packages and re-use binaries.  I replaced
the example with a discussion of Freescale's "fsl-dynamic-packagearch"
class, which does this type of sharing.

(From yocto-docs rev: ddc224d6d1fe172292dfd0a17f743a1e0a4cabe6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
4034d8ec69 dev-manual: Changed Wic example paths to be consistent.
(From yocto-docs rev: 402434dd15f3116307e690ecc09db875ecabded4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
b0ede7711c ref-manual: Updated the sections pointing to the YP Release Notes.
The method for accessing the YP Release Notes for YP 2.5 forward
is to go to the "DOWNLOADS" page of the main YP website and then
click on the "RELEASE INFORMATION" button.  No longer does a user
need a simple URL.  I updated the two spots in manual where this
information existed for accessing Release Notes.

(From yocto-docs rev: 1e171d3add1048fb81c5a05a11c8ddbaf88e0ecd)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
dfe9fa58a4 poky.ent: Deleted the ENTITY for the YP Release Notes
This ENTITY was used in two places.  I have updated those areas to
give the user new instructions to reach the Release Notes.  As of
YP 2.5, we do not have a simple URL that can be used for the
Release Notes.  The user must go to the "DOWNLOADS" page of the
main YP website and click the "RELEASE INFORMATION" button.

(From yocto-docs rev: 1c7cdd328baad9a317f4f4f9554999d80d1eb24c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
965c92d0a2 dev-manual: Updated Wic example
I updated the first example in the section telling how to build out
a Wic image.  I could not get the example to run so I used Stephano's
output.

(From yocto-docs rev: 6b4595215d6c24e3efb89288a7547f79ca3e59b7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Kristi Rifenbark
ce451add35 sdk-manual: Updated Eclipse Oxygen plugin instructions
(From yocto-docs rev: 860f852b0aa99c9c65175fe5fe5035ea0bd26d63)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
e4e9959180 toaster-manual: Fixed note formatting in "Useful Commands"
(From yocto-docs rev: 61e26883ed2c3cb82e7853297222d5b1499788f8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
3d86013a79 toaster-manual: Fixed capitalization on "Build Directory" term.
(From yocto-docs rev: a02905ae2ad015d43d5c9b88f9b68e603734bcf4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
4a02616d69 toaster-manual: Fixed some links.
(From yocto-docs rev: 57c261c94de9ac567321fbe8d80a1d793857d355)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:55 +01:00
Scott Rifenbark
c05112edd4 toaster-manual: Fixed a couple links.
(From yocto-docs rev: fe26835dc9448738be49d08f3e96a464599897e9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
2c4b4f9ff7 ref-manual: Updated the Bugzilla section
Provided a link to the YP implementation of Bugzilla.  Added a final
paragraph noting the Bugzilla website if you want general information
on Bugzilla.

(From yocto-docs rev: 78c99c8f42edfee377431cacc10b9ccd4b25c4cf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
cd41bc3eeb ref-manual: Removed redundant TMPDIR link.
(From yocto-docs rev: d4f09d3d0facdd5045a6c46b9658427227a79efc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
6275a8060c ref-manual: Fixed link to the kickstart chapter
Link was not going to the top of the chapter.

(From yocto-docs rev: 52da20604a54d16645b4bb4e5e9efa748a00d2f5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
5427738178 ref-manual: Fixed TARGET_ARCH formatting.
(From yocto-docs rev: 01d4e8be38514dfd05920305c2fdd71ad1cd4925)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
1932a50543 ref-manual: Removed redundant link to CXXFLAGS variable.
(From yocto-docs rev: 67c3b32c5e6d98f530bb27b81847aeb77c1de1d5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
c5d630c915 ref-manual: Removed some redundant links.
Removed redundant link to CFLAGS in the TARGET_CFLAGS variable
description.

Removed redundant link to CPPFLAGS in the TARGET_CPPFLAGS
variable description.

(From yocto-docs rev: aa95485d44f92b831cd111dbc5bf75526d239db4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
e21e2874a1 ref-manual: Added "class" as part of a link to a class.
(From yocto-docs rev: e6ee6d5b32fa8a9945b23279c3403e14dac7165b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
2501e84f9a ref-manual: Added "class" as part of a link reference to a class.
(From yocto-docs rev: d563458d4f10ead158c54736098e6c601ed305c3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
8fe2c674d0 ref-manual: Created better wording for link ambiguity
The wording to two links (one a variable and one a section in a
different manual) was ambiguous.  I added phrasing to remove that
issue.

(From yocto-docs rev: 3b70b4287ca8b2583e0ef559125f1531a2bb6a67)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
960fafddb6 ref-manual: Removed redundant links to the WORKDIR variable.
(From yocto-docs rev: 9a12678b14d9870b4ef983f5a9b47cfa3184d4a6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
57dcb02359 ref-manual: Removed the link to SDK_DIR in the example.
(From yocto-docs rev: 414b74da4afac77f231770f2746f1c2d3947d340)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:54 +01:00
Scott Rifenbark
9332007f1f ref-manual: Fixed formatting in SDK_DIR example.
Removed the link to WORKDIR to begin with.  Also, removed the
<filename> formatting that was within the example, which is buried
in a <literallayout> tag set.  Doing that screws up the formatting.

(From yocto-docs rev: 0d13dabaa13e5426da35b5d8147f51efa349b5bb)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
f765e8d7a3 ref-manual: Updated SDK_DEPLOY variable description.
Added "class" as a modifier after refering to the "populate_sdk_base"
class.

Removed link to the TMPDIR variable in an in-line example.

(From yocto-docs rev: 7733a4464ba2893a2363f47996f48587a86eaa82)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
4e833ce95e ref-manual: Removed redundant link to PACKAGES.
(From yocto-docs rev: d9482b43c1166ef2fd663c903a15222c66faf979)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
ce55c5bdb4 ref-manual: Removed redundant link to the distutils class.
(From yocto-docs rev: 5a097baecff0e0cabf1749abcc3697210ab63b47)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
957400a8e9 ref-manual: Removed redundant link to DEPENDS
(From yocto-docs rev: ddd59a0ae4eda76c9e9c284ce9db4428a925e610)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
4b854d9da5 ref-manual: Removed redundant link to OVERRIDES variable.
(From yocto-docs rev: b336d7f504bb931d9b2743ee86ff104080692bec)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
c4276a90e3 ref-manual: Updated PACKAGECONFIG_CONFARGS variable description.
Several redundant links and wordings in this description.

(From yocto-docs rev: bb9dd8ab6ef9cad387cdddada4f2be093551e38a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
28cdd47d9f ref-manual: Removed redundant link to DEPENDS variable.
(From yocto-docs rev: 6ecf6a692d759c783355581e227ff861e9492115)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
885918d225 ref-manual: Fixed broken link.
A migration item had taken the original section for the target of
the link out.  I had not changed it.

(From yocto-docs rev: 10cfaee50455bf10450540f1b381d33f9babf985)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
7fc69211dd ref-manual: Fixed capitalization in section title link
(From yocto-docs rev: 945038155d9941dc94001325416221f77726015d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
1586744a20 ref-manual: Added kernel-dev title to links
Two instances where links were going into the kernel-dev manual
but the manual title was not being used in the text.  Added it.

(From yocto-docs rev: 1922f8c79d1667db1fc9b5fe57030302469ca09c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
8f14de1a3a ref-manual: Added title to kernel-dev manual as part of a section link.
(From yocto-docs rev: 5c0cb69ff1a565e037686f344269fe7238ce442e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
819b48c686 ref-manual: Removed redundant link to INITRAMFS_IMAGE
(From yocto-docs rev: 62d835e0841cc19e644e79af22088880ff3eaac7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:53 +01:00
Scott Rifenbark
1010ab89a1 ref-manual: Removed redundant link to Source Directory
(From yocto-docs rev: 9fb10f4f0ca5bed4804d77a1c224672866ee2b87)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
0a6c85999f ref-manual: Fixed link manual title for BitBake User Manual
(From yocto-docs rev: cad80681e72e7e22c3867961aeefe7f260c20f86)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
ee2bec70c8 ref-manual: Removed manual title as part of a cross-reference.
The link was to a chapter in the existing manual.  I do not
include the manual title when that is the case.

(From yocto-docs rev: 1b7c65b4a2dde3f5d069cb5edc75728492639870)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
56754a33b1 ref-manual: Fixed broken link to TARGET_VENDOR
Link was going to TARGET_PREFIX.

(From yocto-docs rev: 424e8ea3168ab2e910919e6f70fc0b16332ca4f7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
bd1dd87cf7 ref-manual: Removed redundant FILESEXTRAPATHS link.
(From yocto-docs rev: 74199d4a3d5fe5a9836e363522b052614a542e26)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
da73c059a4 ref-manual: Fixed title for BitBake User Manual reference.
(From yocto-docs rev: 73249f903fcb68201937f05216bedd4fc25fb060)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
86983cbe7d ref-manual: Corrected link title in DISTRO_FEATURES_BACKFILL
(From yocto-docs rev: 93c730199bb66fa6909bd0c0a2e75b5cca9534af)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
32a0727aab ref-manual: Removed link to WORKDIR in the D variable description.
(From yocto-docs rev: edf989858c37dcdf19ec99dceb959061bc89be97)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
8411426a0c ref-manual: Removed redundant links in COMBINED_FEATURES var.
(From yocto-docs rev: 7328ac66feebed290add2b122e12c2ea567f6bdf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
19ec672999 ref-manual: Updated example string for BUILDHISTORY_COMMIT_AUTHOR.
I replaced the "&lt;" and "&gt;" constructs with the tags
<replaceable> and </replaceable>.  This is the preferred formatting
for user-supplied values.

(From yocto-docs rev: 1fc32486483c545671ffb2142b553da75dbe54fe)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
b0496239ec ref-manual: Provided more relevant link for Python documentation
In the BBMASK variable, a link to Python documentation was
going to a specific 2.6 release.  That release was probably the
most recent when the BBMASK variable was initially documented.
Python has many releases now (e.g. 3.6.5).  I re-worded the
description to be more generic and sent the user to the general
Python release area.  They can pick a release from that URL.

(From yocto-docs rev: 154aedf79625f37997bec18dba933c514072708e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
34f409816e ref-manual: Removed redundant link in BB_DISKMONS_DIR variable
Removed the first link to the BB_DISKMON_WARNINTERVAL variable.
The variable was linked later in the text.  No need to link
the output version of the variable... clunky looking.

(From yocto-docs rev: ec6cfc85ba2f1e2fc763b6b7c918a21cec00e203)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
b5a63c8b18 ref-manual: Updated APPEPND variable.
Changed wording so I could reference the proper name of the
LABELS variable.

(From yocto-docs rev: 05e5f287bde8219d1f8125d71fd48a36a422009a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:52 +01:00
Scott Rifenbark
721237eaba ref-manual: Updated link to the Build Appliances page on the website.
(From yocto-docs rev: 14c66bc469085e0919e00979c1e01b1908d5f749)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
bc72e68b52 ref-manual: Removed redundant link for the DISTRO_FEATURES variable.
(From yocto-docs rev: 8d771f67aab1840175783a6d1eaaa2264562c863)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
3afa9a0c44 ref-manual: Replaced two old links with general kickstart link
(From yocto-docs rev: 5b875dc8e337aa859115b59591a39ac04a3f9c21)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
230a9a5a0d ref-manual: Fixed title name in link.
The actual title of the sdk-manual does not include the word
"Manual".  So, the reference to the book should terminate with the
word "manual" in lower case.

(From yocto-docs rev: 41bc85776f0b172fc243b6e5a5ca13b72e8399e5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
3366b09d10 ref-manual: Fixed reference context from "section" to "chapter"
(From yocto-docs rev: 47c66cc3d7617cd3d3e77afe73fe38f743bf5513)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
8a7479644e ref-manual: Removed redundant link to do_unpack task.
(From yocto-docs rev: 759fffef8e9a9d2c4cc76dd2fd41811ec2db946f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
5b86e38754 ref-manual: Enhanced link to the host-user-contaminated test.
The link was just going to the top of the section.  I added an ID tag
to the actual host-user-contaminated test within that insane.bbclass
description.  Now, the user is linked right to that test.

(From yocto-docs rev: b1e5b5a1876e211a8c57bfa727fa9031cfe5e0ac)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
c6e505438d ref-manual: Fixed broken link to do_image task.
Had the wrong ID in there.

(From yocto-docs rev: 6d52354b42709867ef61543de6d3b630fd780bab)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
71dbf342aa ref-manual: Removed link to DEPLOY_DIR variable.
The focus of the discussion here is on the DEPLOYDIR variable.
Having the link to the variable DEPLOY_DIR adds clutter to it all.
Removed that link.

(From yocto-docs rev: 8561c70fcff88adc82c7c5998d2539d40b314888)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
f443a38116 ref-manual: Removed redundant link to IMAGE_FSTYPES variable.
(From yocto-docs rev: 8b6dbb3259b4875e7443a5ceb55f5d593b2409a2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
28ef66df80 ref-manual: Removed redundant link to the C/C++ Compiler Cache.
(From yocto-docs rev: 1e7898f584e0ca4f5dcfaef447b70aec36867051)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
f77432d6f7 ref-manual: Fixed wording on how autotools classes build by default
Took out stange parenthetical construct and the links to the B and
S variables.  Links were redundant.  The construct was weird.

(From yocto-docs rev: 9cd2bf116bd89288a93944359a4809e68fa61f7b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
377c5007c8 ref-manual: Removed redundant link for "Source Direcotory" term.
(From yocto-docs rev: 82ebe64671cf298a8e9c53b2975540542f10b28f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
5b8f5ef75b ref-manual: Removed redundant link to WORKDIR variable.
(From yocto-docs rev: 66ab70483fe1ab963b6e5e822797b144f787a139)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
4e03ba29fd ref-manual: Removed redundant link to "Build Directory" term
(From yocto-docs rev: 37ddada28753fe89cd56b44b4f1e5896cf71cc23)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:51 +01:00
Scott Rifenbark
53a727d1f8 ref-manual: Fixed link to "naked" bsp-guide reference
A "naked" reference to the bsp-guide was split across two lines
in the *.xml file.  This splitting causes the link to not be
processed correctly by the mega-manual.sed script.  I joined the
two lines to fix the link.

(From yocto-docs rev: e31b4d2210b5c246f3e822fbe8950a625e08ca98)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
49be023f17 ref-manual: Added "section" as part of a reference to the bitbake-user-manual.
Missing this conventional part of the reference contextual diatribe.

(From yocto-docs rev: 5468ebf21bc9166de35e9b7016eef06ed586e5c3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
cf234c80e4 ref-manual: Removed several redundant links to variables.
Trying to get back to a standard of using an actual link for only
the first occurrence of a variable in any given section.

(From yocto-docs rev: 68d80a5dd8481f938892473c4671a9c436e80c8f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
3ca3e0d6c3 ref-manual: Removed redundant links to the DISTRO_FEATURES variable.
(From yocto-docs rev: d834e5f5cef520b80e5049b28945cfa1ead3b092)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
4275f169dd ref-manual: Fixed bad title for the bitbake-user-manual
In the migration section, an older name for the bitbake-user-manual
was being used in the text for a cross-reference.  I replaced it
with the current and correct name.

(From yocto-docs rev: 3f466b59a3138984cceae12ac58c84ec3cda4432)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
b4f9578263 ref-manual: Fixed bad link to naked sdk-manual
In the migration section, an older flavor of the title to the
sdk-manual was being used.  This of course was not processed
correctly by the mega-manual.sed script.  I fixed the title so
it is now processed correctly.

(From yocto-docs rev: 1f9fa699bb14f96a7c9ccab314a7d72e6a93dda6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
e70c4496f3 ref-manual: Fixed bad title string for "Toaster User Manual"
(From yocto-docs rev: 14efbdbbcffea3a301dd220b3336fd11e1878ff8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
f7d05a7f13 ref-manual: Removed redundant paragraph for links to variables.
(From yocto-docs rev: 32228c3e138d6bd0076b164980e90fdc25c62768)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
e6109a24b9 ref-manual: Fixed mis-matched title in link to ptest.
(From yocto-docs rev: d203312ede89d5c7467f8ac8117522c4fc1fd7b5)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
411730cb12 ref-manual: Removed redundant link to the BAD_RECOMMENDATIONS variable.
(From yocto-docs rev: 27ce95176fcceb95065eee19fecc2a71d88a0984)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
af2ea82175 ref-manual: Removed redundant link to IMAGE_FEATURES variable.
(From yocto-docs rev: 0ca8dc6aa8e06405e9483398788f4e221408fed7)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
8d48abc3ef ref-manual: Fixed a link to a naked manual reference
The terms.xml chapter had a link to the toaster-manual where the
string to the manual was not matching the string used in the
mega-manual.sed file.  Consequently, the link was not being processed
correctly.  This type of link should not be a link in the mega-manual
because the target is to the manual in general.  Fixed the string
of the toaster-manual to match what is being used in the mega-manual.

(From yocto-docs rev: 44042847db10b15f8694199162ad96dea44d21bc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
f58bd67e4b ref-manual: Updated buildtools example script
(From yocto-docs rev: f9d46c43a2f5961fb9bda6758f8c2cdeef100281)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
7211597871 ref-manual: Updated example buildtools .sh file.
(From yocto-docs rev: 36fecfc69f60c99a58c86fc3f1890382fb013887)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
f9f89aae51 kernel-dev: Fixed a few links throughout manual.
The areas were found scrubbing the mega-manual.  These were minor
fixes.

(From yocto-docs rev: aaa460be3f4a446c091d66a17ca6c010f335ccc4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:50 +01:00
Scott Rifenbark
f3e5f2b6f0 overview-manual, dev-manual: Cleaned up links to source repos
I was using the "/cgit/cgit.cgi/" string as part of the link to
the source repos, which uses the ENTITY "&YOCTO_GIT_URL;".  That
ENTITY is all that is necessary to get the link to work.  I removed
the other stuff.

(From yocto-docs rev: f9a63c2cc824ef05230f614e933d178469890e97)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
e5d1d22b57 kernel-dev: Minor fixes.
1. Fixed the name of the "do_compile" task so that it was not
   referenced as "do_compile()".

2. Fixed a link to the Source Repositories so that the link
   used the ENTITY for the YP Git area and not a full-blown
   hard-coded path.

(From yocto-docs rev: 4b8d0e61f3f3017954d36ed196a08fb0a04909dc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
a6c70d5e3a kernel-dev: Fixed link to a section head
The "end" part of "linkend" was missing.

(From yocto-docs rev: 9411033faa6f71a52080c2f35a2af2f725399c7b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
67c9dfda72 kernel-dev: Fixed two broken links from bad syntax.
(From yocto-docs rev: 7d56b5c6d918e8326d66191b857a0030d2533fc6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
5a9678f0dd bsp-guide: Fixed broken link to Raspberry Pi README.md file.
(From yocto-docs rev: f3d4710eef845ef356072645597b3794cb19d08a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
5f51c8796a ref-manual, poky.ent: Removed old ENTITY to kernel-manual
Found a link to the old kernel-manual in the reference manual.
This manual is not used.  I changed the link to use the proper
ENTITY value and also removed the old one from poky.ent.

(From yocto-docs rev: f1377989ab4a85827f5aaab9b19c4fb3c10567ca)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
283961d3fa bsp-guide: Fixed bad link that was going to old kernel manual
Found a link going to the "kernel-manual" manual, which is no
longer used.  Changed to "kernel-dev".  This was a fix so that
I was using the proper ENTITY in the poky.ent file.

(From yocto-docs rev: 787ee10c7764ffd6adfbd8ddb304ac686bf3e95f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
0ee4a69b3f bsp-guide: Shortened link to the YP Source Repositories.
Removed the /cgit blah blah blah part.

(From yocto-docs rev: 575a0d173d4b8706bc8ee966e6bfafdd96b38cad)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
6ed08ab9ce sdk-manual: Removed redundant link to "Build Directory"
(From yocto-docs rev: 9ce5617e008ce18656cc04608c50186f3d3b05bf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
a345563928 sdk-manual: Scrubbed "Neon" occurrences from the Oxygen chapter.
(From yocto-docs rev: 5c53a75af70a6c6ddaaf5b1d298ea129006f2952)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
cd8aa05113 sdk-manual: Fixed minor wording problem.
(From yocto-docs rev: 030fa276d1fc462b321e43547a6da03ca05d590e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
04b21d6e0c sdk-manual: Fixed bad title in link.
Link was going to the right place but had an old chapter title
name.

(From yocto-docs rev: 57a5d25180429a97d47678c0782198623bc06eef)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
db98975f64 dev-manual: Fixed broken link
(From yocto-docs rev: 4abc25e1b0b93bb232291e0bb51ec89c5e1f66f9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
a275fd841f dev-manual: Fixed broken link to WORKDIR variable.
(From yocto-docs rev: c239bd40e92cedee6301c176ff96821ea270fc39)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:49 +01:00
Scott Rifenbark
97eb377e5c dev-manual: Replaced SERIAL_CONSOLE with SERIAL_CONSOLES
The former is deprecated.

(From yocto-docs rev: 1a1f89d91ceeb35f8cb5c2f9fc42fdb089ffc05c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
98346f0441 dev-manual: Fixed broken link to Carna Botnet's article.
(From yocto-docs rev: 1d5e9bfea217051a457c30dcbd890366e9dd7611)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
409aeee632 dev-manual: Fixed target for a link.
(From yocto-docs rev: 59697f22f79d07b800d4f3ce2eb2ea41c987802b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
7b39b4eac2 dev-manual: Removed non-functioning link to EXTERNAL_TOOLCHAIN
(From yocto-docs rev: b0bd0c4d8070adf1439140230700b0de18f884ae)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
9bf14bd86f poky.ent: Updated some autobuilder ENTITY variables
The location for nightly builds changed to
https://autobuild.yocto.io/pub/nightly/.

I updated the YOCTO_AB_PORT_URL and YOCTO_AB_NIGHTLY_URL
ENTITY variables accordingly

(From yocto-docs rev: 5a80544901ed6f0fd2188e82ac3dab7637d28aa1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
7c6df63fb2 dev-manual: Replaced "BSD" with "BSP" typo. Also small word change.
(From yocto-docs rev: d67856c849c5275a07ee1f87db839cd4d4d9a6f6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
4045ead450 documentation: Terminology fix for "OpenEmbedded Layer Index"
Found several instances of this being referred to as the
"OpenEmbedded Metadata Index".  Changed to "OpenEmbedded Layer
Index".

(From yocto-docs rev: 60fb601be324a350cd4d51b199915e6b72e2f9b0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
24c4f0ca99 dev-manual: Removed redundant link.
(From yocto-docs rev: bf64aad87e0248362e9cf9b693cd806ca32873fa)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
bb3e0b334b dev-manual: Fixed formatting issue.
(From yocto-docs rev: 4cd711d1305f480068447bac8881212a5b999d34)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
1378a71fe2 dev-manual: Slight wording change and link to a list of items.
(From yocto-docs rev: 26dd48f6995a1ac8da5ceba124d7795ebe857d53)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
b7cfeadb69 dev-manual: Fixed a broken Gitolite link.
(From yocto-docs rev: 5d900f38079701a2ed8243071bd669bca1d97e1e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
27e846e269 dev-manual: Fixed link to Toaster User Manual.
Had "Toaster Manual" in the cross-reference so it was not resolving
correctly when processed by mega-manual.sed.

(From yocto-docs rev: c99ce4a706df55e97388b45620ed2a503cb8312d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:48 +01:00
Scott Rifenbark
002c29813b dev-manual: Removed writer note about needing a figure.
Nobody provided a figure for me for this section, which would
have been nice.  So, I have generalized the text to work
without that detail.

(From yocto-docs rev: 7570167196c26c9eb08e97d1350a715bff37c75f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
ee46cde7dc dev-manual: Fixed grammar... missing word.
(From yocto-docs rev: 37cf33513896f2cf9accf801b0847d9f132fc06a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
e1387f46a5 documentation: Cleaned up links to the source repositories
I was using the ENTITY with "cgit/cgi"/ appended to the end.
The appended part is not necessary.  Removed it.

(From yocto-docs rev: 64593694d62c99cbe2897804c04fea24110ee861)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Aurelio Jargas
9967a28786 mega-manual.sed: Improved readability
Using the "@" character to de-specialize the "/" character.
This change makes the file more readable.

(From yocto-docs rev: d15c9ce6cc365768677cdd40a8859bb96aad7dc4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
b764f55ead ref-manual: Fixed a link.
(From yocto-docs rev: 79e8ae28a3da4c135227ba44e707a1adde61a24f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
719fcb9a48 overview-manual: Scrubbed links and fixed a few
Found some mangled links in various spots that were causing the
mega-manual.sed file issues.

(From yocto-docs rev: 405a92f934bf7e209f3b8a543e63a1b4c693af29)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
dc51a79423 brief-yoctoprojectqs: Added customization file for eclipse
this file was accidentally dropped during all the manual
reording operations.  I have restored it.

(From yocto-docs rev: 5c1244f18ede1af0a540687cfb5d9071fbb3c1c0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
0fbe9cebf0 overview-manual: Review feedback applied
Minor wordings based on Stephano's feedback.

(From yocto-docs rev: 4aa7aa0e9c7d8e554771743ecabdf0e64f3884e0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
0b07e5c00d documentation: Updated everything for new overview-manual
This involved changing the root manual folder from
"getting-started" to "overview-manual".

Also, every link using the ENTITY "YOCTO_DOCS_GS_URL" was
changed to "YOCTO_DOCS_OM_URL".  Most manuals had several
occurrences of these links.

The makefile needed updating to process the new manual
and not process the old "getting-started" manual.

(From yocto-docs rev: 1abf64e56e9096258038ae37b787a81bf786bb3b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
3a8b4648d4 mega-manual.sed: Added overview manual and extra subst.
Updated the script to process the overview-manual strings
found in the mega-manual.  These changed due to the folder
chaning from "getting-started" to "overview-manual".

Additionally, I discovered a single occurrence of a linked
reference to the mega-manual that was in the mega-manual.
This is not ideal.  That link needs to be a link in the
ref-manual where it originates.  However, the link in the
mega-manual should not link to itself.  That link needed
processing just like all top-level book links in the
mega-manual.  The link should be removed.  I added a single
substitution operation at the end of the file to handle this
lone case within the mega-manual.

(From yocto-docs rev: 57ebdb1cb10a4df0d69316d1f116d7804199ae90)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:47 +01:00
Scott Rifenbark
f476125b50 poky.ent: Added YOCTO_DOCS_OM_URL entity
The variabe for the "getting-started" manual goes away and is
replaced by this one for the new "overview-manual."

(From yocto-docs rev: 45fc9beac6db4c40c3660fc9e54cc11e9c1f96c4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
6270b8648a dev-manual, ref-manual: Fixed two broken links.
(From yocto-docs rev: 1ce02bf1c81629d9e008c05b48c4cddad264bafc)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
ebb45adced bsp-guide: Removed redundant word.
(From yocto-docs rev: 199f892100f352f7c190aa3d7bac1b4a5e44dfb2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
48a87de5dc brief-yoctoprojectqs: Fixed broken link
Found a link to a deprecated "overview" manual.  Replaced it with
the proper ENTITY to the getting-started manual.

Removed the ENTITY to the old "overview" manual.

(From yocto-docs rev: 891e4902052743833c422e6a557c93de42ed892d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
f6a378d537 documentation: Changed getting-started manual titles
Throughout the documentation, the manual "Getting Started With
Yocto Project" was used.  The manual now is called "Yocto Project
Overview and Concepts Manual".

(From yocto-docs rev: f47d10029487420cbeb292f680084b63be0ec7e9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
c85b419fee documentation: Fixed links to old concepts-manual
The concepts-manual is going away for 2.5.  I have fixed all the
links across the YP documentation set that were cross-referencing
into the concepts-manual so they now cross-reference into the
getting-started manual, where that concepts chapter will live
post 2.4x.

(From yocto-docs rev: e9145e9e7fef882a13c982d34514a94f864b3c12)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
67b8861899 yocto-project-qs: Removed this manual.
No longer part of set from 2.5 on.

(From yocto-docs rev: edf059871a201179e8dab90746eb7e9eece65eb9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
69398b7992 Makefile: Removed yocto-project-qs
This file is not part of 2.5.

(From yocto-docs rev: a0ad3a90869c7dca729cce7db5fb7004e0272211)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
c3457e525e concepts-manual: Removed chapters.
Do not need these chapters any longer.  The manual is going away
and these chapters were organizational for the book and do not
provide any new information for the getting-started.

(From yocto-docs rev: 47e64fbee86960009968478099e9399f673bda9d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:46 +01:00
Scott Rifenbark
11ea5291a2 mega-manual: removed chapters from concepts manual
these chapters were sucked into the getting-started manual but
now are no longer even needed there.  The chapters are
organizational for the old concepts-manual and provide nothing
for the getting-started.

(From yocto-docs rev: dd97d06039e3fd6bcbbccafa99f4d29ce041ae70)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
ea1e98a968 getting-started: Moved concepts-manual-concepts.xml to getting-started
This chapter in now in the getting-started manual.

(From yocto-docs rev: 206c4e2117cc3b404c81ac66f391cee68db4a1c2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
e6f52c588e mega-manual.sed: Removed the concepts-manual.
This manual will not exist.  I deleted the two lines that process
links in the mega-manual for the concepts-manual

(From yocto-docs rev: 49530e16b19b8f24782c15fe7daf68e0e0444e39)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
6fb8ac6894 mega-manual: Removed the concepts-manual.
The two chapters have been integrated into the current
getting-started manual.  Concepts manual is no longer in
existence.

(From yocto-docs rev: f8ee299901acb61d0e638ce9e36f30c5924f36d4)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
262db8d9dc poky.ent: Removed the ENTITY for the concepts-manual.
Removed the YOCTO_DOCS_CM_URL from the mix of things.  The manual
will not exist.

(From yocto-docs rev: d97df11478566654d95f02b6fe61eaa0068afb5f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
5aff57f173 Makefile: Removed concepts-manual
This manual will not see existance.  I put the list of .png files
from this manual into the existing getting-started manual as that is
where the topics will now go.

(From yocto-docs rev: 22c2de06baf96120cbc830540e818599ce0ac07b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
861ba4933a documentation: Removed references to the concepts-manual
Removed all the references to the top-level of the old
concepts-manual.  These references are references that do not
have a "#" target.  They just reference the manual in general.

(From yocto-docs rev: 5b33f3c119807532aa6feb2d010c9c9f780a26d8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
ef2d0247ae getting-started: Added figures from old concepts-manual
The concepts-manual is going away for 2.5.  It is being sucked back
into the getting-started from where it came after originally being
moved out of the ref-manual.  I have moved all the figures from the
concepts-manual to the figures folder of the getting-started
manual.

(From yocto-docs rev: 6a95ab558964f2833d6b214791be94cb87305926)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Kristi Rifenbark
cc6a01da0e sdk-manual: Updated "Installing the Neon Eclipse IDE"
(From yocto-docs rev: e6e6cd146bb821d544b1b9a43307ecd3034f3e52)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
90bb0b0f56 dev-mnaual: Changed "Dockers" to "Docker"
(From yocto-docs rev: af6bf8474462584b183005ce51fec42efb94e232)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
5f02d2e4d3 dev-manual: Fixed grammar error.
(From yocto-docs rev: a0f045418cb378ec07725dfd6de20b5d7ce33239)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
abde1bb6c6 dev-manual: Corrected "Docker" typo.
(From yocto-docs rev: 5615e6803dbbe64e66cced29f44f1cf9e94fdf38)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
816fd8faca sdk-manual: Fixed reference to the Neon Appendix.
The link to the appendix was referencing Appendix C instead of
Appendix D.

(From yocto-docs rev: b8b4ffe14f74ef0a76289258ae17a3843363397d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
b95b9595ff sdk-manual: Removed non-eclipse option for Eclipse flow
The step in the general Eclipse IDE workflow has a step that tells
the user to "Create and Build Your Application."  I had a sentence
in that step that suggested if you were not using Eclipse to follow
some sort of procedure.  The whole idea of this flow is to be
working within Eclipse.  I removed that sentence.

(From yocto-docs rev: 83c35e9bb7190464af840822f5dd66d84e15ec64)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:45 +01:00
Scott Rifenbark
c7bc648e65 sdk-manual: Added cross-reference to QEMU Emulator.
(From yocto-docs rev: 97b070efdadaec645df24416d61c184065d4b96b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
c94c6b746d sdk-manual: Formatting change to list.
(From yocto-docs rev: 3f0ead6ce135ae8f92fa9cded676bb558424628c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
cab4efa208 sdk-manual: Fixed capitalization issue in a list.
(From yocto-docs rev: 861ce526456e2ee2f924b57a469e8c8fdb6bb768)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
b9f459b447 sdk-manual: Updated heads for list on Eclipse development
The list headings were not conforming to the capitalization rules
for lists used in the YP manual set, which is significant words
are capitalized in a bolded item of a bulletted or numbered list.

(From yocto-docs rev: af60763b7daccb6af22b4761f6b8370ea1956714)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
32ddfa7061 sdk-manual: Updates to the "Using SDK Toolchain Directly" chapter
Some minor updates here.  Mainly, bring a list into conformance
for use of capitalization in the bolded item heads.

(From yocto-docs rev: a9c9bb36caa146b0ff8338cb1fad850d75a64997)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
dc1d67be95 sdk-manual: Updated SDK installation script naming explanation.
Updated the various fields for what goes into the name of one
of these *.sh files pulled from the download sites.

(From yocto-docs rev: 4b326ae834d50607062c2f29c27fccd496489eb6)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
f1a7cb96a5 sdk-manual: Updated note about some tools being deprecated
The note was written such that it appears some performance tools
were just recently deprecated with this release of the Eclipse
Yocto Project plug-in.  This is not the case.  I updated the
note wording to simply state that those tools are deprecated
with the plug-in.

(From yocto-docs rev: 4e8aa076ec009c71d7ceeda5c64a617e1c2696fb)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
8f8215dcf8 sdk-manual: Updated Eclipse trademarking usage
Made sure that each first occurrence in a chapter used the
"tm" mark.

(From yocto-docs rev: b7b21441b5fc009b8161902a10cfe1863d87b8a8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
ef753009ea concepts-manual: Updated Image Generation section.
Added wording to note that the rootfs might be compressed
depending on the IMAGE_FSTYPES setting, which would have to
actually do compression.  Also, fixed examples of "do_image_type"
and "do_image_ext4" so that there is no "[depends]" as part
of the example.

(From yocto-docs rev: 18ecdc6dd8722212c94000950841a4c06d3e48aa)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
eec08a1e4a documentation: Fixed links to concepts-manual.
Some inconsistencies in the links to the concepts-manual existed.
I fixed these throughout the YP manual set.

(From yocto-docs rev: ad7f840bb6f4a5248ef455b98ce9b35197e07e1a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
39810ff505 documentation: Fixed "Getting Started" manual links
There was inconsistent use when referencing the getting-started
manual.  The manual's name does not include the word
"Manual".  So, I cleaned this up across the manual set and
also in the mega-manual.sed file, which was incorrectly
processing the links to that manual that do not target a
specific section.

(From yocto-docs rev: 0f5321416f7ec50cb6c96cccb7c87ef191a25367)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
1a013b9cb0 mega-manual: Fixed various links to the dev-manual
Found a few links that were not using the correct wording when
referencing a section to the dev-manual.  Also, fixed one link
that was assuming a section outside the dev-manual when the
link was to a section inside the dev-manual.

(From yocto-docs rev: 7a577b135e1a01d6a9924ba89733e46d029c6cca)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:44 +01:00
Scott Rifenbark
8d0e2e755f mega-manual.sed: Improved readability for strings in .sed file
The escaping of the double quote characters is not necessary
in the mega-manual.sed file, which processes the links in that
large HTML document.  I have removed them.

Authored-by: Aurelio Jargas <aurelio@aurelio.net>
(From yocto-docs rev: 640a52c74750b9148116171cfa8a2cca388f6d7c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
d083b919ed documentation: Updated "OpenEmbedded-Core" terms.
Throughout the manual set, I made sure that "OpenEmbedded-Core"
and "OE-Core" appear with the hyphens.

(From yocto-docs rev: 1f570df3eccb74b9e2e60af94c0e0dd48e1489e9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
c755c65160 ref-manual: Updated LAYERSERIES_COMPAT description.
Using "OpenEmbedded-Core" rather than "OpenEmbedded Core" in the
text.  The term as also fixed to reflect this change.  Also,
use of the phrase "OpenEmbedded-Core project" or "OE-Core project"
is not desirable.  Changing project to version.

(From yocto-docs rev: ec226fcd92847c96ea2e11d34513b597a35c9825)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
e4c18f4cd4 ref-manual: Updated LAYERSERIES_COMPAT variable description.
Minor re-wordings from review.

(From yocto-docs rev: d4598e7e43a8bafa4ff6ddeec50febcedc41b411)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
a7a6af6bbe ref-manual: Fixed two grammar errors.
(From yocto-docs rev: 23a0edc13f2306008c0bbb154fb0861f15d4e6de)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
4abbd7b74c mega-manual.sed: Added brief-yoctoprojectqs to the script
(From yocto-docs rev: a5469784ee7815ba43f3b3c0d77cfd7a32c28f2f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
52a0499dfc documentation: Added brief-yoctoprojectqs to mega-manual
The original QS (yocto-project-qs) has been retired for the YP
sumo (2.5) release.  The manual has been replaced with the
brief, two-page quick build document (brief-yoctoprojectqs).

I needed to create a new title figure for the manual to include
as part of the mega-manual (bypqs-title.png).  The figure was
added to the figures folder of both the bried-yoctoprojectqs
and mega-manual book folders.  I also removed the old
ypqs-title.png file that was used for the original QS.

Updated the stylesheet doc for the brief build to include a
style using the new title .PNG file.

Updated the mega-manual.xml file to include the brief doc and
exclude the original QS.

(From yocto-docs rev: aadec4a70fa89e4dcd233c337d8971c8353ee26d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Kristi Rifenbark
8283724ee3 sdk-manual: Cleaned up section IDs between Neon and Oxygen
Updated section IDs for the new Using Eclipse Neon
Appendix and Chapter 5 Working Within Eclipse (Oxygen).
Changed one link found in reference manual.

(From yocto-docs rev: d767007cf4151127063d1992a4e11e90437ae2da)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
bd6580fc18 documentation: Purged the YP Quick Start references from YP set
The original Yocto Project Quick Start is being retired for the
YP 2.5 release (sumo).  I have purged all the various references
from the YP manual set and replaced them with references to the
appropriate doc.  The references were mainly into the YP
dev-manual for setting up the host or for building an image.
There were a few references into the new "Yocto Project Quick
Build" document for overviewing manual-type references.

(From yocto-docs rev: 11c0ab693962f16f87f1e21f33dd5c6ca6a6f895)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
097b5942ff ref-manual: Deleted the "ref-bitbake.xml" chapter
This information was merged into the BitBake User Manual.

(From yocto-docs rev: eb68d4429aed652e4ca10c1ab55d3a815d453d6f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:43 +01:00
Scott Rifenbark
e24511e85b dev-manual: Added new section on conserving disk space
For conserving disk space during builds, I added a new section
that tells how to add "rm_work" to your local.conf file.
This information was part of the original YP Quick Start
and was not carried forward into the new brief build
document.

(From yocto-docs rev: 719d70587d908390a134559472d57ce7fced6aae)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
54ff8be899 brief-yoctoprojectqs: Changed title
Changed the title to "Yocto Project Quick Build" from "My First
Yocto Project Build", which sound a bit too much like "My first
little Pony."

(From yocto-docs rev: c797590d3cd341a9c492c7af49a927e1d241184e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
c4995202d8 bsp-guide: Swapped SERIAL_CONSOLES for SERIAL_CONSOLE
The latter has been deprecated.

(From yocto-docs rev: 1f0f423f89d7727aace64b2cfe0b11b0a4bbc7e3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
34208c4b39 bsp-guide: Updated SPL_BINARY discussion.
Updated the discussion on this variable in the BeagleBone
example.  Took out an older "Xloader" term.

Also, fixed a link to the u-boot.inc file.

(From yocto-docs rev: 5a41c6e7ed6ee6432f7f2c15642f5f98460a1a83)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
10b372392a brief-yoctoprojectqs: Updated wording to use ENTITY variables
The tip box shows how to ure the mirrors for the most recent
release and the most recent release minus one.  I set these
up to use variables rather than hardcoded releases.

(From yocto-docs rev: ad47deb8ac1fc074ed3fdf3627609ac3ab38e92b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
8721c0f8f5 poky.ent: Added variables for doc version minus one
Useful for providing the release version of the current
release minus one.

(From yocto-docs rev: c5970a4c52a333156336a564ae488b808a73a880)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
c1d20b2e48 brief-yoctoprojectqs: Added link to getting started manual.
Provided a bullet item to the Getting Started manual in the
"Where to Go Next" section.

(From yocto-docs rev: ce4edc521d19b3c8025e950061cc962ca88fa29e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Kristi Rifenbark
3e739f1fdc sdk-manual: Fixed duplicate link
(From yocto-docs rev: 53da7ae95f499bcfb80d4f04b834bf6ade71d2ff)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
0a27df9ea8 bsp-guide: Fixed note on title page to have correct title.
(From yocto-docs rev: 30455141776c86def4721e4dbe97b0c0a6e27ddd)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Joshua Watt
f1cee2b10f ref-manual: Updated the SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS variable
Describes the new wildcard syntax

(From yocto-docs rev: e91db865686e7b1b9b21cb9aea892b0ed8884438)

Signed-off-by: Joshua Watt <jpewhacker@gmail.com>
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
01d53451fb Documentation: Updated Manual Notes
I did some re-wording to account for when the user does a web
search for a manual and the search returns an ancient version
of the manual.  Many times the user is oblivious of this fact
and is trying to use a version of the docs that don't come close
to matching the version of the YP.

(From yocto-docs rev: 1cbe06cefda2b35584a8365564e01888d229d0b3)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
c1155478ba bsp-guide: Added new section for creating layer using bitbake-layers
Created detailed example using the BeagleBone BSP.

(From yocto-docs rev: 7701dc2bd94ae7ee3e4aee37ac97174ad445d286)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
376637d678 ref-manual: Added variable description for SPL_BINARY
(From yocto-docs rev: 00e579123540006c364f7751a37e29c74acf361b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
40e4b86836 ref-manual: Updated the IMAGE_BOOT_FILES varaible.
Added a final paragraph that provides some cross-referencing to
the sections that describe how to use Wic and to the Wic
reference chapter.

Also, shortened the DOC info line.

(From yocto-docs rev: 4ba5d0119caa3696187537f5b4cc9c64ca00e205)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:42 +01:00
Scott Rifenbark
c047d59890 ref-manual: Updated SERIAL_CONSOLE and SERIAL_CONSOLES variables.
Added a link to the "getty" term.

(From yocto-docs rev: d21fe1ea33353e15c135af7fc302ffe636310541)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
a50f249ebb ref-manual: Updated IMAGE_INSTALL variable description.
Minor edits for clarification.

(From yocto-docs rev: fdef057927b7b0dba64b9b7f952108fdb9c97f34)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
cf705753a8 ref-manual: Updated EXTRA_IMAGECMD variable.
Added minor edits to clarify that we are talking about an
image type.

(From yocto-docs rev: 14c906aa539d127c88d71d7fb3e628fc225cbd52)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
46fa0a90a7 dev-manual: Added an id tag for the create layer step.
(From yocto-docs rev: 59b8c053f8fe94cc51ece86733c435ac7085eb57)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
9e8f28a469 dev-manual: Updated the "Create Your Own Layer" section
Updated the explanation of the layer.conf file.  I am going
to use this section as the definitive section that explains
the layer.conf file.

(From yocto-docs rev: 4c70c7467f0ca5cf2346ef8d10bde437b971d2d2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
c286781b42 dev-manual: Updated the "Creating Your Own Layer" section.
Added information to the list of variables used in the
layer.conf file to specify LAYERSERIES_COMPAT.

(From yocto-docs rev: c41ff41e75b654d5d7df8c2a1e83ba5525490285)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
8b423ea03e dev-manual: Updated the "Creating Your Own Layer" section.
For step 3 on creating the layer, I put in wording to make sure
the user does not create a layer in the cloned poky directory.

(From yocto-docs rev: 1a0d1d0c0cdfa77c6df005d0294d11a02ca3770c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
086668f40e dev-manual: Updated layer creation example to use $HOME directory
Best practices dictate that the use not create a layer in the
poky repo.  So, I updated the example to move the user to a
top-level directory first and then create the layer.

(From yocto-docs rev: 81ab8b0f393f90785880aec7685c4c431cb7ad87)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
2f58a2eda1 ref-manual: Added new variable description LAYERSERIES_COMPAT
Created a new variable description in the glossary.  This
variable is used in the layer.conf file and needed to be
documented.

(From yocto-docs rev: 5c514c0e90ca920bdf183b1f9449a06b906235ca)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
918f415cbe poky.ent: Added two Minus-1 variables for release code names
Many examples in the YP set use the latest release code name
as part of a list and then the "minus-1" code name is literally
typed in.  I think it is time to have a couple ENTITY variables
in poky.ent that will fill in the last release for these examples.

(From yocto-docs rev: 7421d6a0ae85503b205537f08cfd23e28747d835)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Kristi Rifenbark
ffd1ad245f sdk-manual: Added new appendix for Neon
Fixed [YOCTO #12417]

(From yocto-docs rev: 9f6b874740b98c5b3eed1c06dcf5fbe687279ca8)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Kristi Rifenbark
da0ebd28f6 sdk-manual: Removed Mars Appendix
Fixed [YOCTO #12417]

Deleted the appendix.xml file.
Updated the mega manual .xml file to not include
the Mars appendix file.
Updated the sdk-manual.xml file to not include the
Mars appendix file.

(From yocto-docs rev: e7752c3db1aec8d5143e78aab44ec5afaaaf9c76)

Signed-off-by: Kristi Rifenbark <kristi@buzzcollectivemarketing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
Scott Rifenbark
9f61054128 bitbake: bitbake-user-manual: Updated copyright year on title page to 2018
(Bitbake rev: 31c50d965d1fe17d617f2a7a43c52396c198da0f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-24 17:17:41 +01:00
David Reyna
f0ec7c8b2d bitbake: toaster: add 'Sumo' to release selection
Add Sumo (YP-2.5) to the release selection for new projects.

[YOCTO #12713]

(Bitbake rev: 76b17ffcea5c7275c2f9735a058256ba909b1a75)

Signed-off-by: David Reyna <david.reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-04 13:35:02 +01:00
Richard Purdie
6c5e0625eb toolchain-scripts/meta-ide-support: Handle dash shells correctly
Where /bin/sh is dash, the recent toolchain scripts change fails as the $(pwd)
usage in oe-init-build-env doesn't function correctly. Fix this by saving
and restoring the cwd and calling the script within its own directory.

This fixes meta-ide-support on dash based systems.

(From OE-Core rev: dceca6d34071b4cbef9e28bbf19dc12f5d925525)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-04 13:35:02 +01:00
Chin Huat Ang
d7d6ef7df7 toolchain-scripts: preserve host path in environment setup script
The environment setup script generated in the build directory sets the PATH
variable by expanding ${PATH} which would have host paths filtered. Sourcing
this script to run runqemu will not work as it complains host stty (/bin/stty)
cannot be found.

To resolve this, the script no longer expands ${PATH} during generation time,
instead it will now source oe-init-build-env to initialize the build
environment so that all host paths will be preserved. Also be sure to prepend
STAGING_BINDIR_TOOLCHAIN to the PATH variable so that the toolchain from the
build directory can be found.

[YOCTO #12695]

(From OE-Core rev: a64a144096c0637387244b89ed22f4b5352b2522)

Signed-off-by: Chin Huat Ang <chin.huat.ang@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-04 13:35:02 +01:00
5590 changed files with 318817 additions and 285977 deletions

5
.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
@@ -30,5 +28,4 @@ hob-image-*.bb
pull-*/
bitbake/lib/toaster/contrib/tts/backlog.txt
bitbake/lib/toaster/contrib/tts/log/*
bitbake/lib/toaster/contrib/tts/.cache/*
bitbake/lib/bb/tests/runqueue-tests/bitbake-cookerdaemon.log
bitbake/lib/toaster/contrib/tts/.cache/*

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)

26
README.LSB Normal file
View File

@@ -0,0 +1,26 @@
OE-Core aims to be able to provide basic LSB compatible images. There
are some challenges for OE as LSB isn't always 100% relevant to its
target embedded and IoT audiences.
One challenge is that the LSB spec is no longer being actively
developed [https://github.com/LinuxStandardBase/lsb] and has
components which are end of life or significantly dated. OE
therefore provides compatibility with the following caveats:
* Qt4 is provided by the separate meta-qt4 layer. Its noted that Qt4
is end of life and this isn't something the core project regularly
tests any longer. Users are recommended to group together to support
maintenance of that layer. [http://git.yoctoproject.org/cgit/cgit.cgi/meta-qt4/]
* mailx has been dropped since its no longer being developed upstream
and there are better, more modern replacements such as s-nail
(http://sdaoden.eu/code.html) or mailutils (http://mailutils.org/).
* A few perl modules that were required by LSB 4.x aren't provided:
libclass-isa, libenv, libdumpvalue, libfile-checktree,
libi18n-collate, libpod-plainer.
* libpng 1.2 isn't provided; oe-core includes the latest release of libpng
instead.
* pax (POSIX standard archive) tool is not provided.

View File

@@ -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,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:
@@ -26,4 +17,3 @@ Foundation and individual contributors.
* 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

@@ -11,7 +11,7 @@ For information about Bitbake, see the OpenEmbedded website:
Bitbake plain documentation can be found under the doc directory or its integrated
html version at the Yocto Project website:
https://docs.yoctoproject.org
http://yoctoproject.org/documentation
Contributing
------------

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
@@ -26,7 +38,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
__version__ = "1.50.0"
__version__ = "1.38.0"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -1,16 +1,27 @@
#!/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
#
# 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 fnmatch
import argparse
import logging
import pickle
@@ -21,10 +32,7 @@ import bb.tinfoil
import bb.siggen
import bb.msg
myname = os.path.basename(sys.argv[0])
logger = bb.msg.logger_create(myname)
is_dump = myname == 'bitbake-dumpsig'
logger = bb.msg.logger_create('bitbake-diffsigs')
def find_siginfo(tinfoil, pn, taskname, sigs=None):
result = None
@@ -51,8 +59,8 @@ def find_siginfo(tinfoil, pn, taskname, sigs=None):
sys.exit(2)
return result
def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
""" Find the most recent signature files for the specified PN/task """
def find_compare_task(bbhandler, pn, taskname, sig1=None, sig2=None, color=False):
""" Find the most recent signature files for the specified PN/task and compare them """
if not taskname.startswith('do_'):
taskname = 'do_%s' % taskname
@@ -71,81 +79,73 @@ def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
latestfiles = [sigfiles[sig1], sigfiles[sig2]]
else:
filedates = find_siginfo(bbhandler, pn, taskname)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:]
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)
return latestfiles
# Define recursion callback
def recursecb(key, hash1, hash2):
hashes = [hash1, hash2]
hashfiles = find_siginfo(bbhandler, 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)
# Define recursion callback
def recursecb(key, hash1, hash2):
hashes = [hash1, hash2]
hashfiles = find_siginfo(tinfoil, key, None, hashes)
return recout
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)
# Recurse into signature comparison
logger.debug("Signature file (previous): %s" % latestfiles[-2])
logger.debug("Signature file (latest): %s" % latestfiles[-1])
output = bb.siggen.compare_sigfiles(latestfiles[-2], latestfiles[-1], recursecb, color=color)
if output:
print('\n'.join(output))
sys.exit(0)
return recout
parser = argparse.ArgumentParser(
description=("Dumps" if is_dump else "Compares") + " siginfo/sigdata files written out by BitBake")
description="Compares siginfo/sigdata files written out by BitBake")
parser.add_argument('-D', '--debug',
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('--color',
help='Colorize output (where %(metavar)s is %(choices)s)',
choices=['auto', 'always', 'never'], default='auto', metavar='color')
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("-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.add_argument('-d', '--dump',
help='Dump the last signature data instead of comparing (equivalent to using bitbake-dumpsig)',
action='store_true')
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("-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("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("-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("sigdatafile2",
help="Second signature file to compare",
action="store", nargs='?')
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)
@@ -155,32 +155,17 @@ color = (options.color == 'always' or (options.color == 'auto' and sys.stdout.is
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])
if options.sigargs:
find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1], options.sigargs[0], options.sigargs[1], color=color)
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], color=color)
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)
if options.sigdatafile1 and options.sigdatafile2:
output = bb.siggen.compare_sigfiles(options.sigdatafile1, options.sigdatafile2, color=color)
elif options.sigdatafile1:
output = bb.siggen.dump_sigfile(options.sigdatafile1)
else:
@@ -194,5 +179,5 @@ else:
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

94
bitbake/bin/bitbake-dumpsig Executable file
View File

@@ -0,0 +1,94 @@
#!/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.tinfoil
import bb.siggen
import bb.msg
logger = bb.msg.logger_create('bitbake-dumpsig')
def find_siginfo_task(bbhandler, pn, taskname):
""" Find the most recent signature file for the specified PN/task """
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
filedates = bb.siggen.find_siginfo(pn, taskname, None, bbhandler.config_data)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-1:]
if not latestfiles:
logger.error('No sigdata files found matching %s %s' % (pn, taskname))
sys.exit(1)
return latestfiles[0]
parser = optparse.OptionParser(
description = "Dumps siginfo/sigdata files written out by BitBake",
usage = """
%prog -t recipename taskname
%prog sigdatafile""")
parser.add_option("-D", "--debug",
help = "enable debug",
action = "store_true", dest="debug", default = False)
parser.add_option("-t", "--task",
help = "find the signature data file for the specified task",
action="store", dest="taskargs", nargs=2, metavar='recipename taskname')
options, args = parser.parse_args(sys.argv)
if options.debug:
logger.setLevel(logging.DEBUG)
if options.taskargs:
tinfoil = bb.tinfoil.Tinfoil()
tinfoil.prepare(config_only = True)
file = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1])
logger.debug("Signature file: %s" % file)
elif len(args) == 1:
parser.print_help()
sys.exit(0)
else:
file = args[1]
try:
output = bb.siggen.dump_sigfile(file)
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,167 +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)
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,64 +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('-b', '--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")')
parser.add_argument('-d', '--database', default='./hashserv.db', help='Database file (default "%(default)s")')
parser.add_argument('-l', '--log', default='WARNING', help='Set logging level')
parser.add_argument('-u', '--upstream', help='Upstream hashserv to pull hashes from')
parser.add_argument('-r', '--read-only', action='store_true', help='Disallow write operations from clients')
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, upstream=args.upstream, read_only=args.read_only)
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,13 +7,24 @@
# 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
import sys
import argparse
import signal
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
@@ -25,6 +36,7 @@ import bb.msg
logger = bb.msg.logger_create('bitbake-layers', sys.stdout)
def main():
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
parser = argparse.ArgumentParser(
description="BitBake layers utility",
epilog="Use %(prog)s <subcommand> --help to get help on a specific command",
@@ -50,9 +62,7 @@ def main():
# 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())
bb.msg.logger_create('bitbake-layers', output=sys.stdout, color=global_args.color)
plugins = []
tinfoil = bb.tinfoil.Tinfoil(tracking=True)

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,16 @@ 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 = float(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
@@ -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)
@@ -118,9 +116,7 @@ def worker_child_fire(event, d):
data = b"<event>" + pickle.dumps(event) + b"</event>"
try:
worker_pipe_lock.acquire()
while(len(data)):
written = worker_pipe.write(data)
data = data[written:]
worker_pipe.write(data)
worker_pipe_lock.release()
except IOError:
sigterm_handler(None, None)
@@ -140,7 +136,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, extraconfigdata, quieterrors=False, dry_run_exec=False):
# We need to setup the environment BEFORE the fork, since
# a fork() or exec*() activates PSEUDO...
@@ -150,15 +146,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
taskdep = workerdata["taskdeps"][fn]
if 'umask' in taskdep and taskname in taskdep['umask']:
umask = taskdep['umask'][taskname]
elif workerdata["umask"]:
umask = workerdata["umask"]
if umask:
# umask might come in as a number or text string..
try:
umask = int(umask, 8)
umask = int(taskdep['umask'][taskname],8)
except TypeError:
pass
umask = taskdep['umask'][taskname]
dry_run = cfg.dry_run or dry_run_exec
@@ -173,7 +165,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
fakedirs = (workerdata["fakerootdirs"][fn] or "").split()
for p in fakedirs:
bb.utils.mkdirhier(p)
logger.debug2('Running %s:%s under fakeroot, fakedirs: %s' %
logger.debug(2, 'Running %s:%s under fakeroot, fakedirs: %s' %
(fn, taskname, ', '.join(fakedirs)))
else:
envvars = (workerdata["fakerootnoenv"][fn] or "").split()
@@ -200,6 +192,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
@@ -214,11 +209,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())
@@ -241,13 +231,10 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
the_data.setVar(varname, value)
bb.parse.siggen.set_taskdata(workerdata["sigdata"])
if "newhashes" in workerdata:
bb.parse.siggen.set_taskhashes(workerdata["newhashes"])
ret = 0
the_data = bb_cache.loadDataFull(fn, appends)
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_", "")))
@@ -327,9 +314,7 @@ class runQueueWorkerPipe():
end = len(self.queue)
index = self.queue.find(b"</event>")
while index != -1:
msg = self.queue[:index+8]
assert msg.startswith(b"<event>") and msg.count(b"<event>") == 1
worker_fire_prepickled(msg)
worker_fire_prepickled(self.queue[:index+8])
self.queue = self.queue[index+8:]
index = self.queue.find(b"</event>")
return (end > start)
@@ -388,7 +373,6 @@ class BitbakeWorker(object):
self.handle_item(b"cookerconfig", self.handle_cookercfg)
self.handle_item(b"extraconfigdata", self.handle_extraconfigdata)
self.handle_item(b"workerdata", self.handle_workerdata)
self.handle_item(b"newtaskhashes", self.handle_newtaskhashes)
self.handle_item(b"runtask", self.handle_runtask)
self.handle_item(b"finishnow", self.handle_finishnow)
self.handle_item(b"ping", self.handle_ping)
@@ -421,16 +405,12 @@ class BitbakeWorker(object):
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")
@@ -445,10 +425,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, dry_run_exec = 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, self.extraconfigdata, quieterrors, dry_run_exec)
self.build_pids[pid] = task
self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout)

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,8 +1,4 @@
#!/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

View File

@@ -3,18 +3,26 @@
# 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] [nobuild]
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
[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()
@@ -152,9 +160,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
@@ -180,7 +186,6 @@ 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
@@ -206,24 +211,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 +241,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
@@ -315,10 +309,6 @@ case $CMD in
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,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) 2012, 2018 Wind River Systems, Inc.
#

View File

@@ -1,19 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2021 Joshua Watt <JPEWhacker@gmail.com>
#
# Dockerfile to build a bitbake hash equivalence server container
#
# From the root of the bitbake repository, run:
#
# docker build -f contrib/hashserv/Dockerfile .
#
FROM alpine:3.13.1
RUN apk add --no-cache python3
COPY bin/bitbake-hashserv /opt/bbhashserv/bin/
COPY lib/hashserv /opt/bbhashserv/lib/hashserv/
ENTRYPOINT ["/opt/bbhashserv/bin/bitbake-hashserv"]

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,734 +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,689 +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"
.. note::
Specifying passwords directly in ``git://`` urls is not supported.
There are several reasons: ``SRC_URI`` is often written out to logs and
other places, and that could easily leak passwords; it is also all too
easy to share metadata without removing passwords. SSH keys, ``~/.netrc``
and ``~/.ssh/config`` files can be used as alternatives.
.. _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"
.. _az-fetcher:
Az Fetcher (``az://``)
--------------------------
This submodule fetches data from an
`Azure Storage account <https://docs.microsoft.com/en-us/azure/storage/>`__ ,
it inherits its functionality from the HTTP wget fetcher, but modifies its
behavior to accomodate the usage of a
`Shared Access Signature (SAS) <https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview>`__
for non-public data.
Such functionality is set by the variable:
- :term:`AZ_SAS`: The Azure Storage Shared Access Signature provides secure
delegate access to resources, if this variable is set, the Az Fetcher will
use it when fetching artifacts from the cloud.
You can specify the AZ_SAS variable as shown below: ::
AZ_SAS = "se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>"
Here is an example URL: ::
SRC_URI = "az://<azure-storage-account>.blob.core.windows.net/<foo_container>/<bar_file>"
It can also be used when setting mirrors definitions using the :term:`PREMIRRORS` variable.
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,857 @@
<!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') 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')
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.
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>"path_spec":</emphasis>
A specific directory in which to checkout the
specified svn module.
</para></listitem>
<listitem><para><emphasis>"protocol":</emphasis>
The protocol to use, which defaults to "svn".
If "protocol" is set to "svn+ssh", the "ssh"
parameter is also used.
</para></listitem>
<listitem><para><emphasis>"rev":</emphasis>
The revision of the source code to checkout.
</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>"ssh":</emphasis>
An optional parameter used when "protocol" is set
to "svn+ssh".
You can use this parameter to specify the ssh
program used by svn.
</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 three examples using svn:
<literallayout class='monospaced'>
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"
</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>
</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. Further,
the submodule sources it fetches are not visible to the
licensing and source archiving infrastructures.
</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='repo-fetcher'>
<title>Repo Fetcher (<filename>repo://</filename>)</title>
<para>
This fetcher submodule fetches code from
<filename>google-repo</filename> source control system.
The fetcher works by initiating and syncing sources of the
repository into
<link linkend='var-REPODIR'><filename>REPODIR</filename></link>,
which is usually
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link><filename>/repo</filename>.
</para>
<para>
This fetcher supports the following parameters:
<itemizedlist>
<listitem><para>
<emphasis>"protocol":</emphasis>
Protocol to fetch the repository manifest (default: git).
</para></listitem>
<listitem><para>
<emphasis>"branch":</emphasis>
Branch or tag of repository to get (default: master).
</para></listitem>
<listitem><para>
<emphasis>"manifest":</emphasis>
Name of the manifest file (default: <filename>default.xml</filename>).
</para></listitem>
</itemizedlist>
Here are some example URLs:
<literallayout class='monospaced'>
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"
</literallayout>
</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>
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,513 @@
<!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
<ulink url="http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html">Mailing List post - The BitBake equivalent of "Hello, World!"</ulink>.
</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> file,
see
<ulink url='http://git.openembedded.org/bitbake/tree/conf/bitbake.conf'></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'>
<link linkend='var-PN'>PN</link> = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
</literallayout>
<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}/${PN}/stamps"
<link linkend='var-T'>T</link> = "${TMPDIR}/${PN}/work"
<link linkend='var-B'>B</link> = "${TMPDIR}/${PN}"
</literallayout>
<note>
Without a value for <filename>PN</filename>, the
variables <filename>STAMP</filename>,
<filename>T</filename>, and <filename>B</filename>,
prevent more than one recipe from working. You can fix
this by either setting <filename>PN</filename> to have
a value similar to what OpenEmbedded and BitBake use
in the default <filename>bitbake.conf</filename> file
(see previous example). Or, by manually updating each
recipe to set <filename>PN</filename>. You will also
need to include <filename>PN</filename> as part of the
<filename>STAMP</filename>, <filename>T</filename>, and
<filename>B</filename> variable definitions in the
<filename>local.conf</filename> file.
</note>
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.
</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 layers in the
"<link linkend='layers'>Layers</link>" section.
</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,728 @@
<!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.
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.
-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).
</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 three files
to the current working directory:
<itemizedlist>
<listitem><para>
<emphasis><filename>recipe-depends.dot</filename>:</emphasis>
Shows dependencies between recipes (i.e. a collapsed version of
<filename>task-depends.dot</filename>).
</para></listitem>
<listitem><para>
<emphasis><filename>task-depends.dot</filename>:</emphasis>
Shows dependencies between tasks.
These dependencies match BitBake's internal task execution list.
</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-2018</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

@@ -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
#
# 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.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems():
print(x)
print()
b['dict']['a'] = 'b'
b['a'] = 'c'
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems():
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'].itervalues():
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
print(x)
print()
b['set'].add('o3')
print("a", a)
for x in a['set'].itervalues():
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
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.iteritems():
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.iteritems():
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.iteritems():
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.iteritems():
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.50.0"
__version__ = "1.38.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):
@@ -21,8 +33,8 @@ class BBHandledException(Exception):
The big dilemma for generic bitbake code is what information to give the user
when an exception occurs. Any exception inheriting this base exception class
has already provided information to the user via some 'fired' message type such as
an explicitly fired event using bb.fire, or a bb.error message. If bitbake
encounters an exception derived from this class, no backtrace or other information
an explicitly fired event using bb.fire, or a bb.error message. If bitbake
encounters an exception derived from this class, no backtrace or other information
will be given to the user, its assumed the earlier event provided the relevant information.
"""
pass
@@ -35,32 +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._debug_helper
def _debug_helper(self, *args, **kwargs):
return self.bbdebug(1, *args, **kwargs)
def debug2(self, *args, **kwargs):
return self.bbdebug(2, *args, **kwargs)
def debug3(self, *args, **kwargs):
return self.bbdebug(3, *args, **kwargs)
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)
@@ -68,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
@@ -137,23 +88,11 @@ def debug(lvl, *args):
mainlogger.warning("Passed invalid debug level '%s' to bb.debug", lvl)
args = (lvl,) + args
lvl = 1
mainlogger.bbdebug(lvl, ''.join(args))
mainlogger.debug(lvl, ''.join(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,20 +69,34 @@ 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.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())
@@ -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:
@@ -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)
@@ -436,20 +373,24 @@ exit $ret
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')
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':
@@ -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')
raise FuncFailed(func, logfn)
finally:
os.unlink(fifopath)
@@ -583,7 +471,7 @@ def _exec_task(fn, task, d, quieterr):
logger.error("No such task: %s" % task)
return 1
logger.debug("Executing task %s", task)
logger.debug(1, "Executing task %s", task)
localdata = _task_data(fn, task, d)
tempdir = localdata.getVar('T')
@@ -596,7 +484,7 @@ def _exec_task(fn, task, d, quieterr):
curnice = os.nice(0)
nice = int(nice) - curnice
newnice = os.nice(nice)
logger.debug("Renice to %s " % newnice)
logger.debug(1, "Renice to %s " % newnice)
ionice = localdata.getVar("BB_TASK_IONICE_LEVEL")
if ionice:
try:
@@ -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])
@@ -681,9 +569,12 @@ def _exec_task(fn, task, d, quieterr):
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 +582,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 +608,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.debug2("Zero size logfn %s, removing", logfn)
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)
@@ -854,23 +746,6 @@ def make_stamp(task, d, file_name = None):
file_name = d.getVar('BB_FILENAME')
bb.parse.siggen.dump_sigtask(file_name, task, stampbase, True)
def find_stale_stamps(task, d, file_name=None):
current = stamp_internal(task, d, file_name)
current2 = stamp_internal(task + "_setscene", d, file_name)
cleanmask = stamp_cleanmask_internal(task, d, file_name)
found = []
for mask in cleanmask:
for name in glob.glob(mask):
if "sigdata" in name or "sigbasedata" in name:
continue
if name.endswith('.taint'):
continue
if name == current or name == current2:
continue
logger.debug2("Stampfile %s does not match %s or %s" % (name, current, current2))
found.append(name)
return found
def del_stamp(task, d, file_name = None):
"""
Removes a stamp for a given task
@@ -928,7 +803,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')
@@ -942,9 +816,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)

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__ = "151"
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
@@ -87,22 +95,21 @@ class CoreRecipeInfo(RecipeInfoCommon):
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.packages:
self.packages.append(self.pn)
self.basetaskhashes = self.taskvar('BB_BASEHASH', self.tasks, metadata)
self.hashfilename = self.getvar('BB_HASHFILENAME', metadata)
@@ -118,15 +125,18 @@ class CoreRecipeInfo(RecipeInfoCommon):
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)
self.fakerootenv = self.getvar('FAKEROOTENV', metadata)
self.fakerootdirs = self.getvar('FAKEROOTDIRS', metadata)
self.fakerootlogs = self.getvar('FAKEROOTLOGS', metadata)
self.fakerootnoenv = self.getvar('FAKEROOTNOENV', metadata)
self.extradepsfunc = self.getvar('calculate_extra_depends', metadata)
@@ -164,7 +174,6 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.fakerootenv = {}
cachedata.fakerootnoenv = {}
cachedata.fakerootdirs = {}
cachedata.fakerootlogs = {}
cachedata.extradepsfunc = {}
def add_cacheData(self, cachedata, fn):
@@ -214,10 +223,10 @@ class CoreRecipeInfo(RecipeInfoCommon):
# 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.debug2("EXCLUDE FROM WORLD: %s", fn)
# create a collection of all targets for sanity checking
# tasks, such as upstream versions, license, and tools for
@@ -226,14 +235,13 @@ 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
cachedata.fakerootenv[fn] = self.fakerootenv
cachedata.fakerootnoenv[fn] = self.fakerootnoenv
cachedata.fakerootdirs[fn] = self.fakerootdirs
cachedata.fakerootlogs[fn] = self.fakerootlogs
cachedata.extradepsfunc[fn] = self.extradepsfunc
def virtualfn2realfn(virtualfn):
@@ -241,7 +249,7 @@ def virtualfn2realfn(virtualfn):
Convert a virtual file name to a real one + the associated subclass keyword
"""
mc = ""
if virtualfn.startswith('mc:') and virtualfn.count(':') >= 2:
if virtualfn.startswith('multiconfig:'):
elems = virtualfn.split(':')
mc = elems[1]
virtualfn = ":".join(elems[2:])
@@ -262,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):
@@ -271,11 +279,11 @@ def variant2virtual(realfn, variant):
"""
if variant == "":
return realfn
if variant.startswith("mc:") and variant.count(':') >= 2:
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=''):
@@ -326,12 +334,12 @@ class NoCache(object):
Return a complete set of data for fn.
To do this, we need to parse the file.
"""
logger.debug("Parsing %s (full)" % virtualfn)
logger.debug(1, "Parsing %s (full)" % virtualfn)
(fn, virtual, mc) = virtualfn2realfn(virtualfn)
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
@@ -344,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)
@@ -357,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
@@ -365,15 +369,14 @@ 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)
self.caches_array = caches_array
self.cachedir = data.getVar("CACHE")
self.clean = set()
@@ -382,81 +385,48 @@ class Cache(NoCache):
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("Cache dir: %s", self.cachedir)
logger.debug(1, "Cache dir: %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.debug2("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...")
logger.info("Out of date cache found, rebuilding...")
else:
self.logger.debug("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.debug(1, "Cache file %s not found, building..." % self.cachefile)
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 = 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 = self.getCacheFile(cache_class.cachefile)
self.logger.debug('Loading cache file: %s' % cachefile)
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
logger.debug(1, 'Loading cache file: %s' % cachefile)
with open(cachefile, "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
# Check cache version information
@@ -464,15 +434,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
@@ -495,17 +465,29 @@ 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)
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),
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("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
@@ -557,7 +539,7 @@ class Cache(NoCache):
cached, infos = self.load(fn, appends)
for virtualfn, info_array in infos:
if info_array[0].skipped:
self.logger.debug("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)
@@ -593,21 +575,21 @@ class Cache(NoCache):
# File isn't in depends_cache
if not fn in self.depends_cache:
self.logger.debug2("%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.debug2("%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.debug2("%s changed", fn)
logger.debug(2, "Cache: %s changed", fn)
self.remove(fn)
return False
@@ -618,37 +600,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.debug2("%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.debug2("%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.debug2("%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.debug2("appends for %s changed", fn)
self.logger.debug2("%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
@@ -657,10 +647,10 @@ class Cache(NoCache):
virtualfn = variant2virtual(fn, cls)
self.clean.add(virtualfn)
if virtualfn not in self.depends_cache:
self.logger.debug2("%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.debug2("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
@@ -668,10 +658,10 @@ class Cache(NoCache):
for cls in info_array[0].variants:
virtualfn = variant2virtual(fn, cls)
if virtualfn in self.clean:
self.logger.debug2("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.debug2("Marking %s as not clean", fn)
logger.debug(2, "Cache: Marking %s as not clean", fn)
self.clean.remove(fn)
return False
@@ -684,10 +674,10 @@ class Cache(NoCache):
Called from the parser in error cases
"""
if fn in self.depends_cache:
self.logger.debug("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("Marking %s as unclean", fn)
logger.debug(1, "Marking %s as unclean", fn)
self.clean.remove(fn)
def sync(self):
@@ -700,13 +690,12 @@ class Cache(NoCache):
return
if self.cacheclean:
self.logger.debug2("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.debug2("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__)
@@ -725,18 +714,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)
@@ -761,61 +740,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):
"""
@@ -882,7 +806,7 @@ class MultiProcessCache(object):
bb.utils.mkdirhier(cachedir)
self.cachefile = os.path.join(cachedir,
cache_file_name or self.__class__.cache_file_name)
logger.debug("Using cache in '%s'", self.cachefile)
logger.debug(1, "Using cache in '%s'", self.cachefile)
glf = bb.utils.lockfile(self.cachefile + ".lock")
@@ -965,56 +889,3 @@ class MultiProcessCache(object):
p.dump([data, self.__class__.CACHE_VERSION])
bb.utils.unlockfile(glf)
class SimpleCache(object):
"""
BitBake multi-process cache implementation
Used by the codeparser & file checksum caches
"""
def __init__(self, version):
self.cachefile = None
self.cachedata = None
self.cacheversion = version
def init_cache(self, d, cache_file_name=None, defaultdata=None):
cachedir = (d.getVar("PERSISTENT_DIR") or
d.getVar("CACHE"))
if not cachedir:
return defaultdata
bb.utils.mkdirhier(cachedir)
self.cachefile = os.path.join(cachedir,
cache_file_name or self.__class__.cache_file_name)
logger.debug("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,7 +1,3 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
BitBake code parser
@@ -25,17 +21,19 @@ 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 +54,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 = {}
@@ -122,7 +140,7 @@ class CodeParserCache(MultiProcessCache):
# 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 = 9
def __init__(self):
MultiProcessCache.__init__(self)
@@ -196,7 +214,7 @@ class BufferedLogger(Logger):
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")
@@ -212,9 +230,9 @@ class PythonParser():
funcstr = codegen.to_source(func)
argstr = codegen.to_source(arg)
except TypeError:
self.log.debug2('Failed to convert function and argument to source form')
self.log.debug(2, 'Failed to convert function and argument to source form')
else:
self.log.debug(self.unhandled_message % (funcstr, argstr))
self.log.debug(1, self.unhandled_message % (funcstr, argstr))
def visit_Call(self, node):
name = self.called_node_name(node.func)
@@ -350,9 +368,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)
@@ -450,7 +467,7 @@ class ShellParser():
cmd = word[1]
if cmd.startswith("$"):
self.log.debug(self.unhandled_template % cmd)
self.log.debug(1, self.unhandled_template % cmd)
elif cmd == "eval":
command = " ".join(word for _, word in words[1:])
self._parse_shell(command)

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.
@@ -54,25 +64,18 @@ class Command:
self.cooker = cooker
self.cmds_sync = CommandsSync()
self.cmds_async = CommandsAsync()
self.remotedatastores = None
self.remotedatastores = bb.remotedata.RemoteDatastores(cooker)
# 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()
@@ -81,12 +84,8 @@ class Command:
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,7 +94,7 @@ 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):
@@ -147,8 +146,13 @@ class Command:
self.cooker.finishcommand()
def reset(self):
if self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
def split_mc_pn(pn):
if pn.startswith("multiconfig:"):
_, mc, pn = pn.split(":", 2)
return (mc, pn)
return ('', pn)
class CommandsSync:
"""
@@ -238,11 +242,7 @@ class CommandsSync:
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):
@@ -405,50 +405,30 @@ class CommandsSync:
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))
skipdict = OrderedDict(sorted(command.cooker.skiplist.items(),
key=lambda x: (-command.cooker.collection.calc_bbfile_priority(bb.cache.virtualfn2realfn(x[0])[0]), x[0])))
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())
return list(command.cooker.collection.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)
return command.cooker.collection.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
return command.cooker.collection.bbappends
getAllAppends.readonly = True
def findProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.findProviders(mc)
return command.cooker.findProviders()
findProviders.readonly = True
def findBestProvider(self, command, params):
(mc, pn) = bb.runqueue.split_mc(params[0])
(mc, pn) = split_mc_pn(params[0])
return command.cooker.findBestProvider(pn, mc)
findBestProvider.readonly = True
@@ -476,38 +456,54 @@ class CommandsSync:
return all_p, best
getRuntimeProviders.readonly = True
def dataStoreConnectorCmd(self, command, params):
def dataStoreConnectorFindVar(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
name = params[1]
datastore = command.remotedatastores[dsindex]
value, overridedata = datastore._findVar(name)
d = command.remotedatastores[dsindex]
ret = getattr(d, method)(*args, **kwargs)
if value:
content = value.get('_content', None)
if isinstance(content, bb.data_smart.DataSmart):
# Value is a datastore (e.g. BB_ORIGENV) - need to handle this carefully
idx = command.remotedatastores.check_store(content, True)
return {'_content': DataStoreConnectionHandle(idx),
'_connector_origtype': 'DataStoreConnectionHandle',
'_connector_overrides': overridedata}
elif isinstance(content, set):
return {'_content': list(content),
'_connector_origtype': 'set',
'_connector_overrides': overridedata}
else:
value['_connector_overrides'] = overridedata
else:
value = {}
value['_connector_overrides'] = overridedata
return value
dataStoreConnectorFindVar.readonly = True
if isinstance(ret, bb.data_smart.DataSmart):
idx = command.remotedatastores.store(ret)
return DataStoreConnectionHandle(idx)
return ret
def dataStoreConnectorVarHistCmd(self, command, params):
def dataStoreConnectorGetKeys(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
datastore = command.remotedatastores[dsindex]
return list(datastore.keys())
dataStoreConnectorGetKeys.readonly = True
d = command.remotedatastores[dsindex].varhistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorIncHistCmd(self, command, params):
def dataStoreConnectorGetVarHistory(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
name = params[1]
datastore = command.remotedatastores[dsindex]
return datastore.varhistory.variable(name)
dataStoreConnectorGetVarHistory.readonly = True
d = command.remotedatastores[dsindex].inchistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorExpandPythonRef(self, command, params):
config_data_dict = params[0]
varname = params[1]
expr = params[2]
config_data = command.remotedatastores.receive_datastore(config_data_dict)
varparse = bb.data_smart.VariableParse(varname, config_data)
return varparse.python_sub(expr)
def dataStoreConnectorRelease(self, command, params):
dsindex = params[0]
@@ -515,6 +511,31 @@ class CommandsSync:
raise CommandError('dataStoreConnectorRelease: invalid index %d' % dsindex)
command.remotedatastores.release(dsindex)
def dataStoreConnectorSetVarFlag(self, command, params):
dsindex = params[0]
name = params[1]
flag = params[2]
value = params[3]
datastore = command.remotedatastores[dsindex]
datastore.setVarFlag(name, flag, value)
def dataStoreConnectorDelVar(self, command, params):
dsindex = params[0]
name = params[1]
datastore = command.remotedatastores[dsindex]
if len(params) > 2:
flag = params[2]
datastore.delVarFlag(name, flag)
else:
datastore.delVar(name)
def dataStoreConnectorRenameVar(self, command, params):
dsindex = params[0]
name = params[1]
newname = params[2]
datastore = command.remotedatastores[dsindex]
datastore.renameVar(name, newname)
def parseRecipeFile(self, command, params):
"""
Parse the specified recipe file (with or without bbappends)
@@ -522,11 +543,11 @@ class CommandsSync:
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]]
config_data_dict = params[3]
config_data = command.remotedatastores.receive_datastore(config_data_dict)
else:
config_data = None
@@ -534,7 +555,7 @@ class CommandsSync:
if appendlist is not None:
appendfiles = appendlist
else:
appendfiles = command.cooker.collections[mc].get_file_appends(fn)
appendfiles = command.cooker.collection.get_file_appends(fn)
else:
appendfiles = []
# We are calling bb.cache locally here rather than on the server,
@@ -544,7 +565,7 @@ class CommandsSync:
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)['']
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles)['']
else:
# Use the standard path
parser = bb.cache.NoCache(command.cooker.databuilder)
@@ -735,10 +756,10 @@ class CommandsAsync:
"""
Find signature info files via the signature generator
"""
(mc, pn) = bb.runqueue.split_mc(params[0])
pn = 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])
res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.data)
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.data)
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,8 +35,8 @@ 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 []
@@ -58,18 +70,11 @@ 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"]:
"verbose", "debug", "dry_run", "dump_signatures",
"debug_domains", "extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout"]:
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])
if error:
raise Exception("Unable to update the server configuration with local parameters: %s" % error)
@@ -118,35 +123,47 @@ 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.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.xmlrpcinterface = []
self.server_timeout = None
self.writeeventlog = False
self.server_only = 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()
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):
@@ -164,7 +181,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 +193,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
@@ -209,7 +226,7 @@ def findConfigFile(configfile, data):
return None
#
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
# 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.
#
@@ -262,13 +279,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,7 +302,7 @@ 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()
@@ -294,19 +310,17 @@ class CookerDataBuilder(object):
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()
raise bb.BBHandledException
# Create a copy so we can reset at a later date when UIs disconnect
self.origdata = self.data
@@ -340,24 +354,14 @@ class CookerDataBuilder(object):
data = parse_config_file(layerconf, data)
layers = (data.getVar('BBLAYERS') or "").split()
broken_layers = []
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)
@@ -381,20 +385,13 @@ class CookerDataBuilder(object):
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):
if l in collections:
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))
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)"
@@ -427,9 +424,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, data)
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))

View File

@@ -1,7 +1,3 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
Python Daemonizing helper
@@ -14,18 +10,12 @@ import sys
import io
import traceback
import bb
def createDaemon(function, logfile):
"""
Detach a process from the controlling terminal and run it in the
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
@@ -59,8 +49,8 @@ def createDaemon(function, logfile):
# 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
# 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().
os._exit(0)
@@ -71,19 +61,17 @@ def createDaemon(function, logfile):
# The second child.
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
si = open('/dev/null', 'r')
os.dup2(si.fileno(), sys.stdin.fileno())
try:
so = open(logfile, 'a+')
se = so
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(so.fileno(), sys.stderr.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
except io.UnsupportedOperation:
sys.stdout = open(logfile, 'a+')
# Have stdout and stderr be the same so log output matches chronologically
# and there aren't two seperate buffers
sys.stderr = sys.stdout
sys.stderr = sys.stdout
try:
function()
@@ -91,9 +79,4 @@ def createDaemon(function, logfile):
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)

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:
@@ -79,7 +91,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 = {}
@@ -130,7 +142,7 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
if all:
oval = d.getVar(var, False)
val = d.getVar(var)
except (KeyboardInterrupt):
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 +173,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))
@@ -277,12 +283,14 @@ 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.getVarFlag(key, "_content", False)
def handle_contains(value, contains, d):
newvalue = ""
@@ -301,34 +309,25 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
return newvalue
return value + newvalue
def handle_remove(value, deps, removes, d):
for r in sorted(removes):
r2 = d.expandWithRefs(r, None)
value += "\n_remove of %s" % r
deps |= r2.references
deps = deps | (keys & r2.execs)
return value
if "vardepvalue" in varflags:
value = varflags.get("vardepvalue")
value = varflags.get("vardepvalue")
elif varflags.get("func"):
if varflags.get("python"):
value = d.getVarFlag(key, "_content", False)
parser = bb.codeparser.PythonParser(key, logger)
if value and "\t" in value:
logger.warning("Variable %s contains tabs, please remove these (%s)" % (key, d.getVar("FILE")))
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 +337,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")
@@ -371,7 +368,7 @@ 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))
@@ -386,7 +383,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 +394,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)

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 Smart Dictionary Implementation
@@ -12,8 +14,18 @@ BitBake build tools.
# Copyright (C) 2005 Uli Luckas
# 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.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import copy, re, sys, traceback
@@ -27,11 +39,9 @@ from bb.COW import COWDictBase
logger = logging.getLogger("BitBake.Data")
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~]+?}")
__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
__expand_var_regexp__ = re.compile(r"\${[^{}@\n\t :]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
__whitespace_split__ = re.compile(r'(\s)')
__override_regexp__ = re.compile(r'[a-z0-9]+')
def infer_caller_details(loginfo, parent = False, varval = True):
"""Save the caller the trouble of specifying everything."""
@@ -94,7 +104,11 @@ class VariableParse:
if self.varname and key:
if self.varname == key:
raise Exception("variable %s references itself!" % self.varname)
var = self.d.getVarFlag(key, "_content")
if key in self.d.expand_cache:
varparse = self.d.expand_cache[key]
var = varparse.value
else:
var = self.d.getVarFlag(key, "_content")
self.references.add(key)
if var is not None:
return var
@@ -107,11 +121,11 @@ class VariableParse:
else:
code = match.group()[3:-1]
if self.varname:
varname = 'Var <%s>' % self.varname
else:
varname = '<expansion>'
codeobj = compile(code.strip(), varname, "eval")
if "_remote_data" in self.d:
connector = self.d["_remote_data"]
return connector.expandPythonRef(self.varname, code, self.d)
codeobj = compile(code.strip(), self.varname or "<expansion>", "eval")
parser = bb.codeparser.PythonParser(self.varname, logger)
parser.parse_python(code)
@@ -189,7 +203,7 @@ class IncludeHistory(object):
if self.current.parent:
self.current = self.current.parent
else:
bb.warn("Include log: Tried to finish '%s' at top level." % self.filename)
bb.warn("Include log: Tried to finish '%s' at top level." % filename)
return False
def emit(self, o, level = 0):
@@ -253,18 +267,13 @@ class VariableHistory(object):
return
self.variables[var].append(loginfo.copy())
def rename_variable_hist(self, oldvar, newvar):
if not self.dataroot._tracking:
return
if oldvar not in self.variables:
return
if newvar not in self.variables:
self.variables[newvar] = []
for i in self.variables[oldvar]:
self.variables[newvar].append(i.copy())
def variable(self, var):
varhistory = []
remote_connector = self.dataroot.getVar('_remote_data', False)
if remote_connector:
varhistory = remote_connector.getVarHistory(var)
else:
varhistory = []
if var in self.variables:
varhistory.extend(self.variables[var])
return varhistory
@@ -329,12 +338,11 @@ class VariableHistory(object):
lines.append(line)
return lines
def get_variable_items_files(self, var):
def get_variable_items_files(self, var, d):
"""
Use variable history to map items added to a list variable and
the files in which they were added.
"""
d = self.dataroot
history = self.variable(var)
finalitems = (d.getVar(var) or '').split()
filemap = {}
@@ -393,6 +401,9 @@ class DataSmart(MutableMapping):
if not isinstance(s, str): # sanity check
return VariableParse(varname, self, s)
if varname and varname in self.expand_cache:
return self.expand_cache[varname]
varparse = VariableParse(varname, self)
while s.find('${') != -1:
@@ -412,11 +423,13 @@ class DataSmart(MutableMapping):
except bb.parse.SkipRecipe:
raise
except Exception as exc:
tb = sys.exc_info()[2]
raise ExpansionError(varname, s, exc).with_traceback(tb) from exc
raise ExpansionError(varname, s, exc) from exc
varparse.value = s
if varname:
self.expand_cache[varname] = varparse
return varparse
def expand(self, s, varname = None):
@@ -462,6 +475,10 @@ class DataSmart(MutableMapping):
if var in dest:
return dest[var], self.overridedata.get(var, None)
if "_remote_data" in dest:
connector = dest["_remote_data"]["_content"]
return connector.getVar(var)
if "_data" not in dest:
break
dest = dest["_data"]
@@ -481,14 +498,19 @@ class DataSmart(MutableMapping):
def setVar(self, var, value, **loginfo):
#print("var=" + str(var) + " val=" + str(value))
self.expand_cache = {}
parsing=False
if 'parsing' in loginfo:
parsing=True
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.setVar(var, value)
if not res:
return
if 'op' not in loginfo:
loginfo['op'] = "set"
self.expand_cache = {}
match = __setvar_regexp__.match(var)
if match and match.group("keyword") in __setvar_keyword__:
base = match.group('base')
@@ -568,7 +590,7 @@ class DataSmart(MutableMapping):
# aka pay the cookie monster
override = var[var.rfind('_')+1:]
shortvar = var[:var.rfind('_')]
while override and __override_regexp__.match(override):
while override and override.islower():
if shortvar not in self.overridedata:
self.overridedata[shortvar] = []
if [var, override] not in self.overridedata[shortvar]:
@@ -589,13 +611,14 @@ class DataSmart(MutableMapping):
"""
Rename the variable key to newkey
"""
if key == newkey:
bb.warn("Calling renameVar with equivalent keys (%s) is invalid" % key)
return
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.renameVar(key, newkey)
if not res:
return
val = self.getVar(key, 0, parsing=True)
if val is not None:
self.varhistory.rename_variable_hist(key, newkey)
loginfo['variable'] = newkey
loginfo['op'] = 'rename from %s' % key
loginfo['detail'] = val
@@ -637,11 +660,16 @@ class DataSmart(MutableMapping):
self.setVar(var + "_prepend", value, ignore=True, parsing=True)
def delVar(self, var, **loginfo):
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.delVar(var)
if not res:
return
loginfo['detail'] = ""
loginfo['op'] = 'del'
self.varhistory.record(**loginfo)
self.expand_cache = {}
self.dict[var] = {}
if var in self.overridedata:
del self.overridedata[var]
@@ -664,8 +692,13 @@ class DataSmart(MutableMapping):
override = None
def setVarFlag(self, var, flag, value, **loginfo):
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.setVarFlag(var, flag, value)
if not res:
return
self.expand_cache = {}
if 'op' not in loginfo:
loginfo['op'] = "set"
loginfo['flag'] = flag
@@ -686,21 +719,9 @@ class DataSmart(MutableMapping):
self.dict["__exportlist"]["_content"] = set()
self.dict["__exportlist"]["_content"].add(var)
def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False, retparser=False):
if flag == "_content":
cachename = var
else:
if not flag:
bb.warn("Calling getVarFlag with flag unset is invalid")
return None
cachename = var + "[" + flag + "]"
if expand and cachename in self.expand_cache:
return self.expand_cache[cachename].value
def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False):
local_var, overridedata = self._findVar(var)
value = None
removes = set()
if flag == "_content" and overridedata is not None and not parsing:
match = False
active = {}
@@ -727,11 +748,7 @@ class DataSmart(MutableMapping):
match = active[a]
del active[a]
if match:
value, subparser = self.getVarFlag(match, "_content", False, retparser=True)
if hasattr(subparser, "removes"):
# We have to carry the removes from the overridden variable to apply at the
# end of processing
removes = subparser.removes
value = self.getVar(match, False)
if local_var is not None and value is None:
if flag in local_var:
@@ -767,13 +784,17 @@ class DataSmart(MutableMapping):
if match:
value = r + value
parser = None
if expand or retparser:
parser = self.expandWithRefs(value, cachename)
if expand:
value = parser.value
if expand and value:
# Only getvar (flag == _content) hits the expand cache
cachename = None
if flag == "_content":
cachename = var
else:
cachename = var + "[" + flag + "]"
value = self.expand(value, cachename)
if value and flag == "_content" and local_var is not None and "_remove" in local_var and not parsing:
if value and flag == "_content" and local_var is not None and "_remove" in local_var:
removes = []
self.need_overrides()
for (r, o) in local_var["_remove"]:
match = True
@@ -782,40 +803,26 @@ class DataSmart(MutableMapping):
if not o2 in self.overrides:
match = False
if match:
removes.add(r)
if value and flag == "_content" and not parsing:
if removes and parser:
expanded_removes = {}
for r in removes:
expanded_removes[r] = self.expand(r).split()
parser.removes = set()
val = ""
for v in __whitespace_split__.split(parser.value):
skip = False
for r in removes:
if v in expanded_removes[r]:
parser.removes.add(r)
skip = True
if skip:
continue
val = val + v
parser.value = val
if expand:
value = parser.value
if parser:
self.expand_cache[cachename] = parser
if retparser:
return value, parser
removes.extend(self.expand(r).split())
if removes:
filtered = filter(lambda v: v not in removes,
value.split())
value = " ".join(filtered)
if expand and var in self.expand_cache:
# We need to ensure the expand cache has the correct value
# flag == "_content" here
self.expand_cache[var].value = value
return value
def delVarFlag(self, var, flag, **loginfo):
self.expand_cache = {}
if '_remote_data' in self.dict:
connector = self.dict["_remote_data"]["_content"]
res = connector.delVarFlag(var, flag)
if not res:
return
self.expand_cache = {}
local_var, _ = self._findVar(var)
if not local_var:
return
@@ -932,7 +939,7 @@ class DataSmart(MutableMapping):
def localkeys(self):
for key in self.dict:
if key not in ['_data']:
if key not in ['_data', '_remote_data']:
yield key
def __iter__(self):
@@ -941,7 +948,7 @@ class DataSmart(MutableMapping):
def keylist(d):
klist = set()
for key in d:
if key in ["_data"]:
if key in ["_data", "_remote_data"]:
continue
if key in deleted:
continue
@@ -955,6 +962,13 @@ class DataSmart(MutableMapping):
if "_data" in d:
klist |= keylist(d["_data"])
if "_remote_data" in d:
connector = d["_remote_data"]["_content"]
for key in connector.getKeys():
if key in deleted:
continue
klist.add(key)
return klist
self.need_overrides()
@@ -1000,12 +1014,9 @@ class DataSmart(MutableMapping):
continue
value = d.getVar(key, False) or ""
if type(value) is type(self):
data.update({key:value.get_hash()})
else:
data.update({key:value})
data.update({key:value})
varflags = d.getVarFlags(key, internalflags = True, expand=["vardepvalue"])
varflags = d.getVarFlags(key, internalflags = True)
if not varflags:
continue
for f in varflags:
@@ -1023,4 +1034,4 @@ class DataSmart(MutableMapping):
data.update({i:value})
data_str = str([(k, data[k]) for k in sorted(data.keys())])
return hashlib.sha256(data_str.encode("utf-8")).hexdigest()
return hashlib.md5(data_str.encode("utf-8")).hexdigest()

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 'Event' implementation
@@ -7,20 +9,31 @@ BitBake build tools.
# Copyright (C) 2003, 2004 Chris Larson
#
# 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 ast
import atexit
import collections
import logging
import os, sys
import warnings
import pickle
import sys
import threading
import logging
import atexit
import traceback
import ast
import threading
import bb.exceptions
import bb.utils
import bb.compat
import bb.exceptions
# This is the pid for which we should generate the event. This is set when
# the runqueue forks off.
@@ -56,7 +69,7 @@ def set_class_handlers(h):
_handlers = h
def clean_class_handlers():
return collections.OrderedDict()
return bb.compat.OrderedDict()
# Internal
_handlers = clean_class_handlers()
@@ -118,22 +131,16 @@ def fire_class_handlers(event, d):
if _eventfilter:
if not _eventfilter(name, handler, event, d):
continue
if d is not None and not name in (d.getVar("__BBHANDLERS_MC") or set()):
continue
execute_handler(name, handler, event, d)
ui_queue = []
@atexit.register
def print_ui_queue():
global ui_queue
"""If we're exiting before a UI has been spawned, display any queued
LogRecords to the console."""
logger = logging.getLogger("BitBake")
if not _uiready:
from bb.msg import BBLogFormatter
# Flush any existing buffered content
sys.stdout.flush()
sys.stderr.flush()
stdout = logging.StreamHandler(sys.stdout)
stderr = logging.StreamHandler(sys.stderr)
formatter = BBLogFormatter("%(levelname)s: %(message)s")
@@ -170,7 +177,6 @@ def print_ui_queue():
logger.removeHandler(stderr)
else:
logger.removeHandler(stdout)
ui_queue = []
def fire_ui_handlers(event, d):
global _thread_lock
@@ -229,19 +235,11 @@ def fire_from_worker(event, d):
fire_ui_handlers(event, d)
noop = lambda _: None
def register(name, handler, mask=None, filename=None, lineno=None, data=None):
def register(name, handler, mask=None, filename=None, lineno=None):
"""Register an Event handler"""
if data is not None and data.getVar("BB_CURRENT_MC"):
mc = data.getVar("BB_CURRENT_MC")
name = '%s%s' % (mc.replace('-', '_'), name)
# already registered
if name in _handlers:
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
bbhands_mc.add(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
return AlreadyRegistered
if handler is not None:
@@ -278,20 +276,10 @@ def register(name, handler, mask=None, filename=None, lineno=None, data=None):
_event_handler_map[m] = {}
_event_handler_map[m][name] = True
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
bbhands_mc.add(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
return Registered
def remove(name, handler, data=None):
def remove(name, handler):
"""Remove an Event handler"""
if data is not None:
if data.getVar("BB_CURRENT_MC"):
mc = data.getVar("BB_CURRENT_MC")
name = '%s%s' % (mc.replace('-', '_'), name)
_handlers.pop(name)
if name in _catchall_handlers:
_catchall_handlers.pop(name)
@@ -299,12 +287,6 @@ def remove(name, handler, data=None):
if name in _event_handler_map[event]:
_event_handler_map[event].pop(name)
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
if name in bbhands_mc:
bbhands_mc.remove(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
def get_handlers():
return _handlers
@@ -372,7 +354,7 @@ def set_UIHmask(handlerNum, level, debug_domains, mask):
def getName(e):
"""Returns the name of a class or class instance"""
if getattr(e, "__name__", None) is None:
if getattr(e, "__name__", None) == None:
return e.__class__.__name__
else:
return e.__name__
@@ -413,11 +395,7 @@ class RecipeEvent(Event):
Event.__init__(self)
class RecipePreFinalise(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
class RecipePostKeyExpansion(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
""" Recipe Parsing Complete but not yet finialised"""
class RecipeTaskPreProcess(RecipeEvent):
"""
@@ -433,6 +411,23 @@ class RecipeTaskPreProcess(RecipeEvent):
class RecipeParsed(RecipeEvent):
""" Recipe Parsing Complete """
class StampUpdate(Event):
"""Trigger for any adjustment of the stamp files to happen"""
def __init__(self, targets, stampfns):
self._targets = targets
self._stampfns = stampfns
Event.__init__(self)
def getStampPrefix(self):
return self._stampfns
def getTargets(self):
return self._targets
stampPrefix = property(getStampPrefix)
targets = property(getTargets)
class BuildBase(Event):
"""Base class for bitbake build events"""
@@ -538,7 +533,7 @@ class NoProvider(Event):
extra = ''
if not self._reasons:
if self._close_matches:
extra = ". Close matches:\n %s" % '\n '.join(sorted(set(self._close_matches)))
extra = ". Close matches:\n %s" % '\n '.join(self._close_matches)
if self._dependees:
msg = "Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)%s" % (r, self._item, ", ".join(self._dependees), r, extra)
@@ -670,17 +665,6 @@ class ReachableStamps(Event):
Event.__init__(self)
self.stamps = stamps
class StaleSetSceneTasks(Event):
"""
An event listing setscene tasks which are 'stale' and will
be rerun. The metadata may use to clean up stale data.
tasks is a mapping of tasks and matching stale stamps.
"""
def __init__(self, tasks):
Event.__init__(self)
self.tasks = tasks
class FilesMatchingFound(Event):
"""
Event when a list of files matching the supplied pattern has

View File

@@ -1,6 +1,3 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import inspect
import traceback

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 'Fetch' implementations
@@ -8,7 +10,18 @@ BitBake build tools.
# Copyright (C) 2003, 2004 Chris Larson
# 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.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
@@ -33,9 +46,6 @@ _checksum_cache = bb.checksum.FileChecksumCache()
logger = logging.getLogger("BitBake.Fetcher")
CHECKSUM_LIST = [ "md5", "sha256", "sha1", "sha384", "sha512" ]
SHOWN_CHECKSUM_LIST = ["sha256"]
class BBFetchException(Exception):
"""Class all fetch exceptions inherit from"""
def __init__(self, message):
@@ -134,9 +144,10 @@ class NonLocalMethod(Exception):
Exception.__init__(self)
class MissingChecksumEvent(bb.event.Event):
def __init__(self, url, **checksums):
def __init__(self, url, md5sum, sha256sum):
self.url = url
self.checksums = checksums
self.checksums = {'md5sum': md5sum,
'sha256sum': sha256sum}
bb.event.Event.__init__(self)
@@ -245,7 +256,7 @@ class URI(object):
# Identify if the URI is relative or not
if urlp.scheme in self._relative_schemes and \
re.compile(r"^\w+:(?!//)").match(uri):
re.compile("^\w+:(?!//)").match(uri):
self.relative = True
if not self.relative:
@@ -290,7 +301,7 @@ class URI(object):
def _param_str_split(self, string, elmdelim, kvdelim="="):
ret = collections.OrderedDict()
for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim) if x]:
for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim)]:
ret[k] = v
return ret
@@ -372,7 +383,7 @@ def decodeurl(url):
path = location
else:
host = location
path = "/"
path = ""
if user:
m = re.compile('(?P<user>[^:]+)(:?(?P<pswd>.*))').match(user)
if m:
@@ -428,7 +439,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
uri_decoded = list(decodeurl(ud.url))
uri_find_decoded = list(decodeurl(uri_find))
uri_replace_decoded = list(decodeurl(uri_replace))
logger.debug2("For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
logger.debug(2, "For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
result_decoded = ['', '', '', '', '', {}]
for loc, i in enumerate(uri_find_decoded):
result_decoded[loc] = uri_decoded[loc]
@@ -441,8 +452,8 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
# Handle URL parameters
if i:
# Any specified URL parameters must match
for k in uri_find_decoded[loc]:
if uri_decoded[loc][k] != uri_find_decoded[loc][k]:
for k in uri_replace_decoded[loc]:
if uri_decoded[loc][k] != uri_replace_decoded[loc][k]:
return None
# Overwrite any specified replacement parameters
for k in uri_replace_decoded[loc]:
@@ -474,7 +485,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
result = encodeurl(result_decoded)
if result == ud.url:
return None
logger.debug2("For url %s returning %s" % (ud.url, result))
logger.debug(2, "For url %s returning %s" % (ud.url, result))
return result
methods = []
@@ -486,22 +497,17 @@ def fetcher_init(d):
Called to initialize the fetchers once the configuration data is known.
Calls before this must not hit the cache.
"""
revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
try:
# fetcher_init is called multiple times, so make sure we only save the
# revs the first time it is called.
if not bb.fetch2.saved_headrevs:
bb.fetch2.saved_headrevs = dict(revs)
except:
pass
# When to drop SCM head revisions controlled by user policy
srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
if srcrev_policy == "cache":
logger.debug("Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
logger.debug(1, "Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
elif srcrev_policy == "clear":
logger.debug("Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
logger.debug(1, "Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
try:
bb.fetch2.saved_headrevs = revs.items()
except:
pass
revs.clear()
else:
raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
@@ -518,14 +524,24 @@ def fetcher_parse_save():
def fetcher_parse_done():
_checksum_cache.save_merge()
def fetcher_compare_revisions(d):
def fetcher_compare_revisions():
"""
Compare the revisions in the persistent cache with the saved values from
when bitbake was started and return true if they have changed.
Compare the revisions in the persistant cache with current values and
return true/false on whether they've changed.
"""
headrevs = dict(bb.persist_data.persist('BB_URI_HEADREVS', d))
return headrevs != bb.fetch2.saved_headrevs
data = bb.persist_data.persist('BB_URI_HEADREVS', d).items()
data2 = bb.fetch2.saved_headrevs
changed = False
for key in data:
if key not in data2 or data2[key] != data[key]:
logger.debug(1, "%s changed", key)
changed = True
return True
else:
logger.debug(2, "%s did not change", key)
return False
def mirror_from_string(data):
mirrors = (data or "").replace('\\n',' ').split()
@@ -549,87 +565,71 @@ def verify_checksum(ud, d, precomputed={}):
downloading. See https://bugzilla.yoctoproject.org/show_bug.cgi?id=5571.
"""
_MD5_KEY = "md5"
_SHA256_KEY = "sha256"
if ud.ignore_checksums or not ud.method.supports_checksum(ud):
return {}
def compute_checksum_info(checksum_id):
checksum_name = getattr(ud, "%s_name" % checksum_id)
if _MD5_KEY in precomputed:
md5data = precomputed[_MD5_KEY]
else:
md5data = bb.utils.md5_file(ud.localpath)
if checksum_id in precomputed:
checksum_data = precomputed[checksum_id]
else:
checksum_data = getattr(bb.utils, "%s_file" % checksum_id)(ud.localpath)
checksum_expected = getattr(ud, "%s_expected" % checksum_id)
if checksum_expected == '':
checksum_expected = None
return {
"id": checksum_id,
"name": checksum_name,
"data": checksum_data,
"expected": checksum_expected
}
checksum_infos = []
for checksum_id in CHECKSUM_LIST:
checksum_infos.append(compute_checksum_info(checksum_id))
checksum_dict = {ci["id"] : ci["data"] for ci in checksum_infos}
checksum_event = {"%ssum" % ci["id"] : ci["data"] for ci in checksum_infos}
for ci in checksum_infos:
if ci["id"] in SHOWN_CHECKSUM_LIST:
checksum_lines = ["SRC_URI[%s] = \"%s\"" % (ci["name"], ci["data"])]
# If no checksum has been provided
if ud.method.recommends_checksum(ud) and all(ci["expected"] is None for ci in checksum_infos):
messages = []
strict = d.getVar("BB_STRICT_CHECKSUM") or "0"
if _SHA256_KEY in precomputed:
sha256data = precomputed[_SHA256_KEY]
else:
sha256data = bb.utils.sha256_file(ud.localpath)
if ud.method.recommends_checksum(ud) and not ud.md5_expected and not ud.sha256_expected:
# If strict checking enabled and neither sum defined, raise error
strict = d.getVar("BB_STRICT_CHECKSUM") or "0"
if strict == "1":
messages.append("No checksum specified for '%s', please add at " \
"least one to the recipe:" % ud.localpath)
messages.extend(checksum_lines)
logger.error("\n".join(messages))
raise NoChecksumError("Missing SRC_URI checksum", ud.url)
logger.error('No checksum specified for %s, please add at least one to the recipe:\n'
'SRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"' %
(ud.localpath, ud.md5_name, md5data,
ud.sha256_name, sha256data))
raise NoChecksumError('Missing SRC_URI checksum', ud.url)
bb.event.fire(MissingChecksumEvent(ud.url, **checksum_event), d)
bb.event.fire(MissingChecksumEvent(ud.url, md5data, sha256data), d)
if strict == "ignore":
return checksum_dict
return {
_MD5_KEY: md5data,
_SHA256_KEY: sha256data
}
# Log missing sums so user can more easily add them
messages.append("Missing checksum for '%s', consider adding at " \
"least one to the recipe:" % ud.localpath)
messages.extend(checksum_lines)
logger.warning("\n".join(messages))
logger.warning('Missing md5 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.md5_name, md5data)
logger.warning('Missing sha256 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.sha256_name, sha256data)
# We want to alert the user if a checksum is defined in the recipe but
# it does not match.
messages = []
messages.append("Checksum mismatch!")
bad_checksum = None
msg = ""
mismatch = False
if ud.md5_expected and ud.md5_expected != md5data:
msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'md5', md5data, ud.md5_expected)
mismatch = True;
for ci in checksum_infos:
if ci["expected"] and ci["expected"] != ci["data"]:
messages.append("File: '%s' has %s checksum '%s' when '%s' was " \
"expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"]))
bad_checksum = ci["data"]
if ud.sha256_expected and ud.sha256_expected != sha256data:
msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected)
mismatch = True;
if bad_checksum:
messages.append("If this change is expected (e.g. you have upgraded " \
"to a new version without updating the checksums) " \
"then you can use these lines within the recipe:")
messages.extend(checksum_lines)
messages.append("Otherwise you should retry the download and/or " \
"check with upstream to determine if the file has " \
"become corrupted or otherwise unexpectedly modified.")
raise ChecksumError("\n".join(messages), ud.url, bad_checksum)
if mismatch:
msg = msg + '\nIf this change is expected (e.g. you have upgraded to a new version without updating the checksums) then you can use these lines within the recipe:\nSRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"\nOtherwise you should retry the download and/or check with upstream to determine if the file has become corrupted or otherwise unexpectedly modified.\n' % (ud.md5_name, md5data, ud.sha256_name, sha256data)
if len(msg):
raise ChecksumError('Checksum mismatch!%s' % msg, ud.url, md5data)
return {
_MD5_KEY: md5data,
_SHA256_KEY: sha256data
}
return checksum_dict
def verify_donestamp(ud, d, origud=None):
"""
@@ -777,8 +777,7 @@ def get_srcrev(d, method_name='sortable_revision'):
#
format = d.getVar('SRCREV_FORMAT')
if not format:
raise FetchError("The SRCREV_FORMAT variable must be set when multiple SCMs are used.\n"\
"The SCMs are:\n%s" % '\n'.join(scms))
raise FetchError("The SRCREV_FORMAT variable must be set when multiple SCMs are used.")
name_to_rev = {}
seenautoinc = False
@@ -828,7 +827,6 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
'NO_PROXY', 'no_proxy',
'ALL_PROXY', 'all_proxy',
'GIT_PROXY_COMMAND',
'GIT_SSH',
'GIT_SSL_CAINFO',
'GIT_SMART_HTTP',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
@@ -839,16 +837,14 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
if not cleanup:
cleanup = []
# If PATH contains WORKDIR which contains PV-PR which contains SRCPV we
# If PATH contains WORKDIR which contains PV which contains SRCPV we
# can end up in circular recursion here so give the option of breaking it
# in a data store copy.
try:
d.getVar("PV")
d.getVar("PR")
except bb.data_smart.ExpansionError:
d = bb.data.createCopy(d)
d.setVar("PV", "fetcheravoidrecurse")
d.setVar("PR", "fetcheravoidrecurse")
origenv = d.getVar("BB_ORIGENV", False)
for var in exportvars:
@@ -859,10 +855,7 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
# Disable pseudo as it may affect ssh, potentially causing it to hang.
cmd = 'export PSEUDO_DISABLED=1; ' + cmd
if workdir:
logger.debug("Running '%s' in %s" % (cmd, workdir))
else:
logger.debug("Running %s", cmd)
logger.debug(1, "Running %s", cmd)
success = False
error_message = ""
@@ -898,12 +891,12 @@ def check_network_access(d, info, url):
log remote network access, and error if BB_NO_NETWORK is set or the given
URI is untrusted
"""
if bb.utils.to_boolean(d.getVar("BB_NO_NETWORK")):
if d.getVar("BB_NO_NETWORK") == "1":
raise NetworkAccess(url, info)
elif not trusted_network(d, url):
raise UntrustedUrl(url, info)
else:
logger.debug("Fetcher accessed the network with the command %s" % info)
logger.debug(1, "Fetcher accessed the network with the command %s" % info)
def build_mirroruris(origud, mirrors, ld):
uris = []
@@ -929,7 +922,7 @@ def build_mirroruris(origud, mirrors, ld):
continue
if not trusted_network(ld, newuri):
logger.debug("Mirror %s not in the list of trusted networks, skipping" % (newuri))
logger.debug(1, "Mirror %s not in the list of trusted networks, skipping" % (newuri))
continue
# Create a local copy of the mirrors minus the current line
@@ -942,8 +935,8 @@ def build_mirroruris(origud, mirrors, ld):
newud = FetchData(newuri, ld)
newud.setup_localpath(ld)
except bb.fetch2.BBFetchException as e:
logger.debug("Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(str(e))
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
# setup_localpath of file:// urls may fail, we should still see
# if mirrors of the url exist
@@ -970,8 +963,7 @@ def rename_bad_checksum(ud, suffix):
new_localpath = "%s_bad-checksum_%s" % (ud.localpath, suffix)
bb.warn("Renaming %s to %s" % (ud.localpath, new_localpath))
if not bb.utils.movefile(ud.localpath, new_localpath):
bb.warn("Renaming %s to %s failed, grep movefile in log.do_fetch to see why" % (ud.localpath, new_localpath))
bb.utils.movefile(ud.localpath, new_localpath)
def try_mirror_url(fetch, origud, ud, ld, check = False):
@@ -1024,7 +1016,16 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
origud.method.build_mirror_data(origud, ld)
return origud.localpath
# Otherwise the result is a local file:// and we symlink to it
ensure_symlink(ud.localpath, origud.localpath)
if not os.path.exists(origud.localpath):
if os.path.islink(origud.localpath):
# Broken symbolic link
os.unlink(origud.localpath)
# As per above, in case two tasks end up here simultaneously.
try:
os.symlink(ud.localpath, origud.localpath)
except FileExistsError:
pass
update_stamp(origud, ld)
return ud.localpath
@@ -1032,7 +1033,7 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
raise
except IOError as e:
if e.errno in [errno.ESTALE]:
if e.errno in [os.errno.ESTALE]:
logger.warning("Stale Error Observed %s." % ud.url)
return False
raise
@@ -1046,8 +1047,8 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
elif isinstance(e, NoChecksumError):
raise
else:
logger.debug("Mirror fetch failure for url %s (original url: %s)" % (ud.url, origud.url))
logger.debug(str(e))
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (ud.url, origud.url))
logger.debug(1, str(e))
try:
ud.method.clean(ud, ld)
except UnboundLocalError:
@@ -1058,22 +1059,6 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
bb.utils.unlockfile(lf)
def ensure_symlink(target, link_name):
if not os.path.exists(link_name):
if os.path.islink(link_name):
# Broken symbolic link
os.unlink(link_name)
# In case this is executing without any file locks held (as is
# the case for file:// URLs), two tasks may end up here at the
# same time, in which case we do not want the second task to
# fail when the link has already been created by the first task.
try:
os.symlink(target, link_name)
except FileExistsError:
pass
def try_mirrors(fetch, d, origud, mirrors, check = False):
"""
Try to use a mirrored version of the sources.
@@ -1089,7 +1074,7 @@ def try_mirrors(fetch, d, origud, mirrors, check = False):
for index, uri in enumerate(uris):
ret = try_mirror_url(fetch, origud, uds[index], ld, check)
if ret:
if ret != False:
return ret
return None
@@ -1099,13 +1084,11 @@ def trusted_network(d, url):
BB_ALLOWED_NETWORKS is set globally or for a specific recipe.
Note: modifies SRC_URI & mirrors.
"""
if bb.utils.to_boolean(d.getVar("BB_NO_NETWORK")):
if d.getVar('BB_NO_NETWORK') == "1":
return True
pkgname = d.expand(d.getVar('PN', False))
trusted_hosts = None
if pkgname:
trusted_hosts = d.getVarFlag('BB_ALLOWED_NETWORKS', pkgname, False)
trusted_hosts = d.getVarFlag('BB_ALLOWED_NETWORKS', pkgname, False)
if not trusted_hosts:
trusted_hosts = d.getVar('BB_ALLOWED_NETWORKS')
@@ -1193,6 +1176,8 @@ def get_checksum_file_list(d):
paths = ud.method.localpaths(ud, d)
for f in paths:
pth = ud.decodedurl
if '*' in pth:
f = os.path.join(os.path.abspath(f), pth)
if f.startswith(dl_dir):
# The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
if os.path.exists(f):
@@ -1203,14 +1188,14 @@ def get_checksum_file_list(d):
return " ".join(filelist)
def get_file_checksums(filelist, pn, localdirsexclude):
def get_file_checksums(filelist, pn):
"""Get a list of the checksums for a list of local files
Returns the checksums for a list of local files, caching the results as
it proceeds
"""
return _checksum_cache.get_checksums(filelist, pn, localdirsexclude)
return _checksum_cache.get_checksums(filelist, pn)
class FetchData(object):
@@ -1236,26 +1221,24 @@ class FetchData(object):
self.pswd = self.parm["pswd"]
self.setup = False
def configure_checksum(checksum_id):
if "name" in self.parm:
checksum_name = "%s.%ssum" % (self.parm["name"], checksum_id)
else:
checksum_name = "%ssum" % checksum_id
setattr(self, "%s_name" % checksum_id, checksum_name)
if checksum_name in self.parm:
checksum_expected = self.parm[checksum_name]
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3", "az"]:
checksum_expected = None
else:
checksum_expected = d.getVarFlag("SRC_URI", checksum_name)
setattr(self, "%s_expected" % checksum_id, checksum_expected)
for checksum_id in CHECKSUM_LIST:
configure_checksum(checksum_id)
if "name" in self.parm:
self.md5_name = "%s.md5sum" % self.parm["name"]
self.sha256_name = "%s.sha256sum" % self.parm["name"]
else:
self.md5_name = "md5sum"
self.sha256_name = "sha256sum"
if self.md5_name in self.parm:
self.md5_expected = self.parm[self.md5_name]
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
self.md5_expected = None
else:
self.md5_expected = d.getVarFlag("SRC_URI", self.md5_name)
if self.sha256_name in self.parm:
self.sha256_expected = self.parm[self.sha256_name]
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
self.sha256_expected = None
else:
self.sha256_expected = d.getVarFlag("SRC_URI", self.sha256_name)
self.ignore_checksums = False
self.names = self.parm.get("name",'default').split(',')
@@ -1359,8 +1342,11 @@ class FetchMethod(object):
"""
# We cannot compute checksums for directories
if os.path.isdir(urldata.localpath):
if os.path.isdir(urldata.localpath) == True:
return False
if urldata.localpath.find("*") != -1:
return False
return True
def recommends_checksum(self, urldata):
@@ -1370,18 +1356,6 @@ class FetchMethod(object):
"""
return False
def verify_donestamp(self, ud, d):
"""
Verify the donestamp file
"""
return verify_donestamp(ud, d)
def update_donestamp(self, ud, d):
"""
Update the donestamp file
"""
update_stamp(ud, d)
def _strip_leading_slashes(self, relpath):
"""
Remove leading slash as os.path.join can't cope
@@ -1417,12 +1391,17 @@ class FetchMethod(object):
Fetch urls
Assumes localpath was called first
"""
raise NoMethodError(urldata.url)
raise NoMethodError(url)
def unpack(self, urldata, rootdir, data):
iterate = False
file = urldata.localpath
# Localpath can't deal with 'dir/*' entries, so it converts them to '.',
# but it must be corrected back for local files copying
if urldata.basename == '*' and file.endswith('/.'):
file = '%s/%s' % (file.rstrip('/.'), urldata.path)
try:
unpack = bb.utils.to_boolean(urldata.parm.get('unpack'), True)
except ValueError as exc:
@@ -1459,10 +1438,6 @@ class FetchMethod(object):
cmd = '7z x -so %s | tar x --no-same-owner -f -' % file
elif file.endswith('.7z'):
cmd = '7za x -y %s 1>/dev/null' % file
elif file.endswith('.tzst') or file.endswith('.tar.zst'):
cmd = 'zstd --decompress --stdout %s | tar x --no-same-owner -f -' % file
elif file.endswith('.zst'):
cmd = 'zstd --decompress --stdout %s > %s' % (file, efile)
elif file.endswith('.zip') or file.endswith('.jar'):
try:
dos = bb.utils.to_boolean(urldata.parm.get('dos'), False)
@@ -1482,7 +1457,7 @@ class FetchMethod(object):
else:
cmd = 'rpm2cpio.sh %s | cpio -id' % (file)
elif file.endswith('.deb') or file.endswith('.ipk'):
output = subprocess.check_output(['ar', '-t', file], preexec_fn=subprocess_setup)
output = subprocess.check_output('ar -t %s' % file, preexec_fn=subprocess_setup, shell=True)
datafile = None
if output:
for line in output.decode().splitlines():
@@ -1522,7 +1497,7 @@ class FetchMethod(object):
if urlpath.find("/") != -1:
destdir = urlpath.rsplit("/", 1)[0] + '/'
bb.utils.mkdirhier("%s/%s" % (unpackdir, destdir))
cmd = 'cp -fpPRH "%s" "%s"' % (file, destdir)
cmd = 'cp -fpPRH %s %s' % (file, destdir)
if not cmd:
return
@@ -1555,18 +1530,12 @@ class FetchMethod(object):
"""
return True
def try_mirrors(self, fetch, urldata, d, mirrors, check=False):
"""
Try to use a mirror
"""
return bool(try_mirrors(fetch, d, urldata, mirrors, check))
def checkstatus(self, fetch, urldata, d):
"""
Check the status of a URL
Assumes localpath was called first
"""
logger.info("URL %s could not be checked for status since no method exists.", urldata.url)
logger.info("URL %s could not be checked for status since no method exists.", url)
return True
def latest_revision(self, ud, d, name):
@@ -1574,7 +1543,7 @@ class FetchMethod(object):
Look in the cache for the latest revision, if not present ask the SCM.
"""
if not hasattr(self, "_latest_revision"):
raise ParameterError("The fetcher for this URL does not support _latest_revision", ud.url)
raise ParameterError("The fetcher for this URL does not support _latest_revision", url)
revs = bb.persist_data.persist('BB_URI_HEADREVS', d)
key = self.generate_revision_key(ud, d, name)
@@ -1589,7 +1558,8 @@ class FetchMethod(object):
return True, str(latest_rev)
def generate_revision_key(self, ud, d, name):
return self._revision_key(ud, d, name)
key = self._revision_key(ud, d, name)
return "%s-%s" % (key, d.getVar("PN") or "")
def latest_versionstring(self, ud, d):
"""
@@ -1599,21 +1569,6 @@ class FetchMethod(object):
"""
return ('', '')
def done(self, ud, d):
"""
Is the download done ?
"""
if os.path.exists(ud.localpath):
return True
return False
def implicit_urldata(self, ud, d):
"""
Get a list of FetchData objects for any implicit URLs that will also
be downloaded when we fetch the given URL.
"""
return []
class Fetch(object):
def __init__(self, urls, d, cache = True, localonly = False, connection_cache = None):
if localonly and cache:
@@ -1628,11 +1583,8 @@ class Fetch(object):
fn = d.getVar('FILE')
mc = d.getVar('__BBMULTICONFIG') or ""
key = None
if cache and fn:
key = mc + fn + str(id(d))
if key in urldata_cache:
self.ud = urldata_cache[key]
if cache and fn and mc + fn in urldata_cache:
self.ud = urldata_cache[mc + fn]
for url in urls:
if url not in self.ud:
@@ -1643,8 +1595,8 @@ class Fetch(object):
self.ud[url] = None
pass
if key:
urldata_cache[key] = self.ud
if fn and cache:
urldata_cache[mc + fn] = self.ud
def localpath(self, url):
if url not in self.urls:
@@ -1674,13 +1626,13 @@ class Fetch(object):
urls = self.urls
network = self.d.getVar("BB_NO_NETWORK")
premirroronly = bb.utils.to_boolean(self.d.getVar("BB_FETCH_PREMIRRORONLY"))
premirroronly = (self.d.getVar("BB_FETCH_PREMIRRORONLY") == "1")
for u in urls:
ud = self.ud[u]
ud.setup_localpath(self.d)
m = ud.method
done = False
localpath = ""
if ud.lockfile:
lf = bb.utils.lockfile(ud.lockfile)
@@ -1688,39 +1640,39 @@ class Fetch(object):
try:
self.d.setVar("BB_NO_NETWORK", network)
if m.verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
done = True
if verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
localpath = ud.localpath
elif m.try_premirror(ud, self.d):
logger.debug("Trying PREMIRRORS")
logger.debug(1, "Trying PREMIRRORS")
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
done = m.try_mirrors(self, ud, self.d, mirrors)
if done:
localpath = try_mirrors(self, self.d, ud, mirrors, False)
if localpath:
try:
# early checksum verification so that if the checksum of the premirror
# contents mismatch the fetcher can still try upstream and mirrors
m.update_donestamp(ud, self.d)
update_stamp(ud, self.d)
except ChecksumError as e:
logger.warning("Checksum failure encountered with premirror download of %s - will attempt other sources." % u)
logger.debug(str(e))
done = False
logger.debug(1, str(e))
localpath = ""
if premirroronly:
self.d.setVar("BB_NO_NETWORK", "1")
firsterr = None
verified_stamp = m.verify_donestamp(ud, self.d)
if not done and (not verified_stamp or m.need_update(ud, self.d)):
verified_stamp = verify_donestamp(ud, self.d)
if not localpath and (not verified_stamp or m.need_update(ud, self.d)):
try:
if not trusted_network(self.d, ud.url):
raise UntrustedUrl(ud.url)
logger.debug("Trying Upstream")
logger.debug(1, "Trying Upstream")
m.download(ud, self.d)
if hasattr(m, "build_mirror_data"):
m.build_mirror_data(ud, self.d)
done = True
localpath = ud.localpath
# early checksum verify, so that if checksum mismatched,
# fetcher still have chance to fetch from mirror
m.update_donestamp(ud, self.d)
update_stamp(ud, self.d)
except bb.fetch2.NetworkAccess:
raise
@@ -1728,31 +1680,31 @@ class Fetch(object):
except BBFetchException as e:
if isinstance(e, ChecksumError):
logger.warning("Checksum failure encountered with download of %s - will attempt other sources if available" % u)
logger.debug(str(e))
logger.debug(1, str(e))
if os.path.exists(ud.localpath):
rename_bad_checksum(ud, e.checksum)
elif isinstance(e, NoChecksumError):
raise
else:
logger.warning('Failed to fetch URL %s, attempting MIRRORS if available' % u)
logger.debug(str(e))
logger.debug(1, str(e))
firsterr = e
# Remove any incomplete fetch
if not verified_stamp:
m.clean(ud, self.d)
logger.debug("Trying MIRRORS")
logger.debug(1, "Trying MIRRORS")
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
done = m.try_mirrors(self, ud, self.d, mirrors)
localpath = try_mirrors(self, self.d, ud, mirrors)
if not done or not m.done(ud, self.d):
if not localpath or ((not os.path.exists(localpath)) and localpath.find("*") == -1):
if firsterr:
logger.error(str(firsterr))
raise FetchError("Unable to fetch URL from any source.", u)
m.update_donestamp(ud, self.d)
update_stamp(ud, self.d)
except IOError as e:
if e.errno in [errno.ESTALE]:
if e.errno in [os.errno.ESTALE]:
logger.error("Stale Error Observed %s." % u)
raise ChecksumError("Stale Error Detected")
@@ -1777,17 +1729,17 @@ class Fetch(object):
ud = self.ud[u]
ud.setup_localpath(self.d)
m = ud.method
logger.debug("Testing URL %s", u)
logger.debug(1, "Testing URL %s", u)
# First try checking uri, u, from PREMIRRORS
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
ret = m.try_mirrors(self, ud, self.d, mirrors, True)
ret = try_mirrors(self, self.d, ud, mirrors, True)
if not ret:
# Next try checking from the original uri, u
ret = m.checkstatus(self, ud, self.d)
if not ret:
# Finally, try checking uri, u, from MIRRORS
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
ret = m.try_mirrors(self, ud, self.d, mirrors, True)
ret = try_mirrors(self, self.d, ud, mirrors, True)
if not ret:
raise FetchError("URL %s doesn't work" % u, u)
@@ -1822,7 +1774,7 @@ class Fetch(object):
for url in urls:
if url not in self.ud:
self.ud[url] = FetchData(url, self.d)
self.ud[url] = FetchData(url, d)
ud = self.ud[url]
ud.setup_localpath(self.d)
@@ -1839,24 +1791,6 @@ class Fetch(object):
if ud.lockfile:
bb.utils.unlockfile(lf)
def expanded_urldata(self, urls=None):
"""
Get an expanded list of FetchData objects covering both the given
URLS and any additional implicit URLs that are added automatically by
the appropriate FetchMethod.
"""
if not urls:
urls = self.urls
urldata = []
for url in urls:
ud = self.ud[url]
urldata.append(ud)
urldata += ud.method.implicit_urldata(ud, self.d)
return urldata
class FetchConnectionCache(object):
"""
A class which represents an container for socket connections.
@@ -1910,8 +1844,6 @@ from . import osc
from . import repo
from . import clearcase
from . import npm
from . import npmsw
from . import az
methods.append(local.Local())
methods.append(wget.Wget())
@@ -1930,5 +1862,3 @@ methods.append(osc.Osc())
methods.append(repo.Repo())
methods.append(clearcase.ClearCase())
methods.append(npm.Npm())
methods.append(npmsw.NpmShrinkWrap())
methods.append(az.Az())

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