package.bbclass: move reading shlibs providers to separate function

* prepare for reading shlibs providers only from dependency tree of
  current recipe

[YOCTO #4628]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
package.bbclass: show warning when package is trying to provide already provided shlib

* move read_shlib_providers before registering package as provider
  and don't change provider if it already exists, show warning instead

[YOCTO #4628]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
package.bbclass: add SHLIBSSEARCHDIRS to define where to search for shlib providers

* when package contains some files matching "^.*\.so", but in directory
  not default linker search paths (e.g. /opt/package/bundled-lib/libfoo.so)
  don't register it as libfoo provider, because it's possible that there
  is different package providing libfoo.so in ${libdir} and that would
  be better shlib provider for other packages to depend on
* recipes providing libs intentionally in some other directory can
  define own SHLIBSSEARCHDIRS value

[YOCTO #4628]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
package.bbclass: Don't search for prividers of PRIVATE_LIBS

* split PRIVATE_LIBS and don't use find(), so that libfoo cannot be
  found in PRIVATE_LIBS = "libfoobar"

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
package.bbclass: Show which files require given dependency in debug output

* when log.do_package shows some unexpected dependency, people usually
  need to grep package directory to find which binary was creating that
  dependency, show it directly in the debug output

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
qemux86: Add identical qemux86copy variant for tests

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
icecc: Don't replace non-empty PARALLEL_MAKE with empty ICECC_PARALLEL_MAKE

* it's needed for use-case like this:
  # Inherit icecc here, so that all builders have the same sstate signatures
  INHERIT_DISTRO += "icecc"
  # and then disable its function by default (so that people still need to explicity
  # enable it in local.conf if they have configured icecc and want to use it.
  # You need to set _empty_ value in local.conf to enable icecc function:
  # ICECC_DISABLED = ""
  ICECC_DISABLED ??= "1"
* so default ICECC_PARALLEL_MAKE is still empty, but we want build
  to respect our PARALLEL_MAKE, unfortunately we cannot do something
  like ICECC_PARALLEL_MAKE ??= "${PARALLEL_MAKE}", because that would
  cause PARALLEL_MAKE to reference itself.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
icecc: use bb.utils.which also for 'as'

* it was introduced in
  commit 3a842ec52e7d010767b13bdcb5629ac07b3ee9e7
  Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
  Date:   Fri Sep 16 10:55:16 2011 +0400
  Subject: icecc.bbclass: replace with updated version

  without any explanation in which case
    ${ICECC_CC} -print-prog-name=as
  is returning as in current working directory, but will keep old
  behavior just in case

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
icecc: Fix allarch and native recipes having different signatures

* for different MACHINES
* is there more elegant way to have "overridable" function so that
  signature handler properly uses only the branch without
  STAGING_BINDIR_TOOLCHAIN?

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
icecc: use exact match in blacklists, re-start with empty system_package_blacklist

* unify debug messages a bit
* old implementation allowed partial match in blacklist, it's safer
  to explicitly list exact matches
* I was able to build all entries from system_package_blacklist with
  icecc enabled, lets assume that they were already resolved by newer
  versions (we've fixed a lot of parallel issues in recipes which were
  detected even without icecc and this list is very old).

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
sstatesig: include native/cross/nativesdk deps in target signatures

* I don't have any real evidence or good statistics for this, but when
  comparing signature dumps from my big bitbake world builds I usually
  see a lot of rebuilds caused by changes in .bbclasses and only very
  rare would be the case where oe-core upgrade brings changes in -native
  recipes and no change in .bbclasses used from target recipes
* changing the default to include them shouldn't cause significant
  increase in rebuilds and sstate reuse a bit safer
* people working on toolchain (e.g. using gcc from AUTOREV) can easily
  extend sstate_rundepfilter to ignore them again (it's easier than
  removing existing filter), example how add own signature handler in
  your layer is here:
  https://github.com/openwebos/meta-webos/commit/9ac3a7c803e7793b3274e4998f167b6278db8042

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
allarch: Set empty TARGET_PREFIX and TARGET_FPU

* set empty TARGET_PREFIX
  This has a bit weird reason caused by unsupported setup where
  external-toolchain is used in some DISTRO only for some MACHINEs
  and internal is used for other MACHINEs.
  Because external-toolchain usually comes with different TARGET_PREFIX
  it was causing allarch recipes to have different signatures even
  when they don't use toolchain at all.
  Empty TARGET_PREFIX also helps to find allarch recipes which still
  have default dependency on e.g. virtual/${TARGET_PREFIX}gcc.
* add TARGET_FPU just for completeness (it was used in icecc.bbclass
  but now it's vardepexcluded there as well)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
WIP: Add KERNEL_EXTRA_ARGS?
gtk+: Add PACKAGECONFIG for directfb

* building without x11 doesn't work, because it sets default
  gdkbackend to x11 and then requires cairo-xlib to be available
* checking for CAIRO_BACKEND... no
  configure: error: Package requirements (cairo-xlib >= 1.6) were not met:

  No package 'cairo-xlib' found

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
archiver: Use subdirectory in WORKDIR when creating archives

* RFC: because I haven't tested all possible archiver configurations
       please check added note about diffgz archives and .org -
       was it ever working correctly? It was like this since initial
       commit.

* archiver can sometimes overwrite or remove some files which are
  needed by other tasks.

  This happens in cases where file referenced in SRC_URI aren't
  unpacked and are used by other tasks directly from WORKDIR

  def archive_sources(d, stage_name): downloads sources from
  SRC_URI again to WORKDIR in order to create source tarball from them
  (normally it's ok, because source tarball is directly unpacked from
  DL_DIR so never stays in WORKDIR).

  def archive_sources_patches(d, stage_name): then creates the tarball
  itself and moves source and patch tarballs to deploy with:
  move_tarball_deploy(d, [source_tar_name, patch_tar_name])

  But in cases where source_tar_name == "required" file we're using:
    1) do_unpack downloads "required" from DL_DIR to WORKDIR,
    2) archive_sources overwrites it with another copy,
    3) archive_sources_patches removes it,
    4) do_deploy fails because it wants to install now non-existent
       ${WORKDIR}/required

* move duplicated ARCHIVE_SSTATE_* assignments from archive-*.bbclass
  to common archiver.bbclass
* introduce separate workdir for archiver ARCHIVE_SSTATE_WORKDIR and
  move ARCHIVE_SSTATE_SCRIPTS_LOGS_INDIR,
  ARCHIVE_SSTATE_DIFFGZ_ENVDATA_INDIR into it
* change archiver.bbclass to dump scripts-logs and diffgs-envdata into
  right directory (respect variables defined above instead of hardcoding
  the paths in code).
* use d.getVar* API
* unify workdir/work_dir usage for ${WORKDIR} and use separate variable
  archiver_workdir when it means ARCHIVE_SSTATE_WORKDIR

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
libsdl: Add support for libsdl-native

Change-Id: I4fb1e623c7bbb1f35ae3001c839cd7e16ce1bd65
Signed-off-by: Alexandru Niculita <alexnick87@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
dbus, systemd, apmd, rpcbind, nfs-utils, alsa-state, openssh, ppp, cronie, irda-utils: Drop initscripts-functions runtime dependency

* all these are working fine in my systemd images
  with initscripts blacklisted just to make sure that they don't leak to
  image

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
cmake: Fix freetype detection

* since last freetype upgrade cmake cannot detect it
* e.g. webkit-efl requires freetype and is failing because of this

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>