toaster: toaster oe-selftest support

This patch adds toaster tests using the oe-selftest infrastructure.
You need to have builds done - the tests will verify data integrity
after the toaster collection phase.

Once you have your toaster builds done, to run the automated backend
tests via oe-selftest do the followings:

1. Update builddir/conf/bblayers.conf to contain the meta-selftest
layer
2. From the builddir run:

'oe-selftest toaster'

or if you just want to run a single test:

'oe-selftest toaster.Toaster_DB_Tests.testname'

This first part adds the meta/lib/oeqa toaster file.

Signed-off-by: Ionut Chisanovici <ionutx.chisanovici@intel.com>
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
siteinfo, insane: Recognize musl specific triplets

We will use '-musl' to identify musl based systems
this patch lays the foundation for recognising those
and map them to internal variable representations

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
tclibc-musl.inc: Add musl specific distro policy file

With this we could use TCLIBC=musl to switch to images
based on musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
multilib_header: Do not install mutlilib headers for musl

musl is not multilib and this creates trouble. eg. when
util-linux probes for ncurses it does not find it because
ncurses has installed the multilibbed header and this
header includes bits/wordsize.h and this header does not
exist on musl systems. If and when musl adds multilib
support we will revisit it.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
image.bbclass: Remove dependency on ldconfig-native for musl

it does not grok glibc ldconfig format

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

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gnu-config: Let it recognise *-*-musl* triplets

This will help autotools based packages to recognise
musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
layer.conf: Add musl to safe recipes for exclusion

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc, uclibc: Add/Fix Upstream-Status in patches

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
eglibc: Fix configure when re-building with gold

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
update-rc.d: fix to handle priority numbers correctly

The update-rc.d treated priority numbers begin with '0' as octal
numbers. This led to problems of update-rc.d being unable to handle
priorities like '08' or '09' correctly.

This patch fixes the above problem.

[YOCTO #6376]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
combo-layer: fix revlist taking into account file_filter

If file_filter is set, git format-patch takes account but git rev-list
does not. So revlist is going to get with wrong revisions. And last_revision
will be updated with wrong revision. The next time that user run
combo-layer it complain about applying patches.

So ensure that 'git rev-list' are using file_filter as 'git format-patch'.

Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
opkg-utils: Update SRCREV

Recent changes in opkg-utils allow package files to be stored in a different
directory to the package index if desired.

Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
binconfig-disabled: Add class and use

This adds a binconfig-disabled class which can be used by recipes where
a -config file is installed but we wish to disable it and just rely on
the .pc files instead.

Rather than simply deleting it, we make the script "exit 1" so that it
can be found in PATH and raise a build error rather than something
silently falling back to the build system for example.

Rather than randomly finding -config files, this adds in the
specification of a list of binconfig scripts which is more deterministic
and maintainable moving forward.

This patch converts various users in OE-Core to use this, a world build
of OE-Core tests out ok with this change. There will likely be issues in
other layers however, hence this being a RFT.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
icu backoff due to gtk-webkit

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
multilib: Set PN correctly on cross-canadian extension cases

When we extended cross-canadian recipes with multilib, we were seeing failures
since PN was unchanged.

"""
ERROR: Multiple versions of gcc-cross-canadian-i586 are due to be built
(/media/build1/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_4.9.bb
virtual:multilib:lib32:/media/build1/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_4.9.bb).
Only one version of a given PN should be built in any given build.
You likely need to set PREFERRED_VERSION_gcc-cross-canadian-i586 to
select the correct version or don't depend on multiple versions.
"""

This change avoids that error.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
classextend: Fix crosssdk remapping for multilib

Multilib builds only require one crosssdk toolchain. We therefore shouldn't
be remapping crosssdk names. This resolves build failures looking for
weird multilib crosssdk toolchains.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc: Clean up configure_prepend and fix for mingw

The do_configure_prepend was duplicated in gcc-4.X.inc and
gcc-configure-common.inc leading to confusion when reading the resulting
do_configure task where the file was processed twice.

The only difference was the removal of the include line for gcc 4.8/4.9.

On mingw were were seeing two issues, firstly that the if statements meant
the values we wanted weren't being set, the second that the include
paths were still wrong as there was no header path set.

To fix the first issue, the #ifdef conditionals were removed, we want
to set these things unconditionally. The second issue is addressed by
setting the NATIVE_SYSTEM_HEADER_DIR variable here (it was already
set in t-oe).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake.conf: Set a dafault value for TUNE_PKGARCH

If we don't do this, we see an exception:

ERROR: Failure expanding variable MACHINE_ARCH, expression was ${@[d.getVar('TUNE_PKGARCH', True),
d.getVar('MACHINE', True)][bool(d.getVar('MACHINE', True))].replace('-', '_')} which triggered
exception AttributeError: 'NoneType' object has no attribute 'replace'

Setting a default value avoids this error and allows the sanity checker
to trigger instead.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gzip: Avoid host contamination during build

On systems with /bin and /usr/bin merged the gzip recipe may find grep
in /usr/bin, while OE puts it in /bin. Force the recipe to find grep in
the correct place.

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>