x11-common: set XDG_RUNTIME_DIR if it isn't already set

Wayland needs this set for the communication pipes, so set a fallback in case it
hasn't already been set.

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wayland: add Wayland protocol library

Wayland is a protocol for a client application to display user interface windows
through the use of a compositing window manager. This package include the
specific set of server-side and client-side C libraries that implement the
protocol.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
mesa-dri: enable the wayland-egl platform

If the "wayland" DISTRO_FEATURE is present, enable the Wayland EGL platform.
This is required by the reference Wayland compositor, Weston.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
weston: add reference Wayland compositor

This is the reference Wayland compositor.

If the "wayland" DISTRO_FEATURE is present the KMS and Wayland (nested)
compositors are enabled.

If the "x11" DISTRO_FEATURE is present the X11 compositor is enabled, and a
launcher installed.

This also ships a basic Wayland terminal.

Based on work by Alexandru Damian <alexandru.damian@intel.com>, Daniel Stone
<daniel@fooishbar.org>, and Damien Lespiau <damien.lespiau@intel.com>.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
ptest.bbclass: don't add to PACKAGES if disabled

Without this, we have excessive dependencies leaking into the build. In
particular, glib-2.0 was sucking in python modules even if ptest wasn't in
DISTRO_FEATURES.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
iptables: upgrade to 1.4.17

patch added to fix cross-compilation issues

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
classes/rootfs_*: error out if postinstalls exist with read-only rootfs

If there are postinstall scripts to be run on first boot and
IMAGE_FEATURES contains "read-only-rootfs", we know this will fail on
the target device so just error out during do_rootfs. This check was
already implemented for ipk, so add it to the deb and rpm backends. Also
make all backends use bberror rather than just echo to display the
error.

Fixes [YOCTO #3407].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
dropbear: allow configuring blank password option at runtime

Instead of using IMAGE_FEATURES to control something within a recipe,
allow this to be set at runtime, avoiding the need to rebuild dropbear
when we want to change this option.

First half of the fix for [YOCTO #2578].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
classes/image: improve debug-tweaks ssh server configuration

Create a single postprocessing function that enables no-password logins
for both openssh and dropbear when debug-tweaks is in IMAGE_FEATURES,
changing its behaviour slightly:
* Run it regardless of whether ssh-server-* are in IMAGE_FEATURES so
  that it still takes effect if these are installed by adding
  dropbear/openssh to IMAGE_INSTALL.
* Enable it to be run from image.bbclass rather than core-image.bbclass
  so that it works for images that are using the former.

Second half of the fix for [YOCTO #2578].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
license.bbclass: check LICENSE_pkg, not LICENSE_pn-pkg

Recipes define the latter, as that's what goes into the binary packages, not
the former.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
license: correct re.search/fnmatch indentation

This was causing it to only obey the last of the elements in
INCOMPATIBLE_LICENSE.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
license.bbclass: cleanly handle invalid licenses in incompatible_license

This gives us an error message (bb.fatal) rather than a traceback due to the
uncaught LicenseError.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
linux-firmware: use LICENSEs which can actually be parsed

: is an invalid character for our license format.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
base.bbclass: use debug messages for INCOMPATIBLE_LICENSE

Spamming potentially over a screenful of messages due to their
INCOMPATIBLE_LICENSE selection seems a bit unnecessary. If the distro was
configured that way, the user likely won't care, and if the user set it, they
likely know the implications, so make the messages debug instead.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
base.bbclass: improve the incompatible license logic a bit

Handle the potential case where the recipe level LICENSE contains an
incompatible license, but all of its emitted packages are in fact compatible.
Without this adjustment, it would skip such a recipe.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
pango: use qemu_run_binary instead of pango-native

- use qemu_run_binary from qemu.bbclass to run pango-querymodules
- remove pango-native from DEPENDS in order to do not create
unbuildable dependency chains (e.g. ['gtk+', 'pango', 'pango-native',
'cairo-native', 'directfb-native'])

[YOCTO #3642]

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
initramfs-live-boot: handle multiple udev locations

udevd isn't on $PATH and is in different places depending on what version of
udev is being used.  Copy the code from initramfs-framework to search for the
right udevd at boot time instead of hard-coding a location.

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
modutils-initscripts: improve modutils.sh

modutils.sh reads /etc/modules to load the listed modules at boot time.
/etc/modules is generated by update-modules which scans
/etc/modules-load.d directory. However, update-modules became obsolete
because the files it generates are not used by modprobe anymore.

Hence, change modutils.sh to scan also /etc/modules-load.d/*.conf and
load the modules listed there.

Basically, the behavior is this:
 * if /etc/modules exists, load those modules;
 * if the directory /etc/modules-load.d exists, load the modules listed
   in the .conf files but ignore those already loaded (from
   /etc/modules);

[YOCTO #3598]

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
orinoco-conf: remove dependencies of update-modules

Since update-modules became obsolete, no need for these dependencies.
Also:
 * install the conf files in the modprobe.d directory. /etc/modutils is
   also obsolete;
 * remove postinst/postrm scriptlets since they ran update-modules and
   this is just an alias file;

[YOCTO #3598]

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hostap-conf: remove dependencies of update-modules

Also:
 * install the alias file in the correct /etc/modprobe.d directory since
   this is the directory used by modprobe now;
 * rewrite the alias file to be up-to-date with modprobe's syntax;
 * remove the postinst/postrm scriptlets because this is just an alias
   file;

[YOCTO #3598]

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>