Compare commits

..

136 Commits

Author SHA1 Message Date
Richard Purdie
cb26830f76 build-appliance-image: Update to thud head revision
(From OE-Core rev: d3d3f443039b03f1200a14bfe99f985592632018)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-01 11:58:15 +01:00
Richard Purdie
d43a86de1a poky.conf: Bump version for 2.6.3 thud release
(From meta-yocto rev: 9a1d9fd77e2dd2d324654755633e143ef7730dc5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-01 11:58:07 +01:00
Anuj Mittal
d49de3810a expat: fix CVE-2018-20843
(From OE-Core rev: aad245ea1c55f8e778ae3420c5c31e94301e7cba)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Ross Burton
9e0a120c8e libcroco: fix CVE-2017-7961
(From OE-Core rev: 480f15850820746cecdfe0b8450b2be484c1f8f9)

(From OE-Core rev: f5cf064b3c138c8a6591d34f40253e10a6f01a14)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Ovidiu Panait
e6058824bb ghostscript: Fix 3 CVEs
It was discovered that the ghostscript /invalidaccess checks fail under
certain conditions. An attacker could possibly exploit this to bypass
the -dSAFER protection and, for example, execute arbitrary shell commands
via a specially crafted PostScript document.

It was found that the superexec operator was available in the internal
dictionary in ghostscript before 9.27. A specially crafted PostScript
file could use this flaw in order to, for example, have access to the
file system outside of the constrains imposed by -dSAFER.

It was found that the forceput operator could be extracted from the
DefineResource method in ghostscript before 9.27. A specially crafted
PostScript file could use this flaw in order to, for example, have
access to the file system outside of the constrains imposed by -dSAFER.

References:
https://nvd.nist.gov/vuln/detail/CVE-2019-6116
https://www.openwall.com/lists/oss-security/2019/01/23/5
https://nvd.nist.gov/vuln/detail/CVE-2019-3835
https://nvd.nist.gov/vuln/detail/CVE-2019-3838

Upstream patches:
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=13b0a36
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2db98f9
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=99f1309
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59d8f4d
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2768d1a
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49c8092
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2ff600a
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=779664d
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e8acf6d
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2055917
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d683d1e
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ed9fcd9
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a82601e

(From OE-Core rev: 12e140dfdac8456772223c816e37bd869419bb18)

(From OE-Core rev: cf5d29dcac6247e8476f7af78b4e0bb129b94677)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fix for CVE-2019-6116 is already in thud, so that has been removed]
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Anuj Mittal
885459d264 bzip2: fix CVE-2019-12900
Also include a patch to fix regression caused by it. See:

https://gitlab.com/federicomenaquintero/bzip2/issues/24

(From OE-Core rev: 7c0b2d228f51aebb4415e63a07bdd645e85b09d8)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Ross Burton
d0e65410f4 libarchive: integrate security fixes
Fix the following CVEs by backporting patches from upstream:
- CVE-2019-1000019
- CVE-2019-1000020
- CVE-2018-1000877
- CVE-2018-1000878
- CVE-2018-1000879
- CVE-2018-1000880

(From OE-Core rev: ea251020304b9c18f31c39de867a47311b1bb46c)

(From OE-Core rev: 6cba048de29dfea44e926b00e5ea91359e7cbebd)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Anuj Mittal
acd46a34c4 gstreamer1.0-plugins-base: fix CVE-2019-9928
(From OE-Core rev: 276567b6a8e4b21dc978b352b5c715d6381867b1)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Anuj Mittal
ecc1ac5b04 libsdl: CVE fixes
Fixes CVE-2019-7572, CVE-2019-7574, CVE-2019-7575, CVE-2019-7576,
CVE-2019-7577, CVE-2019-7578, CVE-2019-7635, CVE-2019-7637,
CVE-2019-7638.

(From OE-Core rev: 2cfcb3b0fce7e1156eb52260df4330c95d87dc17)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Alejandro del Castillo
e8cd30ba6c OpkgPM: use --add-ignore-recommends to process BAD_RECOMMENDATIONS
Currently, BAD_RECOMMENDATIONS on the opkg backed relies on editing the
opkg status file (it sets BAD_RECOMMENDATIONS pkg want state to
deinstalled and pinned). This is brittle, and not consistent across the
different solver backends. Use new --add-ignore-recommends flag instead.

(From OE-Core rev: 0d11e813ba9b4e8de9e6e5099ff85f5d914243bc)

(From OE-Core rev: bfb0acb6bc6bc11e4aa2c9527916359e1a763e85)

(From OE-Core rev: 13ba66338d16cc07cb0129de932f090d0edb7760)

Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@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>
2019-07-29 23:50:43 +01:00
Alejandro del Castillo
eecc4121ad opkg: add --ignore-recommends flag
To be used for BAD_RECOMMENDATIONS feature.

(From OE-Core rev: 788d97b4f8e4452cef1ba6bb3e565e1b52dbb7de)

(From OE-Core rev: 85007cdb260bc77ac4ae5f914b0e3a4408606dfd)

(From OE-Core rev: c60f9c47380bb53bd2b54373b72f86006edf326e)

Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Backport from opkg_0.4.0.bb]
Signed-off-by: Quentin Schulz <quentin.schulz@streamunlimited.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Richard Purdie
a872c96192 scripts: Remove deprecated imp module usage
The imp module is deprecated, port the code over to use importlib
as recently done for bb.utils as well.

(From OE-Core rev: f3ba6cee5927c7475c3dc47658fa0548aec52115)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-29 23:50:43 +01:00
Robert Yang
4d63da3fad uboot-sign.bbclass: Remove tab indentations in python code
Use 4 spaces to replace a tab.

(From OE-Core rev: 2bf6098ac1cbbf7ed28522b7f7dce84c8341ce00)

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>
2019-07-27 18:05:18 +01:00
Armin Kuster
a51a3b1c82 glib: Security fix for CVE-2019-9633
Source: gnome.org
MR: 98802
Type: Security Fix
Disposition: Backport from d553d92d6e
ChangeID: b73c332f27f47ddc1b1cfd7424f24778acc0c318
Description:

includes supporting patch.
Fixes CVE-2019-9633

(From OE-Core rev: 3ebf0fc043b6c9b6c2381dab893b54ebcb8ac13d)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
e2f3997a84 qemu: Security fixes CVE-2018-20815 CVE-2019-9824
Source: qemu.org
MR: 98623
Type: Security Fix
Disposition: Backport from qemu.org
ChangeID: 03b3f28e5860ef1cb9f58dce89f252bd7ed59f37
Description:

Fixes both CVE-2018-20815 and CVE-2019-9824

(From OE-Core rev: 5c45cd09fb29d4a1ebda6153a25f16e312049c44)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Ross Burton
45e662b445 glibc: backport CVE fixes
Backport the fixes for several CVEs from the 2.28 stable branch:
- CVE-2016-10739
- CVE-2018-19591

(From OE-Core rev: 950a60c0e4183037a807031ddc9167b1a81a5348)

Signed-off-by: Ross Burton <ross.burton@intel.com>
[Dropped CVE-2019-9169 as its in my contrib already]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Ross Burton
f749c69115 lighttpd: fix CVE-2019-11072
(From OE-Core rev: 0dbd16a40a28bb75962f38c6ce450c909c22ee79)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Richard Purdie
573a935860 uninative: Update to 2.6 release
The 2.6 release contains both libcrypt.so.1 and libcrypt.so.2 which fixes
compatibility with recent fedora/suse releases.

The difference is one is built with obsolete APIs enabled and one disabled.
We now ship both in uninative for compatibility regardless of which distro
a binary is built on.

(From OE-Core rev: 352ab80333096df92ef0f4cd331baea98e71aa21)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Richard Purdie
59400377bb uninative: Switch from bz2 to xz
(From OE-Core rev: 29fc9210b973be68de474e75068e4c72371afe5a)

(From OE-Core rev: 16785ebdc50f38ef4bc30d477a6833bdd4b541d1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Richard Purdie
594d5c20e2 yocto-uninative: Update to 2.5 release
This includes libstdc++ changes from gcc 9.X.

It also switches uninative from bz2 to xz compression.

(From OE-Core rev: 0497623882da714cbe098a4281982b7f9ce6030f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
8e6d657a9c qemu: Security fix for CVE-2019-12155
Source: qemu.org
MR: 98382
Type: Security Fix
Disposition: Backport from https://git.qemu.org/?p=qemu.git;a=commit;h=d52680fc932efb8a2f334cc6993e705ed1e31e99
ChangeID: e4e5983ec1fa489eb8a0db08d1afa0606e59dde3
Description:

Fixes CVE-2019-12155
Affects: <= 4.0.0
(From OE-Core rev: 6045c57895cad301c5e3a94de740427343a08065)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
a43499cf8e Curl: Securiyt fix CVE-2019-5435 CVE-2019-5436
Source: CUrl.org
MR: 98455
Type: Security Fix
Disposition: Backport from https://curl.haxx.se/
ChangeID: 86b094a440ea473b114764e8d64df8142d561609
Description:

Fixes CVE-2019-5435 CVE-2019-5436

(From OE-Core rev: 9d5a7dd654a17b67f5cd8a73145e5f5299bfebcc)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
21188466bc wget: Security fix for CVE-2019-5953
Source: http://git.savannah.gnu.org/cgit/wget.git
MR: 89341
Type: Security Fix
Disposition: Backport from http://git.savannah.gnu.org/cgit/wget.git/commit/?id=692d5c5215de0db482c252492a92fc424cc6a97c
ChangeID: 1c19a2fd7ead88cc4ee92d425179d60d4635864b
Description:

Fixes CVE-2019-5953
Affects: < 1.20.1
(From OE-Core rev: c897b862c6cfaa341cc6155b2c9d98ea7ad02884)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
f2d2148adb glib-2.0: Security fix for CVE-2019-12450
Source: glib-2.0
MR: 98443
Type: Security Fix
Disposition: Backport from d8f8f4d637
ChangeID: 880b9b349cb8d82c7c1314a3657ec9094baba741
Description:

(From OE-Core rev: 71bfb9dfdc806e0e95f1302d0d6c3c751f03bb4b)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
abefff23cd Tar: Security fix CVE-2019-0023
Source: tar.git
MR: 97928
Type: Security Fix
Disposition: Backport from http://git.savannah.gnu.org/cgit/tar.git/commit/?id=cb07844454d8cc9fb21f53ace75975f91185a120
ChangeID: 7aee4c0daf8ce813242fe7b872583560a32bc4e3
Description:

Affects tar < 1.32

fixes CVE-2019-9923

(From OE-Core rev: fc77edc8245ab90eee1f1e857f470b6842dc256f)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
e53f7d53f4 qemu: Security fix for CVE-2018-19489
Source: Qemu.org
MR: 97453
Type: Security Fix
Disposition: Backport from git.qemu.org/gemu.git

ChangeID: a06fcb432d447cec2ed1caf112822dd1b4831ace
Description:

In the spirt of YP Compatible, sending change upstream.

fixes CVE CVE-2018-19489

Affect < = 4.0.0

(From OE-Core rev: 249447828cd1ed13f9faf19793208b503acf0d30)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Joshua DeWeese
f381b778ae wpa_supplicant: Changed systemd template units
I goofed up the scissor line on the last attempt. Not sure how much it matters,
but here it is correct this time.

Here it is, updated to work with wpa-supplicant_2.6.bb.

-- >8 --
https://www.freedesktop.org/software/systemd/man/systemd.unit.html#WantedBy=

When building root filesystems with any of the wpa_supplicant systemd
template service files enabled (current default is to have them disabled) the
systemd-native-fake script would not process the line:

Alias=multi-user.target.wants/wpa_supplicant@%i.service

appropriately due the the use of "%i."

According to the systemd documentation "WantedBy=foo.service in a service
bar.service is mostly equivalent to Alias=foo.service.wants/bar.service in
the same file." However, this is not really the intended purpose of install
Aliases.

All lines of the form:

Alias=multi-user.target.wants/*%i.service

Were replaced with the following lines:

WantedBy=multi-user.target

(From OE-Core rev: d05e98cdccbe36be8906c31249adeb0f0bc13ac5)

Signed-off-by: Joshua DeWeese <jdeweese@hennypenny.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
47d06b4c85 go: update to minor update 1.11.10
Source: golang.org
MR: 97548,
Type: Security Fix
Disposition: Backport from https://github.com/golang/go/issues?q=milestone%3AGo1.11.5
ChangeID: 54377c454f038a41bf35dd447a784e3e66db6268
Description:

Bug fix updates only
https://golang.org/doc/devel/release.html#go1.11

Fixes:
Affects <= 1.11.6
CVE-2019-6486
CVE-2019-9741

(From OE-Core rev: 4e40da53851c550f1a38eff5737d4b69c8cd0afb)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Khem Raj
d89c54ee99 go: Upgrade 1.11.1 -> 1.11.4 minor release
Source: OpenEmbedded.org
MR: 98328, 98329, 98330
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-devtools/go?h=warrior&id=b964551a0d08aa921d4e0ceea2f1e28a5e83510e

ChangeID: 0b4cc69c357ba14c4e7a6c7ff926cfc6f09489b2
Description:
include:
CVE-2018-16873
CVE-2018-16874
CVE-2018-16875

Changes: https://golang.org/doc/devel/release.html#go1.11

(From OE-Core rev: 69964488112899371b7fd88b6e86e533d968b457)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Bug fix only update]
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Richard Purdie
94bacd598d go-crosssdk: PN should use SDK_SYS, not TARGET_ARCH
The crosssdk dependencies are handled using the virtual/ namespace so
this name doesn't matter in the general sense. We want to be able to provide
recipe maintainer information through overrides though, so this standardises it
with the behaviour from gcc-crosssdk and ensures the maintainer overrides work.

(From OE-Core rev: 025cd45d4129266d34a919573c02a8504f092c1b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Hongxu Jia
3975d95822 go-target.inc: fix go not found while multilib enabled
Go binaries were installed to ${libdir}/go/bin, and create symlink
in ${bindir}, while enabling multilib, libdir was extended (such as
/usr/lib64), but BASELIB was not (still /lib), so use
baselib (such as /lib64)) to replace

(From OE-Core rev: fca74928bf2002daf526ad8c1446c8d9ba891a78)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Ross Burton
fc06d9b06d cairo: fix CVE-2018-19876 CVE-2019-6461 CVE-2019-6462
Source: OpenEmbedded.org
MR: 97538, 97543
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-graphics/cairo?h=warrior&id=078e4d5c2114d942806cd0d5ad501805a011e841
ChangeID: fa8bdd44ad8613bb0679a1f6d9d670c3b47a0677
Description:

CVE-2018-19876 is a backport from upstream.

CVE-2019-6461 and CVE-2019-6462 are patches taken from Clear Linux.

(From OE-Core rev: 8b5e68afc9767d8b6b966503e9353cadafae9bfb)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Dropped CVE-2018-19876, not affected]
Issue was introduced in 1.15.8 by:
commit 721b7ea0a785afaa04b6da63f970c3c57666fdfe

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Chen Qi
f24f361404 cups: upgrade to 2.2.10
Source: OpenEmbedded.org
MR: 97351
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-extended/cups?h=warrior&id=fbe7a0c9bab7c9be7fd2c0da8b2af61e66de1ebd
ChangeID: fbe7a0c9bab7c9be7fd2c0da8b2af61e66de1ebd
Description:

(From OE-Core rev: 85541b9ae8cff770e2c20a9132c0867a25d190c2)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

CUPS 2.2.10 is a bug fix release that addresses issues in the scheduler, IPP Everywhere support, CUPS library, and USB printer support. Changes include:

    CVE-2018-4300: Linux session cookies used a predictable random number seed.
    The lpoptions command now works with IPP Everywhere printers that have not yet been added as local queues (Issue #5045)
    Added USB quirk rules (Issue #5395, Issue #5443)
    The generated PPD files for IPP Everywhere printers did not contain the cupsManualCopies keyword (Issue #5433)
    Kerberos credentials might be truncated (Issue #5435)
    The handling of MaxJobTime 0 did not match the documentation (Issue #5438)
    Incorporated the page accounting changes from CUPS 2.3 (Issue #5439)
    Fixed a bug adding a queue with the -E option (Issue #5440)
    Fixed a crash bug when mapping PPD duplex options to IPP attributes (rdar://46183976)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Chen Qi
a6ffadd75f cups: upgrade to 2.2.9
Source: OpenEmbedded.org
MR: 97351
Type: Integration
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-extended/cups?h=warrior&id=ee57d79aec06e9b160cf2713636cda650ba68d5a
ChangeID: ee57d79aec06e9b160cf2713636cda650ba68d5a
Description:

The following patch is rebased.

  0001-don-t-try-to-run-generated-binaries.patch

(From OE-Core rev: 3c76b6660fc21a987e960dedb2631dcd27b87d07)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

CUPS 2.2.9 is a bug fix release that addresses issues in the scheduler,
IPP Everywhere support, CUPS library, and USB printer support. Changes include:

    Localization changes (Issue #5348, Issue #5362, Issue #5408)
    Documentation updates (Issue #5369)
    The lpadmin command would create a non-working printer in some error cases
    (Issue #5305)
    The scheduler would crash if an empty AccessLog directive was specified
    (Issue #5309)
    Fixed a regression in the changes to ippValidateAttribute (Issue #5322,
    Issue #5330)
    Fixed a crash bug in the Epson dot matrix driver (Issue #5323)
    Automatic debug logging of job errors did not work with systemd (Issue #5337)
    The web interface did not list the IPP Everywhere "driver" (Issue #5338)
    The IPP Everywhere "driver" now properly supports face-up printers
    (Issue #5345)
    Fixed some typos in the label printer drivers (Issue #5350)
    Multi-file jobs could get stuck if the backend failed (Issue #5359,
    Issue #5413)
    The IPP Everywhere "driver" no longer does local filtering when printing to
    a shared CUPS printer (Issue #5361)
    The lpadmin command now correctly reports IPP errors when configuring an
    IPP Everywhere printer (Issue #5370)
    Fixed some memory leaks discovered by Coverity (Issue #5375)
    The PPD compiler incorrectly terminated JCL options (Issue #5379)
    The cupstestppd utility did not generate errors for missing/mismatched
    CloseUI/JCLCloseUI keywords (Issue #5381)
    The scheduler now reports the actual location of the log file (Issue #5398)
    Added a USB quirk rule (Issue #5420)
    The scheduler was being backgrounded on macOS, causing applications to spin
    (rdar://40436080)
    The scheduler did not validate that required initial request attributes were
    in the operation group (rdar://41098178)
    Authentication in the web interface did not work on macOS (rdar://41444473)
    Fixed an issue with HTTP Digest authentication (rdar://41709086)
    The scheduler could crash when job history was purged (rdar://42198057)
    Dropped non-working RSS subscriptions UI from web interface templates.
    Fixed a memory leak for some IPP (extension) syntaxes.

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
4faf6e9e07 file: Multiple Secruity fixes
Source: https://github.com/file
MR: 97573, 97578, 97583, 97588
Type: Security Fix
Disposition: Backport from https://github.com/file/file
ChangeID: 159e532d518623f19ba777c8edc24d2dc7e3a4e9
Description:

CVE-2019-8905 is the same fix as CVE-2019-8907

Affects < 5.36.0

Fixes:
CVE-2019-8904
CVE-2019-8906
CVE-2019-8906
CVE-2019-8907

(From OE-Core rev: 3d7375eb2e459b891b4ba16c1fc486afbfecef2c)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
015bfc5971 sqlite3: Security fixes for CVE-2018-20505 & 20506
Source: sqlite.org
MR: 97484, 97490
Type: Security Fix
Disposition: Backport from sqilte.org
ChangeID: c6105b5d3ce4fb2c0f38c3cab745b769d2df38f5
Description:

Affects < 3.26.0
fixes:
CVE-2018-20505
CVE-2018-20506

(From OE-Core rev: e2f9efdc93068bce00b07021aa447f0b8786f69d)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
14d23c29a2 busybox: Security fixes for CVE-2018-20679 CVE-2019-5747
Source: busybox.git
MR: 97332
Type: Security Fix
Disposition: Backport from busybox.git
ChangeID: ec203c79e7322de1ed5721d08b6f59b1eca67c7d
Description:

Affects < 1.30.0

Fixes:
CVE-2018-20679
CVE-2019-5747

(From OE-Core rev: 7db146abad6d2bbb7d7a549e7091412e0e494db2)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Martin Jansa
016a0b830e python: add a fix for CVE-2019-9948 and CVE-2019-9636
Source: OpenEmbedded.org
MR: 98320, 98319
Type: Security Fix
Disposition: Backport from https://git.openembedded.org/openembedded-core/commit/meta/recipes-devtools/python/python_2.7.16.bb?id=9d23b982fa4e0290761b3d15f6959779fed72ad6
ChangeID: e79b6fe3b7b4253bf0d76b029070ae869d5234bd
Description:

Fixes:
CVE-2019-9948
CVE-2019-9636

CVE-2019-9940 is a dup of 9948 per python.org
CVE-2019-9947 appears to be a dup of 9940 per https://bugs.python.org/issue30458#msg295067

(From OE-Core rev: e7bdff05da6075efc21c5ac9492b06e481e5a239)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Minor clean up for thud]
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
81439e7d18 python: Update to 2.7.16
Source: Python.org
MR: 98220
Type: Security Fix & Integration
Disposition: Backport from python.org
ChangeID: 96fdd2dee9fe9317eb72584583ae0100c0be9eaa
Description:

Bug fix update per Python.org
https://www.python.org/downloads/release/python-2716/

drop backported patch

License-update: copyright years

Helps prepare Thud for 2.7 EOL support moving forward.

Update includes:
CVE-CVE-2019-5010
06b15424b0

(From OE-Core rev: 592e7de7f5208940fbcfcad3371f93f8ce2ca738)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
f2961d88af qemu: Several CVE fixes
Source: qemu.org
MR: 97258, 97342, 97438, 97443
Type: Security Fix
Disposition: Backport from git.qemu.org/qemu.git
ChangeID: a5e9fd03ca5bebc880dcc3c4567e10a9ae47dba5
Description:

These issues affect qemu < 3.1.0

Fixes:
CVE-2018-16867
CVE-2018-16872
CVE-2018-18849
CVE-2018-19364

(From OE-Core rev: e3dfe53a334cd952cc2194fd3baad6d082659b7e)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:18 +01:00
Armin Kuster
cd7f7bf385 elfutils: Security fixes CVE-2019-7146,7149,7150
Source: http://sourceware.org/git/elfutils.git
MR: 97563, 97568, 97558
Type: Security Fix
Disposition: Backport from http://sourceware.org/git/elfutils.git
ChangeID: 6183c2a25d5e32eec1846a428dd165e1de659f24
Description:

Affects <= 0.175

Fixes:
CVE-2019-7146
CVE-2019-7149
CVE-2019-7150

(From OE-Core rev: ac5dca7dc68519b36aa976dfd25d8efa76af74ec)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:17 +01:00
Armin Kuster
2c225a199d glibc: Security fix CVE-2019-9169
(From OE-Core rev: 3103f407ff0c579c7e5887fd925d52d5c92c83f9)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-27 18:05:17 +01:00
Scott Rifenbark
a7ffffd440 ref-manual: Fixed typo for BBMULTICONFIG variable.
There was a typo in the BBMULTICONFIG variable description.
It appeared as "BBMULTIFONFIG". I fixed it.

(From yocto-docs rev: 2ef4ab6d93ccb6208169db9757f9ca2c2551a6d2)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
57d351b8e3 bsp-guide: Fixed build error.
I accidently submitted this with a build error.

(From yocto-docs rev: 44b659aa7fa1dca96cb38cd272ea96e20b94aadb)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
4a8d999249 bsp-guide: Minor edits to Configuring Kernel section.
(From yocto-docs rev: de86d2725fc70e5805727ad1eca1a4cebd14228d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
ebfe32a474 bsp.xml: Updated some output examples and the BSP structure
I ran fresh commands for several output examples where
repositories are cloned.  I also dumped the really detailed
listing of the Raspberry Pi BSP.  Rather, I provided a link
to the layer itself and sent the reader there to do their
own exploring.

(From yocto-docs rev: d6976296f237420cae7c9f157a4e3a868b0ac588)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
90d98a4c9d brief-yoctoprojectqs: Updated examples.
I ran the examples against the latest poky repo to get updated
example output.

(From yocto-docs rev: c2b272f10b731e744f0ecddab6ad37dc13579dcf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Scott Rifenbark
f8e62cc5e1 Documentation: Prepare for 2.6.3 release.
poky.ent - updated variables
mega-manual.sed - updated release string
<manual>.xml - updated manual revision history tables

(From yocto-docs rev: 6fd8afecc73b6734f9beb02e7ae3cea4d1148177)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-18 12:17:05 +01:00
Mark Hatle
2dd610cc27 bitbake: gitsm: Add need_update method to determine when we are going to a new SRCREV
If the system had previously fetched a source repository for use by gitsm,
and then the SRCREV was updated and the new commit already existed, the system
would not re-evaluate the submodules and update them accordingly.

The cause of this issue was that need_update was being used, unmodified, from
the base git fetcher.  It did not have any knowledge, nor did it care if we
were moving commits and needed to re-evaluate what was happening due to this
switch.

To fix the issue, during the download process we add all processed (by
gitsm) srcrevs to the git config file, as bitbake.srcrev.  This allows us to
use a new need_update function that not only checks if the git commit is
present, but if we have previously processed this commit to ensure all of the
submodule components are also present.

This approach is used, instead of iterating over the submodules in need_update
to avoid a potential race condition that has affected us in the past.  The
need_update is called only with the parent locking.  Any time we need to dive
into the submodules, we need to lock, and unlock them, at each stage.  This
opens the possibility of errors in either the code, or unintended race
conditions with rm_work.

This issue was discovered by William A. Kennington III <wak@google.com>.  The
included test case was also written by him, and included unmodified.

(Bitbake rev: 4ce92f43eeac6a4bfd06e8567fa6891614b5b3b0)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-18 11:31:10 +01:00
Mark Hatle
1f82ca6713 bitbake: gitsm: Fix a bug where the wrong path was used for the submodule init
Because we are trying to avoid network activity and use our own fetcher,
the system emulates the behavior of 'git submodule init'.

git submodule init uses the .gitmodules file, where typically the module
name and path are the same.  However, in this case the module name and
path (in the tree) were different. i.e.:

[submodule "edgelet/hsm-sys/azure-iot-hsm-c/deps/azure-c-shared-utility"]
        path = edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared
        url = https://github.com/Azure/azure-c-shared-utility.git

Previously the code assumed the 'path' was both the checkout location
under .git/modules, as well as the path to extract the components.  This
proved to be incorrect as the .git/modules path needs to match the submodule
'name'.  This causes the components that were fetched to be initialized in
the wrong location, which later caused the 'git submodule update' process to
skip not properly initialized modules.

A test case was added for this specific case to ensure a regression does
not appear in the future.

(Bitbake rev: ffd7ed530a17d22df576d986ac78428a6979e79c)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-18 11:31:10 +01:00
Alexander Kanavin
b035b4dcee bitbake: bitbake: fix version comparison when one of the versions ends in .
Previously, this would happen:

======================================================================
ERROR: test_vercmpstring (bb.tests.utils.VerCmpString)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/alexander/development/poky/bitbake/lib/bb/tests/utils.py", line 45, in test_vercmpstring
    result = bb.utils.vercmp_string('1.', '1.1')
  File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 143, in vercmp_string
    return vercmp(ta, tb)
  File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 135, in vercmp
    r = vercmp_part(va, vb)
  File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 124, in vercmp_part
    elif ca < cb:
TypeError: '<' not supported between instances of 'NoneType' and 'int'

----------------------------------------------------------------------

(Bitbake rev: bd953d56d007a8bfa5ecb6e753da4abfb035f9f2)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-15 11:06:38 +01:00
Joshua Watt
a358cc2010 bitbake: bitbake: cooker: Rename __depends in all multiconfigs
The renaming of the __depends variable to __base_depends and file
watches needs to occurs for all multiconfigs, not just the base config.
Failing to do this for all multiconfigs will result in a huge increase
in the size of the parsing cache (about 5x for a single mulitconfig)
because all multiconfig caches will still depend on the base config
files. This will also seen a similar jump in the amount of time required
to load the parsing cache from memory, both because the cache is larger
and because of explosion of additional existence checks that must be
done for the base files.

[YOCTO #13359]

(Bitbake rev: da5d1560d4ad1c735f6166a5d9ce94f36c94186b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-11 13:28:21 +01:00
David Reyna
14040a2613 bitbake: toaster: Fix Thud Bitbake release metadata
Fix the Bitbake version ID for Thud (1.40).

[YOCTO #13356]

(Bitbake rev: f8a23ad4f8f0336470a5d5b074b7a2d02ec94631)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-10 09:44:41 +01:00
Richard Purdie
cdd4a52578 core-image-sato-sdk-ptest: Tweak size to stay within 4GB limit
Adding the valgrind debug symbol information caused the genericx86-64 image to
overflow the 4GB boundary. Tweak the sizes to avoid autobuilder failures yet
leave enough space all the tests still run successfully.

(From OE-Core rev: f162d5bfe6eaeca24f441c83c87252c8d05744fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Richard Purdie
ef1b4d1310 core-image-sato-sdk-ptest: Try and keep image below 4GB limit
(From OE-Core rev: 22f4d5218ad016442b8511e9ccae649faf79152c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Chee Yang Lee
34503c75b0 wic/bootimg-efi: replace hardcoded volume name with label
volume name should refer to --label in .wks.
Replace the hardcoded volume name  with label.
set "ESP" as default name when no lable specified.

(From OE-Core rev: becb0a3f855eff7700fa284a0a7981d6a260a1c5)

Signed-off-by: Chee Yang Lee <chee.yang.lee@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>
2019-05-22 00:31:49 +01:00
Joshua Watt
2d1077bb4f resulttool: Add option to dump all ptest logs
Adds an option to dump all the ptest logs to individual files in a
specified directory. If multiple test runs are present, the
'--prepend-run' argument will create separate directories for each test
run under the target directory and put the logs there to prevent each
test run from clobbering the others.

[YOCTO #13331]

(From OE-Core rev: 7d0dfd6ada9b2fdf0c14833c388730ffc887af49)

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>
2019-05-22 00:31:49 +01:00
Ross Burton
c965cb80ed wic: change expand behaviour to match docs
The documentation says that --expand takes a comma-separated list of
partition:size pairs, but the code was splitting on hyphens.

Hyphens are not a transitional separator for a list of items, so change the code
to reflect the documentation.

(From OE-Core rev: 8f6d55056a1c6f9fd00b09a8e91b3e888750e793)

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>
2019-05-22 00:31:49 +01:00
Alex Kiernan
fa3daedf7c recipetool: fix unbound variable when fixed SRCREV can't be found
If attempting to find a fixed SRCREV fails because the directory doesn't exit,
avoid failing with:

  Traceback (most recent call last):
    File "/home/vagrant/poky/scripts/recipetool", line 121, in <module>
      ret = main()
    File "/home/vagrant/poky/scripts/recipetool", line 110, in main
      ret = args.func(args)
    File "/home/vagrant/poky/scripts/lib/recipetool/create.py", line 707, in create_recipe
      srcrev = stdout.rstrip()
  UnboundLocalError: local variable 'stdout' referenced before assignment

Fixes: 000480c42797 ("recipetool / devtool: set a fixed SRCREV by default when fetching from git")
(From OE-Core rev: 7dbaaf8a823527a3523187327f5b0885fc682510)

Signed-off-by: Alex Kiernan <alex.kiernan@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>
2019-05-22 00:31:49 +01:00
sangeeta jain
a005b1897a resulttool/manualexecution: Enable test case configuration option
Current manualexecution required user to exceute all test cases defined inside a "modulename.json" file in oeqa/manual

There are cases when all test cases all not required to run for a module on specific DUT.

Enable manualexecution to have the optional feature where it will use pre-defined json format test case configuration file
where user will be able to select test cases from the "modulename.json" instead of running all of them. This will help
in reducing testing time and reporting unneccesary skip or failures.

Example pre-defined json format test case configuration file (for build-applince):

{
    "testcases" : [
        "build-appliance.build-appliance.Create_core-image-sato-sdk_using_build_appliance",
        "build-appliance.build-appliance.Build_a_image_without_error_(added_recipe)"
    ]
}

(From OE-Core rev: 1d3696bd3b6d05b91c119ade79c40510d1426a56)

Signed-off-by: sangeeta jain <sangeeta.jain@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>
2019-05-22 00:31:49 +01:00
Richard Purdie
ee7cffefbf resultool/resultutils: Fix module import error
Fix AttributeError: module 'urllib' has no attribute 'request' when
using remote http urls.

(From OE-Core rev: 170a233452539b0b6b8fc4db50cf69d848d1ac5b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Joshua Watt
02d88de4b5 resulttool: Add log subcommand
Adds a subcommand for dumping various logs from test results

(From OE-Core rev: 7bfb8bef5ec9c4137f439b35c56856697c6b79a4)

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>
2019-05-22 00:31:49 +01:00
Joshua Watt
35fa3e7e18 resulttool: Load results from URL
Adds support for resulttool to load JSON files directly from a http://
or https:// URL

(From OE-Core rev: 3e48404afe27c93fa6ffbd8d66bc52dcd6216005)

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>
2019-05-22 00:31:49 +01:00
Yeoh Ee Peng
47d3b81ad3 resulttool/manualexecution: Refactor and remove duplicate code
Remove duplicate codes. Replace unnecessary class variables with
local variables. Rename variables and arguments with simple and
standard name.

(From OE-Core rev: 3dae8d5a02c29523dc640bee31a362f46ffde6ca)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-05-22 00:31:49 +01:00
Yeoh Ee Peng
559176c191 resulttool/manualexecution: Enable creation of configuration option file
Allow the creation of configuration option file based on user inputs.
Where this configuration option file will be used by the the manual
execution to display options for configuration rather than user
need to inputs configuration manually.

(From OE-Core rev: 17fd507e218bfd0f6745737bcd1a170d82e712e5)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-05-22 00:31:49 +01:00
Hongxu Jia
87661cbe0c oeqa/targetcontrol.py: fix qemuparams not work in runqemu with launch_cmd
As runqemu with launch_cmd means directly run the command, don't need set
rootfs or env vars.

Since commit [a847dd7202 runqemu: Let qemuparams override default settings]
applied in oe-core, if launch_cmd contains "qemuparams='***'", it does not
work, which is overridden by latter qemuparams="-serial tcp:127.0.0.1" in
QemuRunner.launch();

So we set qemuparams as a parameter in runqemu, the fix makes it work

(From OE-Core rev: 7d4450d373a297f246b8c3708fd7d2cafadd3ae9)

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>
2019-05-22 00:31:49 +01:00
Richard Purdie
afb311001c oeqa/target/ssh: Replace suggogatepass with ignoring errors
We continued to see encoding problems with ssh commands run in oeqa. After much
research the conclusion was we should use ignore the errors since some occasional bad
locale encoding is better than the unicode decoding issues we were seeing which crashed
large parts of tests.

(From OE-Core rev: cf4d3230ac439118a2ad3c381bac38e11b3e14e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Mikko Rapeli
29e2a3f5e8 oeqa/sdk: use bash to execute SDK test commands
The commands only work with with bash. If /bin/sh is
dash like in Debian, the command execution fails with
errors like:

Standard Output: /bin/sh: 5: export: --sysroot: bad variable name

and all SDK tests fail.

(From OE-Core rev: 274c22a1fd95418e4afb6633bb4b2e6debc4d7ea)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Richard Purdie
8356d0f38c oeqa/concurrenttest: Patch subunit module to handle classSetup failures
Currently setupClass errors were not being mapped back to the failing tests
and they were hence being marked as UNKNOWN and the test statistics were
inaccurate.

This is because whilst the errors were being encoded into the test results
stream, the decoder doesn't cope with an error outside a testStart event.

We patch in an addError handler to the outsideTest parser so that this
does get handled in a way similar to the non-concurrent case.

It would be nice if we didn't have to do this but there doesn't seem
to be any other way to fix this other than forking subunit.

We also make a minor change so another of our changes can cope with
tests without a start time.

(From OE-Core rev: 6f58c301e2d3463848df35c5b5c55d167ab34035)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Richard Purdie
63bea82d93 oeqa/runner: Fix subunit setupClass/setupModule failure handling
The string format for subunit setupClass/setupModule failures is slightly
different, tweak the regex to correctly handle both cases.

(From OE-Core rev: f1009d6d44097a3f140e2f8679e9184031b10b44)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Richard Purdie
7b1cbc340b oeqa/core/runner: Handle unexpectedSucesses
Instead of showing:
RESULTS - ptest.PtestRunnerTest.test_ptestrunner - Testcase 1600: UNKNOWN (32.30s)

map unexpectedSuccesses to PASSED and improve the way they're displayed. We
expect/allow ptest runner to fail but if it passes we should handle it correctly.

(From OE-Core rev: 3c164b94fbb0efc513ee747cccd571a73688b541)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Richard Purdie
2f91565eab oeqa/ssh: Avoid unicode decode exceptions
This code really needs to be rewritten to not split potential
multibyte characters, for now work around it to avoid exceptions like:

  File "/home/pokybuild/yocto-worker/qa-extras2/build/meta/lib/oeqa/core/target/ssh.py", line 211, in run
    data = reader.read(1024, 4096)
  File "/usr/lib64/python3.6/codecs.py", line 503, in read
    newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 0: invalid start byte

(From OE-Core rev: 53df0c93c46b6ab1366df44bd9927dc6f8699b29)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Mardegan, Alberto
2ba5557e0b oeqa/core/runner: dump stdout and stderr of each test case
Some CI pipelines might perform further processing of the test output
(for instance, to plot some metrics into a chart). However, Since `thud`
we switched away from the XML-based jUnit reporting, and at the same
time we lost the ability of collecting the stdout and stderr of the
various tests.

We now restore this functionality by adding `stdout` and `stderr` keys
to the JSON reports. This behavior is off by default; in order to enable
it, one must set the `TESTREPORT_FULLLOGS` variable in the bitbake
configuration.

(From OE-Core rev: 68919826fe4d4db4582223569c5a939a9c2f9c72)

Signed-off-by: Alberto Mardegan <amardegan@luxoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:49 +01:00
Richard Purdie
bb3a8929c7 oeqa/utils/qemurunner: Fix typo in previous commit
(From OE-Core rev: 909baeb5901f7f212fbdd6c358c5ada6fe25e091)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Richard Purdie
a01c029898 oeqa/qemurunner: Dont mix binary and non-binary strings
self.msg is a str(), bootlog is b'' so this code clearly doesn't work. Add
in a decode since its being used as a string.

(From OE-Core rev: 5685a349eb471f4c8c9dcc2dc3b34f20369920bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Ming Liu
cba849c25b opkg-utils: backport a patch to fix a sstate timestamp issue
When using sstate, two parallel builds can produce two packages
with the same mtime but different checksums. When later one of
those two builds fetches the others ipk, the package index does
not get udpated properly (since mtime matches). This ends up with
messages such as:
  Downloading file:/../tmp/work/../image/...ipk.
  Removing corrupt package file /../sysroot/../var/cache/opkg/volatile/...ipk

However, in that case, ctime is different. Use ctime instead of
mtime to prevent failures like this.

(From OE-Core rev: 6351f52609af51055786f7b3b24aee722b4dcea4)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Andreas Müller
522b0d8615 adwaita-icon-theme: do not delete symbolic svg but pack them in ${PN}-symbolic
This fixes:
* gtk-icon-browser: for symbolic view almost all icons were missing
* xfce's thunar: 'home' and 'up' icons were missing. Had a long discussion with
  XFCE-people [1] and asked here [2].

How could I overlook the most obvious...

[1] https://bugzilla.xfce.org/show_bug.cgi?id=14443
[2] http://lists.openembedded.org/pipermail/openembedded-core/2018-November/275815.html

(From OE-Core rev: 0911e7d2f5443210b594a198ada8465af7a2fc78)

(From OE-Core rev: 9c63433010aae6891149a7605a637bee879dc4ef)

Signed-off-by: Andreas Müller <schnitzeltony@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>
2019-05-22 00:31:48 +01:00
Chen Qi
a84ff1c062 runqemu: do not check return code of tput
The subprocess.run was replaced by subprocess.check_call because
of compatibility support down to python 3.4. But we really don't
care about whether that command succeeds. Some user reports that
in some tmux environment, this command fails and gives some
unpleasant traceback output. So we use 'call' instead of 'check_call'
to avoid such problem.

(From OE-Core rev: ced3c75fa75d9b9373d695d9204b197b98ea3bd9)

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>
2019-05-22 00:31:48 +01:00
Hongxu Jia
dfc74324c9 image_types.bbclass: fix a race between the ubi and ubifs FSTYPES
The ubi, ubifs and multiubi FSTYPES calls `mkfs.ubifs' to create UBIFS
images.

In do_image_ubi, $vname is empty, the name of UBIFS image conflicts with
the one in do_image_ubifs, and it's a race risk.
[do_image_ubi]
mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ${mkubifs_args}
[do_image_ubi]

[do_image_ubifs]
mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}
[do_image_ubifs]

In do_image_multiubi, $vname is not empty, the UBIFS image name does
not conflict with others.

So do not call mkfs.ubifs in do_image_ubi and depend on do_image_ubifs
to create UBIFS images.

The fix does not affect do_image_multiubi which still call mkfs.ubifs to
create multiple UBIFS images and symlinks.

[YOCTO #13272]

(From OE-Core rev: 5e900f2c9319843c8905713dd3dd12a1ad435976)

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>
2019-05-22 00:31:48 +01:00
Richard Purdie
cd7114274d e2fsprogs: Skip slow ptest tests
The slow tests run unreliably with our current setup/infrsstructure/timeouts.

There are only five slow ones and having the other ~250 run reliably without timeouts
is the priority right now. We can revisit the slow tests at some later date if wanted.

(From OE-Core rev: ae87e2fab31590aaf8c2f0672d327d633f896cbd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Changqing Li
0e354a5184 ruby: add ptest
(From OE-Core rev: ed650ca30379279f6a0f1e8f9f728cc542504732)

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>
2019-05-22 00:31:48 +01:00
Changqing Li
6e17a309e2 ruby: make ext module fiddle can compile success
ext module fiddle depend on libffi, in ruby source tree,
there is in internal libffi in case target platfrom don't
install libffi, but autotools.bbclass delete configure
under libffi and not run autoreconf to regenerate one.so
we met this error:
ruby-2.5.3/ext/fiddle/libffi-3.2.1/configure: No such file or directory

the fix is add depend and extra_oeconf to use libffi in the system

(From OE-Core rev: 3a0272bab546a4b47feab117713e32873419bbe7)

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>
2019-05-22 00:31:48 +01:00
Grandbois, Brett
0e159278a1 ruby: remove CVE-2018-1000073.patch as already fixed
rubygems 2.7.6 which is in ruby 2.5.3 has this fix and as currently
applied all gem extraction fails as the realpath check is done against
the full path including the file to be extracted which will always fail
as the file hasnt been extracted yet

(From OE-Core rev: a9cc1b3f9a684c14f02b06226693b023adc3e609)

Signed-off-by: Brett Grandbois <brett.grandbois@opengear.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Manjukumar Matha
589437ee23 ruby.inc: Add dependency on readline-native
Add dependency on readline-native to fix the following issue

uninitialized constant Logfile
|       Check ext/fiddle/mkmf.log for more details.
| readline:
|       Could not be configured. It will not be installed.
|
build/tmp/work/x86_64-linux/ruby-native/2.5.1-r0/ruby-2.5.1/ext/readline/extconf.rb:62:
Neither readline nor libedit was found
|       Check ext/readline/mkmf.log for more details.
| *** Fix the problems, then remove these directories and try again if
you want.

(From OE-Core rev: bddf9bec4913fb8eabe6f2995020bf06cc7f890a)

Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Lei Yang
70846334d1 recipetool: add missed module
When I use recipetool to add a new recipe, it says:

[snip]
sys.exit(14)
NameError: name 'sys' is not defined
[snip]

(From OE-Core rev: 4cf8d01d0066699f39162e25d1cdc847c0175473)

Signed-off-by: Lei Yang <Lei.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>
2019-05-22 00:31:48 +01:00
Richard Purdie
3c0cf0ecb2 pseudo: Update to gain key bugfixes
Newer distros are using new versions of glibc and coreutils which use the new glibc
renameat2 function. We need to intercept this for correct functioning of pseudo. This
is essential to ensure new distros continue to work with the project.

Also, this version has a fix for path/inode cross corruption problems which
may explain our mysterious locale permissions issues.

Many thanks to Otavio and Peter Seebach for the help in figuring this out and
fixing it.

(From OE-Core rev: b768cfb6c849cbbc2d6e2d03974af009ca5340de)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Yeoh Ee Peng
3cbf1342dd resulttool/manualexecution: Enable configuration options selection
Current manualexecution required user to input configuration manually
where there were inconsistent inputs and human typo issues.

Enable manualexecution to have the optional feature where it
will use pre-compiled configuration options file where user will
be able to select configuration from the pre-compiled list instead
of manual key-in the configuration. This will eliminate human error.

Expect the pre-compiled configuration options file in json format below

{
    "bsps-hw": {
        "IMAGE_BASENAME": {
            "1": "core-image-sato-sdk"
        },
        "MACHINE": {
            "1": "beaglebone-yocto",
            "2": "edgerouter",
            "3": "mpc8315e-rdb",
            "4": "genericx86",
            "5": "genericx86-64"
        }
    },
    "bsps-qemu": {
        "IMAGE_BASENAME": {
            "1": "core-image-sato-sdk"
        },
        "MACHINE": {
            "1": "qemuarm",
            "2": "qemuarm64",
            "3": "qemumips",
            "4": "qemumips64",
            "5": "qemuppc",
            "6": "qemux86",
            "7": "qemux86-64"
        }
    }
}

(From OE-Core rev: 4c6bac8453768cab9c416c012019ead5edeaafa5)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-05-22 00:31:48 +01:00
Bruce Ashfield
2acd92292d linux-yocto/4.18: update to v4.18.33
Integrating Paul Gortmaker's -stable ports to 4.18 which comprise the
following commits:

   56f9fe35a4c5 Linux 4.18.33
   bf44ff79b855 net: hns: Fixes the missing put_device in positive leg for roce reset
   81614c514f4e mm: Use fixed constant in page_frag_alloc instead of size + 1
   035b5a7a3e3f ipvs: fix warning on unused variable
   58ab04e46d92 intel_th: gth: Fix an off-by-one in output unassigning
   8cb600d53c6c ARM: dts: exynos: Fix max voltage for buck8 regulator on Odroid XU3/XU4
   f11b815f39bf s390/setup: fix boot crash for machine without EDAT-1
   4059d23a36a6 KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
   d94637dc73e5 KVM: nVMX: Apply addr size mask to effective address for VMX instructions
   ee356457f2a3 KVM: nVMX: Sign extend displacements of VMX instr's mem operands
   b4485d9eb039 KVM: x86/mmu: Do not cache MMIO accesses while memslots are in flux
   fe7d69927661 KVM: x86/mmu: Detect MMIO generation wrap in any address space
   c34cae89374b KVM: Call kvm_arch_memslots_updated() before updating memslots
   9fb8b858d552 drm/amd/display: don't call dm_pp_ function from an fpu block
   d4302b79ffbd drm/amd/powerplay: correct power reading on fiji
   5f8c51055244 drm/radeon/evergreen_cs: fix missing break in switch statement
   3fc39cdce701 media: imx: csi: Stop upstream before disabling IDMA channel
   5c008f7971b8 media: imx: csi: Disable CSI immediately after last EOF
   74a5ff7db3b2 media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
   142a9bd66395 media: lgdt330x: fix lock status reporting
   465204a0c772 media: imx: prpencvf: Stop upstream before disabling IDMA channel
   42a2c1a40db0 rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
   f9480ca4fb29 tpm: Unify the send callback behaviour
   5f28509f81ad tpm/tpm_crb: Avoid unaligned reads in crb_recv()
   ea37270d4c87 md: Fix failed allocation of md_register_thread
   bd77b69a20ba perf intel-pt: Fix divide by zero when TSC is not available
   c9a63c17458f perf/x86/intel/uncore: Fix client IMC events return huge result
   63a25bdd4227 perf intel-pt: Fix overlap calculation for padding
   66a57e3b95b5 perf auxtrace: Define auxtrace record alignment
   76650254e18e perf intel-pt: Fix CYC timestamp calculation after OVF
   274ef4840d79 x86/unwind/orc: Fix ORC unwind table alignment
   3928a903e185 vt: perform safe console erase in the right order
   645a7ca69855 stable-kernel-rules.rst: add link to networking patch queue
   1c14622adb15 bcache: never writeback a discard operation
   261aad0b3ea7 PM / wakeup: Rework wakeup source timer cancellation
   ee610ce938cd svcrpc: fix UDP on servers with lots of threads
   0530b66bfd53 NFSv4.1: Reinitialise sequence results before retransmitting a request
   9a1d7090b36e nfsd: fix wrong check in write_v4_end_grace()
   e7edb30fd6b7 nfsd: fix memory corruption caused by readdir
   672f2e600d21 nfsd: fix performance-limiting session calculation
   624865483faa NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
   2b5fef7c9927 NFS: Fix an I/O request leakage in nfs_do_recoalesce
   63adecfe53e9 NFS: Fix I/O request leakages
   0b0545dd7e6e cpcap-charger: generate events for userspace
   8f27f8570fa7 mfd: sm501: Fix potential NULL pointer dereference
   f964d308797d dm integrity: limit the rate of error messages
   1ed46c0c4f65 dm: fix to_sector() for 32bit
   ea77e999f649 ipmi_si: fix use-after-free of resource->name
   5a0bc68e9a0d arm64: KVM: Fix architecturally invalid reset value for FPEXC32_EL2
   9dc4a1a6447e arm64: debug: Ensure debug handlers check triggering exception level
   c33e96f8ddb2 arm64: Fix HCR.TGE status for NMI contexts
   bb7edb8a409a ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
   e8d7edd36a92 powerpc/traps: Fix the message printed when stack overflows
   fbea0579063f powerpc/hugetlb: Don't do runtime allocation of 16G pages in LPAR configuration
   88d0042148f0 powerpc/ptrace: Simplify vr_get/set() to avoid GCC warning
   b0fc119506bf powerpc: Fix 32-bit KVM-PR lockup and host crash with MacOS guest
   6e975dad4a8e powerpc/powernv: Don't reprogram SLW image on every KVM guest entry/exit
   fcf2d15a0a32 powerpc/83xx: Also save/restore SPRG4-7 during suspend
   87481c65c805 powerpc/powernv: Make opal log only readable by root
   12319dcc9a80 powerpc/wii: properly disable use of BATs when requested.
   be851891b1c9 powerpc/32: Clear on-stack exception marker upon exception return
   24d0b4b51dd1 security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock
   3ea70bdc892f selinux: add the missing walk_size + len check in selinux_sctp_bind_connect
   00d550a195f2 jbd2: fix compile warning when using JBUFFER_TRACE
   b18848cc624a jbd2: clear dirty flag when revoking a buffer from an older transaction
   108ba9f62780 serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954 chip use the pci_pericom_setup()
   a79bc3e5fb7c serial: 8250_pci: Fix number of ports for ACCES serial cards
   78e39f8bb56e serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
   04eb2755b4e9 serial: uartps: Fix stuck ISR if RX disabled with non-empty FIFO
   9007ccc01a91 bpf: only test gso type on gso packets
   ef5b4e1f5735 drm/i915: Relax mmap VMA check
   23ca68189393 can: flexcan: FLEXCAN_IFLAG_MB: add () around macro argument
   8529fecb481e gpio: pca953x: Fix dereference of irq data in shutdown
   31e04ac8a8ba media: i2c: ov5640: Fix post-reset delay
   1855d8c9e6c4 i2c: tegra: fix maximum transfer size
   8bc3433b216d parport_pc: fix find_superio io compare code, should use equal test.
   2c0542dbb267 intel_th: Don't reference unassigned outputs
   c64422307c34 device property: Fix the length used in PROPERTY_ENTRY_STRING()
   c88db9c0d127 kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
   5374924c9332 mm/memory.c: do_fault: avoid usage of stale vm_area_struct
   db693b432779 mm/vmalloc: fix size check for remap_vmalloc_range_partial()
   1811478753e3 mm: hwpoison: fix thp split handing in soft_offline_in_use_page()
   492ea426ddce dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit
   f1bb88d5cee1 usb: chipidea: tegra: Fix missed ci_hdrc_remove_device()
   9377917b523a clk: ingenic: Fix doc of ingenic_cgu_div_info
   f0412cfc06af clk: ingenic: Fix round_rate misbehaving with non-integer dividers
   b6b4011ce7d1 clk: samsung: exynos5: Fix kfree() of const memory on setting driver_override
   715fe29adfd1 clk: samsung: exynos5: Fix possible NULL pointer exception on platform_device_alloc() failure
   eb9aa4ebf835 clk: clk-twl6040: Fix imprecise external abort for pdmclk
   917fa829bbf5 clk: uniphier: Fix update register for CPU-gear
   80d526380136 ext2: Fix underflow in ext2_max_size()
   bbf30be02326 cxl: Wrap iterations over afu slices inside 'afu_list_lock'
   94f31d712f26 IB/hfi1: Close race condition on user context disable and close
   a80eceacf85c PCI: dwc: skip MSI init if MSIs have been explicitly disabled
   084005af4966 PCI/ASPM: Use LTR if already enabled by platform
   821934eb7e75 ext4: fix crash during online resizing
   01767d409537 ext4: add mask of ext4 flags to swap
   f21830e67d5d ext4: update quota information while swapping boot loader inode
   4de71f7481a7 ext4: cleanup pagecache before swap i_data
   4821bf3c61bb ext4: fix check of inode in swap_inode_boot_loader
   3cd2f1153739 cpufreq: pxa2xx: remove incorrect __init annotation
   dc4443928ee2 cpufreq: tegra124: add missing of_node_put()
   a0e15a764318 cpufreq: kryo: Release OPP tables on module removal
   d28564a8e60e x86/kprobes: Prohibit probing on optprobe template code
   56955276ba2e irqchip/brcmstb-l2: Use _irqsave locking variants in non-interrupt code
   14dda7949f82 irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table
   3a8560230470 libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
   7e7e5728d161 Btrfs: fix corruption reading shared and compressed extents after hole punching
   be1ee0e2fd42 btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
   cb292a678ee2 Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl
   f1f0ee2859e6 Btrfs: setup a nofs context for memory allocation at btrfs_create_tree()
   0e6de290666f m68k: Add -ffreestanding to CFLAGS
   f78f0d35d43a splice: don't merge into linked buffers
   433cbc2d30f3 fs/devpts: always delete dcache dentry-s in dput()
   dbb3e594eecd scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
   528af139ff6b scsi: sd: Optimal I/O size should be a multiple of physical block size
   ee579fc4e875 scsi: aacraid: Fix performance issue on logical drives
   818838eea45d scsi: virtio_scsi: don't send sc payload with tmfs
   478bd6b7f170 s390/virtio: handle find on invalid queue gracefully
   47c6ea331f58 s390/setup: fix early warning messages
   69304bcf9021 clocksource/drivers/arch_timer: Workaround for Allwinner A64 timer instability
   947a053a6d47 clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
   084c1f5522f1 clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
   95d7c41e448f regulator: s2mpa01: Fix step values for some LDOs
   69913dbd2d55 regulator: max77620: Initialize values for DT properties
   060c4f4e5d0c regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
   9a215e43276c spi: pxa2xx: Setup maximum supported DMA transfer length
   913cb6579c9a spi: ti-qspi: Fix mmap read when more than one CS in use
   bb427df35f34 netfilter: ipt_CLUSTERIP: fix warning unused variable cn
   8fb8fb9b67bb mmc:fix a bug when max_discard is 0
   85d7e5a8000a mmc: sdhci-esdhc-imx: fix HS400 timing issue
   882b6b31ea55 ACPI / device_sysfs: Avoid OF modalias creation for removed device
   b3a0dfcfdd64 tracing/perf: Use strndup_user() instead of buggy open-coded version
   054dec51d4e6 tracing: Do not free iter->trace in fail path of tracing_open_pipe()
   9031822970ed tracing: Use strncpy instead of memcpy for string keys in hist triggers
   9367b21da22c CIFS: Fix read after write for files with read caching
   db6a6106224d CIFS: Do not reset lease state to NONE on lease break
   aef1cf600f41 crypto: arm64/aes-ccm - fix bugs in non-NEON fallback routine
   134135d884be crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
   6779d6bdf611 crypto: x86/morus - fix handling chunked inputs and MAY_SLEEP
   2dc6214860a1 crypto: x86/aesni-gcm - fix crash on empty plaintext
   a6e83e8b0777 crypto: x86/aegis - fix handling chunked inputs and MAY_SLEEP
   f62b08c81429 crypto: testmgr - skip crc32c context test for ahash algorithms
   817cbacff744 crypto: skcipher - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
   bc647ef1085e crypto: pcbc - remove bogus memcpy()s with src == dest
   9fb0d7b8f9c2 crypto: morus - fix handling chunked inputs
   76bc71692818 crypto: hash - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
   67a69738546d crypto: arm64/crct10dif - revert to C code for short inputs
   e1369ad2e0fc crypto: arm64/aes-neonbs - fix returning final keystream block
   7807003aab85 crypto: arm/crct10dif - revert to C code for short inputs
   f54fbb0e595b crypto: aegis - fix handling chunked inputs
   1e1f858caf7d crypto: aead - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
   c81bf050b880 fix cgroup_do_mount() handling of failure exits
   638f4fb4ec67 libnvdimm: Fix altmap reservation size calculation
   5ebf4aa4cf6b libnvdimm/pmem: Honor force_raw for legacy pmem regions
   8f42d7ac37af libnvdimm, pfn: Fix over-trim in trim_pfn_device()
   68ab49b299fb libnvdimm/label: Clear 'updating' flag after label-set update
   063d65ab9fdd nfit/ars: Attempt short-ARS even in the no_init_ars case
   387b9f01ac16 nfit/ars: Attempt a short-ARS whenever the ARS state is idle at boot
   b4a1581c801d acpi/nfit: Fix bus command validation
   0c27d62e5752 nfit: acpi_nfit_ctl(): Check out_obj->type in the right place
   fd8e9cd85f26 stm class: Prevent division by zero
   dd1250b50c61 tmpfs: fix uninitialized return value in shmem_link
   f4cadb1ec900 selftests: fib_tests: sleep after changing carrier. again.
   7d856eb21fd5 net: set static variable an initial value in atl2_probe()
   193e19cdf7a0 bnxt_en: Wait longer for the firmware message response to complete.
   36ca3daa9b6a bnxt_en: Fix typo in firmware message timeout logic.
   aae48df6d81b nfp: bpf: fix ALU32 high bits clearance bug
   9fbe31fda762 nfp: bpf: fix code-gen bug on BPF_ALU | BPF_XOR | BPF_K
   a58be12de08d net: thunderx: add nicvf_send_msg_to_pf result check for set_rx_mode_task
   76320607b755 net: thunderx: make CFG_DONE message to run through generic send-ack sequence
   6d0ebfc3fd3c bpf, lpm: fix lookup bug in map_delete_elem
   4e9c4ca54607 mac80211_hwsim: propagate genlmsg_reply return code
   ce8e30135705 phonet: fix building with clang
   92f628f3c945 ARCv2: don't assume core 0x54 has dual issue
   1faac2e0838b ARCv2: support manual regfile save on interrupts
   53fc181c111c ARC: uacces: remove lp_start, lp_end from clobber list
   515122c2d88a ARCv2: lib: memcpy: fix doing prefetchw outside of buffer
   b1ba6184493e ixgbe: fix older devices that do not support IXGBE_MRQC_L3L4TXSWEN
   a7bc4915f286 tmpfs: fix link accounting when a tmpfile is linked in
   5beffa8382a9 mm: handle lru_add_drain_all for UP properly
   7bd326b49004 net: marvell: mvneta: fix DMA debug warning
   70e79b53dd95 arm64: Relax GIC version check during early boot
   e3ca5da971e0 ARM: dts: armada-xp: fix Armada XP boards NAND description
   2ac1b780dae0 qed: Fix iWARP syn packet mac address validation.
   9e1395d75177 qed: Fix iWARP buffer size provided for syn packet processing.
   5db253fa68bf ASoC: topology: free created components in tplg load error
   31983c568574 mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush timeout issue
   98b9e4e542eb net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe()
   d19e6c11ca1f qmi_wwan: apply SET_DTR quirk to Sierra WP7607
   59e3fdbb9d45 pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins
   63c87ecf5134 net: dsa: bcm_sf2: Do not assume DSA master supports WoL
   a2e5d18914c1 net: systemport: Fix reception of BPDUs
   8d33e97da9c5 scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task
   1c976b2c9f19 keys: Fix dependency loop between construction record and auth key
   590d6228f163 assoc_array: Fix shortcut creation
   5aa6e4f891a2 af_key: unconditionally clone on broadcast
   8cae27e41068 bpf: fix lockdep false positive in stackmap
   c16b543d92ee bpf: only adjust gso_size on bytestream protocols
   908e6fda5d7d ARM: 8824/1: fix a migrating irq bug when hotplug cpu
   d6fb8e0d9e7d esp: Skip TX bytes accounting when sending from a request socket
   2dd0beec5a84 clk: sunxi: A31: Fix wrong AHB gate number
   48db12b60b5b kallsyms: Handle too long symbols in kallsyms.c
   882dbe3d5c03 clk: sunxi-ng: v3s: Fix TCON reset de-assert bit
   1ab0225d6786 Input: st-keyscan - fix potential zalloc NULL dereference
   8a6ef92721b7 auxdisplay: ht16k33: fix potential user-after-free on module unload
   53f4d6948b35 i2c: bcm2835: Clear current buffer pointers and counts after a transfer
   60bc9292260f i2c: cadence: Fix the hold bit setting
   e6e2c6c26a58 net: hns: Fix object reference leaks in hns_dsaf_roce_reset()
   bf6be978fece mm: page_alloc: fix ref bias in page_frag_alloc() for 1-byte allocs
   7f72a70062d7 x86/CPU: Add Icelake model number
   4342d099969c net: dsa: bcm_sf2: potential array overflow in bcm_sf2_sw_suspend()
   6093401c933b scsi: qla2xxx: Fix panic from use after free in qla2x00_async_tm_cmd
   09f4a1b6edf1 Revert "mm: use early_pfn_to_nid in page_ext_init"
   7b9dd6a4976b mm/gup: fix gup_pmd_range() for dax
   3cd584b00e50 NFS: Don't use page_file_mapping after removing the page
   7d8cf3eb1dc7 xprtrdma: Make sure Send CQ is allocated on an existing compvec
   5c64b19db5ce floppy: check_events callback should not return a negative number
   1cae395dd7c0 ipvs: fix dependency on nf_defrag_ipv6
   d05d4feda816 blk-mq: insert rq with DONTPREP to hctx dispatch list when requeue
   0af0889613a8 netfilter: compat: initialize all fields in xt_init
   f2883b8eb0a9 mac80211: Fix Tx aggregation session tear down with ITXQs
   665cb8ebf0f3 mac80211: call drv_ibss_join() on restart
   0a1d76449997 Input: matrix_keypad - use flush_delayed_work()
   375152e09de2 Input: ps2-gpio - flush TX work when closing port
   b15599627bd0 Input: cap11xx - switch to using set_brightness_blocking()
   a1e0fb446a4b ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
   7a587d77b211 ASoC: samsung: Prevent clk_get_rate() calls in atomic context
   bf74076b7dd3 KVM: arm64: Forbid kprobing of the VHE world-switch code
   d74df61de605 arm/arm64: KVM: Don't panic on failure to properly reset system registers
   58d6ec80a286 arm/arm64: KVM: Allow a VCPU to fully reset itself
   c05c5a6e1f0e KVM: arm/arm64: Reset the VCPU without preemption and vcpu state loaded
   ba274486de32 ASoC: dapm: fix out-of-bounds accesses to DAPM lookup tables
   a3d8ea1f2555 ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
   237e6c308062 Input: pwm-vibra - stop regulator after disabling pwm, not before
   6a48d09a77a1 Input: pwm-vibra - prevent unbalanced regulator
   fcae9decbc8f s390/dasd: fix using offset into zero size array error
   f98a25dc02b7 KVM: arm/arm64: vgic: Make vgic_dist->lpi_list_lock a raw_spinlock
   74b6b1e49d06 gpu: ipu-v3: Fix CSI offsets for imx53
   1c0723cba9a9 drm/imx: imx-ldb: add missing of_node_puts
   321e0fbdae09 gpu: ipu-v3: Fix i.MX51 CSI control registers offset
   f0e52962b9f2 drm/imx: ignore plane updates on disabled crtcs
   38fc637ca52e crypto: rockchip - update new iv to device in multiple operations
   5d89757429b3 crypto: rockchip - fix scatterlist nents error
   2365ae3a03c9 crypto: ahash - fix another early termination in hash walk
   512b0d76c2c9 crypto: cfb - remove bogus memcpy() with src == dest
   66b1348939de crypto: cfb - add missing 'chunksize' property
   40c76d76e11f crypto: ccree - don't copy zero size ciphertext
   2ff9501c582f crypto: ccree - fix free of unallocated mlli buffer
   ba3c72efd404 crypto: caam - fixed handling of sg list
   5d9cee322faf crypto: ccree - fix missing break in switch statement
   e0ea8deb72db stm class: Fix an endless loop in channel allocation
   95b10e2f6a61 mei: bus: move hw module get/put to probe/release
   1af8d0304685 iio: adc: exynos-adc: Fix NULL pointer exception on unbind
   513052a27dab ASoC: codecs: pcm186x: Fix energysense SLEEP bit
   d5f37b5d7009 ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE()
   da21c5d9bacf ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
   b3e4f70db4f3 9p/net: fix memory leak in p9_client_create
   4b84eeface08 9p: use inode->i_lock to protect i_size_write() under 32-bit
   4441736404a3 media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused()
   3f7de80a22c6 perf/core: Fix impossible ring-buffer sizes warning

(From OE-Core rev: ad29465ccb9fea2622aa2ef8c7118a0deae829a2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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>
2019-05-22 00:31:48 +01:00
Bruce Ashfield
18585c3251 linux-yocto-tiny/4.18: point KBRANCH to 4.18
The other kernel versions had the -tiny KBRANCH typo of 4.15
fixed, but 4.18 was missed. So we update the kbranch to the right
version for 4.18 as well.

[YOCTO #13247]

(From OE-Core rev: d761b2ae95a84f353c4132bc9b0506c4a4b4c73f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@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>
2019-05-22 00:31:48 +01:00
Richard Purdie
a7472df42d core-image-sato-sdk-ptest: Fix free space issues causing test failures
Some tests such as strace-ptest require more than the current 500MB of free
space. Increase the amount available, staying under the 4GB limit. We have more
flexibility now since we shrank kernel-devsrc and the comments are out of date
due to that.

This should improve the strace-ptest results and the util-linux ones since
those sort after strace and also hit the space issues as strace-ptest didn't
clean up after itself when failing.

(From OE-Core rev: c4bb2bdbe6f74141f30171dabab49fa5cd45371f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Richard Purdie
9728d8e4fa core-image-sato-sdk-ptest: Increase qemu memory to 1GB
(From OE-Core rev: 2861b339f4539ec4042cc7aa5351361246f4921f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Yeoh Ee Peng
08230d15a8 resulttool: Enable report for single result file
Current validation check function inside resulttool disallow the
report for single result file although the underlying library
was able to handle both directory and file as source input to report.
Removed the validation check as it was no longer needed and to
enable report for single result file.

(From OE-Core rev: dc15a21cbb3090dfb56e78f622486f843be4f54a)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-05-22 00:31:48 +01:00
Kai Kang
032c2e5deb avahi: fix CVE-2017-6519
Backport patch to fix CVE-2017-6519.

CVE: CVE-2017-6519

(From OE-Core rev: cf787f8eab1c85dbafb5e74bf12eb4ddb5c5cbf7)

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>
2019-05-22 00:31:48 +01:00
Ross Burton
5b80f507d2 libexif: fix CVE-2016-6328 and CVE-2018-20030
(From OE-Core rev: fbb34412641afa0fa7327cf599b82564ca375217)

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>
2019-05-22 00:31:48 +01:00
Ross Burton
3eb0322125 libsndfile1: fix CVE-2019-3832
The previous fix for CVE-2018-19758 wasn't complete, so backport another patch
to solve it properly.

(From OE-Core rev: 932762be3999906c2e8a0ed9236f1f01d9e2ea93)

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>
2019-05-22 00:31:48 +01:00
Ross Burton
c4d4765082 libsndfile1: update security patches
Remove CVE-2017-14245-14246.patch, fix rejected upstream as it doesn't solve the
underlying issue.

Instead 0001-a-ulaw-fix-multiple-buffer-overflows-432 also solves CVE-2017-14245
and CVE-2017-14246 properly.

Add patches for CVE-2017-12562 and CVE-2018-19758.

Refresh CVE-2018-13139.patch.

(From OE-Core rev: e6b272b7c0d10f49dde71dd9714aaa0fb6aec091)

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>
2019-05-22 00:31:48 +01:00
Ross Burton
0a0e9bd513 bluez5: fix CVE-2018-10910
Fix this CVE (Bluetooth discoverability may be enabled with no agents to handle
requests) by backporting a number of patches from upstream.

(From OE-Core rev: 883726c93b4e6d64eec942e2fc9c937f7092adb0)

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>
2019-05-22 00:31:48 +01:00
David Frey
3a9be51359 bluez5: Fix status subcommand of init script
Update the bluez5 init script to resolve an issue where the status
subcommand would exit without printing any message if bluez was not
running. The early exit was caused by the fact that the init script has
"set -e". When "pidof ${DAEMON} >/dev/null" is executed, the script
terminates immediately if bluez isn't running because pidof returns a
non-zero result. The fixed version does not suffer from this issue and
makes use of the "status" function from the functions library.

(From OE-Core rev: 383425fb86fdeccad88080369078d9ac988bab2f)

Signed-off-by: David Frey <dpfrey@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>
2019-05-22 00:31:48 +01:00
Peter A. Bigot
c184fa0892 bluez5: add mesh dependency on ell
Introduced at or before 5.50.

(From OE-Core rev: 0ae5ff4c0adc5fd727e5c5c47aba8c7859d60a73)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Taras Kondratiuk
711064cad9 devtool: prevent starting git gc in background
Devtool creates a git repository for extracted sources in a temporary
directory and then moves it to a final destination after patching is
done. Unfortunately devtool is not aware that some of its git operations
may have caused git garbage collector to start in background. If timing
is just right a repository move fails because GC is removing git objects
while they are being moved.

The issue was hit on Krogoth release, but the code that moves created
git repository is still the same.

Disable gc.autodetach to make GC run synchronously and block git until
it is done.

Traceback (most recent call last):
  File "<snip>/openembedded-core/scripts/devtool", line 342, in <module>
    ret = main()
  File "<snip>/openembedded-core/scripts/devtool", line 329, in main
    ret = args.func(args, config, basepath, workspace)
  File "<snip>/openembedded-core/scripts/lib/devtool/standard.py", line 352, in extract
    initial_rev = _extract_source(srctree, args.keep_temp, args.branch, False, rd)
  File "<snip>/openembedded-core/scripts/lib/devtool/standard.py", line 644, in _extract_source
    shutil.move(srcsubdir, srctree)
  File "/usr/lib/python2.7/shutil.py", line 299, in move
    copytree(src, real_dst, symlinks=True)
  File "/usr/lib/python2.7/shutil.py", line 208, in copytree
    raise Error, errors
Error: [('/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/5e', '<snip>/build/grpc/grpc_src/.git/objects/5e', "[Errno 2] No such file or directory: '/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/5e'"), ('/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/57', '<snip>/build/grpc/grpc_src/.git/objects/57', "[Errno 2] No such file or directory: '/tmp/devtool5RXkuX/workdir/grpc-1.2.5/.git/objects/57'"), many git objects ... ]

(From OE-Core rev: eae5caaf050f54a065e2654a60f55fda2c3afd95)

Signed-off-by: Taras Kondratiuk <takondra@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Ross Burton
8422861b17 python: fix CVE-2018-14647 in python-native too
(From OE-Core rev: 65042ebf07afad2922dcdfceb6e8931c05255649)

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>
2019-05-22 00:31:48 +01:00
Changqing Li
51c5b21ae7 python-native: fix one do_populate_sysroot warning
Fix below warning:
WARNING: Skipping RPATH /usr/lib64 as is a standard search path for
work/x86_64-linux/python-native/2.7.15-r1.1/recipe-sysroot-native/
usr/lib/python2.7/lib-dynload/_bsddb.so

setup.py will check db.h under include_dirs, for native build,
/usr/lib64 will be insert to postion 0 of include_dirs, so
it's priority is higher then our sysroot, cause db.h sysroot
is ignored, and rpath set to /usr/lib64. and this cause warning
when do_populate_sysroot. use append to fix it.

(From OE-Core rev: 12df5392afb8446507bb73f4d33ee42e06a17b82)

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>
2019-05-22 00:31:48 +01:00
Aditya Tayade
6a6756f46a run-ptest: use error handling for useradd and userdel
Error handling in shell scripts is too easy to forget and
get wrong. It is possible to check every external command
for return values but it is better to use a generic setting
which halts execution of the script on any failures.

Upstream-Status: Pending
(From OE-Core rev: ca415c4250e32e9430a13b9edf7b308637ce597f)

Signed-off-by: Aditya Tayade <Aditya.Tayade@kpit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Ross Burton
fe415144db zlib: clean up ptest
Instead of patching and sedding the makefile, just install test/example and
execute it in run-ptest.  example is the bulk of the test suite, as minimal as
it is.

(From OE-Core rev: 9088a78e78f70721b2aa6bdbdf055551d5bd0265)

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>
2019-05-22 00:31:48 +01:00
Ross Burton
f1add4b50e zlib: cleanup
Drop remove.ldconfig.call.patch, as it's easier to just set LDCONFIG=true.

Pass uname=GNU via the documented configure option instead of undocumented
environment variable.

Rename zlib-1.2.11/ to just zlib/ as we don't ship multiple versions.

Send ldflags-tests.patch upstream and update Upstream-Status.

(From OE-Core rev: 9535dc7c6dc185defac2cad6a2733621c42420b7)

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>
2019-05-22 00:31:48 +01:00
Yann CARDAILLAC
bc4556512d correct do_patch for kernel bbappend in sdk
do_patch rule of SDK's workspace/appends/linux-*.bbhappend may fail if script are not written in Python

that was the case with Phytec's BSP, the fix was to replace the do_patch rule with :

do_patch[noexec]="1" when the file was generated in scripts/lib/devtool/standard.py

(From OE-Core rev: e041812a84025a9ff9121efabc3805ff2dfe6375)

Signed-off-by: Yann CARDAILLAC <yann.cardaillac@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Robert Yang
2a708dec24 oe-init-build-env: Error out when failed to locate cwd
Ubuntu's /bin/sh symlinks to /bin/dash by default, so
subprocess.check_call(oe-init-build-env, cwd=builddir) would be failed since
pwd is builddir, and there is no $builddir/oe-init-build-env, this would
lead to other confusing errors, check and error it out earlier to make it
easier to locate the problem.

We don't meet the problem when manually run ". oe-init-build-env" is because
Ubuntu's default login shell is bash, but subprocess.check_call() doesn't
respect to login shell, so the error only happens in situations like
subprocess.check_call().

And also print errors to stderr as oe-buildenv-internal does.

(From OE-Core rev: aa4d86ff55b01d150f49b5b4517b0c661a10c36b)

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>
2019-05-22 00:31:48 +01:00
Armin Kuster
c9595af8ad python: time.tzset missing
import time
time.tzset()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'time' has no attribute 'tzset'

enable tzset in both python versions

(From OE-Core rev: e7721ee7e7942570ebab793f5870d7a021154a92)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[Fix up for Thud context ie python3_3.5.6]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:48 +01:00
Armin Kuster
371f57a1ee timezone: update to 2019a
The 2019a release of the tz code and data is available. It reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes:

  Briefly:
    Palestine "springs forward" on 2019-03-30 instead of 2019-03-23.
    Metlakatla "fell back" to rejoin Alaska Time on 2019-01-20 at 02:00.

  Changes to past and future timestamps

    Palestine will not start DST until 2019-03-30, instead of 2019-03-23 as
    previously predicted.  Adjust our prediction by guessing that spring
    transitions will be between 24 and 30 March, which matches recent practice
    since 2016.  (Thanks to Even Scharning and Tim Parenti.)

    Metlakatla ended its observance of Pacific standard time,
    rejoining Alaska Time, on 2019-01-20 at 02:00.  (Thanks to Ryan
    Stanley and Tim Parenti.)

  Changes to past timestamps

    Israel observed DST in 1980 (08-02/09-13) and 1984 (05-05/08-25).
    (Thanks to Alois Treindl and Isaac Starkman.)

  Changes to time zone abbreviations

    Etc/UCT is now a backward-compatibility link to Etc/UTC, instead
    of being a separate zone that generates the abbreviation "UCT",
    which nowadays is typically a typo.  (Problem reported by Isiah
    Meadows.)

  Changes to code

    zic now has an -r option to limit the time range of output data.
    For example, 'zic -r @1000000000' limits the output data to
    timestamps starting 1000000000 seconds after the Epoch.
    This helps shrink output size and can be useful for applications
    not needing the full timestamp history, such as TZDIST truncation;
    see Internet RFC 8536 section 5.1.  (Inspired by a feature request
    from Christopher Wong, helped along by bug reports from Wong and
    from Tim Parenti.)

  Changes to documentation

    Mention Internet RFC 8536 (February 2019), which documents TZif.

    tz-link.html now cites tzdata-meta
    <https://tzdata-meta.timtimeonline.com/>.

(From OE-Core rev: aa5c0d159c5016c6517f42a0a1738188b5646517)

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>
2019-05-22 00:31:47 +01:00
Armin Kuster
ddfa6d1c2d timezone: refactor to simplify maint
move tzcode and tzdata-native into new dir

Updates are now limited to the common include file.

[v2]
Fix UMMARY typ0 in timezone.inc

(From OE-Core rev: a053af9d2bbd1f7cf2d05100af208c359190eb97)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[packages stayed the same, align for future updates]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:47 +01:00
Chen Qi
b715031fc6 openssl: follow OE's rule for specifying CVE ID
(From OE-Core rev: a3dd494337bbdf20d7bff651d533f944f270766e)

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>
2019-05-22 00:31:47 +01:00
Otavio Salvador
be0b881078 openssl10: Upgrade 1.0.2q -> 1.0.2r
(From OE-Core rev: 3aad3c98cf8af4929bc416bbda55ccc71879f2f2)

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>
2019-05-22 00:31:47 +01:00
Otavio Salvador
b968e5a451 openssl: Upgrade 1.1.1a -> 1.1.1b
License-Update: copyright years updated
(From OE-Core rev: 5f15e883502e6f737f7cdc577f6c104e8fbeeaa9)

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>
2019-05-22 00:31:47 +01:00
Ross Burton
5dca0e0091 openssl: fix CVE-2019-1543
(From OE-Core rev: d8fc8bbab4bf5c34d316cc884e83fc6e66d57954)

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>
2019-05-22 00:31:47 +01:00
Ross Burton
5bcdd22c23 openssl: don't disable the AFALG engine based on host kernel
Whether the AFALG engine (use of hardware crypto via AF_ALG) is enable or
disable depends on whether the host kernel is 4.1 or above, which has no bearing
on whether the target system supports it.

Remove the complicated logic and simply enable/disable as requested.

(From OE-Core rev: 6998a3d7d0ecd27014053fe40c9fb4e0ec970880)

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>
2019-05-22 00:31:47 +01:00
Ovidiu Panait
8d19b6aaa8 openssl: Add cryptodev-linux PACKAGECONFIG
The old bsd cryptodev engine was removed in
https://github.com/openssl/openssl/pull/3699
and the new one added in:
https://github.com/openssl/openssl/pull/3744

It can be enabled by configuring with "enable-devcryptoeng".

(From OE-Core rev: 89dc69464b9ec1c2cac5d2420dfe6928da50d384)

Signed-off-by: Ovidiu Panait <ovidiu.panait@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>
2019-05-22 00:31:47 +01:00
Alexander Kanavin
9854e29e7a openssl: drop Python 2.x dependency in -ptest
It is only needed by 95-test_external_pyca_data which is
actually skipped on the target.

[YOCTO #13204]

(From OE-Core rev: ba193703ccda16c0ed834248d8c9fda0d6ad2302)

Signed-off-by: Alexander Kanavin <alex.kanavin@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>
2019-05-22 00:31:47 +01:00
Richard Purdie
40b7fa68fb openssl: Fix ptest test output translation
openssl-ptest was recording now results, despite most tests passing. Fix
so that the successes/skips/failures are reported correctly.

(From OE-Core rev: 87728d921cfa5997b454ebc5074d2c1aee2def89)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 00:31:47 +01:00
Khem Raj
1b57d8c575 glibc: Drop upstream rejected patches
These patches were applied, hoping that they will eventually be accepted
upstream but they have been rejected, I think its best that they are
dropped so we can avoid novel unintended behaviours that no other
distros will be seeing

(From OE-Core rev:54550aa42378ce4b215bccbfd95e5e650b0d2efa)

(From OE-Core rev: dc2238b268d48b4e62a795a4f6b257efc298e2b2)

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
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>
2019-05-22 00:31:47 +01:00
Scott Rifenbark
50f33d3bfe overview-manual: Fixed broken link to pseudo.
Link has disappeared.  I am no longer using it and am using
the article to "Why Fakeroot" to cover both Fakeroot and
Pseudo "extra information" stuff.

(From yocto-docs rev: 2ed2d897ca6a8bfb20aefdbc11a815e10fa2376c)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:16:00 +01:00
Scott Rifenbark
722e24a45e Documentation: Prepare for 2.6.2 release.
poky.ent - updated variables
mega-manual.sed - updated release string
<manual>.xml - updated manual revision history tables

(From yocto-docs rev: 5559b4006668d47595b3e4b5d5703bb1c200d6d1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:16:00 +01:00
Chen Qi
3df4b6e536 pkgdata.py: avoid target-sdk-dummy-provides to mess things up
Sometimes we meet the following failure for the test_lookup_recipe
test case.

  AssertionError: 'zlib\nbusybox is in the RPROVIDES of target-sdk-provid[32 chars]ummy' != 'zlib\nbusybox'
    zlib
  + busybox- busybox is in the RPROVIDES of target-sdk-provides-dummy:
  - target-sdk-provides-dummy

This is because target-sdk-provides-dummy rprovides busybox.

So clean things up to avoid failure.

(From OE-Core rev: 7b5a069d4f11e36a1c407c4212aba5aafaf4ee7f)

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>
2019-04-09 22:15:46 +01:00
Yeoh Ee Peng
f2f7099b8a resulttool/manualexecution: Refactor and simplify codebase
Simplify and removed unnecessary codes.
Refactor to allow pythonic loop.

(From OE-Core rev: 31449f3a7649be781b7b61f915d5e879728e87af)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-04-09 22:15:46 +01:00
Yeoh Ee Peng
e29a39142e resulttool/manualexecution: Fixed step sorted by integer
Currently the manual execution display step by sorting
the step as string, where steps were not being sorted
correctly when there are more than 9 steps.

Fixed the step sorting by sorting step as integer.

(From OE-Core rev: 2d96a9228fb451752c061c25582a5cc1735099bf)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-04-09 22:15:46 +01:00
Yeoh Ee Peng
4a3d52537a resulttool/manualexecution: Enable display full steps without press enter
Current manualexecution required pressing enter button to show each step
information, where this was wasting execution time. Enable display
full steps without needing to any press enter button.

(From OE-Core rev: 6bb181b1e5f14d166cab8023b14316e54012c583)

Signed-off-by: Mazliana <mazliana.mohamad@intel.com>
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-04-09 22:15:46 +01:00
Yeoh Ee Peng
2147e148d1 resulttool/manualexecution: Standardize input check
Current input checking does not match the standard input practiced
by QA team. Change the input checking to match the standard
input practiced by the QA team.

(From OE-Core rev: f28cfbdad40a69f0cc1a7e71d20260c9621e6194)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-04-09 22:15:46 +01:00
Richard Purdie
056ff02e98 resulttool: Allow extraction of ptest data
Rather than simply discarding the ptest data, change the code to discard
it when writing out the new testresult files, or optionally either preserve
it, or write it as seperate discrete logs.

This means the autobuilder should start writing out individual ptest log
files as well as allowing ueers to extract these manually.

(From OE-Core rev: 3c5e5730031ccfb8e851734db23814a4d4fcae4a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:15:46 +01:00
Richard Purdie
d80bcba0e3 resulttool: Allow store to work on single files
Store operations using a single file as a source weren't working as the os.walk
command didn't like being given a single file. Fix the store operation to
work for single files.

(From OE-Core rev: 5173954c1ec75629bedbe06d6979dae36eb71b6f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:15:46 +01:00
Yeoh Ee Peng
10d43f6d08 oeqa/manual/toaster: updated test id naming
All test id (eg. @alias) inside manual testcase file shall follow the same
test id naming convention from oeqa automated tests (eg. selftest,
runtime, sdk, etc), where the test id consists of
<test_module>.<test_suite>.<test_function>. Furthermore, there shall be
only 1 unique test_module per each manual testcases file, where
test_module match the file name itself.

This file was using test_module name that does not match the file name
itself. Fixed test_module name as well as the test_suite name.

(From OE-Core rev: ebb3076c847c379d8c620d14927f696302fc4f26)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-04-09 22:15:46 +01:00
Yeoh Ee Peng
a50dcf1d0d oeqa/manual/toaster: transfer manual toaster test cases to oeqa
As part of the solution to replace Testopia, manual test cases
need to be migrated to OEQA. These manual test case json files
will serve two use cases.

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

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

(From OE-Core rev: 498f84fee3c85227ffb8dba9723c2acec00e03bd)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@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>
2019-04-09 22:15:46 +01:00
sangeeta jain
6fda37f233 oeqa/manual/kernel-dev.json: test id updated
All test id (eg. @alias) inside manual testcase file shall follow the same test id
naming convention from oeqa automated tests (eg. selftest, runtime, sdk, etc), where
the test id consists of  <test_module>.<test_suite>.<test_function>. Furthermore,
there shall be only 1 unique test_module per each manual testcases file.

This file was using more than 1 unique test_module for testcases. Furthermore,
some of the testcases were defined using different test_suite where it was not needed.
This patch fix the manual testcases file to have only 1 unique test_module
as well as test_suite to simplify test id naming.

(From OE-Core rev: 879f5aeac3ca4d053347e5a86a6c0fb303cf0dc3)

Signed-off-by: sangeeta jain <sangeeta.jain@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>
2019-04-09 22:15:46 +01:00
sangeeta jain
c373eb01b2 oeqa/manual/compliance-test.json: test id updated and missing test cases added
Two changes made in oeqa/manual/compliance-test.json:

1. All test id (eg. @alias) inside manual testcase file shall follow the same test id
naming convention from oeqa automated tests (eg. selftest, runtime, sdk, etc), where
the test id consists of  <test_module>.<test_suite>.<test_function>. Furthermore,
there shall be only 1 unique test_module per each manual testcases file.

This file was using more than 1 unique test_module for testcases. Furthermore, some of
the testcases were defined using different test_suite where it was not needed. This patch
fix the manual testcases file to have only 1 unique test_module as well as test_suite to
simplify test id naming.

2. Added 2 missing test cases for Beaglebone Stress Test.

(From OE-Core rev: 2af492e8b34e59fc58fe267da05f0868cb13ea0f)

Signed-off-by: sangeeta jain <sangeeta.jain@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>
2019-04-09 22:15:46 +01:00
sangeeta jain
3cc6fc01f1 oeqa/manual/bsp-hw.json: test id updated and obsolete test cases removed
Two changes made in oeqa/manual/bsp-hw.json:

1. All test id (eg. @alias) inside manual testcase file shall follow the same test id naming
convention from oeqa automated tests (eg. selftest, runtime, sdk, etc), where the
test id consists of  <test_module>.<test_suite>.<test_function>. Furthermore,
there shall be only 1 unique test_module per each manual testcases file.

This file was using more than 1 unique test_module for testcases.
Furthermore, some of the testcases were defined using different test_suite where it was not
needed. This patch fix the manual testcases file to have only 1 unique
test_module as well as test_suite to simplify test id naming.

2. As per review by Intel and Windriver team, 7 testcases were found obsolete. Removed 7 testcases.

(From OE-Core rev: cfadaf037788f59dce84d569abaf3b1fb2d78824)

Signed-off-by: sangeeta jain <sangeeta.jain@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>
2019-04-09 22:15:45 +01:00
Mazliana
463b94d692 oeqa/manual/bsp-hw.json: add non-IA tests
QA team found that 10 manual bsp test cases from Testopia for
Beaglebone, EdgeRouter, and MPC need to be up streamed

[YOCTO #12650]

(From OE-Core rev: f86542369fc5aabe4376e66b282981f35d437d5d)

Signed-off-by: Mazliana <mazliana.mohamad@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>
2019-04-09 22:15:45 +01:00
sangeeta jain
bf2d20e9f0 oeqa/manual/sdk.json: Updated toolchain tarball to core-image-sato
Manual test step for SDK is updated. Previously toolchain was "poky-glibc-x86_64-core-image-sato-sdk<type-arch>-toolchain-<release-version>.sh"
But toochain for core-image-sato-sdk is not available in releases after 2.1, hence changed it to "poky-glibc-x86_64-core-image-sato-<type-arch>-toolchain-<release-version>.sh

Other less significant update is to add exepcted result in intermediate test steps.

(From OE-Core rev: 88f9b2c5f86b05b42ae6429a5f74fa2f8b66e8ab)

Signed-off-by: sangeeta jain <sangeeta.jain@intel.com>

"poky-glibc-x86_64-core-image-sato-<type-arch>-toolchain-<release-version>.sh"

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09 22:15:45 +01:00
Sudhir Sharma
9b6a624cf6 oeqa/manual: Add manual runtime 'compliance' testcases to json
Added json file for compliance test cases to the manual runtime tests

(From OE-Core rev: ff596eb0f0e84decdb5addadd3f1f16d62c25401)

Signed-off-by: Sudhir Sharma <sudhirx.sharma@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>
2019-04-09 22:15:45 +01:00
216 changed files with 11851 additions and 1520 deletions

View File

@@ -391,8 +391,9 @@ class BBCooker:
if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
self.disableDataTracking()
self.data.renameVar("__depends", "__base_depends")
self.add_filewatch(self.data.getVar("__base_depends", False), self.configwatcher)
for mc in self.databuilder.mcdata.values():
mc.renameVar("__depends", "__base_depends")
self.add_filewatch(mc.getVar("__base_depends", False), self.configwatcher)
self.baseconfig_valid = True
self.parsecache_valid = False

View File

@@ -129,7 +129,7 @@ class GitSM(Git):
url += ';protocol=%s' % proto
url += ";name=%s" % module
url += ";subpath=%s" % paths[module]
url += ";subpath=%s" % module
ld = d.createCopy()
# Not necessary to set SRC_URI, since we're passing the URI to
@@ -147,6 +147,23 @@ class GitSM(Git):
return submodules != []
def need_update(self, ud, d):
if Git.need_update(self, ud, d):
return True
try:
# Check for the nugget dropped by the download operation
known_srcrevs = runfetchcmd("%s config --get-all bitbake.srcrev" % \
(ud.basecmd), d, workdir=ud.clonedir)
if ud.revisions[ud.names[0]] not in known_srcrevs.split():
return True
except bb.fetch2.FetchError:
# No srcrev nuggets, so this is new and needs to be updated
return True
return False
def download(self, ud, d):
def download_submodule(ud, url, module, modpath, d):
url += ";bareclone=1;nobranch=1"
@@ -157,6 +174,9 @@ class GitSM(Git):
try:
newfetch = Fetch([url], d, cache=False)
newfetch.download()
# Drop a nugget to add each of the srcrevs we've fetched (used by need_update)
runfetchcmd("%s config --add bitbake.srcrev %s" % \
(ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=ud.clonedir)
except Exception as e:
logger.error('gitsm: submodule download failed: %s %s' % (type(e).__name__, str(e)))
raise
@@ -176,7 +196,7 @@ class GitSM(Git):
try:
newfetch = Fetch([url], d, cache=False)
newfetch.unpack(root=os.path.dirname(os.path.join(repo_conf, 'modules', modpath)))
newfetch.unpack(root=os.path.dirname(os.path.join(repo_conf, 'modules', module)))
except Exception as e:
logger.error('gitsm: submodule unpack failed: %s %s' % (type(e).__name__, str(e)))
raise
@@ -191,9 +211,9 @@ class GitSM(Git):
# Ensure the submodule repository is NOT set to bare, since we're checking it out...
try:
runfetchcmd("%s config core.bare false" % (ud.basecmd), d, quiet=True, workdir=os.path.join(repo_conf, 'modules', modpath))
runfetchcmd("%s config core.bare false" % (ud.basecmd), d, quiet=True, workdir=os.path.join(repo_conf, 'modules', module))
except:
logger.error("Unable to set git config core.bare to false for %s" % os.path.join(repo_conf, 'modules', modpath))
logger.error("Unable to set git config core.bare to false for %s" % os.path.join(repo_conf, 'modules', module))
raise
Git.unpack(self, ud, destdir, d)
@@ -201,5 +221,7 @@ class GitSM(Git):
ret = self.process_submodules(ud, ud.destdir, unpack_submodules, d)
if not ud.bareclone and ret:
# Run submodule update, this sets up the directories -- without touching the config
# All submodules should already be downloaded and configured in the tree. This simply sets
# up the configuration and checks out the files. The main project config should remain
# unmodified, and no download from the internet should occur.
runfetchcmd("%s submodule update --recursive --no-fetch" % (ud.basecmd), d, quiet=True, workdir=ud.destdir)

View File

@@ -942,6 +942,25 @@ class FetcherNetworkTest(FetcherTest):
self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/json/config')), msg='Missing submodule config "extern/json"')
self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/sanitizers/config')), msg='Missing submodule config "extern/sanitizers"')
def test_git_submodule_update_CLI11(self):
""" Prevent regression on update detection not finding missing submodule, or modules without needed commits """
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# CLI11 that pulls in a newer nlohmann-json
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
os.chdir(os.path.dirname(self.unpackdir))
fetcher.unpack(self.unpackdir)
repo_path = os.path.join(self.tempdir, 'unpacked', 'git')
self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/googletest/config')), msg='Missing submodule config "extern/googletest"')
self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/json/config')), msg='Missing submodule config "extern/json"')
self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/extern/sanitizers/config')), msg='Missing submodule config "extern/sanitizers"')
def test_git_submodule_aktualizr(self):
url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=git;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44"
fetcher = bb.fetch.Fetch([url], self.d)
@@ -958,6 +977,33 @@ class FetcherNetworkTest(FetcherTest):
self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/third_party/googletest/config')), msg='Missing submodule config "third_party/googletest/config"')
self.assertTrue(os.path.exists(os.path.join(repo_path, '.git/modules/third_party/HdrHistogram_c/config')), msg='Missing submodule config "third_party/HdrHistogram_c/config"')
def test_git_submodule_iotedge(self):
""" Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
# This repository also has submodules where the module (name), path and url do not align
url = "gitsm://github.com/azure/iotedge.git;protocol=git;rev=d76e0316c6f324345d77c48a83ce836d09392699"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
os.chdir(os.path.dirname(self.unpackdir))
fetcher.unpack(self.unpackdir)
repo_path = os.path.join(self.tempdir, 'unpacked', 'git')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/README.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/ctest/README.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/testrunner/readme.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/umock-c/readme.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/umock-c/deps/ctest/README.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/c-shared/testtools/umock-c/deps/testrunner/readme.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/README.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/README.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/ctest/README.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/testrunner/readme.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/readme.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/ctest/README.md')), msg='Missing submodule checkout')
self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/testrunner/readme.md')), msg='Missing submodule checkout')
class TrustedNetworksTest(FetcherTest):
def test_trusted_network(self):
# Ensure trusted_network returns False when the host IS in the list.

View File

@@ -42,6 +42,10 @@ class VerCmpString(unittest.TestCase):
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('1.1', '1.0+1.1-beta1')
self.assertTrue(result > 0)
result = bb.utils.vercmp_string('1.', '1.1')
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('1.1', '1.')
self.assertTrue(result > 0)
def test_explode_dep_versions(self):
correctresult = {"foo" : ["= 1.10"]}

View File

@@ -120,6 +120,10 @@ def vercmp_part(a, b):
return -1
elif oa > ob:
return 1
elif ca is None:
return -1
elif cb is None:
return 1
elif ca < cb:
return -1
elif ca > cb:

View File

@@ -53,7 +53,7 @@
<object model="orm.release" pk="4">
<field type="CharField" name="name">thud</field>
<field type="CharField" name="description">Openembedded Thud</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field>
<field type="CharField" name="branch_name">thud</field>
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=thud\"&gt;OpenEmbedded Thud&lt;/a&gt; branch.</field>
</object>

View File

@@ -58,7 +58,7 @@
<object model="orm.release" pk="4">
<field type="CharField" name="name">thud</field>
<field type="CharField" name="description">Yocto Project 2.6 "Thud"</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field>
<field type="CharField" name="branch_name">thud</field>
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=thud"&gt;Yocto Project Thud branch&lt;/a&gt;.</field>
</object>

View File

@@ -148,11 +148,11 @@
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
remote: Counting objects: 428632, done.
remote: Compressing objects: 100% (101203/101203), done.
remote: Total 428632 (delta 320463), reused 428532 (delta 320363)
Receiving objects: 100% (428632/428632), 153.01 MiB | 12.40 MiB/s, done.
Resolving deltas: 100% (320463/320463), done.
remote: Counting objects: 445141, done.
remote: Compressing objects: 100% (105214/105214), done.
remote: Total 445141 (delta 333098), reused 444745 (delta 332720)
Receiving objects: 100% (445141/445141), 156.60 MiB | 5.13 MiB/s, done.
Resolving deltas: 100% (333098/333098), done.
Checking connectivity... done.
</literallayout>
Move to the <filename>poky</filename> directory and take a look
@@ -172,8 +172,12 @@
yocto-2.5
yocto-2.5.1
yocto-2.5.2
yocto-2.5.3
yocto-2.6
yocto-2.6.1
yocto-2.6.2
yocto-2.6.3
yocto-2.7
yocto_1.5_M5.rc8
</literallayout>
For this example, check out the branch based on the
@@ -388,16 +392,15 @@
You can put the copy in the top level of the copy of the
Poky repository created earlier:
<literallayout class='monospaced'>
$ cd ~/poky
$ git clone https://github.com/kraj/meta-altera.git
Cloning into 'meta-altera'...
remote: Counting objects: 25170, done.
remote: Compressing objects: 100% (350/350), done.
remote: Total 25170 (delta 645), reused 719 (delta 538), pack-reused 24219
Receiving objects: 100% (25170/25170), 41.02 MiB | 1.64 MiB/s, done.
Resolving deltas: 100% (13385/13385), done.
Checking connectivity... done.
</literallayout>
remote: Enumerating objects: 219, done.
remote: Counting objects: 100% (219/219), done.
remote: Compressing objects: 100% (116/116), done.
remote: Total 1463 (delta 111), reused 172 (delta 79), pack-reused 1244
Receiving objects: 100% (1463/1463), 211.60 KiB | 0 bytes/s, done.
Resolving deltas: 100% (706/706), done.
Checking connectivity... done. </literallayout>
The hardware layer now exists with other layers inside
the Poky reference repository on your build host as
<filename>meta-altera</filename> and contains all the
@@ -435,8 +438,6 @@
$ cd ~/poky/build
$ bitbake-layers add-layer ../meta-altera
NOTE: Starting bitbake server...
Parsing recipes: 100% |##################################################################| Time: 0:00:32
Parsing of 918 .bb files complete (0 cached, 918 parsed). 1401 targets, 123 skipped, 0 masked, 0 errors.
</literallayout>
You can find more information on adding layers in the
"<ulink url='&YOCTO_DOCS_DEV_URL;#adding-a-layer-using-the-bitbake-layers-script'>Adding a Layer Using the <filename>bitbake-layers</filename> Script</ulink>"

View File

@@ -128,9 +128,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -243,11 +243,11 @@
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/meta-intel.git
Cloning into 'meta-intel'...
remote: Counting objects: 15585, done.
remote: Compressing objects: 100% (5056/5056), done.
remote: Total 15585 (delta 9123), reused 15329 (delta 8867)
Receiving objects: 100% (15585/15585), 4.51 MiB | 3.19 MiB/s, done.
Resolving deltas: 100% (9123/9123), done.
remote: Counting objects: 17179, done.
remote: Compressing objects: 100% (5307/5307), done.
remote: Total 17179 (delta 10209), reused 17139 (delta 10169)
Receiving objects: 100% (17179/17179), 4.76 MiB | 4.39 MiB/s, done.
Resolving deltas: 100% (10209/10209), done.
Checking connectivity... done.
</literallayout>
</para></listitem>
@@ -289,13 +289,12 @@
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/meta-raspberrypi
Cloning into 'meta-raspberrypi'...
remote: Counting objects: 4743, done.
remote: Compressing objects: 100% (2185/2185), done.
remote: Total 4743 (delta 2447), reused 4496 (delta 2258)
Receiving objects: 100% (4743/4743), 1.18 MiB | 0 bytes/s, done.
Resolving deltas: 100% (2447/2447), done.
Checking connectivity... done.
</literallayout>
remote: Counting objects: 6205, done.
remote: Compressing objects: 100% (2700/2700), done.
remote: Total 6205 (delta 3342), reused 5916 (delta 3146)
Receiving objects: 100% (6205/6205), 1.43 MiB | 0 bytes/s, done.
Resolving deltas: 100% (3342/3342), done.
Checking connectivity... done. </literallayout>
</para></listitem>
<listitem><para>
<emphasis>Initialize the Build Environment:</emphasis>
@@ -392,164 +391,15 @@
</para>
<para>
Below is an example of the Raspberry Pi BSP
You can examine the Raspberry Pi BSP
layer that is available from the
<ulink url='&YOCTO_GIT_URL;'>Source Respositories</ulink>:
<literallayout class='monospaced'>
meta-raspberrypi/COPYING.MIT
meta-raspberrypi/README.md
meta-raspberrypi/classes
meta-raspberrypi/classes/sdcard_image-rpi.bbclass
meta-raspberrypi/conf/
meta-raspberrypi/conf/layer.conf
meta-raspberrypi/conf/machine/
meta-raspberrypi/conf/machine/raspberrypi-cm.conf
meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
meta-raspberrypi/conf/machine/raspberrypi.conf
meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf
meta-raspberrypi/conf/machine/raspberrypi0.conf
meta-raspberrypi/conf/machine/raspberrypi2.conf
meta-raspberrypi/conf/machine/raspberrypi3-64.conf
meta-raspberrypi/conf/machine/raspberrypi3.conf
meta-raspberrypi/conf/machine/include
meta-raspberrypi/conf/machine/include/rpi-base.inc
meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
meta-raspberrypi/conf/machine/include/rpi-default-settings.inc
meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
meta-raspberrypi/conf/machine/include/tune-arm1176jzf-s.inc
meta-raspberrypi/docs
meta-raspberrypi/docs/Makefile
meta-raspberrypi/docs/conf.py
meta-raspberrypi/docs/contributing.md
meta-raspberrypi/docs/extra-apps.md
meta-raspberrypi/docs/extra-build-config.md
meta-raspberrypi/docs/index.rst
meta-raspberrypi/docs/layer-contents.md
meta-raspberrypi/docs/readme.md
meta-raspberrypi/files
meta-raspberrypi/files/custom-licenses
meta-raspberrypi/files/custom-licenses/Broadcom
meta-raspberrypi/recipes-bsp
meta-raspberrypi/recipes-bsp/bootfiles
meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb
meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
meta-raspberrypi/recipes-bsp/common
meta-raspberrypi/recipes-bsp/common/firmware.inc
meta-raspberrypi/recipes-bsp/formfactor
meta-raspberrypi/recipes-bsp/formfactor/formfactor
meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi
meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi/machconfig
meta-raspberrypi/recipes-bsp/formfactor/formfactor_0.0.bbappend
meta-raspberrypi/recipes-bsp/rpi-u-boot-src
meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files
meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files/boot.cmd.in
meta-raspberrypi/recipes-bsp/rpi-u-boot-src/rpi-u-boot-scr.bb
meta-raspberrypi/recipes-bsp/u-boot
meta-raspberrypi/recipes-bsp/u-boot/u-boot
meta-raspberrypi/recipes-bsp/u-boot/u-boot/*.patch
meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
meta-raspberrypi/recipes-connectivity
meta-raspberrypi/recipes-connectivity/bluez5
meta-raspberrypi/recipes-connectivity/bluez5/bluez5
meta-raspberrypi/recipes-connectivity/bluez5/bluez5/*.patch
meta-raspberrypi/recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd
meta-raspberrypi/recipes-connectivity/bluez5/bluez5brcm43438.service
meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
meta-raspberrypi/recipes-core
meta-raspberrypi/recipes-core/images
meta-raspberrypi/recipes-core/images/rpi-basic-image.bb
meta-raspberrypi/recipes-core/images/rpi-hwup-image.bb
meta-raspberrypi/recipes-core/images/rpi-test-image.bb
meta-raspberrypi/recipes-core/packagegroups
meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb
meta-raspberrypi/recipes-core/psplash
meta-raspberrypi/recipes-core/psplash/files
meta-raspberrypi/recipes-core/psplash/files/psplash-raspberrypi-img.h
meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend
meta-raspberrypi/recipes-core/udev
meta-raspberrypi/recipes-core/udev/udev-rules-rpi
meta-raspberrypi/recipes-core/udev/udev-rules-rpi/99-com.rules
meta-raspberrypi/recipes-core/udev/udev-rules-rpi.bb
meta-raspberrypi/recipes-devtools
meta-raspberrypi/recipes-devtools/bcm2835
meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb
meta-raspberrypi/recipes-devtools/pi-blaster
meta-raspberrypi/recipes-devtools/pi-blaster/files
meta-raspberrypi/recipes-devtools/pi-blaster/files/*.patch
meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
meta-raspberrypi/recipes-devtools/python
meta-raspberrypi/recipes-devtools/python/python-rtimu
meta-raspberrypi/recipes-devtools/python/python-rtimu/*.patch
meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb
meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb
meta-raspberrypi/recipes-devtools/python/rpi-gpio
meta-raspberrypi/recipes-devtools/python/rpi-gpio/*.patch
meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb
meta-raspberrypi/recipes-devtools/python/rpio
meta-raspberrypi/recipes-devtools/python/rpio/*.patch
meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
meta-raspberrypi/recipes-devtools/wiringPi
meta-raspberrypi/recipes-devtools/wiringPi/files
meta-raspberrypi/recipes-devtools/wiringPi/files/*.patch
meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
meta-raspberrypi/recipes-graphics
meta-raspberrypi/recipes-graphics/eglinfo
meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
meta-raspberrypi/recipes-graphics/mesa
meta-raspberrypi/recipes-graphics/mesa/mesa-gl_%.bbappend
meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
meta-raspberrypi/recipes-graphics/userland
meta-raspberrypi/recipes-graphics/userland/userland
meta-raspberrypi/recipes-graphics/userland/userland/*.patch
meta-raspberrypi/recipes-graphics/userland/userland_git.bb
meta-raspberrypi/recipes-graphics/vc-graphics
meta-raspberrypi/recipes-graphics/vc-graphics/files
meta-raspberrypi/recipes-graphics/vc-graphics/files/egl.pc
meta-raspberrypi/recipes-graphics/vc-graphics/files/vchiq.sh
meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics-hardfp.bb
meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.bb
meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc
meta-raspberrypi/recipes-graphics/wayland
meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend
meta-raspberrypi/recipes-graphics/xorg-xserver
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-evdev.conf
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/98-pitft.conf
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-calibration.conf
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
meta-raspberrypi/recipes-kernel
meta-raspberrypi/recipes-kernel/linux-firmware
meta-raspberrypi/recipes-kernel/linux-firmware/files
meta-raspberrypi/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin
meta-raspberrypi/recipes-kernel/linux-firmware/files/brcfmac43430-sdio.txt
meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
meta-raspberrypi/recipes-kernel/linux
meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb
meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb
meta-raspberrypi/recipes-multimedia
meta-raspberrypi/recipes-multimedia/gstreamer
meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx
meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/*.patch
meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12
meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/*.patch
meta-raspberrypi/recipes-multimedia/omxplayer
meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer
meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/*.patch
meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
meta-raspberrypi/recipes-multimedia/x264
meta-raspberrypi/recipes-multimedia/x264/x264_git.bbappend
meta-raspberrypi/wic
meta-raspberrypi/wic/sdimage-raspberrypi.wks
</literallayout>
<ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink> by
following this link:
<ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/tree/?h=&DISTRO_NAME_NO_CAP;'></ulink>.
Following the link puts you in the Source Repositories and the
Raspberry Pi BSP layer for the "&DISTRO_NAME_NO_CAP;" release.
You can use the interface to explore the configuration, docs, and
recipe files.
</para>
<para>
@@ -840,13 +690,13 @@
files for the BSP.
Most notably would be the formfactor files.
For example, in the Raspberry Pi BSP there is the
<filename>formfactor_0.0.bbappend</filename> file,
<filename>formfactor_%.bbappend</filename> file,
which is an append file used to augment the recipe
that starts the build.
Furthermore, there are machine-specific settings used
during the build that are defined by the
<filename>machconfig</filename> file further down in
the directory.
the directory (i.e. <filename>formfactor/rpi/</filename>).
Here is the <filename>machconfig</filename> file for
the Raspberry Pi BSP:
<literallayout class='monospaced'>
@@ -866,7 +716,8 @@
formfactor recipe
<filename>meta/recipes-bsp/formfactor/formfactor_0.0.bb</filename>,
which is found in the
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
(i.e. <filename>poky</filename>).
</para></note>
</section>

View File

@@ -113,9 +113,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -98,9 +98,14 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -82,9 +82,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -3186,7 +3186,8 @@
<para>
In the
<ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>OpenEmbedded build system</ulink>,
the program that implements fakeroot is known as Pseudo.
the program that implements fakeroot is known as
<ulink url='https://www.yoctoproject.org/software-item/pseudo/'>Pseudo</ulink>.
Pseudo overrides system calls by using the environment variable
<filename>LD_PRELOAD</filename>, which results in the illusion
of running as root.
@@ -3220,10 +3221,8 @@
<ulink url='&YOCTO_DOCS_BB_URL;#var-FAKEROOT'><filename>FAKEROOT*</filename></ulink>
variables in the BitBake User Manual.
You can also reference the
"<ulink url='http://www.ibm.com/developerworks/opensource/library/os-aapseudo1/index.html'>Pseudo</ulink>"
and
"<ulink url='https://github.com/wrpseudo/pseudo/wiki/WhyNotFakeroot'>Why Not Fakeroot?</ulink>"
articles for background information on Pseudo.
article for background information on Fakeroot and Pseudo.
</para>
</section>
</chapter>

View File

@@ -43,9 +43,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -1,17 +1,17 @@
<!ENTITY DISTRO "2.6.1">
<!ENTITY DISTRO_COMPRESSED "261">
<!ENTITY DISTRO "2.6.3">
<!ENTITY DISTRO_COMPRESSED "263">
<!ENTITY DISTRO_NAME_NO_CAP "thud">
<!ENTITY DISTRO_NAME "Thud">
<!ENTITY DISTRO_NAME_NO_CAP_MINUS_ONE "sumo">
<!ENTITY DISTRO_NAME_MINUS_ONE "Sumo">
<!ENTITY YOCTO_DOC_VERSION "2.6.1">
<!ENTITY YOCTO_DOC_VERSION_MINUS_ONE "2.5.2">
<!ENTITY DISTRO_REL_TAG "yocto-2.6.1">
<!ENTITY YOCTO_DOC_VERSION "2.6.3">
<!ENTITY YOCTO_DOC_VERSION_MINUS_ONE "2.5.3">
<!ENTITY DISTRO_REL_TAG "yocto-2.6.3">
<!ENTITY METAINTELVERSION "10.1">
<!ENTITY REL_MONTH_YEAR "February 2019">
<!ENTITY REL_MONTH_YEAR "July 2019">
<!ENTITY META_INTEL_REL_TAG "&METAINTELVERSION;-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;">
<!ENTITY POKYVERSION "21.0.1">
<!ENTITY POKYVERSION_COMPRESSED "2101">
<!ENTITY POKYVERSION "20.0.3">
<!ENTITY POKYVERSION_COMPRESSED "2003">
<!ENTITY YOCTO_POKY "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;">
<!ENTITY COPYRIGHT_YEAR "2010-2019">
<!ENTITY YOCTO_DL_URL "http://downloads.yoctoproject.org">

View File

@@ -98,9 +98,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -129,9 +129,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -1350,7 +1350,7 @@
For example, the following line specifies three
configuration files:
<literallayout class='monospaced'>
BBMULTIFONFIG = "configA configB configC"
BBMULTICONFIG = "configA configB configC"
</literallayout>
Each configuration file you use must reside in the
<link linkend='build-directory'>Build Directory</link>

View File

@@ -63,9 +63,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -73,9 +73,19 @@
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>&REL_MONTH_YEAR;</date>
<date>February 2019</date>
<revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.2</revnumber>
<date>April 2019</date>
<revremark>Released with the Yocto Project 2.6.2 Release.</revremark>
</revision>
<revision>
<revnumber>2.6.3</revnumber>
<date>&REL_MONTH_YEAR;</date>
<revremark>Released with the Yocto Project 2.6.3 Release.</revremark>
</revision>
</revhistory>
<copyright>

View File

@@ -2,39 +2,39 @@
# This style is for manual folders like "yocto-project-qs" and "poky-ref-manual".
# This is the old way that did it. Can't do that now that we have "bitbake-user-manual" strings
# in the mega-manual.
# s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/[a-z]*-[a-z]*-[a-z]*/[a-z]*-[a-z]*-[a-z]*.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/yocto-project-qs/yocto-project-qs.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/poky-ref-manual/poky-ref-manual.html#@"link" href="#@g
# s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/[a-z]*-[a-z]*-[a-z]*/[a-z]*-[a-z]*-[a-z]*.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/yocto-project-qs/yocto-project-qs.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/poky-ref-manual/poky-ref-manual.html#@"link" href="#@g
# Processes all other manuals (<word>-<word> style) except for the BitBake User Manual because
# it is not included in the mega-manual.
# This style is for manual folders that use two word, which is the standard now (e.g. "ref-manual").
# This was the one-liner that worked before we introduced the BitBake User Manual, which is
# not in the mega-manual.
# s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/[a-z]*-[a-z]*/[a-z]*-[a-z]*.html#@"link" href="#@g
# s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/[a-z]*-[a-z]*/[a-z]*-[a-z]*.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/sdk-manual/sdk-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/bsp-guide/bsp-guide.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/dev-manual/dev-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/overview-manual/overview-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/brief-yoctoprojectqs/brief-yoctoprojectqs.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/kernel-dev/kernel-dev.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/profile-manual/profile-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/ref-manual/ref-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.1/toaster-manual/toaster-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/sdk-manual/sdk-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/bsp-guide/bsp-guide.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/dev-manual/dev-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/overview-manual/overview-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/brief-yoctoprojectqs/brief-yoctoprojectqs.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/kernel-dev/kernel-dev.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/profile-manual/profile-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/ref-manual/ref-manual.html#@"link" href="#@g
s@"ulink" href="http://www.yoctoproject.org/docs/2.6.3/toaster-manual/toaster-manual.html#@"link" href="#@g
# Process cases where just an external manual is referenced without an id anchor
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/brief-yoctoprojectqs/brief-yoctoprojectqs.html" target="_top">Yocto Project Quick Build</a>@Yocto Project Quick Build@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/yocto-project-qs/yocto-project-qs.html" target="_top">Yocto Project Quick Start</a>@Yocto Project Quick Start@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/dev-manual/dev-manual.html" target="_top">Yocto Project Development Tasks Manual</a>@Yocto Project Development Tasks Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/overview-manual/overview-manual.html" target="_top">Yocto Project Overview and Concepts Manual</a>@Yocto project Overview and Concepts Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/sdk-manual/sdk-manual.html" target="_top">Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</a>@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/bsp-guide/bsp-guide.html" target="_top">Yocto Project Board Support Package (BSP) Developer's Guide</a>@Yocto Project Board Support Package (BSP) Developer's Guide@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/profile-manual/profile-manual.html" target="_top">Yocto Project Profiling and Tracing Manual</a>@Yocto Project Profiling and Tracing Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/kernel-dev/kernel-dev.html" target="_top">Yocto Project Linux Kernel Development Manual</a>@Yocto Project Linux Kernel Development Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/ref-manual/ref-manual.html" target="_top">Yocto Project Reference Manual</a>@Yocto Project Reference Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/toaster-manual/toaster-manual.html" target="_top">Toaster User Manual</a>@Toaster User Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/brief-yoctoprojectqs/brief-yoctoprojectqs.html" target="_top">Yocto Project Quick Build</a>@Yocto Project Quick Build@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/yocto-project-qs/yocto-project-qs.html" target="_top">Yocto Project Quick Start</a>@Yocto Project Quick Start@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/dev-manual/dev-manual.html" target="_top">Yocto Project Development Tasks Manual</a>@Yocto Project Development Tasks Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/overview-manual/overview-manual.html" target="_top">Yocto Project Overview and Concepts Manual</a>@Yocto project Overview and Concepts Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/sdk-manual/sdk-manual.html" target="_top">Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</a>@Yocto Project Application Development and the Extensible Software Development Kit (eSDK)@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/bsp-guide/bsp-guide.html" target="_top">Yocto Project Board Support Package (BSP) Developer's Guide</a>@Yocto Project Board Support Package (BSP) Developer's Guide@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/profile-manual/profile-manual.html" target="_top">Yocto Project Profiling and Tracing Manual</a>@Yocto Project Profiling and Tracing Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/kernel-dev/kernel-dev.html" target="_top">Yocto Project Linux Kernel Development Manual</a>@Yocto Project Linux Kernel Development Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/ref-manual/ref-manual.html" target="_top">Yocto Project Reference Manual</a>@Yocto Project Reference Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/toaster-manual/toaster-manual.html" target="_top">Toaster User Manual</a>@Toaster User Manual@g
# Process a single, rouge occurrence of a linked reference to the Mega-Manual.
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.1/mega-manual/mega-manual.html" target="_top">Yocto Project Mega-Manual</a>@Yocto Project Mega-Manual@g
s@<a class="ulink" href="http://www.yoctoproject.org/docs/2.6.3/mega-manual/mega-manual.html" target="_top">Yocto Project Mega-Manual</a>@Yocto Project Mega-Manual@g

View File

@@ -1,6 +1,6 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
DISTRO_VERSION = "2.6.2"
DISTRO_VERSION = "2.6.3"
DISTRO_CODENAME = "thud"
SDK_VENDOR = "-pokysdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"

View File

@@ -171,7 +171,9 @@ multiubi_mkfs() {
echo vol_type=dynamic >> ubinize${vname}-${IMAGE_NAME}.cfg
echo vol_name=${UBI_VOLNAME} >> ubinize${vname}-${IMAGE_NAME}.cfg
echo vol_flags=autoresize >> ubinize${vname}-${IMAGE_NAME}.cfg
mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ${mkubifs_args}
if [ -n "$vname" ]; then
mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ${mkubifs_args}
fi
ubinize -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubi ${ubinize_args} ubinize${vname}-${IMAGE_NAME}.cfg
# Cleanup cfg file
@@ -205,6 +207,7 @@ IMAGE_CMD_multiubi () {
IMAGE_CMD_ubi () {
multiubi_mkfs "${MKUBIFS_ARGS}" "${UBINIZE_ARGS}"
}
IMAGE_TYPEDEP_ubi = "ubifs"
IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}"

View File

@@ -314,7 +314,8 @@ def testimage_main(d):
configuration = get_testimage_configuration(d, 'runtime', machine)
results.logDetails(get_testimage_json_result_dir(d),
configuration,
get_testimage_result_id(configuration))
get_testimage_result_id(configuration),
dump_streams=d.getVar('TESTREPORT_FULLLOGS'))
results.logSummary(pn)
if not results.wasSuccessful():
bb.fatal('%s - FAILED - check the task log and the ssh log' % pn, forcelog=True)

View File

@@ -80,16 +80,16 @@ do_concat_dtb () {
}
python () {
uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot'
if d.getVar('UBOOT_SIGN_ENABLE') == '1' and d.getVar('PN') == uboot_pn:
kernel_pn = d.getVar('PREFERRED_PROVIDER_virtual/kernel')
uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot'
if d.getVar('UBOOT_SIGN_ENABLE') == '1' and d.getVar('PN') == uboot_pn:
kernel_pn = d.getVar('PREFERRED_PROVIDER_virtual/kernel')
# u-boot.dtb and u-boot-nodtb.bin are deployed _before_ do_deploy
# Thus, do_deploy_setscene will also populate them in DEPLOY_IMAGE_DIR
bb.build.addtask('do_deploy_dtb', 'do_deploy', 'do_compile', d)
# u-boot.dtb and u-boot-nodtb.bin are deployed _before_ do_deploy
# Thus, do_deploy_setscene will also populate them in DEPLOY_IMAGE_DIR
bb.build.addtask('do_deploy_dtb', 'do_deploy', 'do_compile', d)
# do_concat_dtb is scheduled _before_ do_install as it overwrite the
# u-boot.bin in both DEPLOYDIR and DEPLOY_IMAGE_DIR.
bb.build.addtask('do_concat_dtb', 'do_install', None, d)
d.appendVarFlag('do_concat_dtb', 'depends', ' %s:do_assemble_fitimage' % kernel_pn)
# do_concat_dtb is scheduled _before_ do_install as it overwrite the
# u-boot.bin in both DEPLOYDIR and DEPLOY_IMAGE_DIR.
bb.build.addtask('do_concat_dtb', 'do_install', None, d)
d.appendVarFlag('do_concat_dtb', 'depends', ' %s:do_assemble_fitimage' % kernel_pn)
}

View File

@@ -2,7 +2,7 @@ UNINATIVE_LOADER ?= "${UNINATIVE_STAGING_DIR}-uninative/${BUILD_ARCH}-linux/lib/
UNINATIVE_STAGING_DIR ?= "${STAGING_DIR}"
UNINATIVE_URL ?= "unset"
UNINATIVE_TARBALL ?= "${BUILD_ARCH}-nativesdk-libc.tar.bz2"
UNINATIVE_TARBALL ?= "${BUILD_ARCH}-nativesdk-libc.tar.xz"
# Example checksums
#UNINATIVE_CHECKSUM[aarch64] = "dead"
#UNINATIVE_CHECKSUM[i686] = "dead"
@@ -89,7 +89,7 @@ python uninative_event_fetchloader() {
cmd = d.expand("\
mkdir -p ${UNINATIVE_STAGING_DIR}-uninative; \
cd ${UNINATIVE_STAGING_DIR}-uninative; \
tar -xjf ${UNINATIVE_DLDIR}/%s/${UNINATIVE_TARBALL}; \
tar -xJf ${UNINATIVE_DLDIR}/%s/${UNINATIVE_TARBALL}; \
${UNINATIVE_STAGING_DIR}-uninative/relocate_sdk.py \
${UNINATIVE_STAGING_DIR}-uninative/${BUILD_ARCH}-linux \
${UNINATIVE_LOADER} \

View File

@@ -8,7 +8,7 @@
UNINATIVE_MAXGLIBCVERSION = "2.29"
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.4/"
UNINATIVE_CHECKSUM[aarch64] ?= "af2e2faf6cf00ff45cc1bcd5e3fb00cee7f79b3ec7c3be15917ad4ff8c154cfe"
UNINATIVE_CHECKSUM[i686] ?= "fafacfc537a6ce2bd122bd16c146881ab5ac69bd575abf6cb68a0dd33fa70ea2"
UNINATIVE_CHECKSUM[x86_64] ?= "06f91685b782f2ccfedf3070b3ba0fe4a5ba2f0766dad5c9d1642dccf95accd0"
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.6/"
UNINATIVE_CHECKSUM[aarch64] ?= "a37118fc8b423f48146120707b81dd15017512c3e8ef9e6ca2cb3a033f4f4046"
UNINATIVE_CHECKSUM[i686] ?= "3234fc3ded810225071f23a0e9a99f4f8c2480059945a848eff076ce78122ade"
UNINATIVE_CHECKSUM[x86_64] ?= "133387753a9acf3e1b788103c59fac91e968e2ee331d7a4b9498e926ada7be57"

View File

@@ -1329,6 +1329,8 @@ class OpkgPM(OpkgDpkgPM):
cmd = "%s %s" % (self.opkg_cmd, self.opkg_args)
for exclude in (self.d.getVar("PACKAGE_EXCLUDE") or "").split():
cmd += " --add-exclude %s" % exclude
for bad_recommendation in (self.d.getVar("BAD_RECOMMENDATIONS") or "").split():
cmd += " --add-ignore-recommends %s" % bad_recommendation
cmd += " install "
cmd += " ".join(pkgs)
@@ -1397,45 +1399,6 @@ class OpkgPM(OpkgDpkgPM):
def list_installed(self):
return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs()
def handle_bad_recommendations(self):
bad_recommendations = self.d.getVar("BAD_RECOMMENDATIONS") or ""
if bad_recommendations.strip() == "":
return
status_file = os.path.join(self.opkg_dir, "status")
# If status file existed, it means the bad recommendations has already
# been handled
if os.path.exists(status_file):
return
cmd = "%s %s info " % (self.opkg_cmd, self.opkg_args)
with open(status_file, "w+") as status:
for pkg in bad_recommendations.split():
pkg_info = cmd + pkg
try:
output = subprocess.check_output(pkg_info.split(), stderr=subprocess.STDOUT).strip().decode("utf-8")
except subprocess.CalledProcessError as e:
bb.fatal("Cannot get package info. Command '%s' "
"returned %d:\n%s" % (pkg_info, e.returncode, e.output.decode("utf-8")))
if output == "":
bb.note("Ignored bad recommendation: '%s' is "
"not a package" % pkg)
continue
for line in output.split('\n'):
if line.startswith("Status:"):
status.write("Status: deinstall hold not-installed\n")
else:
status.write(line + "\n")
# Append a blank line after each package entry to ensure that it
# is separated from the following entry
status.write("\n")
def dummy_install(self, pkgs):
"""
The following function dummy installs pkgs and returns the log of output.

View File

@@ -879,8 +879,6 @@ class OpkgRootfs(DpkgOpkgRootfs):
self.pm.update()
self.pm.handle_bad_recommendations()
if self.progress_reporter:
self.progress_reporter.next_stage()

View File

@@ -7,6 +7,7 @@ import unittest
import logging
import re
import json
import sys
from unittest import TextTestResult as _TestResult
from unittest import TextTestRunner as _TestRunner
@@ -45,6 +46,9 @@ class OETestResult(_TestResult):
self.tc = tc
# stdout and stderr for each test case
self.logged_output = {}
def startTest(self, test):
# May have been set by concurrencytest
if test.id() not in self.starttime:
@@ -53,6 +57,9 @@ class OETestResult(_TestResult):
def stopTest(self, test):
self.endtime[test.id()] = time.time()
if self.buffer:
self.logged_output[test.id()] = (
sys.stdout.getvalue(), sys.stderr.getvalue())
super(OETestResult, self).stopTest(test)
if test.id() in self.progressinfo:
self.tc.logger.info(self.progressinfo[test.id()])
@@ -81,11 +88,17 @@ class OETestResult(_TestResult):
def _getTestResultDetails(self, case):
result_types = {'failures': 'FAILED', 'errors': 'ERROR', 'skipped': 'SKIPPED',
'expectedFailures': 'EXPECTEDFAIL', 'successes': 'PASSED'}
'expectedFailures': 'EXPECTEDFAIL', 'successes': 'PASSED',
'unexpectedSuccesses' : 'PASSED'}
for rtype in result_types:
found = False
for (scase, msg) in getattr(self, rtype):
for resultclass in getattr(self, rtype):
# unexpectedSuccesses are just lists, not lists of tuples
if isinstance(resultclass, tuple):
scase, msg = resultclass
else:
scase, msg = resultclass, None
if case.id() == scase.id():
found = True
break
@@ -93,13 +106,13 @@ class OETestResult(_TestResult):
# When fails at module or class level the class name is passed as string
# so figure out to see if match
m = re.search(r"^setUpModule \((?P<module_name>.*)\)$", scase_str)
m = re.search(r"^setUpModule \((?P<module_name>.*)\).*$", scase_str)
if m:
if case.__class__.__module__ == m.group('module_name'):
found = True
break
m = re.search(r"^setUpClass \((?P<class_name>.*)\)$", scase_str)
m = re.search(r"^setUpClass \((?P<class_name>.*)\).*$", scase_str)
if m:
class_name = "%s.%s" % (case.__class__.__module__,
case.__class__.__name__)
@@ -118,7 +131,8 @@ class OETestResult(_TestResult):
self.successes.append((test, None))
super(OETestResult, self).addSuccess(test)
def logDetails(self, json_file_dir=None, configuration=None, result_id=None):
def logDetails(self, json_file_dir=None, configuration=None, result_id=None,
dump_streams=False):
self.tc.logger.info("RESULTS:")
result = {}
@@ -144,10 +158,14 @@ class OETestResult(_TestResult):
if status not in logs:
logs[status] = []
logs[status].append("RESULTS - %s - Testcase %s: %s%s" % (case.id(), oeid, status, t))
report = {'status': status}
if log:
result[case.id()] = {'status': status, 'log': log}
else:
result[case.id()] = {'status': status}
report['log'] = log
if dump_streams and case.id() in self.logged_output:
(stdout, stderr) = self.logged_output[case.id()]
report['stdout'] = stdout
report['stderr'] = stderr
result[case.id()] = report
for i in ['PASSED', 'SKIPPED', 'EXPECTEDFAIL', 'ERROR', 'FAILED', 'UNKNOWN']:
if i not in logs:

View File

@@ -207,7 +207,7 @@ def SSHCall(command, logger, timeout=None, **opts):
logger.debug('time: %s, endtime: %s' % (time.time(), endtime))
try:
if select.select([process.stdout], [], [], 5)[0] != []:
reader = codecs.getreader('utf-8')(process.stdout)
reader = codecs.getreader('utf-8')(process.stdout, 'ignore')
data = reader.read(1024, 4096)
if not data:
process.stdout.close()
@@ -234,7 +234,7 @@ def SSHCall(command, logger, timeout=None, **opts):
output += lastline
else:
output = process.communicate()[0].decode("utf-8", errors='replace')
output = process.communicate()[0].decode('utf-8', errors='ignore')
logger.debug('Data from SSH call: %s' % output.rstrip())
options = {

View File

@@ -19,6 +19,7 @@ import testtools
import threading
import time
import io
import subunit
from queue import Queue
from itertools import cycle
@@ -50,10 +51,11 @@ class BBThreadsafeForwardingResult(ThreadsafeForwardingResult):
def _add_result_with_semaphore(self, method, test, *args, **kwargs):
self.semaphore.acquire()
try:
self.result.starttime[test.id()] = self._test_start.timestamp()
self.result.threadprogress[self.threadnum].append(test.id())
totalprogress = sum(len(x) for x in self.result.threadprogress.values())
self.result.progressinfo[test.id()] = "%s: %s/%s %s/%s (%ss) (%s)" % (
if self._test_start:
self.result.starttime[test.id()] = self._test_start.timestamp()
self.result.threadprogress[self.threadnum].append(test.id())
totalprogress = sum(len(x) for x in self.result.threadprogress.values())
self.result.progressinfo[test.id()] = "%s: %s/%s %s/%s (%ss) (%s)" % (
self.threadnum,
len(self.result.threadprogress[self.threadnum]),
self.totalinprocess,
@@ -65,6 +67,23 @@ class BBThreadsafeForwardingResult(ThreadsafeForwardingResult):
self.semaphore.release()
super(BBThreadsafeForwardingResult, self)._add_result_with_semaphore(method, test, *args, **kwargs)
#
# We have to patch subunit since it doesn't understand how to handle addError
# outside of a running test case. This can happen if classSetUp() fails
# for a class of tests. This unfortunately has horrible internal knowledge.
#
def outSideTestaddError(self, offset, line):
"""An 'error:' directive has been read."""
test_name = line[offset:-1].decode('utf8')
self.parser._current_test = subunit.RemotedTestCase(test_name)
self.parser.current_test_description = test_name
self.parser._state = self.parser._reading_error_details
self.parser._reading_error_details.set_simple()
self.parser.subunitLineReceived(line)
subunit._OutSideTest.addError = outSideTestaddError
#
# A dummy structure to add to io.StringIO so that the .buffer object
# is available and accepts writes. This allows unittest with buffer=True

View File

@@ -1,7 +1,7 @@
[
{
"test": {
"@alias": "bsps-hw.bsps-tools.rpm_-__install_dependency_package",
"@alias": "bsps-hw.bsps-hw.rpm_-__install_dependency_package",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -27,7 +27,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.boot_and_install_from_USB",
"@alias": "bsps-hw.bsps-hw.boot_and_install_from_USB",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -61,7 +61,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.live_boot_from_USB",
"@alias": "bsps-hw.bsps-hw.live_boot_from_USB",
"author": [
{
"email": "juan.fernandox.ramos.frayle@intel.com",
@@ -87,7 +87,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.boot_from_runlevel_3",
"@alias": "bsps-hw.bsps-hw.boot_from_runlevel_3",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -121,7 +121,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.boot_from_runlevel_5",
"@alias": "bsps-hw.bsps-hw.boot_from_runlevel_5",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -151,7 +151,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.shutdown_system",
"@alias": "bsps-hw.bsps-hw.shutdown_system",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -173,7 +173,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.reboot_system",
"@alias": "bsps-hw.bsps-hw.reboot_system",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -195,7 +195,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.switch_among_multi_applications_and_desktop",
"@alias": "bsps-hw.bsps-hw.switch_among_multi_applications_and_desktop",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -225,7 +225,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.USB_-_mount",
"@alias": "bsps-hw.bsps-hw.USB_-_mount",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -251,7 +251,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.USB_-_read_files",
"@alias": "bsps-hw.bsps-hw.USB_-_read_files",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -281,7 +281,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.USB_-_umount",
"@alias": "bsps-hw.bsps-hw.USB_-_umount",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -307,7 +307,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.USB_-_write_files",
"@alias": "bsps-hw.bsps-hw.USB_-_write_files",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -333,7 +333,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.ethernet_static_ip_set_in_connman",
"@alias": "bsps-hw.bsps-hw.ethernet_static_ip_set_in_connman",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -367,7 +367,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.ethernet_get_IP_in_connman_via_DHCP",
"@alias": "bsps-hw.bsps-hw.ethernet_get_IP_in_connman_via_DHCP",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -397,7 +397,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.connman_offline_mode_in_connman-gnome",
"@alias": "bsps-hw.bsps-hw.connman_offline_mode_in_connman-gnome",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -419,7 +419,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.X_server_can_start_up_with_runlevel_5_boot",
"@alias": "bsps-hw.bsps-hw.X_server_can_start_up_with_runlevel_5_boot",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -441,7 +441,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.standby",
"@alias": "bsps-hw.bsps-hw.standby",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -475,7 +475,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.check_CPU_utilization_after_standby",
"@alias": "bsps-hw.bsps-hw.check_CPU_utilization_after_standby",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -505,7 +505,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Test_if_LAN_device_works_well_after_resume_from_suspend_state",
"@alias": "bsps-hw.bsps-hw.Test_if_LAN_device_works_well_after_resume_from_suspend_state",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -535,7 +535,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Test_if_usb_hid_device_works_well_after_resume_from_suspend_state",
"@alias": "bsps-hw.bsps-hw.Test_if_usb_hid_device_works_well_after_resume_from_suspend_state",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -565,7 +565,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.click_terminal_icon_on_X_desktop",
"@alias": "bsps-hw.bsps-hw.click_terminal_icon_on_X_desktop",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -587,7 +587,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.Add_multiple_files_in_media_player",
"@alias": "bsps-hw.bsps-hw.Add_multiple_files_in_media_player",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -613,7 +613,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.check_bash_in_image",
"@alias": "bsps-hw.bsps-hw.check_bash_in_image",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -631,7 +631,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.MicroSD_-__mount",
"@alias": "bsps-hw.bsps-hw.MicroSD_-__mount",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -653,7 +653,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.MicroSD_-__read_files",
"@alias": "bsps-hw.bsps-hw.MicroSD_-__read_files",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -683,7 +683,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.MicroSD_-__umount",
"@alias": "bsps-hw.bsps-hw.MicroSD_-__umount",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -713,7 +713,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.MicroSD_-__write_files",
"@alias": "bsps-hw.bsps-hw.MicroSD_-__write_files",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -743,7 +743,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.video_-_libva_check_(ogg_video_play)",
"@alias": "bsps-hw.bsps-hw.video_-_libva_check_(ogg_video_play)",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -769,29 +769,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.media_player_-_unable_to_play_MPEG-1_without_\"commercial\"_flag",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
"name": "alexandru.c.georgescu@intel.com"
}
],
"execution": {
"1": {
"action": "Copy sample MPEG-1 file to a system without the \"commercial\" flag.",
"expected_results": ""
},
"2": {
"action": "Launch media player and make sure it cannot play the MPEG-1 file.",
"expected_results": "MPEG-1 file can not be played on images without the \"commercial\" flag. "
}
},
"summary": "media_player_-_unable_to_play_MPEG-1_without_\"commercial\"_flag"
}
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.media_player_-_play_video_(ogv)",
"@alias": "bsps-hw.bsps-hw.media_player_-_play_video_(ogv)",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -813,7 +791,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.media_player_-_stop/play_button_(ogv)",
"@alias": "bsps-hw.bsps-hw.media_player_-_stop/play_button_(ogv)",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -843,7 +821,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.audio_-_play_(ogg)_with_HDMI",
"@alias": "bsps-hw.bsps-hw.audio_-_play_(ogg)_with_HDMI",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -869,7 +847,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.audio_-_play_(wav)_with_HDMI",
"@alias": "bsps-hw.bsps-hw.audio_-_play_(wav)_with_HDMI",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -895,7 +873,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.Graphics_-_ABAT",
"@alias": "bsps-hw.bsps-hw.Graphics_-_ABAT",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -921,7 +899,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-tools.Graphics_-_x11perf_-_2D",
"@alias": "bsps-hw.bsps-hw.Graphics_-_x11perf_-_2D",
"author": [
{
"email": "alexandru.c.georgescu@intel.com",
@@ -943,33 +921,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-oe-core.Test_Run_Integrity_-_Check_that_image_is_buildable",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": "Check that image can be built using either of the following methods: \n\n",
"expected_results": ""
},
"2": {
"action": "Check that image is built by autobuilder \nPlease check at: https://autobuilder.yocto.io/pub/releases/ \nChoose the target release that you are validating. \n\n",
"expected_results": ""
},
"3": {
"action": "Build image yourself \nPreferred to build an core-image-sato-dev to ease the process of the dependent test cases in this run. \nNote: Please set MACHINE in conf/local.conf ",
"expected_results": "If either method fails, this test case will be failed and dependent test cases will be blocked. "
}
},
"summary": "Test_Run_Integrity_-_Check_that_image_is_buildable"
}
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Check_if_SATA_disk_can_work_correctly",
"@alias": "bsps-hw.bsps-hw.Check_if_SATA_disk_can_work_correctly",
"author": [
{
"email": "yi.zhao@windriver.com",
@@ -999,7 +951,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Install_and_boot_from_USB-drive_to_HDD-drive",
"@alias": "bsps-hw.bsps-hw.Install_and_boot_from_USB-drive_to_HDD-drive",
"author": [
{
"email": "david.israelx.rodriguez.castellanos@intel.com",
@@ -1041,7 +993,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Install_and_boot_from_USB-drive_to_SD-drive",
"@alias": "bsps-hw.bsps-hw.Install_and_boot_from_USB-drive_to_SD-drive",
"author": [
{
"email": "david.israelx.rodriguez.castellanos@intel.com",
@@ -1083,7 +1035,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Test_boot_on_serial_communication_SD",
"@alias": "bsps-hw.bsps-hw.Test_boot_on_serial_communication_SD",
"author": [
{
"email": "juan.fernandox.ramos.frayle@intel.com",
@@ -1101,7 +1053,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Test_boot_on_serial_communication_HDD",
"@alias": "bsps-hw.bsps-hw.Test_boot_on_serial_communication_HDD",
"author": [
{
"email": "juan.fernandox.ramos.frayle@intel.com",
@@ -1119,7 +1071,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Test_boot_on_serial_communication_USB",
"@alias": "bsps-hw.bsps-hw.Test_boot_on_serial_communication_USB",
"author": [
{
"email": "juan.fernandox.ramos.frayle@intel.com",
@@ -1153,7 +1105,7 @@
},
{
"test": {
"@alias": "bsps-hw.bsps-runtime.Test_Seek_bar_and_volume_control",
"@alias": "bsps-hw.bsps-hw.Test_Seek_bar_and_volume_control",
"author": [
{
"email": "juan.fernandox.ramos.frayle@intel.com",
@@ -1196,5 +1148,139 @@
},
"summary": "Test_Seek_bar_and_volume_control"
}
},
{
"test": {
"@alias": "bsps-hw.bsps-hw.Check_if_watchdog_can_reset_the_target_system",
"author": [
{
"email": "yi.zhao@windriver.com",
"name": "yi.zhao@windriver.com"
}
],
"execution": {
"1": {
"action": "1.Check if watchdog device exist in /dev/ directory. Run command echo 1 > /dev/watchdog and wait for 60s. Then, the target will reboot.",
"expected_results": "The watchdog device exist in /dev/ directory and can reboot the target.\n"
}
},
"summary": "Check_if_watchdog_can_reset_the_target_system"
}
},
{
"test": {
"@alias": "bsps-hw.bsps-hw.Check_if_RTC_(Real_Time_Clock)_can_work_correctly",
"author": [
{
"email": "yi.zhao@windriver.com",
"name": "yi.zhao@windriver.com"
}
],
"execution": {
"1": {
"action": "Read time from RTC registers. root@localhost:/root> hwclock -r Sun Mar 22 04:05:47 1970 -0.001948 seconds ",
"expected_results": "Can read and set the time from RTC.\n"
},
"2": {
"action": "Set system current time root@localhost:/root> date 062309452008 ",
"expected_results": ""
},
"3": {
"action": "Synchronize the system current time to RTC registers root@localhost:/root> hwclock -w ",
"expected_results": ""
},
"4": {
"action": "Read time from RTC registers root@localhost:/root> hwclock -r ",
"expected_results": ""
},
"5": {
"action": "Reboot target and read time from RTC again\n",
"expected_results": ""
}
},
"summary": "Check_if_RTC_(Real_Time_Clock)_can_work_correctly"
}
},
{
"test": {
"@alias": "bsps-hw.bsps-hw.Check_if_target_can_support_EEPROM",
"author": [
{
"email": "yi.zhao@windriver.com",
"name": "yi.zhao@windriver.com"
}
],
"execution": {
"1": {
"action": "Check eeprom device exist in /sys/bus/i2c/devices/ ",
"expected_results": "Hexdump can read data from eeprom.\n"
},
"2": {
"action": "Run \"hexdump eeprom\" commandroot@mpc8315e-rdb:/sys/bus/i2c/devices/1-0051> hexdump eeprom0000000 9210 0b02 0211 0009 0b52 0108 0c00 3c000000010 6978 6930 6911 208c 7003 3c3c 00f0 8381\u2026\n",
"expected_results": ""
}
},
"summary": "Check_if_target_can_support_EEPROM"
}
},
{
"test": {
"@alias": "bsps-hw.bsps-hw.System_can_boot_up_via_NFS",
"author": [
{
"email": "yi.zhao@windriver.com",
"name": "yi.zhao@windriver.com"
}
],
"execution": {
"1": {
"action": "Connect the board's first serial port to your workstation and then start up your favourite serial terminal so that you will be able to interact with the serial console. If you don't have a favourite, picocom is suggested: $ picocom /dev/ttyS0 -b 115200 ",
"expected_results": "The system can boot up without problem\n"
},
"2": {
"action": "Power up or reset the board and press a key on the terminal when prompted to get to the U-Boot command line ",
"expected_results": ""
},
"3": {
"action": "Set up the environment in U-Boot: => setenv ipaddr => setenv serverip ",
"expected_results": ""
},
"4": {
"action": "Download the kernel and boot: => tftp tftp $loadaddr vmlinux => bootoctlinux $loadaddr coremask=0x3 root=/dev/nfs rw nfsroot=: ip=::::edgerouter:eth0:off mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)\n",
"expected_results": ""
}
},
"summary": "System_can_boot_up_via_NFS"
}
},
{
"test": {
"@alias": "bsps-hw.bsps-hw.Boot_from_JFFS2_image",
"author": [
{
"email": "yi.zhao@windriver.com",
"name": "yi.zhao@windriver.com"
}
],
"execution": {
"1": {
"action": "First boot the board with NFS root. ",
"expected_results": "The system can boot up without problem\n"
},
"2": {
"action": "Install mtd-utils package. Erase the MTD partition which will be used as root: $ flash_eraseall /dev/mtd3 ",
"expected_results": ""
},
"3": {
"action": "Copy the JFFS2 image to the MTD partition: $ flashcp core-image-minimal-mpc8315e-rdb.jffs2 /dev/mtd3 ",
"expected_results": ""
},
"4": {
"action": "Then reboot the board and set up the environment in U-Boot: => setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttyS0,115200 ",
"expected_results": ""
}
},
"summary": "Boot_from_JFFS2_image"
}
}
]

View File

@@ -0,0 +1,194 @@
[
{
"test": {
"@alias": "compliance-test.compliance-test.LTP_subset_test_suite",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": "For real hardware, run following component, \nsyscalls \nfs \nfsx \ndio \nio \nmm \nipc \nsched \nmath \nnptl \npty \nadmin_tools \ntimers \ncommands \n\nFor QEMU, run following component \nsyscalls \nmm \nipc \nsched \nmath \nnptl \npty \nadmin_tools \ncommands \n\nRun Instructions: \nLTP download: http://sourceforge.net/projects/ltp/files/LTP%20Source/ltp-20120401/ltp-full-20120401.bz2/download \n\n(link is outdated, always use the last version released or the one found in the image) \n\n\n\nbuild steps: refer to http://ltp.sourceforge.net \n\nRun steps:",
"expected_results": ""
},
"2": {
"action": "Build LTP with toolchain or in sdk image. Or use a sato-sdk image which has LTP already included in /opt/ltp",
"expected_results": ""
},
"3": {
"action": "For QEMU, create the qemu target with \"-m 512\", which makes some memory stress cases pass. For some issues, we could only set 128M for qemuarm and 256M for qemumips.",
"expected_results": ""
},
"4": {
"action": "Copy LTP folder into target, for example, /opt/ltp if you have built it yourself. Modify the default scenario file \"scenario_groups/default\", remove test suites not to be tested",
"expected_results": ""
},
"5": {
"action": "Comment runtests/sched: hackbench, which is not suitable to run in emulators. Reminder (comment it also for Sugarbay Devices).",
"expected_results": ""
},
"6": {
"action": "Comment oom01, oom02, oom03, oom04 in runtest/mm, which consume lots of memory",
"expected_results": ""
},
"7": {
"action": "From /opt/ltp run: ./runltp -p -l result-M2-20101218.log -C result-M2-20101218.fail -d /opt/ltp/tmp &> result-M2-20101218.fulllog \n\n",
"expected_results": "Check the result on wiki, https://wiki.yoctoproject.org/wiki/LTP_result, there should be no regression failure met."
}
},
"summary": "LTP_subset_test_suite"
}
},
{
"test": {
"@alias": "compliance-test.compliance-test.POSIX_subset_test_suite",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": "In a sato-sdk image go to /opt/ltp or get latest LTP sourcecode, download location is http://sourceforge.net/projects/ltp/files/LTP%20Source/ and install it.",
"expected_results": ""
},
"2": {
"action": "Go into the folder of LTP, and posix_testsuite is under testcases/open_posix_testsuite/",
"expected_results": ""
},
"3": {
"action": "Run connmand: make generate-makefiles",
"expected_results": ""
},
"4": {
"action": "Run connmand: make conformance-all",
"expected_results": ""
},
"5": {
"action": "Run connmand: make conformance-test (this step may show errors, ignore them)",
"expected_results": ""
},
"6": {
"action": "Run connmand: make tools-all",
"expected_results": ""
},
"7": {
"action": "Run connmand: sh posix.sh > posix.log, posix.sh as below: \n \n#!/bin/sh \n./bin/run-posix-option-group-test.sh AIO \n./bin/run-posix-option-group-test.sh MEM \n./bin/run-posix-option-group-test.sh MSG \n./bin/run-posix-option-group-test.sh SEM \n./bin/run-posix-option-group-test.sh SIG \n./bin/run-posix-option-group-test.sh THR \n./bin/run-posix-option-group-test.sh TMR \n./bin/run-posix-option-group-test.sh TPS \n \n",
"expected_results": ""
},
"8": {
"action": "Check the posix.log after testing is finished",
"expected_results": "Compare the test result on wiki, https://wiki.yoctoproject.org/wiki/Posix_result, there should be no more regression failures met."
}
},
"summary": "POSIX_subset_test_suite"
}
},
{
"test": {
"@alias": "compliance-test.compliance-test.LSB_subset_test_suite",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": "Get lsd-sdk image and install it on target device or start the image(if it is QEMU) with option \"-m 512M\"",
"expected_results": ""
},
"2": {
"action": "Comment in /opt/lsb-test/session any tests you don't want to run.",
"expected_results": ""
},
"3": {
"action": "Run /usr/bin/LSB_Test.sh which should download the LSB suite and set it up. Some packages may fail to download because their location changed on ftp.linuxfoundation.org. You need to manually update /opt/lsb-test/packages_list",
"expected_results": ""
},
"4": {
"action": "Tests should start automatically, you can use the web interface to reconfigure the setup. ",
"expected_results": "Check the result on wiki https://wiki.yoctoproject.org/wiki/LSB_Result No regression failures should be met."
}
},
"summary": "LSB_subset_test_suite"
}
},
{
"test": {
"@alias": "compliance-test.compliance-test.stress_test_-_Genericx86-64",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": "Bootup with core-image-lsb-sdk image",
"expected_results": ""
},
"2": {
"action": "Execute the crashme test with below command \n\n./opt/ltp/runltp f crashme",
"expected_results": "The stress testing should not make the target crash. Check CPU usage and basic functionality of the system after the tests are over. "
}
},
"summary": "stress_test_-_Genericx86-64"
}
},
{
"test": {
"@alias": "compliance-test.compliance-test.stress_test_-_- crashme_-_-Beaglebone",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": " Get crashme from http://people.delphiforums.com/gjc/crashme.html",
"expected_results": ""
},
"2": {
"action": "Follow the setup steps on above URL, build crashme in target",
"expected_results": ""
},
"3": {
"action": " Run crashme for 24 hours",
"expected_results": "Target should not crash with the program."
}
},
"summary": "stress_test_-_crashme_-Beaglebone"
}
},
{
"test": {
"@alias": "compliance-test.compliance-test.stress_test_-_ltp_-Beaglebone",
"author": [
{
"email": "corneliux.stoicescu@intel.com",
"name": "corneliux.stoicescu@intel.com"
}
],
"execution": {
"1": {
"action": "Build LTP with toolchain or in sdk image",
"expected_results": ""
},
"2": {
"action": "Copy LTP folder into target, for example, /opt/ltp. Modify script, testscripts/ltpstress.sh, set Iostat=1, NO_NETWORK=1",
"expected_results": ""
},
"3": {
"action": "cd testscripts/ && ./ltpstress.sh",
"expected_results": "This stress case will run for 24 hours Check the result\ntarget should not crash with the program "
}
},
"summary": "stress_test_-_-ltp_-Beaglebone"
}
}
]

View File

@@ -1,7 +1,7 @@
[
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_defconfig",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_defconfig",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -18,12 +18,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_7"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_defconfig"
"summary": "Kernel_dev_defconfig"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_defconfig+fragments",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_defconfig+fragments",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -40,12 +40,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_8"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_defconfig+fragments"
"summary": "Kernel_dev_defconfig+fragments"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_Applying_patches",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_Applying_patches",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -62,12 +62,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_Applying_patches"
"summary": "Kernel_dev_Applying_patches"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-local-source",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_linux-yocto-local-source",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -84,12 +84,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_2"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-local-source"
"summary": "Kernel_dev_linux-yocto-local-source"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-custom-local-source",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_linux-yocto-custom-local-source",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -106,12 +106,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_3"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_linux-yocto-custom-local-source"
"summary": "Kernel_dev_linux-yocto-custom-local-source"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_recipe-space_meta",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_recipe-space_meta",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -128,12 +128,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_5"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_recipe-space_meta"
"summary": "Kernel_dev_recipe-space_meta"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_External_source",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_External_source",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -150,12 +150,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_6"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_External_source"
"summary": "Kernel_dev_External_source"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_building_external_modules(hello-mod)",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_building_external_modules(hello-mod)",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -172,12 +172,12 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_10"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_building_external_modules(hello-mod)"
"summary": "Kernel_dev_building_external_modules(hello-mod)"
}
},
{
"test": {
"@alias": "kernel-configuration.kernel-configuration.TCTEMP_2.3_MANUAL_Kernel_dev_local_parallel_meta",
"@alias": "kernel-dev.kernel-dev.Kernel_dev_local_parallel_meta",
"author": [
{
"email": "ee.peng.yeoh@intel.com",
@@ -194,7 +194,7 @@
"expected_results": "Review expected results on thethe \"Kernel Development Test Cases\"wiki. https://wiki.yoctoproject.org/wiki/Kernel_Development_Test_Cases#Expected_Results_4"
}
},
"summary": "TCTEMP_2.3_MANUAL_Kernel_dev_local_parallel_meta"
"summary": "Kernel_dev_local_parallel_meta"
}
}
]

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -8,5 +8,5 @@ from oeqa.core.case import OETestCase
class OESDKTestCase(OETestCase):
def _run(self, cmd):
return subprocess.check_output(". %s > /dev/null; %s;" % \
(self.tc.sdk_env, cmd), shell=True,
(self.tc.sdk_env, cmd), shell=True, executable="/bin/bash",
stderr=subprocess.STDOUT, universal_newlines=True)

View File

@@ -42,7 +42,8 @@ class SDKBuildProject(BuildProject):
def _run(self, cmd):
self.log("Running . %s; " % self.sdkenv + cmd)
try:
output = subprocess.check_output(". %s; " % self.sdkenv + cmd, shell=True, stderr=subprocess.STDOUT)
output = subprocess.check_output(". %s; " % self.sdkenv + cmd, shell=True,
executable='/bin/bash', stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as exc:
print(exc.output.decode('utf-8'))
return exc.returncode

View File

@@ -13,6 +13,7 @@ class OePkgdataUtilTests(OESelftestTestCase):
super(OePkgdataUtilTests, cls).setUpClass()
# Ensure we have the right data in pkgdata
cls.logger.info('Running bitbake to generate pkgdata')
bitbake('target-sdk-provides-dummy -c clean')
bitbake('busybox zlib m4')
@OETestID(1203)

View File

@@ -159,7 +159,7 @@ class QemuTarget(BaseTarget):
def start(self, params=None, ssh=True, extra_bootparams='', runqemuparams='', launch_cmd='', discard_writes=True):
if launch_cmd:
start = self.runner.launch(get_ip=ssh, launch_cmd=launch_cmd)
start = self.runner.launch(get_ip=ssh, launch_cmd=launch_cmd, qemuparams=params)
else:
start = self.runner.start(params, get_ip=ssh, extra_bootparams=extra_bootparams, runqemuparams=runqemuparams, discard_writes=discard_writes)

View File

@@ -320,6 +320,7 @@ class QemuRunner:
self.logger.debug("Target didn't reach login banner in %d seconds (%s)" %
(self.boottime, time.strftime("%D %H:%M:%S")))
tail = lambda l: "\n".join(l.splitlines()[-25:])
bootlog = bootlog.decode("utf-8")
# in case bootlog is empty, use tail qemu log store at self.msg
lines = tail(bootlog if bootlog else self.msg)
self.logger.debug("Last 25 lines of text:\n%s" % lines)

View File

@@ -19,7 +19,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://avahi-daemon/main.c;endline=21;md5=9ee77368c5407af77caaef1b07285969 \
file://avahi-client/client.h;endline=23;md5=f4ac741a25c4f434039ba3e18c8674cf"
SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}.tar.gz"
SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}.tar.gz \
file://fix-CVE-2017-6519.patch \
"
UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/"
SRC_URI[md5sum] = "d76c59d0882ac6c256d70a2a585362a6"

View File

@@ -0,0 +1,48 @@
Upstream-Status: Backport [https://github.com/lathiat/avahi/commit/e111def]
CVE: CVE-2017-6519
Signed-off-by: Kai Kang <kai.kang@windriver.com>
From e111def44a7df4624a4aa3f85fe98054bffb6b4f Mon Sep 17 00:00:00 2001
From: Trent Lloyd <trent@lloyd.id.au>
Date: Sat, 22 Dec 2018 09:06:07 +0800
Subject: [PATCH] Drop legacy unicast queries from address not on local link
When handling legacy unicast queries, ensure that the source IP is
inside a subnet on the local link, otherwise drop the packet.
Fixes #145
Fixes #203
CVE-2017-6519
CVE-2018-1000845
---
avahi-core/server.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/avahi-core/server.c b/avahi-core/server.c
index a2cb19a8..a2580e38 100644
--- a/avahi-core/server.c
+++ b/avahi-core/server.c
@@ -930,6 +930,7 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
if (avahi_dns_packet_is_query(p)) {
int legacy_unicast = 0;
+ char t[AVAHI_ADDRESS_STR_MAX];
/* For queries EDNS0 might allow ARCOUNT != 0. We ignore the
* AR section completely here, so far. Until the day we add
@@ -947,6 +948,13 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
legacy_unicast = 1;
}
+ if (!is_mdns_mcast_address(dst_address) &&
+ !avahi_interface_address_on_link(i, src_address)) {
+
+ avahi_log_debug("Received non-local unicast query from host %s on interface '%s.%i'.", avahi_address_snprint(t, sizeof(t), src_address), i->hardware->name, i->protocol);
+ return;
+ }
+
if (legacy_unicast)
reflect_legacy_unicast_query_packet(s, p, i, src_address, port);

View File

@@ -41,7 +41,7 @@ PACKAGECONFIG[sixaxis] = "--enable-sixaxis,--disable-sixaxis"
PACKAGECONFIG[tools] = "--enable-tools,--disable-tools"
PACKAGECONFIG[threads] = "--enable-threads,--disable-threads"
PACKAGECONFIG[deprecated] = "--enable-deprecated,--disable-deprecated"
PACKAGECONFIG[mesh] = "--enable-mesh,--disable-mesh, json-c"
PACKAGECONFIG[mesh] = "--enable-mesh,--disable-mesh, json-c ell"
PACKAGECONFIG[btpclient] = "--enable-btpclient,--disable-btpclient, ell"
SRC_URI = "\
@@ -53,6 +53,7 @@ SRC_URI = "\
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
file://0001-test-gatt-Fix-hung-issue.patch \
file://0001-Makefile.am-Fix-a-race-issue-for-tools.patch \
file://CVE-2018-10910.patch \
"
S = "${WORKDIR}/bluez-${PV}"

View File

@@ -0,0 +1,705 @@
A bug in Bluez may allow for the Bluetooth Discoverable state being set to on
when no Bluetooth agent is registered with the system. This situation could
lead to the unauthorized pairing of certain Bluetooth devices without any
form of authentication.
CVE: CVE-2018-10910
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
Subject: [PATCH BlueZ 1/4] client: Add discoverable-timeout command
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-25 10:20:32
Message-ID: 20180725102035.19439-1-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds discoverable-timeout command which can be used to get/set
DiscoverableTimeout property:
[bluetooth]# discoverable-timeout 180
Changing discoverable-timeout 180 succeeded
---
client/main.c | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/client/main.c b/client/main.c
index 87323d8f7..59820c6d9 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1061,6 +1061,47 @@ static void cmd_discoverable(int argc, char *argv[])
return bt_shell_noninteractive_quit(EXIT_FAILURE);
}
+static void cmd_discoverable_timeout(int argc, char *argv[])
+{
+ uint32_t value;
+ char *endptr = NULL;
+ char *str;
+
+ if (argc < 2) {
+ DBusMessageIter iter;
+
+ if (!g_dbus_proxy_get_property(default_ctrl->proxy,
+ "DiscoverableTimeout", &iter)) {
+ bt_shell_printf("Unable to get DiscoverableTimeout\n");
+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
+ }
+
+ dbus_message_iter_get_basic(&iter, &value);
+
+ bt_shell_printf("DiscoverableTimeout: %d seconds\n", value);
+
+ return;
+ }
+
+ value = strtol(argv[1], &endptr, 0);
+ if (!endptr || *endptr != '\0' || value > UINT32_MAX) {
+ bt_shell_printf("Invalid argument\n");
+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
+ }
+
+ str = g_strdup_printf("discoverable-timeout %d", value);
+
+ if (g_dbus_proxy_set_property_basic(default_ctrl->proxy,
+ "DiscoverableTimeout",
+ DBUS_TYPE_UINT32, &value,
+ generic_callback, str, g_free))
+ return;
+
+ g_free(str);
+
+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
+}
+
static void cmd_agent(int argc, char *argv[])
{
dbus_bool_t enable;
@@ -2549,6 +2590,8 @@ static const struct bt_shell_menu main_menu = {
{ "discoverable", "<on/off>", cmd_discoverable,
"Set controller discoverable mode",
NULL },
+ { "discoverable-timeout", "[value]", cmd_discoverable_timeout,
+ "Set discoverable timeout", NULL },
{ "agent", "<on/off/capability>", cmd_agent,
"Enable/disable agent with given capability",
capability_generator},
--
2.17.1
Subject: [PATCH BlueZ 2/4] client: Make show command print DiscoverableTimeout
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-25 10:20:33
Message-ID: 20180725102035.19439-2-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Controller XX:XX:XX:XX:XX:XX (public)
Name: Vudentz's T460s
Alias: Intel-1
Class: 0x004c010c
Powered: yes
Discoverable: no
DiscoverableTimeout: 0x00000000
Pairable: yes
UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: SIM Access (0000112d-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0532
Discovering: no
---
client/main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/client/main.c b/client/main.c
index 59820c6d9..6f472d050 100644
--- a/client/main.c
+++ b/client/main.c
@@ -877,6 +877,7 @@ static void cmd_show(int argc, char *argv[])
print_property(proxy, "Class");
print_property(proxy, "Powered");
print_property(proxy, "Discoverable");
+ print_property(proxy, "DiscoverableTimeout");
print_property(proxy, "Pairable");
print_uuids(proxy);
print_property(proxy, "Modalias");
--
2.17.1
Subject: [PATCH BlueZ 3/4] adapter: Track pending settings
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-25 10:20:34
Message-ID: 20180725102035.19439-3-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This tracks settings being changed and in case the settings is already
pending considered it to be done.
---
src/adapter.c | 30 ++++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/src/adapter.c b/src/adapter.c
index af340fd6e..20c20f9e9 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -196,6 +196,7 @@ struct btd_adapter {
char *name; /* controller device name */
char *short_name; /* controller short name */
uint32_t supported_settings; /* controller supported settings */
+ uint32_t pending_settings; /* pending controller settings */
uint32_t current_settings; /* current controller settings */
char *path; /* adapter object path */
@@ -509,8 +510,10 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings)
changed_mask = adapter->current_settings ^ settings;
adapter->current_settings = settings;
+ adapter->pending_settings &= ~changed_mask;
DBG("Changed settings: 0x%08x", changed_mask);
+ DBG("Pending settings: 0x%08x", adapter->pending_settings);
if (changed_mask & MGMT_SETTING_POWERED) {
g_dbus_emit_property_changed(dbus_conn, adapter->path,
@@ -596,10 +599,31 @@ static bool set_mode(struct btd_adapter *adapter, uint16_t opcode,
uint8_t mode)
{
struct mgmt_mode cp;
+ uint32_t setting = 0;
memset(&cp, 0, sizeof(cp));
cp.val = mode;
+ switch (mode) {
+ case MGMT_OP_SET_POWERED:
+ setting = MGMT_SETTING_POWERED;
+ break;
+ case MGMT_OP_SET_CONNECTABLE:
+ setting = MGMT_SETTING_CONNECTABLE;
+ break;
+ case MGMT_OP_SET_FAST_CONNECTABLE:
+ setting = MGMT_SETTING_FAST_CONNECTABLE;
+ break;
+ case MGMT_OP_SET_DISCOVERABLE:
+ setting = MGMT_SETTING_DISCOVERABLE;
+ break;
+ case MGMT_OP_SET_BONDABLE:
+ setting = MGMT_SETTING_DISCOVERABLE;
+ break;
+ }
+
+ adapter->pending_settings |= setting;
+
DBG("sending set mode command for index %u", adapter->dev_id);
if (mgmt_send(adapter->mgmt, opcode,
@@ -2739,13 +2763,15 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting,
else
current_enable = FALSE;
- if (enable == current_enable) {
+ if (enable == current_enable || adapter->pending_settings & setting) {
g_dbus_pending_property_success(id);
return;
}
mode = (enable == TRUE) ? 0x01 : 0x00;
+ adapter->pending_settings |= setting;
+
switch (setting) {
case MGMT_SETTING_POWERED:
opcode = MGMT_OP_SET_POWERED;
@@ -2798,7 +2824,7 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting,
data->id = id;
if (mgmt_send(adapter->mgmt, opcode, adapter->dev_id, len, param,
- property_set_mode_complete, data, g_free) > 0)
+ property_set_mode_complete, data, g_free) > 0)
return;
g_free(data);
--
2.17.1
Subject: [PATCH BlueZ 4/4] adapter: Check pending when setting DiscoverableTimeout
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-25 10:20:35
Message-ID: 20180725102035.19439-4-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes DiscoverableTimeout check if discoverable is already pending
and don't attempt to set it once again which may cause discoverable to
be re-enabled when in fact the application just want to set the timeout
alone.
---
src/adapter.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/adapter.c b/src/adapter.c
index 20c20f9e9..f92c897c7 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -2901,6 +2901,7 @@ static void property_set_discoverable_timeout(
GDBusPendingPropertySet id, void *user_data)
{
struct btd_adapter *adapter = user_data;
+ bool enabled;
dbus_uint32_t value;
dbus_message_iter_get_basic(iter, &value);
@@ -2914,8 +2915,19 @@ static void property_set_discoverable_timeout(
g_dbus_emit_property_changed(dbus_conn, adapter->path,
ADAPTER_INTERFACE, "DiscoverableTimeout");
+ if (adapter->pending_settings & MGMT_SETTING_DISCOVERABLE) {
+ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE)
+ enabled = false;
+ else
+ enabled = true;
+ } else {
+ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE)
+ enabled = true;
+ else
+ enabled = false;
+ }
- if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE)
+ if (enabled)
set_discoverable(adapter, 0x01, adapter->discoverable_timeout);
}
--
2.17.1
Subject: [PATCH BlueZ 1/5] doc/adapter-api: Add Discoverable option to SetDiscoveryFilter
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-26 14:17:19
Message-ID: 20180726141723.20199-1-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This enables the client to set its discoverable setting while
discovering which is very typical situation as usually the setings
application would allow incoming pairing request while scanning, so
this would reduce the number of calls setting Discoverable and
DiscoverableTimeout and restoring after done with discovery.
---
doc/adapter-api.txt | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt
index d14d0ca50..4791af2c7 100644
--- a/doc/adapter-api.txt
+++ b/doc/adapter-api.txt
@@ -113,6 +113,12 @@ Methods void StartDiscovery()
generated for either ManufacturerData and
ServiceData everytime they are discovered.
+ bool Discoverable (Default: false)
+
+ Make adapter discoverable while discovering,
+ if the adapter is already discoverable this
+ setting this filter won't do anything.
+
When discovery filter is set, Device objects will be
created as new devices with matching criteria are
discovered regardless of they are connectable or
--
2.17.1
Subject: [PATCH BlueZ 2/5] adapter: Discovery filter discoverable
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-26 14:17:20
Message-ID: 20180726141723.20199-2-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This implements the discovery filter discoverable and tracks which
clients had enabled it and restores the settings when the last client
enabling it exits.
---
src/adapter.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 54 insertions(+), 2 deletions(-)
diff --git a/src/adapter.c b/src/adapter.c
index f92c897c7..bd9edddc6 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -157,6 +157,7 @@ struct discovery_filter {
int16_t rssi;
GSList *uuids;
bool duplicate;
+ bool discoverable;
};
struct watch_client {
@@ -214,6 +215,7 @@ struct btd_adapter {
bool discovering; /* discovering property state */
bool filtered_discovery; /* we are doing filtered discovery */
+ bool filtered_discoverable; /* we are doing filtered discovery */
bool no_scan_restart_delay; /* when this flag is set, restart scan
* without delay */
uint8_t discovery_type; /* current active discovery type */
@@ -1842,6 +1844,16 @@ static void discovery_free(void *user_data)
g_free(client);
}
+static bool set_filtered_discoverable(struct btd_adapter *adapter, bool enable)
+{
+ if (adapter->filtered_discoverable == enable)
+ return true;
+
+ adapter->filtered_discoverable = enable;
+
+ return set_discoverable(adapter, enable, 0);
+}
+
static void discovery_remove(struct watch_client *client)
{
struct btd_adapter *adapter = client->adapter;
@@ -1854,6 +1866,22 @@ static void discovery_remove(struct watch_client *client)
adapter->discovery_list = g_slist_remove(adapter->discovery_list,
client);
+ if (adapter->filtered_discoverable &&
+ client->discovery_filter->discoverable) {
+ GSList *l;
+
+ for (l = adapter->discovery_list; l; l = g_slist_next(l)) {
+ struct watch_client *client = l->data;
+
+ if (client->discovery_filter->discoverable)
+ break;
+ }
+
+ /* Disable filtered discoverable if there are no clients */
+ if (!l)
+ set_filtered_discoverable(adapter, false);
+ }
+
discovery_free(client);
/*
@@ -2224,6 +2252,15 @@ static DBusMessage *start_discovery(DBusConnection *conn,
adapter->set_filter_list, client);
adapter->discovery_list = g_slist_prepend(
adapter->discovery_list, client);
+
+ /* Reset discoverable filter if already set */
+ if (adapter->current_settings & MGMT_OP_SET_DISCOVERABLE)
+ goto done;
+
+ /* Set discoverable if filter requires and it*/
+ if (client->discovery_filter->discoverable)
+ set_filtered_discoverable(adapter, true);
+
goto done;
}
@@ -2348,6 +2385,17 @@ static bool parse_duplicate_data(DBusMessageIter *value,
return true;
}
+static bool parse_discoverable(DBusMessageIter *value,
+ struct discovery_filter *filter)
+{
+ if (dbus_message_iter_get_arg_type(value) != DBUS_TYPE_BOOLEAN)
+ return false;
+
+ dbus_message_iter_get_basic(value, &filter->discoverable);
+
+ return true;
+}
+
struct filter_parser {
const char *name;
bool (*func)(DBusMessageIter *iter, struct discovery_filter *filter);
@@ -2357,6 +2405,7 @@ struct filter_parser {
{ "Pathloss", parse_pathloss },
{ "Transport", parse_transport },
{ "DuplicateData", parse_duplicate_data },
+ { "Discoverable", parse_discoverable },
{ }
};
@@ -2396,6 +2445,7 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter,
(*filter)->rssi = DISTANCE_VAL_INVALID;
(*filter)->type = get_scan_type(adapter);
(*filter)->duplicate = false;
+ (*filter)->discoverable = false;
dbus_message_iter_init(msg, &iter);
if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY ||
@@ -2441,8 +2491,10 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter,
goto invalid_args;
DBG("filtered discovery params: transport: %d rssi: %d pathloss: %d "
- " duplicate data: %s ", (*filter)->type, (*filter)->rssi,
- (*filter)->pathloss, (*filter)->duplicate ? "true" : "false");
+ " duplicate data: %s discoverable %s", (*filter)->type,
+ (*filter)->rssi, (*filter)->pathloss,
+ (*filter)->duplicate ? "true" : "false",
+ (*filter)->discoverable ? "true" : "false");
return true;
--
2.17.1
Subject: [PATCH BlueZ 3/5] client: Add scan.discoverable command
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-26 14:17:21
Message-ID: 20180726141723.20199-3-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds discoverable command to scan menu which can be used to set
if adapter should become discoverable while scanning:
[bluetooth]# scan.discoverable on
[bluetooth]# scan on
SetDiscoveryFilter success
[CHG] Controller XX:XX:XX:XX:XX:XX Discoverable: yes
Discovery started
[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: yes
[bluetooth]# scan off
Discovery stopped
[CHG] Controller XX:XX:XX:XX:XX:XX Discoverable: no
---
client/main.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/client/main.c b/client/main.c
index 6f472d050..6e6f6d2fb 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1166,6 +1166,7 @@ static struct set_discovery_filter_args {
char **uuids;
size_t uuids_len;
dbus_bool_t duplicate;
+ dbus_bool_t discoverable;
bool set;
} filter = {
.rssi = DISTANCE_VAL_INVALID,
@@ -1205,6 +1206,11 @@ static void set_discovery_filter_setup(DBusMessageIter *iter, void *user_data)
DBUS_TYPE_BOOLEAN,
&args->duplicate);
+ if (args->discoverable)
+ g_dbus_dict_append_entry(&dict, "Discoverable",
+ DBUS_TYPE_BOOLEAN,
+ &args->discoverable);
+
dbus_message_iter_close_container(iter, &dict);
}
@@ -1362,6 +1368,26 @@ static void cmd_scan_filter_duplicate_data(int argc, char *argv[])
filter.set = false;
}
+static void cmd_scan_filter_discoverable(int argc, char *argv[])
+{
+ if (argc < 2 || !strlen(argv[1])) {
+ bt_shell_printf("Discoverable: %s\n",
+ filter.discoverable ? "on" : "off");
+ return bt_shell_noninteractive_quit(EXIT_SUCCESS);
+ }
+
+ if (!strcmp(argv[1], "on"))
+ filter.discoverable = true;
+ else if (!strcmp(argv[1], "off"))
+ filter.discoverable = false;
+ else {
+ bt_shell_printf("Invalid option: %s\n", argv[1]);
+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
+ }
+
+ filter.set = false;
+}
+
static void filter_clear_uuids(void)
{
g_strfreev(filter.uuids);
@@ -2510,6 +2536,9 @@ static const struct bt_shell_menu scan_menu = {
{ "duplicate-data", "[on/off]", cmd_scan_filter_duplicate_data,
"Set/Get duplicate data filter",
NULL },
+ { "discoverable", "[on/off]", cmd_scan_filter_discoverable,
+ "Set/Get discoverable filter",
+ NULL },
{ "clear", "[uuids/rssi/pathloss/transport/duplicate-data]",
cmd_scan_filter_clear,
"Clears discovery filter.",
--
2.17.1
Subject: [PATCH BlueZ 4/5] client: Add scan.clear discoverable
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-26 14:17:22
Message-ID: 20180726141723.20199-4-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This implements scan.clear for discoverable filter.
---
client/main.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/client/main.c b/client/main.c
index 6e6f6d2fb..1a66a3ab4 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1416,6 +1416,11 @@ static void filter_clear_duplicate(void)
filter.duplicate = false;
}
+static void filter_clear_discoverable(void)
+{
+ filter.discoverable = false;
+}
+
struct clear_entry {
const char *name;
void (*clear) (void);
@@ -1427,6 +1432,7 @@ static const struct clear_entry filter_clear[] = {
{ "pathloss", filter_clear_pathloss },
{ "transport", filter_clear_transport },
{ "duplicate-data", filter_clear_duplicate },
+ { "discoverable", filter_clear_discoverable },
{}
};
@@ -2539,7 +2545,8 @@ static const struct bt_shell_menu scan_menu = {
{ "discoverable", "[on/off]", cmd_scan_filter_discoverable,
"Set/Get discoverable filter",
NULL },
- { "clear", "[uuids/rssi/pathloss/transport/duplicate-data]",
+ { "clear",
+ "[uuids/rssi/pathloss/transport/duplicate-data/discoverable]",
cmd_scan_filter_clear,
"Clears discovery filter.",
filter_clear_generator },
--
2.17.1
Subject: [PATCH BlueZ 5/5] adapter: Fix not keeping discovery filters
From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
Date: 2018-07-26 14:17:23
Message-ID: 20180726141723.20199-5-luiz.dentz () gmail ! com
[Download RAW message or body]
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
If the discovery has been stopped and the client has set filters those
should be put back into filter list since the client may still be
interested in using them the next time it start a scanning.
---
src/adapter.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/adapter.c b/src/adapter.c
index bd9edddc6..822bd3472 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -1854,7 +1854,7 @@ static bool set_filtered_discoverable(struct btd_adapter *adapter, bool enable)
return set_discoverable(adapter, enable, 0);
}
-static void discovery_remove(struct watch_client *client)
+static void discovery_remove(struct watch_client *client, bool exit)
{
struct btd_adapter *adapter = client->adapter;
@@ -1882,7 +1882,11 @@ static void discovery_remove(struct watch_client *client)
set_filtered_discoverable(adapter, false);
}
- discovery_free(client);
+ if (!exit && client->discovery_filter)
+ adapter->set_filter_list = g_slist_prepend(
+ adapter->set_filter_list, client);
+ else
+ discovery_free(client);
/*
* If there are other client discoveries in progress, then leave
@@ -1911,8 +1915,11 @@ static void stop_discovery_complete(uint8_t status, uint16_t length,
goto done;
}
- if (client->msg)
+ if (client->msg) {
g_dbus_send_reply(dbus_conn, client->msg, DBUS_TYPE_INVALID);
+ dbus_message_unref(client->msg);
+ client->msg = NULL;
+ }
adapter->discovery_type = 0x00;
adapter->discovery_enable = 0x00;
@@ -1925,7 +1932,7 @@ static void stop_discovery_complete(uint8_t status, uint16_t length,
trigger_passive_scanning(adapter);
done:
- discovery_remove(client);
+ discovery_remove(client, false);
}
static int compare_sender(gconstpointer a, gconstpointer b)
@@ -2146,14 +2153,14 @@ static int update_discovery_filter(struct btd_adapter *adapter)
return -EINPROGRESS;
}
-static int discovery_stop(struct watch_client *client)
+static int discovery_stop(struct watch_client *client, bool exit)
{
struct btd_adapter *adapter = client->adapter;
struct mgmt_cp_stop_discovery cp;
/* Check if there are more client discovering */
if (g_slist_next(adapter->discovery_list)) {
- discovery_remove(client);
+ discovery_remove(client, exit);
update_discovery_filter(adapter);
return 0;
}
@@ -2163,7 +2170,7 @@ static int discovery_stop(struct watch_client *client)
* and so it is enough to send out the signal and just return.
*/
if (adapter->discovery_enable == 0x00) {
- discovery_remove(client);
+ discovery_remove(client, exit);
adapter->discovering = false;
g_dbus_emit_property_changed(dbus_conn, adapter->path,
ADAPTER_INTERFACE, "Discovering");
@@ -2188,7 +2195,7 @@ static void discovery_disconnect(DBusConnection *conn, void *user_data)
DBG("owner %s", client->owner);
- discovery_stop(client);
+ discovery_stop(client, true);
}
/*
@@ -2586,7 +2593,7 @@ static DBusMessage *stop_discovery(DBusConnection *conn,
if (client->msg)
return btd_error_busy(msg);
- err = discovery_stop(client);
+ err = discovery_stop(client, false);
switch (err) {
case 0:
return dbus_message_new_method_return(msg);
--
2.17.1

View File

@@ -1,5 +1,8 @@
#!/bin/sh
# Source function library
. /etc/init.d/functions
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC=bluetooth
@@ -44,14 +47,7 @@ case $1 in
$0 start
;;
status)
pidof ${DAEMON} >/dev/null
status=$?
if [ $status -eq 0 ]; then
echo "bluetooth is running."
else
echo "bluetooth is not running"
fi
exit $status
status ${DAEMON} || exit $?
;;
*)
N=/etc/init.d/bluetooth

View File

@@ -0,0 +1,69 @@
Upstream-Status: Backport [https://github.com/openssl/openssl/commit/f426625b6ae9a7831010750490a5f0ad689c5ba3]
Signed-off-by: Ross Burton <ross.burton@intel.com>
From f426625b6ae9a7831010750490a5f0ad689c5ba3 Mon Sep 17 00:00:00 2001
From: Matt Caswell <matt@openssl.org>
Date: Tue, 5 Mar 2019 14:39:15 +0000
Subject: [PATCH] Prevent over long nonces in ChaCha20-Poly1305
ChaCha20-Poly1305 is an AEAD cipher, and requires a unique nonce input for
every encryption operation. RFC 7539 specifies that the nonce value (IV)
should be 96 bits (12 bytes). OpenSSL allows a variable nonce length and
front pads the nonce with 0 bytes if it is less than 12 bytes. However it
also incorrectly allows a nonce to be set of up to 16 bytes. In this case
only the last 12 bytes are significant and any additional leading bytes are
ignored.
It is a requirement of using this cipher that nonce values are unique.
Messages encrypted using a reused nonce value are susceptible to serious
confidentiality and integrity attacks. If an application changes the
default nonce length to be longer than 12 bytes and then makes a change to
the leading bytes of the nonce expecting the new value to be a new unique
nonce then such an application could inadvertently encrypt messages with a
reused nonce.
Additionally the ignored bytes in a long nonce are not covered by the
integrity guarantee of this cipher. Any application that relies on the
integrity of these ignored leading bytes of a long nonce may be further
affected.
Any OpenSSL internal use of this cipher, including in SSL/TLS, is safe
because no such use sets such a long nonce value. However user
applications that use this cipher directly and set a non-default nonce
length to be longer than 12 bytes may be vulnerable.
CVE: CVE-2019-1543
Fixes #8345
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8406)
(cherry picked from commit 2a3d0ee9d59156c48973592331404471aca886d6)
---
crypto/evp/e_chacha20_poly1305.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/crypto/evp/e_chacha20_poly1305.c b/crypto/evp/e_chacha20_poly1305.c
index c1917bb86a6..d3e2c622a1b 100644
--- a/crypto/evp/e_chacha20_poly1305.c
+++ b/crypto/evp/e_chacha20_poly1305.c
@@ -30,6 +30,8 @@ typedef struct {
#define data(ctx) ((EVP_CHACHA_KEY *)(ctx)->cipher_data)
+#define CHACHA20_POLY1305_MAX_IVLEN 12
+
static int chacha_init_key(EVP_CIPHER_CTX *ctx,
const unsigned char user_key[CHACHA_KEY_SIZE],
const unsigned char iv[CHACHA_CTR_SIZE], int enc)
@@ -533,7 +535,7 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
return 1;
case EVP_CTRL_AEAD_SET_IVLEN:
- if (arg <= 0 || arg > CHACHA_CTR_SIZE)
+ if (arg <= 0 || arg > CHACHA20_POLY1305_MAX_IVLEN)
return 0;
actx->nonce_len = arg;
return 1;

View File

@@ -0,0 +1,31 @@
Don't refuse to build afalgeng if cross-compiling or the host kernel is too old.
Upstream-Status: Submitted [hhttps://github.com/openssl/openssl/pull/7688]
Signed-off-by: Ross Burton <ross.burton@intel.com>
diff --git a/Configure b/Configure
index 3baa8ce..9ef52ed 100755
--- a/Configure
+++ b/Configure
@@ -1550,20 +1550,7 @@ unless ($disabled{"crypto-mdebug-backtrace"})
unless ($disabled{afalgeng}) {
$config{afalgeng}="";
if (grep { $_ eq 'afalgeng' } @{$target{enable}}) {
- my $minver = 4*10000 + 1*100 + 0;
- if ($config{CROSS_COMPILE} eq "") {
- my $verstr = `uname -r`;
- my ($ma, $mi1, $mi2) = split("\\.", $verstr);
- ($mi2) = $mi2 =~ /(\d+)/;
- my $ver = $ma*10000 + $mi1*100 + $mi2;
- if ($ver < $minver) {
- $disabled{afalgeng} = "too-old-kernel";
- } else {
- push @{$config{engdirs}}, "afalg";
- }
- } else {
- $disabled{afalgeng} = "cross-compiling";
- }
+ push @{$config{engdirs}}, "afalg";
} else {
$disabled{afalgeng} = "not-linux";
}

View File

@@ -9,4 +9,4 @@ export TOP=.
# OPENSSL_ENGINES is relative from the test binaries
export OPENSSL_ENGINES=../engines
perl ./test/run_tests.pl $*
perl ./test/run_tests.pl $* | perl -0pe 's#(.*) \.*.ok#PASS: \1#g; s#(.*) \.*.skipped: (.*)#SKIP: \1 (\2)#g; s#(.*) \.*.\nDubious#FAIL: \1#;'

View File

@@ -53,8 +53,8 @@ SRC_URI_append_class-nativesdk = " \
file://environment.d-openssl.sh \
"
SRC_URI[md5sum] = "7563e1ce046cb21948eeb6ba1a0eb71c"
SRC_URI[sha256sum] = "5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684"
SRC_URI[md5sum] = "0d2baaf04c56d542f6cc757b9c2a2aac"
SRC_URI[sha256sum] = "ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6"
S = "${WORKDIR}/openssl-${PV}"

View File

@@ -7,7 +7,7 @@ SECTION = "libs/network"
# "openssl" here actually means both OpenSSL and SSLeay licenses apply
# (see meta/files/common-licenses/OpenSSL to which "openssl" is SPDXLICENSEMAPped)
LICENSE = "openssl"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d57d511030c9d66ef5f5966bee5a7eff"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8"
DEPENDS = "hostperl-runtime-native"
@@ -16,17 +16,25 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
file://openssl-c_rehash.sh \
file://0001-skip-test_symbol_presence.patch \
file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
file://afalg.patch \
file://CVE-2019-1543.patch \
"
SRC_URI_append_class-nativesdk = " \
file://environment.d-openssl.sh \
"
SRC_URI[md5sum] = "963deb2272d6be7d4c2458afd2517b73"
SRC_URI[sha256sum] = "fc20130f8b7cbd2fb918b2f14e2f429e109c31ddd0fb38fc5d71d9ffed3f9f41"
SRC_URI[md5sum] = "4532712e7bcc9414f5bce995e4e13930"
SRC_URI[sha256sum] = "5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b"
inherit lib_package multilib_header ptest
PACKAGECONFIG ?= ""
PACKAGECONFIG_class-native = ""
PACKAGECONFIG_class-nativesdk = ""
PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux"
B = "${WORKDIR}/build"
do_configure[cleandirs] = "${B}"
@@ -197,7 +205,7 @@ CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
RRECOMMENDS_libcrypto += "openssl-conf"
RDEPENDS_${PN}-bin = "perl"
RDEPENDS_${PN}-misc = "perl"
RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash python"
RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash"
RPROVIDES_openssl-conf = "openssl10-conf"
RREPLACES_openssl-conf = "openssl10-conf"

View File

@@ -0,0 +1,52 @@
From 94c401733a5a3d294cc412671166e6adfb409f53 Mon Sep 17 00:00:00 2001
From: Joshua DeWeese <jdeweese@hennypenny.com>
Date: Wed, 30 Jan 2019 16:19:47 -0500
Subject: [PATCH] replace systemd install Alias with WantedBy
According to the systemd documentation "WantedBy=foo.service in a
service bar.service is mostly equivalent to
Alias=foo.service.wants/bar.service in the same file." However,
this is not really the intended purpose of install Aliases.
Upstream-Status: Submitted [hostap@lists.infradead.org]
Signed-off-by: Joshua DeWeese <jdeweese@hennypenny.com>
---
wpa_supplicant/systemd/wpa_supplicant-nl80211.service.arg.in | 2 +-
wpa_supplicant/systemd/wpa_supplicant-wired.service.arg.in | 2 +-
wpa_supplicant/systemd/wpa_supplicant.service.arg.in | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/wpa_supplicant/systemd/wpa_supplicant-nl80211.service.arg.in b/wpa_supplicant/systemd/wpa_supplicant-nl80211.service.arg.in
index 03ac507..da69a87 100644
--- a/wpa_supplicant/systemd/wpa_supplicant-nl80211.service.arg.in
+++ b/wpa_supplicant/systemd/wpa_supplicant-nl80211.service.arg.in
@@ -12,4 +12,4 @@ Type=simple
ExecStart=@BINDIR@/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-nl80211-%I.conf -Dnl80211 -i%I
[Install]
-Alias=multi-user.target.wants/wpa_supplicant-nl80211@%i.service
+WantedBy=multi-user.target
diff --git a/wpa_supplicant/systemd/wpa_supplicant-wired.service.arg.in b/wpa_supplicant/systemd/wpa_supplicant-wired.service.arg.in
index c8a744d..ca3054b 100644
--- a/wpa_supplicant/systemd/wpa_supplicant-wired.service.arg.in
+++ b/wpa_supplicant/systemd/wpa_supplicant-wired.service.arg.in
@@ -12,4 +12,4 @@ Type=simple
ExecStart=@BINDIR@/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wired-%I.conf -Dwired -i%I
[Install]
-Alias=multi-user.target.wants/wpa_supplicant-wired@%i.service
+WantedBy=multi-user.target
diff --git a/wpa_supplicant/systemd/wpa_supplicant.service.arg.in b/wpa_supplicant/systemd/wpa_supplicant.service.arg.in
index 7788b38..55d2b9c 100644
--- a/wpa_supplicant/systemd/wpa_supplicant.service.arg.in
+++ b/wpa_supplicant/systemd/wpa_supplicant.service.arg.in
@@ -12,4 +12,4 @@ Type=simple
ExecStart=@BINDIR@/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I
[Install]
-Alias=multi-user.target.wants/wpa_supplicant@%i.service
+WantedBy=multi-user.target
--
2.7.4

View File

@@ -33,6 +33,7 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
file://key-replay-cve-multiple7.patch \
file://key-replay-cve-multiple8.patch \
file://wpa_supplicant-CVE-2018-14526.patch \
file://0001-replace-systemd-install-Alias-with-WantedBy.patch \
"
SRC_URI[md5sum] = "091569eb4440b7d7f2b4276dbfc03c3c"
SRC_URI[sha256sum] = "b4936d34c4e6cdd44954beba74296d964bc2c9668ecaa5255e499636fe2b1450"

View File

@@ -0,0 +1,142 @@
From 6d3b4bb24da9a07c263f3c1acf8df85382ff562c Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Mon, 17 Dec 2018 18:07:18 +0100
Subject: [PATCH] udhcpc: check that 4-byte options are indeed 4-byte, closes
11506
function old new delta
udhcp_get_option32 - 27 +27
udhcp_get_option 231 248 +17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 44/0) Total: 44 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Upstream-Status: Backport
CVE: CVE-2018-20679
Affects < 1.30.0
signed-off-by: Armin Kuster <akuster@mvista.com>
---
networking/udhcp/common.c | 19 +++++++++++++++++++
networking/udhcp/common.h | 4 ++++
networking/udhcp/dhcpc.c | 6 +++---
networking/udhcp/dhcpd.c | 6 +++---
4 files changed, 29 insertions(+), 6 deletions(-)
Index: busybox-1.29.3/networking/udhcp/common.c
===================================================================
--- busybox-1.29.3.orig/networking/udhcp/common.c
+++ busybox-1.29.3/networking/udhcp/common.c
@@ -270,6 +270,15 @@ uint8_t* FAST_FUNC udhcp_get_option(stru
goto complain; /* complain and return NULL */
if (optionptr[OPT_CODE] == code) {
+ if (optionptr[OPT_LEN] == 0) {
+ /* So far no valid option with length 0 known.
+ * Having this check means that searching
+ * for DHCP_MESSAGE_TYPE need not worry
+ * that returned pointer might be unsafe
+ * to dereference.
+ */
+ goto complain; /* complain and return NULL */
+ }
log_option("option found", optionptr);
return optionptr + OPT_DATA;
}
@@ -287,6 +296,16 @@ uint8_t* FAST_FUNC udhcp_get_option(stru
return NULL;
}
+uint8_t* FAST_FUNC udhcp_get_option32(struct dhcp_packet *packet, int code)
+{
+ uint8_t *r = udhcp_get_option(packet, code);
+ if (r) {
+ if (r[-1] != 4)
+ r = NULL;
+ }
+ return r;
+}
+
/* Return the position of the 'end' option (no bounds checking) */
int FAST_FUNC udhcp_end_option(uint8_t *optionptr)
{
Index: busybox-1.29.3/networking/udhcp/common.h
===================================================================
--- busybox-1.29.3.orig/networking/udhcp/common.h
+++ busybox-1.29.3/networking/udhcp/common.h
@@ -204,6 +204,10 @@ extern const uint8_t dhcp_option_lengths
unsigned FAST_FUNC udhcp_option_idx(const char *name, const char *option_strings);
uint8_t *udhcp_get_option(struct dhcp_packet *packet, int code) FAST_FUNC;
+/* Same as above + ensures that option length is 4 bytes
+ * (returns NULL if size is different)
+ */
+uint8_t *udhcp_get_option32(struct dhcp_packet *packet, int code) FAST_FUNC;
int udhcp_end_option(uint8_t *optionptr) FAST_FUNC;
void udhcp_add_binary_option(struct dhcp_packet *packet, uint8_t *addopt) FAST_FUNC;
#if ENABLE_UDHCPC || ENABLE_UDHCPD
Index: busybox-1.29.3/networking/udhcp/dhcpc.c
===================================================================
--- busybox-1.29.3.orig/networking/udhcp/dhcpc.c
+++ busybox-1.29.3/networking/udhcp/dhcpc.c
@@ -1694,7 +1694,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
* They say ISC DHCP client supports this case.
*/
server_addr = 0;
- temp = udhcp_get_option(&packet, DHCP_SERVER_ID);
+ temp = udhcp_get_option32(&packet, DHCP_SERVER_ID);
if (!temp) {
bb_error_msg("no server ID, using 0.0.0.0");
} else {
@@ -1721,7 +1721,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
struct in_addr temp_addr;
uint8_t *temp;
- temp = udhcp_get_option(&packet, DHCP_LEASE_TIME);
+ temp = udhcp_get_option32(&packet, DHCP_LEASE_TIME);
if (!temp) {
bb_error_msg("no lease time with ACK, using 1 hour lease");
lease_seconds = 60 * 60;
@@ -1817,7 +1817,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
uint32_t svid;
uint8_t *temp;
- temp = udhcp_get_option(&packet, DHCP_SERVER_ID);
+ temp = udhcp_get_option32(&packet, DHCP_SERVER_ID);
if (!temp) {
non_matching_svid:
log1("received DHCP NAK with wrong"
Index: busybox-1.29.3/networking/udhcp/dhcpd.c
===================================================================
--- busybox-1.29.3.orig/networking/udhcp/dhcpd.c
+++ busybox-1.29.3/networking/udhcp/dhcpd.c
@@ -640,7 +640,7 @@ static void add_server_options(struct dh
static uint32_t select_lease_time(struct dhcp_packet *packet)
{
uint32_t lease_time_sec = server_config.max_lease_sec;
- uint8_t *lease_time_opt = udhcp_get_option(packet, DHCP_LEASE_TIME);
+ uint8_t *lease_time_opt = udhcp_get_option32(packet, DHCP_LEASE_TIME);
if (lease_time_opt) {
move_from_unaligned32(lease_time_sec, lease_time_opt);
lease_time_sec = ntohl(lease_time_sec);
@@ -987,7 +987,7 @@ int udhcpd_main(int argc UNUSED_PARAM, c
}
/* Get SERVER_ID if present */
- server_id_opt = udhcp_get_option(&packet, DHCP_SERVER_ID);
+ server_id_opt = udhcp_get_option32(&packet, DHCP_SERVER_ID);
if (server_id_opt) {
uint32_t server_id_network_order;
move_from_unaligned32(server_id_network_order, server_id_opt);
@@ -1011,7 +1011,7 @@ int udhcpd_main(int argc UNUSED_PARAM, c
}
/* Get REQUESTED_IP if present */
- requested_ip_opt = udhcp_get_option(&packet, DHCP_REQUESTED_IP);
+ requested_ip_opt = udhcp_get_option32(&packet, DHCP_REQUESTED_IP);
if (requested_ip_opt) {
move_from_unaligned32(requested_nip, requested_ip_opt);
}

View File

@@ -0,0 +1,60 @@
From 74d9f1ba37010face4bd1449df4d60dd84450b06 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Mon, 7 Jan 2019 15:33:42 +0100
Subject: [PATCH] udhcpc: when decoding DHCP_SUBNET, ensure it is 4 bytes long
function old new delta
udhcp_run_script 795 801 +6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Upstream-Status: Backport
CVE: CVE-2019-5747
Affects < 1.30.0
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
networking/udhcp/common.c | 2 +-
networking/udhcp/common.h | 2 +-
networking/udhcp/dhcpc.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
Index: busybox-1.29.3/networking/udhcp/common.c
===================================================================
--- busybox-1.29.3.orig/networking/udhcp/common.c
+++ busybox-1.29.3/networking/udhcp/common.c
@@ -300,7 +300,7 @@ uint8_t* FAST_FUNC udhcp_get_option32(st
{
uint8_t *r = udhcp_get_option(packet, code);
if (r) {
- if (r[-1] != 4)
+ if (r[-OPT_DATA + OPT_LEN] != 4)
r = NULL;
}
return r;
Index: busybox-1.29.3/networking/udhcp/common.h
===================================================================
--- busybox-1.29.3.orig/networking/udhcp/common.h
+++ busybox-1.29.3/networking/udhcp/common.h
@@ -119,7 +119,7 @@ enum {
//#define DHCP_TIME_SERVER 0x04 /* RFC 868 time server (32-bit, 0 = 1.1.1900) */
//#define DHCP_NAME_SERVER 0x05 /* IEN 116 _really_ ancient kind of NS */
//#define DHCP_DNS_SERVER 0x06
-//#define DHCP_LOG_SERVER 0x07 /* port 704 UDP log (not syslog)
+//#define DHCP_LOG_SERVER 0x07 /* port 704 UDP log (not syslog) */
//#define DHCP_COOKIE_SERVER 0x08 /* "quote of the day" server */
//#define DHCP_LPR_SERVER 0x09
#define DHCP_HOST_NAME 0x0c /* either client informs server or server gives name to client */
Index: busybox-1.29.3/networking/udhcp/dhcpc.c
===================================================================
--- busybox-1.29.3.orig/networking/udhcp/dhcpc.c
+++ busybox-1.29.3/networking/udhcp/dhcpc.c
@@ -526,7 +526,7 @@ static char **fill_envp(struct dhcp_pack
temp = udhcp_get_option(packet, code);
*curr = xmalloc_optname_optval(temp, &dhcp_optflags[i], opt_name);
putenv(*curr++);
- if (code == DHCP_SUBNET) {
+ if (code == DHCP_SUBNET && temp[-OPT_DATA + OPT_LEN] == 4) {
/* Subnet option: make things like "$ip/$mask" possible */
uint32_t subnet;
move_from_unaligned32(subnet, temp);

View File

@@ -41,6 +41,8 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://rcS \
file://rcK \
file://makefile-libbb-race.patch \
file://CVE-2018-20679.patch \
file://CVE-2019-5747.patch \
"
SRC_URI_append_libc-musl = " file://musl.cfg "

View File

@@ -0,0 +1,26 @@
From 11f8838bf99ea0a6f0b76f9760c43704d00c4ff6 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Wed, 12 Jun 2019 15:42:22 +0200
Subject: [PATCH] xmlparse.c: Fix extraction of namespace prefix from XML name
(#186)
Upstream-Status: Backport
CVE: CVE-2018-20843
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
---
expat/lib/xmlparse.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c
index 30d55c5c..737d7cd2 100644
--- a/expat/lib/xmlparse.c
+++ b/expat/lib/xmlparse.c
@@ -6071,7 +6071,7 @@ setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType)
else
poolDiscard(&dtd->pool);
elementType->prefix = prefix;
-
+ break;
}
}
return 1;

View File

@@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5b8620d98e49772d95fc1d291c26aa79"
SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
file://autotools.patch \
file://libtool-tag.patch \
file://CVE-2018-20843.patch;striplevel=2 \
"
SRC_URI[md5sum] = "ca047ae951b40020ac831c28859161b2"

View File

@@ -0,0 +1,59 @@
From d8f8f4d637ce43f8699ba94c9b7648beda0ca174 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Thu, 23 May 2019 10:41:53 +0200
Subject: [PATCH] gfile: Limit access to files when copying
file_copy_fallback creates new files with default permissions and
set the correct permissions after the operation is finished. This
might cause that the files can be accessible by more users during
the operation than expected. Use G_FILE_CREATE_PRIVATE for the new
files to limit access to those files.
Upstream-Status: Backport
https://gitlab.gnome.org/GNOME/glib/commit/d8f8f4d637ce43f8699ba94c9b7648beda0ca174
CVE: CVE-2019-12450
Signed-off-by: Armin kuster <akuster@mvista.com>
---
gio/gfile.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/gio/gfile.c b/gio/gfile.c
index 24b136d..74b5804 100644
--- a/gio/gfile.c
+++ b/gio/gfile.c
@@ -3284,12 +3284,12 @@ file_copy_fallback (GFile *source,
out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)),
FALSE, NULL,
flags & G_FILE_COPY_BACKUP,
- G_FILE_CREATE_REPLACE_DESTINATION,
- info,
+ G_FILE_CREATE_REPLACE_DESTINATION |
+ G_FILE_CREATE_PRIVATE, info,
cancellable, error);
else
out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)),
- FALSE, 0, info,
+ FALSE, G_FILE_CREATE_PRIVATE, info,
cancellable, error);
}
else if (flags & G_FILE_COPY_OVERWRITE)
@@ -3297,12 +3297,13 @@ file_copy_fallback (GFile *source,
out = (GOutputStream *)g_file_replace (destination,
NULL,
flags & G_FILE_COPY_BACKUP,
- G_FILE_CREATE_REPLACE_DESTINATION,
+ G_FILE_CREATE_REPLACE_DESTINATION |
+ G_FILE_CREATE_PRIVATE,
cancellable, error);
}
else
{
- out = (GOutputStream *)g_file_create (destination, 0, cancellable, error);
+ out = (GOutputStream *)g_file_create (destination, G_FILE_CREATE_PRIVATE, cancellable, error);
}
if (!out)
--
2.7.4

View File

@@ -0,0 +1,316 @@
From c1e32b90576af11556c8a9178e43902f3394a4b0 Mon Sep 17 00:00:00 2001
From: Patrick Griffis <pgriffis@igalia.com>
Date: Mon, 29 Oct 2018 09:53:07 -0400
Subject: [PATCH] gsocketclient: Improve handling of slow initial connections
Currently a new connection will not be attempted until the previous
one has timed out and as the current API only exposes a single
timeout value in practice it often means that it will wait 30 seconds
(or forever with 0 (the default)) on each connection.
This is unacceptable so we are now trying to follow the behavior
RFC 8305 recommends by making multiple connection attempts if
the connection takes longer than 250ms. The first connection
to make it to completion then wins.
Upstream-Status: Backport
CVE: CVE-2019-9633 patch 1
Affects: < 2.59.2
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
gio/gsocketclient.c | 176 ++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 151 insertions(+), 25 deletions(-)
diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c
index ddd1497..5c6513c 100644
--- a/gio/gsocketclient.c
+++ b/gio/gsocketclient.c
@@ -2,6 +2,7 @@
*
* Copyright © 2008, 2009 codethink
* Copyright © 2009 Red Hat, Inc
+ * Copyright © 2018 Igalia S.L.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -49,6 +50,10 @@
#include <gio/ginetaddress.h>
#include "glibintl.h"
+/* As recommended by RFC 8305 this is the time it waits
+ * on a connection before starting another concurrent attempt.
+ */
+#define HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS 250
/**
* SECTION:gsocketclient
@@ -1328,28 +1333,82 @@ typedef struct
GSocketConnectable *connectable;
GSocketAddressEnumerator *enumerator;
GProxyAddress *proxy_addr;
- GSocketAddress *current_addr;
- GSocket *current_socket;
+ GSocket *socket;
GIOStream *connection;
+ GSList *connection_attempts;
GError *last_error;
} GSocketClientAsyncConnectData;
+static void connection_attempt_unref (gpointer attempt);
+
static void
g_socket_client_async_connect_data_free (GSocketClientAsyncConnectData *data)
{
g_clear_object (&data->connectable);
g_clear_object (&data->enumerator);
g_clear_object (&data->proxy_addr);
- g_clear_object (&data->current_addr);
- g_clear_object (&data->current_socket);
+ g_clear_object (&data->socket);
g_clear_object (&data->connection);
+ g_slist_free_full (data->connection_attempts, connection_attempt_unref);
g_clear_error (&data->last_error);
g_slice_free (GSocketClientAsyncConnectData, data);
}
+typedef struct
+{
+ GSocketAddress *address;
+ GSocket *socket;
+ GIOStream *connection;
+ GSocketClientAsyncConnectData *data; /* unowned */
+ GSource *timeout_source;
+ GCancellable *cancellable;
+ grefcount ref;
+} ConnectionAttempt;
+
+static ConnectionAttempt *
+connection_attempt_new (void)
+{
+ ConnectionAttempt *attempt = g_new0 (ConnectionAttempt, 1);
+ g_ref_count_init (&attempt->ref);
+ return attempt;
+}
+
+static ConnectionAttempt *
+connection_attempt_ref (ConnectionAttempt *attempt)
+{
+ g_ref_count_inc (&attempt->ref);
+ return attempt;
+}
+
+static void
+connection_attempt_unref (gpointer pointer)
+{
+ ConnectionAttempt *attempt = pointer;
+ if (g_ref_count_dec (&attempt->ref))
+ {
+ g_clear_object (&attempt->address);
+ g_clear_object (&attempt->socket);
+ g_clear_object (&attempt->connection);
+ g_clear_object (&attempt->cancellable);
+ if (attempt->timeout_source)
+ {
+ g_source_destroy (attempt->timeout_source);
+ g_source_unref (attempt->timeout_source);
+ }
+ g_free (attempt);
+ }
+}
+
+static void
+connection_attempt_remove (ConnectionAttempt *attempt)
+{
+ attempt->data->connection_attempts = g_slist_remove (attempt->data->connection_attempts, attempt);
+ connection_attempt_unref (attempt);
+}
+
static void
g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data)
{
@@ -1359,8 +1418,7 @@ g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data)
{
GSocketConnection *wrapper_connection;
- wrapper_connection = g_tcp_wrapper_connection_new (data->connection,
- data->current_socket);
+ wrapper_connection = g_tcp_wrapper_connection_new (data->connection, data->socket);
g_object_unref (data->connection);
data->connection = (GIOStream *)wrapper_connection;
}
@@ -1389,8 +1447,7 @@ static void
enumerator_next_async (GSocketClientAsyncConnectData *data)
{
/* We need to cleanup the state */
- g_clear_object (&data->current_socket);
- g_clear_object (&data->current_addr);
+ g_clear_object (&data->socket);
g_clear_object (&data->proxy_addr);
g_clear_object (&data->connection);
@@ -1485,34 +1542,68 @@ g_socket_client_connected_callback (GObject *source,
GAsyncResult *result,
gpointer user_data)
{
- GSocketClientAsyncConnectData *data = user_data;
+ ConnectionAttempt *attempt = user_data;
+ GSocketClientAsyncConnectData *data = attempt->data;
+ GSList *l;
GError *error = NULL;
GProxy *proxy;
const gchar *protocol;
- if (g_task_return_error_if_cancelled (data->task))
+ /* data is NULL once the task is completed */
+ if (data && g_task_return_error_if_cancelled (data->task))
{
g_object_unref (data->task);
+ connection_attempt_unref (attempt);
return;
}
+ if (attempt->timeout_source)
+ {
+ g_source_destroy (attempt->timeout_source);
+ g_clear_pointer (&attempt->timeout_source, g_source_unref);
+ }
+
if (!g_socket_connection_connect_finish (G_SOCKET_CONNECTION (source),
result, &error))
{
- clarify_connect_error (error, data->connectable,
- data->current_addr);
- set_last_error (data, error);
+ if (!g_cancellable_is_cancelled (attempt->cancellable))
+ {
+ clarify_connect_error (error, data->connectable, attempt->address);
+ set_last_error (data, error);
+ }
+ else
+ g_clear_error (&error);
+
+ if (data)
+ {
+ connection_attempt_remove (attempt);
+ enumerator_next_async (data);
+ }
+ else
+ connection_attempt_unref (attempt);
- /* try next one */
- enumerator_next_async (data);
return;
}
+ data->socket = g_steal_pointer (&attempt->socket);
+ data->connection = g_steal_pointer (&attempt->connection);
+
+ for (l = data->connection_attempts; l; l = g_slist_next (l))
+ {
+ ConnectionAttempt *attempt_entry = l->data;
+ g_cancellable_cancel (attempt_entry->cancellable);
+ attempt_entry->data = NULL;
+ connection_attempt_unref (attempt_entry);
+ }
+ g_slist_free (data->connection_attempts);
+ data->connection_attempts = NULL;
+ connection_attempt_unref (attempt);
+
g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, NULL);
g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTED, data->connectable, data->connection);
/* wrong, but backward compatible */
- g_socket_set_blocking (data->current_socket, TRUE);
+ g_socket_set_blocking (data->socket, TRUE);
if (!data->proxy_addr)
{
@@ -1565,6 +1656,26 @@ g_socket_client_connected_callback (GObject *source,
}
}
+static gboolean
+on_connection_attempt_timeout (gpointer data)
+{
+ ConnectionAttempt *attempt = data;
+
+ enumerator_next_async (attempt->data);
+
+ g_clear_pointer (&attempt->timeout_source, g_source_unref);
+ return G_SOURCE_REMOVE;
+}
+
+static void
+on_connection_cancelled (GCancellable *cancellable,
+ gpointer data)
+{
+ GCancellable *attempt_cancellable = data;
+
+ g_cancellable_cancel (attempt_cancellable);
+}
+
static void
g_socket_client_enumerator_callback (GObject *object,
GAsyncResult *result,
@@ -1573,6 +1684,7 @@ g_socket_client_enumerator_callback (GObject *object,
GSocketClientAsyncConnectData *data = user_data;
GSocketAddress *address = NULL;
GSocket *socket;
+ ConnectionAttempt *attempt;
GError *error = NULL;
if (g_task_return_error_if_cancelled (data->task))
@@ -1585,6 +1697,9 @@ g_socket_client_enumerator_callback (GObject *object,
result, &error);
if (address == NULL)
{
+ if (data->connection_attempts)
+ return;
+
g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_COMPLETE, data->connectable, NULL);
if (!error)
{
@@ -1621,16 +1736,27 @@ g_socket_client_enumerator_callback (GObject *object,
return;
}
- data->current_socket = socket;
- data->current_addr = address;
- data->connection = (GIOStream *) g_socket_connection_factory_create_connection (socket);
-
- g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, address);
- g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, data->connection);
- g_socket_connection_connect_async (G_SOCKET_CONNECTION (data->connection),
+ attempt = connection_attempt_new ();
+ attempt->data = data;
+ attempt->socket = socket;
+ attempt->address = address;
+ attempt->cancellable = g_cancellable_new ();
+ attempt->connection = (GIOStream *)g_socket_connection_factory_create_connection (socket);
+ attempt->timeout_source = g_timeout_source_new (HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS);
+ g_source_set_callback (attempt->timeout_source, on_connection_attempt_timeout, attempt, NULL);
+ g_source_attach (attempt->timeout_source, g_main_context_get_thread_default ());
+ data->connection_attempts = g_slist_append (data->connection_attempts, attempt);
+
+ if (g_task_get_cancellable (data->task))
+ g_cancellable_connect (g_task_get_cancellable (data->task), G_CALLBACK (on_connection_cancelled),
+ g_object_ref (attempt->cancellable), g_object_unref);
+
+ g_socket_connection_set_cached_remote_address ((GSocketConnection *)attempt->connection, address);
+ g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, attempt->connection);
+ g_socket_connection_connect_async (G_SOCKET_CONNECTION (attempt->connection),
address,
- g_task_get_cancellable (data->task),
- g_socket_client_connected_callback, data);
+ attempt->cancellable,
+ g_socket_client_connected_callback, connection_attempt_ref (attempt));
}
/**
--
2.7.4

View File

@@ -0,0 +1,231 @@
From d553d92d6e9f53cbe5a34166fcb919ba652c6a8e Mon Sep 17 00:00:00 2001
From: Patrick Griffis <pgriffis@igalia.com>
Date: Tue, 29 Jan 2019 10:07:06 -0500
Subject: [PATCH] gsocketclient: Fix criticals
This ensures the parent GTask is kept alive as long as an enumeration
is running and trying to connect.
Closes #1646
Closes #1649
Upstream-Status: Backport
CVE: CVE-2019-9633 patch 2
Affects: < 2.59.2
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
gio/gsocketclient.c | 74 +++++++++++++++++++++++++++++-------------
gio/tests/gsocketclient-slow.c | 55 ++++++++++++++++++++++++++++++-
2 files changed, 106 insertions(+), 23 deletions(-)
Index: glib-2.58.0/gio/gsocketclient.c
===================================================================
--- glib-2.58.0.orig/gio/gsocketclient.c
+++ glib-2.58.0/gio/gsocketclient.c
@@ -1327,7 +1327,7 @@ g_socket_client_connect_to_uri (GSocketC
typedef struct
{
- GTask *task;
+ GTask *task; /* unowned */
GSocketClient *client;
GSocketConnectable *connectable;
@@ -1345,6 +1345,7 @@ static void connection_attempt_unref (gp
static void
g_socket_client_async_connect_data_free (GSocketClientAsyncConnectData *data)
{
+ data->task = NULL;
g_clear_object (&data->connectable);
g_clear_object (&data->enumerator);
g_clear_object (&data->proxy_addr);
@@ -1444,13 +1445,19 @@ set_last_error (GSocketClientAsyncConnec
}
static void
-enumerator_next_async (GSocketClientAsyncConnectData *data)
+enumerator_next_async (GSocketClientAsyncConnectData *data,
+ gboolean add_task_ref)
{
/* We need to cleanup the state */
g_clear_object (&data->socket);
g_clear_object (&data->proxy_addr);
g_clear_object (&data->connection);
+ /* Each enumeration takes a ref. This arg just avoids repeated unrefs when
+ an enumeration starts another enumeration */
+ if (add_task_ref)
+ g_object_ref (data->task);
+
g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_RESOLVING, data->connectable, NULL);
g_socket_address_enumerator_next_async (data->enumerator,
g_task_get_cancellable (data->task),
@@ -1478,7 +1485,7 @@ g_socket_client_tls_handshake_callback (
else
{
g_object_unref (object);
- enumerator_next_async (data);
+ enumerator_next_async (data, FALSE);
}
}
@@ -1509,7 +1516,7 @@ g_socket_client_tls_handshake (GSocketCl
}
else
{
- enumerator_next_async (data);
+ enumerator_next_async (data, FALSE);
}
}
@@ -1530,13 +1537,24 @@ g_socket_client_proxy_connect_callback (
}
else
{
- enumerator_next_async (data);
+ enumerator_next_async (data, FALSE);
return;
}
g_socket_client_tls_handshake (data);
}
+static gboolean
+task_completed_or_cancelled (GTask *task)
+{
+ if (g_task_get_completed (task))
+ return TRUE;
+ else if (g_task_return_error_if_cancelled (task))
+ return TRUE;
+ else
+ return FALSE;
+}
+
static void
g_socket_client_connected_callback (GObject *source,
GAsyncResult *result,
@@ -1549,8 +1567,7 @@ g_socket_client_connected_callback (GObj
GProxy *proxy;
const gchar *protocol;
- /* data is NULL once the task is completed */
- if (data && g_task_return_error_if_cancelled (data->task))
+ if (g_cancellable_is_cancelled (attempt->cancellable) || task_completed_or_cancelled (data->task))
{
g_object_unref (data->task);
connection_attempt_unref (attempt);
@@ -1570,17 +1587,15 @@ g_socket_client_connected_callback (GObj
{
clarify_connect_error (error, data->connectable, attempt->address);
set_last_error (data, error);
+ connection_attempt_remove (attempt);
+ enumerator_next_async (data, FALSE);
}
else
- g_clear_error (&error);
-
- if (data)
{
- connection_attempt_remove (attempt);
- enumerator_next_async (data);
+ g_clear_error (&error);
+ g_object_unref (data->task);
+ connection_attempt_unref (attempt);
}
- else
- connection_attempt_unref (attempt);
return;
}
@@ -1592,7 +1607,6 @@ g_socket_client_connected_callback (GObj
{
ConnectionAttempt *attempt_entry = l->data;
g_cancellable_cancel (attempt_entry->cancellable);
- attempt_entry->data = NULL;
connection_attempt_unref (attempt_entry);
}
g_slist_free (data->connection_attempts);
@@ -1625,7 +1639,7 @@ g_socket_client_connected_callback (GObj
G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
_("Proxying over a non-TCP connection is not supported."));
- enumerator_next_async (data);
+ enumerator_next_async (data, FALSE);
}
else if (g_hash_table_contains (data->client->priv->app_proxies, protocol))
{
@@ -1652,7 +1666,7 @@ g_socket_client_connected_callback (GObj
_("Proxy protocol “%s” is not supported."),
protocol);
- enumerator_next_async (data);
+ enumerator_next_async (data, FALSE);
}
}
@@ -1661,7 +1675,7 @@ on_connection_attempt_timeout (gpointer
{
ConnectionAttempt *attempt = data;
- enumerator_next_async (attempt->data);
+ enumerator_next_async (attempt->data, TRUE);
g_clear_pointer (&attempt->timeout_source, g_source_unref);
return G_SOURCE_REMOVE;
@@ -1687,7 +1701,7 @@ g_socket_client_enumerator_callback (GOb
ConnectionAttempt *attempt;
GError *error = NULL;
- if (g_task_return_error_if_cancelled (data->task))
+ if (task_completed_or_cancelled (data->task))
{
g_object_unref (data->task);
return;
@@ -1698,7 +1712,10 @@ g_socket_client_enumerator_callback (GOb
if (address == NULL)
{
if (data->connection_attempts)
- return;
+ {
+ g_object_unref (data->task);
+ return;
+ }
g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_COMPLETE, data->connectable, NULL);
if (!error)
@@ -1732,7 +1749,7 @@ g_socket_client_enumerator_callback (GOb
if (socket == NULL)
{
g_object_unref (address);
- enumerator_next_async (data);
+ enumerator_next_async (data, FALSE);
return;
}
@@ -1804,11 +1821,24 @@ g_socket_client_connect_async (GSocketCl
else
data->enumerator = g_socket_connectable_enumerate (connectable);
+ /* The flow and ownership here isn't quite obvious:
+ - The task starts an async attempt to connect.
+ - Each attempt holds a single ref on task.
+ - Each attempt may create new attempts by timing out (not a failure) so
+ there are multiple attempts happening in parallel.
+ - Upon failure an attempt will start a new attempt that steals its ref
+ until there are no more attempts left and it drops its ref.
+ - Upon success it will cancel all other attempts and continue on
+ to the rest of the connection (tls, proxies, etc) which do not
+ happen in parallel and at the very end drop its ref.
+ - Upon cancellation an attempt drops its ref.
+ */
+
data->task = g_task_new (client, cancellable, callback, user_data);
g_task_set_source_tag (data->task, g_socket_client_connect_async);
g_task_set_task_data (data->task, data, (GDestroyNotify)g_socket_client_async_connect_data_free);
- enumerator_next_async (data);
+ enumerator_next_async (data, FALSE);
}
/**

View File

@@ -1,5 +1,6 @@
#! /bin/sh
set -eux
useradd glib2-test
su glib2-test -c gnome-desktop-testing-runner glib
userdel glib2-test

View File

@@ -14,6 +14,9 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://0001-Do-not-ignore-return-value-of-write.patch \
file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
file://date-lt.patch \
file://CVE-2019-12450.patch \
file://CVE-2019-9633_p1.patch \
file://CVE-2019-9633_p2.patch \
"
SRC_URI_append_class-native = " file://relocate-modules.patch"

View File

@@ -1,37 +0,0 @@
From efb0fca7db742f4195e1771d8ba4c7fba4938819 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 27 Jan 2018 10:05:07 -0800
Subject: [PATCH] reset dl_load_write_lock after forking
The patch in this Bugzilla entry was requested by a customer:
https://www.sourceware.org/bugzilla/show_bug.cgi?id=19282
The __libc_fork() code reset dl_load_lock, but it also needed to reset
dl_load_write_lock. The patch has not yet been integrated upstream.
Upstream-Status: Pending [ No Author See bugzilla]
Signed-off-by: Damodar Sonone <damodar.sonone@kpit.com>
Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
sysdeps/nptl/fork.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
index ec56a827eb..0f48933ff1 100644
--- a/sysdeps/nptl/fork.c
+++ b/sysdeps/nptl/fork.c
@@ -130,9 +130,9 @@ __libc_fork (void)
_IO_list_resetlock ();
}
- /* Reset the lock the dynamic loader uses to protect its data. */
+ /* Reset the locks the dynamic loader uses to protect its data. */
__rtld_lock_initialize (GL(dl_load_lock));
-
+ __rtld_lock_initialize (GL(dl_load_write_lock));
/* Run the handlers registered for the child. */
__run_fork_handlers (atfork_run_child);
}

View File

@@ -1,65 +0,0 @@
From 6ea962e0946da7564a774b08dd3eda28d64e9e56 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 27 Jan 2018 10:08:04 -0800
Subject: [PATCH] Acquire ld.so lock before switching to malloc_atfork
The patch is from
https://sourceware.org/bugzilla/show_bug.cgi?id=4578
If a thread happens to hold dl_load_lock and have r_state set to RT_ADD or
RT_DELETE at the time another thread calls fork(), then the child exit code
from fork (in nptl/sysdeps/unix/sysv/linux/fork.c in our case) re-initializes
dl_load_lock but does not restore r_state to RT_CONSISTENT. If the child
subsequently requires ld.so functionality before calling exec(), then the
assertion will fire.
The patch acquires dl_load_lock on entry to fork() and releases it on exit
from the parent path. The child path is initialized as currently done.
This is essentially pthreads_atfork, but forced to be first because the
acquisition of dl_load_lock must happen before malloc_atfork is active
to avoid a deadlock.
The patch has not yet been integrated upstream.
Upstream-Status: Pending [ Not Author See bugzilla]
Signed-off-by: Raghunath Lolur <Raghunath.Lolur@kpit.com>
Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
sysdeps/nptl/fork.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
index 0f48933ff1..eef3f9669b 100644
--- a/sysdeps/nptl/fork.c
+++ b/sysdeps/nptl/fork.c
@@ -25,6 +25,7 @@
#include <tls.h>
#include <hp-timing.h>
#include <ldsodefs.h>
+#include <libc-lock.h>
#include <stdio-lock.h>
#include <atomic.h>
#include <nptl/pthreadP.h>
@@ -56,6 +57,9 @@ __libc_fork (void)
bool multiple_threads = THREAD_GETMEM (THREAD_SELF, header.multiple_threads);
__run_fork_handlers (atfork_run_prepare);
+ /* grab ld.so lock BEFORE switching to malloc_atfork */
+ __rtld_lock_lock_recursive (GL(dl_load_lock));
+ __rtld_lock_lock_recursive (GL(dl_load_write_lock));
/* If we are not running multiple threads, we do not have to
preserve lock state. If fork runs from a signal handler, only
@@ -150,6 +154,9 @@ __libc_fork (void)
/* Run the handlers registered for the parent. */
__run_fork_handlers (atfork_run_parent);
+ /* unlock ld.so last, because we locked it first */
+ __rtld_lock_unlock_recursive (GL(dl_load_write_lock));
+ __rtld_lock_unlock_recursive (GL(dl_load_lock));
}
return pid;

View File

@@ -0,0 +1,232 @@
CVE: CVE-2016-10739
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 8e92ca5dd7a7e38a4dddf1ebc4e1e8f0cb27e4aa Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Mon, 21 Jan 2019 08:59:42 +0100
Subject: [PATCH] resolv: Reformat inet_addr, inet_aton to GNU style
(cherry picked from commit 5e30b8ef0758763effa115634e0ed7d8938e4bc0)
---
ChangeLog | 5 ++
resolv/inet_addr.c | 192 ++++++++++++++++++++++++++++-------------------------
2 files changed, 106 insertions(+), 91 deletions(-)
diff --git a/resolv/inet_addr.c b/resolv/inet_addr.c
index 022f7ea084..32f58b0e13 100644
--- a/resolv/inet_addr.c
+++ b/resolv/inet_addr.c
@@ -1,3 +1,21 @@
+/* Legacy IPv4 text-to-address functions.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
/*
* Copyright (c) 1983, 1990, 1993
* The Regents of the University of California. All rights reserved.
@@ -78,105 +96,97 @@
#include <limits.h>
#include <errno.h>
-/*
- * Ascii internet address interpretation routine.
- * The value returned is in network order.
- */
+/* ASCII IPv4 Internet address interpretation routine. The value
+ returned is in network order. */
in_addr_t
-__inet_addr(const char *cp) {
- struct in_addr val;
+__inet_addr (const char *cp)
+{
+ struct in_addr val;
- if (__inet_aton(cp, &val))
- return (val.s_addr);
- return (INADDR_NONE);
+ if (__inet_aton (cp, &val))
+ return val.s_addr;
+ return INADDR_NONE;
}
weak_alias (__inet_addr, inet_addr)
-/*
- * Check whether "cp" is a valid ascii representation
- * of an Internet address and convert to a binary address.
- * Returns 1 if the address is valid, 0 if not.
- * This replaces inet_addr, the return value from which
- * cannot distinguish between failure and a local broadcast address.
- */
+/* Check whether "cp" is a valid ASCII representation of an IPv4
+ Internet address and convert it to a binary address. Returns 1 if
+ the address is valid, 0 if not. This replaces inet_addr, the
+ return value from which cannot distinguish between failure and a
+ local broadcast address. */
int
-__inet_aton(const char *cp, struct in_addr *addr)
+__inet_aton (const char *cp, struct in_addr *addr)
{
- static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff };
- in_addr_t val;
- char c;
- union iaddr {
- uint8_t bytes[4];
- uint32_t word;
- } res;
- uint8_t *pp = res.bytes;
- int digit;
-
- int saved_errno = errno;
- __set_errno (0);
-
- res.word = 0;
-
- c = *cp;
- for (;;) {
- /*
- * Collect number up to ``.''.
- * Values are specified as for C:
- * 0x=hex, 0=octal, isdigit=decimal.
- */
- if (!isdigit(c))
- goto ret_0;
- {
- char *endp;
- unsigned long ul = strtoul (cp, (char **) &endp, 0);
- if (ul == ULONG_MAX && errno == ERANGE)
- goto ret_0;
- if (ul > 0xfffffffful)
- goto ret_0;
- val = ul;
- digit = cp != endp;
- cp = endp;
- }
- c = *cp;
- if (c == '.') {
- /*
- * Internet format:
- * a.b.c.d
- * a.b.c (with c treated as 16 bits)
- * a.b (with b treated as 24 bits)
- */
- if (pp > res.bytes + 2 || val > 0xff)
- goto ret_0;
- *pp++ = val;
- c = *++cp;
- } else
- break;
- }
- /*
- * Check for trailing characters.
- */
- if (c != '\0' && (!isascii(c) || !isspace(c)))
- goto ret_0;
- /*
- * Did we get a valid digit?
- */
- if (!digit)
- goto ret_0;
-
- /* Check whether the last part is in its limits depending on
- the number of parts in total. */
- if (val > max[pp - res.bytes])
+ static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff };
+ in_addr_t val;
+ char c;
+ union iaddr
+ {
+ uint8_t bytes[4];
+ uint32_t word;
+ } res;
+ uint8_t *pp = res.bytes;
+ int digit;
+
+ int saved_errno = errno;
+ __set_errno (0);
+
+ res.word = 0;
+
+ c = *cp;
+ for (;;)
+ {
+ /* Collect number up to ``.''. Values are specified as for C:
+ 0x=hex, 0=octal, isdigit=decimal. */
+ if (!isdigit (c))
+ goto ret_0;
+ {
+ char *endp;
+ unsigned long ul = strtoul (cp, &endp, 0);
+ if (ul == ULONG_MAX && errno == ERANGE)
goto ret_0;
-
- if (addr != NULL)
- addr->s_addr = res.word | htonl (val);
-
- __set_errno (saved_errno);
- return (1);
-
-ret_0:
- __set_errno (saved_errno);
- return (0);
+ if (ul > 0xfffffffful)
+ goto ret_0;
+ val = ul;
+ digit = cp != endp;
+ cp = endp;
+ }
+ c = *cp;
+ if (c == '.')
+ {
+ /* Internet format:
+ a.b.c.d
+ a.b.c (with c treated as 16 bits)
+ a.b (with b treated as 24 bits). */
+ if (pp > res.bytes + 2 || val > 0xff)
+ goto ret_0;
+ *pp++ = val;
+ c = *++cp;
+ }
+ else
+ break;
+ }
+ /* Check for trailing characters. */
+ if (c != '\0' && (!isascii (c) || !isspace (c)))
+ goto ret_0;
+ /* Did we get a valid digit? */
+ if (!digit)
+ goto ret_0;
+
+ /* Check whether the last part is in its limits depending on the
+ number of parts in total. */
+ if (val > max[pp - res.bytes])
+ goto ret_0;
+
+ if (addr != NULL)
+ addr->s_addr = res.word | htonl (val);
+
+ __set_errno (saved_errno);
+ return 1;
+
+ ret_0:
+ __set_errno (saved_errno);
+ return 0;
}
weak_alias (__inet_aton, inet_aton)
libc_hidden_def (__inet_aton)
--
2.11.0

View File

@@ -0,0 +1,48 @@
CVE: CVE-2018-19591
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From ce6ba630dbc96f49eb1f30366aa62261df4792f9 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Tue, 27 Nov 2018 16:12:43 +0100
Subject: [PATCH] CVE-2018-19591: if_nametoindex: Fix descriptor for overlong
name [BZ #23927]
(cherry picked from commit d527c860f5a3f0ed687bd03f0cb464612dc23408)
---
ChangeLog | 7 +++++++
NEWS | 6 ++++++
sysdeps/unix/sysv/linux/if_index.c | 11 ++++++-----
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c
index e3d08982d9..782fc5e175 100644
--- a/sysdeps/unix/sysv/linux/if_index.c
+++ b/sysdeps/unix/sysv/linux/if_index.c
@@ -38,11 +38,6 @@ __if_nametoindex (const char *ifname)
return 0;
#else
struct ifreq ifr;
- int fd = __opensock ();
-
- if (fd < 0)
- return 0;
-
if (strlen (ifname) >= IFNAMSIZ)
{
__set_errno (ENODEV);
@@ -50,6 +45,12 @@ __if_nametoindex (const char *ifname)
}
strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
+
+ int fd = __opensock ();
+
+ if (fd < 0)
+ return 0;
+
if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0)
{
int saved_errno = errno;
--
2.11.0

View File

@@ -0,0 +1,63 @@
From 583dd860d5b833037175247230a328f0050dbfe9 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 21 Jan 2019 11:08:13 -0800
Subject: [PATCH] regex: fix read overrun [BZ #24114]
Problem found by AddressSanitizer, reported by Hongxu Chen in:
https://debbugs.gnu.org/34140
* posix/regexec.c (proceed_next_node):
Do not read past end of input buffer.
Upstream-Status: Backport
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=583dd860d5b833037175247230a328f0050dbfe9
CVE: CVE-2019-9169
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
ChangeLog | 10 +++++++++-
posix/regexec.c | 6 ++++--
2 files changed, 13 insertions(+), 3 deletions(-)
Index: git/ChangeLog
===================================================================
--- git.orig/ChangeLog
+++ git/ChangeLog
@@ -1,3 +1,11 @@
+2019-01-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: fix read overrun [BZ #24114]
+ Problem found by AddressSanitizer, reported by Hongxu Chen in:
+ https://debbugs.gnu.org/34140
+ * posix/regexec.c (proceed_next_node):
+ Do not read past end of input buffer.
+
2018-09-30 Martin Jansa <Martin.Jansa@gmail.com>
Partial fix for [BZ #23716]
* locale/weight.h: Fix build with -Os.
@@ -10917,7 +10925,7 @@
(CFLAGS-wcstof_l.c): Likewise.
(CPPFLAGS-tst-wchar-h.c): Likewise.
(CPPFLAGS-wcstold_l.c): Likewise.
----
+
2017-12-11 Paul A. Clarke <pc@us.ibm.com>
* sysdeps/ieee754/flt-32/s_cosf.c: New implementation.
Index: git/posix/regexec.c
===================================================================
--- git.orig/posix/regexec.c
+++ git/posix/regexec.c
@@ -1289,8 +1289,10 @@ proceed_next_node (const re_match_contex
else if (naccepted)
{
char *buf = (char *) re_string_get_buffer (&mctx->input);
- if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
- naccepted) != 0)
+ if (mctx->input.valid_len - *pidx < naccepted
+ || (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
+ naccepted)
+ != 0))
return -1;
}
}

View File

@@ -40,8 +40,6 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \
file://0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \
file://0025-locale-fix-hard-coded-reference-to-gcc-E.patch \
file://0026-reset-dl_load_write_lock-after-forking.patch \
file://0027-Acquire-ld.so-lock-before-switching-to-malloc_atfork.patch \
file://0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch \
file://0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
file://0030-intl-Emit-no-lines-in-bison-generated-files.patch \
@@ -49,6 +47,9 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
file://0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch \
file://0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \
file://0034-inject-file-assembly-directives.patch \
file://CVE-2019-9169.patch \
file://CVE-2016-10739.patch \
file://CVE-2018-19591.patch \
"
NATIVESDKFIXES ?= ""

View File

@@ -22,7 +22,7 @@ IMAGE_FSTYPES = "wic.vmdk"
inherit core-image module-base setuptools3
SRCREV ?= "9dfebdaf7af11b69006996f3253e435bce0dfbfb"
SRCREV ?= "d43a86de1a37ce9daede726a49231547a21429a5"
SRC_URI = "git://git.yoctoproject.org/poky;branch=thud \
file://Yocto_Build_Appliance.vmx \
file://Yocto_Build_Appliance.vmxf \

View File

@@ -1,38 +0,0 @@
Add 'ptest' target to Makefile, to run tests without checking dependencies.
Signed-off-by: Anders Roxell <anders.roxell@enea.com>
Upstream-Status: Pending
---
diff -uNr a/Makefile.in b/Makefile.in
--- a/Makefile.in 2013-06-10 13:48:14.321959162 +0200
+++ b/Makefile.in 2013-06-10 13:49:36.686476448 +0200
@@ -83,6 +83,9 @@
test: all teststatic testshared
teststatic: static
+ @make runteststatic
+
+runteststatic:
@TMPST=tmpst_$$; \
if echo hello world | ./minigzip | ./minigzip -d && ./example $$TMPST ; then \
echo ' *** zlib test OK ***'; \
@@ -92,6 +95,9 @@
rm -f $$TMPST
testshared: shared
+ @make runtestshared
+
+runtestshared:
@LD_LIBRARY_PATH=`pwd`:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
LD_LIBRARYN32_PATH=`pwd`:$(LD_LIBRARYN32_PATH) ; export LD_LIBRARYN32_PATH; \
DYLD_LIBRARY_PATH=`pwd`:$(DYLD_LIBRARY_PATH) ; export DYLD_LIBRARY_PATH; \
@@ -105,6 +111,9 @@
rm -f $$TMPSH
test64: all64
+ @make runtestall64
+
+runtestall64:
@TMP64=tmp64_$$; \
if echo hello world | ./minigzip64 | ./minigzip64 -d && ./example64 $$TMP64; then \
echo ' *** zlib 64-bit test OK ***'; \

View File

@@ -1,21 +0,0 @@
When /etc/ld.so.cache is writeable by user running bitbake then it creates invalid cache
(in my case libstdc++.so cannot be found after building zlib(-native) and I have to call
touch */libstdc++.so && /sbin/ldconfig to fix it.
So remove ldconfig call from make install-libs
Upstream-Status: Inappropriate [disable feature]
Index: zlib-1.2.11/Makefile.in
===================================================================
--- zlib-1.2.11.orig/Makefile.in
+++ zlib-1.2.11/Makefile.in
@@ -322,7 +322,6 @@ install-libs: $(LIBS)
rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \
ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
- ($(LDCONFIG) || true) >/dev/null 2>&1; \
fi
rm -f $(DESTDIR)$(man3dir)/zlib.3
cp $(SRCDIR)zlib.3 $(DESTDIR)$(man3dir)

View File

@@ -1,2 +0,0 @@
#!/bin/sh
make -k runteststatic runtestshared | sed -r -e 's/^(\s+\*+ (.+?) test OK \*+)/\1\nPASS: \2/' -e 's/^(\s+\*+ (.+?) test FAILED \*+)/\1\nFAIL: \2/'

View File

@@ -1,7 +1,7 @@
Obey LDFLAGS for tests
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Upstream-Status: Pending
Upstream-Status: Submitted [https://github.com/madler/zlib/pull/409]
Signed-off-by: Ross Burton <ross.burton@intel.com>
--- zlib-1.2.8.orig/Makefile.in
+++ zlib-1.2.8/Makefile.in

View File

@@ -0,0 +1,7 @@
#!/bin/sh
if ./examplesh ; then
echo "PASS: zlib"
else
echo "FAIL: zlib"
fi

View File

@@ -7,8 +7,6 @@ LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://zlib.h;beginline=6;endline=23;md5=5377232268e952e9ef63bc555f7aa6c0"
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz \
file://remove.ldconfig.call.patch \
file://Makefile-runtests.patch \
file://ldflags-tests.patch \
file://run-ptest \
"
@@ -24,32 +22,19 @@ RDEPENDS_${PN}-ptest += "make"
inherit ptest
do_configure() {
uname=GNU ./configure --prefix=${prefix} --shared --libdir=${libdir}
LDCONFIG=true ./configure --prefix=${prefix} --shared --libdir=${libdir} --uname=GNU
}
do_compile() {
oe_runmake shared
}
do_compile_ptest() {
oe_runmake test
}
do_install() {
oe_runmake DESTDIR=${D} install
}
do_install_ptest() {
install ${B}/Makefile ${D}${PTEST_PATH}
install ${B}/example ${D}${PTEST_PATH}
install ${B}/minigzip ${D}${PTEST_PATH}
install ${B}/examplesh ${D}${PTEST_PATH}
install ${B}/minigzipsh ${D}${PTEST_PATH}
# Remove buildhost references...
sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
-e 's|${DEBUG_PREFIX_MAP}||g' \
${D}${PTEST_PATH}/Makefile
install ${B}/examplesh ${D}${PTEST_PATH}
}
# Move zlib shared libraries for target builds to $base_libdir so the library

View File

@@ -1,7 +1,7 @@
#!/bin/sh
cd ./test
./test_script | sed -u -e '/:[[:space:]]ok/s/^/PASS: /' -e '/:[[:space:]]failed/s/^/FAIL: /' -e '/:[[:space:]]skipped/s/^/SKIP: /'
SKIP_SLOW_TESTS=yes ./test_script | sed -u -e '/:[[:space:]]ok/s/^/PASS: /' -e '/:[[:space:]]failed/s/^/FAIL: /' -e '/:[[:space:]]skipped/s/^/SKIP: /'
rm -rf /var/volatile/tmp/*e2fsprogs*
rm -f tmp-*
rm -f *.tmp

View File

@@ -27,6 +27,10 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
file://debian/hurd_path.patch \
file://debian/ignore_strmerge.diff \
file://debian/disable_werror.patch \
file://CVE-2019-7149.patch \
file://CVE-2019-7150.patch \
file://CVE-2019-7146_p1.patch \
file://CVE-2019-7146_p2.patch \
"
SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch"

View File

@@ -0,0 +1,52 @@
From 012018907ca05eb0ab51d424a596ef38fc87cae1 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Wed, 16 Jan 2019 11:57:35 +0100
Subject: [PATCH] libebl: Check GNU property note pr_datasz fits inside note
description.
Before printing the data values, make sure pr_datasz doesn't go beyond
the end of the note description data.
https://sourceware.org/bugzilla/show_bug.cgi?id=24075
Signed-off-by: Mark Wielaard <mark@klomp.org>
Upstream-Status: Backport
CVE: CVE-2019-7146 patch #1
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
libebl/ChangeLog | 4 ++++
libebl/eblobjnote.c | 7 +++++++
2 files changed, 11 insertions(+)
Index: elfutils-0.175/libebl/eblobjnote.c
===================================================================
--- elfutils-0.175.orig/libebl/eblobjnote.c
+++ elfutils-0.175/libebl/eblobjnote.c
@@ -350,6 +350,13 @@ ebl_object_note (Ebl *ebl, uint32_t name
desc += 8;
descsz -= 8;
+ if (prop.pr_datasz > descsz)
+ {
+ printf ("BAD property datasz: %" PRId32 "\n",
+ prop.pr_datasz);
+ return;
+ }
+
int elfclass = gelf_getclass (ebl->elf);
char *elfident = elf_getident (ebl->elf, NULL);
GElf_Ehdr ehdr;
Index: elfutils-0.175/libebl/ChangeLog
===================================================================
--- elfutils-0.175.orig/libebl/ChangeLog
+++ elfutils-0.175/libebl/ChangeLog
@@ -1,3 +1,7 @@
+2019-01-16 Mark Wielaard <mark@klomp.org>
+
+ * eblobjnte.c (ebl_object_note): Check pr_datasz isn't too large.
+
2018-11-15 Mark Wielaard <mark@klomp.org>
* eblobjnotetypename.c (ebl_object_note_type_name): Don't update

View File

@@ -0,0 +1,65 @@
From cd7ded3df43f655af945c869976401a602e46fcd Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Wed, 30 Jan 2019 00:04:11 +0100
Subject: [PATCH] libebl: Check GNU property note data padding fits inside
note.
The GNU property note data is padded. Make sure the extra padding
still fits in the note description.
https://sourceware.org/bugzilla/show_bug.cgi?id=24075
Signed-off-by: Mark Wielaard <mark@klomp.org>
Upstream-Status: Backport
CVE: CVE-2019-7146 patch #2
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
libebl/ChangeLog | 5 +++++
libebl/eblobjnote.c | 17 +++++++++--------
2 files changed, 14 insertions(+), 8 deletions(-)
Index: elfutils-0.175/libebl/ChangeLog
===================================================================
--- elfutils-0.175.orig/libebl/ChangeLog
+++ elfutils-0.175/libebl/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-29 Mark Wielaard <mark@klomp.org>
+
+ * eblobjnote.c (ebl_object_note): Check pr_datasz padding doesn't
+ overflow descsz.
+
2019-01-16 Mark Wielaard <mark@klomp.org>
* eblobjnte.c (ebl_object_note): Check pr_datasz isn't too large.
Index: elfutils-0.175/libebl/eblobjnote.c
===================================================================
--- elfutils-0.175.orig/libebl/eblobjnote.c
+++ elfutils-0.175/libebl/eblobjnote.c
@@ -486,16 +486,17 @@ ebl_object_note (Ebl *ebl, uint32_t name
printf ("%02" PRIx8 "\n", (uint8_t) desc[i]);
}
}
+
if (elfclass == ELFCLASS32)
- {
- desc += NOTE_ALIGN4 (prop.pr_datasz);
- descsz -= NOTE_ALIGN4 (prop.pr_datasz);
- }
+ prop.pr_datasz = NOTE_ALIGN4 (prop.pr_datasz);
else
- {
- desc += NOTE_ALIGN8 (prop.pr_datasz);
- descsz -= NOTE_ALIGN8 (prop.pr_datasz);
- }
+ prop.pr_datasz = NOTE_ALIGN8 (prop.pr_datasz);
+
+ desc += prop.pr_datasz;
+ if (descsz > prop.pr_datasz)
+ descsz -= prop.pr_datasz;
+ else
+ descsz = 0;
}
}
break;

View File

@@ -0,0 +1,148 @@
From 2562759d6fe5b364fe224852e64e8bda39eb2e35 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Sun, 20 Jan 2019 22:10:18 +0100
Subject: [PATCH] libdw: Check terminating NUL byte in dwarf_getsrclines for
dir/file table.
For DWARF version < 5 the .debug_line directory and file tables consist
of a terminating NUL byte after all strings. The code used to just skip
this without checking it actually existed. This could case a spurious
read past the end of data.
Fix the same issue in readelf.
https://sourceware.org/bugzilla/show_bug.cgi?id=24102
Signed-off-by: Mark Wielaard <mark@klomp.org>
Upstream-Status: Backport
CVE: CVE-2019-7149
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
libdw/ChangeLog | 5 +++++
libdw/dwarf_getsrclines.c | 11 ++++++++---
src/ChangeLog | 5 +++++
src/readelf.c | 8 ++++++--
4 files changed, 24 insertions(+), 5 deletions(-)
Index: elfutils-0.175/libdw/dwarf_getsrclines.c
===================================================================
--- elfutils-0.175.orig/libdw/dwarf_getsrclines.c
+++ elfutils-0.175/libdw/dwarf_getsrclines.c
@@ -315,7 +315,7 @@ read_srclines (Dwarf *dbg,
if (version < 5)
{
const unsigned char *dirp = linep;
- while (*dirp != 0)
+ while (dirp < lineendp && *dirp != 0)
{
uint8_t *endp = memchr (dirp, '\0', lineendp - dirp);
if (endp == NULL)
@@ -323,6 +323,8 @@ read_srclines (Dwarf *dbg,
++ndirs;
dirp = endp + 1;
}
+ if (dirp >= lineendp || *dirp != '\0')
+ goto invalid_data;
ndirs = ndirs + 1; /* There is always the "unknown" dir. */
}
else
@@ -392,11 +394,12 @@ read_srclines (Dwarf *dbg,
{
dirarray[n].dir = (char *) linep;
uint8_t *endp = memchr (linep, '\0', lineendp - linep);
- assert (endp != NULL);
+ assert (endp != NULL); // Checked above when calculating ndirlist.
dirarray[n].len = endp - linep;
linep = endp + 1;
}
/* Skip the final NUL byte. */
+ assert (*linep == '\0'); // Checked above when calculating ndirlist.
++linep;
}
else
@@ -471,7 +474,7 @@ read_srclines (Dwarf *dbg,
{
if (unlikely (linep >= lineendp))
goto invalid_data;
- while (*linep != 0)
+ while (linep < lineendp && *linep != '\0')
{
struct filelist *new_file = NEW_FILE ();
@@ -527,6 +530,8 @@ read_srclines (Dwarf *dbg,
goto invalid_data;
get_uleb128 (new_file->info.length, linep, lineendp);
}
+ if (linep >= lineendp || *linep != '\0')
+ goto invalid_data;
/* Skip the final NUL byte. */
++linep;
}
Index: elfutils-0.175/src/readelf.c
===================================================================
--- elfutils-0.175.orig/src/readelf.c
+++ elfutils-0.175/src/readelf.c
@@ -8444,7 +8444,7 @@ print_debug_line_section (Dwfl_Module *d
}
else
{
- while (*linep != 0)
+ while (linep < lineendp && *linep != 0)
{
unsigned char *endp = memchr (linep, '\0', lineendp - linep);
if (unlikely (endp == NULL))
@@ -8454,6 +8454,8 @@ print_debug_line_section (Dwfl_Module *d
linep = endp + 1;
}
+ if (linep >= lineendp || *linep != 0)
+ goto invalid_unit;
/* Skip the final NUL byte. */
++linep;
}
@@ -8523,7 +8525,7 @@ print_debug_line_section (Dwfl_Module *d
else
{
puts (gettext (" Entry Dir Time Size Name"));
- for (unsigned int cnt = 1; *linep != 0; ++cnt)
+ for (unsigned int cnt = 1; linep < lineendp && *linep != 0; ++cnt)
{
/* First comes the file name. */
char *fname = (char *) linep;
@@ -8553,6 +8555,8 @@ print_debug_line_section (Dwfl_Module *d
printf (" %-5u %-5u %-9u %-9u %s\n",
cnt, diridx, mtime, fsize, fname);
}
+ if (linep >= lineendp || *linep != '\0')
+ goto invalid_unit;
/* Skip the final NUL byte. */
++linep;
}
Index: elfutils-0.175/libdw/ChangeLog
===================================================================
--- elfutils-0.175.orig/libdw/ChangeLog
+++ elfutils-0.175/libdw/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-20 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_getsrclines.c (read_srclines): Check terminating NUL byte
+ for dir and file lists.
+
2018-10-20 Mark Wielaard <mark@klomp.org>
* libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin.
Index: elfutils-0.175/src/ChangeLog
===================================================================
--- elfutils-0.175.orig/src/ChangeLog
+++ elfutils-0.175/src/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-20 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (print_debug_line_section): Check terminating NUL byte
+ for dir and file tables.
+
2018-11-10 Mark Wielaard <mark@klomp.org>
* elflint.c (check_program_header): Allow PT_GNU_EH_FRAME segment

View File

@@ -0,0 +1,51 @@
From da5c5336a1eaf519de246f7d9f0f5585e1d4ac59 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Sun, 20 Jan 2019 23:05:56 +0100
Subject: [PATCH] libdwfl: Sanity check partial core file dyn data read.
When reading the dyn data from the core file check if we got everything,
or just part of the data.
https://sourceware.org/bugzilla/show_bug.cgi?id=24103
Signed-off-by: Mark Wielaard <mark@klomp.org>
Upstream-Status: Backport
CVE: CVE-2019-7150
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
libdwfl/ChangeLog | 5 +++++
libdwfl/dwfl_segment_report_module.c | 6 ++++++
2 files changed, 11 insertions(+)
Index: elfutils-0.175/libdwfl/dwfl_segment_report_module.c
===================================================================
--- elfutils-0.175.orig/libdwfl/dwfl_segment_report_module.c
+++ elfutils-0.175/libdwfl/dwfl_segment_report_module.c
@@ -783,6 +783,12 @@ dwfl_segment_report_module (Dwfl *dwfl,
if (dyn_filesz != 0 && dyn_filesz % dyn_entsize == 0
&& ! read_portion (&dyn_data, &dyn_data_size, dyn_vaddr, dyn_filesz))
{
+ /* dyn_data_size will be zero if we got everything from the initial
+ buffer, otherwise it will be the size of the new buffer that
+ could be read. */
+ if (dyn_data_size != 0)
+ dyn_filesz = dyn_data_size;
+
void *dyns = malloc (dyn_filesz);
Elf32_Dyn (*d32)[dyn_filesz / sizeof (Elf32_Dyn)] = dyns;
Elf64_Dyn (*d64)[dyn_filesz / sizeof (Elf64_Dyn)] = dyns;
Index: elfutils-0.175/libdwfl/ChangeLog
===================================================================
--- elfutils-0.175.orig/libdwfl/ChangeLog
+++ elfutils-0.175/libdwfl/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-20 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Check
+ dyn_filesz vs dyn_data_size after read_portion call.
+
2018-10-20 Mark Wielaard <mark@klomp.org>
* libdwflP.h (__libdw_open_elf): New internal function declaration.

View File

@@ -0,0 +1,30 @@
From 94b7501f48e134e77716e7ebefc73d6bbe72ba55 Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Mon, 18 Feb 2019 17:30:41 +0000
Subject: [PATCH] PR/62: spinpx: Avoid non-nul-terminated string read.
Upstream-Status: Backport
CVE: CVE-2019-8904
Affects < 5.36
[Fixup for thud context]
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
src/readelf.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Index: git/src/readelf.c
===================================================================
--- git.orig/src/readelf.c
+++ git/src/readelf.c
@@ -558,8 +558,8 @@ do_bid_note(struct magic_set *ms, unsign
}
if (namesz == 4 && strcmp((char *)&nbuf[noff], "Go") == 0 &&
type == NT_GO_BUILD_ID && descsz < 128) {
- if (file_printf(ms, ", Go BuildID=%s",
- (char *)&nbuf[doff]) == -1)
+ if (file_printf(ms, ", Go BuildID=%.*s",
+ CAST(int, descsz), CAST(char *, &nbuf[doff])) == -1)
return 1;
return 1;
}

View File

@@ -0,0 +1,120 @@
From d65781527c8134a1202b2649695d48d5701ac60b Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Mon, 18 Feb 2019 17:46:56 +0000
Subject: [PATCH] PR/62: spinpx: limit size of file_printable.
Upstream-Status: Backport
CVE: CVE-2019-8905
CVE: CVE-2019-8907
affects < 5.36
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
src/file.h | 4 ++--
src/funcs.c | 9 +++++----
src/readelf.c | 7 ++++---
src/softmagic.c | 14 ++++++++------
4 files changed, 19 insertions(+), 15 deletions(-)
Index: git/src/file.h
===================================================================
--- git.orig/src/file.h
+++ git/src/file.h
@@ -501,7 +501,7 @@ protected int file_looks_utf8(const unsi
size_t *);
protected size_t file_pstring_length_size(const struct magic *);
protected size_t file_pstring_get_length(const struct magic *, const char *);
-protected char * file_printable(char *, size_t, const char *);
+protected char * file_printable(char *, size_t, const char *, size_t);
#ifdef __EMX__
protected int file_os2_apptype(struct magic_set *, const char *, const void *,
size_t);
Index: git/src/funcs.c
===================================================================
--- git.orig/src/funcs.c
+++ git/src/funcs.c
@@ -595,12 +595,13 @@ file_pop_buffer(struct magic_set *ms, fi
* convert string to ascii printable format.
*/
protected char *
-file_printable(char *buf, size_t bufsiz, const char *str)
+file_printable(char *buf, size_t bufsiz, const char *str, size_t slen)
{
- char *ptr, *eptr;
+ char *ptr, *eptr = buf + bufsiz - 1;
const unsigned char *s = (const unsigned char *)str;
+ const unsigned char *es = s + slen;
- for (ptr = buf, eptr = ptr + bufsiz - 1; ptr < eptr && *s; s++) {
+ for (ptr = buf; ptr < eptr && s < es && *s; s++) {
if (isprint(*s)) {
*ptr++ = *s;
continue;
Index: git/src/readelf.c
===================================================================
--- git.orig/src/readelf.c
+++ git/src/readelf.c
@@ -750,7 +750,7 @@ do_core_note(struct magic_set *ms, unsig
if (file_printf(ms, ", from '%.31s', pid=%u, uid=%u, "
"gid=%u, nlwps=%u, lwp=%u (signal %u/code %u)",
file_printable(sbuf, sizeof(sbuf),
- CAST(char *, pi.cpi_name)),
+ CAST(char *, pi.cpi_name), sizeof(pi.cpi_name)),
elf_getu32(swap, (uint32_t)pi.cpi_pid),
elf_getu32(swap, pi.cpi_euid),
elf_getu32(swap, pi.cpi_egid),
@@ -1655,7 +1655,8 @@ dophn_exec(struct magic_set *ms, int cla
return -1;
if (interp[0])
if (file_printf(ms, ", interpreter %s",
- file_printable(ibuf, sizeof(ibuf), interp)) == -1)
+ file_printable(ibuf, sizeof(ibuf), interp, sizeof(interp)))
+ == -1)
return -1;
return 0;
}
Index: git/src/softmagic.c
===================================================================
--- git.orig/src/softmagic.c
+++ git/src/softmagic.c
@@ -616,8 +616,8 @@ mprint(struct magic_set *ms, struct magi
case FILE_LESTRING16:
if (m->reln == '=' || m->reln == '!') {
if (file_printf(ms, F(ms, desc, "%s"),
- file_printable(sbuf, sizeof(sbuf), m->value.s))
- == -1)
+ file_printable(sbuf, sizeof(sbuf), m->value.s,
+ sizeof(m->value.s))) == -1)
return -1;
t = ms->offset + m->vallen;
}
@@ -644,7 +644,8 @@ mprint(struct magic_set *ms, struct magi
}
if (file_printf(ms, F(ms, desc, "%s"),
- file_printable(sbuf, sizeof(sbuf), str)) == -1)
+ file_printable(sbuf, sizeof(sbuf), str,
+ sizeof(p->s) - (str - p->s))) == -1)
return -1;
if (m->type == FILE_PSTRING)
@@ -750,7 +751,7 @@ mprint(struct magic_set *ms, struct magi
return -1;
}
rval = file_printf(ms, F(ms, desc, "%s"),
- file_printable(sbuf, sizeof(sbuf), cp));
+ file_printable(sbuf, sizeof(sbuf), cp, ms->search.rm_len));
free(cp);
if (rval == -1)
@@ -777,7 +778,8 @@ mprint(struct magic_set *ms, struct magi
break;
case FILE_DER:
if (file_printf(ms, F(ms, desc, "%s"),
- file_printable(sbuf, sizeof(sbuf), ms->ms_value.s)) == -1)
+ file_printable(sbuf, sizeof(sbuf), ms->ms_value.s,
+ sizeof(ms->ms_value.s))) == -1)
return -1;
t = ms->offset;
break;

View File

@@ -0,0 +1,27 @@
From 2858eaf99f6cc5aae129bcbf1e24ad160240185f Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Wed, 2 Jan 2019 19:44:14 +0000
Subject: [PATCH] Avoid OOB read (found by ASAN reported by F. Alonso)
Upstream-Status: Backport
CVE: CVE-2019-8906
Affects < 5.36
[Fixup for thud context]
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
src/readelf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: git/src/readelf.c
===================================================================
--- git.orig/src/readelf.c
+++ git/src/readelf.c
@@ -745,7 +745,7 @@ do_core_note(struct magic_set *ms, unsig
char sbuf[512];
struct NetBSD_elfcore_procinfo pi;
memset(&pi, 0, sizeof(pi));
- memcpy(&pi, nbuf + doff, descsz);
+ memcpy(&pi, nbuf + doff, MIN(descsz, sizeof(pi)));
if (file_printf(ms, ", from '%.31s', pid=%u, uid=%u, "
"gid=%u, nlwps=%u, lwp=%u (signal %u/code %u)",

View File

@@ -16,6 +16,9 @@ UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P<pver>(?!6_23).+)"
SRC_URI = "git://github.com/file/file.git \
file://debian-742262.patch \
file://CVE-2019-8906.patch \
file://CVE-2019-8904.patch \
file://CVE-2019-8905_CVE-2019-8907.patch \
"
SRCREV = "315cef2f699da3c31a54bd3c6c6070680fbaf1f5"

View File

@@ -1,7 +1,7 @@
require go-common.inc
GO_BASEVERSION = "1.11"
GO_MINOR = ".1"
GO_MINOR = ".10"
PV .= "${GO_MINOR}"
FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
@@ -17,8 +17,7 @@ SRC_URI += "\
file://0007-cmd-go-make-GOROOT-precious-by-default.patch \
file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
"
SRC_URI_append_libc-musl = " file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch"
SRC_URI[main.md5sum] = "eb9e9792247143705a7aacea9398cde0"
SRC_URI[main.sha256sum] = "558f8c169ae215e25b81421596e8de7572bd3ba824b79add22fba6e284db1117"
SRC_URI[main.md5sum] = "f2d2e44b9954b827daa8ad4d936a7a82"
SRC_URI[main.sha256sum] = "df27e96a9d1d362c46ecd975f1faa56b8c300f5c529074e9ea79bdd885493c1b"

View File

@@ -65,8 +65,8 @@ Index: go/src/cmd/go/internal/work/exec.go
===================================================================
--- go.orig/src/cmd/go/internal/work/exec.go
+++ go/src/cmd/go/internal/work/exec.go
@@ -440,6 +440,23 @@ func (b *Builder) build(a *Action) (err
return fmt.Errorf("module requires Go %s", p.Module.GoVersion)
@@ -436,6 +436,23 @@ func (b *Builder) build(a *Action) (err
return fmt.Errorf("missing or invalid binary-only package; expected file %q", a.Package.Target)
}
+ if goRootPrecious && (a.Package.Standard || a.Package.Goroot) {
@@ -89,7 +89,7 @@ Index: go/src/cmd/go/internal/work/exec.go
if err := b.Mkdir(a.Objdir); err != nil {
return err
}
@@ -1435,6 +1452,14 @@ func BuildInstallFunc(b *Builder, a *Act
@@ -1438,6 +1455,14 @@ func BuildInstallFunc(b *Builder, a *Act
return nil
}

View File

@@ -18,11 +18,11 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
src/cmd/go/internal/work/build.go | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
index 145b875..595d703 100644
--- a/src/cmd/go/internal/work/build.go
+++ b/src/cmd/go/internal/work/build.go
@@ -218,7 +218,11 @@ func AddBuildFlags(cmd *base.Command) {
Index: go/src/cmd/go/internal/work/build.go
===================================================================
--- go.orig/src/cmd/go/internal/work/build.go
+++ go/src/cmd/go/internal/work/build.go
@@ -223,7 +223,11 @@ func AddBuildFlags(cmd *base.Command) {
cmd.Flag.Var(&load.BuildAsmflags, "asmflags", "")
cmd.Flag.Var(buildCompiler{}, "compiler", "")
@@ -35,6 +35,3 @@ index 145b875..595d703 100644
cmd.Flag.Var(&load.BuildGcflags, "gcflags", "")
cmd.Flag.Var(&load.BuildGccgoflags, "gccgoflags", "")
cmd.Flag.StringVar(&cfg.BuildMod, "mod", "", "")
--
2.7.4

View File

@@ -1,7 +1,7 @@
inherit crosssdk
DEPENDS = "go-native virtual/${TARGET_PREFIX}gcc-crosssdk virtual/nativesdk-${TARGET_PREFIX}compilerlibs virtual/${TARGET_PREFIX}binutils-crosssdk"
PN = "go-crosssdk-${TARGET_ARCH}"
PN = "go-crosssdk-${SDK_SYS}"
PROVIDES = "virtual/${TARGET_PREFIX}go-crosssdk"
export GOHOSTOS = "${BUILD_GOOS}"

View File

@@ -40,7 +40,7 @@ do_install() {
for f in ${B}/${GO_BUILD_BINDIR}/*; do
name=`basename $f`
install -m 0755 $f ${D}${libdir}/go/bin/
ln -sf ../${BASELIB}/go/bin/$name ${D}${bindir}/
ln -sf ../${baselib}/go/bin/$name ${D}${bindir}/
done
}

View File

@@ -0,0 +1,59 @@
From 0cd38bb1bdcdbfc091014a1f39d015a1586a33e6 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan.agner@toradex.com>
Date: Fri, 19 Oct 2018 17:38:21 +0200
Subject: [PATCH] opkg-make-index: use ctime instead of mtime
Upstream-Status: Backport
When using sstate, two parallel builds can produce two packages
with the same mtime but different checksums. When later one of
those two builds fetches the others ipk, the package index does
not get udpated properly (since mtime matches). This ends up with
messages such as:
Downloading file:/../tmp/work/../image/...ipk.
Removing corrupt package file /../sysroot/../var/cache/opkg/volatile/...ipk
However, in that case, ctime is different. Use ctime instead of
mtime to prevent failures like this.
Suggested-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
---
opkg-make-index | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/opkg-make-index b/opkg-make-index
index 3227fc0..db7bf64 100755
--- a/opkg-make-index
+++ b/opkg-make-index
@@ -115,12 +115,12 @@ for abspath in files:
pkg = None
fnameStat = os.stat(abspath)
if filename in old_pkg_hash:
- if filename in pkgsStamps and int(fnameStat.st_mtime) == pkgsStamps[filename]:
+ if filename in pkgsStamps and int(fnameStat.st_ctime) == pkgsStamps[filename]:
if (verbose):
sys.stderr.write("Found %s in Packages\n" % (filename,))
pkg = old_pkg_hash[filename]
else:
- sys.stderr.write("Found %s in Packages, but mtime differs - re-reading\n" % (filename,))
+ sys.stderr.write("Found %s in Packages, but ctime differs - re-reading\n" % (filename,))
if not pkg:
if (verbose):
@@ -137,7 +137,7 @@ for abspath in files:
else:
old_filename = ""
s = packages.add_package(pkg, opt_a)
- pkgsStamps[filename] = fnameStat.st_mtime
+ pkgsStamps[filename] = fnameStat.st_ctime
if s == 0:
if old_filename:
# old package was displaced by newer
--
2.7.4

View File

@@ -14,6 +14,7 @@ SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV
file://threaded-xz.patch \
file://pigz.patch \
file://0001-update-alternatives-Fix-link-relocation-support.patch \
file://0001-opkg-make-index-use-ctime-instead-of-mtime.patch \
"
SRC_URI_append_class-native = " file://tar_ignore_error.patch"
UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"

View File

@@ -0,0 +1,260 @@
From 2eca28b6a37be92e4e835c51872c7df34ec6dedd Mon Sep 17 00:00:00 2001
From: Quentin Schulz <quentin.schulz@streamunlimited.com>
Date: Fri, 31 May 2019 17:30:40 +0200
Subject: [PATCH] [PATCH] libopkg: add --add-ignore-recommends option
Add option to ignore specific recommended packages. On the libsolv
backed, this feature will only work on libsolv version > 0.7.2 [1].
[1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openSUSE_libsolv_issues_254&d=DwIBaQ&c=I_0YwoKy7z5LMTVdyO6YCiE2uzI1jjZZuIPelcSjixA&r=wNcrL2akRn6jfxhHaKavUrJB_C9JAMXtynjLd8ZzgXQ&m=GObNHzFJpWpf_PripIrf-K2RhsktYdAUEieAJexXOKw&s=3G-meChUqClFggFPqsrAxIZBfLnRKIHm62Uuy1X6nQQ&e=
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
Signed-off-by: Quentin Schulz <quentin.schulz@streamunlimited.com>
Upstream-Status: Backport
---
libopkg/opkg_conf.c | 2 +
libopkg/opkg_conf.h | 1 +
.../solvers/internal/pkg_depends_internal.c | 3 +-
libopkg/solvers/libsolv/opkg_solver_libsolv.c | 21 ++++++-
man/opkg.1.in | 3 +
src/opkg.c | 6 ++
tests/Makefile | 1 +
tests/core/43_add_ignore_recommends.py | 62 +++++++++++++++++++
8 files changed, 97 insertions(+), 2 deletions(-)
create mode 100644 tests/core/43_add_ignore_recommends.py
diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c
index 06880a1..f2330cd 100644
--- a/libopkg/opkg_conf.c
+++ b/libopkg/opkg_conf.c
@@ -597,6 +597,7 @@ int opkg_conf_init(void)
pkg_dest_list_init(&opkg_config->tmp_dest_list);
nv_pair_list_init(&opkg_config->arch_list);
str_list_init(&opkg_config->exclude_list);
+ str_list_init(&opkg_config->ignore_recommends_list);
return 0;
}
@@ -938,6 +939,7 @@ void opkg_conf_deinit(void)
pkg_dest_list_deinit(&opkg_config->pkg_dest_list);
nv_pair_list_deinit(&opkg_config->arch_list);
str_list_deinit(&opkg_config->exclude_list);
+ str_list_deinit(&opkg_config->ignore_recommends_list);
if (opkg_config->verbosity >= DEBUG) {
hash_print_stats(&opkg_config->pkg_hash);
diff --git a/libopkg/opkg_conf.h b/libopkg/opkg_conf.h
index dc11516..fc42de3 100644
--- a/libopkg/opkg_conf.h
+++ b/libopkg/opkg_conf.h
@@ -61,6 +61,7 @@ typedef struct opkg_conf {
pkg_dest_list_t tmp_dest_list;
nv_pair_list_t arch_list;
str_list_t exclude_list;
+ str_list_t ignore_recommends_list;
int restrict_to_default_dest;
pkg_dest_t *default_dest;
diff --git a/libopkg/solvers/internal/pkg_depends_internal.c b/libopkg/solvers/internal/pkg_depends_internal.c
index cd56d84..5deee70 100644
--- a/libopkg/solvers/internal/pkg_depends_internal.c
+++ b/libopkg/solvers/internal/pkg_depends_internal.c
@@ -228,7 +228,8 @@ int pkg_hash_fetch_unsatisfied_dependencies(pkg_t *pkg,
|| compound_depend->type == SUGGEST)
&& (satisfying_pkg->state_want == SW_DEINSTALL
|| satisfying_pkg->state_want == SW_PURGE
- || opkg_config->no_install_recommends);
+ || opkg_config->no_install_recommends
+ || str_list_contains(&opkg_config->ignore_recommends_list, satisfying_pkg->name));
if (ignore) {
opkg_msg(NOTICE,
"%s: ignoring recommendation for "
diff --git a/libopkg/solvers/libsolv/opkg_solver_libsolv.c b/libopkg/solvers/libsolv/opkg_solver_libsolv.c
index bf0b72c..ea00a37 100644
--- a/libopkg/solvers/libsolv/opkg_solver_libsolv.c
+++ b/libopkg/solvers/libsolv/opkg_solver_libsolv.c
@@ -484,6 +484,7 @@ static void pkg2solvable(pkg_t *pkg, Solvable *solvable_out)
static void populate_installed_repo(libsolv_solver_t *libsolv_solver)
{
int i;
+ Id what;
pkg_vec_t *installed_pkgs = pkg_vec_alloc();
@@ -507,6 +508,15 @@ static void populate_installed_repo(libsolv_solver_t *libsolv_solver)
/* set solvable attributes */
pkg2solvable(pkg, solvable);
+ /* if the package is in ignore-recommends-list, disfavor installation */
+ if (str_list_contains(&opkg_config->ignore_recommends_list, pkg->name)) {
+ opkg_message(NOTICE, "Disfavor package: %s\n",
+ pkg->name);
+ what = pool_str2id(libsolv_solver->pool, pkg->name, 1);
+ queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE_NAME
+ | SOLVER_DISFAVOR, what);
+ }
+
/* if the package is not autoinstalled, mark it as user installed */
if (!pkg->auto_installed)
queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE
@@ -533,7 +543,7 @@ static void populate_available_repos(libsolv_solver_t *libsolv_solver)
{
int i;
Solvable *solvable;
- Id solvable_id;
+ Id solvable_id, what;
pkg_vec_t *available_pkgs = pkg_vec_alloc();
@@ -602,6 +612,15 @@ static void populate_available_repos(libsolv_solver_t *libsolv_solver)
solvable = pool_id2solvable(libsolv_solver->pool, solvable_id);
pkg2solvable(pkg, solvable);
+ /* if the package is in ignore-recommends-list, disfavor installation */
+ if (str_list_contains(&opkg_config->ignore_recommends_list, pkg->name)) {
+ opkg_message(NOTICE, "Disfavor package: %s\n",
+ pkg->name);
+ what = pool_str2id(libsolv_solver->pool, pkg->name, 1);
+ queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE_NAME
+ | SOLVER_DISFAVOR, what);
+ }
+
/* if the --force-depends option is specified make dependencies weak */
if (opkg_config->force_depends)
queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE
diff --git a/man/opkg.1.in b/man/opkg.1.in
index 026fb15..c0d4bf3 100644
--- a/man/opkg.1.in
+++ b/man/opkg.1.in
@@ -143,6 +143,9 @@ conjunction with \fB\--dest\fP
\fB\--add-arch <\fIarch\fP>:<\fIprio\fP>\fR
Register the package architecture \fIarch\fP with the numeric
priority \fIprio\fP. Lower priorities take precedence.
+.TP
+\fB\--add-ignore-recommends <\fIname\fP>\fR
+Register package to be ignored as a recomendee
.SS FORCE OPTIONS
.TP
\fB\--force-depends \fR
diff --git a/src/opkg.c b/src/opkg.c
index f23467d..5181065 100644
--- a/src/opkg.c
+++ b/src/opkg.c
@@ -51,6 +51,7 @@ enum {
ARGS_OPT_ADD_DEST,
ARGS_OPT_SIZE,
ARGS_OPT_ADD_EXCLUDE,
+ ARGS_OPT_ADD_IGNORE_RECOMMENDS,
ARGS_OPT_NOACTION,
ARGS_OPT_DOWNLOAD_ONLY,
ARGS_OPT_NODEPS,
@@ -110,6 +111,7 @@ static struct option long_options[] = {
{"add-dest", 1, 0, ARGS_OPT_ADD_DEST},
{"size", 0, 0, ARGS_OPT_SIZE},
{"add-exclude", 1, 0, ARGS_OPT_ADD_EXCLUDE},
+ {"add-ignore-recommends", 1, 0, ARGS_OPT_ADD_IGNORE_RECOMMENDS},
{"test", 0, 0, ARGS_OPT_NOACTION},
{"tmp-dir", 1, 0, 't'},
{"tmp_dir", 1, 0, 't'},
@@ -235,6 +237,9 @@ static int args_parse(int argc, char *argv[])
case ARGS_OPT_ADD_EXCLUDE:
str_list_append(&opkg_config->exclude_list, optarg);
break;
+ case ARGS_OPT_ADD_IGNORE_RECOMMENDS:
+ str_list_append(&opkg_config->ignore_recommends_list, optarg);
+ break;
case ARGS_OPT_SIZE:
opkg_config->size = 1;
break;
@@ -335,6 +340,7 @@ static void usage()
printf("\t--add-arch <arch>:<prio> Register architecture with given priority\n");
printf("\t--add-dest <name>:<path> Register destination with given path\n");
printf("\t--add-exclude <name> Register package to be excluded from install\n");
+ printf("\t--add-ignore-recommends <name> Register package to be ignored as a recomendee\n");
printf("\t--prefer-arch-to-version Use the architecture priority package rather\n");
printf("\t than the higher version one if more\n");
printf("\t than one candidate is found.\n");
diff --git a/tests/Makefile b/tests/Makefile
index 148c844..ddf027f 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -38,6 +38,7 @@ REGRESSION_TESTS := core/01_install.py \
core/37_globs.py \
core/38_install_constrained_version.py \
core/39_distupgrade.py \
+ core/43_add_ignore_recommends.py \
regress/issue26.py \
regress/issue31.py \
regress/issue32.py \
diff --git a/tests/core/43_add_ignore_recommends.py b/tests/core/43_add_ignore_recommends.py
new file mode 100644
index 0000000..7da0096
--- /dev/null
+++ b/tests/core/43_add_ignore_recommends.py
@@ -0,0 +1,62 @@
+#! /usr/bin/env python3
+#
+# Create package 'a' (1.0) which Recommends 'c'.
+# Install 'a' with --add-ignore-recommends 'c'.
+# Check that only 'a' (1.0) is installed.
+# Create package 'b' which Depends on 'c'.
+# Install 'a' & 'b', with --add-ignore-recommends 'c'.
+# Verify that 'a','b' & 'c' are installed.
+# Uninstall 'b' & 'c'.
+# Create package 'a' (2.0), which Recommends 'c'.
+# Upgrade 'a' with --add-ignore-recommends 'c'
+# Verify that only 'a' (2.0) is installed
+#
+
+import os
+import opk, cfg, opkgcl
+
+opk.regress_init()
+o = opk.OpkGroup()
+
+o.add(Package='a', Recommends='c', Version='1.0')
+o.add(Package='b', Depends='c')
+o.add(Package='c')
+o.write_opk()
+o.write_list()
+
+opkgcl.update()
+
+opkgcl.install('a', '--add-ignore-recommends c')
+
+if not opkgcl.is_installed('a'):
+ opk.fail("Package 'a' installed but reports as not installed.")
+
+if opkgcl.is_installed('c'):
+ opk.xfail("[libsolv<0.7.3] Package 'c' should not have been installed since it was in --add-ignore-recommends.")
+
+opkgcl.remove('a')
+opkgcl.install('a b', '--add-ignore-recommends c')
+
+if not opkgcl.is_installed('a'):
+ opk.fail("Package 'a' installed but reports as not installed.")
+
+if not opkgcl.is_installed('b'):
+ opk.fail("Package 'b' installed but reports as not installed.")
+
+if not opkgcl.is_installed('c'):
+ opk.fail("Package 'c' should have been installed since 'b' depends on it.")
+
+opkgcl.remove('b c', '--force-depends')
+o.add(Package='a', Recommends='c', Version='2.0')
+o.write_opk()
+o.write_list()
+
+opkgcl.update()
+
+opkgcl.upgrade('a', '--add-ignore-recommends c')
+
+if not opkgcl.is_installed('a', '2.0'):
+ opk.fail("Package 'a (2.0)' installed but reports as not installed.")
+
+if opkgcl.is_installed('c'):
+ opk.fail("Package 'c' should not have been installed since it was in --add-ignore-recommends.")
--
2.17.1

View File

@@ -15,6 +15,7 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz
file://opkg.conf \
file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
file://0001-remove_maintainer_scripts-use-strict-matching.patch \
file://0001-libopkg-add-add-ignore-recommends-option.patch \
"
SRC_URI[md5sum] = "79e04307f6f54db431c251772d7d987c"

View File

@@ -8,7 +8,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo \
file://toomanyfiles.patch \
"
SRCREV = "6294b344e5140f5467e6860f45a174440015304e"
SRCREV = "3fa7c853e0bcd6fe23f7524c2a3c9e3af90901c3"
S = "${WORKDIR}/git"
PV = "1.9.0+git${SRCPV}"

View File

@@ -0,0 +1,39 @@
From 12292444e1b3662b994bc223d92b8338fb0895ff Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 25 Oct 2018 07:32:14 +0000
Subject: [PATCH] python-native: fix one do_populate_sysroot warning
Fix below warning:
WARNING: Skipping RPATH /usr/lib64 as is a standard search path for
work/x86_64-linux/python-native/2.7.15-r1.1/recipe-sysroot-native/
usr/lib/python2.7/lib-dynload/_bsddb.so
setup.py will check db.h under include_dirs, for native build,
/usr/lib64 will be insert to postion 0 of include_dirs, so
it's priority is higher then our sysroot, cause db.h sysroot
is ignored, and rpath set to /usr/lib64. and this cause warning
when do_populate_sysroot. use append to fix it.
Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 7bf13ed..6c0f29b 100644
--- a/setup.py
+++ b/setup.py
@@ -40,7 +40,7 @@ def add_dir_to_list(dirlist, dir):
1) 'dir' is not already in 'dirlist'
2) 'dir' actually exists, and is a directory."""
if dir is not None and os.path.isdir(dir) and dir not in dirlist:
- dirlist.insert(0, dir)
+ dirlist.append(dir)
def macosx_sdk_root():
"""
--
2.18.0

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