Richard Purdie [Thu, 28 Jun 2018 11:25:12 +0000 (12:25 +0100)]
bitbake.conf: Allow BBINCLUDED to be unset
For some reason the layer index is expanding HOSTTOOLS before BBINCLUDED is
set so recent changes break it. This adds in a simple workaround to stop it b
reaking allowing the index to function correctly again.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andre McCurdy [Tue, 26 Jun 2018 19:48:11 +0000 (12:48 -0700)]
bitbake.conf: handle cmake -dev files packaging with default rules
Move packaging rules for cmake -dev files from cmake.bbclass into
bitbake.conf to handle recipes (e.g. harfbuzz 1.8.1) which build with
autotools but also install cmake -dev files.
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Samuli Piippo [Tue, 26 Jun 2018 07:59:51 +0000 (10:59 +0300)]
glib: remove unnecessary dependency to DISTRO_FEATURES
Since DISTRO_FEATURES was expanded in the comments, it created
task dependency to the full content of DISTRO_FEATURES, instead
of just the x11 used below. This prevented reuse of sstate-cache
when unrelated feature flags were changed.
Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andre McCurdy [Fri, 18 May 2018 22:50:40 +0000 (15:50 -0700)]
arch-armv7a.inc: default to Thumb2 instruction set for armv7a and above
Although there may still be specific cases which can benefit from the
ARM instruction set, the Thumb2 instruction set is generally a better
default for armv7a class CPUs. Distros such as Debian and Fedora have
been targeting Thumb2 by default for some time.
Note that setting ARM_INSTRUCTION_SET has no effect unless
TUNE_FEATURES contains "thumb" (which is controlled by the "t" suffix
in DEFAULTTUNE, e.g. armv7vehf-neon -vs- armv7vethf-neon, etc) so out
of tree machine configs may need to update their DEFAULTTUNE to take
advantage of this change.
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Olof Johansson [Mon, 25 Jun 2018 11:34:46 +0000 (13:34 +0200)]
insane.bbclass: Don't let warnings make previous errors non-fatal
package_qa_handle_error() returns True on non-fatal issues and False on
fatal issues. But the current usage has been to do
sane = package_qa_handle_error(...)
which would always reset sanity status to be that of the last issue
identified. This change the assignments to use the &= operator instead:
sane &= package_qa_handle_error(...)
As far as I can tell, this is not a real problem in practice, because
warnings of different levels (WARN_QA, ERROR_QA) does not seem to have
been mixed in a way that triggered this issue.
Signed-off-by: Olof Johansson <olofjn@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Olof Johansson [Mon, 25 Jun 2018 11:34:45 +0000 (13:34 +0200)]
insane.bbclass: Make missing license file fatal
If a license file referenced from LIC_FILES_CHKSUM doesn't exist,
insane.bbclass would output an error message, but would continue the
build. This change makes this error fatal (as I suspect has been the
intention).
Signed-off-by: Olof Johansson <olofjn@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Tue, 26 Jun 2018 12:08:56 +0000 (12:08 +0000)]
kernel: Set SOURCE_DATE_EPOCH to kernel git timestamp if not set
If SOURCE_DATE_EPOCH is unset (in addition to the existing "0" behaviour)
parse out the top most commit timestamp from the kernel tree to use as the
timestamp.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Tue, 26 Jun 2018 12:08:55 +0000 (12:08 +0000)]
image: Set COREBASE as the git directory for timestamp
When REPRODUCIBLE_TIMESTAMP_ROOTFS is unset and we want to parse one
from git, use COREBASE as the base for the git command so we have a
known repository which we're using. Without this the build may fail
if the current directory is not part of a git repository.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andre McCurdy [Tue, 26 Jun 2018 20:24:55 +0000 (13:24 -0700)]
db: drop legacy ARM specific SWP based mutex optimisation
Although the ARM SWP instruction may exist for ARMv6 and above, it's
not guaranteed to work, especially on SMP systems where it's use may
lead to instability at runtime, etc:
Keeping the optimisation for architecture levels which pre-date SMP
(ie <= ARMv5) may be safe, however other distros (Buildroot, Debian,
Fedora, etc) are not doing so and mutex contention is likely to be
less of an issue on uniprocessor systems anyway, so the benefits of
this micro optimisations are not clear. Since OE uses ARMv5 qemu as
a proxy for testing all 32bit ARM architecture levels, it's desirable
to keep the ARMv5 builds aligned with later ARM architecture levels
wherever possible.
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Damien Riegel [Fri, 22 Jun 2018 18:43:02 +0000 (14:43 -0400)]
systemd: escape paths passed to shell
Systemd mount configuration file must have a name that match the mount
point directory they control. So for instance, if a mount file contains
[Mount]
...
Where=/mnt/my-data
The file must be named `mnt-my\x2ddata.mount`, or systemd will refuse to
honour it.
If this config file contains an [Install] section, it will silently fail
because the unit file is not escaped properly when systemctl is called.
To fix that, make sure paths are escaped through `shlex.quote`.
Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Entropy is needed earlier in the boot process in some cases, for example
connman can require it, and rgd doesn't require much, so move it earlier
in the boot process, 03 for sysvinit, and before sysinit for systemd.
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Thu, 21 Jun 2018 16:15:28 +0000 (17:15 +0100)]
oeqa: add Git mirror test
Add an automated test to exercise that fetching a git: recipe...
1) works over git without mirrors
2) fails without git connectivity or mirrors
3) works without git connectivity but with a mirror
(2) is done by setting GIT_PROXY_COMMAND to 'false' which should break any git
network operations.
[ YOCTO #12805 ]
Signed-off-by: Ross Burton <ross.burton@intel.com>
Chen Qi [Thu, 21 Jun 2018 06:00:23 +0000 (14:00 +0800)]
avahi: fix error at boot time for avahi-daemon.service
The following error messages appear now and then at boot time.
avahi-daemon/chroot.c: open() failed: No such file or directory
Failed to open /etc/resolv.conf: Invalid argument
The problem is about /etc/resolv.conf. In Yocto's systemd based
systems, it's a symlink to /etc/resolv-conf.systemd which in turn
is a symlink to /run/systemd/resolve/resolv.conf. The systemd-resolved
service handles creation of /run/systemd/resolve/resolv.conf file.
So if avahi-daemon is started before systemd-resolved, the error messages
appear.
Fix this problem by making avahi-daemon start after systemd-resolved.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
# Access to certain kernel and userspace facilities
g kmem - - -
-g lock - - -
g tty @TTY_GID@ - -
g utmp - - -
[...]
The upstream documentation doc/UIDS-GIDS.md says that basic.conf.in is "the
precise list of the currently defined groups":
## Special `systemd` GIDs
`systemd` defines no special UIDs beyond what Linux already defines (see
above). However, it does define some special group/GID assignments, which are
primarily used for `systemd-udevd`'s device management. The precise list of the
currently defined groups is found in this `sysusers.d` snippet:
[basic.conf](https://raw.githubusercontent.com/systemd/systemd/master/sysusers.d/basic.conf.in)
It's strongly recommended that downstream distributions include these groups in
their default group databases.
Removing the creation of the group also avoids the need to define a GID
for it when using static ids.
Signed-off-by: Hannu Lounento <hannu.lounento@vaisala.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ross Burton [Fri, 15 Jun 2018 14:43:07 +0000 (15:43 +0100)]
minicom: change SRC_URI to use Debian mirrors
Alioth is dead and the minicom project on Salsa (the replacement for Alioth)
doesn't actually have any files in, so just use the Debian mirror instead.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Ross Burton [Fri, 15 Jun 2018 13:29:31 +0000 (14:29 +0100)]
shadow: update SRC_URI now Alioth is down
Alioth is dead so we can't use it for SRC_URI anymore. There is a shadow
repository on GitHub which is the new upstream, but for some reason it is
missing the 4.2.1 tag and tarball that we use. Also 4.2.1 was never uploaded
into Debian itself, so we can't use their mirror network either.
For now point SRC_URI at the Yocto Project source mirror and set
UPSTREAM_CHECK_URI so that we get nagged to upgrade to 4.6.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Richard Purdie [Wed, 20 Jun 2018 09:30:24 +0000 (10:30 +0100)]
bitbake.conf/testimage: Add in compatiblity hacks
The testimage changes break the autobuilder. The plan is to revert these hacks
but due to various changes happening with the autobuilder, we need these for now
to keep things working until we can move to the new autobuilder codebase.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
d114732 Merge branch 'for-upstreaming-v1.7.2-vsw' of https://github.com/felix-cavium/linux-firmware fe4a9d4 brcm: update firmware for bcm4356 pcie a292181 brcm: update firmware for bcm4354 sdio be1c535 brcm: update firmware for bcm43362 sdio 5ac5ad5 brcm: update firmware for bcm43340 sdio ec734a3 brcm: update firmware for bcm43430 sdio ba51e86 Update Cypress license termination clause 1fa9ce3 amdgpu: update vega10 VCE firmware to version 55.3 9489f55 linux-firmware: Update firmware patch for Intel Bluetooth 7265 (D0) 6be4747 linux-firmware:Update firmware patch for Intel Bluetooth 7265 (D1) 4949d88 Merge branch 'master' of https://github.com/vgarodia/linux-firmware 7602644 qcom: add venus firmware files for v5.2 7518922 Update AMD cpu microcode for family 15h 3f8243c linux-firmware: Update firmware patch for Intel Bluetooth 8260 2c4f7c1 qed: Add firmware 8.37.2.0 0e193ca linux-firmware: liquidio: update vswitch firmware to v1.7.2 2a9b2cf Merge branch 'for-upstreaming-v1.7.2' of https://github.com/felix-cavium/linux-firmware 112d300 linux-firmware: Update firmware file for Intel Bluetooth,8265 629a5e0 linux-firmware: Update firmware patch for Intel Bluetooth 7260 (B5/B6) 7035335 linux-firmware: Update firmware patch for Intel Bluetooth 7260 (B3/B4) c84bd66 linux-firmware: Update firmware file for Intel Bluetooth,9260 897330f linux-firmware:Update firmware patch for Intel Bluetooth 7265 (D1) e94352c linux-firmware: Update firmware file for Intel Bluetooth,9560 7710151 linux-firmware: Update AMD cpu microcode be1e8c5 Merge commit 'a6327c5a5f74c3d11da76d0dcb51c6f5db7f8a35' of https://github.com/Netronome/linux-firmware 86d39f8 amdgpu: sync up polaris12 firmware with 18.10 release b5320a9 amdgpu: sync up polaris11 firmware with 18.10 release 152c924 amdgpu: sync up polaris10 firmware with 18.10 release 0d672f7 amdgpu: sync up vega10 firmware with 18.10 release 30447b1 amdgpu: sync up carrizo firmware with 18.10 release dd6f936 amdgpu: sync up topaz firmware with 18.10 release de9c175 amdgpu: sync up stoney firmware with 18.10 release 5e22609 amdgpu: sync up tonga firmware with 18.10 release 499042e amdgpu: sync up fiji firmware with 18.10 release 1db3eec amdgpu: sync up raven firmware with 18.10 release a6327c5 nfp: Add symlink for Agilio CX 1x40GbE flower firmware 8b78780 nfp: update Agilio SmartNIC flower firmware to rev AOTC-2.9.A.16 d3b6941 linux-firmware: liquidio: update firmware to v1.7.2
License-Update: copyright years updated and filelist updated. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Zhixiong Chi [Tue, 19 Jun 2018 10:24:18 +0000 (03:24 -0700)]
findutils: make -delete honour the -ignore_readdir_race option
the '-delete' action no longer complains about disappeared files
when the '-ignore_readdir_race' option is given, too. That action
will also returns true in such a case now.
Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 19 Jun 2018 12:00:37 +0000 (12:00 +0000)]
subversion: 1.9.7 -> 1.10.0
License changed since licenses for the bundled linenoise and lz4 codebases
were added. We don't build either of them. Add MIT since utf8proc is MIT
licensed.
Configure to use the internal utf8proc codebase since we have no copy of that in
OE-Core, nor any need to add one.
Add a dependency on lz4 which is now required rather than using the internal
codebase within subversion.
Drop a patch merged upstream.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 18 Jun 2018 11:33:12 +0000 (11:33 +0000)]
image/testimage: Rework auto image test execution
The TEST_IMAGE interface has never particularly worked and image testing currently
gets configured manually.
This reworks the interface to better serve the needs of its users, replacing it
with TESTIMAGE_AUTO.
This does away with the need for the separate class due to better bitbake APIs for
changing tasks.
TESTIMAGE_AUTO will automatically boot under qemu any image that is built. It
also adds in dependencies so that any SDK for which testing is requested will
automatically be built first.
The code in bitbake.conf was error prone (e.g. testsdk wasn't considered), this
improves it to standardise on IMAGE_CLASSES as the standard configuration mechanism.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 18 Jun 2018 10:45:02 +0000 (10:45 +0000)]
image: Combine all the class handling code into a single section
Right now the code handling class inherits is spread all over and
its hard to get an idea of what is happening overall. Combine all
the code together to make it clearer. There shoould be no functionality
changes.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 19 Jun 2018 10:23:42 +0000 (11:23 +0100)]
rm_work: Improve code comments
This function is a little obtuse, add more comments about what its
doing and why. Also combine some of the statements where possible
to improve clarity.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
"""
Each time I build my image after the first, I end up with a
do_image_complete_setscene stamp file with an extra _setscene appended to
the name. Eventually, the filenames end up being so long that mv complains
and the build fails.
Richard Purdie [Tue, 19 Jun 2018 10:07:43 +0000 (11:07 +0100)]
Revert "rm_work: Stop appending _setscene to do_image_complete_setscene stamps"
Whilst this fixes the do_image_complete_setscene append problem, it creates a
new problem since the code can no longer reach the *do_package_setscene.*
code block below it. This breaks builds as per [YOCTO #12765]. Revert this
change in search of a better fix.
Ross Burton [Mon, 18 Jun 2018 10:05:46 +0000 (11:05 +0100)]
xf86-video-omapfb: remove
We were shipping the Debian fork of the original code, but that has disappeared
now that Alioth is down. The driver didn't provide anything better than the
kernel and xserver's modesetting driver, so remove it.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Thu, 7 Jun 2018 07:52:47 +0000 (15:52 +0800)]
runqemu-ifdown: ensure to clean up TAP
In runqemu-ifup, ip command is used to add TAP; in runqemu-ifdown,
we should do the reversed logic, using ip command to delete TAP, to
make sure TAP is cleaned up by ourselves.
I can see that in runqemu-ifdown script, 'tunctl -d' and 'iptables'
commands are used to deal with TAP, but these two commands cannot
make sure that the TAP is cleaned up.
runqemu-ifup uses 'ip' to set up TAP, we really need to do the opposite
in runqemu-ifdown.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Thu, 7 Jun 2018 07:52:46 +0000 (15:52 +0800)]
runqemu: add SIGTERM handler to make sure things are cleaned up
Add SIGTERM handler so that runqemu could clean things up correctly
when receving such signal.
This problem was originally observed when running testimage. On
some hosts, after running testimage task, the user has to manually
operate on the tap interface (e.g. `sudo ip link del tap0') in order
for the next runqemu command to launch successfully.
The problem is about runqemu, SIGTERM and network manager on the host.
In testimage task, the runqemu process will receive SIGTERM. In such
situation, its cleanup() function is not run, resulting in tap interface
not cleaned up. On some hosts, the network manager will bring down the
tap interface automatically, thus this problem. I saw this problem on
Fedora21.
I think we'd better just clean up the tap interface ourselves.
So this patch adds to runqemu a SIGTERM handler, in which the actual
qemu process is terminated and other things cleaned up.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previously a warning was printed regardless of context and nature
of the failure, and because it was only a warning, it was mostly ignored.
Now, the following is considered when a failure happens:
1) whether we are installing packages into a target image, or populating
a SDK with host or target packages.
2) whether the failure was due to qemu not supporting the target machine.
Accordingly, warnings, notes, and failures are printed, and postponing
to first boot happens if possible.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
image.bbclass, populate_sdk_base.bbclass: make all variants of qemuwrapper-cross available in sysroots
The variants are needed in particular when executing postinst_intercepts as
those may require running binaries built for different architectures and
against different sets of library paths, when multilib is in use (or nativesdk host
packages are installed), so a single global variant of the script was not working.
I do understand expanding PATH and DEPENDS in this manner is hackish, however
every other approach I could think of is worse.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
qemuwrapper-cross: enable multilib and nativesdk variants of the script
Previously only one global variant of the script was created,
which caused numerous issues:
1) multilib was not properly supported due to multilib variants each
needing their own version of the qemu binary and library paths to be set
2) nativesdk was not properly supported for the same reason
This patch also moves setting LD_LIBRARY_PATH directly into the
recipe, as passing it down from other recipes did not work when
said recipes were allarch, and adjusts calls to qemuwrapper from
postinst-intercepts, so that its correct variant is selected.
Also, the various qemu fallbacks in qemuwrapper script are all removed,
as they are no longer necessary.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gtk-immodules-cache.bbclass: convert cache creation to postinst_intercept mechanism
This has the following benefits:
- consistent with how the other caches are created into target rootfs
- only runs once per package manager transaction, instead of once per every immodule package
- correctly postpones to first boot if qemu is not working; from postinst itself
this would've required special arrangements to avoid what is now a do_rootfs failure.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andre McCurdy [Thu, 7 Jun 2018 04:34:38 +0000 (21:34 -0700)]
gcc-target.inc: configure gcc for armv7ve targets to default to armv7ve
Originally these ARM specific EXTRA_OECONF options were applied to
both gcc for the target and gcc-cross. That lead to a compromise
being made: gcc on the target was configured to default to an ARM
architecture which was at least compatible with the target (but not
necessarily an exact match) and gcc-cross was configured default to
armv7a for both armv7a and armv7ve (to avoid gcc-cross rebuilds when
switching between the two).
However, when these ARM specific EXTRA_OECONF options were moved from
gcc-configure-common.inc into gcc-target.inc (ie they were made to
apply only to gcc on the target) the compromise no longer needed to
be made.
Sascha Silbe [Fri, 8 Jun 2018 16:18:41 +0000 (18:18 +0200)]
gobject-introspection: relocate typelib repository for native builds
gobject-introspection hard-codes the install path in the search path
for the typelib repository, pretty much the same way glib behaves for
the gio modules directory. Like for glib, this causes problems when
gobject-introspection-native is restored from sstate with a different
build directory.
Based on the glib fix by Ross Burton <ross.burton@intel.com>.
Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Agner [Wed, 16 May 2018 09:13:52 +0000 (11:13 +0200)]
rootfs.py: for dpkg/opkg, don't install postinsts if package management is present
If package management is present opkg/dpkg will bring the original
copy of the postinsts scripts with the metadata and will be able to
handle postinsts just fine. In fact, it is preferred to let package
management handle the postinsts scripts in this case since it will
keep the package managers database up-to-date too. The run-postinsts
scripts will make sure the package manager gets invoked instead of
the scripts directly.
Note: Before commit 5aae19959a44 ("rootfs.py: Change logic to
unistall packages") rootfs.py did not install /etc/$pm-postinsts
too. It is not clear whether that change was intentionally or just
a bug. This commit fixes/reverts that aspect of the commit.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>