Compare commits

..

382 Commits

Author SHA1 Message Date
Robert Yang
5f6945f503 buildhistory.bbclass: add ptest
The ptest log will be saved to buildhistory/ptest, we can easily get
the regression result between builds by:

$ git show HEAD ptest/pass.fail.skip.*

[YOCTO #11547]

(From OE-Core rev: dcb6cd19fb8c639cb844d116fb83827267f37421)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
8a5d3bf302 testimage.bbclass: update comments
It's very important to add IMAGE_CLASSES += "testimage" in local.conf firstly,
otherwise the var like TEST_LOG_DIR (defined in testimage.bbclass) will not be
in testdata.json.

[YOCTO #11547]

(From OE-Core rev: 5663ed989f0af5b1c61c74288ec421cbca2261e7)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
0cdabb7404 buildhistory.bbclass: print message when no commit
This makes the user easier to know how to make commit in buildhistory.

[YOCTO #11547]

(From OE-Core rev: 164a0bd847f02ca65dcd53ddc789690060274191)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
9fd9fae634 core/target/ssh.py: replace decode errors
There might be wild strings when read from target (especially when
reading ptest results), replace the errors to avoid breaking the test.

Fixed: (Not always happen)
$ bitbake core-image-sato -ctestimage
[snip]
    status, output = self.target.run('ptest-runner', 0)
  File "/buildarea/lyang1/poky/meta/lib/oeqa/core/target/ssh.py", line 84, in run
    status, output = self._run(sshCmd, processTimeout, True)
  File "/buildarea/lyang1/poky/meta/lib/oeqa/core/target/ssh.py", line 55, in _run
    status, output = SSHCall(command, self.logger, timeout)
  File "/buildarea/lyang1/poky/meta/lib/oeqa/core/target/ssh.py", line 258, in SSHCall
    run()
  File "/buildarea/lyang1/poky/meta/lib/oeqa/core/target/ssh.py", line 236, in run
    output = process.communicate()[0].decode("utf-8")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 4906: invalid continuation byte

[YOCTO #11547]

(From OE-Core rev: d0d2f892f0bed6adb5ec6fb59d64efcc97c83e19)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
f4d4bfd2b7 utils/logparser.py: fix section check
The section might be None or '', so use "if section" for it.

Fixed:
File "/buildarea/lyang1/poky/meta/lib/oeqa/utils/logparser.py", line 113, in log_as_files
    prefix += section
TypeError: Can't convert 'NoneType' object to str implicitly

[YOCTO #11547]

(From OE-Core rev: 320ea01f9eb33df462534bf08488ff6ada9bbe7b)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
20704967f6 runtime/cases/_ptest.py: rename it to ptest.py
It works now.

[YOCTO #11547]

(From OE-Core rev: 836393b467c3c0d53e4ace7611f991b0a5649182)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
86e062d612 runtime/cases/_ptest.py: add skip status
The packages' test cases maybe skipped, check and save them.

[YOCTO #11547]

(From OE-Core rev: 5c89060e96919c9865034a0c64fde382763da71d)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
f1c8488084 oeqa/utils/logparser.py: add skip status
Some test cases maybe skipped, let's parse it.

[YOCTO #11547]

(From OE-Core rev: f23c0f6a5aa93d38a5ea9d450f0accff0a5cc869)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Robert Yang
dccf0efb41 runtime/cases/_ptest.py: revive it
* Make it work with current oeqa
* Skip the test if ptest is not in DISTRO_FEATURES
* Skip the test if ptest-pkgs is not in IMAGE_FEATURES
* The logs are saved to:
  testimage/ptest_log -> testimage/ptest_log.<datetime>
* This provides data that could be used to detect regressions in ptest results

[YOCTO #11547]

(From OE-Core rev: f1dfb59495db9e79441c8aa623ede7ef20045a20)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:16:01 +01:00
Binghua Guan
487c62b853 bmap-tools: add "python-mmap" to RDEPENDS
bmap-tools has run-time dependency on "python-mmp" which is missing in
the RDEPENDS. "bmaptool" command in the target will fail without this
patch.

(From OE-Core rev: 1127154b958d0a0e167cefff4bc40dfb86e3378a)

Signed-off-by: Binghua Guan <freebendy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:13:46 +01:00
Jackie Huang
02ad8a21c1 libva-utils: add opengl to REQUIRED_DISTRO_FEATURES
libva-utils depends on libva which requires opengl in
DISTRO_FEATURES.

(From OE-Core rev: ea03fd82b0709f8f39b77ae665bd5dbdb9a1d58a)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 14:13:46 +01:00
Paul Eggleton
2f9f417de8 bitbake: fetch2: don't mandate path element in encodeurl()
URLs do not have to have a path; currently our npm URLs don't, so
encodeurl() needs to handle if the path element isn't specified. This
fixes errors using OpenEmbedded's devtool add / recipetool create on an
npm URL after OE-Core revision ecca596b75cfda2f798a0bdde75f4f774e23a95b
that uses decodeurl() and encodeurl() to change URL parameter values.

(Bitbake rev: d5cab2dbf5682d2fd08e58316a3bf39a10f63df2)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 13:48:50 +01:00
Marko, Peter
859e78cbc7 staging: add missing import errno to staging_populate_sysroot_dir
Fixes error "Exception: NameError: name 'errno' is not defined"
during build-sysroots.bb:do_build_target_sysroot

(From OE-Core rev: b1e482ae20b9c714f4089d4da6470d041242e441)

Signed-off-by: Marko, Peter <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 13:48:50 +01:00
Paul Eggleton
58057d8749 recipetool: create: fix npm license code regression
OE-Core commit 1df60b09f7a60427795ec828c9c7180e4e52f98c caused a
regression in npm handling since it still expected to be able to get the
results of the license handling, but this no longer happens until after
the npm plugin is called. Thus, call the license handling function
ourselves here (which will record this as having been handled so it
doesn't get done again later).

(From OE-Core rev: 3e408aadaea85b6f192b34d37d508cbaf3cd7164)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 13:48:50 +01:00
Paul Eggleton
433aa81f92 recipetool: create: fix broken import in npm module
With "import oe" in create_npm.py you get "AttributeError: module 'oe'
has no attribute 'package'" when it tries to call
oe.package.npm_split_package_dirs().

(From OE-Core rev: 1261900aeac725e5712e0180600753a9d4c67e60)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 13:48:50 +01:00
Jussi Kukkonen
ff57794b51 bitbake: bitbake: ui: Sort 'Dependent tasks' in taskexp
The underlying model is already sorted for use in the other view,
add a sorting model for the 'Dependent Tasks' view.

(Bitbake rev: 27ca94c33234f0ef9753f8285213dde2871a3fcf)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:42 +01:00
David Reyna
254e2debe5 bitbake: toaster: support custom Layer Index URL and fixture override
Toaster needs to allow the custom fixture file to specific an
alternate Layer Index URL for users that host their own Layer
Index Server via the 'CUSTOM_LAYERINDEX_SERVER' in
'custom.xml'.

Toaster also needs to allow the ability to completely override
the default fixture files, otherwise that content can leak into
the custom environment (by default the custom fixture is an
overlay that cannot remove existing values from the default
fixture) via the 'CUSTOM_XML_ONLY' value in 'setting.xml'.

[YOCTO #11938]

(Bitbake rev: ac29d4a9078494544a2627d8b6b021096b49cb34)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:42 +01:00
David Reyna
9bfe460934 bitbake: Toaster: custom start and stop actions
Toaster needs the ability to allow custom extensions to execute when
Toaster is started and stopped. Toaster will look for a custom
extension script in the fixtures directory and execute any applicable
hooks.

[YOCTO #11938]

(Bitbake rev: 12a73f6914488029f2b9dd680e004fba7dde41af)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:42 +01:00
David Reyna
52a67cc958 bitbake: toaster: custom image updates and original creation
When Toaster removes a package from a custom image, it must
also always remove the advised reverse-dependent recipes.
Similarly, when adding a package it must always add its advised
the packages it depends on. This code must be un-indented so
that it applies to all respective added or removed packages.

Toaster normally waits until a new custom image is built before
creating the custom layer and the recipe. However, an intermediate
different build can fail because the recipe has already been added
to the project, so the image's default recipe must be created
when the image is created.

[YOCTO #11915]

(Bitbake rev: bcd68fd7231f166baff875fb88e4f9ce0d9bf91d)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:42 +01:00
Ming Liu
e659fcc6b8 conf-notes.txt: add shell environment header
The header text has been moved to meta/conf/conf-notes.txt by:
[ meta: move some text from oe-setup-builddir to conf-notes.txt ]

Need do the same to meta-poky/conf/conf-notes.txt.

(From meta-yocto rev: 8a9d72abcf484fbe8001a08623910c5af1be07a0)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:09 +01:00
Richard Purdie
ccb73e60c2 linux-yocto: Drop 4.1 kernel appends
(From meta-yocto rev: ecde92624c27ebe511696b5bcfc83b21efec17d0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:09 +01:00
Bruce Ashfield
9be5917caf poky: bump poky lsb to linux 4.9
Due to the age of 4.1 and it being removed from oe-core master
as an active kernel, we can bump poky-lsb to the newer 4.9 LTSI
kernel version.

(From meta-yocto rev: 1f85cc33429e9a217a11adc298e2149f2950724c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:09 +01:00
Bruce Ashfield
6f68676b44 poky: bump preferred version of linux-yocto to 4.12
(From meta-yocto rev: 94c457c04dcbc30e3693c157de47ddbca3ffa8c7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:07:09 +01:00
Richard Purdie
ca940601b8 runqemu: Use virtio to mount cdrom drives
The IDE driver in the kernel is fragile and in 4.12 is causing backtraces.
To unblock 4.12 kernel merging use the virtio CD driver instead to mount
iso images which should be faster and more stable.

(From OE-Core rev: f59e729f98ef9b506b0cfdc415567e03ec87f2a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:52 +01:00
Richard Purdie
eb9264cf31 oeqa/parselogs: Ignore device node warnings on mips
THe newner kernels have ope firmware support enabled which leads to warnings
during boot on mips. These aren't interesting and we should ignore them.

(From OE-Core rev: 4ba9a6ffb4e7f6c7eee47aa13252fd981cfe5618)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:52 +01:00
Martin Jansa
e7888878ee systemd-machine-units: import last recipe from meta-systemd
* this recipe is intentionally empty, but useful for BSP layers to
  provide machine specific systemd services in this MACHINE_ARCH
  package.

(From OE-Core rev: 5f3dbcf71059939f1c33af7b8848eb18b311365a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:52 +01:00
Jackie Huang
2f2b4c5cbe systemd: add dependency on initscripts-sushell for selinux
sushell is required by systemd service debug-shell
when selinux is enabled.

(From OE-Core rev: 0e4e43e2e6e4a906dfa45b9e89d179e46d593158)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:52 +01:00
Jackie Huang
b0ebd9cbaf initscripts: split sushell into sub package
* sushell is required by systemd service debug-shell
  when selinux is enabled, but it doesn't make sense
  to make systemd depend on initscripts, so split sushell
  into sub package initscripts-sushell.

* The bash dependency has been removed by:
  '''
  4917e36a77bd6821b45db52caa43939d344d92f6
  initscripts: Fix regression for requiring /bin/bash
  '''
  so remove bash from RDEPENDS when selinux is enabled.

(From OE-Core rev: 9c84ca86f396886ae68774032724b53664ecf0ed)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:52 +01:00
Maciej Pijanowski
ea98124bfd linux-firmware: package ibt-firmware
ibt-firmware was not packaged separately and was part of big linux-firmware
package. Packaging allows to install it separately, according to requirements.

(From OE-Core rev: f1414d6f9c327547023375f9e298f6f021eaee1b)

Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:52 +01:00
Maciej Pijanowski
a2fdf585c0 linux-firmware: package iwlfifi-3160-[10-17] firmware
Package iwlwifi-3160-[10-17] firmware from iwlwifi-misc to seperate packages,
so it is possible to install only required firmare package.

(From OE-Core rev: 2a5966c957a6c2fbe914c1b3be0926ec0e62dab0)

Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Jackie Huang
e6b7734d76 valgrind: improvements for run-ptest
* Add statistic summary for run-ptest
* Ensure the script can be run anywhere

(From OE-Core rev: 8a6f5a2bc55975f38ad285ddea7122643b303c53)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Maxin B. John
ee8b56528d pkgconf: add recipe
pkgconf is a better replacement for pkg-config. Fedora 26 replaces the
system pkg-config implementation with pkgconf because it "provides better
support for handling .pc files and a stable library ABI/API for integrating
into applications." and is actively maintained, unlike pkg-config.

pkgconf aims to offer many improvements over pkg-config such as faster/more
efficient dependency resolver which "allows for the user to more conservatively
link their binaries -- which may be helpful in some environments, such as when
prelink(1) is being used.

pkgconf also aims to provide a more complete implementation of pkg-config.
The features most likely to benefit the Yocto Project build system are the
faster/more efficient dependency resolution and linker flag optimisation.

Move pkgconf recipe to oe-core from meta-pkgconf:
https://github.com/kergoth/meta-kergoth-wip/tree/master/meta-pkgconf

Links:
1. http://pkgconf.org
2. https://fedoraproject.org/wiki/Changes/pkgconf_as_system_pkg-config_implementation
3. https://bugzilla.yoctoproject.org/show_bug.cgi?id=11308

(From OE-Core rev: 879bd0ff00ebebfdeef52c3f61597d635e040aef)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Ming Liu
96d0d4b5b6 meta: move some text from oe-setup-builddir to conf-notes.txt
This allows the end users to be able to override the entire notes
showing on the shell console. For instance, Our company uses a
external conf-notes.txt, and we run bitbake with some extra variables,
looks like: F=xxx D=xxx M=xxx bitbake <target>, so we want to show
exactly these texts on the shell console, that's why we need this
change.

(From OE-Core rev: 80bc8282df58dfeaae8f2f71ed2617d718e29f8b)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Leonardo Sandoval
16fee5ff45 build-appliance-image: include proxy on pip3 installation
Otherwise, we get timeouts, leading to errors:

    pip._vendor.requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /pypi/pip/json (Caused by ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7ff741bb3ef0>, 'Connection to pypi.python.org timed out. (connect timeout=5)'))
    WARNING: TOPDIR/tmp/work/qemux86-poky-linux/build-appliance-image/15.0.0-r0/temp/run.do_populate_poky_src.185123:1 exit 1 from 'pip3 install --user -I -U -v -r TOPDIR/tmp/work/qemux86-poky-linux/build-appliance-image/15.0.0-r0/rootfs/home/builder/poky/bitbake/toaster-requirements.txt'
    DEBUG: Python function do_image finished

Complete log at [1]

[1] http://errors.yoctoproject.org/Errors/Build/43393/

(From OE-Core rev: 8291156c30e54a05ad455dda2b8540a570bb0f4a)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Ioan-Adrian Ratiu
e36fbb3382 oe/path.py: copyhardlinktree: don't overwrite existing symlinks
Before GNU tar 1.24, only the archive creation command had the '-h'
argument to preserve and follow symlinks. After >= 1.24 via commit
14efeb9f956e38d7be (tar: --dereference consistency) the capability to
preserve symlinks was also added to the archive extraction command.

-h is default at archive creation but is not default at extraction,
meaning that it will replace symlinks with directories even if the
original filesystem directory tree and archive contains them.

Add -h to the copyhardlinktree extraction step so the build can
support symlinks in variables like ${DEPLOY_DIR_IPK/RPM/DEB}.

(From OE-Core rev: c1b73fe26540c38086e259be6eb313e0826dceed)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Juro Bystricky
06ff0a9c8a kernel.bbclass: external toolchain fix
Refactor get_cc_option so it is simpler and also does not fail
when using external toolchain.

(From OE-Core rev: d4564ee59df907d1e01a3610ac88a35f9a78c1ce)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Juro Bystricky
07348bb76f python2.7: improve reproducibility
The compiled .pyc files contain time stamp corresponding to the compile time.
This prevents binary reproducibility. This patch allows to achieve binary
reproducibility by overriding the build time stamp by the value
exported via SOURCE_DATE_EPOCH.

Patch by Bernhard M. Wiedemann, backported from https://github.com/python/cpython/pull/296

[YOCTO#11241]

(From OE-Core rev: 2a044f1e4f5c63e11e631b31f741c7aabfa6f601)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
924b536529 linux-yocto/4.10: CVE & misc fixes
Updating the 4.10 SRCREVs to import the following changes:

  65370fa249e2 drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
  530ec12a0cb0 ACPICA: Namespace: fix operand cache leak
  b1098b5bbded char: lp: fix possible integer overflow in lp_setup()
  56ee0c7811e5 dccp/tcp: do not inherit mc_list from parent
  9f6cbd022bba nfsd: encoders mustn't use unitialized values in error cases
  084036ebc243 nfsd: fix undefined behavior in nfsd4_layout_verify
  973f780eeaa6 xen-blkback: don't leak stack data via response ring
  20c4b5015fea brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx()
  1dff0f28b490 ipx: call ipxitf_put() in ioctl error path
  d666a8e60a45 mm: fix new crash in unmapped_area_topdown()
  73d059ba1a17 mm: larger stack guard gap, between vmas

Which address the following CVEs:

  CVE-2017-8890
  CVE-2017-1000363
  CVE-2017-11472
  CVE-2017-7346
  CVE-2017-1000380
  CVE-2017-7541
  CVE-2017-10911

(From OE-Core rev: 6cfd520ea050aa449f0ac7ee0b2c647d14d588ad)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
b6f78c7a27 kernel-yocto: ensure that only valid BSPs are built
There was a bug in the search routines responsible for locating
BSP definitions which returned a valid match if only the ktype
matched.

This meant that someone looking for "qemux86foo" (which is an
invalid definition) would potentially end up building "qemuarm"
and be none the wiser (until it didn't boot).

With this fix to the tools search routine, and improved return
code testing, we will now stop the build and report and error to
the user.

[YOCTO: #11878]

(From OE-Core rev: 44aea7b87307795fe4e089c51d45afccaa2f6525)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
dd370ce97b qemu: bump default version to 4.12
Not all the qemu machines carry default kernel specifications.
While we could drop these references, we'll bump them to 4.12
to pick up the latest and remove them in future commits.

(From OE-Core rev: c58df63d88a07d3275e7337f7d284b0a50db82cc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
d8f57413af libc-headers: update to 4.12
The fall 2017 kernel will have 4.12 as the reference kernel, so
we update the libc-headers to match.

Build tested against glibc and muslc systems.

(From OE-Core rev: 4b5cce1c691e991c80d255a4900220068ff6f062)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
50265b486e linux-yocto: remove 4.1 recipes
We have 4.4 and 4.9 as LTS kernels, the 4.1 variants are no longer
needed and are dropped.

(From OE-Core rev: 1a25cea311cbebb2af0c1a0b964208281e6026de)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
1a8c7cd061 linux-yocto: introduce 4.12 recipes
The 4.12 kernel will be the default/reference for the fall 2017
release.

These recipes represent the introduction of 4.12.7 + related kernel
meta data. Existing functionality has been validated against this
new kernel version, and older versions will be removed in separate
commits.

(From OE-Core rev: 4e5044bcea68f3bac3596507f0828d3cbe869df1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
63842f885e linux-yocto: add usb-net configs by default
As requested by QA to enable testing of linux-yocto images out of the
box, we enable usb-net drivers for the various platforms in all kernel
versions.

(From OE-Core rev: 5322eef31c8b63ead49b2f13312d3356a016ff64)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
a892aa8f5e linux-yocto/4.1: fix fsl-ls10xx sdhci
mmc: sdhci: fix two compile errors

    | CC drivers/mmc/host/sdhci.o
    | drivers/mmc/host/sdhci.c: In function 'sdhci_execute_tuning':
    | drivers/mmc/host/sdhci.c:1990:4: error: implicit
    | declaration of function 'sdhci_do_reset'
    | [-Werror=implicit-function-declaration]
    | sdhci_do_reset(host, SDHCI_RESET_CMD);
    | ^
    | drivers/mmc/host/sdhci.c:2006:7: error: 'struct
    | mmc_command' has no member named 'busy_timeout'
    | cmd.busy_timeout = 50;
    |        ^

    In function sdhci_execute_tuning, replace sdhci_do_reset
    with sdhci_reset, replace busy_timeout with cmd_timeout_ms.

    Commit a629a90ba0 adds eMMC DDR mode support for t2080qds and
    modified some data structures and function name. Later
    commit a2080cc280 just backport upstream commit 61e53bd004
    without aligning the current source tree thus cause
    these build errors. Fix them.

    Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>

(From OE-Core rev: 538d2f0857f09ca86026d5771ea7c3fb74c0f857)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Bruce Ashfield
fd92445509 kernel-yocto: configuration updates: x86 features
Integrating the following kernel configuration changes:

 f7fbd4185e5 features/qat: additional configurations, CONFIG_CRYPTO_RSA and CONFIG_CRYPTO_DH
 50c62581d283 features/netfilter: additional configurations
 d67e4ed89556 features/x2apic: add X2APIC feature
 7889b28c5300 features/vfio: add VFIO feature
 dc4ec998757e features/numa: Add NUMA feature
 c88c18de4ca8 features/mtd: add MTD feature
 9035571d32ee features/iommu: add IOMMU feature
 6f3b16136f55 features/intel-txt: add intel-txt feature
 4936a5f508f0 common-pc-wifi: Enable SDIO for BroadCom BRCMFMAC

(From OE-Core rev: 59d294f119dc91d9ec47b0a8381d3addc86a6e3a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 12:06:51 +01:00
Joe Slater
67afd9ead6 ghostscript: CVE-2017-9727, -9835, -11714
CVE-2017-9727: make bounds check in gx_ttfReader__Read more robust
CVE-2017-9835: bounds check the array allocations methods
CVE-2017-11714: prevent trying to reloc a freed object

(From OE-Core rev: 2eae91f9fa1cfdd3f0e6111956c8f193fd0db69f)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Joe Slater
8efe725080 ghostscript: fix several CVEs by adding bounds checking
CVE-2017-9611
CVE-2017-9612
CVE-2017-9739
CVE-2017-9726

(From OE-Core rev: 3e5d80c84f4c141bc3f3193d1db899b0e56993cf)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Martin Jansa
ed52aa9e79 grub2: fix build on gcc where _FORTIFY_SOURCE is defined
* e.g. with gentoo gcc-7.1 they define _FORTIFY_SOURCE by default with:
  https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/patchsets/gcc/7.1.0/gentoo/10_all_default-fortify-source.patch?view=markup
  which results in following error while building grub-efi-native:
  ./config-util.h:1504:48: error: this use of "defined" may not be portable [-Werror=expansion-to-defined]
               || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
                                                  ^~~~~~~~~~~~~~~
  this part comes from gnulib and it's used only for Apple and BSD,
  so we can ignore it, but we cannot add -Wno-error=expansion-to-defined
  because this warning was introduced only in gcc-7 and older gcc
  will fail with:
  cc1: error: -Werror=expansion-to-defined: no option -Wexpansion-to-defined
  use #pragma to work around this

(From OE-Core rev: f5302b0ad2942f7705d46c33949ebc1c5ddf3f58)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Yi Zhao
1a73074d75 tiff: Security fixes
Fix CVE-2017-9147, CVE-2017-9936, CVE-2017-10668, CVE-2017-11335

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

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

(From OE-Core rev: 5c89539edb17d01ffe82a1b2e7d092816003ecf3)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Ruslan Bilovol
0e029f75c6 machine-sdk: oldest kernel for x86/x86_64 is 3.2.0 now
With glibc upgrade to 2.26 release (commit d6a0bc57fa07
"glibc: Upgrade to 2.26 final release") it's not possible
to build x86/x86_64 SDK for kernels lower than 3.2.0
(see glibc commit 139ace95756a "Require Linux kernel 3.2
or later on x86 / x86_64.")

Thus drop SDK_OLDEST_KERNEL overrides from machine-specific
conf files, so default version 3.2.0 from conf/bitbake.conf
will be picked up.

(From OE-Core rev: 0724896f7a2092abf2f3bafa9fac96c5210d39a5)

Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Martin Jansa
99d5c5a70f libcheck: fix file-rdeps QA issue
* Fixes:
  ERROR: nativesdk-libcheck-0.10.0-r0 do_package_qa: QA Issue: /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/checkmk contained in package nativesdk-libcheck requires /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/gawk, but no providers found in RDEPENDS_nativesdk-libcheck? [file-rdeps]

(From OE-Core rev: 71c29b53f1a44430306eeda96dc43cf7d002afe5)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Martin Jansa
a031b24e64 squashfs: fix build with glibc-2.26
(From OE-Core rev: 34b79a0e8b4d872ce0e104611be5e0e08cff8581)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Aníbal Limón
7004cb7288 apt: Upgrade to 1.2.24
Add new patches for enable builds on hosts that has GCC version
minor than 5 because doesn't support std::array and std::put_time,
those patches could be removed after get rid of Debian8 and Centos7
support.

  - gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch
  - gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch
  - gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch

The LIC_FILES_CHKSUM changed because the license file now has
style changes in the text remains GPLv2+.

The patch Revert-always-run-dpkg-configure-a-at-the-end-of-our
was updated because now the precision fields use floating
point numbers.

(From OE-Core rev: da99ae14c3a5719b317ff71b8f778a7c987f6158)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Aníbal Limón
c9a29aa55d dpkg: Upgrade to 1.18.24
Patches rebased due to don't apply, no major changes,

- 0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch
- arch_pm.patch
- noman.patch

Patches related to move ostable/triplettable insida data/ostable and
data/tupletable instead also needs to comply the new format of the
tables for arch detection.

- 0006-add-musleabi-to-known-target-tripets.patch
- add_armeb_triplet_entry.patch

And finally a patch to avoid usage --clamp-mtime in tar needs to be
modified because the dpkg-deb internal API changed.

- 0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch

(From OE-Core rev: dc1ae641435999095e8759812b096fec1f28c90d)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Robert Yang
ef4c6534ff strace: 4.17 -> 4.18
- Updated update-gawk-paths.patch.
- Updated Makefile-ptest.patch
- Removed 0008-replace-struct-ucontext-with-ucontext_t.patch which is already in
  the source.
- The LIC_FILES_CHKSUM is changed because the years have been updated,
  the contents are the same.

(From OE-Core rev: 111e4a8642160c8441e447da32a4ef52995bbe99)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:03 +01:00
Robert Yang
08975348f1 e2fsprogs: 1.43.4 -> 1.43.5
Removed the following 2 patches which are already in the source:
- 0001-e2fsck-exit-with-exit-status-0-if-no-errors-were-fix.patch
- e2fsprogs-1.43-sysmacros.patch

(From OE-Core rev: ce0efa2e38611428aff6d39d52ce29f8a6571813)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Robert Yang
7fa9b8f91f tcl: 8.6.6 -> 0.8.7
(From OE-Core rev: c73d1ceaa6643b3713e95154ba2a53eb304257a7)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Robert Yang
91def3fdc9 libbsd: 0.8.5 -> 0.8.6
(From OE-Core rev: 8c53a8c87c509da68d1f423ecd11f6b11186acd1)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Robert Yang
8dc9cd70e7 git: 2.13.2 -> 2.13.3
(From OE-Core rev: 544d522ff0eb8d57753eb5c237743d2310866fec)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Martin Hundebøll
e0ed52c514 kernel-module-split: rrecommend kernel-image instead of rdepend
Hard depending on the kernel makes it impossible to install kernel
modules without getting the kernel image installed too. This is
inconvenient in e.g. initramdisks, where the kernel is loaded from
outside the initramdisk.

Making the kernel modules rrecommend kernel-image-<version> instead of
rdepending on it, makes it possible to install kernel modules without
the kernel image by setting "kernel-image" in BAD_RECOMMENDATIONS.

(From OE-Core rev: 5dd7ddb66a6846d9bb59dc7833e8318992d0e645)

Signed-off-by: Martin Hundebøll <mnhu@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Sona Sarmadi
9086b525dd connman: Fix for CVE-2017-12865
dnsproxy: Fix crash on malformed DNS response
If the response query string is malformed, we might access memory
pass the end of "name" variable in parse_response().

[YOCTO #11959]

(From OE-Core rev: fb3e30e45eea2042fdb0b667cbc2c79ae3f5a1a9)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Hongxu Jia
c55b370612 gnupg: 2.1.20 -> 2.1.23
1. COPYING.LIB: Rename to COPYING.LGPL3.
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=3419a339d9c4e800bf30e9021e05982d8c1021c1

2. Rebase patches:
- pkgconfig.patch -> 0001
- use-pkgconfig-instead-of-npth-config.patch -> 0002
- dirmngr-uses-libgpg-error.patch -> 0003
- autogen.sh-fix-find-version-for-beta-checking.patch -> 0004

3. Fix gpg2 not found
...
dnf -vy makecache

|Cannot download 'http://192.168.7.1:33541': repomd.xml GPG signature
verification error: gpgme_engine_check_version() error: Invalid crypto
engine.
...

The upstream install gpg by default and no gpg2
...
commit a69464b0b6dac88b360a13d3faf19dd7f2a0e02b
Author: Werner Koch <wk@gnupg.org>
Date:   Sat Aug 5 14:39:32 2017 +0200

    gpg: Install gpg by default under the name gpg.
...
Add --enable-gpg-is-gpg2 to revert it.

(From OE-Core rev: f62d844424670967d2d40cd2afc96f5fc597bf1d)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Wenzong Fan
624da0cc25 gdk-pixbuf: fix ptest RDEPENDS for multilib build
Don't hardcode the package name, it could be gdk-pixbuf or
lib32-gdk-pixbuf.

(From OE-Core rev: 92a299a550b5b9c68c0285fdeb3d4c9defa0dede)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Paul Eggleton
b1f237ebd0 recipetool: allow plugins to set LICENSE and LIC_FILES_CHKSUM
We were being a bit prescriptive in setting LICENSE and
LIC_FILES_CHKSUM. We can't always trust what's in the metadata
accompanying some source which plugins will almost always be pulling
from, however we do want to allow plugins to set the LICENSE and
LIC_FILES_CHKSUM values. Merge what we find in our license file scan
with what the plugin sends back.

Additionally, plugins can now add a "license" item to the handled list
in order to inhibit the normal LICENSE / LIC_FILES_CHKSUM handling if
they have already taken care of it completely.

Thanks to Mark Horn <mark.d.horn@intel.com> for prompting, testing and
fixing this patch.

(From OE-Core rev: 1df60b09f7a60427795ec828c9c7180e4e52f98c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Paul Eggleton
a7baa47c87 recipetool: allow plugins to set PN / PV more easily
Previously if we were able to auto-determine the name from the URL, that
took precedence over any name that might be set in extravalues by a
plugin. Some plugins might be able to get a better idea of the name and
thus we should move defaulting of the name further down after the
plugins have had a chance to set it.

(From OE-Core rev: 3bb979c13463705c4db6c59034661c4cd8100756)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Leonardo Sandoval
e798b4e980 devtool: import: new plugin to import the devtool workspace
Takes a tar archive created by 'devtool export' and imports (untars) it
into the workspace. Currently the whole tar archive is imported, there
is no way to limit what is imported.

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

[YOCTO #10510]

(From OE-Core rev: 2de8ba89ef10fefcc97246dfeb4b8d1e48ee8232)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Leonardo Sandoval
ee21e81cff devtool: append md5sum only if not already present
In case the proposed md5sum to be appended to the .devtool_md5 file
is already present, do not append it.

(From OE-Core rev: f958c5cba3b0d24ca696b2b707857009c9a7b5b8)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Leonardo Sandoval
42a5894a3c devtool: export: new plugin to export the devtool workspace
By default, exports the whole workspace (all recipes) including the source code.
User can also limit what is exported with --included/--excluded flags. As
a result of this operation, a tar archive containing only workspace metadata
and its corresponding source code is created, which can be properly imported
with 'devtool import'.

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

[YOCTO #10510]

(From OE-Core rev: f9bc3b5101b554a72298266519dbdd1497f262a6)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Chang Rebecca Swee Fun
b47a7b848b devtool: upgrade: enable branch checking when revision is provided
When devtool upgrade is run on a recipe with revision specified
that is not on master branch, and branch isn't set by --srcbranch or -B,
then we should get the correct branch and append the branch to the URL.

If the revision was found on multiple branches, we will display error
to inform user to provide a correct branch and exit.

[YOCTO #11484]

(From OE-Core rev: 29ced7387a92aed17b7fe93b1654790a981734c1)

Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Stanley Phoong
439a6f1d68 recipetool: create: replacing PV in SRCURI
During recipe creation, it seems that the automation for replacing
${PV} at the SRCURI for tag, (e.g mbed-tls-${PV}) is causing some
issue due to PV assuming it's a git source. A fix is implemented in
this patch to resolve this issue.

(From OE-Core rev: 9d3ec76c1b7dd75d904f5ff47297de0fb65b21c2)

Signed-off-by: Stanley Phoong <stanley.cheong.kwan.phoong@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Stanley Phoong
fe62cedd4b recipetool: create: handle git URLs specifying only a tag
If a git URL is passed to recipetool create with a tag=, recipetool
should handle it assuming that the tag is valid.

[YOCTO #11393]

(From OE-Core rev: 3afdcbdc9a3e65bc925ec61717784ffec67d529d)

Signed-off-by: Stanley Phoong <stanley.cheong.kwan.phoong@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Chang Rebecca Swee Fun
62d5035ffc recipetool: create: being able to set branch when revision is provided
This change is to improve the buildability of the recipe created by
recipetool and devtool.

When recipetool create is run on a git URL and a revision specified
that is not on master, and "branch=" isn't already in the URL, then
we should get the correct branch and append the branch to the URL.

If the revision was found on multiple branches and 'master' is not
in the list, we will display error to inform user to provide a
correct branch and exit.

[YOCTO #11389]

(From OE-Core rev: ecca596b75cfda2f798a0bdde75f4f774e23a95b)

Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Chang Rebecca Swee Fun
e09b9d4543 recipetool: create: disable PREMIRRORS and MIRRORS by default
When creating new recipes, we are almost certainly fetching a new
source rather that something that has already been fetched. I have
disable PREMIRRORS and MIRRORS settings in the recipe that created
by devtool while leaving an option for users to enable them manually
if needed. Since devtool already has this options, we need to ensure
that recipetool is able to handle the options passed from devtool.

(From OE-Core rev: 091cee2bdc2378a3425a4ef8558d03e6f9c021ff)

Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-23 08:47:02 +01:00
Richard Purdie
ae874ef553 bitbake: process: Ensure we call select() to know which fds to read
There is an interesting bug in the current code where a sync command
is not seen until the current async command completes, by which time
the UI may have shut down.

The reason is that if there are idle commands, we may not end up sleeping
in the select call at all, partiularly under heavy load like parsing.

Fix this by calling select with a zero timeout so that we see active
fds and know to read from them. This fixes various problems toaster was
having with the recent server changes.

[YOCTO #11898]

(Bitbake rev: bbcce58e824b2793abf50efa52db158ae16e23e4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-22 19:50:25 +01:00
Juan M Cruz Alcaraz
04dc76713b devtool/copy_buildsystem: adds meta-skeleton layer in the eSDK installation.
The eSDK installation requires the meta-skeleton layer.
The build system might use the meta-skeleton recipes as layout
to create custom recipes. An example is the recipetool script
that uses the meta-skeleton kernel recipe when creating a custom
kernel recipe.

[YOCTO #11102]

(From OE-Core rev: 5c9ef0734d23909b5694ed43cdbb205c2ba9ca95)

Signed-off-by: Juan M Cruz Alcaraz <juan.m.cruz.alcaraz@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:39 +01:00
California Sullivan
769c774f89 initramfs-framework/setup-live: also boot live image if root=/dev/ram0
Our grub and syslinux bootloaders both define root=/dev/ram0 for live
images by default. Kernel docs show that root=/dev/ram0 is just a
sentinel value for the kernel to mount the initrd as root, which then
mounts and switches to the real root. This is exactly what our scripts
do, so just check for root=/dev/ram0 as well.

See: https://www.kernel.org/doc/html/v4.11/admin-guide/initrd.html#operation

This fixes the issue where the new initramfs-framework scripts would not
boot live images that use grub or syslinux bootloaders.

(From OE-Core rev: a30f8f60017d566d845ee5d3a8cfc338017211b0)

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:39 +01:00
Alexander Kanavin
7a4361c506 openssl10: rename back to openssl and make it the default via PREFERRED_VERSION
openssl 1.1 broke 3rd party layers a lot more than was expected; let's flip
the switch at the start of next development cycle.

Add a PROVIDES = "openssl10" to openssl 1.0 recipe; any dependency that is
not compatible with 1.1 should use that in its DEPENDS, as the 1.0
recipe will later be renamed back to openssl10. This does not always work:
http://lists.openembedded.org/pipermail/openembedded-core/2017-August/140957.html
but for many recipes it does.

(From OE-Core rev: 5585103c195104e85ed7ac1455bef91b2e88a04d)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:39 +01:00
Mark Hatle
05a6710467 prelink: Change the behavior to avoid checking USER_CLASSES
The behavior before this change was to check USER_CLASSES and adjust
the install script to return either exit 0 (don't do anything) or
exit 1 (run on first boot).  This enabled a user to include the prelink
package without enablign the image-prelink bbclass and get a first boot
prelink.

Checking USER_CLASSES is not desired, as an image should be able to simply
inherit the image-prelink and get the same type of behavior.  Modifying
the recipe based on the inclusion of a class is a bad idea as it makes
this style work more difficult.  So we move to a more defined strategy
based on exist uses.  (That we know of...)

If we ae doing a cross install, we want to avoid prelinking.
Prelinking during a cross install should be handled by the image-prelink
bbclass.  If the user desires this to run on the target at first boot
they will need to create a custom boot script.

[YOCTO #11169]

(From OE-Core rev: e31c9d32072b9cf62c0e9e55b4d421849d3d489b)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:39 +01:00
Chen Qi
f6857d9832 qemu conf: replace deprecated option with new option
Replace the deprecated '-usbdevice' option with '-device usb-xx' option.
This would fix runqemu boot error like below.

  '-usbdevice' is deprecated, please use '-device usb-...' instead

(From OE-Core rev: 2f1f3480d344f8521e01f456d2dcd6c4e989ec59)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:39 +01:00
Chen Qi
045e3f9283 qemu: backport patches to fix boot failure
Backport two patches to fix the following error when booting qemu.

  Failed to unlock byte 100

(From OE-Core rev: 91eee8b08cd52f49bb1c8f8c680607b3f3a52d24)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:39 +01:00
Joe Slater
ee195eb034 ruby: fix CVE-2017-922{6-9}
CVE-2017-9226 : check too big code point value for single byte
CVE-2017-9227 : access to invalid address by reg->dmin value
CVE-2017-9228 : invalid state(CCS_VALUE) in parse_char_class()
CVE-2017-9229 : access to invalid address by reg->dmax value

(From OE-Core rev: f15f01edbaa431829a50053d07ed6d6b333584c7)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:39 +01:00
Alexander Kanavin
342393587c dnf: fix "Unable to detect release version" warning
The release version was actually working correctly; it only makes
the warning work properly.

(From OE-Core rev: e7986a5493ccd222b82c2388ea8c3bb7004b48dd)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:38 +01:00
Jussi Kukkonen
a09aa675bb cve-check-tool: Fix progress bar patch for curl 7.55
CURL_FORMAT_OFF_T does not seem to exist anymore, use
CURL_FORMAT_CURL_OFF_T instead. This works with old and new curl.

(From OE-Core rev: 5548f9c87c6a10cda2baf6f198762380e55f6ae2)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-19 22:15:38 +01:00
Andreas Müller
782cdf14e3 mesa: update to 17.1.6
Optional installation of khrplatform.h was implemented upstream by a slightly
different approach -> 0001-mapi-Only-install-khrplatform.h-with-EGL-or-GLES.patch
can be removed.

(From OE-Core rev: 4473c9e846826bfb4f48cec9c6c7b1cad6666bb3)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Carlos Alberto Lopez Perez
e0679d21f4 webkitgtk: Add a recommends on shared-mime-info.
* without this package installed any WebKitGTK+ based browser
   will fail to correctly open html files (and other files)
   from disk (file:// URIs). It will open them as plain txt files.

(From OE-Core rev: b708cb53b46d9d82a7853bcd0f25ef6bc417bd10)

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Dengke Du
4e3878a808 mpg123: upgrade to 1.25.6
(From OE-Core rev: 03abde044a6c7cf4a54a9d074189f192b331d650)

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Markus Lehtonen
9682346400 oeqa: increase verbosity of dnf commands in dnf packagefeed test
Makes diagnosing failures easier.

[YOCTO #11209]

(From OE-Core rev: 1b58b409db081e739b786f51326f65b1818a5890)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Ooi Cinly
20aa482ec6 perl: Don't change /usr/include references in docs to sysroot paths
do_configure() will no longer convert references to
/usr/include into /path/to/recipes-sysroot/usr/include
for the file "Porting/Glossary".

[YOCTO #11243]

(From OE-Core rev: cb2dfe5627df2ff235b37622260484841f39af17)

Signed-off-by: Ooi Cinly <cinly.ooi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Ooi Cinly
a3c1bbc88d libtool: remove /absolute/path/to/host references
Removed all instances of -fdebug-prefix-map in LTCFLAGS
declaration because they contain references to host system
and are not needed.

/absolute/path/to/host/dd was replaced with 'dd' in
lt_truncate_bin declaration.

Please take note that the location of regex is important
for DEBUG_PREFIX_MAP. Removal of DEBUG_PREFIX_MAP has to be
done before other regex command modify its option value.

Both are modified because they affect binary reproducibility.

[YOCTO #11656]

(From OE-Core rev: 04db02138e363898e040e33557f1296e8a43c3fd)

Signed-off-by: Ooi Cinly <cinly.ooi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
sweeaun
d654f4934d valgrind: disable build for muslx32
Disable build for muslx32.X32 isn't supported by valgrind at this
moment.

(From OE-Core rev: a945141062ac3d0736558be428f60af405b53a94)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
sweeaun
178d5845c3 goarch: Disable build for muslx32
Disable build for muslx32.

(From OE-Core rev: 7f6e47b0d8aec9cb22db50ccb40ebb01677f01ea)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Huang Qiyu
73a43b3ecc openssl10: modified the define cryptodev
Use PACKAGECONFIG to add cryptodev.

(From OE-Core rev: dddf15804f69757278abe175543e74332a978139)

Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Khem Raj
a964a54ebf mesa: Fix build with llvmpipe enabled on musl
(From OE-Core rev: d8adf829f3fb58a41235f05c04ce700bf5d55ba7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Khem Raj
ad140e7788 rootfs-postcommands.bbclass: Filter out dangling symlinks in ssh_allow_empty_password()
In images built with pam in DISTRO_FEATURES, we end up with dangling symlinks
if su is not packaged into image

$ ls /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/rootfs/etc/pam.d/su-l -l
lrwxrwxrwx 1 kraj users 2 Aug  9 07:56 /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/rootfs/etc/pam.d/su-l -> su

This causes image do_rootfs to fail

| sed: can't read /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/rootfs/etc/pam.d/s
u-l: No such file or directory
| WARNING: /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/temp/run.ssh_allow_empty_
password.19238:1 exit 2 from 'sed -i 's/nullok_secure/nullok/' /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi
/core-image-minimal/1.0-r0/rootfs/etc/pam.d/*'

Therefore we need to filter out dangling symlinks before sed'ing
things out

(From OE-Core rev: b92105e5a085c8cd3c650579644922ed97163e73)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Dengke Du
163d2a34c7 cairo: Fix CVE-2017-9814
Backport patch from the following link to fix CVE-2017-9814:

    https://bugs.freedesktop.org/show_bug.cgi?id=101547

(From OE-Core rev: 4ff22f4bb10b83ea61218a01e12907a90edcd594)

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Jackie Huang
3577a8277e libsndfile1: Fix CVE-2017-8363
Backport the patch to fix CVE-2017-8363:

The flac_buffer_copy function in flac.c in libsndfile 1.0.28 allows
remote attackers to cause a denial of service (heap-based buffer
over-read and application crash) via a crafted audio file.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-8363

(From OE-Core rev: 9cc9956c5ed09f9016cb23bd763652e5ab55f3cd)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Jackie Huang
0bead40423 libsndfile1: Fix CVE-2017-8362
Backport the patch to fix CVE-2017-8362:

The flac_buffer_copy function in flac.c in libsndfile 1.0.28 allows
remote attackers to cause a denial of service (invalid read and
application crash) via a crafted audio file.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-8362

(From OE-Core rev: 0c8da3f6f85962196f2ad54fffd839239f5c2274)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:38 +01:00
Jackie Huang
768cd2beff libsndfile1: Fix CVE-2017-8361 and CVE-2017-8365
Backport the patch to fix two CVEs:

CVE-2017-8361:
The flac_buffer_copy function in flac.c in libsndfile 1.0.28 allows
remote attackers to cause a denial of service (buffer overflow and
application crash) or possibly have unspecified other impact via a
crafted audio file.

CVE-2017-8365:
The i2les_array function in pcm.c in libsndfile 1.0.28 allows remote
attackers to cause a denial of service (buffer over-read and application
crash) via a crafted audio file.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-8361
https://nvd.nist.gov/vuln/detail/CVE-2017-8365

(From OE-Core rev: d92877ade8fd4dd9b548c6b664bf4357a1f9428a)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Yi Zhao
0782f4fce2 wget: Security fix CVE-2017-6508
CVE-2017-6508: CRLF injection vulnerability in the url_parse function in
url.c in Wget through 1.19.1 allows remote attackers to inject arbitrary
HTTP headers via CRLF sequences in the host subcomponent of a URL.

External References:
https://nvd.nist.gov/vuln/detail/CVE-2017-6508

Patch from:
http://git.savannah.gnu.org/cgit/wget.git/commit/?id=4d729e322fae359a1aefaafec1144764a54e8ad4

(From OE-Core rev: 28404157e07a915d1445166df566c8838f2cce57)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Jackie Huang
583225d94a xserver-xorg: Fix CVE-2017-10971
Backport 3 patches to fix CVE-2017-10971:

In the X.Org X server before 2017-06-19, a user authenticated to an X
Session could crash or execute code in the context of the X Server by
exploiting a stack overflow in the endianness conversion of X Events.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-10971

(From OE-Core rev: 20428f660f2c046c63bbf63c4e4af95dac9f2b3d)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Mike Looijmans
88a82e7489 rootfs-postcommands.bbclass: Prevent linking testdata to itself
testdata and testdata_link may point to the same file, in particular
when IMAGE_LINK_NAME and IMAGE_NAME are equal.

Check if this is the case before creating a symlink that points to
itself and makes the next build fail.

(From OE-Core rev: b516394f9e7858062aa7b042aa4a1bdef9d3a941)

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Mike Looijmans
322985be23 qemuboot.bbclass: Prevent creating a link loop
When IMAGE_NAME and IMAGE_LINK_NAME are equal, do_write_qemuboot_conf will
create a symlink that links to itself.

Check if this is the case before creating the link.

(From OE-Core rev: f46652e77f467861dc68c3a8e54f27d08659222d)

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Andrej Valek
1f033e4442 copy_buildsystem: include layer tree during build structure creation
When buildsystem with layer structure is going to be copied, only the last
meta-XXX layer is taken.
For example, during ext_sdk bblayers creating:
layers/oe/meta \
layers/oe/meta-oe \
layers/oe/meta-networking \
layers/oe/meta-webserver \
...
It restructured meta-oe, meta-networking,... contents into meta-oe.
Recipes from meta-oe will be on the same level like meta-networking,
meta-webserver, ... .

It should take the whole meta path instead of the last one.
layers/oe/meta \
layers/oe/meta-oe/meta-oe \
layers/oe/meta-oe/meta-networking \
layers/oe/meta-oe/meta-webserver \
...
Now the directory structure is the same like during build creation.

(From OE-Core rev: 5a59a6997f41e606d088e3e86812de56f72f543b)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Leonardo Sandoval
0c733631d6 report-error: provide distro identifier string in case of uninative build
Besides providing the NATIVELSBSTRING, include distro info when creating
the (json) error report. This information provides better info than the
standard 'universal*' string for uninative builds.

[YOCTO #11824]

(From OE-Core rev: fdfbfc954a3e0ad79dc2bed9828f9f5dc40d506f)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Leonardo Sandoval
e461f32d68 sign_rpm: Allow pkg signing by chunks through RPM_GPG_SIGN_CHUNK
Commit d58b1d196 moved from chunk to serial signing, but neither of both approaches
allowed the user to select the chunks size. This patch allows the user to select
a chunk size through RPM_GPG_SIGN_CHUNK defaulting to BB_NUMBER_THREADS, considered
a good default. Indirectly, this change reduces the number of processes spawn
to number-of-packages/RPM_GPG_SIGN_CHUNK.

(From OE-Core rev: f7f78e73f1cd15f4233a231364b14438af758628)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Khem Raj
c0a7913bfe systemd-boot: Move adjacent to systemd
We always forget to upgrade it when systemd is upgraded, keeping it
next to systemd will be an easy reminder to upgrade this recipe along
with systemd

Define EFI_CC, so far it has been using detection mechanism which
worked with gcc but falls back to native gcc when using non-gcc compiler
as default system compiler e.g. clang

(From OE-Core rev: e70f843b4fb5ee27d46543165a89d56c2ec5ee2e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Hongxu Jia
6cf439d4c2 logrotate: fix systemd service not found while multilib
...
|ERROR: lib32-logrotate-3.12.3-r0 do_package: SYSTEMD_SERVICE_lib32-logrotate
value lib32-logrotate.service does not exist
|ERROR: lib32-logrotate-3.12.3-r0 do_package: Function failed:
systemd_populate_packages
...

The systemd sercie file should not be multilib expend.

(From OE-Core rev: e599c3d75a0e57a798ca360eb55d8661de355ec5)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Hongxu Jia
0390b0975e bash: 4.3.30 -> 4.4
1. Rebase patches:
- fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch
- test-output.patch

2. Drop backported patches:
- CVE-2016-9401.patch
- fix-run-intl.patch

3. Add ${PN}-loadable for loadable builtins which is new features in Bash 4.4

4. The 4.4 fixed CVE-2017-5932 and CVE-2016-0634
- https://security-tracker.debian.org/tracker/CVE-2017-5932
- https://security-tracker.debian.org/tracker/CVE-2016-0634

5. The 4.4 installed include header files, fix bash-dev confilicts
   with lib32-bash-dev
.....
$ bitbake lib32-core-image-sato-sdk
...
|Error: Transaction check error: file /usr/include/bash/config.h
conflicts between attempted installs
|of lib32-bash-dev-4.4-r0.x86 and bash-dev-4.4-r0.core2_64
......

(From OE-Core rev: 4097694b13cd5f0d68987551c3f9af80c87dc6ae)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 23:46:37 +01:00
Hongxu Jia
0bd2dd08e3 gpgme: remove local m4/python.m4
While multilib, the local m4/python.m4 incorrectly assigned
am_cv_python_pyexecdir and am_cv_python_pythondir which caused
the following error enabled:
...
ERROR: gpgme-1.9.0-r0 do_package: QA Issue: gpgme: Files/directories
were installed but not shipped in any package:
  /usr/lib/python3.5/site-packages/gpg-1.9.0-py3.5.egg-info
...

(From OE-Core rev: f5c7e236582028638a26a5855d5e7ba0b55bb8f0)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Hongxu Jia
26fbd1e3f6 gpgme: 1.8.0 -> 1.9.0
Rebase patches:
- pkgconfig.patch -> 0001
- python-lang-config.patch -> 0002
- 0001-Correctly-install-python-modules.patch -> 0003
- python-import.patch -> 0004
- 0001-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch -> 0005

(From OE-Core rev: b18a7adf8ce194b2dd3ce787228fb87c5ef3efde)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Saul Wold
63042b82b2 build-appliance-image: Don't use COREBASE/LICENSE for checksumming
This file lists the licenses that the OE-Core meta data falls under
but should not be used as a LIC_FILES_CHKSUM, use the MIT license file.

(From OE-Core rev: e12fa3ac08962accb6585e2aa1c486e7852d174d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Hongxu Jia
a86a2b5858 mc: unify curses initialization
Since ncurses upgraded to 6.0+20170715, it compile failed
...
| ../../../mc-4.8.19/lib/tty/tty-ncurses.c:199:13: error: dereferencing
pointer to incomplete type 'TERMINAL {aka struct term}'
|      cur_term->Nttyb.c_cc[VINTR] = CTRL ('g');   /* ^g */
|              ^~
...

Backport a patch from upstream fixed the issue.

(From OE-Core rev: fc89bfa89aa785871f7999f2835dbcea06e2823b)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Jussi Kukkonen
fa231eaf9b connman: Remove musl patch that's no longer needed
libc headers now have a backported patch that fixes this.

(From OE-Core rev: 5dc1700ec6ff15aefb8ca540e5b7d3e89a14945b)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Ming Liu
91d7311056 packagefeed-stability.bbclass: change another bb.plain to bb.note
In commit 255caaad:
[ packagefeed-stability.bbclass: change a bb.plain to bb.note ]

I changed a bb.plain to bb.note to get a cleaner console, but there is
still one more bb.plain left which I forgot to change.

(From OE-Core rev: ccb96849e010883cb1cb4d384f017d05eb6bbcee)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Wenzong Fan
3ff394411e sqlite3: upgrade to 3.2.0
* Uprev from 3.19.3 to 3.2.0 for fixing CVE-2017-10989:

The getNodeSize function in ext/rtree/rtree.c in SQLite through 3.19.3,
as used in GDAL and other products, mishandles undersized RTree blobs
in a crafted database, leading to a heap-based buffer over-read or
possibly unspecified other impact.

https://nvd.nist.gov/vuln/detail/CVE-2017-10989

* LIC_FILES_CHKSUM updated for below changes:

  -** 2001 September 15
  +** 2001-09-15

(From OE-Core rev: 95b802bfe74ac6a3f6dc05edb52c87ef90600f40)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Hongxu Jia
624801e0b7 ncurses: 6.0+20161126 -> 6.0+20170715
Rebase patches:
- tic-hang.patch -> 0001
- configure-reproducible.patch -> 0002

Drop fix-cflags-mangle.patch, which accepted by upstream
...
commit 1b74f120ab7be89011408a6ad0f1c748a314bae8
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Sun Feb 26 09:01:34 2017 +0100

    Import upstream patch 20170225

    20170225
        + fixes for CF_CC_ENV_FLAGS (report by Ross Burton).
...

(From OE-Core rev: a4ad0703e1209fee6cd89bf74088931785c4d8c7)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Hongxu Jia
80cecb6cc9 libgcrypt: 1.7.8 -> 1.8.0
Rebase patches:
- add-pkgconfig-support.patch -> 0001
- libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch -> 0002
- fix-ICE-failure-on-mips-with-option-O-and-g.patch -> 0003
- fix-undefined-reference-to-pthread.patch -> 0004

(From OE-Core rev: b90037da8754009ca7cf2ab996b46b3dae1eb204)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:27 +01:00
Hongxu Jia
70de26076f elfutils: 0.168 -> 0.170
The 0.170 Fixed CVE issues
- CVE-2017-7608
- CVE-2017-7612
- CVE-2017-7611
- CVE-2017-7610
- CVE-2016-10255
- CVE-2017-7613
- CVE-2017-7609
- CVE-2016-10254
- CVE-2017-7607

Rebase patches to 0.170
- dso-link-change.patch -> 0001
- Fix_elf_cvt_gunhash.patch -> 0002
- fixheadercheck.patch -> 0003
- 0001-remove-the-unneed-checking.patch -> 0004
- 0001-fix-a-stack-usage-warning.patch -> 0005
- aarch64_uio.patch -> 0006
- shadow.patch -> 0007
- 0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch -> 0008
- debian/mips_backend.diff -> debian/mips_backend.patch

Drop obsolete patches
- 0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch
  Upstream fixed it
  https://sourceware.org/git/?p=elfutils.git;a=commit;h=7114c513fbebcca8b76796b7f64b57447ba383e1

- Fix_one_GCC7_warning.patch
  It is a backported patch
  https://sourceware.org/git/?p=elfutils.git;a=commit;h=93c51144c3f664d4e9709da75a1d0fa00ea0fe95

- Drop debian patches, they modify test case.
  debian/testsuite-ignore-elflint.diff
  debian/kfreebsd_path.patch
  debian/hurd_path.patch
  debian/ignore_strmerge.diff

(From OE-Core rev: 4ca17f9275c81f27498b7ac07d9fe7e8193fdd71)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Hongxu Jia
a02826add0 dhcp: 4.3.5 -> 4.3.6
1. Rebase patches to 4.3.6
- define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch -> 0001
- dhcp-3.0.3-dhclient-dbus.patch -> 0002
- link-with-lcrypto.patch -> 0003
- fixsepbuild.patch -> 0004
- dhclient-script-drop-resolv.conf.dhclient.patch -> 0005
- 0001-site.h-enable-gentle-shutdown.patch -> 0006
- libxml2-configure-argument.patch -> 0007
- tweak-to-support-external-bind.patch -> 0008
- remove-dhclient-script-bash-dependency.patch -> 0009
- build-shared-libs.patch -> 0010
- Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch -> 0011

2. Drop search-for-libxml2.patch
   It is overrided by libxml2-configure-argument.patch

3. Rework dhclient-script-drop-resolv.conf.dhclient.patch and
Drop replace-ifconfig-route.patch.
vim client/scripts/linux
...
Script refresh in 2017. The aliasing code was too convoluted and needs
to go away. Migrated DHCPv4 script to ip command from iproute2 suite.
This is based on Debian script with some tweaks. ifconfig is no longer
used. Everything is done using ip tool from ip-route2.
...

(From OE-Core rev: 77878d2e6e8f36afa9a0fde8a6f0f955c84a5e5c)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Hongxu Jia
5552c856a7 apr-util: 1.5.4 -> 1.6.0
Drop backported openssl-1.1.patch

(From OE-Core rev: a67800e01b9b383d2f887a82de3075b2ef234648)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Vishal Bhoj
05bcd8ae84 cross-canadian.bbclass: add ilp32 support
Need to add ilp32 to known list of abi variants

(From OE-Core rev: 6c5e50d26cbb9172d7264e7a8fed3edf0c0e8414)

Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Chen Qi
3920d199ed package.bbclass: support persistent /var/log
Add a new file, fs-perms-persistent-log.txt, which treats /var/log
as a directory instead of a link.

Modify package.bbclass to use this file if VOLATILE_LOG_DIR is set to boolean
false value.

[YOCTO #6132]

(From OE-Core rev: 6b22e247bf91f112401cad822cd7fe0b5621ffe0)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Chen Qi
8c69b6ab85 initscripts: support persistent /var/log
Respect VOLATILE_VAR_LOG variable so that if it's set to any valid boolean
false value, we could have persistent /var/log on the final image.

[YOCTO #6132]

(From OE-Core rev: 50914c4a84e0fb6b9bf6bb1864a2d653218753ce)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Chen Qi
a2ec15f20c base-files: respect VOLATILE_LOG_DIR
Respect VOLATILE_LOG_DIR variable. In this way, if the user overrides
this variable to be any valid boolean false value, /var/log on the final
image would reside on persistent storage.

[YOCTO #6132]

(From OE-Core rev: fc19114ca409fc3178ae5cbb44db875b12eeedfc)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Chen Qi
6ba3e68ee8 bitbake.conf: add VOLATILE_LOG_DIR variable
The default value is "yes" which results in the /var/log being a link
pointing to /var/volatile/log which is on tmpfs.

Setting valid boolean false value ('no', 'n', 'false', 'f', '0') would make
/var/log to be a directory on persistent storage.

[YOCTO #6132]

(From OE-Core rev: 016bafce52f74462dc8f21a1c1b43ba2e6e59442)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Chen Qi
1f9c9a2884 shadow: fix CVE-2017-12424
Backport a patch to fix CVE-2017-12424.

In shadow before 4.5, the newusers tool could be made to manipulate
internal data structures in ways unintended by the authors.

Reference link: https://nvd.nist.gov/vuln/detail/CVE-2017-12424

CVE: CVE-2017-12424

(From OE-Core rev: 896495d4d2a9751e6e013a3498293b2443d7d809)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Kai Kang
aa4f7c8b14 nss: 3.30.2 -> 3.31.1
Upgrade nss from 3.30.2 to latest stable version 3.31.1.

* remove 0001-Fix-warnings-found-with-gcc7.patch which is not needed now

(From OE-Core rev: 86838f1c06002a62ded12a9a66d1eb82093c85a9)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Maxin B. John
3561875077 harfbuzz: upgrade to 1.4.8
1.4.7 -> 1.4.8

(From OE-Core rev: f6f6d138028669acdbcfcce47afb3e9807d8db33)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Maxin B. John
3b2cb68524 screen: upgrade to 4.6.1
Removed following patch as the parallel make issue was fixed upstream:
 * fix-parallel-make.patch

(From OE-Core rev: 76c9ba6b3f7c0aecb00b7d9c0a1aace3f80d8b48)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Joe Slater
391127b002 ruby: fix CVE-2017-9224
Use DATA_ENSURE(1) before access.

(From OE-Core rev: 9db907a0bd331c47c4882b82f9f1d2a7ef1f6d1f)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Fabio Berton
f14f918d9d python3-native: Add python3-misc-native to RPROVIDES
OE-core commit 800753069f667cd1664d70b3779150c467e3b3fe remove
RPROVIDES list to get runtime dependences from manifest file.
python3-misc is added in python3 recipe, we need to add
native runtime to use python3-misc with native recipes.

(From OE-Core rev: 31fd20811f6d11e7ed6ac84caf776ac46cd6fb6f)

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Khem Raj
ba1a7556b9 mkelfimage: Make -fno-stack-protector effective
mkelfimage uses different flags to compile as freestanding binary
it does not pour CFLAGS into them during configure as a result
-fno-stack-protector was never used. Which failed to build with
compilers configured to build with ssp by default. It worked with
gcc since we do not configure our toolchain to default to ssp

Fixes errors e.g.
| objdir/linux-i386/convert_params.o: In function `convert_params':
| linux-i386/convert_params.c:(.text+0x9f4): undefined reference to `__stack_chk_fail'
| objdir/linux-i386/convert_params.o: In function `compute_checksum':
| linux-i386/convert_params.c:(.text+0xa71): undefined reference to `__stack_chk_fail'
| objdir/linux-i386/convert_params.o: In function `printf':
| linux-i386/convert_params.c:(.text+0xcc7): undefined reference to `__stack_chk_fail'
| make: *** [linux-i386/Makefile:24: objdir/linux-i386/convert] Error 1

(From OE-Core rev: f6ed82482838e34202721be8f40ca1cc340c325e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Mark Hatle
05a6076656 rpm: Disable perl dependency generation
When rpmdeps files a perl script, it attempts to determine what it provides
and what it requires.  Often the requires are incorrect, within the context
of Wind River Linux.  This results in an error that DNF is unable to install
a package due to one or more unresolved dependencies.

In RPM5 we had disabled this behavior, the alternative is to require that all
perl scripts be 'complete', in that they only require things they absolutely
need and that OE provides.  If we ever enforce that, this commit can be
reverted.  Until they fall back to prior behavior (which also matches ipkg
and deb style packages.)

(From OE-Core rev: 99376f602c997fec96dbb28ddbe3fa5f68fde2c3)

(From OE-Core rev: 586875cea5769fea7d17bae2677eab72e4fc7e31)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Peter Kjellerstedt
1b5d1b36bb package.bbclass: Restore functionality to detect RPM dependencies
During the transition to dnf and rpm4, the functionality to
automatically make RPM determine dependencies was lost.

Before the transition, an OE specific tool called rpmdeps-oecore had
been added to the rpm suit. It was based on the rpmdeps tool that is
part of rpm. For each file specified on its command line, it would
output the provides and requires that RPM could determine.

During the transition to rpm4, rpmdeps-oecore was replaced with the
standard rpmdeps. However, what no one noticed was that unless rpmdeps
is given options, e.g., -P or -R, to tell it what it should output, it
will not output anything. Thus, it would do all the work to determine
the requirements, but would keep silent about it. And since no output
from rpmdeps is expected unless there are requirements, there were no
warnings indicating that everything was not working as expected.

Porting the old rpmdeps-oecore to work with rpm4 is not really
possible since it relied on being able to access internals of RPM that
are no longer available. However, it turned out that rpmdeps had a
debug option, --rpmfcdebug, that would output exactly the information
that we need, albeit in a different format and to stderr. To make this
usable, rpmdeps has now received a new option, --alldeps, which sends
the information we need to stdout.

(From OE-Core rev: 958501b3d9201aaabb81ec644c6049e0c9b737e7)

(From OE-Core rev: bf017930036f19b3d6df8e5b50d9979ee7045c5c)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Mark Hatle
8c01d5ccb8 ltp: Skip the filedependency scan
Since LTP includes a set of test cases, we need to skip file dependency
generation, as there will be dependencies that can not be satisfied.  In this
case a csh and ksh dependency come from two tests.

The alternative would be to depend on csh/ksh (a bad idea as they're not
available in oe-core) or remove the tests (but this eliminates the tests if
someone DOES have csh/ksh in their configurations.)

(From OE-Core rev: 8c4dcdfa9d5a37acb6f492b1cf0e40a403e5fbe9)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Richard Purdie
b78513f71f openssl: Add missing bash/python rdepends for ptest
ERROR: openssl-1.1.0f-r0 do_package_qa: QA Issue: /usr/lib/openssl/ptest/fuzz/helper.py contained in package openssl-ptest requires /usr/bin/python, but no providers found in RDEPENDS_openssl-ptest? [file-rdeps]
ERROR: openssl-1.1.0f-r0 do_package_qa: QA Issue: /usr/lib/openssl/ptest/test/certs/mkcert.sh contained in package openssl-ptest requires /bin/bash, but no providers found in RDEPENDS_openssl-ptest? [file-rdeps]

(From OE-Core rev: 7e70d0673df20669edd18b79ae065d8c2f655b8a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Richard Purdie
2b312d4973 bind: Use correct python interpreter path
The scripts currently reference "python33", fix this so they reference
python3. The move the python3 likely broke these.

(From OE-Core rev: 1a734f037da37d14f780970a9532d1e2e3683bf8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-18 10:40:26 +01:00
Juro Bystricky
55bf886039 poky: Add nios2 to list of qemu targets
(From meta-yocto rev: 06ae3f42c40fef98685d449711b91bb697d6b386)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:35 +01:00
Ming Liu
45d7f5485a image.bbclass: drop initramfs bundle related code
The original purpose of this code snippet was to repackage initramfs
bundled kernel images before do_image_complete, to be able to be
included by rootfs, but it's not going to achieve that since the
initramfs bundled kernel images are not even installed to ${D}/boot
after commit a49569e3a7534779bbe3f01a0647fd076c95798d:
[ kernel.bbclass: do not copy bundled initramfs to /boot ]

So there is not a initramfs bundled kernel package at all, we should
drop the code, because it is leading kernel do_initramfs_bundle
unnecessarily rerun and it's very time consuming and hence is impacting
the performance a lot.

(From OE-Core rev: eca501aeb4f2cc9255fabab14c68f6910367aaf9)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Juro Bystricky
7f45ea5083 qemu: upgrade to 2.10-rc2
In order to support Nios2 emulation by QEMU, we need
at least QEMU version 2.9.

(From OE-Core rev: f2d725d9268563f7bbcac770a34aceacb56cb2aa)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Juro Bystricky
ac2b82fedc gmp: improve reproducibility
Remove references to the host build system from generated/packaged
header file gmp.h. The file ends up in two different packages (libgmp-dev,
libgmp-dbg). Rather then modifying the file twice in two different
destinations after the installation, we modify the file gmp.h only once,
but before the installation.

[YOCTO #11922]

(From OE-Core rev: 693b42115e2f61abc9ca6096445dc494648cacb6)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Khem Raj
7d66c9cbf1 cairo: Add pkgconfig for opengl support
(From OE-Core rev: b952a80b6e520588454924ab0534ba7e370eaaca)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Khem Raj
9849022eb8 musl: Update to latest master
visibility is no more auto but disabled by default
we do not require to disable it explicitly.

* fix build failure for sh4a due to missing colon in asm statement
* trap UB from attempts to join a detached thread
* ppc64: fix setjmp/longjmp handling of TOC pointer
* qsort: add a short comment about the algorithm
* disable global visibility override hack (vis.h) by default
* add _NL_LOCALE_NAME extension to nl_langinfo

(From OE-Core rev: 82c0f16dbdd1a44438e8536a598277efed909b3c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Alexander Kanavin
867b88ae53 gstreamer1.0-plugins-bad: do not provide a fallback to openssl 1.0
This does not work as intended: enabling either of the alternatives
causes the other alternative to append a --disable-hls flag to
configure. Anyone needing openssl 1.0 should set it up manually
via EXTRA_OECONF_append or similar.

(From OE-Core rev: d2562cfe4517d85328e961f968db2c7cd3c6c6f2)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Maxin B. John
afb2ba67fe gst-player: remove workaround which disable visualizations
As we upgrade to libva 1.8.3, we can remove the workaround patch
which disables visualizations in gst-player:
        1. 0001-gtk-play-Disable-visualizations.patch

Also remove the upstreamed patches:
        1. filechooser.patch
        2. Fix-pause-play.patch
        3. Add-error-signal-emission-for-missing-plugins.patch

Fixes [YOCTO #11437]

(From OE-Core rev: 50f1902cb44724aa4b030e4e42b115231217acc9)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Maxin B. John
14af29ed1d libva: upgrade to 1.8.3
1.7.3 -> 1.8.3

Remove upstreamed patch:
        0001-wayland-Don-t-commit-and-ship-generated-files.patch

Replace following patch by setting ac_cv_prog in EXTRA_OECONF:
        0001-configure.ac-Use-wayland-scanner-in-PATH.patch

The dummy driver was removed in 1.8.3 release.

(From OE-Core rev: bcb77ab7f57a99284953a456399b90b6ed42e77d)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Maxin B. John
915715e4d0 libva-utils: add recipe
Utilities and tests in the libva was spun-off as libva-utils
during 1.8.0 release.

libva-utils is a collection of utilities and examples to exercise VA-API
in accordance with the libva project

(From OE-Core rev: ab7f6ba2bab04bdfaa76a1de83806dbadc82fefa)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Fabio Berton
1d809c1a30 libarchive: Remove xz packageconfig --with-lzmadec option
--with-lzmadec option was removed in libarchive commit:
30e1b7efd472e0439bea14df6a2d19cd8b5ac15e

See Github PR: https://github.com/libarchive/libarchive/pull/806

(From OE-Core rev: e1dda927d3734c0d272cfc7d99167498ca9d8f6d)

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Aníbal Limón
61135bcde7 liburi-perl: Upgrade to 1.72
(From OE-Core rev: a63c2e450da2627a831483ccaded4ef832848f5d)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:15 +01:00
Khem Raj
c89ed0fd75 llvm: Swith to ARM ISA on armv5 and armv4t
When Thumb1 is used as default ISA, there are linker
issues, therefore always use ARM ISA

Fixes
relocation truncated to fit: R_ARM_THM_CALL against symbol `__gnu_thumb1_case_uhi' defined in .text section

(From OE-Core rev: a0c9d19b46ccefbb90eea5965e11ea21d13242b4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Peter Kjellerstedt
fed5d9c8f0 package_rpm.bbclass: Filter out unwanted file deps for nativesdk packages
Filter out any file dependencies on absolute paths and any
dependencies on Perl modules for nativesdk packages. It is assumed
that they will be provided by the native host if needed, and they mess
up the dependency handling if they are present.

(From OE-Core rev: ce55e6c6d8b654b5fb21dec8180b471bfd33601a)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Peter Kjellerstedt
0db0e1851c texinfo: Avoid a problem with a dependency on perl(Locale::gettext_xs)
We do not build the Locale::gettext_xs Perl module and the code will
test for it and happily use Locale::gettext_pp instead if it is not
found. However, this still causes a file dependency on
perl(Locale::gettext_xs) to be generated, which must be satisfied by
adding an explicit provide for it.

(From OE-Core rev: c1e16ac6aea0ec15b35d227814bbf137ac8de6c2)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Peter Kjellerstedt
db0980203b git: Do not install git cvsserver and git svn by default
These git commands require Perl modules that do not exist in OE-Core.
Add PACKAGECONFIGs to enable them. Be aware though that if you enable
them you must also provide the missing dependencies.

(From OE-Core rev: d7909007b2a912ae5adf01edfabaa8b8646369cd)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Peter Kjellerstedt
a38ca789cf rpm: Add dependencies on bash, perl and python3-core
Also modify a Python script (pythondistdeps.py) to use Python 3.

(From OE-Core rev: b2906dbebfd547a630a4eafdcbaa1ceefa5e257c)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Leonardo Sandoval
e25d7a9b9c gpg_sign: perform rpm signing serially
gpg signing in file batches (which was default to 100) is a memory expensive
computation, causing trouble in some host machines (even on production AB
as seen on the bugzilla ID). Also, in terms of performance, there is no real
gain when rpm signing is done in batches. Considering the latter issues, perform the
rpm signing serially.

Log showing errors observed recently at AB workers:

    | gpg: signing failed: Cannot allocate memory
    | gpg: signing failed: Cannot allocate memory
    | error: gpg exec failed (2)
    | /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/core2-64-poky-linux/base-passwd/3.5.29-r0/deploy-rpms/core2_64/base-passwd-dev-3.5.29-r0.core2_64.rpm:

[YOCTO #11914]

(From OE-Core rev: d58b1d196f87128892b7b624bfb725afe01581f1)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Leonardo Sandoval
765dec9501 packagegroup-self-hosted: include missing (pod2man scp ssh) RPEDENDS packages
Otherwise, the following bitbake error is observed

    root@qemux86-64:~/openembedded-core/build# bitbake -e
    NOTE: Starting bitbake server...
    ERROR: Unable to start bitbake server
    ERROR: Last 10 lines of server log /home/root/openembedded-core/build/bitbake-cookerdaemon.log:
      File "/home/root/openembedded-core/bitbake/lib/bb/cooker.py", line 197, in __init__
        self.initConfigurationData()
      File "/home/root/openembedded-core/bitbake/lib/bb/cooker.py", line 348, in initConfigurationData
        self.databuilder.parseBaseConfiguration()
      File "/home/root/openembedded-core/bitbake/lib/bb/cookerdata.py", line 323, in parseBaseConfiguration
        raise bb.BBHandledException
    bb.BBHandledException
    NOTE: Starting bitbake server...
    ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
      pod2man scp ssh

(From OE-Core rev: 2ece64bf8cb8841e2e1db87d6c426f3f1637e8a7)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jason Wessel
086ef2e595 systemd: Fix rootfs transaction error when PACKAGECONFIG has polkit
The systemd 234 added some files to the polkit directory and the
directory the files live in must be owned by the polkitd user, else
you will receive the following error when the rootfs is being
assembled:

Error: Transaction check error:
  file /usr/share/polkit-1/rules.d conflicts between attempted installs of polkit-0.113-r0.15.core2_64 and systemd-1:234-r0.0.core2_64

The fix similar to other packages such as libvirt where the user must
exist and the directory must be created with the proper attributes.

(From OE-Core rev: e2e36bb83355208aaf5a399107b4a99e62a708d3)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jason Wessel
5c4bb85e07 openssl10: Fix conflict between openssl and openssl10 man pages.
The package resolver failes to assemble images because some of the man
pages in openssl10 conflict with the openssl package.  In the case
where you want openssl, openssh and the documentation installed in the
same system you will see the failure.

The work around is to rename all the openssl10 man pages and symlinks
to have a prefix of openssl10-.

(From OE-Core rev: bb837cae92472b294ac886b121b2249e4314439f)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jonathan Liu
e6d78cf73a syslinux: Update HOMEPAGE
(From OE-Core rev: acf5982fdb6300d88f9e1c6302fd4d38ac46b8de)

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Paul Eggleton
14f3d4e58a recipetool: create: fix incorrect URL variable usage
We have two variables here, srcuri and fetchuri. srcuri is what
eventually ends up in the recipe, whereas fetchuri is what we actually
pass to the fetcher when we fetch the source within recipetool -
sometimes these need to be different particularly for an upcoming patch
to handle automatically setting the branch parameter. In OE-Core
revision 9a47a6690052ef943c0d4760630ee630fb012153 I erroneously changed
the call to scriptutils.fetch_url() to pass srcuri instead of fetchuri -
this likely didn't have any ill effect, but change it back to passing
fetchuri to match the original intent.

(From OE-Core rev: b66b73bcf5ee7e4488970576fdc31dfa25b35f5e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jose Alarcon
608c0ddf0d libx11: Add patch to fix hanging issue in _XReply
Assume event queue is empty if another thread is blocking waiting for event.

If one thread was blocking waiting for an event and another thread sent a
reply to the X server, both threads got blocked until an event was
received.

(From OE-Core rev: 26842b2e4fc9c1d243ce412e845a5444cb03c4b9)

Signed-off-by: Jose Alarcon <jose.alarcon@ge.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Yue Tao
f36bdb503f libtasn1: CVE-2017-10790
The _asn1_check_identifier function in GNU Libtasn1 through 4.12 causes
a NULL pointer dereference and crash when reading crafted input that
triggers assignment of a NULL value within an asn1_node structure. It
may lead to a remote denial of service attack.

References:
https://nvd.nist.gov/vuln/detail/CVE-2017-10790
http://git.savannah.gnu.org/gitweb/?p=libtasn1.git;a=commit;
h=d8d805e1f2e6799bb2dff4871a8598dc83088a39

(From OE-Core rev: 6176151625c971de031e14c97601ffd75a29772f)

Signed-off-by: Yue Tao <Yue.Tao@windriver.com>
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Huang Qiyu
4776599ad2 nspr: 4.14 -> 4.16
Upgrade nspr from 4.14 to 4.16

(From OE-Core rev: bfc148a40fd5b9936e63e9af901b5c8aaf7e8e5b)

Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Yi Zhao
24baa5c9da iproute2: add tipc support
The tipcutils 2.2 in meta-oe removed the tipc-config tool and
recommended to use the new configuration tool named "tipc" in iproute2
package for configuring the tipc, which utilizes the new tipc netlink
kernel API.

Add tipc support and split it out into its own package.

(From OE-Core rev: 944ef0de241de77429ab0e5cb1dd4a7f355cf3fd)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Khem Raj
c6b7d0907a gcc: Upgrade to 7.2.0 release
Drop upstreamed patches

(From OE-Core rev: dbf718d1baef64ee01431c4134b492cf94bcb4b8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jussi Kukkonen
91572dc587 gdk-pixbuf: Upgrade 2.36.6 -> 2.36.8
Smallish releases with bug fixes and minor improvements.

shared-mime-info is now always used for image type sniffing.
The dependency does not seem to currently be a build-time dependency
but configure.ac does check for it: I took the easy route and just
added shared-mime-info to DEPENDS as well.

(From OE-Core rev: ebba8c2999fc6cf94eca988f8d942acd9f0137ba)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jussi Kukkonen
9b63e8247c glib-2.0: Upgrade 2.52.2 -> 2.52.3
Small release with bug fixes and some flatpak portal related
improvements.

(From OE-Core rev: 0833691ff1d05b17a0c90c90800d7cdaeb871479)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jussi Kukkonen
765c929bec fontconfig: Upgrade 2.12.1 -> 2.12.4
Bug fix upgrades.
* Remove one upstreamed patch.
* Update a license location.
* Add gperf-native as dependency as a hash function header is no
  longer shipped and must be generated.
* Add workaround for a related build issue (reported upstream)

(From OE-Core rev: a9762bf5d28d578b9fbcc94c3bdd4866e66fdf97)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:14 +01:00
Jussi Kukkonen
d59bda3779 cairo: Upgrade 1.14.8 -> 1.14.10
Small bug fix update.

(From OE-Core rev: e7acc11b8f932c890157b91b0628c60a1ad69793)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-17 00:21:13 +01:00
Jussi Kukkonen
6016ec177a poky.conf: Enable vulkan by default
Things to note:
* This ends up enabling dri3 in mesa
* It does not completely enable dri3 in xorg with xf86-video-intel
  because that requires a run time configuration (xorg.conf)

So vulkan in poky with xf86-video-intel still requires a xorg.conf
snippet to enable dri3. Otherwise (weston or X with other drivers)
it just works.

(From meta-yocto rev: f55e894b7fb9fa6974e8048032a8373073738f9e)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:04:39 +01:00
Richard Purdie
1bfa9ca6c6 bitbake: process: Increase server startup timeout
We're seeing the server fail to start within 8s on heavily loaded
autobuilders so increase this timeout to 30s which should be more
than enough time.

(Bitbake rev: 8d4c120ec46d6d7a54947c64d33e18cb60b60505)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:04:38 +01:00
Richard Purdie
43b392536d bitbake: process: Improve client disconnects
There have been cases where the server could loop indefinitely and incorrectly
handle client disconnects. In the EOFError case, ensure a full disconnect
happens in the alternative disconnect path to avoid this.

(Bitbake rev: 5e267f14bb0155889615f567a920af4a37eb3c6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:04:38 +01:00
Markus Lehtonen
188feb233a dnf: expand dnf selftest to test signed package feeds
[YOCTO #11209]

(From OE-Core rev: 4d65421f381fc69397d7c61ba76488775e83e043)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:16 +01:00
Markus Lehtonen
14fc08e3b0 oeqa: fix temp file handling in dnf package feed test
Prevent stale temp files and a possible (if unlikely) race in tempfile
usage.

(From OE-Core rev: 1b8ac555ee1443be5cd14614cc6b722960d228b8)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Markus Lehtonen
05361f9a4f oeqa: fix dnf tests
Rename one dnf runtime test that it will recognized as a python module
and thus also found by the oe test loader. Also, fix value of
TEST_SUITES in dnf selftest so that all test dependencies are satisfied
and the runtime test may be successfully run from there.

(From OE-Core rev: ee3be65aa1348798d385ead9b80c6a6ada21d6b0)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Markus Lehtonen
efcecc318b package_manager.py: enable dnf's repo_gpgcheck if feed signing is enabled
If package feed signing is enabled enable repo gpg signature check for
rpm repositories added via PACKAGE_FEED_URIS. This has the implication
that all repositories added via this mechanism must be signed with the
same key.

[YOCTO #11209]

(From OE-Core rev: f7716f1de0791dfe778bb70f1769a7e1e83c7a54)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Markus Lehtonen
bc10e6b429 sign_package_feed.bbclass: install signing key into rootfs
If package-management is enabled.

[YOCTO #11209]

(From OE-Core rev: 4f89a5629f876a833c0178d1ec687448d3ed8e71)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Markus Lehtonen
5e9468b595 signing-keys: delete unused tasks
In particular, do_unpack needs to be deleted as it was causing missing
subpackages. Do_unpack cleans the builddir and if it was run after
do_get_public_keys it cleaned up all keys causing no packages to be
built.

(From OE-Core rev: 8fbe0d60322f1b02c1e9de1c6ab19648db97dbd9)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Markus Lehtonen
2898cce3de dnf: rrecommend gnupg
This makes it possible to enable 'repo_gpgcheck' in dnf.conf. That is, do
GPG signature check on repository metadata. Without gnupg dnf fails with
"error: Invalid crypto engine."

[YOCTO #11209]

(From OE-Core rev: 8a7154cfe150840b451bc56951f0fa31cb8d6fa0)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Markus Lehtonen
d27f45a692 lib/oe/package_manager: re-implement rpm feed signing
[YOCTO #11209]

(From OE-Core rev: 7a33426561ddc72296e33c5e7b8ca38763a7ab07)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Richard Purdie
08128ecf6b util-linux-native: Avoid use of getrandom
getrandom() is only available in glibc 2.25+ and uninative may relocate binaries
onto systems that don't have this function. For now, force the code to the older
codepath until we can come up with a better solution for this kind of issue.

(From OE-Core rev: 95e31e4b15573eb1cbeb4ff1d0903c5141b84d54)

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

(From OE-Core rev: 92bda0024d85ae78345665cc2f9646c9881ed61b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Ming Liu
23d162838b packagefeed-stability.bbclass: change a bb.plain to bb.note
I could see dozens of "Copying packages for recipe..." messages on the
console during a image build, this is sort of annoying. I would like
them to be dumped into the task log instead, so I can get a cleaner
console and would not miss real important messages.

(From OE-Core rev: 255caaad3574afec6ff5909c770eaee3f74a8155)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Richard Purdie
d2697f92e9 selftest/tinfoil: Filter LogRecords in test_event_wait
As the code stands today, an event mask does not mask LogRecord events
since the log levels are controlled separately. We therefore need to
accept (and ignore) LogRecord events in this test to avoid errors.

(From OE-Core rev: efe1f2c8ad09af3c5ee9c778601c7463c532b012)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Richard Purdie
27ea26e3d6 expat: Don't use getrandom() in the -native case
getrandom() is only available in glibc 2.25+ and uninative may relocate
binaries onto systems that don't have this function. For now, force
the code to the older codepath until we can come up with a better solution
for this kind of issue.

(From OE-Core rev: da9ac8092497c3f2c246d3534f47e42cb2d9e4e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Richard Purdie
3ea11466b5 site/ix86-common: Drop ac_cv_sizeof_ino_t as it can be incorrect with large file support
Depending on whether large file support is enabled, the size of ino_t can
be 4 or 8 on 32 bit x86. Drop the value from the site cache and allow the
system to vary it depending on configuration. Very few other arches actually set
this so its likely obsolete and doesn't need to be hardcoded anymore.

Also drop the 64 bit and x32 variants since autodetection of this value appears
to work fine and this avoids any confusion or sizing errors depending on large
file support.

(From OE-Core rev: 31ae16003cac6c8cf587c98d0c58e9f21690cb40)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Juro Bystricky
22463d2256 image.bbclass: support binary reproducibility
Added a new task "reproducible_final_image_task".
If binary reproducibility is desired ($BUILD_REPRODUCIBLE_BINARIES" = "1"),
then recursivley modify mtimes of all files to a reproducible vale.
The value is obtained via REPRODUCIBLE_TIMESTAMP_ROOTFS.
This task is executed as the very last step in image creation, once all
the files in the image have been finalized.

[YOCTO#11176]

(From OE-Core rev: df8df5f907736c3e5b7f15ea11898a1d49726ca5)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Juro Bystricky
55e9485735 kernel.bbclass: improve reproducibility
Several tweaks to improve reproducibility:

1. If BUILD_REPRODUCIBLE_BINARIES == 1, set KBUILD_BUILD_TIMESTAMP
to a reproducible value. This is either a non-zero SOURCE_DATE_EPOCH, or the
value obtained from top entry of GIT repo, or (if there is no GIT repo)
fallback to REPRODUCIBLE_TIMESTAMP_ROOTFS as the last resort.
Also export KCONFIG_NOTIMESTAMP=1.

2. When compressing vmlinux.gz, use gzip "-n" option

3. Kernel and kernel modules contain hard coded paths referencing the host
build system. This is usually because the source code contains __FILE__
at some place. This prevents binary reproducibility. However, some compilers
allow remapping of the __FILE__ value. If we detect the compiler is capable
of doing this, we replace the source path $(S) part of __FILE__ by a string "/kernel-source".
For example:

​/data/master/build/tmp/work-shared/qemux86/kernel-source/drivers/media/v4l2-core/videobuf2-core.​c

will be replaced by a reproducible value:

/kernel-source/drivers/media/v4l2-core/videobuf2-core.c.

(From OE-Core rev: 012a70da7ae0617740cd0cf807d01c3cd912c823)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Juro Bystricky
f3da1613c4 image-prelink.bbclass: support binary reproducibility
Conditionally support binary reproducibility in built images.
If BUILD_REPRODUCIBLE_BINARIES = 1 then:

1. Do not randomize library addresses
2. Set/export PRELINK_TIMESTAMP to a reproducible value.
   If REPRODUCIBLE_TIMESTAMP_ROOTFS is specified, then the value will
   be used. Otherwise the timestamp will be derived from the top git commit.

(From OE-Core rev: 40ce3db222f8557a01d041f8115d531cc90a54e8)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Juro Bystricky
01d82ea619 busybox.inc: improve reproducibility
For reproducible builds do not generate build timestamp as part of
the version string.

Remove host tools references from .config file.
With this patch all eight busybox packages are built as
binary reproducible.

(From OE-Core rev: fad94cdb02be86b463e691ca2598b393e7875919)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Juro Bystricky
6fd0e23dbd python3: improve reproducibility
The compiled .pyc files contain time stamp corresponding to the compile time.
This prevents binary reproducibility. This patch allows to achieve binary
reproducibility by overriding the build time stamp by the value
exported via SOURCE_DATE_EPOCH.

Patch by Bernhard M. Wiedemann.

[YOCTO#11241]

(From OE-Core rev: 2175aec10a764bfc925a3fb447547982d0ae662f)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Gan, Yau Wai
591db9fbd3 u-boot: update nios2 device tree for 10m50 board
In order for u-boot to work on Nios II architecture,
the device tree file requires adding pre-relocation
flag to the CPU node.

Patch is tested on 10m50 board. Pass booting up
Linux.

[YOCTO #11628]

(From OE-Core rev: 1e301a9f959fd3816d96cfdb6f8530898cefafce)

Signed-off-by: Gan, Yau Wai <yau.wai.gan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Juro Bystricky
82673ee078 e2fsprogs-doc: binary reproducible
When compressing by gzip, do not save the original file name and time stamp.

[YOCTO #11916]

(From OE-Core rev: c32d526a056adb8ed1eb8beb9d495bfd01af2342)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Jose Lamego
d3982592e1 python3-docutils: update to 0.14
python3-docutils recipe must be upgraded to latest stable release.

LIC_FILES_CHKSUM changed due to a typo fix from previous version,
but license type and information remained the same.

This change was tested on qemu with core-image-minimal.

(From OE-Core rev: f99247335485e15c820991e3ea20b766364111fc)

Signed-off-by: Jose Lamego <jose.a.lamego@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:15 +01:00
Jose Lamego
b13df74256 python*-setuptools: update to 36.2.7
Both python-setuptools and python3-setuptools must be updated
to latest stable release.

These changes were tested on qemu with core-image-minimal

(From OE-Core rev: 147d9260eb79edfdf7a91fb8bc3d915f141dc685)

Signed-off-by: Jose Lamego <jose.a.lamego@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Chen Qi
e31ba8f122 sysstat: fix creating configuration file for /var/log/sa
Fix to create configuration file related to /var/log/sa for sysvinit
and systemd systems respectively.

(From OE-Core rev: 652e515cbdf0f6314b63ec52b9fcac42299c3d60)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Joshua Watt
3ca6085729 externalsrc: Handle .git not being a directory
Use git rev-parse to determine the location of the .git directory, in
case it is not an immediate child of EXTERNALSRC (e.g. when using
submodules). In the event git can't resolve the .git directory, fall
back to the non-git method for hashing.

(From OE-Core rev: 95e1341b49f7184d280a03f64f131a4468a06867)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Khem Raj
9dcc9f116e expat: Upgrade to 2.2.3
(From OE-Core rev: d404d5574b0c270656fda4dc051babe82e8828a9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Dengke Du
b3ca36e7d1 ltp: upgrade to upstream latest commit on 20170804
1. Drop 4 patches because the upstream already contains them:

    0001-dirtyc0w-Include-stdint.h.patch
    0006-fix-PATH_MAX-undeclared-when-building-with-musl.patch
    0037-faccessat-and-fchmodat-Fix-build-warnings.patch
    0038-syscalls-add_key02-update-to-test-fix-for-nonempty-N.patch

2. Drop the do_compile_prepend function, because the upstream already fix
   the parallel make race, we can check it here:

    3f385652ef

3. Fix PAGE_SIZE redefinition and O_CREAT undeclear build failures when using musl

4. Fix runtime failed case file01

(From OE-Core rev: 46feafdc13b8c3c4b03d44a4a95a87d4ee25300c)

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Jussi Kukkonen
54cdf84d42 mesa: Fix build with vulkan on non-x86
The intel vulkan driver requires libdrm-intel: Only enable it when
building for x86 or x86-64 similar to DRI drivers.

Building on non-x86* with vulkan leads to "--with-vulkan-drivers= ":
this is interpreted correctly by the build system.

(From OE-Core rev: 8e50f002823772a989f0f39b0ecb8a84517c94f5)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Stefan Agner
a3ae69755b image.bbclass: delete DATE variable too
When creating a custom image which uses the DATE variable the basehash
seems to change every day and lead to errors such as:
ERROR: console-tdx-image-2.7.6-r0 do_image_customimg: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:set_image_size(d)
...

Add DATE to the variables which should not get expanded early and to the
vardepsexclude list for the image task.

(From OE-Core rev: 4af13a4855c74cea9cf6c168fd73165d7094bf93)

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Max Krummenacher
24a4b7114b run-postinsts: do not reload daemon configuration
In case a systemd service disables itself while init is still in its
boot sequence the reloading of the service files can be problematic.
In that case: It seems that systemd looses the state of .device units,
and some services depend on such units (namely serial consoles such as
serial-getty@ttymxc0.service). As a result no getty is spawned on the
affected serial tty.
After a power-cycle the second boot (which does not disable services)
succeeds.

The following sequence shows this problem:

| Jan 09 16:36:28 apalis-t30 systemctl[162]: Removed /etc/systemd/system/sysinit.target.wants/run-postinsts.service.
| Jan 09 16:36:28 apalis-t30 systemd[1]: Reloading.
|    ...
|    And then the failing one:
| Feb 22 15:33:15 apalis-t30 systemd[1]: dev-ttyS0.device: Job dev-ttyS0.device/start timed out.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Timed out waiting for device dev-ttyS0.device.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Dependency failed for Serial Getty on ttyS0.
| Feb 22 15:33:15 apalis-t30 systemd[1]: serial-getty@ttyS0.service: Job serial-getty@ttyS0.service/start failed with result 'dependency'.
| Feb 22 15:33:15 apalis-t30 systemd[1]: dev-ttyS0.device: Job dev-ttyS0.device/start failed with result 'timeout'.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Reached target Login Prompts.

(the time has been updated between this two events, but that does not
influence the issue)

Using --no-reload in the service file avoids the "Reloading." message
above and seems to not cause such issues anymore.

Reported-by: Stefan Agner <stefan.agner@toradex.com>
(From OE-Core rev: 23b359b6e26d0b17037bf955bd15a16a3fd9ab8f)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 4a425d05bac5dcba023b67aa3d726f7e7869404f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Max Krummenacher
fd266b1b66 opkg-configure: do not reload daemon configuration
In case a systemd service disables itself while init is still in its
boot sequence the reloading of the service files can be problematic.
In that case: It seems that systemd looses the state of .device units,
and some services depend on such units (namely serial consoles such as
serial-getty@ttymxc0.service). As a result no getty is spawned on the
affected serial tty.
After a power-cycle the second boot (which does not disable services)
succeeds.

The following sequence shows this problem:

| Jan 09 16:36:28 apalis-t30 systemctl[162]: Removed /etc/systemd/system/sysinit.target.wants/run-postinsts.service.
| Jan 09 16:36:28 apalis-t30 systemd[1]: Reloading.
|    ...
|    And then the failing one:
| Feb 22 15:33:15 apalis-t30 systemd[1]: dev-ttyS0.device: Job dev-ttyS0.device/start timed out.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Timed out waiting for device dev-ttyS0.device.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Dependency failed for Serial Getty on ttyS0.
| Feb 22 15:33:15 apalis-t30 systemd[1]: serial-getty@ttyS0.service: Job serial-getty@ttyS0.service/start failed with result 'dependency'.
| Feb 22 15:33:15 apalis-t30 systemd[1]: dev-ttyS0.device: Job dev-ttyS0.device/start failed with result 'timeout'.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Reached target Login Prompts.

(the time has been updated between this two events, but that does not
influence the issue)

Using --no-reload in the service file avoids the "Reloading." message
above and seems to not cause such issues anymore.

Reported-by: Stefan Agner <stefan.agner@toradex.com>
(From OE-Core rev: 059bc9b164d239f0ba319f8e6a54b5edf7761b22)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 16b7b455ee40fd1be5bb9aacf24b106df0d9325e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Max Krummenacher
b1b94376d1 dpkg-configure: do not reload daemon configuration
In case a systemd service disables itself while init is still in its
boot sequence the reloading of the service files can be problematic.
In that case: It seems that systemd looses the state of .device units,
and some services depend on such units (namely serial consoles such as
serial-getty@ttymxc0.service). As a result no getty is spawned on the
affected serial tty.
After a power-cycle the second boot (which does not disable services)
succeeds.

The following sequence shows this problem:

| Jan 09 16:36:28 apalis-t30 systemctl[162]: Removed /etc/systemd/system/sysinit.target.wants/run-postinsts.service.
| Jan 09 16:36:28 apalis-t30 systemd[1]: Reloading.
|    ...
|    And then the failing one:
| Feb 22 15:33:15 apalis-t30 systemd[1]: dev-ttyS0.device: Job dev-ttyS0.device/start timed out.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Timed out waiting for device dev-ttyS0.device.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Dependency failed for Serial Getty on ttyS0.
| Feb 22 15:33:15 apalis-t30 systemd[1]: serial-getty@ttyS0.service: Job serial-getty@ttyS0.service/start failed with result 'dependency'.
| Feb 22 15:33:15 apalis-t30 systemd[1]: dev-ttyS0.device: Job dev-ttyS0.device/start failed with result 'timeout'.
| Feb 22 15:33:15 apalis-t30 systemd[1]: Reached target Login Prompts.

(the time has been updated between this two events, but that does not
influence the issue)

Using --no-reload in the service file avoids the "Reloading." message
above and seems to not cause such issues anymore.

Reported-by: Stefan Agner <stefan.agner@toradex.com>
(From OE-Core rev: e735c176361fca43420565dcb8900bbff2f3664e)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 94fabe4b03e899d8876027ee2ced649737a9e522)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Martin Jansa
9a94fce7f1 rm_work: fix build break for do_image_complete
* since following commit:
  commit 2ff9d40dc88d43567472218cf3d3faf414398c71
  Author: Richard Purdie <richard.purdie@linuxfoundation.org>
  Date:   Sun Jul 30 16:06:57 2017 +0100

    image/rm_work: Promote do_image_complete to be more sstate like

  all image rm_work tasks are failing with:
  mv: 1.0-r0.do_image_complete.228730130ba309f85b73b72222ba11d7.raspberrypi3 and
      1.0-r0.do_image_complete.228730130ba309f85b73b72222ba11d7.raspberrypi3 are the same file

  it's because for $i 1.0-r0.do_image_complete.228730130ba309f85b73b72222ba11d7.raspberrypi3
  there will be first SSTATETASK in $j do_deploy, so the sed call doesn't replace anything

  It might be different order of SSTATETASKS in my builds (it might work only when
  do_image_complete is the first one in the list), but here:
  SSTATETASKS="do_deploy do_image_complete do_image_qa do_package do_package_qa do_package_write_ipk do_packagedata do_populate_lic do_populate_sdk do_populate_sdk_ext do_populate_sysroot"

(From OE-Core rev: 0c905d4e7fa8e5416945fa0d61ebc1d34409d1e6)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Khem Raj
b0220d1b72 musl: Build only in ARM mode when using clang
clang 5.0 has a codegen bug when compiling musl in thumb2 mode see

https://bugs.llvm.org/show_bug.cgi?id=34165

(From OE-Core rev: 3b4182968c5a1271748002f0e0264f54643a9f1c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Carlos Rafael Giani
79483b0567 gstreamer1.0-python: upgrade to version 1.12.2
(From OE-Core rev: 084eb341281e396b25805bc88b0f09c03112c144)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Carlos Rafael Giani
e2bf6f7586 gstreamer1.0-vaapi: upgrade to version 1.12.2
* Remove backported patch:
  1. vaapivideobufferpool-create-allocator-if-needed.patch

* Add PACKAGECONFIG_GL variable to make it possible for BSP layers to
  customize what should be the default, EGL or GLX

* Set virtual/egl instead of virtual/mesa as egl dependency in case
  platform specific drivers provide virtual/egl functionality

(From OE-Core rev: 42daac1ade210d873aa4761d89d2402fbe80f07b)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Maxin John
19681739e0 gstreamer1.0-libav: upgrade to version 1.12.2
(From OE-Core rev: 7991a8a094f69a5777e21b17f130277e858acd24)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Maxin John
cd0f99b826 gstreamer1.0-omx: upgrade to version 1.12.2
(From OE-Core rev: 01d7987786ff26eb56cc00712d77851f48659a3f)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Maxin John
8ab7d9000c gstreamer1.0-rtsp-server: upgrade to version 1.12.2
(From OE-Core rev: bdcf49ddf9d0852a87fd5306f6fc0e6c5b716d1c)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Maxin John
5938f43c9e gstreamer1.0-plugins-ugly: upgrade to version 1.12.2
* libmad plugin was removed in 1.12.0, since mad is GPLed,
  unmaintained, and both gst-libav & the mpg123 plugin are
  fully functional alternatives.

(From OE-Core rev: a963a2e38e246554b7083430710a2aba430df5e5)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Carlos Rafael Giani
ae841c4371 gstreamer1.0-plugins-bad: upgrade to version 1.12.2
* Remove backported patches:
  1. 0001-smoothstreaming-implement-adaptivedemux-s-get_live_s.patch
  2. 0001-smoothstreaming-use-the-duration-from-the-list-of-fr.patch
  3. 0001-mssdemux-improved-live-playback-support.patch

* Refreshed the following patches:
  1. 0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
     Extended patch to include fix for libgstallocators
  2. 0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
     Updated to apply to 1.12.2
  3. gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch
     Updated to apply to 1.12.2

* Removed license checks in tta directory as it doesn't exist anymore.

* In 1.12.0, old unsupported plugins were removed. As a result, the
  list of unsupported plugins was removed.

(From OE-Core rev: 1fa8492e54dd71ce7d4d853e0cb7295c28fa5e76)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Maxin John
71c2f1d047 gstreamer1.0-plugins-good: upgrade to version 1.12.2
* Remove backported patch:
  1. 0001-v4l2object-Also-add-videometa-if-there-is-padding-to.patch

* Added RPROVIDES to handle the renamed plugins (oss4 is not enabled):
  1. libgstpulse -> libgstpulseaudio
  2. libgstsouphttpsrc -> libgstsoup

* Updated gstreamer1.0-meta-base to include this change:
  1.gstsouphttpsrc plugin was renamed to gstsoup

(From OE-Core rev: 142d9e3d68147cdad18a3a60eaa22c33c418ffec)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:14 +01:00
Maxin John
58a7c2bd37 gstreamer1.0-plugins-base: upgrade to version 1.12.2
* Remove upstreamed patch:
  1. encodebin-Need-more-buffers-in-output-queue-for-bett.patch

(From OE-Core rev: 10d509f69fcdcb4d2c07d3c4cc403c74956fb1a8)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Carlos Rafael Giani
4f64854dff gstreamer1.0: upgrade to version 1.12.2
* Version 1.12 introduces support for libdw (provided by elfutils).
  libdw adds source lines & numbers to backtraces. A new "dw"
  packageconfig added for enabling/disabling this feature.
  In addition, the old patch for deterministic unwind configuration
  was replaced with one that also allows the same for the dw
  configuration. This new patch was also submitted to bugzilla.

* Leftover docbook cruft was removed, meaning that the
  "--disable-docbook" configure switch is gone.

(From OE-Core rev: a6c12ff35c97f4225a6b2f226ae4483d7bacdfb9)

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Alexander Kanavin
5813f1f764 selftest: fix distrodata.py to use per-recipe UPSTREAM_VERSION_UNKNOWN setting
... instead of a global exception list which was problematic.

[YOCTO #11896]

(From OE-Core rev: 89dfede4ca795ba085f1ee7290c6dede573c11db)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Alexander Kanavin
2d21e4302d pax-utils: check upstream version from debian servers
Gentoo server can be very slow to list the tarball directory.

(From OE-Core rev: 4f6059a6582d5fdd7260b816301e939d1e3f3ddb)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Alexander Kanavin
5f7f74a248 v86d: take tarball from debian
Gentoo is removing the package due to dead upstream;
Debian might carry it for a while longer.

(From OE-Core rev: 5026730a2f0701ebad4ddf57990b1ae3b484ae72)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Alexander Kanavin
1d84ef26fb assimp: fix upstream version check
(From OE-Core rev: d15bcae5fa04a84f2909217bcfc657aa2ce7d3f0)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Alexander Kanavin
36671d1494 distrodata.bbclass: add UPSTREAM_VERSION_UNKNOWN and UPSTREAM_CHECK_UNRELIABLE
These are optional per-recipe variables with the following meaning:

UPSTREAM_VERSION_UNKNOWN - set if the upstream version check fails reliably,
e.g. absent git tags, or weird version format used on our or on upstream side.
If this variable is not set and version check fails, or if it is set and
the version check succeeds, then the checkpkg selftest for the recipe will fail.

UPSTREAM_CHECK_UNRELIABLE - set if the upstream check cannot be reliably performed
due to transient network failures, or server behaving weirdly. This one should be used
sparingly, as it completely excludes a recipe from upstream checking, and thus
we don't get automatically notified about new upstream releases.

Also the upstream status string in the checkpkg csv output is clarified with the following
possible values:
MATCH - recipe is providing the latest upstream version
UPDATE - there is a new version released by upstream, recipe should be updated
CHECK_IS_UNRELIABLE - an upstream check was skipped as requested by recipe
via UPSTREAM_CHECK_UNRELIABLE
UNKNOWN - upstream version check was performed, but the upstream verison could
not be determined. The recipe acknowledges this via UPSTREAM_VERSION_UNKNOWN setting.
UNKNWON_BROKEN - same as previous, but the recipe does not include the acknowledgement
and should be fixed.
KNOWN_BROKEN - upstream check worked, but recipe claims it shouldn't; to fix this
remove UPSTREAM_VERSION_UNKNOWN from recipe.

[YOCTO #11896]

(From OE-Core rev: 2a44ac1add0338cd7ff012cda96bf113c9a01bd6)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Yi Zhao
3c901c5933 populate_sdk_base.bbclass: add handling package exclusions to do_populate_sdk
There is an error for populate_sdk when we exclude package by using
PACKAGE_EXCLUDE.

Reproduced steps:
echo "PACKAGE_EXCLUDE = \"psplash\"" >> conf/local.conf
bitbake core-image-sato -c populate_sdk

Error log:
ERROR: core-image-sato-1.0-r0 do_populate_sdk: Could not invoke dnf.
Command '/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/recipe-sysroot-native/usr/bin/dnf -y -c
/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/sdk/image/opt/poky/2.3/sysroots/i586-poky-linux/etc/dnf/dnf.conf
--setopt=reposdir=/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/sdk/image/opt/poky/2.3/sysroots/i586-poky-linux/etc/yum.repos.d
--repofrompath=oe-repo,/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/oe-rootfs-repo
--installroot=/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/sdk/image/opt/poky/2.3/sysroots/i586-poky-linux
--setopt=logdir=/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/temp
-x psplash --nogpgcheck install run-postinsts dnf
packagegroup-core-x11-base packagegroup-core-ssh-dropbear
packagegroup-core-standalone-sdk-target packagegroup-base-extended
packagegroup-core-x11-sato psplash packagegroup-core-boot rpm' returned 1:
Unable to detect release version (use '--releasever' to specify release version)
Added oe-repo repo from
/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/oe-rootfs-repo
Last metadata expiration check: 0:00:00 ago on Thu 10 Aug 2017 09:26:32 AM UTC.
No package psplash available.
Error: Unable to find a match

Add handling package exclusions to do_populate_sdk. The code copies from
do_rootfs in image.bbclass.

(From OE-Core rev: 86db855da4ee000737281ef7cc893d56854b3952)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Khem Raj
00ea0bf798 binutils: Upgrade to 2.29
(From OE-Core rev: 3bf990eb275f63190a2cf7253527d6d49fd93f1a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16 00:03:13 +01:00
Richard Purdie
034bff2ca4 bitbake: cooker: Ignore common bitbake files for the parse cache invalidation
Writes to the cookerdaemon log and/or the lockfile were meaning the parser
cache was always being invalidated and reparsed. This is unnecessary so
spot accesses to these two common cases and ignore the files from a reparse
perspective.

This doesn't remove many sources of reparse but does improve several
common cases.

(Bitbake rev: 218e4b6418992588312b8ef5949b84ef43263d1a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:28:14 +01:00
Richard Purdie
a0f729d31d bitbake: cooker: Improve inotify overflow handling
Add a proper function for clearing the mtime cache. Clean up the inotify
event overflow case to err on the side of caution and clear any potentially
now out of sync caches.

(Bitbake rev: ec60459fe2ba16966544eebff43b061abb7ed3ba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:28:14 +01:00
Richard Purdie
019f518287 bitbake: cooker: Ensure we handle inotify before running the next command
The inotify watch events are handled "at idle" which could in theory mean
a command could run before any preceeding inotify events have been processed.
This leads to a theoretical race window where those events may have a
signficicant effect on the command.

Add a mechanism to allow us to ensure all pending events are processed before
running commands.

(Bitbake rev: bf76cd7e5881adf264b8ba64e27a5b6ca9df4fde)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:28:14 +01:00
Richard Purdie
0cb62f8ca7 bitbake: cooker: Track directories searched for bbappend/bb files
Some of the directories searched by BBFILES are not currently being added
to the inotify watch list. This can mean that added append files are not
noticed leading to misleading metadata results when using
BB_SERVER_TIMEOUT != 0.

We use glob to expand the BBFILES references and without writing our own
implentation, figuring out the directories it searches is hard. We use
some horrible hacks here to intecept the listdir calls, I'm open
to better ways to handle this but this does ensure we have the right
watches set.

(Bitbake rev: 4d508d35a224e3a25d2d59c8415ab7985964b14f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:28:14 +01:00
Richard Purdie
801b0d29d4 bitbake: server/process: Ensure we don't loop on client EOFError
The server currently crashes if we hit an EOFError due to controllersock
still being in ready and the continue meaning ready isn't re-evaluated.
Setting the value to False can mean the shutdown code doesn't handle the
situation cleanly.

Clear ready to avoid the crash/loop instead and handle any OSError whilst
we're in here.

(Bitbake rev: 2bc47e887c3b41417edaa89a8708c223fd2085de)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:28:14 +01:00
Richard Purdie
ea9fff4bd0 bitbake: cooker/siggen: Reset siggen when reparsing
If we don't do this, we get basehash mismatch errors occurring from the reparse
which would then set bitbake's error exit code.

This for example would cause oe-selftest -r bbtests.BitbakeTests.test_bbappend_order
to fail with a non-zero BB_SERVER_TIMEOUT.

(Bitbake rev: e4c6ca9440f63761560b49bbe12654441f54687e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:28:14 +01:00
Richard Purdie
bb81ff1343 image-prelink: Disable for musl images
For some reason prelink was refusing to prelink musl images but now sometimes
does modify the binaries. Since musl has no support for this, such images
end up broken and unable to boot.

To avoid this, be explicit and only apply prelinking for libc-glibc.

[YOCTO #11913]

(From OE-Core rev: 5a25ed1071f0d9b7d95edcc2b5b4545f960d5f95)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Khem Raj
9b32a558f6 python-numpy: Upgrade to 1.13.1
Update LICENSE to BSD-3-Clause as per
https://github.com/numpy/numpy/blob/master/LICENSE.txt

LIC_FILES_CHKSUM changed due to copyright year change see
b2ff4f1319

(From OE-Core rev: a703bb6159dd69020fb40db7a6a0811f45869972)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
43d52e785b gstreamer-plugins-bad: replace openssl dependency with nettle for hls plugin
It has not been ported to openssl 1.1 (and there's nothing in upstream git),
but it's possible to use nettle or gcrypt intead.

Also, provide a fallback option to use openssl 1.0 when necessary.

(From OE-Core rev: 624aed5d450664b0f0a36b14d658248202f864ed)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
He Zhe
f20a63aee3 qemu: apic: fallthrough to PIC
Backport a commit from qemu upstream to fix a protection fault

https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg00878.html

(From OE-Core rev: 88a4a872a7f22be52faa965bc05c57d8466e0eed)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Khem Raj
5f57cac930 musl: Drop the protected symbol optimization at configure time
lld and gold can not handle it and treat it wrong

Fixes

[YOCTO #11689]

(From OE-Core rev: 5490efb7446196dce6a4be678263e8a73648446a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Leonardo Sandoval
d6823e947b sstatetests: limit the number of signature comparisons when differ
For perfomance reasons, limit the number of signature comparisons when
stamps differ. The limit set is hardcoded to 20.

[YOCTO #11651]

(From OE-Core rev: a2e2f434cd8d68b69e1ccdb7d7c17c0c73289866)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
6309590b39 cryptodev-tests: depend on openssl 1.0
Upstream ticket:
https://github.com/cryptodev-linux/cryptodev-linux/issues/22

(From OE-Core rev: 3619a2fbe3d5bb718fdab8ee55728b22acb892cf)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
56d76ecf74 openssh: depend on openssl 1.0
The proposed openssl 1.1 patches are here:
https://github.com/openssh/openssh-portable/pull/48

Openssl maintainers are not in a hurry to get 1.1 support in;
if it doesn't show up within reasonable time, we can take a patch
from Fedora:
http://lists.mindrot.org/pipermail/openssh-unix-dev/2016-November/035454.html

(From OE-Core rev: 5ccf4a9786fc607a5838edb3bf409f83d7483ba6)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
e326733d69 openssl: add a 1.1 version
Existing openssl 1.0 recipe is renamed to openssl10; it will
continue to be provided for as long as upstream supports it
(and there are still several recipes which do not work with openssl
1.1 due to API differences).

A few files (such as openssl binary) are no longer installed by openssl 1.0,
because they clash with openssl 1.1.

(From OE-Core rev: da1183f9fa5e06fbe66b5b31eb3313d5d35d11e3)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
04891b31e6 ca-certificates: update to 20170717
Upstream lacks a tag for this release, so make it a PR bump.

(From OE-Core rev: 0b0a716b243491f026cb7b15e8f546325d6fa760)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Ross Burton
659c8b5267 insane: remove last remnants of unsafe-references-in-binaries check
The test itself was removed but there were a few explicit checks and
dependencies for it, so remove those too.

(From OE-Core rev: 3a2feef644abff4feff371cc7175ac270f5fb671)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Ross Burton
e32bfb8066 insane: remove unsafe-references-in-scripts check
We've already removed unsafe-references-in-binaries (which was fundamentally
broken) and nobody really cares about / and /usr being on different filesystems
anymore (at least if they, they're keeping very quiet and not fixing the bugs).

As this test was a minor detail in the scope of supporting separate / and /usr
which we don't support, it can be removed.

(From OE-Core rev: 5363a5e43462e22ed61e87923e00657b740f6823)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Ross Burton
7b5e524c8e oeqa/buildoptions: remove unsafe-references-in-script test
This QA test is about to be deleted, so remove it from selftest.

(From OE-Core rev: b9faf41ddc4510d484b5cbe8d182d8288fe00773)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Juro Bystricky
b9b6ede7f8 gcc7: fix potential segmentation fault
Under some rare circumstances we may end up with GCC segmentation fault.
This was observed with versions of sysmacros.h, which contain macros
with embedded warning messages :

When trying to actually display the warning, we may end up with a segmentation
fault instead. The reason is the actual warning message gets parsed (the text is
unquoted) and words in the message such as "not", "and" etc. are interpreted as
operators CPP_NOT, CPP_AND. When the time comes to display the warning, the code
uses wrong structure to access the "name" corresponding to the operators.

[YOCTO #11738]

(From OE-Core rev: 6f81fe4f3a1177c0049b26a070e43546bc6fe974)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
9952b38de4 btrfs-tools: update to 4.12
Add a patch to force a native build for a helper binary
(which is not installed or used outside of the build process).

(From OE-Core rev: 35e3ed68fd25941e3d76e5a063299b1d1cee0e70)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
62455dfb8a gptfdisk: update to 1.0.3
(From OE-Core rev: 9f635de4fc6ce9d32d2298679d6afce745ca5d80)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
fa96678551 babeltrace: update to 1.5.3
(From OE-Core rev: 6fdd09358089acbb1b3bf00d3f10e91a8a34fe1c)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:38 +01:00
Alexander Kanavin
214363ce7c ffmpeg: update to 3.3.3
(From OE-Core rev: e545ebf7b0381a0cdb30807708b92fe7da2434f7)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Alexander Kanavin
722dc24356 libdnf: update to 0.9.3
(From OE-Core rev: aea24b3c6934921852c7de1da15ff326da992d08)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Alexander Kanavin
b91d3fe326 dnf: update to 2.6.3
(From OE-Core rev: 685d7ec1114fa2ec4aa44f7e29d1e159f7899d4d)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Hongxu Jia
365b18dbef python2/python3: fix multiprocessing.BoundedSemaphore not work on qemux86/qemuarm
In upstream, the following commit:
e711cafab1
...
commit e711cafab13efc9c1fe6c5cd75826401445eb585
Author: Benjamin Peterson <benjamin@python.org>
Date:   Wed Jun 11 16:44:04 2008 +0000

    Merged revisions 64104,64117 via svnmerge from
    svn+ssh://pythondev@svn.python.org/python/trunk
...
(see diff in setup.py)
It assigned libraries for multiprocessing module according
the host_platform, but not pass it to Extension.

In glibc, the following commit caused two definition of
sem_getvalue are different.
https://sourceware.org/git/?p=glibc.git;a=commit;h=042e1521c794a945edc43b5bfa7e69ad70420524
(see diff in nptl/sem_getvalue.c for detail)
`__new_sem_getvalue' is the latest sem_getvalue@@GLIBC_2.1
and `__old_sem_getvalue' is to compat the old version
sem_getvalue@GLIBC_2.0.

If not explicitly link to library pthread (-lpthread), it will
load glibc's sem_getvalue randomly at runtime.

Such as build python on linux x86_64 host and run the python
on linux x86_32 target. If not link library pthread, it caused
multiprocessing bounded semaphore could not work correctly.
...
>>> import multiprocessing
>>> pool_sema = multiprocessing.BoundedSemaphore(value=1)
>>> pool_sema.acquire()
True
>>> pool_sema.release()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: semaphore or lock released too many times
...

And the semaphore issue also caused multiprocessing.Queue().put() hung.

(From OE-Core rev: ca1542cdf6b6437a2f3dcdb33ac5216bf841c04a)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Ruslan Bilovol
03eb3b4670 recipes-kernel: linux-dummy: provide dummy vmlinux package
oprofile package depends on kernel-vmlinux package
through RRECOMMENDS dependency. Thus provide it
here to satisfy dependencies.

(From OE-Core rev: d96e3ab2a344c40f9b132673923b191ce912d9a4)

Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Leonardo Sandoval
5ec91f9a32 context: Include a command line argument to run all except certain tests
A new command line argument (-R, which is the oposite of current -r) that allows
to run all test cases except the ones indicated through the command line.

Some command line examples:

* Run all except the distro test case:
$ oe-selftest -R distrodata

* Run all except the archiver test case and a single bblayers unit test
$ oe-selftest -R archiver bblayers.BitbakeLayers.test_bitbakelayers_add_remove

[YOCTO #11847]

(From OE-Core rev: e40eeaa790b95d9c25832405c0b0d5b3a0d0292b)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Ross Burton
582097c103 oeqa/runtime_test: use subtests in test_postinst_rootfs_and_boot
As this test has two nested loops and actually runs six times, use
UnitTest.subTest() so we can tell which instance is failing, and to run all
variations instead of failing on the first one.

Also set PACKAGE_CLASSES to just the type we need to reduce the verboseness of
the output, and consolidate the feature generation to be neater.

(From OE-Core rev: c7ef6000b11f1b1cd27c9bc408eea9f76bb94a3b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Khem Raj
476edb2b47 glibc: Upgrade to 2.26 final release
(From OE-Core rev: d6a0bc57fa07d887a78aa8ed76e3bf4558dc5127)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Khem Raj
ffe6130bf6 llvm: Keep llvm-native dependency with clang toolchain
This was needed when we were conflicting with clang-native
but this is solved via append PN to binaries of llvm-native

(From OE-Core rev: 82ea78bd2f03b6ba4d720595d3a3fbd96e0232f9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
André Draszik
80f82bc484 valgrind: enable on mips soft-float
Valgrind support for mips soft-float hosts has been fixed
in the 3.12 [1] and 3.13 [2] releases, so let's start
building it on those, too.

[1] https://sourceware.org/git/?p=valgrind.git;a=commit;h=8f0070d31daea6f0ed18f8fe69498a67530bfcbb
[2] https://sourceware.org/git/?p=valgrind.git;a=commit;h=3172936d63da4b6257099bc05aee5793978269cb

(From OE-Core rev: 82dbad6aa1390668aa86d28c8a3125b68d6072fa)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
sweeaun
7f93941236 openssl: Support musl-x32 build
Support musl-x32 build which to build openssl with 32 bits.

(From OE-Core rev: a072d4620db462c5d3459441d5684cfd99938400)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Denys Dmytriyenko
db922d17a1 wayland-protocols: upgrade to 1.10
(From OE-Core rev: 019c582b1af1361c3d983255e93d9aa706e3b62c)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Oliver Stäbler
44f550f392 eudev: Remove udev-cache
As eudev requires devtmpfs it is not necessary to keep a cache anymore
as the kernel handles entries in /dev itself.

(From OE-Core rev: 048f4149b8438c521e8b65a3c96d850a9b4a3e5b)

Signed-off-by: Oliver Stäbler <oliver.staebler@bytesatwork.ch>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Joe Slater
c3e2ad0695 slang: fix terminfo related problems
Do not use the JD_TERMCAP macro since we cannot get the terminfo from
ncurses pkg-config variants, but fix the macro to not reference host
directories.  Also add src/test/Makefile.in so that we can use -ltermcap
if we want to.

Since the recipe DEPENDS on ncurses, we assume terminfo is there.

(From OE-Core rev: 53fbc138c8f5652890d477ef21dcb52ec06abb21)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Alexander Kanavin
f06f9f3c89 systemd: update to 234
The new version fixes gperf 3.1 issues, so the update is included
in this patchset.

Modified patches are all rebases to the new version.

Deleted patches are backports, except 0016-make-test-dir-configurable.patch
which is obsolete in the new version (TEST_DIR define is no longer used anywhere).
--with-testdir is removed from configure for the same reason.

(From OE-Core rev: 34afb46f75d6c356f23f70c5ece96e45594e1546)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Alexander Kanavin
42ffbda124 libid3tag: fix build with gperf 3.1
(From OE-Core rev: 15ef4a6de2a61b958484b9291fe67dbeeebf3cfa)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Alexander Kanavin
65da29a913 libcap: fix build with gperf 3.1
(From OE-Core rev: e54e367e07ce7c69272693413db7f87a8629c536)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Alexander Kanavin
fdf7c0ed11 gperf: upgrade to 3.1
(From OE-Core rev: 9784d22fee75d5e2998e0d5f226f54ef812a019b)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-13 09:27:37 +01:00
Jussi Kukkonen
5e4bd86130 libinput: Upgrade 1.7.3 -> 1.8.1
New feature release, see
https://lists.freedesktop.org/archives/wayland-devel/2017-June/034286.html
for the major features. This is the last major release to support
autotools.

Configure flag "--enable-event-gui" changed name.

Configure flags no longer default to "auto": explicitly disable the
things that were previously automatically disabled.

Package the binaries into libinput-bin while being careful with
packaging as the main package gets renamed to libinput10.

Add patch to fix a race in install.

(From OE-Core rev: df7f5221a56118da7654476f072c37ae1e75dc50)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:38:25 +01:00
Scott Rifenbark
07514c9003 dev-manual: Converted sections for following best layer practices
The section about following best practices was more of a reference
section the way it was written.  I recast the section and the
sub-sections such that it is a list of items to consider.

Also renamed the section to be more of an action section rather
than passive.

(From yocto-docs rev: 8b050a46c67a3d3e89d905cf028eec6ae370388a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:25:24 +01:00
Scott Rifenbark
7d7eb04b9c dev-manual: Updates to "Using .bbappend Files in Your Layer"
I did some rewriting for clarity in the "Using .bbappend Files
in Your Layer" section.  The section needed to be retitled so
focus on the layer aspect of .bbappend files.  Also, while I
was in there, I did more work on the prose in general.

Also had to fix some links in the bsp, kernel, and ref manuals
that linked into the section whose name I changes.

(From yocto-docs rev: a82bcc9fe0f909135434ee1bd36b4414f6c046c9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:25:24 +01:00
Scott Rifenbark
2155745fff dev-manual: Changed wording that intros layer creation steps
I updated the wording to note that the steps are how to create
a layer without the aid of steps (i.e. by hand).

(From yocto-docs rev: 81800fa9ba0dd9ff439a43b286981eea51d4c87f)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:25:24 +01:00
Scott Rifenbark
efedec5e6a yocto-project-qs: Updated bullet heading for CROPS procedure
(From yocto-docs rev: b51e29013ab86072989a878b118a3bdf7c11355b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:25:24 +01:00
Alexander Kanavin
6b5777a979 maintainers.inc: assign newly added recipes
If you disagree with the assignments, please speak up.

(From meta-yocto rev: 0966bf5a4e2e202dd1bee04f58a008728b21aed7)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:56 +01:00
Alexander Kanavin
e6fd594934 poky-world-exclude.inc: remove recipes from meta-qt4
Now that meta-qt4 isn't used by the autobuilder, there's no need
to exclude broken recipes fron that layer either.

(From meta-yocto rev: feb7d9db5979a1b8d5f27c370d01755b50023255)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:56 +01:00
Robert Yang
803b97a32e bitbake: main: Handle BB_SERVER_TIMEOUT = -1 for no server timeout
Make BB_SERVER_TIMEOUT = -1 mean no unload forever.

(Bitbake rev: 923d5567be6fd9969ca74c166f36817ec09305e3)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:56 +01:00
Robert Yang
11bde5de83 bitbake: process: Fix disconnect when BB_SERVER_TIMEOUT
Fixed:
$ export BB_SERVER_TIMEOUT=10000
$ bitbake --server-only
$ bitbake --status-only
[snip]
  File "/buildarea/lyang1/poky/bitbake/lib/bb/server/process.py", line 472, in recvfds
    msg, ancdata, flags, addr = sock.recvmsg(1, socket.CMSG_LEN(bytes_size))
OSError: [Errno 9] Bad file descriptor

And:
$ export BB_SERVER_TIMEOUT=10000
$ bitbake --server-only -B localhost:-1
$ bitbake --status-only # Everything is fine in first run
$ bitbake --status-only
[snip]
  File "/buildarea/lyang1/poky/bitbake/lib/bb/server/process.py", line 472, in recvfds
    msg, ancdata, flags, addr = sock.recvmsg(1, socket.CMSG_LEN(bytes_size))
OSError: [Errno 9] Bad file descriptor

This was because self.controllersock was not set to False, so it still ran
sock.recvmsg() when sock was closed.

And also need set command_channel to Flase, otherwise the
self.command_channel.get() will always run when EOF, and cause infinite loop.

(Bitbake rev: 7b739a38601b053d9bea4df2c0b44a952ab670c4)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:56 +01:00
Robert Yang
896243f4fe bitbake: main: Remove unneeded float()
There is already a type=float, so the float() is not needed, which also makes
the error clearer:

$ export BB_SERVER_TIMEOUT=10000AA
With float():
$ bitbake quilt-native
[snip]
ValueError: could not convert string to float: '10000AA'

Without float():
$ bitbake quilt-native
[snip]
optparse.OptionValueError: option --idle-timeout: invalid floating-point value: '10000AA'

The second one tells clearly where is wrong.

(Bitbake rev: 7a4ea1e6a10f20d80009a78f4f0aebf8f90095fd)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:56 +01:00
Paul Eggleton
46e2251625 bitbake: Revert "tinfoil: fix duplication of log messages"
In combination with the recent server reworking, this change actually
prevents messages sent from tasks from being logged properly. This will
of course give us the duplicated messages back, and I really hate to do
that effectively a second time, but that's better than seeing no error
at all in the case of a failure - we'll have to find the proper way of
avoiding the duplication that doesn't result in some messages going
missing.

This reverts commit 8a5bae76f91f2411187c638a42fa3c762052cf11.

(Bitbake rev: 645c8dd15762516ae5ab64a1df47fadb95d072d1)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:56 +01:00
Ross Burton
c70a7d266d checkpkg_exceptions: add LLVM
The git mirror of LLVM doesn't have any tags we can track for release
announcements, so exclude llvm from the checkpkg test.

(From OE-Core rev: 91d1664d66ffd0d3ec06824ff13861faf89ba96a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Nathan Rossi
f42754a2d8 llvm: Raise SkipRecipe exception for unsupported architectures
When parsing this recipe on an unsupported or non-mappable architecture
an error is generated despite no dependencies on the recipe. E.g.

  ERROR: .../llvm_git.bb: cannot map 'microblazeel' to a supported llvm architecture

Instead of generating an error which might confuse users, raise a
SkipRecipe exception similar to other arch-style mapping functions (e.g.
go_map_arch). This avoids showing the error during parse, and prevents
the use of the recipe on unsupported targets. Resulting in an error like
so when trying to build llvm:

  ERROR: Nothing PROVIDES 'llvm'
  llvm was skipped: Cannot map 'microblazeel' to a supported LLVM architecture

(From OE-Core rev: d796abac982f368aa088a291560b565cc47a2c27)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Khem Raj
a479bdd4fb mesa, llvm: Use native version of llvm-config
We have a variable YOCTO_ALTERNATE_EXE_PATH to point to
target sysroot, utilize this in mesa to use native version
of llvm-config to report values from target sysroot.

(From OE-Core rev: 1c4444f7b2f5cbcaaf6f9d21d7b4f86555ed746a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Khem Raj
3adf66fc4b mesa: Depend on llvm-native
We need to get llvm-config tool staged which is provided by llvm-native

(From OE-Core rev: 0aadad61bf740bb9a1859381790ecc0f37490c34)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Khem Raj
9265bec052 mesa: Use chrpath to delete rpaths
It adds native sysroot chrpath due to llvm-config in cross compiling
we can delete them via chrpath, since libs are in standard paths rpath
is really not needed

(From OE-Core rev: 1882726f61216c1a490370456c2e68efc3862052)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Leonardo Sandoval
884f74250d action: new bitbake-layer plugin to create a simple layer
Though the script bitbake-layers (from the bitbake project), this plugin
creates a simple layer with a example recipe, the latter with a single task
(do_build). Layer's license and priority is MIT and 6, respectively. Example
recipe and layer's priority can be specified through the command line.

[YOCTO #11567]

(From OE-Core rev: 2bd1dc287b8b0f7edac8c6fee076a70ebf7adf43)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Andrea Galbusera
1df5a58b12 scripts/oe-publish-sdk: use hook to call git update-server-info
The author's initial intent was to use a git hook to automatically call
update-server-info, but the wrong hook type was chosen (post-update). A
post-commit one will do the job, hence allowing to drop the explicit call to
update-server-info.

(From OE-Core rev: 0a8ae997c782794b6ef32654cb245b496ab1de8e)

Signed-off-by: Andrea Galbusera <gizero@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Andrea Galbusera
6346d12d8d devtool: sdk-update: fix pulling updates from git
Commit 4657bc9d165e51981e034e73e7b92552e873eef7 replaced the git pull logic with
the git fetch + git reset --hard combo, but resetting to HEAD does not really
pull in new commits from remote... Replace with resetting to the upstream branch
instead.

(From OE-Core rev: 0dcdb146f59a184419bffd4f24cdf8343a43c0ea)

Signed-off-by: Andrea Galbusera <gizero@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Richard Röjfors
0a3bb8b827 package_manager: Fix support for NO_RECOMMENDATONS
When support for dnf was introduced the check of the
no NO_RECOMMENDATIONS variable got broken.

This fixes the issue by compairing to the string "1"
rather than the number 1.

(From OE-Core rev: 1849ce3bd7c0af055f3e849a6508e746b6a0dca5)

Signed-off-by: Richard Röjfors <richard@puffinpack.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Huang Qiyu
7c3549f91b gtk-icon-utils-native: 3.22.16 -> 3.22.17
Update gtk-icon-utils-native from 3.22.16 to 3.22.17.

(From OE-Core rev: 1e0cf88f6aecb0b523f7ef016fcd95d25a10e066)

Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Huang Qiyu
3b357a1c7f gtk+3: 3.22.16 -> 3.22.17
Update gtk+3 from 3.22.16 to 3.22.17.

(From OE-Core rev: ceb77b268f3f71523254f9c3d7b08bebaa431b51)

Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Ed Bartosh
b8cb2bb175 x86-base.inc: enable live image type
live image type was replaced by hddimg recently. This made
NOHDD and NOISO options ineffective as they only influence
live builds. It also causes image building failure for
image sizes >4Gb

Returned back live image type and disabled building iso image.
This doesn't change result (hddimg is built), but it makes
NOHDD and NOISO working as expected.

[YOCTO #11842]

(From OE-Core rev: c787dcdd55bc55c6c64dec21b251706615114fe7)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Ross Burton
6a6d2d1853 chrpath: use https for SRC_URI
Alioth always redirects, so we might as well save time by looking in the right
place.

(From OE-Core rev: e681e25fb8fb97a8592df69180d2fd85d136352c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
California Sullivan
511dbdbc9a initramfs-framework/setup-live: remove superfluous break
This causes us to fall out of the module setup/run loop in the base init
script should "root=" be defined, causing a boot failure.

(From OE-Core rev: 4f109da34a080c0d7cb86eaea1f7b6dfef3d04cb)

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Khem Raj
4b2fb62126 automake: Add missing libtool tag for cppasm language
This is highlighted when CC is passing flags like -fPIE
which are stripped by libtool when building shared libs
and replaced with -fPIC, this actually results in CC
not matching the CC computed from cmdline created for
compiling and as a result libtool heuristic to compute
tags auotmatically fails.

(From OE-Core rev: 519c34adeb0735f6ff606addd00a7bbe19f4b15c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Maxin B. John
5bb613a0e2 libpng: upgrade to 1.6.31
1.6.31 fixes pngpriv.h to work around failure to compile
arm/filter_neon.S.This bug was introduced in libpng-1.6.30beta01

No changes in License.The license checksums changed because of
update in Copyright dates in LICENSE and png.h files.

(From OE-Core rev: 8319dce16210ebe2d89cd1e0926ad937909bc9ea)

Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Patrick Ohly
e2ecc4d20f gettext.bbclass: also search for files in target sysroot
fwupd contains polkit policy files that it translates using polkit.its
and polkit.loc files that the next polkit release is going to
install (see https://github.com/hughsie/fwupd/issues/107).

In order to make that work with OE-core, the gettext tools must be
told to look also for files in the recipe-sysroot. Otherwise it only
uses the GETTEXTDATADIR set by the gettext-native tool wrappers, and
that only points to the files provided by gettext-native itself.

(From OE-Core rev: ebb706f9dafdbb7c4aa18e5595930bbc1a0497b1)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:16 +01:00
Khem Raj
700b846ba0 webkitgtk: Do not use -isystem forcibly
this causes include_next <stdlib.h> to not find
this header since -isystem <sysroot> is added via
cmake, we alrady are using --sysroot so rely on that

(From OE-Core rev: a0f2d1389a7e76b64003fea391a0cd485ff5fe77)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Khem Raj
aa0ddeb79a python3-pycairo: Pass -fPIC via CFLAGS
Fixes

| /mnt/a/oe/build/tmp/work/corei7-64-bec-linux/python3-pycairo/1.10.0-r2/recipe-sysroot-native/usr/bin/x86_64-bec-linu
x/x86_64-bec-linux-ld: src/cairomodule.c.1.o: relocation R_X86_64_PC32 against symbol `CairoError' can not be used whe
n making a shared object; recompile with -fPIC

(From OE-Core rev: 058b155a66c5f81573379d258250323c72901ff7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Khem Raj
e577be00d7 go: Remove -fPIE -pie from SECURITY_PIE_CFLAGS
External compilers will explicitly pass -fPIE -pie flags
unlike internal toolchain which does not use them, so the build
fails with external toolchains because, its passing these
flags to linker when building with -r option and fails to link

| /mnt/a/oe/build/tmp/work/corei7-64-bec-linux/go/1.8.3-r0/recipe-sysroot-native/usr/bin/x86_64-bec-linux/x86_64-bec-linux-ld: -r and -pie may not be used together

(From OE-Core rev: bb89849b5edb05a953586d190826a67ba87c1c5a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Khem Raj
54cae4880c kexec-tools: Remove -fPIE -pie from SECURITY_PIE_CFLAGS
(From OE-Core rev: 7685bac83504e8de6c02d93e39e40f38e51994bb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Khem Raj
f79b2d686d libsdl: Pass --tag option to libtool invocation
Helps in fixing errors when using external toolchain
and hardening flags

(From OE-Core rev: 33ab086517c629158fd10d1818cad619883743db)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Khem Raj
63d5bd0a4e libproxy: Remove PIE flags from SECURITY_PIE_CFLAGS
External compilers will explicitly pass -fPIE -pie flags
unlike internal toolchain which does not use them, so the build
fails with external toolchains because, its passing these
flags to linker when building shared library, which is not
correct it should just use -fPIC

Fixes errors e.g.
| /mnt/a/oe/build/tmp/work/corei7-64-bec-linux/libproxy/0.4.14-r0/recipe-sysroot-native/usr/bin/x86_64-bec-linux/x86_64-bec-linux-ld: ../libmodman/libmodman.a(module_manager.cpp.o): relocation R_X86_64_PC32 against symbol `_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St6vectorIPN9libmodman14base_extensionESaISB_EEESt10_Select1stISE_ESt4lessIS5_ESaISE_EE8_M_eraseEPSt13_Rb_tree_nodeISE_E' can not be used when making a shared object; recompile with -fPIC

(From OE-Core rev: 8c8c01f8e68026228a3b76528a0039acf682c201)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Khem Raj
26d043bf26 ossp-uuid, libffi, libgcrypt: Pass --tag=CC option to libtool
libtool tries to guess the --tag value based on CC/CXX environment
variables and the compile commandline generated by makefiles. This
heuristics however fails when we construct CC variables in OE
and add security flags to it, especially -fPIE -pie which are added
by external compilers e.g. clang particularly. It fails because
libtool removed PIE flags from compiler cmdline intelligently
if it figures out that its building a library, which means that
the CC variable passed from cmdline does not match with the compiler
cmdline constructed by libtool and we end up with errors like

| arm-bec-linux-musleabi-libtool: compile: unable to infer tagged configuration
| arm-bec-linux-musleabi-libtool:   error: specify a tag with '--tag'

This works with internal gcc toolchain because we configure gcc for
PIE when hardening is selected and dont pass -fPIE -pie options explicitly
but this is not an option for clang, and some external gcc toolchains
using older gcc

This patch adds the --tag option to help libtool set correct tags
in packages where it cant get it right via its heuristics

(From OE-Core rev: 0505075ae8d339ba097aebb82b4d0ae62f87c0a9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Paul Eggleton
1cce7f885c devtool: fix handling of errors during task execution
* If an error is logged while executing a task, we need to ensure we
  exit instead of assuming everything went OK.
* If we receive CookerExit, the server is shutting down and we need to
  stop waiting for events and probably exit (knotty does this). This
  will occur if an exception or bb.fatal() happens during an event
  handler.

This fixes a couple of issues highlighted when using devtool upgrade or
modify on a non-supported recipe with intel-iot-refkit together with
bitbake master, but I'd be very surprised if it were hard to reproduce
in other scenarios.

(From OE-Core rev: 65e644368fc9c294af96906528ee0cf30305e0a6)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Paul Eggleton
534eceb890 bitbake.conf: whitelist BB_SERVER_TIMEOUT from config hash
We don't need to reparse recipes just because BB_SERVER_TIMEOUT changed,
so exclude it from the config hash.

(From OE-Core rev: a686fcabacd49fdb814e646305c1f33fee1d5abf)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Leonardo Sandoval
6cbe18ff83 terminal: wait for terminal task to finish before procedding
This commit generalizes the work done in [1] and [2], both fixing
issues on several areas (the former with -c patch and gnome-terminal and
the latter with -c menuconfig and several terminals, including
gnome-terminal and tmux). The main idea is to get the PID
from the new spawned terminal and loop there until finished.

[1] 76e8ab47c9: terminal: Fix gnome-terminal to work with recent versions
[2] 7d02ea283b: cml1.bbclass: wait until menuconfig terminal finishes

(From OE-Core rev: 55707401d5bfb1f7686c273fc2d0db89df206395)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Leonardo Sandoval
c4b9c258d5 Revert "cml1.bbclass: wait until menuconfig terminal finishes"
This reverts commit d2ebee7c3a.

(From OE-Core rev: da7bc68c399bbcd1baf946931200eba72268b0b3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Leonardo Sandoval
d97b2bdb0b sstatetests: Use python function instead of bitbake-diffsigs script
Using a python function instead of launching a subprocess fasten the
diffsigs computation.

[YOCTO #11651]

(From OE-Core rev: 5dd65cf50273519fa45bd056b9ff342d9984a382)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Ross Burton
cb31b00076 diffstat: exclude aclocal
Instead of moving aclocal.m4 to acinclude.m4 in a custom do_configure, simply
tell autoreconf not to run aclocal.

(From OE-Core rev: 5cc53ea9347035f96a721ab057a338eded5c5c67)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Ross Burton
6f72bf8a3a diffstat: use HTTP mirror for SRC_URI
The Invisible Mirror FTP service is currently down, and FTP is horrible, so
switch to the HTTP mirror.

(From OE-Core rev: f31461f8ea11e82dbe14454a1149d9ec2120404d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
He Zhe
f63cb62db4 qemux86 qemux86-64: Enable pci
lspci and some other software require "pci" in MACHINE_FEATURES and PCI
is valid in the qemux86* context.

(From OE-Core rev: aec9a159dbc7a78953da73ba9dfccc9e9c9514a7)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Huang Qiyu
1d1d7cfedf librsvg: 2.40.17 -> 2.40.18
Upgrade librsvg from 2.40.17 to 2.40.18.

(From OE-Core rev: 199b1ed7439ee217d860d8940b5738d3c7022113)

Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-09 09:24:15 +01:00
Richard Purdie
9ed748a542 bitbake: daemonize: Always print any remaning UI events at exit
If there are events in the UI queue we want to print them regardless of
whether we're handling an exception or something like SystemExit.

This improves error messages for some other failure cases where currently
no logging would get printed and leave the user confused as to what went
wrong.

(Bitbake rev: 76c4f2c20216719736766e8ae7d089ccd061b71b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Richard Purdie
66b8c16659 bitbake: cooker: Ensure all tasks are shown in task dependency tree
"bitbake -g m4-native -c do_unpack" doesn't list any dependencies in
task-depends.dot. This is because no header describing the task was
added unless a task has dependencies. Tweak the code to fix this.

[YOCTO #10893]

(Bitbake rev: e2fbe728769f09ef4178e2ef4d69a2f60ffe3ebb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Mark Asselstine
c760d99466 python: don't include -tests with modules
Although 'test' is listed in the python module list
(https://docs.python.org/3/py-modindex.html) it is meant only to be
used 'internally' by folks developing python itself. Per the
documentation:

  Note The test package is meant for internal use by Python only. It
  is documented for the benefit of the core developers of Python. Any
  use of this package outside of Python’s standard library is
  discouraged as code mentioned here can change or be removed without
  notice between releases of Python.

Per the above it is best not to include this module to discourage
folks who might not head the above warnings. Additionally this module
is one of the largest py modules going, by dropping this unneeded
module from the 'modules' package we can reduce overall image size,
something which is important for many embedded deployments.

The generator scripts as well as the manifests have thus been modified
accordingly, providing a generic mechanism to exclude modules from the
'all modules' package.

(From OE-Core rev: a5bb13a5d7d7a668ca61da6b17884e3b05b95355)

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Jonathan Liu
843a74d708 wic: improve generating disk system identifier
This should reduce the chance of generating 0xffffffff as the disk
system identifier.

(From OE-Core rev: 5619e72facbc9228d3cf8f844f198e03b536ac8c)

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Ming Liu
7a25294b71 meta: drop do_bootdirectdisk do_vmimg references
do_bootdirectdisk and do_vmimg had been dropped by commit 929ba563:
[ image: Convert vmdk/vdi/qcow2 to strict CONVERSION_CMD types ]

Also drop the references to them and image-vm.

(From OE-Core rev: 609f7f4ecd17c8299b97d9face098e3cc44fa6eb)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Patrick Ohly
86abf0c1af autoconf-archive: GPLv3 + autoconf exception
The COPYING file specifies pure GPLv3, not GPLv2 & GPLv3, with the
autoconf exception in COPYING.EXCEPTION. OE-core currently has
GPL-3.0-with-GCC-exception for this in meta/conf/licenses.conf, so
this is used here despite the deprecation note for that license
identifier in https://spdx.org/licenses/GPL-3.0-with-autoconf-exception.

(From OE-Core rev: 5849391a1854743af26503db603ad578d8d19e25)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Ross Burton
7dd7ef3bd2 re2c: fix build race
(From OE-Core rev: 33bd61e34f0d17841f0817bfdcdf87320a6743ec)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Richard Purdie
64d15c298d uninative: Allow a local own-mirror to work with uninative
The games we play with path manipulation of DL_DIR in uninative mean standard
PREMIRRORS don't work and we can't easily put 'chksum' into the url path from
a url parameter with the current fetcher url handling to make a generic
remapping. We therefore add to PREMIRRORS when we know the chksum to
create a premirror mapping which can work.

[YOCTO #9888]

(From OE-Core rev: 3b0309dbb5d52e9d7abf6fd89cc999ac4cc5d2fb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-03 11:14:13 +01:00
Richard Purdie
914a53cc94 bitbake: daemonize: clean up code
This was originally based on some other code but its mostly misleading
comments now. Massively clean this up and accept its now a total fork.
There are no funciton changes here, just cleanup.

(Bitbake rev: 3daa9001269e5b9156d0eb3299d2628d2d219fff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
Richard Purdie
8625f83e38 bitbake: daemonize: Ensure child process exits safely
When we create the child, if an exception occurred it was transfering
back into the parent context. We don't want to do that us use a try/finally
to ensure we exit.

We need to ensure a traceback is printed and any queued UI messages which
may not have made it to the client UI at this point.

(Bitbake rev: dec1d2c26f6cb3ffeb44beaab0129cd531a6d08b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
Richard Purdie
3010e4e7cf bitbake: process: Add some extra server startup logs
We have cases where the server is being started but we're not seeing any messages
from it. Add some earlier logging so we can try and better understand where
issues may be occurring.

(Bitbake rev: 10a6a48c0c5a2fe2051e90143e66075356853971)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
Richard Purdie
129a52725f bitbake: process: Reorder server command processing and handle EOFError
If the connection control socket and the command channel close together,
we can race and hit EOFError exceptions before we close the channel.

Reorder the code to handle this in the correct order and ignore the
EOFError exceptions as they mean the client is disconnecting and shouldn't
terminate the server.

(Bitbake rev: 974281ed72d8366baa16ee85f7e93970689b5956)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
Ross Burton
780e9fb877 bitbake: wget: fix FusionForge workaround
My previous assertion about FusionForge appears to have been wrong, or
FusionForge has changed behaviour, or both.

FusionForge now mandates that downloads have the Accept header set, despite that
header being optional, and returns a 406 Not Acceptable error if it isn't set.
As we were pretending that 406 was actually 405 (Moved) and tried to handle it as a
redirect this results in an infinite loop until Python kills the recursion.

Delete the handling of 406 as 405, and pass Accept: */* in the headers.

(Bitbake rev: bb70ae0c9aac5ec688026d23a64ac0cac1947187)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
David Reyna
9d1faf1a6f bitbake: toaster: move to new bitbake xmlrpc default
The bitbake option "-t SERVERTYPE" was deprecated and can be
removed since the desired XMLRPC listener now the default.

The bitbake server port cannot be "-1" anymore and must be
explicitly passed.

There is a race condition for the bblock file to not only
be created but to actually be populated, so a delay test loop
is required (usually only one pass).

The 'xmlrpcclient' is now the class that allows Toaster to for
example kill builds.

The events for populating the recipe parsing now either show only
the final result or are skipped entiredly, so the progress
calculator needs to be changed to not block on the parsing phase.

[YOCTO #11851]

(Bitbake rev: 2aa7ad38f760ec003fb18faa5aa0014cff191a7a)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
David Reyna
3bc3d26b46 bitbake: toaster: enable remote HTTP API for status aggregation
Add support for Toaster aggregators with a set of api links that
return JSON data for (a) builds in progress, (b) builds completed,
(c) specific build data, and (d) an is-alive health ping link.

[YOCTO #11794]

(Bitbake rev: d8e79661c69671dd424dca5cc3f7f2f855b0afed)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
Richard Purdie
3f71378fde bitbake: runqueue: Tweak debug message to make it more readable/diffable
Having this as one huge long line isn't easy to manipulate, split it into
multiple lines for ease of debugging issues.

(Bitbake rev: 5753fe81194f75fbcf4ccdc733cc585d02794cb1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:53 +01:00
Ross Burton
6986198da9 bitbake: fetch2: fix checkstatus fallback to MIRRORS
The checkstatus() code was expecting checkstatus to throw exceptions if it
failed, but in general it should return False.

(Bitbake rev: 57be5cc6228518e60f564570a39cebbeb6cf564e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:52 +01:00
Khem Raj
6f12ac612c mesa: Fix build when building with llvmpipe
Add following in mesa.inc to enable llvmpipe

PACKAGECONFIG_append_x86 = " gallium-llvm gallium r600"
PACKAGECONFIG_append_x86-64 = " gallium-llvm gallium r600"

This would enable llvmpipe for swrast, to check run this

root@qemux86:~# glxinfo | grep llvm
    Device: llvmpipe (LLVM 5.0, 128 bits) (0xffffffff)
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 5.0, 128 bits)

Backport patches to support llvm 5.0.0+
Add a patch to understand llvm version when llvm is build from git/svn

(From OE-Core rev: da29bc17e4dd748f50b054c5e3afaf8d41bf4077)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:32 +01:00
Khem Raj
5c77067ee9 llvm: Add recipe for 5.0
Based on recipe from meta-oe and clang recipe from meta-clang
Needed by mesa

Fixes
[YOCTO #11529]

(From OE-Core rev: 8724ef9c53e7804ead9ba0f019369b0e4daada63)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:32 +01:00
Khem Raj
e7bb5ae841 re2c: Transfer recipe from meta-oe and upgrade to 0.16
ninja needs it.

(From OE-Core rev: d7d46209a309735b503cfc543799faea1f794055)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:31 +01:00
Khem Raj
0c423f7272 ninja: Add recipe
llvm is using it, therefore move it from meta-oe

(From OE-Core rev: fc3aef67a95a90e9a485c6b0e93db8cdeab5d3ab)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:31 +01:00
Richard Purdie
a089f7b735 image: Make do_image_qa a dummy sstate task to match do_image_complete
Similar to do_image_complete, make do_image_qa a dummy sstate task
so that rm_work doesn't cause image generation to repeat on every
new build command.

(From OE-Core rev: ca61f5437cb2421a67f002785e644ba215e04aaf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:31 +01:00
Richard Purdie
c6958bbd87 image/rm_work: Promote do_image_complete to be more sstate like
We relied on the missing do_image_complete_setscene task to ensure the dummy
sstate tarball that was created would never be used. This lead to its own
issues and a better fix for SSTATE_SKIP_CREATION has now been merged.

We can therefore make do_image_complete look like a more standard sstate
task which means image generation doesn't keep rerunning when using rm_work.

We do need to turn do_image_complete's stamp into an sstate version to
handle this (it otherwise matches the do_image_* glob).

(From OE-Core rev: 2ff9d40dc88d43567472218cf3d3faf414398c71)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:31 +01:00
Richard Purdie
7b37b0ac07 image: Drop before do_build from do_rootfs and do_image
do_image_complete has the do_build dependency, these other two tasks
don't need it. If this is present, it complicates the dependency tree
and convinces rm_work that the tasks need to rerun even if they
already did since the stamps are removed.

Drop the unneeded dependency to help resolve this issue.

(From OE-Core rev: f61bcae0926a1ad79032119cc5656c0e862b13af)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:31 +01:00
Richard Purdie
0fcf2247b3 sstate: Improve SSTATE_SKIP_CREATION
Currently, dummy archives are created for skipped sstate tasks. We relied
on these never being installed (the setscene task is missing) however this
leads to odd behaviour as for example the setscene stamps are never looked
at.

Rather than trying to continue with the two separate behaviours, really
skip package creation. We do need the file manipulation steps to install files
under sstate control from a manifest perspective so we only skip at the final
creation step.

(From OE-Core rev: 1e95fc5419a131a5e4091b8ff01639de99284399)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:31 +01:00
Richard Purdie
35e3cb3012 rm_work: Improve handling for addto_recipe_sysroot
Rather than requiring each user to handle this individually, handle
addto_recipe_sysroot in the core class. As well as preserving the
sysroot directory, this also ensures the stamp is preserved rather
than rerunning the task every time as currently happens.

(From OE-Core rev: bf8b9858d9ccce27173d13938a83d249294cc473)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 15:13:31 +01:00
Ross Burton
4f9918ccfa libpng: fix MIRRORS usage
MIRRORS needs to be pairs of values for the original URL to match and the
location find it on the mirror.

(From OE-Core rev: a649f3da630e8ca2d3ca58b610f3918720dd5229)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-31 14:23:44 +01:00
Scott Rifenbark
2f25c9b56c yocto-project-qs: Added section for CROPS.
(From yocto-docs rev: 0d6fba532e0247db2cce4e94466f4476114d3e13)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:51 +01:00
Scott Rifenbark
b9a3edf6ce yocto-project-qs: Added writernotes style to the *.css file.
This style allows a writer to use the <para role='writernotes'>
tag to have text in the paragraph render in red.

(From yocto-docs rev: 65bb4edcd0a58ea8e17f28f9f5c13e2898c22745)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:51 +01:00
Scott Rifenbark
863a8c0bf6 yocto-project-qs: Updated overview to account for re-orged material
Because the YP development introductory information was moved to
the ref-manual, and the QS will get a CROPS section inserted,
the introductory section of the QS needed to be updated a bit.

(From yocto-docs rev: e173b762a74678cd660850e4f5bc28712c3d83ac)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:51 +01:00
Scott Rifenbark
f4aa9783bd yocto-project-qs, ref-manual: Moved YP intro from QS to ref-manual
Fixes [YOCTO #11630]

The introductory stuff in the QS is really conceptual information and
needs to be in the ref-manual where YP is introduced.  Regarding the
QS, all we really need to do is point to places where the reader can
go to find that stuff out.

Part of this move involved getting the diagram of the YP flow for
the environment from the QS to the ref-manual.  That figure was
named "YP-flow-diagram.png".  It was named "yocto-environment.png"
in the QS but I renamed it when moving it to the ref-manual.  This
caused some edits to the "Makefile" to clean up the figure lists
for tarballs.

(From yocto-docs rev: ab108c0959e3a9f36d25080245482f8a790c8c87)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:51 +01:00
Kristi Rifenbark
5a402f9d1b poky.ent: Updated CentOS required package
Replaced "python34-pip" package with "python3-pip"
in the list of required packages for CentOS' variable.

(From yocto-docs rev: 5d48ea7953169b4392d6caf0fb8f2f952479f033)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:51 +01:00
Kristi Rifenbark
6cf1e8feea poky.ent: Corrected package duplication
Removed duplicated package, "which" in list of
required packages for Fedora's variable.

(From yocto-docs rev: e016735fe7ef0d866d44df1100597ab3f3af7d5f)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:51 +01:00
Richard Purdie
548b1b0c8a uninative: Update to 1.7 uninative release
This updates to a newer glibc and updates patchelf to include a bugfix
to work with gold.

(From OE-Core rev: a2ab288bd002ebb6e64d46e941fb122e1157ff49)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Denys Dmytriyenko
20ae186dfc autoconf: fix typo in SUMMARY
(From OE-Core rev: fb6500144f2244815be3f81908ee3baad373e348)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Tom Rini
1f1d226aed imagefeatures: Add a test for various hypervisor formats
We add a new test that will create core-image-minimal for wic.vmdk,
wic.vdi and wic.qcow2.  We then confirm via qemu-img that the resulting
file is of the expected type.

Cc: Ed Bartosh <ed.bartosh@linux.intel.com>
(From OE-Core rev: 1392fdeaf6acc7c8d2ff9a5a2bf6ef2f5928957d)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Tom Rini
f809daa9ac imagefeatures: Add a test for many CONVERSION_CMDs being chained
Add a new test to create a long (and not otherwise useful) image,
ext4.bmap.gz.bz2.lzo.xz.u-boot and also the sha256sum of it.  Check that
the resulting sha256sum is valid.

Cc: Ed Bartosh <ed.bartosh@linux.intel.com>
(From OE-Core rev: ac4402bff547b017284b12c1874d4094c169419d)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Tom Rini
41cc7f8282 imagefeatures: Extend test_bmap to validate gzip
We extend the existing test_bmap test to also produce an ext4.bmap.gz
file and then have gzip confirm that it contains valid gzip data.  This
tests that we are able to chain at least 2 CONVERSION_CMDs together.

Cc: Ed Bartosh <ed.bartosh@linux.intel.com>
(From OE-Core rev: 1e9ca92f84d9d5b4e56d47dfd4b3d7f9aba3d21b)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Tom Rini
03d5daf1ae wic: Switch to using --use-uuid by default
The most portable way to specifiy a root device in a disk image that we
create is to use PARTUUID rather than /dev/sda2.  As background, both
GPT and MBR tables provide valid UUID values for each partition and the
Linux Kernel contains the logic to parse this value.  With this change
we can now boot the default disk images when used as any valid block
device that the included kernel uses.  This for example means that
VirtualBox can be used to run vmdk without changes as it uses IDE for
the virtual disk controller.

Cc: Matt Porter <mporter@konsulko.com>
(From OE-Core rev: 8a58e9bb3e76a9962f1d14a8bdd3f7de675c3492)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Tom Rini
9d07c736e3 image: Convert vmdk/vdi/qcow2 to strict CONVERSION_CMD types
The vmdk/vdi/qcow2 IMAGE_FSTYPEs predate wic.  As such, they provide
some similar underlying functionality in order to produce a "disk" image
that in turn can be converted into different formats that various
hypervisor types work with.  They do not however provide the ability for
other disk image types to be converted into these same output types.
Furthermore, they are less flexible than what wic does provide.  This
drops the old style vmdk/vdi/qcow2 types and re-introduces them under
the CONVERSION_CMD framework.  The equivalent of vmdk is now wic.vmdk
and so forth for the other types.

(From OE-Core rev: 929ba563f1bc7195c4981b8e139c432b2cc388ea)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Leonardo Sandoval
d2ebee7c3a cml1.bbclass: wait until menuconfig terminal finishes
There are at least two terminals types (gnome and tmux) that when
launched to show the kernel's menuconfig, we lost track of the corresponding
process ID, thus there is no way to see when they finish, yielding identical
timestamps before and after menuconfig thus compile's task
is never tainted. This commit takes the solution from [1] but now in the menuconfig's
context.

[1] http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=c706bfbabbf9f7caf2cf509eb91381fb49aa44cb

[YOCTO #11146]

(From OE-Core rev: 7d02ea283b6587f3f79c5846b64b9ba1d6fe8026)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Kai Kang
e35fe8c06d assimp: upgrade to 4.0.0
Upgrade assimp to 4.0.0.

* Because there is also an assimp recipe in meta-oe, so update
  DESCRIPTION, HOMEPAGE and SECTION from it.
* Remove redundant license file
* Update EXTRA_OECMAKE to fix library install path for multilib

(From OE-Core rev: e639f8845f78a0a75b9cab81d9a9f6a2810a313c)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Jonathan Liu
408c65613a wic: ensure generated disk system identifier is non-zero
Zero may be interpreted as no MBR signature present and another
partitioning program might install a new MBR signature.

(From OE-Core rev: f53b5555d6eaa171bc5882cfee807cf62576862d)

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:20 +01:00
Patrick Ohly
3582f6fc01 autoconf-archive: simplify and fix recipe
The COPYING file specifies pure GPLv3, not GPLv2 & GPLv3. There is
also the COPYING.EXCEPTION file with the autotools exception, which
gets ignored here in the recipe to keep it simpler.

All of the explicit dependencies seem unnecessary, and RDEPENDS_${PN}
doesn't do anything for native recipes either, so all of that gets
removed.

It also built fine without the m4 and parallel build workarounds.

There's no need to have a separate .inc file.

(From OE-Core rev: 5002004b891895654cbad53555ee46e2ed188630)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Patrick Ohly
ae38bfe2cd autoconf-archive: move from meta-oe to OE-core
Having common macros in OE-core that are needed by autotools based
projects makes sense. For example, tpm2.0-tools in meta-measured
depended on meta-oe only because of autoconf-archive.

This is a verbatim copy of the autoconf-archive recipe in
meta-openembedded rev 1cbd1bc1, with just one change: the patch which
disabled the installation of ax_code_coverage.m4 and
ax_check_enable_debug.m4 and the dependency on gnome-common were
removed.

So now autoconf-archive in OE-core provides them. gnome-common in
meta-oe will be changed to not install them and instead depend on
autoconf-archive.

(From OE-Core rev: 40711432b82fc6efb9e40748532ed68a64fbe628)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ming Liu
9b8411d787 rootfsdebugfiles.bbclass: add a optional parameter to choose file mode
This is in case that sometimes the copied target files might be
expected to have a desired mode, for instance, the ssh keys should not
be too open, otherwise the users will get a "Permission denied" error.

(From OE-Core rev: 0ae4c1eeb1a70bae324347445895c7d312cf503d)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ed Bartosh
c8a4feacd8 oe-selftest: wic: fix test_quemu
This test case boots the image in qemu and checks for mounted
partitions. As /boot is mounted automatically the test case fails.
Fixed this by adding /boot to the list of mounted partitions.

(From OE-Core rev: e5ba124b01ff6883a08c91daa47343dd09f6260d)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ed Bartosh
ae4ee4d511 wic: add /boot mount point to fstab by default
wic avoided adding /boot to fstab for no reason.
This exception was hardcoded in the wic code.

There is no need for this as mountpoint in .wks file is an optional
field. It can be used only if user wants to have partitions
automatically mounted on system boot.

[YOCTO #11662]

(From OE-Core rev: 2376b05512ddb8c4ec3aaf1df11071f536a76bd9)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ed Bartosh
092f4fafaa wic: rootfs: make copied rootfs unique
Used unique suffix (line number from .wks file) for the
copied rootfs directory to avoid possible conflicts.

(From OE-Core rev: 01efc234a8caab67ed3138ab2de9bbd82ce97b44)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ed Bartosh
d4e60fe6a4 wic: rootfs: fix rootfs path reporting
wic gets rootfs paths from partition object property
'rootfs_dir' and shows them in final report.

rootfs plugin sets this property to the temporary path,
which causes temporary paths appearing in the report.

Changed the code to prevent storing temporary rootfs path
in part.rootfs_dir. This should fix the report.

(From OE-Core rev: 28d2d7d6f79df08431187c7debaab2a3fa516671)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ed Bartosh
5541191b99 wic: use absolute paths in rootfs plugin
Using relative paths can cause copyhardlinktree API to fail as
it changes current directory when working. Converted all paths
to absolute paths using os.path.realpath.

(From OE-Core rev: a1c83cebe986e211dfc31be5cbd748f53fc298df)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ed Bartosh
c4f9d8151f wic: copy rootfs directory before changing fstab
wic updates /etc/fstab on root partition if there are
valid mount points in .wks

When wic runs from bitbake this can cause incorrect results
or even breakage of other tasks working with the same rootfs
directory in parallel with do_image_wic.

Implemented copying rootfs directory to a temporary location
using copyhardlinktree before updating fstab to avoid conflicts with
other tasks working with the same rootfs directory.

(From OE-Core rev: 92e1c7d47e695eb4ce1a863cd0f6c49dca1c2339)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Ed Bartosh
a9cab2f0ed image_types.bbclass: ignore tar exit code 1
tar exists with 1 and produces warning "file changed as we read it"
if content is changed while tar archives it. Even hardlinking content
causes tar to fail this way as it changes file ctime.

Other tasks running in parallel with do_image_tar may need to hardlink
rootfs content in order to change it, e.g. do_image_wic does this to
update etc/fstab.

Ignored tar exit code 1 to be able to hardlink rootfs content while
do_rootfs_tar is tarring it.

[RP: Removed bashism]

(From OE-Core rev: 402b4cffbb4c58cfee93db18192f2b218ee0ae35)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Saul Wold
373ea52b89 systemtap: ensure systemtap-native is available
Since we are adding the addto_sysroot that that is specific to the
native recipe, we must split this into a seperate -native .bb recipe.

When systemtap-native is built, the intention is that it's usable
from the native sysroot when done, ensure it's there with a forced
addto_recipe_sysroot task, we also don't want to clean the sysroot
when RM_WORK is enabled otherwise we loose the binaries.

[YOCTO #11403]

(From OE-Core rev: 98fba18e93abe8efce0a5b40d51e178c9de4d1e5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
(cherry picked from commit 2fdb59741b4fdeaa4aee10812c4a409cdc11a02d)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Aníbal Limón
0f0368d052 oeqa/core/runner: OEStreamLogger don't buffer test execution writes
Since OEQA framework uses Python logging functionality to report test
results there is a class that wraps PyUnit writes into logging commands
(OEStreamLogger), so don't buffer the actual test execution to have
insight of what is currently executing.

This fix will change a little the test output format adding an '\n'
previous the test result, for example:

From:

test_nonmatching_checksum (lic_checksum.LicenseTests) ... ok

To:

test_nonmatching_checksum (lic_checksum.LicenseTests)
 ... ok

This is because the new line added by the PyUnit StreamLogger because
currently we don't have a manner to identify when a test execution
starts at report level (write msg).

[YOCTO #11827]

(From OE-Core rev: 4c2276469f58a88f864eb374c00dbbaace702de4)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Aníbal Limón
2d50f153b5 oeqa/{core,selftest}: Add support to validate if a specified test case isn't found
If some test module/case is specified to run and isn't found the OEQA
framework didn't notice it, so complete the implementation using
modules_required and validate for the test case prescense.

Raise an exception when the test module/case required isn't found.

[YOCTO #11645]

(From OE-Core rev: e50b415aaaa1581473f85f0a8afa278b5f95129b)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Andrej Valek
4c09b7a745 libpcre: upgrade 8.40 -> 8.41
(From OE-Core rev: 07c5eb7f9232ecd4a094040cbe85af2727bd2bd5)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Jackie Huang
6c35b66658 ncurses: add SYSROOT_DESTDIR for siteconfig_gencache
After switching to Recipe Specific Sysroots, ncurses
will not be populated in its own sysroots, then
siteconfig_gencache fails to find some headers,
so add ${SYSROOT_DESTDIR}/${includedir} into the
search list to fix the issue.

(From OE-Core rev: 2ef34f7fb60ecdff29aae1d54a90a2e765c15e1e)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Jackie Huang
e925d9b9cc siteinfo: fix siteinfo_get_files to work with RSS
The siteconfig cache files in ACLOCALDIR setup by autotools.bbclass
has been dropped after switching to RSS, so change the siteconfig
search path back to SITECONFIG_SYSROOTCACHE and the parameter
name changed from aclocalcache to sysrootcache.

(From OE-Core rev: 5b1454304483a0bc725b32fd5458e5281c68112f)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Jackie Huang
a88d33f47f debianutils: set higher priority than busybox for run-parts
debianutils-run-parts should have higher priority than
busybox (which is 50), so set the priority to 60 for
debianutils-run-parts.

(From OE-Core rev: 56f6fc7d6de0a46046ea2abcc392b1da88e398ec)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Juan M Cruz Alcaraz
1305b64ffe package/bbclass: sources are packaged separately from debug.
The configuration variable PACKAGE_DEBUG_SPLIT_STYLE includes
the new mode debug-with-srcpkg that instructs the system to
remove the source files from the debug package but include them in
a separate package with a "-src" suffix in the name.

[YOCTO #9998]

(From OE-Core rev: b8f9ffa37f67172a01837c88c861dc736d267569)

Signed-off-by: Juan M Cruz Alcaraz <juan.m.cruz.alcaraz@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
California Sullivan
68e5381691 module.bbclass: move make scripts earlier
Some out of tree modules require the scripts for configuration. For
example, backport-iwlwifi.

(From OE-Core rev: 7a045f6df2366026d28fe8d36e6d594ce5aa559a)

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Richard Purdie
fab2219af4 Revert "core-image-minimal-initramfs: use initramfs-framework by default"
This reverts commit 28fc6ba761ed4a47efa7c43e7f7dff5e2fe72b5e since it causes
runqemu.RunqemuTests.test_boot_machine_iso and runqemu.RunqemuTests.test_boot_deploy_hddimg
to fail in oe-selftest.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:46:19 +01:00
Leonardo Sandoval
c147d7753f bsp/help: include a warning showing deprecation of create-layer plugin
This plugin will be removed starting 2.5 development in favour
of using 'bitbake-layers create-layer' script/plugin, offering a single
script to manage layers.

(From meta-yocto rev: 76dd79e345d8edb22fc7aefd31f2a1f150916718)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Christopher Larson
e75639f85a bitbake: tests/fetch: fix GitShallowTest.test_bitbake
`git fetch --tags` seems to interact badly with `mirror=fetch`, resulting in
the regular branches not being fetched, so drop the unnecessary `--tags`. This
fixes this unit test failure: `bb.fetch2.FetchError: Fetcher failure: Unable
to resolve 'master' in upstream git repository in git ls-remote output for
/tmp/tmp4ag_mgmn/gitsource`

[YOCTO #11698]

(Bitbake rev: 2d0203fae08c5ff8dc3e9afaa9a819abc4a1af6f)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
e4c9a92cb4 bitbake: main: Always return 0 for bitbake --kill-server
If the server isn't running return 0 as to do otherwise complicates
scripts which do cleanup of bitbake servers which would potentially
be memory resident.

(Bitbake rev: 0f85c54385f325f3ebbf911b35bbac11b8863b6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
5f835043f2 bitbake: process: Clean up server communication timeout errors
This timeout path was commonly hit due to errors starting the server. Now we
have a better way to handle that, the retry logic can be improved and cleaned
up. This patch:

* Makes the timeout 5s rather than intervals of 1s with a message. Paul
  noted some commands can take around 1s to run on a server which has just
  been started on a loaded system.
* Allows a broke connection to exit immediately rather than retrying something
  which will never work.
* Drops the Ctrl+C masking, we shouldn't need that anymore and any issues
  would be better handled in other ways.

This should make things clearer and less confusing for users and is much cleaner
code too.

(Bitbake rev: 8633b7cd03cfaba3e0359aa5da22fc76b66768c7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
07cee9dea1 bitbake: process: Don't leak open pipes upon reconnection
If we reconnect to the server, stop leaking pipes and clean up
after ourselves.

(Bitbake rev: f41e4e971e807157be68cf4496580494b8b60643)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
b2c39835bb bitbake: process/cooker: Allow UI process to know if the cooker was started successfully
Currently if the server fails to start, the user sees no error message and
the server will be repeatedly attempted to be started until some longer
timeouts expire. There are error messages in the cookerdeamon log but
nobody thinks to look there.

Add in a pipe which can be used to tell the starting process whether the cooker
did actually start or not. If it fails to start, no further attempts can be
made and if present, the log file can be shown to the user.

[YOCTO #11834]

(Bitbake rev: 57000d44beb1aeba37dfc70782b0d6418943acc5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
dd3a59d354 bitbake: process: Move socket keep alive into BitBakeProcessServerConnection
This cleans up the socket keep alive into better class structured code
and adds cleanup of the open file descriptors upon shutdown.

(Bitbake rev: 77fd3a3a29a569e212374b27aea742ddbaafcdd5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
76b6cdf414 bitbake: process: Allow BBUIEventQueue to exit cleanly
Currently the monitoring thread exits with some error code or runs indefinitely. Allow
closure of the pipe its monitoring to have the thread exit cleanly/silently.

(Bitbake rev: 930d077637928213e13a07c78fee3bf7a8c37ebf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
8b7aa5bfd6 bitbake: process: Ensure ConnectionReader/Writer have fileno() and close() methods
Expose the underlying close() and fileno() methods which allow connection
monitoring and cleanup.

(Bitbake rev: f79187f4ebfad7969be47b429995e7f7a3e33c1e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
Richard Purdie
25e52d34d0 bitbake: event: Don't write duplicate logs to stdout and stderr in no UI case
This code would duplicate messages to stdout and stderr when no UI connected
and there were error level messages.

Rework the code so it either uses stderr (for errors and above) or
stdout for warnings/debug but not both for the same messages.

(Bitbake rev: 45cff5734ba2ba8c8d36d17d722a5804d39b258b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 08:43:36 +01:00
700 changed files with 11003 additions and 9803 deletions

View File

@@ -24,6 +24,14 @@ Usage: source toaster start|stop [webport=<address:port>] [noweb]
[webport] Set the development server (default: localhost:8000)
"
custom_extention()
{
custom_extension=$BBBASEDIR/lib/toaster/orm/fixtures/custom_toaster_append.sh
if [ -f $custom_extension ] ; then
$custom_extension $*
fi
}
databaseCheck()
{
retval=0
@@ -50,6 +58,11 @@ databaseCheck()
webserverKillAll()
{
local pidfile
if [ -f ${BUILDDIR}/.toastermain.pid ] ; then
custom_extention web_stop_postpend
else
custom_extention noweb_stop_postpend
fi
for pidfile in ${BUILDDIR}/.toastermain.pid ${BUILDDIR}/.runbuilds.pid; do
if [ -f ${pidfile} ]; then
pid=`cat ${pidfile}`
@@ -89,6 +102,7 @@ webserverStartAll()
else
echo "Toaster development webserver started at http://$ADDR_PORT"
echo -e "\nYou can now run 'bitbake <target>' on the command line and monitor your build in Toaster.\nYou can also use a Toaster project to configure and run a build.\n"
custom_extention web_start_postpend $ADDR_PORT
fi
return $retval
@@ -168,7 +182,6 @@ fi
unset OE_ROOT
WEBSERVER=1
ADDR_PORT="localhost:8000"
unset CMD
@@ -241,6 +254,7 @@ fi
echo "The system will $CMD."
# Execute the commands
custom_extention toaster_prepend $CMD $ADDR_PORT
case $CMD in
start )
@@ -262,9 +276,10 @@ case $CMD in
if [ ! -f "$TOASTER_DIR/toaster.sqlite" ] ; then
if ! databaseCheck; then
echo "Failed ${CMD}."
return 4
return 4
fi
fi
custom_extention noweb_start_postpend $ADDR_PORT
fi
if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then
echo "Failed ${CMD}."
@@ -278,6 +293,7 @@ case $CMD in
# set fail safe stop system on terminal exit
trap stop_system SIGHUP
echo "Successful ${CMD}."
custom_extention toaster_postpend $CMD $ADDR_PORT
return 0
;;
stop )
@@ -285,3 +301,5 @@ case $CMD in
echo "Successful ${CMD}."
;;
esac
custom_extention toaster_postpend $CMD $ADDR_PORT

View File

@@ -78,6 +78,7 @@ class Command:
if not hasattr(command_method, 'readonly') or False == getattr(command_method, 'readonly'):
return None, "Not able to execute not readonly commands in readonly mode"
try:
self.cooker.process_inotify_updates()
if getattr(command_method, 'needconfig', False):
self.cooker.updateCacheSync()
result = command_method(self, commandline)
@@ -98,6 +99,7 @@ class Command:
def runAsyncCommand(self):
try:
self.cooker.process_inotify_updates()
if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown):
# updateCache will trigger a shutdown of the parser
# and then raise BBHandledException triggering an exit

View File

@@ -165,7 +165,7 @@ class BBCooker:
Manages one bitbake build run
"""
def __init__(self, configuration, featureSet=None):
def __init__(self, configuration, featureSet=None, readypipe=None):
self.recipecaches = None
self.skiplist = {}
self.featureset = CookerFeatures()
@@ -189,7 +189,7 @@ class BBCooker:
# If being called by something like tinfoil, we need to clean cached data
# which may now be invalid
bb.parse.__mtime_cache = {}
bb.parse.clear_cache()
bb.parse.BBHandler.cached_statements = {}
self.ui_cmdline = None
@@ -205,15 +205,11 @@ class BBCooker:
self.inotify_modified_files = []
def _process_inotify_updates(server, notifier_list, abort):
for n in notifier_list:
if n.check_events(timeout=0):
# read notified events and enqeue them
n.read_events()
n.process_events()
def _process_inotify_updates(server, cooker, abort):
cooker.process_inotify_updates()
return 1.0
self.configuration.server_register_idlecallback(_process_inotify_updates, [self.confignotifier, self.notifier])
self.configuration.server_register_idlecallback(_process_inotify_updates, self)
# TOSTOP must not be set or our children will hang when they output
try:
@@ -237,10 +233,23 @@ class BBCooker:
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, self.sigterm_exception)
if readypipe:
os.write(readypipe, b"ready")
os.close(readypipe)
def process_inotify_updates(self):
for n in [self.confignotifier, self.notifier]:
if n.check_events(timeout=0):
# read notified events and enqeue them
n.read_events()
n.process_events()
def config_notifications(self, event):
if event.maskname == "IN_Q_OVERFLOW":
bb.warn("inotify event queue overflowed, invalidating caches.")
self.parsecache_valid = False
self.baseconfig_valid = False
bb.parse.clear_cache()
return
if not event.pathname in self.configwatcher.bbwatchedfiles:
return
@@ -252,6 +261,10 @@ class BBCooker:
if event.maskname == "IN_Q_OVERFLOW":
bb.warn("inotify event queue overflowed, invalidating caches.")
self.parsecache_valid = False
bb.parse.clear_cache()
return
if event.pathname.endswith("bitbake-cookerdaemon.log") \
or event.pathname.endswith("bitbake.lock"):
return
if not event.pathname in self.inotify_modified_files:
self.inotify_modified_files.append(event.pathname)
@@ -674,12 +687,12 @@ class BBCooker:
depend_tree["pn"][pn][ei] = vars(self.recipecaches[mc])[ei][taskfn]
dotname = "%s.%s" % (pn, bb.runqueue.taskname_from_tid(tid))
if not dotname in depend_tree["tdepends"]:
depend_tree["tdepends"][dotname] = []
for dep in rq.rqdata.runtaskentries[tid].depends:
(depmc, depfn, deptaskname, deptaskfn) = bb.runqueue.split_tid_mcfn(dep)
deppn = self.recipecaches[mc].pkg_fn[deptaskfn]
dotname = "%s.%s" % (pn, bb.runqueue.taskname_from_tid(tid))
if not dotname in depend_tree["tdepends"]:
depend_tree["tdepends"][dotname] = []
depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, bb.runqueue.taskname_from_tid(dep)))
if taskfn not in seen_fns:
seen_fns.append(taskfn)
@@ -1188,7 +1201,7 @@ class BBCooker:
bf = os.path.abspath(bf)
self.collection = CookerCollectFiles(self.bbfile_config_priorities)
filelist, masked = self.collection.collect_bbfiles(self.data, self.data)
filelist, masked, searchdirs = self.collection.collect_bbfiles(self.data, self.data)
try:
os.stat(bf)
bf = os.path.abspath(bf)
@@ -1464,6 +1477,7 @@ class BBCooker:
self.updateCacheSync()
if self.state != state.parsing and not self.parsecache_valid:
bb.parse.siggen.reset(self.data)
self.parseConfiguration ()
if CookerFeatures.SEND_SANITYEVENTS in self.featureset:
for mc in self.multiconfigs:
@@ -1477,7 +1491,11 @@ class BBCooker:
self.recipecaches[mc].ignored_dependencies.add(dep)
self.collection = CookerCollectFiles(self.bbfile_config_priorities)
(filelist, masked) = self.collection.collect_bbfiles(self.data, self.data)
(filelist, masked, searchdirs) = self.collection.collect_bbfiles(self.data, self.data)
# Add inotify watches for directories searched for bb/bbappend files
for dirent in searchdirs:
self.add_filewatch([[dirent]])
self.parser = CookerParser(self, filelist, masked)
self.parsecache_valid = True
@@ -1649,6 +1667,18 @@ class CookerCollectFiles(object):
collectlog.error("no recipe files to build, check your BBPATH and BBFILES?")
bb.event.fire(CookerExit(), eventdata)
# We need to track where we look so that we can add inotify watches. There
# is no nice way to do this, this is horrid. We intercept the os.listdir()
# calls while we run glob().
origlistdir = os.listdir
searchdirs = []
def ourlistdir(d):
searchdirs.append(d)
return origlistdir(d)
os.listdir = ourlistdir
# Can't use set here as order is important
newfiles = []
for f in files:
@@ -1666,6 +1696,8 @@ class CookerCollectFiles(object):
if g not in newfiles:
newfiles.append(g)
os.listdir = origlistdir
bbmask = config.getVar('BBMASK')
if bbmask:
@@ -1724,7 +1756,7 @@ class CookerCollectFiles(object):
topfile = bbfile_seen[base]
self.overlayed[topfile].append(f)
return (bbfiles, masked)
return (bbfiles, masked, searchdirs)
def get_file_appends(self, fn):
"""

View File

@@ -1,49 +1,14 @@
"""
Python Daemonizing helper
Configurable daemon behaviors:
1.) The current working directory set to the "/" directory.
2.) The current file creation mode mask set to 0.
3.) Close all open files (1024).
4.) Redirect standard I/O streams to "/dev/null".
A failed call to fork() now raises an exception.
References:
1) Advanced Programming in the Unix Environment: W. Richard Stevens
http://www.apuebook.com/apue3e.html
2) The Linux Programming Interface: Michael Kerrisk
http://man7.org/tlpi/index.html
3) Unix Programming Frequently Asked Questions:
http://www.faqs.org/faqs/unix-faq/programmer/faq/
Modified to allow a function to be daemonized and return for
bitbake use by Richard Purdie
Originally based on code Copyright (C) 2005 Chad J. Schroeder but now heavily modified
to allow a function to be daemonized and return for bitbake use by Richard Purdie
"""
__author__ = "Chad J. Schroeder"
__copyright__ = "Copyright (C) 2005 Chad J. Schroeder"
__version__ = "0.2"
# Standard Python modules.
import os # Miscellaneous OS interfaces.
import sys # System-specific parameters and functions.
import os
import sys
import io
# Default daemon parameters.
# File mode creation mask of the daemon.
# For BitBake's children, we do want to inherit the parent umask.
UMASK = None
# Default maximum for the number of available file descriptors.
MAXFD = 1024
# The standard I/O file descriptors are redirected to /dev/null by default.
if (hasattr(os, "devnull")):
REDIRECT_TO = os.devnull
else:
REDIRECT_TO = "/dev/null"
import traceback
def createDaemon(function, logfile):
"""
@@ -66,36 +31,6 @@ def createDaemon(function, logfile):
# leader of the new process group, we call os.setsid(). The process is
# also guaranteed not to have a controlling terminal.
os.setsid()
# Is ignoring SIGHUP necessary?
#
# It's often suggested that the SIGHUP signal should be ignored before
# the second fork to avoid premature termination of the process. The
# reason is that when the first child terminates, all processes, e.g.
# the second child, in the orphaned group will be sent a SIGHUP.
#
# "However, as part of the session management system, there are exactly
# two cases where SIGHUP is sent on the death of a process:
#
# 1) When the process that dies is the session leader of a session that
# is attached to a terminal device, SIGHUP is sent to all processes
# in the foreground process group of that terminal device.
# 2) When the death of a process causes a process group to become
# orphaned, and one or more processes in the orphaned group are
# stopped, then SIGHUP and SIGCONT are sent to all members of the
# orphaned group." [2]
#
# The first case can be ignored since the child is guaranteed not to have
# a controlling terminal. The second case isn't so easy to dismiss.
# The process group is orphaned when the first child terminates and
# POSIX.1 requires that every STOPPED process in an orphaned process
# group be sent a SIGHUP signal followed by a SIGCONT signal. Since the
# second child is not STOPPED though, we can safely forego ignoring the
# SIGHUP signal. In any case, there are no ill-effects if it is ignored.
#
# import signal # Set handlers for asynchronous events.
# signal.signal(signal.SIGHUP, signal.SIG_IGN)
try:
# Fork a second child and exit immediately to prevent zombies. This
# causes the second child process to be orphaned, making the init
@@ -109,77 +44,23 @@ def createDaemon(function, logfile):
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
if (pid == 0): # The second child.
# We probably don't want the file mode creation mask inherited from
# the parent, so we give the child complete control over permissions.
if UMASK is not None:
os.umask(UMASK)
else:
if (pid != 0):
# Parent (the first child) of the second child.
# exit() or _exit()?
# _exit is like exit(), but it doesn't call any functions registered
# with atexit (and on_exit) or any registered signal handlers. It also
# closes any open file descriptors. Using exit() may cause all stdio
# streams to be flushed twice and any temporary files may be unexpectedly
# removed. It's therefore recommended that child branches of a fork()
# and the parent branch(es) of a daemon use _exit().
os._exit(0)
else:
# exit() or _exit()?
# _exit is like exit(), but it doesn't call any functions registered
# with atexit (and on_exit) or any registered signal handlers. It also
# closes any open file descriptors. Using exit() may cause all stdio
# streams to be flushed twice and any temporary files may be unexpectedly
# removed. It's therefore recommended that child branches of a fork()
# and the parent branch(es) of a daemon use _exit().
os.waitpid(pid, 0)
return
# Close all open file descriptors. This prevents the child from keeping
# open any file descriptors inherited from the parent. There is a variety
# of methods to accomplish this task. Three are listed below.
#
# Try the system configuration variable, SC_OPEN_MAX, to obtain the maximum
# number of open file descriptors to close. If it doesn't exist, use
# the default value (configurable).
#
# try:
# maxfd = os.sysconf("SC_OPEN_MAX")
# except (AttributeError, ValueError):
# maxfd = MAXFD
#
# OR
#
# if (os.sysconf_names.has_key("SC_OPEN_MAX")):
# maxfd = os.sysconf("SC_OPEN_MAX")
# else:
# maxfd = MAXFD
#
# OR
#
# Use the getrlimit method to retrieve the maximum file descriptor number
# that can be opened by this process. If there is no limit on the
# resource, use the default value.
#
import resource # Resource usage information.
maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
if (maxfd == resource.RLIM_INFINITY):
maxfd = MAXFD
# Iterate through and close all file descriptors.
# for fd in range(0, maxfd):
# try:
# os.close(fd)
# except OSError: # ERROR, fd wasn't open to begin with (ignored)
# pass
# The second child.
# Redirect the standard I/O file descriptors to the specified file. Since
# the daemon has no controlling terminal, most daemons redirect stdin,
# stdout, and stderr to /dev/null. This is done to prevent side-effects
# from reads and writes to the standard I/O file descriptors.
# This call to open is guaranteed to return the lowest file descriptor,
# which will be 0 (stdin), since it was closed above.
# os.open(REDIRECT_TO, os.O_RDWR) # standard input (0)
# Duplicate standard input to standard output and standard error.
# os.dup2(0, 1) # standard output (1)
# os.dup2(0, 2) # standard error (2)
# Replace those fds with our own
# Replace standard fds with our own
si = open('/dev/null', 'r')
os.dup2(si.fileno(), sys.stdin.fileno())
@@ -192,6 +73,10 @@ def createDaemon(function, logfile):
sys.stdout = open(logfile, 'a+')
sys.stderr = sys.stdout
function()
os._exit(0)
try:
function()
except Exception as e:
traceback.print_exc()
finally:
bb.event.print_ui_queue()
os._exit(0)

View File

@@ -149,23 +149,30 @@ def print_ui_queue():
# First check to see if we have any proper messages
msgprint = False
msgerrs = False
# Should we print to stderr?
for event in ui_queue[:]:
if isinstance(event, logging.LogRecord) and event.levelno >= logging.WARNING:
msgerrs = True
break
if msgerrs:
logger.addHandler(stderr)
else:
logger.addHandler(stdout)
for event in ui_queue[:]:
if isinstance(event, logging.LogRecord):
if event.levelno > logging.DEBUG:
if event.levelno >= logging.WARNING:
logger.addHandler(stderr)
else:
logger.addHandler(stdout)
logger.handle(event)
msgprint = True
if msgprint:
return
# Nope, so just print all of the messages we have (including debug messages)
logger.addHandler(stdout)
for event in ui_queue[:]:
if isinstance(event, logging.LogRecord):
logger.handle(event)
if not msgprint:
for event in ui_queue[:]:
if isinstance(event, logging.LogRecord):
logger.handle(event)
def fire_ui_handlers(event, d):
global _thread_lock

View File

@@ -411,8 +411,6 @@ def encodeurl(decoded):
type, host, path, user, pswd, p = decoded
if not path:
raise MissingParameterError('path', "encoded from the data %s" % str(decoded))
if not type:
raise MissingParameterError('type', "encoded from the data %s" % str(decoded))
url = '%s://' % type
@@ -423,10 +421,11 @@ def encodeurl(decoded):
url += "@"
if host and type != "file":
url += "%s" % host
# Standardise path to ensure comparisons work
while '//' in path:
path = path.replace("//", "/")
url += "%s" % urllib.parse.quote(path)
if path:
# Standardise path to ensure comparisons work
while '//' in path:
path = path.replace("//", "/")
url += "%s" % urllib.parse.quote(path)
if p:
for parm in p:
url += ";%s=%s" % (parm, p[parm])
@@ -1726,9 +1725,8 @@ class Fetch(object):
ret = try_mirrors(self, self.d, ud, mirrors, True)
if not ret:
# Next try checking from the original uri, u
try:
ret = m.checkstatus(self, ud, self.d)
except:
ret = m.checkstatus(self, ud, self.d)
if not ret:
# Finally, try checking uri, u, from MIRRORS
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
ret = try_mirrors(self, self.d, ud, mirrors, True)

View File

@@ -283,11 +283,6 @@ class Wget(FetchMethod):
"""
http_error_403 = http_error_405
"""
Some servers (e.g. FusionForge) returns 406 Not Acceptable when they
actually mean 405 Method Not Allowed.
"""
http_error_406 = http_error_405
class FixedHTTPRedirectHandler(urllib.request.HTTPRedirectHandler):
"""
@@ -316,7 +311,9 @@ class Wget(FetchMethod):
uri = ud.url.split(";")[0]
r = urllib.request.Request(uri)
r.get_method = lambda: "HEAD"
# Some servers (FusionForge, as used on Alioth) require that the
# optional Accept header is set.
r.add_header("Accept", "*/*")
def add_basic_auth(login_str, request):
'''Adds Basic auth to http request, pass in login:password as string'''
import base64

View File

@@ -259,8 +259,10 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
help="The name/address for the bitbake xmlrpc server to bind to.")
parser.add_option("-T", "--idle-timeout", type=float, dest="server_timeout",
default=float(os.environ.get("BB_SERVER_TIMEOUT", 0)) or None,
help="Set timeout to unload bitbake server due to inactivity")
default=os.getenv("BB_SERVER_TIMEOUT"),
help="Set timeout to unload bitbake server due to inactivity, "
"set to -1 means no unload, "
"default: Environment variable BB_SERVER_TIMEOUT.")
parser.add_option("", "--no-setscene", action="store_true",
dest="nosetscene", default=False,
@@ -277,7 +279,7 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
parser.add_option("-m", "--kill-server", action="store_true",
dest="kill_server", default=False,
help="Terminate the bitbake server.")
help="Terminate any running bitbake server.")
parser.add_option("", "--observe-only", action="store_true",
dest="observe_only", default=False,
@@ -370,8 +372,10 @@ def bitbake_main(configParams, configuration):
server_connection, ui_module = setup_bitbake(configParams, configuration)
# No server connection
if server_connection is None:
if configParams.status_only or configParams.kill_server:
if configParams.status_only:
return 1
if configParams.kill_server:
return 0
if not configParams.server_only:
if configParams.status_only:
@@ -392,10 +396,10 @@ def bitbake_main(configParams, configuration):
return 1
def setup_bitbake(configParams, configuration, extrafeatures=None, setup_logging=True):
def setup_bitbake(configParams, configuration, extrafeatures=None):
# Ensure logging messages get sent to the UI as events
handler = bb.event.LogHandler()
if setup_logging and not configParams.status_only:
if not configParams.status_only:
# In status only mode there are no logs and no UI
logger.addHandler(handler)

View File

@@ -84,6 +84,10 @@ def update_cache(f):
logger.debug(1, "Updating mtime cache for %s" % f)
update_mtime(f)
def clear_cache():
global __mtime_cache
__mtime_cache = {}
def mark_dependency(d, f):
if f.startswith('./'):
f = "%s/%s" % (os.getcwd(), f[2:])

View File

@@ -2372,7 +2372,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
self.rq.scenequeue_covered = self.scenequeue_covered
self.rq.scenequeue_notcovered = self.scenequeue_notcovered
logger.debug(1, 'We can skip tasks %s', sorted(self.rq.scenequeue_covered))
logger.debug(1, 'We can skip tasks %s', "\n".join(sorted(self.rq.scenequeue_covered)))
self.rq.state = runQueueRunInit

View File

@@ -100,7 +100,8 @@ class ProcessServer(multiprocessing.Process):
else:
self.bitbake_lock.write("%s\n" % (os.getpid()))
self.bitbake_lock.flush()
except:
except Exception as e:
print("Error writing to lock file: %s" % str(e))
pass
if self.cooker.configuration.profile:
@@ -132,20 +133,28 @@ class ProcessServer(multiprocessing.Process):
fds = [self.sock]
if self.xmlrpc:
fds.append(self.xmlrpc)
while not self.quit:
if self.command_channel in ready:
command = self.command_channel.get()
if command[0] == "terminateServer":
self.quit = True
continue
try:
print("Running command %s" % command)
self.command_channel_reply.send(self.cooker.command.runCommand(command))
except Exception as e:
logger.exception('Exception in server main event loop running command %s (%s)' % (command, str(e)))
print("Entering server connection loop")
if self.xmlrpc in ready:
self.xmlrpc.handle_requests()
def disconnect_client(self, fds):
if not self.haveui:
return
print("Disconnecting Client")
fds.remove(self.controllersock)
fds.remove(self.command_channel)
bb.event.unregister_UIHhandler(self.event_handle, True)
self.command_channel_reply.writer.close()
self.event_writer.writer.close()
del self.event_writer
self.controllersock.close()
self.controllersock = False
self.haveui = False
self.lastui = time.time()
self.cooker.clientComplete()
if self.timeout is None:
print("No timeout, exiting.")
self.quit = True
while not self.quit:
if self.sock in ready:
self.controllersock, address = self.sock.accept()
if self.haveui:
@@ -175,25 +184,34 @@ class ProcessServer(multiprocessing.Process):
self.haveui = True
except EOFError:
print("Disconnecting Client")
fds.remove(self.controllersock)
fds.remove(self.command_channel)
bb.event.unregister_UIHhandler(self.event_handle, True)
self.command_channel_reply.writer.close()
self.event_writer.writer.close()
del self.event_writer
self.controllersock.close()
self.haveui = False
self.lastui = time.time()
self.cooker.clientComplete()
if self.timeout is None:
print("No timeout, exiting.")
self.quit = True
if not self.haveui and self.lastui and self.timeout and (self.lastui + self.timeout) < time.time():
except (EOFError, OSError):
disconnect_client(self, fds)
if not self.timeout == -1.0 and not self.haveui and self.lastui and self.timeout and \
(self.lastui + self.timeout) < time.time():
print("Server timeout, exiting.")
self.quit = True
if self.command_channel in ready:
try:
command = self.command_channel.get()
except EOFError:
# Client connection shutting down
ready = []
disconnect_client(self, fds)
continue
if command[0] == "terminateServer":
self.quit = True
continue
try:
print("Running command %s" % command)
self.command_channel_reply.send(self.cooker.command.runCommand(command))
except Exception as e:
logger.exception('Exception in server main event loop running command %s (%s)' % (command, str(e)))
if self.xmlrpc in ready:
self.xmlrpc.handle_requests()
ready = self.idle_commands(.1, fds)
print("Exiting")
@@ -294,7 +312,7 @@ class ProcessServer(multiprocessing.Process):
# Ignore EINTR
return []
else:
return []
return select.select(fds,[],[],0)[0]
class ServerCommunicator():
@@ -303,19 +321,10 @@ class ServerCommunicator():
self.recv = recv
def runCommand(self, command):
self.connection.send(command)
while True:
# don't let the user ctrl-c while we're waiting for a response
try:
for idx in range(0,4): # 0, 1, 2, 3
if self.recv.poll(1):
return self.recv.get()
else:
bb.note("Timeout while attempting to communicate with bitbake server, retrying...")
raise ProcessTimeout("Gave up; Too many tries: timeout while attempting to communicate with bitbake server")
except KeyboardInterrupt:
pass
if not self.recv.poll(5):
raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server")
return self.recv.get()
def updateFeatureSet(self, featureset):
_, error = self.runCommand(["setFeatures", featureset])
@@ -336,12 +345,16 @@ class ServerCommunicator():
return
class BitBakeProcessServerConnection(object):
def __init__(self, ui_channel, recv, eq):
def __init__(self, ui_channel, recv, eq, sock):
self.connection = ServerCommunicator(ui_channel, recv)
self.events = eq
# Save sock so it doesn't get gc'd for the life of our connection
self.socket_connection = sock
def terminate(self):
self.socket_connection.close()
self.connection.connection.close()
self.connection.recv.close()
return
class BitBakeServer(object):
@@ -351,6 +364,7 @@ class BitBakeServer(object):
self.featureset = featureset
self.sockname = sockname
self.bitbake_lock = lock
self.readypipe, self.readypipein = os.pipe()
# Create server control socket
if os.path.exists(sockname):
@@ -359,6 +373,8 @@ class BitBakeServer(object):
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# AF_UNIX has path length issues so chdir here to workaround
cwd = os.getcwd()
logfile = os.path.join(cwd, "bitbake-cookerdaemon.log")
try:
os.chdir(os.path.dirname(sockname))
self.sock.bind(os.path.basename(sockname))
@@ -367,11 +383,25 @@ class BitBakeServer(object):
self.sock.listen(1)
os.set_inheritable(self.sock.fileno(), True)
bb.daemonize.createDaemon(self._startServer, "bitbake-cookerdaemon.log")
bb.daemonize.createDaemon(self._startServer, logfile)
self.sock.close()
self.bitbake_lock.close()
ready = ConnectionReader(self.readypipe)
r = ready.wait(30)
if not r:
ready.close()
bb.error("Unable to start bitbake server")
if os.path.exists(logfile):
with open(logfile, "r") as f:
logs=f.readlines()
bb.error("Last 10 lines of server log %s:\n%s" % (logfile, "".join(logs[-10:])))
raise SystemExit(1)
ready.close()
os.close(self.readypipein)
def _startServer(self):
print("Starting bitbake server pid %d" % os.getpid())
server = ProcessServer(self.bitbake_lock, self.sock, self.sockname)
self.configuration.setServerRegIdleCallback(server.register_idle_function)
@@ -381,7 +411,7 @@ class BitBakeServer(object):
if value:
setattr(self.configuration, "%s_server" % param, value)
self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset, self.readypipein)
server.cooker = self.cooker
server.server_timeout = self.configuration.server_timeout
server.xmlrpcinterface = self.configuration.xmlrpcinterface
@@ -400,7 +430,11 @@ def connectProcessServer(sockname, featureset):
finally:
os.chdir(cwd)
readfd = writefd = readfd1 = writefd1 = readfd2 = writefd2 = None
eq = command_chan_recv = command_chan = None
try:
# Send an fd for the remote to write events to
readfd, writefd = os.pipe()
eq = BBUIEventQueue(readfd)
@@ -413,13 +447,24 @@ def connectProcessServer(sockname, featureset):
sendfds(sock, [writefd, readfd1, writefd2])
server_connection = BitBakeProcessServerConnection(command_chan, command_chan_recv, eq)
server_connection = BitBakeProcessServerConnection(command_chan, command_chan_recv, eq, sock)
# Close the ends of the pipes we won't use
for i in [writefd, readfd1, writefd2]:
os.close(i)
server_connection.connection.updateFeatureSet(featureset)
# Save sock so it doesn't get gc'd for the life of our connection
server_connection.socket_connection = sock
except:
except (Exception, SystemExit) as e:
if command_chan_recv:
command_chan_recv.close()
if command_chan:
command_chan.close()
for i in [writefd, readfd1, writefd2]:
try:
os.close(i)
except OSError:
pass
sock.close()
raise
@@ -499,9 +544,14 @@ class BBUIEventQueue:
def startCallbackHandler(self):
bb.utils.set_process_name("UIEventQueue")
while True:
self.reader.wait()
event = self.reader.get()
self.queue_event(event)
try:
self.reader.wait()
event = self.reader.get()
self.queue_event(event)
except EOFError:
# Easiest way to exit is to close the file descriptor to cause an exit
break
self.reader.close()
class ConnectionReader(object):
@@ -523,6 +573,10 @@ class ConnectionReader(object):
def fileno(self):
return self.reader.fileno()
def close(self):
return self.reader.close()
class ConnectionWriter(object):
def __init__(self, fd):
@@ -536,3 +590,8 @@ class ConnectionWriter(object):
with self.wlock:
self.writer.send_bytes(obj)
def fileno(self):
return self.writer.fileno()
def close(self):
return self.writer.close()

View File

@@ -94,6 +94,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
else:
self.checksum_cache = None
def reset(self, data):
self.__init__(data)
def init_rundepcheck(self, data):
self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None
if self.taskwhitelist:

View File

@@ -1440,7 +1440,7 @@ class GitShallowTest(FetcherTest):
def test_bitbake(self):
self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir)
self.git('config core.bare true', cwd=self.srcdir)
self.git('fetch --tags', cwd=self.srcdir)
self.git('fetch', cwd=self.srcdir)
self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0')
# Note that the 1.10.0 tag is annotated, so this also tests

View File

@@ -383,8 +383,7 @@ class Tinfoil:
self.server_connection, ui_module = setup_bitbake(config_params,
cookerconfig,
extrafeatures,
setup_logging=False)
extrafeatures)
self.ui_module = ui_module

View File

@@ -63,7 +63,9 @@ class PackageReverseDepView(Gtk.TreeView):
self.current = None
self.filter_model = model.filter_new()
self.filter_model.set_visible_func(self._filter)
self.set_model(self.filter_model)
self.sort_model = self.filter_model.sort_new_with_model()
self.sort_model.set_sort_column_id(COL_DEP_PARENT, Gtk.SortType.ASCENDING)
self.set_model(self.sort_model)
self.append_column(Gtk.TreeViewColumn(label, Gtk.CellRendererText(), text=COL_DEP_PARENT))
def _filter(self, model, iter, data):

View File

@@ -37,8 +37,8 @@ class BitbakeController(object):
"""
def __init__(self, be):
import bb.server.xmlrpc
self.connection = bb.server.xmlrpc._create_server(be.bbaddress,
import bb.server.xmlrpcclient
self.connection = bb.server.xmlrpcclient._create_server(be.bbaddress,
int(be.bbport))[0]
def _runCommand(self, command):

View File

@@ -24,6 +24,7 @@ import os
import sys
import re
import shutil
import time
from django.db import transaction
from django.db.models import Q
from bldcontrol.models import BuildEnvironment, BRLayer, BRVariable, BRTarget, BRBitbake
@@ -331,12 +332,22 @@ class LocalhostBEController(BuildEnvironmentController):
bitbake = os.path.join(self.pokydirname, 'bitbake', 'bin', 'bitbake')
toasterlayers = os.path.join(builddir,"conf/toaster-bblayers.conf")
self._shellcmd('bash -c \"source %s %s; BITBAKE_UI="knotty" %s --read %s --read %s '
'--server-only -t xmlrpc -B 0.0.0.0:0\"' % (oe_init,
'--server-only -B 0.0.0.0:0\"' % (oe_init,
builddir, bitbake, confpath, toasterlayers), self.be.sourcedir)
# read port number from bitbake.lock
self.be.bbport = ""
bblock = os.path.join(builddir, 'bitbake.lock')
# allow 10 seconds for bb lock file to appear but also be populated
for lock_check in range(10):
if not os.path.exists(bblock):
logger.debug("localhostbecontroller: waiting for bblock file to appear")
time.sleep(1)
continue
if 10 < os.stat(bblock).st_size:
break
logger.debug("localhostbecontroller: waiting for bblock content to appear")
time.sleep(1)
with open(bblock) as fplock:
for line in fplock:
if ":" in line:
@@ -365,10 +376,10 @@ class LocalhostBEController(BuildEnvironmentController):
log = os.path.join(builddir, 'toaster_ui.log')
local_bitbake = os.path.join(os.path.dirname(os.getenv('BBBASEDIR')),
'bitbake')
self._shellcmd(['bash -c \"(TOASTER_BRBE="%s" BBSERVER="0.0.0.0:-1" '
self._shellcmd(['bash -c \"(TOASTER_BRBE="%s" BBSERVER="0.0.0.0:%s" '
'%s %s -u toasterui --token="" >>%s 2>&1;'
'BITBAKE_UI="knotty" BBSERVER=0.0.0.0:-1 %s -m)&\"' \
% (brbe, local_bitbake, bbtargets, log, bitbake)],
'BITBAKE_UI="knotty" BBSERVER=0.0.0.0:%s %s -m)&\"' \
% (brbe, self.be.bbport, local_bitbake, bbtargets, log, self.be.bbport, bitbake)],
builddir, nowait=True)
logger.debug('localhostbecontroller: Build launched, exiting. '

View File

@@ -75,7 +75,10 @@ class Command(BaseCommand):
call_command("loaddata", "settings")
template_conf = os.environ.get("TEMPLATECONF", "")
if "poky" in template_conf:
if ToasterSetting.objects.filter(name='CUSTOM_XML_ONLY').count() > 0:
# only use the custom settings
pass
elif "poky" in template_conf:
print("Loading poky configuration")
call_command("loaddata", "poky")
else:

View File

@@ -0,0 +1,49 @@
#!/bin/bash
# Copyright (C) 2017 Intel Corp.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# This is sample software. Rename it to 'custom_toaster_append.sh' and
# enable the respective custom sections.
verbose=0
if [ $verbose -ne 0 ] ; then
echo "custom_toaster_append.sh:$*"
fi
if [ "toaster_prepend" = "$1" ] ; then
echo "Add custom actions here when Toaster script is started"
fi
if [ "web_start_postpend" = "$1" ] ; then
echo "Add custom actions here after Toaster web service is started"
fi
if [ "web_stop_postpend" = "$1" ] ; then
echo "Add custom actions here after Toaster web service is stopped"
fi
if [ "noweb_start_postpend" = "$1" ] ; then
echo "Add custom actions here after Toaster (no web) service is started"
fi
if [ "noweb_stop_postpend" = "$1" ] ; then
echo "Add custom actions here after Toaster (no web) service is stopped"
fi
if [ "toaster_postpend" = "$1" ] ; then
echo "Add custom actions here after Toaster script is done"
fi

View File

@@ -81,6 +81,8 @@ class Command(BaseCommand):
os.system('setterm -cursor off')
self.apiurl = DEFAULT_LAYERINDEX_SERVER
if ToasterSetting.objects.filter(name='CUSTOM_LAYERINDEX_SERVER').count() == 1:
self.apiurl = ToasterSetting.objects.get(name = 'CUSTOM_LAYERINDEX_SERVER').value
assert self.apiurl is not None
try:
@@ -92,7 +94,9 @@ class Command(BaseCommand):
proxy_settings = os.environ.get("http_proxy", None)
def _get_json_response(apiurl=DEFAULT_LAYERINDEX_SERVER):
def _get_json_response(apiurl=None):
if None == apiurl:
apiurl=self.apiurl
http_progress = Spinner()
http_progress.start()

View File

@@ -451,7 +451,7 @@ class Build(models.Model):
recipes_to_parse = models.IntegerField(default=1)
# number of recipes parsed so far for this build
recipes_parsed = models.IntegerField(default=0)
recipes_parsed = models.IntegerField(default=1)
# number of repos to clone for this build
repos_to_clone = models.IntegerField(default=1)
@@ -1658,7 +1658,7 @@ class CustomImageRecipe(Recipe):
def get_base_recipe_file(self):
"""Get the base recipe file path if it exists on the file system"""
path_schema_one = "%s/%s" % (self.base_recipe.layer_version.dirpath,
path_schema_one = "%s/%s" % (self.base_recipe.layer_version.local_path,
self.base_recipe.file_path)
path_schema_two = self.base_recipe.file_path

View File

@@ -18,6 +18,7 @@
# Please run flake8 on this file before sending patches
import os
import re
import logging
import json
@@ -28,7 +29,7 @@ from orm.models import LayerVersionDependency, LayerSource, ProjectLayer
from orm.models import Recipe, CustomImageRecipe, CustomImagePackage
from orm.models import Layer, Target, Package, Package_Dependency
from orm.models import ProjectVariable
from bldcontrol.models import BuildRequest
from bldcontrol.models import BuildRequest, BuildEnvironment
from bldcontrol import bbcontroller
from django.http import HttpResponse, JsonResponse
@@ -509,6 +510,27 @@ class XhrCustomRecipe(View):
(tpackage.package.name, e))
pass
# pre-create layer directory structure, so that other builds
# are not blocked by this new recipe dependecy
# NOTE: this is parallel code to 'localhostbecontroller.py'
be = BuildEnvironment.objects.all()[0]
layerpath = os.path.join(be.builddir,
CustomImageRecipe.LAYER_NAME)
for name in ("conf", "recipes"):
path = os.path.join(layerpath, name)
if not os.path.isdir(path):
os.makedirs(path)
# pre-create layer.conf
config = os.path.join(layerpath, "conf", "layer.conf")
if not os.path.isfile(config):
with open(config, "w") as conf:
conf.write('BBPATH .= ":${LAYERDIR}"\nBBFILES += "${LAYERDIR}/recipes/*.bb"\n')
# pre-create new image's recipe file
recipe_path = os.path.join(layerpath, "recipes", "%s.bb" %
recipe.name)
with open(recipe_path, "w") as recipef:
recipef.write(recipe.generate_recipe_file_contents())
return JsonResponse(
{"error": "ok",
"packages": recipe.get_all_packages().count(),
@@ -752,7 +774,6 @@ class XhrCustomRecipePackages(View):
return error_response("Package %s not found in excludes"
" but was in included list" %
package.name)
else:
recipe.appends_set.add(package)
# Make sure that package is not in the excludes set
@@ -760,26 +781,27 @@ class XhrCustomRecipePackages(View):
recipe.excludes_set.remove(package)
except:
pass
# Add the dependencies we think will be added to the recipe
# as a result of appending this package.
# TODO this should recurse down the entire deps tree
for dep in package.package_dependencies_source.all_depends():
try:
cust_package = CustomImagePackage.objects.get(
name=dep.depends_on.name)
recipe.includes_set.add(cust_package)
try:
# When adding the pre-requisite package, make
# sure it's not in the excluded list from a
# prior removal.
recipe.excludes_set.remove(cust_package)
except package.DoesNotExist:
# Don't care if the package had never been excluded
pass
except:
logger.warning("Could not add package's suggested"
"dependencies to the list")
# Add the dependencies we think will be added to the recipe
# as a result of appending this package.
# TODO this should recurse down the entire deps tree
for dep in package.package_dependencies_source.all_depends():
try:
cust_package = CustomImagePackage.objects.get(
name=dep.depends_on.name)
recipe.includes_set.add(cust_package)
try:
# When adding the pre-requisite package, make
# sure it's not in the excluded list from a
# prior removal.
recipe.excludes_set.remove(cust_package)
except package.DoesNotExist:
# Don't care if the package had never been excluded
pass
except:
logger.warning("Could not add package's suggested"
"dependencies to the list")
return JsonResponse({"error": "ok"})
def delete(self, request, *args, **kwargs):
@@ -797,22 +819,24 @@ class XhrCustomRecipePackages(View):
recipe.excludes_set.add(package)
else:
recipe.appends_set.remove(package)
all_current_packages = recipe.get_all_packages()
reverse_deps_dictlist = self._get_all_dependents(
package.pk,
all_current_packages)
# remove dependencies as well
all_current_packages = recipe.get_all_packages()
ids = [entry['pk'] for entry in reverse_deps_dictlist]
reverse_deps = CustomImagePackage.objects.filter(id__in=ids)
for r in reverse_deps:
try:
if r.id in included_packages:
recipe.excludes_set.add(r)
else:
recipe.appends_set.remove(r)
except:
pass
reverse_deps_dictlist = self._get_all_dependents(
package.pk,
all_current_packages)
ids = [entry['pk'] for entry in reverse_deps_dictlist]
reverse_deps = CustomImagePackage.objects.filter(id__in=ids)
for r in reverse_deps:
try:
if r.id in included_packages:
recipe.excludes_set.add(r)
else:
recipe.appends_set.remove(r)
except:
pass
return JsonResponse({"error": "ok"})
except CustomImageRecipe.DoesNotExist:

View File

@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<head><title>Toaster Health</title></head>
<body>Ok</body>
</html>

View File

@@ -244,6 +244,11 @@ urlpatterns = [
url(r'^mostrecentbuilds$', widgets.MostRecentBuildsView.as_view(),
name='most_recent_builds'),
# default redirection
# JSON data for aggregators
url(r'^api/builds$', views.json_builds, name='json_builds'),
url(r'^api/building$', views.json_building, name='json_building'),
url(r'^api/build/(?P<build_id>\d+)$', views.json_build, name='json_build'),
# default redirection
url(r'^$', RedirectView.as_view(url='landing', permanent=True)),
]

View File

@@ -35,7 +35,7 @@ from orm.models import BitbakeVersion, CustomImageRecipe
from django.core.urlresolvers import reverse, resolve
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.http import HttpResponseNotFound
from django.http import HttpResponseNotFound, JsonResponse
from django.utils import timezone
from datetime import timedelta, datetime
from toastergui.templatetags.projecttags import json as jsonfilter
@@ -1256,6 +1256,89 @@ def managedcontextprocessor(request):
}
return ret
# REST-based API calls to return build/building status to external Toaster
# managers and aggregators via JSON
def _json_build_status(build_id,extend):
build_stat = None
try:
build = Build.objects.get( pk = build_id )
build_stat = {}
build_stat['id'] = build.id
build_stat['name'] = build.build_name
build_stat['machine'] = build.machine
build_stat['distro'] = build.distro
build_stat['start'] = build.started_on
# look up target name
target= Target.objects.get( build = build )
if target:
if target.task:
build_stat['target'] = '%s:%s' % (target.target,target.task)
else:
build_stat['target'] = '%s' % (target.target)
else:
build_stat['target'] = ''
# look up project name
project = Project.objects.get( build = build )
if project:
build_stat['project'] = project.name
else:
build_stat['project'] = ''
if Build.IN_PROGRESS == build.outcome:
now = timezone.now()
timediff = now - build.started_on
build_stat['seconds']='%.3f' % timediff.total_seconds()
build_stat['clone']='%d:%d' % (build.repos_cloned,build.repos_to_clone)
build_stat['parse']='%d:%d' % (build.recipes_parsed,build.recipes_to_parse)
tf = Task.objects.filter(build = build)
tfc = tf.count()
if tfc > 0:
tfd = tf.exclude(order__isnull=True).count()
else:
tfd = 0
build_stat['task']='%d:%d' % (tfd,tfc)
else:
build_stat['outcome'] = build.get_outcome_text()
timediff = build.completed_on - build.started_on
build_stat['seconds']='%.3f' % timediff.total_seconds()
build_stat['stop'] = build.completed_on
messages = LogMessage.objects.all().filter(build = build)
errors = len(messages.filter(level=LogMessage.ERROR) |
messages.filter(level=LogMessage.EXCEPTION) |
messages.filter(level=LogMessage.CRITICAL))
build_stat['errors'] = errors
warnings = len(messages.filter(level=LogMessage.WARNING))
build_stat['warnings'] = warnings
if extend:
build_stat['cooker_log'] = build.cooker_log_path
except Exception as e:
build_state = str(e)
return build_stat
def json_builds(request):
build_table = []
builds = []
try:
builds = Build.objects.exclude(outcome=Build.IN_PROGRESS).order_by("-started_on")
for build in builds:
build_table.append(_json_build_status(build.id,False))
except Exception as e:
build_table = str(e)
return JsonResponse({'builds' : build_table, 'count' : len(builds)})
def json_building(request):
build_table = []
builds = []
try:
builds = Build.objects.filter(outcome=Build.IN_PROGRESS).order_by("-started_on")
for build in builds:
build_table.append(_json_build_status(build.id,False))
except Exception as e:
build_table = str(e)
return JsonResponse({'building' : build_table, 'count' : len(builds)})
def json_build(request,build_id):
return JsonResponse({'build' : _json_build_status(build_id,True)})
import toastermain.settings
@@ -1694,3 +1777,4 @@ if True:
return render(request, "unavailable_artifact.html")
except (ObjectDoesNotExist, IOError):
return render(request, "unavailable_artifact.html")

View File

@@ -20,9 +20,8 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from django.conf.urls import patterns, include, url
from django.views.generic import RedirectView
from django.views.generic import RedirectView, TemplateView
from django.views.decorators.cache import never_cache
import bldcollector.views
import logging
@@ -46,6 +45,8 @@ urlpatterns = [
# in the future.
url(r'^orm/eventfile$', bldcollector.views.eventfile),
url(r'^health$', TemplateView.as_view(template_name="health.html"), name='Toaster Health'),
# if no application is selected, we have the magic toastergui app here
url(r'^$', never_cache(RedirectView.as_view(url='/toastergui/', permanent=True))),
]

View File

@@ -143,7 +143,7 @@ endif
ifeq ($(DOC),yocto-project-qs)
XSLTOPTS = --xinclude
ALLPREQ = html eclipse tarball
TARFILES = yocto-project-qs.html qs-style.css figures/yocto-environment.png \
TARFILES = yocto-project-qs.html qs-style.css \
figures/yocto-project-transp.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
@@ -191,7 +191,7 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \
figures/wip.png
else
TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \
figures/building-an-image.png \
figures/building-an-image.png figures/YP-flow-diagram.png \
figures/using-a-pre-built-image.png \
figures/poky-title.png figures/buildhistory.png \
figures/buildhistory-web.png \
@@ -256,7 +256,7 @@ endif
ifeq ($(DOC),ref-manual)
XSLTOPTS = --xinclude
ALLPREQ = html eclipse tarball
TARFILES = ref-manual.html ref-style.css figures/poky-title.png \
TARFILES = ref-manual.html ref-style.css figures/poky-title.png figures/YP-flow-diagram.png \
figures/buildhistory.png figures/buildhistory-web.png eclipse \
figures/cross-development-toolchains.png figures/layer-input.png \
figures/package-feeds.png figures/source-input.png \

View File

@@ -1150,7 +1150,7 @@
<listitem><para>Create a <filename>.bbappend</filename>
file for the modified recipe.
For information on using append files, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>"
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>"
section in the Yocto Project Development Manual.
</para></listitem>
<listitem><para>

View File

@@ -113,7 +113,7 @@
</para>
<para>
Follow these general steps to create your layer:
Follow these general steps to create your layer without the aid of a script:
<orderedlist>
<listitem><para><emphasis>Check Existing Layers:</emphasis>
Before creating a new layer, you should be sure someone
@@ -255,197 +255,182 @@
</section>
<section id='best-practices-to-follow-when-creating-layers'>
<title>Best Practices to Follow When Creating Layers</title>
<title>Following Best Practices When Creating Layers</title>
<para>
To create layers that are easier to maintain and that will
not impact builds for other machines, you should consider the
information in the following sections.
</para>
<section id='avoid-overlaying-entire-recipes'>
<title>Avoid "Overlaying" Entire Recipes</title>
<para>
Avoid "overlaying" entire recipes from other layers in your
configuration.
In other words, do not copy an entire recipe into your
layer and then modify it.
Rather, use an append file (<filename>.bbappend</filename>)
to override
only those parts of the original recipe you need to modify.
</para>
</section>
<section id='avoid-duplicating-include-files'>
<title>Avoid Duplicating Include Files</title>
<para>
Avoid duplicating include files.
Use append files (<filename>.bbappend</filename>)
for each recipe
that uses an include file.
Or, if you are introducing a new recipe that requires
the included file, use the path relative to the original
layer directory to refer to the file.
For example, use
<filename>require recipes-core/</filename><replaceable>package</replaceable><filename>/</filename><replaceable>file</replaceable><filename>.inc</filename>
instead of <filename>require </filename><replaceable>file</replaceable><filename>.inc</filename>.
If you're finding you have to overlay the include file,
it could indicate a deficiency in the include file in
the layer to which it originally belongs.
If this is the case, you should try to address that
deficiency instead of overlaying the include file.
For example, you could address this by getting the
maintainer of the include file to add a variable or
variables to make it easy to override the parts needing
to be overridden.
</para>
</section>
<section id='structure-your-layers'>
<title>Structure Your Layers</title>
<para>
Proper use of overrides within append files and placement
of machine-specific files within your layer can ensure that
a build is not using the wrong Metadata and negatively
impacting a build for a different machine.
Following are some examples:
<itemizedlist>
<listitem><para><emphasis>Modifying Variables to Support
a Different Machine:</emphasis>
Suppose you have a layer named
<filename>meta-one</filename> that adds support
for building machine "one".
To do so, you use an append file named
<filename>base-files.bbappend</filename> and
create a dependency on "foo" by altering the
<ulink url='&YOCTO_DOCS_REF_URL;#var-DEPENDS'><filename>DEPENDS</filename></ulink>
variable:
<literallayout class='monospaced'>
information in the following list:
<itemizedlist>
<listitem><para>
<emphasis>Avoid "Overlaying" Entire Recipes from Other Layers in Your Configuration:</emphasis>
In other words, do not copy an entire recipe into your
layer and then modify it.
Rather, use an append file
(<filename>.bbappend</filename>) to override only those
parts of the original recipe you need to modify.
</para></listitem>
<listitem><para>
<emphasis>Avoid Duplicating Include Files:</emphasis>
Use append files (<filename>.bbappend</filename>)
for each recipe that uses an include file.
Or, if you are introducing a new recipe that requires
the included file, use the path relative to the
original layer directory to refer to the file.
For example, use
<filename>require recipes-core/</filename><replaceable>package</replaceable><filename>/</filename><replaceable>file</replaceable><filename>.inc</filename>
instead of
<filename>require </filename><replaceable>file</replaceable><filename>.inc</filename>.
If you're finding you have to overlay the include file,
it could indicate a deficiency in the include file in
the layer to which it originally belongs.
If this is the case, you should try to address that
deficiency instead of overlaying the include file.
For example, you could address this by getting the
maintainer of the include file to add a variable or
variables to make it easy to override the parts needing
to be overridden.
</para></listitem>
<listitem><para>
<emphasis>Structure Your Layers:</emphasis>
Proper use of overrides within append files and
placement of machine-specific files within your layer
can ensure that a build is not using the wrong Metadata
and negatively impacting a build for a different
machine.
Following are some examples:
<itemizedlist>
<listitem><para>
<emphasis>Modify Variables to Support a
Different Machine:</emphasis>
Suppose you have a layer named
<filename>meta-one</filename> that adds support
for building machine "one".
To do so, you use an append file named
<filename>base-files.bbappend</filename> and
create a dependency on "foo" by altering the
<ulink url='&YOCTO_DOCS_REF_URL;#var-DEPENDS'><filename>DEPENDS</filename></ulink>
variable:
<literallayout class='monospaced'>
DEPENDS = "foo"
</literallayout>
The dependency is created during any build that
includes the layer
<filename>meta-one</filename>.
However, you might not want this dependency
for all machines.
For example, suppose you are building for
machine "two" but your
<filename>bblayers.conf</filename> file has the
<filename>meta-one</filename> layer included.
During the build, the
<filename>base-files</filename> for machine
"two" will also have the dependency on
<filename>foo</filename>.</para>
<para>To make sure your changes apply only when
building machine "one", use a machine override
with the <filename>DEPENDS</filename> statement:
<literallayout class='monospaced'>
</literallayout>
The dependency is created during any build that
includes the layer
<filename>meta-one</filename>.
However, you might not want this dependency
for all machines.
For example, suppose you are building for
machine "two" but your
<filename>bblayers.conf</filename> file has the
<filename>meta-one</filename> layer included.
During the build, the
<filename>base-files</filename> for machine
"two" will also have the dependency on
<filename>foo</filename>.</para>
<para>To make sure your changes apply only when
building machine "one", use a machine override
with the <filename>DEPENDS</filename> statement:
<literallayout class='monospaced'>
DEPENDS_one = "foo"
</literallayout>
You should follow the same strategy when using
<filename>_append</filename> and
<filename>_prepend</filename> operations:
<literallayout class='monospaced'>
</literallayout>
You should follow the same strategy when using
<filename>_append</filename> and
<filename>_prepend</filename> operations:
<literallayout class='monospaced'>
DEPENDS_append_one = " foo"
DEPENDS_prepend_one = "foo "
</literallayout>
As an actual example, here's a line from the recipe
for gnutls, which adds dependencies on
"argp-standalone" when building with the musl C
library:
<literallayout class='monospaced'>
</literallayout>
As an actual example, here's a line from the recipe
for gnutls, which adds dependencies on
"argp-standalone" when building with the musl C
library:
<literallayout class='monospaced'>
DEPENDS_append_libc-musl = " argp-standalone"
</literallayout>
<note>
Avoiding "+=" and "=+" and using
machine-specific
<filename>_append</filename>
and <filename>_prepend</filename> operations
is recommended as well.
</note></para></listitem>
<listitem><para><emphasis>Place Machine-Specific Files
in Machine-Specific Locations:</emphasis>
When you have a base recipe, such as
<filename>base-files.bb</filename>, that
contains a
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
statement to a file, you can use an append file
to cause the build to use your own version of
the file.
For example, an append file in your layer at
<filename>meta-one/recipes-core/base-files/base-files.bbappend</filename>
could extend
<ulink url='&YOCTO_DOCS_REF_URL;#var-FILESPATH'><filename>FILESPATH</filename></ulink>
using
<ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
as follows:
<literallayout class='monospaced'>
</literallayout>
<note>
Avoiding "+=" and "=+" and using
machine-specific
<filename>_append</filename>
and <filename>_prepend</filename> operations
is recommended as well.
</note>
</para></listitem>
<listitem><para>
<emphasis>Place Machine-Specific Files in
Machine-Specific Locations:</emphasis>
When you have a base recipe, such as
<filename>base-files.bb</filename>, that
contains a
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
statement to a file, you can use an append file
to cause the build to use your own version of
the file.
For example, an append file in your layer at
<filename>meta-one/recipes-core/base-files/base-files.bbappend</filename>
could extend
<ulink url='&YOCTO_DOCS_REF_URL;#var-FILESPATH'><filename>FILESPATH</filename></ulink>
using
<ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
as follows:
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
</literallayout>
The build for machine "one" will pick up your
machine-specific file as long as you have the
file in
<filename>meta-one/recipes-core/base-files/base-files/</filename>.
However, if you are building for a different
machine and the
<filename>bblayers.conf</filename> file includes
the <filename>meta-one</filename> layer and
the location of your machine-specific file is
the first location where that file is found
according to <filename>FILESPATH</filename>,
builds for all machines will also use that
machine-specific file.</para>
<para>You can make sure that a machine-specific
file is used for a particular machine by putting
the file in a subdirectory specific to the
machine.
For example, rather than placing the file in
<filename>meta-one/recipes-core/base-files/base-files/</filename>
as shown above, put it in
<filename>meta-one/recipes-core/base-files/base-files/one/</filename>.
Not only does this make sure the file is used
only when building for machine "one", but the
build process locates the file more quickly.</para>
<para>In summary, you need to place all files
referenced from <filename>SRC_URI</filename>
in a machine-specific subdirectory within the
layer in order to restrict those files to
machine-specific builds.</para></listitem>
</itemizedlist>
</para>
</section>
<section id='other-recommendations'>
<title>Other Recommendations</title>
<para>
We also recommend the following:
<itemizedlist>
<listitem><para>If you want permission to use the
Yocto Project Compatibility logo with your layer
or application that uses your layer, perform the
steps to apply for compatibility.
See the
"<link linkend='making-sure-your-layer-is-compatible-with-yocto-project'>Making Sure Your Layer is Compatible With Yocto Project</link>"
section for more information.
</para></listitem>
<listitem><para>Store custom layers in a Git repository
that uses the
<filename>meta-<replaceable>layer_name</replaceable></filename> format.
</para></listitem>
<listitem><para>Clone the repository alongside other
<filename>meta</filename> directories in the
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
</para></listitem>
</itemizedlist>
Following these recommendations keeps your Source Directory and
its configuration entirely inside the Yocto Project's core
base.
</para>
</section>
</literallayout>
The build for machine "one" will pick up your
machine-specific file as long as you have the
file in
<filename>meta-one/recipes-core/base-files/base-files/</filename>.
However, if you are building for a different
machine and the
<filename>bblayers.conf</filename> file includes
the <filename>meta-one</filename> layer and
the location of your machine-specific file is
the first location where that file is found
according to <filename>FILESPATH</filename>,
builds for all machines will also use that
machine-specific file.</para>
<para>You can make sure that a machine-specific
file is used for a particular machine by putting
the file in a subdirectory specific to the
machine.
For example, rather than placing the file in
<filename>meta-one/recipes-core/base-files/base-files/</filename>
as shown above, put it in
<filename>meta-one/recipes-core/base-files/base-files/one/</filename>.
Not only does this make sure the file is used
only when building for machine "one", but the
build process locates the file more quickly.</para>
<para>In summary, you need to place all files
referenced from <filename>SRC_URI</filename>
in a machine-specific subdirectory within the
layer in order to restrict those files to
machine-specific builds.
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
<emphasis>Perform Steps to Apply for Yocto Project Compatibility:</emphasis>
If you want permission to use the
Yocto Project Compatibility logo with your layer
or application that uses your layer, perform the
steps to apply for compatibility.
See the
"<link linkend='making-sure-your-layer-is-compatible-with-yocto-project'>Making Sure Your Layer is Compatible With Yocto Project</link>"
section for more information.
</para></listitem>
<listitem><para>
<emphasis>Follow the Layer Naming Convention:</emphasis>
Store custom layers in a Git repository that use the
<filename>meta-<replaceable>layer_name</replaceable></filename>
format.
</para></listitem>
<listitem><para>
<emphasis>Group Your Layers Locally:</emphasis>
Clone your repository alongside other cloned
<filename>meta</filename> directories from the
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='making-sure-your-layer-is-compatible-with-yocto-project'>
@@ -686,37 +671,46 @@
</section>
<section id='using-bbappend-files'>
<title>Using .bbappend Files</title>
<title>Using .bbappend Files in Your Layer</title>
<para>
Recipes used to append Metadata to other recipes are called
BitBake append files.
BitBake append files use the <filename>.bbappend</filename> file
type suffix, while the corresponding recipes to which Metadata
is being appended use the <filename>.bb</filename> file type
suffix.
A recipe that appends Metadata to another recipe is called a
BitBake append file.
A BitBake append file uses the <filename>.bbappend</filename>
file type suffix, while the corresponding recipe to which
Metadata is being appended uses the <filename>.bb</filename>
file type suffix.
</para>
<para>
A <filename>.bbappend</filename> file allows your layer to make
additions or changes to the content of another layer's recipe
without having to copy the other recipe into your layer.
You can use a <filename>.bbappend</filename> file in your
layer to make additions or changes to the content of another
layer's recipe without having to copy the other layer's
recipe into your layer.
Your <filename>.bbappend</filename> file resides in your layer,
while the main <filename>.bb</filename> recipe file to
which you are appending Metadata resides in a different layer.
</para>
<para>
Append files must have the same root names as their corresponding
recipes.
Being able to append information to an existing recipe not only
avoids duplication, but also automatically applies recipe
changes from a different layer into your layer.
If you were copying recipes, you would have to manually merge
changes as they occur.
</para>
<para>
When you create an append file, you must use the same root
name as the corresponding recipe file.
For example, the append file
<filename>someapp_&DISTRO;.bbappend</filename> must apply to
<filename>someapp_&DISTRO;.bb</filename>.
This means the original recipe and append file names are version
number-specific.
This means the original recipe and append file names are
version number-specific.
If the corresponding recipe is renamed to update to a newer
version, the corresponding <filename>.bbappend</filename> file must
be renamed (and possibly updated) as well.
version, you must also rename and possibly update
the corresponding <filename>.bbappend</filename> as well.
During the build process, BitBake displays an error on starting
if it detects a <filename>.bbappend</filename> file that does
not have a corresponding recipe with a matching name.
@@ -725,14 +719,6 @@
variable for information on how to handle this error.
</para>
<para>
Being able to append information to an existing recipe not only
avoids duplication, but also automatically applies recipe
changes in a different layer to your layer.
If you were copying recipes, you would have to manually merge
changes as they occur.
</para>
<para>
As an example, consider the main formfactor recipe and a
corresponding formfactor append file both from the
@@ -745,8 +731,7 @@
SUMMARY = "Device formfactor information"
SECTION = "base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PR = "r45"
SRC_URI = "file://config file://machconfig"
@@ -762,8 +747,7 @@
if [ -s "${S}/machconfig" ]; then
install -m 0644 ${S}/machconfig ${D}${sysconfdir}/formfactor/
fi
}
</literallayout>
} </literallayout>
In the main recipe, note the
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
variable, which tells the OpenEmbedded build system where to
@@ -775,7 +759,8 @@
<filename>formfactor_0.0.bbappend</filename> and is from the
Raspberry Pi BSP Layer named
<filename>meta-raspberrypi</filename>.
The file is in <filename>recipes-bsp/formfactor</filename>:
The file is in the layer at
<filename>recipes-bsp/formfactor</filename>:
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
</literallayout>
@@ -795,12 +780,13 @@
</para>
<para>
The statement in this example extends the directories to include
The statement in this example extends the directories to
include
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-THISDIR'><filename>THISDIR</filename></ulink><filename>}/${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename>,
which resolves to a directory named
<filename>formfactor</filename> in the same directory
in which the append file resides (i.e.
<filename>meta-raspberrypi/recipes-bsp/formfactor/formfactor</filename>.
<filename>meta-raspberrypi/recipes-bsp/formfactor</filename>.
This implies that you must have the supporting directory
structure set up that will contain any files or patches you
will be including from the layer.
@@ -808,8 +794,8 @@
<para>
Using the immediate expansion assignment operator
<filename>:=</filename> is important because of the reference to
<filename>THISDIR</filename>.
<filename>:=</filename> is important because of the reference
to <filename>THISDIR</filename>.
The trailing colon character is important as it ensures that
items in the list remain colon-separated.
<note>
@@ -7144,7 +7130,7 @@ Some notes from Cal:
and <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
statements enable the OpenEmbedded build system to find the patch file.
For more information on using append files, see the
"<link linkend='using-bbappend-files'>Using .bbappend Files</link>"
"<link linkend='using-bbappend-files'>Using .bbappend Files in Your Layer</link>"
section.
</para></listitem>
<listitem><para><emphasis>Put the patch file in your layer</emphasis>:
@@ -7616,14 +7602,14 @@ Some notes from Cal:
on how to add recipes to your layer, see the
"<link linkend='creating-your-own-layer'>Creating Your Own Layer</link>"
and
"<link linkend='best-practices-to-follow-when-creating-layers'>Best Practices to Follow When Creating Layers</link>"
"<link linkend='best-practices-to-follow-when-creating-layers'>Following Best Practices When Creating Layers</link>"
sections.</para></listitem>
<listitem><para>Add any image recipes that are specific
to your distribution.</para></listitem>
<listitem><para>Add a <filename>psplash</filename>
append file for a branded splash screen.
For information on append files, see the
"<link linkend='using-bbappend-files'>Using .bbappend Files</link>"
"<link linkend='using-bbappend-files'>Using .bbappend Files in Your Layer</link>"
section.</para></listitem>
<listitem><para>Add any other append files to make
custom changes that are specific to individual

View File

@@ -72,7 +72,7 @@
<filename>RDEPENDS_kernel-base</filename> to include or not
include "kernel-image".</para>
<para>See the
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>"
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>"
section in the Yocto Project Development Manual for information on
how to use an append file to override metadata.
</para>

View File

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 181 KiB

View File

@@ -69,7 +69,7 @@
<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python3 unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \
python3-pexpect findutils which file cpio python python3-pip xz which">
python3-pexpect findutils which file cpio python python3-pip xz">
<!ENTITY OPENSUSE_HOST_PACKAGES_ESSENTIAL "python gcc gcc-c++ git chrpath make wget python-xml \
diffstat makeinfo python-curses patch socat python3 python3-curses tar python3-pip \
python3-pexpect xz which">
@@ -77,5 +77,5 @@
$ sudo yum makecache
$ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \
perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python34-pip xz \
perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip xz \
which">

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

View File

@@ -25,12 +25,14 @@
For introductory information on the Yocto Project, see the
<ulink url='&YOCTO_HOME_URL;/ecosystem/yocto-project-backgrounders'>Yocto Project Backgrounders</ulink>
on the
<ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>.
<ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink> and the
"<link linkend='yp-intro'>Introducing the Yocto Project Development Environment</link>"
section.
</para>
<para>
You can find an introductory to using the Yocto Project by working
through the
If you want to use the Yocto Project to test run building an image
without having to understand concepts, work through the
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
You can find "how-to" information in the
<ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Manual</ulink>.
@@ -43,8 +45,8 @@
</para>
</section>
<section id='ref-yp-intro'>
<title>Yocto Project Introduction</title>
<section id='yp-intro'>
<title>Introducing the Yocto Project Development Environment</title>
<para>
The Yocto Project is an open-source collaboration project whose
@@ -69,6 +71,68 @@
is optimized for stylus-driven, low-resolution screens.
</para>
<mediaobject>
<imageobject>
<imagedata fileref="figures/YP-flow-diagram.png"
format="PNG" align='center' width="8in"/>
</imageobject>
</mediaobject>
<para>
Here are some highlights for the Yocto Project:
</para>
<itemizedlist>
<listitem><para>
Provides a recent Linux kernel along with a set of system
commands and libraries suitable for the embedded
environment.
</para></listitem>
<listitem><para>
Makes available system components such as X11, GTK+, Qt,
Clutter, and SDL (among others) so you can create a rich user
experience on devices that have display hardware.
For devices that do not have a display or where you wish to
use alternative UI frameworks, these components need not be
installed.
</para></listitem>
<listitem><para>
Creates a focused and stable core compatible with the
OpenEmbedded project with which you can easily and reliably
build and develop.
</para></listitem>
<listitem><para>
Fully supports a wide range of hardware and device emulation
through the Quick EMUlator (QEMU).
</para></listitem>
<listitem><para>
Provides a layer mechanism that allows you to easily extend
the system, make customizations, and keep them organized.
</para></listitem>
</itemizedlist>
<para>
You can use the Yocto Project to generate images for many kinds
of devices.
As mentioned earlier, the Yocto Project supports creation of
reference images that you can boot within and emulate using QEMU.
The standard example machines target QEMU full-system
emulation for 32-bit and 64-bit variants of x86, ARM, MIPS, and
PowerPC architectures.
Beyond emulation, you can use the layer mechanism to extend
support to just about any platform that Linux can run on and that
a toolchain can target.
</para>
<para>
Another Yocto Project feature is the Sato reference User
Interface.
This optional UI that is based on GTK+ is intended for devices with
restricted screen sizes and is included as part of the
OpenEmbedded Core layer so that developers can test parts of the
software stack.
</para>
<para>
While the Yocto Project does not provide a strict testing framework,
it does provide or generate for you artifacts that let you perform
@@ -625,7 +689,7 @@
<para>Information in append files extends or overrides the
information in the similarly-named recipe file.
For an example of an append file in use, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>"
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files in Your Layer</ulink>"
section in the Yocto Project Development Manual.
<note>
Append files can also use wildcard patterns in their

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

View File

@@ -730,6 +730,11 @@ div.navfooter {
}
.writernotes {
color: red;
}
/*********** /
/ graphics /
/ ***********/

View File

@@ -44,7 +44,6 @@
</note>
</legalnotice>
<abstract>
<imagedata fileref="figures/yocto-project-transp.png"
width="6in" depth="1in"
@@ -62,7 +61,7 @@
on the OpenEmbedded (OE) project, which uses the
<ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink>
tool, to construct complete Linux images.
The BitBake and OE components are combined together to form
The BitBake and OE components combine together to form
a reference build host, historically known as
<ulink url='&YOCTO_DOCS_REF_URL;#poky'>Poky</ulink>
(<emphasis>Pah</emphasis>-kee).
@@ -74,8 +73,14 @@
Linux images.
Rather than go into great detail about the Yocto Project and its
many capabilities, this quick start provides the minimal
information you need to try out the Yocto Project using a
supported Linux build host.
information you need to try out the Yocto Project using either a
supported Linux build host or a build host set up to use
<ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
which leverages
<ulink url='https://www.docker.com/'>Docker Containers</ulink>.
</para>
<para>
Reading and using the quick start should result in you having a
basic understanding of what the Yocto Project is and how to use
some of its core components.
@@ -100,6 +105,7 @@
<ulink url='http://www.yoctoproject.org/docs/2.4/yocto-project-qs/yocto-project-qs.html#building-an-image-for-hardware'>Building an Image for Hardware</ulink>
</para></listitem>
</itemizedlist>
<!--
<note>
If you do not have a system that runs Linux and you want to give
the Yocto Project a test run, you might consider using the Yocto
@@ -111,18 +117,13 @@
<ulink url='https://www.yoctoproject.org/tools-resources/projects/build-appliance'>Yocto Project Build Appliance</ulink>
for more information.
</note>
-->
</para>
<para>
For more detailed information on the Yocto Project, you can
reference these resources:
<itemizedlist>
<listitem><para>
<emphasis>Yocto Project Backgrounders:</emphasis>
The
<ulink url='&YOCTO_HOME_URL;/ecosystem/yocto-project-backgrounders'>Yocto Project Backgrounder</ulink>
provides introductory information on the Yocto Project.
</para></listitem>
<listitem><para>
<emphasis>Website:</emphasis>
The
@@ -131,6 +132,19 @@
documentation, and access to a rich Yocto Project
Development Community into which you can tap.
</para></listitem>
<listitem><para>
<emphasis>Yocto Project Backgrounders:</emphasis>
The
<ulink url='&YOCTO_HOME_URL;/ecosystem/yocto-project-backgrounders'>Yocto Project Backgrounder</ulink>
provides introductory information on the Yocto Project.
</para></listitem>
<listitem><para>
<emphasis>Yocto Project Development Environment Overview:</emphasis>
The
"<ulink url='&YOCTO_DOCS_REF_URL;#yp-intro'>Introducing the Yocto Project Development Environment</ulink>"
section presents an overview of the Yocto Project
development environment.
</para></listitem>
<listitem><para>
<emphasis>FAQs:</emphasis>
Lists commonly asked Yocto Project questions and answers.
@@ -161,243 +175,238 @@
</para>
</section>
<section id='yp-intro'>
<title>Introducing the Yocto Project Development Environment</title>
<para>
The Yocto Project through the OpenEmbedded build system provides an
open source development environment targeting the ARM, MIPS,
PowerPC, and x86 architectures for a variety of platforms
including x86-64 and emulated ones.
You can use components from the Yocto Project to design, develop,
build, debug, simulate, and test the complete software stack using
Linux, the X Window System, GTK+ frameworks, and Qt frameworks.
</para>
<mediaobject>
<imageobject>
<imagedata fileref="figures/yocto-environment.png"
format="PNG" align='center' width="8in"/>
</imageobject>
</mediaobject>
<para>
Here are some highlights for the Yocto Project:
</para>
<itemizedlist>
<listitem><para>
Provides a recent Linux kernel along with a set of system
commands and libraries suitable for the embedded
environment.
</para></listitem>
<listitem><para>
Makes available system components such as X11, GTK+, Qt,
Clutter, and SDL (among others) so you can create a rich user
experience on devices that have display hardware.
For devices that do not have a display or where you wish to
use alternative UI frameworks, these components need not be
installed.
</para></listitem>
<listitem><para>
Creates a focused and stable core compatible with the
OpenEmbedded project with which you can easily and reliably
build and develop.
</para></listitem>
<listitem><para>
Fully supports a wide range of hardware and device emulation
through the Quick EMUlator (QEMU).
</para></listitem>
<listitem><para>
Provides a layer mechanism that allows you to easily extend
the system, make customizations, and keep them organized.
</para></listitem>
</itemizedlist>
<para>
You can use the Yocto Project to generate images for many kinds
of devices.
As mentioned earlier, the Yocto Project supports creation of
reference images that you can boot within and emulate using QEMU.
The standard example machines target QEMU full-system
emulation for 32-bit and 64-bit variants of x86, ARM, MIPS, and
PowerPC architectures.
Beyond emulation, you can use the layer mechanism to extend
support to just about any platform that Linux can run on and that
a toolchain can target.
</para>
<para>
Another Yocto Project feature is the Sato reference User
Interface.
This optional UI that is based on GTK+ is intended for devices with
restricted screen sizes and is included as part of the
OpenEmbedded Core layer so that developers can test parts of the
software stack.
</para>
</section>
<section id='yp-resources'>
<title>Setting Up to Use the Yocto Project</title>
<para>
The following list shows what you need in order to use a
Linux-based build host to use the Yocto Project to build images:
Setting up to use the Yocto Project involves getting your build
host ready.
If you have a native Linux machine that runs a Yocto Project
supported distribution as described by the
"<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
section in the Yocto Project Reference Manual, you can prepare
that machine as your build host.
See the
"<link linkend='qs-native-linux-build-host'>Using a Native Linux Machine</link>"
section for more information.
</para>
<itemizedlist>
<listitem><para><emphasis>Build Host</emphasis>
A build host with a minimum of 50 Gbytes of free disk
space that is running a supported Linux distribution (i.e.
recent releases of Fedora, openSUSE, CentOS, Debian, or
Ubuntu).
</para></listitem>
<listitem><para><emphasis>Build Host Packages</emphasis>
Appropriate packages installed on the build host.
</para></listitem>
<listitem><para><emphasis>The Yocto Project</emphasis>
A release of the Yocto Project.
</para></listitem>
</itemizedlist>
<para>
If you do not want to use the Yocto Project on a native Linux
machine, you can prepare your build host to use
<ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
which leverages
<ulink url='https://www.docker.com/'>Docker Containers</ulink>.
You can set up a build host for Windows, Mac, and Linux
machines.
See the
"<link linkend='qs-crops-build-host'>Using CROPS and Containers</link>"
section for more information.
</para>
<section id='the-linux-distro'>
<title>The Linux Distribution</title>
<section id='qs-crops-build-host'>
<title>Using CROPS and Containers</title>
<para>
The Yocto Project team verifies each release against recent
versions of the most popular Linux distributions that
provide stable releases.
In general, if you have the current release minus one of the
following distributions, you should have no problems.
<itemizedlist>
Follow these steps to get your build host set up with a
Poky container that you can use to complete the build
examples further down in the Quick Start:
<orderedlist>
<listitem><para>
Ubuntu
<emphasis>Set Up to use CROss PlatformS (CROPS):</emphasis>
Work through the first six steps of the procedure
in the
"<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-to-use-crops'>Setting Up to Use CROss PlatformS (CROPS)</ulink>"
section of the Yocto Project Development Manual.
</para></listitem>
<listitem><para>
Fedora
</para></listitem>
<listitem><para>
openSUSE
</para></listitem>
<listitem><para>
CentOS
</para></listitem>
<listitem><para>
Debian
</para></listitem>
</itemizedlist>
For a more detailed list of distributions that support the
Yocto Project, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
section in the Yocto Project Reference Manual.
</para>
<emphasis>Set Up the Poky Container to Use the Yocto Project:</emphasis>
Go to
<ulink url='https://github.com/crops/poky-container/blob/master/README.md'></ulink>
and follow the directions to set up the Poky container
on your build host.</para>
<para>
The OpenEmbedded build system should be able to run on any
modern distribution that has the following versions for
Git, tar, and Python.
<itemizedlist>
<listitem><para>
Git 1.8.3.1 or greater
<para>Once you complete the setup instructions for your
machine, you need to get a copy of the
<filename>poky</filename> repository on your build
host.
See the
"<link linkend='releases'>Yocto Project Release</link>"
section to continue.
</para></listitem>
<listitem><para>
tar 1.27 or greater
</para></listitem>
<listitem><para>
Python 3.4.0 or greater.
</para></listitem>
</itemizedlist>
If your build host does not meet any of these three listed
version requirements, you can take steps to prepare the
system so that you can still use the Yocto Project.
See the
"<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
section in the Yocto Project Reference Manual for information.
</orderedlist>
</para>
</section>
<section id='packages'>
<title>The Build Host Packages</title>
<section id='qs-native-linux-build-host'>
<title>Using a Native Linux Machine</title>
<para>
Required build host packages vary depending on your
build machine and what you want to do with the Yocto Project.
For example, if you want to build an image that can run
on QEMU in graphical mode (a minimal, basic build
requirement), then the build host package requirements
are different than if you want to build an image on a headless
system or build out the Yocto Project documentation set.
The following list shows what you need in order to use a
Linux-based build host to use the Yocto Project to build images:
</para>
<para>
Collectively, the number of required packages is large
if you want to be able to cover all cases.
<note>
In general, you need to have root access and then install
the required packages.
Thus, the commands in the following section may or may
not work depending on whether or not your Linux
distribution has <filename>sudo</filename> installed.
</note>
</para>
<itemizedlist>
<listitem><para><emphasis>Build Host</emphasis>
A build host with a minimum of 50 Gbytes of free disk
space that is running a supported Linux distribution (i.e.
recent releases of Fedora, openSUSE, CentOS, Debian, or
Ubuntu).
</para></listitem>
<listitem><para><emphasis>Build Host Packages</emphasis>
Appropriate packages installed on the build host.
</para></listitem>
</itemizedlist>
<para>
The following list shows the required packages needed to build
an image that runs on QEMU in graphical mode (e.g. essential
plus graphics support).
For lists of required packages for other scenarios, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
section in the Yocto Project Reference Manual.
<itemizedlist>
<listitem><para><emphasis>Ubuntu and Debian</emphasis>
<literallayout class='monospaced'>
<section id='the-linux-distro'>
<title>The Linux Distribution</title>
<para>
The Yocto Project team verifies each release against recent
versions of the most popular Linux distributions that
provide stable releases.
In general, if you have the current release minus one of the
following distributions, you should have no problems.
<itemizedlist>
<listitem><para>
Ubuntu
</para></listitem>
<listitem><para>
Fedora
</para></listitem>
<listitem><para>
openSUSE
</para></listitem>
<listitem><para>
CentOS
</para></listitem>
<listitem><para>
Debian
</para></listitem>
</itemizedlist>
For a more detailed list of distributions that support the
Yocto Project, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
section in the Yocto Project Reference Manual.
</para>
<para>
The OpenEmbedded build system should be able to run on any
modern distribution that has the following versions for
Git, tar, and Python.
<itemizedlist>
<listitem><para>
Git 1.8.3.1 or greater
</para></listitem>
<listitem><para>
tar 1.27 or greater
</para></listitem>
<listitem><para>
Python 3.4.0 or greater.
</para></listitem>
</itemizedlist>
If your build host does not meet any of these three listed
version requirements, you can take steps to prepare the
system so that you can still use the Yocto Project.
See the
"<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
section in the Yocto Project Reference Manual for information.
</para>
</section>
<section id='packages'>
<title>The Build Host Packages</title>
<para>
Required build host packages vary depending on your
build machine and what you want to do with the Yocto Project.
For example, if you want to build an image that can run
on QEMU in graphical mode (a minimal, basic build
requirement), then the build host package requirements
are different than if you want to build an image on a headless
system or build out the Yocto Project documentation set.
</para>
<para>
Collectively, the number of required packages is large
if you want to be able to cover all cases.
<note>
In general, you need to have root access and then install
the required packages.
Thus, the commands in the following section may or may
not work depending on whether or not your Linux
distribution has <filename>sudo</filename> installed.
</note>
</para>
<para>
The following list shows the required packages needed to build
an image that runs on QEMU in graphical mode (e.g. essential
plus graphics support).
For lists of required packages for other scenarios, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
section in the Yocto Project Reference Manual.
<itemizedlist>
<listitem><para><emphasis>Ubuntu and Debian</emphasis>
<literallayout class='monospaced'>
$ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
</literallayout>
</para></listitem>
<listitem><para><emphasis>Fedora</emphasis>
<literallayout class='monospaced'>
</literallayout>
</para></listitem>
<listitem><para><emphasis>Fedora</emphasis>
<literallayout class='monospaced'>
$ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
</literallayout>
</para></listitem>
<listitem><para><emphasis>OpenSUSE</emphasis>
<literallayout class='monospaced'>
</literallayout>
</para></listitem>
<listitem><para><emphasis>OpenSUSE</emphasis>
<literallayout class='monospaced'>
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; libSDL-devel xterm
</literallayout>
</para></listitem>
<listitem><para><emphasis>CentOS</emphasis>
<literallayout class='monospaced'>
</literallayout>
</para></listitem>
<listitem><para><emphasis>CentOS</emphasis>
<literallayout class='monospaced'>
$ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
</literallayout>
<note><title>Notes</title>
<itemizedlist>
<listitem><para>
CentOS 6.x users need to ensure that the
required versions of Git, tar and Python
are available.
For details, See the
"<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
section in the Yocto Project Reference
Manual for information.
</para></listitem>
<listitem><para>
Extra Packages for Enterprise Linux
(i.e. <filename>epel-release</filename>)
is a collection of packages from Fedora
built on RHEL/CentOS for easy installation
of packages not included in enterprise
Linux by default.
You need to install these packages
separately.
</para></listitem>
<listitem><para>
The <filename>makecache</filename> command
consumes additional Metadata from
<filename>epel-release</filename>.
</para></listitem>
</itemizedlist>
</note>
</para></listitem>
</itemizedlist>
</literallayout>
<note><title>Notes</title>
<itemizedlist>
<listitem><para>
CentOS 6.x users need to ensure that the
required versions of Git, tar and Python
are available.
For details, See the
"<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
section in the Yocto Project Reference
Manual for information.
</para></listitem>
<listitem><para>
Extra Packages for Enterprise Linux
(i.e. <filename>epel-release</filename>)
is a collection of packages from Fedora
built on RHEL/CentOS for easy installation
of packages not included in enterprise
Linux by default.
You need to install these packages
separately.
</para></listitem>
<listitem><para>
The <filename>makecache</filename> command
consumes additional Metadata from
<filename>epel-release</filename>.
</para></listitem>
</itemizedlist>
</note>
</para></listitem>
</itemizedlist>
</para>
</section>
<para>
Once you complete the setup instructions for your
machine, you need to get a copy of the
<filename>poky</filename> repository on your build
host.
Continue with the
"<link linkend='releases'>Yocto Project Release</link>"
section.
</para>
</section>
@@ -405,8 +414,9 @@
<title>Yocto Project Release</title>
<para>
The last requirement you need to meet before using the
Yocto Project is getting a Yocto Project release.
Now that your build host has the right packages (native
Linux machine) or you have the Poky container set up
(CROPS), you need to get a copy of the Yocto Project.
It is recommended that you get the latest Yocto Project release
by setting up (cloning in
<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink> terms) a
@@ -417,9 +427,14 @@
</para>
<para>
Here is an example from an Ubuntu build host that clones the
<filename>poky</filename> repository and then checks out the
latest Yocto Project Release by tag
Here is an example from a native Linux machine that is
running Ubuntu.
<note>
If your build host is using a Poky container, you can
use the same Git commands.
</note>
The example clones the <filename>poky</filename> repository
and then checks out the latest Yocto Project Release by tag
(i.e. <filename>&DISTRO_REL_TAG;</filename>):
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/poky
@@ -465,20 +480,21 @@
<title>Building Images</title>
<para>
Now that you have your system requirements in order, you can give
Yocto Project a try.
You can try out Yocto Project using either the command-line
interface or using Toaster, which uses a graphical user
interface.
If you want to try out the Yocto Project using a GUI, see the
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>
for information on how to install and set up Toaster.
You are now ready to give the Yocto Project a try.
For this example, you will be using the command line to build
your images.
<note>
A graphical user interface to the Yocto Project is available
through Toaster.
See the
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>
for more information.
</note>
</para>
<para>
To use the Yocto Project through the command-line interface,
finish this quick start, which presents steps that let you
do the following:
The remainder of this quick start steps you through the
following:
<itemizedlist>
<listitem><para>
Build a <filename>qemux86</filename> reference image
@@ -538,7 +554,8 @@
<para>
<orderedlist>
<listitem><para><emphasis>Be Sure Your Build Host is Set Up:</emphasis>
<listitem><para>
<emphasis>Be Sure Your Build Host is Set Up:</emphasis>
The steps to build an image in this section depend on
your build host being properly set up.
Be sure you have worked through the requirements
@@ -546,7 +563,8 @@
"<link linkend='yp-resources'>Setting Up to Use the Yocto Project</link>"
section.
</para></listitem>
<listitem><para><emphasis>Check Out Your Branch:</emphasis>
<listitem><para>
<emphasis>Check Out Your Branch:</emphasis>
Be sure you are in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
(e.g. <filename>poky</filename>) and then check out
@@ -566,7 +584,8 @@
branch ensures you are using the latest files for
that release.
</para></listitem>
<listitem><para><emphasis>Initialize the Build Environment:</emphasis>
<listitem><para>
<emphasis>Initialize the Build Environment:</emphasis>
Run the
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
environment setup script to define the OpenEmbedded
@@ -591,7 +610,8 @@
setup script.
</note>
</para></listitem>
<listitem><para><emphasis>Examine Your Local Configuration File:</emphasis>
<listitem><para>
<emphasis>Examine Your Local Configuration File:</emphasis>
When you set up the build environment, a local
configuration file named
<filename>local.conf</filename> becomes available in
@@ -645,7 +665,8 @@
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para><emphasis>Start the Build:</emphasis>
<listitem><para>
<emphasis>Start the Build:</emphasis>
Continue with the following command to build an OS image
for the target, which is
<filename>core-image-sato</filename> in this example:
@@ -703,7 +724,8 @@
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
chapter in the Yocto Project Reference Manual.
</para></listitem>
<listitem><para><emphasis>Simulate Your Image Using QEMU:</emphasis>
<listitem><para>
<emphasis>Simulate Your Image Using QEMU:</emphasis>
Once this particular image is built, you can start QEMU
and run the image:
<literallayout class='monospaced'>
@@ -713,7 +735,8 @@
"<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
chapter in the Yocto Project Development Manual.
</para></listitem>
<listitem><para><emphasis>Exit QEMU:</emphasis>
<listitem><para>
<emphasis>Exit QEMU:</emphasis>
Exit QEMU by either clicking on the shutdown icon or by
typing <filename>Ctrl-C</filename> in the QEMU
transcript window from which you evoked QEMU.
@@ -743,7 +766,8 @@
<para>
<orderedlist>
<listitem><para><emphasis>Create a Local Copy of the
<listitem><para>
<emphasis>Create a Local Copy of the
<filename>meta-intel</filename> Repository:</emphasis>
Building an image for the MinnowBoard Turbot requires
the
@@ -792,7 +816,8 @@
"meta-intel-&DISTRO_NAME_NO_CAP;-&YOCTO_DOC_VERSION;"
in the above example.
</para></listitem>
<listitem><para><emphasis>Configure the Build:</emphasis>
<listitem><para>
<emphasis>Configure the Build:</emphasis>
To configure the build, you edit the
<filename>bblayers.conf</filename> and
<filename>local.conf</filename> files, both of which are
@@ -897,7 +922,8 @@
tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic
</literallayout>
</para></listitem>
<listitem><para><emphasis>Write the Image:</emphasis>
<listitem><para>
<emphasis>Write the Image:</emphasis>
You can write the image just built to a bootable media
(e.g. a USB key, SATA drive, SD card, etc.) using the
<filename>dd</filename> utility:
@@ -911,7 +937,8 @@
<filename>/dev/mmcblk0</filename>, which is most likely an
SD card).
</para></listitem>
<listitem><para><emphasis>Boot the Hardware:</emphasis>
<listitem><para>
<emphasis>Boot the Hardware:</emphasis>
With the boot device provisioned, you can insert the
media into the MinnowBoard Turbot and boot the hardware.
The board should automatically detect the media and boot to
@@ -975,7 +1002,7 @@
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>,
which are used primarily for application development.
This manual also provides example workflows
that use the popular <trademark class='trad'>Eclipse</trademark>
that use the popular <trademark class='trade'>Eclipse</trademark>
development environment and that use <filename>devtool</filename>.
See the
"<ulink url='&YOCTO_DOCS_SDK_URL;#workflow-using-eclipse'>Workflow using Eclipse™</ulink>"

View File

@@ -1,3 +1,8 @@
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato

View File

@@ -28,7 +28,9 @@
# Please keep this list in alphabetical order.
#
RECIPE_MAINTAINER_pn-acl = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-acpica = "Fathi Boudra <fathi.boudra@linaro.org>"
RECIPE_MAINTAINER_pn-acpid = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-acpitests = "Fathi Boudra <fathi.boudra@linaro.org>"
RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-alsa-lib = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-alsa-plugins = "Tanu Kaskinen <tanuk@iki.fi>"
@@ -80,6 +82,7 @@ RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-btrfs-tools = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-build-appliance-image = "Cristian Iorga <cristian.iorga@intel.com>"
RECIPE_MAINTAINER_pn-build-compare = "Randy Witt <randy.e.witt@linux.intel.com>"
RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-builder = "Cristian Iorga <cristian.iorga@intel.com>"
RECIPE_MAINTAINER_pn-buildtools-tarball = "Cristian Iorga <cristian.iorga@intel.com>"
RECIPE_MAINTAINER_pn-busybox = "Armin Kuster <akuster808@gmail.com>"
@@ -109,7 +112,7 @@ RECIPE_MAINTAINER_pn-consolekit = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-coreutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-cpio = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-cracklib = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn-createrepo = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-createrepo-c = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-cronie = "Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>"
RECIPE_MAINTAINER_pn-cross-localedef-native = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-cryptodev-linux = "Robert Yang <liezhi.yang@windriver.com>"
@@ -137,6 +140,7 @@ RECIPE_MAINTAINER_pn-distcc = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-distcc-config = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-dmidecode = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-dmxproto = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn-dnf = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-docbook-xml-dtd4 = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-docbook-xsl-stylesheets = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-dosfstools = "Dengke Du <dengke.du@windriver.com>"
@@ -216,8 +220,11 @@ RECIPE_MAINTAINER_pn-gnu-config = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gnu-efi = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gnupg = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-gnutls = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn_go = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-go-cross = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-go-helloworld = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-go-native = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gobject-introspection = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-go-native = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-gperf = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-gpgme = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-gptfdisk = "Alexander Kanavin <alexander.kanavin@intel.com>"
@@ -289,6 +296,7 @@ RECIPE_MAINTAINER_pn-kexec-tools = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn-keymaps = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-kmod = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-kmod-native = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-kmscube = "Carlos Rafael Giani <dv@pseudoterminal.org>"
RECIPE_MAINTAINER_pn-l3afpad = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-lame = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-latencytop = "Alexander Kanavin <alexander.kanavin@intel.com>"
@@ -308,10 +316,12 @@ RECIPE_MAINTAINER_pn-libcap-ng = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libcgroup = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libcheck = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libclass-isa-perl = "Aníbal Limón <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libcomps = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libconvert-asn1-perl = "Aníbal Limón <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libcroco = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libdaemon = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libdmx = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn-libdnf = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libdrm = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-libdumpvalue-perl = "Aníbal Limón <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libenv-perl = "Aníbal Limón <anibal.limon@linux.intel.com>"
@@ -351,6 +361,7 @@ RECIPE_MAINTAINER_pn-libnewt-python = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libnfsidmap = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libnl = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libnotify = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libnsl2 = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libnss-mdns = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libogg = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libomxil = "Maxin B. John <maxin.john@intel.com>"
@@ -366,6 +377,7 @@ RECIPE_MAINTAINER_pn-libpng12 = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpod-plainer-perl = "Aníbal Limón <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libproxy = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpthread-stubs = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-librepo = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-librsvg = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libsamplerate0 = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-libsdl = "Robert Yang <liezhi.yang@windriver.com>"
@@ -536,6 +548,8 @@ RECIPE_MAINTAINER_pn-oprofile = "Alexander Kanavin <alexander.kanavin@intel.com>
RECIPE_MAINTAINER_pn-orc = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-os-release = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-ossp-uuid = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-ovmf = "Ricardo Neri <ricardo.neri-calderon@linux.intel.com>"
RECIPE_MAINTAINER_pn-ovmf-shell-image = "Ricardo Neri <ricardo.neri-calderon@linux.intel.com>"
RECIPE_MAINTAINER_pn-p11-kit = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-package-index = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-pango = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -606,6 +620,7 @@ RECIPE_MAINTAINER_pn-python3-distribute = "Jose Lamego <jose.a.lamego@linux.inte
RECIPE_MAINTAINER_pn-python3-docutils = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-git = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-gitdb = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-iniparse = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-mako = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-native = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-nose = "Jose Lamego <jose.a.lamego@linux.intel.com>"
@@ -732,6 +747,7 @@ RECIPE_MAINTAINER_pn-weston = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-weston-init = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-wget = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-which = "Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>"
RECIPE_MAINTAINER_pn-wic-tools = "Ed Bartosh <ed.bartosh@linux.intel.com>"
RECIPE_MAINTAINER_pn-wireless-tools = "Changhyeok Bae <changhyeok.bae@lge.com>"
RECIPE_MAINTAINER_pn-wpa-supplicant = "Changhyeok Bae <changhyeok.bae@lge.com>"
RECIPE_MAINTAINER_pn-x11-common = "Armin Kuster <akuster@mvista.com>"

View File

@@ -2,7 +2,3 @@
# Things we exlude fromw world testing within the reference distro
#
# qwt from meta-qt4, has poky-lsb QA warnings, qt4 for lsb only
EXCLUDE_FROM_WORLD_pn-qwt = "1"
# python-pyqt from meta-qt4 requires sip from meta-oe
EXCLUDE_FROM_WORLD_pn-python-pyqt = "1"

View File

@@ -12,4 +12,4 @@ PREFERRED_PROVIDER_virtual/libx11 = "libx11"
KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc"
# Use the LTSI Kernel for LSB Testing
PREFERRED_VERSION_linux-yocto_linuxstdbase ?= "4.1%"
PREFERRED_VERSION_linux-yocto_linuxstdbase ?= "4.9%"

View File

@@ -15,13 +15,13 @@ DISTRO_VERSION[vardepsexclude] = "DATE"
SDK_VERSION[vardepsexclude] = "DATE"
# Override these in poky based distros
POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland"
POKY_DEFAULT_DISTRO_FEATURES = "largefile opengl ptest multiarch wayland vulkan"
POKY_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${POKY_DEFAULT_DISTRO_FEATURES}"
PREFERRED_VERSION_linux-yocto ?= "4.10%"
PREFERRED_VERSION_linux-yocto ?= "4.12%"
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
@@ -39,7 +39,7 @@ DISTRO_EXTRA_RDEPENDS_append_qemux86-64 = " ${POKYQEMUDEPS}"
TCLIBCAPPEND = ""
QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc x86_64"
QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el nios2 ppc x86_64"
# Other QEMU_TARGETS "sh4"
PREMIRRORS ??= "\

View File

@@ -1,27 +0,0 @@
build-compare
calibrateproto
dbus-wait
distcc
fstests
gnu-config
gst-player
kmscube
libxcalibrate
linux-firmware
lsb
mmc-utils
ovmf
piglit
psplash
puzzles
rpm
squashfs-tools
tcf-agent
unzip
update-rc.d
vulkan-demos
x264
xcursor-transparent-theme
xinetd
xvideo-tests
zip

View File

@@ -0,0 +1 @@
test123

View File

@@ -6,6 +6,8 @@ class DnfSelftest(DnfTest):
@classmethod
def setUpClass(cls):
import tempfile
cls.temp_dir = tempfile.TemporaryDirectory(prefix="oeqa-remotefeeds-")
cls.repo_server = HTTPService(os.path.join(cls.tc.td['WORKDIR'], 'oe-rootfs-repo'),
cls.tc.target.server_ip)
cls.repo_server.start()
@@ -13,6 +15,7 @@ class DnfSelftest(DnfTest):
@classmethod
def tearDownClass(cls):
cls.repo_server.stop()
cls.temp_dir.cleanup()
@OETestDepends(['dnf.DnfBasicTest.test_dnf_help'])
def test_verify_package_feeds(self):
@@ -25,18 +28,20 @@ class DnfSelftest(DnfTest):
"""
# When we created an image, we had to supply fake ip and port
# for the feeds. Now we can patch the real ones into the config file.
import tempfile
temp_file = tempfile.TemporaryDirectory(prefix="oeqa-remotefeeds-").name
temp_file = os.path.join(self.temp_dir.name, 'tmp.repo')
self.tc.target.copyFrom("/etc/yum.repos.d/oe-remote-repo.repo", temp_file)
fixed_config = open(temp_file, "r").read().replace("bogus_ip", self.tc.target.server_ip).replace("bogus_port", str(self.repo_server.port))
open(temp_file, "w").write(fixed_config)
with open(temp_file, "w") as f:
f.write(fixed_config)
self.tc.target.copyTo(temp_file, "/etc/yum.repos.d/oe-remote-repo.repo")
import re
output_makecache = self.dnf('makecache')
# Use '-y' for non-interactive mode: automatically import the feed signing key
output_makecache = self.dnf('-vy makecache')
self.assertTrue(re.match(r".*Failed to synchronize cache", output_makecache, re.DOTALL) is None, msg = "dnf makecache failed to synchronize repo: %s" %(output_makecache))
self.assertTrue(re.match(r".*Metadata cache created", output_makecache, re.DOTALL) is not None, msg = "dnf makecache failed: %s" %(output_makecache))
output_repoinfo = self.dnf('repoinfo')
output_repoinfo = self.dnf('-v repoinfo')
matchobj = re.match(r".*Repo-pkgs\s*:\s*(?P<n_pkgs>[0-9]+)", output_repoinfo, re.DOTALL)
self.assertTrue(matchobj is not None, msg = "Could not find the amount of packages in dnf repoinfo output: %s" %(output_repoinfo))
self.assertTrue(int(matchobj.group('n_pkgs')) > 0, msg = "Amount of remote packages is not more than zero: %s\n" %(output_repoinfo))

View File

@@ -1,26 +0,0 @@
KBRANCH_genericx86 = "standard/base"
KBRANCH_genericx86-64 = "standard/base"
KBRANCH_edgerouter = "standard/edgerouter"
KBRANCH_beaglebone = "standard/beaglebone"
KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
SRCREV_machine_genericx86 ?= "f905fdd5da150ea809f847f00f3476220606c0ff"
SRCREV_machine_genericx86-64 ?= "f905fdd5da150ea809f847f00f3476220606c0ff"
SRCREV_machine_edgerouter ?= "e2bea2e96fcbbbb9b1efc3bc7505ac42e39bb5c0"
SRCREV_machine_beaglebone ?= "243644adea596cda2ef1280a8e57075a1247089f"
SRCREV_machine_mpc8315e-rdb ?= "e2bea2e96fcbbbb9b1efc3bc7505ac42e39bb5c0"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone = "beaglebone"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
LINUX_VERSION_genericx86 = "4.1.42"
LINUX_VERSION_genericx86-64 = "4.1.42"
LINUX_VERSION_edgerouter = "4.1.42"
LINUX_VERSION_beaglebone = "4.1.42"
LINUX_VERSION_mpc8315e-rdb = "4.1.42"

View File

@@ -141,7 +141,7 @@ ACLOCALEXTRAPATH_class-nativesdk = " -I ${STAGING_DATADIR_NATIVE}/aclocal/"
python autotools_aclocals () {
# Refresh variable with cache files
d.setVar("CONFIG_SITE", siteinfo_get_files(d, aclocalcache=True))
d.setVar("CONFIG_SITE", siteinfo_get_files(d, sysrootcache=True))
}
CONFIGURE_FILES = "${S}/configure.in ${S}/configure.ac ${S}/config.h.in ${S}/acinclude.m4 Makefile.am"

View File

@@ -824,6 +824,8 @@ python buildhistory_eventhandler() {
interrupted = getattr(e, '_interrupted', 0)
localdata.setVar('BUILDHISTORY_BUILD_INTERRUPTED', str(interrupted))
bb.build.exec_func("buildhistory_commit", localdata)
else:
bb.note("No commit since BUILDHISTORY_COMMIT != '1'")
}
addhandler buildhistory_eventhandler
@@ -910,3 +912,33 @@ def write_latest_srcrev(d, pkghistdir):
else:
if os.path.exists(srcrevfile):
os.remove(srcrevfile)
do_testimage[postfuncs] += "write_ptest_result"
do_testimage[vardepsexclude] += "write_ptest_result"
python write_ptest_result() {
write_latest_ptest_result(d, d.getVar('BUILDHISTORY_DIR'))
}
def write_latest_ptest_result(d, histdir):
import glob
import subprocess
test_log_dir = d.getVar('TEST_LOG_DIR')
input_ptest = os.path.join(test_log_dir, 'ptest_log')
output_ptest = os.path.join(histdir, 'ptest')
if os.path.exists(input_ptest):
try:
# Lock it avoid race issue
lock = bb.utils.lockfile(output_ptest + "/ptest.lock")
bb.utils.mkdirhier(output_ptest)
oe.path.copytree(input_ptest, output_ptest)
# Sort test result
for result in glob.glob('%s/pass.fail.*' % output_ptest):
bb.debug(1, 'Processing %s' % result)
cmd = ['sort', result, '-o', result]
bb.debug(1, 'Running %s' % cmd)
ret = subprocess.call(cmd)
if ret != 0:
bb.error('Failed to run %s!' % cmd)
finally:
bb.utils.unlockfile(lock)

View File

@@ -38,7 +38,7 @@ python () {
extralibcs = [""]
if "musl" in d.getVar("BASECANADIANEXTRAOS"):
extralibcs.append("musl")
for variant in ["", "spe", "x32", "eabi", "n32"]:
for variant in ["", "spe", "x32", "eabi", "n32", "ilp32"]:
for libc in extralibcs:
entry = "linux"
if variant and libc:

View File

@@ -261,12 +261,44 @@ python do_checkpkg() {
from bb.utils import vercmp_string
from bb.fetch2 import FetchError, NoMethodError, decodeurl
"""first check whether a uri is provided"""
src_uri = (d.getVar('SRC_URI') or '').split()
if src_uri:
uri_type, _, _, _, _, _ = decodeurl(src_uri[0])
else:
uri_type = "none"
def get_upstream_version_and_status():
# set if the upstream check fails reliably, e.g. absent git tags, or weird version format used on our or on upstream side.
upstream_version_unknown = localdata.getVar('UPSTREAM_VERSION_UNKNOWN')
# set if the upstream check cannot be reliably performed due to transient network failures, or server behaving weirdly.
# This one should be used sparingly, as it completely excludes a recipe from upstream checking.
upstream_check_unreliable = localdata.getVar('UPSTREAM_CHECK_UNRELIABLE')
if upstream_check_unreliable == "1":
return "N/A", "CHECK_IS_UNRELIABLE"
try:
uv = oe.recipeutils.get_recipe_upstream_version(localdata)
pupver = uv['version'] if uv['version'] else "N/A"
except Exception as e:
pupver = "N/A"
if pupver == "N/A":
pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN"
else:
src_uri = (localdata.getVar('SRC_URI') or '').split()
if src_uri:
uri_type, _, _, _, _, _ = decodeurl(src_uri[0])
else:
uri_type = "none"
pv, _, _ = oe.recipeutils.get_recipe_pv_without_srcpv(pversion, uri_type)
upv, _, _ = oe.recipeutils.get_recipe_pv_without_srcpv(pupver, uri_type)
cmp = vercmp_string(pv, upv)
if cmp == -1:
pstatus = "UPDATE" if not upstream_version_unknown else "KNOWN_BROKEN"
elif cmp == 0:
pstatus = "MATCH" if not upstream_version_unknown else "KNOWN_BROKEN"
else:
pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN"
return pupver, pstatus
"""initialize log files."""
logpath = d.getVar('LOG_DIR')
@@ -313,34 +345,7 @@ python do_checkpkg() {
psrcuri = localdata.getVar('SRC_URI')
maintainer = localdata.getVar('RECIPE_MAINTAINER')
""" Get upstream version version """
pupver = ""
pstatus = ""
try:
uv = oe.recipeutils.get_recipe_upstream_version(localdata)
pupver = uv['version']
except Exception as e:
if e is FetchError:
pstatus = "ErrAccess"
elif e is NoMethodError:
pstatus = "ErrUnsupportedProto"
else:
pstatus = "ErrUnknown"
"""Set upstream version status"""
if not pupver:
pupver = "N/A"
else:
pv, _, _ = oe.recipeutils.get_recipe_pv_without_srcpv(pversion, uri_type)
upv, _, _ = oe.recipeutils.get_recipe_pv_without_srcpv(pupver, uri_type)
cmp = vercmp_string(pv, upv)
if cmp == -1:
pstatus = "UPDATE"
elif cmp == 0:
pstatus = "MATCH"
pupver, pstatus = get_upstream_version_and_status()
if psrcuri:
psrcuri = psrcuri.split()[0]

View File

@@ -184,11 +184,19 @@ def srctree_hash_files(d, srcdir=None):
import tempfile
s_dir = srcdir or d.getVar('EXTERNALSRC')
git_dir = os.path.join(s_dir, '.git')
oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1')
git_dir = None
try:
# git rev-parse returns the path relative to the current working
# directory
git_dir = os.path.join(s_dir,
subprocess.check_output(['git', 'rev-parse', '--git-dir'], cwd=s_dir).decode("utf-8").rstrip())
except subprocess.CalledProcessError:
pass
ret = " "
if os.path.exists(git_dir):
if git_dir is not None:
oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1')
with tempfile.NamedTemporaryFile(prefix='oe-devtool-index') as tmp_index:
# Clone index
shutil.copyfile(os.path.join(git_dir, 'index'), tmp_index.name)

View File

@@ -17,3 +17,8 @@ DEPENDS_GETTEXT ??= "virtual/gettext gettext-native"
BASEDEPENDS_append = " ${@gettext_dependencies(d)}"
EXTRA_OECONF_append = " ${@gettext_oeconf(d)}"
# Without this, msgfmt from gettext-native will not find ITS files
# provided by target recipes (for example, polkit.its).
GETTEXTDATADIRS_append_class-target = ":${STAGING_DATADIR}/gettext"
export GETTEXTDATADIRS

View File

@@ -14,6 +14,7 @@ GO_BUILD_BINDIR = "${@['bin/${HOST_GOTUPLE}','bin'][d.getVar('BUILD_GOTUPLE',Tru
# define here because everybody inherits this class
#
COMPATIBLE_HOST_linux-gnux32 = "null"
COMPATIBLE_HOST_linux-muslx32 = "null"
COMPATIBLE_HOST_powerpc = "null"
COMPATIBLE_HOST_powerpc64 = "null"

View File

@@ -17,7 +17,6 @@
# ${GRUB_ROOT} - grub's root device.
do_bootimg[depends] += "${MLPREFIX}grub-efi:do_deploy"
do_bootdirectdisk[depends] += "${MLPREFIX}grub-efi:do_deploy"
GRUB_SERIAL ?= "console=ttyS0,115200"
GRUB_CFG_VM = "${S}/grub_vm.cfg"

View File

@@ -1,6 +1,6 @@
do_rootfs[depends] += "prelink-native:do_populate_sysroot"
IMAGE_PREPROCESS_COMMAND += "prelink_setup; prelink_image; "
IMAGE_PREPROCESS_COMMAND_append_libc-glibc = " prelink_setup; prelink_image; "
python prelink_setup () {
oe.utils.write_ld_so_conf(d)
@@ -36,7 +36,17 @@ prelink_image () {
dynamic_loader=$(linuxloader)
# prelink!
${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -amR -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
bbnote " prelink: BUILD_REPRODUCIBLE_BINARIES..."
if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
export PRELINK_TIMESTAMP=`git log -1 --pretty=%ct `
else
export PRELINK_TIMESTAMP=$REPRODUCIBLE_TIMESTAMP_ROOTFS
fi
${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -am -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader
else
${STAGING_SBINDIR_NATIVE}/prelink --root ${IMAGE_ROOTFS} -amR -N -c ${sysconfdir}/prelink.conf --dynamic-linker $dynamic_loader
fi
# Remove the prelink.conf if we had to add it.
if [ "$dummy_prelink_conf" = "true" ]; then

View File

@@ -1,171 +0,0 @@
# image-vm.bbclass
# (loosly based off image-live.bbclass Copyright (C) 2004, Advanced Micro Devices, Inc.)
#
# Create an image which can be placed directly onto a harddisk using dd and then
# booted.
#
# This uses syslinux. extlinux would have been nice but required the ext2/3
# partition to be mounted. grub requires to run itself as part of the install
# process.
#
# The end result is a 512 boot sector populated with an MBR and partition table
# followed by an msdos fat16 partition containing syslinux and a linux kernel
# completed by the ext2/3 rootfs.
#
# We have to push the msdos parition table size > 16MB so fat 16 is used as parted
# won't touch fat12 partitions.
inherit live-vm-common
do_bootdirectdisk[depends] += "dosfstools-native:do_populate_sysroot \
virtual/kernel:do_deploy \
syslinux:do_populate_sysroot \
syslinux-native:do_populate_sysroot \
parted-native:do_populate_sysroot \
mtools-native:do_populate_sysroot \
${PN}:do_image_${VM_ROOTFS_TYPE} \
"
IMAGE_TYPEDEP_vmdk = "${VM_ROOTFS_TYPE}"
IMAGE_TYPEDEP_vdi = "${VM_ROOTFS_TYPE}"
IMAGE_TYPEDEP_qcow2 = "${VM_ROOTFS_TYPE}"
IMAGE_TYPEDEP_hdddirect = "${VM_ROOTFS_TYPE}"
IMAGE_TYPES_MASKED += "vmdk vdi qcow2 hdddirect"
VM_ROOTFS_TYPE ?= "ext4"
ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${VM_ROOTFS_TYPE}"
# Used by bootloader
LABELS_VM ?= "boot"
ROOT_VM ?= "root=/dev/sda2"
# Using an initramfs is optional. Enable it by setting INITRD_IMAGE_VM.
INITRD_IMAGE_VM ?= ""
INITRD_VM ?= "${@'${IMGDEPLOYDIR}/${INITRD_IMAGE_VM}-${MACHINE}.cpio.gz' if '${INITRD_IMAGE_VM}' else ''}"
do_bootdirectdisk[depends] += "${@'${INITRD_IMAGE_VM}:do_image_complete' if '${INITRD_IMAGE_VM}' else ''}"
BOOTDD_VOLUME_ID ?= "boot"
BOOTDD_EXTRA_SPACE ?= "16384"
DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}"
DISK_SIGNATURE[vardepsexclude] = "DISK_SIGNATURE_GENERATED"
build_boot_dd() {
HDDDIR="${S}/hdd/boot"
HDDIMG="${S}/hdd.image"
IMAGE=${IMGDEPLOYDIR}/${IMAGE_NAME}.hdddirect
populate_kernel $HDDDIR
if [ "${PCBIOS}" = "1" ]; then
syslinux_hddimg_populate $HDDDIR
fi
if [ "${EFI}" = "1" ]; then
efi_hddimg_populate $HDDDIR
fi
BLOCKS=`du -bks $HDDDIR | cut -f 1`
BLOCKS=`expr $BLOCKS + ${BOOTDD_EXTRA_SPACE}`
# Remove it since mkdosfs would fail when it exists
rm -f $HDDIMG
mkdosfs -n ${BOOTDD_VOLUME_ID} ${MKDOSFS_EXTRAOPTS} -C $HDDIMG $BLOCKS
mcopy -i $HDDIMG -s $HDDDIR/* ::/
if [ "${PCBIOS}" = "1" ]; then
syslinux_hdddirect_install $HDDIMG
fi
chmod 644 $HDDIMG
ROOTFSBLOCKS=`du -Lbks ${ROOTFS} | cut -f 1`
TOTALSIZE=`expr $BLOCKS + $ROOTFSBLOCKS`
END1=`expr $BLOCKS \* 1024`
END2=`expr $END1 + 512`
END3=`expr \( $ROOTFSBLOCKS \* 1024 \) + $END1`
echo $ROOTFSBLOCKS $TOTALSIZE $END1 $END2 $END3
rm -rf $IMAGE
dd if=/dev/zero of=$IMAGE bs=1024 seek=$TOTALSIZE count=1
parted $IMAGE mklabel msdos
parted $IMAGE mkpart primary fat16 0 ${END1}B
parted $IMAGE unit B mkpart primary ext2 ${END2}B ${END3}B
parted $IMAGE set 1 boot on
parted $IMAGE print
awk "BEGIN { printf \"$(echo ${DISK_SIGNATURE} | sed 's/\(..\)\(..\)\(..\)\(..\)/\\x\4\\x\3\\x\2\\x\1/')\" }" | \
dd of=$IMAGE bs=1 seek=440 conv=notrunc
OFFSET=`expr $END2 / 512`
if [ "${PCBIOS}" = "1" ]; then
dd if=${STAGING_DATADIR}/syslinux/mbr.bin of=$IMAGE conv=notrunc
fi
dd if=$HDDIMG of=$IMAGE conv=notrunc seek=1 bs=512
dd if=${ROOTFS} of=$IMAGE conv=notrunc seek=$OFFSET bs=512
cd ${IMGDEPLOYDIR}
ln -sf ${IMAGE_NAME}.hdddirect ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.hdddirect
}
python do_bootdirectdisk() {
validate_disk_signature(d)
set_live_vm_vars(d, 'VM')
if d.getVar("PCBIOS") == "1":
bb.build.exec_func('build_syslinux_cfg', d)
if d.getVar("EFI") == "1":
bb.build.exec_func('build_efi_cfg', d)
bb.build.exec_func('build_boot_dd', d)
}
def generate_disk_signature():
import uuid
signature = str(uuid.uuid4())[:8]
if signature != '00000000':
return signature
else:
return 'ffffffff'
def validate_disk_signature(d):
import re
disk_signature = d.getVar("DISK_SIGNATURE")
if not re.match(r'^[0-9a-fA-F]{8}$', disk_signature):
bb.fatal("DISK_SIGNATURE '%s' must be an 8 digit hex string" % disk_signature)
DISK_SIGNATURE_GENERATED := "${@generate_disk_signature()}"
run_qemu_img (){
type="$1"
qemu-img convert -O $type ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.hdddirect ${IMGDEPLOYDIR}/${IMAGE_NAME}.$type
ln -sf ${IMAGE_NAME}.$type ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$type
}
create_vmdk_image () {
run_qemu_img vmdk
}
create_vdi_image () {
run_qemu_img vdi
}
create_qcow2_image () {
run_qemu_img qcow2
}
python do_vmimg() {
if 'vmdk' in d.getVar('IMAGE_FSTYPES'):
bb.build.exec_func('create_vmdk_image', d)
if 'vdi' in d.getVar('IMAGE_FSTYPES'):
bb.build.exec_func('create_vdi_image', d)
if 'qcow2' in d.getVar('IMAGE_FSTYPES'):
bb.build.exec_func('create_qcow2_image', d)
}
addtask bootdirectdisk before do_vmimg
addtask vmimg after do_bootdirectdisk before do_image_complete
do_vmimg[depends] += "qemu-native:do_populate_sysroot"

View File

@@ -117,7 +117,7 @@ def rootfs_variables(d):
'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS']
variables.extend(rootfs_command_variables(d))
variables.extend(variable_depends(d))
return " ".join(variables)
@@ -138,9 +138,6 @@ def build_live(d):
IMAGE_TYPE_live = "${@build_live(d)}"
inherit ${IMAGE_TYPE_live}
IMAGE_TYPE_vm = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi", "qcow2", "hdddirect"], "image-vm", "", d)}'
inherit ${IMAGE_TYPE_vm}
IMAGE_TYPE_container = '${@bb.utils.contains("IMAGE_FSTYPES", "container", "image-container", "", d)}'
inherit ${IMAGE_TYPE_container}
@@ -174,10 +171,6 @@ python () {
d.setVar('IMAGE_FEATURES', ' '.join(sorted(list(remain_features))))
check_image_features(d)
initramfs_image = d.getVar('INITRAMFS_IMAGE') or ""
if initramfs_image != "":
d.appendVarFlag('do_build', 'depends', " %s:do_bundle_initramfs" % d.getVar('PN'))
d.appendVarFlag('do_bundle_initramfs', 'depends', " %s:do_image_complete" % initramfs_image)
}
IMAGE_CLASSES += "image_types"
@@ -257,6 +250,7 @@ fakeroot python do_rootfs () {
progress_reporter.next_stage()
# generate rootfs
d.setVarFlag('REPRODUCIBLE_TIMESTAMP_ROOTFS', 'export', '1')
create_rootfs(d, progress_reporter=progress_reporter, logcatcher=logcatcher)
progress_reporter.finish()
@@ -264,18 +258,19 @@ fakeroot python do_rootfs () {
do_rootfs[dirs] = "${TOPDIR}"
do_rootfs[cleandirs] += "${S} ${IMGDEPLOYDIR}"
do_rootfs[umask] = "022"
addtask rootfs before do_build after do_prepare_recipe_sysroot
addtask rootfs after do_prepare_recipe_sysroot
fakeroot python do_image () {
from oe.utils import execute_pre_post_process
d.setVarFlag('REPRODUCIBLE_TIMESTAMP_ROOTFS', 'export', '1')
pre_process_cmds = d.getVar("IMAGE_PREPROCESS_COMMAND")
execute_pre_post_process(d, pre_process_cmds)
}
do_image[dirs] = "${TOPDIR}"
do_image[umask] = "022"
addtask do_image after do_rootfs before do_build
addtask do_image after do_rootfs
fakeroot python do_image_complete () {
from oe.utils import execute_pre_post_process
@@ -292,6 +287,10 @@ do_image_complete[sstate-inputdirs] = "${IMGDEPLOYDIR}"
do_image_complete[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
do_image_complete[stamp-extra-info] = "${MACHINE}"
addtask do_image_complete after do_image before do_build
python do_image_complete_setscene () {
sstate_setscene(d)
}
addtask do_image_complete_setscene
# Add image-level QA/sanity checks to IMAGE_QA_COMMANDS
#
@@ -323,6 +322,15 @@ fakeroot python do_image_qa () {
}
addtask do_image_qa after do_image_complete before do_build
SSTATETASKS += "do_image_qa"
SSTATE_SKIP_CREATION_task-image-qa = '1'
do_image_qa[sstate-inputdirs] = ""
do_image_qa[sstate-outputdirs] = ""
python do_image_qa_setscene () {
sstate_setscene(d)
}
addtask do_image_qa_setscene
def setup_debugfs_variables(d):
d.appendVar('IMAGE_ROOTFS', '-dbg')
d.appendVar('IMAGE_LINK_NAME', '-dbg')
@@ -427,6 +435,7 @@ python () {
# date/time values. It will get expanded at execution time.
# Similarly TMPDIR since otherwise we see QA stamp comparision problems
localdata.delVar('DATETIME')
localdata.delVar('DATE')
localdata.delVar('TMPDIR')
image_cmd = localdata.getVar("IMAGE_CMD")
@@ -491,7 +500,7 @@ python () {
d.prependVarFlag(task, 'postfuncs', ' create_symlinks')
d.appendVarFlag(task, 'subimages', ' ' + ' '.join(subimages))
d.appendVarFlag(task, 'vardeps', ' ' + ' '.join(vardeps))
d.appendVarFlag(task, 'vardepsexclude', 'DATETIME')
d.appendVarFlag(task, 'vardepsexclude', 'DATETIME DATE')
bb.debug(2, "Adding task %s before %s, after %s" % (task, 'do_image_complete', after))
bb.build.addtask(task, 'do_image_complete', after, d)
@@ -600,15 +609,6 @@ do_package_write_ipk[noexec] = "1"
do_package_write_deb[noexec] = "1"
do_package_write_rpm[noexec] = "1"
# Allow the kernel to be repacked with the initramfs and boot image file as a single file
do_bundle_initramfs[depends] += "virtual/kernel:do_bundle_initramfs"
do_bundle_initramfs[nostamp] = "1"
do_bundle_initramfs[noexec] = "1"
do_bundle_initramfs () {
:
}
addtask bundle_initramfs after do_image_complete
# Prepare the root links to point to the /usr counterparts.
create_merged_usr_symlinks() {
root="$1"
@@ -640,3 +640,15 @@ create_merged_usr_symlinks_sdk() {
ROOTFS_PREPROCESS_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks_rootfs; ', '',d)}"
POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks_sdk; ', '',d)}"
reproducible_final_image_task () {
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
REPRODUCIBLE_TIMESTAMP_ROOTFS=`git log -1 --pretty=%ct`
fi
# Set mtime of all files to a reproducible value
bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS"
find ${IMAGE_ROOTFS} -exec touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS {} \;
fi
}
IMAGE_PREPROCESS_COMMAND_append = " reproducible_final_image_task; "

View File

@@ -119,7 +119,8 @@ IMAGE_CMD_squashfs-lzo = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAM
# In practice, it turned out to be not needed when creating archives and
# required when extracting, but it seems prudent to use it in both cases.
IMAGE_CMD_TAR ?= "tar"
IMAGE_CMD_tar = "${IMAGE_CMD_TAR} -cvf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.tar -C ${IMAGE_ROOTFS} ."
# ignore return code 1 "file changed as we read it" as other tasks(e.g. do_image_wic) may be hardlinking rootfs
IMAGE_CMD_tar = "${IMAGE_CMD_TAR} -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.tar -C ${IMAGE_ROOTFS} . || [ $? -eq 1 ]"
do_image_cpio[cleandirs] += "${WORKDIR}/cpio_append"
IMAGE_CMD_cpio () {
@@ -254,10 +255,6 @@ IMAGE_TYPES = " \
ubi ubifs multiubi \
tar tar.gz tar.bz2 tar.xz tar.lz4 \
cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \
vmdk \
vdi \
qcow2 \
hdddirect \
elf \
wic wic.gz wic.bz2 wic.lzma \
container \
@@ -269,7 +266,7 @@ IMAGE_TYPES = " \
# CONVERSION_CMD/DEPENDS.
COMPRESSIONTYPES ?= ""
CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot ${COMPRESSIONTYPES}"
CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vdi qcow2 ${COMPRESSIONTYPES}"
CONVERSION_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_gz = "gzip -f -9 -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
CONVERSION_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
@@ -287,6 +284,9 @@ CONVERSION_CMD_sha384sum = "sha384sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}
CONVERSION_CMD_sha512sum = "sha512sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha512sum"
CONVERSION_CMD_bmap = "bmaptool create ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.bmap"
CONVERSION_CMD_u-boot = "mkimage -A ${UBOOT_ARCH} -O linux -T ramdisk -C none -n ${IMAGE_NAME} -d ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.u-boot"
CONVERSION_CMD_vmdk = "qemu-img convert -O vmdk ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vmdk"
CONVERSION_CMD_vdi = "qemu-img convert -O vdi ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vdi"
CONVERSION_CMD_qcow2 = "qemu-img convert -O qcow2 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.qcow2"
CONVERSION_DEPENDS_lzma = "xz-native"
CONVERSION_DEPENDS_gz = "pigz-native"
CONVERSION_DEPENDS_bz2 = "pbzip2-native"
@@ -297,6 +297,9 @@ CONVERSION_DEPENDS_zip = "zip-native"
CONVERSION_DEPENDS_sum = "mtd-utils-native"
CONVERSION_DEPENDS_bmap = "bmap-tools-native"
CONVERSION_DEPENDS_u-boot = "u-boot-mkimage-native"
CONVERSION_DEPENDS_vmdk = "qemu-native"
CONVERSION_DEPENDS_vdi = "qemu-native"
CONVERSION_DEPENDS_qcow2 = "qemu-native"
RUNNABLE_IMAGE_TYPES ?= "ext2 ext3 ext4"
RUNNABLE_MACHINE_PATTERNS ?= "qemu"

View File

@@ -18,11 +18,6 @@
# files under exec_prefix
# unsafe-references-in-binaries requires prelink-rtld from
# prelink-native, but we don't want this DEPENDS for -native builds
QADEPENDS = "prelink-native"
QADEPENDS_class-native = ""
QADEPENDS_class-nativesdk = ""
QA_SANE = "True"
# Elect whether a given type of error is a warning or error, they may
@@ -390,71 +385,6 @@ def package_qa_check_perm(path,name,d, elf, messages):
"""
return
QAPATHTEST[unsafe-references-in-scripts] = "package_qa_check_unsafe_references_in_scripts"
def package_qa_check_unsafe_references_in_scripts(path, name, d, elf, messages):
"""
Warn if scripts in base_[bindir|sbindir|libdir] reference files under exec_prefix
"""
if unsafe_references_skippable(path, name, d):
return
if not elf:
import stat
import subprocess
pn = d.getVar('PN')
# Ensure we're checking an executable script
statinfo = os.stat(path)
if bool(statinfo.st_mode & stat.S_IXUSR):
# grep shell scripts for possible references to /exec_prefix/
exec_prefix = d.getVar('exec_prefix')
statement = "grep -e '%s/[^ :]\{1,\}/[^ :]\{1,\}' %s > /dev/null" % (exec_prefix, path)
if subprocess.call(statement, shell=True) == 0:
error_msg = pn + ": Found a reference to %s/ in %s" % (exec_prefix, path)
package_qa_handle_error("unsafe-references-in-scripts", error_msg, d)
error_msg = "Shell scripts in base_bindir and base_sbindir should not reference anything in exec_prefix"
package_qa_handle_error("unsafe-references-in-scripts", error_msg, d)
def unsafe_references_skippable(path, name, d):
if bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d):
return True
if "-dbg" in name or "-dev" in name:
return True
# Other package names to skip:
if name.startswith("kernel-module-"):
return True
# Skip symlinks
if os.path.islink(path):
return True
# Skip unusual rootfs layouts which make these tests irrelevant
exec_prefix = d.getVar('exec_prefix')
if exec_prefix == "":
return True
pkgdest = d.getVar('PKGDEST')
pkgdest = pkgdest + "/" + name
pkgdest = os.path.abspath(pkgdest)
base_bindir = pkgdest + d.getVar('base_bindir')
base_sbindir = pkgdest + d.getVar('base_sbindir')
base_libdir = pkgdest + d.getVar('base_libdir')
bindir = pkgdest + d.getVar('bindir')
sbindir = pkgdest + d.getVar('sbindir')
libdir = pkgdest + d.getVar('libdir')
if base_bindir == bindir and base_sbindir == sbindir and base_libdir == libdir:
return True
# Skip files not in base_[bindir|sbindir|libdir]
path = os.path.abspath(path)
if not (base_bindir in path or base_sbindir in path or base_libdir in path):
return True
return False
QAPATHTEST[arch] = "package_qa_check_arch"
def package_qa_check_arch(path,name,d, elf, messages):
"""
@@ -1153,8 +1083,6 @@ python do_package_qa () {
continue
if w in testmatrix and testmatrix[w] in g:
warnchecks.append(g[testmatrix[w]])
if w == 'unsafe-references-in-binaries':
oe.utils.write_ld_so_conf(d)
errorchecks = []
for e in (d.getVar("ERROR_QA") or "").split():
@@ -1162,8 +1090,6 @@ python do_package_qa () {
continue
if e in testmatrix and testmatrix[e] in g:
errorchecks.append(g[testmatrix[e]])
if e == 'unsafe-references-in-binaries':
oe.utils.write_ld_so_conf(d)
return warnchecks, errorchecks
for package in packages:

View File

@@ -120,6 +120,11 @@ python split_kernel_module_packages () {
rdepends[dep] = []
d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False))
# let kernel modules runtime recommend kernel image
rrecommends = bb.utils.explode_dep_versions2(d.getVar('RRECOMMENDS_' + pkg) or "")
rrecommends['kernel-image'] = []
d.setVar('RRECOMMENDS_' + pkg, bb.utils.join_deps(rrecommends, commasep=False))
# Avoid automatic -dev recommendations for modules ending with -dev.
d.setVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs', 1)
@@ -138,7 +143,7 @@ python split_kernel_module_packages () {
postinst = d.getVar('pkg_postinst_modules')
postrm = d.getVar('pkg_postrm_modules')
modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))
modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='')
if modules:
metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
d.appendVar('RDEPENDS_' + metapkg, ' '+' '.join(modules))

View File

@@ -143,6 +143,9 @@ do_kernel_metadata() {
# expand kernel features into their full path equivalents
bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE})
if [ $? -ne 0 ] || [ -z "${bsp_definition}" ]; then
bbfatal_log "Could not locate BSP definiton for ${KMACHINE}/${LINUX_KERNEL_TYPE}."
fi
meta_dir=$(kgit --meta)
# run1: pull all the configuration fragments, no matter where they come from

View File

@@ -255,8 +255,36 @@ python do_devshell_prepend () {
addtask bundle_initramfs after do_install before do_deploy
get_cc_option () {
# Check if KERNEL_CC supports the option "file-prefix-map".
# This option allows us to build images with __FILE__ values that do not
# contain the host build path.
if ${KERNEL_CC} -Q --help=joined | grep -q "\-ffile-prefix-map=<old=new>"; then
echo "-ffile-prefix-map=${S}=/kernel-source/"
fi
}
kernel_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
if [ "$BUILD_REPRODUCIBLE_BINARIES" = "1" ]; then
# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
# be set....
if [ "$SOURCE_DATE_EPOCH" = "0" ]; then
olddir=`pwd`
cd ${S}
SOURCE_DATE_EPOCH=`git log -1 --pretty=%ct`
# git repo not guaranteed, so fall back to REPRODUCIBLE_TIMESTAMP_ROOTFS
if [ $? -ne 0 ]; then
SOURCE_DATE_EPOCH=${REPRODUCIBLE_TIMESTAMP_ROOTFS}
fi
cd $olddir
fi
ts=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH`
export KBUILD_BUILD_TIMESTAMP="$ts"
export KCONFIG_NOTIMESTAMP=1
bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
fi
# The $use_alternate_initrd is only set from
# do_bundle_initramfs() This variable is specifically for the
# case where we are making a second pass at the kernel
@@ -270,20 +298,22 @@ kernel_do_compile() {
copy_initramfs
use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio
fi
cc_extra=$(get_cc_option)
for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do
oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
oe_runmake ${typeformake} CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
done
# vmlinux.gz is not built by kernel
if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then
mkdir -p "${KERNEL_OUTPUT_DIR}"
gzip -9c < ${B}/vmlinux > "${KERNEL_OUTPUT_DIR}/vmlinux.gz"
gzip -9cn < ${B}/vmlinux > "${KERNEL_OUTPUT_DIR}/vmlinux.gz"
fi
}
do_compile_kernelmodules() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
cc_extra=$(get_cc_option)
oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
# Module.symvers gets updated during the
# building of the kernel modules. We need to

View File

@@ -255,14 +255,9 @@ def get_boot_dependencies(d):
"""
depends = []
boot_depends_string = ""
taskdepdata = d.getVar("BB_TASKDEPDATA", False)
# Only bootimg and bootdirectdisk include the depends flag
boot_tasks = ["do_bootimg", "do_bootdirectdisk",]
for task in boot_tasks:
boot_depends_string = "%s %s" % (boot_depends_string,
d.getVarFlag(task, "depends") or "")
# Only bootimg includes the depends flag
boot_depends_string = d.getVarFlag("do_bootimg", "depends") or ""
boot_depends = [dep.split(":")[0] for dep
in boot_depends_string.split()
if not dep.split(":")[0].endswith("-native")]

View File

@@ -1,6 +1,6 @@
inherit module-base kernel-module-split pkgconfig
addtask make_scripts after do_prepare_recipe_sysroot before do_compile
addtask make_scripts after do_prepare_recipe_sysroot before do_configure
do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
do_make_scripts[depends] += "virtual/kernel:do_shared_workdir"

View File

@@ -739,7 +739,7 @@ python fixup_perms () {
bbpath = d.getVar('BBPATH')
fs_perms_tables = d.getVar('FILESYSTEM_PERMS_TABLES')
if not fs_perms_tables:
fs_perms_tables = 'files/fs-perms.txt'
fs_perms_tables = 'files/fs-perms.txt' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR', True)) else 'files/fs-perms-persistent-log.txt'
for conf_file in fs_perms_tables.split():
str += " %s" % bb.utils.which(bbpath, conf_file)
return str
@@ -879,6 +879,11 @@ python split_and_strip_files () {
debugdir = "/.debug"
debuglibdir = ""
debugsrcdir = ""
elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg':
debugappend = ""
debugdir = "/.debug"
debuglibdir = ""
debugsrcdir = "/usr/src/debug"
else:
# Original OE-core, a.k.a. ".debug", style debug info
debugappend = ""
@@ -1092,6 +1097,15 @@ python populate_packages () {
autodebug = not (d.getVar("NOAUTOPACKAGEDEBUG") or False)
split_source_package = (d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg')
# If debug-with-srcpkg mode is enabled then the src package is added
# into the package list and the source directory as its main content
if split_source_package:
src_package_name = ('%s-src' % d.getVar('PN'))
packages += (' ' + src_package_name)
d.setVar('FILES_%s' % src_package_name, '/usr/src/debug')
# Sanity check PACKAGES for duplicates
# Sanity should be moved to sanity.bbclass once we have the infrastucture
package_list = []
@@ -1100,7 +1114,12 @@ python populate_packages () {
if pkg in package_list:
msg = "%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg
package_qa_handle_error("packages-list", msg, d)
elif autodebug and pkg.endswith("-dbg"):
# If debug-with-srcpkg mode is enabled then the src package will have
# priority over dbg package when assigning the files.
# This allows src package to include source files and remove them from dbg.
elif split_source_package and pkg.endswith("-src"):
package_list.insert(0, pkg)
elif autodebug and pkg.endswith("-dbg") and not split_source_package:
package_list.insert(0, pkg)
else:
package_list.append(pkg)
@@ -1434,7 +1453,7 @@ if [ x"$D" = "x" ]; then
fi
}
RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --rcfile ${STAGING_LIBDIR_NATIVE}/rpm/rpmrc --macros ${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmconfigdir ${STAGING_LIBDIR_NATIVE}/rpm/'"
RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --alldeps"
# Collect perfile run-time dependency metadata
# Output:
@@ -1451,7 +1470,6 @@ python package_do_filedeps() {
pkgdest = d.getVar('PKGDEST')
packages = d.getVar('PACKAGES')
rpmdeps = d.getVar('RPMDEPS')
magic = d.expand("${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc")
def chunks(files, n):
return [files[i:i+n] for i in range(0, len(files), n)]
@@ -1460,10 +1478,10 @@ python package_do_filedeps() {
for pkg in packages.split():
if d.getVar('SKIP_FILEDEPS_' + pkg) == '1':
continue
if pkg.endswith('-dbg') or pkg.endswith('-doc') or pkg.find('-locale-') != -1 or pkg.find('-localedata-') != -1 or pkg.find('-gconv-') != -1 or pkg.find('-charmap-') != -1 or pkg.startswith('kernel-module-'):
if pkg.endswith('-dbg') or pkg.endswith('-doc') or pkg.find('-locale-') != -1 or pkg.find('-localedata-') != -1 or pkg.find('-gconv-') != -1 or pkg.find('-charmap-') != -1 or pkg.startswith('kernel-module-') or pkg.endswith('-src'):
continue
for files in chunks(pkgfiles[pkg], 100):
pkglist.append((pkg, files, rpmdeps, pkgdest, magic))
pkglist.append((pkg, files, rpmdeps, pkgdest))
processed = oe.utils.multiprocess_exec( pkglist, oe.package.filedeprunner)
@@ -1578,7 +1596,7 @@ python package_do_shlibs() {
combos.append("-".join(options[0:i]))
return combos
if (file.endswith('.dylib') or file.endswith('.so')) and not pkg.endswith('-dev') and not pkg.endswith('-dbg'):
if (file.endswith('.dylib') or file.endswith('.so')) and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-src'):
# Drop suffix
name = os.path.basename(file).rsplit(".",1)[0]
# Find all combinations

View File

@@ -7,10 +7,28 @@ RPMBUILD="rpmbuild"
PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms"
# Maintaining the perfile dependencies has singificant overhead when writing the
# Maintaining the perfile dependencies has singificant overhead when writing the
# packages. When set, this value merges them for efficiency.
MERGEPERFILEDEPS = "1"
# Filter dependencies based on a provided function.
def filter_deps(var, f):
import collections
depends_dict = bb.utils.explode_dep_versions2(var)
newdeps_dict = collections.OrderedDict()
for dep in depends_dict:
if f(dep):
newdeps_dict[dep] = depends_dict[dep]
return bb.utils.join_deps(newdeps_dict, commasep=False)
# Filter out absolute paths (typically /bin/sh and /usr/bin/env) and any perl
# dependencies for nativesdk packages.
def filter_nativesdk_deps(srcname, var):
if var and srcname.startswith("nativesdk-"):
var = filter_deps(var, lambda dep: not dep.startswith('/') and dep != 'perl' and not dep.startswith('perl('))
return var
# Construct per file dependencies file
def write_rpm_perfiledata(srcname, d):
workdir = d.getVar('WORKDIR')
@@ -26,7 +44,8 @@ def write_rpm_perfiledata(srcname, d):
dependsflist = (d.getVar(dependsflist_key) or "")
for dfile in dependsflist.split():
key = "FILE" + varname + "_" + dfile + "_" + pkg
depends_dict = bb.utils.explode_dep_versions(d.getVar(key) or "")
deps = filter_nativesdk_deps(srcname, d.getVar(key) or "")
depends_dict = bb.utils.explode_dep_versions(deps)
file = dfile.replace("@underscore@", "_")
file = file.replace("@closebrace@", "]")
file = file.replace("@openbrace@", "[")
@@ -359,6 +378,8 @@ python write_specfile () {
splitrdepends = splitrdepends + " " + get_perfile('RDEPENDS', pkg, d)
splitrprovides = splitrprovides + " " + get_perfile('RPROVIDES', pkg, d)
splitrdepends = filter_nativesdk_deps(srcname, splitrdepends)
# Gather special src/first package data
if srcname == splitname:
srcrdepends = splitrdepends

View File

@@ -189,7 +189,7 @@ def package_compare_impl(pkgtype, d):
# Remove all the old files and copy again if docopy
if docopy:
bb.plain('Copying packages for recipe %s' % pn)
bb.note('Copying packages for recipe %s' % pn)
pcmanifest = os.path.join(prepath, d.expand('pkg-compare-manifest-${MULTIMACH_TARGET_SYS}-${PN}'))
try:
with open(pcmanifest, 'r') as f:
@@ -224,7 +224,7 @@ def package_compare_impl(pkgtype, d):
shutil.copyfile(srcpath, destpath)
f.write('%s\n' % destpath)
else:
bb.plain('Not copying packages for recipe %s' % pn)
bb.note('Not copying packages for recipe %s' % pn)
do_cleansstate[postfuncs] += "pfs_cleanpkgs"
python pfs_cleanpkgs () {

View File

@@ -101,6 +101,26 @@ def populate_sdk_common(d):
from oe.sdk import populate_sdk
from oe.manifest import create_manifest, Manifest
# Handle package exclusions
excl_pkgs = (d.getVar("PACKAGE_EXCLUDE") or "").split()
inst_pkgs = (d.getVar("PACKAGE_INSTALL") or "").split()
inst_attempt_pkgs = (d.getVar("PACKAGE_INSTALL_ATTEMPTONLY") or "").split()
d.setVar('PACKAGE_INSTALL_ORIG', ' '.join(inst_pkgs))
d.setVar('PACKAGE_INSTALL_ATTEMPTONLY', ' '.join(inst_attempt_pkgs))
for pkg in excl_pkgs:
if pkg in inst_pkgs:
bb.warn("Package %s, set to be excluded, is in %s PACKAGE_INSTALL (%s). It will be removed from the list." % (pkg, d.getVar('PN'), inst_pkgs))
inst_pkgs.remove(pkg)
if pkg in inst_attempt_pkgs:
bb.warn("Package %s, set to be excluded, is in %s PACKAGE_INSTALL_ATTEMPTONLY (%s). It will be removed from the list." % (pkg, d.getVar('PN'), inst_pkgs))
inst_attempt_pkgs.remove(pkg)
d.setVar("PACKAGE_INSTALL", ' '.join(inst_pkgs))
d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", ' '.join(inst_attempt_pkgs))
pn = d.getVar('PN')
runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", pn, d)
runtime_mapping_rename("TOOLCHAIN_TARGET_TASK_ATTEMPTONLY", pn, d)

View File

@@ -114,7 +114,8 @@ python do_write_qemuboot_conf() {
with open(qemuboot, 'w') as f:
cf.write(f)
if os.path.lexists(qemuboot_link):
os.remove(qemuboot_link)
os.symlink(os.path.basename(qemuboot), qemuboot_link)
if qemuboot_link != qemuboot:
if os.path.lexists(qemuboot_link):
os.remove(qemuboot_link)
os.symlink(os.path.basename(qemuboot), qemuboot_link)
}

View File

@@ -29,6 +29,13 @@ python errorreport_handler () {
import json
import codecs
def nativelsb():
nativelsbstr = e.data.getVar("NATIVELSBSTRING")
# provide a bit more host info in case of uninative build
if e.data.getVar('UNINATIVE_URL') != 'unset':
return '/'.join([nativelsbstr, lsb_distro_identifier(e.data)])
return nativelsbstr
logpath = e.data.getVar('ERR_REPORT_DIR')
datafile = os.path.join(logpath, "error-report.txt")
@@ -38,7 +45,7 @@ python errorreport_handler () {
machine = e.data.getVar("MACHINE")
data['machine'] = machine
data['build_sys'] = e.data.getVar("BUILD_SYS")
data['nativelsb'] = e.data.getVar("NATIVELSBSTRING")
data['nativelsb'] = nativelsb()
data['distro'] = e.data.getVar("DISTRO")
data['target_sys'] = e.data.getVar("TARGET_SYS")
data['failures'] = []

View File

@@ -35,22 +35,12 @@ do_rm_work () {
fi
done
cd ${WORKDIR}
for dir in *
do
# Retain only logs and other files in temp, safely ignore
# failures of removing pseudo folers on NFS2/3 server.
if [ $dir = 'pseudo' ]; then
rm -rf $dir 2> /dev/null || true
elif ! echo '${RM_WORK_EXCLUDE_ITEMS}' | grep -q -w "$dir"; then
rm -rf $dir
fi
done
# Need to add pseudo back or subsqeuent work in this workdir
# might fail since setscene may not rerun to recreate it
mkdir -p ${WORKDIR}/pseudo/
excludes='${RM_WORK_EXCLUDE_ITEMS}'
# Change normal stamps into setscene stamps as they better reflect the
# fact WORKDIR is now empty
# Also leave noexec stamps since setscene stamps don't cover them
@@ -71,7 +61,12 @@ do_rm_work () {
i=dummy
break
;;
*do_rootfs*|*do_image*|*do_bootimg*|*do_bootdirectdisk*|*do_vmimg*|*do_write_qemuboot_conf*)
*do_image_complete*)
mv $i `echo $i | sed -e "s#do_image_complete#do_image_complete_setscene#"`
i=dummy
break
;;
*do_rootfs*|*do_image*|*do_bootimg*|*do_write_qemuboot_conf*)
i=dummy
break
;;
@@ -79,6 +74,12 @@ do_rm_work () {
i=dummy
break
;;
*do_addto_recipe_sysroot*)
# Preserve recipe-sysroot-native if do_addto_recipe_sysroot has been used
excludes="$excludes recipe-sysroot-native"
i=dummy
break
;;
# We remove do_package entirely, including any
# sstate version since otherwise we'd need to leave 'plaindirs' around
# such as 'packages' and 'packages-split' and these can be large. No end
@@ -101,6 +102,18 @@ do_rm_work () {
done
rm -f $i
done
cd ${WORKDIR}
for dir in *
do
# Retain only logs and other files in temp, safely ignore
# failures of removing pseudo folers on NFS2/3 server.
if [ $dir = 'pseudo' ]; then
rm -rf $dir 2> /dev/null || true
elif ! echo "$excludes" | grep -q -w "$dir"; then
rm -rf $dir
fi
done
}
do_rm_work_all () {
:

View File

@@ -158,7 +158,10 @@ ssh_allow_empty_password () {
fi
if [ -d ${IMAGE_ROOTFS}${sysconfdir}/pam.d ] ; then
sed -i 's/nullok_secure/nullok/' ${IMAGE_ROOTFS}${sysconfdir}/pam.d/*
for f in `find ${IMAGE_ROOTFS}${sysconfdir}/pam.d/* -type f -exec test -e {} \; -print`
do
sed -i 's/nullok_secure/nullok/' $f
done
fi
}
@@ -300,7 +303,8 @@ python write_image_test_data() {
searchString = "%s/"%(d.getVar("TOPDIR")).replace("//","/")
export2json(d, testdata,searchString=searchString,replaceString="")
if os.path.lexists(testdata_link):
os.remove(testdata_link)
os.symlink(os.path.basename(testdata), testdata_link)
if testdata_link != testdata:
if os.path.lexists(testdata_link):
os.remove(testdata_link)
os.symlink(os.path.basename(testdata), testdata_link)
}

View File

@@ -15,6 +15,10 @@
# ROOTFS_DEBUG_FILES += "${TOPDIR}/conf/dropbear_rsa_host_key ${IMAGE_ROOTFS}/etc/dropbear/dropbear_rsa_host_key ;"
# 2. Boot the image once, copy the dropbear_rsa_host_key from
# the device into your build conf directory.
# 3. A optional parameter can be used to set file mode
# of the copied target, for instance:
# ROOTFS_DEBUG_FILES += "${TOPDIR}/conf/dropbear_rsa_host_key ${IMAGE_ROOTFS}/etc/dropbear/dropbear_rsa_host_key 0600;"
# in case they might be required to have a specific mode. (Shoundn't be too open, for example)
#
# Do not use for production images! It bypasses several
# core build mechanisms (updating the image when one
@@ -27,10 +31,11 @@ ROOTFS_DEBUG_FILES[doc] = "Lists additional files or directories to be installed
ROOTFS_POSTPROCESS_COMMAND += "rootfs_debug_files ;"
rootfs_debug_files () {
#!/bin/sh -e
echo "${ROOTFS_DEBUG_FILES}" | sed -e 's/;/\n/g' | while read source target; do
echo "${ROOTFS_DEBUG_FILES}" | sed -e 's/;/\n/g' | while read source target mode; do
if [ -e "$source" ]; then
mkdir -p $(dirname $target)
cp -a $source $target
[ -n "$mode" ] && chmod $mode $target
fi
done
}

View File

@@ -28,6 +28,9 @@ PACKAGE_FEED_SIGN = '1'
PACKAGE_FEED_GPG_BACKEND ?= 'local'
PACKAGE_FEED_GPG_SIGNATURE_TYPE ?= 'ASC'
# Make feed signing key to be present in rootfs
FEATURE_PACKAGES_package-management_append = " signing-keys-packagefeed"
python () {
# Check sanity of configuration
for var in ('PACKAGE_FEED_GPG_NAME', 'PACKAGE_FEED_GPG_PASSPHRASE_FILE'):

View File

@@ -19,9 +19,12 @@
# GPG_BIN
# Optional variable for specifying the gpg binary/wrapper to use for
# signing.
# RPM_GPG_SIGN_CHUNK
# Optional variable indicating the number of packages used per gpg
# invocation
# GPG_PATH
# Optional variable for specifying the gnupg "home" directory:
#
inherit sanity
RPM_SIGN_PACKAGES='1'
@@ -29,6 +32,7 @@ RPM_SIGN_FILES ?= '0'
RPM_GPG_BACKEND ?= 'local'
# SHA-256 is used by default
RPM_FILE_CHECKSUM_DIGEST ?= '8'
RPM_GPG_SIGN_CHUNK ?= "${BB_NUMBER_THREADS}"
python () {
@@ -56,6 +60,7 @@ python sign_rpm () {
d.getVar('RPM_GPG_NAME'),
d.getVar('RPM_GPG_PASSPHRASE'),
d.getVar('RPM_FILE_CHECKSUM_DIGEST'),
int(d.getVar('RPM_GPG_SIGN_CHUNK')),
d.getVar('RPM_FSK_PATH'),
d.getVar('RPM_FSK_PASSWORD'))
}

View File

@@ -153,7 +153,7 @@ python () {
bb.fatal("Please add your architecture to siteinfo.bbclass")
}
def siteinfo_get_files(d, aclocalcache = False):
def siteinfo_get_files(d, sysrootcache = False):
sitedata = siteinfo_data(d)
sitefiles = ""
for path in d.getVar("BBPATH").split(":"):
@@ -162,18 +162,11 @@ def siteinfo_get_files(d, aclocalcache = False):
if os.path.exists(filename):
sitefiles += filename + " "
if not aclocalcache:
if not sysrootcache:
return sitefiles
# Now check for siteconfig cache files in the directory setup by autotools.bbclass to
# avoid races.
#
# ACLOCALDIR may or may not exist so cache should only be set to True from autotools.bbclass
# after files have been copied into this location. To do otherwise risks parsing/signature
# issues and the directory being created/removed whilst this code executes. This can happen
# when a multilib recipe is parsed along with its base variant which may be running at the time
# causing rare but nasty failures
path_siteconfig = d.getVar('ACLOCALDIR')
# Now check for siteconfig cache files in sysroots
path_siteconfig = d.getVar('SITECONFIG_SYSROOTCACHE')
if path_siteconfig and os.path.isdir(path_siteconfig):
for i in os.listdir(path_siteconfig):
if not i.endswith("_config"):

View File

@@ -346,8 +346,6 @@ def sstate_installpkgdir(ss, d):
oe.path.remove(dir)
for state in ss['dirs']:
if d.getVar('SSTATE_SKIP_CREATION') == '1':
continue
prepdir(state[1])
os.rename(sstateinst + state[0], state[1])
sstate_install(ss, d)
@@ -596,8 +594,6 @@ def sstate_package(ss, d):
for state in ss['dirs']:
if not os.path.exists(state[1]):
continue
if d.getVar('SSTATE_SKIP_CREATION') == '1':
continue
srcbase = state[0].rstrip("/").rsplit('/', 1)[0]
# Find and error for absolute symlinks. We could attempt to relocate but its not
# clear where the symlink is relative to in this context. We could add that markup
@@ -625,6 +621,10 @@ def sstate_package(ss, d):
d.setVar('SSTATE_BUILDDIR', sstatebuild)
d.setVar('SSTATE_PKG', sstatepkg)
d.setVar('SSTATE_INSTDIR', sstatebuild)
if d.getVar('SSTATE_SKIP_CREATION') == '1':
return
for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \
['sstate_create_package', 'sstate_sign_package'] + \
@@ -634,8 +634,6 @@ def sstate_package(ss, d):
bb.siggen.dump_this_task(sstatepkg + ".siginfo", d)
d.setVar('SSTATE_INSTDIR', sstatebuild)
return
def pstaging_fetch(sstatefetch, sstatepkg, d):

View File

@@ -177,6 +177,7 @@ def staging_processfixme(fixme, target, recipesysroot, recipesysrootnative, d):
def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d):
import glob
import subprocess
import errno
fixme = []
postinsts = []

View File

@@ -7,10 +7,9 @@
# maintenance.
#
# Set EFI_PROVIDER = "systemd-boot" to use systemd-boot on your live images instead of grub-efi
# (images built by image-live.bbclass or image-vm.bbclass)
# (images built by image-live.bbclass)
do_bootimg[depends] += "${MLPREFIX}systemd-boot:do_deploy"
do_bootdirectdisk[depends] += "${MLPREFIX}systemd-boot:do_deploy"
EFIDIR = "/EFI/BOOT"

View File

@@ -7,8 +7,8 @@
# Most of the tests are commands run on target image over ssh.
# To use it add testimage to global inherit and call your target image with -c testimage
# You can try it out like this:
# - first build a qemu core-image-sato
# - add IMAGE_CLASSES += "testimage" in local.conf
# - first add IMAGE_CLASSES += "testimage" in local.conf
# - build a qemu core-image-sato
# - then bitbake core-image-sato -c testimage. That will run a standard suite of tests.
# You can set (or append to) TEST_SUITES in local.conf to select the tests

View File

@@ -49,6 +49,12 @@ python uninative_event_fetchloader() {
localdata = bb.data.createCopy(d)
localdata.setVar('FILESPATH', "")
localdata.setVar('DL_DIR', tarballdir)
# Our games with path manipulation of DL_DIR mean standard PREMIRRORS don't work
# and we can't easily put 'chksum' into the url path from a url parameter with
# the current fetcher url handling
ownmirror = d.getVar('SOURCE_MIRROR_URL')
if ownmirror:
localdata.appendVar("PREMIRRORS", " ${UNINATIVE_URL}${UNINATIVE_TARBALL} ${SOURCE_MIRROR_URL}/uninative/%s/${UNINATIVE_TARBALL}" % chksum)
srcuri = d.expand("${UNINATIVE_URL}${UNINATIVE_TARBALL};sha256sum=%s" % chksum)
bb.note("Fetching uninative binary shim from %s" % srcuri)

View File

@@ -85,6 +85,10 @@ USRBINPATH_class-nativesdk = "/usr/bin"
# Root home directory
ROOT_HOME ??= "/home/root"
# If set to boolean true ('yes', 'y', 'true', 't', '1'), /var/log links to /var/volatile/log.
# If set to boolean false ('no', 'n', 'false', 'f', '0'), /var/log is on persistent storage.
VOLATILE_LOG_DIR ?= "yes"
##################################################################
# Architecture-dependent build variables.
##################################################################
@@ -850,7 +854,7 @@ BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \
PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \
GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy \
HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD \
BB_SETSCENE_ENFORCE BB_CMDLINE"
BB_SETSCENE_ENFORCE BB_CMDLINE BB_SERVER_TIMEOUT"
BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \
lockfiles type vardepsexclude vardeps vardepvalue vardepvalueexclude \
file-checksums python func task export unexport noexec nostamp dirs cleandirs \

View File

@@ -1,3 +1,8 @@
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato

View File

@@ -2,3 +2,6 @@
# Default preferred versions
#
PREFERRED_VERSION_openssl = "1.0.%"
PREFERRED_VERSION_openssl-native = "1.0.%"
PREFERRED_VERSION_nativesdk-openssl = "1.0.%"

View File

@@ -25,6 +25,9 @@ DISABLE_STATIC_pn-openjade-native = ""
DISABLE_STATIC_pn-openssl = ""
DISABLE_STATIC_pn-openssl-native = ""
DISABLE_STATIC_pn-nativesdk-openssl = ""
DISABLE_STATIC_pn-openssl10 = ""
DISABLE_STATIC_pn-openssl10-native = ""
DISABLE_STATIC_pn-nativesdk-openssl10 = ""
# libssp-static-dev included in build-appliance
DISABLE_STATIC_pn-gcc-runtime = ""
# libusb1-native is used to build static dfu-util-native

View File

@@ -24,10 +24,10 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
GCCVERSION ?= "7.%"
SDKGCCVERSION ?= "${GCCVERSION}"
BINUVERSION ?= "2.28%"
BINUVERSION ?= "2.29%"
GDBVERSION ?= "8.0%"
GLIBCVERSION ?= "2.25%"
LINUXLIBCVERSION ?= "4.10%"
GLIBCVERSION ?= "2.26%"
LINUXLIBCVERSION ?= "4.12%"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"

View File

@@ -6,6 +6,6 @@
# to the distro running on the build machine.
#
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/1.6/"
UNINATIVE_CHECKSUM[i686] ?= "d9daf66785834f888b6f50a1d37a8120815f8380e0e267d311e1dfaf4bb5404e"
UNINATIVE_CHECKSUM[x86_64] ?= "2b4fffa308d9f19e0742a1a404ff42495fb50c165e5ca0458cedca157372691a"
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/1.7/"
UNINATIVE_CHECKSUM[i686] ?= "d7c341460035936c19d63fe02f354ef1bc993c62d694ae3a31458d1c6997f0c5"
UNINATIVE_CHECKSUM[x86_64] ?= "ed033c868b87852b07957a4400f3b744c00aef5d6470346ea1a59b6d3e03075e"

View File

@@ -56,7 +56,6 @@ do_testsdk[doc] = "Installs an SDK and performs runtime tests on the tools insta
do_uboot_mkimage[doc] = "Creates a uImage file from the kernel for the U-Boot bootloader"
do_unpack[doc] = "Unpacks the source code into a working directory"
do_validate_branches[doc] = "Ensures that the source/meta branches are on the locations specified by their SRCREV values for a linux-yocto style kernel"
do_vmimg[doc] = "Creates an image for use with VMware or VirtualBox compatible virtual machine hosts (based on IMAGE_FSTYPES either .vmdk or .vdi)"
# DESCRIPTIONS FOR VARIABLES #

View File

@@ -1,5 +1,4 @@
SDK_ARCH = "i586"
SDK_CC_ARCH = "-march=i586"
ABIEXTENSION_class-nativesdk = ""
SDK_OLDEST_KERNEL = "2.6.32"

View File

@@ -1,4 +1,3 @@
SDK_ARCH = "i686"
SDK_CC_ARCH = "-march=i686"
ABIEXTENSION_class-nativesdk = ""
SDK_OLDEST_KERNEL = "2.6.32"

View File

@@ -1,3 +1,2 @@
SDK_ARCH = "x86_64"
ABIEXTENSION_class-nativesdk = ""
SDK_OLDEST_KERNEL = "2.6.32"

View File

@@ -4,5 +4,5 @@ QB_MEM = "-m 256"
QB_MACHINE = "-machine malta"
QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 console=tty"
# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
QB_OPT_APPEND = "-vga cirrus -show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
QB_OPT_APPEND = "-vga cirrus -show-cursor -usb -device usb-tablet -device virtio-rng-pci"
QB_SYSTEM_NAME = "qemu-system-${TUNE_ARCH}"

View File

@@ -12,7 +12,7 @@ QB_AUDIO_DRV = "alsa"
QB_AUDIO_OPT = "-soundhw ac97,es1370"
QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=${UVESA_MODE} oprofile.timer=1 uvesafb.task_timeout=-1"
# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
QB_OPT_APPEND = "-vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
QB_OPT_APPEND = "-vga vmware -show-cursor -usb -device usb-tablet -device virtio-rng-pci"
KERNEL_MODULE_AUTOLOAD += "uvesafb"
KERNEL_MODULE_PROBECONF += "uvesafb"

View File

@@ -10,7 +10,8 @@ MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 x86 \
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
IMAGE_FSTYPES ?= "hddimg"
IMAGE_FSTYPES ?= "live"
NOISO ?= "1"
KERNEL_IMAGETYPE ?= "bzImage"
@@ -20,7 +21,7 @@ SERIAL_CONSOLE ?= "115200 ttyS0"
# kernel-related variables
#
PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
PREFERRED_VERSION_linux-yocto ??= "4.10%"
PREFERRED_VERSION_linux-yocto ??= "4.12%"
#
# XSERVER subcomponents, used to build the XSERVER variable

View File

@@ -15,6 +15,6 @@ QB_SYSTEM_NAME = "qemu-system-arm"
QB_MACHINE = "-machine versatilepb"
QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty"
# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
QB_OPT_APPEND = "-show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
PREFERRED_VERSION_linux-yocto ??= "4.10%"
QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet -device virtio-rng-pci"
PREFERRED_VERSION_linux-yocto ??= "4.12%"
QB_DTB = "${@base_version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"

View File

@@ -17,5 +17,5 @@ QB_MACHINE = "-machine mac99"
QB_CPU = "-cpu G4"
QB_KERNEL_CMDLINE_APPEND = "console=tty console=ttyS0"
# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
QB_OPT_APPEND = "-show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet -device virtio-rng-pci"
QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"

View File

@@ -25,7 +25,7 @@ XSERVER = "xserver-xorg \
xserver-xorg-module-libint10 \
"
MACHINE_FEATURES += "x86"
MACHINE_FEATURES += "x86 pci"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"

View File

@@ -24,7 +24,7 @@ XSERVER = "xserver-xorg \
xserver-xorg-module-libint10 \
"
MACHINE_FEATURES += "x86"
MACHINE_FEATURES += "x86 pci"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"

View File

@@ -0,0 +1,10 @@
Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017
pkgconf authors (see AUTHORS file in source directory).
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
This software is provided 'as is' and without any warranty, express or
implied. In no event shall the authors be liable for any damages arising
from the use of this software.

View File

@@ -0,0 +1,66 @@
# This file contains a list of files and directories with known permissions.
# It is used by the packaging class to ensure that the permissions, owners and
# group of listed files and directories are in sync across the system.
#
# The format of this file
#
#<path> <mode> <uid> <gid> <walk> <fmode> <fuid> <fgid>
#
# or
#
#<path> link <target>
#
# <path>: directory path
# <mode>: mode for directory
# <uid>: uid for directory
# <gid>: gid for directory
# <walk>: recursively walk the directory? true or false
# <fmode>: if walking, new mode for files
# <fuid>: if walking, new uid for files
# <fgid>: if walking, new gid for files
# <target>: turn the directory into a symlink point to target
#
# in mode, uid or gid, a "-" means don't change any existing values
#
# /usr/src 0755 root root false - - -
# /usr/share/man 0755 root root true 0644 root root
# Note: all standard config directories are automatically assigned "0755 root root false - - -"
# Documentation should always be corrected
${mandir} 0755 root root true 0644 root root
${infodir} 0755 root root true 0644 root root
${docdir} 0755 root root true 0644 root root
${datadir}/gtk-doc 0755 root root true 0644 root root
# Fixup locales
${datadir}/locale 0755 root root true 0644 root root
# Cleanup headers
${includedir} 0755 root root true 0644 root root
${oldincludedir} 0755 root root true 0644 root root
# Cleanup debug src
/usr/src/debug 0755 root root true - root root
# Items from base-files
# Links
${localstatedir}/run link /run
${localstatedir}/lock link /run/lock
${localstatedir}/tmp link volatile/tmp
/home 0755 root root false - - -
/srv 0755 root root false - - -
${prefix}/src 0755 root root false - - -
${localstatedir}/local 0755 root root false - - -
# Special permissions from base-files
# Set 1777
/tmp 01777 root root false - - -
${localstatedir}/volatile/tmp 01777 root root false - - -
# Set 0700
${ROOT_HOME} 0700 root root false - - -
# Set 2775-lsb
${localstatedir}/mail 02775 root mail false - - -

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