Yocto 2.5

Move OpenBMC to Yocto 2.5(sumo)

Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: I5c5ad6904a16e14c1c397f0baf10c9d465594a78
diff --git a/import-layers/meta-openembedded/meta-oe/README b/import-layers/meta-openembedded/meta-oe/README
index dabed2f..7cde0a2 100644
--- a/import-layers/meta-openembedded/meta-oe/README
+++ b/import-layers/meta-openembedded/meta-oe/README
@@ -1,15 +1,14 @@
 This layer depends on:
 
 URI: git://github.com/openembedded/oe-core.git
-branch: rocko
+branch: master
 revision: HEAD
 
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][rocko]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject'
 
 When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][rocko][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][PATCH'
 
 You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
 
-rocko Branch Maintainer:
-Armin Kuster <akuster808@gmail.com>
+Main layer maintainer: Armin Kuster <akuster808@gmail.com>
diff --git a/import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass b/import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass
index 380374a..07f44c3 100644
--- a/import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass
+++ b/import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass
@@ -36,7 +36,7 @@
                 return "0.0"
 
         except Exception as exc:
-            raise bb.parse.SkipPackage(str(exc))
+            raise bb.parse.SkipRecipe(str(exc))
 
     if ver and tagadjust:
         ver = tagadjust(ver)
diff --git a/import-layers/meta-openembedded/meta-oe/classes/meson.bbclass b/import-layers/meta-openembedded/meta-oe/classes/meson.bbclass
deleted file mode 100644
index a09bc24..0000000
--- a/import-layers/meta-openembedded/meta-oe/classes/meson.bbclass
+++ /dev/null
@@ -1,106 +0,0 @@
-inherit python3native
-
-DEPENDS_append = " meson-native ninja-native"
-
-# As Meson enforces out-of-tree builds we can just use cleandirs
-B = "${WORKDIR}/build"
-do_configure[cleandirs] = "${B}"
-
-# Where the meson.build build configuration is
-MESON_SOURCEPATH = "${S}"
-
-# These variables in the environment override the *native* tools, not the cross.
-export CPPFLAGS = "${BUILD_CPPFLAGS}"
-export CC = "${BUILD_CC}"
-export CFLAGS = "${BUILD_CFLAGS}"
-export CXX = "${BUILD_CXX}"
-export CXXFLAGS = "${BUILD_CXXFLAGS}"
-export LD = "${BUILD_LD}"
-export LDFLAGS = "${BUILD_LDFLAGS}"
-export AR = "${BUILD_AR}"
-export PKG_CONFIG = "pkg-config-native"
-
-def noprefix(var, d):
-    return d.getVar(var, True).replace(d.getVar('prefix', True) + '/', '', 1)
-
-MESONOPTS = " --prefix ${prefix} \
-              --bindir ${@noprefix('bindir', d)} \
-              --sbindir ${@noprefix('sbindir', d)} \
-              --datadir ${@noprefix('datadir', d)} \
-              --libdir ${@noprefix('libdir', d)} \
-              --libexecdir ${@noprefix('libexecdir', d)} \
-              --includedir ${@noprefix('includedir', d)} \
-              --mandir ${@noprefix('mandir', d)} \
-              --infodir ${@noprefix('infodir', d)} \
-              --sysconfdir ${sysconfdir} \
-              --localstatedir ${localstatedir} \
-              --sharedstatedir ${sharedstatedir}"
-
-MESON_C_ARGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS}"
-MESON_LINK_ARGS = "${MESON_C_ARGS} ${LDFLAGS}"
-
-MESON_HOST_ENDIAN = "${@bb.utils.contains('SITEINFO_ENDIANNESS', 'be', 'big', 'little', d)}"
-MESON_TARGET_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'big', 'little', d)}"
-
-EXTRA_OEMESON += "${PACKAGECONFIG_CONFARGS}"
-
-MESON_CROSS_FILE = ""
-MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross"
-
-def meson_array(var, d):
-    return "', '".join(d.getVar(var, True).split()).join(("'", "'"))
-
-addtask write_config before do_configure
-do_write_config[vardeps] += "MESON_C_ARGS TOOLCHAIN_OPTIONS"
-do_write_config() {
-    # This needs to be Py to split the args into single-element lists
-    cat >${WORKDIR}/meson.cross <<EOF
-[binaries]
-c = '${HOST_PREFIX}gcc'
-cpp = '${HOST_PREFIX}g++'
-ar = '${HOST_PREFIX}ar'
-ld = '${HOST_PREFIX}ld'
-strip = '${HOST_PREFIX}strip'
-readelf = '${HOST_PREFIX}readelf'
-pkgconfig = 'pkg-config'
-
-[properties]
-needs_exe_wrapper = true
-c_args = [${@meson_array('MESON_C_ARGS', d)}]
-c_link_args = [${@meson_array('MESON_LINK_ARGS', d)}]
-cpp_args = [${@meson_array('MESON_C_ARGS', d)}]
-cpp_link_args = [${@meson_array('MESON_LINK_ARGS', d)}]
-
-[host_machine]
-system = '${HOST_OS}'
-cpu_family = '${HOST_ARCH}'
-cpu = '${HOST_ARCH}'
-endian = '${MESON_HOST_ENDIAN}'
-
-[target_machine]
-system = '${TARGET_OS}'
-cpu_family = '${TARGET_ARCH}'
-cpu = '${TARGET_ARCH}'
-endian = '${MESON_TARGET_ENDIAN}'
-EOF
-}
-
-CONFIGURE_FILES = "meson.build"
-
-meson_do_configure() {
-    if ! meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON}; then
-        cat ${B}/meson-logs/meson-log.txt
-        bbfatal_log meson failed
-    fi
-}
-
-do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
-meson_do_compile() {
-    ninja ${PARALLEL_MAKE}
-}
-
-meson_do_install() {
-    DESTDIR='${D}' ninja ${PARALLEL_MAKEINST} install
-}
-
-EXPORT_FUNCTIONS do_configure do_compile do_install
diff --git a/import-layers/meta-openembedded/meta-oe/conf/layer.conf b/import-layers/meta-openembedded/meta-oe/conf/layer.conf
index d84bd09..1a43575 100644
--- a/import-layers/meta-openembedded/meta-oe/conf/layer.conf
+++ b/import-layers/meta-openembedded/meta-oe/conf/layer.conf
@@ -29,6 +29,8 @@
 
 LAYERDEPENDS_openembedded-layer = "core"
 
+LAYERSERIES_COMPAT_openembedded-layer = "sumo"
+
 LICENSE_PATH += "${LAYERDIR}/licenses"
 
 SIGGEN_EXCLUDERECIPES_ABISAFE += " \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch
index fde8238..7de05ee 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch
@@ -1,13 +1,21 @@
-Index: git/wscript
-===================================================================
---- git.orig/wscript	2016-07-29 13:15:44.954249796 -0500
-+++ git/wscript	2016-07-29 15:52:06.196768865 -0500
-@@ -90,7 +90,7 @@
-         ctx.check_cxx(lib = lib, uselib_store = uselib)
+From 9fb298c398f88a63d71432be1410d52fae089063 Mon Sep 17 00:00:00 2001
+From: Tom Hochstein <tom.hochstein@nxp.com>
+Date: Mon, 8 Aug 2016 11:39:54 -0500
+
+---
+ wscript | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/wscript b/wscript
+index ca843f4..eb4a26a 100644
+--- a/wscript
++++ b/wscript
+@@ -84,7 +84,7 @@ def configure(ctx):
+         ctx.check_cc(lib = lib, uselib_store = uselib)
  
      # Check required functions
 -    req_funcs = [('memset', 'string.h', []) ,('sqrt', 'math.h', ['m'])]
 +    req_funcs = [('memset', 'string.h', [])]
      for func, header, uselib in req_funcs:
-         ctx.check_cxx(function_name = func, header_name = header,
+         ctx.check_cc(function_name = func, header_name = header,
                        uselib = uselib, mandatory = True)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.10.bb
new file mode 100644
index 0000000..1322d07
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.10.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics"
+HOMEPAGE = "https://sourceforge.net/projects/iperf2/"
+SECTION = "console/network"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e136a7b2560d80bcbf0d9b3e1356ecff"
+
+SRC_URI = " ${SOURCEFORGE_MIRROR}/iperf2/iperf-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "097cf0754bc1afa165975c06a91e6906"
+SRC_URI[sha256sum] = "7fe4348dcca313b74e0aa9c34a8ccd713b84a5615b8578f4aa94cedce9891ef2"
+
+S = "${WORKDIR}/iperf-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/0001-include-stdint.h-for-various-std-c99-int-types.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/0001-include-stdint.h-for-various-std-c99-int-types.patch
deleted file mode 100644
index ae36208..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/0001-include-stdint.h-for-various-std-c99-int-types.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From be653711fb92d2430b3ecc546b4e3ad927d19ec5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 12:59:42 -0700
-Subject: [PATCH 1/2] include stdint.h for various std c99 int types
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/cjson.h | 2 ++
- src/timer.h | 1 +
- 2 files changed, 3 insertions(+)
-
-diff --git a/src/cjson.h b/src/cjson.h
-index fb8cd3b..69cd272 100644
---- a/src/cjson.h
-+++ b/src/cjson.h
-@@ -23,6 +23,8 @@
- #ifndef cJSON__h
- #define cJSON__h
- 
-+#include <stdint.h>
-+
- #ifdef __cplusplus
- extern "C"
- {
-diff --git a/src/timer.h b/src/timer.h
-index 0f9c5eb..0b195be 100644
---- a/src/timer.h
-+++ b/src/timer.h
-@@ -31,6 +31,7 @@
- #define __TIMER_H
- 
- #include <sys/time.h>
-+#include <stdint.h>
- 
- /* TimerClientData is an opaque value that tags along with a timer.  The
- ** client can use it for whatever, and it gets passed to the callback when
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
index 4d1b0c4..2ed0811 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
@@ -15,7 +15,6 @@
 
 SRC_URI = "git://github.com/esnet/iperf.git \
            file://automake-foreign.patch \
-           file://0001-include-stdint.h-for-various-std-c99-int-types.patch \
            file://0002-Remove-pg-from-profile_CFLAGS.patch \
            "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb
new file mode 100644
index 0000000..f534c73
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Tests to compare standard functions of different libc implementations"
+DESCRIPTION = "libc-bench is a set of time- and memory-efficiency tests to compare \
+implementations of various C/POSIX standard library functions."
+HOMEPAGE = "http://www.etalabs.net/libc-bench.html"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://Makefile;md5=e12f113da27dfe9cfb6c2c537da8d8df"
+
+SRC_URI = "http://www.etalabs.net/releases/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f763de90f95fe68e4e03e5b6f49698ac"
+SRC_URI[sha256sum] = "6825260aa5f15f4fbc7957ec578e9c859cbbe210e025ec74c4a0d05677523794"
+
+do_install () {
+    install -d ${D}${bindir}
+    install -m 0755 ${B}/libc-bench ${D}${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
new file mode 100644
index 0000000..aed95cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "LINPACK Benchmarks are a measure of a system's floating point computing power"
+SUMMARY = "LINPACK is a software library for performing numerical linear algebra on digital computers"
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM ="file://${WORKDIR}/linpacknew.c;beginline=1;endline=23;md5=aa025e3bc44190c71e4c5e3b084fed87"
+
+SRC_URI = "http://www.netlib.org/benchmark/linpackc.new;downloadfilename=linpacknew.c"
+SRC_URI[md5sum] = "1c5d0b6a31264685d2e651c920e3cdf4"
+SRC_URI[sha256sum] = "a63f2ec86512959f1fd926bfafb85905b2d7b7402942ffae3af374d48745e97e"
+
+S = "${WORKDIR}"
+
+do_compile () {
+	${CC} ${CFLAGS} ${LDFLAGS} -o linpack linpacknew.c -lm
+}
+
+do_install () {
+	install -Dm 0755 linpack ${D}${bindir}/linpack
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch
index 20791bf..d716949 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch
@@ -1,12 +1,13 @@
-From 31d58ed7e6552781f415501e96d7cc74f83b910d Mon Sep 17 00:00:00 2001
+From ac1657e11cbb0545bdf4d1124def8c013958ed7e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 12 Jul 2017 18:08:51 -0700
-Subject: [PATCH 1/2] Check for musl define guard before redefining socklen_t
+Subject: [PATCH] Check for musl define guard before redefining socklen_t
 
 musl uses __DEFINED_socklen_t so check for that as well
 along with HAVE_socklen_t
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/bench.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
@@ -24,6 +25,3 @@
  typedef int socklen_t;
  #endif
  
--- 
-2.13.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch
index 18ed43d..943b3ec 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch
@@ -1,9 +1,10 @@
-From 6faa6acdf20aa6f738eed1483b7dceed94286adb Mon Sep 17 00:00:00 2001
+From 7c05fa5353ad91acae6e5e8a01f65d54935ef778 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 27 Jun 2017 14:39:10 -0700
 Subject: [PATCH] lat_http.c: Add printf format
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/lat_http.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
@@ -21,6 +22,3 @@
  	}
  	write(sock, buf, strlen(buf));
  	while ((n = read(sock, buf, XFERSIZE)) > 0) {
--- 
-2.13.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
index d5c8f5f..353d80b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
@@ -1,13 +1,13 @@
-From 76f3a9abc2ff96155425ef97d8c5520cfbc8fe6a Mon Sep 17 00:00:00 2001
+From b27c253bfb78fa3c5f416e6caee101098a4b58cc Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 12 Jul 2017 18:09:46 -0700
-Subject: [PATCH 2/2] build: Adjust CFLAGS/LDFLAGS to append values passed from
- env
+Subject: [PATCH] build: Adjust CFLAGS/LDFLAGS to append values passed from env
 
 For musl we have to pass additional arguments via cflags and ldflags
 to link in librirpc, make room for those changes to take effect
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  scripts/build |  2 +-
  src/Makefile  | 14 +++++++-------
@@ -71,6 +71,3 @@
  
  
  tag:
--- 
-2.13.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch
index 549a114..cbab5c4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch
@@ -1,4 +1,7 @@
-lmbench: Can't proceed on some targets
+From 65180976c9963432d166b47a0b692260a69c0d47 Mon Sep 17 00:00:00 2001
+From: Qingming Su <qingming.su@windriver.com>
+Date: Tue, 19 Aug 2014 05:16:17 -0400
+Subject: [PATCH] lmbench: Can't proceed on some targets
 
 lmbench can't proceed on some targets.  The memory check fails because the
 memory latency of each page is longer then 10us, which is a time limit set
@@ -25,13 +28,19 @@
 
 Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
 
+---
+ scripts/config-run | 12 +++++++---
+ src/Makefile       |  4 ++--
+ src/memsize.c      | 66 +++++++++++++++++++++++++++++++++++-------------------
+ 3 files changed, 54 insertions(+), 28 deletions(-)
+
 diff --git a/scripts/config-run b/scripts/config-run
-index e1f7b6d..31b9256 100755
+index 918cbdf..096ed12 100755
 --- a/scripts/config-run
 +++ b/scripts/config-run
-@@ -214,6 +214,12 @@ The bigger the range, the more accurate the results, but larger sizes
+@@ -197,6 +197,12 @@ The bigger the range, the more accurate the results, but larger sizes
  take somewhat longer to run the benchmark.
-
+ 
  EOF
 +
 +# By default, use 512M memory as the upper limit for lmbench test
@@ -40,12 +49,12 @@
 +fi
 +
  echo $ECHON "MB [default $MB]: $ECHOC"
- #read TMP
- TMP=""
-@@ -718,10 +724,10 @@ case $MAIL in
-		;;
+ read TMP
+ if [ X$TMP != X ]
+@@ -687,10 +693,10 @@ case $MAIL in
+ 		;;
  esac
-
+ 
 -INFO=`../scripts/info`
 +INFO=`../scripts/hostinfo`
  if [ $MAIL = yes ]
@@ -54,8 +63,8 @@
 +	then	cp ../scripts/hostinfo-template $INFO
  		chmod +w $INFO
  		REUSE=no
- 	else
-@@ -765,7 +771,7 @@ EOF
+ 	else	
+@@ -733,7 +739,7 @@ EOF
  		then	EDITOR=$TMP
  		fi
  		if [ X$EDITOR != "none" ]
@@ -65,10 +74,10 @@
  	fi
  fi
 diff --git a/src/Makefile b/src/Makefile
-index d1f0dc6..5098998 100644
+index c7e4e3c..d9efd54 100644
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -49,7 +49,7 @@ TARGET=`../scripts/target`
+@@ -50,7 +50,7 @@ TARGET=`../scripts/target`
  BINDIR=../bin/$(OS)
  CONFIG=../bin/$(OS)/`../scripts/config`
  UTILS=../scripts/target ../scripts/os ../scripts/gnu-os ../scripts/compiler \
@@ -79,21 +88,21 @@
  INSTALL=cp
 @@ -240,7 +240,7 @@ $O/getopt.o : getopt.c $(INCS)
  	$(COMPILE) -c getopt.c -o $O/getopt.o
-
+ 
  $(UTILS) :
 -	-cd ../scripts; make get
 +	-cd ../scripts; cp info hostinfo; cp info-template hostinfo-template
-
+ 
  # Do not remove the next line, $(MAKE) depend needs it
  # MAKEDEPEND follows
 diff --git a/src/memsize.c b/src/memsize.c
-index eb25a09..cf9fe0c 100644
+index eb25a09..82d7faf 100644
 --- a/src/memsize.c
 +++ b/src/memsize.c
 @@ -14,9 +14,12 @@ char	*id = "$Id$\n";
-
+ 
  #define	CHK(x)	if ((x) == -1) { perror("x"); exit(1); }
-
+ 
 -#ifndef	TOO_LONG
 -#define	TOO_LONG	10	/* usecs */
 -#endif
@@ -103,12 +112,12 @@
 +
 +#define	MEMORY_SIZE_1MB (1024 * 1024)
 +#define	MEMORY_SIZE_8MB (8 * 1024 * 1024)
-
+ 
  int	alarm_triggered = 0;
-
+ 
 @@ -35,10 +38,10 @@ main(int ac, char **av)
  	size_t	delta;
-
+ 
  	if (ac == 2) {
 -		max = size = bytes(av[1]) * 1024 * 1024;
 +		max = size = bytes(av[1]) * MEMORY_SIZE_1MB;
@@ -170,7 +179,7 @@
 +		time_each_page = 1;
 +	//Set the uper limit of time spending on one page
 +        too_long = 10 * time_each_page;
-
+ 
 -	range = 1024 * 1024;
 -	incr = 1024 * 1024;
 -	touchRange(where, range, pagesize);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch
index cda2f0c..30708c8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch
@@ -1,4 +1,7 @@
-lmbench: Fix "make html" graph failure
+From b21ca9f3911628fb66f308c6916485bbbcfb29a4 Mon Sep 17 00:00:00 2001
+From: Lin Yu <lin.yu@windriver.com>
+Date: Tue, 19 Aug 2014 05:16:16 -0400
+Subject: [PATCH] lmbench: Fix "make html" graph failure
 
 The html-list perl script cannot parse the first line of the result
 files about the lmbench version.
@@ -14,6 +17,11 @@
 
 Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
 
+---
+ results/Makefile  | 1 +
+ scripts/html-list | 7 ++-----
+ 2 files changed, 3 insertions(+), 5 deletions(-)
+
 diff --git a/results/Makefile b/results/Makefile
 index 0935376..1ef9a15 100644
 --- a/results/Makefile
@@ -38,7 +46,7 @@
 +<h2><a href=summary.out>Summary of results</a></h2>
  <hr>
  EOF
-
+ 
 @@ -47,7 +47,7 @@ foreach $os (@os) {
  		open(F, $file);
  		$_ = <F>;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
index 41a3b32..fa5e6db 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
@@ -1,16 +1,22 @@
+From 182a5d3dba3f440bbf35551da6d21ab1c990eb58 Mon Sep 17 00:00:00 2001
+From: Noor Ahsan <noor_ahsan@mentor.com>
+Date: Mon, 29 Aug 2011 16:17:51 +0000
+Subject: [PATCH] lmbench: Add version 3.0-a9 (initial recipe)
+
 In some cases the host may have too old of a ranlib to work.  Since it's
 not exactly a great idea to not be using the cross ranlib anyhow, fix the
 Makefile so we can override ranlib and then override it
 
 Upstream-Status: Inappropriate [build system specific change]
+
 ---
- src/Makefile |    3 ++-
+ src/Makefile | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
-Index: lmbench-3.0-a9/src/Makefile
-===================================================================
---- lmbench-3.0-a9.orig/src/Makefile
-+++ lmbench-3.0-a9/src/Makefile
+diff --git a/src/Makefile b/src/Makefile
+index 4962815..c7a8c79 100644
+--- a/src/Makefile
++++ b/src/Makefile
 @@ -38,6 +38,7 @@ CC=`../scripts/compiler`
  MAKE=`../scripts/make`
  AR=ar
@@ -19,7 +25,7 @@
  
  # base of installation location
  BASE=/usr/local
-@@ -217,7 +218,7 @@ $O/lmbench : ../scripts/lmbench version.
+@@ -217,7 +218,7 @@ $O/lmbench : ../scripts/lmbench version.h
  $O/lmbench.a: $(LIBOBJS)
  	/bin/rm -f $O/lmbench.a
  	$(AR) $(ARCREATE) $O/lmbench.a $(LIBOBJS)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
index b46e09a..44bc7bb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
@@ -1,8 +1,18 @@
+From aca1a59d888421c1fc553229b8049be47e8b3ddf Mon Sep 17 00:00:00 2001
+From: Chunrong Guo <b40290@freescale.com>
+Date: Fri, 1 Mar 2013 09:50:42 +0000
+Subject: [PATCH] lmbench: update config script
+
 Upstream-Status: Pending
-Index: lmbench-3.0-a9/scripts/config
-===================================================================
---- lmbench-3.0-a9/scripts/config	2000-01-31 18:29:31.000000000 -0600
-+++ lmbench-3.0-a9/scripts/config	2013-03-01 00:19:41.032984315 -0600
+
+---
+ scripts/config | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/config b/scripts/config
+index b58cb60..25d9d77 100755
+--- a/scripts/config
++++ b/scripts/config
 @@ -3,5 +3,5 @@
  UNAME=`uname -n 2>/dev/null`
  if [ X$UNAME = X ]
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
index 894f146..31c4aec 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
@@ -1,45 +1,24 @@
+From 4955021bc283be404df62b97b86af3943efd29de Mon Sep 17 00:00:00 2001
+From: Noor Ahsan <noor_ahsan@mentor.com>
+Date: Mon, 29 Aug 2011 16:17:51 +0000
+Subject: [PATCH] lmbench: Add version 3.0-a9 (initial recipe)
+
 Now that we have our binaries in /usr/bin rather than the normal
 lmbench hierarchy we need to update the scripts as well to behave well here.
 
 Upstream-Status: Inappropriate [This is related to the OE-specific behavior
-of installing into /usr/bin, etc, rather than dumping everything into 
+of installing into /usr/bin, etc, rather than dumping everything into
 /usr/share/lmbench or similar]
 
-Index: lmbench-3.0-a9/scripts/results
-===================================================================
---- lmbench-3.0-a9.orig/scripts/results
-+++ lmbench-3.0-a9/scripts/results
-@@ -8,11 +8,11 @@ RESULTS=results/$OS
- BASE=../$RESULTS/`uname -n`
- EXT=0
- 
--if [ ! -f "../bin/$OS/$CONFIG" ]
-+if [ ! -f "$CONFIG" ]
- then	echo "No config file?"
- 	exit 1
- fi
--. ../bin/$OS/$CONFIG
-+. $CONFIG
- 
- if [ ! -d ../$RESULTS ]
- then	mkdir -p ../$RESULTS
-@@ -23,11 +23,9 @@ do      EXT=`expr $EXT + 1`
- 	RESULTS=$BASE.$EXT
- done
- 
--cd ../bin/$OS 
--PATH=.:${PATH}; export PATH
- export SYNC_MAX
- export OUTPUT
--lmbench $CONFIG 2>../${RESULTS}
-+lmbench $CONFIG 2>${RESULTS}
- 
- if [ X$MAIL = Xyes ]
- then	echo Mailing results
-Index: lmbench-3.0-a9/scripts/config-run
-===================================================================
---- lmbench-3.0-a9.orig/scripts/config-run
-+++ lmbench-3.0-a9/scripts/config-run
+---
+ scripts/config-run | 40 ++++++++++++++++++++--------------------
+ scripts/results    |  8 +++-----
+ 2 files changed, 23 insertions(+), 25 deletions(-)
+
+diff --git a/scripts/config-run b/scripts/config-run
+index a2d5ba4..918cbdf 100755
+--- a/scripts/config-run
++++ b/scripts/config-run
 @@ -132,20 +132,20 @@ export LMBENCH_SCHED
  ############################################################################
  echo $L; echo "";
@@ -89,7 +68,7 @@
  if [ `expr $SYNC_MAX \* $MB` -gt `expr $TOTAL_MEM` ]
  then
  	MB=`expr $TOTAL_MEM / $SYNC_MAX`
-@@ -223,8 +223,8 @@ then	echo Warning: you have only ${MB}MB
+@@ -223,8 +223,8 @@ then	echo Warning: you have only ${MB}MB available memory.
  fi
  
  echo "Hang on, we are calculating your cache line size."
@@ -158,3 +137,34 @@
  echo DISKS=\"$DISKS\" > $C
  echo DISK_DESC=\"$DISK_DESC\" >> $C
  echo OUTPUT=$OUTPUT >> $C
+diff --git a/scripts/results b/scripts/results
+index cd07c15..d5aa558 100755
+--- a/scripts/results
++++ b/scripts/results
+@@ -8,11 +8,11 @@ RESULTS=results/$OS
+ BASE=../$RESULTS/`uname -n`
+ EXT=0
+ 
+-if [ ! -f "../bin/$OS/$CONFIG" ]
++if [ ! -f "$CONFIG" ]
+ then	echo "No config file?"
+ 	exit 1
+ fi
+-. ../bin/$OS/$CONFIG
++. $CONFIG
+ 
+ if [ ! -d ../$RESULTS ]
+ then	mkdir -p ../$RESULTS
+@@ -23,11 +23,9 @@ do      EXT=`expr $EXT + 1`
+ 	RESULTS=$BASE.$EXT
+ done
+ 
+-cd ../bin/$OS 
+-PATH=.:${PATH}; export PATH
+ export SYNC_MAX
+ export OUTPUT
+-lmbench $CONFIG 2>../${RESULTS}
++lmbench $CONFIG 2>${RESULTS}
+ 
+ if [ X$MAIL = Xyes ]
+ then	echo Mailing results
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
index 3351ce8..c6e9465 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
@@ -1,14 +1,15 @@
-From 0d09e31970616e09beb7f238c2b59bfc541148fb Mon Sep 17 00:00:00 2001
+From 73fdc58ca4eb9e2f24d854b3af3a4e5daac5a33e Mon Sep 17 00:00:00 2001
 From: Ting Liu <b28495@freescale.com>
 Date: Fri, 22 Nov 2013 15:20:08 +0800
 Subject: [PATCH] use base_libdir instead of hardcoded /lib
 
-Upsteam Status: Inappropriate [configuration]
+Upstream Status: Inappropriate [configuration]
 
 Signed-off-by: Ting Liu <b28495@freescale.com>
+
 ---
- src/Makefile |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
+ src/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/Makefile b/src/Makefile
 index c7a8c79..c7e4e3c 100644
@@ -27,6 +28,3 @@
  	cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
  
  
--- 
-1.7.5.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
index 2d8a246..b964bef 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
@@ -1,4 +1,7 @@
-[PATCH] avoid gcc optimize-away the loops
+From 25738bb9c75f94b451201acfd6bcab13bdeee512 Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Thu, 5 May 2016 09:52:01 +0800
+Subject: [PATCH] [PATCH] avoid gcc optimize-away the loops
 
 Upstream-Status: pending
 
@@ -15,6 +18,7 @@
 	#define TEN(a) a a a a a a a a a a
 
 Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
 ---
  src/lat_ops.c | 30 +++++++++++++++++++++++++-----
  1 file changed, 25 insertions(+), 5 deletions(-)
@@ -74,6 +78,3 @@
  	}
  	use_int((int)r);
  }
--- 
-2.8.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch
index 9a40521..b42ee7d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch
@@ -1,3 +1,8 @@
+From 16823f5c3d3d5adad0b70e9055c08cb4e18d255b Mon Sep 17 00:00:00 2001
+From: Noor Ahsan <noor_ahsan@mentor.com>
+Date: Mon, 29 Aug 2011 16:17:51 +0000
+Subject: [PATCH] lmbench: Add version 3.0-a9 (initial recipe)
+
 Both lmbench and util-linux-ng packages provide own /usr/bin/line binaries.
 Even though the binaries name is the same, their functionality is different.
 This patch renames lmbench's line binary as lm_line to avoid conflicts with
@@ -6,8 +11,14 @@
 
 Upstream-Status: Inappropriate [build system specific change]
 
---- patches/scripts/config-run	2006-11-26 15:11:04.000000000 -0500
-+++ patches/scripts/config-run	2011-04-01 09:35:50.000000000 -0400
+---
+ scripts/config-run | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/config-run b/scripts/config-run
+index f620c15..a2d5ba4 100755
+--- a/scripts/config-run
++++ b/scripts/config-run
 @@ -224,7 +224,7 @@ fi
  
  echo "Hang on, we are calculating your cache line size."
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb
similarity index 78%
rename from import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb
index 3ccd5db..1f90a71 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb
@@ -6,8 +6,8 @@
 SECTION = "console/tests"
 
 SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "86fa3eede43ffff88992fe21368b11b7"
-SRC_URI[sha256sum] = "de9aec3ef4f980581756fd0bf7b30dd1ccb20e7aae637078a587606bf75a6b67"
+SRC_URI[md5sum] = "850843bd9252823e7e24bc0849773000"
+SRC_URI[sha256sum] = "cd6c869841f28e4ac1e8a5e4cda05fafce9a523a6b4f0f3a47805efd30494d88"
 
 S = "${WORKDIR}/phoronix-test-suite"
 
@@ -23,7 +23,12 @@
     fi
 }
 
+# It is not advisable to enable these services by default since they can cause
+# continual target reboots if they encounter network problems.
+#
+SYSTEMD_AUTO_ENABLE = "disable"
 SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service"
+
 RDEPENDS_${PN} += "bash python php-cli"
 
 FILES_${PN} += " \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/whetstone/whetstone_1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/whetstone/whetstone_1.2.bb
new file mode 100644
index 0000000..8fad04e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/whetstone/whetstone_1.2.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Whetstone benchmark is a synthetic benchmark for evaluating the performance of computers"
+SUMMARY = "CPU benchmark to measure floating point performance"
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM ="file://${WORKDIR}/whetstone.c;beginline=1;endline=52;md5=c795edc15e7e1d92ca8f88ad718449f5"
+
+SRC_URI = "http://www.netlib.org/benchmark/whetstone.c"
+SRC_URI[md5sum] = "d8eb2cd7104bb5a12d614ac6d3f1f9fb"
+SRC_URI[sha256sum] = "333e4ceca042c146f63eec605573d16ae8b07166cbc44a17bec1ea97c6f1efbf"
+
+S = "${WORKDIR}"
+
+do_compile () {
+	${CC} ${CFLAGS} ${LDFLAGS} -Ofast -o whetstone whetstone.c -lm
+}
+
+do_install () {
+	install -Dm 0755 whetstone ${D}${bindir}/whetstone
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/acpitool/acpitool_0.5.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/acpitool/acpitool_0.5.1.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/acpitool/acpitool_0.5.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/acpitool/acpitool_0.5.1.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/edac-utils_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/edac-utils_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/files/add-restart-to-initscript.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/files/add-restart-to-initscript.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/edac.service b/import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/files/edac.service
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/edac.service
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/files/edac.service
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.15.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
similarity index 65%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
index 1b8815e..b4ce132 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
@@ -1,4 +1,4 @@
-From 3d43c5efdb632da5d7387dcadce4e87b83929c64 Mon Sep 17 00:00:00 2001
+From d65c325dd8681edf2ee3332eeb0a547229c7ffb5 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 24 Aug 2017 15:54:47 -0700
 Subject: [PATCH] efivar-dp.h: Add -Wunknown-attributes when using clang
@@ -7,15 +7,16 @@
 nonnull parameter 'dp' will evaluate to 'true' on first encounter
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/include/efivar/efivar-dp.h | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
 
-Index: git/src/include/efivar/efivar-dp.h
-===================================================================
---- git.orig/src/include/efivar/efivar-dp.h
-+++ git/src/include/efivar/efivar-dp.h
-@@ -783,9 +783,14 @@ extern int efidp_append_instance(const_e
+---
+ src/include/efivar/efivar-dp.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/include/efivar/efivar-dp.h b/src/include/efivar/efivar-dp.h
+index 3a509b7..c140e8d 100644
+--- a/src/include/efivar/efivar-dp.h
++++ b/src/include/efivar/efivar-dp.h
+@@ -783,9 +783,14 @@ extern int efidp_append_instance(const_efidp dp, const_efidp dpi, efidp *out);
   * though older or other compilers might just ignore that attribute if they
   * don't support it.  Ugh.
   */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
similarity index 80%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
index 6f6ca64..251e50c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
@@ -1,7 +1,7 @@
-From 9a3c480af653b37e62d1be04d49fe7a60a80168f Mon Sep 17 00:00:00 2001
+From a9115d9e6f0f62d6bb735ce3698858d1f89f8d73 Mon Sep 17 00:00:00 2001
 From: Kai Kang <kai.kang@windriver.com>
 Date: Fri, 25 Sep 2015 18:14:31 +0800
-Subject: [PATCH 1/2] efivar: fix for cross compile
+Subject: [PATCH] efivar: fix for cross compile
 
 It builds and calls elf file makeguids to generate a header file which
 doesn't work for cross compile. Fix it.
@@ -16,10 +16,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/Makefile b/src/Makefile
-index 5fc7887..1829d22 100644
+index 0c16597..dcc7fc8 100644
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -29,8 +29,8 @@ all : deps $(TARGETS)
+@@ -40,8 +40,8 @@ abicheck : $(patsubst %.so,%.abicheck,$(LIBTARGETS))
  ./guid-symbols.c : include/efivar/efivar-guids.h
  ./guids.bin : include/efivar/efivar-guids.h
  ./names.bin : include/efivar/efivar-guids.h
@@ -30,6 +30,3 @@
  		guid-symbols.c include/efivar/efivar-guids.h
  
  makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT
--- 
-2.4.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
similarity index 93%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
index 73a7721..2a6eb06 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
@@ -1,4 +1,4 @@
-From 98b33d4193998687aa3a78c097f7bd4c393e0c85 Mon Sep 17 00:00:00 2001
+From dd4291265b7b3d7d7ffa1d8adf32781ae25dbfeb Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 15 Jul 2017 00:29:42 -0700
 Subject: [PATCH] makeguids: Do not use __bswap_constant_{16|32} macros
@@ -6,6 +6,7 @@
 not available on musl
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/makeguids.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
@@ -32,6 +33,3 @@
  #endif\n\
  """);
  
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0003-efivar-fix-for-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
similarity index 84%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
index 3f43f2a..83105fe 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
@@ -1,4 +1,4 @@
-From 7ead29ca6bb5e280ae07551cc3521281ecf73682 Mon Sep 17 00:00:00 2001
+From dea4a55714249b2734a36701120fd22c91c64ec2 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Sat, 7 May 2016 02:06:47 -0400
 Subject: [PATCH] Makefile: fix efivar.pc not found
@@ -20,17 +20,18 @@
 Upstream-Status: Pending
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
 ---
  src/Makefile | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/src/Makefile b/src/Makefile
-index c7a0ca3..ad9c427 100644
+index dcc7fc8..691aa8a 100644
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -78,7 +78,9 @@ install : all
- 		ln -fs $(x).$(VERSION) $(DESTDIR)$(libdir)/$(x).$(MAJOR_VERSION);\
- 		ln -fs $(x).$(VERSION) $(DESTDIR)$(libdir)/$(x); )
+@@ -94,7 +94,9 @@ install : all
+ 		ln -fs $(x).1.$(VERSION) $(DESTDIR)$(libdir)/$(x) ;\
+ 		)
  	$(INSTALL) -d -m 755 $(DESTDIR)$(PCDIR)
 -	$(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)$(PCDIR) ;)
 +	$(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(TOPDIR)/src/$(x).in $(DESTDIR)$(PCDIR)/$(x) ;\
@@ -39,6 +40,3 @@
  	$(INSTALL) -d -m 755 $(DESTDIR)$(includedir)/efivar
  	$(foreach x, $(wildcard $(TOPDIR)/src/include/efivar/*.h), $(INSTALL) -m 644 $(x) $(DESTDIR)$(includedir)/efivar/$(notdir $(x));)
  	$(INSTALL) -d -m 755 $(DESTDIR)$(bindir)
--- 
-2.8.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/allow-multi-definitions-for-native.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
similarity index 62%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/allow-multi-definitions-for-native.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
index 87f5555..f88af1f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/allow-multi-definitions-for-native.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
@@ -1,3 +1,8 @@
+From c801dcb03d42eb533a9bead0b397d7ce4fc5a6fe Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 10 Aug 2016 17:49:50 +0800
+Subject: [PATCH] allow multi definitions for native
+
 Upstream-Status: Pending
 
 It fails to create .so file when build efivar-native:
@@ -8,16 +13,20 @@
 Add link option '-z muldefs' to fix it.
 
 Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
 ---
+ Make.rules | 1 +
+ 1 file changed, 1 insertion(+)
+
 diff --git a/Make.rules b/Make.rules
-index d9c0609..874bce0 100644
+index 88b9aa7..799332f 100644
 --- a/Make.rules
 +++ b/Make.rules
 @@ -20,6 +20,7 @@ include $(TOPDIR)/Make.version
  	$(CCLD) $(ccldflags) $(CPPFLAGS) $(SOFLAGS) \
- 	  -Wl,-soname,$@.$(MAJOR_VERSION) \
+ 	  -Wl,-soname,$@.1 \
  	  -Wl,--version-script=$(MAP) \
 +	  -Wl,-z,muldefs \
  	  -o $@ $^ $(LDLIBS)
  
- %.o : %.c
+ %.abixml : %.so
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
index e3fa2e1..dbc9a57 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
@@ -1,4 +1,4 @@
-From 1361225abbaba878960f970df39a4570bbc39553 Mon Sep 17 00:00:00 2001
+From 3edce6a0019bcb90febc1f654b5b2e2bad5c59bd Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Thu, 26 May 2016 21:50:01 -0400
 Subject: [PATCH] fix compile failure with older host gcc (<=4.6)
@@ -16,14 +16,15 @@
 Upstream-Status: Pending
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
 ---
  gcc.specs | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-Index: git/gcc.specs
-===================================================================
---- git.orig/gcc.specs
-+++ git/gcc.specs
+diff --git a/gcc.specs b/gcc.specs
+index 45d43d1..f1c6944 100644
+--- a/gcc.specs
++++ b/gcc.specs
 @@ -2,13 +2,13 @@
  + -D_GNU_SOURCE
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch
new file mode 100644
index 0000000..5864ac6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch
@@ -0,0 +1,25 @@
+From 8000b9afc858472912aace985004b44f8eb467e0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 18 Aug 2017 09:49:49 -0700
+Subject: [PATCH] support musl
+
+Upstream-Status: Pending
+---
+ src/linux.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/linux.c b/src/linux.c
+index 34ed479..1304f2b 100644
+--- a/src/linux.c
++++ b/src/linux.c
+@@ -40,6 +40,10 @@
+ #include <efivar.h>
+ #include <efiboot.h>
+ 
++#if !defined(__GLIBC__)
++#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
++#endif
++
+ #include "dp.h"
+ #include "linux.h"
+ #include "util.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.31.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.31.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.31.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch
new file mode 100644
index 0000000..7ba69a9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch
@@ -0,0 +1,37 @@
+From d2a28dcdbd1051d2f48320e2eda3393581fe0519 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Mar 2018 23:08:29 -0700
+Subject: [PATCH] platform: Add riscv to known platforms
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://review.coreboot.org/#/c/flashrom/+/25260/]
+ platform.h | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/platform.h b/platform.h
+index b2fdcd0..2cadbb3 100644
+--- a/platform.h
++++ b/platform.h
+@@ -69,6 +69,9 @@
+ #elif defined (__m68k__)
+ 	#define __FLASHROM_ARCH__ "m68k"
+ 	#define IS_M68K 1
++#elif defined (__riscv)
++	#define __FLASHROM_ARCH__ "riscv"
++	#define IS_RISCV 1
+ #elif defined (__sh__)
+ 	#define __FLASHROM_ARCH__ "sh"
+ 	#define IS_SH 1
+@@ -77,7 +80,7 @@
+ 	#define IS_S390 1
+ #endif
+ 
+-#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM || IS_SPARC || IS_ALPHA || IS_HPPA || IS_M68K || IS_SH || IS_S390)
++#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM || IS_SPARC || IS_ALPHA || IS_HPPA || IS_M68K || IS_RISCV || IS_SH || IS_S390)
+ #error Unknown architecture
+ #endif
+ 
+-- 
+2.16.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/sst26.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/sst26.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
new file mode 100644
index 0000000..9eac876
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
+LICENSE = "GPLv2"
+HOMEPAGE = "http://flashrom.org"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "pciutils libusb libusb-compat"
+
+SRC_URI = "https://download.flashrom.org/releases/flashrom-${PV}.tar.bz2 \
+           file://sst26.patch \
+           file://0001-platform-Add-riscv-to-known-platforms.patch \
+           "
+SRC_URI[md5sum] = "42d999990c735d88653627cefcc13b9a"
+SRC_URI[sha256sum] = "3702fa215ba5fb5af8e54c852d239899cfa1389194c1e51cb2a170c4dc9dee64"
+
+inherit pkgconfig
+
+do_install() {
+    oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/fancontrol b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/fancontrol
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/fancontrol
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/fancontrol
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensord
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensord
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.cgi b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensord.cgi
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.cgi
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensord.cgi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.conf b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensord.conf
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.conf
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensord.conf
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensors.conf b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensors.conf
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensors.conf
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config/sensors.conf
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/fancontrol.init b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/fancontrol.init
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/fancontrol.init
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/fancontrol.init
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.init b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/sensord.init
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.init
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/sensord.init
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/lssci/lsscsi_0.28.bb b/import-layers/meta-openembedded/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/lssci/lsscsi_0.28.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch
new file mode 100644
index 0000000..5535a3c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch
@@ -0,0 +1,177 @@
+From 044ae35c5694c39a4aca2a33502cc3897e88f79e Mon Sep 17 00:00:00 2001
+From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
+Date: Fri, 14 Jul 2017 15:15:35 +0200
+Subject: [PATCH 1/7] hostapd: Avoid key reinstallation in FT handshake
+
+Do not reinstall TK to the driver during Reassociation Response frame
+processing if the first attempt of setting the TK succeeded. This avoids
+issues related to clearing the TX/RX PN that could result in reusing
+same PN values for transmitted frames (e.g., due to CCM nonce reuse and
+also hitting replay protection on the receiver) and accepting replayed
+frames on RX side.
+
+This issue was introduced by the commit
+0e84c25434e6a1f283c7b4e62e483729085b78d2 ('FT: Fix PTK configuration in
+authenticator') which allowed wpa_ft_install_ptk() to be called multiple
+times with the same PTK. While the second configuration attempt is
+needed with some drivers, it must be done only if the first attempt
+failed.
+
+Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
+
+Upstream-Status: Backport
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/ap/ieee802_11.c  | 16 +++++++++++++---
+ src/ap/wpa_auth.c    | 11 +++++++++++
+ src/ap/wpa_auth.h    |  3 ++-
+ src/ap/wpa_auth_ft.c | 10 ++++++++++
+ src/ap/wpa_auth_i.h  |  1 +
+ 5 files changed, 37 insertions(+), 4 deletions(-)
+
+diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
+index 4e04169..333035f 100644
+--- a/src/ap/ieee802_11.c
++++ b/src/ap/ieee802_11.c
+@@ -1841,6 +1841,7 @@ static int add_associated_sta(struct hostapd_data *hapd,
+ {
+ 	struct ieee80211_ht_capabilities ht_cap;
+ 	struct ieee80211_vht_capabilities vht_cap;
++	int set = 1;
+ 
+ 	/*
+ 	 * Remove the STA entry to ensure the STA PS state gets cleared and
+@@ -1848,9 +1849,18 @@ static int add_associated_sta(struct hostapd_data *hapd,
+ 	 * FT-over-the-DS, where a station re-associates back to the same AP but
+ 	 * skips the authentication flow, or if working with a driver that
+ 	 * does not support full AP client state.
++	 *
++	 * Skip this if the STA has already completed FT reassociation and the
++	 * TK has been configured since the TX/RX PN must not be reset to 0 for
++	 * the same key.
+ 	 */
+-	if (!sta->added_unassoc)
++	if (!sta->added_unassoc &&
++	    (!(sta->flags & WLAN_STA_AUTHORIZED) ||
++	     !wpa_auth_sta_ft_tk_already_set(sta->wpa_sm))) {
+ 		hostapd_drv_sta_remove(hapd, sta->addr);
++		wpa_auth_sm_event(sta->wpa_sm, WPA_DRV_STA_REMOVED);
++		set = 0;
++	}
+ 
+ #ifdef CONFIG_IEEE80211N
+ 	if (sta->flags & WLAN_STA_HT)
+@@ -1873,11 +1883,11 @@ static int add_associated_sta(struct hostapd_data *hapd,
+ 			    sta->flags & WLAN_STA_VHT ? &vht_cap : NULL,
+ 			    sta->flags | WLAN_STA_ASSOC, sta->qosinfo,
+ 			    sta->vht_opmode, sta->p2p_ie ? 1 : 0,
+-			    sta->added_unassoc)) {
++			    set)) {
+ 		hostapd_logger(hapd, sta->addr,
+ 			       HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE,
+ 			       "Could not %s STA to kernel driver",
+-			       sta->added_unassoc ? "set" : "add");
++			       set ? "set" : "add");
+ 
+ 		if (sta->added_unassoc) {
+ 			hostapd_drv_sta_remove(hapd, sta->addr);
+diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
+index 3587086..707971d 100644
+--- a/src/ap/wpa_auth.c
++++ b/src/ap/wpa_auth.c
+@@ -1745,6 +1745,9 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event)
+ #else /* CONFIG_IEEE80211R */
+ 		break;
+ #endif /* CONFIG_IEEE80211R */
++	case WPA_DRV_STA_REMOVED:
++		sm->tk_already_set = FALSE;
++		return 0;
+ 	}
+ 
+ #ifdef CONFIG_IEEE80211R
+@@ -3250,6 +3253,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm)
+ }
+ 
+ 
++int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm)
++{
++	if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt))
++		return 0;
++	return sm->tk_already_set;
++}
++
++
+ int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
+ 			     struct rsn_pmksa_cache_entry *entry)
+ {
+diff --git a/src/ap/wpa_auth.h b/src/ap/wpa_auth.h
+index 0de8d97..97461b0 100644
+--- a/src/ap/wpa_auth.h
++++ b/src/ap/wpa_auth.h
+@@ -267,7 +267,7 @@ void wpa_receive(struct wpa_authenticator *wpa_auth,
+ 		 u8 *data, size_t data_len);
+ enum wpa_event {
+ 	WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH,
+-	WPA_REAUTH_EAPOL, WPA_ASSOC_FT
++	WPA_REAUTH_EAPOL, WPA_ASSOC_FT, WPA_DRV_STA_REMOVED
+ };
+ void wpa_remove_ptk(struct wpa_state_machine *sm);
+ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event);
+@@ -280,6 +280,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm);
+ int wpa_auth_get_pairwise(struct wpa_state_machine *sm);
+ int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm);
+ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm);
++int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm);
+ int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
+ 			     struct rsn_pmksa_cache_entry *entry);
+ struct rsn_pmksa_cache_entry *
+diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c
+index 42242a5..e63b99a 100644
+--- a/src/ap/wpa_auth_ft.c
++++ b/src/ap/wpa_auth_ft.c
+@@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
+ 		return;
+ 	}
+ 
++	if (sm->tk_already_set) {
++		/* Must avoid TK reconfiguration to prevent clearing of TX/RX
++		 * PN in the driver */
++		wpa_printf(MSG_DEBUG,
++			   "FT: Do not re-install same PTK to the driver");
++		return;
++	}
++
+ 	/* FIX: add STA entry to kernel/driver here? The set_key will fail
+ 	 * most likely without this.. At the moment, STA entry is added only
+ 	 * after association has been completed. This function will be called
+@@ -792,6 +800,7 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
+ 
+ 	/* FIX: MLME-SetProtection.Request(TA, Tx_Rx) */
+ 	sm->pairwise_set = TRUE;
++	sm->tk_already_set = TRUE;
+ }
+ 
+ 
+@@ -898,6 +907,7 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm,
+ 
+ 	sm->pairwise = pairwise;
+ 	sm->PTK_valid = TRUE;
++	sm->tk_already_set = FALSE;
+ 	wpa_ft_install_ptk(sm);
+ 
+ 	buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
+diff --git a/src/ap/wpa_auth_i.h b/src/ap/wpa_auth_i.h
+index 72b7eb3..7fd8f05 100644
+--- a/src/ap/wpa_auth_i.h
++++ b/src/ap/wpa_auth_i.h
+@@ -65,6 +65,7 @@ struct wpa_state_machine {
+ 	struct wpa_ptk PTK;
+ 	Boolean PTK_valid;
+ 	Boolean pairwise_set;
++	Boolean tk_already_set;
+ 	int keycount;
+ 	Boolean Pair;
+ 	struct wpa_key_replay_counter {
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch
new file mode 100644
index 0000000..4e57bca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch
@@ -0,0 +1,253 @@
+From c623cc973de525f7411dffe438e957ba86ef4733 Mon Sep 17 00:00:00 2001
+From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
+Date: Wed, 12 Jul 2017 16:03:24 +0200
+Subject: [PATCH 2/7] Prevent reinstallation of an already in-use group key
+
+Track the current GTK and IGTK that is in use and when receiving a
+(possibly retransmitted) Group Message 1 or WNM-Sleep Mode Response, do
+not install the given key if it is already in use. This prevents an
+attacker from trying to trick the client into resetting or lowering the
+sequence counter associated to the group key.
+
+Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
+
+Upstream-Status: Backport
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/common/wpa_common.h |  11 +++++
+ src/rsn_supp/wpa.c      | 116 ++++++++++++++++++++++++++++++------------------
+ src/rsn_supp/wpa_i.h    |   4 ++
+ 3 files changed, 87 insertions(+), 44 deletions(-)
+
+diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
+index af1d0f0..d200285 100644
+--- a/src/common/wpa_common.h
++++ b/src/common/wpa_common.h
+@@ -217,6 +217,17 @@ struct wpa_ptk {
+ 	size_t tk_len;
+ };
+ 
++struct wpa_gtk {
++	u8 gtk[WPA_GTK_MAX_LEN];
++	size_t gtk_len;
++};
++
++#ifdef CONFIG_IEEE80211W
++struct wpa_igtk {
++	u8 igtk[WPA_IGTK_MAX_LEN];
++	size_t igtk_len;
++};
++#endif /* CONFIG_IEEE80211W */
+ 
+ /* WPA IE version 1
+  * 00-50-f2:1 (OUI:OUI type)
+diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
+index 3c47879..95bd7be 100644
+--- a/src/rsn_supp/wpa.c
++++ b/src/rsn_supp/wpa.c
+@@ -714,6 +714,15 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
+ 	const u8 *_gtk = gd->gtk;
+ 	u8 gtk_buf[32];
+ 
++	/* Detect possible key reinstallation */
++	if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
++	    os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
++		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
++			"WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
++			gd->keyidx, gd->tx, gd->gtk_len);
++		return 0;
++	}
++
+ 	wpa_hexdump_key(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len);
+ 	wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
+ 		"WPA: Installing GTK to the driver (keyidx=%d tx=%d len=%d)",
+@@ -748,6 +757,9 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
+ 	}
+ 	os_memset(gtk_buf, 0, sizeof(gtk_buf));
+ 
++	sm->gtk.gtk_len = gd->gtk_len;
++	os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
++
+ 	return 0;
+ }
+ 
+@@ -854,6 +866,48 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
+ }
+ 
+ 
++#ifdef CONFIG_IEEE80211W
++static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
++				       const struct wpa_igtk_kde *igtk)
++{
++	size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
++	u16 keyidx = WPA_GET_LE16(igtk->keyid);
++
++	/* Detect possible key reinstallation */
++	if (sm->igtk.igtk_len == len &&
++	    os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
++		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
++			"WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
++			keyidx);
++		return  0;
++	}
++
++	wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
++		"WPA: IGTK keyid %d pn %02x%02x%02x%02x%02x%02x",
++		keyidx, MAC2STR(igtk->pn));
++	wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", igtk->igtk, len);
++	if (keyidx > 4095) {
++		wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
++			"WPA: Invalid IGTK KeyID %d", keyidx);
++		return -1;
++	}
++	if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
++			   broadcast_ether_addr,
++			   keyidx, 0, igtk->pn, sizeof(igtk->pn),
++			   igtk->igtk, len) < 0) {
++		wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
++			"WPA: Failed to configure IGTK to the driver");
++		return -1;
++	}
++
++	sm->igtk.igtk_len = len;
++	os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
++
++	return 0;
++}
++#endif /* CONFIG_IEEE80211W */
++
++
+ static int ieee80211w_set_keys(struct wpa_sm *sm,
+ 			       struct wpa_eapol_ie_parse *ie)
+ {
+@@ -864,30 +918,14 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
+ 	if (ie->igtk) {
+ 		size_t len;
+ 		const struct wpa_igtk_kde *igtk;
+-		u16 keyidx;
++
+ 		len = wpa_cipher_key_len(sm->mgmt_group_cipher);
+ 		if (ie->igtk_len != WPA_IGTK_KDE_PREFIX_LEN + len)
+ 			return -1;
++
+ 		igtk = (const struct wpa_igtk_kde *) ie->igtk;
+-		keyidx = WPA_GET_LE16(igtk->keyid);
+-		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: IGTK keyid %d "
+-			"pn %02x%02x%02x%02x%02x%02x",
+-			keyidx, MAC2STR(igtk->pn));
+-		wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK",
+-				igtk->igtk, len);
+-		if (keyidx > 4095) {
+-			wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+-				"WPA: Invalid IGTK KeyID %d", keyidx);
+-			return -1;
+-		}
+-		if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
+-				   broadcast_ether_addr,
+-				   keyidx, 0, igtk->pn, sizeof(igtk->pn),
+-				   igtk->igtk, len) < 0) {
+-			wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
+-				"WPA: Failed to configure IGTK to the driver");
++		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
+ 			return -1;
+-		}
+ 	}
+ 
+ 	return 0;
+@@ -2307,7 +2345,7 @@ void wpa_sm_deinit(struct wpa_sm *sm)
+  */
+ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
+ {
+-	int clear_ptk = 1;
++	int clear_keys = 1;
+ 
+ 	if (sm == NULL)
+ 		return;
+@@ -2333,11 +2371,11 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
+ 		/* Prepare for the next transition */
+ 		wpa_ft_prepare_auth_request(sm, NULL);
+ 
+-		clear_ptk = 0;
++		clear_keys = 0;
+ 	}
+ #endif /* CONFIG_IEEE80211R */
+ 
+-	if (clear_ptk) {
++	if (clear_keys) {
+ 		/*
+ 		 * IEEE 802.11, 8.4.10: Delete PTK SA on (re)association if
+ 		 * this is not part of a Fast BSS Transition.
+@@ -2347,6 +2385,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
+ 		os_memset(&sm->ptk, 0, sizeof(sm->ptk));
+ 		sm->tptk_set = 0;
+ 		os_memset(&sm->tptk, 0, sizeof(sm->tptk));
++		os_memset(&sm->gtk, 0, sizeof(sm->gtk));
++#ifdef CONFIG_IEEE80211W
++		os_memset(&sm->igtk, 0, sizeof(sm->igtk));
++#endif /* CONFIG_IEEE80211W */
+ 	}
+ 
+ #ifdef CONFIG_TDLS
+@@ -2877,6 +2919,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
+ 	os_memset(sm->pmk, 0, sizeof(sm->pmk));
+ 	os_memset(&sm->ptk, 0, sizeof(sm->ptk));
+ 	os_memset(&sm->tptk, 0, sizeof(sm->tptk));
++	os_memset(&sm->gtk, 0, sizeof(sm->gtk));
++#ifdef CONFIG_IEEE80211W
++	os_memset(&sm->igtk, 0, sizeof(sm->igtk));
++#endif /* CONFIG_IEEE80211W */
+ #ifdef CONFIG_IEEE80211R
+ 	os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
+ 	os_memset(sm->pmk_r0, 0, sizeof(sm->pmk_r0));
+@@ -2949,29 +2995,11 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
+ 		os_memset(&gd, 0, sizeof(gd));
+ #ifdef CONFIG_IEEE80211W
+ 	} else if (subelem_id == WNM_SLEEP_SUBELEM_IGTK) {
+-		struct wpa_igtk_kde igd;
+-		u16 keyidx;
+-
+-		os_memset(&igd, 0, sizeof(igd));
+-		keylen = wpa_cipher_key_len(sm->mgmt_group_cipher);
+-		os_memcpy(igd.keyid, buf + 2, 2);
+-		os_memcpy(igd.pn, buf + 4, 6);
+-
+-		keyidx = WPA_GET_LE16(igd.keyid);
+-		os_memcpy(igd.igtk, buf + 10, keylen);
+-
+-		wpa_hexdump_key(MSG_DEBUG, "Install IGTK (WNM SLEEP)",
+-				igd.igtk, keylen);
+-		if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
+-				   broadcast_ether_addr,
+-				   keyidx, 0, igd.pn, sizeof(igd.pn),
+-				   igd.igtk, keylen) < 0) {
+-			wpa_printf(MSG_DEBUG, "Failed to install the IGTK in "
+-				   "WNM mode");
+-			os_memset(&igd, 0, sizeof(igd));
++		const struct wpa_igtk_kde *igtk;
++
++		igtk = (const struct wpa_igtk_kde *) (buf + 2);
++		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
+ 			return -1;
+-		}
+-		os_memset(&igd, 0, sizeof(igd));
+ #endif /* CONFIG_IEEE80211W */
+ 	} else {
+ 		wpa_printf(MSG_DEBUG, "Unknown element id");
+diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
+index f653ba6..afc9e37 100644
+--- a/src/rsn_supp/wpa_i.h
++++ b/src/rsn_supp/wpa_i.h
+@@ -31,6 +31,10 @@ struct wpa_sm {
+ 	u8 rx_replay_counter[WPA_REPLAY_COUNTER_LEN];
+ 	int rx_replay_counter_set;
+ 	u8 request_counter[WPA_REPLAY_COUNTER_LEN];
++	struct wpa_gtk gtk;
++#ifdef CONFIG_IEEE80211W
++	struct wpa_igtk igtk;
++#endif /* CONFIG_IEEE80211W */
+ 
+ 	struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
+ 
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch
new file mode 100644
index 0000000..e39bbf6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch
@@ -0,0 +1,187 @@
+From a6caab8060ab60876e233306f5c586451169eba1 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sun, 1 Oct 2017 12:12:24 +0300
+Subject: [PATCH 3/7] Extend protection of GTK/IGTK reinstallation of WNM-Sleep
+ Mode cases
+
+This extends the protection to track last configured GTK/IGTK value
+separately from EAPOL-Key frames and WNM-Sleep Mode frames to cover a
+corner case where these two different mechanisms may get used when the
+GTK/IGTK has changed and tracking a single value is not sufficient to
+detect a possible key reconfiguration.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+
+Upstream-Status: Backport
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/rsn_supp/wpa.c   | 53 +++++++++++++++++++++++++++++++++++++---------------
+ src/rsn_supp/wpa_i.h |  2 ++
+ 2 files changed, 40 insertions(+), 15 deletions(-)
+
+diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
+index 95bd7be..7a2c68d 100644
+--- a/src/rsn_supp/wpa.c
++++ b/src/rsn_supp/wpa.c
+@@ -709,14 +709,17 @@ struct wpa_gtk_data {
+ 
+ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
+ 				      const struct wpa_gtk_data *gd,
+-				      const u8 *key_rsc)
++				      const u8 *key_rsc, int wnm_sleep)
+ {
+ 	const u8 *_gtk = gd->gtk;
+ 	u8 gtk_buf[32];
+ 
+ 	/* Detect possible key reinstallation */
+-	if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
+-	    os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
++	if ((sm->gtk.gtk_len == (size_t) gd->gtk_len &&
++	     os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) ||
++	    (sm->gtk_wnm_sleep.gtk_len == (size_t) gd->gtk_len &&
++	     os_memcmp(sm->gtk_wnm_sleep.gtk, gd->gtk,
++		       sm->gtk_wnm_sleep.gtk_len) == 0)) {
+ 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
+ 			"WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
+ 			gd->keyidx, gd->tx, gd->gtk_len);
+@@ -757,8 +760,14 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
+ 	}
+ 	os_memset(gtk_buf, 0, sizeof(gtk_buf));
+ 
+-	sm->gtk.gtk_len = gd->gtk_len;
+-	os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
++	if (wnm_sleep) {
++		sm->gtk_wnm_sleep.gtk_len = gd->gtk_len;
++		os_memcpy(sm->gtk_wnm_sleep.gtk, gd->gtk,
++			  sm->gtk_wnm_sleep.gtk_len);
++	} else {
++		sm->gtk.gtk_len = gd->gtk_len;
++		os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
++	}
+ 
+ 	return 0;
+ }
+@@ -852,7 +861,7 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
+ 	    (wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
+ 					       gtk_len, gtk_len,
+ 					       &gd.key_rsc_len, &gd.alg) ||
+-	     wpa_supplicant_install_gtk(sm, &gd, key_rsc))) {
++	     wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0))) {
+ 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
+ 			"RSN: Failed to install GTK");
+ 		os_memset(&gd, 0, sizeof(gd));
+@@ -868,14 +877,18 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
+ 
+ #ifdef CONFIG_IEEE80211W
+ static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
+-				       const struct wpa_igtk_kde *igtk)
++				       const struct wpa_igtk_kde *igtk,
++				       int wnm_sleep)
+ {
+ 	size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
+ 	u16 keyidx = WPA_GET_LE16(igtk->keyid);
+ 
+ 	/* Detect possible key reinstallation */
+-	if (sm->igtk.igtk_len == len &&
+-	    os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
++	if ((sm->igtk.igtk_len == len &&
++	     os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) ||
++	    (sm->igtk_wnm_sleep.igtk_len == len &&
++	     os_memcmp(sm->igtk_wnm_sleep.igtk, igtk->igtk,
++		       sm->igtk_wnm_sleep.igtk_len) == 0)) {
+ 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
+ 			"WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
+ 			keyidx);
+@@ -900,8 +913,14 @@ static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
+ 		return -1;
+ 	}
+ 
+-	sm->igtk.igtk_len = len;
+-	os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
++	if (wnm_sleep) {
++		sm->igtk_wnm_sleep.igtk_len = len;
++		os_memcpy(sm->igtk_wnm_sleep.igtk, igtk->igtk,
++			  sm->igtk_wnm_sleep.igtk_len);
++	} else {
++		sm->igtk.igtk_len = len;
++		os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
++	}
+ 
+ 	return 0;
+ }
+@@ -924,7 +943,7 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
+ 			return -1;
+ 
+ 		igtk = (const struct wpa_igtk_kde *) ie->igtk;
+-		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
++		if (wpa_supplicant_install_igtk(sm, igtk, 0) < 0)
+ 			return -1;
+ 	}
+ 
+@@ -1574,7 +1593,7 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
+ 	if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc))
+ 		key_rsc = null_rsc;
+ 
+-	if (wpa_supplicant_install_gtk(sm, &gd, key_rsc) ||
++	if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) ||
+ 	    wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0)
+ 		goto failed;
+ 	os_memset(&gd, 0, sizeof(gd));
+@@ -2386,8 +2405,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
+ 		sm->tptk_set = 0;
+ 		os_memset(&sm->tptk, 0, sizeof(sm->tptk));
+ 		os_memset(&sm->gtk, 0, sizeof(sm->gtk));
++		os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
+ #ifdef CONFIG_IEEE80211W
+ 		os_memset(&sm->igtk, 0, sizeof(sm->igtk));
++		os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
+ #endif /* CONFIG_IEEE80211W */
+ 	}
+ 
+@@ -2920,8 +2941,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
+ 	os_memset(&sm->ptk, 0, sizeof(sm->ptk));
+ 	os_memset(&sm->tptk, 0, sizeof(sm->tptk));
+ 	os_memset(&sm->gtk, 0, sizeof(sm->gtk));
++	os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
+ #ifdef CONFIG_IEEE80211W
+ 	os_memset(&sm->igtk, 0, sizeof(sm->igtk));
++	os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
+ #endif /* CONFIG_IEEE80211W */
+ #ifdef CONFIG_IEEE80211R
+ 	os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
+@@ -2986,7 +3009,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
+ 
+ 		wpa_hexdump_key(MSG_DEBUG, "Install GTK (WNM SLEEP)",
+ 				gd.gtk, gd.gtk_len);
+-		if (wpa_supplicant_install_gtk(sm, &gd, key_rsc)) {
++		if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 1)) {
+ 			os_memset(&gd, 0, sizeof(gd));
+ 			wpa_printf(MSG_DEBUG, "Failed to install the GTK in "
+ 				   "WNM mode");
+@@ -2998,7 +3021,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
+ 		const struct wpa_igtk_kde *igtk;
+ 
+ 		igtk = (const struct wpa_igtk_kde *) (buf + 2);
+-		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
++		if (wpa_supplicant_install_igtk(sm, igtk, 1) < 0)
+ 			return -1;
+ #endif /* CONFIG_IEEE80211W */
+ 	} else {
+diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
+index afc9e37..9a54631 100644
+--- a/src/rsn_supp/wpa_i.h
++++ b/src/rsn_supp/wpa_i.h
+@@ -32,8 +32,10 @@ struct wpa_sm {
+ 	int rx_replay_counter_set;
+ 	u8 request_counter[WPA_REPLAY_COUNTER_LEN];
+ 	struct wpa_gtk gtk;
++	struct wpa_gtk gtk_wnm_sleep;
+ #ifdef CONFIG_IEEE80211W
+ 	struct wpa_igtk igtk;
++	struct wpa_igtk igtk_wnm_sleep;
+ #endif /* CONFIG_IEEE80211W */
+ 
+ 	struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0004-Prevent-installation-of-an-all-zero-TK.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0004-Prevent-installation-of-an-all-zero-TK.patch
new file mode 100644
index 0000000..5103625
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0004-Prevent-installation-of-an-all-zero-TK.patch
@@ -0,0 +1,82 @@
+From abf941647f2dc33b0b59612f525e1b292331cc9f Mon Sep 17 00:00:00 2001
+From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
+Date: Fri, 29 Sep 2017 04:22:51 +0200
+Subject: [PATCH 4/7] Prevent installation of an all-zero TK
+
+Properly track whether a PTK has already been installed to the driver
+and the TK part cleared from memory. This prevents an attacker from
+trying to trick the client into installing an all-zero TK.
+
+This fixes the earlier fix in commit
+ad00d64e7d8827b3cebd665a0ceb08adabf15e1e ('Fix TK configuration to the
+driver in EAPOL-Key 3/4 retry case') which did not take into account
+possibility of an extra message 1/4 showing up between retries of
+message 3/4.
+
+Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
+
+Upstream-Status: Backport
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/common/wpa_common.h | 1 +
+ src/rsn_supp/wpa.c      | 5 ++---
+ src/rsn_supp/wpa_i.h    | 1 -
+ 3 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
+index d200285..1021ccb 100644
+--- a/src/common/wpa_common.h
++++ b/src/common/wpa_common.h
+@@ -215,6 +215,7 @@ struct wpa_ptk {
+ 	size_t kck_len;
+ 	size_t kek_len;
+ 	size_t tk_len;
++	int installed; /* 1 if key has already been installed to driver */
+ };
+ 
+ struct wpa_gtk {
+diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
+index 7a2c68d..0550a41 100644
+--- a/src/rsn_supp/wpa.c
++++ b/src/rsn_supp/wpa.c
+@@ -510,7 +510,6 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm,
+ 		os_memset(buf, 0, sizeof(buf));
+ 	}
+ 	sm->tptk_set = 1;
+-	sm->tk_to_set = 1;
+ 
+ 	kde = sm->assoc_wpa_ie;
+ 	kde_len = sm->assoc_wpa_ie_len;
+@@ -615,7 +614,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
+ 	enum wpa_alg alg;
+ 	const u8 *key_rsc;
+ 
+-	if (!sm->tk_to_set) {
++	if (sm->ptk.installed) {
+ 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
+ 			"WPA: Do not re-install same PTK to the driver");
+ 		return 0;
+@@ -659,7 +658,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
+ 
+ 	/* TK is not needed anymore in supplicant */
+ 	os_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN);
+-	sm->tk_to_set = 0;
++	sm->ptk.installed = 1;
+ 
+ 	if (sm->wpa_ptk_rekey) {
+ 		eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL);
+diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
+index 9a54631..41f371f 100644
+--- a/src/rsn_supp/wpa_i.h
++++ b/src/rsn_supp/wpa_i.h
+@@ -24,7 +24,6 @@ struct wpa_sm {
+ 	struct wpa_ptk ptk, tptk;
+ 	int ptk_set, tptk_set;
+ 	unsigned int msg_3_of_4_ok:1;
+-	unsigned int tk_to_set:1;
+ 	u8 snonce[WPA_NONCE_LEN];
+ 	u8 anonce[WPA_NONCE_LEN]; /* ANonce from the last 1/4 msg */
+ 	int renew_snonce;
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch
new file mode 100644
index 0000000..b0e1df3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch
@@ -0,0 +1,67 @@
+From 804b9d72808cddd822e7dcec4d60f40c1aceda82 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sun, 1 Oct 2017 12:32:57 +0300
+Subject: [PATCH 5/7] Fix PTK rekeying to generate a new ANonce
+
+The Authenticator state machine path for PTK rekeying ended up bypassing
+the AUTHENTICATION2 state where a new ANonce is generated when going
+directly to the PTKSTART state since there is no need to try to
+determine the PMK again in such a case. This is far from ideal since the
+new PTK would depend on a new nonce only from the supplicant.
+
+Fix this by generating a new ANonce when moving to the PTKSTART state
+for the purpose of starting new 4-way handshake to rekey PTK.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+
+Upstream-Status: Backport
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/ap/wpa_auth.c | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
+index 707971d..bf10cc1 100644
+--- a/src/ap/wpa_auth.c
++++ b/src/ap/wpa_auth.c
+@@ -1901,6 +1901,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2)
+ }
+ 
+ 
++static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm)
++{
++	if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) {
++		wpa_printf(MSG_ERROR,
++			   "WPA: Failed to get random data for ANonce");
++		sm->Disconnect = TRUE;
++		return -1;
++	}
++	wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce,
++		    WPA_NONCE_LEN);
++	sm->TimeoutCtr = 0;
++	return 0;
++}
++
++
+ SM_STATE(WPA_PTK, INITPMK)
+ {
+ 	u8 msk[2 * PMK_LEN];
+@@ -2458,9 +2473,12 @@ SM_STEP(WPA_PTK)
+ 		SM_ENTER(WPA_PTK, AUTHENTICATION);
+ 	else if (sm->ReAuthenticationRequest)
+ 		SM_ENTER(WPA_PTK, AUTHENTICATION2);
+-	else if (sm->PTKRequest)
+-		SM_ENTER(WPA_PTK, PTKSTART);
+-	else switch (sm->wpa_ptk_state) {
++	else if (sm->PTKRequest) {
++		if (wpa_auth_sm_ptk_update(sm) < 0)
++			SM_ENTER(WPA_PTK, DISCONNECTED);
++		else
++			SM_ENTER(WPA_PTK, PTKSTART);
++	} else switch (sm->wpa_ptk_state) {
+ 	case WPA_PTK_INITIALIZE:
+ 		break;
+ 	case WPA_PTK_DISCONNECT:
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0006-TDLS-Reject-TPK-TK-reconfiguration.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0006-TDLS-Reject-TPK-TK-reconfiguration.patch
new file mode 100644
index 0000000..72c7d51
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0006-TDLS-Reject-TPK-TK-reconfiguration.patch
@@ -0,0 +1,135 @@
+From 7fd26db2d8147ed662db192c41d7bc15752a601d Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Fri, 22 Sep 2017 11:03:15 +0300
+Subject: [PATCH 6/7] TDLS: Reject TPK-TK reconfiguration
+
+Do not try to reconfigure the same TPK-TK to the driver after it has
+been successfully configured. This is an explicit check to avoid issues
+related to resetting the TX/RX packet number. There was already a check
+for this for TPK M2 (retries of that message are ignored completely), so
+that behavior does not get modified.
+
+For TPK M3, the TPK-TK could have been reconfigured, but that was
+followed by immediate teardown of the link due to an issue in updating
+the STA entry. Furthermore, for TDLS with any real security (i.e.,
+ignoring open/WEP), the TPK message exchange is protected on the AP path
+and simple replay attacks are not feasible.
+
+As an additional corner case, make sure the local nonce gets updated if
+the peer uses a very unlikely "random nonce" of all zeros.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+
+Upstream-Status: Backport
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/rsn_supp/tdls.c | 38 ++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 36 insertions(+), 2 deletions(-)
+
+diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c
+index e424168..9eb9738 100644
+--- a/src/rsn_supp/tdls.c
++++ b/src/rsn_supp/tdls.c
+@@ -112,6 +112,7 @@ struct wpa_tdls_peer {
+ 		u8 tk[16]; /* TPK-TK; assuming only CCMP will be used */
+ 	} tpk;
+ 	int tpk_set;
++	int tk_set; /* TPK-TK configured to the driver */
+ 	int tpk_success;
+ 	int tpk_in_progress;
+ 
+@@ -192,6 +193,20 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
+ 	u8 rsc[6];
+ 	enum wpa_alg alg;
+ 
++	if (peer->tk_set) {
++		/*
++		 * This same TPK-TK has already been configured to the driver
++		 * and this new configuration attempt (likely due to an
++		 * unexpected retransmitted frame) would result in clearing
++		 * the TX/RX sequence number which can break security, so must
++		 * not allow that to happen.
++		 */
++		wpa_printf(MSG_INFO, "TDLS: TPK-TK for the peer " MACSTR
++			   " has already been configured to the driver - do not reconfigure",
++			   MAC2STR(peer->addr));
++		return -1;
++	}
++
+ 	os_memset(rsc, 0, 6);
+ 
+ 	switch (peer->cipher) {
+@@ -209,12 +224,15 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
+ 		return -1;
+ 	}
+ 
++	wpa_printf(MSG_DEBUG, "TDLS: Configure pairwise key for peer " MACSTR,
++		   MAC2STR(peer->addr));
+ 	if (wpa_sm_set_key(sm, alg, peer->addr, -1, 1,
+ 			   rsc, sizeof(rsc), peer->tpk.tk, key_len) < 0) {
+ 		wpa_printf(MSG_WARNING, "TDLS: Failed to set TPK to the "
+ 			   "driver");
+ 		return -1;
+ 	}
++	peer->tk_set = 1;
+ 	return 0;
+ }
+ 
+@@ -696,7 +714,7 @@ static void wpa_tdls_peer_clear(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
+ 	peer->cipher = 0;
+ 	peer->qos_info = 0;
+ 	peer->wmm_capable = 0;
+-	peer->tpk_set = peer->tpk_success = 0;
++	peer->tk_set = peer->tpk_set = peer->tpk_success = 0;
+ 	peer->chan_switch_enabled = 0;
+ 	os_memset(&peer->tpk, 0, sizeof(peer->tpk));
+ 	os_memset(peer->inonce, 0, WPA_NONCE_LEN);
+@@ -1159,6 +1177,7 @@ skip_rsnie:
+ 		wpa_tdls_peer_free(sm, peer);
+ 		return -1;
+ 	}
++	peer->tk_set = 0; /* A new nonce results in a new TK */
+ 	wpa_hexdump(MSG_DEBUG, "TDLS: Initiator Nonce for TPK handshake",
+ 		    peer->inonce, WPA_NONCE_LEN);
+ 	os_memcpy(ftie->Snonce, peer->inonce, WPA_NONCE_LEN);
+@@ -1751,6 +1770,19 @@ static int wpa_tdls_addset_peer(struct wpa_sm *sm, struct wpa_tdls_peer *peer,
+ }
+ 
+ 
++static int tdls_nonce_set(const u8 *nonce)
++{
++	int i;
++
++	for (i = 0; i < WPA_NONCE_LEN; i++) {
++		if (nonce[i])
++			return 1;
++	}
++
++	return 0;
++}
++
++
+ static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr,
+ 				   const u8 *buf, size_t len)
+ {
+@@ -2004,7 +2036,8 @@ skip_rsn:
+ 	peer->rsnie_i_len = kde.rsn_ie_len;
+ 	peer->cipher = cipher;
+ 
+-	if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0) {
++	if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0 ||
++	    !tdls_nonce_set(peer->inonce)) {
+ 		/*
+ 		 * There is no point in updating the RNonce for every obtained
+ 		 * TPK M1 frame (e.g., retransmission due to timeout) with the
+@@ -2020,6 +2053,7 @@ skip_rsn:
+ 				"TDLS: Failed to get random data for responder nonce");
+ 			goto error;
+ 		}
++		peer->tk_set = 0; /* A new nonce results in a new TK */
+ 	}
+ 
+ #if 0
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch
new file mode 100644
index 0000000..d0978c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch
@@ -0,0 +1,85 @@
+From a42eb67c42f845faf266b0633d52e17f2a82f511 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Fri, 22 Sep 2017 12:06:37 +0300
+Subject: [PATCH 7/7] FT: Do not allow multiple Reassociation Response frames
+
+The driver is expected to not report a second association event without
+the station having explicitly request a new association. As such, this
+case should not be reachable. However, since reconfiguring the same
+pairwise or group keys to the driver could result in nonce reuse issues,
+be extra careful here and do an additional state check to avoid this
+even if the local driver ends up somehow accepting an unexpected
+Reassociation Response frame.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+
+Upstream-Status: Backport
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/rsn_supp/wpa.c    | 3 +++
+ src/rsn_supp/wpa_ft.c | 8 ++++++++
+ src/rsn_supp/wpa_i.h  | 1 +
+ 3 files changed, 12 insertions(+)
+
+diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
+index 0550a41..2a53c6f 100644
+--- a/src/rsn_supp/wpa.c
++++ b/src/rsn_supp/wpa.c
+@@ -2440,6 +2440,9 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm)
+ #ifdef CONFIG_TDLS
+ 	wpa_tdls_disassoc(sm);
+ #endif /* CONFIG_TDLS */
++#ifdef CONFIG_IEEE80211R
++	sm->ft_reassoc_completed = 0;
++#endif /* CONFIG_IEEE80211R */
+ 
+ 	/* Keys are not needed in the WPA state machine anymore */
+ 	wpa_sm_drop_sa(sm);
+diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c
+index 205793e..d45bb45 100644
+--- a/src/rsn_supp/wpa_ft.c
++++ b/src/rsn_supp/wpa_ft.c
+@@ -153,6 +153,7 @@ static u8 * wpa_ft_gen_req_ies(struct wpa_sm *sm, size_t *len,
+ 	u16 capab;
+ 
+ 	sm->ft_completed = 0;
++	sm->ft_reassoc_completed = 0;
+ 
+ 	buf_len = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
+ 		2 + sm->r0kh_id_len + ric_ies_len + 100;
+@@ -681,6 +682,11 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
+ 		return -1;
+ 	}
+ 
++	if (sm->ft_reassoc_completed) {
++		wpa_printf(MSG_DEBUG, "FT: Reassociation has already been completed for this FT protocol instance - ignore unexpected retransmission");
++		return 0;
++	}
++
+ 	if (wpa_ft_parse_ies(ies, ies_len, &parse) < 0) {
+ 		wpa_printf(MSG_DEBUG, "FT: Failed to parse IEs");
+ 		return -1;
+@@ -781,6 +787,8 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
+ 		return -1;
+ 	}
+ 
++	sm->ft_reassoc_completed = 1;
++
+ 	if (wpa_ft_process_gtk_subelem(sm, parse.gtk, parse.gtk_len) < 0)
+ 		return -1;
+ 
+diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
+index 41f371f..56f88dc 100644
+--- a/src/rsn_supp/wpa_i.h
++++ b/src/rsn_supp/wpa_i.h
+@@ -128,6 +128,7 @@ struct wpa_sm {
+ 	size_t r0kh_id_len;
+ 	u8 r1kh_id[FT_R1KH_ID_LEN];
+ 	int ft_completed;
++	int ft_reassoc_completed;
+ 	int over_the_ds_in_progress;
+ 	u8 target_ap[ETH_ALEN]; /* over-the-DS target AP */
+ 	int set_ptk_after_assoc;
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch
deleted file mode 100644
index 694da8f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch
+++ /dev/null
@@ -1,984 +0,0 @@
-The WPA2 four-way handshake protocol is vulnerable to replay attacks which can
-result in unauthenticated clients gaining access to the network.
-
-Backport a number of patches from upstream to fix this.
-
-CVE: CVE-2017-13077
-CVE: CVE-2017-13078
-CVE: CVE-2017-13079
-CVE: CVE-2017-13080
-CVE: CVE-2017-13081
-CVE: CVE-2017-13082
-CVE: CVE-2017-13086
-CVE: CVE-2017-13087
-CVE: CVE-2017-13088
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From cf4cab804c7afd5c45505528a8d16e46163243a2 Mon Sep 17 00:00:00 2001
-From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-Date: Fri, 14 Jul 2017 15:15:35 +0200
-Subject: [PATCH 1/8] hostapd: Avoid key reinstallation in FT handshake
-
-Do not reinstall TK to the driver during Reassociation Response frame
-processing if the first attempt of setting the TK succeeded. This avoids
-issues related to clearing the TX/RX PN that could result in reusing
-same PN values for transmitted frames (e.g., due to CCM nonce reuse and
-also hitting replay protection on the receiver) and accepting replayed
-frames on RX side.
-
-This issue was introduced by the commit
-0e84c25434e6a1f283c7b4e62e483729085b78d2 ('FT: Fix PTK configuration in
-authenticator') which allowed wpa_ft_install_ptk() to be called multiple
-times with the same PTK. While the second configuration attempt is
-needed with some drivers, it must be done only if the first attempt
-failed.
-
-Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
----
- src/ap/ieee802_11.c  | 16 +++++++++++++---
- src/ap/wpa_auth.c    | 11 +++++++++++
- src/ap/wpa_auth.h    |  3 ++-
- src/ap/wpa_auth_ft.c | 10 ++++++++++
- src/ap/wpa_auth_i.h  |  1 +
- 5 files changed, 37 insertions(+), 4 deletions(-)
-
-diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
-index 4e04169..333035f 100644
---- a/src/ap/ieee802_11.c
-+++ b/src/ap/ieee802_11.c
-@@ -1841,6 +1841,7 @@ static int add_associated_sta(struct hostapd_data *hapd,
- {
- 	struct ieee80211_ht_capabilities ht_cap;
- 	struct ieee80211_vht_capabilities vht_cap;
-+	int set = 1;
- 
- 	/*
- 	 * Remove the STA entry to ensure the STA PS state gets cleared and
-@@ -1848,9 +1849,18 @@ static int add_associated_sta(struct hostapd_data *hapd,
- 	 * FT-over-the-DS, where a station re-associates back to the same AP but
- 	 * skips the authentication flow, or if working with a driver that
- 	 * does not support full AP client state.
-+	 *
-+	 * Skip this if the STA has already completed FT reassociation and the
-+	 * TK has been configured since the TX/RX PN must not be reset to 0 for
-+	 * the same key.
- 	 */
--	if (!sta->added_unassoc)
-+	if (!sta->added_unassoc &&
-+	    (!(sta->flags & WLAN_STA_AUTHORIZED) ||
-+	     !wpa_auth_sta_ft_tk_already_set(sta->wpa_sm))) {
- 		hostapd_drv_sta_remove(hapd, sta->addr);
-+		wpa_auth_sm_event(sta->wpa_sm, WPA_DRV_STA_REMOVED);
-+		set = 0;
-+	}
- 
- #ifdef CONFIG_IEEE80211N
- 	if (sta->flags & WLAN_STA_HT)
-@@ -1873,11 +1883,11 @@ static int add_associated_sta(struct hostapd_data *hapd,
- 			    sta->flags & WLAN_STA_VHT ? &vht_cap : NULL,
- 			    sta->flags | WLAN_STA_ASSOC, sta->qosinfo,
- 			    sta->vht_opmode, sta->p2p_ie ? 1 : 0,
--			    sta->added_unassoc)) {
-+			    set)) {
- 		hostapd_logger(hapd, sta->addr,
- 			       HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE,
- 			       "Could not %s STA to kernel driver",
--			       sta->added_unassoc ? "set" : "add");
-+			       set ? "set" : "add");
- 
- 		if (sta->added_unassoc) {
- 			hostapd_drv_sta_remove(hapd, sta->addr);
-diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
-index 3587086..707971d 100644
---- a/src/ap/wpa_auth.c
-+++ b/src/ap/wpa_auth.c
-@@ -1745,6 +1745,9 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event)
- #else /* CONFIG_IEEE80211R */
- 		break;
- #endif /* CONFIG_IEEE80211R */
-+	case WPA_DRV_STA_REMOVED:
-+		sm->tk_already_set = FALSE;
-+		return 0;
- 	}
- 
- #ifdef CONFIG_IEEE80211R
-@@ -3250,6 +3253,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm)
- }
- 
- 
-+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm)
-+{
-+	if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt))
-+		return 0;
-+	return sm->tk_already_set;
-+}
-+
-+
- int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
- 			     struct rsn_pmksa_cache_entry *entry)
- {
-diff --git a/src/ap/wpa_auth.h b/src/ap/wpa_auth.h
-index 0de8d97..97461b0 100644
---- a/src/ap/wpa_auth.h
-+++ b/src/ap/wpa_auth.h
-@@ -267,7 +267,7 @@ void wpa_receive(struct wpa_authenticator *wpa_auth,
- 		 u8 *data, size_t data_len);
- enum wpa_event {
- 	WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH,
--	WPA_REAUTH_EAPOL, WPA_ASSOC_FT
-+	WPA_REAUTH_EAPOL, WPA_ASSOC_FT, WPA_DRV_STA_REMOVED
- };
- void wpa_remove_ptk(struct wpa_state_machine *sm);
- int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event);
-@@ -280,6 +280,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm);
- int wpa_auth_get_pairwise(struct wpa_state_machine *sm);
- int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm);
- int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm);
-+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm);
- int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
- 			     struct rsn_pmksa_cache_entry *entry);
- struct rsn_pmksa_cache_entry *
-diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c
-index 42242a5..e63b99a 100644
---- a/src/ap/wpa_auth_ft.c
-+++ b/src/ap/wpa_auth_ft.c
-@@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
- 		return;
- 	}
- 
-+	if (sm->tk_already_set) {
-+		/* Must avoid TK reconfiguration to prevent clearing of TX/RX
-+		 * PN in the driver */
-+		wpa_printf(MSG_DEBUG,
-+			   "FT: Do not re-install same PTK to the driver");
-+		return;
-+	}
-+
- 	/* FIX: add STA entry to kernel/driver here? The set_key will fail
- 	 * most likely without this.. At the moment, STA entry is added only
- 	 * after association has been completed. This function will be called
-@@ -792,6 +800,7 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
- 
- 	/* FIX: MLME-SetProtection.Request(TA, Tx_Rx) */
- 	sm->pairwise_set = TRUE;
-+	sm->tk_already_set = TRUE;
- }
- 
- 
-@@ -898,6 +907,7 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm,
- 
- 	sm->pairwise = pairwise;
- 	sm->PTK_valid = TRUE;
-+	sm->tk_already_set = FALSE;
- 	wpa_ft_install_ptk(sm);
- 
- 	buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
-diff --git a/src/ap/wpa_auth_i.h b/src/ap/wpa_auth_i.h
-index 72b7eb3..7fd8f05 100644
---- a/src/ap/wpa_auth_i.h
-+++ b/src/ap/wpa_auth_i.h
-@@ -65,6 +65,7 @@ struct wpa_state_machine {
- 	struct wpa_ptk PTK;
- 	Boolean PTK_valid;
- 	Boolean pairwise_set;
-+	Boolean tk_already_set;
- 	int keycount;
- 	Boolean Pair;
- 	struct wpa_key_replay_counter {
--- 
-2.7.4
-
-From 927f891007c402fefd1ff384645b3f07597c3ede Mon Sep 17 00:00:00 2001
-From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-Date: Wed, 12 Jul 2017 16:03:24 +0200
-Subject: [PATCH 2/8] Prevent reinstallation of an already in-use group key
-
-Track the current GTK and IGTK that is in use and when receiving a
-(possibly retransmitted) Group Message 1 or WNM-Sleep Mode Response, do
-not install the given key if it is already in use. This prevents an
-attacker from trying to trick the client into resetting or lowering the
-sequence counter associated to the group key.
-
-Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
----
- src/common/wpa_common.h |  11 +++++
- src/rsn_supp/wpa.c      | 116 ++++++++++++++++++++++++++++++------------------
- src/rsn_supp/wpa_i.h    |   4 ++
- 3 files changed, 87 insertions(+), 44 deletions(-)
-
-diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
-index af1d0f0..d200285 100644
---- a/src/common/wpa_common.h
-+++ b/src/common/wpa_common.h
-@@ -217,6 +217,17 @@ struct wpa_ptk {
- 	size_t tk_len;
- };
- 
-+struct wpa_gtk {
-+	u8 gtk[WPA_GTK_MAX_LEN];
-+	size_t gtk_len;
-+};
-+
-+#ifdef CONFIG_IEEE80211W
-+struct wpa_igtk {
-+	u8 igtk[WPA_IGTK_MAX_LEN];
-+	size_t igtk_len;
-+};
-+#endif /* CONFIG_IEEE80211W */
- 
- /* WPA IE version 1
-  * 00-50-f2:1 (OUI:OUI type)
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 3c47879..95bd7be 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -714,6 +714,15 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- 	const u8 *_gtk = gd->gtk;
- 	u8 gtk_buf[32];
- 
-+	/* Detect possible key reinstallation */
-+	if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
-+	    os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
-+		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
-+			"WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
-+			gd->keyidx, gd->tx, gd->gtk_len);
-+		return 0;
-+	}
-+
- 	wpa_hexdump_key(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len);
- 	wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- 		"WPA: Installing GTK to the driver (keyidx=%d tx=%d len=%d)",
-@@ -748,6 +757,9 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- 	}
- 	os_memset(gtk_buf, 0, sizeof(gtk_buf));
- 
-+	sm->gtk.gtk_len = gd->gtk_len;
-+	os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
-+
- 	return 0;
- }
- 
-@@ -854,6 +866,48 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
- }
- 
- 
-+#ifdef CONFIG_IEEE80211W
-+static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
-+				       const struct wpa_igtk_kde *igtk)
-+{
-+	size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
-+	u16 keyidx = WPA_GET_LE16(igtk->keyid);
-+
-+	/* Detect possible key reinstallation */
-+	if (sm->igtk.igtk_len == len &&
-+	    os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
-+		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
-+			"WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
-+			keyidx);
-+		return  0;
-+	}
-+
-+	wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
-+		"WPA: IGTK keyid %d pn %02x%02x%02x%02x%02x%02x",
-+		keyidx, MAC2STR(igtk->pn));
-+	wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", igtk->igtk, len);
-+	if (keyidx > 4095) {
-+		wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-+			"WPA: Invalid IGTK KeyID %d", keyidx);
-+		return -1;
-+	}
-+	if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
-+			   broadcast_ether_addr,
-+			   keyidx, 0, igtk->pn, sizeof(igtk->pn),
-+			   igtk->igtk, len) < 0) {
-+		wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-+			"WPA: Failed to configure IGTK to the driver");
-+		return -1;
-+	}
-+
-+	sm->igtk.igtk_len = len;
-+	os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
-+
-+	return 0;
-+}
-+#endif /* CONFIG_IEEE80211W */
-+
-+
- static int ieee80211w_set_keys(struct wpa_sm *sm,
- 			       struct wpa_eapol_ie_parse *ie)
- {
-@@ -864,30 +918,14 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
- 	if (ie->igtk) {
- 		size_t len;
- 		const struct wpa_igtk_kde *igtk;
--		u16 keyidx;
-+
- 		len = wpa_cipher_key_len(sm->mgmt_group_cipher);
- 		if (ie->igtk_len != WPA_IGTK_KDE_PREFIX_LEN + len)
- 			return -1;
-+
- 		igtk = (const struct wpa_igtk_kde *) ie->igtk;
--		keyidx = WPA_GET_LE16(igtk->keyid);
--		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: IGTK keyid %d "
--			"pn %02x%02x%02x%02x%02x%02x",
--			keyidx, MAC2STR(igtk->pn));
--		wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK",
--				igtk->igtk, len);
--		if (keyidx > 4095) {
--			wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
--				"WPA: Invalid IGTK KeyID %d", keyidx);
--			return -1;
--		}
--		if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
--				   broadcast_ether_addr,
--				   keyidx, 0, igtk->pn, sizeof(igtk->pn),
--				   igtk->igtk, len) < 0) {
--			wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
--				"WPA: Failed to configure IGTK to the driver");
-+		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
- 			return -1;
--		}
- 	}
- 
- 	return 0;
-@@ -2307,7 +2345,7 @@ void wpa_sm_deinit(struct wpa_sm *sm)
-  */
- void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- {
--	int clear_ptk = 1;
-+	int clear_keys = 1;
- 
- 	if (sm == NULL)
- 		return;
-@@ -2333,11 +2371,11 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- 		/* Prepare for the next transition */
- 		wpa_ft_prepare_auth_request(sm, NULL);
- 
--		clear_ptk = 0;
-+		clear_keys = 0;
- 	}
- #endif /* CONFIG_IEEE80211R */
- 
--	if (clear_ptk) {
-+	if (clear_keys) {
- 		/*
- 		 * IEEE 802.11, 8.4.10: Delete PTK SA on (re)association if
- 		 * this is not part of a Fast BSS Transition.
-@@ -2347,6 +2385,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- 		os_memset(&sm->ptk, 0, sizeof(sm->ptk));
- 		sm->tptk_set = 0;
- 		os_memset(&sm->tptk, 0, sizeof(sm->tptk));
-+		os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+#ifdef CONFIG_IEEE80211W
-+		os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+#endif /* CONFIG_IEEE80211W */
- 	}
- 
- #ifdef CONFIG_TDLS
-@@ -2877,6 +2919,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
- 	os_memset(sm->pmk, 0, sizeof(sm->pmk));
- 	os_memset(&sm->ptk, 0, sizeof(sm->ptk));
- 	os_memset(&sm->tptk, 0, sizeof(sm->tptk));
-+	os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+#ifdef CONFIG_IEEE80211W
-+	os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+#endif /* CONFIG_IEEE80211W */
- #ifdef CONFIG_IEEE80211R
- 	os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
- 	os_memset(sm->pmk_r0, 0, sizeof(sm->pmk_r0));
-@@ -2949,29 +2995,11 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
- 		os_memset(&gd, 0, sizeof(gd));
- #ifdef CONFIG_IEEE80211W
- 	} else if (subelem_id == WNM_SLEEP_SUBELEM_IGTK) {
--		struct wpa_igtk_kde igd;
--		u16 keyidx;
--
--		os_memset(&igd, 0, sizeof(igd));
--		keylen = wpa_cipher_key_len(sm->mgmt_group_cipher);
--		os_memcpy(igd.keyid, buf + 2, 2);
--		os_memcpy(igd.pn, buf + 4, 6);
--
--		keyidx = WPA_GET_LE16(igd.keyid);
--		os_memcpy(igd.igtk, buf + 10, keylen);
--
--		wpa_hexdump_key(MSG_DEBUG, "Install IGTK (WNM SLEEP)",
--				igd.igtk, keylen);
--		if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
--				   broadcast_ether_addr,
--				   keyidx, 0, igd.pn, sizeof(igd.pn),
--				   igd.igtk, keylen) < 0) {
--			wpa_printf(MSG_DEBUG, "Failed to install the IGTK in "
--				   "WNM mode");
--			os_memset(&igd, 0, sizeof(igd));
-+		const struct wpa_igtk_kde *igtk;
-+
-+		igtk = (const struct wpa_igtk_kde *) (buf + 2);
-+		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
- 			return -1;
--		}
--		os_memset(&igd, 0, sizeof(igd));
- #endif /* CONFIG_IEEE80211W */
- 	} else {
- 		wpa_printf(MSG_DEBUG, "Unknown element id");
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index f653ba6..afc9e37 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -31,6 +31,10 @@ struct wpa_sm {
- 	u8 rx_replay_counter[WPA_REPLAY_COUNTER_LEN];
- 	int rx_replay_counter_set;
- 	u8 request_counter[WPA_REPLAY_COUNTER_LEN];
-+	struct wpa_gtk gtk;
-+#ifdef CONFIG_IEEE80211W
-+	struct wpa_igtk igtk;
-+#endif /* CONFIG_IEEE80211W */
- 
- 	struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
- 
--- 
-2.7.4
-
-From 8280294e74846ea342389a0cd17215050fa5afe8 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Sun, 1 Oct 2017 12:12:24 +0300
-Subject: [PATCH 3/8] Extend protection of GTK/IGTK reinstallation of WNM-Sleep
- Mode cases
-
-This extends the protection to track last configured GTK/IGTK value
-separately from EAPOL-Key frames and WNM-Sleep Mode frames to cover a
-corner case where these two different mechanisms may get used when the
-GTK/IGTK has changed and tracking a single value is not sufficient to
-detect a possible key reconfiguration.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
----
- src/rsn_supp/wpa.c   | 53 +++++++++++++++++++++++++++++++++++++---------------
- src/rsn_supp/wpa_i.h |  2 ++
- 2 files changed, 40 insertions(+), 15 deletions(-)
-
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 95bd7be..7a2c68d 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -709,14 +709,17 @@ struct wpa_gtk_data {
- 
- static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- 				      const struct wpa_gtk_data *gd,
--				      const u8 *key_rsc)
-+				      const u8 *key_rsc, int wnm_sleep)
- {
- 	const u8 *_gtk = gd->gtk;
- 	u8 gtk_buf[32];
- 
- 	/* Detect possible key reinstallation */
--	if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
--	    os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
-+	if ((sm->gtk.gtk_len == (size_t) gd->gtk_len &&
-+	     os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) ||
-+	    (sm->gtk_wnm_sleep.gtk_len == (size_t) gd->gtk_len &&
-+	     os_memcmp(sm->gtk_wnm_sleep.gtk, gd->gtk,
-+		       sm->gtk_wnm_sleep.gtk_len) == 0)) {
- 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- 			"WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
- 			gd->keyidx, gd->tx, gd->gtk_len);
-@@ -757,8 +760,14 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- 	}
- 	os_memset(gtk_buf, 0, sizeof(gtk_buf));
- 
--	sm->gtk.gtk_len = gd->gtk_len;
--	os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
-+	if (wnm_sleep) {
-+		sm->gtk_wnm_sleep.gtk_len = gd->gtk_len;
-+		os_memcpy(sm->gtk_wnm_sleep.gtk, gd->gtk,
-+			  sm->gtk_wnm_sleep.gtk_len);
-+	} else {
-+		sm->gtk.gtk_len = gd->gtk_len;
-+		os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
-+	}
- 
- 	return 0;
- }
-@@ -852,7 +861,7 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
- 	    (wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
- 					       gtk_len, gtk_len,
- 					       &gd.key_rsc_len, &gd.alg) ||
--	     wpa_supplicant_install_gtk(sm, &gd, key_rsc))) {
-+	     wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0))) {
- 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- 			"RSN: Failed to install GTK");
- 		os_memset(&gd, 0, sizeof(gd));
-@@ -868,14 +877,18 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
- 
- #ifdef CONFIG_IEEE80211W
- static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
--				       const struct wpa_igtk_kde *igtk)
-+				       const struct wpa_igtk_kde *igtk,
-+				       int wnm_sleep)
- {
- 	size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
- 	u16 keyidx = WPA_GET_LE16(igtk->keyid);
- 
- 	/* Detect possible key reinstallation */
--	if (sm->igtk.igtk_len == len &&
--	    os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
-+	if ((sm->igtk.igtk_len == len &&
-+	     os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) ||
-+	    (sm->igtk_wnm_sleep.igtk_len == len &&
-+	     os_memcmp(sm->igtk_wnm_sleep.igtk, igtk->igtk,
-+		       sm->igtk_wnm_sleep.igtk_len) == 0)) {
- 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- 			"WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
- 			keyidx);
-@@ -900,8 +913,14 @@ static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
- 		return -1;
- 	}
- 
--	sm->igtk.igtk_len = len;
--	os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
-+	if (wnm_sleep) {
-+		sm->igtk_wnm_sleep.igtk_len = len;
-+		os_memcpy(sm->igtk_wnm_sleep.igtk, igtk->igtk,
-+			  sm->igtk_wnm_sleep.igtk_len);
-+	} else {
-+		sm->igtk.igtk_len = len;
-+		os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
-+	}
- 
- 	return 0;
- }
-@@ -924,7 +943,7 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
- 			return -1;
- 
- 		igtk = (const struct wpa_igtk_kde *) ie->igtk;
--		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
-+		if (wpa_supplicant_install_igtk(sm, igtk, 0) < 0)
- 			return -1;
- 	}
- 
-@@ -1574,7 +1593,7 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
- 	if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc))
- 		key_rsc = null_rsc;
- 
--	if (wpa_supplicant_install_gtk(sm, &gd, key_rsc) ||
-+	if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) ||
- 	    wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0)
- 		goto failed;
- 	os_memset(&gd, 0, sizeof(gd));
-@@ -2386,8 +2405,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- 		sm->tptk_set = 0;
- 		os_memset(&sm->tptk, 0, sizeof(sm->tptk));
- 		os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+		os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
- #ifdef CONFIG_IEEE80211W
- 		os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+		os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
- #endif /* CONFIG_IEEE80211W */
- 	}
- 
-@@ -2920,8 +2941,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
- 	os_memset(&sm->ptk, 0, sizeof(sm->ptk));
- 	os_memset(&sm->tptk, 0, sizeof(sm->tptk));
- 	os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+	os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
- #ifdef CONFIG_IEEE80211W
- 	os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+	os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
- #endif /* CONFIG_IEEE80211W */
- #ifdef CONFIG_IEEE80211R
- 	os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
-@@ -2986,7 +3009,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
- 
- 		wpa_hexdump_key(MSG_DEBUG, "Install GTK (WNM SLEEP)",
- 				gd.gtk, gd.gtk_len);
--		if (wpa_supplicant_install_gtk(sm, &gd, key_rsc)) {
-+		if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 1)) {
- 			os_memset(&gd, 0, sizeof(gd));
- 			wpa_printf(MSG_DEBUG, "Failed to install the GTK in "
- 				   "WNM mode");
-@@ -2998,7 +3021,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
- 		const struct wpa_igtk_kde *igtk;
- 
- 		igtk = (const struct wpa_igtk_kde *) (buf + 2);
--		if (wpa_supplicant_install_igtk(sm, igtk) < 0)
-+		if (wpa_supplicant_install_igtk(sm, igtk, 1) < 0)
- 			return -1;
- #endif /* CONFIG_IEEE80211W */
- 	} else {
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index afc9e37..9a54631 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -32,8 +32,10 @@ struct wpa_sm {
- 	int rx_replay_counter_set;
- 	u8 request_counter[WPA_REPLAY_COUNTER_LEN];
- 	struct wpa_gtk gtk;
-+	struct wpa_gtk gtk_wnm_sleep;
- #ifdef CONFIG_IEEE80211W
- 	struct wpa_igtk igtk;
-+	struct wpa_igtk igtk_wnm_sleep;
- #endif /* CONFIG_IEEE80211W */
- 
- 	struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
--- 
-2.7.4
-
-From 8f82bc94e8697a9d47fa8774dfdaaede1084912c Mon Sep 17 00:00:00 2001
-From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-Date: Fri, 29 Sep 2017 04:22:51 +0200
-Subject: [PATCH 4/8] Prevent installation of an all-zero TK
-
-Properly track whether a PTK has already been installed to the driver
-and the TK part cleared from memory. This prevents an attacker from
-trying to trick the client into installing an all-zero TK.
-
-This fixes the earlier fix in commit
-ad00d64e7d8827b3cebd665a0ceb08adabf15e1e ('Fix TK configuration to the
-driver in EAPOL-Key 3/4 retry case') which did not take into account
-possibility of an extra message 1/4 showing up between retries of
-message 3/4.
-
-Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
----
- src/common/wpa_common.h | 1 +
- src/rsn_supp/wpa.c      | 5 ++---
- src/rsn_supp/wpa_i.h    | 1 -
- 3 files changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
-index d200285..1021ccb 100644
---- a/src/common/wpa_common.h
-+++ b/src/common/wpa_common.h
-@@ -215,6 +215,7 @@ struct wpa_ptk {
- 	size_t kck_len;
- 	size_t kek_len;
- 	size_t tk_len;
-+	int installed; /* 1 if key has already been installed to driver */
- };
- 
- struct wpa_gtk {
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 7a2c68d..0550a41 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -510,7 +510,6 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm,
- 		os_memset(buf, 0, sizeof(buf));
- 	}
- 	sm->tptk_set = 1;
--	sm->tk_to_set = 1;
- 
- 	kde = sm->assoc_wpa_ie;
- 	kde_len = sm->assoc_wpa_ie_len;
-@@ -615,7 +614,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
- 	enum wpa_alg alg;
- 	const u8 *key_rsc;
- 
--	if (!sm->tk_to_set) {
-+	if (sm->ptk.installed) {
- 		wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- 			"WPA: Do not re-install same PTK to the driver");
- 		return 0;
-@@ -659,7 +658,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
- 
- 	/* TK is not needed anymore in supplicant */
- 	os_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN);
--	sm->tk_to_set = 0;
-+	sm->ptk.installed = 1;
- 
- 	if (sm->wpa_ptk_rekey) {
- 		eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL);
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index 9a54631..41f371f 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -24,7 +24,6 @@ struct wpa_sm {
- 	struct wpa_ptk ptk, tptk;
- 	int ptk_set, tptk_set;
- 	unsigned int msg_3_of_4_ok:1;
--	unsigned int tk_to_set:1;
- 	u8 snonce[WPA_NONCE_LEN];
- 	u8 anonce[WPA_NONCE_LEN]; /* ANonce from the last 1/4 msg */
- 	int renew_snonce;
--- 
-2.7.4
-
-From 12fac09b437a1dc8a0f253e265934a8aaf4d2f8b Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Sun, 1 Oct 2017 12:32:57 +0300
-Subject: [PATCH 5/8] Fix PTK rekeying to generate a new ANonce
-
-The Authenticator state machine path for PTK rekeying ended up bypassing
-the AUTHENTICATION2 state where a new ANonce is generated when going
-directly to the PTKSTART state since there is no need to try to
-determine the PMK again in such a case. This is far from ideal since the
-new PTK would depend on a new nonce only from the supplicant.
-
-Fix this by generating a new ANonce when moving to the PTKSTART state
-for the purpose of starting new 4-way handshake to rekey PTK.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
----
- src/ap/wpa_auth.c | 24 +++++++++++++++++++++---
- 1 file changed, 21 insertions(+), 3 deletions(-)
-
-diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
-index 707971d..bf10cc1 100644
---- a/src/ap/wpa_auth.c
-+++ b/src/ap/wpa_auth.c
-@@ -1901,6 +1901,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2)
- }
- 
- 
-+static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm)
-+{
-+	if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) {
-+		wpa_printf(MSG_ERROR,
-+			   "WPA: Failed to get random data for ANonce");
-+		sm->Disconnect = TRUE;
-+		return -1;
-+	}
-+	wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce,
-+		    WPA_NONCE_LEN);
-+	sm->TimeoutCtr = 0;
-+	return 0;
-+}
-+
-+
- SM_STATE(WPA_PTK, INITPMK)
- {
- 	u8 msk[2 * PMK_LEN];
-@@ -2458,9 +2473,12 @@ SM_STEP(WPA_PTK)
- 		SM_ENTER(WPA_PTK, AUTHENTICATION);
- 	else if (sm->ReAuthenticationRequest)
- 		SM_ENTER(WPA_PTK, AUTHENTICATION2);
--	else if (sm->PTKRequest)
--		SM_ENTER(WPA_PTK, PTKSTART);
--	else switch (sm->wpa_ptk_state) {
-+	else if (sm->PTKRequest) {
-+		if (wpa_auth_sm_ptk_update(sm) < 0)
-+			SM_ENTER(WPA_PTK, DISCONNECTED);
-+		else
-+			SM_ENTER(WPA_PTK, PTKSTART);
-+	} else switch (sm->wpa_ptk_state) {
- 	case WPA_PTK_INITIALIZE:
- 		break;
- 	case WPA_PTK_DISCONNECT:
--- 
-2.7.4
-
-From 6c4bed4f47d1960ec04981a9d50e5076aea5223d Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Fri, 22 Sep 2017 11:03:15 +0300
-Subject: [PATCH 6/8] TDLS: Reject TPK-TK reconfiguration
-
-Do not try to reconfigure the same TPK-TK to the driver after it has
-been successfully configured. This is an explicit check to avoid issues
-related to resetting the TX/RX packet number. There was already a check
-for this for TPK M2 (retries of that message are ignored completely), so
-that behavior does not get modified.
-
-For TPK M3, the TPK-TK could have been reconfigured, but that was
-followed by immediate teardown of the link due to an issue in updating
-the STA entry. Furthermore, for TDLS with any real security (i.e.,
-ignoring open/WEP), the TPK message exchange is protected on the AP path
-and simple replay attacks are not feasible.
-
-As an additional corner case, make sure the local nonce gets updated if
-the peer uses a very unlikely "random nonce" of all zeros.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
----
- src/rsn_supp/tdls.c | 38 ++++++++++++++++++++++++++++++++++++--
- 1 file changed, 36 insertions(+), 2 deletions(-)
-
-diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c
-index e424168..9eb9738 100644
---- a/src/rsn_supp/tdls.c
-+++ b/src/rsn_supp/tdls.c
-@@ -112,6 +112,7 @@ struct wpa_tdls_peer {
- 		u8 tk[16]; /* TPK-TK; assuming only CCMP will be used */
- 	} tpk;
- 	int tpk_set;
-+	int tk_set; /* TPK-TK configured to the driver */
- 	int tpk_success;
- 	int tpk_in_progress;
- 
-@@ -192,6 +193,20 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
- 	u8 rsc[6];
- 	enum wpa_alg alg;
- 
-+	if (peer->tk_set) {
-+		/*
-+		 * This same TPK-TK has already been configured to the driver
-+		 * and this new configuration attempt (likely due to an
-+		 * unexpected retransmitted frame) would result in clearing
-+		 * the TX/RX sequence number which can break security, so must
-+		 * not allow that to happen.
-+		 */
-+		wpa_printf(MSG_INFO, "TDLS: TPK-TK for the peer " MACSTR
-+			   " has already been configured to the driver - do not reconfigure",
-+			   MAC2STR(peer->addr));
-+		return -1;
-+	}
-+
- 	os_memset(rsc, 0, 6);
- 
- 	switch (peer->cipher) {
-@@ -209,12 +224,15 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
- 		return -1;
- 	}
- 
-+	wpa_printf(MSG_DEBUG, "TDLS: Configure pairwise key for peer " MACSTR,
-+		   MAC2STR(peer->addr));
- 	if (wpa_sm_set_key(sm, alg, peer->addr, -1, 1,
- 			   rsc, sizeof(rsc), peer->tpk.tk, key_len) < 0) {
- 		wpa_printf(MSG_WARNING, "TDLS: Failed to set TPK to the "
- 			   "driver");
- 		return -1;
- 	}
-+	peer->tk_set = 1;
- 	return 0;
- }
- 
-@@ -696,7 +714,7 @@ static void wpa_tdls_peer_clear(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
- 	peer->cipher = 0;
- 	peer->qos_info = 0;
- 	peer->wmm_capable = 0;
--	peer->tpk_set = peer->tpk_success = 0;
-+	peer->tk_set = peer->tpk_set = peer->tpk_success = 0;
- 	peer->chan_switch_enabled = 0;
- 	os_memset(&peer->tpk, 0, sizeof(peer->tpk));
- 	os_memset(peer->inonce, 0, WPA_NONCE_LEN);
-@@ -1159,6 +1177,7 @@ skip_rsnie:
- 		wpa_tdls_peer_free(sm, peer);
- 		return -1;
- 	}
-+	peer->tk_set = 0; /* A new nonce results in a new TK */
- 	wpa_hexdump(MSG_DEBUG, "TDLS: Initiator Nonce for TPK handshake",
- 		    peer->inonce, WPA_NONCE_LEN);
- 	os_memcpy(ftie->Snonce, peer->inonce, WPA_NONCE_LEN);
-@@ -1751,6 +1770,19 @@ static int wpa_tdls_addset_peer(struct wpa_sm *sm, struct wpa_tdls_peer *peer,
- }
- 
- 
-+static int tdls_nonce_set(const u8 *nonce)
-+{
-+	int i;
-+
-+	for (i = 0; i < WPA_NONCE_LEN; i++) {
-+		if (nonce[i])
-+			return 1;
-+	}
-+
-+	return 0;
-+}
-+
-+
- static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr,
- 				   const u8 *buf, size_t len)
- {
-@@ -2004,7 +2036,8 @@ skip_rsn:
- 	peer->rsnie_i_len = kde.rsn_ie_len;
- 	peer->cipher = cipher;
- 
--	if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0) {
-+	if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0 ||
-+	    !tdls_nonce_set(peer->inonce)) {
- 		/*
- 		 * There is no point in updating the RNonce for every obtained
- 		 * TPK M1 frame (e.g., retransmission due to timeout) with the
-@@ -2020,6 +2053,7 @@ skip_rsn:
- 				"TDLS: Failed to get random data for responder nonce");
- 			goto error;
- 		}
-+		peer->tk_set = 0; /* A new nonce results in a new TK */
- 	}
- 
- #if 0
--- 
-2.7.4
-
-Note: [PATCH 7/8] only applies to wpa_supplicant
-
-From b372ab0b7daea719749194dc554b26e6367603f2 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Fri, 22 Sep 2017 12:06:37 +0300
-Subject: [PATCH 8/8] FT: Do not allow multiple Reassociation Response frames
-
-The driver is expected to not report a second association event without
-the station having explicitly request a new association. As such, this
-case should not be reachable. However, since reconfiguring the same
-pairwise or group keys to the driver could result in nonce reuse issues,
-be extra careful here and do an additional state check to avoid this
-even if the local driver ends up somehow accepting an unexpected
-Reassociation Response frame.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
----
- src/rsn_supp/wpa.c    | 3 +++
- src/rsn_supp/wpa_ft.c | 8 ++++++++
- src/rsn_supp/wpa_i.h  | 1 +
- 3 files changed, 12 insertions(+)
-
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 0550a41..2a53c6f 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -2440,6 +2440,9 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm)
- #ifdef CONFIG_TDLS
- 	wpa_tdls_disassoc(sm);
- #endif /* CONFIG_TDLS */
-+#ifdef CONFIG_IEEE80211R
-+	sm->ft_reassoc_completed = 0;
-+#endif /* CONFIG_IEEE80211R */
- 
- 	/* Keys are not needed in the WPA state machine anymore */
- 	wpa_sm_drop_sa(sm);
-diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c
-index 205793e..d45bb45 100644
---- a/src/rsn_supp/wpa_ft.c
-+++ b/src/rsn_supp/wpa_ft.c
-@@ -153,6 +153,7 @@ static u8 * wpa_ft_gen_req_ies(struct wpa_sm *sm, size_t *len,
- 	u16 capab;
- 
- 	sm->ft_completed = 0;
-+	sm->ft_reassoc_completed = 0;
- 
- 	buf_len = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
- 		2 + sm->r0kh_id_len + ric_ies_len + 100;
-@@ -681,6 +682,11 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
- 		return -1;
- 	}
- 
-+	if (sm->ft_reassoc_completed) {
-+		wpa_printf(MSG_DEBUG, "FT: Reassociation has already been completed for this FT protocol instance - ignore unexpected retransmission");
-+		return 0;
-+	}
-+
- 	if (wpa_ft_parse_ies(ies, ies_len, &parse) < 0) {
- 		wpa_printf(MSG_DEBUG, "FT: Failed to parse IEs");
- 		return -1;
-@@ -781,6 +787,8 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
- 		return -1;
- 	}
- 
-+	sm->ft_reassoc_completed = 1;
-+
- 	if (wpa_ft_process_gtk_subelem(sm, parse.gtk, parse.gtk_len) < 0)
- 		return -1;
- 
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index 41f371f..56f88dc 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -128,6 +128,7 @@ struct wpa_sm {
- 	size_t r0kh_id_len;
- 	u8 r1kh_id[FT_R1KH_ID_LEN];
- 	int ft_completed;
-+	int ft_reassoc_completed;
- 	int over_the_ds_in_progress;
- 	u8 target_ap[ETH_ALEN]; /* over-the-DS target AP */
- 	int set_ptk_after_assoc;
--- 
-2.7.4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
index c3a1ead..250add8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
@@ -1,34 +1,48 @@
+SUMMARY = "User space daemon for extended IEEE 802.11 management"
 HOMEPAGE = "http://w1.fi/hostapd/"
 SECTION = "kernel/userland"
-LICENSE = "GPLv2 | BSD"
-LIC_FILES_CHKSUM = "file://${B}/README;md5=8aa4e8c78b59b12016c4cb2d0a8db350"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://hostapd/README;md5=8aa4e8c78b59b12016c4cb2d0a8db350"
+
 DEPENDS = "libnl openssl"
-SUMMARY = "User space daemon for extended IEEE 802.11 management"
-
-inherit update-rc.d systemd
-INITSCRIPT_NAME = "hostapd"
-
-SYSTEMD_SERVICE_${PN} = "hostapd.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
 
 SRC_URI = " \
     http://w1.fi/releases/hostapd-${PV}.tar.gz \
     file://defconfig \
     file://init \
     file://hostapd.service \
-    file://key-replay-cve-multiple.patch \
+    file://0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch \
+    file://0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch \
+    file://0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch \
+    file://0004-Prevent-installation-of-an-all-zero-TK.patch \
+    file://0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch \
+    file://0006-TDLS-Reject-TPK-TK-reconfiguration.patch \
+    file://0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch \
 "
 
+SRC_URI[md5sum] = "eaa56dce9bd8f1d195eb62596eab34c7"
+SRC_URI[sha256sum] = "01526b90c1d23bec4b0f052039cc4456c2fd19347b4d830d1d58a0a6aea7117d"
+
 S = "${WORKDIR}/hostapd-${PV}"
 B = "${WORKDIR}/hostapd-${PV}/hostapd"
 
-do_configure() {
+inherit update-rc.d systemd pkgconfig distro_features_check
+
+CONFLICT_DISTRO_FEATURES = "openssl-no-weak-ciphers"
+
+INITSCRIPT_NAME = "hostapd"
+
+SYSTEMD_SERVICE_${PN} = "hostapd.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+do_configure_append() {
     install -m 0644 ${WORKDIR}/defconfig ${B}/.config
 }
 
 do_compile() {
-    export CFLAGS="-MMD -O2 -Wall -g -I${STAGING_INCDIR}/libnl3"
-    make
+    export CFLAGS="-MMD -O2 -Wall -g"
+    export EXTRA_CFLAGS="${CFLAGS}"
+    make V=1
 }
 
 do_install() {
@@ -42,7 +56,3 @@
 }
 
 CONFFILES_${PN} += "${sysconfdir}/hostapd.conf"
-
-SRC_URI[md5sum] = "eaa56dce9bd8f1d195eb62596eab34c7"
-SRC_URI[sha256sum] = "01526b90c1d23bec4b0f052039cc4456c2fd19347b4d830d1d58a0a6aea7117d"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
index f0c310c..cbd5d71 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
@@ -1,18 +1,19 @@
-From ecb62f3467f493cc0d679323f05367eebbf0fb67 Mon Sep 17 00:00:00 2001
+From a9e4057bfda190ad365b503af058b460ab8c7616 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Tue, 1 Oct 2013 22:22:57 +0200
 Subject: [PATCH] aclocal: Add parameter to disable keyutils detection
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
  aclocal.m4 | 4 ++++
  1 file changed, 4 insertions(+)
 
 diff --git a/aclocal.m4 b/aclocal.m4
-index 210c473..83b1f02 100644
+index d6d1279..80ce604 100644
 --- a/aclocal.m4
 +++ b/aclocal.m4
-@@ -1650,11 +1650,15 @@ fi
+@@ -1679,12 +1679,16 @@ fi
  dnl
  dnl If libkeyutils exists (on Linux) include it and use keyring ccache
  AC_DEFUN(KRB5_AC_KEYRING_CCACHE,[
@@ -28,6 +29,4 @@
 +fi
  ])dnl
  dnl
--- 
-1.8.3.2
-
+ dnl If libkeyutils supports persistent keyrings, use them
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/CVE-2017-11462.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/CVE-2017-11462.patch
deleted file mode 100644
index 4b82f02..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/CVE-2017-11462.patch
+++ /dev/null
@@ -1,419 +0,0 @@
-From 56f7b1bc95a2a3eeb420e069e7655fb181ade5cf Mon Sep 17 00:00:00 2001
-From: Greg Hudson <ghudson@mit.edu>
-Date: Fri, 14 Jul 2017 13:02:46 -0400
-Subject: [PATCH] Preserve GSS context on init/accept failure
-
-After gss_init_sec_context() or gss_accept_sec_context() has created a
-context, don't delete the mechglue context on failures from subsequent
-calls, even if the mechanism deletes the mech-specific context (which
-is allowed by RFC 2744 but not preferred).  Check for union contexts
-with no mechanism context in each GSS function which accepts a
-gss_ctx_id_t.
-
-CVE-2017-11462:
-
-RFC 2744 permits a GSS-API implementation to delete an existing
-security context on a second or subsequent call to
-gss_init_sec_context() or gss_accept_sec_context() if the call results
-in an error.  This API behavior has been found to be dangerous,
-leading to the possibility of memory errors in some callers.  For
-safety, GSS-API implementations should instead preserve existing
-security contexts on error until the caller deletes them.
-
-All versions of MIT krb5 prior to this change may delete acceptor
-contexts on error.  Versions 1.13.4 through 1.13.7, 1.14.1 through
-1.14.5, and 1.15 through 1.15.1 may also delete initiator contexts on
-error.
-
-ticket: 8598 (new)
-target_version: 1.15-next
-target_version: 1.14-next
-tags: pullup
-
-Upstream-Status: Backport
-CVE: CVE-2017-11462
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/lib/gssapi/mechglue/g_accept_sec_context.c  | 22 +++++++++++++++-------
- src/lib/gssapi/mechglue/g_complete_auth_token.c |  2 ++
- src/lib/gssapi/mechglue/g_context_time.c        |  2 ++
- src/lib/gssapi/mechglue/g_delete_sec_context.c  | 14 ++++++++------
- src/lib/gssapi/mechglue/g_exp_sec_context.c     |  2 ++
- src/lib/gssapi/mechglue/g_init_sec_context.c    | 19 +++++++++++--------
- src/lib/gssapi/mechglue/g_inq_context.c         |  2 ++
- src/lib/gssapi/mechglue/g_prf.c                 |  2 ++
- src/lib/gssapi/mechglue/g_process_context.c     |  2 ++
- src/lib/gssapi/mechglue/g_seal.c                |  4 ++++
- src/lib/gssapi/mechglue/g_sign.c                |  2 ++
- src/lib/gssapi/mechglue/g_unseal.c              |  2 ++
- src/lib/gssapi/mechglue/g_unwrap_aead.c         |  2 ++
- src/lib/gssapi/mechglue/g_unwrap_iov.c          |  4 ++++
- src/lib/gssapi/mechglue/g_verify.c              |  2 ++
- src/lib/gssapi/mechglue/g_wrap_aead.c           |  2 ++
- src/lib/gssapi/mechglue/g_wrap_iov.c            |  8 ++++++++
- 17 files changed, 72 insertions(+), 21 deletions(-)
-
-diff --git a/src/lib/gssapi/mechglue/g_accept_sec_context.c b/src/lib/gssapi/mechglue/g_accept_sec_context.c
-index ddaf874..f28e2b1 100644
---- a/src/lib/gssapi/mechglue/g_accept_sec_context.c
-+++ b/src/lib/gssapi/mechglue/g_accept_sec_context.c
-@@ -216,6 +216,8 @@ gss_cred_id_t *		d_cred;
-     } else {
- 	union_ctx_id = (gss_union_ctx_id_t)*context_handle;
- 	selected_mech = union_ctx_id->mech_type;
-+	if (union_ctx_id->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	    return (GSS_S_NO_CONTEXT);
-     }
- 
-     /* Now create a new context if we didn't get one. */
-@@ -234,9 +236,6 @@ gss_cred_id_t *		d_cred;
- 	    free(union_ctx_id);
- 	    return (status);
- 	}
--
--	/* set the new context handle to caller's data */
--	*context_handle = (gss_ctx_id_t)union_ctx_id;
-     }
- 
-     /*
-@@ -277,8 +276,10 @@ gss_cred_id_t *		d_cred;
- 					d_cred ? &tmp_d_cred : NULL);
- 
- 	    /* If there's more work to do, keep going... */
--	    if (status == GSS_S_CONTINUE_NEEDED)
-+	    if (status == GSS_S_CONTINUE_NEEDED) {
-+		*context_handle = (gss_ctx_id_t)union_ctx_id;
- 		return GSS_S_CONTINUE_NEEDED;
-+	    }
- 
- 	    /* if the call failed, return with failure */
- 	    if (status != GSS_S_COMPLETE) {
-@@ -364,14 +365,22 @@ gss_cred_id_t *		d_cred;
- 		*mech_type = gssint_get_public_oid(actual_mech);
- 	    if (ret_flags != NULL)
- 		*ret_flags = temp_ret_flags;
--	    return	(status);
-+	    *context_handle = (gss_ctx_id_t)union_ctx_id;
-+	    return GSS_S_COMPLETE;
-     } else {
- 
- 	status = GSS_S_BAD_MECH;
-     }
- 
- error_out:
--    if (union_ctx_id) {
-+	/*
-+	 * RFC 2744 5.1 requires that we not create a context on a failed first
-+	 * call to accept, and recommends that on a failed subsequent call we
-+	 * make the caller responsible for calling gss_delete_sec_context.
-+	 * Even if the mech deleted its context, keep the union context around
-+	 * for the caller to delete.
-+	 */
-+    if (union_ctx_id && *context_handle == GSS_C_NO_CONTEXT) {
- 	if (union_ctx_id->mech_type) {
- 	    if (union_ctx_id->mech_type->elements)
- 		free(union_ctx_id->mech_type->elements);
-@@ -384,7 +393,6 @@ error_out:
- 					 GSS_C_NO_BUFFER);
- 	}
- 	free(union_ctx_id);
--	*context_handle = GSS_C_NO_CONTEXT;
-     }
- 
-     if (src_name)
-diff --git a/src/lib/gssapi/mechglue/g_complete_auth_token.c b/src/lib/gssapi/mechglue/g_complete_auth_token.c
-index 9181551..4bcb47e 100644
---- a/src/lib/gssapi/mechglue/g_complete_auth_token.c
-+++ b/src/lib/gssapi/mechglue/g_complete_auth_token.c
-@@ -52,6 +52,8 @@ gss_complete_auth_token (OM_uint32 *minor_status,
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return GSS_S_NO_CONTEXT;
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech != NULL) {
-diff --git a/src/lib/gssapi/mechglue/g_context_time.c b/src/lib/gssapi/mechglue/g_context_time.c
-index 2ff8d09..c947e76 100644
---- a/src/lib/gssapi/mechglue/g_context_time.c
-+++ b/src/lib/gssapi/mechglue/g_context_time.c
-@@ -58,6 +58,8 @@ OM_uint32 *		time_rec;
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-diff --git a/src/lib/gssapi/mechglue/g_delete_sec_context.c b/src/lib/gssapi/mechglue/g_delete_sec_context.c
-index 4bf0dec..574ff02 100644
---- a/src/lib/gssapi/mechglue/g_delete_sec_context.c
-+++ b/src/lib/gssapi/mechglue/g_delete_sec_context.c
-@@ -87,12 +87,14 @@ gss_buffer_t		output_token;
-     if (GSSINT_CHK_LOOP(ctx))
- 	return (GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CONTEXT);
- 
--    status = gssint_delete_internal_sec_context(minor_status,
--						ctx->mech_type,
--						&ctx->internal_ctx_id,
--						output_token);
--    if (status)
--	return status;
-+    if (ctx->internal_ctx_id != GSS_C_NO_CONTEXT) {
-+	status = gssint_delete_internal_sec_context(minor_status,
-+						    ctx->mech_type,
-+						    &ctx->internal_ctx_id,
-+						    output_token);
-+	if (status)
-+	    return status;
-+    }
- 
-     /* now free up the space for the union context structure */
-     free(ctx->mech_type->elements);
-diff --git a/src/lib/gssapi/mechglue/g_exp_sec_context.c b/src/lib/gssapi/mechglue/g_exp_sec_context.c
-index b637452..1d7990b 100644
---- a/src/lib/gssapi/mechglue/g_exp_sec_context.c
-+++ b/src/lib/gssapi/mechglue/g_exp_sec_context.c
-@@ -95,6 +95,8 @@ gss_buffer_t		interprocess_token;
-      */
- 
-     ctx = (gss_union_ctx_id_t) *context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
-     if (!mech)
- 	return GSS_S_BAD_MECH;
-diff --git a/src/lib/gssapi/mechglue/g_init_sec_context.c b/src/lib/gssapi/mechglue/g_init_sec_context.c
-index 9f154b8..e2df1ce 100644
---- a/src/lib/gssapi/mechglue/g_init_sec_context.c
-+++ b/src/lib/gssapi/mechglue/g_init_sec_context.c
-@@ -192,8 +192,13 @@ OM_uint32 *		time_rec;
- 
- 	/* copy the supplied context handle */
- 	union_ctx_id->internal_ctx_id = GSS_C_NO_CONTEXT;
--    } else
-+    } else {
- 	union_ctx_id = (gss_union_ctx_id_t)*context_handle;
-+	if (union_ctx_id->internal_ctx_id == GSS_C_NO_CONTEXT) {
-+	    status = GSS_S_NO_CONTEXT;
-+	    goto end;
-+	}
-+    }
- 
-     /*
-      * get the appropriate cred handle from the union cred struct.
-@@ -224,15 +229,13 @@ OM_uint32 *		time_rec;
- 
-     if (status != GSS_S_COMPLETE && status != GSS_S_CONTINUE_NEEDED) {
- 	/*
--	 * The spec says the preferred method is to delete all context info on
--	 * the first call to init, and on all subsequent calls make the caller
--	 * responsible for calling gss_delete_sec_context.  However, if the
--	 * mechanism decided to delete the internal context, we should also
--	 * delete the union context.
-+	 * RFC 2744 5.19 requires that we not create a context on a failed
-+	 * first call to init, and recommends that on a failed subsequent call
-+	 * we make the caller responsible for calling gss_delete_sec_context.
-+	 * Even if the mech deleted its context, keep the union context around
-+	 * for the caller to delete.
- 	 */
- 	map_error(minor_status, mech);
--	if (union_ctx_id->internal_ctx_id == GSS_C_NO_CONTEXT)
--	    *context_handle = GSS_C_NO_CONTEXT;
- 	if (*context_handle == GSS_C_NO_CONTEXT) {
- 	    free(union_ctx_id->mech_type->elements);
- 	    free(union_ctx_id->mech_type);
-diff --git a/src/lib/gssapi/mechglue/g_inq_context.c b/src/lib/gssapi/mechglue/g_inq_context.c
-index 6f1c71e..6c0d98d 100644
---- a/src/lib/gssapi/mechglue/g_inq_context.c
-+++ b/src/lib/gssapi/mechglue/g_inq_context.c
-@@ -104,6 +104,8 @@ gss_inquire_context(
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (!mech || !mech->gss_inquire_context || !mech->gss_display_name ||
-diff --git a/src/lib/gssapi/mechglue/g_prf.c b/src/lib/gssapi/mechglue/g_prf.c
-index fcca3e4..9e168ad 100644
---- a/src/lib/gssapi/mechglue/g_prf.c
-+++ b/src/lib/gssapi/mechglue/g_prf.c
-@@ -59,6 +59,8 @@ gss_pseudo_random (OM_uint32 *minor_status,
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return GSS_S_NO_CONTEXT;
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech != NULL) {
-diff --git a/src/lib/gssapi/mechglue/g_process_context.c b/src/lib/gssapi/mechglue/g_process_context.c
-index bc260ae..3968b5d 100644
---- a/src/lib/gssapi/mechglue/g_process_context.c
-+++ b/src/lib/gssapi/mechglue/g_process_context.c
-@@ -61,6 +61,8 @@ gss_buffer_t		token_buffer;
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-diff --git a/src/lib/gssapi/mechglue/g_seal.c b/src/lib/gssapi/mechglue/g_seal.c
-index f17241c..3db1ee0 100644
---- a/src/lib/gssapi/mechglue/g_seal.c
-+++ b/src/lib/gssapi/mechglue/g_seal.c
-@@ -92,6 +92,8 @@ gss_wrap( OM_uint32 *minor_status,
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+        return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-@@ -226,6 +228,8 @@ gss_wrap_size_limit(OM_uint32  *minor_status,
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+        return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (!mech)
-diff --git a/src/lib/gssapi/mechglue/g_sign.c b/src/lib/gssapi/mechglue/g_sign.c
-index 86d641a..03fbd8c 100644
---- a/src/lib/gssapi/mechglue/g_sign.c
-+++ b/src/lib/gssapi/mechglue/g_sign.c
-@@ -94,6 +94,8 @@ gss_buffer_t		msg_token;
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-diff --git a/src/lib/gssapi/mechglue/g_unseal.c b/src/lib/gssapi/mechglue/g_unseal.c
-index 3e8053c..c208635 100644
---- a/src/lib/gssapi/mechglue/g_unseal.c
-+++ b/src/lib/gssapi/mechglue/g_unseal.c
-@@ -76,6 +76,8 @@ gss_qop_t *		qop_state;
-      * call it.
-      */
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-diff --git a/src/lib/gssapi/mechglue/g_unwrap_aead.c b/src/lib/gssapi/mechglue/g_unwrap_aead.c
-index e78bff2..0682bd8 100644
---- a/src/lib/gssapi/mechglue/g_unwrap_aead.c
-+++ b/src/lib/gssapi/mechglue/g_unwrap_aead.c
-@@ -186,6 +186,8 @@ gss_qop_t		*qop_state;
-      * call it.
-      */
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (!mech)
-diff --git a/src/lib/gssapi/mechglue/g_unwrap_iov.c b/src/lib/gssapi/mechglue/g_unwrap_iov.c
-index c0dd314..599be2c 100644
---- a/src/lib/gssapi/mechglue/g_unwrap_iov.c
-+++ b/src/lib/gssapi/mechglue/g_unwrap_iov.c
-@@ -89,6 +89,8 @@ int			iov_count;
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-@@ -128,6 +130,8 @@ gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
- 
-     /* Select the approprate underlying mechanism routine and call it. */
-     ctx = (gss_union_ctx_id_t)context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return GSS_S_NO_CONTEXT;
-     mech = gssint_get_mechanism(ctx->mech_type);
-     if (mech == NULL)
- 	return GSS_S_BAD_MECH;
-diff --git a/src/lib/gssapi/mechglue/g_verify.c b/src/lib/gssapi/mechglue/g_verify.c
-index 1578ae1..8996fce 100644
---- a/src/lib/gssapi/mechglue/g_verify.c
-+++ b/src/lib/gssapi/mechglue/g_verify.c
-@@ -65,6 +65,8 @@ gss_qop_t *		qop_state;
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-diff --git a/src/lib/gssapi/mechglue/g_wrap_aead.c b/src/lib/gssapi/mechglue/g_wrap_aead.c
-index 96cdf3c..7fe3b7b 100644
---- a/src/lib/gssapi/mechglue/g_wrap_aead.c
-+++ b/src/lib/gssapi/mechglue/g_wrap_aead.c
-@@ -256,6 +256,8 @@ gss_buffer_t		output_message_buffer;
-      * call it.
-      */
-     ctx = (gss_union_ctx_id_t)context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
-     if (!mech)
- 	return (GSS_S_BAD_MECH);
-diff --git a/src/lib/gssapi/mechglue/g_wrap_iov.c b/src/lib/gssapi/mechglue/g_wrap_iov.c
-index 40cd98f..14447c4 100644
---- a/src/lib/gssapi/mechglue/g_wrap_iov.c
-+++ b/src/lib/gssapi/mechglue/g_wrap_iov.c
-@@ -93,6 +93,8 @@ int			iov_count;
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-@@ -151,6 +153,8 @@ int			iov_count;
-      */
- 
-     ctx = (gss_union_ctx_id_t) context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return (GSS_S_NO_CONTEXT);
-     mech = gssint_get_mechanism (ctx->mech_type);
- 
-     if (mech) {
-@@ -190,6 +194,8 @@ gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
- 
-     /* Select the approprate underlying mechanism routine and call it. */
-     ctx = (gss_union_ctx_id_t)context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return GSS_S_NO_CONTEXT;
-     mech = gssint_get_mechanism(ctx->mech_type);
-     if (mech == NULL)
- 	return GSS_S_BAD_MECH;
-@@ -218,6 +224,8 @@ gss_get_mic_iov_length(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
- 
-     /* Select the approprate underlying mechanism routine and call it. */
-     ctx = (gss_union_ctx_id_t)context_handle;
-+    if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT)
-+	return GSS_S_NO_CONTEXT;
-     mech = gssint_get_mechanism(ctx->mech_type);
-     if (mech == NULL)
- 	return GSS_S_BAD_MECH;
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server
index 2835929..e097353 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server
@@ -1,6 +1,4 @@
 # Automatically generated.  If you change anything in this file other than the
-# values of RUN_KADMIND or DAEMON_ARGS, first run dpkg-reconfigure
+# values of DAEMON_ARGS, first run dpkg-reconfigure
 # krb5-admin-server and disable managing the kadmin configuration with
 # debconf.  Otherwise, changes will be overwritten.
-
-RUN_KADMIND=true
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/fix-CVE-2017-11368.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/fix-CVE-2017-11368.patch
deleted file mode 100644
index a2eb7bc..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/fix-CVE-2017-11368.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-Upstream-Status: Backport [https://github.com/krb5/krb5/commit/ffb35baac6981f9e8914f8f3bffd37f284b85970]
-
-Backport patch to fix CVE-2017-11368.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From ffb35baac6981f9e8914f8f3bffd37f284b85970 Mon Sep 17 00:00:00 2001
-From: Greg Hudson <ghudson@mit.edu>
-Date: Thu, 13 Jul 2017 12:14:20 -0400
-Subject: [PATCH] Prevent KDC unset status assertion failures
-
-Assign status values if S4U2Self padata fails to decode, if an
-S4U2Proxy request uses invalid KDC options, or if an S4U2Proxy request
-uses an evidence ticket which does not match the canonicalized request
-server principal name.  Reported by Samuel Cabrero.
-
-If a status value is not assigned during KDC processing, default to
-"UNKNOWN_REASON" rather than failing an assertion.  This change will
-prevent future denial of service bugs due to similar mistakes, and
-will allow us to omit assigning status values for unlikely errors such
-as small memory allocation failures.
-
-CVE-2017-11368:
-
-In MIT krb5 1.7 and later, an authenticated attacker can cause an
-assertion failure in krb5kdc by sending an invalid S4U2Self or
-S4U2Proxy request.
-
-  CVSSv3 Vector: AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H/E:H/RL:O/RC:C
-
-ticket: 8599 (new)
-target_version: 1.15-next
-target_version: 1.14-next
-tags: pullup
----
- src/kdc/do_as_req.c  |  4 ++--
- src/kdc/do_tgs_req.c |  3 ++-
- src/kdc/kdc_util.c   | 10 ++++++++--
- 3 files changed, 12 insertions(+), 5 deletions(-)
-
-diff --git a/src/kdc/do_as_req.c b/src/kdc/do_as_req.c
-index 2d3ad13..9b256c8 100644
---- a/src/kdc/do_as_req.c
-+++ b/src/kdc/do_as_req.c
-@@ -366,8 +366,8 @@ finish_process_as_req(struct as_req_state *state, krb5_error_code errcode)
-     did_log = 1;
- 
- egress:
--    if (errcode != 0)
--        assert (state->status != 0);
-+    if (errcode != 0 && state->status == NULL)
-+        state->status = "UNKNOWN_REASON";
- 
-     au_state->status = state->status;
-     au_state->reply = &state->reply;
-diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
-index cdc79ad..d8d6719 100644
---- a/src/kdc/do_tgs_req.c
-+++ b/src/kdc/do_tgs_req.c
-@@ -823,7 +823,8 @@ process_tgs_req(struct server_handle *handle, krb5_data *pkt,
-     free(reply.enc_part.ciphertext.data);
- 
- cleanup:
--    assert(status != NULL);
-+    if (status == NULL)
-+        status = "UNKNOWN_REASON";
-     if (reply_key)
-         krb5_free_keyblock(kdc_context, reply_key);
-     if (errcode)
-diff --git a/src/kdc/kdc_util.c b/src/kdc/kdc_util.c
-index 778a629..b710aef 100644
---- a/src/kdc/kdc_util.c
-+++ b/src/kdc/kdc_util.c
-@@ -1220,8 +1220,10 @@ kdc_process_for_user(kdc_realm_t *kdc_active_realm,
-     req_data.data = (char *)pa_data->contents;
- 
-     code = decode_krb5_pa_for_user(&req_data, &for_user);
--    if (code)
-+    if (code) {
-+        *status = "DECODE_PA_FOR_USER";
-         return code;
-+    }
- 
-     code = verify_for_user_checksum(kdc_context, tgs_session, for_user);
-     if (code) {
-@@ -1320,8 +1322,10 @@ kdc_process_s4u_x509_user(krb5_context context,
-     req_data.data = (char *)pa_data->contents;
- 
-     code = decode_krb5_pa_s4u_x509_user(&req_data, s4u_x509_user);
--    if (code)
-+    if (code) {
-+        *status = "DECODE_PA_S4U_X509_USER";
-         return code;
-+    }
- 
-     code = verify_s4u_x509_user_checksum(context,
-                                          tgs_subkey ? tgs_subkey :
-@@ -1624,6 +1628,7 @@ kdc_process_s4u2proxy_req(kdc_realm_t *kdc_active_realm,
-      * that is validated previously in validate_tgs_request().
-      */
-     if (request->kdc_options & (NON_TGT_OPTION | KDC_OPT_ENC_TKT_IN_SKEY)) {
-+        *status = "INVALID_S4U2PROXY_OPTIONS";
-         return KRB5KDC_ERR_BADOPTION;
-     }
- 
-@@ -1631,6 +1636,7 @@ kdc_process_s4u2proxy_req(kdc_realm_t *kdc_active_realm,
-     if (!krb5_principal_compare(kdc_context,
-                                 server->princ, /* after canon */
-                                 server_princ)) {
-+        *status = "EVIDENCE_TICKET_MISMATCH";
-         return KRB5KDC_ERR_SERVER_NOMATCH;
-     }
- 
--- 
-2.10.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service
index 1b42716..21939a1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service
@@ -7,6 +7,7 @@
 Type=forking
 ExecStartPre=/bin/sh -c "test ! -f /var/log/kadmind.log || test ! -x /sbin/restorecon || /sbin/restorecon -F /var/log/kadmind.log"
 ExecStart=/usr/sbin/kadmind
+EnvironmentFile=-/etc/default/krb5-admin-server
 SuccessExitStatus=1 2 SIGKILL
 TimeoutStopSec=30
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service
index d5e5a95..bf37c45 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service
@@ -6,6 +6,7 @@
 [Service]
 Type=forking
 ExecStart=/usr/sbin/krb5kdc
+EnvironmentFile=-/etc/default/krb5-kdc
 SuccessExitStatus=1 2 SIGKILL
 TimeoutStopSec=30
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.15.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
similarity index 91%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.15.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
index e75e861..f95240f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.15.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
@@ -14,8 +14,8 @@
 HOMEPAGE = "http://web.mit.edu/Kerberos/"
 SECTION = "console/network"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=3e12b8a065cca25dfdcac734fb3ec0b9"
-DEPENDS = "ncurses util-linux e2fsprogs e2fsprogs-native"
+LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=59b8da652f07186b44782a8454574f30"
+DEPENDS = "ncurses util-linux e2fsprogs e2fsprogs-native openssl"
 
 inherit autotools-brokensep binconfig perlnative systemd update-rc.d
 
@@ -30,19 +30,17 @@
            file://etc/default/krb5-admin-server \
            file://krb5-kdc.service \
            file://krb5-admin-server.service \
-           file://fix-CVE-2017-11368.patch;striplevel=2 \
-           file://CVE-2017-11462.patch;striplevel=2 \
 "
-SRC_URI[md5sum] = "8022f3a1cde8463e44fd35ef42731f85"
-SRC_URI[sha256sum] = "437c8831ddd5fde2a993fef425dedb48468109bb3d3261ef838295045a89eb45"
+SRC_URI[md5sum] = "23c5e9f07642db4a67f7a5b6168b1319"
+SRC_URI[sha256sum] = "faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08"
 
 CVE_PRODUCT = "kerberos"
 
 S = "${WORKDIR}/${BP}/src"
 
-PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG ??= ""
 PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
-PACKAGECONFIG[openssl] = "--with-pkinit-crypto-impl=openssl,,openssl"
+PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
 PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
 PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
 PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
@@ -53,6 +51,7 @@
                   ac_cv_file__etc_TIMEZONE=no"
 
 CFLAGS_append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et"
+CFLAGS_append_riscv64 = " -D_REENTRANT -pthread"
 LDFLAGS_append = " -pthread"
 
 do_configure() {
@@ -79,12 +78,17 @@
         mkdir -p ${D}/${sysconfdir}/default/volatiles
         echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \
               > ${D}${sysconfdir}/default/volatiles/87_krb5
+
+        echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
     fi
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
         install -d ${D}${sysconfdir}/tmpfiles.d
         echo "d /run/krb5kdc - - - -" \
               > ${D}${sysconfdir}/tmpfiles.d/krb5.conf
 
+        mkdir -p ${D}/${sysconfdir}/default
+        install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
+
         install -d ${D}${systemd_system_unitdir}
         install -m 0644 ${WORKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir}
         install -m 0644 ${WORKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch
index 4047ffb..7a3429b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch
@@ -12,6 +12,7 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Upstream-Status: Pending
+
 ---
  m4/compiler-warnings.m4 | 29 +++++++++++++++++++++++++----
  1 file changed, 25 insertions(+), 4 deletions(-)
@@ -53,7 +54,7 @@
  		      -Wdeclaration-after-statement -Wstrict-prototypes \
 @@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
  		      -Wmissing-include-dirs -Waggregate-return \
- 		      -Wformat-security; do
+ 		      -Wformat-security -Wtype-limits; do
  		SAVE_CFLAGS="$CFLAGS"
 -		CFLAGS="$CFLAGS $option"
 +		CFLAGS="$CFLAGS $option $WERROR"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.16.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.16.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
index 80c26c0..9301cbd 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.16.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
@@ -14,5 +14,5 @@
 SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
            file://0001-Detect-clang.patch \
            "
-SRC_URI[md5sum] = "4970c110f160b33637a3515004c637b2"
-SRC_URI[sha256sum] = "7ab6bb47fd23bf4d3fa17424e40ea5552d08b19e5ee4f125f21f316c8086ba2a"
+SRC_URI[md5sum] = "797e365521df76b77b067e6317618b41"
+SRC_URI[sha256sum] = "21428cd3749c56246565123f707fee51238651a22c60bdc85ebce97388626eb4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb
index 0a5846b..ca4685a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb
@@ -4,10 +4,10 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bb5ea0d651f4c3519327171906045775"
 
-SRC_URI = "https://github.com/libuv/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
-
-SRC_URI[md5sum] = "15550a9f5f45f7f32ae2d9bb0a21a2a7"
-SRC_URI[sha256sum] = "6ec7eec6ecc24b1a8ffedebedb2fe9313fffb5410de89aaf784dd01080411c7a"
+S = "${WORKDIR}/git"
+SRCREV = "7452ef4e06a4f99ee26b694c65476401534f2725"
+BRANCH = "v1.x"
+SRC_URI = "git://github.com/libuv/libuv.git;protocol=https;branch=${BRANCH};"
 
 inherit autotools
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb
index 9354799..100f3a3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb
@@ -5,10 +5,9 @@
 
 DEPENDS = "zlib"
 
-SRC_URI = "https://github.com/warmcat/libwebsockets/archive/v${PV}.tar.gz"
-
-SRC_URI[md5sum] = "4df3be57dee43aeebd54a3ed56568f50"
-SRC_URI[sha256sum] = "bcc96aaa609daae4d3f7ab1ee480126709ef4f6a8bf9c85de40aae48e38cce66"
+S = "${WORKDIR}/git"
+SRCREV = "73557509bd15f95a1ad081a6f4fab48ff7743215"
+SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;"
 
 inherit cmake pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch
new file mode 100644
index 0000000..a5aa277
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch
@@ -0,0 +1,35 @@
+From 0be38301249d797ec1f59071cc868ceda6d4720a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
+Date: Tue, 12 Apr 2016 12:50:32 +0100
+Subject: [PATCH 1/2] config.mk: allow prefix / mandir / localedir from
+ environment
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We want to control them using OE environment variables.
+
+Upstream-Status: Inappropriate [embedded-specific]
+Signed-off-by: André Draszik <andre.draszik@jci.com>
+---
+ config.mk | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/config.mk b/config.mk
+index 71f17e5..81d9702 100644
+--- a/config.mk
++++ b/config.mk
+@@ -249,7 +249,7 @@ ifeq ($(WITH_DOCS),yes)
+ endif
+ 
+ INSTALL?=install
+-prefix=/usr/local
+-mandir=${prefix}/share/man
+-localedir=${prefix}/share/locale
++prefix?=/usr/local
++mandir?=${prefix}/share/man
++localedir?=${prefix}/share/locale
+ STRIP?=strip
+-- 
+2.15.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
new file mode 100644
index 0000000..c89dfe6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
@@ -0,0 +1,975 @@
+From d9aeef8d95a325942cc92f4d72415771d75d904c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
+Date: Tue, 12 Apr 2016 13:05:10 +0100
+Subject: [PATCH 2/2] uthash: remove in-tree version
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We don't need it as we want to use the version provided by
+meta-oe instead.
+
+Upstream-Status: Inappropriate [embedded-specific]
+Signed-off-by: André Draszik <andre.draszik@jci.com>
+---
+ src/uthash.h | 948 -----------------------------------------------------------
+ 1 file changed, 948 deletions(-)
+ delete mode 100644 src/uthash.h
+
+diff --git a/src/uthash.h b/src/uthash.h
+deleted file mode 100644
+index 915a825..0000000
+--- a/src/uthash.h
++++ /dev/null
+@@ -1,948 +0,0 @@
+-/*
+-Copyright (c) 2003-2013, Troy D. Hanson     http://troydhanson.github.com/uthash/
+-All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions are met:
+-
+-    * Redistributions of source code must retain the above copyright
+-      notice, this list of conditions and the following disclaimer.
+-
+-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-*/
+-
+-#ifndef UTHASH_H
+-#define UTHASH_H 
+-
+-#include <string.h>   /* memcmp,strlen */
+-#include <stddef.h>   /* ptrdiff_t */
+-#include <stdlib.h>   /* exit() */
+-
+-/* These macros use decltype or the earlier __typeof GNU extension.
+-   As decltype is only available in newer compilers (VS2010 or gcc 4.3+
+-   when compiling c++ source) this code uses whatever method is needed
+-   or, for VS2008 where neither is available, uses casting workarounds. */
+-#ifdef _MSC_VER         /* MS compiler */
+-#if _MSC_VER >= 1600 && defined(__cplusplus)  /* VS2010 or newer in C++ mode */
+-#define DECLTYPE(x) (decltype(x))
+-#else                   /* VS2008 or older (or VS2010 in C mode) */
+-#define NO_DECLTYPE
+-#define DECLTYPE(x)
+-#endif
+-#else                   /* GNU, Sun and other compilers */
+-#define DECLTYPE(x) (__typeof(x))
+-#endif
+-
+-#ifdef NO_DECLTYPE
+-#define DECLTYPE_ASSIGN(dst,src)                                                 \
+-do {                                                                             \
+-  char **_da_dst = (char**)(&(dst));                                             \
+-  *_da_dst = (char*)(src);                                                       \
+-} while(0)
+-#else 
+-#define DECLTYPE_ASSIGN(dst,src)                                                 \
+-do {                                                                             \
+-  (dst) = DECLTYPE(dst)(src);                                                    \
+-} while(0)
+-#endif
+-
+-/* a number of the hash function use uint32_t which isn't defined on win32 */
+-#ifdef _MSC_VER
+-typedef unsigned int uint32_t;
+-typedef unsigned char uint8_t;
+-#else
+-#include <inttypes.h>   /* uint32_t */
+-#endif
+-
+-#define UTHASH_VERSION 1.9.8
+-
+-#ifndef uthash_fatal
+-#define uthash_fatal(msg) exit(-1)        /* fatal error (out of memory,etc) */
+-#endif
+-#ifndef uthash_malloc
+-#define uthash_malloc(sz) malloc(sz)      /* malloc fcn                      */
+-#endif
+-#ifndef uthash_free
+-#define uthash_free(ptr,sz) free(ptr)     /* free fcn                        */
+-#endif
+-
+-#ifndef uthash_noexpand_fyi
+-#define uthash_noexpand_fyi(tbl)          /* can be defined to log noexpand  */
+-#endif
+-#ifndef uthash_expand_fyi
+-#define uthash_expand_fyi(tbl)            /* can be defined to log expands   */
+-#endif
+-
+-/* initial number of buckets */
+-#define HASH_INITIAL_NUM_BUCKETS 32      /* initial number of buckets        */
+-#define HASH_INITIAL_NUM_BUCKETS_LOG2 5  /* lg2 of initial number of buckets */
+-#define HASH_BKT_CAPACITY_THRESH 10      /* expand when bucket count reaches */
+-
+-/* calculate the element whose hash handle address is hhe */
+-#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))
+-
+-#define HASH_FIND(hh,head,keyptr,keylen,out)                                     \
+-do {                                                                             \
+-  unsigned _hf_bkt,_hf_hashv;                                                    \
+-  out=NULL;                                                                      \
+-  if (head) {                                                                    \
+-     HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt);   \
+-     if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) {                           \
+-       HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ],  \
+-                        keyptr,keylen,out);                                      \
+-     }                                                                           \
+-  }                                                                              \
+-} while (0)
+-
+-#ifdef HASH_BLOOM
+-#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM)
+-#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0)
+-#define HASH_BLOOM_MAKE(tbl)                                                     \
+-do {                                                                             \
+-  (tbl)->bloom_nbits = HASH_BLOOM;                                               \
+-  (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN);                 \
+-  if (!((tbl)->bloom_bv))  { uthash_fatal( "out of memory"); }                   \
+-  memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN);                                \
+-  (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE;                                       \
+-} while (0) 
+-
+-#define HASH_BLOOM_FREE(tbl)                                                     \
+-do {                                                                             \
+-  uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN);                              \
+-} while (0) 
+-
+-#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))
+-#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))
+-
+-#define HASH_BLOOM_ADD(tbl,hashv)                                                \
+-  HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
+-
+-#define HASH_BLOOM_TEST(tbl,hashv)                                               \
+-  HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
+-
+-#else
+-#define HASH_BLOOM_MAKE(tbl) 
+-#define HASH_BLOOM_FREE(tbl) 
+-#define HASH_BLOOM_ADD(tbl,hashv) 
+-#define HASH_BLOOM_TEST(tbl,hashv) (1)
+-#define HASH_BLOOM_BYTELEN 0
+-#endif
+-
+-#define HASH_MAKE_TABLE(hh,head)                                                 \
+-do {                                                                             \
+-  (head)->hh.tbl = (UT_hash_table*)uthash_malloc(                                \
+-                  sizeof(UT_hash_table));                                        \
+-  if (!((head)->hh.tbl))  { uthash_fatal( "out of memory"); }                    \
+-  memset((head)->hh.tbl, 0, sizeof(UT_hash_table));                              \
+-  (head)->hh.tbl->tail = &((head)->hh);                                          \
+-  (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS;                        \
+-  (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2;              \
+-  (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head);                    \
+-  (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc(                      \
+-          HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket));               \
+-  if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); }             \
+-  memset((head)->hh.tbl->buckets, 0,                                             \
+-          HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket));               \
+-  HASH_BLOOM_MAKE((head)->hh.tbl);                                               \
+-  (head)->hh.tbl->signature = HASH_SIGNATURE;                                    \
+-} while(0)
+-
+-#define HASH_ADD(hh,head,fieldname,keylen_in,add)                                \
+-        HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add)
+-
+-#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced)                   \
+-do {                                                                             \
+-  replaced=NULL;                                                                 \
+-  HASH_FIND(hh,head,&((add)->fieldname),keylen_in,replaced);                     \
+-  if (replaced!=NULL) {                                                          \
+-     HASH_DELETE(hh,head,replaced);                                              \
+-  };                                                                             \
+-  HASH_ADD(hh,head,fieldname,keylen_in,add);                                     \
+-} while(0)
+- 
+-#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add)                            \
+-do {                                                                             \
+- unsigned _ha_bkt;                                                               \
+- (add)->hh.next = NULL;                                                          \
+- (add)->hh.key = (char*)keyptr;                                                  \
+- (add)->hh.keylen = (unsigned)keylen_in;                                                   \
+- if (!(head)) {                                                                  \
+-    head = (add);                                                                \
+-    (head)->hh.prev = NULL;                                                      \
+-    HASH_MAKE_TABLE(hh,head);                                                    \
+- } else {                                                                        \
+-    (head)->hh.tbl->tail->next = (add);                                          \
+-    (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail);         \
+-    (head)->hh.tbl->tail = &((add)->hh);                                         \
+- }                                                                               \
+- (head)->hh.tbl->num_items++;                                                    \
+- (add)->hh.tbl = (head)->hh.tbl;                                                 \
+- HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets,                         \
+-         (add)->hh.hashv, _ha_bkt);                                              \
+- HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh);                   \
+- HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv);                                 \
+- HASH_EMIT_KEY(hh,head,keyptr,keylen_in);                                        \
+- HASH_FSCK(hh,head);                                                             \
+-} while(0)
+-
+-#define HASH_TO_BKT( hashv, num_bkts, bkt )                                      \
+-do {                                                                             \
+-  bkt = ((hashv) & ((num_bkts) - 1));                                            \
+-} while(0)
+-
+-/* delete "delptr" from the hash table.
+- * "the usual" patch-up process for the app-order doubly-linked-list.
+- * The use of _hd_hh_del below deserves special explanation.
+- * These used to be expressed using (delptr) but that led to a bug
+- * if someone used the same symbol for the head and deletee, like
+- *  HASH_DELETE(hh,users,users);
+- * We want that to work, but by changing the head (users) below
+- * we were forfeiting our ability to further refer to the deletee (users)
+- * in the patch-up process. Solution: use scratch space to
+- * copy the deletee pointer, then the latter references are via that
+- * scratch pointer rather than through the repointed (users) symbol.
+- */
+-#define HASH_DELETE(hh,head,delptr)                                              \
+-do {                                                                             \
+-    unsigned _hd_bkt;                                                            \
+-    struct UT_hash_handle *_hd_hh_del;                                           \
+-    if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) )  {         \
+-        uthash_free((head)->hh.tbl->buckets,                                     \
+-                    (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
+-        HASH_BLOOM_FREE((head)->hh.tbl);                                         \
+-        uthash_free((head)->hh.tbl, sizeof(UT_hash_table));                      \
+-        head = NULL;                                                             \
+-    } else {                                                                     \
+-        _hd_hh_del = &((delptr)->hh);                                            \
+-        if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) {     \
+-            (head)->hh.tbl->tail =                                               \
+-                (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) +               \
+-                (head)->hh.tbl->hho);                                            \
+-        }                                                                        \
+-        if ((delptr)->hh.prev) {                                                 \
+-            ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) +                  \
+-                    (head)->hh.tbl->hho))->next = (delptr)->hh.next;             \
+-        } else {                                                                 \
+-            DECLTYPE_ASSIGN(head,(delptr)->hh.next);                             \
+-        }                                                                        \
+-        if (_hd_hh_del->next) {                                                  \
+-            ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next +                     \
+-                    (head)->hh.tbl->hho))->prev =                                \
+-                    _hd_hh_del->prev;                                            \
+-        }                                                                        \
+-        HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt);   \
+-        HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del);        \
+-        (head)->hh.tbl->num_items--;                                             \
+-    }                                                                            \
+-    HASH_FSCK(hh,head);                                                          \
+-} while (0)
+-
+-
+-/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */
+-#define HASH_FIND_STR(head,findstr,out)                                          \
+-    HASH_FIND(hh,head,findstr,strlen(findstr),out)
+-#define HASH_ADD_STR(head,strfield,add)                                          \
+-    HASH_ADD(hh,head,strfield,strlen(add->strfield),add)
+-#define HASH_REPLACE_STR(head,strfield,add,replaced)                             \
+-  HASH_REPLACE(hh,head,strfield,strlen(add->strfield),add,replaced)
+-#define HASH_FIND_INT(head,findint,out)                                          \
+-    HASH_FIND(hh,head,findint,sizeof(int),out)
+-#define HASH_ADD_INT(head,intfield,add)                                          \
+-    HASH_ADD(hh,head,intfield,sizeof(int),add)
+-#define HASH_REPLACE_INT(head,intfield,add,replaced)                             \
+-    HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
+-#define HASH_FIND_PTR(head,findptr,out)                                          \
+-    HASH_FIND(hh,head,findptr,sizeof(void *),out)
+-#define HASH_ADD_PTR(head,ptrfield,add)                                          \
+-    HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
+-#define HASH_REPLACE_PTR(head,ptrfield,add)                                      \
+-    HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)
+-#define HASH_DEL(head,delptr)                                                    \
+-    HASH_DELETE(hh,head,delptr)
+-
+-/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined.
+- * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined.
+- */
+-#ifdef HASH_DEBUG
+-#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)
+-#define HASH_FSCK(hh,head)                                                       \
+-do {                                                                             \
+-    unsigned _bkt_i;                                                             \
+-    unsigned _count, _bkt_count;                                                 \
+-    char *_prev;                                                                 \
+-    struct UT_hash_handle *_thh;                                                 \
+-    if (head) {                                                                  \
+-        _count = 0;                                                              \
+-        for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) {       \
+-            _bkt_count = 0;                                                      \
+-            _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head;                      \
+-            _prev = NULL;                                                        \
+-            while (_thh) {                                                       \
+-               if (_prev != (char*)(_thh->hh_prev)) {                            \
+-                   HASH_OOPS("invalid hh_prev %p, actual %p\n",                  \
+-                    _thh->hh_prev, _prev );                                      \
+-               }                                                                 \
+-               _bkt_count++;                                                     \
+-               _prev = (char*)(_thh);                                            \
+-               _thh = _thh->hh_next;                                             \
+-            }                                                                    \
+-            _count += _bkt_count;                                                \
+-            if ((head)->hh.tbl->buckets[_bkt_i].count !=  _bkt_count) {          \
+-               HASH_OOPS("invalid bucket count %d, actual %d\n",                 \
+-                (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count);              \
+-            }                                                                    \
+-        }                                                                        \
+-        if (_count != (head)->hh.tbl->num_items) {                               \
+-            HASH_OOPS("invalid hh item count %d, actual %d\n",                   \
+-                (head)->hh.tbl->num_items, _count );                             \
+-        }                                                                        \
+-        /* traverse hh in app order; check next/prev integrity, count */         \
+-        _count = 0;                                                              \
+-        _prev = NULL;                                                            \
+-        _thh =  &(head)->hh;                                                     \
+-        while (_thh) {                                                           \
+-           _count++;                                                             \
+-           if (_prev !=(char*)(_thh->prev)) {                                    \
+-              HASH_OOPS("invalid prev %p, actual %p\n",                          \
+-                    _thh->prev, _prev );                                         \
+-           }                                                                     \
+-           _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh);                    \
+-           _thh = ( _thh->next ?  (UT_hash_handle*)((char*)(_thh->next) +        \
+-                                  (head)->hh.tbl->hho) : NULL );                 \
+-        }                                                                        \
+-        if (_count != (head)->hh.tbl->num_items) {                               \
+-            HASH_OOPS("invalid app item count %d, actual %d\n",                  \
+-                (head)->hh.tbl->num_items, _count );                             \
+-        }                                                                        \
+-    }                                                                            \
+-} while (0)
+-#else
+-#define HASH_FSCK(hh,head) 
+-#endif
+-
+-/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to 
+- * the descriptor to which this macro is defined for tuning the hash function.
+- * The app can #include <unistd.h> to get the prototype for write(2). */
+-#ifdef HASH_EMIT_KEYS
+-#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)                                   \
+-do {                                                                             \
+-    unsigned _klen = fieldlen;                                                   \
+-    write(HASH_EMIT_KEYS, &_klen, sizeof(_klen));                                \
+-    write(HASH_EMIT_KEYS, keyptr, fieldlen);                                     \
+-} while (0)
+-#else 
+-#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)                    
+-#endif
+-
+-/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */
+-#ifdef HASH_FUNCTION 
+-#define HASH_FCN HASH_FUNCTION
+-#else
+-#define HASH_FCN HASH_JEN
+-#endif
+-
+-/* The Bernstein hash function, used in Perl prior to v5.6 */
+-#define HASH_BER(key,keylen,num_bkts,hashv,bkt)                                  \
+-do {                                                                             \
+-  unsigned _hb_keylen=keylen;                                                    \
+-  char *_hb_key=(char*)(key);                                                    \
+-  (hashv) = 0;                                                                   \
+-  while (_hb_keylen--)  { (hashv) = ((hashv) * 33) + *_hb_key++; }               \
+-  bkt = (hashv) & (num_bkts-1);                                                  \
+-} while (0)
+-
+-
+-/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at 
+- * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */
+-#define HASH_SAX(key,keylen,num_bkts,hashv,bkt)                                  \
+-do {                                                                             \
+-  unsigned _sx_i;                                                                \
+-  char *_hs_key=(char*)(key);                                                    \
+-  hashv = 0;                                                                     \
+-  for(_sx_i=0; _sx_i < keylen; _sx_i++)                                          \
+-      hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i];                     \
+-  bkt = hashv & (num_bkts-1);                                                    \
+-} while (0)
+-
+-#define HASH_FNV(key,keylen,num_bkts,hashv,bkt)                                  \
+-do {                                                                             \
+-  unsigned _fn_i;                                                                \
+-  char *_hf_key=(char*)(key);                                                    \
+-  hashv = 2166136261UL;                                                          \
+-  for(_fn_i=0; _fn_i < keylen; _fn_i++)                                          \
+-      hashv = (hashv * 16777619) ^ _hf_key[_fn_i];                               \
+-  bkt = hashv & (num_bkts-1);                                                    \
+-} while(0) 
+- 
+-#define HASH_OAT(key,keylen,num_bkts,hashv,bkt)                                  \
+-do {                                                                             \
+-  unsigned _ho_i;                                                                \
+-  char *_ho_key=(char*)(key);                                                    \
+-  hashv = 0;                                                                     \
+-  for(_ho_i=0; _ho_i < keylen; _ho_i++) {                                        \
+-      hashv += _ho_key[_ho_i];                                                   \
+-      hashv += (hashv << 10);                                                    \
+-      hashv ^= (hashv >> 6);                                                     \
+-  }                                                                              \
+-  hashv += (hashv << 3);                                                         \
+-  hashv ^= (hashv >> 11);                                                        \
+-  hashv += (hashv << 15);                                                        \
+-  bkt = hashv & (num_bkts-1);                                                    \
+-} while(0)
+-
+-#define HASH_JEN_MIX(a,b,c)                                                      \
+-do {                                                                             \
+-  a -= b; a -= c; a ^= ( c >> 13 );                                              \
+-  b -= c; b -= a; b ^= ( a << 8 );                                               \
+-  c -= a; c -= b; c ^= ( b >> 13 );                                              \
+-  a -= b; a -= c; a ^= ( c >> 12 );                                              \
+-  b -= c; b -= a; b ^= ( a << 16 );                                              \
+-  c -= a; c -= b; c ^= ( b >> 5 );                                               \
+-  a -= b; a -= c; a ^= ( c >> 3 );                                               \
+-  b -= c; b -= a; b ^= ( a << 10 );                                              \
+-  c -= a; c -= b; c ^= ( b >> 15 );                                              \
+-} while (0)
+-
+-#define HASH_JEN(key,keylen,num_bkts,hashv,bkt)                                  \
+-do {                                                                             \
+-  unsigned _hj_i,_hj_j,_hj_k;                                                    \
+-  unsigned char *_hj_key=(unsigned char*)(key);                                  \
+-  hashv = 0xfeedbeef;                                                            \
+-  _hj_i = _hj_j = 0x9e3779b9;                                                    \
+-  _hj_k = (unsigned)keylen;                                                      \
+-  while (_hj_k >= 12) {                                                          \
+-    _hj_i +=    (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 )                      \
+-        + ( (unsigned)_hj_key[2] << 16 )                                         \
+-        + ( (unsigned)_hj_key[3] << 24 ) );                                      \
+-    _hj_j +=    (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 )                      \
+-        + ( (unsigned)_hj_key[6] << 16 )                                         \
+-        + ( (unsigned)_hj_key[7] << 24 ) );                                      \
+-    hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 )                         \
+-        + ( (unsigned)_hj_key[10] << 16 )                                        \
+-        + ( (unsigned)_hj_key[11] << 24 ) );                                     \
+-                                                                                 \
+-     HASH_JEN_MIX(_hj_i, _hj_j, hashv);                                          \
+-                                                                                 \
+-     _hj_key += 12;                                                              \
+-     _hj_k -= 12;                                                                \
+-  }                                                                              \
+-  hashv += keylen;                                                               \
+-  switch ( _hj_k ) {                                                             \
+-     case 11: hashv += ( (unsigned)_hj_key[10] << 24 );                          \
+-     case 10: hashv += ( (unsigned)_hj_key[9] << 16 );                           \
+-     case 9:  hashv += ( (unsigned)_hj_key[8] << 8 );                            \
+-     case 8:  _hj_j += ( (unsigned)_hj_key[7] << 24 );                           \
+-     case 7:  _hj_j += ( (unsigned)_hj_key[6] << 16 );                           \
+-     case 6:  _hj_j += ( (unsigned)_hj_key[5] << 8 );                            \
+-     case 5:  _hj_j += _hj_key[4];                                               \
+-     case 4:  _hj_i += ( (unsigned)_hj_key[3] << 24 );                           \
+-     case 3:  _hj_i += ( (unsigned)_hj_key[2] << 16 );                           \
+-     case 2:  _hj_i += ( (unsigned)_hj_key[1] << 8 );                            \
+-     case 1:  _hj_i += _hj_key[0];                                               \
+-  }                                                                              \
+-  HASH_JEN_MIX(_hj_i, _hj_j, hashv);                                             \
+-  bkt = hashv & (num_bkts-1);                                                    \
+-} while(0)
+-
+-/* The Paul Hsieh hash function */
+-#undef get16bits
+-#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__)             \
+-  || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
+-#define get16bits(d) (*((const uint16_t *) (d)))
+-#endif
+-
+-#if !defined (get16bits)
+-#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)             \
+-                       +(uint32_t)(((const uint8_t *)(d))[0]) )
+-#endif
+-#define HASH_SFH(key,keylen,num_bkts,hashv,bkt)                                  \
+-do {                                                                             \
+-  unsigned char *_sfh_key=(unsigned char*)(key);                                 \
+-  uint32_t _sfh_tmp, _sfh_len = keylen;                                          \
+-                                                                                 \
+-  int _sfh_rem = _sfh_len & 3;                                                   \
+-  _sfh_len >>= 2;                                                                \
+-  hashv = 0xcafebabe;                                                            \
+-                                                                                 \
+-  /* Main loop */                                                                \
+-  for (;_sfh_len > 0; _sfh_len--) {                                              \
+-    hashv    += get16bits (_sfh_key);                                            \
+-    _sfh_tmp       = (uint32_t)(get16bits (_sfh_key+2)) << 11  ^ hashv;          \
+-    hashv     = (hashv << 16) ^ _sfh_tmp;                                        \
+-    _sfh_key += 2*sizeof (uint16_t);                                             \
+-    hashv    += hashv >> 11;                                                     \
+-  }                                                                              \
+-                                                                                 \
+-  /* Handle end cases */                                                         \
+-  switch (_sfh_rem) {                                                            \
+-    case 3: hashv += get16bits (_sfh_key);                                       \
+-            hashv ^= hashv << 16;                                                \
+-            hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)] << 18);              \
+-            hashv += hashv >> 11;                                                \
+-            break;                                                               \
+-    case 2: hashv += get16bits (_sfh_key);                                       \
+-            hashv ^= hashv << 11;                                                \
+-            hashv += hashv >> 17;                                                \
+-            break;                                                               \
+-    case 1: hashv += *_sfh_key;                                                  \
+-            hashv ^= hashv << 10;                                                \
+-            hashv += hashv >> 1;                                                 \
+-  }                                                                              \
+-                                                                                 \
+-    /* Force "avalanching" of final 127 bits */                                  \
+-    hashv ^= hashv << 3;                                                         \
+-    hashv += hashv >> 5;                                                         \
+-    hashv ^= hashv << 4;                                                         \
+-    hashv += hashv >> 17;                                                        \
+-    hashv ^= hashv << 25;                                                        \
+-    hashv += hashv >> 6;                                                         \
+-    bkt = hashv & (num_bkts-1);                                                  \
+-} while(0) 
+-
+-#ifdef HASH_USING_NO_STRICT_ALIASING
+-/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads.
+- * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.
+- * MurmurHash uses the faster approach only on CPU's where we know it's safe. 
+- *
+- * Note the preprocessor built-in defines can be emitted using:
+- *
+- *   gcc -m64 -dM -E - < /dev/null                  (on gcc)
+- *   cc -## a.c (where a.c is a simple test file)   (Sun Studio)
+- */
+-#if (defined(__i386__) || defined(__x86_64__)  || defined(_M_IX86))
+-#define MUR_GETBLOCK(p,i) p[i]
+-#else /* non intel */
+-#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0)
+-#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1)
+-#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2)
+-#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3)
+-#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL))
+-#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__))
+-#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24))
+-#define MUR_TWO_TWO(p)   ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16))
+-#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >>  8))
+-#else /* assume little endian non-intel */
+-#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24))
+-#define MUR_TWO_TWO(p)   ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16))
+-#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) <<  8))
+-#endif
+-#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) :           \
+-                            (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \
+-                             (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) :  \
+-                                                      MUR_ONE_THREE(p))))
+-#endif
+-#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r))))
+-#define MUR_FMIX(_h) \
+-do {                 \
+-  _h ^= _h >> 16;    \
+-  _h *= 0x85ebca6b;  \
+-  _h ^= _h >> 13;    \
+-  _h *= 0xc2b2ae35l; \
+-  _h ^= _h >> 16;    \
+-} while(0)
+-
+-#define HASH_MUR(key,keylen,num_bkts,hashv,bkt)                        \
+-do {                                                                   \
+-  const uint8_t *_mur_data = (const uint8_t*)(key);                    \
+-  const int _mur_nblocks = (keylen) / 4;                               \
+-  uint32_t _mur_h1 = 0xf88D5353;                                       \
+-  uint32_t _mur_c1 = 0xcc9e2d51;                                       \
+-  uint32_t _mur_c2 = 0x1b873593;                                       \
+-  uint32_t _mur_k1 = 0;                                                \
+-  const uint8_t *_mur_tail;                                            \
+-  const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \
+-  int _mur_i;                                                          \
+-  for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) {                      \
+-    _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i);                        \
+-    _mur_k1 *= _mur_c1;                                                \
+-    _mur_k1 = MUR_ROTL32(_mur_k1,15);                                  \
+-    _mur_k1 *= _mur_c2;                                                \
+-                                                                       \
+-    _mur_h1 ^= _mur_k1;                                                \
+-    _mur_h1 = MUR_ROTL32(_mur_h1,13);                                  \
+-    _mur_h1 = _mur_h1*5+0xe6546b64;                                    \
+-  }                                                                    \
+-  _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4);            \
+-  _mur_k1=0;                                                           \
+-  switch((keylen) & 3) {                                               \
+-    case 3: _mur_k1 ^= _mur_tail[2] << 16;                             \
+-    case 2: _mur_k1 ^= _mur_tail[1] << 8;                              \
+-    case 1: _mur_k1 ^= _mur_tail[0];                                   \
+-    _mur_k1 *= _mur_c1;                                                \
+-    _mur_k1 = MUR_ROTL32(_mur_k1,15);                                  \
+-    _mur_k1 *= _mur_c2;                                                \
+-    _mur_h1 ^= _mur_k1;                                                \
+-  }                                                                    \
+-  _mur_h1 ^= (keylen);                                                 \
+-  MUR_FMIX(_mur_h1);                                                   \
+-  hashv = _mur_h1;                                                     \
+-  bkt = hashv & (num_bkts-1);                                          \
+-} while(0)
+-#endif  /* HASH_USING_NO_STRICT_ALIASING */
+-
+-/* key comparison function; return 0 if keys equal */
+-#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) 
+-
+-/* iterate over items in a known bucket to find desired item */
+-#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out)                       \
+-do {                                                                             \
+- if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head));          \
+- else out=NULL;                                                                  \
+- while (out) {                                                                   \
+-    if ((out)->hh.keylen == keylen_in) {                                           \
+-        if ((HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break;             \
+-    }                                                                            \
+-    if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \
+-    else out = NULL;                                                             \
+- }                                                                               \
+-} while(0)
+-
+-/* add an item to a bucket  */
+-#define HASH_ADD_TO_BKT(head,addhh)                                              \
+-do {                                                                             \
+- head.count++;                                                                   \
+- (addhh)->hh_next = head.hh_head;                                                \
+- (addhh)->hh_prev = NULL;                                                        \
+- if (head.hh_head) { (head).hh_head->hh_prev = (addhh); }                        \
+- (head).hh_head=addhh;                                                           \
+- if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH)             \
+-     && (addhh)->tbl->noexpand != 1) {                                           \
+-       HASH_EXPAND_BUCKETS((addhh)->tbl);                                        \
+- }                                                                               \
+-} while(0)
+-
+-/* remove an item from a given bucket */
+-#define HASH_DEL_IN_BKT(hh,head,hh_del)                                          \
+-    (head).count--;                                                              \
+-    if ((head).hh_head == hh_del) {                                              \
+-      (head).hh_head = hh_del->hh_next;                                          \
+-    }                                                                            \
+-    if (hh_del->hh_prev) {                                                       \
+-        hh_del->hh_prev->hh_next = hh_del->hh_next;                              \
+-    }                                                                            \
+-    if (hh_del->hh_next) {                                                       \
+-        hh_del->hh_next->hh_prev = hh_del->hh_prev;                              \
+-    }                                                                
+-
+-/* Bucket expansion has the effect of doubling the number of buckets
+- * and redistributing the items into the new buckets. Ideally the
+- * items will distribute more or less evenly into the new buckets
+- * (the extent to which this is true is a measure of the quality of
+- * the hash function as it applies to the key domain). 
+- * 
+- * With the items distributed into more buckets, the chain length
+- * (item count) in each bucket is reduced. Thus by expanding buckets
+- * the hash keeps a bound on the chain length. This bounded chain 
+- * length is the essence of how a hash provides constant time lookup.
+- * 
+- * The calculation of tbl->ideal_chain_maxlen below deserves some
+- * explanation. First, keep in mind that we're calculating the ideal
+- * maximum chain length based on the *new* (doubled) bucket count.
+- * In fractions this is just n/b (n=number of items,b=new num buckets).
+- * Since the ideal chain length is an integer, we want to calculate 
+- * ceil(n/b). We don't depend on floating point arithmetic in this
+- * hash, so to calculate ceil(n/b) with integers we could write
+- * 
+- *      ceil(n/b) = (n/b) + ((n%b)?1:0)
+- * 
+- * and in fact a previous version of this hash did just that.
+- * But now we have improved things a bit by recognizing that b is
+- * always a power of two. We keep its base 2 log handy (call it lb),
+- * so now we can write this with a bit shift and logical AND:
+- * 
+- *      ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)
+- * 
+- */
+-#define HASH_EXPAND_BUCKETS(tbl)                                                 \
+-do {                                                                             \
+-    unsigned _he_bkt;                                                            \
+-    unsigned _he_bkt_i;                                                          \
+-    struct UT_hash_handle *_he_thh, *_he_hh_nxt;                                 \
+-    UT_hash_bucket *_he_new_buckets, *_he_newbkt;                                \
+-    _he_new_buckets = (UT_hash_bucket*)uthash_malloc(                            \
+-             2 * tbl->num_buckets * sizeof(struct UT_hash_bucket));              \
+-    if (!_he_new_buckets) { uthash_fatal( "out of memory"); }                    \
+-    memset(_he_new_buckets, 0,                                                   \
+-            2 * tbl->num_buckets * sizeof(struct UT_hash_bucket));               \
+-    tbl->ideal_chain_maxlen =                                                    \
+-       (tbl->num_items >> (tbl->log2_num_buckets+1)) +                           \
+-       ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0);                    \
+-    tbl->nonideal_items = 0;                                                     \
+-    for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++)                \
+-    {                                                                            \
+-        _he_thh = tbl->buckets[ _he_bkt_i ].hh_head;                             \
+-        while (_he_thh) {                                                        \
+-           _he_hh_nxt = _he_thh->hh_next;                                        \
+-           HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt);            \
+-           _he_newbkt = &(_he_new_buckets[ _he_bkt ]);                           \
+-           if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) {                \
+-             tbl->nonideal_items++;                                              \
+-             _he_newbkt->expand_mult = _he_newbkt->count /                       \
+-                                        tbl->ideal_chain_maxlen;                 \
+-           }                                                                     \
+-           _he_thh->hh_prev = NULL;                                              \
+-           _he_thh->hh_next = _he_newbkt->hh_head;                               \
+-           if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev =               \
+-                _he_thh;                                                         \
+-           _he_newbkt->hh_head = _he_thh;                                        \
+-           _he_thh = _he_hh_nxt;                                                 \
+-        }                                                                        \
+-    }                                                                            \
+-    uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
+-    tbl->num_buckets *= 2;                                                       \
+-    tbl->log2_num_buckets++;                                                     \
+-    tbl->buckets = _he_new_buckets;                                              \
+-    tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ?         \
+-        (tbl->ineff_expands+1) : 0;                                              \
+-    if (tbl->ineff_expands > 1) {                                                \
+-        tbl->noexpand=1;                                                         \
+-        uthash_noexpand_fyi(tbl);                                                \
+-    }                                                                            \
+-    uthash_expand_fyi(tbl);                                                      \
+-} while(0)
+-
+-
+-/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */
+-/* Note that HASH_SORT assumes the hash handle name to be hh. 
+- * HASH_SRT was added to allow the hash handle name to be passed in. */
+-#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn)
+-#define HASH_SRT(hh,head,cmpfcn)                                                 \
+-do {                                                                             \
+-  unsigned _hs_i;                                                                \
+-  unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize;               \
+-  struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail;            \
+-  if (head) {                                                                    \
+-      _hs_insize = 1;                                                            \
+-      _hs_looping = 1;                                                           \
+-      _hs_list = &((head)->hh);                                                  \
+-      while (_hs_looping) {                                                      \
+-          _hs_p = _hs_list;                                                      \
+-          _hs_list = NULL;                                                       \
+-          _hs_tail = NULL;                                                       \
+-          _hs_nmerges = 0;                                                       \
+-          while (_hs_p) {                                                        \
+-              _hs_nmerges++;                                                     \
+-              _hs_q = _hs_p;                                                     \
+-              _hs_psize = 0;                                                     \
+-              for ( _hs_i = 0; _hs_i  < _hs_insize; _hs_i++ ) {                  \
+-                  _hs_psize++;                                                   \
+-                  _hs_q = (UT_hash_handle*)((_hs_q->next) ?                      \
+-                          ((void*)((char*)(_hs_q->next) +                        \
+-                          (head)->hh.tbl->hho)) : NULL);                         \
+-                  if (! (_hs_q) ) break;                                         \
+-              }                                                                  \
+-              _hs_qsize = _hs_insize;                                            \
+-              while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) {           \
+-                  if (_hs_psize == 0) {                                          \
+-                      _hs_e = _hs_q;                                             \
+-                      _hs_q = (UT_hash_handle*)((_hs_q->next) ?                  \
+-                              ((void*)((char*)(_hs_q->next) +                    \
+-                              (head)->hh.tbl->hho)) : NULL);                     \
+-                      _hs_qsize--;                                               \
+-                  } else if ( (_hs_qsize == 0) || !(_hs_q) ) {                   \
+-                      _hs_e = _hs_p;                                             \
+-                      if (_hs_p){                                                \
+-                        _hs_p = (UT_hash_handle*)((_hs_p->next) ?                \
+-                                ((void*)((char*)(_hs_p->next) +                  \
+-                                (head)->hh.tbl->hho)) : NULL);                   \
+-                       }                                                         \
+-                      _hs_psize--;                                               \
+-                  } else if ((                                                   \
+-                      cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \
+-                             DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \
+-                             ) <= 0) {                                           \
+-                      _hs_e = _hs_p;                                             \
+-                      if (_hs_p){                                                \
+-                        _hs_p = (UT_hash_handle*)((_hs_p->next) ?                \
+-                               ((void*)((char*)(_hs_p->next) +                   \
+-                               (head)->hh.tbl->hho)) : NULL);                    \
+-                       }                                                         \
+-                      _hs_psize--;                                               \
+-                  } else {                                                       \
+-                      _hs_e = _hs_q;                                             \
+-                      _hs_q = (UT_hash_handle*)((_hs_q->next) ?                  \
+-                              ((void*)((char*)(_hs_q->next) +                    \
+-                              (head)->hh.tbl->hho)) : NULL);                     \
+-                      _hs_qsize--;                                               \
+-                  }                                                              \
+-                  if ( _hs_tail ) {                                              \
+-                      _hs_tail->next = ((_hs_e) ?                                \
+-                            ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL);          \
+-                  } else {                                                       \
+-                      _hs_list = _hs_e;                                          \
+-                  }                                                              \
+-                  if (_hs_e) {                                                   \
+-                  _hs_e->prev = ((_hs_tail) ?                                    \
+-                     ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL);              \
+-                  }                                                              \
+-                  _hs_tail = _hs_e;                                              \
+-              }                                                                  \
+-              _hs_p = _hs_q;                                                     \
+-          }                                                                      \
+-          if (_hs_tail){                                                         \
+-            _hs_tail->next = NULL;                                               \
+-          }                                                                      \
+-          if ( _hs_nmerges <= 1 ) {                                              \
+-              _hs_looping=0;                                                     \
+-              (head)->hh.tbl->tail = _hs_tail;                                   \
+-              DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list));      \
+-          }                                                                      \
+-          _hs_insize *= 2;                                                       \
+-      }                                                                          \
+-      HASH_FSCK(hh,head);                                                        \
+- }                                                                               \
+-} while (0)
+-
+-/* This function selects items from one hash into another hash. 
+- * The end result is that the selected items have dual presence 
+- * in both hashes. There is no copy of the items made; rather 
+- * they are added into the new hash through a secondary hash 
+- * hash handle that must be present in the structure. */
+-#define HASH_SELECT(hh_dst, dst, hh_src, src, cond)                              \
+-do {                                                                             \
+-  unsigned _src_bkt, _dst_bkt;                                                   \
+-  void *_last_elt=NULL, *_elt;                                                   \
+-  UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL;                         \
+-  ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst));                 \
+-  if (src) {                                                                     \
+-    for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) {     \
+-      for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head;                \
+-          _src_hh;                                                               \
+-          _src_hh = _src_hh->hh_next) {                                          \
+-          _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh);                       \
+-          if (cond(_elt)) {                                                      \
+-            _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho);               \
+-            _dst_hh->key = _src_hh->key;                                         \
+-            _dst_hh->keylen = _src_hh->keylen;                                   \
+-            _dst_hh->hashv = _src_hh->hashv;                                     \
+-            _dst_hh->prev = _last_elt;                                           \
+-            _dst_hh->next = NULL;                                                \
+-            if (_last_elt_hh) { _last_elt_hh->next = _elt; }                     \
+-            if (!dst) {                                                          \
+-              DECLTYPE_ASSIGN(dst,_elt);                                         \
+-              HASH_MAKE_TABLE(hh_dst,dst);                                       \
+-            } else {                                                             \
+-              _dst_hh->tbl = (dst)->hh_dst.tbl;                                  \
+-            }                                                                    \
+-            HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt);    \
+-            HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh);            \
+-            (dst)->hh_dst.tbl->num_items++;                                      \
+-            _last_elt = _elt;                                                    \
+-            _last_elt_hh = _dst_hh;                                              \
+-          }                                                                      \
+-      }                                                                          \
+-    }                                                                            \
+-  }                                                                              \
+-  HASH_FSCK(hh_dst,dst);                                                         \
+-} while (0)
+-
+-#define HASH_CLEAR(hh,head)                                                      \
+-do {                                                                             \
+-  if (head) {                                                                    \
+-    uthash_free((head)->hh.tbl->buckets,                                         \
+-                (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket));      \
+-    HASH_BLOOM_FREE((head)->hh.tbl);                                             \
+-    uthash_free((head)->hh.tbl, sizeof(UT_hash_table));                          \
+-    (head)=NULL;                                                                 \
+-  }                                                                              \
+-} while(0)
+-
+-#define HASH_OVERHEAD(hh,head)                                                   \
+- (size_t)((((head)->hh.tbl->num_items   * sizeof(UT_hash_handle))   +            \
+-           ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket))   +            \
+-            (sizeof(UT_hash_table))                                 +            \
+-            (HASH_BLOOM_BYTELEN)))
+-
+-#ifdef NO_DECLTYPE
+-#define HASH_ITER(hh,head,el,tmp)                                                \
+-for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL);       \
+-  el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) 
+-#else
+-#define HASH_ITER(hh,head,el,tmp)                                                \
+-for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL);                 \
+-  el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL))
+-#endif
+-
+-/* obtain a count of items in the hash */
+-#define HASH_COUNT(head) HASH_CNT(hh,head) 
+-#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0)
+-
+-typedef struct UT_hash_bucket {
+-   struct UT_hash_handle *hh_head;
+-   unsigned count;
+-
+-   /* expand_mult is normally set to 0. In this situation, the max chain length
+-    * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If
+-    * the bucket's chain exceeds this length, bucket expansion is triggered). 
+-    * However, setting expand_mult to a non-zero value delays bucket expansion
+-    * (that would be triggered by additions to this particular bucket)
+-    * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH.
+-    * (The multiplier is simply expand_mult+1). The whole idea of this
+-    * multiplier is to reduce bucket expansions, since they are expensive, in
+-    * situations where we know that a particular bucket tends to be overused.
+-    * It is better to let its chain length grow to a longer yet-still-bounded
+-    * value, than to do an O(n) bucket expansion too often. 
+-    */
+-   unsigned expand_mult;
+-
+-} UT_hash_bucket;
+-
+-/* random signature used only to find hash tables in external analysis */
+-#define HASH_SIGNATURE 0xa0111fe1
+-#define HASH_BLOOM_SIGNATURE 0xb12220f2
+-
+-typedef struct UT_hash_table {
+-   UT_hash_bucket *buckets;
+-   unsigned num_buckets, log2_num_buckets;
+-   unsigned num_items;
+-   struct UT_hash_handle *tail; /* tail hh in app order, for fast append    */
+-   ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */
+-
+-   /* in an ideal situation (all buckets used equally), no bucket would have
+-    * more than ceil(#items/#buckets) items. that's the ideal chain length. */
+-   unsigned ideal_chain_maxlen;
+-
+-   /* nonideal_items is the number of items in the hash whose chain position
+-    * exceeds the ideal chain maxlen. these items pay the penalty for an uneven
+-    * hash distribution; reaching them in a chain traversal takes >ideal steps */
+-   unsigned nonideal_items;
+-
+-   /* ineffective expands occur when a bucket doubling was performed, but 
+-    * afterward, more than half the items in the hash had nonideal chain
+-    * positions. If this happens on two consecutive expansions we inhibit any
+-    * further expansion, as it's not helping; this happens when the hash
+-    * function isn't a good fit for the key domain. When expansion is inhibited
+-    * the hash will still work, albeit no longer in constant time. */
+-   unsigned ineff_expands, noexpand;
+-
+-   uint32_t signature; /* used only to find hash tables in external analysis */
+-#ifdef HASH_BLOOM
+-   uint32_t bloom_sig; /* used only to test bloom exists in external analysis */
+-   uint8_t *bloom_bv;
+-   char bloom_nbits;
+-#endif
+-
+-} UT_hash_table;
+-
+-typedef struct UT_hash_handle {
+-   struct UT_hash_table *tbl;
+-   void *prev;                       /* prev element in app order      */
+-   void *next;                       /* next element in app order      */
+-   struct UT_hash_handle *hh_prev;   /* previous hh in bucket order    */
+-   struct UT_hash_handle *hh_next;   /* next hh in bucket order        */
+-   void *key;                        /* ptr to enclosing struct's key  */
+-   unsigned keylen;                  /* enclosing struct's key len     */
+-   unsigned hashv;                   /* result of hash-fcn(key)        */
+-} UT_hash_handle;
+-
+-#endif /* UTHASH_H */
+-- 
+2.15.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/build.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/build.patch
deleted file mode 100644
index 0d0912b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/build.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From ebd7c8e548e9b8e096ee4c390173db9a701f2604 Mon Sep 17 00:00:00 2001
-From: Bruno Bottazzini <bruno.bottazzini@intel.com>
-Date: Wed, 23 Mar 2016 11:18:26 -0300
-Subject: [PATCH] build
-
-Disable stripping and allow easily overriding prefix
-
-Upstream-Status: Pending
-
-Signed-off-by: Bruno Bottazzini <bruno.bottazzini@intel.com>
----
- client/Makefile  | 4 ++--
- config.mk        | 2 +-
- lib/Makefile     | 2 +-
- lib/cpp/Makefile | 2 +-
- src/Makefile     | 4 ++--
- 5 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/client/Makefile b/client/Makefile
-index bd65355..4e5a640 100644
---- a/client/Makefile
-+++ b/client/Makefile
-@@ -24,8 +24,8 @@ client_shared.o : client_shared.c client
- 
- install : all
- 	$(INSTALL) -d ${DESTDIR}$(prefix)/bin
--	$(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto_pub ${DESTDIR}${prefix}/bin/mosquitto_pub
--	$(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto_sub ${DESTDIR}${prefix}/bin/mosquitto_sub
-+	$(INSTALL) mosquitto_pub ${DESTDIR}${prefix}/bin/mosquitto_pub
-+	$(INSTALL) mosquitto_sub ${DESTDIR}${prefix}/bin/mosquitto_sub
- 
- uninstall :
- 	-rm -f ${DESTDIR}${prefix}/bin/mosquitto_pub
-diff --git a/config.mk b/config.mk
-index c0f175f..3427b83 100644
---- a/config.mk
-+++ b/config.mk
-@@ -241,7 +241,7 @@ ifeq ($(WITH_DOCS),yes)
- endif
- 
- INSTALL?=install
--prefix=/usr/local
-+prefix?=/usr
- mandir=${prefix}/share/man
- localedir=${prefix}/share/locale
- STRIP?=strip
-diff --git a/lib/Makefile b/lib/Makefile
-index 825fcea..9b7c05c 100644
---- a/lib/Makefile
-+++ b/lib/Makefile
-@@ -25,7 +25,7 @@ all : libmosquitto.so.${SOVERSION} libmo
- 
- install : all
- 	$(INSTALL) -d ${DESTDIR}$(prefix)/lib${LIB_SUFFIX}/
--	$(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} libmosquitto.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquitto.so.${SOVERSION}
-+	$(INSTALL) libmosquitto.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquitto.so.${SOVERSION}
- 	ln -sf libmosquitto.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquitto.so
- 	$(INSTALL) -d ${DESTDIR}${prefix}/include/
- 	$(INSTALL) mosquitto.h ${DESTDIR}${prefix}/include/mosquitto.h
-diff --git a/lib/cpp/Makefile b/lib/cpp/Makefile
-index 8b627d3..cdb2923 100644
---- a/lib/cpp/Makefile
-+++ b/lib/cpp/Makefile
-@@ -10,7 +10,7 @@ all : libmosquittopp.so.${SOVERSION}
- 
- install : all
- 	$(INSTALL) -d ${DESTDIR}$(prefix)/lib${LIB_SUFFIX}/
--	$(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so.${SOVERSION}
-+	$(INSTALL) libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so.${SOVERSION}
- 	ln -sf libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so
- 	$(INSTALL) -d ${DESTDIR}${prefix}/include/
- 	$(INSTALL) mosquittopp.h ${DESTDIR}${prefix}/include/mosquittopp.h
-diff --git a/src/Makefile b/src/Makefile
-index 2cfb7d4..9a97644 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -103,12 +103,12 @@ mosquitto_passwd.o : mosquitto_passwd.c
- 
- install : all
- 	$(INSTALL) -d ${DESTDIR}$(prefix)/sbin
--	$(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto ${DESTDIR}${prefix}/sbin/mosquitto
-+	$(INSTALL) mosquitto ${DESTDIR}${prefix}/sbin/mosquitto
-	$(INSTALL) -d ${DESTDIR}$(prefix)/include
- 	$(INSTALL) mosquitto_plugin.h ${DESTDIR}${prefix}/include/mosquitto_plugin.h
- ifeq ($(WITH_TLS),yes)
-	$(INSTALL) -d ${DESTDIR}$(prefix)/bin
--	$(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto_passwd ${DESTDIR}${prefix}/bin/mosquitto_passwd
-+	$(INSTALL) mosquitto_passwd ${DESTDIR}${prefix}/bin/mosquitto_passwd
- endif
- 
- uninstall :
--- 
-2.7.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb
index 7554248..13ce381 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb
@@ -8,9 +8,11 @@
                     file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \
                     file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
 "
+DEPENDS = "uthash"
 
 SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
-           file://build.patch \
+           file://0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch \
+           file://0002-uthash-remove-in-tree-version.patch \
            file://mosquitto.service \
            file://mosquitto.init \
 "
@@ -26,6 +28,7 @@
 PACKAGECONFIG[ssl] = ",,openssl"
 PACKAGECONFIG[uuid] = ",,util-linux"
 EXTRA_OEMAKE = "${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \
+                STRIP=/bin/true \
                 WITH_DOCS=no \
                 ${@bb.utils.contains('PACKAGECONFIG', 'ssl', 'WITH_TLS=yes WITH_TLS_PSK=yes', 'WITH_TLS=no WITH_TLS_PSK=no', d)} \
                 ${@bb.utils.contains('PACKAGECONFIG', 'uuid', 'WITH_UUID=yes', 'WITH_UUID=no', d)}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
index e10b89c..715b023 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
@@ -11,6 +11,8 @@
 SRC_URI[md5sum] = "961ca5db6fe9c97024e133cc6203cc4d"
 SRC_URI[sha256sum] = "b399465ddbd6d0217abedd9411d9d74a820effa0a6a142adc448268d3920094f"
 
-inherit autotools-brokensep pkgconfig
+inherit distro_features_check autotools-brokensep pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 FILES_${PN} += "${datadir}/dbus-1/"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
index 2db48f3..1b56685 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
@@ -25,6 +25,8 @@
 
 #--enable-apps --enable-syslog
 
+ASNEEDED = ""
+
 do_install_append () {
     rmdir ${D}${bindir}
 }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb
index 489861c..b4a914d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb
@@ -16,6 +16,8 @@
 
 inherit cmake pkgconfig
 
+OECMAKE_GENERATOR = "Unix Makefiles"
+
 PACKAGECONFIG ?= ""
 # fuse support will need meta-filesystems layer
 PACKAGECONFIG[fuse] = "-DENABLE_FUSE=ON,-DENABLE_FUSE=OFF,fuse"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch
deleted file mode 100644
index f0a1d33..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Upstream-Status: Backport [debian]
-
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -37,16 +37,15 @@
- # Use the following only on GNU/Linux and only if you need ps listing like "smsd: MAINPROCESS" and "smsd: GSM1"
- # CFLAGS += -D USE_LINUX_PS_TRICK
- 
--all: smsd 
--
--smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
--
- ifneq (,$(findstring SOLARIS,$(CFLAGS)))
- ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
- override LFLAGS += -lsocket -lnsl
- endif
- endif
- 
-+all: smsd 
-+
-+smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
- ifneq (,$(findstring NOSTATS,$(CFLAGS)))
- 	$(CC) $(CFLAGS) -o $@ $^ $(LFLAGS)
- else 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch
new file mode 100644
index 0000000..49b4d1d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch
@@ -0,0 +1,51 @@
+From 85602c3e531d39e89dc8cee0c4a592f85006a064 Mon Sep 17 00:00:00 2001
+From: Bill Randle <bill.randle@gmail.com>
+Date: Sun, 31 Dec 2017 09:08:23 -0800
+
+---
+ scripts/sendsms     | 2 +-
+ scripts/sms2html    | 2 +-
+ scripts/sms2unicode | 2 +-
+ scripts/unicode2sms | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/scripts/sendsms b/scripts/sendsms
+index 512026d..bb56856 100755
+--- a/scripts/sendsms
++++ b/scripts/sendsms
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ # This script send a text sms at the command line by creating
+ # a sms file in the outgoing queue.
+ 
+diff --git a/scripts/sms2html b/scripts/sms2html
+index ff253e3..946185e 100755
+--- a/scripts/sms2html
++++ b/scripts/sms2html
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ 
+ # This script converts a received sms file into a html file. 
+ 
+diff --git a/scripts/sms2unicode b/scripts/sms2unicode
+index 46e2756..2826dc1 100755
+--- a/scripts/sms2unicode
++++ b/scripts/sms2unicode
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ 
+ # This script converts a received sms file into a pure unicode text file.
+ 
+diff --git a/scripts/unicode2sms b/scripts/unicode2sms
+index 2ae86dc..3fccf0d 100755
+--- a/scripts/unicode2sms
++++ b/scripts/unicode2sms
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ 
+ # This script converts a pure unicode text file into an sms file for sending.
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch
new file mode 100644
index 0000000..e1d79d3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch
@@ -0,0 +1,24 @@
+From 9a4a872dca78ca9cb6bdc228be61f5a4c2d68b1f Mon Sep 17 00:00:00 2001
+From: Kai Ulrich <kaiu@gmx.de>
+Date: Wed, 18 Mar 2015 11:20:53 +0100
+
+---
+ scripts/sms3 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/sms3 b/scripts/sms3
+index 6b990bf..09c063b 100755
+--- a/scripts/sms3
++++ b/scripts/sms3
+@@ -24,9 +24,9 @@ INFOFILE="/var/run/smsd.working"
+ # Logfile can also be defined in here:
+ LOGFILE="/var/log/smsd.log"
+ 
+-DAEMON=/usr/local/bin/smsd
++DAEMON=/usr/bin/smsd
+ # A program which turns power off for couple of seconds:
+-RESETMODEMS=/usr/local/bin/smsd_resetmodems
++RESETMODEMS=/usr/bin/smsd_resetmodems
+ NAME=smsd
+ PSOPT="-e"
+ ECHO=echo
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath_and_psops.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath_and_psops.patch
deleted file mode 100644
index ffcaa09..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath_and_psops.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: smstools3/scripts/sms3
-===================================================================
---- smstools3.orig/scripts/sms3	2010-05-04 11:21:44.000000000 +0200
-+++ smstools3/scripts/sms3	2015-02-22 20:05:51.615074469 +0100
-@@ -24,11 +24,11 @@
- # Logfile can also be defined in here:
- LOGFILE="/var/log/smsd.log"
- 
--DAEMON=/usr/local/bin/smsd
-+DAEMON=/usr/bin/smsd
- # A program which turns power off for couple of seconds:
--RESETMODEMS=/usr/local/bin/smsd_resetmodems
-+RESETMODEMS=/usr/bin/smsd_resetmodems
- NAME=smsd
--PSOPT="-e"
-+PSOPT=""
- ECHO=echo
- case `uname` in
-   *BSD|Darwin)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
similarity index 84%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
index 310a13c..6e6413b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
@@ -6,18 +6,17 @@
 HOMEPAGE = "http://smstools3.kekekasvi.com"
 
 SRC_URI = "http://smstools3.kekekasvi.com/packages/${BP}.tar.gz \
-           file://sms_binpath_and_psops.patch \
-           file://fix-makefile-override.patch"
+           file://sms_binpath.patch \
+           file://scripts_no_bash.patch"
 
-SRC_URI[md5sum] = "0241ef60e646fac1a06254a848e61ed7"
-SRC_URI[sha256sum] = "ed00ffaeaa312a5b4f969f4e97a64603a866bbe16e393ea02f5bf05234814d59"
+SRC_URI[md5sum] = "6a9f038fb38a49cc3a4f8f14a88fb8af"
+SRC_URI[sha256sum] = "a26ba4c02b16f6cf13177bffca6c9230dc5fefaeba8e3030cd4e4905f6a92084"
 
 
 S = "${WORKDIR}/${BPN}"
 
 EXTRA_OEMAKE += "LFLAGS='${LDFLAGS}'"
 
-RDEPENDS_${PN} = "bash"
 INITSCRIPT_NAME = "sms3"
 INITSCRIPT_PARAMS = "defaults"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
new file mode 100644
index 0000000..8192056
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
@@ -0,0 +1,49 @@
+From f567740cf64978ac9db014c786b6d0267b244f33 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 4 Mar 2018 22:30:30 -0800
+Subject: [PATCH 1/2] replace SIGCLD with SIGCHLD and include sys/types.h
+
+Fixes
+main.c:129:10: error: 'SIGCLD' undeclared (first use in this function); did you mean 'SIGCHLD'?
+   signal(SIGCLD, sig_child);
+          ^~~~~~
+          SIGCHLD
+
+main.c:125:2: warning: implicit declaration of function 'umask' [-Wimplicit-function-declaration]
+  umask(0);
+  ^~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/main.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index 3cf4072..cd34196 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -31,6 +31,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/wait.h>
+ #include <sys/param.h>
++#include <sys/types.h>
+ #include <pthread.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -126,9 +127,9 @@ static void daemon_start(int ignsigcld)
+ 
+ 	if (ignsigcld) {
+ #ifdef SIGTSTP
+-		signal(SIGCLD, sig_child);
++		signal(SIGCHLD, sig_child);
+ #else
+-		signal(SIGCLD, SIG_IGN);
++		signal(SIGCHLD, SIG_IGN);
+ #endif
+ 	}
+ }
+-- 
+2.16.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
new file mode 100644
index 0000000..90d12da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
@@ -0,0 +1,143 @@
+From 19b6cf8099e1974b5fc39086fc54103b0cbc2658 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 4 Mar 2018 23:01:25 -0800
+Subject: [PATCH 2/2] replace PTHREAD_MUTEX_FAST_NP with PTHREAD_MUTEX_NORMAL
+
+PTHREAD_MUTEX_FAST_NP is not available on non-posix systems
+e.g. musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/ha.c        | 2 +-
+ src/icmp6.c     | 2 +-
+ src/mh.c        | 2 +-
+ src/mn.c        | 2 +-
+ src/movement.c  | 2 +-
+ src/mpdisc_ha.c | 2 +-
+ src/mpdisc_mn.c | 2 +-
+ src/tqueue.c    | 2 +-
+ src/tunnelctl.c | 2 +-
+ 9 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/ha.c b/src/ha.c
+index fbdcff0..b2f811e 100644
+--- a/src/ha.c
++++ b/src/ha.c
+@@ -1246,7 +1246,7 @@ int ha_init(void)
+ {
+ 	pthread_mutexattr_t mattrs;
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&bu_worker_mutex, &mattrs) ||
+ 	    pthread_cond_init(&cond, NULL))
+ 		return -1;
+diff --git a/src/icmp6.c b/src/icmp6.c
+index 3695135..6460634 100644
+--- a/src/icmp6.c
++++ b/src/icmp6.c
+@@ -243,7 +243,7 @@ int icmp6_init(void)
+ 		return -1;
+ 	/* create ICMP listener thread */
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&icmp6_sock.send_mutex, &mattrs) ||
+ 	    pthread_rwlock_init(&handler_lock, NULL) ||
+ 	    pthread_create(&icmp6_listener, NULL, icmp6_listen, NULL))
+diff --git a/src/mh.c b/src/mh.c
+index 60e345e..7928f4c 100644
+--- a/src/mh.c
++++ b/src/mh.c
+@@ -204,7 +204,7 @@ int mh_init(void)
+ 		return -1;
+ 
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&mh_sock.send_mutex, &mattrs) ||
+ 	    pthread_rwlock_init(&handler_lock, NULL) ||
+ 	    pthread_create(&mh_listener, NULL, mh_listen, NULL))
+diff --git a/src/mn.c b/src/mn.c
+index 092cfcb..8f7f448 100644
+--- a/src/mn.c
++++ b/src/mn.c
+@@ -1478,7 +1478,7 @@ static struct home_addr_info *hai_copy(struct home_addr_info *conf_hai)
+ 	if (hai != NULL) {
+ 		pthread_mutexattr_t mattrs;
+ 		pthread_mutexattr_init(&mattrs);
+-		pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++		pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 
+ 		memcpy(hai, conf_hai, sizeof(struct home_addr_info));
+ 
+diff --git a/src/movement.c b/src/movement.c
+index d985937..6400448 100644
+--- a/src/movement.c
++++ b/src/movement.c
+@@ -2013,7 +2013,7 @@ int md_init(void)
+ 	int val;
+ 
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&iface_lock, &mattrs))
+ 		return -1;
+ 
+diff --git a/src/mpdisc_ha.c b/src/mpdisc_ha.c
+index 40ba05f..fd7a90d 100644
+--- a/src/mpdisc_ha.c
++++ b/src/mpdisc_ha.c
+@@ -559,7 +559,7 @@ int mpd_ha_init(void)
+ {
+ 	pthread_mutexattr_t mattrs;
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&mpa_lock, &mattrs) ||
+ 	    pthread_rwlock_init(&prefix_lock, NULL) ||
+ 	    hash_init(&mpa_hash, DOUBLE_ADDR, MPA_BUCKETS) < 0)
+diff --git a/src/mpdisc_mn.c b/src/mpdisc_mn.c
+index 4873bd6..ada02bd 100644
+--- a/src/mpdisc_mn.c
++++ b/src/mpdisc_mn.c
+@@ -267,7 +267,7 @@ int mpd_mn_init(void)
+ {
+ 	pthread_mutexattr_t mattrs;
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&mps_lock, &mattrs))
+ 		return -1;
+ 	if (hash_init(&mps_hash, DOUBLE_ADDR, MPS_BUCKETS) < 0)
+diff --git a/src/tqueue.c b/src/tqueue.c
+index 2f7aa0b..9c185b8 100644
+--- a/src/tqueue.c
++++ b/src/tqueue.c
+@@ -65,7 +65,7 @@ int taskqueue_init(void)
+ {
+ 	pthread_mutexattr_t mattrs;
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&mutex, &mattrs) ||
+ 	    pthread_cond_init(&cond, NULL) ||
+ 	    pthread_create(&tq_runner, NULL, runner, NULL))
+diff --git a/src/tunnelctl.c b/src/tunnelctl.c
+index 23fc20b..813b8ec 100644
+--- a/src/tunnelctl.c
++++ b/src/tunnelctl.c
+@@ -433,7 +433,7 @@ int tunnelctl_init(void)
+ 		return -1;
+ 
+ 	pthread_mutexattr_init(&mattrs);
+-	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
++	pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
+ 	if (pthread_mutex_init(&tnl_lock, &mattrs))
+ 		return -1;
+ 
+-- 
+2.16.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb
index 2129e37..0c120bf 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb
@@ -14,6 +14,8 @@
            file://mip6d \
            file://mip6d.service \
            file://0001-Add-format-string-to-fprintf-call.patch \
+           file://0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch \
+           file://0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch \
            "
 SRCREV = "7d67209cd1bba2dd0e183a0fa07eeef07964dd14"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
index a64745c..4920bce 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
@@ -4,8 +4,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94"
 DEPENDS = "zeromq"
 
-SRCREV = "68a7b09cfce01c4c279fba2cf91686fcfc566848"
-PV = "4.1.5+git${SRCPV}"
+SRCREV = "6aa3ab686e916cb0e62df7fa7d12e0b13ae9fae6"
+PV = "4.2.3+git${SRCPV}"
 
 SRC_URI = "git://github.com/zeromq/cppzmq.git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb
similarity index 73%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.6.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb
index e126f32..356348b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb
@@ -6,11 +6,11 @@
 PACKAGECONFIG ??= "libsodium"
 PACKAGECONFIG[libsodium] = "--with-libsodium, --without-libsodium, libsodium"
 
-SRC_URI = "http://github.com/zeromq/zeromq4-1/releases/download/v${PV}/zeromq-${PV}.tar.gz \
+SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \
     file://run-ptest \
 "
-SRC_URI[md5sum] = "c89db4dbc0b90c34c9f4983cbff6d321"
-SRC_URI[sha256sum] = "02ebf60a43011e770799336365bcbce2eb85569e9b5f52aa0d8cc04672438a0a"
+SRC_URI[md5sum] = "a1c95b34384257e986842f4d006957b8"
+SRC_URI[sha256sum] = "cc9090ba35713d59bb2f7d7965f877036c49c5558ea0c290b0dcc6f2a17e489f"
 
 S = "${WORKDIR}/zeromq-${PV}"
 
@@ -28,5 +28,5 @@
 
 do_install_ptest () {
     install -d ${D}${PTEST_PATH}/tests
-    install -m 0755 ${B}/.libs/test_* ${D}${PTEST_PATH}/tests
+    install -m 0755 ${B}/tests/.libs/test_* ${D}${PTEST_PATH}/tests
 }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-Comment-rst2man-related-stuff.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-Comment-rst2man-related-stuff.patch
new file mode 100644
index 0000000..f10c49e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0001-Comment-rst2man-related-stuff.patch
@@ -0,0 +1,34 @@
+From a92fd7da3a262e21c0970a3908eb0b4502819a01 Mon Sep 17 00:00:00 2001
+From: Yang Lyu <yangl@axis.com>
+Date: Fri, 23 Feb 2018 16:31:49 +0100
+Subject: [PATCH] Comment rst2man related stuff
+
+---
+ meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 56d38e4..3c3b109 100644
+--- a/meson.build
++++ b/meson.build
+@@ -15,7 +15,7 @@ add_project_arguments('-DBINDIR="' + join_paths(get_option('prefix'), get_option
+ cc = meson.get_compiler('c')
+ conf = configuration_data()
+ mod_pkgconfig = import('pkgconfig')
+-prog_rst2man = find_program('rst2man', 'rst2man.py')
++#prog_rst2man = find_program('rst2man', 'rst2man.py')
+ 
+ sub_cdvar = subproject('c-dvar', version: '>=1')
+ sub_clist = subproject('c-list', version: '>=3')
+@@ -56,7 +56,7 @@ endif
+ 
+ conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
+ 
+-subdir('docs')
++#subdir('docs')
+ subdir('src')
+ 
+ if use_launcher
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-Correct-including-directory-for-conf.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-Correct-including-directory-for-conf.patch
new file mode 100644
index 0000000..4909dea
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker/0002-Correct-including-directory-for-conf.patch
@@ -0,0 +1,25 @@
+From 4b79f603b948709906c108796087de7b5643f61a Mon Sep 17 00:00:00 2001
+From: Yang Lyu <yangl@axis.com>
+Date: Mon, 26 Feb 2018 12:48:34 +0100
+Subject: [PATCH] Correct including directory for conf
+
+---
+ src/launch/config.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/launch/config.c b/src/launch/config.c
+index 6a68699..579471b 100644
+--- a/src/launch/config.c
++++ b/src/launch/config.c
+@@ -1022,7 +1022,7 @@ static void config_parser_end_fn(void *userdata, const XML_Char *name) {
+                                     state->file,
+                                     state->current->include.selinux_root_relative ?
+                                         bus_selinux_policy_root() :
+-                                        state->file->path,
++                                        NULL,
+                                     state->current->cdata);
+                 if (r) {
+                         state->error = error_trace(r);
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_git.bb
new file mode 100644
index 0000000..b62bccf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_git.bb
@@ -0,0 +1,32 @@
+SUMMARY = "dbus broker"
+DESCRIPTION = "Drop-in replacement for dbus-daemon."
+
+SECTION = "base"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8"
+
+DEPENDS = "dbus glib-2.0 expat"
+
+PV = "9+git${SRCPV}"
+SRCREV = "ccd06b284892182af569e69046262331150e3536"
+
+SRC_URI = "git://github.com/bus1/dbus-broker;protocol=git"
+SRC_URI += "file://0001-Comment-rst2man-related-stuff.patch"
+SRC_URI += "file://0002-Correct-including-directory-for-conf.patch"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+FILES_${PN} += "${systemd_system_unitdir}"
+FILES_${PN} += "${systemd_user_unitdir}"
+
+RDEPENDS_${PN} = "dbus"
+
+BBCLASSEXTEND = "native"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch
index 0c2c487..b108a4c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch
@@ -33,10 +33,10 @@
  src/pipe.cpp                  | 2 +-
  3 files changed, 3 insertions(+), 3 deletions(-)
 
-diff --git a/src/eventloop-integration.cpp b/src/eventloop-integration.cpp
-index 5776971..271b503 100644
---- a/src/eventloop-integration.cpp
-+++ b/src/eventloop-integration.cpp
+Index: libdbus-c++-0.9.0/src/eventloop-integration.cpp
+===================================================================
+--- libdbus-c++-0.9.0.orig/src/eventloop-integration.cpp
++++ libdbus-c++-0.9.0/src/eventloop-integration.cpp
 @@ -36,7 +36,7 @@
  /* STD */
  #include <string.h>
@@ -44,12 +44,12 @@
 -#include <sys/poll.h>
 +#include <poll.h>
  #include <fcntl.h>
- #include <unistd.h>
  
-diff --git a/src/eventloop.cpp b/src/eventloop.cpp
-index f622812..7790e1e 100644
---- a/src/eventloop.cpp
-+++ b/src/eventloop.cpp
+ using namespace DBus;
+Index: libdbus-c++-0.9.0/src/eventloop.cpp
+===================================================================
+--- libdbus-c++-0.9.0.orig/src/eventloop.cpp
++++ libdbus-c++-0.9.0/src/eventloop.cpp
 @@ -28,7 +28,7 @@
  #include <dbus-c++/eventloop.h>
  #include <dbus-c++/debug.h>
@@ -59,10 +59,10 @@
  #include <sys/time.h>
  
  #include <dbus/dbus.h>
-diff --git a/src/pipe.cpp b/src/pipe.cpp
-index 01211b3..45c2ba6 100644
---- a/src/pipe.cpp
-+++ b/src/pipe.cpp
+Index: libdbus-c++-0.9.0/src/pipe.cpp
+===================================================================
+--- libdbus-c++-0.9.0.orig/src/pipe.cpp
++++ libdbus-c++-0.9.0/src/pipe.cpp
 @@ -32,7 +32,7 @@
  
  /* STD */
@@ -72,6 +72,3 @@
  #include <fcntl.h>
  #include <errno.h>
  #include <cassert>
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/fix-missing-unistd.h-include.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/fix-missing-unistd.h-include.patch
index 903a720..bf6870e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/fix-missing-unistd.h-include.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/fix-missing-unistd.h-include.patch
@@ -24,17 +24,15 @@
  include/dbus-c++/eventloop-integration.h |    1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/include/dbus-c++/eventloop-integration.h b/include/dbus-c++/eventloop-integration.h
-index 5108340..1b56ab5 100644
---- a/include/dbus-c++/eventloop-integration.h
-+++ b/include/dbus-c++/eventloop-integration.h
-@@ -27,6 +27,7 @@
+Index: libdbus-c++-0.9.0/include/dbus-c++/eventloop-integration.h
+===================================================================
+--- libdbus-c++-0.9.0.orig/include/dbus-c++/eventloop-integration.h
++++ libdbus-c++-0.9.0/include/dbus-c++/eventloop-integration.h
+@@ -26,6 +26,7 @@
+ #define __DBUSXX_EVENTLOOP_INTEGRATION_H
  
- #include <cstring>
  #include <errno.h>
 +#include <unistd.h>
  #include "api.h"
  #include "dispatcher.h"
  #include "util.h"
--- 
-1.7.9.7
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch
new file mode 100644
index 0000000..a172a93
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch
@@ -0,0 +1,39 @@
+From 4f8c68757b05d12392cd1a8aed174cb8e56f80e3 Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Thu, 5 Apr 2018 17:19:44 +0300
+Subject: [PATCH] ell: fix build with musl libc
+
+musl libc doesn't implement TEMP_FAILURE_RETRY. Use the
+TEMP_FAILURE_RETRY from glibc to fix build.
+
+Upstream-Status: Submitted [https://lists.01.org/pipermail/ell/2018-April/001209.html]
+
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ ell/dbus.h | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/ell/dbus.h b/ell/dbus.h
+index a7c08d2..3ff5e0f 100644
+--- a/ell/dbus.h
++++ b/ell/dbus.h
+@@ -28,6 +28,16 @@
+ #include <stddef.h>
+ #include <stdarg.h>
+ 
++/* taken from glibc unistd.h for musl support */
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression)             \
++  (__extension__                                   \
++    ({ long int __result;                          \
++       do __result = (long int) (expression);      \
++       while (__result == -1L && errno == EINTR);  \
++       __result; }))
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+-- 
+2.4.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_0.4.bb
similarity index 64%
rename from import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_0.4.bb
index 10df6e1..1524bd6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_0.4.bb
@@ -7,8 +7,10 @@
 inherit autotools pkgconfig
 
 S = "${WORKDIR}/git"
-SRCREV = "7b7c15c2e5caff88fc45e7a8b874a47196a0eddd"
-SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git"
+SRCREV = "b4aea06fabb2af1af01f861f8f394c75950b6d47"
+SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git \
+           file://0001-ell-fix-build-with-musl-libc.patch \
+          "
 
 do_configure_prepend () {
     mkdir ${S}/build-aux
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch
new file mode 100644
index 0000000..7899022
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch
@@ -0,0 +1,40 @@
+From 838fe84c2ddcc9af51c34f751defbf3dd0ba8a06 Mon Sep 17 00:00:00 2001
+From: Kjell Ahlstedt <kjellahlstedt@gmail.com>
+Date: Wed, 20 Dec 2017 20:00:32 +0100
+Subject: [PATCH] Glib::Threads::Private: Fix gobj()
+
+Bug 791711
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Backport [https://github.com/GNOME/glibmm/commit/37d57ae9572b7d74aa385a30313eceae7f2d3fce]
+ glib/glibmm/threads.h | 2 +-
+ glib/src/threads.hg   | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/glib/glibmm/threads.h b/glib/glibmm/threads.h
+index f7e2b82a..2c0cbe8c 100644
+--- a/glib/glibmm/threads.h
++++ b/glib/glibmm/threads.h
+@@ -657,7 +657,7 @@ public:
+    */
+   inline void replace(T* data);
+ 
+-  GPrivate* gobj() { return gobject_; }
++  GPrivate* gobj() { return &gobject_; }
+ 
+ private:
+   GPrivate gobject_;
+diff --git a/glib/src/threads.hg b/glib/src/threads.hg
+index 86d7a17b..c82a6130 100644
+--- a/glib/src/threads.hg
++++ b/glib/src/threads.hg
+@@ -628,7 +628,7 @@ public:
+    */
+   inline void replace(T* data);
+ 
+-  GPrivate* gobj() { return gobject_; }
++  GPrivate* gobj() { return &gobject_; }
+ 
+ private:
+   GPrivate gobject_;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
index a5944c2..d32fe78 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
@@ -1,7 +1,16 @@
-Index: glibmm-2.22.1/Makefile.am
-===================================================================
---- glibmm-2.22.1.orig/Makefile.am
-+++ glibmm-2.22.1/Makefile.am
+From f48a69fd11b2eda6c43ff046c202cbc4dcd4e92d Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Tue, 12 Jul 2011 11:46:37 +0200
+
+---
+ Makefile.am  | 7 +------
+ configure.ac | 1 -
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index a0df8af..c3d5e06 100644
+--- a/Makefile.am
++++ b/Makefile.am
 @@ -23,12 +23,7 @@ src_subdirs = glib/src gio/src
  else
  src_subdirs =
@@ -16,15 +25,15 @@
  
  glibmm_includedir = $(includedir)/$(GLIBMM_MODULE_NAME)
  glibmm_include_HEADERS = glib/glibmm.h
-Index: glibmm-2.22.1/configure.ac
-===================================================================
---- glibmm-2.22.1.orig/configure.ac
-+++ glibmm-2.22.1/configure.ac
-@@ -136,7 +136,6 @@ AC_CONFIG_FILES([Makefile
+diff --git a/configure.ac b/configure.ac
+index c20e778..74203be 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -166,7 +166,6 @@ AC_CONFIG_FILES([Makefile
                   gio/src/Makefile
                   gio/giomm/Makefile
                   tests/Makefile
 -                 examples/Makefile
                   docs/Makefile
                   docs/reference/Doxyfile
-                  MSVC_Net2005/glibmm/glibmm.rc
+                  MSVC_Net2013/glibmm/glibmm.rc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.50.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb
similarity index 80%
rename from import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.50.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb
index 9cc558f..4706432 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.50.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb
@@ -2,7 +2,7 @@
 HOMEPAGE = "http://www.gtkmm.org/"
 SECTION = "libs"
 LICENSE = "LGPLv2.1 & GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \
                     file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
 
 DEPENDS = "mm-common glib-2.0 libsigc++-2.0 glib-2.0-native"
@@ -13,9 +13,10 @@
 SRC_URI = " \
     ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \
     file://remove-examples.patch \
+    file://0001-Glib-Threads-Private-Fix-gobj.patch \
 "
-SRC_URI[md5sum] = "a5b915dc42fc62983fa78ca8486f4391"
-SRC_URI[sha256sum] = "1fd85051da9cb402cc8348cec72dfe4d79f9345df4a1dbf68703a4ded45846a4"
+SRC_URI[md5sum] = "dee5ebe309f5976c3dacfcf5c43a062b"
+SRC_URI[sha256sum] = "7cc28c732b04d70ed34f0c923543129083cfb90580ea4a2b4be5b38802bf6a4a"
 
 do_install_append() {
     install -d ${D}${datadir}/glibmm-2.4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.10.bb
deleted file mode 100644
index 899eb8a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.10.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-inherit gnomebase
-
-GNOME_COMPRESS_TYPE="xz"
-
-SRC_URI[archive.md5sum] = "49dc47af8c89ce5b3c768306b9a0f922"
-SRC_URI[archive.sha256sum] = "16c0e2bc196b67fbc145edaecb5dbe5818386504fe5703de27002d77140fa217"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-BBCLASSEXTEND = "native"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb
new file mode 100644
index 0000000..591caa7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb
@@ -0,0 +1,9 @@
+inherit gnomebase
+
+SRC_URI[archive.md5sum] = "d6f2a43589480d2315672da0b5839b56"
+SRC_URI[archive.sha256sum] = "20d1e7466ca4c83c92e29f9e8dfcc8e5721fdf1337f53157bed97be3b73b32a8"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/files/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/files/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch
new file mode 100644
index 0000000..6a86c76
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/files/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch
@@ -0,0 +1,34 @@
+From 746c690f57b52e6fe21cc2a11b5bb71d25af3128 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 13 Dec 2017 16:15:57 +0100
+Subject: [PATCH] Make full path to systemd-tty-ask-password-agent configurable
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ configure.ac | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index aad673e..6b37179 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -48,7 +48,10 @@ PLYMOUTH_LIBS="-lm -lrt -ldl"
+ AC_SUBST(PLYMOUTH_CFLAGS)
+ AC_SUBST(PLYMOUTH_LIBS)
+ 
+-AC_PATH_PROG([SYSTEMD_ASK_PASSWORD_AGENT], [systemd-tty-ask-password-agent])
++AC_ARG_WITH(systemd-tty-ask-password-agent, AS_HELP_STRING([--with-systemd-tty-ask-password-agent],[path of systemd-tty-ask-password-agent]),SYSTEMD_ASK_PASSWORD_AGENT=${withval},SYSTEMD_ASK_PASSWORD_AGENT=/bin/systemd-tty-ask-password-agent)
++AC_SUBST(SYSTEMD_ASK_PASSWORD_AGENT)
++
++# checked: UDEVADM is not used
+ AC_PATH_PROG([UDEVADM], [udevadm])
+ 
+ AC_ARG_ENABLE(pango, AS_HELP_STRING([--enable-pango],[enable building with pango, disabled there is no encryption prompts]),enable_pango=$enableval,enable_pango=yes)
+-- 
+2.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
index 6163cff..7e8d6e3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
@@ -16,13 +16,16 @@
 PROVIDES = "virtual/psplash"
 RPROVIDES_${PN} = "virtual-psplash virtual-psplash-support"
 
-SRC_URI = "http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.bz2"
+SRC_URI = " \
+    http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.bz2 \
+    file://0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch \
+"
 SRC_URI[md5sum] = "ff420994deb7ea203df678df92e7ab7d"
 SRC_URI[sha256sum] = "2f0ce82042cf9c7eadd2517a1f74c8a85fa8699781d9f294a06eade29fbed57f"
 
 EXTRA_OECONF += " --enable-shared --disable-static --disable-gtk --disable-documentation \
     --with-logo=${LOGO} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-system-root-install', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-system-root-install --with-systemd-tty-ask-password-agent=${base_bindir}/systemd-tty-ask-password-agent', '', d)} \
 "
 
 PACKAGECONFIG ??= "pango initrd"
@@ -31,7 +34,7 @@
 
 PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
 PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
-PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+"
+PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3"
 PACKAGECONFIG[initrd] = ",,,"
 
 LOGO ??= "${datadir}/plymouth/bizcom.png"
@@ -39,9 +42,6 @@
 inherit autotools pkgconfig systemd
 
 do_install_append() {
-    install -d ${D}${systemd_unitdir}/system
-    install -m 644 ${B}/systemd-units/*.service ${D}${systemd_unitdir}/system
-    install -m 644 ${B}/systemd-units/systemd-ask-password-plymouth.path ${D}${systemd_unitdir}/system
     # Remove /var/run from package as plymouth will populate it on startup
     rm -fr "${D}${localstatedir}/run"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
index 08f9715..347c285 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
@@ -5,13 +5,9 @@
 LICENSE = "BSD-0-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f0b8b3dd6431bcaa245da0a08bd0d511"
 
-PV = "0.7.4+git${SRCPV}"
-
-SRCREV = "78289203031afc23585035c362beec10db54958d"
-SRC_URI = "git://github.com/landley/toybox;protocol=https \
-"
-
-S = "${WORKDIR}/git"
+SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "a8bb502a1be941f06dd2644fff25f547"
+SRC_URI[sha256sum] = "3ada450ac1eab1dfc352fee915ea6129b9a4349c1885f1394b61bd2d89a46c04"
 
 SECTION = "base"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-crypto/engine-pkcs11/engine-pkcs11_0.2.2.bb
similarity index 93%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-crypto/engine-pkcs11/engine-pkcs11_0.2.2.bb
index 047f701..bc79f35 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-crypto/engine-pkcs11/engine-pkcs11_0.2.2.bb
@@ -6,7 +6,7 @@
 HOMEPAGE = "https://github.com/OpenSC/engine_pkcs11"
 SECTION = "Development/Libraries"
 LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://src/engine_pkcs11.h;startline=1;endline=26;md5=973a19f8a6105de047f2adfbbfc04c33"
+LIC_FILES_CHKSUM = "file://src/engine_pkcs11.h;beginline=1;endline=26;md5=973a19f8a6105de047f2adfbbfc04c33"
 DEPENDS = "openssl libp11"
 
 SRC_URI = "git://github.com/OpenSC/engine_pkcs11.git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmcrypt/libmcrypt_2.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libmcrypt/libmcrypt_2.5.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsodium/libsodium_1.0.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-crypto/libsodium/libsodium_1.0.11.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libsodium/libsodium_1.0.11.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-crypto/libsodium/libsodium_1.0.11.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_git.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_git.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi.inc b/import-layers/meta-openembedded/meta-oe/recipes-dbs/libdbi/libdbi.inc
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi.inc
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/libdbi/libdbi.inc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/libdbi/libdbi_0.9.0.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/libdbi/libdbi_0.9.0.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
similarity index 64%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
index 09d49d2..aa01e95 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
@@ -9,11 +9,11 @@
  src/mongo/util/SConscript | 2 ++
  2 files changed, 8 insertions(+), 2 deletions(-)
 
-diff --git a/SConstruct b/SConstruct
-index 5082a4b..3370f70 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -507,6 +507,7 @@ def variable_arch_converter(val):
+Index: git/SConstruct
+===================================================================
+--- git.orig/SConstruct
++++ git/SConstruct
+@@ -548,6 +548,7 @@ def variable_arch_converter(val):
          'amd64':  'x86_64',
          'emt64':   'x86_64',
          'x86':    'i386',
@@ -21,8 +21,8 @@
      }
      val = val.lower()
  
-@@ -568,7 +569,8 @@ env_vars.Add('ARFLAGS',
-     converter=variable_shlex_converter)
+@@ -627,7 +628,8 @@ env_vars.Add(
+ )
  
  env_vars.Add('CC',
 -    help='Select the C compiler to use')
@@ -31,7 +31,7 @@
  
  env_vars.Add('CCFLAGS',
      help='Sets flags for the C and C++ compiler',
-@@ -588,7 +590,8 @@ env_vars.Add('CPPPATH',
+@@ -647,7 +649,8 @@ env_vars.Add('CPPPATH',
      converter=variable_shlex_converter)
  
  env_vars.Add('CXX',
@@ -41,7 +41,7 @@
  
  env_vars.Add('CXXFLAGS',
      help='Sets flags for the C++ compiler',
-@@ -818,6 +821,7 @@ envDict = dict(BUILD_ROOT=buildDir,
+@@ -895,6 +898,7 @@ envDict = dict(BUILD_ROOT=buildDir,
                 )
  
  env = Environment(variables=env_vars, **envDict)
@@ -49,19 +49,16 @@
  del envDict
  
  env.AddMethod(env_os_is_wrapper, 'TargetOSIs')
-diff --git a/src/mongo/util/SConscript b/src/mongo/util/SConscript
-index 6add602..8d05a62 100644
---- a/src/mongo/util/SConscript
-+++ b/src/mongo/util/SConscript
-@@ -251,6 +251,8 @@ if get_option('allocator') == 'tcmalloc':
-                 'MONGO_HAVE_GPERFTOOLS_GET_THREAD_CACHE_SIZE'
+Index: git/src/mongo/util/SConscript
+===================================================================
+--- git.orig/src/mongo/util/SConscript
++++ git/src/mongo/util/SConscript
+@@ -274,6 +274,8 @@ if env['MONGO_ALLOCATOR'] == 'tcmalloc':
+                 'MONGO_HAVE_GPERFTOOLS_SIZE_CLASS_STATS'
              ]
          )
 +    if not use_system_version_of_library('valgrind'):
 +        tcmspEnv.InjectThirdPartyIncludePaths('valgrind')
  
-     tcmspEnv.Library(
-         target='tcmalloc_set_parameter',
--- 
-1.9.1
-
+     if not use_system_version_of_library('valgrind'):
+         # Include valgrind since tcmalloc disables itself while running under valgrind
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
similarity index 76%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
index c43beb4..389b302 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -13,11 +13,11 @@
  src/mongo/util/procparser.cpp | 10 +++++-----
  1 file changed, 5 insertions(+), 5 deletions(-)
 
-diff --git a/src/mongo/util/procparser.cpp b/src/mongo/util/procparser.cpp
-index 36f2ae0254..2c164bcbf3 100644
---- a/src/mongo/util/procparser.cpp
-+++ b/src/mongo/util/procparser.cpp
-@@ -260,7 +260,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
+Index: git/src/mongo/util/procparser.cpp
+===================================================================
+--- git.orig/src/mongo/util/procparser.cpp
++++ git/src/mongo/util/procparser.cpp
+@@ -260,7 +260,7 @@ Status parseProcStat(const std::vector<S
  
                      StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
  
@@ -26,7 +26,7 @@
  
                      if (!parseNumberFromString(stringValue, &value).isOK()) {
                          value = 0;
-@@ -272,7 +272,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
+@@ -272,7 +272,7 @@ Status parseProcStat(const std::vector<S
              } else {
                  StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
  
@@ -35,7 +35,7 @@
  
                  if (!parseNumberFromString(stringValue, &value).isOK()) {
                      value = 0;
-@@ -365,7 +365,7 @@ Status parseProcMemInfo(const std::vector<StringData>& keys,
+@@ -365,7 +365,7 @@ Status parseProcMemInfo(const std::vecto
  
              StringData stringValue((*partIt).begin(), (*partIt).end());
  
@@ -44,7 +44,7 @@
  
              if (!parseNumberFromString(stringValue, &value).isOK()) {
                  value = 0;
-@@ -426,7 +426,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+@@ -426,7 +426,7 @@ Status parseProcDiskStats(const std::vec
                            StringData data,
                            BSONObjBuilder* builder) {
      bool foundKeys = false;
@@ -53,7 +53,7 @@
      stats.reserve(kDiskFieldCount);
  
      using string_split_iterator = boost::split_iterator<StringData::const_iterator>;
-@@ -501,7 +501,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+@@ -501,7 +501,7 @@ Status parseProcDiskStats(const std::vec
  
                  StringData stringValue((*partIt).begin(), (*partIt).end());
  
@@ -62,6 +62,3 @@
  
                  if (!parseNumberFromString(stringValue, &value).isOK()) {
                      value = 0;
--- 
-2.14.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
similarity index 83%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
index 95f9c1c..dc488ad 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
@@ -12,10 +12,10 @@
  src/mongo/s/SConscript | 1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/src/mongo/s/SConscript b/src/mongo/s/SConscript
-index 71720be517..51bd199127 100644
---- a/src/mongo/s/SConscript
-+++ b/src/mongo/s/SConscript
+Index: git/src/mongo/s/SConscript
+===================================================================
+--- git.orig/src/mongo/s/SConscript
++++ git/src/mongo/s/SConscript
 @@ -317,5 +317,6 @@ env.Library(
          "$BUILD_DIR/mongo/db/s/sharding",
          "$BUILD_DIR/mongo/executor/network_interface_factory",
@@ -23,6 +23,3 @@
 +        "$BUILD_DIR/mongo/s/local_sharding_info",
      ],
  )
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
index 0ff7d0b..bb3ff3b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
@@ -7,11 +7,10 @@
 
 inherit scons dos2unix siteinfo
 
-PV = "3.4.6+git${SRCPV}"
-SRCREV = "c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5"
+PV = "3.4.13+git${SRCPV}"
+SRCREV = "fbdef2ccc53e0fcc9afb570063633d992b2aae42"
 SRC_URI = "git://github.com/mongodb/mongo.git;branch=v3.4 \
            file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
-           file://0001-mongo-Add-using-std-string.patch \
            file://0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch \
            file://0001-Use-long-long-instead-of-int64_t.patch \
            file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
@@ -58,7 +57,7 @@
                  --use-system-zlib \
                  --js-engine=none \
                  --nostrip \
-                 --endian=${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+                 --endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
                  ${PACKAGECONFIG_CONFARGS} \
                  mongod mongos"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.59.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.59.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
similarity index 97%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
index 263b313..99e7050 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -19,8 +19,8 @@
            file://0001-disable-ucontext-on-musl.patch \
           "
 
-SRC_URI[md5sum] = "2d4104aae0b9e5efa8878918bd329cb4"
-SRC_URI[sha256sum] = "5dbde98d7e4a5a1721b6cbed7898b2549a88866247951cf586057975c6cea641"
+SRC_URI[md5sum] = "3cec4afc06b468687ef576c90148d10d"
+SRC_URI[sha256sum] = "c3269ce20b45b177239fd1e3d6d9428a94131711f12758ebf5f65222278bb110"
 
 S = "${WORKDIR}/mariadb-${PV}"
 
@@ -82,6 +82,10 @@
                  -DCAT_EXECUTABLE=`which cat` \
                  -DCMAKE_AR:FILEPATH=${AR}"
 
+# With Ninja it fails with:
+# make: *** No rule to make target `install'.  Stop.
+OECMAKE_GENERATOR = "Unix Makefiles"
+
 ARM_INSTRUCTION_SET_armv4 = "arm"
 ARM_INSTRUCTION_SET_armv5 = "arm"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/0001-disable-ucontext-on-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/0001-disable-ucontext-on-musl.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/change-cc-to-cc-version.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/change-cc-to-cc-version.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/configure.cmake-fix-valgrind.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/configure.cmake-fix-valgrind.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-cmake-module-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-cmake-module-path.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-mysqlclient-r-version.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch
similarity index 91%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-mysqlclient-r-version.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch
index 7516619..a519e42 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-mysqlclient-r-version.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch
@@ -25,9 +25,8 @@
 
 ---
  cmake/install_macros.cmake | 25 +++++++++++++++----------
- cmake/mysql_version.cmake  |  3 ++-
- libmysql/CMakeLists.txt    | 36 ++++++++++++++++++++++++++++--------
- 3 files changed, 45 insertions(+), 19 deletions(-)
+ libmysql/CMakeLists.txt    | 34 +++++++++++++++++++++++++++-------
+ 2 files changed, 42 insertions(+), 17 deletions(-)
 
 diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake
 index b8efdf8..a0d0e68 100644
@@ -39,8 +38,8 @@
  # 
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
-@@ -111,28 +111,33 @@ FUNCTION(INSTALL_SCRIPT)
- ENDFUNCTION()
+@@ -167,28 +167,33 @@ ENDFUNCTION()
+ 
  
  # Install symbolic link to CMake target. 
 -# the link is created in the same directory as target
@@ -86,8 +85,8 @@
 index be5760f..96286ff 100644
 --- a/libmysql/CMakeLists.txt
 +++ b/libmysql/CMakeLists.txt
-@@ -180,6 +180,12 @@ IF(MSVC)
-  INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug)
+@@ -433,6 +433,12 @@ IF(MSVC)
+  INSTALL_DEBUG_TARGET(clientlib DESTINATION ${INSTALL_LIBDIR}/debug)
  ENDIF()
  
 +MACRO(GET_TARGET_NAME target out_name)
@@ -99,7 +98,7 @@
  IF(UNIX)
    MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME)
      SET(DOT_VERSION ".${VERSION}")
-@@ -192,7 +198,13 @@ IF(UNIX)
+@@ -445,7 +451,13 @@ IF(UNIX)
        SET(${OUTNAME} ${LIBNAME}${EXTENSION}${DOT_VERSION})
      ENDIF() 
    ENDMACRO()
@@ -114,7 +113,7 @@
  ENDIF()
  
  IF(NOT DISABLE_SHARED)
-@@ -205,10 +217,9 @@ IF(NOT DISABLE_SHARED)
+@@ -456,10 +468,9 @@ IF(NOT DISABLE_SHARED)
      # libtool compatability
      IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
        SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}")
@@ -127,7 +126,7 @@
      ENDIF()
      # Name of shared library is mysqlclient on Unix
      SET_TARGET_PROPERTIES(libmysql PROPERTIES 
-@@ -239,8 +250,13 @@ IF(NOT DISABLE_SHARED)
+@@ -482,8 +493,13 @@ IF(NOT DISABLE_SHARED)
        "${CMAKE_SHARED_LIBRARY_SUFFIX}"
        ""
        linkname)
@@ -143,7 +142,7 @@
      LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS)
      FOREACH(ver ${OS_SHARED_LIB_SYMLINKS})
        GET_VERSIONED_LIBNAME(
-@@ -248,7 +264,11 @@ IF(NOT DISABLE_SHARED)
+@@ -491,7 +507,11 @@ IF(NOT DISABLE_SHARED)
          "${CMAKE_SHARED_LIBRARY_SUFFIX}"
          "${ver}"
          linkname)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/install_db
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/install_db
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db.service b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/install_db.service
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db.service
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/install_db.service
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/my.cnf b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/my.cnf
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/my.cnf
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/my.cnf
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/mysql-systemd-start
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/mysql-systemd-start
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysqld.service b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/mysqld.service
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysqld.service
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/mysqld.service
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/remove-bad-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/remove-bad-path.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.59.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.59.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
similarity index 83%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
index d08ec6a..ce2a60c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
@@ -12,11 +12,11 @@
  configure.in | 15 ++-------------
  1 file changed, 2 insertions(+), 13 deletions(-)
 
-diff --git a/configure.in b/configure.in
-index f8bf466..1f4fabf 100644
---- a/configure.in
-+++ b/configure.in
-@@ -734,19 +734,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build with XML support],
+Index: postgresql-9.4.15/configure.in
+===================================================================
+--- postgresql-9.4.15.orig/configure.in
++++ postgresql-9.4.15/configure.in
+@@ -759,19 +759,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build w
                [AC_DEFINE([USE_LIBXML], 1, [Define to 1 to build with XML support. (--with-libxml)])])
  
  if test "$with_libxml" = yes ; then
@@ -38,6 +38,3 @@
  fi
  
  AC_SUBST(with_libxml)
--- 
-1.8.3.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
similarity index 75%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
index e199f39..9715109 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
@@ -13,11 +13,11 @@
  configure.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/configure.in b/configure.in
-index ae1a5a0..9a0970d 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1877,7 +1877,7 @@ if test "$with_tcl" = yes; then
+Index: postgresql-9.4.15/configure.in
+===================================================================
+--- postgresql-9.4.15.orig/configure.in
++++ postgresql-9.4.15/configure.in
+@@ -1879,7 +1879,7 @@ if test "$with_tcl" = yes; then
  fi
  
  # check for <perl.h>
@@ -26,6 +26,3 @@
    ac_save_CPPFLAGS=$CPPFLAGS
    CPPFLAGS="$CPPFLAGS -I$perl_archlibexp/CORE"
    AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file <perl.h> is required for Perl])],
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-bashprofile b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql-bashprofile
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-bashprofile
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql-bashprofile
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-setup b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql-setup
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-setup
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql-setup
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.init b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.init
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.init
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.init
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.pam b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.pam
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.pam
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.pam
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.service b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.service
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.service
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.service
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql.inc b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql.inc
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_9.4.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_9.4.17.bb
new file mode 100644
index 0000000..061184a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_9.4.17.bb
@@ -0,0 +1,14 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=6dc95e63aa4d72502ff8193dfe2ddd38"
+
+SRC_URI += "\
+    file://not-check-libperl.patch \
+"
+
+do_compile_prepend_libc-musl() {
+    sed -i -e 's/\-lnsl//g' ${B}/src/Makefile.global
+}
+
+SRC_URI[md5sum] = "0a08f4078f5e4a54e764f63ad38a6de3"
+SRC_URI[sha256sum] = "7a320cd335052b840d209dc9688f09965763351c590e3cc7bf577591179fd7c6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/run-ptest
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/files/run-ptest
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/files/run-ptest
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc.inc b/import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc.inc
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc.inc
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc.inc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_09.05.0300.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_09.05.0300.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rocksdb/rocksdb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/rocksdb/rocksdb_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
index 9b19c1a..1e6cbae 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rocksdb/rocksdb_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
@@ -6,10 +6,11 @@
                     file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
 
-SRCREV = "266ac245affd69555643b735d19d3715c4eff91a"
-PV = "5.8+git${SRCPV}"
+SRCREV = "8969445642039566214d650cc6614849e7dd5e17"
+SRCBRANCH = "5.12.fb"
+PV = "5.12.2"
 
-SRC_URI = "git://github.com/facebook/${BPN}.git"
+SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH}"
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci/soci_libdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/soci/soci/soci_libdir.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci/soci_libdir.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/soci/soci/soci_libdir.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci_3.2.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/soci/soci_3.2.3.bb
similarity index 91%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci_3.2.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/soci/soci_3.2.3.bb
index 1f5a485..3f22d38 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci_3.2.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-dbs/soci/soci_3.2.3.bb
@@ -12,8 +12,8 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BP}/${BP}.tar.gz \
            file://soci_libdir.patch \
           "
-SRC_URI[md5sum] = "bc3c35f6cd3f80a1be19fe30b3c111bf"
-SRC_URI[sha256sum] = "30ea2f4d26639ef5b5cdc24fb300b3896746243dbb77b743582de2ff443ccb1c"
+SRC_URI[md5sum] = "acfbccf176cd20e06833a8037a2d3699"
+SRC_URI[sha256sum] = "2c659db0f4f7b424bbcffe195c03c293a1dbf676189a27b077fb2aab4d53a610"
 
 TESTCONFIG = '-DSOCI_TEST_EMPTY_CONNSTR="dummy" -DSOCI_TEST_SQLITE3_CONNSTR="test.db" \
               -DSOCI_TEST_POSTGRESQL_CONNSTR:STRING="dbname=soci_test" \
@@ -38,7 +38,7 @@
 EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}"
 DISABLE_STATIC = ""
 
-inherit cmake
+inherit dos2unix cmake
 
 PACKAGES += "${PN}-sqlite3 ${PN}-mysql ${PN}-postgresql ${PN}-odbc ${PN}-oracle"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch b/import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc b/import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/sqlite.pc
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/sqlite.pc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite_2.8.17.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-dbs/sqlite/sqlite_2.8.17.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
index 85af81f..5c90397 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
@@ -1,19 +1,50 @@
+From aa669312a380611d280d126cb509fa282080707e Mon Sep 17 00:00:00 2001
+From: Markus Mayer <mmayer@mmayer.net>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] android-tools: add recipe from AOSP tag android-5.1.1_r37
+
 Description: add -o argument to preserve ownership
-Author: Markus Mayer <mmayer@mmayer.net>
 
 See also https://android-review.googlesource.com/#/c/100312/
 
 Upstream-Status: Inappropriate
+
 ---
- system/extras/ext4_utils/make_ext4fs.c      |    6 ++++++
- system/extras/ext4_utils/make_ext4fs_main.c |   10 ++++++++--
+ ext4_utils/make_ext4fs.c      |  6 ++++++
+ ext4_utils/make_ext4fs_main.c | 10 ++++++++--
  2 files changed, 14 insertions(+), 2 deletions(-)
 
---- a/system/extras/ext4_utils/make_ext4fs_main.c
-+++ b/system/extras/ext4_utils/make_ext4fs_main.c
-@@ -49,13 +49,15 @@ extern struct fs_info info;
+diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
+index 2f89ae8a..cc41d623 100644
+--- a/ext4_utils/make_ext4fs.c
++++ b/ext4_utils/make_ext4fs.c
+@@ -68,6 +68,8 @@
  
- extern struct selabel_handle* selinux_android_file_context_handle(void);
+ #endif
+ 
++int preserve_owner = 0;
++
+ /* TODO: Not implemented:
+    Allocating blocks in the same block group as the file inode
+    Hash or binary tree directories
+@@ -186,6 +188,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
+ 		} else {
+ 			dentries[i].mtime = fixed_time;
+ 		}
++		if (preserve_owner) {
++			dentries[i].uid = stat.st_uid;
++			dentries[i].gid = stat.st_gid;
++		}
+ 		uint64_t capabilities;
+ 		if (fs_config_func != NULL) {
+ #ifdef ANDROID
+diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
+index a6c5f616..7af0dddf 100644
+--- a/ext4_utils/make_ext4fs_main.c
++++ b/ext4_utils/make_ext4fs_main.c
+@@ -48,13 +48,15 @@ struct selabel_handle;
+ extern struct fs_info info;
+ 
  
 +extern int preserve_owner;
 +
@@ -28,7 +59,7 @@
  	fprintf(stderr, "    <filename> [<directory>]\n");
  }
  
-@@ -81,7 +83,7 @@ int main(int argc, char **argv)
+@@ -80,7 +82,7 @@ int main(int argc, char **argv)
  	struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
  #endif
  
@@ -37,7 +68,7 @@
  		switch (opt) {
  		case 'l':
  			info.len = parse_num(optarg);
-@@ -144,6 +146,10 @@ int main(int argc, char **argv)
+@@ -143,6 +145,10 @@ int main(int argc, char **argv)
  			}
  #endif
  			break;
@@ -48,25 +79,3 @@
  		case 'v':
  			verbose = 1;
  			break;
---- a/system/extras/ext4_utils/make_ext4fs.c
-+++ b/system/extras/ext4_utils/make_ext4fs.c
-@@ -67,6 +67,8 @@
- 
- #endif
- 
-+int preserve_owner = 0;
-+
- /* TODO: Not implemented:
-    Allocating blocks in the same block group as the file inode
-    Hash or binary tree directories
-@@ -185,6 +187,10 @@ static u32 build_directory_structure(con
- 		} else {
- 			dentries[i].mtime = fixed_time;
- 		}
-+		if (preserve_owner) {
-+			dentries[i].uid = stat.st_uid;
-+			dentries[i].gid = stat.st_gid;
-+		}
- 		uint64_t capabilities;
- 		if (fs_config_func != NULL) {
- #ifdef ANDROID
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index d3ccd1d..780ecaa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -9,7 +9,6 @@
 "
 DEPENDS = "libbsd libpcre openssl zlib libcap"
 
-ANDROID_TAG = "android-5.1.1_r37"
 ANDROID_MIRROR = "android.googlesource.com"
 CORE_REPO = "${ANDROID_MIRROR}/platform/system/core"
 EXTRAS_REPO = "${ANDROID_MIRROR}/platform/system/extras"
@@ -17,16 +16,23 @@
 LIBSELINUX_REPO = "${ANDROID_MIRROR}/platform/external/libselinux"
 BUILD_REPO = "${ANDROID_MIRROR}/platform/build"
 
+# matches with android-5.1.1_r37
+SRCREV_core = "2314b110bdebdbfd2d94c502282f9e57c849897e"
+SRCREV_extras = "3ecbe8d841df96127d7855661293e5ab6ba6c205"
+SRCREV_libhardware = "be55eb1f4d840c82ffaf7c47460df17ff5bc4d9b"
+SRCREV_libselinux = "07e9e1339ad1ba608acfba9dce2d0f474b252feb"
+SRCREV_build = "16e987def3d7d8f7d30805eb95cef69e52a87dbc"
+
 SRC_URI = " \
-    git://${CORE_REPO};name=core;protocol=https;nobranch=1;destsuffix=git/system/core;tag=${ANDROID_TAG} \
-    git://${EXTRAS_REPO};name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras;tag=${ANDROID_TAG} \
-    git://${LIBHARDWARE_REPO};name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware;tag=${ANDROID_TAG} \
-    git://${LIBSELINUX_REPO};name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux;tag=${ANDROID_TAG} \
-    git://${BUILD_REPO};name=build;protocol=https;nobranch=1;destsuffix=git/build;tag=${ANDROID_TAG} \
+    git://${CORE_REPO};name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
+    git://${EXTRAS_REPO};name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
+    git://${LIBHARDWARE_REPO};name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
+    git://${LIBSELINUX_REPO};name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
+    git://${BUILD_REPO};name=build;protocol=https;nobranch=1;destsuffix=git/build \
     file://remove-selinux-android.patch \
     file://use-capability.patch \
     file://use-local-socket.patch \
-    file://preserve-ownership.patch \
+    file://preserve-ownership.patch;patchdir=system/extras \
     file://mkbootimg-Add-dt-parameter-to-specify-DT-image.patch \
     file://remove-bionic-android.patch \
     file://define-shell-command.patch \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
new file mode 100644
index 0000000..c762754
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
@@ -0,0 +1,52 @@
+From 57ecf7205feedd23f901e1bb9d193787e559e433 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Tue, 23 Jan 2018 15:13:26 -0800
+Subject: [PATCH] disable calls to getcontext() with musl
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ src/client/linux/handler/exception_handler.cc | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
+index cca023f..f3e460c 100644
+--- a/src/client/linux/handler/exception_handler.cc
++++ b/src/client/linux/handler/exception_handler.cc
+@@ -495,7 +495,19 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
+   siginfo.si_code = SI_USER;
+   siginfo.si_pid = getpid();
+   ucontext_t context;
++#if defined(__GLIBC__)
+   getcontext(&context);
++#else
++  // Extreme hack: Allow musl builds to compile - but don't expect them to work.
++  // Although musl provides a definition for getcontext() in ucontext.h (which
++  // enough to build libbreakpad_client) musl does not provide a corresponding
++  // getcontext() function, so builds will fail when attempting to link anything
++  // with libbreakpad_client. Disabling calls to getcontext() is a temporary
++  // hack. The real fix is probably to enable Breakpad's own implementation of
++  // getcontext() when building for musl (it's currently only enabled when
++  // building for Android).
++  memset (&context, 0, sizeof(context));
++#endif
+   return HandleSignal(sig, &siginfo, &context);
+ }
+ 
+@@ -680,9 +692,14 @@ bool ExceptionHandler::WriteMinidump() {
+   sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
+ 
+   CrashContext context;
++#if defined(__GLIBC__)
+   int getcontext_result = getcontext(&context.context);
+   if (getcontext_result)
+     return false;
++#else
++  // Extreme hack - see comments above.
++  memset (&context.context, 0, sizeof(&context.context));
++#endif
+ 
+ #if defined(__i386__)
+   // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch
deleted file mode 100644
index 80de8c6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From fa7a3b7312307acad0045549d5f306e7fd117804 Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sun, 1 Feb 2015 14:34:44 +0100
-Subject: [PATCH 5/6] Import necessary definitions from stab.h
-
----
- configure.ac                        |   1 -
- src/common/android/include/stab.h   | 100 ------------------------------------
- src/common/common.gyp               |   1 -
- src/common/stabs_reader.cc          |   1 -
- src/common/stabs_reader.h           |  13 +++--
- src/common/stabs_reader_unittest.cc |   1 -
- 6 files changed, 10 insertions(+), 107 deletions(-)
- delete mode 100644 src/common/android/include/stab.h
-
-diff --git a/configure.ac b/configure.ac
-index 2223920..0e55cd9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -73,7 +73,6 @@ AC_HEADER_STDC
- AC_SYS_LARGEFILE
- m4_include(m4/ax_pthread.m4)
- AX_PTHREAD
--AC_CHECK_HEADERS([a.out.h])
- 
- # Only build Linux client libs when compiling for Linux
- case $host in
-diff --git a/src/common/android/include/stab.h b/src/common/android/include/stab.h
-deleted file mode 100644
-index cd92902..0000000
---- a/src/common/android/include/stab.h
-+++ /dev/null
-@@ -1,100 +0,0 @@
--// Copyright (c) 2012, Google Inc.
--// All rights reserved.
--//
--// Redistribution and use in source and binary forms, with or without
--// modification, are permitted provided that the following conditions are
--// met:
--//
--//     * Redistributions of source code must retain the above copyright
--// notice, this list of conditions and the following disclaimer.
--//     * Redistributions in binary form must reproduce the above
--// copyright notice, this list of conditions and the following disclaimer
--// in the documentation and/or other materials provided with the
--// distribution.
--//     * Neither the name of Google Inc. nor the names of its
--// contributors may be used to endorse or promote products derived from
--// this software without specific prior written permission.
--//
--// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
--// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
--// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
--// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
--// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
--// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
--// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
--// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
--// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
--// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
--#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
--#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
--
--#include <sys/cdefs.h>
--
--#ifdef __BIONIC_HAVE_STAB_H
--#include <stab.h>
--#else
--
--#ifdef __cplusplus
--extern "C" {
--#endif  // __cplusplus
--
--#define _STAB_CODE_LIST       \
--  _STAB_CODE_DEF(UNDF,0x00)   \
--  _STAB_CODE_DEF(GSYM,0x20)   \
--  _STAB_CODE_DEF(FNAME,0x22)  \
--  _STAB_CODE_DEF(FUN,0x24)    \
--  _STAB_CODE_DEF(STSYM,0x26)  \
--  _STAB_CODE_DEF(LCSYM,0x28)  \
--  _STAB_CODE_DEF(MAIN,0x2a)   \
--  _STAB_CODE_DEF(PC,0x30)     \
--  _STAB_CODE_DEF(NSYMS,0x32)  \
--  _STAB_CODE_DEF(NOMAP,0x34)  \
--  _STAB_CODE_DEF(OBJ,0x38)    \
--  _STAB_CODE_DEF(OPT,0x3c)    \
--  _STAB_CODE_DEF(RSYM,0x40)   \
--  _STAB_CODE_DEF(M2C,0x42)    \
--  _STAB_CODE_DEF(SLINE,0x44)  \
--  _STAB_CODE_DEF(DSLINE,0x46) \
--  _STAB_CODE_DEF(BSLINE,0x48) \
--  _STAB_CODE_DEF(BROWS,0x48)  \
--  _STAB_CODE_DEF(DEFD,0x4a)   \
--  _STAB_CODE_DEF(EHDECL,0x50) \
--  _STAB_CODE_DEF(MOD2,0x50)   \
--  _STAB_CODE_DEF(CATCH,0x54)  \
--  _STAB_CODE_DEF(SSYM,0x60)   \
--  _STAB_CODE_DEF(SO,0x64)     \
--  _STAB_CODE_DEF(LSYM,0x80)   \
--  _STAB_CODE_DEF(BINCL,0x82)  \
--  _STAB_CODE_DEF(SOL,0x84)    \
--  _STAB_CODE_DEF(PSYM,0xa0)   \
--  _STAB_CODE_DEF(EINCL,0xa2)  \
--  _STAB_CODE_DEF(ENTRY,0xa4)  \
--  _STAB_CODE_DEF(LBRAC,0xc0)  \
--  _STAB_CODE_DEF(EXCL,0xc2)   \
--  _STAB_CODE_DEF(SCOPE,0xc4)  \
--  _STAB_CODE_DEF(RBRAC,0xe0)  \
--  _STAB_CODE_DEF(BCOMM,0xe2)  \
--  _STAB_CODE_DEF(ECOMM,0xe4)  \
--  _STAB_CODE_DEF(ECOML,0xe8)  \
--  _STAB_CODE_DEF(NBTEXT,0xf0) \
--  _STAB_CODE_DEF(NBDATA,0xf2) \
--  _STAB_CODE_DEF(NBBSS,0xf4)  \
--  _STAB_CODE_DEF(NBSTS,0xf6)  \
--  _STAB_CODE_DEF(NBLCS,0xf8)  \
--  _STAB_CODE_DEF(LENG,0xfe)
--
--enum __stab_debug_code {
--#define _STAB_CODE_DEF(x,y)  N_##x = y,
--_STAB_CODE_LIST
--#undef _STAB_CODE_DEF
--};
--
--#ifdef __cplusplus
--}  // extern "C"
--#endif  // __cplusplus
--
--#endif  // __BIONIC_HAVE_STAB_H
--
--#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
-diff --git a/src/common/common.gyp b/src/common/common.gyp
-index f01ede5..c49ff85 100644
---- a/src/common/common.gyp
-+++ b/src/common/common.gyp
-@@ -46,7 +46,6 @@
-         'android/include/elf.h',
-         'android/include/link.h',
-         'android/include/sgidefs.h',
--        'android/include/stab.h',
-         'android/include/sys/procfs.h',
-         'android/include/sys/signal.h',
-         'android/include/sys/user.h',
-diff --git a/src/common/stabs_reader.cc b/src/common/stabs_reader.cc
-index 6019fc7..9562caa 100644
---- a/src/common/stabs_reader.cc
-+++ b/src/common/stabs_reader.cc
-@@ -34,7 +34,6 @@
- #include "common/stabs_reader.h"
- 
- #include <assert.h>
--#include <stab.h>
- #include <string.h>
- 
- #include <string>
-diff --git a/src/common/stabs_reader.h b/src/common/stabs_reader.h
-index d89afc0..591f007 100644
---- a/src/common/stabs_reader.h
-+++ b/src/common/stabs_reader.h
-@@ -53,12 +53,19 @@
- #include <config.h>
- #endif
- 
--#ifdef HAVE_A_OUT_H
--#include <a.out.h>
--#endif
- #ifdef HAVE_MACH_O_NLIST_H
- #include <mach-o/nlist.h>
- #endif
-+// Definitions from <stab.h> and <a.out.h> for systems which
-+// do not have them
-+#undef N_UNDF
-+#define N_UNDF 0x0
-+#define N_FUN 0x24
-+#define N_SLINE 0x44
-+#define N_SO 0x64
-+#define N_LSYM 0x80
-+#define N_BINCL 0x82
-+#define N_SOL 0x84
- 
- #include <string>
- #include <vector>
-diff --git a/src/common/stabs_reader_unittest.cc b/src/common/stabs_reader_unittest.cc
-index a84da1c..854ac42 100644
---- a/src/common/stabs_reader_unittest.cc
-+++ b/src/common/stabs_reader_unittest.cc
-@@ -33,7 +33,6 @@
- 
- #include <assert.h>
- #include <errno.h>
--#include <stab.h>
- #include <stdarg.h>
- #include <stdlib.h>
- #include <string.h>
--- 
-2.0.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
index 5f6d82c..d9773c9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
@@ -41,6 +41,7 @@
            file://0005-md2core-Replace-basename.patch \
            file://0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch \
            file://mcontext.patch \
+           file://0001-disable-calls-to-getcontext-with-musl.patch \
            file://0001-lss-Match-syscalls-to-match-musl.patch;patchdir=src/third_party/lss \
            file://mips_asm_sgidefs.patch;patchdir=src/third_party/lss \
 "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
index d3bfab7..9e5058f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
@@ -1,8 +1,16 @@
-Index: git/configure
-===================================================================
---- git.orig/configure	2012-11-19 21:07:51.917429465 -0800
-+++ git/configure	2012-11-19 21:13:19.337437278 -0800
-@@ -439,14 +442,18 @@
+From ab0eec78382bd00ce533aec2c84fd50c1733033d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 5 Jan 2013 19:42:51 -0800
+
+---
+ configure | 32 ++++++++++++++++++--------------
+ 1 file changed, 18 insertions(+), 14 deletions(-)
+
+diff --git a/configure b/configure
+index 76c2812..78ce2ff 100755
+--- a/configure
++++ b/configure
+@@ -535,14 +535,18 @@ else
  	GZIP_SUFFIX=".gz"
  fi
  
@@ -25,12 +33,16 @@
 +	cat << EOF > .1.c
  #include <stdio.h>
  int main(void) {
- #if defined(__GNUC__) && (__GNUC__ >= 4)
-@@ -569,16 +576,16 @@
+ #if defined(_WIN32)
+@@ -569,16 +573,16 @@ int main(void) {
  #endif
  }
  EOF
--
++	$CC -o .1 .1.c
++	COMPILER=`./.1`
++	r=$?
++	rm -f .1.c .1
+ 
 -$CC -o .1 .1.c
 -COMPILER=`./.1`
 -r=$?
@@ -40,11 +52,6 @@
 -	assert "" "update compiler"
 -else
 -	echo "success [$CC]"
-+	$CC -o .1 .1.c
-+	COMPILER=`./.1`
-+	r=$?
-+	rm -f .1.c .1
-+
 +	if test "$r" -ne 0; then
 +		assert "" "update compiler"
 +	else
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
new file mode 100644
index 0000000..7a70f75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
+DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
+from the CPUID instruction, and also determines the exact model of CPU(s). \
+It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
+UMC, NexGen, Rise, and SiS CPUs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz"
+SRC_URI[md5sum] = "1c46a6662626c5a6eaca626f23a5a7d7"
+SRC_URI[sha256sum] = "667612aae6704341dd10844e97c84c5c5c8700817a5937a3c293b55013bc4865"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+
+# The install rule from the Makefile has hardcoded paths, so we duplicate
+# the actions to accommodate different paths.
+do_install () {
+    install -d -m755 ${D}/${bindir}
+    install -m755 ${B}/cpuid ${D}/${bindir}/cpuid
+    install -d -m755 ${D}/${mandir}
+    install -m444 ${B}/cpuid.man.gz ${D}/${mandir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.7.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
index 27fe860..d8f2f89 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
@@ -11,6 +11,7 @@
 }
 
 DEPENDS = " \
+    fribidi \
     geany \
     libxml2 \
     libsoup-2.4 \
@@ -22,7 +23,9 @@
     libgit2 \
 "
 
-inherit autotools pkgconfig gtk-icon-cache
+inherit distro_features_check autotools pkgconfig gtk-icon-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2"
 SRC_URI[md5sum] = "808f9048b77fd9704569ed2ba12a56e9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
index ce36e1e..bb9d8bc 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
@@ -5,7 +5,9 @@
 
 DEPENDS = "gtk+ libxml-parser-perl-native python3-docutils-native intltool-native"
 
-inherit autotools pkgconfig perlnative pythonnative gettext
+inherit distro_features_check autotools pkgconfig perlnative pythonnative gettext
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://download.geany.org/${BP}.tar.bz2"
 SRC_URI[md5sum] = "386000be6b26972c6a699939c37cda34"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch
deleted file mode 100644
index 03cb762..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From fcf29abe59607b5791f9de18ddb86b9ae3c9b7cc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 23:50:05 -0700
-Subject: [PATCH] Add G_GNUC_PRINTF on functions with format strings
-
-This allows compilation with clang without errors, even when
--Wformat-nonliteral is active (as long as there are no real cases of
-non literal formatting).
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gladeui/glade-command.c | 4 ++--
- gladeui/glade-utils.c   | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c
-index 9819766..4ac40ee 100644
---- a/gladeui/glade-command.c
-+++ b/gladeui/glade-command.c
-@@ -266,7 +266,7 @@ glade_command_collapse (GladeCommand  *command,
-  *
-  * Marks the begining of a group.
-  */
--void
-+G_GNUC_PRINTF(1, 2) void
- glade_command_push_group (const gchar *fmt, ...)
- {
- 	va_list         args;
-@@ -655,7 +655,7 @@ glade_command_set_properties_list (GladeProject *project, GList *props)
- 
- 	multiple = g_list_length (me->sdata) > 1;
- 	if (multiple)
--		glade_command_push_group (cmd->description);
-+		glade_command_push_group ("%s", cmd->description);
- 
- 
- 	glade_command_check_group (GLADE_COMMAND (me));
-diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
-index ae52501..c51ae59 100644
---- a/gladeui/glade-utils.c
-+++ b/gladeui/glade-utils.c
-@@ -197,7 +197,7 @@ glade_utils_get_pspec_from_funcname (const gchar *funcname)
-  *          selected "OK", True if the @type was GLADE_UI_YES_OR_NO and
-  *          the user selected "YES"; False otherwise.
-  */
--gint
-+G_GNUC_PRINTF(4, 5) gint
- glade_util_ui_message (GtkWidget           *parent, 
- 		       GladeUIMessageType   type,
- 		       GtkWidget           *widget,
-@@ -320,7 +320,7 @@ remove_message_timeout (FlashInfo * fi)
-  *
-  * Flash a temporary message on the statusbar.
-  */
--void
-+G_GNUC_PRINTF(3, 4) void
- glade_util_flash_message (GtkWidget *statusbar, guint context_id, gchar *format, ...)
- {
- 	va_list args;
--- 
-2.14.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
deleted file mode 100644
index 1b24c39..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From aed002cd9ff9e8f972120fbac33b4a65aba952e1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 25 Sep 2012 10:28:33 +0200
-Subject: [PATCH] gnome-doc-utils.make: sysrooted pkg-config
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-same approach as used used in gnome-disk-utility:
-
-In cross environment we have to prepend the sysroot to the path found by
-pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
-it ends up using the files from host system. Now usually people have gnome installed
-so the build succeeds but if you dont have gnome installed on build host then
-it wont find the files on host system and packages using gnome-doc-utils wont
-compile.
-
-This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
-will be empty
-
-Upstream-Status: pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- gnome-doc-utils.make |   10 +++++-----
- 1 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make
-index 42d9df3..f71bbfa 100644
---- a/gnome-doc-utils.make
-+++ b/gnome-doc-utils.make
-@@ -133,11 +133,11 @@ _DOC_ABS_SRCDIR = @abs_srcdir@
- _xml2po ?= `which xml2po`
- _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
- 
--_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
--_db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
--_chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
--_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
--_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
-+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
-+_db2omf  ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
-+_chunks  ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
-+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
-+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
- 
- if ENABLE_SK
- _ENABLE_SK = true
--- 
-1.7.6.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
deleted file mode 100644
index f735ff8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 5aa3d2abb905fa8594f6c6572a87809da54c9342 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Mon, 5 Sep 2016 11:25:27 +0200
-Subject: [PATCH] fix gcc-6 build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- gladeui/glade-editor-property.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c
-index a0c1039..5e9ac38 100644
---- a/gladeui/glade-editor-property.c
-+++ b/gladeui/glade-editor-property.c
-@@ -2703,6 +2703,8 @@ glade_eprop_object_view (gboolean             radio)
- }
- 
- 
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- static gchar *
- glade_eprop_object_dialog_title (GladeEditorProperty *eprop)
- {
-@@ -2731,6 +2733,7 @@ glade_eprop_object_dialog_title (GladeEditorProperty *eprop)
- 	return g_strdup_printf (format, g_type_name 
- 				(eprop->klass->pspec->value_type));
- }
-+#pragma GCC diagnostic pop
- 
- 
- gboolean
--- 
-2.5.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb
deleted file mode 100644
index c4f6000..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Glade - A User Interface Designer"
-HOMEPAGE = "http://www.gnu.org/software/gnash"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
-                    file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
-                    file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "gtk+ gnome-doc-utils gnome-common libxml2 intltool-native"
-
-inherit autotools pkgconfig pythonnative gtk-icon-cache
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/glade3-${PV}.tar.xz \
-           file://0001-gnome-doc-utils.make-sysrooted-pkg-config.patch \
-           file://0002-fix-gcc-6-build.patch \
-           file://0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch \
-           "
-SRC_URI[md5sum] = "4e4b4f5ee34a03e017e4cef97d796c1f"
-SRC_URI[sha256sum] = "58a5f6e4df4028230ddecc74c564808b7ec4471b1925058e29304f778b6b2735"
-
-EXTRA_OECONF += "--disable-scrollkeeper"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gnome] = "--enable-gnome,--disable-gnome,libbonoboui libgnomeui"
-
-FILES_${PN} += "${datadir}/icons"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
similarity index 76%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
index f33b6e3..95e1737 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
@@ -9,13 +9,15 @@
 "
 
 
-inherit autotools pkgconfig gnomebase gobject-introspection
+inherit distro_features_check autotools pkgconfig gnomebase gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade/3.20/glade-${PV}.tar.xz \
            file://remove-yelp-help-rules-var.patch \
           "
-SRC_URI[md5sum] = "9964a2da14c5f845eae363889586ca43"
-SRC_URI[sha256sum] = "82d96dca5dec40ee34e2f41d49c13b4ea50da8f32a3a49ca2da802ff14dc18fe"
+SRC_URI[md5sum] = "d3dd9ba33c7d7c854ab207e1ba844dda"
+SRC_URI[sha256sum] = "07d1545570951aeded20e9fdc6d3d8a56aeefe2538734568c5335be336c6abed"
 
 EXTRA_OECONF += "--disable-man-pages"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
new file mode 100644
index 0000000..5774e62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
@@ -0,0 +1,68 @@
+From cc6dbabea0e452ebc93682df860a79ed9a45722e Mon Sep 17 00:00:00 2001
+From: Alexey Firago <alexey_firago@mentor.com>
+Date: Fri, 20 Oct 2017 00:04:19 +0300
+Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during
+ cross-compilation
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+---
+ CMakeLists.txt                    | 9 ++++++++-
+ templates/CMakeLists.txt.template | 9 ++++++++-
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f9cd630..9663934 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -328,6 +328,13 @@ function(protobuf_generate_grpc_cpp)
+     return()
+   endif()
+
++  #if cross-compiling, find host plugin
++  if(CMAKE_CROSSCOMPILING)
++      find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
++  else()
++      set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
++  endif()
++
+   set(_protobuf_include_path -I . -I ${PROTOBUF_WELLKNOWN_IMPORT_DIR})
+   foreach(FIL ${ARGN})
+     get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
+@@ -345,7 +352,7 @@ function(protobuf_generate_grpc_cpp)
+       COMMAND ${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}
+       ARGS --grpc_out=generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}
+            --cpp_out=${_gRPC_PROTO_GENS_DIR}
+-           --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
++           --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN}
+            ${_protobuf_include_path}
+            ${REL_FIL}
+       DEPENDS ${ABS_FIL} ${_gRPC_PROTOBUF_PROTOC} grpc_cpp_plugin
+diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template
+index 64daf04..a7e8629 100644
+--- a/templates/CMakeLists.txt.template
++++ b/templates/CMakeLists.txt.template
+@@ -373,6 +373,13 @@
+       return()
+     endif()
+
++    #if cross-compiling, find host plugin
++    if(CMAKE_CROSSCOMPILING)
++        find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
++    else()
++        set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
++    endif()
++
+     set(_protobuf_include_path -I . -I <%text>${PROTOBUF_WELLKNOWN_IMPORT_DIR}</%text>)
+     foreach(FIL <%text>${ARGN}</%text>)
+       get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE)
+@@ -390,7 +397,7 @@
+         COMMAND <%text>${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}</%text>
+         ARGS --grpc_out=<%text>generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}</%text>
+              --cpp_out=<%text>${_gRPC_PROTO_GENS_DIR}</%text>
+-             --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
++             --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN}
+              <%text>${_protobuf_include_path}</%text>
+              <%text>${REL_FIL}</%text>
+         DEPENDS <%text>${ABS_FIL}</%text> <%text>${_gRPC_PROTOBUF_PROTOC}</%text> grpc_cpp_plugin
+--
+2.7.4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
new file mode 100644
index 0000000..f8d9652
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
@@ -0,0 +1,166 @@
+From 8e9bf962a45a82f1c2eb5858e29fa89a3a60b564 Mon Sep 17 00:00:00 2001
+From: Alexey Firago <alexey_firago@mentor.com>
+Date: Mon, 30 Oct 2017 23:24:49 +0300
+Subject: [PATCH 1/4] CMakeLists.txt: Fix libraries installation for Linux
+
+* Set libs versions as in Makefile
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+
+%% original patch: 0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
+---
+ CMakeLists.txt                        | 55 +++++++++++++++++++++++++++++++++++
+ CMakeLists.txt => CMakeLists.txt.orig |  0
+ 2 files changed, 55 insertions(+)
+ copy CMakeLists.txt => CMakeLists.txt.orig (100%)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b1a49df..13e64ac 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,6 +30,15 @@ set(PACKAGE_TARNAME   "${PACKAGE_NAME}-${PACKAGE_VERSION}")
+ set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
+ project(${PACKAGE_NAME} C CXX)
+ 
++set (CORE_VERSION_MAJOR "4")
++set (CORE_VERSION "4.0.0")
++
++set (CPP_VERSION_MAJOR "1")
++set (CPP_VERSION "${PACKAGE_VERSION}")
++
++set (CSHARP_VERSION_MAJOR "1")
++set (CSHARP_VERSION "${PACKAGE_VERSION}")
++
+ set(gRPC_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
+ set(gRPC_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
+ set(gRPC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
+@@ -841,6 +850,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET gpr PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET gpr PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(gpr
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -1221,6 +1234,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -1535,6 +1552,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_cronet PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc_cronet PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_cronet
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -2377,6 +2398,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_unsecure PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc_unsecure PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_unsecure
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -2592,6 +2617,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++ PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++ PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc++
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -3078,6 +3107,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_cronet PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_cronet PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc++_cronet
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -3282,6 +3315,11 @@ protobuf_generate_grpc_cpp(
+   src/proto/grpc/status/status.proto
+ )
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_error_details PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_error_details PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
++
+ target_include_directories(grpc++_error_details
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+   PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -3408,6 +3446,11 @@ protobuf_generate_grpc_cpp(
+   src/proto/grpc/reflection/v1alpha/reflection.proto
+ )
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_reflection PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_reflection PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
++
+ target_include_directories(grpc++_reflection
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+   PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -3827,6 +3870,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_unsecure PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_unsecure PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc++_unsecure
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -4140,6 +4187,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_plugin_support PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc_plugin_support PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_plugin_support
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_csharp_ext PROPERTY VERSION ${CSHARP_VERSION})
++  set_property(TARGET grpc_csharp_ext PROPERTY SOVERSION ${CSHARP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_csharp_ext
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+diff --git a/CMakeLists.txt b/CMakeLists.txt.orig
+similarity index 100%
+copy from CMakeLists.txt
+copy to CMakeLists.txt.orig
+-- 
+2.16.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
new file mode 100644
index 0000000..8985022
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
@@ -0,0 +1,42 @@
+From a498b56ba96948015f0f2784b2ab8296946716ee Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Feb 2018 23:28:17 -0800
+Subject: [PATCH 4/4] CMakeLists.txt: Find c-ares in target sysroot alone
+
+Current code lets it look into native sysroot as well
+which is then preferred during cross compile and it adds
+absolute path to libcares into linker flags
+on heterogenous architectures linker complains and build
+fails
+
+| /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/grpc/1.8.5-r0/recipe-sysroot-native/usr/lib/lib
+cares.so.2.2.0: file not recognized: File format not recognized
+| collect2: error: ld returned 1 exit status
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1d7eef1..058423d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -153,10 +153,8 @@ if("${gRPC_CARES_PROVIDER}" STREQUAL "module")
+     set(gRPC_INSTALL FALSE)
+   endif()
+ elseif("${gRPC_CARES_PROVIDER}" STREQUAL "package")
+-  find_package(c-ares REQUIRED CONFIG)
+-  if(TARGET c-ares::cares)
+-    set(_gRPC_CARES_LIBRARIES c-ares::cares)
+-  endif()
++  find_package(c-ares REQUIRED)
++  set(_gRPC_CARES_LIBRARIES cares)
+   set(_gRPC_FIND_CARES "if(NOT c-ares_FOUND)\n  find_package(c-ares CONFIG)\nendif()")
+ endif()
+ 
+-- 
+2.16.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb
new file mode 100644
index 0000000..0883ec1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
+Provides gRPC libraries for multiple languages written on top of shared C core library \
+(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
+HOMEPAGE = "https://github.com/grpc/grpc"
+SECTION = "libs"
+LICENSE = "Apache-2"
+
+DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl"
+DEPENDS_append_class-target = " gtest grpc-native "
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "https://github.com/grpc/grpc/archive/v${PV}.tar.gz \
+           file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \
+           file://0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch \
+           "
+SRC_URI[md5sum] = "b565fa6787e42f4969395870c2ad436e"
+SRC_URI[sha256sum] = "df9168da760fd2ee970c74c9d1b63377e0024be248deaa844e784d0df47599de"
+
+SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
+
+inherit cmake
+
+EXTRA_OECMAKE = " \
+    -DgRPC_CARES_PROVIDER=package \
+    -DgRPC_ZLIB_PROVIDER=package \
+    -DgRPC_SSL_PROVIDER=package \
+    -DgRPC_PROTOBUF_PROVIDER=package \
+    -DgRPC_GFLAGS_PROVIDER=package \
+    -DgRPC_INSTALL=1 \
+    -DBUILD_SHARED_LIBS=ON \
+    "
+
+FILES_${PN}-dev += "${libdir}/cmake"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
index b7a02ef..88e3320 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
@@ -11,7 +11,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fa2a23dd1dc6c139f35105379d76df2b"
 
-SRCREV = "2de18021fcb11370e9b5a1fbe7dcfd673533a134"
+SRCREV = "ddabf50f72cf369bf652a95c4d9fe31a1865a781"
 SRC_URI = "git://github.com/open-source-parsers/jsoncpp"
 
 S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
index 43eff72..267c0e7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
@@ -50,3 +50,5 @@
 FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibRcf.cmake"
 
 BBCLASSEXTEND = "nativesdk"
+
+PNBLACKLIST[librcf] = " error: invalid use of incomplete type 'RCF::AsioIoService {aka class boost::asio::io_service}; among others?" 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
index 73c3811..1d69b3c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
@@ -53,6 +53,7 @@
     \
     'PREFIX=${prefix}' \
     'MULTILIB=${baselib}' \
+    'LDCONFIG=:' \
 "
 
 do_compile () {
@@ -90,3 +91,5 @@
 "
 FILES_luajit-common = "${datadir}/${BPN}-${PV}"
 
+# Aarch64 is not supported in this release 
+COMPATIBLE_HOST = "^(?!aarch64).*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/files/mercurial-CVE-2017-9462.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/files/mercurial-CVE-2017-9462.patch
deleted file mode 100644
index 3564661..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/files/mercurial-CVE-2017-9462.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-# HG changeset patch
-# User Augie Fackler <augie@google.com>
-# Date 1492021435 25200
-#      Wed Apr 12 11:23:55 2017 -0700
-# Branch stable
-# Node ID 77eaf9539499a1b8be259ffe7ada787d07857f80
-# Parent  68f263f52d2e3e2798b4f1e55cb665c6b043f93b
-dispatch: protect against malicious 'hg serve --stdio' invocations (sec)
-
-Some shared-ssh installations assume that 'hg serve --stdio' is a safe
-command to run for minimally trusted users. Unfortunately, the messy
-implementation of argument parsing here meant that trying to access a
-repo named '--debugger' would give the user a pdb prompt, thereby
-sidestepping any hoped-for sandboxing. Serving repositories over HTTP(S)
-is unaffected.
-
-We're not currently hardening any subcommands other than 'serve'. If
-your service exposes other commands to users with arbitrary repository
-names, it is imperative that you defend against repository names of
-'--debugger' and anything starting with '--config'.
-
-The read-only mode of hg-ssh stopped working because it provided its hook
-configuration to "hg serve --stdio" via --config parameter. This is banned for
-security reasons now. This patch switches it to directly call ui.setconfig().
-If your custom hosting infrastructure relies on passing --config to
-"hg serve --stdio", you'll need to find a different way to get that configuration
-into Mercurial, either by using ui.setconfig() as hg-ssh does in this patch,
-or by placing an hgrc file someplace where Mercurial will read it.
-
-mitrandir@fb.com provided some extra fixes for the dispatch code and
-for hg-ssh in places that I overlooked.
-
-CVE: CVE-2017-9462
-
-Upstream-Status: Backport
-
-diff --git a/contrib/hg-ssh b/contrib/hg-ssh
---- a/contrib/hg-ssh
-+++ b/contrib/hg-ssh
-@@ -32,7 +32,7 @@
- # enable importing on demand to reduce startup time
- from mercurial import demandimport; demandimport.enable()
- 
--from mercurial import dispatch
-+from mercurial import dispatch, ui as uimod
- 
- import sys, os, shlex
- 
-@@ -61,14 +61,15 @@
-         repo = os.path.normpath(os.path.join(cwd, os.path.expanduser(path)))
-         if repo in allowed_paths:
-             cmd = ['-R', repo, 'serve', '--stdio']
-+            req = dispatch.request(cmd)
-             if readonly:
--                cmd += [
--                    '--config',
--                    'hooks.pretxnopen.hg-ssh=python:__main__.rejectpush',
--                    '--config',
--                    'hooks.prepushkey.hg-ssh=python:__main__.rejectpush'
--                    ]
--            dispatch.dispatch(dispatch.request(cmd))
-+                if not req.ui:
-+                    req.ui = uimod.ui.load()
-+                req.ui.setconfig('hooks', 'pretxnopen.hg-ssh',
-+                                 'python:__main__.rejectpush', 'hg-ssh')
-+                req.ui.setconfig('hooks', 'prepushkey.hg-ssh',
-+                                 'python:__main__.rejectpush', 'hg-ssh')
-+            dispatch.dispatch(req)
-         else:
-             sys.stderr.write('Illegal repository "%s"\n' % repo)
-             sys.exit(255)
-diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
---- a/mercurial/dispatch.py
-+++ b/mercurial/dispatch.py
-@@ -155,6 +155,37 @@
-         pass # happens if called in a thread
- 
-     def _runcatchfunc():
-+        realcmd = None
-+        try:
-+            cmdargs = fancyopts.fancyopts(req.args[:], commands.globalopts, {})
-+            cmd = cmdargs[0]
-+            aliases, entry = cmdutil.findcmd(cmd, commands.table, False)
-+            realcmd = aliases[0]
-+        except (error.UnknownCommand, error.AmbiguousCommand,
-+                IndexError, getopt.GetoptError):
-+            # Don't handle this here. We know the command is
-+            # invalid, but all we're worried about for now is that
-+            # it's not a command that server operators expect to
-+            # be safe to offer to users in a sandbox.
-+            pass
-+        if realcmd == 'serve' and '--stdio' in cmdargs:
-+            # We want to constrain 'hg serve --stdio' instances pretty
-+            # closely, as many shared-ssh access tools want to grant
-+            # access to run *only* 'hg -R $repo serve --stdio'. We
-+            # restrict to exactly that set of arguments, and prohibit
-+            # any repo name that starts with '--' to prevent
-+            # shenanigans wherein a user does something like pass
-+            # --debugger or --config=ui.debugger=1 as a repo
-+            # name. This used to actually run the debugger.
-+            if (len(req.args) != 4 or
-+                req.args[0] != '-R' or
-+                req.args[1].startswith('--') or
-+                req.args[2] != 'serve' or
-+                req.args[3] != '--stdio'):
-+                raise error.Abort(
-+                    _('potentially unsafe serve --stdio invocation: %r') %
-+                    (req.args,))
-+
-         try:
-             debugger = 'pdb'
-             debugtrace = {
-diff --git a/tests/test-ssh.t b/tests/test-ssh.t
---- a/tests/test-ssh.t
-+++ b/tests/test-ssh.t
-@@ -357,6 +357,19 @@
-   abort: destination 'a repo' is not empty
-   [255]
- 
-+Make sure hg is really paranoid in serve --stdio mode. It used to be
-+possible to get a debugger REPL by specifying a repo named --debugger.
-+  $ hg -R --debugger serve --stdio
-+  abort: potentially unsafe serve --stdio invocation: ['-R', '--debugger', 'serve', '--stdio']
-+  [255]
-+  $ hg -R --config=ui.debugger=yes serve --stdio
-+  abort: potentially unsafe serve --stdio invocation: ['-R', '--config=ui.debugger=yes', 'serve', '--stdio']
-+  [255]
-+Abbreviations of 'serve' also don't work, to avoid shenanigans.
-+  $ hg -R narf serv --stdio
-+  abort: potentially unsafe serve --stdio invocation: ['-R', 'narf', 'serv', '--stdio']
-+  [255]
-+
- Test hg-ssh using a helper script that will restore PYTHONPATH (which might
- have been cleared by a hg.exe wrapper) and invoke hg-ssh with the right
- parameters:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_4.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_4.0.1.bb
deleted file mode 100644
index a08acd9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_4.0.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "The Mercurial distributed SCM"
-HOMEPAGE = "http://mercurial.selenic.com/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "python-native"
-
-SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz \
-           file://mercurial-CVE-2017-9462.patch \
-"
-SRC_URI[md5sum] = "22a9b1d7c0c06a53f0ae5b386d536d08"
-SRC_URI[sha256sum] = "6aa4ade93c1b5e11937820880a466ebf1c824086d443cd799fc46e2617250d40"
-
-S = "${WORKDIR}/mercurial-${PV}"
-
-inherit native
-
-EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
-    PREFIX=${prefix}"
-
-do_configure_append () {
-    sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
-}
-
-do_install () {
-    oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
-}
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb
new file mode 100644
index 0000000..9052497
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb
@@ -0,0 +1,31 @@
+SUMMARY = "The Mercurial distributed SCM"
+HOMEPAGE = "http://mercurial.selenic.com/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "python python-native"
+DEPENDS_class-native = "python-native"
+RDEPENDS_${PN} = "python python-modules"
+
+inherit python-dir
+
+SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
+SRC_URI[md5sum] = "c1d9fad1b7ed7077b0d4ae82e71154db"
+SRC_URI[sha256sum] = "234af4a67565c85923b0a1910c704ab44bcf12f69b85532687208776563d87de"
+
+S = "${WORKDIR}/mercurial-${PV}"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
+    PREFIX=${prefix}"
+
+do_configure_append () {
+    sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
+}
+
+do_install () {
+    oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
+}
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson/native_bindir.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson/native_bindir.patch
deleted file mode 100644
index 993e975..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson/native_bindir.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-There are some discussions upstream to merge this patch, but I presonaly believe
-that is is OE only. https://github.com/mesonbuild/meson/issues/1849#issuecomment-303730323
-
-Upstream-Status: Inappropriate [OE specific]
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py
-index 04a22f985941..3e33bc4a79e7 100644
---- a/mesonbuild/dependencies.py
-+++ b/mesonbuild/dependencies.py
-@@ -95,7 +95,7 @@ class Dependency:
-     def need_threads(self):
-         return False
- 
--    def get_pkgconfig_variable(self, variable_name):
-+    def get_pkgconfig_variable(self, variable_name, use_native=False):
-         raise MesonException('Tried to get a pkg-config variable from a non-pkgconfig dependency.')
- 
- class InternalDependency(Dependency):
-@@ -224,8 +224,12 @@ class PkgConfigDependency(Dependency):
-         return s.format(self.__class__.__name__, self.name, self.is_found,
-                         self.version_reqs)
- 
--    def _call_pkgbin(self, args):
--        p, out = Popen_safe([self.pkgbin] + args, env=os.environ)[0:2]
-+    def _call_pkgbin(self, args, use_native=False):
-+        if use_native:
-+            pkgbin = [self.pkgbin + "-native"]
-+        else:
-+            pkgbin = [self.pkgbin]
-+        p, out = Popen_safe(pkgbin + args, env=os.environ)[0:2]
-         return p.returncode, out.strip()
- 
-     def _set_cargs(self):
-@@ -259,8 +263,8 @@ class PkgConfigDependency(Dependency):
-                 self.is_libtool = True
-             self.libs.append(lib)
- 
--    def get_pkgconfig_variable(self, variable_name):
--        ret, out = self._call_pkgbin(['--variable=' + variable_name, self.name])
-+    def get_pkgconfig_variable(self, variable_name, use_native=False):
-+        ret, out = self._call_pkgbin(['--variable=' + variable_name, self.name], use_native=use_native)
-         variable = ''
-         if ret != 0:
-             if self.required:
-@@ -1091,7 +1095,7 @@ class QtBaseDependency(Dependency):
-         self.bindir = self.get_pkgconfig_host_bins(core)
-         if not self.bindir:
-             # If exec_prefix is not defined, the pkg-config file is broken
--            prefix = core.get_pkgconfig_variable('exec_prefix')
-+            prefix = core.get_pkgconfig_variable('exec_prefix', use_native=True)
-             if prefix:
-                 self.bindir = os.path.join(prefix, 'bin')
- 
-@@ -1202,7 +1206,7 @@ class Qt5Dependency(QtBaseDependency):
-         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
- 
-     def get_pkgconfig_host_bins(self, core):
--        return core.get_pkgconfig_variable('host_bins')
-+        return core.get_pkgconfig_variable('host_bins', use_native=True)
- 
- class Qt4Dependency(QtBaseDependency):
-     def __init__(self, env, kwargs):
-@@ -1216,7 +1220,7 @@ class Qt4Dependency(QtBaseDependency):
-         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
-         for application in applications:
-             try:
--                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application))
-+                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, use_native=True))
-             except MesonException:
-                 pass
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
deleted file mode 100644
index 14644ba..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-HOMEPAGE = "http://mesonbuild.com"
-SUMMARY = "A high performance build system"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = " \
-    git://github.com/mesonbuild/meson.git \
-    file://native_bindir.patch \
-"
-
-SRCREV = "b25d3e4d3f2b4d37029a507cc089bdde643c6240"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-RDEPENDS_${PN} = "ninja python3-core python3-modules"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
index 4a2c377..51b313c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
@@ -31,6 +31,11 @@
 inherit autotools-brokensep gettext
 
 do_configure_prepend() {
+    for d in confdb test/mpi/confdb src/openpa/confdb src/pm/hydra/confdb src/pm/hydra/tools/topo/hwloc/hwloc/config src/pm/hydra/mpl/confdb src/mpl/confdb src/mpi/romio/confdb;  do
+        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/$d
+        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/$d
+    done
+
     autoreconf --verbose --install --force -I . -I confdb/ -I maint/
     oe_runconf
     exit
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch
new file mode 100644
index 0000000..b0d772d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch
@@ -0,0 +1,35 @@
+From a05d92ae85024d0648f69f95307a1d3e8e51109c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 1 Apr 2018 19:55:38 -0700
+Subject: [PATCH] Fix -Werror=class-memaccess
+
+Casting to void* make gcc happy since its upset about
+object types and rightly so
+
+Fixes
+
+'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'struct msgpack::v2::object' from an array of 'const msgpack_object' {aka 'const struct msgpack_object'} [-Werror=class-memaccess]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/msgpack/msgpack-c/pull/659]
+
+ include/msgpack/v1/object.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/msgpack/v1/object.hpp b/include/msgpack/v1/object.hpp
+index 64da8c53..9721f705 100644
+--- a/include/msgpack/v1/object.hpp
++++ b/include/msgpack/v1/object.hpp
+@@ -661,7 +661,7 @@ inline object::object(const msgpack_object& o)
+ inline void operator<< (msgpack::object& o, const msgpack_object& v)
+ {
+     // FIXME beter way?
+-    std::memcpy(&o, &v, sizeof(v));
++    std::memcpy(static_cast<void*>(&o), &v, sizeof(v));
+ }
+ 
+ inline object::operator msgpack_object() const
+-- 
+2.16.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
index d9f6956..02c0cd2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
@@ -9,9 +9,10 @@
 
 PV .= "+git${SRCPV}"
 
-SRCREV = "7a98138f27f27290e680bf8fbf1f8d1b089bf138"
+SRCREV = "208595b2620cf6260ce3d6d4cf8543f13b206449"
 
 SRC_URI = "git://github.com/msgpack/msgpack-c \
+           file://0001-Fix-Werror-class-memaccess.patch \
            "
 
 inherit cmake pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
deleted file mode 100644
index 324a468..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c2aff16cc196a61f4ab1cdae4a91c7926123c239 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik@redhat.com>
-Date: Thu, 27 Apr 2017 14:25:42 +0200
-Subject: [PATCH] Disable running gyp on shared deps
-
----
- Makefile | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0a217bd893..e1229ad07f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -79,10 +79,9 @@ $(NODE_G_EXE): config.gypi out/Makefile
- 	$(MAKE) -C out BUILDTYPE=Debug V=$(V)
- 	if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
- 
--out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
--              deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
--              deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
--              config.gypi
-+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
-+              deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
-+			  deps/v8/src/v8.gyp node.gyp config.gypi
- 	$(PYTHON) tools/gyp_node.py -f make
- 
- config.gypi: configure
--- 
-2.12.2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch
deleted file mode 100644
index ed24738..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-Bugfix for --no-registry in nodejs-v0.12.2
-
-diff -u -r node-v0.12.2_def/deps/npm/lib/cache/caching-client.js node-v0.12.2/deps/npm/lib/cache/caching-client.js
---- node-v0.12.2_def/deps/npm/lib/cache/caching-client.js	2015-04-01 01:13:01.000000000 +0300
-+++ node-v0.12.2/deps/npm/lib/cache/caching-client.js	2015-05-18 00:47:10.738599686 +0300
-@@ -67,6 +67,22 @@
-   var cacheBase = cacheFile(npm.config.get("cache"))(uri)
-   var cachePath = path.join(cacheBase, ".cache.json")
- 
-+  if (parsed.host === "noregistry") (function() {
-+    var stat = null
-+    var file = npm.config.get("cache") + parsed.pathname + "/.cache.json"
-+    try {
-+      stat = fs.statSync(cachePath)
-+    } catch (ex) {}
-+    if (!stat) try {
-+      stat = fs.statSync(file) 
-+      cachePath = file
-+    } catch (ex) {
-+      stat = "Registry not defined and registry files not found: \"" +
-+             cachePath + "\", \"" + file + "\"."
-+      throw new Error(stat)
-+    }
-+  })()
-+
-   // If the GET is part of a write operation (PUT or DELETE), then
-   // skip past the cache entirely, but still save the results.
-   if (uri.match(/\?write=true$/)) {
-@@ -83,12 +99,17 @@
-         }
-         catch (ex) {
-           data = null
-+          if (parsed.host === "noregistry")
-+            throw new Error("File \"" + cachePath+"\"" + " corrupted.")
-         }
- 
-         params.stat = stat
-         params.data = data
- 
--        get_.call(client, uri, cachePath, params, cb)
-+        if (parsed.host === "noregistry")
-+          cb(null, data, JSON.stringify(data), { statusCode : 304 })
-+        else
-+          get_.call(client, uri, cachePath, params, cb)
-       })
-     }
-     else {
-diff -u -r node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js node-v0.12.2/deps/npm/lib/utils/map-to-registry.js
---- node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js	2015-04-01 01:13:01.000000000 +0300
-+++ node-v0.12.2/deps/npm/lib/utils/map-to-registry.js	2015-05-18 01:15:10.030569613 +0300
-@@ -45,6 +45,8 @@
- 
-   log.silly("mapToRegistry", "registry", registry)
- 
-+  if (!registry) return cb(null, "http://noregistry/" + name, {})
-+
-   var auth = config.getCredentialsByURI(registry)
- 
-   // normalize registry URL so resolution doesn't drop a piece of registry URL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
index 5bcbc00..8930cd9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
 HOMEPAGE = "http://nodejs.org"
 LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e4d35c6120f175e1fbe5ff908b1cf2d6"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=270f7477a1705f7cd3e29d3d4512915d"
 
 DEPENDS = "openssl10 zlib"
 
@@ -12,8 +12,8 @@
 SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
            file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
 "
-SRC_URI[md5sum] = "e6c85c83001340b30671e9432e1bd337"
-SRC_URI[sha256sum] = "5d5aa2a101dcc617231a475812eb8ed87cac21491f1dcc7997b9dd463563f361"
+SRC_URI[md5sum] = "631ed102fe58c13cf63bc92a68cf4759"
+SRC_URI[sha256sum] = "6cdcde9c9c1ca9f450a0b24eafa229ca759e576daa0fae892ce74d541ecdc86f"
 
 S = "${WORKDIR}/node-v${PV}"
 
@@ -26,7 +26,7 @@
     if   re.match('i.86$', a): return 'ia32'
     elif re.match('x86_64$', a): return 'x64'
     elif re.match('aarch64$', a): return 'arm64'
-    elif re.match('powerpc64$', a): return 'ppc64'
+    elif re.match('(powerpc64|ppc64le)$', a): return 'ppc64'
     elif re.match('powerpc$', a): return 'ppc'
     return a
 
@@ -80,7 +80,8 @@
 
 PACKAGES =+ "${PN}-npm"
 FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
-RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils"
+RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils \
+    python-compiler python-misc python-multiprocessing"
 
 PACKAGES =+ "${PN}-systemtap"
 FILES_${PN}-systemtap = "${datadir}/systemtap"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
index 1be7f6a..53fc159 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
@@ -4,7 +4,7 @@
 
 PR = "r1"
 
-inherit packagegroup allarch
+inherit packagegroup
 
 RPROVIDES_${PN} += "packagegroup-native-sdk"
 RREPLACES_${PN} += "packagegroup-native-sdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
similarity index 93%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
index 3b58939..08c966d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
@@ -10,7 +10,7 @@
 DEPENDS = "perl"
 
 SRC_URI = "git://github.com/toddr/IPC-Run.git"
-SRCREV = "6bdf41e276e06d23e140783b13a6eaef4745c216"
+SRCREV = "96066366ac8c401dff9c979d04f25dc8219ffcc1"
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.036.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
similarity index 85%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.036.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
index f5dbef2..bd8ba78 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.036.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
@@ -17,8 +17,8 @@
 SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-${PV}.tar.gz \
 "
 
-SRC_URI[md5sum] = "fdee1d8dc4ae54bc6cb7cd5a3f3d3342"
-SRC_URI[sha256sum] = "5c48a823f86b8110ccb6504c6176ca248b52f56829dd4548bc39c3509f4154cf"
+SRC_URI[md5sum] = "4a00dd7f1c057931147c65dfc4901c36"
+SRC_URI[sha256sum] = "629f865e8317f52602b2f2efd2b688002903d2e4bbcba5427cb6188b043d6f99"
 
 S = "${WORKDIR}/DBD-mysql-${PV}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.636.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.636.bb
deleted file mode 100644
index 085b904..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.636.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "The Perl Database Interface"
-DESCRIPTION = "DBI is a database access Application Programming Interface \
-(API) for the Perl Language. The DBI API Specification defines a set \
-of functions, variables and conventions that provide a consistent \
-database interface independent of the actual database being used. \
-"
-HOMEPAGE = "http://search.cpan.org/dist/DBI/"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-RDEPENDS_${PN} = " perl-module-carp \
-                   perl-module-exporter \
-                   perl-module-exporter-heavy \
-                   perl-module-dynaloader \
-"
-
-LIC_FILES_CHKSUM = "file://DBI.pm;beginline=8147;endline=8151;md5=2e5f6cf47e5ad7b77dcb6172edc29292"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz"
-SRC_URI[md5sum] = "60f291e5f015550dde71d1858dfe93ba"
-SRC_URI[sha256sum] = "8f7ddce97c04b4b7a000e65e5d05f679c964d62c8b02c94c1a7d815bb2dd676c"
-
-S = "${WORKDIR}/DBI-${PV}"
-
-inherit cpan
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb
new file mode 100644
index 0000000..24a1245
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb
@@ -0,0 +1,36 @@
+SUMMARY = "The Perl Database Interface"
+DESCRIPTION = "DBI is a database access Application Programming Interface \
+(API) for the Perl Language. The DBI API Specification defines a set \
+of functions, variables and conventions that provide a consistent \
+database interface independent of the actual database being used. \
+"
+HOMEPAGE = "http://search.cpan.org/dist/DBI/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+RDEPENDS_${PN} = " perl-module-carp \
+                   perl-module-exporter \
+                   perl-module-exporter-heavy \
+                   perl-module-dynaloader \
+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=10982c7148e0a012c0fd80534522f5c5"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz"
+SRC_URI[md5sum] = "e77fd37fcf77fc88fde029c1b75ded54"
+SRC_URI[sha256sum] = "5509e532cdd0e3d91eda550578deaac29e2f008a12b64576e8c261bb92e8c2c1"
+
+S = "${WORKDIR}/DBI-${PV}"
+
+inherit cpan ptest-perl
+
+do_install_prepend() {
+	# test requires "-T" (taint) command line option
+	rm -rf ${B}/t/pod-coverage.t
+	rm -rf ${B}/t/13taint.t
+	# source of test failure not obvious
+	rm -rf ${B}/t/85gofer.t
+	# unclear why there are several duplicates of tests in tarball
+	rm -rf ${B}/t/z*.t
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch
deleted file mode 100644
index 18b4937..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5c84b039e97abd88f6a18da0e6d27383c00fea92 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 26 Jul 2017 23:06:56 -0700
-Subject: [PATCH] Specify --tag with libtool
-
-This helps in compiling with external toolchains
-with -fPIE appended to CC e.g. via hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- acinclude.m4 | 8 ++++----
- configure.in | 4 ++--
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index a114a98..1cc7a26 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -806,10 +806,10 @@ dnl
- dnl PHP_BUILD_PROGRAM
- dnl
- AC_DEFUN([PHP_BUILD_PROGRAM],[
--  php_c_pre='$(LIBTOOL) --mode=compile $(CC)'
-+  php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)'
-   php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)'
-   php_c_post=
--  php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)'
-+  php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)'
-   php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)'
-   php_cxx_post=
-   php_lo=lo
-@@ -819,10 +819,10 @@ AC_DEFUN([PHP_BUILD_PROGRAM],[
-     no)  pic_setting='-prefer-non-pic';;
-   esac
- 
--  shared_c_pre='$(LIBTOOL) --mode=compile $(CC)'
-+  shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)'
-   shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting
-   shared_c_post=
--  shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)'
-+  shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)'
-   shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting
-   shared_cxx_post=
-   shared_lo=lo
-diff --git a/configure.in b/configure.in
-index 7d65b63..7221af9 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1431,8 +1431,8 @@ PHP_SET_LIBTOOL_VARIABLE([--silent])
- dnl libtool 1.4.3 needs this.
- PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps])
- 
--test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
--test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<'
-+test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --tag=CC --mode=compile $(COMPILE) -c $<'
-+test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --tag=CXX --mode=compile $(CXX_COMPILE) -c $<'
- SHARED_LIBTOOL='$(LIBTOOL)'
- 
- CC=$old_CC
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
deleted file mode 100644
index 41d2a0f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
+++ /dev/null
@@ -1,5241 +0,0 @@
-From f2f90767311355cafabff604a7a857ca60ee3f01 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Wed, 22 Nov 2017 21:14:59 -0800
-Subject: [PATCH] Fixed bug #75055 Out-Of-Bounds Read in timelib_meridian()
-
-Upstream-Status: Backport
-CVE: CVE-2017-16642
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- ext/date/lib/parse_date.c         | 1544 +++++++++++++++++++++----------------
- ext/date/lib/parse_date.re        |    4 +-
- ext/date/tests/bug53437_var3.phpt |    2 +-
- ext/wddx/tests/bug75055.phpt      |   20 +
- ext/wddx/tests/bug75055.wddx      |   13 +
- 5 files changed, 911 insertions(+), 672 deletions(-)
- create mode 100644 ext/wddx/tests/bug75055.phpt
- create mode 100644 ext/wddx/tests/bug75055.wddx
-
-diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
-index f929619..6b11418 100644
---- a/ext/date/lib/parse_date.c
-+++ b/ext/date/lib/parse_date.c
-@@ -1,4 +1,5 @@
--/* Generated by re2c 0.15.3 on Tue Jul  4 21:15:17 2017 */
-+/* Generated by re2c 0.15.3 on Wed Nov 22 21:14:47 2017 */
-+#line 1 "ext/date/lib/parse_date.re"
- /*
-  * The MIT License (MIT)
-  *
-@@ -837,9 +838,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
- std:
- 	s->tok = cursor;
- 	s->len = 0;
-+#line 965 "ext/date/lib/parse_date.re"
- 
- 
- 
-+#line 846 "ext/date/lib/parse_date.c"
- {
- 	YYCTYPE yych;
- 	unsigned int yyaccept = 0;
-@@ -962,18 +965,19 @@ yy2:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy165;
--			goto yy1521;
-+			goto yy1523;
- 		}
- 	} else {
- 		if (yych <= 'd') {
- 			if (yych <= 'Z') goto yy165;
- 			if (yych >= 'a') goto yy170;
- 		} else {
--			if (yych <= 'e') goto yy1530;
-+			if (yych <= 'e') goto yy1532;
- 			if (yych <= 'z') goto yy170;
- 		}
- 	}
- yy3:
-+#line 1673 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("tzcorrection | tz");
-@@ -986,6 +990,7 @@ yy3:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIMEZONE;
- 	}
-+#line 994 "ext/date/lib/parse_date.c"
- yy4:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
-@@ -995,7 +1000,7 @@ yy4:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy165;
--			goto yy1521;
-+			goto yy1523;
- 		}
- 	} else {
- 		if (yych <= 'd') {
-@@ -1003,7 +1008,7 @@ yy4:
- 			if (yych <= '`') goto yy3;
- 			goto yy165;
- 		} else {
--			if (yych <= 'e') goto yy1521;
-+			if (yych <= 'e') goto yy1523;
- 			if (yych <= 'z') goto yy165;
- 			goto yy3;
- 		}
-@@ -1017,12 +1022,12 @@ yy5:
- 			goto yy165;
- 		} else {
- 			if (yych <= 'H') {
--				if (yych <= 'E') goto yy1492;
-+				if (yych <= 'E') goto yy1494;
- 				goto yy165;
- 			} else {
--				if (yych <= 'I') goto yy1493;
-+				if (yych <= 'I') goto yy1495;
- 				if (yych <= 'N') goto yy165;
--				goto yy1491;
-+				goto yy1493;
- 			}
- 		}
- 	} else {
-@@ -1031,15 +1036,15 @@ yy5:
- 				if (yych <= 'Z') goto yy165;
- 				goto yy3;
- 			} else {
--				if (yych == 'e') goto yy1508;
-+				if (yych == 'e') goto yy1510;
- 				goto yy170;
- 			}
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1509;
-+				if (yych <= 'i') goto yy1511;
- 				goto yy170;
- 			} else {
--				if (yych <= 'o') goto yy1507;
-+				if (yych <= 'o') goto yy1509;
- 				if (yych <= 'z') goto yy170;
- 				goto yy3;
- 			}
-@@ -1054,12 +1059,12 @@ yy6:
- 			goto yy165;
- 		} else {
- 			if (yych <= 'H') {
--				if (yych <= 'E') goto yy1492;
-+				if (yych <= 'E') goto yy1494;
- 				goto yy165;
- 			} else {
--				if (yych <= 'I') goto yy1493;
-+				if (yych <= 'I') goto yy1495;
- 				if (yych <= 'N') goto yy165;
--				goto yy1491;
-+				goto yy1493;
- 			}
- 		}
- 	} else {
-@@ -1068,15 +1073,15 @@ yy6:
- 				if (yych <= 'Z') goto yy165;
- 				goto yy3;
- 			} else {
--				if (yych == 'e') goto yy1492;
-+				if (yych == 'e') goto yy1494;
- 				goto yy165;
- 			}
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1493;
-+				if (yych <= 'i') goto yy1495;
- 				goto yy165;
- 			} else {
--				if (yych <= 'o') goto yy1491;
-+				if (yych <= 'o') goto yy1493;
- 				if (yych <= 'z') goto yy165;
- 				goto yy3;
- 			}
-@@ -1088,24 +1093,24 @@ yy7:
- 		if (yych <= 'A') {
- 			if (yych == ')') goto yy164;
- 			if (yych <= '@') goto yy3;
--			goto yy1461;
-+			goto yy1463;
- 		} else {
--			if (yych == 'I') goto yy1462;
-+			if (yych == 'I') goto yy1464;
- 			if (yych <= 'N') goto yy165;
--			goto yy1463;
-+			goto yy1465;
- 		}
- 	} else {
- 		if (yych <= 'h') {
- 			if (yych <= 'Z') goto yy165;
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1476;
-+			if (yych <= 'a') goto yy1478;
- 			goto yy170;
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1477;
-+				if (yych <= 'i') goto yy1479;
- 				goto yy170;
- 			} else {
--				if (yych <= 'o') goto yy1478;
-+				if (yych <= 'o') goto yy1480;
- 				if (yych <= 'z') goto yy170;
- 				goto yy3;
- 			}
-@@ -1117,24 +1122,24 @@ yy8:
- 		if (yych <= 'A') {
- 			if (yych == ')') goto yy164;
- 			if (yych <= '@') goto yy3;
--			goto yy1461;
-+			goto yy1463;
- 		} else {
--			if (yych == 'I') goto yy1462;
-+			if (yych == 'I') goto yy1464;
- 			if (yych <= 'N') goto yy165;
--			goto yy1463;
-+			goto yy1465;
- 		}
- 	} else {
- 		if (yych <= 'h') {
- 			if (yych <= 'Z') goto yy165;
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1461;
-+			if (yych <= 'a') goto yy1463;
- 			goto yy165;
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1462;
-+				if (yych <= 'i') goto yy1464;
- 				goto yy165;
- 			} else {
--				if (yych <= 'o') goto yy1463;
-+				if (yych <= 'o') goto yy1465;
- 				if (yych <= 'z') goto yy165;
- 				goto yy3;
- 			}
-@@ -1146,15 +1151,15 @@ yy9:
- 	switch (yych) {
- 	case ')':	goto yy164;
- 	case '0':
--	case '1':	goto yy1391;
--	case '2':	goto yy1392;
-+	case '1':	goto yy1393;
-+	case '2':	goto yy1394;
- 	case '3':
- 	case '4':
- 	case '5':
- 	case '6':
- 	case '7':
- 	case '8':
--	case '9':	goto yy1393;
-+	case '9':	goto yy1395;
- 	case 'A':
- 	case 'B':
- 	case 'C':
-@@ -1176,11 +1181,11 @@ yy9:
- 	case 'X':
- 	case 'Y':
- 	case 'Z':	goto yy165;
--	case 'E':	goto yy1386;
--	case 'H':	goto yy1387;
--	case 'O':	goto yy1388;
--	case 'U':	goto yy1389;
--	case 'W':	goto yy1390;
-+	case 'E':	goto yy1388;
-+	case 'H':	goto yy1389;
-+	case 'O':	goto yy1390;
-+	case 'U':	goto yy1391;
-+	case 'W':	goto yy1392;
- 	case 'a':
- 	case 'b':
- 	case 'c':
-@@ -1202,11 +1207,11 @@ yy9:
- 	case 'x':
- 	case 'y':
- 	case 'z':	goto yy170;
--	case 'e':	goto yy1429;
--	case 'h':	goto yy1430;
--	case 'o':	goto yy1431;
--	case 'u':	goto yy1432;
--	case 'w':	goto yy1433;
-+	case 'e':	goto yy1431;
-+	case 'h':	goto yy1432;
-+	case 'o':	goto yy1433;
-+	case 'u':	goto yy1434;
-+	case 'w':	goto yy1435;
- 	default:	goto yy3;
- 	}
- yy10:
-@@ -1215,15 +1220,15 @@ yy10:
- 	switch (yych) {
- 	case ')':	goto yy164;
- 	case '0':
--	case '1':	goto yy1391;
--	case '2':	goto yy1392;
-+	case '1':	goto yy1393;
-+	case '2':	goto yy1394;
- 	case '3':
- 	case '4':
- 	case '5':
- 	case '6':
- 	case '7':
- 	case '8':
--	case '9':	goto yy1393;
-+	case '9':	goto yy1395;
- 	case 'A':
- 	case 'B':
- 	case 'C':
-@@ -1267,28 +1272,30 @@ yy10:
- 	case 'y':
- 	case 'z':	goto yy165;
- 	case 'E':
--	case 'e':	goto yy1386;
-+	case 'e':	goto yy1388;
- 	case 'H':
--	case 'h':	goto yy1387;
-+	case 'h':	goto yy1389;
- 	case 'O':
--	case 'o':	goto yy1388;
-+	case 'o':	goto yy1390;
- 	case 'U':
--	case 'u':	goto yy1389;
-+	case 'u':	goto yy1391;
- 	case 'W':
--	case 'w':	goto yy1390;
-+	case 'w':	goto yy1392;
- 	default:	goto yy3;
- 	}
- yy11:
- 	yyaccept = 1;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych == '-') goto yy1374;
-+	if (yych == '-') goto yy1376;
- 	if (yych <= '/') goto yy12;
--	if (yych <= '9') goto yy1375;
-+	if (yych <= '9') goto yy1377;
- yy12:
-+#line 1768 "ext/date/lib/parse_date.re"
- 	{
- 		add_error(s, "Unexpected character");
- 		goto std;
- 	}
-+#line 1299 "ext/date/lib/parse_date.c"
- yy13:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
-@@ -1299,16 +1306,16 @@ yy13:
- 			} else {
- 				if (yych <= '@') goto yy3;
- 				if (yych <= 'D') goto yy165;
--				goto yy1310;
-+				goto yy1311;
- 			}
- 		} else {
- 			if (yych <= 'N') {
--				if (yych == 'I') goto yy1311;
-+				if (yych == 'I') goto yy1312;
- 				goto yy165;
- 			} else {
--				if (yych <= 'O') goto yy1312;
-+				if (yych <= 'O') goto yy1313;
- 				if (yych <= 'Q') goto yy165;
--				goto yy1313;
-+				goto yy1314;
- 			}
- 		}
- 	} else {
-@@ -1318,16 +1325,16 @@ yy13:
- 				if (yych <= '`') goto yy3;
- 				goto yy170;
- 			} else {
--				if (yych <= 'e') goto yy1351;
-+				if (yych <= 'e') goto yy1353;
- 				if (yych <= 'h') goto yy170;
--				goto yy1352;
-+				goto yy1354;
- 			}
- 		} else {
- 			if (yych <= 'q') {
--				if (yych == 'o') goto yy1353;
-+				if (yych == 'o') goto yy1355;
- 				goto yy170;
- 			} else {
--				if (yych <= 'r') goto yy1354;
-+				if (yych <= 'r') goto yy1356;
- 				if (yych <= 'z') goto yy170;
- 				goto yy3;
- 			}
-@@ -1343,16 +1350,16 @@ yy14:
- 			} else {
- 				if (yych <= '@') goto yy3;
- 				if (yych <= 'D') goto yy165;
--				goto yy1310;
-+				goto yy1311;
- 			}
- 		} else {
- 			if (yych <= 'N') {
--				if (yych == 'I') goto yy1311;
-+				if (yych == 'I') goto yy1312;
- 				goto yy165;
- 			} else {
--				if (yych <= 'O') goto yy1312;
-+				if (yych <= 'O') goto yy1313;
- 				if (yych <= 'Q') goto yy165;
--				goto yy1313;
-+				goto yy1314;
- 			}
- 		}
- 	} else {
-@@ -1362,16 +1369,16 @@ yy14:
- 				if (yych <= '`') goto yy3;
- 				goto yy165;
- 			} else {
--				if (yych <= 'e') goto yy1310;
-+				if (yych <= 'e') goto yy1311;
- 				if (yych <= 'h') goto yy165;
--				goto yy1311;
-+				goto yy1312;
- 			}
- 		} else {
- 			if (yych <= 'q') {
--				if (yych == 'o') goto yy1312;
-+				if (yych == 'o') goto yy1313;
- 				goto yy165;
- 			} else {
--				if (yych <= 'r') goto yy1313;
-+				if (yych <= 'r') goto yy1314;
- 				if (yych <= 'z') goto yy165;
- 				goto yy3;
- 			}
-@@ -1382,13 +1389,13 @@ yy15:
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
- 		if (yych <= '@') goto yy3;
--		goto yy1296;
-+		goto yy1297;
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') goto yy165;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1307;
-+			if (yych <= 'a') goto yy1308;
- 			if (yych <= 'z') goto yy170;
- 			goto yy3;
- 		}
-@@ -1398,13 +1405,13 @@ yy16:
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
- 		if (yych <= '@') goto yy3;
--		goto yy1296;
-+		goto yy1297;
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') goto yy165;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1296;
-+			if (yych <= 'a') goto yy1297;
- 			if (yych <= 'z') goto yy165;
- 			goto yy3;
- 		}
-@@ -1420,7 +1427,7 @@ yy17:
- 			if (yych <= 'Z') goto yy165;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1293;
-+			if (yych <= 'a') goto yy1294;
- 			if (yych <= 'z') goto yy170;
- 			goto yy3;
- 		}
-@@ -2495,18 +2502,22 @@ yy48:
- 	if (yych <= '/') goto yy49;
- 	if (yych <= '9') goto yy54;
- yy49:
-+#line 1757 "ext/date/lib/parse_date.re"
- 	{
- 		goto std;
- 	}
-+#line 2510 "ext/date/lib/parse_date.c"
- yy50:
- 	yych = *++YYCURSOR;
- 	goto yy49;
- yy51:
- 	++YYCURSOR;
-+#line 1762 "ext/date/lib/parse_date.re"
- 	{
- 		s->pos = cursor; s->line++;
- 		goto std;
- 	}
-+#line 2521 "ext/date/lib/parse_date.c"
- yy53:
- 	yych = *++YYCURSOR;
- 	goto yy12;
-@@ -2693,23 +2704,23 @@ yy56:
- 					}
- 				} else {
- 					if (yyaccept == 28) {
--						goto yy1377;
-+						goto yy1379;
- 					} else {
--						goto yy1415;
-+						goto yy1417;
- 					}
- 				}
- 			} else {
- 				if (yyaccept <= 31) {
- 					if (yyaccept == 30) {
--						goto yy1418;
-+						goto yy1420;
- 					} else {
--						goto yy1498;
-+						goto yy1500;
- 					}
- 				} else {
- 					if (yyaccept == 32) {
--						goto yy1506;
-+						goto yy1508;
- 					} else {
--						goto yy1529;
-+						goto yy1531;
- 					}
- 				}
- 			}
-@@ -2920,6 +2931,7 @@ yy73:
- 	if (yych == 'S') goto yy75;
- 	if (yych == 's') goto yy75;
- yy74:
-+#line 1741 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_ull i;
- 		DEBUG_OUTPUT("relative");
-@@ -2934,6 +2946,7 @@ yy74:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
-+#line 2950 "ext/date/lib/parse_date.c"
- yy75:
- 	yych = *++YYCURSOR;
- 	if (yych == 'D') goto yy76;
-@@ -3719,6 +3732,7 @@ yy190:
- 		}
- 	}
- yy191:
-+#line 1604 "ext/date/lib/parse_date.re"
- 	{
- 		const timelib_relunit* relunit;
- 		DEBUG_OUTPUT("daytext");
-@@ -3735,6 +3749,7 @@ yy191:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_WEEKDAY;
- 	}
-+#line 3753 "ext/date/lib/parse_date.c"
- yy192:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'K') {
-@@ -4227,6 +4242,7 @@ yy217:
- 		}
- 	}
- yy218:
-+#line 1663 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("monthtext");
- 		TIMELIB_INIT;
-@@ -4235,6 +4251,7 @@ yy218:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_TEXT;
- 	}
-+#line 4255 "ext/date/lib/parse_date.c"
- yy219:
- 	++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 23) YYFILL(23);
-@@ -4469,6 +4486,7 @@ yy231:
- 	if (yych == 't') goto yy319;
- 	goto yy237;
- yy232:
-+#line 1409 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datetextual | datenoyear");
-@@ -4481,6 +4499,7 @@ yy232:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_TEXT;
- 	}
-+#line 4503 "ext/date/lib/parse_date.c"
- yy233:
- 	yyaccept = 6;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -4593,6 +4612,7 @@ yy245:
- 		if (yych <= ':') goto yy248;
- 	}
- yy246:
-+#line 1711 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
-@@ -4621,6 +4641,7 @@ yy246:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_SHORTDATE_WITH_TIME;
- 	}
-+#line 4645 "ext/date/lib/parse_date.c"
- yy247:
- 	yyaccept = 7;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -4893,6 +4914,7 @@ yy269:
- 	}
- yy270:
- 	++YYCURSOR;
-+#line 1687 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
- 		TIMELIB_INIT;
-@@ -4915,6 +4937,7 @@ yy270:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_SHORTDATE_WITH_TIME;
- 	}
-+#line 4941 "ext/date/lib/parse_date.c"
- yy272:
- 	yych = *++YYCURSOR;
- 	if (yych <= 0x1F) {
-@@ -5470,6 +5493,7 @@ yy320:
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	++YYCURSOR;
-+#line 1381 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datenoday");
-@@ -5482,6 +5506,7 @@ yy320:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_NO_DAY;
- 	}
-+#line 5510 "ext/date/lib/parse_date.c"
- yy323:
- 	yych = *++YYCURSOR;
- 	if (yych <= '9') {
-@@ -5704,6 +5729,7 @@ yy327:
- 	if ((yych = *YYCURSOR) <= '/') goto yy330;
- 	if (yych <= '9') goto yy331;
- yy330:
-+#line 1525 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pgtextshort");
-@@ -5716,6 +5742,7 @@ yy330:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_PG_TEXT;
- 	}
-+#line 5746 "ext/date/lib/parse_date.c"
- yy331:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy330;
-@@ -6270,6 +6297,7 @@ yy356:
- 		if (yych <= 'z') goto yy167;
- 	}
- yy357:
-+#line 1583 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("ago");
- 		TIMELIB_INIT;
-@@ -6289,6 +6317,7 @@ yy357:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_AGO;
- 	}
-+#line 6321 "ext/date/lib/parse_date.c"
- yy358:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8009,6 +8038,7 @@ yy417:
- yy418:
- 	++YYCURSOR;
- yy419:
-+#line 1286 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
- 		TIMELIB_INIT;
-@@ -8019,6 +8049,7 @@ yy419:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 8053 "ext/date/lib/parse_date.c"
- yy420:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8641,6 +8672,7 @@ yy439:
- 		}
- 	}
- yy440:
-+#line 1423 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("datenoyearrev");
- 		TIMELIB_INIT;
-@@ -8651,6 +8683,7 @@ yy440:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_TEXT;
- 	}
-+#line 8687 "ext/date/lib/parse_date.c"
- yy441:
- 	yyaccept = 9;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8778,6 +8811,7 @@ yy450:
- 	}
- yy452:
- 	++YYCURSOR;
-+#line 1141 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
- 		TIMELIB_INIT;
-@@ -8793,6 +8827,7 @@ yy452:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIME12;
- 	}
-+#line 8831 "ext/date/lib/parse_date.c"
- yy454:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8803,6 +8838,7 @@ yy454:
- 		if (yych <= ':') goto yy457;
- 	}
- yy455:
-+#line 1178 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
-@@ -8827,6 +8863,7 @@ yy455:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIME24_WITH_ZONE;
- 	}
-+#line 8867 "ext/date/lib/parse_date.c"
- yy456:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -9103,6 +9140,7 @@ yy485:
- 	}
- yy487:
- 	++YYCURSOR;
-+#line 1158 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("mssqltime");
- 		TIMELIB_INIT;
-@@ -9121,6 +9159,7 @@ yy487:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIME24_WITH_ZONE;
- 	}
-+#line 9163 "ext/date/lib/parse_date.c"
- yy489:
- 	yyaccept = 10;
- 	YYMARKER = ++YYCURSOR;
-@@ -9215,6 +9254,7 @@ yy498:
- 	if ((yych = *YYCURSOR) <= '/') goto yy499;
- 	if (yych <= '9') goto yy505;
- yy499:
-+#line 1340 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datefull");
-@@ -9228,6 +9268,7 @@ yy499:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_FULL;
- 	}
-+#line 9272 "ext/date/lib/parse_date.c"
- yy500:
- 	yych = *++YYCURSOR;
- 	if (yych == 'M') goto yy501;
-@@ -9891,6 +9932,7 @@ yy569:
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	++YYCURSOR;
-+#line 1355 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("pointed date YYYY");
- 		TIMELIB_INIT;
-@@ -9901,6 +9943,7 @@ yy569:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_FULL_POINTED;
- 	}
-+#line 9947 "ext/date/lib/parse_date.c"
- yy572:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -9931,6 +9974,7 @@ yy575:
- 	if (yych <= '/') goto yy576;
- 	if (yych <= '9') goto yy569;
- yy576:
-+#line 1367 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pointed date YY");
-@@ -9943,6 +9987,7 @@ yy576:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_FULL_POINTED;
- 	}
-+#line 9991 "ext/date/lib/parse_date.c"
- yy577:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -10538,6 +10583,7 @@ yy620:
- 		}
- 	}
- yy621:
-+#line 1326 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("gnudateshort");
-@@ -10550,6 +10596,7 @@ yy621:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 10600 "ext/date/lib/parse_date.c"
- yy622:
- 	yyaccept = 12;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -10645,6 +10692,7 @@ yy630:
- 		}
- 	}
- yy631:
-+#line 1270 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("americanshort | american");
-@@ -10659,6 +10707,7 @@ yy631:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_AMERICAN;
- 	}
-+#line 10711 "ext/date/lib/parse_date.c"
- yy632:
- 	yyaccept = 13;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -10857,6 +10906,7 @@ yy664:
- 	if (yych <= '9') goto yy667;
- 	if (yych <= ':') goto yy668;
- yy665:
-+#line 1553 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("clf");
-@@ -10876,6 +10926,7 @@ yy665:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_CLF;
- 	}
-+#line 10930 "ext/date/lib/parse_date.c"
- yy666:
- 	yych = *++YYCURSOR;
- 	if (yych <= '5') {
-@@ -11362,6 +11413,7 @@ yy727:
- 		if (yych <= 't') goto yy627;
- 	}
- yy728:
-+#line 1298 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("iso8601date2");
-@@ -11374,6 +11426,7 @@ yy728:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 11430 "ext/date/lib/parse_date.c"
- yy729:
- 	yych = *++YYCURSOR;
- 	if (yych == 'C') goto yy730;
-@@ -11404,6 +11457,7 @@ yy734:
- 	if (yych >= '2') goto yy56;
- yy735:
- 	++YYCURSOR;
-+#line 1539 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pgtextreverse");
-@@ -11416,6 +11470,7 @@ yy735:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_PG_TEXT;
- 	}
-+#line 11474 "ext/date/lib/parse_date.c"
- yy737:
- 	yych = *++YYCURSOR;
- 	if (yych == 'V') goto yy730;
-@@ -11568,6 +11623,7 @@ yy747:
- 		}
- 	}
- yy748:
-+#line 1574 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("year4");
- 		TIMELIB_INIT;
-@@ -11575,6 +11631,7 @@ yy748:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_CLF;
- 	}
-+#line 11635 "ext/date/lib/parse_date.c"
- yy749:
- 	yych = *++YYCURSOR;
- 	switch (yych) {
-@@ -11769,6 +11826,7 @@ yy757:
- 		if (yych <= 'X') goto yy848;
- 	}
- yy758:
-+#line 1395 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datenodayrev");
-@@ -11781,6 +11839,7 @@ yy758:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_NO_DAY;
- 	}
-+#line 11843 "ext/date/lib/parse_date.c"
- yy759:
- 	yych = *++YYCURSOR;
- 	if (yych == 'I') goto yy892;
-@@ -11980,6 +12039,7 @@ yy778:
- 	if (yych <= '/') goto yy779;
- 	if (yych <= '7') goto yy781;
- yy779:
-+#line 1506 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll w, d;
- 		DEBUG_OUTPUT("isoweek");
-@@ -11997,12 +12057,14 @@ yy779:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_WEEK;
- 	}
-+#line 12061 "ext/date/lib/parse_date.c"
- yy780:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= '8') goto yy56;
- yy781:
- 	++YYCURSOR;
-+#line 1487 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll w, d;
- 		DEBUG_OUTPUT("isoweekday");
-@@ -12020,6 +12082,7 @@ yy781:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_WEEK;
- 	}
-+#line 12086 "ext/date/lib/parse_date.c"
- yy783:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy60;
-@@ -12085,6 +12148,7 @@ yy785:
- 		}
- 	}
- yy786:
-+#line 1473 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pgydotd");
-@@ -12097,6 +12161,7 @@ yy786:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_PG_YEARDAY;
- 	}
-+#line 12165 "ext/date/lib/parse_date.c"
- yy787:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy60;
-@@ -12178,6 +12243,7 @@ yy805:
- yy806:
- 	++YYCURSOR;
- yy807:
-+#line 1447 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
-@@ -12202,6 +12268,7 @@ yy807:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_XMLRPC_SOAP;
- 	}
-+#line 12272 "ext/date/lib/parse_date.c"
- yy808:
- 	yych = *++YYCURSOR;
- 	if (yych <= '2') {
-@@ -12490,6 +12557,7 @@ yy812:
- 		}
- 	}
- yy813:
-+#line 1435 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("datenocolon");
- 		TIMELIB_INIT;
-@@ -12500,6 +12568,7 @@ yy813:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_NOCOLON;
- 	}
-+#line 12572 "ext/date/lib/parse_date.c"
- yy814:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
-@@ -13293,6 +13362,7 @@ yy937:
- 	if (yych <= '/') goto yy938;
- 	if (yych <= '9') goto yy960;
- yy938:
-+#line 1312 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("gnudateshorter");
-@@ -13305,6 +13375,7 @@ yy938:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 13379 "ext/date/lib/parse_date.c"
- yy939:
- 	yyaccept = 21;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -14303,6 +14374,7 @@ yy1030:
- 		}
- 	}
- yy1032:
-+#line 1204 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("gnunocolon");
- 		TIMELIB_INIT;
-@@ -14324,6 +14396,7 @@ yy1032:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_GNU_NOCOLON;
- 	}
-+#line 14400 "ext/date/lib/parse_date.c"
- yy1033:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy60;
-@@ -14413,6 +14486,7 @@ yy1039:
- 		}
- 	}
- yy1040:
-+#line 1250 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("iso8601nocolon");
-@@ -14431,6 +14505,7 @@ yy1040:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_NOCOLON;
- 	}
-+#line 14509 "ext/date/lib/parse_date.c"
- yy1041:
- 	yyaccept = 24;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -15362,6 +15437,7 @@ yy1083:
- 		}
- 	}
- yy1084:
-+#line 1646 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll i;
- 		int         behavior = 0;
-@@ -15377,6 +15453,7 @@ yy1084:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
-+#line 15457 "ext/date/lib/parse_date.c"
- yy1085:
- 	++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-@@ -15418,6 +15495,7 @@ yy1091:
- 	if (yych != 'f') goto yy56;
- yy1092:
- 	++YYCURSOR;
-+#line 1119 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll i;
- 		int         behavior = 0;
-@@ -15438,6 +15516,7 @@ yy1092:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_WEEK_DAY_OF_MONTH;
- 	}
-+#line 15520 "ext/date/lib/parse_date.c"
- yy1094:
- 	yyaccept = 25;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -15530,6 +15609,7 @@ yy1107:
- 		}
- 	}
- yy1108:
-+#line 1622 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll i;
- 		int         behavior = 0;
-@@ -15552,6 +15632,7 @@ yy1108:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
-+#line 15636 "ext/date/lib/parse_date.c"
- yy1109:
- 	yych = *++YYCURSOR;
- 	goto yy1084;
-@@ -18206,10 +18287,25 @@ yy1281:
- yy1283:
- 	yyaccept = 27;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1287;
--	if (yych <= '9') goto yy1286;
--	goto yy1287;
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1287;
-+		} else {
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '/') goto yy1284;
-+			if (yych <= '9') goto yy1286;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1289;
-+			if (yych == 'P') goto yy1289;
-+		} else {
-+			if (yych <= 'a') goto yy1289;
-+			if (yych == 'p') goto yy1289;
-+		}
-+	}
- yy1284:
-+#line 1096 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("backof | frontof");
- 		TIMELIB_INIT;
-@@ -18231,66 +18327,104 @@ yy1284:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_LF_DAY_OF_MONTH;
- 	}
-+#line 18331 "ext/date/lib/parse_date.c"
- yy1285:
- 	yyaccept = 27;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1287;
--	if (yych >= '5') goto yy1287;
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1287;
-+			goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '/') goto yy1284;
-+			if (yych >= '5') goto yy1284;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1289;
-+			if (yych == 'P') goto yy1289;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1289;
-+			if (yych == 'p') goto yy1289;
-+			goto yy1284;
-+		}
-+	}
- yy1286:
- 	yyaccept = 27;
--	YYMARKER = ++YYCURSOR;
-+	yych = *(YYMARKER = ++YYCURSOR);
-+	if (yych <= 'A') {
-+		if (yych <= 0x1F) {
-+			if (yych != '\t') goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '@') goto yy1284;
-+			goto yy1289;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych == 'P') goto yy1289;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1289;
-+			if (yych == 'p') goto yy1289;
-+			goto yy1284;
-+		}
-+	}
-+yy1287:
-+	++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
- 	yych = *YYCURSOR;
--yy1287:
- 	if (yych <= 'A') {
- 		if (yych <= 0x1F) {
--			if (yych == '\t') goto yy1286;
--			goto yy1284;
-+			if (yych == '\t') goto yy1287;
-+			goto yy56;
- 		} else {
--			if (yych <= ' ') goto yy1286;
--			if (yych <= '@') goto yy1284;
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '@') goto yy56;
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych != 'P') goto yy1284;
-+			if (yych != 'P') goto yy56;
- 		} else {
--			if (yych <= 'a') goto yy1288;
--			if (yych != 'p') goto yy1284;
-+			if (yych <= 'a') goto yy1289;
-+			if (yych != 'p') goto yy56;
- 		}
- 	}
--yy1288:
-+yy1289:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'L') {
- 		if (yych != '.') goto yy56;
- 	} else {
--		if (yych <= 'M') goto yy1290;
--		if (yych == 'm') goto yy1290;
-+		if (yych <= 'M') goto yy1291;
-+		if (yych == 'm') goto yy1291;
- 		goto yy56;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'M') goto yy1290;
-+	if (yych == 'M') goto yy1291;
- 	if (yych != 'm') goto yy56;
--yy1290:
-+yy1291:
- 	yych = *++YYCURSOR;
- 	if (yych <= 0x1F) {
--		if (yych <= 0x00) goto yy1292;
--		if (yych == '\t') goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
-+		if (yych == '\t') goto yy1293;
- 		goto yy56;
- 	} else {
--		if (yych <= ' ') goto yy1292;
-+		if (yych <= ' ') goto yy1293;
- 		if (yych != '.') goto yy56;
- 	}
- 	yych = *++YYCURSOR;
- 	if (yych <= '\t') {
--		if (yych <= 0x00) goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
- 		if (yych <= 0x08) goto yy56;
- 	} else {
- 		if (yych != ' ') goto yy56;
- 	}
--yy1292:
-+yy1293:
- 	yych = *++YYCURSOR;
- 	goto yy1284;
--yy1293:
-+yy1294:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'B') {
-@@ -18314,13 +18448,13 @@ yy1293:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'c') goto yy1294;
-+				if (yych <= 'c') goto yy1295;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1294:
-+yy1295:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'J') {
-@@ -18344,13 +18478,13 @@ yy1294:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'k') goto yy1295;
-+				if (yych <= 'k') goto yy1296;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1295:
-+yy1296:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '.') {
-@@ -18375,7 +18509,7 @@ yy1295:
- 			goto yy3;
- 		}
- 	}
--yy1296:
-+yy1297:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -18391,12 +18525,12 @@ yy1296:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 's') goto yy1297;
-+			if (yych <= 's') goto yy1298;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1297:
-+yy1298:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18412,12 +18546,12 @@ yy1297:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1298;
-+			if (yych <= 't') goto yy1299;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1298:
-+yy1299:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '(') {
-@@ -18438,19 +18572,19 @@ yy1298:
- 			goto yy3;
- 		}
- 	}
--yy1299:
-+yy1300:
- 	yych = *++YYCURSOR;
--	if (yych == 'D') goto yy1300;
-+	if (yych == 'D') goto yy1301;
- 	if (yych != 'd') goto yy1070;
--yy1300:
-+yy1301:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1301;
-+	if (yych == 'A') goto yy1302;
- 	if (yych != 'a') goto yy56;
--yy1301:
-+yy1302:
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1302;
-+	if (yych == 'Y') goto yy1303;
- 	if (yych != 'y') goto yy56;
--yy1302:
-+yy1303:
- 	yyaccept = 25;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -18461,14 +18595,15 @@ yy1302:
- 		goto yy1084;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'O') goto yy1304;
-+	if (yych == 'O') goto yy1305;
- 	if (yych != 'o') goto yy56;
--yy1304:
-+yy1305:
- 	yych = *++YYCURSOR;
--	if (yych == 'F') goto yy1305;
-+	if (yych == 'F') goto yy1306;
- 	if (yych != 'f') goto yy56;
--yy1305:
-+yy1306:
- 	++YYCURSOR;
-+#line 1079 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("firstdayof | lastdayof");
- 		TIMELIB_INIT;
-@@ -18484,7 +18619,8 @@ yy1305:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_LF_DAY_OF_MONTH;
- 	}
--yy1307:
-+#line 18623 "ext/date/lib/parse_date.c"
-+yy1308:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -18499,7 +18635,7 @@ yy1307:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1297;
-+			if (yych <= 'S') goto yy1298;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -18508,13 +18644,13 @@ yy1307:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 's') goto yy1308;
-+				if (yych <= 's') goto yy1309;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1308:
-+yy1309:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -18529,7 +18665,7 @@ yy1308:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1298;
-+			if (yych <= 'T') goto yy1299;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -18538,20 +18674,20 @@ yy1308:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1309;
-+				if (yych <= 't') goto yy1310;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1309:
-+yy1310:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
- 		if (yych <= ' ') {
- 			if (yych == '\t') goto yy1069;
- 			if (yych <= 0x1F) goto yy3;
--			goto yy1299;
-+			goto yy1300;
- 		} else {
- 			if (yych == ')') goto yy164;
- 			if (yych <= ',') goto yy3;
-@@ -18573,7 +18709,7 @@ yy1309:
- 			}
- 		}
- 	}
--yy1310:
-+yy1311:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'B') {
- 		if (yych <= ')') {
-@@ -18582,7 +18718,7 @@ yy1310:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'A') goto yy166;
--			goto yy1346;
-+			goto yy1348;
- 		}
- 	} else {
- 		if (yych <= 'a') {
-@@ -18590,35 +18726,35 @@ yy1310:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'b') goto yy1346;
-+			if (yych <= 'b') goto yy1348;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1311:
-+yy1312:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'F') goto yy1336;
-+			if (yych == 'F') goto yy1338;
- 			if (yych <= 'Q') goto yy166;
--			goto yy1335;
-+			goto yy1337;
- 		}
- 	} else {
- 		if (yych <= 'f') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'e') goto yy166;
--			goto yy1336;
-+			goto yy1338;
- 		} else {
--			if (yych == 'r') goto yy1335;
-+			if (yych == 'r') goto yy1337;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1312:
-+yy1313:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'U') {
- 		if (yych <= ')') {
-@@ -18627,7 +18763,7 @@ yy1312:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'T') goto yy166;
--			goto yy1332;
-+			goto yy1334;
- 		}
- 	} else {
- 		if (yych <= 't') {
-@@ -18635,19 +18771,19 @@ yy1312:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'u') goto yy1332;
-+			if (yych <= 'u') goto yy1334;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1313:
-+yy1314:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'O') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'I') goto yy1315;
-+			if (yych == 'I') goto yy1316;
- 			if (yych <= 'N') goto yy166;
- 		}
- 	} else {
-@@ -18655,14 +18791,14 @@ yy1313:
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'h') goto yy166;
--			goto yy1315;
-+			goto yy1316;
- 		} else {
--			if (yych == 'o') goto yy1314;
-+			if (yych == 'o') goto yy1315;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1314:
-+yy1315:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -18671,7 +18807,7 @@ yy1314:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'M') goto yy167;
--			goto yy1318;
-+			goto yy1319;
- 		}
- 	} else {
- 		if (yych <= 'm') {
-@@ -18679,12 +18815,12 @@ yy1314:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'n') goto yy1318;
-+			if (yych <= 'n') goto yy1319;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1315:
-+yy1316:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -18700,12 +18836,12 @@ yy1315:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 'd') goto yy1316;
-+			if (yych <= 'd') goto yy1317;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1316:
-+yy1317:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -18715,12 +18851,12 @@ yy1316:
- 			if (yych <= 'Z') goto yy168;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1317;
-+			if (yych <= 'a') goto yy1318;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1317:
-+yy1318:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= ')') {
-@@ -18742,7 +18878,7 @@ yy1317:
- 			goto yy3;
- 		}
- 	}
--yy1318:
-+yy1319:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18758,16 +18894,16 @@ yy1318:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 't') goto yy1319;
-+			if (yych <= 't') goto yy1320;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1319:
-+yy1320:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= ')') {
--		if (yych == ' ') goto yy1320;
-+		if (yych == ' ') goto yy1321;
- 		if (yych <= '(') goto yy3;
- 		goto yy164;
- 	} else {
-@@ -18780,88 +18916,143 @@ yy1319:
- 			goto yy3;
- 		}
- 	}
--yy1320:
-+yy1321:
- 	yych = *++YYCURSOR;
--	if (yych == 'O') goto yy1321;
-+	if (yych == 'O') goto yy1322;
- 	if (yych != 'o') goto yy56;
--yy1321:
-+yy1322:
- 	yych = *++YYCURSOR;
--	if (yych == 'F') goto yy1322;
-+	if (yych == 'F') goto yy1323;
- 	if (yych != 'f') goto yy56;
--yy1322:
-+yy1323:
- 	yych = *++YYCURSOR;
- 	if (yych != ' ') goto yy56;
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
--	if (yych <= '1') goto yy1324;
--	if (yych <= '2') goto yy1325;
--	if (yych <= '9') goto yy1326;
-+	if (yych <= '1') goto yy1325;
-+	if (yych <= '2') goto yy1326;
-+	if (yych <= '9') goto yy1327;
- 	goto yy56;
--yy1324:
--	yyaccept = 27;
--	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1327;
--	if (yych <= '9') goto yy1326;
--	goto yy1327;
- yy1325:
- 	yyaccept = 27;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1327;
--	if (yych >= '5') goto yy1327;
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1328;
-+			goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1328;
-+			if (yych <= '/') goto yy1284;
-+			if (yych <= '9') goto yy1327;
-+			goto yy1284;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1330;
-+			if (yych == 'P') goto yy1330;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1330;
-+			if (yych == 'p') goto yy1330;
-+			goto yy1284;
-+		}
-+	}
- yy1326:
- 	yyaccept = 27;
--	YYMARKER = ++YYCURSOR;
--	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
--	yych = *YYCURSOR;
-+	yych = *(YYMARKER = ++YYCURSOR);
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1328;
-+			goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1328;
-+			if (yych <= '/') goto yy1284;
-+			if (yych >= '5') goto yy1284;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1330;
-+			if (yych == 'P') goto yy1330;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1330;
-+			if (yych == 'p') goto yy1330;
-+			goto yy1284;
-+		}
-+	}
- yy1327:
-+	yyaccept = 27;
-+	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'A') {
- 		if (yych <= 0x1F) {
--			if (yych == '\t') goto yy1326;
--			goto yy1284;
-+			if (yych != '\t') goto yy1284;
- 		} else {
--			if (yych <= ' ') goto yy1326;
-+			if (yych <= ' ') goto yy1328;
- 			if (yych <= '@') goto yy1284;
-+			goto yy1330;
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych != 'P') goto yy1284;
-+			if (yych == 'P') goto yy1330;
-+			goto yy1284;
- 		} else {
--			if (yych <= 'a') goto yy1328;
--			if (yych != 'p') goto yy1284;
-+			if (yych <= 'a') goto yy1330;
-+			if (yych == 'p') goto yy1330;
-+			goto yy1284;
- 		}
- 	}
- yy1328:
-+	++YYCURSOR;
-+	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
-+	yych = *YYCURSOR;
-+	if (yych <= 'A') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1328;
-+			goto yy56;
-+		} else {
-+			if (yych <= ' ') goto yy1328;
-+			if (yych <= '@') goto yy56;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych != 'P') goto yy56;
-+		} else {
-+			if (yych <= 'a') goto yy1330;
-+			if (yych != 'p') goto yy56;
-+		}
-+	}
-+yy1330:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'L') {
- 		if (yych != '.') goto yy56;
- 	} else {
--		if (yych <= 'M') goto yy1330;
--		if (yych == 'm') goto yy1330;
-+		if (yych <= 'M') goto yy1332;
-+		if (yych == 'm') goto yy1332;
- 		goto yy56;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'M') goto yy1330;
-+	if (yych == 'M') goto yy1332;
- 	if (yych != 'm') goto yy56;
--yy1330:
-+yy1332:
- 	yych = *++YYCURSOR;
- 	if (yych <= 0x1F) {
--		if (yych <= 0x00) goto yy1292;
--		if (yych == '\t') goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
-+		if (yych == '\t') goto yy1293;
- 		goto yy56;
- 	} else {
--		if (yych <= ' ') goto yy1292;
-+		if (yych <= ' ') goto yy1293;
- 		if (yych != '.') goto yy56;
- 	}
- 	yych = *++YYCURSOR;
- 	if (yych <= '\t') {
--		if (yych <= 0x00) goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
- 		if (yych <= 0x08) goto yy56;
--		goto yy1292;
-+		goto yy1293;
- 	} else {
--		if (yych == ' ') goto yy1292;
-+		if (yych == ' ') goto yy1293;
- 		goto yy56;
- 	}
--yy1332:
-+yy1334:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -18877,12 +19068,12 @@ yy1332:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'r') goto yy1333;
-+			if (yych <= 'r') goto yy1335;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1333:
-+yy1335:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18898,12 +19089,12 @@ yy1333:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 't') goto yy1334;
-+			if (yych <= 't') goto yy1336;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1334:
-+yy1336:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -18925,7 +19116,7 @@ yy1334:
- 			goto yy3;
- 		}
- 	}
--yy1335:
-+yy1337:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -18934,7 +19125,7 @@ yy1335:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'R') goto yy167;
--			goto yy1338;
-+			goto yy1340;
- 		}
- 	} else {
- 		if (yych <= 'r') {
-@@ -18942,12 +19133,12 @@ yy1335:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 's') goto yy1338;
-+			if (yych <= 's') goto yy1340;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1336:
-+yy1338:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18963,12 +19154,12 @@ yy1336:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1337;
-+			if (yych <= 't') goto yy1339;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1337:
-+yy1339:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -18990,7 +19181,7 @@ yy1337:
- 			goto yy3;
- 		}
- 	}
--yy1338:
-+yy1340:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -19006,12 +19197,12 @@ yy1338:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 't') goto yy1339;
-+			if (yych <= 't') goto yy1341;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1339:
-+yy1341:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '(') {
-@@ -19032,19 +19223,19 @@ yy1339:
- 			goto yy3;
- 		}
- 	}
--yy1340:
-+yy1342:
- 	yych = *++YYCURSOR;
--	if (yych == 'D') goto yy1341;
-+	if (yych == 'D') goto yy1343;
- 	if (yych != 'd') goto yy1197;
--yy1341:
-+yy1343:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1342;
-+	if (yych == 'A') goto yy1344;
- 	if (yych != 'a') goto yy56;
--yy1342:
-+yy1344:
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1343;
-+	if (yych == 'Y') goto yy1345;
- 	if (yych != 'y') goto yy56;
--yy1343:
-+yy1345:
- 	yyaccept = 25;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -19055,14 +19246,14 @@ yy1343:
- 		goto yy1084;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'O') goto yy1345;
-+	if (yych == 'O') goto yy1347;
- 	if (yych != 'o') goto yy56;
--yy1345:
-+yy1347:
- 	yych = *++YYCURSOR;
--	if (yych == 'F') goto yy1305;
--	if (yych == 'f') goto yy1305;
-+	if (yych == 'F') goto yy1306;
-+	if (yych == 'f') goto yy1306;
- 	goto yy56;
--yy1346:
-+yy1348:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
-@@ -19097,13 +19288,13 @@ yy1346:
- 				if (yych <= '`') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'r') goto yy1347;
-+				if (yych <= 'r') goto yy1349;
- 				if (yych <= 'z') goto yy167;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1347:
-+yy1349:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'U') {
- 		if (yych <= ')') {
-@@ -19119,12 +19310,12 @@ yy1347:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'u') goto yy1348;
-+			if (yych <= 'u') goto yy1350;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1348:
-+yy1350:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -19134,27 +19325,27 @@ yy1348:
- 			if (yych <= 'Z') goto yy169;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1349;
-+			if (yych <= 'a') goto yy1351;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1349:
-+yy1351:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'R') goto yy1350;
-+		if (yych <= 'R') goto yy1352;
- 		if (yych != 'r') goto yy3;
- 	}
--yy1350:
-+yy1352:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy229;
- 	if (yych == 'y') goto yy229;
- 	goto yy56;
--yy1351:
-+yy1353:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'A') {
-@@ -19169,7 +19360,7 @@ yy1351:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'B') goto yy1346;
-+			if (yych <= 'B') goto yy1348;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19178,13 +19369,13 @@ yy1351:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'b') goto yy1369;
-+				if (yych <= 'b') goto yy1371;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1352:
-+yy1354:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -19201,14 +19392,14 @@ yy1352:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'F') goto yy1336;
-+				if (yych == 'F') goto yy1338;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'R') goto yy1335;
-+				if (yych <= 'R') goto yy1337;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -19216,16 +19407,16 @@ yy1352:
- 			}
- 		} else {
- 			if (yych <= 'q') {
--				if (yych == 'f') goto yy1365;
-+				if (yych == 'f') goto yy1367;
- 				goto yy171;
- 			} else {
--				if (yych <= 'r') goto yy1364;
-+				if (yych <= 'r') goto yy1366;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1353:
-+yy1355:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'T') {
-@@ -19240,7 +19431,7 @@ yy1353:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'U') goto yy1332;
-+			if (yych <= 'U') goto yy1334;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19249,13 +19440,13 @@ yy1353:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'u') goto yy1361;
-+				if (yych <= 'u') goto yy1363;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1354:
-+yy1356:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
-@@ -19272,14 +19463,14 @@ yy1354:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'I') goto yy1315;
-+				if (yych == 'I') goto yy1316;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'O') goto yy1314;
-+				if (yych <= 'O') goto yy1315;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -19287,16 +19478,16 @@ yy1354:
- 			}
- 		} else {
- 			if (yych <= 'n') {
--				if (yych == 'i') goto yy1356;
-+				if (yych == 'i') goto yy1358;
- 				goto yy171;
- 			} else {
--				if (yych <= 'o') goto yy1355;
-+				if (yych <= 'o') goto yy1357;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1355:
-+yy1357:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -19311,7 +19502,7 @@ yy1355:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1318;
-+			if (yych <= 'N') goto yy1319;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19320,13 +19511,13 @@ yy1355:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'n') goto yy1359;
-+				if (yych <= 'n') goto yy1361;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1356:
-+yy1358:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -19341,7 +19532,7 @@ yy1356:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1316;
-+			if (yych <= 'D') goto yy1317;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -19350,13 +19541,13 @@ yy1356:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 'd') goto yy1357;
-+				if (yych <= 'd') goto yy1359;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1357:
-+yy1359:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -19370,18 +19561,18 @@ yy1357:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1317;
-+			if (yych <= 'A') goto yy1318;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1358;
-+			if (yych <= 'a') goto yy1360;
- 			if (yych <= 'z') goto yy176;
- 			goto yy3;
- 		}
- 	}
--yy1358:
-+yy1360:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -19411,7 +19602,7 @@ yy1358:
- 			}
- 		}
- 	}
--yy1359:
-+yy1361:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19426,7 +19617,7 @@ yy1359:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1319;
-+			if (yych <= 'T') goto yy1320;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19435,18 +19626,18 @@ yy1359:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 't') goto yy1360;
-+				if (yych <= 't') goto yy1362;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1360:
-+yy1362:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '.') {
- 		if (yych <= '(') {
--			if (yych == ' ') goto yy1320;
-+			if (yych == ' ') goto yy1321;
- 			goto yy3;
- 		} else {
- 			if (yych <= ')') goto yy164;
-@@ -19466,7 +19657,7 @@ yy1360:
- 			goto yy3;
- 		}
- 	}
--yy1361:
-+yy1363:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -19481,7 +19672,7 @@ yy1361:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1333;
-+			if (yych <= 'R') goto yy1335;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19490,13 +19681,13 @@ yy1361:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'r') goto yy1362;
-+				if (yych <= 'r') goto yy1364;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1362:
-+yy1364:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19511,7 +19702,7 @@ yy1362:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1334;
-+			if (yych <= 'T') goto yy1336;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19520,13 +19711,13 @@ yy1362:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 't') goto yy1363;
-+				if (yych <= 't') goto yy1365;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1363:
-+yy1365:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -19556,7 +19747,7 @@ yy1363:
- 			}
- 		}
- 	}
--yy1364:
-+yy1366:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -19571,7 +19762,7 @@ yy1364:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1338;
-+			if (yych <= 'S') goto yy1340;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19580,13 +19771,13 @@ yy1364:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 's') goto yy1367;
-+				if (yych <= 's') goto yy1369;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1365:
-+yy1367:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19601,7 +19792,7 @@ yy1365:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1337;
-+			if (yych <= 'T') goto yy1339;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19610,13 +19801,13 @@ yy1365:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1366;
-+				if (yych <= 't') goto yy1368;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1366:
-+yy1368:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -19646,7 +19837,7 @@ yy1366:
- 			}
- 		}
- 	}
--yy1367:
-+yy1369:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19661,7 +19852,7 @@ yy1367:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1339;
-+			if (yych <= 'T') goto yy1341;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19670,20 +19861,20 @@ yy1367:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 't') goto yy1368;
-+				if (yych <= 't') goto yy1370;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1368:
-+yy1370:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
- 		if (yych <= ' ') {
- 			if (yych == '\t') goto yy1196;
- 			if (yych <= 0x1F) goto yy3;
--			goto yy1340;
-+			goto yy1342;
- 		} else {
- 			if (yych == ')') goto yy164;
- 			if (yych <= ',') goto yy3;
-@@ -19705,7 +19896,7 @@ yy1368:
- 			}
- 		}
- 	}
--yy1369:
-+yy1371:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '9') {
-@@ -19733,7 +19924,7 @@ yy1369:
- 				if (yych <= '@') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'R') goto yy1347;
-+				if (yych <= 'R') goto yy1349;
- 				if (yych <= 'Z') goto yy167;
- 				goto yy218;
- 			}
-@@ -19743,13 +19934,13 @@ yy1369:
- 				if (yych <= '`') goto yy218;
- 				goto yy175;
- 			} else {
--				if (yych <= 'r') goto yy1370;
-+				if (yych <= 'r') goto yy1372;
- 				if (yych <= 'z') goto yy175;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1370:
-+yy1372:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'T') {
-@@ -19764,7 +19955,7 @@ yy1370:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'U') goto yy1348;
-+			if (yych <= 'U') goto yy1350;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19773,13 +19964,13 @@ yy1370:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'u') goto yy1371;
-+				if (yych <= 'u') goto yy1373;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1371:
-+yy1373:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -19793,18 +19984,18 @@ yy1371:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1349;
-+			if (yych <= 'A') goto yy1351;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1372;
-+			if (yych <= 'a') goto yy1374;
- 			if (yych <= 'z') goto yy177;
- 			goto yy3;
- 		}
- 	}
--yy1372:
-+yy1374:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -19818,33 +20009,34 @@ yy1372:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'R') goto yy1350;
-+			if (yych <= 'R') goto yy1352;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'r') goto yy1373;
-+			if (yych == 'r') goto yy1375;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1373:
-+yy1375:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy229;
- 	if (yych == 'y') goto yy341;
- 	goto yy179;
--yy1374:
-+yy1376:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
--yy1375:
-+yy1377:
- 	yyaccept = 28;
- 	YYMARKER = ++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
- 	yych = *YYCURSOR;
--	if (yych == '.') goto yy1378;
--	if (yych <= '/') goto yy1377;
--	if (yych <= '9') goto yy1375;
--yy1377:
-+	if (yych == '.') goto yy1380;
-+	if (yych <= '/') goto yy1379;
-+	if (yych <= '9') goto yy1377;
-+yy1379:
-+#line 1025 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_ull i;
- 
-@@ -19869,7 +20061,8 @@ yy1377:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1378:
-+#line 20065 "ext/date/lib/parse_date.c"
-+yy1380:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
-@@ -19889,6 +20082,7 @@ yy1378:
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	++YYCURSOR;
-+#line 1051 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_ull i, ms;
- 
-@@ -19915,7 +20109,8 @@ yy1378:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1386:
-+#line 20113 "ext/date/lib/parse_date.c"
-+yy1388:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -19924,7 +20119,7 @@ yy1386:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'M') goto yy166;
--			goto yy1427;
-+			goto yy1429;
- 		}
- 	} else {
- 		if (yych <= 'm') {
-@@ -19932,58 +20127,58 @@ yy1386:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'n') goto yy1427;
-+			if (yych <= 'n') goto yy1429;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1387:
-+yy1389:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'U') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'I') goto yy1419;
-+			if (yych == 'I') goto yy1421;
- 			if (yych <= 'T') goto yy166;
--			goto yy1420;
-+			goto yy1422;
- 		}
- 	} else {
- 		if (yych <= 'i') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'h') goto yy166;
--			goto yy1419;
-+			goto yy1421;
- 		} else {
--			if (yych == 'u') goto yy1420;
-+			if (yych == 'u') goto yy1422;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1388:
-+yy1390:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'M') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'D') goto yy1408;
-+			if (yych == 'D') goto yy1410;
- 			if (yych <= 'L') goto yy166;
--			goto yy1409;
-+			goto yy1411;
- 		}
- 	} else {
- 		if (yych <= 'd') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'c') goto yy166;
--			goto yy1408;
-+			goto yy1410;
- 		} else {
--			if (yych == 'm') goto yy1409;
-+			if (yych == 'm') goto yy1411;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1389:
-+yy1391:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
- 		if (yych <= ')') {
-@@ -19992,7 +20187,7 @@ yy1389:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy166;
--			goto yy1404;
-+			goto yy1406;
- 		}
- 	} else {
- 		if (yych <= 'd') {
-@@ -20000,12 +20195,12 @@ yy1389:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'e') goto yy1404;
-+			if (yych <= 'e') goto yy1406;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1390:
-+yy1392:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
- 		if (yych <= ')') {
-@@ -20014,7 +20209,7 @@ yy1390:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy166;
--			goto yy1400;
-+			goto yy1402;
- 		}
- 	} else {
- 		if (yych <= 'd') {
-@@ -20022,68 +20217,68 @@ yy1390:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'e') goto yy1400;
-+			if (yych <= 'e') goto yy1402;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1391:
-+yy1393:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') {
- 		if (yych == '.') goto yy1029;
- 		goto yy56;
- 	} else {
--		if (yych <= '9') goto yy1394;
-+		if (yych <= '9') goto yy1396;
- 		if (yych <= ':') goto yy1029;
- 		goto yy56;
- 	}
--yy1392:
-+yy1394:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') {
- 		if (yych == '.') goto yy1029;
- 		goto yy56;
- 	} else {
--		if (yych <= '4') goto yy1394;
-+		if (yych <= '4') goto yy1396;
- 		if (yych == ':') goto yy1029;
- 		goto yy56;
- 	}
--yy1393:
-+yy1395:
- 	yych = *++YYCURSOR;
- 	if (yych == '.') goto yy1029;
- 	if (yych == ':') goto yy1029;
- 	goto yy56;
--yy1394:
-+yy1396:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') {
- 		if (yych == '.') goto yy1029;
- 		goto yy56;
- 	} else {
--		if (yych <= '5') goto yy1395;
-+		if (yych <= '5') goto yy1397;
- 		if (yych == ':') goto yy1029;
- 		goto yy56;
- 	}
--yy1395:
-+yy1397:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	yyaccept = 23;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') goto yy1032;
--	if (yych <= '5') goto yy1397;
--	if (yych <= '6') goto yy1398;
-+	if (yych <= '5') goto yy1399;
-+	if (yych <= '6') goto yy1400;
- 	goto yy1032;
--yy1397:
-+yy1399:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
--	if (yych <= '9') goto yy1399;
-+	if (yych <= '9') goto yy1401;
- 	goto yy56;
--yy1398:
-+yy1400:
- 	yych = *++YYCURSOR;
- 	if (yych != '0') goto yy56;
--yy1399:
-+yy1401:
- 	yych = *++YYCURSOR;
- 	goto yy1040;
--yy1400:
-+yy1402:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'L') {
- 		if (yych <= ')') {
-@@ -20099,12 +20294,12 @@ yy1400:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'l') goto yy1401;
-+			if (yych <= 'l') goto yy1403;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1401:
-+yy1403:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'F') {
- 		if (yych <= ')') {
-@@ -20120,12 +20315,12 @@ yy1401:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'f') goto yy1402;
-+			if (yych <= 'f') goto yy1404;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1402:
-+yy1404:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -20141,12 +20336,12 @@ yy1402:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 't') goto yy1403;
-+			if (yych <= 't') goto yy1405;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1403:
-+yy1405:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -20157,7 +20352,7 @@ yy1403:
- 		if (yych == 'h') goto yy1195;
- 		goto yy3;
- 	}
--yy1404:
-+yy1406:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -20173,12 +20368,12 @@ yy1404:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 's') goto yy1405;
-+			if (yych <= 's') goto yy1407;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1405:
-+yy1407:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -20194,12 +20389,12 @@ yy1405:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'd') goto yy1406;
-+			if (yych <= 'd') goto yy1408;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1406:
-+yy1408:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -20209,12 +20404,12 @@ yy1406:
- 			if (yych <= 'Z') goto yy169;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1407;
-+			if (yych <= 'a') goto yy1409;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1407:
-+yy1409:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'X') {
- 		if (yych == ')') goto yy164;
-@@ -20224,23 +20419,23 @@ yy1407:
- 		if (yych == 'y') goto yy197;
- 		goto yy3;
- 	}
--yy1408:
-+yy1410:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
- 		if (yych <= '@') goto yy3;
--		goto yy1416;
-+		goto yy1418;
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') goto yy167;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1416;
-+			if (yych <= 'a') goto yy1418;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1409:
-+yy1411:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'O') {
- 		if (yych <= ')') {
-@@ -20256,12 +20451,12 @@ yy1409:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'o') goto yy1410;
-+			if (yych <= 'o') goto yy1412;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1410:
-+yy1412:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -20277,12 +20472,12 @@ yy1410:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'r') goto yy1411;
-+			if (yych <= 'r') goto yy1413;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1411:
-+yy1413:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -20298,28 +20493,29 @@ yy1411:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'r') goto yy1412;
-+			if (yych <= 'r') goto yy1414;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1412:
-+yy1414:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'O') goto yy1413;
-+		if (yych <= 'O') goto yy1415;
- 		if (yych != 'o') goto yy3;
- 	}
--yy1413:
-+yy1415:
- 	yych = *++YYCURSOR;
--	if (yych == 'W') goto yy1414;
-+	if (yych == 'W') goto yy1416;
- 	if (yych != 'w') goto yy56;
--yy1414:
-+yy1416:
- 	++YYCURSOR;
--yy1415:
-+yy1417:
-+#line 1013 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("tomorrow");
- 		TIMELIB_INIT;
-@@ -20330,7 +20526,8 @@ yy1415:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1416:
-+#line 20530 "ext/date/lib/parse_date.c"
-+yy1418:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= ')') {
-@@ -20346,21 +20543,22 @@ yy1416:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'y') goto yy1417;
-+			if (yych <= 'y') goto yy1419;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1417:
-+yy1419:
- 	++YYCURSOR;
- 	if ((yych = *YYCURSOR) <= '@') {
- 		if (yych == ')') goto yy164;
- 	} else {
- 		if (yych <= 'Z') goto yy169;
--		if (yych <= '`') goto yy1418;
-+		if (yych <= '`') goto yy1420;
- 		if (yych <= 'z') goto yy169;
- 	}
--yy1418:
-+yy1420:
-+#line 1003 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("midnight | today");
- 		TIMELIB_INIT;
-@@ -20369,7 +20567,8 @@ yy1418:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1419:
-+#line 20571 "ext/date/lib/parse_date.c"
-+yy1421:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= '@') {
-@@ -20377,8 +20576,8 @@ yy1419:
- 			goto yy3;
- 		} else {
- 			if (yych <= 'Q') goto yy167;
--			if (yych <= 'R') goto yy1425;
--			goto yy1426;
-+			if (yych <= 'R') goto yy1427;
-+			goto yy1428;
- 		}
- 	} else {
- 		if (yych <= 'q') {
-@@ -20386,13 +20585,13 @@ yy1419:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'r') goto yy1425;
--			if (yych <= 's') goto yy1426;
-+			if (yych <= 'r') goto yy1427;
-+			if (yych <= 's') goto yy1428;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1420:
-+yy1422:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -20408,12 +20607,12 @@ yy1420:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 'r') goto yy1421;
-+			if (yych <= 'r') goto yy1423;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1421:
-+yy1423:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -20429,12 +20628,12 @@ yy1421:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 's') goto yy1422;
-+			if (yych <= 's') goto yy1424;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1422:
-+yy1424:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -20450,27 +20649,27 @@ yy1422:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'd') goto yy1423;
-+			if (yych <= 'd') goto yy1425;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1423:
-+yy1425:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'A') goto yy1424;
-+		if (yych <= 'A') goto yy1426;
- 		if (yych != 'a') goto yy3;
- 	}
--yy1424:
-+yy1426:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy197;
- 	if (yych == 'y') goto yy197;
- 	goto yy56;
--yy1425:
-+yy1427:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -20492,7 +20691,7 @@ yy1425:
- 			goto yy3;
- 		}
- 	}
--yy1426:
-+yy1428:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '(') {
-@@ -20514,7 +20713,7 @@ yy1426:
- 			goto yy3;
- 		}
- 	}
--yy1427:
-+yy1429:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -20530,12 +20729,12 @@ yy1427:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1428;
-+			if (yych <= 't') goto yy1430;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1428:
-+yy1430:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -20557,7 +20756,7 @@ yy1428:
- 			goto yy3;
- 		}
- 	}
--yy1429:
-+yy1431:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -20572,7 +20771,7 @@ yy1429:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1427;
-+			if (yych <= 'N') goto yy1429;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20581,13 +20780,13 @@ yy1429:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'n') goto yy1459;
-+				if (yych <= 'n') goto yy1461;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1430:
-+yy1432:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'T') {
-@@ -20604,14 +20803,14 @@ yy1430:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'I') goto yy1419;
-+				if (yych == 'I') goto yy1421;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'U') goto yy1420;
-+				if (yych <= 'U') goto yy1422;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -20619,16 +20818,16 @@ yy1430:
- 			}
- 		} else {
- 			if (yych <= 't') {
--				if (yych == 'i') goto yy1451;
-+				if (yych == 'i') goto yy1453;
- 				goto yy171;
- 			} else {
--				if (yych <= 'u') goto yy1452;
-+				if (yych <= 'u') goto yy1454;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1431:
-+yy1433:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'L') {
-@@ -20645,14 +20844,14 @@ yy1431:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'D') goto yy1408;
-+				if (yych == 'D') goto yy1410;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'M') goto yy1409;
-+				if (yych <= 'M') goto yy1411;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -20660,16 +20859,16 @@ yy1431:
- 			}
- 		} else {
- 			if (yych <= 'l') {
--				if (yych == 'd') goto yy1442;
-+				if (yych == 'd') goto yy1444;
- 				goto yy171;
- 			} else {
--				if (yych <= 'm') goto yy1443;
-+				if (yych <= 'm') goto yy1445;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1432:
-+yy1434:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -20684,7 +20883,7 @@ yy1432:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'E') goto yy1404;
-+			if (yych <= 'E') goto yy1406;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20693,13 +20892,13 @@ yy1432:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'e') goto yy1438;
-+				if (yych <= 'e') goto yy1440;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1433:
-+yy1435:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -20714,7 +20913,7 @@ yy1433:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'E') goto yy1400;
-+			if (yych <= 'E') goto yy1402;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20723,13 +20922,13 @@ yy1433:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'e') goto yy1434;
-+				if (yych <= 'e') goto yy1436;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1434:
-+yy1436:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'K') {
-@@ -20744,7 +20943,7 @@ yy1434:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'L') goto yy1401;
-+			if (yych <= 'L') goto yy1403;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20753,13 +20952,13 @@ yy1434:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'l') goto yy1435;
-+				if (yych <= 'l') goto yy1437;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1435:
-+yy1437:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'E') {
-@@ -20774,7 +20973,7 @@ yy1435:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'F') goto yy1402;
-+			if (yych <= 'F') goto yy1404;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20783,13 +20982,13 @@ yy1435:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'f') goto yy1436;
-+				if (yych <= 'f') goto yy1438;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1436:
-+yy1438:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -20804,7 +21003,7 @@ yy1436:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1403;
-+			if (yych <= 'T') goto yy1405;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20813,13 +21012,13 @@ yy1436:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 't') goto yy1437;
-+				if (yych <= 't') goto yy1439;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1437:
-+yy1439:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -20842,7 +21041,7 @@ yy1437:
- 			goto yy3;
- 		}
- 	}
--yy1438:
-+yy1440:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -20857,7 +21056,7 @@ yy1438:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1405;
-+			if (yych <= 'S') goto yy1407;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -20866,13 +21065,13 @@ yy1438:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 's') goto yy1439;
-+				if (yych <= 's') goto yy1441;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1439:
-+yy1441:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -20887,7 +21086,7 @@ yy1439:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1406;
-+			if (yych <= 'D') goto yy1408;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20896,13 +21095,13 @@ yy1439:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'd') goto yy1440;
-+				if (yych <= 'd') goto yy1442;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1440:
-+yy1442:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -20916,18 +21115,18 @@ yy1440:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1407;
-+			if (yych <= 'A') goto yy1409;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1441;
-+			if (yych <= 'a') goto yy1443;
- 			if (yych <= 'z') goto yy177;
- 			goto yy3;
- 		}
- 	}
--yy1441:
-+yy1443:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -20950,7 +21149,7 @@ yy1441:
- 			goto yy3;
- 		}
- 	}
--yy1442:
-+yy1444:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -20964,18 +21163,18 @@ yy1442:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1416;
-+			if (yych <= 'A') goto yy1418;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1449;
-+			if (yych <= 'a') goto yy1451;
- 			if (yych <= 'z') goto yy175;
- 			goto yy3;
- 		}
- 	}
--yy1443:
-+yy1445:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
-@@ -20990,7 +21189,7 @@ yy1443:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'O') goto yy1410;
-+			if (yych <= 'O') goto yy1412;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20999,13 +21198,13 @@ yy1443:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'o') goto yy1444;
-+				if (yych <= 'o') goto yy1446;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1444:
-+yy1446:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -21020,7 +21219,7 @@ yy1444:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1411;
-+			if (yych <= 'R') goto yy1413;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21029,13 +21228,13 @@ yy1444:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'r') goto yy1445;
-+				if (yych <= 'r') goto yy1447;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1445:
-+yy1447:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -21050,7 +21249,7 @@ yy1445:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1412;
-+			if (yych <= 'R') goto yy1414;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21059,13 +21258,13 @@ yy1445:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'r') goto yy1446;
-+				if (yych <= 'r') goto yy1448;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1446:
-+yy1448:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
-@@ -21079,18 +21278,18 @@ yy1446:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'O') goto yy1413;
-+			if (yych <= 'O') goto yy1415;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'o') goto yy1447;
-+			if (yych == 'o') goto yy1449;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1447:
-+yy1449:
- 	yych = *++YYCURSOR;
--	if (yych == 'W') goto yy1414;
-+	if (yych == 'W') goto yy1416;
- 	if (yych != 'w') goto yy179;
- 	yyaccept = 29;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -21099,13 +21298,13 @@ yy1447:
- 	}
- 	if (yych <= '.') {
- 		if (yych == '-') goto yy172;
--		goto yy1415;
-+		goto yy1417;
- 	} else {
- 		if (yych <= '/') goto yy172;
- 		if (yych == '_') goto yy172;
--		goto yy1415;
-+		goto yy1417;
- 	}
--yy1449:
-+yy1451:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -21120,7 +21319,7 @@ yy1449:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'Y') goto yy1417;
-+			if (yych <= 'Y') goto yy1419;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21129,36 +21328,36 @@ yy1449:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'y') goto yy1450;
-+				if (yych <= 'y') goto yy1452;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1450:
-+yy1452:
- 	yyaccept = 30;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
- 		if (yych <= ',') {
- 			if (yych == ')') goto yy164;
--			goto yy1418;
-+			goto yy1420;
- 		} else {
--			if (yych == '.') goto yy1418;
-+			if (yych == '.') goto yy1420;
- 			goto yy172;
- 		}
- 	} else {
- 		if (yych <= '^') {
--			if (yych <= '@') goto yy1418;
-+			if (yych <= '@') goto yy1420;
- 			if (yych <= 'Z') goto yy169;
--			goto yy1418;
-+			goto yy1420;
- 		} else {
- 			if (yych <= '_') goto yy172;
--			if (yych <= '`') goto yy1418;
-+			if (yych <= '`') goto yy1420;
- 			if (yych <= 'z') goto yy177;
--			goto yy1418;
-+			goto yy1420;
- 		}
- 	}
--yy1451:
-+yy1453:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -21173,13 +21372,13 @@ yy1451:
- 			} else {
- 				if (yych <= '@') goto yy3;
- 				if (yych <= 'Q') goto yy167;
--				goto yy1425;
-+				goto yy1427;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'S') goto yy1426;
-+				if (yych <= 'S') goto yy1428;
- 				goto yy167;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -21188,15 +21387,15 @@ yy1451:
- 		} else {
- 			if (yych <= 'r') {
- 				if (yych <= 'q') goto yy175;
--				goto yy1457;
-+				goto yy1459;
- 			} else {
--				if (yych <= 's') goto yy1458;
-+				if (yych <= 's') goto yy1460;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1452:
-+yy1454:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -21211,7 +21410,7 @@ yy1452:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1421;
-+			if (yych <= 'R') goto yy1423;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -21220,13 +21419,13 @@ yy1452:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 'r') goto yy1453;
-+				if (yych <= 'r') goto yy1455;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1453:
-+yy1455:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -21241,7 +21440,7 @@ yy1453:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1422;
-+			if (yych <= 'S') goto yy1424;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21250,13 +21449,13 @@ yy1453:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 's') goto yy1454;
-+				if (yych <= 's') goto yy1456;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1454:
-+yy1456:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21271,7 +21470,7 @@ yy1454:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1423;
-+			if (yych <= 'D') goto yy1425;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21280,13 +21479,13 @@ yy1454:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'd') goto yy1455;
-+				if (yych <= 'd') goto yy1457;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1455:
-+yy1457:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -21300,22 +21499,22 @@ yy1455:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1424;
-+			if (yych <= 'A') goto yy1426;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1456;
-+			if (yych <= 'a') goto yy1458;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1456:
-+yy1458:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy197;
- 	if (yych == 'y') goto yy210;
- 	goto yy179;
--yy1457:
-+yy1459:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21345,7 +21544,7 @@ yy1457:
- 			}
- 		}
- 	}
--yy1458:
-+yy1460:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
-@@ -21374,7 +21573,7 @@ yy1458:
- 			}
- 		}
- 	}
--yy1459:
-+yy1461:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -21389,7 +21588,7 @@ yy1459:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1428;
-+			if (yych <= 'T') goto yy1430;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21398,13 +21597,13 @@ yy1459:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1460;
-+				if (yych <= 't') goto yy1462;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1460:
-+yy1462:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -21434,30 +21633,30 @@ yy1460:
- 			}
- 		}
- 	}
--yy1461:
-+yy1463:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'R') goto yy1473;
-+			if (yych == 'R') goto yy1475;
- 			if (yych <= 'X') goto yy166;
--			goto yy1474;
-+			goto yy1476;
- 		}
- 	} else {
- 		if (yych <= 'r') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'q') goto yy166;
--			goto yy1473;
-+			goto yy1475;
- 		} else {
--			if (yych == 'y') goto yy1474;
-+			if (yych == 'y') goto yy1476;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1462:
-+yy1464:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -21466,7 +21665,7 @@ yy1462:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'C') goto yy166;
--			goto yy1467;
-+			goto yy1469;
- 		}
- 	} else {
- 		if (yych <= 'c') {
-@@ -21474,12 +21673,12 @@ yy1462:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'd') goto yy1467;
-+			if (yych <= 'd') goto yy1469;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1463:
-+yy1465:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -21495,12 +21694,12 @@ yy1463:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'n') goto yy1464;
-+			if (yych <= 'n') goto yy1466;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1464:
-+yy1466:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -21516,12 +21715,12 @@ yy1464:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 'd') goto yy1465;
-+			if (yych <= 'd') goto yy1467;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1465:
-+yy1467:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -21531,12 +21730,12 @@ yy1465:
- 			if (yych <= 'Z') goto yy168;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1466;
-+			if (yych <= 'a') goto yy1468;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1466:
-+yy1468:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= ')') {
-@@ -21558,7 +21757,7 @@ yy1466:
- 			goto yy3;
- 		}
- 	}
--yy1467:
-+yy1469:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -21574,12 +21773,12 @@ yy1467:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'n') goto yy1468;
-+			if (yych <= 'n') goto yy1470;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1468:
-+yy1470:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'I') {
- 		if (yych <= ')') {
-@@ -21595,12 +21794,12 @@ yy1468:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'i') goto yy1469;
-+			if (yych <= 'i') goto yy1471;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1469:
-+yy1471:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'G') {
- 		if (yych <= ')') {
-@@ -21616,29 +21815,29 @@ yy1469:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'g') goto yy1470;
-+			if (yych <= 'g') goto yy1472;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1470:
-+yy1472:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'H') goto yy1471;
-+		if (yych <= 'H') goto yy1473;
- 		if (yych != 'h') goto yy3;
- 	}
--yy1471:
-+yy1473:
- 	yych = *++YYCURSOR;
--	if (yych == 'T') goto yy1472;
-+	if (yych == 'T') goto yy1474;
- 	if (yych != 't') goto yy56;
--yy1472:
-+yy1474:
- 	yych = *++YYCURSOR;
--	goto yy1418;
--yy1473:
-+	goto yy1420;
-+yy1475:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
-@@ -21666,7 +21865,7 @@ yy1473:
- 				if (yych <= '9') goto yy220;
- 				goto yy218;
- 			} else {
--				if (yych == 'C') goto yy1475;
-+				if (yych == 'C') goto yy1477;
- 				goto yy167;
- 			}
- 		} else {
-@@ -21674,13 +21873,13 @@ yy1473:
- 				if (yych <= '`') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'c') goto yy1475;
-+				if (yych <= 'c') goto yy1477;
- 				if (yych <= 'z') goto yy167;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1474:
-+yy1476:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
-@@ -21705,7 +21904,7 @@ yy1474:
- 			goto yy218;
- 		}
- 	}
--yy1475:
-+yy1477:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -21727,7 +21926,7 @@ yy1475:
- 			goto yy3;
- 		}
- 	}
--yy1476:
-+yy1478:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -21744,14 +21943,14 @@ yy1476:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'R') goto yy1473;
-+				if (yych == 'R') goto yy1475;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'Y') goto yy1474;
-+				if (yych <= 'Y') goto yy1476;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -21759,16 +21958,16 @@ yy1476:
- 			}
- 		} else {
- 			if (yych <= 'x') {
--				if (yych == 'r') goto yy1488;
-+				if (yych == 'r') goto yy1490;
- 				goto yy171;
- 			} else {
--				if (yych <= 'y') goto yy1489;
-+				if (yych <= 'y') goto yy1491;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1477:
-+yy1479:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21783,7 +21982,7 @@ yy1477:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1467;
-+			if (yych <= 'D') goto yy1469;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21792,13 +21991,13 @@ yy1477:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'd') goto yy1482;
-+				if (yych <= 'd') goto yy1484;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1478:
-+yy1480:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -21813,7 +22012,7 @@ yy1478:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1464;
-+			if (yych <= 'N') goto yy1466;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21822,13 +22021,13 @@ yy1478:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'n') goto yy1479;
-+				if (yych <= 'n') goto yy1481;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1479:
-+yy1481:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21843,7 +22042,7 @@ yy1479:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1465;
-+			if (yych <= 'D') goto yy1467;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -21852,13 +22051,13 @@ yy1479:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 'd') goto yy1480;
-+				if (yych <= 'd') goto yy1482;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1480:
-+yy1482:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -21872,18 +22071,18 @@ yy1480:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1466;
-+			if (yych <= 'A') goto yy1468;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1481;
-+			if (yych <= 'a') goto yy1483;
- 			if (yych <= 'z') goto yy176;
- 			goto yy3;
- 		}
- 	}
--yy1481:
-+yy1483:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -21913,7 +22112,7 @@ yy1481:
- 			}
- 		}
- 	}
--yy1482:
-+yy1484:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -21928,7 +22127,7 @@ yy1482:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1468;
-+			if (yych <= 'N') goto yy1470;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21937,13 +22136,13 @@ yy1482:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'n') goto yy1483;
-+				if (yych <= 'n') goto yy1485;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1483:
-+yy1485:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'H') {
-@@ -21958,7 +22157,7 @@ yy1483:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'I') goto yy1469;
-+			if (yych <= 'I') goto yy1471;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21967,13 +22166,13 @@ yy1483:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'i') goto yy1484;
-+				if (yych <= 'i') goto yy1486;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1484:
-+yy1486:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'F') {
-@@ -21988,7 +22187,7 @@ yy1484:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'G') goto yy1470;
-+			if (yych <= 'G') goto yy1472;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21997,13 +22196,13 @@ yy1484:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'g') goto yy1485;
-+				if (yych <= 'g') goto yy1487;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1485:
-+yy1487:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -22017,18 +22216,18 @@ yy1485:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'H') goto yy1471;
-+			if (yych <= 'H') goto yy1473;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'h') goto yy1486;
-+			if (yych == 'h') goto yy1488;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1486:
-+yy1488:
- 	yych = *++YYCURSOR;
--	if (yych == 'T') goto yy1472;
-+	if (yych == 'T') goto yy1474;
- 	if (yych != 't') goto yy179;
- 	yyaccept = 30;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -22037,13 +22236,13 @@ yy1486:
- 	}
- 	if (yych <= '.') {
- 		if (yych == '-') goto yy172;
--		goto yy1418;
-+		goto yy1420;
- 	} else {
- 		if (yych <= '/') goto yy172;
- 		if (yych == '_') goto yy172;
--		goto yy1418;
-+		goto yy1420;
- 	}
--yy1488:
-+yy1490:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '9') {
-@@ -22071,7 +22270,7 @@ yy1488:
- 				if (yych <= '@') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'C') goto yy1475;
-+				if (yych <= 'C') goto yy1477;
- 				if (yych <= 'Z') goto yy167;
- 				goto yy218;
- 			}
-@@ -22081,13 +22280,13 @@ yy1488:
- 				if (yych <= '`') goto yy218;
- 				goto yy175;
- 			} else {
--				if (yych <= 'c') goto yy1490;
-+				if (yych <= 'c') goto yy1492;
- 				if (yych <= 'z') goto yy175;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1489:
-+yy1491:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '.') {
-@@ -22122,7 +22321,7 @@ yy1489:
- 			}
- 		}
- 	}
--yy1490:
-+yy1492:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -22152,7 +22351,7 @@ yy1490:
- 			}
- 		}
- 	}
--yy1491:
-+yy1493:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'W') {
- 		if (yych <= 'N') {
-@@ -22160,29 +22359,29 @@ yy1491:
- 			if (yych <= '@') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'O') goto yy1499;
-+			if (yych <= 'O') goto yy1501;
- 			if (yych <= 'U') goto yy166;
--			if (yych <= 'V') goto yy1500;
--			goto yy1497;
-+			if (yych <= 'V') goto yy1502;
-+			goto yy1499;
- 		}
- 	} else {
- 		if (yych <= 'o') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'n') goto yy166;
--			goto yy1499;
-+			goto yy1501;
- 		} else {
- 			if (yych <= 'v') {
- 				if (yych <= 'u') goto yy166;
--				goto yy1500;
-+				goto yy1502;
- 			} else {
--				if (yych <= 'w') goto yy1497;
-+				if (yych <= 'w') goto yy1499;
- 				if (yych <= 'z') goto yy166;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1492:
-+yy1494:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'X') {
- 		if (yych <= ')') {
-@@ -22191,7 +22390,7 @@ yy1492:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'W') goto yy166;
--			goto yy1496;
-+			goto yy1498;
- 		}
- 	} else {
- 		if (yych <= 'w') {
-@@ -22199,12 +22398,12 @@ yy1492:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'x') goto yy1496;
-+			if (yych <= 'x') goto yy1498;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1493:
-+yy1495:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -22220,12 +22419,12 @@ yy1493:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'n') goto yy1494;
-+			if (yych <= 'n') goto yy1496;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1494:
-+yy1496:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -22241,12 +22440,12 @@ yy1494:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1495;
-+			if (yych <= 't') goto yy1497;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1495:
-+yy1497:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -22268,7 +22467,7 @@ yy1495:
- 			goto yy3;
- 		}
- 	}
--yy1496:
-+yy1498:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -22277,7 +22476,7 @@ yy1496:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'S') goto yy167;
--			goto yy1426;
-+			goto yy1428;
- 		}
- 	} else {
- 		if (yych <= 's') {
-@@ -22285,21 +22484,22 @@ yy1496:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1426;
-+			if (yych <= 't') goto yy1428;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1497:
-+yy1499:
- 	++YYCURSOR;
- 	if ((yych = *YYCURSOR) <= '@') {
- 		if (yych == ')') goto yy164;
- 	} else {
- 		if (yych <= 'Z') goto yy167;
--		if (yych <= '`') goto yy1498;
-+		if (yych <= '`') goto yy1500;
- 		if (yych <= 'z') goto yy167;
- 	}
--yy1498:
-+yy1500:
-+#line 982 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("now");
- 		TIMELIB_INIT;
-@@ -22307,7 +22507,8 @@ yy1498:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1499:
-+#line 22511 "ext/date/lib/parse_date.c"
-+yy1501:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -22316,7 +22517,7 @@ yy1499:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'M') goto yy167;
--			goto yy1505;
-+			goto yy1507;
- 		}
- 	} else {
- 		if (yych <= 'm') {
-@@ -22324,12 +22525,12 @@ yy1499:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'n') goto yy1505;
-+			if (yych <= 'n') goto yy1507;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1500:
-+yy1502:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
-@@ -22364,13 +22565,13 @@ yy1500:
- 				if (yych <= '`') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'e') goto yy1501;
-+				if (yych <= 'e') goto yy1503;
- 				if (yych <= 'z') goto yy167;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1501:
-+yy1503:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'M') {
- 		if (yych <= ')') {
-@@ -22386,12 +22587,12 @@ yy1501:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'm') goto yy1502;
-+			if (yych <= 'm') goto yy1504;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1502:
-+yy1504:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'B') {
- 		if (yych <= ')') {
-@@ -22407,36 +22608,37 @@ yy1502:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'b') goto yy1503;
-+			if (yych <= 'b') goto yy1505;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1503:
-+yy1505:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'E') goto yy1504;
-+		if (yych <= 'E') goto yy1506;
- 		if (yych != 'e') goto yy3;
- 	}
--yy1504:
-+yy1506:
- 	yych = *++YYCURSOR;
- 	if (yych == 'R') goto yy229;
- 	if (yych == 'r') goto yy229;
- 	goto yy56;
--yy1505:
-+yy1507:
- 	++YYCURSOR;
- 	if ((yych = *YYCURSOR) <= '@') {
- 		if (yych == ')') goto yy164;
- 	} else {
- 		if (yych <= 'Z') goto yy168;
--		if (yych <= '`') goto yy1506;
-+		if (yych <= '`') goto yy1508;
- 		if (yych <= 'z') goto yy168;
- 	}
--yy1506:
-+yy1508:
-+#line 991 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("noon");
- 		TIMELIB_INIT;
-@@ -22447,7 +22649,8 @@ yy1506:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1507:
-+#line 22653 "ext/date/lib/parse_date.c"
-+yy1509:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'V') {
-@@ -22465,15 +22668,15 @@ yy1507:
- 				if (yych <= '@') goto yy3;
- 				goto yy166;
- 			} else {
--				if (yych <= 'O') goto yy1499;
-+				if (yych <= 'O') goto yy1501;
- 				if (yych <= 'U') goto yy166;
--				goto yy1500;
-+				goto yy1502;
- 			}
- 		}
- 	} else {
- 		if (yych <= 'n') {
- 			if (yych <= '^') {
--				if (yych <= 'W') goto yy1497;
-+				if (yych <= 'W') goto yy1499;
- 				if (yych <= 'Z') goto yy166;
- 				goto yy3;
- 			} else {
-@@ -22483,17 +22686,17 @@ yy1507:
- 			}
- 		} else {
- 			if (yych <= 'v') {
--				if (yych <= 'o') goto yy1514;
-+				if (yych <= 'o') goto yy1516;
- 				if (yych <= 'u') goto yy171;
--				goto yy1515;
-+				goto yy1517;
- 			} else {
--				if (yych <= 'w') goto yy1513;
-+				if (yych <= 'w') goto yy1515;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1508:
-+yy1510:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'W') {
-@@ -22508,7 +22711,7 @@ yy1508:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'X') goto yy1496;
-+			if (yych <= 'X') goto yy1498;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22517,13 +22720,13 @@ yy1508:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'x') goto yy1512;
-+				if (yych <= 'x') goto yy1514;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1509:
-+yy1511:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -22538,7 +22741,7 @@ yy1509:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1494;
-+			if (yych <= 'N') goto yy1496;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22547,13 +22750,13 @@ yy1509:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'n') goto yy1510;
-+				if (yych <= 'n') goto yy1512;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1510:
-+yy1512:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -22568,7 +22771,7 @@ yy1510:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1495;
-+			if (yych <= 'T') goto yy1497;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22577,13 +22780,13 @@ yy1510:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1511;
-+				if (yych <= 't') goto yy1513;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1511:
-+yy1513:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -22613,7 +22816,7 @@ yy1511:
- 			}
- 		}
- 	}
--yy1512:
-+yy1514:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -22628,7 +22831,7 @@ yy1512:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1426;
-+			if (yych <= 'T') goto yy1428;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22637,36 +22840,36 @@ yy1512:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1458;
-+				if (yych <= 't') goto yy1460;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1513:
-+yy1515:
- 	yyaccept = 31;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
- 		if (yych <= ',') {
- 			if (yych == ')') goto yy164;
--			goto yy1498;
-+			goto yy1500;
- 		} else {
--			if (yych == '.') goto yy1498;
-+			if (yych == '.') goto yy1500;
- 			goto yy172;
- 		}
- 	} else {
- 		if (yych <= '^') {
--			if (yych <= '@') goto yy1498;
-+			if (yych <= '@') goto yy1500;
- 			if (yych <= 'Z') goto yy167;
--			goto yy1498;
-+			goto yy1500;
- 		} else {
- 			if (yych <= '_') goto yy172;
--			if (yych <= '`') goto yy1498;
-+			if (yych <= '`') goto yy1500;
- 			if (yych <= 'z') goto yy175;
--			goto yy1498;
-+			goto yy1500;
- 		}
- 	}
--yy1514:
-+yy1516:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -22681,7 +22884,7 @@ yy1514:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1505;
-+			if (yych <= 'N') goto yy1507;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22690,13 +22893,13 @@ yy1514:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'n') goto yy1520;
-+				if (yych <= 'n') goto yy1522;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1515:
-+yy1517:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '9') {
-@@ -22724,7 +22927,7 @@ yy1515:
- 				if (yych <= '@') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'E') goto yy1501;
-+				if (yych <= 'E') goto yy1503;
- 				if (yych <= 'Z') goto yy167;
- 				goto yy218;
- 			}
-@@ -22734,13 +22937,13 @@ yy1515:
- 				if (yych <= '`') goto yy218;
- 				goto yy175;
- 			} else {
--				if (yych <= 'e') goto yy1516;
-+				if (yych <= 'e') goto yy1518;
- 				if (yych <= 'z') goto yy175;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1516:
-+yy1518:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'L') {
-@@ -22755,7 +22958,7 @@ yy1516:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'M') goto yy1502;
-+			if (yych <= 'M') goto yy1504;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22764,13 +22967,13 @@ yy1516:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'm') goto yy1517;
-+				if (yych <= 'm') goto yy1519;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1517:
-+yy1519:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'A') {
-@@ -22785,7 +22988,7 @@ yy1517:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'B') goto yy1503;
-+			if (yych <= 'B') goto yy1505;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22794,13 +22997,13 @@ yy1517:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'b') goto yy1518;
-+				if (yych <= 'b') goto yy1520;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1518:
-+yy1520:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -22814,44 +23017,44 @@ yy1518:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'E') goto yy1504;
-+			if (yych <= 'E') goto yy1506;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'e') goto yy1519;
-+			if (yych == 'e') goto yy1521;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1519:
-+yy1521:
- 	yych = *++YYCURSOR;
- 	if (yych == 'R') goto yy229;
- 	if (yych == 'r') goto yy341;
- 	goto yy179;
--yy1520:
-+yy1522:
- 	yyaccept = 32;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
- 		if (yych <= ',') {
- 			if (yych == ')') goto yy164;
--			goto yy1506;
-+			goto yy1508;
- 		} else {
--			if (yych == '.') goto yy1506;
-+			if (yych == '.') goto yy1508;
- 			goto yy172;
- 		}
- 	} else {
- 		if (yych <= '^') {
--			if (yych <= '@') goto yy1506;
-+			if (yych <= '@') goto yy1508;
- 			if (yych <= 'Z') goto yy168;
--			goto yy1506;
-+			goto yy1508;
- 		} else {
- 			if (yych <= '_') goto yy172;
--			if (yych <= '`') goto yy1506;
-+			if (yych <= '`') goto yy1508;
- 			if (yych <= 'z') goto yy176;
--			goto yy1506;
-+			goto yy1508;
- 		}
- 	}
--yy1521:
-+yy1523:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -22867,12 +23070,12 @@ yy1521:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 's') goto yy1522;
-+			if (yych <= 's') goto yy1524;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1522:
-+yy1524:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -22888,12 +23091,12 @@ yy1522:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1523;
-+			if (yych <= 't') goto yy1525;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1523:
-+yy1525:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
- 		if (yych <= ')') {
-@@ -22909,12 +23112,12 @@ yy1523:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'e') goto yy1524;
-+			if (yych <= 'e') goto yy1526;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1524:
-+yy1526:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -22930,32 +23133,33 @@ yy1524:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'r') goto yy1525;
-+			if (yych <= 'r') goto yy1527;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1525:
-+yy1527:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'D') goto yy1526;
-+		if (yych <= 'D') goto yy1528;
- 		if (yych != 'd') goto yy3;
- 	}
--yy1526:
-+yy1528:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1527;
-+	if (yych == 'A') goto yy1529;
- 	if (yych != 'a') goto yy56;
--yy1527:
-+yy1529:
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1528;
-+	if (yych == 'Y') goto yy1530;
- 	if (yych != 'y') goto yy56;
--yy1528:
-+yy1530:
- 	++YYCURSOR;
--yy1529:
-+yy1531:
-+#line 970 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("yesterday");
- 		TIMELIB_INIT;
-@@ -22966,7 +23170,8 @@ yy1529:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1530:
-+#line 23174 "ext/date/lib/parse_date.c"
-+yy1532:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -22981,7 +23186,7 @@ yy1530:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1522;
-+			if (yych <= 'S') goto yy1524;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22990,13 +23195,13 @@ yy1530:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 's') goto yy1531;
-+				if (yych <= 's') goto yy1533;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1531:
-+yy1533:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -23011,7 +23216,7 @@ yy1531:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1523;
-+			if (yych <= 'T') goto yy1525;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -23020,13 +23225,13 @@ yy1531:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1532;
-+				if (yych <= 't') goto yy1534;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1532:
-+yy1534:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -23041,7 +23246,7 @@ yy1532:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'E') goto yy1524;
-+			if (yych <= 'E') goto yy1526;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -23050,13 +23255,13 @@ yy1532:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'e') goto yy1533;
-+				if (yych <= 'e') goto yy1535;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1533:
-+yy1535:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -23071,7 +23276,7 @@ yy1533:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1525;
-+			if (yych <= 'R') goto yy1527;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -23080,13 +23285,13 @@ yy1533:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'r') goto yy1534;
-+				if (yych <= 'r') goto yy1536;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1534:
-+yy1536:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -23100,21 +23305,21 @@ yy1534:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'D') goto yy1526;
-+			if (yych <= 'D') goto yy1528;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'd') goto yy1535;
-+			if (yych == 'd') goto yy1537;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1535:
-+yy1537:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1527;
-+	if (yych == 'A') goto yy1529;
- 	if (yych != 'a') goto yy179;
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1528;
-+	if (yych == 'Y') goto yy1530;
- 	if (yych != 'y') goto yy179;
- 	yyaccept = 33;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -23123,13 +23328,14 @@ yy1535:
- 	}
- 	if (yych <= '.') {
- 		if (yych == '-') goto yy172;
--		goto yy1529;
-+		goto yy1531;
- 	} else {
- 		if (yych <= '/') goto yy172;
- 		if (yych == '_') goto yy172;
--		goto yy1529;
-+		goto yy1531;
- 	}
- }
-+#line 1772 "ext/date/lib/parse_date.re"
- 
- }
- 
-diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
-index 74d9ea3..f26e276 100644
---- a/ext/date/lib/parse_date.re
-+++ b/ext/date/lib/parse_date.re
-@@ -931,8 +931,8 @@ isoweek          = year4 "-"? "W" weekofyear;
- exif             = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
- firstdayof       = 'first day of';
- lastdayof        = 'last day of';
--backof           = 'back of ' hour24 space? meridian?;
--frontof          = 'front of ' hour24 space? meridian?;
-+backof           = 'back of ' hour24 (space? meridian)?;
-+frontof          = 'front of ' hour24 (space? meridian)?;
- 
- /* Common Log Format: 10/Oct/2000:13:55:36 -0700 */
- clf              = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection;
-diff --git a/ext/date/tests/bug53437_var3.phpt b/ext/date/tests/bug53437_var3.phpt
-index 8f48b1b..8dcd4c8 100644
---- a/ext/date/tests/bug53437_var3.phpt
-+++ b/ext/date/tests/bug53437_var3.phpt
-@@ -40,7 +40,7 @@ object(DateInterval)#%d (16) {
-   ["special_amount"]=>
-   int(-1)
-   ["have_weekday_relative"]=>
--  int(9)
-+  int(0)
-   ["have_special_relative"]=>
-   int(0)
-   ["f"]=>
-diff --git a/ext/wddx/tests/bug75055.phpt b/ext/wddx/tests/bug75055.phpt
-new file mode 100644
-index 0000000..2956284
---- /dev/null
-+++ b/ext/wddx/tests/bug75055.phpt
-@@ -0,0 +1,20 @@
-+--TEST--
-+Bug #75055 Out-Of-Bounds Read in timelib_meridian()
-+--SKIPIF--
-+<?php if (!extension_loaded("wddx")) print "skip"; ?>
-+--FILE--
-+<?php
-+
-+$file_str = dirname(__FILE__) . "/bug75055.wddx";
-+
-+$wddx_str = file_get_contents($file_str);
-+print strlen($wddx_str) . " bytes read.\n";
-+
-+var_dump(wddx_deserialize($wddx_str));
-+?>
-+--EXPECT--
-+323 bytes read.
-+array(1) {
-+  ["aDateTime"]=>
-+  string(12) "frONt of 0 0"
-+}
-diff --git a/ext/wddx/tests/bug75055.wddx b/ext/wddx/tests/bug75055.wddx
-new file mode 100644
-index 0000000..6493352
---- /dev/null
-+++ b/ext/wddx/tests/bug75055.wddx
-@@ -0,0 +1,13 @@
-+<?xml version='1.0'?>
-+<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-+<wddxPacket version='1.0'>
-+<header/>
-+	<data>
-+        	<struct>
-+                    <var name='aDateTime'>
-+                         <dateTime>frONt of 0 0</dateTime>
-+                     </var>
-+                </struct>
-+	</data>
-+</wddxPacket>
-+
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
deleted file mode 100644
index 39c334f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-[PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
-
-Upstream-Status: Pending
-
-AC_TRY_RUN is not suitable for cross-compile
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- ext/fileinfo/config.m4 | 31 ++++++-------------------------
- 1 file changed, 6 insertions(+), 25 deletions(-)
-
-diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4
-index 7e98d62..8a8ea0e 100644
---- a/ext/fileinfo/config.m4
-+++ b/ext/fileinfo/config.m4
-@@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then
-     libmagic/readcdf.c libmagic/softmagic.c"
- 
-   AC_MSG_CHECKING([for strcasestr])
--  AC_TRY_RUN([
--#include <string.h>
--#include <strings.h>
--#include <stdlib.h>
--
--int main(void)
--{
--        char *s0, *s1, *ret;
--
--        s0 = (char *) malloc(42);
--        s1 = (char *) malloc(8);
--
--        memset(s0, 'X', 42);
--        s0[24] = 'Y';
--        s0[26] = 'Z';
--        s0[41] = '\0';
--        memset(s1, 'x', 8);
--        s1[0] = 'y';
--        s1[2] = 'Z';
--        s1[7] = '\0';
--
--        ret = strcasestr(s0, s1);
--
--        return !(NULL != ret);
--}
-+  AC_TRY_COMPILE([
-+     #include <string.h>
-+     #include <strings.h>
-+     #include <stdlib.h>
-+  ],[
-+     strcasestr(NULL, NULL);
-   ],[
-     dnl using the platform implementation
-     AC_MSG_RESULT(yes)
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
index 283d630..066b97c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
@@ -6,26 +6,22 @@
 
 BBCLASSEXTEND = "native"
 DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native \
-           openssl libmcrypt"
+           openssl"
 DEPENDS_class-native = "zlib-native libxml2-native"
 
 PHP_MAJOR_VERSION = "${@d.getVar('PV', True).split('.')[0]}"
 
 SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
-           file://acinclude-xml2-config.patch \
            file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
-           file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
           "
 
 SRC_URI_append_class-target = " \
             file://iconv.patch \
             file://imap-fix-autofoo.patch \
-            file://pear-makefile.patch \
-            file://phar-makefile.patch \
             file://php_exec_native.patch \
             file://php-fpm.conf \
             file://php-fpm-apache.conf \
-            file://configure.patch \
+            file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
             file://70_mod_php${PHP_MAJOR_VERSION}.conf \
             file://php-fpm.service \
           "
@@ -44,7 +40,6 @@
 COMMON_EXTRA_OECONF = "--enable-sockets \
                        --enable-pcntl \
                        --enable-shared \
-                       --disable-opcache \
                        --disable-rpath \
                        --with-pic \
                        --libdir=${PHP_LIBDIR} \
@@ -57,20 +52,22 @@
                 --with-gettext=${STAGING_LIBDIR}/.. \
                 --with-zlib=${STAGING_LIBDIR}/.. \
                 --with-iconv=${STAGING_LIBDIR}/.. \
-                --with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
                 --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
                 --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
-                ${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
+                ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
                 ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
                 ${COMMON_EXTRA_OECONF} \
 "
+
+CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=yes ac_cv_lib_dl_dlopen=yes"
+
 EXTRA_OECONF_class-native = " \
                 --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
                 --without-iconv \
                 ${COMMON_EXTRA_OECONF} \
 "
 
-PACKAGECONFIG ??= "mysql sqlite3 imap \
+PACKAGECONFIG ??= "mysql sqlite3 imap opcache \
                    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
 "
 PACKAGECONFIG_class-native = ""
@@ -94,7 +91,7 @@
                        ,--without-imap --without-imap-ssl \
                        ,uw-imap"
 PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
+PACKAGECONFIG[opcache] = ",--disable-opcache"
 
 export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
 export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
@@ -201,14 +198,14 @@
 
 MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
 
-PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}"
+PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
 
 RDEPENDS_${PN} += "libgcc"
 RDEPENDS_${PN}-pear = "${PN}"
 RDEPENDS_${PN}-phar = "${PN}-cli"
 RDEPENDS_${PN}-cli = "${PN}"
 RDEPENDS_${PN}-modphp = "${PN} apache2"
-RDEPENDS_${PN}-dev = "${PN}"
+RDEPENDS_${PN}-opcache = "${PN}"
 
 INITSCRIPT_PACKAGES = "${PN}-fpm"
 inherit update-rc.d
@@ -237,6 +234,8 @@
                 ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
                 ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
                 ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
+FILES_${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
+FILES_${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
 FILES_${PN} = "${PHP_LIBDIR}/php"
 FILES_${PN} += "${bindir}"
 
@@ -253,18 +252,6 @@
         PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
 }
 
-SSTATEPOSTINSTFUNCS_append_class-native = " php_sstate_postinst "
-
-php_sstate_postinst() {
-    if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
-    then
-        head -n1 ${sysconfdir}/pear.conf > ${sysconfdir}/pear.tmp.conf
-        for p in `tail -n1  ${sysconfdir}/pear.conf | sed -s 's/;/ /g'`; do
-            echo $p | awk -F: 'BEGIN {OFS = ":"; ORS = ";"}{if(NF==3){print $1, length($3)-2*match($3, /^"/), $3} else {print $0}}';
-        done >> ${sysconfdir}/pear.tmp.conf
-        mv -f ${sysconfdir}/pear.tmp.conf ${sysconfdir}/pear.conf
-    fi
-}
 
 # Fails to build with thumb-1 (qemuarm)
 # | {standard input}: Assembler messages:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
new file mode 100644
index 0000000..a250cac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
@@ -0,0 +1,39 @@
+From dfebe81f946a83fe2499fc84d4f3dbdc5612276c Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Tue, 3 Apr 2018 11:35:03 +0800
+Subject: [PATCH] acinclude.m4: don't unset cache variables
+
+Unsetting prevents cache variable from being passed to configure.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ acinclude.m4 | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index f6a55ec..d3346df 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -1890,8 +1890,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,]))
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC_LIB],[
+   ifelse($2,,:,[
+-  unset ac_cv_lib_$2[]_$1
+-  unset ac_cv_lib_$2[]___$1
+   unset found
+   AC_CHECK_LIB($2, $1, [found=yes], [
+     AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
+@@ -1923,8 +1921,6 @@ dnl in the default libraries and as a fall back in the specified library.
+ dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS.
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC],[
+-  unset ac_cv_func_$1
+-  unset ac_cv_func___$1
+   unset found
+   
+   AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
new file mode 100644
index 0000000..1532926
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
@@ -0,0 +1,56 @@
+From a2d146b8dd9d02f523d1e205d79792626a71dec3 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Mon, 2 Apr 2018 15:27:09 +0800
+Subject: [PATCH] acinclude.m4: skip binconfig check for libxml
+
+We want libxml flags to be picked up using pkg-config instead of the
+xml2-config file.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+---
+ acinclude.m4 | 29 -----------------------------
+ 1 file changed, 29 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index d42d708..d32766a 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2525,35 +2525,6 @@ dnl
+ AC_DEFUN([PHP_SETUP_LIBXML], [
+   found_libxml=no
+ 
+-  dnl First try to find xml2-config
+-  AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
+-  [
+-    for i in $PHP_LIBXML_DIR /usr/local /usr; do
+-      if test -x "$i/bin/xml2-config"; then
+-        ac_cv_php_xml2_config_path="$i/bin/xml2-config"
+-        break
+-      fi
+-    done
+-  ])
+-
+-  if test -x "$ac_cv_php_xml2_config_path"; then
+-    XML2_CONFIG="$ac_cv_php_xml2_config_path"
+-    libxml_full_version=`$XML2_CONFIG --version`
+-    ac_IFS=$IFS
+-    IFS="."
+-    set $libxml_full_version
+-    IFS=$ac_IFS
+-    LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
+-    if test "$LIBXML_VERSION" -ge "2006011"; then
+-      found_libxml=yes
+-      LIBXML_LIBS=`$XML2_CONFIG --libs`
+-      LIBXML_INCS=`$XML2_CONFIG --cflags`
+-    else
+-      AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
+-    fi
+-  fi
+-
+-  dnl If xml2-config fails, try pkg-config
+   if test "$found_libxml" = "no"; then
+     if test -z "$PKG_CONFIG"; then
+       AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch
new file mode 100644
index 0000000..6ab101b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch
@@ -0,0 +1,45 @@
+From 0d88d735887c6f2fa00a743c27124c7a52006a41 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 15 Apr 2018 19:17:27 -0700
+Subject: [PATCH] fix error caused by a new variable is declared after the
+ label
+
+There is a build failure on mips:
+...
+|sljitNativeMIPS_common.c: In function 'sljit_has_cpu_feature':
+|sljitNativeMIPS_common.c:506:3: error: a label can only be part
+of a statement and a declaration is not a statement
+|   sljit_sw fir;
+|   ^~~~~~~~
+...
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
+index ee207fe..adfd342 100644
+--- a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
++++ b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
+@@ -498,12 +498,14 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
+ 
+ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type)
+ {
++#if defined(__GNUC__)
++	sljit_sw fir;
++#endif
+ 	switch (feature_type) {
+ 	case SLJIT_HAS_FPU:
+ #ifdef SLJIT_IS_FPU_AVAILABLE
+ 		return SLJIT_IS_FPU_AVAILABLE;
+ #elif defined(__GNUC__)
+-		sljit_sw fir;
+ 		asm ("cfc1 %0, $0" : "=r"(fir));
+ 		return (fir >> 22) & 0x1;
+ #else
+-- 
+2.10.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
new file mode 100644
index 0000000..fce9738
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
@@ -0,0 +1,63 @@
+From 2842aa2a078eb1cad55540b61e7edf111395150d Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Date: Mon, 26 Feb 2018 19:30:55 +0100
+Subject: [PATCH] main/php_ini.c: build empty php_load_zend_extension_cb() when
+ !HAVE_LIBDL
+
+Commit 0782a7fc6314c8bd3cbfd57f12d0479bf9cc8dc7 ("Fixed bug #74866
+extension_dir = "./ext" now use current directory for base") modified
+the php_load_zend_extension_cb() function to use php_load_shlib(), and
+pass a handle to the newly introduced zend_load_extension_handle()
+function instead of passing the extension path to
+zend_load_extension().
+
+While doing so, it introduced a call to php_load_shlib() from code
+that is built even when HAVE_LIBDL is not defined. However,
+php_load_shlib() is not implemented when HAVE_LIBDL is not defined,
+for obvious reasons.
+
+It turns out that zend_load_extension_handle() anyway doesn't do
+anything when ZEND_EXTENSIONS_SUPPORT is defined to 0, and
+ZEND_EXTENSIONS_SUPPORT is not defined when HAVE_LIBDL is not defined
+(Zend/zend_portability.h).
+
+Fixes the following build failure when building on a system that
+doesn't have libdl:
+
+main/php_ini.o: In function `php_load_zend_extension_cb':
+php_ini.c:(.text+0x478): undefined reference to `php_load_shlib'
+php_ini.c:(.text+0x4b0): undefined reference to `php_load_shlib'
+collect2: error: ld returned 1 exit status
+
+Upstream-Status: Backport [http://git.php.net/?p=php-src.git;a=commit;h=2842aa2a078eb1cad55540b61e7edf111395150d]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ main/php_ini.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/main/php_ini.c b/main/php_ini.c
+index ba58eb1..fca263e 100644
+--- a/main/php_ini.c
++++ b/main/php_ini.c
+@@ -350,6 +350,7 @@ static void php_load_php_extension_cb(void *arg)
+ 
+ /* {{{ php_load_zend_extension_cb
+  */
++#ifdef HAVE_LIBDL
+ static void php_load_zend_extension_cb(void *arg)
+ {
+ 	char *filename = *((char **) arg);
+@@ -409,6 +410,9 @@ static void php_load_zend_extension_cb(void *arg)
+ 		efree(libpath);
+ 	}
+ }
++#else
++static void php_load_zend_extension_cb(void *arg) { }
++#endif
+ /* }}} */
+ 
+ /* {{{ php_init_config
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 0000000..0d24d34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,385 @@
+From b2fb725dc404d471371731b663234e87cb0fca84 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Mon, 2 Apr 2018 17:54:52 +0800
+Subject: [PATCH] opcache/config.m4: enable opcache
+
+We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
+the variables directly instead since we know that we'd be running on latest
+enough linux kernel.
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ ext/opcache/config.m4 | 349 ++------------------------------------------------
+ 1 file changed, 8 insertions(+), 341 deletions(-)
+
+diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
+index 7b500f0..10bb99a 100644
+--- a/ext/opcache/config.m4
++++ b/ext/opcache/config.m4
+@@ -28,353 +28,20 @@ if test "$PHP_OPCACHE" != "no"; then
+ 
+   AC_CHECK_HEADERS([unistd.h sys/uio.h])
+ 
+-  AC_MSG_CHECKING(for sysvipc shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/ipc.h>
+-#include <sys/shm.h>
+-#include <unistd.h>
+-#include <string.h>
++  AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+ 
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int ipc_id;
+-  char *shm;
+-  struct shmid_ds shmbuf;
++  AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+ 
+-  ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
+-  if (ipc_id == -1) {
+-    return 1;
+-  }
++  AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+ 
+-  shm = shmat(ipc_id, NULL, 0);
+-  if (shm == (void *)-1) {
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 2;
+-  }
+-
+-  if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 3;
+-  }
+-
+-  shmbuf.shm_perm.uid = getuid();
+-  shmbuf.shm_perm.gid = getgid();
+-  shmbuf.shm_perm.mode = 0600;
+-
+-  if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 4;
+-  }
+-
+-  shmctl(ipc_id, IPC_RMID, NULL);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_ANON
+-# ifdef MAP_ANONYMOUS
+-#  define MAP_ANON MAP_ANONYMOUS
+-# endif
+-#endif
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  char *shm;
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+-  if (shm == MAP_FAILED) {
+-    return 1;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-
+-  fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 1;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 2;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    shm_unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  shm_unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
++  AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+ 
+   AC_MSG_CHECKING(for mmap() using regular file shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-flock_type=unknown
+-AC_MSG_CHECKING("whether flock struct is linux ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=linux
+-    AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  
++  AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+ 
+-AC_MSG_CHECKING("whether flock struct is BSD ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=bsd
+-    AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) 
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  flock_type=linux
++  AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+ 
+ if test "$flock_type" = "unknown"; then
+ 	AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
similarity index 75%
copy from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
copy to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
index 39c334f..3e90184 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
@@ -1,20 +1,25 @@
-[PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
+From 3bfcc7fdd22261eaed10949714de0a90d31e10ab Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Thu, 20 Aug 2015 16:29:35 +0800
+Subject: [PATCH] [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
 
 Upstream-Status: Pending
 
 AC_TRY_RUN is not suitable for cross-compile
 
 Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch
 ---
  ext/fileinfo/config.m4 | 31 ++++++-------------------------
  1 file changed, 6 insertions(+), 25 deletions(-)
 
 diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4
-index 7e98d62..8a8ea0e 100644
+index 523b4fd..0aaa4c8 100644
 --- a/ext/fileinfo/config.m4
 +++ b/ext/fileinfo/config.m4
 @@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then
-     libmagic/readcdf.c libmagic/softmagic.c"
+     libmagic/readcdf.c libmagic/softmagic.c libmagic/der.c"
  
    AC_MSG_CHECKING([for strcasestr])
 -  AC_TRY_RUN([
@@ -52,5 +57,5 @@
      dnl using the platform implementation
      AC_MSG_RESULT(yes)
 -- 
-1.9.1
+2.7.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch
deleted file mode 100644
index c5334c7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- php-5.1.6/configure.old	2006-09-12 07:54:14.000000000 -0700
-+++ php-5.1.6/configure	2006-09-12 07:54:37.000000000 -0700
-@@ -14715,8 +14715,6 @@
- 
- 
- 
--  unset ac_cv_func_dlopen
--  unset ac_cv_func___dlopen
-   unset found
-   
-   echo $ac_n "checking for dlopen""... $ac_c" 1>&6
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
index 255fbb0..b6e3ceb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
@@ -1,10 +1,18 @@
-Upstream-status: Unknown
+From 17cc5645f3acf943a5a06465d09d0ebcfea987bd Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+---
+ acinclude.m4        | 3 ++-
+ ext/iconv/config.m4 | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/acinclude.m4 b/acinclude.m4
-index a6c0d84..df11abd 100644
+index d32766a..ad5166e 100644
 --- a/acinclude.m4
 +++ b/acinclude.m4
-@@ -2452,7 +2452,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
+@@ -2445,7 +2445,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
    dnl Check libc first if no path is provided in --with-iconv
    dnl
  
@@ -15,7 +23,7 @@
      dnl -liconv in.
      LIBS_save="$LIBS"
 diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
-index d673b0a..1fbef13 100644
+index 6a05697..973e750 100644
 --- a/ext/iconv/config.m4
 +++ b/ext/iconv/config.m4
 @@ -15,7 +15,7 @@ if test "$PHP_ICONV" != "no"; then
@@ -27,6 +35,3 @@
          if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; then
            PHP_ICONV_PREFIX="$i"
            break
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
index da04c2d..b5fb7d4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
@@ -1,10 +1,18 @@
-Upstream-status: Unknown
+From c084c8349d1780980e232cb28b60a109e3d89438 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+---
+ acinclude.m4       |  2 +-
+ ext/imap/config.m4 | 10 ++--------
+ 2 files changed, 3 insertions(+), 9 deletions(-)
 
 diff --git a/acinclude.m4 b/acinclude.m4
-index df11abd..06e7236 100644
+index ad5166e..f6a55ec 100644
 --- a/acinclude.m4
 +++ b/acinclude.m4
-@@ -2357,7 +2357,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
+@@ -2350,7 +2350,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
        PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
      fi
  
@@ -14,7 +22,7 @@
          OPENSSL_INCDIR=$i/include
        fi
 diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
-index 3fcf674..f08caf7 100644
+index badb6e2..8ff803c 100644
 --- a/ext/imap/config.m4
 +++ b/ext/imap/config.m4
 @@ -109,7 +109,7 @@ if test "$PHP_IMAP" != "no"; then
@@ -41,6 +49,3 @@
        IMAP_LIB=$lib
        IMAP_LIB_CHK($PHP_LIBDIR)
        IMAP_LIB_CHK(c-client)
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
index 9927d2d..4bc1025 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
@@ -1,11 +1,18 @@
-Upstream-status: Unknown
+From edd575a546d56bb5683aff19782b16963d61fd0b Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+---
+ pear/Makefile.frag | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pear/Makefile.frag b/pear/Makefile.frag
-index 00bacae..739eeca 100644
+index bbe8ec3..16f43e2 100644
 --- a/pear/Makefile.frag
 +++ b/pear/Makefile.frag
-@@ -11,7 +11,7 @@ PEAR_PREFIX = -dp a${program_prefix}
- PEAR_SUFFIX = -ds a$(program_suffix)
+@@ -12,7 +12,7 @@ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
  
  install-pear-installer: $(SAPI_CLI_PATH)
 -	@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
@@ -13,6 +20,3 @@
  
  install-pear:
  	@echo "Installing PEAR environment:      $(INSTALL_ROOT)$(peardir)/"
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
index 2f7fe34..336cf0d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
@@ -1,17 +1,24 @@
-Fix phar packaging
+From 08962a56f69963e01892d98ca5b75de8354bd3f5 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Fix phar packaging
 
 Inherited from OE-Classic, with some additions to fix host paths leaking
 into the target package.
 
 Upstream-Status: Inappropriate [config]
 
+---
+ ext/phar/Makefile.frag | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
 diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
-index 6516ddf..36e6cf4 100644
+index 0e3713f..22f7898 100644
 --- a/ext/phar/Makefile.frag
 +++ b/ext/phar/Makefile.frag
-@@ -5,20 +5,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
  
- PHP_PHARCMD_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
  PHP_PHARCMD_EXECUTABLE = ` \
 -	if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
 -		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 0000000..7be67ea
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,387 @@
+From fafcfac0933c17e1bf551600080eb0541186caf5 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Mon, 2 Apr 2018 17:54:52 +0800
+Subject: [PATCH] opcache/config.m4: enable opcache
+
+We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
+the variables directly instead since we know that we'd be running on latest
+enough linux kernel.
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+%% original patch: php5-0001-opcache-config.m4-enable-opcache.patch
+---
+ ext/opcache/config.m4 | 349 ++------------------------------------------------
+ 1 file changed, 8 insertions(+), 341 deletions(-)
+
+diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
+index 5a8b86c..6e87fa5 100644
+--- a/ext/opcache/config.m4
++++ b/ext/opcache/config.m4
+@@ -11,353 +11,20 @@ if test "$PHP_OPCACHE" != "no"; then
+     AC_DEFINE(HAVE_MPROTECT, 1, [Define if you have mprotect() function])
+   ])
+ 
+-  AC_MSG_CHECKING(for sysvipc shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/ipc.h>
+-#include <sys/shm.h>
+-#include <unistd.h>
+-#include <string.h>
++  AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+ 
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int ipc_id;
+-  char *shm;
+-  struct shmid_ds shmbuf;
++  AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+ 
+-  ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
+-  if (ipc_id == -1) {
+-    return 1;
+-  }
++  AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+ 
+-  shm = shmat(ipc_id, NULL, 0);
+-  if (shm == (void *)-1) {
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 2;
+-  }
+-
+-  if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 3;
+-  }
+-
+-  shmbuf.shm_perm.uid = getuid();
+-  shmbuf.shm_perm.gid = getgid();
+-  shmbuf.shm_perm.mode = 0600;
+-
+-  if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 4;
+-  }
+-
+-  shmctl(ipc_id, IPC_RMID, NULL);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_ANON
+-# ifdef MAP_ANONYMOUS
+-#  define MAP_ANON MAP_ANONYMOUS
+-# endif
+-#endif
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  char *shm;
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+-  if (shm == MAP_FAILED) {
+-    return 1;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-
+-  fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 1;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 2;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    shm_unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  shm_unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
++  AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+ 
+   AC_MSG_CHECKING(for mmap() using regular file shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-flock_type=unknown
+-AC_MSG_CHECKING("whether flock struct is linux ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=linux
+-    AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  
++  AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+ 
+-AC_MSG_CHECKING("whether flock struct is BSD ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=bsd
+-    AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) 
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  flock_type=linux
++  AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+ 
+ if test "$flock_type" = "unknown"; then
+ 	AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
similarity index 78%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
index 39c334f..1d21f8c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
@@ -1,10 +1,17 @@
-[PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
+From 5f49987e88dfcbdb84be6e0c9025432fbd998709 Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Thu, 20 Aug 2015 16:29:35 +0800
+Subject: [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
 
 Upstream-Status: Pending
 
 AC_TRY_RUN is not suitable for cross-compile
 
 Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+
+%% original patch: php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
 ---
  ext/fileinfo/config.m4 | 31 ++++++-------------------------
  1 file changed, 6 insertions(+), 25 deletions(-)
@@ -52,5 +59,5 @@
      dnl using the platform implementation
      AC_MSG_RESULT(yes)
 -- 
-1.9.1
+2.7.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch
new file mode 100644
index 0000000..cff6426
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch
@@ -0,0 +1,26 @@
+From 79725e82d5981fc94eb657f0f46a499dbfc1cc40 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+%% original patch: php5-pear-makefile.patch
+---
+ pear/Makefile.frag | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pear/Makefile.frag b/pear/Makefile.frag
+index 00bacae..739eeca 100644
+--- a/pear/Makefile.frag
++++ b/pear/Makefile.frag
+@@ -11,7 +11,7 @@ PEAR_PREFIX = -dp a${program_prefix}
+ PEAR_SUFFIX = -ds a$(program_suffix)
+ 
+ install-pear-installer: $(SAPI_CLI_PATH)
+-	@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++	@$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+ 
+ install-pear:
+ 	@echo "Installing PEAR environment:      $(INSTALL_ROOT)$(peardir)/"
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch
new file mode 100644
index 0000000..4e1efd4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch
@@ -0,0 +1,46 @@
+From 3ea626a8d081f56b01004b7992534d4e6b81a9cc Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Fix phar packaging
+
+Inherited from OE-Classic, with some additions to fix host paths leaking
+into the target package.
+
+Upstream-Status: Inappropriate [config]
+
+%% original patch: php5-phar-makefile.patch
+---
+ ext/phar/Makefile.frag | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
+diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
+index b8b1b42..1005b2d 100644
+--- a/ext/phar/Makefile.frag
++++ b/ext/phar/Makefile.frag
+@@ -5,20 +5,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+ 
+ PHP_PHARCMD_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
+ PHP_PHARCMD_EXECUTABLE = ` \
+-	if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+-		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
+-		if test "x$(PHP_MODULES)" != "x"; then \
+-		$(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
+-		for i in bz2 zlib phar; do \
+-			if test -f "$(top_builddir)/modules/$$i.la"; then \
+-				. $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+-			fi; \
+-		done; \
+-		fi; \
+-	else \
+-		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+-	fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
++
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+ 
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+ 	-@test -d $(builddir)/phar || mkdir $(builddir)/phar
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
index 0506bdd..6af0dc8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
@@ -1,10 +1,17 @@
-Upstream-status: Inappriate
+From d251b5aa3d23803d016ca16818e2e1d2f2b70a02 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Inappriate
+
+---
+ sapi/cli/config.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
-index cdfa1f7..0fe11e3 100644
+index 2168151..20a81db 100644
 --- a/sapi/cli/config.m4
 +++ b/sapi/cli/config.m4
-@@ -36,7 +36,7 @@ if test "$PHP_CLI" != "no"; then
+@@ -50,7 +50,7 @@ if test "$PHP_CLI" != "no"; then
    esac
  
    dnl Set executable for tests
@@ -13,6 +20,3 @@
    PHP_SUBST(PHP_EXECUTABLE)
  
    dnl Expose to Makefile
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
deleted file mode 100644
index dd8047b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
-
-SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
-            file://pthread-check-threads-m4.patch \
-            file://0001-Add-lpthread-to-link.patch \
-           "
-SRC_URI[md5sum] = "620abe25e0d6cd5f041a360a30ce5783"
-SRC_URI[sha256sum] = "8f397169cb65f0539f3bcb04060f97770d73e19074a37bd2c58b98ebf6ecb10f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb
new file mode 100644
index 0000000..c17c0d6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb
@@ -0,0 +1,23 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
+
+SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
+            file://pthread-check-threads-m4.patch \
+            file://0001-Add-lpthread-to-link.patch \
+            file://acinclude-xml2-config.patch \
+            file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
+            "
+
+SRC_URI_append_class-target = " \
+                                file://php5-pear-makefile.patch \
+                                file://php5-phar-makefile.patch \
+                                file://php5-0001-opcache-config.m4-enable-opcache.patch \
+                                "
+
+SRC_URI[md5sum] = "905ae5f586351f3ca29d044c9484d475"
+SRC_URI[sha256sum] = "ee78a7e9ca21d8ea394d037c55effff477a49dbae31c7753c547036f5bd73b92"
+
+DEPENDS += "libmcrypt"
+EXTRA_OECONF += "--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
+                 " 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
deleted file mode 100644
index acf68a0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c0af599f66d0461c5837c695fcbc5c1e"
-
-SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
-            file://0001-Specify-tag-with-libtool.patch \
-            file://CVE-2017-16642.patch \
-           "
-SRC_URI[md5sum] = "2397be54f3281cdf30c7ef076b28f7d0"
-SRC_URI[sha256sum] = "314dcc10dfdd7c4443edb4fe1e133a44f2b2a8351be8c9eb6ab9222d45fd9bae"
-
-PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
-                        --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
-                        ,--without-mysqli --without-pdo-mysql \
-                        ,mysql5"
-
-FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.4.bb
new file mode 100644
index 0000000..2fd1e66
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.4.bb
@@ -0,0 +1,24 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=67e369bc8d1f2e641236b8002039a6a2"
+
+SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
+            file://0001-acinclude.m4-skip-binconfig-check-for-libxml.patch \
+            file://0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch \
+            file://0001-fix-error-caused-by-a-new-variable-is-declared-after.patch \
+           "
+SRC_URI_append_class-target = " \
+                                file://pear-makefile.patch \
+                                file://phar-makefile.patch \
+                                file://0001-opcache-config.m4-enable-opcache.patch \
+                                "
+
+SRC_URI[md5sum] = "864c64ffd2f1686b035ef8ce6a6d8478"
+SRC_URI[sha256sum] = "11658a0d764dc94023b9fb60d4b5eb75d438ad17981efe70abb0d0d09a447ef3"
+
+PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
+                        --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
+                        ,--without-mysqli --without-pdo-mysql \
+                        ,mysql5"
+
+FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest
new file mode 100644
index 0000000..7c3a8d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest
@@ -0,0 +1,38 @@
+#!/bin/bash
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+TEST_FILE="/tmp/test.data"
+
+RETVAL=0
+# Test every writing test application
+for write_exe_full_path in ${DIR}/add_person_*; do
+	if [ -x "${write_exe_full_path}" ]; then
+		write_exe=`basename ${write_exe_full_path}`
+		echo "Generating new test file using ${write_exe}..."
+		${write_exe_full_path} "${TEST_FILE}"
+		RETVAL=$?
+		[ $RETVAL -eq 0 ] || exit $RETVAL
+
+		# Test every reading test application
+		for read_exe_full_path in ${DIR}/list_people_*; do
+			read_exe=`basename ${read_exe_full_path}`
+			echo "Test: Write with ${write_exe}; Read with ${read_exe}..."
+			if [ -x "${read_exe_full_path}" ]; then
+				${read_exe_full_path} "${TEST_FILE}"
+				RETVAL=$?
+				[ $RETVAL -eq 0 ] || exit $RETVAL
+			fi
+		done
+
+		# Cleanup...
+		if [ -e "${TEST_FILE}" ]; then
+			rm "${TEST_FILE}"
+		fi
+	fi
+done
+
+if [ $RETVAL -eq 0 ] ; then
+    echo "PASS: protobuf"
+else
+    echo "FAIL: protobuf"
+fi
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
deleted file mode 100644
index fae7c18..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
-DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
-efficient yet extensible format. Google uses Protocol Buffers for almost \
-all of its internal RPC protocols and file formats."
-HOMEPAGE = "https://github.com/google/protobuf"
-SECTION = "console/tools"
-LICENSE = "BSD-3-Clause"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
-
-DEPENDS = "zlib"
-RDEPENDS_${PN}-compiler = "${PN}"
-RDEPENDS_${PN}-dev += "${PN}-compiler"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
-
-SRCREV = "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9"
-
-PV = "3.4.1+git${SRCPV}"
-
-SRC_URI = "git://github.com/google/protobuf.git;branch=3.4.x"
-
-EXTRA_OECONF += " --with-protoc=echo"
-
-inherit autotools-brokensep
-
-S = "${WORKDIR}/git"
-
-FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
-FILES_${PN}-lite = "${bindir} ${libdir}/libprotobuf-lite${SOLIBS}"
-
-MIPS_INSTRUCTION_SET = "mips"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
new file mode 100644
index 0000000..1ffb79d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
+efficient yet extensible format. Google uses Protocol Buffers for almost \
+all of its internal RPC protocols and file formats."
+HOMEPAGE = "https://github.com/google/protobuf"
+SECTION = "console/tools"
+LICENSE = "BSD-3-Clause"
+
+PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
+
+DEPENDS = "zlib"
+DEPENDS_append_class-target  = " protobuf-native"
+RDEPENDS_${PN}-compiler = "${PN}"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+RDEPENDS_${PN}-ptest = "bash python-protobuf"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
+
+SRCREV = "106ffc04be1abf3ff3399f54ccf149815b287dd9"
+
+PV = "3.5.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/google/protobuf.git;branch=3.5.x \
+	   file://run-ptest \
+          "
+
+EXTRA_OECONF += " --with-protoc=echo"
+
+inherit autotools-brokensep pkgconfig ptest
+
+S = "${WORKDIR}/git"
+TEST_SRC_DIR="examples"
+LANG_SUPPORT="cpp python"
+
+do_compile_ptest() {
+	# Modify makefile to use the cross-compiler
+	sed -e "s|c++|${CXX} \$(LDFLAGS)|g" -i "${S}/${TEST_SRC_DIR}/Makefile"
+
+	mkdir -p "${B}/${TEST_SRC_DIR}"
+
+	# Add the location of the cross-compiled header and library files
+	# which haven't been installed yet.
+	cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|Libs:|Libs: -L${B}/src/.libs|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
+
+	# Save the pkgcfg sysroot variable, and update it to nothing so
+	# that it doesn't append the sysroot to the beginning of paths.
+	# The header and library files aren't installed to the target
+	# system yet.  So the absolute paths were specified above.
+	save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
+	export PKG_CONFIG_SYSROOT_DIR=
+
+	# Compile the tests
+	for lang in ${LANG_SUPPORT}; do
+		oe_runmake -C "${S}/${TEST_SRC_DIR}" ${lang}
+	done
+
+	# Restore the pkgconfig sysroot variable
+	export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
+}
+
+do_install_ptest() {
+	local olddir=`pwd`
+
+	cd "${S}/${TEST_SRC_DIR}"
+	install -d "${D}/${PTEST_PATH}"
+	for i in add_person* list_people*; do
+		if [ -x "$i" ]; then
+			install "$i" "${D}/${PTEST_PATH}"
+		fi
+	done
+	cp "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
+	cd "$olddir"
+}
+
+FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
+FILES_${PN}-lite = "${bindir} ${libdir}/libprotobuf-lite${SOLIBS}"
+
+MIPS_INSTRUCTION_SET = "mips"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
index 8f6532c..156e52a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
@@ -3,14 +3,9 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRCNAME = "cpuset"
-
-SRC_URI = "https://github.com/lpechacek/${SRCNAME}/archive/v${PV}.tar.gz"
-
-SRC_URI[md5sum] = "6ad79b26ba03f559604d74513cc34392"
-SRC_URI[sha256sum] = "32334e164415ed5aec83c5ffc3dc01c418406eb02d96d881fdfd495587ff0c01"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
+S = "${WORKDIR}/git"
+SRCREV = "ae629aa1dc959342745ad97406adddf63bb6dbdd"
+SRC_URI = "git://github.com/lpechacek/cpuset.git;protocol=https;"
 
 inherit distutils
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb
deleted file mode 100644
index c85fc56..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "The concurrent.futures module provides a high-level interface for asynchronously executing callables."
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=3d78c5bb15ac641d34f2ddc3bd7f51fa"
-HOMEPAGE = "http://code.google.com/p/pythonfutures"
-DEPENDS = "python"
-
-SRC_URI = "https://pypi.python.org/packages/source/f/futures/futures-${PV}.tar.gz"
-SRC_URI[md5sum] = "ced2c365e518242512d7a398b515ff95"
-SRC_URI[sha256sum] = "0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406f981df"
-
-S = "${WORKDIR}/futures-${PV}"
-
-inherit setuptools
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb
new file mode 100644
index 0000000..3ee945f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "The concurrent.futures module provides a high-level interface for asynchronously executing callables."
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=834d982f973c48b6d662b5944c5ab567"
+HOMEPAGE = "https://github.com/agronholm/pythonfutures"
+DEPENDS = "python"
+
+SRC_URI[md5sum] = "d1b299a06b96ccb59f70324716dc0016"
+SRC_URI[sha256sum] = "9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265"
+
+inherit pypi setuptools
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
index a391f7e..9a11442 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
@@ -14,28 +14,15 @@
 index 2c0cfbd..cfcb3bf 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -194,7 +194,7 @@ PKG_CHECK_MODULES(GI,
-     gobject-introspection-1.0 >= introspection_required_version
- )
+@@ -155,7 +155,7 @@ PKG_CHECK_MODULES(GI,
+ 
+ GOBJECT_INTROSPECTION_CHECK(introspection_required_version)
  
 -GI_DATADIR=$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
 +GI_DATADIR=$PKG_CONFIG_SYSROOT_DIR$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
  AC_SUBST(GI_DATADIR)
  
  if test "$enable_cairo" != no; then
-@@ -219,12 +219,6 @@ AC_ARG_WITH(common,
-     with_common=yes)
- AM_CONDITIONAL(WITH_COMMON, test "$with_common" = "yes")
- 
--INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
--INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
--
--AC_SUBST(INTROSPECTION_SCANNER)
--AC_SUBST(INTROSPECTION_COMPILER)
--
- # compiler warnings, errors, required cflags, and code coverage support
- GNOME_COMPILE_WARNINGS([maximum])
- AC_MSG_CHECKING(for Gnome code coverage support)
 -- 
 2.1.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.22.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.22.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
index 9d2e165..ab65ba1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.22.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
@@ -17,8 +17,8 @@
     file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
 "
 
-SRC_URI[md5sum] = "ed4117ed5d554d25fd7718807fbf819f"
-SRC_URI[sha256sum] = "08b29cfb08efc80f7a8630a2734dec65a99c1b59f1e5771c671d2e4ed8a5cbe7"
+SRC_URI[md5sum] = "b29d69edb63ae1f555afeb19f90b9996"
+SRC_URI[sha256sum] = "42b47b261b45aedfc77e02e3c90a01cd74d6f86c3273c1860a054d531d606e5a"
 
 S = "${WORKDIR}/${SRCNAME}-${PV}"
 
@@ -26,7 +26,7 @@
 
 EXTRA_OECONF = "--disable-cairo --with-python=${PYTHON}"
 
-RDEPENDS_${PN} += "python-setuptools python-importlib"
+RDEPENDS_${PN} += "python-setuptools"
 RDEPENDS_${PN}_class-native = ""
 
 do_install_append() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
index 1d837c5..ea944b3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
@@ -9,8 +9,8 @@
 DEPENDS = "python"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz"
-SRC_URI[md5sum] = "4f48e212890ebe584e8d804cfbcfc61e"
-SRC_URI[sha256sum] = "432b4aad25254e6997913e33b1ca3cf5fd21d5729a50a3ce2edccbea82c80533"
+SRC_URI[md5sum] = "0625fb20347d4ff1b5da551539be0727"
+SRC_URI[sha256sum] = "7eaf7a2ea7d4d38a56dd6d2506574464bddf7cf284c960801679942377c297bc"
 
 BBCLASSEXTEND = "native"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
index c51e475..4dbd9a4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
@@ -4,29 +4,32 @@
 
 --- tk8.5-8.5.8.orig/unix/configure
 +++ tk8.5-8.5.8/unix/configure
-@@ -1431,6 +1431,7 @@
- 			`ls -d ${prefix}/lib 2>/dev/null` \
- 			`ls -d /usr/local/lib 2>/dev/null` \
+@@ -1431,7 +1431,8 @@
  			`ls -d /usr/contrib/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/pkg/lib 2>/dev/null` \
 +			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
  			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
  			; do
  		    if test -f "$i/tclConfig.sh" ; then
 --- tk8.5-8.5.8.orig/unix/tcl.m4
 +++ tk8.5-8.5.8/unix/tcl.m4
-@@ -93,6 +93,7 @@
- 			`ls -d ${prefix}/lib 2>/dev/null` \
- 			`ls -d /usr/local/lib 2>/dev/null` \
+@@ -93,7 +93,8 @@
  			`ls -d /usr/contrib/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/pkg/lib 2>/dev/null` \
 +			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
  			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
  			; do
  		    if test -f "$i/tclConfig.sh" ; then
-@@ -223,6 +224,7 @@
+@@ -223,7 +224,8 @@
  			`ls -d ${prefix}/lib 2>/dev/null` \
  			`ls -d /usr/local/lib 2>/dev/null` \
  			`ls -d /usr/contrib/lib 2>/dev/null` \
 +			`ls -d /usr/share/tcltk/tk8.5 2>/dev/null` \
  			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
  			; do
  		    if test -f "$i/tkConfig.sh" ; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
similarity index 94%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.6.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
index d3bf397..13dc4d7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
@@ -26,8 +26,8 @@
     file://fix-xft.diff \
     file://configure.use.fontconfig.with.xft.patch \
 "
-SRC_URI[md5sum] = "dd7dbb3a6523c42d05f6ab6e86096e99"
-SRC_URI[sha256sum] = "d62c371a71b4744ed830e3c21d27968c31dba74dd2c45f36b9b071e6d88eb19d"
+SRC_URI[md5sum] = "5e0faecba458ee1386078fb228d008ba"
+SRC_URI[sha256sum] = "49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33"
 
 S = "${WORKDIR}/${BPN}${PV}/unix"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/remove-policy-of-usr-local-sbin.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/remove-policy-of-usr-local-sbin.patch
deleted file mode 100644
index 3f8debc..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/remove-policy-of-usr-local-sbin.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Directory /usr/local is not used for us. Remove the policy that not to install
-binaries to /usr/local/sbin.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-diff --git a/cfe_internal/update/update_bins.cf b/cfe_internal/update/update_bins.cf
-index 1796caa..697af0d 100644
---- a/cfe_internal/update/update_bins.cf
-+++ b/cfe_internal/update/update_bins.cf
-@@ -55,16 +55,6 @@ bundle agent cfe_internal_bins
-       depth_search => u_recurse_basedir("inf"),
-       action => u_immediate;
- 
--      "/usr/local/sbin/$(agents)"
--      comment => "Create symlinks of CFE binaries in /usr/local/sbin",
--      handle => canonify("cfe_internal_bins_files_sbin_$(agents)"),
--      move_obstructions => "true",
--      link_from => u_ln_s("$(sys.workdir)/bin/$(agents)");
--
--      "/usr/local/sbin/$(agents).cfsaved"
--      comment => "Remove all .cfsaved file extension",
--      handle => canonify("cfe_internal_bins_files_remove_$(agent)_cfsaved"),
--      delete => u_tidy;
- }
- 
- bundle agent cfe_internal_update_bins
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.9.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb
similarity index 64%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.9.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb
index 9d01c51..b52e7cc 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.9.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 - 2016 Wind River Systems, Inc.
+# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
 #
 SUMMARY = "Base policy for CFEngine"
 
@@ -18,20 +18,19 @@
 HOMEPAGE = "http://cfengine.com"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=52cd3d13af93180822888ab0088e9328"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9f76426f9ef8c6f6739fadd21d817a4f"
 
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
-           file://remove-policy-of-usr-local-sbin.patch \
-"
-SRC_URI[md5sum] = "b101ddcd546738af6ec91be5c297cb24"
-SRC_URI[sha256sum] = "63dec2f8649f5f2788cd463dccf47f8dbe941522acfcf3093517f983bbfa0606"
+SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "1247ef4e8f3cee5efa98da50c326e5a4"
+SRC_URI[sha256sum] = "5d18a8d71f451d0b5dd1f5e579452b29b99b664f2bb0827dbba9a615f2764df6"
 
 inherit autotools
 
 export EXPLICIT_VERSION="${PV}"
 
-EXTRA_OECONF = "--prefix=${localstatedir}/cfengine"
+EXTRA_OECONF = "--prefix=${datadir}/cfengine"
 
-FILES_${PN} += "${localstatedir}/cfengine"
+FILES_${PN} = "${datadir}/cfengine"
 
 RDEPENDS_${PN} += "python-core"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.9.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb
similarity index 81%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.9.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb
index 4aa8ded..b86b0a1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.9.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 - 2016 Wind River Systems, Inc.
+# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
 #
 SUMMARY = "CFEngine is an IT infrastructure automation framework"
 
@@ -11,7 +11,7 @@
 HOMEPAGE = "http://cfengine.com"
 
 LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cd59c3650c8b7ff36bab1cc6587b097a"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f8b34828ab373d6b1bb4b0fc60a78494"
 
 DEPENDS = "attr tokyocabinet"
 
@@ -20,14 +20,17 @@
            file://set-path-of-default-config-file.patch \
 "
 
-SRC_URI[md5sum] = "63da39655cfca30ca885fcc4a1bf8aa4"
-SRC_URI[sha256sum] = "32a38aedf1199c2361e1335e0d4a1d98f9efa7cd591bcb647f35c7395bb66f2d"
+SRC_URI[md5sum] = "c16baf08189a1af6fcf2e2ff61102992"
+SRC_URI[sha256sum] = "d4fa9ac7276dba7b85d6757aab2f0929ab8d3b115cb0e7b0cf984760347429d7"
 
 inherit autotools systemd
 
 export EXPLICIT_VERSION="${PV}"
 
-SYSTEMD_SERVICE_${PN} = "cfengine3.service cfengine3-web.service"
+SYSTEMD_SERVICE_${PN} = "cfengine3.service cf-apache.service cf-hub.service cf-postgres.service \
+                         cf-runalerts.service cf-consumer.service cf-execd.service \
+                         cf-monitord.service  cf-redis-server.service  cf-serverd.service \
+"
 SYSTEMD_AUTO_ENABLE_${PN} = "disable"
 
 PACKAGECONFIG ??= "libpcre openssl \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
index 25166ab..987c09f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
@@ -24,6 +24,10 @@
 EXTRA_OECMAKE = "-DLIB='${baselib}' \
                  -DPYTHON_INCLUDE_PATH=${STAGING_INCDIR}/python${PYTHON_BASEVERSION}"
 
+# With Ninja it fails with:
+# ninja: error: build.ninja:282: bad $-escape (literal $ must be written as $$)
+OECMAKE_GENERATOR = "Unix Makefiles"
+
 do_configure_prepend() {
     export STAGING_LIBDIR=${STAGING_LIBDIR}
     export STAGING_INCDIR=${STAGING_INCDIR}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.19.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.22.bb
similarity index 89%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.19.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.22.bb
index 27e00a5..2df7db9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.19.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.22.bb
@@ -10,8 +10,8 @@
                     file://main_common.cc;beginline=5;endline=16;md5=3ec288b2676528cd2b069364e313016f"
 
 SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.lz"
-SRC_URI[md5sum] = "ed6b5b82d74cbd925db2b829350e74b1"
-SRC_URI[sha256sum] = "ed8d0c9d9aac80a9110e9cb0d0a91a7390d3bf9f816b67a62ca4eb140f4747b8"
+SRC_URI[md5sum] = "49c845ed89d25b534842e40366154cb4"
+SRC_URI[sha256sum] = "09857b2e8074813ac19da5d262890f722e5f7900e521a4c60354cef95eea10a7"
 
 # This isn't already added by base.bbclass
 do_unpack[depends] += "lzip-native:do_populate_sysroot"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb
index 85dede1..63c65c4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20160828.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb
@@ -10,8 +10,8 @@
 
 SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
           "
-SRC_URI[md5sum] = "a39ec183517bc1feaff017d067300b8c"
-SRC_URI[sha256sum] = "453095abaec288bfbc1ca9faced917e17742cff1ea45ec46210071ac153562f9"
+SRC_URI[md5sum] = "f66f28beca900b54f5fc90fdcce93508"
+SRC_URI[sha256sum] = "20139442119e2eff5c35236e8e5e313c901539008d9cccf8c8ab3851b41267e6"
 
 # hardcoded here for use in dialog-static recipe
 S = "${WORKDIR}/dialog-${PV}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.0.bb
new file mode 100644
index 0000000..e1a6d95
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Simple wrapper script which proxies signals to a child"
+HOMEPAGE = "https://github.com/Yelp/dumb-init/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5940d39995ea6857d01b8227109c2e9c"
+
+SRC_URI = "https://github.com/Yelp/dumb-init/archive/v${PV}.tar.gz"
+SRC_URI[md5sum] = "4eb7f43d7823686723ff7ac1bad097cb"
+SRC_URI[sha256sum] = "74486997321bd939cad2ee6af030f481d39751bc9aa0ece84ed55f864e309a3f"
+
+EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS} ${LDFLAGS}'"
+
+do_install() {
+    install -d ${D}${base_sbindir}
+    install ${S}/dumb-init ${D}${base_sbindir}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
deleted file mode 100644
index fc8f8c8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Taken from void linux
-
-Index: git/src/linux.c
-===================================================================
---- git.orig/src/linux.c
-+++ git/src/linux.c
-@@ -40,6 +40,10 @@
- #include <efivar.h>
- #include <efiboot.h>
- 
-+#if !defined(__GLIBC__)
-+#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
-+#endif
-+
- #include "dp.h"
- #include "linux.h"
- #include "util.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-Remove-undefined-behavior.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-Remove-undefined-behavior.patch
deleted file mode 100644
index 51397dc..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-Remove-undefined-behavior.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From d2a03b3e43043b596a79803bcb93f70e513bbb50 Mon Sep 17 00:00:00 2001
-From: Patrick Georgi <pgeorgi@google.com>
-Date: Mon, 13 Mar 2017 13:48:03 +0100
-Subject: [PATCH] Remove undefined behavior
-
-Per clang-3.9, the compiler fails on #define ...defined(...) statements
-as they're undefined behavior (apparently with different behavior
-between gcc/clang and msvc, too).
-
-See clang's cfe repo commit r258128 for details.
-
-Change-Id: I82b6235e11b425fae45eebbe06b08f81c5bdbb98
-Signed-off-by: Patrick Georgi <pgeorgi@google.com>
-Reviewed-on: https://review.coreboot.org/18792
-Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
----
- hwaccess.c | 18 +++++++++++++++---
- platform.h | 18 +++++++++++++++---
- 2 files changed, 30 insertions(+), 6 deletions(-)
-
-diff --git a/hwaccess.c b/hwaccess.c
-index aede7e3..2bf6f42 100644
---- a/hwaccess.c
-+++ b/hwaccess.c
-@@ -37,9 +37,21 @@
- #error "Unknown operating system"
- #endif
- 
--#define USE_IOPL	(IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__))
--#define USE_DEV_IO	(defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__))
--#define USE_IOPERM	(defined(__gnu_hurd__))
-+#if IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__)
-+#define USE_IOPL 1
-+#else
-+#define USE_IOPL 0
-+#endif
-+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
-+#define USE_DEV_IO 1
-+#else
-+#define USE_DEV_IO 0
-+#endif
-+#if defined(__gnu_hurd__)
-+#define USE_IOPERM 1
-+#else
-+#define USE_IOPERM 0
-+#endif
- 
- #if USE_IOPERM
- #include <sys/io.h>
-diff --git a/platform.h b/platform.h
-index c5a52ef..b2fdcd0 100644
---- a/platform.h
-+++ b/platform.h
-@@ -25,9 +25,21 @@
- #define __PLATFORM_H__ 1
- 
- // Helper defines for operating systems
--#define IS_LINUX	(defined(__gnu_linux__) || defined(__linux__))
--#define IS_MACOSX	(defined(__APPLE__) && defined(__MACH__)) /* yes, both. */
--#define IS_WINDOWS	(defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(__WINDOWS__))
-+#if defined(__gnu_linux__) || defined(__linux__)
-+#define IS_LINUX 1
-+#else
-+#define IS_LINUX 0
-+#endif
-+#if defined(__APPLE__) && defined(__MACH__) /* yes, both. */
-+#define IS_MACOSX 1
-+#else
-+#define IS_MACOSX 0
-+#endif
-+#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(__WINDOWS__)
-+#define IS_WINDOWS 1
-+#else
-+#define IS_WINDOWS 0
-+#endif
- 
- // Likewise for target architectures
- #if defined (__i386__) || defined (__x86_64__) || defined(__amd64__)
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-spi-Define-_XOPEN_SOURCE-to-enable-ffs-libc-API.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-spi-Define-_XOPEN_SOURCE-to-enable-ffs-libc-API.patch
deleted file mode 100644
index 4170fef..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-spi-Define-_XOPEN_SOURCE-to-enable-ffs-libc-API.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 7c65a465a3ddeb7afb9a7c49d010ae7e5d5b1ad1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 18 Jul 2017 20:25:49 -0700
-Subject: [PATCH] spi: Define _XOPEN_SOURCE to enable ffs() libc API
-
-musl exposes this issue
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- spi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/spi.c b/spi.c
-index 894f73f..aeb6518 100644
---- a/spi.c
-+++ b/spi.c
-@@ -21,7 +21,7 @@
- /*
-  * Contains the generic SPI framework
-  */
--
-+#define _XOPEN_SOURCE
- #include <strings.h>
- #include <string.h>
- #include "flash.h"
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.9.bb
deleted file mode 100644
index 4cdd8ad..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.9.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
-LICENSE = "GPLv2"
-HOMEPAGE = "http://flashrom.org"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "pciutils libusb libusb-compat"
-
-SRC_URI = "http://download.flashrom.org/releases/flashrom-${PV}.tar.bz2 \
-           file://0001-spi-Define-_XOPEN_SOURCE-to-enable-ffs-libc-API.patch \
-           file://sst26.patch \
-           file://0001-Remove-undefined-behavior.patch \
-           "
-SRC_URI[md5sum] = "aab9c98925d9cfb5ffb28b67a6112530"
-SRC_URI[sha256sum] = "cb3156b0f63eb192024b76c0814135930297aac41f80761a5d293de769783c45"
-
-inherit pkgconfig
-
-do_install() {
-    oe_runmake PREFIX=${prefix} DESTDIR=${D} install
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb
index e2edd09..99f680f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb
@@ -21,6 +21,10 @@
 
 EXTRA_OECMAKE = "-DGNU_HOST=${HOST_SYS} -DFLB_ALL=ON -DFLB_TD=1"
 
+# With Ninja it fails with:
+# ninja: error: build.ninja:134: bad $-escape (literal $ must be written as $$)
+OECMAKE_GENERATOR = "Unix Makefiles"
+
 SYSTEMD_SERVICE_${PN} = "td-agent-bit.service"
 
 TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot.inc b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot.inc
deleted file mode 100644
index 19ee874..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot.inc
+++ /dev/null
@@ -1,42 +0,0 @@
-DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
-(text or binary) and function plotting utility."
-HOMEPAGE = "http://www.gnuplot.info/"
-SECTION = "console/scientific"
-LICENSE = "gnuplot"
-LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
-DEPENDS = "virtual/libx11 gd readline"
-
-inherit autotools distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-acpaths = ""
-
-PACKAGECONFIG ??= "cairo"
-PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo pango"
-PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua"
-# there's compilation failure if qt4 is enabled
-PACKAGECONFIG[qt4] = "--with-qt,--without-qt,qt4-x11-free"
-
-EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR}/.. \
-                --without-tutorial \
-                --disable-wxwidgets"
-
-do_compile_prepend() {
-    install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
-}
-
-do_install_append() {
-    install -d ${D}${datadir}/applications/
-    install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
-    install -d ${D}${datadir}/pixmaps/
-    install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
-}
-
-PACKAGES =+ "${PN}-x11-dbg ${PN}-x11"
-DESCRIPTION_${PN}-x11 = "X11 display terminal for Gnuplot."
-SECTION_${PN}-x11 = "x11/scientific"
-FILES_${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
-
-FILES_${PN} += "${datadir}/texmf"
-FILES_${PN}-x11-dbg += "${libexecdir}/gnuplot/*/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch
new file mode 100644
index 0000000..f8f1fd0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch
@@ -0,0 +1,31 @@
+From a2ac966813fdc04b788be9c8474a4c5e36c109a0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 6 Mar 2018 21:53:26 +0100
+Subject: [PATCH] reduce build to conversion tools for native build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 9241ce5..b24e291 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in -*-Makefile-*-
+ AUTOMAKE_OPTIONS = foreign
+ 
+-SUBDIRS = config m4 term src docs man demo tutorial share
++SUBDIRS = docs
+ 
+ EXTRA_DIST = BUGS Copyright FAQ.pdf GNUmakefile INSTALL INSTALL.gnu \
+ Makefile.maint PATCHLEVEL PGPKEYS README RELEASE_NOTES \
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch
new file mode 100644
index 0000000..8e0b4a2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch
@@ -0,0 +1,31 @@
+From a2ac966813fdc04b788be9c8474a4c5e36c109a0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 6 Mar 2018 21:53:26 +0100
+Subject: [PATCH] Do not build demos
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 9241ce5..b24e291 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in -*-Makefile-*-
+ AUTOMAKE_OPTIONS = foreign
+ 
+-SUBDIRS = config m4 term src docs man demo tutorial share
++SUBDIRS = config m4 term src docs man tutorial share
+ 
+ EXTRA_DIST = BUGS Copyright FAQ.pdf GNUmakefile INSTALL INSTALL.gnu \
+ Makefile.maint PATCHLEVEL PGPKEYS README RELEASE_NOTES \
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch
new file mode 100644
index 0000000..a4039c3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch
@@ -0,0 +1,111 @@
+From 1128a98fd1676981e536d8773f363cb832cfa6bb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 6 Mar 2018 22:28:56 +0100
+Subject: [PATCH] Use native tools to build docs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ docs/Makefile.am | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index 3baf0c4..e82f87d 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -152,7 +152,7 @@ gnuplot-groff.ps: gnuplot.ms $(srcdir)/titlepag.ms
+ 
+ ### doc2xxx dependencies
+ gnuplot.ms: doc2ms$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN) ./doc2ms$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.ms "$(srcdir)/titlepag.ms"
++	$(AM_V_GEN) doc2ms$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.ms "$(srcdir)/titlepag.ms"
+ 
+ doc2ms_SOURCES = doc2ms.c termdoc.c
+ doc2ms_CPPFLAGS = -DALL_TERM_DOC $(AM_CPPFLAGS)
+@@ -173,10 +173,10 @@ pdf_figures: $(GNUPLOT_EXE) $(srcdir)/plotstyles.gnu
+ 	$(AM_V_GEN)touch $@
+ 
+ figures.tex: allterm.h doc2tex$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN)./doc2tex$(EXEEXT) -figures $(srcdir)/gnuplot.doc $@
++	$(AM_V_GEN) doc2tex$(EXEEXT) -figures $(srcdir)/gnuplot.doc $@
+ 
+ nofigures.tex: allterm.h doc2tex$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN)./doc2tex$(EXEEXT) $(srcdir)/gnuplot.doc $@
++	$(AM_V_GEN) doc2tex$(EXEEXT) $(srcdir)/gnuplot.doc $@
+ 
+ pdf: gnuplot.pdf
+ pdf_nofig: nofigures.pdf
+@@ -256,7 +256,7 @@ gnuplot.ps: gnuplot.dvi
+ hlp: gnuplot.hlp
+ 
+ gnuplot.hlp: doc2hlp$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN)./doc2hlp$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.hlp
++	$(AM_V_GEN)doc2hlp$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.hlp
+ 
+ doc2hlp_SOURCES = doc2hlp.c termdoc.c
+ 
+@@ -264,14 +264,14 @@ doc2hlp_SOURCES = doc2hlp.c termdoc.c
+ gih: gnuplot.gih
+ 
+ gnuplot.gih: doc2gih$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN)./doc2gih$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.gih
++	$(AM_V_GEN)doc2gih$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.gih
+ 
+ doc2gih_SOURCES = doc2gih.c termdoc.c
+ 
+ # To include all terminals in the .gih file
+ allgih: alldoc2gih$(EXEEXT) $(srcdir)/gnuplot.doc
+ 	@echo "generate gnuplot.gih with all terminals"
+-	$(AM_V_at)./alldoc2gih$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.gih
++	$(AM_V_at)alldoc2gih$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.gih
+ 
+ alldoc2gih_SOURCES = doc2gih.c termdoc.c
+ alldoc2gih_CPPFLAGS = -DALL_TERM_DOC $(AM_CPPFLAGS)
+@@ -286,7 +286,7 @@ $(srcdir)/windows/wgnuplot.hhk
+ wxhelp/wgnuplot.hhc wxhelp/wgnuplot.hhk wxhelp/*.html windows/*.png
+ 
+ wxhelp/wgnuplot.html: doc2wxhtml$(EXEEXT) $(srcdir)/gnuplot.doc 
+-	$(AM_V_GEN) ./doc2wxhtml$(EXEEXT) $(srcdir)/gnuplot.doc wxhelp/
++	$(AM_V_GEN) doc2wxhtml$(EXEEXT) $(srcdir)/gnuplot.doc wxhelp/
+ 
+ #doc2wxhtml_SOURCES = windows/doc2html.c termdoc.c xref.c allterm.h
+ #doc2wxhtml_CPPFLAGS = -DALL_TERM_DOC -DWXHELP -I../src $(AM_CPPFLAGS)
+@@ -336,7 +336,7 @@ install-info: gnuplot.info
+ ipf: gnuplot.ipf
+ 
+ gnuplot.ipf: doc2ipf$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN) ./doc2ipf$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.ipf
++	$(AM_V_GEN) doc2ipf$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.ipf
+ 
+ doc2ipf_SOURCES = doc2ipf.c termdoc.c xref.c
+ 
+@@ -344,7 +344,7 @@ doc2ipf_SOURCES = doc2ipf.c termdoc.c xref.c
+ rtf: gnuplot.rtf
+ 
+ gnuplot.rtf: doc2rtf$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN) ./doc2rtf$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.rtf
++	$(AM_V_GEN) doc2rtf$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.rtf
+ 
+ doc2rtf_SOURCES = doc2rtf.c termdoc.c xref.c
+ 
+@@ -352,13 +352,13 @@ doc2rtf_SOURCES = doc2rtf.c termdoc.c xref.c
+ rnh: gnuplot.rnh
+ 
+ gnuplot.rnh: doc2rnh$(EXEEXT) $(srcdir)/gnuplot.doc
+-	$(AM_V_GEN) ./doc2rnh$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.rnh
++	$(AM_V_GEN) doc2rnh$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.rnh
+ 
+ doc2rnh_SOURCES = doc2rnh.c termdoc.c
+ 
+ # this is how to check the gnuplot.doc file
+ check-local: checkdoc$(EXEEXT)
+-	$(AM_V_at)./checkdoc$(EXEEXT) < $(srcdir)/gnuplot.doc; \
++	$(AM_V_at)checkdoc$(EXEEXT) < $(srcdir)/gnuplot.doc; \
+ 	if test $$? -eq 0; then \
+ 	  echo "PASS: gnuplot.doc"; \
+ 	else \
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0004-Add-configure-option-to-find-qt5-native-tools.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0004-Add-configure-option-to-find-qt5-native-tools.patch
new file mode 100644
index 0000000..7ed9e76
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/0004-Add-configure-option-to-find-qt5-native-tools.patch
@@ -0,0 +1,42 @@
+From 577e21622475fa29fd471149cf2380c53fdbfcbd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 6 Mar 2018 22:26:48 +0100
+Subject: [PATCH] Add configure option to find qt5 native tools
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Pkg-config checks for target locations. With these qt5 tools as uic/moc..
+cannot be used.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ configure.ac | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index cdd831a..fdd192b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1133,11 +1133,15 @@ if test "${enable_qt}" = yes ; then
+   else
+     try_qt4=yes
+   fi
++  AC_ARG_WITH(qt5nativesysroot,
++    AC_HELP_STRING([--with-qt5nativesysroot=PATH], [prepend path - for native qt5 tools]),
++    [QT5NATIVESYSROOT="$withval"], [QT5NATIVESYSROOT=""])
++
+   if test "x${with_qt}" != "xqt4"; then
+     PKG_CHECK_MODULES_NOFAIL(QT, [Qt5Core Qt5Gui Qt5Network Qt5Svg Qt5PrintSupport])
+     if test $pkg_failed = no; then
+       try_qt4=no
+-      QT5LOC=`$PKG_CONFIG --variable=host_bins Qt5Core`
++      QT5LOC=${QT5NATIVESYSROOT}`$PKG_CONFIG --variable=host_bins Qt5Core`
+       if test "x${QT5LOC}" != "x"; then
+         UIC=${QT5LOC}/uic
+         MOC=${QT5LOC}/moc
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop
index f67df9e..1012e47 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop
@@ -1,8 +1,8 @@
 [Desktop Entry]
 Name=Gnuplot
 Comment=Plot data and function graphs
-Exec=x-terminal-emulator -e gnuplot
-Terminal=false
+Exec=gnuplot
+Terminal=true
 Type=Application
 Icon=gnuplot
 Categories=Science;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/lua-loadlibs-configure-in-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/lua-loadlibs-configure-in-fix.patch
deleted file mode 100644
index 23f2cd2..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/lua-loadlibs-configure-in-fix.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: gnuplot-4.6.5/configure.in
-===================================================================
---- gnuplot-4.6.5.orig/configure.in
-+++ gnuplot-4.6.5/configure.in
-@@ -690,6 +690,11 @@ if test "${with_lua}" = yes ; then
-   fi
- 
-   if test "$with_lua" != no; then
-+    dnl check for dlopen/dl to fix loadlibs link failure
-+    AC_CHECK_FUNC([dlopen], [],
-+      AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
-+    AC_SUBST(DLOPEN_LIBS)
-+    LUA_LIBS="$LUA_LIBS $DLOPEN_LIBS"
-     TERMLIBS="$TERMLIBS $LUA_LIBS"
-     CPPFLAGS="$CPPFLAGS $LUA_CFLAGS"
-   else
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/qtopia.trm b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/qtopia.trm
deleted file mode 100644
index b52f9bb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/qtopia.trm
+++ /dev/null
@@ -1,483 +0,0 @@
-/*
- * $Id: dumb.trm,v 1.16 2004/04/13 17:24:16 broeker Exp $
- *
- */
-
-/* GNUPLOT - qtopia.trm */
-
-/*[
- * Copyright 1991 - 1993, 1998, 2004   Thomas Williams, Colin Kelley
- *
- * Permission to use, copy, and distribute this software and its
- * documentation for any purpose with or without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation.
- *
- * Permission to modify the software is granted, but not the right to
- * distribute the complete modified source code.  Modifications are to
- * be distributed as patches to the released version.  Permission to
- * distribute binaries produced by compiling modified sources is granted,
- * provided you
- *   1. distribute the corresponding source modifications from the
- *    released version in the form of a patch file along with the binaries,
- *   2. add special version identification to distinguish your version
- *    in addition to the base release version number,
- *   3. provide your name and address as the primary contact for the
- *    support of your modified version, and
- *   4. retain our contact information in regard to use of the base
- *    software.
- * Permission to distribute the released version of the source code along
- * with corresponding source modifications in the form of a patch file is
- * granted with same provisions 2 through 4 for binary distributions.
- *
- * This software is provided "as is" without express or implied warranty
- * to the extent permitted by applicable law.
-]*/
-
-/*
- * This file is included by ../term.c.
- *
- * This terminal driver supports:
- *   qtopia terminals
- *
- * AUTHORS
- *   Michael Neuroth, 2004-05-16
- *           INTERNET: michael.neuroth@freenet.de
- *
- * send your comments or suggestions to (gnuplot-info@lists.sourceforge.net).
- *
- */
-#include "driver.h"
-
-#define NO_QTOPIA_ENHANCED_SUPPORT
-
-#ifdef TERM_REGISTER
-register_term(qtopia_driver)
-#endif
-
-#ifdef TERM_PROTO
-TERM_PUBLIC void QTOPIA_options __PROTO((void));
-TERM_PUBLIC void QTOPIA_init __PROTO((void));
-TERM_PUBLIC void QTOPIA_graphics __PROTO((void));
-TERM_PUBLIC void QTOPIA_text __PROTO((void));
-TERM_PUBLIC void QTOPIA_reset __PROTO((void));
-TERM_PUBLIC void QTOPIA_linetype __PROTO((int linetype));
-TERM_PUBLIC void QTOPIA_move __PROTO((unsigned int x, unsigned int y));
-TERM_PUBLIC void QTOPIA_point __PROTO((unsigned int x, unsigned int y,
-				     int point));
-TERM_PUBLIC void QTOPIA_vector __PROTO((unsigned int x, unsigned int y));
-TERM_PUBLIC void QTOPIA_put_text __PROTO((unsigned int x, unsigned int y,
-					const char *str));
-TERM_PUBLIC void QTOPIA_arrow __PROTO((unsigned int sx, unsigned int sy,
-				     unsigned int ex, unsigned int ey,
-				     int head));
-
-#define ENHqtopia_put_text NULL
-
-
-#define QTOPIA_XMAX 4096
-#define QTOPIA_YMAX 4096
-
-#ifdef ZAURUS
-#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
-#define QTOPIA_HCHAR (QTOPIA_XMAX/40)
-#define QTOPIA_VTIC (QTOPIA_YMAX/50)
-#define QTOPIA_HTIC (QTOPIA_XMAX/40)
-#else
-#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
-#define QTOPIA_HCHAR (QTOPIA_XMAX/50)
-#define QTOPIA_VTIC (QTOPIA_YMAX/100)
-#define QTOPIA_HTIC (QTOPIA_XMAX/150)
-#endif
-
-#endif /* TERM_PROTO */
-
-#ifdef TERM_BODY
-
-/*#include <winsock2.h>*/
-/* needs: ws2_32.lib */
-#ifndef _MSC_VER
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#endif
-
-#define QTOPIA_MAX_BUFFER		512
-#define QTOPIA_MAX_DELAY_COUNT	20	/* * 100 ms = 2 s */
-
-#ifdef _MSC_VER
-#define QTOPIA_BAD_SOCKET		INVALID_SOCKET		/* -1 */
-#define QTOPIA_BAD_CONNECT		SOCKET_ERROR
-#else
-#define QTOPIA_BAD_SOCKET		-1
-#define QTOPIA_BAD_CONNECT		-1
-#endif
-#define QTOPIA_PORT_NO			5050
-
-static int qtopia_client_socket = QTOPIA_BAD_SOCKET;
-static unsigned short qtopia_port_no = QTOPIA_PORT_NO;
-static char qtopia_host_name[QTOPIA_MAX_BUFFER+1] = { "localhost" };
-
-static int OpenClient __PROTO(( int test));
-static void CloseClient();
-
-static void MySleep( delay )
-int delay;
-{
-#ifdef _MSC_VER
-	Sleep( delay );
-#else
-	usleep( delay );
-#endif
-}
-
-static void InitSockets()
-{
-#ifdef _MSC_VER
-	WORD wVersionRequested;
-	WSADATA wsaData;
-	int err;
-
-	wVersionRequested = MAKEWORD( 2, 2 );
-
-	err = WSAStartup( wVersionRequested, &wsaData );
-#endif
-}
-
-static void ExitSockets()
-{
-#ifdef _MSC_VER
-	WSACleanup();
-#endif
-}
-
-static int CheckForQtplot( count )
-int count;
-{
-	/* test (via sockets) if qtplot is allready running */
-	if( !OpenClient( 1 ) )
-	{
-		/* give qtplot a litle bit time to start... */
-		if( count < QTOPIA_MAX_DELAY_COUNT )
-		{
-			if( count == 0 )
-			{
-#ifdef _MSC_VER
-				system( "start qtplot" );
-#else
-				system( "qtplot&" );
-#endif
-			}
-		
-			MySleep(100);
-
-			return CheckForQtplot( count+1 );
-		}
-		else
-		{
-			return 0;
-		}
-	}
-	else
-	{
-		CloseClient();
-
-		return 1;
-	}
-}
-
-static int OpenClient( test )
-int test;
-{
-    int len;
-    struct sockaddr_in address;
-    int result;
-
-	/*  Create a socket for the client.  */
-
-    qtopia_client_socket = socket(AF_INET, SOCK_STREAM, 0);
-
-	if( qtopia_client_socket != QTOPIA_BAD_SOCKET )
-	{
-		/*  Name the socket, as agreed with the server.  */
-
-		address.sin_family = AF_INET;
-		address.sin_addr.s_addr = inet_addr(/*qtopia_host_name*/"127.0.0.1");	/* localhost */
-		address.sin_port = htons(qtopia_port_no);
-		len = sizeof(address);
-
-		/*  Now connect our socket to the server's socket.  */
-
-		result = connect(qtopia_client_socket, (struct sockaddr *)&address, len);
-		
-		if( result == QTOPIA_BAD_SOCKET )
-		{
-			/* mark this socket as bad */
-
-			close( qtopia_client_socket );
-
-			qtopia_client_socket = QTOPIA_BAD_SOCKET;
-
-			if( !test )
-			{
-				fprintf( gpoutfile, "error connecting to server !\n" );
-			}
-			return 0;	/* something went wrong */
-		}
-	}
-	else
-	{
-		if( !test )
-		{
-			fprintf( gpoutfile, "error creating socket !\n" );
-		}
-		return 0;	/* something went wrong */
-	}
-
-	return 1;	/* everything ist ok ! */
-}
-
-static void CloseClient()
-{
-    close( qtopia_client_socket );
-}
-
-static int IsClientOk()
-{
-	return qtopia_client_socket != QTOPIA_BAD_SOCKET;
-}
-
-static void SendDataToSocket( sLine )
-const char * sLine;
-{
-	if( IsClientOk() )
-	{
-		int send_count;
-
-		send_count = send( qtopia_client_socket, sLine, strlen( sLine ), 0 );
-
-		if( send_count <= 0 )
-		{
-			fprintf( gpoutfile, "error writing to socket str=%s!\n", sLine );
-		}
-		/*
-		else
-		{
-			fprintf( gpoutfile, "wrote %d bytes\n", send_count );
-		}
-		*/
-	}
-	else
-	{
-		/* for testing... */
-		/*fprintf( gpoutfile, sLine );*/
-	}
-}
-
-/* ************************************************** */
-
-enum QTOPIA_id { QTOPIA_PORT, QTOPIA_HOST, QTOPIA_OTHER };
-
-static struct gen_table QTOPIA_opts[] =
-{
-    { "po$rt", QTOPIA_PORT },
-    { "ho$st", QTOPIA_HOST },
-    { NULL, QTOPIA_OTHER }
-};
-
-TERM_PUBLIC void
-QTOPIA_options()
-{
-    /* this is not for the qtopia terminal ! */
-	/*SendDataToSocket( "qtd options\n" );*/
-
-    int x, y;
-    struct value a;
-
-    while (!END_OF_COMMAND) 
-	{
-		switch(lookup_table(&QTOPIA_opts[0],c_token)) 
-		{
-			case QTOPIA_PORT:
-				c_token++;
-				if (END_OF_COMMAND)
-					int_error(c_token, "expecting port number");
-				qtopia_port_no = (int) real(const_express(&a));
-				break;
-			case QTOPIA_HOST:
-				c_token++;
-				if (END_OF_COMMAND)
-					int_error(c_token, "expecting host name");
-				if (isstring(c_token))
-					quote_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
-				else
- 					copy_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
-				c_token++;
-				break;
-			case QTOPIA_OTHER:
-			default:
-				break;
-		}
-    }
-
-    sprintf(term_options, "host=%s port=%d",qtopia_host_name,qtopia_port_no);
-}
-
-
-TERM_PUBLIC void
-QTOPIA_init()
-{
-	/* initialize lib (if necassary) */
-	InitSockets();
-	CheckForQtplot( 0 );
-	OpenClient( 0 ); 
-
-	SendDataToSocket( "qtd init\n" );
-}
-
-
-TERM_PUBLIC void
-QTOPIA_graphics()
-{
-	SendDataToSocket( "qtd graphics\n" );
-}
-
-TERM_PUBLIC void
-QTOPIA_text()
-{
-	SendDataToSocket( "qtd text\n" );
-}
-
-
-TERM_PUBLIC void
-QTOPIA_reset()
-{
-	SendDataToSocket( "qtd reset\n" );
-
-	/* give the qtplot a litle bit time to shutdown */
-	MySleep(100);
-
-	CloseClient();
-	ExitSockets();
-}
-
-
-TERM_PUBLIC void
-QTOPIA_linetype(linetype)
-int linetype;
-{
-	char sBuffer[QTOPIA_MAX_BUFFER];
-
-	sprintf( sBuffer, "qtd linetype type=%d\n",linetype );
-
-	SendDataToSocket( sBuffer );
-}
-
-
-TERM_PUBLIC void
-QTOPIA_move(x, y)
-unsigned int x, y;
-{
-	char sBuffer[QTOPIA_MAX_BUFFER];
-
-	sprintf( sBuffer, "qtd move x=%d y=%d\n",x,y );
-
-	SendDataToSocket( sBuffer );
-}
-
-
-TERM_PUBLIC void
-QTOPIA_point(x, y, point)
-unsigned int x, y;
-int point;
-{
-	char sBuffer[QTOPIA_MAX_BUFFER];
-
-	sprintf( sBuffer, "qtd point x=%d y=%d point=%d\n",x,y,point );
-
-	SendDataToSocket( sBuffer );
-}
-
-
-TERM_PUBLIC void
-QTOPIA_vector(_x, _y)
-unsigned int _x, _y;
-{
-	char sBuffer[QTOPIA_MAX_BUFFER];
-
-	sprintf( sBuffer, "qtd vector x=%d y=%d\n",_x,_y );
-
-	SendDataToSocket( sBuffer );
-}
-
-
-TERM_PUBLIC void
-QTOPIA_put_text(x, y, str)
-unsigned int x, y;
-const char *str;
-{
-	char sBuffer[QTOPIA_MAX_BUFFER];
-
-	sprintf( sBuffer, "qtd put_text x=%d y=%d str=%s\n",x,y,str );
-
-	SendDataToSocket( sBuffer );
-}
-
-/* not suported yet ! */
-TERM_PUBLIC void
-QTOPIA_arrow(sx, sy, ex, ey, head)
-    unsigned int sx, sy, ex, ey;
-    int head;		/* ignored */
-{
-	char sBuffer[QTOPIA_MAX_BUFFER];
-
-	sprintf( sBuffer, "qtd arrow sx=%d sy=%d ex=%d ey=%d head=%d\n",sx,sy,ex,ey,head );
-
-	SendDataToSocket( sBuffer );
-}
-
-
-#endif /* TERM_BODY */
-
-#ifdef TERM_TABLE
-TERM_TABLE_START(qtopia_driver)
-    "qtopia", "qtopia or Qt",
-    QTOPIA_XMAX, QTOPIA_YMAX, QTOPIA_VCHAR, QTOPIA_HCHAR,
-    QTOPIA_VTIC, QTOPIA_HTIC, QTOPIA_options, QTOPIA_init, QTOPIA_reset,
-    QTOPIA_text, null_scale, QTOPIA_graphics, QTOPIA_move, QTOPIA_vector,
-    QTOPIA_linetype, QTOPIA_put_text, null_text_angle,
-    null_justify_text, QTOPIA_point, /*QTOPIA_arrow*/0, set_font_null,
-    0,				/* pointsize */
-    TERM_CAN_MULTIPLOT,
-    NULL, NULL, NULL, NULL
-#ifdef USE_MOUSE
-    , NULL, NULL, NULL, NULL, NULL
-#endif
-#ifdef PM3D
-    , NULL, NULL, NULL, NULL
-#endif
-TERM_TABLE_END(qtopia_driver)
-
-#undef LAST_TERM
-#define LAST_TERM qtopia_driver
-
-#endif /* TERM_TABLE */
-
-#ifdef TERM_HELP
-START_HELP(qtopia)
-"1 qtopia",
-"?commands set terminal qtopia",
-"?set terminal qtopia",
-"?set term qtopia",
-"?terminal qtopia",
-"?term qtopia",
-"?qtopia",
-" The `qtopia` terminal driver has no additional options.",
-"",
-" Syntax:",
-"       set terminal qtopia",
-""
-END_HELP(qtopia)
-#endif /* TERM_HELP */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/subdirs.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/subdirs.patch
deleted file mode 100644
index 8c7d1f0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/subdirs.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- /tmp/Makefile.am	2007-08-23 13:10:15.560659023 +0200
-+++ gnuplot-4.2.0/Makefile.am	2007-08-23 13:10:34.961764629 +0200
-@@ -1,7 +1,7 @@
- ## Process this file with automake to produce Makefile.in -*-Makefile-*-
- AUTOMAKE_OPTIONS = foreign 1.2h
- 
--SUBDIRS = config m4 term src docs $(LISPDIR) man demo tutorial share
-+SUBDIRS = config m4 term src  $(LISPDIR) man share
- 
- EXTRA_DIST = BUGS CodeStyle Copyright FAQ GNUmakefile INSTALL INSTALL.gnu \
- Makefile.maint PATCHLEVEL PGPKEYS PORTING README README.1ST README.exp \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.0.5.bb
deleted file mode 100644
index 42308ba..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.0.5.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require gnuplot.inc
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/gnuplot/${BP}.tar.gz;name=archive \
-    http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
-    file://subdirs.patch \
-    file://lua-loadlibs-configure-in-fix.patch \
-    file://gnuplot.desktop \
-    file://gnuplot.png \
-"
-
-SRC_URI[archive.md5sum] = "c5e96fca73afbee4f57cbc1bfce6b3b8"
-SRC_URI[archive.sha256sum] = "25f3e0bf192e01115c580f278c3725d7a569eb848786e12b455a3fda70312053"
-SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
-SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
new file mode 100644
index 0000000..4cc289d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
@@ -0,0 +1,69 @@
+SUMMARY = "Gnuplot is a portable command-line driven graphing utility"
+DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
+(text or binary) and function plotting utility."
+HOMEPAGE = "http://www.gnuplot.info/"
+SECTION = "console/scientific"
+LICENSE = "gnuplot"
+LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
+DEPENDS = "${BPN}-native virtual/libx11 gd readline"
+
+inherit autotools distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gnuplot/${BP}.tar.gz;name=archive \
+    http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
+    file://gnuplot.desktop \
+    file://gnuplot.png \
+"
+SRC_URI_append_class-target = " \
+    file://0002-do-not-build-demos.patch \
+    file://0003-Use-native-tools-to-build-docs.patch \
+    file://0004-Add-configure-option-to-find-qt5-native-tools.patch \
+"
+
+SRC_URI[archive.md5sum] = "60aedd08998160593199459dea8467fe"
+SRC_URI[archive.sha256sum] = "a416d22f02bdf3873ef82c5eb7f8e94146795811ef808e12b035ada88ef7b1a1"
+SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
+SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
+
+# for building docs (they deserve it) we need *doc2* tools native
+BBCLASSEXTEND = "native"
+DEPENDS_class-native = "readline-native"
+PACKAGECONFIG_class-native = ""
+
+SRC_URI_append_class-native = "file://0001-reduce-build-to-conversion-tools-for-native-build.patch"
+
+do_install_class-native() {
+    install -d ${D}${bindir}
+	install ${B}/docs/*doc* ${D}${bindir}
+    rm ${D}${bindir}/*.o
+}
+
+PACKAGECONFIG ??= "cairo"
+PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo pango"
+PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua"
+PACKAGECONFIG[qt5] = "--with-qt --with-qt5nativesysroot=${STAGING_DIR_NATIVE},--without-qt,qtbase-native qtbase qtsvg qttools-native"
+
+EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR}/.. \
+                --without-tutorial \
+                --disable-wxwidgets"
+
+do_compile_prepend() {
+    install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
+}
+
+do_install_append_class-target() {
+    install -d ${D}${datadir}/applications/
+    install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
+    install -d ${D}${datadir}/pixmaps/
+    install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
+}
+
+PACKAGES =+ "${PN}-x11-dbg ${PN}-x11"
+DESCRIPTION_${PN}-x11 = "X11 display terminal for Gnuplot."
+SECTION_${PN}-x11 = "x11/scientific"
+FILES_${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
+
+FILES_${PN} += "${datadir}/texmf"
+FILES_${PN}-x11-dbg += "${libexecdir}/gnuplot/*/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch
new file mode 100644
index 0000000..36fd57c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch
@@ -0,0 +1,32 @@
+From b04eeea777df32364df74bd63fc5b7fb05d21c8d Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 27 Mar 2018 10:21:09 +0800
+Subject: [PATCH] init.d/Makefile.am: add missing dependency
+
+install-data-hook should epend on install-exec-hook, or the
+haveged.service might be installed incorrectly when build
+with -j option.
+
+Upstream-Status: Inappropriate [no upstream mailing list]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ init.d/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/init.d/Makefile.am b/init.d/Makefile.am
+index 5940f78..07bcdf7 100644
+--- a/init.d/Makefile.am
++++ b/init.d/Makefile.am
+@@ -33,7 +33,7 @@ if ENABLE_SYSTEMD
+ install-exec-hook:
+ 	$(do_subst) < $(srcdir)/$(src_tmpl) > haveged.service;
+ 
+-install-data-hook:
++install-data-hook: install-exec-hook
+ if ENABLE_SYSTEMD_LOOKUP
+ 	install -p -D -m644 haveged.service $(DESTDIR)`pkg-config --variable=systemdsystemunitdir systemd`/haveged.service;
+ else
+-- 
+2.11.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/remove-systemd-unit-503.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/remove-systemd-unit-503.patch
deleted file mode 100644
index df27bcb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/remove-systemd-unit-503.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/init.d/Makefile.am	2014-01-02 18:55:53.000000000 +0100
-+++ b/init.d/Makefile.am	2014-08-11 10:59:40.000000000 +0200
-@@ -34,11 +34,11 @@
- 	$(do_subst) < $(srcdir)/$(src_tmpl) > haveged.service;
- 
- install-data-hook:
--if ENABLE_SYSTEMD_LOOKUP
--	install -p -m644 haveged.service `pkg-config --variable=systemdsystemunitdir systemd`/haveged.service;
--else
--	install -p -m644 haveged.service ($unit_dir)/haveged.service;
--endif
--	systemctl enable haveged.service;
-+#if ENABLE_SYSTEMD_LOOKUP
-+#	install -p -m644 haveged.service `pkg-config --variable=systemdsystemunitdir systemd`/haveged.service;
-+#else
-+#	install -p -m644 haveged.service ($unit_dir)/haveged.service;
-+#endif
-+#	systemctl enable haveged.service;
- 
- endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.1.bb
deleted file mode 100644
index bb44c41..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "haveged - A simple entropy daemon"
-DESCRIPTION = "The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers."
-AUTHOR = "Gary Wuertz"
-HOMEPAGE = "http://www.issihosts.com/haveged/index.html"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://www.issihosts.com/haveged/haveged-${PV}.tar.gz \
-    file://remove-systemd-unit-503.patch \
-"
-
-SRC_URI[md5sum] = "015ff58cd10607db0e0de60aeca2f5f8"
-SRC_URI[sha256sum] = "9c2363ed9542a6784ff08e247182137e71f2ddb79e8e6c1ac4ad50d21ced3715"
-
-inherit autotools systemd
-
-EXTRA_OECONF = "\
-    --enable-init=service.redhat \
-    --enable-nistest=yes \
-    --enable-olt=yes \
-    --enable-threads=no \
-"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "haveged.service"
-
-do_install_append() {
-    mkdir -p ${D}${systemd_unitdir}/system
-    install -p -m644 ${B}/init.d/haveged.service ${D}${systemd_unitdir}/system
-}
-
-MIPS_INSTRUCTION_SET = "mips"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb
new file mode 100644
index 0000000..05ee842
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb
@@ -0,0 +1,40 @@
+SUMMARY = "haveged - A simple entropy daemon"
+DESCRIPTION = "The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers."
+AUTHOR = "Gary Wuertz"
+HOMEPAGE = "http://www.issihosts.com/haveged/index.html"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://www.issihosts.com/haveged/haveged-${PV}.tar.gz \
+           file://haveged-init.d-Makefile.am-add-missing-dependency.patch \
+"
+
+SRC_URI[md5sum] = "fb1d8b3dcbb9d06b30eccd8aa500fd31"
+SRC_URI[sha256sum] = "f77d9adbdf421b61601fa29faa9ce3b479d910f73c66b9e364ba8642ccbfbe70"
+
+inherit autotools update-rc.d systemd
+
+EXTRA_OECONF = "\
+    --enable-nistest=yes \
+    --enable-olt=yes \
+    --enable-threads=no \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--enable-init=service.redhat --enable-initdir=${systemd_system_unitdir}, --enable-init=sysv.redhat, systemd"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME = "haveged"
+INITSCRIPT_PARAMS_${PN} = "defaults 9"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "haveged.service"
+
+do_install_append() {
+    # The exit status is 143 when the service is stopped
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        sed -i '/ExecStart/a SuccessExitStatus=143' ${D}${systemd_system_unitdir}/haveged.service
+    fi
+}
+
+MIPS_INSTRUCTION_SET = "mips"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit/0001-don-t-strip-when-installing.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit/0001-don-t-strip-when-installing.patch
deleted file mode 100644
index a384b05..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit/0001-don-t-strip-when-installing.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From cc67246ca6839e5b3f6a286f10ed24c225b77a5e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>
-Date: Thu, 4 Jul 2013 12:34:32 +0200
-Subject: [PATCH] don't strip when installing
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Eric Bénard <eric@eukrea.com>
-
-Upstream-Status: Inappropriate [configuration]
----
- Makefile.in |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 159463e..735cc72 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -42,6 +42,6 @@ distclean: clean
- 
- install: $(PRODUCT)
- 	$(INSTALL) -d -m 755 $(DESTDIR)$(bindir)
--	$(INSTALL) -s -m 755 $(PRODUCT) $(DESTDIR)$(bindir)
-+	$(INSTALL) -m 755 $(PRODUCT) $(DESTDIR)$(bindir)
- 	$(INSTALL) -d -m 755 $(DESTDIR)$(mandir)/man1
- 	$(INSTALL) -m 644 $(PRODUCT).1 $(DESTDIR)$(mandir)/man1
--- 
-1.7.10.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.2.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.2.13.bb
deleted file mode 100644
index 39df5b2..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.2.13.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "view and edit files in hexadecimal or in ASCII"
-HOMEPAGE = "http://rigaux.org/hexedit.html"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-DEPENDS = "ncurses"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "http://rigaux.org/${BP}.src.tgz \
-    file://0001-don-t-strip-when-installing.patch "
-
-SRC_URI[md5sum] = "a5af1378d028512a9cad27a5ba3e15f9"
-SRC_URI[sha256sum] = "6a126da30a77f5c0b08038aa7a881d910e3b65d13767fb54c58c983963b88dd7"
-
-inherit autotools-brokensep
-
-S = "${WORKDIR}/${BPN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
new file mode 100644
index 0000000..050b7da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "view and edit files in hexadecimal or in ASCII"
+HOMEPAGE = "http://rigaux.org/hexedit.html"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+DEPENDS = "ncurses"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "git://github.com/pixel/hexedit.git \
+    "
+
+SRCREV = "800e4b2e6280531a84fd23ee0b48e16baeb90878"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
index cbf0473..0f798d2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
@@ -20,8 +20,8 @@
 inherit cmake
 
 EXTRA_OECMAKE = "-DWITH_PYTHON=ON \
-                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
-                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+                 ${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+                 ${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
                 "
 
 LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
index 914ee99..745883e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
@@ -33,7 +33,7 @@
  1 file changed, 4 insertions(+), 6 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 0270c99..b7c7368 100644
+index d41a307..b036e04 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -9,6 +9,8 @@ AC_DISABLE_STATIC
@@ -45,7 +45,7 @@
  AM_PATH_PYTHON
  
  AM_PROG_AR
-@@ -129,7 +131,6 @@ LIBBLOCKDEV_PKG_CHECK_MODULES([UDEV], [libudev >= 216])
+@@ -154,7 +156,6 @@ LIBBLOCKDEV_PKG_CHECK_MODULES([KMOD], [libkmod >= 19])
  AS_IF([test "x$with_crypto" != "xno"],
        [LIBBLOCKDEV_PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup >= 1.6.7])
         LIBBLOCKDEV_PKG_CHECK_MODULES([NSS], [nss >= 3.18.0])
@@ -53,7 +53,7 @@
        ],
        [])
  
-@@ -137,10 +138,6 @@ AS_IF([test "x$with_dm" != "xno" -o "x$with_lvm" != "xno" -o "x$with_lvm_dbus" !
+@@ -162,10 +163,6 @@ AS_IF([test "x$with_dm" != "xno" -o "x$with_lvm" != "xno" -o "x$with_lvm_dbus" !
        [LIBBLOCKDEV_PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= 1.02.93])],
        [])
  
@@ -61,10 +61,10 @@
 -      [LIBBLOCKDEV_CHECK_HEADER([dmraid/dmraid.h], [], [dmraid.h not available])],
 -      [])
 -
- AS_IF([test "x$with_kbd" != "xno"],
-       [LIBBLOCKDEV_PKG_CHECK_MODULES([KMOD], [libkmod >= 19])],
+ AS_IF([test "x$with_part" != "xno" -o "x$with_fs" != "xno"],
+       [LIBBLOCKDEV_PKG_CHECK_MODULES([PARTED], [libparted >= 3.1])]
        [])
-@@ -154,7 +151,8 @@ AS_IF([test "x$with_fs" != "xno"],
+@@ -174,7 +171,8 @@ AS_IF([test "x$with_fs" != "xno"],
        [LIBBLOCKDEV_PKG_CHECK_MODULES([MOUNT], [mount >= 2.23.0])
         # new versions of libmount has some new functions we can use
         AS_IF([$PKG_CONFIG --atleast-version=2.30.0 mount],
@@ -75,5 +75,5 @@
         LIBBLOCKDEV_PKG_CHECK_MODULES([BLKID], [blkid >= 2.23.0])
         # older versions of libblkid don't support BLKID_SUBLKS_BADCSUM so let's just
 -- 
-1.8.3.1
+2.14.3
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
index 3d9cb6d..ac5b5e2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
@@ -22,21 +22,22 @@
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 ---
- src/lib/plugin_apis/dm.api          |  41 -----
+ src/lib/plugin_apis/dm.api          |  50 ------
  src/plugins/Makefile.am             |   2 +-
- src/plugins/dm.c                    | 318 ------------------------------------
+ src/plugins/dm.c                    | 330 ------------------------------------
  src/plugins/dm.h                    |   5 -
  src/python/gi/overrides/BlockDev.py |   6 -
- 5 files changed, 1 insertion(+), 371 deletions(-)
+ 5 files changed, 1 insertion(+), 392 deletions(-)
 
 diff --git a/src/lib/plugin_apis/dm.api b/src/lib/plugin_apis/dm.api
-index a885bba..ec86b80 100644
+index 04fd8d8..5d30b6a 100644
 --- a/src/lib/plugin_apis/dm.api
 +++ b/src/lib/plugin_apis/dm.api
-@@ -68,44 +68,3 @@ gchar* bd_dm_node_from_name (const gchar *map_name, GError **error);
+@@ -111,53 +111,3 @@ gchar* bd_dm_get_subsystem_from_name (const gchar *device_name, GError **error);
+  * Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY
   */
  gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean active_only, GError **error);
- 
+-
 -/**
 - * bd_dm_get_member_raid_sets:
 - * @name: (allow-none): name of the member
@@ -49,6 +50,8 @@
 - * the member or %NULL in case of error
 - *
 - * One of @name, @uuid or @major:@minor has to be given.
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY
 - */
 -gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error);
 -
@@ -58,6 +61,8 @@
 - * @error: (out): variable to store error (if any)
 - *
 - * Returns: whether the RAID set @name was successfully activate or not
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_CREATE_ACTIVATE
 - */
 -gboolean bd_dm_activate_raid_set (const gchar *name, GError **error);
 -
@@ -67,6 +72,8 @@
 - * @error: (out): variable to store error (if any)
 - *
 - * Returns: whether the RAID set @name was successfully deactivate or not
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_REMOVE_DEACTIVATE
 - */
 -gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error);
 -
@@ -76,13 +83,15 @@
 - * @error: (out): variable to store error (if any)
 - *
 - * Returns: string representation of the @name RAID set's type
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_QUERY
 - */
 -gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error);
 diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
-index 6c4038f..59dc5e3 100644
+index b69c8f7..7575f4a 100644
 --- a/src/plugins/Makefile.am
 +++ b/src/plugins/Makefile.am
-@@ -76,7 +76,7 @@ endif
+@@ -75,7 +75,7 @@ endif
  
  if WITH_DM
  libbd_dm_la_CFLAGS = $(GLIB_CFLAGS) $(DEVMAPPER_CFLAGS) $(UDEV_CFLAGS) -Wall -Wextra -Werror
@@ -92,10 +101,10 @@
  # Dear author of libdmdraid, VERSION really is not a good name for an enum member!
  libbd_dm_la_CPPFLAGS = -I${builddir}/../../include/ -UVERSION
 diff --git a/src/plugins/dm.c b/src/plugins/dm.c
-index 9cee742..fd7c7ba 100644
+index 0e5466c..31ebe96 100644
 --- a/src/plugins/dm.c
 +++ b/src/plugins/dm.c
-@@ -21,16 +21,10 @@
+@@ -21,17 +21,11 @@
  #include <unistd.h>
  #include <blockdev/utils.h>
  #include <libdevmapper.h>
@@ -103,6 +112,7 @@
  #include <libudev.h>
  
  #include "dm.h"
+ #include "check_deps.h"
  
 -/* macros taken from the pyblock/dmraid.h file plus one more*/
 -#define for_each_raidset(_c, _n) list_for_each_entry(_n, LC_RS(_c), list)
@@ -112,10 +122,11 @@
  /**
   * SECTION: dm
   * @short_description: plugin for basic operations with device mapper
-@@ -286,315 +280,3 @@ gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean a
+@@ -380,327 +374,3 @@ gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean a
+ 
      return ret;
  }
- 
+-
 -/**
 - * init_dmraid_stack: (skip)
 - *
@@ -191,6 +202,9 @@
 -    /* if we don't have the name, we cannot check any match */
 -    g_return_val_if_fail (dev_name, FALSE);
 -
+-    /* g_return_val_if_fail above checks value of dev_name and returns FALSE if
+-     * it is NULL so we don't need to check it here */
+-    /* coverity[var_deref_model] */
 -    if (name && strcmp (dev_name, name) != 0) {
 -        return FALSE;
 -    }
@@ -220,8 +234,8 @@
 - * find_raid_sets_for_dev: (skip)
 - */
 -static void find_raid_sets_for_dev (const gchar *name, const gchar *uuid, gint major, gint minor, struct lib_context *lc, struct raid_set *rs, GPtrArray *ret_sets) {
--    struct raid_set *subset;
--    struct raid_dev *dev;
+-    struct raid_set *subset = NULL;
+-    struct raid_dev *dev = NULL;
 -
 -    if (T_GROUP(rs) || !list_empty(&(rs->sets))) {
 -        for_each_subset (rs, subset)
@@ -246,6 +260,8 @@
 - * the member or %NULL in case of error
 - *
 - * One of @name, @uuid or @major:@minor has to be given.
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY
 - */
 -gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error) {
 -    guint64 i = 0;
@@ -312,8 +328,8 @@
 -
 -static gboolean change_set_by_name (const gchar *name, enum activate_type action, GError **error) {
 -    gint rc = 0;
--    struct lib_context *lc;
--    struct raid_set *iter_rs;
+-    struct lib_context *lc = NULL;
+-    struct raid_set *iter_rs = NULL;
 -    struct raid_set *match_rs = NULL;
 -
 -    lc = init_dmraid_stack (error);
@@ -352,6 +368,8 @@
 - * @error: (out): variable to store error (if any)
 - *
 - * Returns: whether the RAID set @name was successfully activate or not
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_CREATE_ACTIVATE
 - */
 -gboolean bd_dm_activate_raid_set (const gchar *name, GError **error) {
 -    guint64 progress_id = 0;
@@ -372,6 +390,8 @@
 - * @error: (out): variable to store error (if any)
 - *
 - * Returns: whether the RAID set @name was successfully deactivate or not
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_REMOVE_DEACTIVATE
 - */
 -gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error) {
 -    guint64 progress_id = 0;
@@ -392,10 +412,12 @@
 - * @error: (out): variable to store error (if any)
 - *
 - * Returns: string representation of the @name RAID set's type
+- *
+- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_QUERY
 - */
 -gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error) {
--    struct lib_context *lc;
--    struct raid_set *iter_rs;
+-    struct lib_context *lc = NULL;
+-    struct raid_set *iter_rs = NULL;
 -    struct raid_set *match_rs = NULL;
 -    const gchar *type = NULL;
 -
@@ -429,7 +451,7 @@
 -    return g_strdup (type);
 -}
 diff --git a/src/plugins/dm.h b/src/plugins/dm.h
-index 859fb80..80acd49 100644
+index 0dce6ac..1ee3788 100644
 --- a/src/plugins/dm.h
 +++ b/src/plugins/dm.h
 @@ -1,5 +1,4 @@
@@ -438,10 +460,10 @@
  
  #ifndef BD_DM
  #define BD_DM
-@@ -35,9 +34,5 @@ gboolean bd_dm_remove (const gchar *map_name, GError **error);
+@@ -48,9 +47,5 @@ gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean a
  gchar* bd_dm_name_from_node (const gchar *dm_node, GError **error);
  gchar* bd_dm_node_from_name (const gchar *map_name, GError **error);
- gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean active_only, GError **error);
+ gchar* bd_dm_get_subsystem_from_name (const gchar *device_name, GError **error);
 -gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error);
 -gboolean bd_dm_activate_raid_set (const gchar *name, GError **error);
 -gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error);
@@ -466,5 +488,5 @@
  _loop_setup = BlockDev.loop_setup
  @override(BlockDev.loop_setup)
 -- 
-1.8.3.1
+2.14.3
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
index f18b569..0b5b809 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
@@ -12,7 +12,7 @@
  2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
-index 8fbce4f..66e11e5 100644
+index b961471..2d3d251 100644
 --- a/src/plugins/crypto.c
 +++ b/src/plugins/crypto.c
 @@ -22,7 +22,7 @@
@@ -25,7 +25,7 @@
  #include <linux/random.h>
  #include <locale.h>
 diff --git a/src/plugins/part.c b/src/plugins/part.c
-index 12d2ef7..3afe297 100644
+index 6b2a690..ab490d9 100644
 --- a/src/plugins/part.c
 +++ b/src/plugins/part.c
 @@ -25,6 +25,7 @@
@@ -33,10 +33,10 @@
  #include <unistd.h>
  #include <sys/file.h>
 +#include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <linux/fs.h>
  #include <blockdev/utils.h>
- #include <part_err.h>
- 
-@@ -1224,7 +1225,7 @@ static gboolean set_gpt_flags (const gchar *device, int part_num, guint64 flags,
+@@ -1354,7 +1355,7 @@ static gboolean set_gpt_flags (const gchar *device, int part_num, guint64 flags,
          real_flags |= 0x4000000000000000; /* 1 << 62 */
      if (flags & BD_PART_FLAG_GPT_NO_AUTOMOUNT)
          real_flags |= 0x8000000000000000; /* 1 << 63 */
@@ -46,5 +46,5 @@
      args[2] = g_strdup_printf ("%d:=:%s", part_num, mask_str);
      g_free (mask_str);
 -- 
-1.8.3.1
+2.14.3
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
index 3818936..b214f0b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
@@ -19,17 +19,17 @@
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 ---
- src/plugins/crypto.c | 6 +++---
- src/plugins/fs.c     | 4 ++--
- src/plugins/part.c   | 4 ++--
- src/utils/exec.c     | 2 +-
+ src/plugins/crypto.c  | 6 +++---
+ src/plugins/fs/vfat.c | 4 ++--
+ src/plugins/part.c    | 4 ++--
+ src/utils/exec.c      | 2 +-
  4 files changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
-index 8fbce4f..7ee7cdc 100644
+index 563093e..b961471 100644
 --- a/src/plugins/crypto.c
 +++ b/src/plugins/crypto.c
-@@ -881,7 +881,7 @@ gboolean bd_crypto_tc_open (const gchar *device, const gchar *name, const guint8
+@@ -970,7 +970,7 @@ gboolean bd_crypto_tc_open (const gchar *device, const gchar *name, const guint8
      gint ret = 0;
      guint64 progress_id = 0;
      gchar *msg = NULL;
@@ -38,7 +38,7 @@
  
      msg = g_strdup_printf ("Started opening '%s' TrueCrypt/VeraCrypt device", device);
      progress_id = bd_utils_report_started (msg);
-@@ -999,7 +999,7 @@ static gchar *replace_char (gchar *str, gchar orig, gchar new) {
+@@ -1090,7 +1090,7 @@ static gchar *replace_char (gchar *str, gchar orig, gchar new) {
      return str;
  }
  
@@ -47,7 +47,7 @@
                                          CERTCertificate *cert, GError **error) {
      gpointer packet_data = NULL;
      gsize packet_data_size = 0;
-@@ -1008,7 +1008,7 @@ static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libv
+@@ -1099,7 +1099,7 @@ static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libv
      gsize bytes_written = 0;
      GError *tmp_error = NULL;
  
@@ -56,11 +56,11 @@
                                                                       ui, LIBVK_PACKET_FORMAT_ASYMMETRIC_WRAP_SECRET_ONLY, error);
  
      if (!packet_data) {
-diff --git a/src/plugins/fs.c b/src/plugins/fs.c
-index c4b6ac8..647096d 100644
---- a/src/plugins/fs.c
-+++ b/src/plugins/fs.c
-@@ -2614,8 +2614,8 @@ BDFSVfatInfo* bd_fs_vfat_get_info (const gchar *device, GError **error) {
+diff --git a/src/plugins/fs/vfat.c b/src/plugins/fs/vfat.c
+index 3ed7d4a..5ff7795 100644
+--- a/src/plugins/fs/vfat.c
++++ b/src/plugins/fs/vfat.c
+@@ -376,8 +376,8 @@ BDFSVfatInfo* bd_fs_vfat_get_info (const gchar *device, GError **error) {
   */
  gboolean bd_fs_vfat_resize (const gchar *device, guint64 new_size, GError **error) {
      PedDevice *ped_dev = NULL;
@@ -72,10 +72,10 @@
      PedSector start = 0;
      PedSector length = 0;
 diff --git a/src/plugins/part.c b/src/plugins/part.c
-index 12d2ef7..d277688 100644
+index fed8300..6b2a690 100644
 --- a/src/plugins/part.c
 +++ b/src/plugins/part.c
-@@ -849,7 +849,7 @@ static PedPartition* add_part_to_disk (PedDevice *dev, PedDisk *disk, BDPartType
+@@ -926,7 +926,7 @@ static PedPartition* add_part_to_disk (PedDevice *dev, PedDisk *disk, BDPartType
          return NULL;
      }
  
@@ -84,7 +84,7 @@
      if (!part) {
          set_parted_error (error, BD_PART_ERROR_FAIL);
          g_prefix_error (error, "Failed to create new partition on device '%s'", dev->path);
-@@ -1427,7 +1427,7 @@ gboolean bd_part_set_part_flags (const gchar *disk, const gchar *part, guint64 f
+@@ -1564,7 +1564,7 @@ gboolean bd_part_set_part_flags (const gchar *disk, const gchar *part, guint64 f
      PedPartition *ped_part = NULL;
      const gchar *part_num_str = NULL;
      gint part_num = 0;
@@ -94,7 +94,7 @@
      gboolean ret = FALSE;
      guint64 progress_id = 0;
 diff --git a/src/utils/exec.c b/src/utils/exec.c
-index 7ac44fd..0a3094c 100644
+index 11c1489..dcf87e5 100644
 --- a/src/utils/exec.c
 +++ b/src/utils/exec.c
 @@ -354,7 +354,7 @@ gboolean bd_utils_exec_and_report_progress (const gchar **argv, const BDExtraArg
@@ -107,5 +107,5 @@
      gboolean err_done = FALSE;
      GString *stdout_data = g_string_new (NULL);
 -- 
-1.8.3.1
+2.14.3
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb
similarity index 73%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.10.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb
index 2a92354..0c954aa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.10.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb
@@ -8,20 +8,6 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
 
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "c1dda45001542edd7d7f1ffc6451c5a74623f805"
-SRC_URI = "git://github.com/rhinstaller/libblockdev;branch=master \
-           file://0001-fix-configure-and-compile-failures.patch \
-           file://0002-remove-python2-support.patch \
-           file://0003-remove-dmraid-while-compiling-with-with-dm.patch \
-           file://0005-fix-a-clang-compiling-issue.patch \
-"
-SRC_URI_append_libc-musl = " \
-           file://0004-fix-compile-failure-against-musl-C-library.patch \
-"
-
 inherit autotools python3native gobject-introspection
 
 DEPENDS += " \
@@ -31,6 +17,21 @@
     libbytesize \
     btrfs-tools \
 "
+
+SRCREV = "e2e0899efe8dd3f111ff955fb6c1dc10b0bd2075"
+SRC_URI = " \
+    git://github.com/rhinstaller/libblockdev;branch=master \
+    file://0001-fix-configure-and-compile-failures.patch \
+    file://0002-remove-python2-support.patch \
+    file://0003-remove-dmraid-while-compiling-with-with-dm.patch \
+    file://0005-fix-a-clang-compiling-issue.patch \
+"
+SRC_URI_append_libc-musl = " \
+    file://0004-fix-compile-failure-against-musl-C-library.patch \
+"
+
+S = "${WORKDIR}/git"
+
 RDEPENDS_${PN} += " \
     lvm2 \
 "
@@ -46,6 +47,5 @@
 PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux"
 PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
 
-export STAGING_INCDIR
 export GIR_EXTRA_LIBS_PATH="${B}/src/utils/.libs"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
index cc3f5d4..f65d26a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
@@ -2,11 +2,11 @@
  configure.ac |    1 +
  1 file changed, 1 insertion(+)
 
+Index: git/configure.ac
+===================================================================
 --- git.orig/configure.ac
 +++ git/configure.ac
-@@ -24,10 +24,11 @@ LT_INIT([win32-dll])
- LT_PROG_RC
- 
+@@ -56,6 +56,7 @@ AM_CONDITIONAL([ENABLE_EXAMPLES], [test
  # Checks for programs.
  AC_PROG_CC
  AC_PROG_CC_C99
@@ -14,5 +14,3 @@
  
  # Enable automake silent build rules.
  m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
- 
- # Checks for native Windows.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
index 5bf7c6e..7e4c330 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
@@ -26,4 +26,6 @@
 EXTRA_OECONF = " --disable-static --disable-rebuilds --enable-compile-warnings=minimum"
 DEPENDS += "gtk+ glib-2.0 glib-2.0-native ruby-native intltool-native gnome-common-native"
 
-inherit autotools pkgconfig gettext
+inherit distro_features_check autotools pkgconfig gettext
+
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-Remove-runtime-check-for-CLOCK_MONOTONIC.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-Remove-runtime-check-for-CLOCK_MONOTONIC.patch
deleted file mode 100644
index 28bc5c0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-Remove-runtime-check-for-CLOCK_MONOTONIC.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e6fbad0c122ba8e87b67a9e2447505adcaafe204 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 29 Mar 2017 16:31:38 -0700
-Subject: [PATCH] Remove runtime check for CLOCK_MONOTONIC
-
-Does not work during cross compile
-
-use a compile-time check to detect whether the
-monotonic clock is available. This check can run just fine when we are
-cross-compiling.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index fa13ae6..f4f0f46 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -175,9 +175,17 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-                  )
- 
- AC_MSG_CHECKING(for a working clock_getres(CLOCK_MONOTONIC, &ts))
--AC_RUN_IFELSE([AC_LANG_PROGRAM(
-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
- [[#include <time.h>]],
--[[struct timespec ts; if(clock_getres(CLOCK_MONOTONIC, &ts)) return -1;]])],
-+[[
-+#include <unistd.h>
-+int main() {
-+#if !(defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK >= 0 && defined(CLOCK_MONOTONIC))
-+        #error No monotonic clock
-+#endif
-+    return 0;
-+
-+]])],
-                     [
-                       AC_MSG_RESULT([yes])
-                       AC_DEFINE_UNQUOTED([HAVE_CLOCK_GETRES_MONOTONIC], 1, [Define to 1 if clock_getres(CLOCK_MONOTONIC, &ts) works])
--- 
-2.12.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch
new file mode 100644
index 0000000..c82f3bf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch
@@ -0,0 +1,56 @@
+From 73d2aea33e32272bac693550e8a3b0e3ad89707f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
+Date: Tue, 26 Dec 2017 00:02:26 +0100
+Subject: [PATCH] build: fix configure script neglecting, re-enable out-of-tree
+ builds
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For the former, a prototype and the final code got (hm, mysteriously)
+intertwisted.  For the latter, I am clearly guilty of (rare, anyway)
+testing of the out-of-tree builds only with libqb-already-system-wide
+scenario, which is rather shortsighted.
+
+Thanks Fabio and his ci.kronosnet.org project for spotting that.
+
+X-mas-present-for: Fabio M. Di Nitto <fdinitto@redhat.com>
+Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
+---
+Upstream-Status: Backport
+
+ configure.ac    | 2 +-
+ lib/Makefile.am | 4 +++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9900310..f9761cc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -710,7 +710,7 @@ if test "x${GCC}" = xyes; then
+ 			                      | grep __stop___verbose | cut -d" " -f 3)
+ 			 test "${verbose_start_addr}" = "${verbose_stop_addr}" \
+ 			   && gcc_has_attribute_section_visible=no \
+-			   || { verbose_start_type=$(${READELF} -s backup \
++			   || { verbose_start_type=$(${READELF} -s "conftest${shrext_cmds}" \
+ 			                             | sed -n '/__start___verbose/{s/^\s*//p;q}' \
+ 			                             | tr -s ' ' \
+ 			                             | cut -d" " -f6)
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index 6ca6b15..b035f0b 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -101,7 +101,9 @@ endif
+ endif
+ 
+ qblog_script.ld: %.ld: %.ld.in
+-	$(AM_V_GEN)$(CPP) -xc -I$(top_srcdir)/include -D_GNU_SOURCE -C -P $< \
++	$(AM_V_GEN)$(CPP) -C -D_GNU_SOURCE -P \
++	  -I$(top_srcdir)/include -I$(top_builddir)/include \
++	  -xc $< \
+ 	  | sed -n "/$$(sed -n '/^[^#]/{s/[*\/]/\\&/g;p;q;}' $<)/,$$ p" \
+ 	  > $@
+ 
+-- 
+2.16.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
similarity index 77%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
index 574f660..73cea5e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
@@ -11,12 +11,14 @@
 
 PV .= "+git${SRCPV}"
 
-SRCREV = "608de6d59a3de0eef0fbcbd8f284acbc018daa9a"
+# v1.0.3
+SRCREV = "28dff090c74b6ba8609c4797294a5afe3fe73987"
 SRC_URI = "git://github.com/ClusterLabs/${BPN}.git \
-           file://0001-Remove-runtime-check-for-CLOCK_MONOTONIC.patch \
+           file://0001-build-fix-configure-script-neglecting-re-enable-out-.patch \
           "
 S = "${WORKDIR}/git"
 
+CFLAGS += "-pthread -D_REENTRANT"
 do_configure_prepend() {
     ( cd ${S}
     ${S}/autogen.sh )
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
index 525437b..f2c661c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
@@ -5,7 +5,7 @@
 LICENSE = "GPLv2+"
 DEPENDS = "xmlrpc-c xmlrpc-c-native intltool-native \
         json-c libtar libnewt libproxy rpm \
-        augeas satyr systemd gtk+3 \
+        augeas satyr systemd \
 "
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
@@ -26,6 +26,9 @@
 
 inherit gettext autotools python3native pkgconfig
 
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','x11','gtk','',d)}"
+PACKAGECONFIG[gtk] = "--with-gtk, --without-gtk, gtk+3,"
+
 RDEPENDS_python3-libreport += "${PN}"
 
 do_patch[prefuncs] += "do_gen_version"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
index 8ad5457..2c31a21 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
@@ -12,7 +12,9 @@
 
 BBCLASSEXTEND = "native"
 
-inherit autotools pkgconfig
+inherit distro_features_check autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/${BPN}/${PV}/${BPN}-${PV}.tar.gz;name=tarball \
            file://libwmf-0.2.8.4-intoverflow.patch \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
index 15935c8..df82bef 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
@@ -17,7 +17,9 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools pkgconfig
+inherit distro_features_check autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 do_configure_append() {
     # avoid host polution inf pkg-config files
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch
index 15ad03f..83f4543 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch
@@ -1,4 +1,4 @@
-From a0c0f32299419359b44ac0f880c1ea9073ae51e1 Mon Sep 17 00:00:00 2001
+From 1d1fa95c8ff7697e46343385a79a8f7e5c514a87 Mon Sep 17 00:00:00 2001
 From: Zheng Xu <zheng.xu@linaro.org>
 Date: Fri, 2 Sep 2016 17:40:05 +0800
 Subject: [PATCH] Bug 1143022 - Manually mmap on arm64 to ensure high 17 bits
@@ -16,11 +16,11 @@
  1 file changed, 71 insertions(+), 2 deletions(-)
 
 diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
-index 5b386a2..38101cf 100644
+index e5ad018..4149adf 100644
 --- a/js/src/gc/Memory.cpp
 +++ b/js/src/gc/Memory.cpp
-@@ -306,6 +306,75 @@ InitMemorySubsystem()
-         MOZ_CRASH();
+@@ -309,6 +309,75 @@ InitMemorySubsystem()
+ #endif
  }
  
 +static inline void *
@@ -95,7 +95,7 @@
  void *
  MapAlignedPages(size_t size, size_t alignment)
  {
-@@ -319,12 +388,12 @@ MapAlignedPages(size_t size, size_t alignment)
+@@ -322,12 +391,12 @@ MapAlignedPages(size_t size, size_t alignment)
  
      /* Special case: If we want page alignment, no further work is needed. */
      if (alignment == PageSize) {
@@ -110,6 +110,3 @@
      if (region == MAP_FAILED)
          return NULL;
  
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
index 616048f..930c041 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -3,12 +3,13 @@
 SECTION = "libs"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=66493d54e65bfc12c7983ff2e884f37f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b92a3b497d7943042a6db40c088c3f2"
 
-SRCREV = "8ddbcde84e2d146bc0f9e38504d6c89c14291480"
-PV = "1.7.0-git${SRCPV}"
+SRCREV = "fbb7d9232067eac3f4508a37a8f7ea0c4fcebacb"
+PV = "1.9.0-git${SRCPV}"
 
-SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http"
+SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
+           "
 
 S = "${WORKDIR}/git"
 
@@ -31,7 +32,13 @@
 # override this in local.conf to get needed bindings.
 # BINDINGS_pn-mraa="python"
 # will result in only the python bindings being built/packaged.
-BINDINGS ??= "python ${@ 'nodejs' if oe.types.boolean(d.getVar('HAVE_NODEJS') or '0') else '' }"
+# Note: 'nodejs' is disabled by default because the bindings
+# generation currently fails with nodejs (>v7.x).
+BINDINGS ??= "python"
+
+# nodejs isn't available for armv4/armv5 architectures
+BINDINGS_armv4 ??= "python"
+BINDINGS_armv5 ??= "python"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
  ${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
index c4778ca..f618f02 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
@@ -12,6 +12,9 @@
 
 DEPENDS = "curl libxml2 openssl libpam"
 
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
 SRCREV = "feb7ec9b004fcaea0dbe65ce8a1a79cc29dd994c"
 PV = "2.6.3"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
new file mode 100644
index 0000000..ae27517
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
@@ -0,0 +1,48 @@
+From b6b1782af4aa7f9084d32e4144738dc2535c8d6f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Apr 2018 23:07:21 -0700
+Subject: [PATCH] Fix narrowing errors -Wc++11-narrowing
+
+Clang 6.x finds these errors
+
+    ../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates to -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
+        case E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
+             ^
+
+HRESULT causes the macro to be parsed as a signed long, so we need to force it
+to be checked as an unsigned long instead.
+
+also reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
+index 99684ae..78a64ba 100644
+--- a/CPP/Windows/ErrorMsg.cpp
++++ b/CPP/Windows/ErrorMsg.cpp
+@@ -15,13 +15,13 @@ UString MyFormatMessage(DWORD errorCode)
+ 
+   switch(errorCode) {
+     case ERROR_NO_MORE_FILES   : txt = "No more files"; break ;
+-    case E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
+-    case E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;
+-    case E_ABORT               : txt = "E_ABORT"; break ;
+-    case E_FAIL                : txt = "E_FAIL"; break ;
+-    case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
+-    case E_OUTOFMEMORY         : txt = "E_OUTOFMEMORY"; break ;
+-    case E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
++    case (DWORD) E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
++    case (DWORD) E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;
++    case (DWORD) E_ABORT               : txt = "E_ABORT"; break ;
++    case (DWORD) E_FAIL                : txt = "E_FAIL"; break ;
++    case (DWORD) STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
++    case (DWORD) E_OUTOFMEMORY         : txt = "E_OUTOFMEMORY"; break ;
++    case (DWORD) E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
+     case ERROR_DIRECTORY          : txt = "Error Directory"; break ;
+     default:
+       txt = strerror(errorCode);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
new file mode 100644
index 0000000..177d145
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
@@ -0,0 +1,31 @@
+p7zip: Fix CVE-2017-17969
+
+[No upstream tracking] -- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888297
+
+Heap-based buffer overflow in 7zip
+
+Compress/ShrinkDecoder.cpp: Heap-based buffer overflow
+in the NCompress::NShrink::CDecoder::CodeReal method
+in 7-Zip before 18.00 and p7zip allows remote attackers
+to cause a denial of service (out-of-bounds write)
+or potentially execute arbitrary code via a crafted ZIP archive. 
+
+Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/8316/attachment/CVE-2017-17969.patch]
+CVE: CVE-2017-17969
+Signed-off-by: Radovan Scasny <radovan.scasny@siemens.com>
+
+--- a/CPP/7zip/Compress/ShrinkDecoder.cpp
++++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
+@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+     {
+       _stack[i++] = _suffixes[cur];
+       cur = _parents[cur];
++	  if (cur >= kNumItems || i >= kNumItems)
++	  	break;
+     }
++	
++	if (cur >= kNumItems || i >= kNumItems)
++		break;
+     
+     _stack[i++] = (Byte)cur;
+     lastChar2 = (Byte)cur;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
index 67ffbc6..d986da9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
@@ -6,7 +6,10 @@
                     file://DOC/License.txt;md5=879598edf1f54dddb6930d7581357f8b"
 
 SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_all.tar.bz2 \
-          file://do_not_override_compiler_and_do_not_strip.patch"
+           file://do_not_override_compiler_and_do_not_strip.patch \
+           file://CVE-2017-17969.patch \
+           file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
+           "
 
 SRC_URI[md5sum] = "a0128d661cfe7cc8c121e73519c54fbf"
 SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
index ff88533..1638c41 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
@@ -13,6 +13,9 @@
 
 DEPENDS += "libpam openssl"
 
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
 # This gets us ssh-agent, which we are almost certain to want.
 #
 RDEPENDS_${PN} += "openssh-misc"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/gtk-doc-check.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/gtk-doc-check.patch
deleted file mode 100644
index 4b6ad75..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/gtk-doc-check.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- polkit-gnome-0.105/configure.ac.org	2015-05-04 22:33:03.925977953 -0700
-+++ polkit-gnome-0.105/configure.ac	2015-05-04 22:33:16.862288030 -0700
-@@ -120,6 +120,9 @@
- # Check for required packages
- # ***************************
- 
-+# check for gtk-doc
-+GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
-+
- POLKIT_AGENT_REQUIRED=0.97
- POLKIT_GOBJECT_REQUIRED=0.97
- GTK_REQUIRED=3.0.0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-gnome_0.105.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-gnome_0.105.bb
deleted file mode 100644
index 8e99731..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-gnome_0.105.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "GNOME Authentication Agent for PolicyKit"
-DESCRIPTION = "PolicyKit-gnome provides an Authentication Agent for PolicyKit that integrates well with the GNOME desktop environment"
-HOMEPAGE = "http://www.packagekit.org/"
-BUGTRACKER = "http://bugzilla.gnome.org/"
-DEPENDS = "polkit dbus-glib gconf gtk+ intltool-native gnome-common"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec \
-                    file://src/main.c;beginline=1;endline=20;md5=aba145d1802f2329ba561e3e48ecb795"
-
-SRC_URI = "https://download.gnome.org/sources/polkit-gnome/${PV}/polkit-gnome-${PV}.tar.xz \
-           file://gtk-doc-check.patch \
-"
-SRC_URI[md5sum] = "50ecad37c8342fb4a52f590db7530621"
-SRC_URI[sha256sum] = "1784494963b8bf9a00eedc6cd3a2868fb123b8a5e516e66c5eda48df17ab9369"
-
-EXTRA_OECONF = "\
-    --disable-static \
-"
-
-DEPENDS += "gtk+3"
-
-inherit autotools gtk-doc pkgconfig
-
-FILES_${PN} += " ${datadir}/dbus-1 \
-                 ${datadir}/PolicyKit \
-"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
index 4025b80..7c9f2df 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
@@ -38,13 +38,11 @@
     install -m 644 rarpd.8 ${D}${mandir}/man8/rarpd.8
     install -m 644 ${WORKDIR}/ethers.sample ${D}${sysconfdir}/ethers
 
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install -d ${D}${systemd_unitdir}/system
-        install -m 0644 ${WORKDIR}/rarpd.service ${D}${systemd_unitdir}/system/
-    fi
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/rarpd.service ${D}${systemd_unitdir}/system/
 }
 
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
+inherit systemd
 
 SYSTEMD_PACKAGES = "${PN}"
 SYSTEMD_SERVICE_${PN} = "rarpd.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
index 23c0f25..ca88dd3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
@@ -1,4 +1,4 @@
-From 3c3c21f4735eb215206273bc714c57c969926d3d Mon Sep 17 00:00:00 2001
+From 9739095de6ae5f844354756ae968f5f8864eb3e3 Mon Sep 17 00:00:00 2001
 From: Ming Liu <peter.x.liu@external.atlascopco.com>
 Date: Sun, 26 Feb 2017 14:10:21 +0100
 Subject: [PATCH] Include sys/time.h
@@ -8,6 +8,7 @@
 Upstream-Status: Inappropriate [musl libc specific]
 
 Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
+
 ---
  tests/msleep.c | 4 ----
  1 file changed, 4 deletions(-)
@@ -28,6 +29,3 @@
  
  int main(int argc, char *argv[])
  {
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Undefine-GLOB_BRACE.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Undefine-GLOB_BRACE.patch
deleted file mode 100644
index 7903bb1..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Undefine-GLOB_BRACE.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 6746e3a9615d1566bf228e9012d0841b15178810 Mon Sep 17 00:00:00 2001
-From: Ming Liu <liu.ming50@gmail.com>
-Date: Sun, 26 Feb 2017 13:50:33 +0100
-Subject: [PATCH] Undefine GLOB_BRACE
-
-GLOB_BRACE is not defined in posix and thus not implemented in musl libc.
-
-Fixed by defining it to 0 if it is undefined.
-
-Upstream-Status: Inappropriate [musl libc specific]
-
-Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
----
- plugins/imfile/imfile.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/plugins/imfile/imfile.c b/plugins/imfile/imfile.c
-index d20471f..f9aff81 100644
---- a/plugins/imfile/imfile.c
-+++ b/plugins/imfile/imfile.c
-@@ -85,6 +85,11 @@ static int bLegacyCnfModGlobalsPermitted;/* are legacy module-global config para
- 
- #define ADD_METADATA_UNSPECIFIED -1
- 
-+/* fixes build with musl libc */
-+#ifndef GLOB_BRACE
-+#define GLOB_BRACE 0
-+#endif
-+
- /* this structure is used in pure polling mode as well one of the support
-  * structures for inotify.
-  */
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch
index bdcb6e2..a248f75 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch
@@ -1,3 +1,8 @@
+From 07ad2a1905089b9124623324a9969e4522317110 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Fri, 12 Sep 2014 03:41:11 -0400
+Subject: [PATCH] rsyslog: update configure to fix ptest
+
 $MaxMessageSize doesn't work if before $IncludeConfig diag-common.conf, then
 test cases fall into infinite loop with error message:
 
@@ -6,13 +11,24 @@
 
 Update configure to fix it.
 
-Upstream-Status: pending
+Upstream-Status: Pending
 
-Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
 ---
-diff -Nru rsyslog-7.4.4/tests/testsuites/complex1.conf rsyslog-7.4.4.new/tests/testsuites/complex1.conf
---- rsyslog-7.4.4/tests/testsuites/complex1.conf	2013-08-31 00:30:41.000000000 +0800
-+++ rsyslog-7.4.4.new/tests/testsuites/complex1.conf	2013-12-18 14:28:10.644004184 +0800
+ tests/testsuites/complex1.conf             | 2 +-
+ tests/testsuites/gzipwr_large.conf         | 2 +-
+ tests/testsuites/gzipwr_large_dynfile.conf | 2 +-
+ tests/testsuites/imptcp_conndrop.conf      | 2 +-
+ tests/testsuites/imptcp_large.conf         | 2 +-
+ tests/testsuites/imtcp_conndrop.conf       | 2 +-
+ tests/testsuites/wr_large.conf             | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/tests/testsuites/complex1.conf b/tests/testsuites/complex1.conf
+index 9b6a9f3..e00caa4 100644
+--- a/tests/testsuites/complex1.conf
++++ b/tests/testsuites/complex1.conf
 @@ -1,7 +1,7 @@
  # complex test case with multiple actions in gzip mode
  # rgerhards, 2009-05-22
@@ -22,9 +38,10 @@
  
  $MainMsgQueueTimeoutEnqueue 5000
  
-diff -Nru rsyslog-7.4.4/tests/testsuites/gzipwr_large.conf rsyslog-7.4.4.new/tests/testsuites/gzipwr_large.conf
---- rsyslog-7.4.4/tests/testsuites/gzipwr_large.conf	2012-04-04 14:29:55.000000000 +0800
-+++ rsyslog-7.4.4.new/tests/testsuites/gzipwr_large.conf	2013-12-18 14:28:10.645004186 +0800
+diff --git a/tests/testsuites/gzipwr_large.conf b/tests/testsuites/gzipwr_large.conf
+index 54ad3bb..e8247a9 100644
+--- a/tests/testsuites/gzipwr_large.conf
++++ b/tests/testsuites/gzipwr_large.conf
 @@ -1,7 +1,7 @@
  # simple async writing test
  # rgerhards, 2010-03-09
@@ -34,9 +51,10 @@
  
  $ModLoad ../plugins/imtcp/.libs/imtcp
  $MainMsgQueueTimeoutShutdown 10000
-diff -Nru rsyslog-7.4.4/tests/testsuites/gzipwr_large_dynfile.conf rsyslog-7.4.4.new/tests/testsuites/gzipwr_large_dynfile.conf
---- rsyslog-7.4.4/tests/testsuites/gzipwr_large_dynfile.conf	2012-04-04 14:29:55.000000000 +0800
-+++ rsyslog-7.4.4.new/tests/testsuites/gzipwr_large_dynfile.conf	2013-12-18 14:28:10.645004186 +0800
+diff --git a/tests/testsuites/gzipwr_large_dynfile.conf b/tests/testsuites/gzipwr_large_dynfile.conf
+index 3a1b255..297cb70 100644
+--- a/tests/testsuites/gzipwr_large_dynfile.conf
++++ b/tests/testsuites/gzipwr_large_dynfile.conf
 @@ -1,7 +1,7 @@
  # simple async writing test
  # rgerhards, 2010-03-09
@@ -46,9 +64,10 @@
  
  $ModLoad ../plugins/imtcp/.libs/imtcp
  $MainMsgQueueTimeoutShutdown 10000
-diff -Nru rsyslog-7.4.4/tests/testsuites/imptcp_conndrop.conf rsyslog-7.4.4.new/tests/testsuites/imptcp_conndrop.conf
---- rsyslog-7.4.4/tests/testsuites/imptcp_conndrop.conf	2013-08-31 00:30:41.000000000 +0800
-+++ rsyslog-7.4.4.new/tests/testsuites/imptcp_conndrop.conf	2013-12-18 14:28:10.646004189 +0800
+diff --git a/tests/testsuites/imptcp_conndrop.conf b/tests/testsuites/imptcp_conndrop.conf
+index 77a5d79..d9a14a8 100644
+--- a/tests/testsuites/imptcp_conndrop.conf
++++ b/tests/testsuites/imptcp_conndrop.conf
 @@ -1,7 +1,7 @@
  # simple async writing test
  # rgerhards, 2010-03-09
@@ -58,9 +77,10 @@
  
  $ModLoad ../plugins/imptcp/.libs/imptcp
  $MainMsgQueueTimeoutShutdown 10000
-diff -Nru rsyslog-7.4.4/tests/testsuites/imptcp_large.conf rsyslog-7.4.4.new/tests/testsuites/imptcp_large.conf
---- rsyslog-7.4.4/tests/testsuites/imptcp_large.conf	2013-08-31 00:30:41.000000000 +0800
-+++ rsyslog-7.4.4.new/tests/testsuites/imptcp_large.conf	2013-12-18 14:28:10.646004189 +0800
+diff --git a/tests/testsuites/imptcp_large.conf b/tests/testsuites/imptcp_large.conf
+index 77a5d79..d9a14a8 100644
+--- a/tests/testsuites/imptcp_large.conf
++++ b/tests/testsuites/imptcp_large.conf
 @@ -1,7 +1,7 @@
  # simple async writing test
  # rgerhards, 2010-03-09
@@ -70,9 +90,10 @@
  
  $ModLoad ../plugins/imptcp/.libs/imptcp
  $MainMsgQueueTimeoutShutdown 10000
-diff -Nru rsyslog-7.4.4/tests/testsuites/imtcp_conndrop.conf rsyslog-7.4.4.new/tests/testsuites/imtcp_conndrop.conf
---- rsyslog-7.4.4/tests/testsuites/imtcp_conndrop.conf	2013-07-19 20:59:03.000000000 +0800
-+++ rsyslog-7.4.4.new/tests/testsuites/imtcp_conndrop.conf	2013-12-18 14:28:10.646004189 +0800
+diff --git a/tests/testsuites/imtcp_conndrop.conf b/tests/testsuites/imtcp_conndrop.conf
+index de41bc4..7844dc7 100644
+--- a/tests/testsuites/imtcp_conndrop.conf
++++ b/tests/testsuites/imtcp_conndrop.conf
 @@ -1,7 +1,7 @@
  # simple async writing test
  # rgerhards, 2010-03-09
@@ -82,9 +103,10 @@
  
  $ModLoad ../plugins/imtcp/.libs/imtcp
  $MainMsgQueueTimeoutShutdown 10000
-diff -Nru rsyslog-7.4.4/tests/testsuites/wr_large.conf rsyslog-7.4.4.new/tests/testsuites/wr_large.conf
---- rsyslog-7.4.4/tests/testsuites/wr_large.conf	2012-04-04 14:29:55.000000000 +0800
-+++ rsyslog-7.4.4.new/tests/testsuites/wr_large.conf	2013-12-18 14:28:10.647004190 +0800
+diff --git a/tests/testsuites/wr_large.conf b/tests/testsuites/wr_large.conf
+index b64f132..b0ae264 100644
+--- a/tests/testsuites/wr_large.conf
++++ b/tests/testsuites/wr_large.conf
 @@ -1,7 +1,7 @@
  # simple async writing test
  # rgerhards, 2010-03-09
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
index 46eddd6..162d239 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
@@ -1,5 +1,5 @@
-From 5c3ba79177f7d1763db33c4358af2af60ff214b7 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com> 
+From d0852006bf3d305e8984b85b41997d43d4476937 Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
 Date: Wed, 18 Jun 2014 13:46:52 +0800
 Subject: [PATCH] use pkgconfig to check libgcrypt
 
@@ -10,15 +10,16 @@
 
 Signed-off-by: Roy Li <rongqing.li@windriver.com>
 Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+
 ---
  configure.ac | 15 +--------------
  1 file changed, 1 insertion(+), 14 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 0f31869..d35db42 100644
+index 62178c3..b56c9c7 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -777,20 +777,7 @@ AC_ARG_ENABLE(libgcrypt,
+@@ -889,20 +889,7 @@ AC_ARG_ENABLE(libgcrypt,
          [enable_libgcrypt=yes]
  )
  if test "x$enable_libgcrypt" = "xyes"; then
@@ -40,6 +41,3 @@
  fi
  AM_CONDITIONAL(ENABLE_LIBGCRYPT, test x$enable_libgcrypt = xyes)
  AC_SUBST(LIBGCRYPT_CFLAGS)
--- 
-2.8.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
index 7056e1c..476540d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
@@ -27,7 +27,6 @@
 "
 
 SRC_URI_append_libc-musl = " \
-    file://0001-Undefine-GLOB_BRACE.patch \
     file://0001-Include-sys-time-h.patch \
 "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index c6b9f10..10ffaaa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -11,6 +11,9 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=f300afd598546add034364cd0a533261"
 DEPENDS = "curl libpam openssl sblim-sfc-common unzip-native"
 
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
 SRC_URI = "http://downloads.sourceforge.net/sblim/${BP}.tar.bz2 \
            file://sfcb.service \
            file://sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch \
@@ -28,7 +31,7 @@
 SRC_URI[sha256sum] = "634a67b2f7ac3b386a79160eb44413d618e33e4e7fc74ae68b0240484af149dd"
 
 inherit autotools
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
+inherit systemd
 
 SYSTEMD_PACKAGES = "${PN}"
 SYSTEMD_SERVICE_${PN} = "sblim-sfcb.service"
@@ -53,10 +56,8 @@
 
     oe_runmake DESTDIR=${D} install
 
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install -d ${D}${systemd_unitdir}/system
-        install -m 0644 ${WORKDIR}/sfcb.service ${D}${systemd_unitdir}/system/sblim-sfcb.service
-    fi
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/sfcb.service ${D}${systemd_unitdir}/system/sblim-sfcb.service
 
     install -d ${D}${sysconfdir}/init.d
     mv ${D}${sysconfdir}/init.d/sfcb ${D}${sysconfdir}/init.d/sblim-sfcb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.5.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
index 0970d2a..1a1767e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
@@ -22,8 +22,8 @@
 PACKAGECONFIG[libcap-ng] = "--with-libcap-ng=yes,--with-libcap-ng=no,libcap-ng"
 PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux"
 
-SRC_URI[md5sum] = "093aeec3f8f39fa9a37593c4012d3156"
-SRC_URI[sha256sum] = "89e8bb080130bc6ce148573ba5bb91bfe30236b64b1b5bbca26515d4b5c945bc"
+SRC_URI[md5sum] = "9ae2c6e7131cd2813edcc65cbe5f223f"
+SRC_URI[sha256sum] = "51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054"
 
 inherit autotools update-rc.d systemd
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
new file mode 100644
index 0000000..3c019eb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
@@ -0,0 +1,12 @@
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931"
+SRCREV = "d1248b0f22ea8dc3b9d84a61bd35a83309bdb4b4"
+PV = "1.0+git${SRCPV}"
+
+SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit module
+
+EXTRA_OEMAKE += "KERNELDIR=${STAGING_KERNEL_DIR}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
index bc6fec0..4f58281 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
@@ -8,6 +8,8 @@
 
 inherit cmake pkgconfig
 
+OECMAKE_GENERATOR = "Unix Makefiles"
+
 DEPENDS = "luajit zlib ncurses"
 RDEPENDS_${PN} = "bash"
 
@@ -33,3 +35,7 @@
     ${datadir}/zsh/* \
     ${prefix}/src/*  \
 "
+
+# luajit not supported on Aarch64
+COMPATIBLE_HOST = "^(?!aarch64).*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch
index 8b98707..976e038 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch
@@ -1,11 +1,21 @@
+From 81c1ba940415595584a837ab1078c64855072f0c Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Mon, 21 Nov 2011 12:00:54 +0100
+Subject: [PATCH] t1lib: add 5.1.2
 
 #
 # Patch managed by http://www.holgerschurig.de/patcher.html
 #
 
---- t1lib-5.0.2/configure.in~configure.patch
-+++ t1lib-5.0.2/configure.in
-@@ -75,9 +75,9 @@
+---
+ configure.in | 95 ++++++++++++++++++++++++------------------------------------
+ 1 file changed, 38 insertions(+), 57 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index eade4c0..e649ea9 100644
+--- a/configure.in
++++ b/configure.in
+@@ -74,9 +74,9 @@ T1LIB_PATCHLEVEL=builtin(eval, MACRO_T1LIB_LT_REVISION)
  T1LIB_VERSIONSTRING=\"MACRO_T1LIB_IDENTIFIER\"
  
  
@@ -18,7 +28,7 @@
  
  dnl We want these before the checks, so the checks can modify their values.
  test -z "$LDLIBS" && LDLIBS=-lm   AC_SUBST(LDLIBS)
-@@ -161,6 +161,7 @@
+@@ -162,6 +162,7 @@ fi
  
  dnl **** Check for underscore on external symbols ****
  
@@ -26,21 +36,12 @@
  AC_CACHE_CHECK("whether external symbols need an underscore prefix",
                 ac_cv_c_extern_prefix,
  [saved_libs=$LIBS
-@@ -178,68 +179,48 @@
+@@ -179,68 +180,48 @@ then
    AC_DEFINE(NEED_UNDERSCORE_PREFIX)
  fi
  
 -dnl **** Check which ANSI integer type is 16 bit 
-+dnl **** Check which ANSI integer type is 16 bit
-+T1_AA_TYPE16=""
-+for type in short int; do
-+	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x2"; then
-+		T1_AA_TYPE16="-DT1_AA_TYPE16=$type"
-+		T1_INT16="$type"
-+		break
-+	fi
-+done
- 
+-
 -AC_CACHE_CHECK( "which ANSI integer type is 16 bit", ac_16bit_type,
 -		AC_TRY_RUN([
 -int main(void) {
@@ -58,21 +59,23 @@
 -else
 -  T1_AA_TYPE16="-DT1_AA_TYPE16=int"
 -  T1_INT16="int"
++dnl **** Check which ANSI integer type is 16 bit
++T1_AA_TYPE16=""
++for type in short int; do
++	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x2"; then
++		T1_AA_TYPE16="-DT1_AA_TYPE16=$type"
++		T1_INT16="$type"
++		break
++	fi
++done
++
 +if test x"$T1_AA_TYPE16" = "x"; then
 +	AC_MSG_ERROR("Unable to determine which integer type is 16 bit.")
  fi
  
 -
  dnl **** Check which ANSI integer type is 32 bit 
-+T1_AA_TYPE32=""
-+for type in int long; do
-+	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x4"; then
-+		T1_AA_TYPE32="-DT1_AA_TYPE32=$type"
-+		T1_INT32="$type"
-+		break
-+	fi
-+done
- 
+-
 -AC_CACHE_CHECK( "which ANSI integer type is 32 bit", ac_32bit_type,
 -		AC_TRY_RUN([
 -int main(void) {
@@ -90,21 +93,22 @@
 -else
 -  T1_AA_TYPE32="-DT1_AA_TYPE32=long"
 -  T1_INT32="long"
++T1_AA_TYPE32=""
++for type in int long; do
++	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x4"; then
++		T1_AA_TYPE32="-DT1_AA_TYPE32=$type"
++		T1_INT32="$type"
++		break
++	fi
++done
++
 +if test x"$T1_AA_TYPE32" = "x"; then
 +	AC_MSG_ERROR("Unable to determine which integer type is 32 bit.")
  fi
  
 -
  dnl **** Check which ANSI integer type is 64 bit 
-+T1_AA_TYPE64=""
-+for type in long long_long; do
-+	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x8"; then
-+		AC_MSG_WARN("$type is 64 bit")
-+		T1_AA_TYPE64="-DT1_AA_TYPE64=\"`echo $type|tr '_' ' '`\""
-+		break
-+	fi
-+done
- 
+-
 -AC_CACHE_CHECK( "which ANSI integer type is 64 bit", ac_64bit_type,
 -		AC_TRY_RUN([
 -int main(void) {
@@ -118,6 +122,15 @@
 -  T1_AA_TYPE64="-DT1_AA_TYPE64=long"
 -else
 -  T1_AA_TYPE64=
++T1_AA_TYPE64=""
++for type in long long_long; do
++	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x8"; then
++		AC_MSG_WARN("$type is 64 bit")
++		T1_AA_TYPE64="-DT1_AA_TYPE64=\"`echo $type|tr '_' ' '`\""
++		break
++	fi
++done
++
 +if test x"$T1_AA_TYPE64" = "x"; then
 +	AC_MSG_ERROR("Unable to determine which integer type is 64 bit.")
  fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch
index 8b4ce40..bc2476b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch
@@ -1,3 +1,8 @@
+From cea83003de3ffebde92becd1e599fe3b28f0a7c4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 6 Mar 2017 23:13:36 -0800
+Subject: [PATCH] t1lib: Fix printf format string errors
+
 Fix printf formats to use format qualifiers
 fixes
 
@@ -6,20 +11,17 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Upstream-Status: Pending
 
---- a/lib/type1/objects.c
-+++ b/lib/type1/objects.c
-@@ -957,7 +957,7 @@
-  
-        sprintf(typemsg, "Wrong object type in %s; expected %s, found %s.\n",
-                   name, TypeFmt(expect), TypeFmt(obj->type));
--       IfTrace0(TRUE,typemsg);
-+       IfTrace1(TRUE, "%s", typemsg);
-  
-        ObjectPostMortem(obj);
-  
+---
+ lib/t1lib/t1subset.c | 2 +-
+ lib/type1/objects.c  | 2 +-
+ lib/type1/objects.h  | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/t1lib/t1subset.c b/lib/t1lib/t1subset.c
+index da427b2..e76974f 100644
 --- a/lib/t1lib/t1subset.c
 +++ b/lib/t1lib/t1subset.c
-@@ -759,7 +759,7 @@
+@@ -759,7 +759,7 @@ char *T1_SubsetFont( int FontID,
  	     tr_len);
      T1_PrintLog( "T1_SubsetFont()", err_warn_msg_buf,
  		 T1LOG_DEBUG);
@@ -28,9 +30,24 @@
    }
    
    /* compute size of output file */
+diff --git a/lib/type1/objects.c b/lib/type1/objects.c
+index c413a0f..f828e6a 100644
+--- a/lib/type1/objects.c
++++ b/lib/type1/objects.c
+@@ -957,7 +957,7 @@ struct xobject *TypeErr(name, obj, expect, ret) /* non-ANSI avoids overly strict
+  
+        sprintf(typemsg, "Wrong object type in %s; expected %s, found %s.\n",
+                   name, TypeFmt(expect), TypeFmt(obj->type));
+-       IfTrace0(TRUE,typemsg);
++       IfTrace1(TRUE, "%s", typemsg);
+  
+        ObjectPostMortem(obj);
+  
+diff --git a/lib/type1/objects.h b/lib/type1/objects.h
+index 13cbae7..3a1d337 100644
 --- a/lib/type1/objects.h
 +++ b/lib/type1/objects.h
-@@ -214,7 +214,7 @@
+@@ -214,7 +214,7 @@ struct xobject {
  /*SHARED*/
  /* NDW: personally, I want to see status and error messages! */
  #define IfTrace0(condition,model)                                 \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch
index e050025..da54f87 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch
@@ -1,12 +1,28 @@
+From bab41f5e1fc1fc809da1371e6a0222e0eb21e5f0 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Mon, 21 Nov 2011 12:00:54 +0100
+Subject: [PATCH] t1lib: add 5.1.2
 
 #
 # Patch managed by http://www.holgerschurig.de/patcher.html
 #
 
---- t1lib-5.0.2/Makefile.in~libtool
-+++ t1lib-5.0.2/Makefile.in
+---
+ Makefile.in           | 5 +++--
+ examples/Makefile.in  | 5 +++--
+ lib/Makefile.in       | 6 ++++--
+ lib/t1lib/Makefile.in | 6 ++++--
+ lib/type1/Makefile.in | 6 ++++--
+ type1afm/Makefile.in  | 6 ++++--
+ xglyph/Makefile.in    | 6 ++++--
+ 7 files changed, 26 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 29c3468..396c020 100644
+--- a/Makefile.in
++++ b/Makefile.in
 @@ -18,7 +18,8 @@
- # Last modified:       2001-04-01
+ # Last modified:       2005-05-01
  #
  
 -SHELL     = /bin/sh
@@ -15,7 +31,7 @@
  CC        = @CC@
  CPP       = @CPP@
  CFLAGS    = @CFLAGS@
-@@ -150,7 +151,7 @@
+@@ -149,7 +150,7 @@ distclean: clean
  	$(RM) examples/Makefile
  	$(RM) xglyph/Makefile
  	$(RM) doc/Makefile
@@ -24,8 +40,10 @@
  
  
  # The following two targets are for building and cleaning the python-
---- t1lib-5.0.2/examples/Makefile.in~libtool
-+++ t1lib-5.0.2/examples/Makefile.in
+diff --git a/examples/Makefile.in b/examples/Makefile.in
+index b301db5..7a6a514 100644
+--- a/examples/Makefile.in
++++ b/examples/Makefile.in
 @@ -14,9 +14,10 @@
  # Last modified:       2001-04-01
  #
@@ -39,8 +57,10 @@
  CC        = @CC@
  CPP       = @CPP@
  CFLAGS    = @CFLAGS@
---- t1lib-5.0.2/lib/Makefile.in~libtool
-+++ t1lib-5.0.2/lib/Makefile.in
+diff --git a/lib/Makefile.in b/lib/Makefile.in
+index 89e5e86..6e0f960 100644
+--- a/lib/Makefile.in
++++ b/lib/Makefile.in
 @@ -15,8 +15,10 @@
  #
  # Contributions by H.Kakugawa to use libtool!
@@ -54,8 +74,10 @@
  CC        = @CC@
  CPP       = @CPP@
  CFLAGS    = @CFLAGS@
---- t1lib-5.0.2/lib/t1lib/Makefile.in~libtool
-+++ t1lib-5.0.2/lib/t1lib/Makefile.in
+diff --git a/lib/t1lib/Makefile.in b/lib/t1lib/Makefile.in
+index a6c2478..32434b3 100644
+--- a/lib/t1lib/Makefile.in
++++ b/lib/t1lib/Makefile.in
 @@ -14,8 +14,10 @@
  #
  # Modified by H.Kakugawa to use libtool
@@ -69,8 +91,10 @@
  CC        = @CC@
  CPP       = @CPP@
  CFLAGS    = @CFLAGS@
---- t1lib-5.0.2/lib/type1/Makefile.in~libtool
-+++ t1lib-5.0.2/lib/type1/Makefile.in
+diff --git a/lib/type1/Makefile.in b/lib/type1/Makefile.in
+index 241f124..42efa94 100644
+--- a/lib/type1/Makefile.in
++++ b/lib/type1/Makefile.in
 @@ -14,8 +14,10 @@
  #
  # Modified by H.Kakugawa to use libtool
@@ -84,8 +108,10 @@
  CC        = @CC@
  CPP       = @CPP@
  CFLAGS    = @CFLAGS@
---- t1lib-5.0.2/type1afm/Makefile.in~libtool
-+++ t1lib-5.0.2/type1afm/Makefile.in
+diff --git a/type1afm/Makefile.in b/type1afm/Makefile.in
+index 61611e1..9b51406 100644
+--- a/type1afm/Makefile.in
++++ b/type1afm/Makefile.in
 @@ -15,8 +15,10 @@
  #
  # Modified by H.Kakugawa to use libtool
@@ -99,8 +125,10 @@
  CC        = @CC@
  CPP       = @CPP@
  CFLAGS    = @CFLAGS@
---- t1lib-5.0.2/xglyph/Makefile.in~libtool
-+++ t1lib-5.0.2/xglyph/Makefile.in
+diff --git a/xglyph/Makefile.in b/xglyph/Makefile.in
+index 8da9b63..741334c 100644
+--- a/xglyph/Makefile.in
++++ b/xglyph/Makefile.in
 @@ -15,8 +15,10 @@
  #
  # Modified by H.Kakugawa to use libtool
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils/0001-multicast_blast-tipcc-Fix-struct-type-for-TIPC_GROUP.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils/0001-multicast_blast-tipcc-Fix-struct-type-for-TIPC_GROUP.patch
new file mode 100644
index 0000000..e495285
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils/0001-multicast_blast-tipcc-Fix-struct-type-for-TIPC_GROUP.patch
@@ -0,0 +1,33 @@
+From 1ce892749e4f53bd0aeaa4c3ce45f80178799411 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 3 Mar 2018 17:52:51 -0800
+Subject: [PATCH] multicast_blast/tipcc: Fix struct type for TIPC_GROUP_JOIN
+
+Kernel defines it as tipc_group_req and not tipc_mreq
+this code was not excercised with older kernels so we
+never ran into the compiler failures since TIPC_GROUP_JOIN
+is only defined in kernel starting 4.15
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ multicast_blast/tipcc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/multicast_blast/tipcc.c b/multicast_blast/tipcc.c
+index 90644d3..911c759 100755
+--- a/multicast_blast/tipcc.c
++++ b/multicast_blast/tipcc.c
+@@ -213,7 +213,7 @@ int tipc_accept(int sd, struct tipc_addr *src)
+ int tipc_join(int sd, struct tipc_addr *member)
+ {
+ #ifdef TIPC_GROUP_JOIN
+-	struct tipc_mreq mreq = {
++	struct tipc_group_req mreq = {
+ 		.type = member->type,
+ 		.instance = member->instance,
+ 		.scope = domain2scope(member->domain)
+-- 
+2.16.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
index 720aa3c..54ed043 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
@@ -5,6 +5,7 @@
 SRC_URI = "git://git.code.sf.net/p/tipc/tipcutils \
            file://0001-include-sys-select.h-for-FD_-definitions.patch \
            file://0002-replace-non-standard-uint-with-unsigned-int.patch \
+           file://0001-multicast_blast-tipcc-Fix-struct-type-for-TIPC_GROUP.patch \
            "
 SRCREV = "7ab2211b87414ba240b0b2e4af219c1057c9cf9a"
 PV = "2.2.0+git${SRCPV}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
index d729de9..0a00a36 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
@@ -5,8 +5,8 @@
 DEPENDS = "ncurses libxml2"
 
 SRC_URI = "http://tiptop.gforge.inria.fr/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "f1fba1e90465b0e5a3865b19133fa19d"
-SRC_URI[sha256sum] = "3f07e958b40acaeab98e9eb1326c9f91b0be0a782c1cc2bd7a9e18d31fab18ca"
+SRC_URI[md5sum] = "46ca0fdf0236f02dd2b96d347626d2a2"
+SRC_URI[sha256sum] = "51c4449c95bba34f16b429729c2f58431490665d8093efaa8643b2e1d1084182"
 
 inherit autotools-brokensep
 EXTRA_OECONF = "CFLAGS="$CFLAGS -I${STAGING_INCDIR}/libxml2""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.1.bb
deleted file mode 100644
index bf21de5..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Terminal multiplexer"
-HOMEPAGE = "http://tmux.sourceforge.net"
-SECTION = "console/utils"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://tmux.c;beginline=3;endline=17;md5=8685b4455330a940fab1ff451aa941a0"
-
-DEPENDS = "ncurses libevent"
-
-
-SRC_URI = "git://github.com/tmux/tmux.git;branch=master"
-SRCREV ?= "310f0a960ca64fa3809545badc629c0c166c6cd2"
-
-S = "${WORKDIR}/git"
-B = "${WORKDIR}/build"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb
new file mode 100644
index 0000000..fba5156
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.6.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Terminal multiplexer"
+HOMEPAGE = "http://tmux.sourceforge.net"
+SECTION = "console/utils"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://tmux.c;beginline=3;endline=17;md5=f256b76d52e7b4d02bf19144bdaca107"
+
+DEPENDS = "ncurses libevent"
+
+SRC_URI = "https://github.com/tmux/tmux/releases/download/${PV}/tmux-${PV}.tar.gz"
+SRC_URI[md5sum] = "d541ff392249f94c4f3635793556f827"
+SRC_URI[sha256sum] = "b17cd170a94d7b58c0698752e1f4f263ab6dc47425230df7e53a6435cc7cd7e8"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
+
+do_configure_prepend() {
+    # The 'compat' directory is needed for output during the build but it's
+    # not automatically created when building outside the source directory.
+    mkdir ${B}/compat
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/files/ads1x15-fixed-case-logic-in-getThresh-function.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/files/ads1x15-fixed-case-logic-in-getThresh-function.patch
deleted file mode 100644
index c617d14..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/files/ads1x15-fixed-case-logic-in-getThresh-function.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From c64d04d084f47b4cb3e1cdee6e96348fcc6a756e Mon Sep 17 00:00:00 2001
-From: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
-Date: Tue, 30 May 2017 15:14:09 -0700
-Subject: [PATCH 1/1] ads1x15: fixed case logic in getThresh() function
-
-Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
-
-Upstream-Status: Backported [c64d04d084f47b4cb3e1cdee6e96348fcc6a756e]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
-
----
- src/ads1x15/ads1x15.cxx | 4 ++--
- src/ads1x15/ads1x15.hpp | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/ads1x15/ads1x15.cxx b/src/ads1x15/ads1x15.cxx
-index 35782709..47701b2a 100644
---- a/src/ads1x15/ads1x15.cxx
-+++ b/src/ads1x15/ads1x15.cxx
-@@ -116,7 +116,7 @@ ADS1X15::setContinuous(bool mode){
- 
- float
- ADS1X15::getThresh(ADSTHRESH reg){
--     if( THRESH_HIGH && THRESH_LOW) return getLastSample(reg);
-+     if(reg == THRESH_HIGH || reg == THRESH_LOW) return getLastSample(reg);
-      else return 0.0;
- }
- 
-@@ -137,7 +137,7 @@ ADS1X15::setThresh(ADSTHRESH reg, float value){
-      case 2:
-      case 3:
-           set_value = value / getMultiplier();
--         set_value = set_value << m_bitShift;
-+          set_value = set_value << m_bitShift;
-           if(i2c->writeWordReg(reg, swapWord(set_value)) != mraa::SUCCESS){
-             throw std::runtime_error(std::string(__FUNCTION__) + ": I2c.write() failed");
-             return;
-diff --git a/src/ads1x15/ads1x15.hpp b/src/ads1x15/ads1x15.hpp
-index 7524572d..efd8c8ec 100644
---- a/src/ads1x15/ads1x15.hpp
-+++ b/src/ads1x15/ads1x15.hpp
-@@ -390,7 +390,7 @@ namespace upm {
-              * @param reg ADSTHRES enum value.
-              * Returns 0.0 unless THRESH_HIGH or THRESH_LOW requested.
-              */
--            float getThresh(ADSTHRESH reg = THRESH_LOW);
-+            float getThresh(ADSTHRESH reg = THRESH_DEFAULT);
- 
-             /**
-              * Sets threshold levels or configures for conversion ready
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
index 38065ce..d742a5e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
@@ -7,12 +7,11 @@
 
 DEPENDS = "libjpeg-turbo mraa"
 
-SRCREV = "106b6c706268522ab0168a4ddb19e89ce832e084"
-PV = "1.3.0-git${SRCPV}"
+SRCREV = "cc7fec9ae0228add9011bf1c2cd5e0ca2ba0d4f0"
+PV = "1.6.0-git${SRCPV}"
 
 SRC_URI = " \
     git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
-    file://ads1x15-fixed-case-logic-in-getThresh-function.patch \
 "
 
 S = "${WORKDIR}/git"
@@ -26,7 +25,13 @@
 # override this in local.conf to get needed bindings.
 # BINDINGS_pn-upm="python"
 # will result in only the python bindings being built/packaged.
-BINDINGS ??= "python ${@ 'nodejs' if oe.types.boolean(d.getVar('HAVE_NODEJS') or '0') else '' }"
+# Note: 'nodejs' is disabled by default because the bindings
+# generation currently fails with nodejs (>v7.x).
+BINDINGS ??= "python"
+
+# nodejs isn't available for armv4/armv5 architectures
+BINDINGS_armv4 ??= "python"
+BINDINGS_armv5 ??= "python"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
  ${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/disable_vlockrc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/disable_vlockrc.patch
index ee0d074..2412bb8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/disable_vlockrc.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/disable_vlockrc.patch
@@ -1,13 +1,23 @@
+From f71cc920528c3496b0118964ebbcf5440cda4ed1 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 16 Aug 2017 13:37:40 +0800
+Subject: [PATCH] vlock: add new recipe
+
 Upstream-Status: Inappropriate [configuration]
 
 written by: Jeff Polk <jeff.polk@windriver.com>
 Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
 
-Index: vlock-2.2.2/man/vlock.1
-===================================================================
---- vlock-2.2.2.orig/man/vlock.1	2010-07-26 14:12:42.000000000 -0400
-+++ vlock-2.2.2/man/vlock.1	2010-07-26 14:13:06.000000000 -0400
-@@ -111,11 +111,6 @@
+---
+ man/vlock.1  | 5 -----
+ src/vlock.sh | 5 -----
+ 2 files changed, 10 deletions(-)
+
+diff --git a/man/vlock.1 b/man/vlock.1
+index 0d29b49..01cb944 100644
+--- a/man/vlock.1
++++ b/man/vlock.1
+@@ -111,11 +111,6 @@ enter your password at the password prompt.  If this variable is unset or set
  to an invalid value or 0 no timeout is used.  \fBWarning\fR: If this value is
  too low, you may not be able to unlock your session.
  .PP
@@ -19,11 +29,11 @@
  .SH SECURITY
  See the SECURITY file in the \fBvlock\fR distribution for more information.
  .PP
-Index: vlock-2.2.2/src/vlock.sh
-===================================================================
---- vlock-2.2.2.orig/src/vlock.sh	2010-07-26 14:12:32.000000000 -0400
-+++ vlock-2.2.2/src/vlock.sh	2010-07-26 14:13:33.000000000 -0400
-@@ -35,11 +35,6 @@
+diff --git a/src/vlock.sh b/src/vlock.sh
+index 75f1369..f572776 100644
+--- a/src/vlock.sh
++++ b/src/vlock.sh
+@@ -35,11 +35,6 @@ This TTY is now locked.
  
  ${VLOCK_ENTER_PROMPT}"
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock-no_tally.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock-no_tally.patch
index 6e8a6a9..3a344b2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock-no_tally.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock-no_tally.patch
@@ -1,8 +1,21 @@
+From 17e5c8d32abc214aea408f0837be41e88bce7eb2 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 16 Aug 2017 13:37:40 +0800
+Subject: [PATCH] vlock: add new recipe
+
 Upstream-Status: Pending
 
 written by: Jeff Polk <jeff.polk@windriver.com>
 Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
 
+---
+ Makefile         | 4 ++++
+ configure        | 9 +++++++++
+ src/vlock-main.c | 8 ++++++++
+ 3 files changed, 21 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index 4eeb42a..834cd2c 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -126,6 +126,10 @@ ifeq ($(AUTH_METHOD),shadow)
@@ -16,6 +29,8 @@
  ifeq ($(ENABLE_PLUGINS),yes)
  vlock-main: plugins.o plugin.o module.o process.o script.o tsort.o list.o
  # -rdynamic is needed so that the all plugin can access the symbols from console_switch.o
+diff --git a/configure b/configure
+index d5d84d6..1303598 100755
 --- a/configure
 +++ b/configure
 @@ -44,6 +44,7 @@ Optional Features:
@@ -36,7 +51,7 @@
      pam|shadow)
        if [ "$2" = "yes" ] ; then
          if [ -n "$auth_method" ] && [ "$auth_method" != "$1" ] ; then
-@@ -232,6 +232,7 @@ set_defaults() {
+@@ -228,6 +232,7 @@ set_defaults() {
    AUTH_METHOD="pam"
    ENABLE_ROOT_PASSWORD="yes"
    ENABLE_PLUGINS="yes"
@@ -44,9 +59,7 @@
    SCRIPTS=""
  
    VLOCK_GROUP="vlock"
-@@ -356,10 +356,14 @@ ENABLE_PLUGINS = ${ENABLE_PLUGINS}
- # which plugins should be build
- MODULES = ${MODULES}
+@@ -353,6 +358,10 @@ MODULES = ${MODULES}
  # which scripts should be installed
  SCRIPTS = ${SCRIPTS}
  
@@ -57,12 +70,12 @@
  # root's group
  ROOT_GROUP = ${ROOT_GROUP}
  
- # group for privileged plugins
- VLOCK_GROUP = ${VLOCK_GROUP}
+diff --git a/src/vlock-main.c b/src/vlock-main.c
+index 008f6f0..108ce8b 100644
 --- a/src/vlock-main.c
 +++ b/src/vlock-main.c
-@@ -111,7 +111,9 @@ static void restore_terminal(void)
-   (void) tcsetattr(STDIN_FILENO, TCSANOW, &term);
+@@ -112,7 +112,9 @@ static void restore_terminal(void)
+   (void) tcsetattr(STDIN_FILENO, TCSANOW, &old_term);
  }
  
 +#ifdef ENABLE_FAIL_COUNT
@@ -71,7 +84,7 @@
  
  static void auth_loop(const char *username)
  {
-@@ -181,7 +183,9 @@ static void auth_loop(const char *userna
+@@ -182,7 +184,9 @@ static void auth_loop(const char *username)
      }
  #endif
  
@@ -81,7 +94,7 @@
    }
  
    /* Free timeouts memory. */
-@@ -189,11 +193,13 @@ static void auth_loop(const char *userna
+@@ -190,11 +194,13 @@ static void auth_loop(const char *username)
    free(prompt_timeout);
  }
  
@@ -95,7 +108,7 @@
  
  #ifdef USE_PLUGINS
  static void call_end_hook(void)
-@@ -216,7 +222,9 @@ int main(int argc, char *const argv[])
+@@ -217,7 +223,9 @@ int main(int argc, char *const argv[])
    if (username == NULL)
      fatal_perror("vlock: could not get username");
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam_tally2_reset.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam_tally2_reset.patch
index 4ce0abc..460b292 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam_tally2_reset.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam_tally2_reset.patch
@@ -1,13 +1,22 @@
+From fcec4e7fe899f8c0077b3004eeccb7292a945a67 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 16 Aug 2017 13:37:40 +0800
+Subject: [PATCH] vlock: add new recipe
+
 Upstream-Status: Pending
 
 written by: Jeff Polk <jeff.polk@windriver.com>
 Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
 
-Index: vlock-2.2.2/src/auth-pam.c
-===================================================================
---- vlock-2.2.2.orig/src/auth-pam.c	2010-06-14 14:38:51.000000000 -0400
-+++ vlock-2.2.2/src/auth-pam.c	2010-06-14 14:39:12.000000000 -0400
-@@ -148,6 +148,9 @@
+---
+ src/auth-pam.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/auth-pam.c b/src/auth-pam.c
+index 5cf93f6..c5cc67a 100644
+--- a/src/auth-pam.c
++++ b/src/auth-pam.c
+@@ -148,6 +148,9 @@ bool auth(const char *user, struct timespec *timeout)
  
    if (pam_status != PAM_SUCCESS) {
      fprintf(stderr, "vlock: %s\n", pam_strerror(pamh, pam_status));
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init
index 7b6cbf4..a2c9c21 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init
@@ -34,7 +34,7 @@
     mem_by_cpu=$(($memtotal/$num_cpus*$factor/100*1024))
 
     # load dependency modules
-    modprobe zram zram_num_devices=$num_cpus
+    modprobe zram num_devices=$num_cpus
     echo "zram devices probed successfully"
 
     # initialize the devices
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb
index 30ac90a..307774b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb
@@ -7,7 +7,9 @@
 
 DEPENDS = "atk glibmm"
 
-inherit gnome autotools pkgconfig
+inherit distro_features_check gnome autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI[archive.md5sum] = "d53b60b0f1be597e86070954a49cf0c3"
 SRC_URI[archive.sha256sum] = "ff95385759e2af23828d4056356f25376cfabc41e690ac1df055371537e458bd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
index 06f3bb3..d874164 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
@@ -14,6 +14,10 @@
 EXTRA_AUTORECONF = ""
 DEPENDS = ""
 
+# Default to enable autoconf-archive to avoid conflicts
+PACKAGECONFIG ??= "autoconf-archive"
+PACKAGECONFIG[autoconf-archive] = "--with-autoconf-archive, --without-autoconf-archive, autoconf-archive"
+
 FILES_${PN} += "${datadir}/aclocal"
 FILES_${PN}-dev = ""
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/files/0001-do-not-build-demos.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/files/0001-do-not-build-demos.patch
new file mode 100644
index 0000000..176e979
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/files/0001-do-not-build-demos.patch
@@ -0,0 +1,51 @@
+From 6914eccee34376f9067b0ee9f17039fe182125e8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 31 Mar 2018 22:29:16 +0200
+Subject: [PATCH] do not build demos
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+They are not installed anyway and add libepoxy dependency
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Makefile.am  | 3 ++-
+ configure.ac | 3 ---
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 984b6a7..6c754a6 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -28,7 +28,8 @@ doc_subdirs = docs
+ else
+ doc_subdirs =
+ endif
+-SUBDIRS = tools $(src_subdirs) gdk/gdkmm gtk/gtkmm tests demos $(doc_subdirs)
++
++SUBDIRS = tools $(src_subdirs) gdk/gdkmm gtk/gtkmm tests $(doc_subdirs)
+ 
+ gdkmm_includedir = $(includedir)/$(GDKMM_MODULE_NAME)
+ gdkmm_include_HEADERS = gdk/gdkmm.h
+diff --git a/configure.ac b/configure.ac
+index e5e82dc..c1c7658 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -109,11 +109,8 @@ AS_IF([test "x$gtkmm_enable_api_atkmm" != xno],
+       [GTKMM_MODULES="atkmm-1.6 >= 2.24.2 $GTKMM_MODULES"])
+ AC_SUBST([GTKMM_MODULES])
+ 
+-AC_SUBST([GTKMM_DEMOS_EXTRA_MODULES], ['epoxy >= 1.2'])
+-
+ PKG_CHECK_MODULES([GDKMM], [$GDKMM_MODULES])
+ PKG_CHECK_MODULES([GTKMM], [$GTKMM_MODULES])
+-PKG_CHECK_MODULES([GTKMM_DEMOS_EXTRA], [$GTKMM_DEMOS_EXTRA_MODULES])
+ 
+ MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0])
+ MM_PKG_CONFIG_SUBST([GTHREAD_LIBS], [--libs gthread-2.0])
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb
new file mode 100644
index 0000000..96b54dd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "C++ bindings for the GTK+ toolkit V3"
+HOMEPAGE = "http://www.gtkmm.org/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+                    file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "atkmm pangomm glibmm gtk+3 cairomm"
+
+BPN = "gtkmm"
+
+inherit gnomebase distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.md5sum] = "883e9046768b3a5afc8e365988823e77"
+SRC_URI[archive.sha256sum] = "91afd98a31519536f5f397c2d79696e3d53143b80b75778521ca7b48cb280090"
+SRC_URI += "file://0001-do-not-build-demos.patch"
+
+EXTRA_OECONF = " --disable-documentation "
+
+FILES_${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
index 195bb21..b780d09 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
@@ -8,12 +8,10 @@
 
 DEPENDS = "atkmm pangomm glibmm gtk+ cairomm"
 
-inherit gnome autotools pkgconfig distro_features_check
+inherit gnomebase distro_features_check
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
-GNOME_COMPRESS_TYPE = "xz"
-
 SRC_URI[archive.md5sum] = "6c59ae8bbff48fad9132f23af347acf1"
 SRC_URI[archive.sha256sum] = "0680a53b7bf90b4e4bf444d1d89e6df41c777e0bacc96e9c09fc4dd2f5fe6b72"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/0001-configure.in-remove-deprecated-GNOME_COMMON_INIT.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/0001-configure.in-remove-deprecated-GNOME_COMMON_INIT.patch
deleted file mode 100644
index 4738274..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/0001-configure.in-remove-deprecated-GNOME_COMMON_INIT.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From ceefcb19cebf8bc3d45ee502f8eabd3bc5bd0aac Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Sat, 11 Feb 2017 16:42:12 +0100
-Subject: [PATCH] configure.in: remove deprecated GNOME_COMMON_INIT
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.in | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/configure.in b/configure.in
-index 8905f1c..3901398 100644
---- a/configure.in
-+++ b/configure.in
-@@ -15,7 +15,6 @@ AC_CONFIG_HEADERS([config.h])
- 
- AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-bzip2])
- 
--GNOME_COMMON_INIT
- 
- if test "$enable_debug" != "no"; then
-   AC_DEFINE([DEBUG],[1],[enable use of LIBGLADE_DEBUG environment variable])
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch
deleted file mode 100644
index c5d5864..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-Upstream-Status: Pending
-
-diff -ur libglade-2.4.0~/configure.in libglade-2.4.0/configure.in
---- libglade-2.4.0~/configure.in	2004-05-17 12:38:31.000000000 +0100
-+++ libglade-2.4.0/configure.in	2004-07-28 16:53:09.000000000 +0100
-@@ -147,6 +147,18 @@
- AM_CONDITIONAL(HAVE_PYTHON, $have_python)
- AC_SUBST(PYTHON)
- 
-+AC_MSG_CHECKING([for cruft in libgtk])
-+AC_TRY_LINK([
-+#include <gtk/gtk.h>
-+#include <stdio.h>
-+],      [ gtk_tree_get_type (); return 0; ],
-+        [ AC_MSG_RESULT(yes)
-+          have_cruft=yes ],
-+        [ AC_MSG_RESULT(no)
-+	  AC_DEFINE(DISABLE_CRUFT,,[leave out support for old, broken widgets])
-+          have_cruft=no ])
-+AC_SUBST(DISABLE_CRUFT)
-+
- dnl add debugging options ...
- changequote(,)dnl
- if test "x$GCC" = xyes; then
-Only in libglade-2.4.0: configure.in.orig
-diff -ur libglade-2.4.0~/glade/glade-gtk.c libglade-2.4.0/glade/glade-gtk.c
---- libglade-2.4.0~/glade/glade-gtk.c	2004-03-13 13:47:35.000000000 +0000
-+++ libglade-2.4.0/glade/glade-gtk.c	2004-07-28 16:53:52.000000000 +0100
-@@ -213,6 +213,8 @@
- 	gtk_clist_column_titles_hide (GTK_CLIST (w));
- }
- 
-+#ifndef DISABLE_CRUFT
-+
- static void
- tree_set_selection_mode (GladeXML *xml, GtkWidget *w,
- 			 const char *name, const char *value)
-@@ -238,6 +240,8 @@
-     gtk_tree_set_view_lines (GTK_TREE (w), BOOL (value));
- }
- 
-+#endif
-+
- static void
- list_set_selection_mode (GladeXML *xml, GtkWidget *w,
- 			 const char *name, const char *value)
-@@ -254,6 +258,7 @@
-     gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (w), BOOL (value));
- }
- 
-+#ifndef DISABLE_CRUFT
- static void
- text_set_text (GladeXML *xml, GtkWidget *w,
- 	       const char *name, const char *value)
-@@ -262,6 +267,7 @@
- 
-     gtk_editable_insert_text (GTK_EDITABLE (w), value, -1, &pos);
- }
-+#endif
- 
- static void
- radio_menu_item_set_group (GladeXML *xml, GtkWidget *w,
-@@ -1125,13 +1131,17 @@
-     glade_register_custom_prop (GTK_TYPE_CLIST, "selection_mode", clist_set_selection_mode);
-     glade_register_custom_prop (GTK_TYPE_CLIST, "shadow_type", clist_set_shadow_type);
-     glade_register_custom_prop (GTK_TYPE_CLIST, "show_titles", clist_set_show_titles);
-+#ifndef DISABLE_CRUFT
-     glade_register_custom_prop (GTK_TYPE_TREE, "selection_mode", tree_set_selection_mode);
-     glade_register_custom_prop (GTK_TYPE_TREE, "view_mode", tree_set_view_mode);
-     glade_register_custom_prop (GTK_TYPE_TREE, "view_line", tree_set_view_line);
-+#endif
-     glade_register_custom_prop (GTK_TYPE_LIST, "selection_mode", list_set_selection_mode);
-     glade_register_custom_prop (GTK_TYPE_CHECK_MENU_ITEM, "always_show_toggle",
- 				check_menu_item_set_always_show_toggle);
-+#ifndef DISABLE_CRUFT
-     glade_register_custom_prop (GTK_TYPE_TEXT, "text", text_set_text);
-+#endif
-     glade_register_custom_prop (GTK_TYPE_RADIO_MENU_ITEM, "group",
- 				radio_menu_item_set_group);
-     glade_register_custom_prop (GTK_TYPE_TOOLBAR, "tooltips", toolbar_set_tooltips);
-@@ -1288,8 +1298,10 @@
- 			   glade_standard_build_children, NULL);
-     glade_register_widget (GTK_TYPE_TEAROFF_MENU_ITEM, glade_standard_build_widget,
- 			   NULL, NULL);
-+#ifndef DISABLE_CRUFT
-     glade_register_widget (GTK_TYPE_TEXT, glade_standard_build_widget,
- 			   NULL, NULL);
-+#endif
-     glade_register_widget (GTK_TYPE_TEXT_VIEW, glade_standard_build_widget,
- 			   NULL, NULL);
-     glade_register_widget (GTK_TYPE_TIPS_QUERY, glade_standard_build_widget,
-@@ -1304,8 +1316,10 @@
- 			   glade_standard_build_children, NULL);
-     glade_register_widget (GTK_TYPE_TOOL_BUTTON, glade_standard_build_widget,
- 			   NULL, NULL);
-+#ifndef DISABLE_CRUFT
-     glade_register_widget (GTK_TYPE_TREE, glade_standard_build_widget,
- 			   NULL, NULL);
-+#endif
-     glade_register_widget (GTK_TYPE_TREE_VIEW, glade_standard_build_widget,
- 			   NULL, NULL);
-     glade_register_widget (GTK_TYPE_VBUTTON_BOX, glade_standard_build_widget,
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch
deleted file mode 100644
index dc4c092..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch
+++ /dev/null
@@ -1,501 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-diff -urN libglade-2.4.2.orig/configure.in libglade-2.4.2/configure.in
---- libglade-2.4.2.orig/configure.in	2005-02-11 12:42:58.000000000 +0100
-+++ libglade-2.4.2/configure.in	2005-03-22 01:22:00.000000000 +0100
-@@ -52,11 +52,33 @@
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- 
- PKG_CHECK_MODULES(LIBGLADE, [dnl
--  libxml-2.0 >= required_libxml_version dnl
-   atk >= required_atk_version dnl
-   gtk+-2.0 >= required_gtk_version dnl
-   glib-2.0 >= required_glib_version])
- 
-+disable_xml2=no
-+AC_ARG_WITH([libxml2],
-+  AC_HELP_STRING([--without-libxml2], [Don't use libxml2, use Glib's GMarkupParser instead]),
-+  [disable_xml2=yes],
-+  [disable_xml2=no])
-+
-+AC_MSG_CHECKING([if we are using libxml2])
-+if test "x$disable_xml2" == "xno"; then
-+  AC_MSG_RESULT(yes)
-+  PKG_CHECK_MODULES(XML2, libxml-2.0 >= 2.4.10)
-+  PKGCFG_REQUIRE_LIBXML2="libxml-2.0"
-+  LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS $XML2_CFLAGS"
-+  LIBGLADE_LIBS="$LIBGLADE_LIBS $XML2_LIBS"
-+else
-+  LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS -DUSE_GMARKUP_PARSER"
-+  PKGCFG_REQUIRE_LIBXML2=""
-+  AC_MSG_RESULT(no)
-+fi
-+
-+AC_SUBST(XML2_LIBS)
-+AC_SUBST(XML2_CFLAGS)
-+AC_SUBST(PKGCFG_REQUIRE_LIBXML2)
-+
- AC_MSG_CHECKING([for native Win32])
- case "$host" in
-   *-*-mingw*)
-@@ -116,6 +138,21 @@
-   fi
- fi
- 
-+if test "x$disable_xml2" == "xyes"; then
-+  echo "*****************************************************"
-+  echo "  You chose to disable libxml2 and use Glib's"
-+  echo "  GMarkupParser instead." 
-+  echo  
-+  echo "  Please bear in mind that using libglade with"
-+  echo "  GMarkupParser is an experimental feature only."
-+  echo
-+  echo "  Please post problems or success stories to"
-+  echo "  the glade-devel mailing list. Thank you."
-+  echo "*****************************************************"
-+fi
-+
-+
-+
- GTK_DOC_CHECK(1.0)
- 
- dnl gettext stuff ... there is no message catalog for libglade -- libglade
-diff -urN libglade-2.4.2.orig/glade/glade-parser.c libglade-2.4.2/glade/glade-parser.c
---- libglade-2.4.2.orig/glade/glade-parser.c	2004-11-11 11:56:13.000000000 +0100
-+++ libglade-2.4.2/glade/glade-parser.c	2005-03-22 01:20:00.000000000 +0100
-@@ -34,7 +34,15 @@
- #  define dgettext(Domain, String) (String)
- #endif
- 
--#include <libxml/parser.h>
-+#ifdef USE_GMARKUP_PARSER
-+#  include <zlib.h>
-+#else
-+#  include <libxml/parser.h>
-+#endif
-+
-+#ifdef USE_GMARKUP_PARSER
-+#  define xmlChar gchar
-+#endif
- 
- #include "glade-parser.h"
- #include "glade-private.h"
-@@ -508,7 +516,9 @@
-     case PARSER_START:
- 	if (!strcmp(name, "glade-interface")) {
- 	    state->state = PARSER_GLADE_INTERFACE;
--#if 0
-+
-+#ifndef USE_GMARKUP_PARSER
-+ #if 0
- 	    /* check for correct XML namespace */
- 	    for (i = 0; attrs && attrs[i] != NULL; i += 2) {
- 		if (!strcmp(attrs[i], "xmlns") &&
-@@ -518,7 +528,9 @@
- 		    g_warning("unknown attribute `%s' for <glade-interface>",
- 			      attrs[i]);
- 	    }
-+ #endif
- #endif
-+
- 	} else {
- 	    g_warning("Expected <glade-interface>.  Got <%s>.", name);
- 	    state->prev_state = state->state;
-@@ -1063,12 +1075,18 @@
-     }
- }
- 
-+#ifndef USE_GMARKUP_PARSER
-+
- static xmlEntityPtr
- glade_parser_get_entity(GladeParseState *state, const xmlChar *name)
- {
-     return xmlGetPredefinedEntity(name);
- }
- 
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- glade_parser_warning(GladeParseState *state, const char *msg, ...)
- {
-@@ -1079,6 +1097,10 @@
-     va_end(args);
- }
- 
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- glade_parser_error(GladeParseState *state, const char *msg, ...)
- {
-@@ -1089,6 +1111,10 @@
-     va_end(args);
- }
- 
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- glade_parser_fatal_error(GladeParseState *state, const char *msg, ...)
- {
-@@ -1099,6 +1125,10 @@
-     va_end(args);
- }
- 
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static xmlSAXHandler glade_parser = {
-     (internalSubsetSAXFunc)NULL,                       /* internalSubset */
-     (isStandaloneSAXFunc)NULL,                         /* isStandalone */
-@@ -1126,6 +1156,82 @@
-     (fatalErrorSAXFunc)glade_parser_fatal_error,       /* fatalError */
- };
- 
-+#else /* USE_GMARKUP_PARSER */
-+
-+static void
-+glade_parser_start_element_wrapper(GMarkupParseContext *context,
-+                                   const gchar         *name, 
-+                                   const gchar        **attr_names,
-+                                   const gchar        **attr_values,
-+                                   gpointer             state,
-+                                   GError             **error)
-+{
-+    guint i = 0;
-+
-+    /* Pack attribute names/values from two separate
-+     *  arrays (GMarkupParser style) into one single
-+     *  array (libxml SAXParser style). This is not
-+     *  very efficient, but we do it to make the
-+     *  GMarkupParser code as little invasive as
-+     *  possible. */
-+
-+    while (attr_names[i] != NULL) {
-+      ++i;
-+    }
-+
-+    if (1)
-+    {
-+        const gchar *attr[(i*2)+1];
-+        guint j, k;
-+       
-+        for (j=0, k=0;  k < i;  j += 2)
-+        {
-+            attr[j] = attr_names[k];
-+            attr[j+1] = attr_values[k];
-+            ++k;
-+        }
-+        attr[i*2] = NULL;
-+
-+        glade_parser_start_element((GladeParseState*)state, name, attr);
-+    }
-+}
-+
-+static void
-+glade_parser_end_element_wrapper(GMarkupParseContext *context, 
-+                                 const gchar         *name,
-+                                 gpointer             state,
-+                                 GError             **err)
-+{
-+    glade_parser_end_element((GladeParseState*)state, name);
-+}
-+
-+static void
-+glade_parser_characters_wrapper(GMarkupParseContext *context, 
-+                                const gchar         *chars, 
-+                                gsize                len,
-+                                gpointer             state,
-+                                GError             **err)
-+{
-+    glade_parser_characters((GladeParseState*)state, chars, (int) len);
-+}
-+
-+static void
-+glade_parser_error(GMarkupParseContext *context, GError *err, gpointer data)
-+{
-+    g_log("Glade-Parser", G_LOG_LEVEL_CRITICAL, "%s", err->message);
-+}
-+
-+static const GMarkupParser   glade_parser = {
-+    glade_parser_start_element_wrapper,  /* element open   */
-+    glade_parser_end_element_wrapper,    /* element close  */
-+    glade_parser_characters_wrapper,     /* text content   */
-+    NULL,                                /* passthrough    */
-+    glade_parser_error,                  /* parse error    */
-+};
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
-+
- static void
- widget_info_free(GladeWidgetInfo *info)
- {
-@@ -1191,6 +1297,9 @@
-  *
-  * Returns: the GladeInterface structure for the XML file.
-  */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- GladeInterface *
- glade_parser_parse_file(const gchar *file, const gchar *domain)
- {
-@@ -1222,6 +1331,31 @@
-     return state.interface;
- }
- 
-+#else /* defined(USE_GMARKUP_PARSER) */
-+
-+GladeInterface *
-+glade_parser_parse_file(const gchar *file, const gchar *domain)
-+{
-+    GladeInterface  *interface;
-+    GError          *err     = NULL;
-+    gchar           *content = NULL;
-+    gsize            clen;
-+
-+    if (!g_file_get_contents(file, &content, &clen, &err)) {
-+        g_warning("could not load glade file: %s", err->message);
-+        g_error_free(err);
-+        return NULL;
-+    }
-+
-+    interface = glade_parser_parse_buffer(content, (gint) clen, domain);
-+
-+    g_free(content);
-+
-+    return interface;
-+}
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
- /**
-  * glade_parser_parse_buffer
-  * @buffer: a buffer in memory containing XML data.
-@@ -1237,6 +1371,9 @@
-  *
-  * Returns: the GladeInterface structure for the XML buffer.
-  */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- GladeInterface *
- glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain)
- {
-@@ -1263,6 +1400,161 @@
-     return state.interface;
- }
- 
-+#else /* defined(USE_GMARKUP_PARSER) */
-+
-+
-+static GladeInterface *
-+glade_parser_parse_buffer_internal(const gchar *buffer, gint len, const gchar *domain)
-+{
-+	GMarkupParseContext  *context;
-+	GladeParseState       state = { 0 };
-+	GError               *err   = NULL;
-+
-+	state.interface = NULL;
-+	if (domain)
-+		state.domain = domain;
-+	else
-+		state.domain = textdomain(NULL);
-+
-+	/* FIXME: This strstr() is not safe, as it ignores the len
-+	 *        argument and assumes the buffer is NUL-terminated */
-+	if (strstr(buffer, "<?xml") == NULL) {
-+		g_warning("No XML header found in document!");
-+		return NULL;
-+	}
-+
-+	context = g_markup_parse_context_new(&glade_parser, (GMarkupParseFlags) 0, &state, NULL);
-+
-+	glade_parser_start_document(&state);
-+
-+	if (!g_markup_parse_context_parse(context, buffer, (gssize) len, &err)) {
-+		g_warning("document not well formed: %s", err->message);
-+		g_error_free(err);
-+		if (state.interface)
-+			glade_interface_destroy (state.interface);
-+		return NULL;
-+	}
-+
-+	glade_parser_end_document(&state);
-+
-+	if (state.state != PARSER_FINISH) {
-+		g_warning("did not finish in PARSER_FINISH state!");
-+
-+		if (state.interface)
-+			glade_interface_destroy(state.interface);
-+
-+		return NULL;
-+	}
-+
-+	return state.interface;
-+}
-+
-+struct _gzip_rfc1952_hdr
-+{
-+	guint8	id1, id2, cm, flags;
-+	guint32 mtime;
-+	guint8  xflags;
-+	guint8  os;
-+};
-+
-+static GladeInterface *
-+glade_parser_parse_gzipped_buffer(const gchar *buffer, gint len, const gchar *domain)
-+{
-+	struct _gzip_rfc1952_hdr *hdr = (struct _gzip_rfc1952_hdr*)buffer;
-+	struct z_stream_s         zstream;
-+	GladeInterface           *interface;
-+	const guint8             *cbuf;              /* start of compressed data */
-+	guint8                   *decompress_buf;
-+	gulong                    decompress_len = 0;
-+	gint                      ret;
-+
-+	g_assert(hdr != NULL && hdr->id1 == 0x1f && hdr->id2 == 0x8b);
-+
-+	if (hdr->cm != Z_DEFLATED) {
-+		g_warning("Unknown decompression method %u", (guint) hdr->cm);
-+		return NULL;
-+	}
-+
-+	/* Uncompressed size (modulo 2^32) is last
-+	 *  4 bytes of gzipped file, and little endian.
-+	 *  See RFC 1952 */
-+	decompress_len = GUINT32_FROM_LE(*((guint32*)(((guint8*)buffer) + len - 4)));
-+
-+	/* paranoid mode: glade files > 5MB are unlikely */
-+	g_return_val_if_fail(decompress_len < 5*1024*1024, NULL);
-+
-+	decompress_buf = g_malloc0(decompress_len + 1); /* +1 for NUL-terminator */
-+
-+	/* find start of compressed data, skipping header stuff */
-+	cbuf = (guint8*)buffer + 10;
-+	if (hdr->flags & 0x04) {
-+		guint16 xlen = GUINT16_FROM_LE(*((guint16*)cbuf));
-+		cbuf += xlen + 2;
-+	}
-+	if (hdr->flags & 0x08) {
-+		guint16 onamelen = strlen(cbuf);
-+		cbuf += onamelen + 1;
-+	}
-+	if (hdr->flags & 0x10) {
-+		guint16 commentlen = strlen(cbuf);
-+		cbuf += commentlen + 1;
-+	}
-+	if (hdr->flags & 0x02)
-+	{
-+		cbuf += 2; /* skip header CRC16 */
-+	}
-+
-+	zstream.next_in  = (void*)cbuf;
-+	zstream.avail_in = (uLongf) len - ((void*)cbuf-(void*)buffer) - 4 - 4 +1; 
-+	zstream.next_out = decompress_buf;
-+	zstream.avail_out= decompress_len;
-+	zstream.zalloc   = Z_NULL;
-+	zstream.zfree    = Z_NULL;
-+	zstream.opaque   = Z_NULL;
-+
-+	ret = inflateInit2(&zstream, -MAX_WBITS);
-+
-+	if (ret != Z_OK) {
-+		g_warning("inflateInit2() failed. zlib error code: %d", ret);
-+		g_free(decompress_buf);
-+		return NULL;
-+	}
-+
-+	ret = inflate(&zstream, Z_FINISH);
-+
-+	if (ret != Z_STREAM_END) {
-+		g_warning("zlib decompression failed. zlib error code: %d", ret);
-+		g_free(decompress_buf);
-+		return NULL;
-+	}
-+
-+	interface = glade_parser_parse_buffer_internal(decompress_buf, decompress_len, domain);
-+
-+	g_free(decompress_buf);
-+
-+	return interface;
-+}
-+
-+GladeInterface *
-+glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain)
-+{
-+	g_return_val_if_fail(buffer != NULL, NULL);
-+	g_return_val_if_fail(len > 0, NULL);
-+
-+	/* Check if buffer is gzipped */
-+	if (buffer[0] == 0x1f && buffer[1] == (gchar)0x8b) {
-+		return glade_parser_parse_gzipped_buffer(buffer, len, domain);
-+	}
-+
-+	/* Buffer is cleartext. */
-+	return glade_parser_parse_buffer_internal(buffer, len, domain);
-+}
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- dump_widget(xmlNode *parent, GladeWidgetInfo *info, gint indent)
- {
-@@ -1382,6 +1674,8 @@
- 	xmlNodeAddContent(widget, "  ");
- }
- 
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
- /**
-  * glade_interface_dump
-  * @interface: the GladeInterface
-@@ -1390,6 +1684,9 @@
-  * This function dumps the contents of a GladeInterface into a file as
-  * XML.  It is intended mainly as a debugging tool.
-  */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- void
- glade_interface_dump(GladeInterface *interface, const gchar *filename)
- {
-@@ -1428,6 +1725,17 @@
-     xmlFreeDoc(doc);
- }
- 
-+#else /* defined(USE_GMARKUP_PARSER) */
-+
-+void
-+glade_interface_dump(GladeInterface *interface, const gchar *filename)
-+{
-+    g_warning("glade_interface_dump() is only available with libxml2.");
-+}
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
-+
- #if 0
- int
- main(int argc, char **argv) {
-diff -urN libglade-2.4.2.orig/libglade-2.0.pc.in libglade-2.4.2/libglade-2.0.pc.in
---- libglade-2.4.2.orig/libglade-2.0.pc.in	2001-12-12 15:28:23.000000000 +0100
-+++ libglade-2.4.2/libglade-2.0.pc.in	2005-03-22 01:20:00.000000000 +0100
-@@ -11,7 +11,7 @@
- Name: Libglade
- Description: a library for dynamically loading GLADE interface files
- Version: @VERSION@
--Requires: gtk+-2.0 libxml-2.0
-+Requires: gtk+-2.0 @PKGCFG_REQUIRE_LIBXML2@
- Libs: -L${libdir} -lglade-2.0
- Cflags: -I${includedir}/libglade-2.0
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch
deleted file mode 100644
index b5b2ec4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Using @PYTHON@ for this path would result in the build system python being 
-referred to. Instead we want to locate python from the environment.
-
-Upstream-Status: Inappropriate [configuration]
-
-diff -ruN libglade-2.6.4-orig//libglade-convert.in libglade-2.6.4/libglade-convert.in
---- libglade-2.6.4-orig//libglade-convert.in	2011-09-22 10:18:28.991164003 +0800
-+++ libglade-2.6.4/libglade-convert.in	2011-09-22 10:18:55.431164003 +0800
-@@ -1,4 +1,4 @@
--#!@PYTHON@
-+#!/usr/bin/env python
- # -*- mode: python -*-
- 
- # yes, this requires python 2.x and an XML parser module (eg. PyExpat)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade_2.6.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade_2.6.4.bb
deleted file mode 100644
index fdb9f8a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libglade/libglade_2.6.4.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Runtime support for the GTK+ interface builder"
-HOMEPAGE = "http://library.gnome.org/devel/libglade/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
-                    file://glade/glade.h;endline=22;md5=a04f461c964ba4b57a172d1fbcd8f8fc \
-                    file://glade/glade-gtk.c;endline=22;md5=766f993433e2642fec87936d319990ff"
-
-SECTION = "libs"
-PR = "r5"
-DEPENDS = "zlib gdk-pixbuf gtk+"
-
-inherit autotools pkgconfig gnomebase gtk-doc distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-GNOME_COMPRESS_TYPE="bz2"
-
-SRC_URI += " \
-    file://glade-cruft.patch \
-    file://no-xml2.patch \
-    file://python_environment.patch \
-    file://0001-configure.in-remove-deprecated-GNOME_COMMON_INIT.patch \
-"
-
-SRC_URI[archive.md5sum] = "d1776b40f4e166b5e9c107f1c8fe4139"
-SRC_URI[archive.sha256sum] = "64361e7647839d36ed8336d992fd210d3e8139882269bed47dc4674980165dec"
-
-EXTRA_OECONF += "--without-libxml2 --disable-gtk-doc"
-
-CFLAGS += "-lz -lgmodule-2.0"
-
-PACKAGES += " ${PN}-data"
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-data = "${datadir}/xml/libglade/glade-2.0.dtd"
-FILES_${PN}-dev += "${bindir}/libglade-convert"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch
deleted file mode 100644
index 2b5eda0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f39bcd5af79aa3efe2cecb2212793c5b596890a8 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 18 Feb 2016 17:40:45 +0200
-Subject: [PATCH] Makefile.am: use $(LIBTOOL) instead of hardcoded libtool name
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- unique/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/unique/Makefile.am b/unique/Makefile.am
-index 6475a87..734f431 100644
---- a/unique/Makefile.am
-+++ b/unique/Makefile.am
-@@ -114,7 +114,7 @@ Unique-1.0.gir: $(INTROSPECTION_SCANNER) libunique-1.0.la
- 		--include=GObject-2.0 \
- 		--include=Gtk-2.0 \
- 		--library=libunique-1.0.la \
--		--libtool="$(top_builddir)/libtool" \
-+		--libtool="$(LIBTOOL)" \
- 		--pkg gobject-2.0 \
- 		--pkg gtk+-2.0 \
- 		--output $@ \
--- 
-2.7.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-test-unique-Add-format-qualifier-s-for-string.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-test-unique-Add-format-qualifier-s-for-string.patch
deleted file mode 100644
index 7f9fdf3..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-test-unique-Add-format-qualifier-s-for-string.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 37632aca00d48c53e91f08bc7435c721ba81b2cd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 30 Mar 2017 14:32:55 -0700
-Subject: [PATCH] test-unique: Add format qualifier %s for string
-
-Fixes potential security issues that compiler flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/test-unique.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/test-unique.c b/tests/test-unique.c
-index b7cde45..82ee81b 100644
---- a/tests/test-unique.c
-+++ b/tests/test-unique.c
-@@ -82,10 +82,10 @@ app_message_cb (UniqueApp         *app,
-                                    GTK_DIALOG_DESTROY_WITH_PARENT,
-                                    GTK_MESSAGE_INFO,
-                                    GTK_BUTTONS_CLOSE,
--                                   title);
-+                                   "%s",title);
-   if (message)
-     gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
--                                              message);
-+                                              "%s",message);
- 
-   gtk_window_set_urgency_hint (GTK_WINDOW (dialog), TRUE);
- 
--- 
-2.12.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/build.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/build.patch
deleted file mode 100644
index 46a5c62..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/build.patch
+++ /dev/null
@@ -1,421 +0,0 @@
-Upstream-Status: Backport [http://git.gnome.org/browse/unique/commit/?h=unique-1.1&id=f75ca2d7aad7d27686acca6090c1c569a79d7e63]
-Signed-off-By: Ross Burton <ross.burton@intel.com>
-
-From f75ca2d7aad7d27686acca6090c1c569a79d7e63 Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Sat, 08 May 2010 11:17:21 +0000
-Subject: build: Update the build environment
-
-Require autoconf 2.63, automake 1.11 and libtool 2.2.6 to remove Shave.
-
-Also bump up the requirement for gobject-introspection to 0.6.7.
----
-diff --git a/build/autotools/Makefile.am b/build/autotools/Makefile.am
-index 5f35b85..b78428f 100644
---- a/build/autotools/Makefile.am
-+++ b/build/autotools/Makefile.am
-@@ -1,7 +1,4 @@
- EXTRA_DIST = \
--	shave-libtool.in 	\
--	shave.in 		\
--	shave.m4 		\
- 	as-compiler-flag.m4	\
- 	introspection.m4	\
- 	Makefile.am.enums	\
-diff --git a/build/autotools/Makefile.am.silent b/build/autotools/Makefile.am.silent
-index 249f6af..8576846 100644
---- a/build/autotools/Makefile.am.silent
-+++ b/build/autotools/Makefile.am.silent
-@@ -1,10 +1,5 @@
- # custom rules for quiet builds
- 
--if USE_SHAVE
--QUIET_GEN = $(Q:@=@echo '  GEN   '$@;)
--QUIET_LN  = $(Q:@=@echo '  LN    '$@;)
--QUIET_RM  = $(Q:@=@echo '  RM    '$@;)
--else
- QUIET_GEN = $(AM_V_GEN)
- 
- QUIET_LN   = $(QUIET_LN_$(V))
-@@ -14,4 +9,3 @@ QUIET_LN_0 = @echo '  LN     '$@;
- QUIET_RM   = $(QUIET_RM_$(V))
- QUIET_RM_  = $(QUIET_RM_$(AM_DEFAULT_VERBOSITY))
- QUIET_RM_0 = @echo '  RM     '$@;
--endif # USE_SHAVE
-diff --git a/build/autotools/introspection.m4 b/build/autotools/introspection.m4
-index f9ce49c..589721c 100644
---- a/build/autotools/introspection.m4
-+++ b/build/autotools/introspection.m4
-@@ -59,12 +59,18 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
-        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-        INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
-        INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
-+       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
-+       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-+       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
-     fi
-     AC_SUBST(INTROSPECTION_SCANNER)
-     AC_SUBST(INTROSPECTION_COMPILER)
-     AC_SUBST(INTROSPECTION_GENERATE)
-     AC_SUBST(INTROSPECTION_GIRDIR)
-     AC_SUBST(INTROSPECTION_TYPELIBDIR)
-+    AC_SUBST(INTROSPECTION_CFLAGS)
-+    AC_SUBST(INTROSPECTION_LIBS)
-+    AC_SUBST(INTROSPECTION_MAKEFILE)
- 
-     AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
- ])
-diff --git a/build/autotools/shave-libtool.in b/build/autotools/shave-libtool.in
-deleted file mode 100644
-index 1f3a720..0000000
---- a/build/autotools/shave-libtool.in
-+++ b/dev/null
-@@ -1,69 +0,0 @@
--#!/bin/sh
--
--# we need sed
--SED=@SED@
--if test -z "$SED" ; then
--SED=sed
--fi
--
--lt_unmangle ()
--{
--   last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
--}
--
--# the real libtool to use
--LIBTOOL="$1"
--shift
--
--# if 1, don't print anything, the underlaying wrapper will do it
--pass_though=0
--
--# scan the arguments, keep the right ones for libtool, and discover the mode
--preserved_args=
--while test "$#" -gt 0; do
--    opt="$1"
--    shift
--
--    case $opt in
--    --mode=*)
--        mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
--        preserved_args="$preserved_args $opt"
--        ;;
--    -o)
--        lt_output="$1"
--        preserved_args="$preserved_args $opt"
--	;;
--    *)
--        preserved_args="$preserved_args $opt"
--        ;;
--      esac
--done
--
--case "$mode" in
--compile)
--    # shave will be called and print the actual CC/CXX/LINK line
--    preserved_args="$preserved_args --shave-mode=$mode"
--    pass_though=1
--    ;;
--link)
--    preserved_args="$preserved_args --shave-mode=$mode"
--    Q="  LINK  "
--    ;;
--*)
--    # let's u
--    # echo "*** libtool: Unimplemented mode: $mode, fill a bug report"
--    ;;
--esac
--
--lt_unmangle "$lt_output"
--output=$last_result
--
--if test -z $V; then
--    if test $pass_though -eq 0; then
--        echo "$Q$output"
--    fi
--    $LIBTOOL --silent $preserved_args
--else
--    echo $LIBTOOL $preserved_args
--    $LIBTOOL $preserved_args
--fi
-diff --git a/build/autotools/shave.in b/build/autotools/shave.in
-deleted file mode 100644
-index 5c16f27..0000000
---- a/build/autotools/shave.in
-+++ b/dev/null
-@@ -1,79 +0,0 @@
--#!/bin/sh
--
--# we need sed
--SED=@SED@
--if test -z "$SED" ; then
--SED=sed
--fi
--
--lt_unmangle ()
--{
--   last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
--}
--
--# the tool to wrap (cc, cxx, ar, ranlib, ..)
--tool="$1"
--shift
--
--# the reel tool (to call)
--REEL_TOOL="$1"
--shift
--
--pass_through=0
--preserved_args=
--while test "$#" -gt 0; do
--    opt="$1"
--    shift
--
--    case $opt in
--    --shave-mode=*)
--        mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
--	;;
--    -o)
--        lt_output="$1"
--        preserved_args="$preserved_args $opt"
--	;;
--    *)
--        preserved_args="$preserved_args $opt"
--        ;;
--      esac
--done
--
--# mode=link is handled in the libtool wrapper
--case "$mode,$tool" in
--link,*)
--    pass_through=1
--    ;;
--*,cxx)
--    Q="  CXX   "
--    ;;
--*,cc)
--    Q="  CC    "
--    ;;
--*,fc)
--    Q="  FC    "
--    ;;
--*,f77)
--    Q="  F77   "
--    ;;
--*,objc)
--    Q="  OBJC   "
--    ;;
--*,*)
--    # should not happen
--    Q="  CC    "
--    ;;
--esac
--
--lt_unmangle "$lt_output"
--output=$last_result
--
--if test -z $V; then
--    if test $pass_through -eq 0; then
--        echo "$Q$output"
--    fi
--    $REEL_TOOL $preserved_args
--else
--    echo $REEL_TOOL $preserved_args
--    $REEL_TOOL $preserved_args
--fi
-diff --git a/build/autotools/shave.m4 b/build/autotools/shave.m4
-deleted file mode 100644
-index 0a3509e..0000000
---- a/build/autotools/shave.m4
-+++ b/dev/null
-@@ -1,77 +0,0 @@
--dnl Make automake/libtool output more friendly to humans
--dnl  Damien Lespiau <damien.lespiau@gmail.com>
--dnl
--dnl SHAVE_INIT([shavedir],[default_mode])
--dnl
--dnl shavedir: the directory where the shave scripts are, it defaults to
--dnl           $(top_builddir)
--dnl default_mode: (enable|disable) default shave mode.  This parameter
--dnl               controls shave's behaviour when no option has been
--dnl               given to configure.  It defaults to disable.
--dnl
--dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just
--dnl   before AC_CONFIG_FILE/AC_OUTPUT is perfect.  This macro rewrites CC and
--dnl   LIBTOOL, you don't want the configure tests to have these variables
--dnl   re-defined.
--dnl * This macro requires GNU make's -s option.
--
--AC_DEFUN([_SHAVE_ARG_ENABLE],
--[
--  AC_ARG_ENABLE([shave],
--    AS_HELP_STRING(
--      [--enable-shave],
--      [use shave to make the build pretty [[default=$1]]]),,
--      [enable_shave=$1]
--    )
--])
--
--AC_DEFUN([SHAVE_INIT],
--[
--  dnl you can tweak the default value of enable_shave
--  m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)])
--
--  if test x"$enable_shave" = xyes; then
--    dnl where can we find the shave scripts?
--    m4_if([$1],,
--      [shavedir="$ac_pwd"],
--      [shavedir="$ac_pwd/$1"])
--    AC_SUBST(shavedir)
--
--    dnl make is now quiet
--    AC_SUBST([MAKEFLAGS], [-s])
--    AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`'])
--
--    dnl we need sed
--    AC_CHECK_PROG(SED,sed,sed,false)
--
--    dnl substitute libtool
--    SHAVE_SAVED_LIBTOOL=$LIBTOOL
--    LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'"
--    AC_SUBST(LIBTOOL)
--
--    dnl substitute cc/cxx
--    SHAVE_SAVED_CC=$CC
--    SHAVE_SAVED_CXX=$CXX
--    SHAVE_SAVED_FC=$FC
--    SHAVE_SAVED_F77=$F77
--    SHAVE_SAVED_OBJC=$OBJC
--    CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}"
--    CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}"
--    FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}"
--    F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}"
--    OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}"
--    AC_SUBST(CC)
--    AC_SUBST(CXX)
--    AC_SUBST(FC)
--    AC_SUBST(F77)
--    AC_SUBST(OBJC)
--
--    V=@
--  else
--    V=1
--  fi
--  Q='$(V:1=)'
--  AC_SUBST(V)
--  AC_SUBST(Q)
--])
--
-diff --git a/configure.ac b/configure.ac
-index a3ed3ee..bc3163a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -14,7 +14,7 @@ m4_define([unique_api_version], [1.0])
- # This is the X.Y used in the protocol negotiation
- m4_define([unique_protocol_version], [1.0])
- 
--AC_PREREQ([2.59])
-+AC_PREREQ([2.63])
- 
- AC_INIT([unique], [unique_version],
-         [http://bugzilla.gnome.org/enter_bug.cgi?product=libunique],
-@@ -23,9 +23,21 @@ AC_INIT([unique], [unique_version],
- AC_CONFIG_SRCDIR([unique/unique.h])
- AC_CONFIG_MACRO_DIR([build/autotools])
- 
--AM_INIT_AUTOMAKE([1.10])
-+AM_INIT_AUTOMAKE([1.11 no-define -Wno-portability dist-bzip2])
- AM_CONFIG_HEADER([config.h])
- 
-+AM_SILENT_RULES([yes])
-+
-+AC_PROG_CC_C_O
-+
-+AM_PATH_GLIB_2_0
-+
-+LT_PREREQ([2.2.6])
-+LT_INIT([disable-static])
-+
-+# Honor aclocal flags
-+ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
-+
- # version symbols
- UNIQUE_MAJOR_VERSION=unique_major_version
- UNIQUE_MINOR_VERSION=unique_minor_version
-@@ -49,21 +61,6 @@ UNIQUE_LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
- AC_SUBST(UNIQUE_LT_VERSION_INFO)
- AC_SUBST(UNIQUE_LT_CURRENT_MINUS_AGE)
- 
--AC_ISC_POSIX
--AC_PROG_CC
--AC_PROG_INSTALL
--AC_PROG_MAKE_SET
--AC_C_CONST
--AC_PROG_LIBTOOL
--AC_PATH_PROG(GLIB_MKENUMS, [glib-mkenums])
--AC_PATH_PROG(GLIB_GENMARSHAL, [glib-genmarshal])
--
--AM_SANITY_CHECK
--AM_PROG_CC_STDC
--
--# Honor aclocal flags
--ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
--
- m4_define([glib_required], [2.12.0])
- m4_define([gtk_required],  [2.11.0])
- m4_define([dbus_required], [0.70])
-@@ -122,7 +119,6 @@ AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"])
- dnl Bacon backend
- dnl This is the fallback backend, so we *need* these headers and functions
- dnl even if we end up using D-Bus
--dnl D-Bus backend dependencies
- m4_define([have_bacon_default], [yes])
- AC_ARG_ENABLE([bacon],
-               [AC_HELP_STRING([--enable-bacon=@<:@yes/no@:>@],
-@@ -178,9 +174,9 @@ AC_ARG_ENABLE([maintainer-flags],
- AS_IF([test "x$enable_maintainer_flags" = "xyes" &&  test "x$GCC" = "xyes"],
-       [
-         AS_COMPILER_FLAGS([MAINTAINER_CFLAGS],
--                          ["-Werror -Wall -Wshadow -Wcast-align
--                            -Wno-uninitialized -Wempty-body -Wformat-security
--                            -Winit-self"])
-+                          ["-Wall -Wshadow -Wcast-align
-+                            -Wno-uninitialized -Wempty-body
-+                            -Wformat-security -Winit-self"])
-       ]
- )
- 
-@@ -230,27 +226,10 @@ AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
- AM_GLIB_DEFINE_LOCALEDIR(UNIQUE_LOCALEDIR)
- 
- # introspection
--GOBJECT_INTROSPECTION_CHECK([0.6.3])
-+GOBJECT_INTROSPECTION_CHECK([0.6.7])
- 
- # gtk-doc
--GTK_DOC_CHECK([1.11])
--
--# nice builds
--m4_ifdef([AM_SILENT_RULES],
--         [
--           AM_SILENT_RULES([yes])
--           use_shave=no
--         ],
--         [
--           SHAVE_INIT([build/autotools], [enable])
--           AC_CONFIG_FILES([
--                build/autotools/shave-libtool
--                build/autotools/shave
--           ])
--           use_shave=yes
--         ])
--
--AM_CONDITIONAL([USE_SHAVE], [test "x$use_shave" = "xyes"])
-+GTK_DOC_CHECK([1.13])
- 
- AC_CONFIG_FILES([
-         Makefile
---
-cgit v0.9.0.2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch
deleted file mode 100644
index d75de93..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Upstream-Status: Pending
-
-Fix Following compilation errors with gcc 4.6.0
-
-Nitin A Kamble <nitin.a.kamble@intel.com> 2011/05/10
-
-| uniquebackend-dbus.c: In function 'unique_backend_dbus_request_name':
-| uniquebackend-dbus.c:87:22: error: variable 'backend_dbus' set but not used [-Werror=unused-but-set-variable]
-| uniquebackend-dbus.c: In function 'unique_backend_dbus_send_message':
-| uniquebackend-dbus.c:189:12: error: variable 'res' set but not used [-Werror=unused-but-set-variable]
-| cc1: all warnings being treated as errors
-| 
-| make[5]: *** [libunique_dbus_la-uniquebackend-dbus.lo] Error 1
-
-Index: libunique-1.1.6/unique/dbus/uniquebackend-dbus.c
-===================================================================
---- libunique-1.1.6.orig/unique/dbus/uniquebackend-dbus.c
-+++ libunique-1.1.6/unique/dbus/uniquebackend-dbus.c
-@@ -84,7 +84,7 @@ unique_backend_dbus_register_proxy (Uniq
- static gboolean
- unique_backend_dbus_request_name (UniqueBackend *backend)
- {
--  UniqueBackendDBus *backend_dbus;
-+  UniqueBackendDBus __attribute__((__unused__)) *backend_dbus;
-   const gchar *name;
-   DBusGConnection *connection;
-   DBusGProxy *proxy;
-@@ -186,7 +186,7 @@ unique_backend_dbus_send_message (Unique
-   GValueArray *data;
-   gchar *cmd;
-   gchar *resp;
--  gboolean res;
-+  gboolean __attribute__((__unused__)) res;
-   GError *error;
-   UniqueResponse response;
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/noconst.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/noconst.patch
deleted file mode 100644
index 2cc0347..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/noconst.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-G_CONST_RETURN is deprecated in glib 2.30 so remove to to avoid
-build failures.
-
-RP 2011/10/12
-
-Upstream-Status: Pending
-
-Index: libunique-1.1.6/unique/uniqueapp.c
-===================================================================
---- libunique-1.1.6.orig/unique/uniqueapp.c	2011-10-12 01:21:25.842046488 +0100
-+++ libunique-1.1.6/unique/uniqueapp.c	2011-10-12 01:21:55.062046796 +0100
-@@ -781,7 +781,7 @@
- }
- 
- 
--G_CONST_RETURN gchar *
-+const gchar *
- unique_command_to_string (UniqueApp *app,
-                           gint       command)
- {
-@@ -863,7 +863,7 @@
-   return retval;
- }
- 
--G_CONST_RETURN gchar *
-+const gchar *
- unique_response_to_string (UniqueResponse response)
- {
-   GEnumClass *enum_class;
-Index: libunique-1.1.6/unique/uniquebackend.c
-===================================================================
---- libunique-1.1.6.orig/unique/uniquebackend.c	2011-10-12 01:21:25.742046323 +0100
-+++ libunique-1.1.6/unique/uniquebackend.c	2011-10-12 01:21:55.062046796 +0100
-@@ -111,7 +111,7 @@
-  *
-  * Return value: FIXME
-  */
--G_CONST_RETURN gchar *
-+const gchar *
- unique_backend_get_name (UniqueBackend *backend)
- {
-   g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
-@@ -154,7 +154,7 @@
-  *
-  * Return value: FIXME
-  */
--G_CONST_RETURN gchar *
-+const gchar *
- unique_backend_get_startup_id (UniqueBackend *backend)
- {
-   g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
-Index: libunique-1.1.6/unique/uniquebackend.h
-===================================================================
---- libunique-1.1.6.orig/unique/uniquebackend.h	2011-10-12 01:21:25.992046521 +0100
-+++ libunique-1.1.6/unique/uniquebackend.h	2011-10-12 01:21:56.512047875 +0100
-@@ -94,10 +94,10 @@
- 
- UniqueBackend *       unique_backend_create         (void);
- 
--G_CONST_RETURN gchar *unique_backend_get_name       (UniqueBackend     *backend);
-+const gchar *unique_backend_get_name       (UniqueBackend     *backend);
- void                  unique_backend_set_name       (UniqueBackend     *backend,
-                                                      const gchar       *name);
--G_CONST_RETURN gchar *unique_backend_get_startup_id (UniqueBackend     *backend);
-+const gchar *unique_backend_get_startup_id (UniqueBackend     *backend);
- void                  unique_backend_set_startup_id (UniqueBackend     *backend,
-                                                      const gchar       *startup_id);
- GdkScreen *           unique_backend_get_screen     (UniqueBackend     *backend);
-Index: libunique-1.1.6/unique/uniqueinternals.h
-===================================================================
---- libunique-1.1.6.orig/unique/uniqueinternals.h	2011-10-12 01:21:25.892046532 +0100
-+++ libunique-1.1.6/unique/uniqueinternals.h	2011-10-12 01:21:56.512047875 +0100
-@@ -44,11 +44,11 @@
-  * and then back into an id
-  */
- UniqueResponse        unique_response_from_string  (const gchar    *response);
--G_CONST_RETURN gchar *unique_response_to_string    (UniqueResponse  response);
-+const gchar *unique_response_to_string    (UniqueResponse  response);
- 
- gint                  unique_command_from_string   (UniqueApp      *app,
-                                                     const gchar    *command);
--G_CONST_RETURN gchar *unique_command_to_string     (UniqueApp      *app,
-+const gchar *unique_command_to_string     (UniqueApp      *app,
-                                                     gint            command);
- 
- G_END_DECLS
-Index: libunique-1.1.6/unique/uniquemessage.c
-===================================================================
---- libunique-1.1.6.orig/unique/uniquemessage.c	2011-10-12 01:21:25.942046524 +0100
-+++ libunique-1.1.6/unique/uniquemessage.c	2011-10-12 01:21:55.072046595 +0100
-@@ -185,7 +185,7 @@
-  *
-  * Since: 1.0.2
-  */
--G_CONST_RETURN guchar *
-+const guchar *
- unique_message_data_get (UniqueMessageData *message_data,
-                          gsize             *length)
- {
-@@ -525,7 +525,7 @@
-  *   owned by the #UniqueMessageData structure and should not be
-  *   modified or freed
-  */
--G_CONST_RETURN gchar *
-+const gchar *
- unique_message_data_get_startup_id (UniqueMessageData *message_data)
- {
-   g_return_val_if_fail (message_data != NULL, NULL);
-Index: libunique-1.1.6/unique/uniquemessage.h
-===================================================================
---- libunique-1.1.6.orig/unique/uniquemessage.h	2011-10-12 01:21:25.792046596 +0100
-+++ libunique-1.1.6/unique/uniquemessage.h	2011-10-12 01:21:56.512047875 +0100
-@@ -48,7 +48,7 @@
- void                   unique_message_data_set            (UniqueMessageData *message_data,
-                                                            const guchar      *data,
-                                                            gsize              length);
--G_CONST_RETURN guchar *unique_message_data_get            (UniqueMessageData *message_data,
-+const guchar *unique_message_data_get            (UniqueMessageData *message_data,
-                                                            gsize             *length);
- 
- gboolean               unique_message_data_set_text       (UniqueMessageData *message_data,
-@@ -63,7 +63,7 @@
- gchar *                unique_message_data_get_filename   (UniqueMessageData *message_data);
- 
- GdkScreen *            unique_message_data_get_screen     (UniqueMessageData *message_data);
--G_CONST_RETURN gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
-+const gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
- guint                  unique_message_data_get_workspace  (UniqueMessageData *message_data);
- 
- G_END_DECLS
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique_1.1.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique_1.1.6.bb
deleted file mode 100644
index 9133ccc..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique_1.1.6.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Library for supporting single instance GTK+ applications"
-DESCRIPTION = "Unique is a library for writing single instance GTK+ applications. If you launch a single instance application twice, the second instance will either just quit or will send a message to the running instance."
-HOMEPAGE = "https://wiki.gnome.org/Attic/LibUnique"
-BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=libunique"
-
-SRC_URI = "${GNOME_MIRROR}/libunique/1.1/libunique-${PV}.tar.bz2 \
-           file://fix_for_compile_with_gcc-4.6.0.patch \
-           file://noconst.patch \
-           file://build.patch \
-           file://0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch \
-           file://0001-test-unique-Add-format-qualifier-s-for-string.patch \
-           "
-
-SRC_URI[md5sum] = "7955769ef31f1bc4f83446dbb3625e6d"
-SRC_URI[sha256sum] = "e5c8041cef8e33c55732f06a292381cb345db946cf792a4ae18aa5c66cdd4fbb"
-
-PR = "r7"
-
-DEPENDS = "dbus-glib-native glib-2.0 gtk+"
-
-PACKAGECONFIG ??= "dbus"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-
-inherit autotools pkgconfig gobject-introspection distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc
index bfbd9c2..bd66a28 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/directfb/directfb.inc
@@ -41,16 +41,16 @@
 PACKAGECONFIG[tslib] = "--with-inputdrivers=tslib,,tslib"
 PACKAGECONFIG[linuxinput] = "--with-inputdrivers=linuxinput,,"
 PACKAGECONFIG[noinput] = "--with-inputdrivers=none,,"
+PACKAGECONFIG[mesa] = "--enable-mesa,--disable-mesa,virtual/mesa,"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,xserver-xorg,"
 
 EXTRA_OECONF = "\
   --with-gfxdrivers=none \
   --enable-freetype=yes \
   --enable-zlib \
   --disable-imlib2 \
-  --disable-mesa \
   --disable-sdl \
   --disable-vnc \
-  --disable-x11 \
   --disable-x11vdpau \
   --disable-xine-vdpau \
 "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
new file mode 100644
index 0000000..46d4dbd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
@@ -0,0 +1,26 @@
+From 80179c297abb9de2829bd02356257241dd414d70 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Mon, 18 Dec 2017 16:25:54 +0900
+Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python.
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7c66b39..1489ef6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,7 +19,7 @@ else(NOT SPHINX_EXECUTABLE-NOTFOUND)
+ 	message(STATUS "Could NOT find sphinx-build.")
+ endif(NOT SPHINX_EXECUTABLE-NOTFOUND)
+ 
+-execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
++#execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
+ string(REGEX REPLACE "\n$" "" ${PYTHON_INSTALL_DIR} "${PYTHON_INSTALL_DIR}")
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write('%s.%s' % (sys.version_info.major, sys.version_info.minor))" OUTPUT_VARIABLE PYTHON_MAJOR_DOT_MINOR_VERSION)
+ message(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}")
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch
new file mode 100644
index 0000000..75b6b8f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch
@@ -0,0 +1,25 @@
+From 15d0afcfa4868b7b072b3434bac0064617d61f99 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Tue, 19 Dec 2017 14:53:14 +0900
+Subject: [PATCH] Run python scripts using env
+
+Otherwise the build tools hardcode the python path into them.
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ bin/dnfdragora | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/dnfdragora b/bin/dnfdragora
+index b8e0550..cd80f7f 100755
+--- a/bin/dnfdragora
++++ b/bin/dnfdragora
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python3
++#!/usr/bin/env python3
+ # vim: set et ts=4 sw=4:
+ #    Copyright 2016-2017 Angelo Naselli <anaselli@linux.it>
+ #
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
new file mode 100644
index 0000000..90ce1d0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
@@ -0,0 +1,31 @@
+From 56d9b838b3475729d7ed9c6c156d72c28943c2b6 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Tue, 19 Dec 2017 11:15:29 +0900
+Subject: [PATCH] To fix error when do_package
+
+QA Issue: nativesdk-dnfdragora: Files/directories were installed but not shipped in any package:
+  /etc
+  /etc/dnfdragora
+  /etc/dnfdragora/dnfdragora.yaml
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7c66b39..a5659f7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -52,7 +52,7 @@ endif(ENABLE_COMPS)
+ set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
+ set(CMAKE_INSTALL_DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share")
+ set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
+-set(CMAKE_INSTALL_FULL_SYSCONFDIR "/etc")
++set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/../etc")
+ 
+ # Configure files
+ configure_file(${CMAKE_SOURCE_DIR}/etc/dnfdragora.yaml.in ${CMAKE_BINARY_DIR}/etc/dnfdragora.yaml @ONLY)
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
new file mode 100644
index 0000000..88bb634
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
@@ -0,0 +1,25 @@
+From 2e6a0db24be373a5b7741dc5a0d322a28389fbf0 Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+Date: Thu, 23 Nov 2017 16:35:44 +0900
+Subject: [PATCH] disable build manpages.
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7c66b39..fc32750 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -65,7 +65,6 @@ endif(GETTEXT_FOUND)
+ 
+ # Build and install the man-pages
+ if(NOT SPHINX_EXECUTABLE-NOTFOUND)
+-	add_subdirectory(man)
+ endif(NOT SPHINX_EXECUTABLE-NOTFOUND)
+ 
+ # Installing application code
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
new file mode 100644
index 0000000..9cd1efb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
@@ -0,0 +1,30 @@
+SUMMARY = "dnfdragora is a DNF frontend, based on rpmdragora from Mageia (originally rpmdrake) Perl code."
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \
+                   "
+
+SRC_URI = "git://github.com/manatools/dnfdragora.git \
+           file://0001-disable-build-manpages.patch \
+           file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
+           file://0001-To-fix-error-when-do_package.patch \
+           file://0001-Run-python-scripts-using-env.patch \
+           "
+
+PV = "1.0.1+git${SRCPV}"
+SRCREV = "4fef4ce889b8e4fa03191d414f63bfd50796152a"
+
+S = "${WORKDIR}/git"
+
+inherit cmake gettext pkgconfig python3-dir python3native distutils3-base
+
+DEPENDS += "dnf python3 "
+#DEPENDS_class-nativesdk += "nativesdk-python3"
+
+RDEPENDS_${PN}_class-target = " python3-core libyui libyui-ncurses "
+
+# manpages generation requires http://www.sphinx-doc.org/
+EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3"
+
+BBCLASSEXTEND = "nativesdk"
+
+FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
index d9f0867..481fedf 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
@@ -6,7 +6,7 @@
     file://LICENSE;md5=3f922b42ed0033fa0fd4cd3268f6429c \
 "
 
-DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash gnulib"
+DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash gnulib gettext-native"
 DEPENDS_append_class-target = " libxi"
 
 inherit autotools pkgconfig pythonnative distro_features_check gettext
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch
new file mode 100644
index 0000000..5a76474
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch
@@ -0,0 +1,69 @@
+From 60c17eb49121bf2aa485acd30750b2fc6c8eb61f Mon Sep 17 00:00:00 2001
+From: Jarmo Jaakkola <jarmo.jaakkola@vincit.fi>
+Date: Mon, 19 Jun 2017 16:41:36 +0300
+Subject: [PATCH] Fix compilation for Helix.
+
+Gnome support, including GNOME_INIT_HOOK, has been removed, but it was
+still being called.
+
+COMPAT_OLD_KEYSYMDEF is a check for a legacy system, which our system
+most definitely is not.  It is accomplished by trying to execute
+a program, which does not work when cross compiling.
+
+The fvwm(1) man page is created from Docbook XML which is set for
+a Windows code page that is not available when compiling.  Easiest is
+to just not create the man page as those are not needed on the monitor.
+
+Upstream-Status: inappropriate [OE specific]
+Signed-off-by: Jarmo Jaakkola <jarmo.jaakkola@vincit.fi>
+Signed-off-by: Riku Hämäläinen <riku.hamalainen@ge.com>
+Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
+---
+ configure.ac         | 20 ++++----------------
+ doc/fvwm/Makefile.am |  2 +-
+ 3 files changed, 7 insertions(+), 17 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 48ce264..fab7b44 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1413,23 +1413,7 @@ else
+   problem_gdkimlib=": Failed on gdk-imlib, see config.log"
+ fi
+ 
+-GNOME_INIT_HOOK
+-
+-# Unfortunately we have 2 gnome supports: WM hints and gnome libs.
+-# The $with_gnomehints below refers to the first, not GNOME_INIT_HOOK.
+-if test ! x"$enable_gnome_hints" = xno; then
+-  with_gnomehints=yes
+-  problem_gnomehints=""
+-else
+-  with_gnomehints=no
+-  problem_gnomehints=": Explicitly disabled"
+-fi
+-
+ # Define some compatibility macros needed for config.h.
+-mg_DEFINE_IF_NOT([#include <X11/keysym.h>],
+-  [defined XK_Page_Up && defined XK_Page_Down],
+-  [COMPAT_OLD_KEYSYMDEF], [$X_CFLAGS],
+-  [Old AIX systems (3.2.5) don't define some common keysyms.])
+ AH_VERBATIM([_COMPAT_OLD_KEYSYMDEF],
+ [#ifdef COMPAT_OLD_KEYSYMDEF
+ #  define XK_Page_Up   XK_Prior
+diff --git a/doc/fvwm/Makefile.am b/doc/fvwm/Makefile.am
+index cddb102..ff00149 100755
+--- a/doc/fvwm/Makefile.am
++++ b/doc/fvwm/Makefile.am
+@@ -10,7 +10,7 @@ XSL_PROFILE = $(srcdir)/../docbook-xsl/profiling/profile.xsl
+ HTML_FILES = fvwm.man.html
+ XML_FILES = @DOC_SECTIONS_XML_PATH@
+ EXTRA_DIST = @DOC_SECTIONS_XML@ $(man_MANS) sections
+-man_MANS = fvwm.1
++man_MANS =
+ 
+ if FVWM_BUILD_HTMLDOC
+ doc_DATA = $(HTML_FILES)
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch
new file mode 100644
index 0000000..756cc86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch
@@ -0,0 +1,27 @@
+From: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
+Date: Tue, 29 Auf 2017 16:08:42 +0200
+Subject: [PATCH] Avoid absolute symlinks
+
+Avoid usage of absolute symlinks, which breaks yocto builds
+since pyro.
+
+Upstream-Status: Pending
+Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
+
+diff --git a/default-config/Makefile.am b/default-config/Makefile.am
+index 5e16d095a137..5404145a742c 100644
+--- a/default-config/Makefile.am
++++ b/default-config/Makefile.am
+@@ -17,9 +17,9 @@ EXTRA_DIST  = images \
+ 
+ install-data-hook:
+ 	cp -r $(srcdir)/images $(inst_location)
+-	ln -sf $(inst_location)/FvwmScript-DateTime $(inst_location)/..
+-	ln -sf $(inst_location)/FvwmScript-ConfirmQuit $(inst_location)/..
+-	ln -sf $(inst_location)/FvwmScript-ConfirmCopyConfig $(inst_location)/..
++	ln -sf default-config/FvwmScript-DateTime $(inst_location)/..
++	ln -sf default-config/FvwmScript-ConfirmQuit $(inst_location)/..
++	ln -sf default-config/FvwmScript-ConfirmCopyConfig $(inst_location)/..
+ 
+ uninstall-hook:
+ 	rm -fr $(DESTDIR)/$(configdir)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb
new file mode 100644
index 0000000..cb851bf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb
@@ -0,0 +1,114 @@
+SUMMARY = "F Virtual Window Manager "
+HOMEPAGE = "http://www.fvwm.org/"
+SECTION = "x11/wm"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=363fbcfb59124689af72c914560eaf6e"
+
+DEPENDS = " \
+    bison-native \
+    flex-native \
+    freetype-native \
+    gettext-native \
+    libxslt-native \
+    fontconfig \
+    libice \
+    libpng \
+    librsvg \
+    libsm \
+    libxau \
+    libxcb \
+    libxcursor \
+    libxdmcp \
+    libxext \
+    libxfixes \
+    libxft \
+    libxinerama \
+    libxml2 \
+    libxrender \
+    libxt \
+    virtual/libx11 \
+    xrandr \
+    zlib \
+"
+
+PV = "2.6.7+git${SRCPV}"
+
+SRC_URI = " \
+    git://github.com/fvwmorg/fvwm.git;protocol=https \
+    file://0001-Fix-compilation-for-disabled-gnome.patch \
+    file://0002-Avoid-absolute-symlinks.patch \
+"
+
+SRCREV = "597a4e296da4f21e71a17facab297e016a3a80a8"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext update-alternatives pkgconfig pythonnative perlnative distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+ALTERNATIVE_${PN} = "x-window-manager"
+ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/fvwm"
+ALTERNATIVE_PRIORITY[x-window-manager] = "20"
+
+EXTRA_OECONF = " \
+    --disable-bidi \
+    --disable-fontconfigtest \
+    --disable-freetypetest \
+    --disable-htmldoc \
+    --disable-imlibtest \
+    --disable-mandoc \
+    --disable-nls \
+    --disable-perllib \
+    --disable-rsvg \
+    --disable-shape \
+    --disable-sm \
+    --disable-xfttest \
+    --with-imlib-exec-prefix=/nonexistent \
+    --with-imlib-prefix=/nonexistent \
+    --without-ncurses-library \
+    --without-readline-library \
+    --without-rplay-library \
+    --without-stroke-library \
+    --without-termcap-library \
+    --without-xpm-library \
+    ac_cv_func_mkstemp=no \
+    has_safety_mkstemp=yes \
+"
+
+# show the exact commands in the log file
+EXTRA_OEMAKE = " \
+    V=1 \
+"
+
+do_install_append() {
+    install -d -m 0755 ${D}/${sysconfdir}/xdg/fvwm
+    # You can install the config file here
+
+    install -d -m 0755 ${D}/${datadir}/fvwm
+    touch ${D}/${datadir}/fvwm/ConfigFvwmDefaults
+}
+
+# the only needed packages (note: locale packages are automatically generated
+# as well)
+PACKAGES = " \
+    ${PN} \
+    ${PN}-dbg \
+"
+
+# minimal set of binaries
+FILES_${PN} = " \
+    ${bindir}/fvwm \
+    ${bindir}/fvwm-root \
+    ${datadir}/fvwm/ConfigFvwmDefaults \
+"
+
+RDEPENDS_${PN} = " \
+    xuser-account \
+"
+
+# by default a lot of stuff is installed and it's not easy to control what to
+# install, so install everything, but skip the check
+INSANE_SKIP_${PN} = " \
+    installed-vs-shipped \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
index 6cc20f5..0053c0c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
@@ -5,7 +5,9 @@
 
 EXTRA_OECONF = "--disable-docs"
 
-inherit gnomebase vala gobject-introspection
+inherit distro_features_check gnomebase vala gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
index cd7e27a..943986e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
@@ -24,7 +24,9 @@
 "
 DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)}"
 
-inherit gnome gtk-doc
+inherit distro_features_check gnome gtk-doc
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://ftp.gimp.org/pub/gimp/v2.8/gimp-${PV}.tar.bz2 \
            file://0001-configure-ac-do-not-check-for-freetype-config.patch \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch
new file mode 100644
index 0000000..d69c5af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch
@@ -0,0 +1,860 @@
+From 99a9676a0193f6291d7202d7af72e24580abe565 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 16 Mar 2018 13:55:29 +0100
+Subject: [PATCH 1/2] Make GLM_ENABLE_EXPERIMENTAL a configurable option
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It seems that erroring out if GLM_ENABLE_EXPERIMENTAL is not set turns into
+packagers nightmare: There are packages around expecting glx headers. E.g
+libgltf [1] fails during configure checking for usable headers AND during
+compile. Paticularly fixing configure for those packages is time-consuming:
+The only way (correct me if I am wrong) is creating a patch adding
+
+AC_DEFINE([GLM_ENABLE_EXPERIMENTAL], [1], [glm needs this for gtx headers])
+
+By adding a configure option 'GLM_ENABLE_EXPERIMENTAL', the decision to use
+glm/glx is done at one (and the right) place.
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
+[1] https://gerrit.libreoffice.org/gitweb?p=libgltf.git
+
+Uptream-Status: Submitted [2]
+
+[2] https://github.com/g-truc/glm/pull/741
+---
+ CMakeLists.txt                      | 6 ++++++
+ glm/CMakeLists.txt                  | 2 ++
+ glm/experimental.hpp.in             | 1 +
+ glm/ext.hpp                         | 1 +
+ glm/gtx/associated_min_max.hpp      | 1 +
+ glm/gtx/bit.hpp                     | 1 +
+ glm/gtx/closest_point.hpp           | 1 +
+ glm/gtx/color_space.hpp             | 1 +
+ glm/gtx/color_space_YCoCg.hpp       | 1 +
+ glm/gtx/common.hpp                  | 1 +
+ glm/gtx/compatibility.hpp           | 1 +
+ glm/gtx/component_wise.hpp          | 1 +
+ glm/gtx/dual_quaternion.hpp         | 1 +
+ glm/gtx/euler_angles.hpp            | 1 +
+ glm/gtx/extend.hpp                  | 1 +
+ glm/gtx/extended_min_max.hpp        | 1 +
+ glm/gtx/fast_exponential.hpp        | 1 +
+ glm/gtx/fast_square_root.hpp        | 1 +
+ glm/gtx/fast_trigonometry.hpp       | 1 +
+ glm/gtx/gradient_paint.hpp          | 1 +
+ glm/gtx/handed_coordinate_space.hpp | 1 +
+ glm/gtx/hash.hpp                    | 1 +
+ glm/gtx/integer.hpp                 | 1 +
+ glm/gtx/intersect.hpp               | 1 +
+ glm/gtx/io.hpp                      | 1 +
+ glm/gtx/log_base.hpp                | 1 +
+ glm/gtx/matrix_cross_product.hpp    | 1 +
+ glm/gtx/matrix_decompose.hpp        | 1 +
+ glm/gtx/matrix_factorisation.hpp    | 1 +
+ glm/gtx/matrix_interpolation.hpp    | 1 +
+ glm/gtx/matrix_major_storage.hpp    | 1 +
+ glm/gtx/matrix_operation.hpp        | 1 +
+ glm/gtx/matrix_query.hpp            | 1 +
+ glm/gtx/matrix_transform_2d.hpp     | 1 +
+ glm/gtx/mixed_product.hpp           | 1 +
+ glm/gtx/norm.hpp                    | 1 +
+ glm/gtx/normal.hpp                  | 1 +
+ glm/gtx/normalize_dot.hpp           | 1 +
+ glm/gtx/number_precision.hpp        | 1 +
+ glm/gtx/optimum_pow.hpp             | 1 +
+ glm/gtx/orthonormalize.hpp          | 1 +
+ glm/gtx/perpendicular.hpp           | 1 +
+ glm/gtx/polar_coordinates.hpp       | 1 +
+ glm/gtx/projection.hpp              | 1 +
+ glm/gtx/quaternion.hpp              | 1 +
+ glm/gtx/range.hpp                   | 1 +
+ glm/gtx/raw_data.hpp                | 1 +
+ glm/gtx/rotate_normalized_axis.hpp  | 1 +
+ glm/gtx/rotate_vector.hpp           | 1 +
+ glm/gtx/scalar_multiplication.hpp   | 1 +
+ glm/gtx/scalar_relational.hpp       | 1 +
+ glm/gtx/spline.hpp                  | 1 +
+ glm/gtx/std_based_type.hpp          | 1 +
+ glm/gtx/string_cast.hpp             | 1 +
+ glm/gtx/texture.hpp                 | 1 +
+ glm/gtx/transform.hpp               | 1 +
+ glm/gtx/transform2.hpp              | 1 +
+ glm/gtx/type_aligned.hpp            | 1 +
+ glm/gtx/type_trait.hpp              | 1 +
+ glm/gtx/vec_swizzle.hpp             | 1 +
+ glm/gtx/vector_angle.hpp            | 1 +
+ glm/gtx/vector_query.hpp            | 1 +
+ glm/gtx/wrap.hpp                    | 1 +
+ 63 files changed, 69 insertions(+)
+ create mode 100644 glm/experimental.hpp.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e5159b0f..bd4dd654 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -82,6 +82,11 @@ option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF)
+ option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF)
+ option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF)
+ 
++option(GLM_ENABLE_EXPERIMENTAL "Enable experimental GLM_GTX" OFF)
++configure_file(glm/experimental.hpp.in experimental.hpp @ONLY)
++include_directories(${CMAKE_BINARY_DIR}/glm)
++include_directories(${CMAKE_BINARY_DIR})
++
+ if(GLM_TEST_FORCE_PURE)
+ 	add_definitions(-DGLM_FORCE_PURE)
+ 
+@@ -167,6 +172,7 @@ option(GLM_INSTALL_ENABLE "GLM install" ON)
+ set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm")
+ if (GLM_INSTALL_ENABLE)
+ 	install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
++	install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm)
+ endif()
+ 
+ write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion)
+diff --git a/glm/CMakeLists.txt b/glm/CMakeLists.txt
+index df9c9ee5..dc5db4bc 100644
+--- a/glm/CMakeLists.txt
++++ b/glm/CMakeLists.txt
+@@ -43,6 +43,8 @@ source_group("SIMD Files" FILES ${SIMD_INLINE})
+ source_group("SIMD Files" FILES ${SIMD_HEADER})
+ 
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
++# make out-of tree builds find experimental.hpp
++include_directories(${CMAKE_BINARY_DIR}/glm)
+ 
+ if(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)
+ 	if(GLM_STATIC_LIBRARY_ENABLE)
+diff --git a/glm/experimental.hpp.in b/glm/experimental.hpp.in
+new file mode 100644
+index 00000000..bfab5138
+--- /dev/null
++++ b/glm/experimental.hpp.in
+@@ -0,0 +1 @@
++#cmakedefine GLM_ENABLE_EXPERIMENTAL
+diff --git a/glm/ext.hpp b/glm/ext.hpp
+index d085bfd5..a2948447 100644
+--- a/glm/ext.hpp
++++ b/glm/ext.hpp
+@@ -39,6 +39,7 @@
+ #	include "./gtc/type_aligned.hpp"
+ #endif
+ 
++#include "experimental.hpp"
+ #ifdef GLM_ENABLE_EXPERIMENTAL
+ #include "./gtx/associated_min_max.hpp"
+ #include "./gtx/bit.hpp"
+diff --git a/glm/gtx/associated_min_max.hpp b/glm/gtx/associated_min_max.hpp
+index 0c9935f3..d00c2bc4 100644
+--- a/glm/gtx/associated_min_max.hpp
++++ b/glm/gtx/associated_min_max.hpp
+@@ -16,6 +16,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp
+index 1447fa00..31957083 100644
+--- a/glm/gtx/bit.hpp
++++ b/glm/gtx/bit.hpp
+@@ -15,6 +15,7 @@
+ // Dependencies
+ #include "../gtc/bitfield.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/closest_point.hpp b/glm/gtx/closest_point.hpp
+index 6859bb96..ebd9fe5a 100644
+--- a/glm/gtx/closest_point.hpp
++++ b/glm/gtx/closest_point.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/color_space.hpp b/glm/gtx/color_space.hpp
+index d1e655c3..51416819 100644
+--- a/glm/gtx/color_space.hpp
++++ b/glm/gtx/color_space.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/color_space_YCoCg.hpp b/glm/gtx/color_space_YCoCg.hpp
+index e82cbd8b..7ae71041 100644
+--- a/glm/gtx/color_space_YCoCg.hpp
++++ b/glm/gtx/color_space_YCoCg.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp
+index 8081bff7..57a68a8d 100644
+--- a/glm/gtx/common.hpp
++++ b/glm/gtx/common.hpp
+@@ -18,6 +18,7 @@
+ #include "../vec4.hpp"
+ #include "../gtc/vec1.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp
+index e5b60399..9876669c 100644
+--- a/glm/gtx/compatibility.hpp
++++ b/glm/gtx/compatibility.hpp
+@@ -16,6 +16,7 @@
+ #include "../glm.hpp"
+ #include "../gtc/quaternion.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/component_wise.hpp b/glm/gtx/component_wise.hpp
+index 39bab5d5..4fe0e4e2 100644
+--- a/glm/gtx/component_wise.hpp
++++ b/glm/gtx/component_wise.hpp
+@@ -18,6 +18,7 @@
+ #include "../detail/setup.hpp"
+ #include "../detail/qualifier.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_component_wise is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp
+index c4343e9d..d59fb459 100644
+--- a/glm/gtx/dual_quaternion.hpp
++++ b/glm/gtx/dual_quaternion.hpp
+@@ -20,6 +20,7 @@
+ #include "../gtc/constants.hpp"
+ #include "../gtc/quaternion.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_dual_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp
+index e66e9281..ad5988c1 100644
+--- a/glm/gtx/euler_angles.hpp
++++ b/glm/gtx/euler_angles.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/extend.hpp b/glm/gtx/extend.hpp
+index eda4e470..cde6db63 100644
+--- a/glm/gtx/extend.hpp
++++ b/glm/gtx/extend.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/extended_min_max.hpp b/glm/gtx/extended_min_max.hpp
+index 3e767b0c..0bcffcc6 100644
+--- a/glm/gtx/extended_min_max.hpp
++++ b/glm/gtx/extended_min_max.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/fast_exponential.hpp b/glm/gtx/fast_exponential.hpp
+index 2d4918e7..e6d11f0a 100644
+--- a/glm/gtx/fast_exponential.hpp
++++ b/glm/gtx/fast_exponential.hpp
+@@ -16,6 +16,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_fast_exponential is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/fast_square_root.hpp b/glm/gtx/fast_square_root.hpp
+index 1e1ec3cf..f758aeef 100644
+--- a/glm/gtx/fast_square_root.hpp
++++ b/glm/gtx/fast_square_root.hpp
+@@ -19,6 +19,7 @@
+ #include "../exponential.hpp"
+ #include "../geometric.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_fast_square_root is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/fast_trigonometry.hpp b/glm/gtx/fast_trigonometry.hpp
+index 739065fb..f1332958 100644
+--- a/glm/gtx/fast_trigonometry.hpp
++++ b/glm/gtx/fast_trigonometry.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../gtc/constants.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_fast_trigonometry is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/gradient_paint.hpp b/glm/gtx/gradient_paint.hpp
+index 2713cec0..d4703991 100644
+--- a/glm/gtx/gradient_paint.hpp
++++ b/glm/gtx/gradient_paint.hpp
+@@ -17,6 +17,7 @@
+ #include "../glm.hpp"
+ #include "../gtx/optimum_pow.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/handed_coordinate_space.hpp b/glm/gtx/handed_coordinate_space.hpp
+index 1d0d4104..3a52ddcf 100644
+--- a/glm/gtx/handed_coordinate_space.hpp
++++ b/glm/gtx/handed_coordinate_space.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/hash.hpp b/glm/gtx/hash.hpp
+index fe8a3efd..92bfc9b2 100644
+--- a/glm/gtx/hash.hpp
++++ b/glm/gtx/hash.hpp
+@@ -12,6 +12,7 @@
+ 
+ #pragma once
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_hash is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/integer.hpp b/glm/gtx/integer.hpp
+index 96637a13..5d1a16c6 100644
+--- a/glm/gtx/integer.hpp
++++ b/glm/gtx/integer.hpp
+@@ -16,6 +16,7 @@
+ #include "../glm.hpp"
+ #include "../gtc/integer.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_integer is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/intersect.hpp b/glm/gtx/intersect.hpp
+index 61e2226a..4895ba93 100644
+--- a/glm/gtx/intersect.hpp
++++ b/glm/gtx/intersect.hpp
+@@ -21,6 +21,7 @@
+ #include "../gtx/closest_point.hpp"
+ #include "../gtx/vector_query.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/io.hpp b/glm/gtx/io.hpp
+index 49a1ec11..ae39cd60 100644
+--- a/glm/gtx/io.hpp
++++ b/glm/gtx/io.hpp
+@@ -23,6 +23,7 @@
+ #include "../glm.hpp"
+ #include "../gtx/quaternion.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/log_base.hpp b/glm/gtx/log_base.hpp
+index e873e356..45b8d53c 100644
+--- a/glm/gtx/log_base.hpp
++++ b/glm/gtx/log_base.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_cross_product.hpp b/glm/gtx/matrix_cross_product.hpp
+index 967743b8..52d6c173 100644
+--- a/glm/gtx/matrix_cross_product.hpp
++++ b/glm/gtx/matrix_cross_product.hpp
+@@ -16,6 +16,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_decompose.hpp b/glm/gtx/matrix_decompose.hpp
+index b7ec0e83..6793fee2 100644
+--- a/glm/gtx/matrix_decompose.hpp
++++ b/glm/gtx/matrix_decompose.hpp
+@@ -20,6 +20,7 @@
+ #include "../gtc/quaternion.hpp"
+ #include "../gtc/matrix_transform.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_factorisation.hpp b/glm/gtx/matrix_factorisation.hpp
+index e30a7746..79c293be 100644
+--- a/glm/gtx/matrix_factorisation.hpp
++++ b/glm/gtx/matrix_factorisation.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_factorisation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_interpolation.hpp b/glm/gtx/matrix_interpolation.hpp
+index 89c4596c..799983bb 100644
+--- a/glm/gtx/matrix_interpolation.hpp
++++ b/glm/gtx/matrix_interpolation.hpp
+@@ -16,6 +16,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_interpolation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_major_storage.hpp b/glm/gtx/matrix_major_storage.hpp
+index 7f264a59..e68467cd 100644
+--- a/glm/gtx/matrix_major_storage.hpp
++++ b/glm/gtx/matrix_major_storage.hpp
+@@ -16,6 +16,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_major_storage is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_operation.hpp b/glm/gtx/matrix_operation.hpp
+index bce938bb..1e85bb5e 100644
+--- a/glm/gtx/matrix_operation.hpp
++++ b/glm/gtx/matrix_operation.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_query.hpp b/glm/gtx/matrix_query.hpp
+index 5df5f52f..eec1eec0 100644
+--- a/glm/gtx/matrix_query.hpp
++++ b/glm/gtx/matrix_query.hpp
+@@ -18,6 +18,7 @@
+ #include "../gtx/vector_query.hpp"
+ #include <limits>
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/matrix_transform_2d.hpp b/glm/gtx/matrix_transform_2d.hpp
+index 239ab9f4..3ca8d2f2 100644
+--- a/glm/gtx/matrix_transform_2d.hpp
++++ b/glm/gtx/matrix_transform_2d.hpp
+@@ -17,6 +17,7 @@
+ #include "../mat3x3.hpp"
+ #include "../vec2.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_matrix_transform_2d is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/mixed_product.hpp b/glm/gtx/mixed_product.hpp
+index 58562aab..5c7460d5 100644
+--- a/glm/gtx/mixed_product.hpp
++++ b/glm/gtx/mixed_product.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/norm.hpp b/glm/gtx/norm.hpp
+index 46474e07..3cf2c3ea 100644
+--- a/glm/gtx/norm.hpp
++++ b/glm/gtx/norm.hpp
+@@ -17,6 +17,7 @@
+ #include "../geometric.hpp"
+ #include "../gtx/quaternion.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_norm is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/normal.hpp b/glm/gtx/normal.hpp
+index 15cec9c2..7bb4c096 100644
+--- a/glm/gtx/normal.hpp
++++ b/glm/gtx/normal.hpp
+@@ -16,6 +16,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/normalize_dot.hpp b/glm/gtx/normalize_dot.hpp
+index 86048e70..c6604da4 100644
+--- a/glm/gtx/normalize_dot.hpp
++++ b/glm/gtx/normalize_dot.hpp
+@@ -16,6 +16,7 @@
+ // Dependency:
+ #include "../gtx/fast_square_root.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/number_precision.hpp b/glm/gtx/number_precision.hpp
+index 3732a56c..b48845f7 100644
+--- a/glm/gtx/number_precision.hpp
++++ b/glm/gtx/number_precision.hpp
+@@ -18,6 +18,7 @@
+ #include "../glm.hpp"
+ #include "../gtc/type_precision.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_number_precision is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/optimum_pow.hpp b/glm/gtx/optimum_pow.hpp
+index eb09f1c3..94a6bbb2 100644
+--- a/glm/gtx/optimum_pow.hpp
++++ b/glm/gtx/optimum_pow.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/orthonormalize.hpp b/glm/gtx/orthonormalize.hpp
+index 2a684ee4..4ff47e53 100644
+--- a/glm/gtx/orthonormalize.hpp
++++ b/glm/gtx/orthonormalize.hpp
+@@ -18,6 +18,7 @@
+ #include "../mat3x3.hpp"
+ #include "../geometric.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/perpendicular.hpp b/glm/gtx/perpendicular.hpp
+index 35601ac7..17251ebe 100644
+--- a/glm/gtx/perpendicular.hpp
++++ b/glm/gtx/perpendicular.hpp
+@@ -17,6 +17,7 @@
+ #include "../glm.hpp"
+ #include "../gtx/projection.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/polar_coordinates.hpp b/glm/gtx/polar_coordinates.hpp
+index b8421db4..5125215d 100644
+--- a/glm/gtx/polar_coordinates.hpp
++++ b/glm/gtx/polar_coordinates.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/projection.hpp b/glm/gtx/projection.hpp
+index 9a24abf9..4d5bf76f 100644
+--- a/glm/gtx/projection.hpp
++++ b/glm/gtx/projection.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../geometric.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/quaternion.hpp b/glm/gtx/quaternion.hpp
+index c3d99a5c..808ba0fd 100644
+--- a/glm/gtx/quaternion.hpp
++++ b/glm/gtx/quaternion.hpp
+@@ -19,6 +19,7 @@
+ #include "../gtc/quaternion.hpp"
+ #include "../gtx/norm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/range.hpp b/glm/gtx/range.hpp
+index e0ef46af..03c797c3 100644
+--- a/glm/gtx/range.hpp
++++ b/glm/gtx/range.hpp
+@@ -15,6 +15,7 @@
+ // Dependencies
+ #include "../detail/setup.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_range is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/raw_data.hpp b/glm/gtx/raw_data.hpp
+index fb34c8cb..0084fec6 100644
+--- a/glm/gtx/raw_data.hpp
++++ b/glm/gtx/raw_data.hpp
+@@ -16,6 +16,7 @@
+ #include "../detail/setup.hpp"
+ #include "../detail/type_int.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/rotate_normalized_axis.hpp b/glm/gtx/rotate_normalized_axis.hpp
+index eee90d6e..82612928 100644
+--- a/glm/gtx/rotate_normalized_axis.hpp
++++ b/glm/gtx/rotate_normalized_axis.hpp
+@@ -19,6 +19,7 @@
+ #include "../gtc/epsilon.hpp"
+ #include "../gtc/quaternion.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_rotate_normalized_axis is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/rotate_vector.hpp b/glm/gtx/rotate_vector.hpp
+index c8ace89e..e954b041 100644
+--- a/glm/gtx/rotate_vector.hpp
++++ b/glm/gtx/rotate_vector.hpp
+@@ -17,6 +17,7 @@
+ #include "../glm.hpp"
+ #include "../gtx/transform.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_rotate_vector is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp
+index b73edf67..22baa52a 100644
+--- a/glm/gtx/scalar_multiplication.hpp
++++ b/glm/gtx/scalar_multiplication.hpp
+@@ -16,6 +16,7 @@
+ 
+ #include "../detail/setup.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/scalar_relational.hpp b/glm/gtx/scalar_relational.hpp
+index 7fc8c1cc..f21f3b2b 100644
+--- a/glm/gtx/scalar_relational.hpp
++++ b/glm/gtx/scalar_relational.hpp
+@@ -15,6 +15,7 @@
+ // Dependency:
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp
+index f96d7e07..76359cfd 100644
+--- a/glm/gtx/spline.hpp
++++ b/glm/gtx/spline.hpp
+@@ -16,6 +16,7 @@
+ #include "../glm.hpp"
+ #include "../gtx/optimum_pow.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_spline is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/std_based_type.hpp b/glm/gtx/std_based_type.hpp
+index 55a2f074..92532b9e 100644
+--- a/glm/gtx/std_based_type.hpp
++++ b/glm/gtx/std_based_type.hpp
+@@ -17,6 +17,7 @@
+ #include "../glm.hpp"
+ #include <cstdlib>
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_std_based_type is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp
+index 4b4e280f..dfcd5085 100644
+--- a/glm/gtx/string_cast.hpp
++++ b/glm/gtx/string_cast.hpp
+@@ -24,6 +24,7 @@
+ #include <string>
+ #include <cmath>
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_string_cast is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/texture.hpp b/glm/gtx/texture.hpp
+index 312bf398..7af185f6 100644
+--- a/glm/gtx/texture.hpp
++++ b/glm/gtx/texture.hpp
+@@ -17,6 +17,7 @@
+ #include "../gtc/integer.hpp"
+ #include "../gtx/component_wise.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/transform.hpp b/glm/gtx/transform.hpp
+index d23b99ce..5a5d9619 100644
+--- a/glm/gtx/transform.hpp
++++ b/glm/gtx/transform.hpp
+@@ -19,6 +19,7 @@
+ #include "../glm.hpp"
+ #include "../gtc/matrix_transform.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/transform2.hpp b/glm/gtx/transform2.hpp
+index 85f5bea4..5d7c83fc 100644
+--- a/glm/gtx/transform2.hpp
++++ b/glm/gtx/transform2.hpp
+@@ -17,6 +17,7 @@
+ #include "../glm.hpp"
+ #include "../gtx/transform.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_transform2 is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/type_aligned.hpp b/glm/gtx/type_aligned.hpp
+index 6ff9f276..6ad92fad 100644
+--- a/glm/gtx/type_aligned.hpp
++++ b/glm/gtx/type_aligned.hpp
+@@ -18,6 +18,7 @@
+ // Dependency:
+ #include "../gtc/type_precision.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/type_trait.hpp b/glm/gtx/type_trait.hpp
+index 637bbd19..65519cab 100644
+--- a/glm/gtx/type_trait.hpp
++++ b/glm/gtx/type_trait.hpp
+@@ -12,6 +12,7 @@
+ 
+ #pragma once
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_type_trait is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/vec_swizzle.hpp b/glm/gtx/vec_swizzle.hpp
+index daebac38..13d523dc 100644
+--- a/glm/gtx/vec_swizzle.hpp
++++ b/glm/gtx/vec_swizzle.hpp
+@@ -14,6 +14,7 @@
+ 
+ #include "../glm.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp
+index 401a47eb..98c9d110 100644
+--- a/glm/gtx/vector_angle.hpp
++++ b/glm/gtx/vector_angle.hpp
+@@ -20,6 +20,7 @@
+ #include "../gtx/quaternion.hpp"
+ #include "../gtx/rotate_vector.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_vector_angle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp
+index 6560eaa5..5ab1ffda 100644
+--- a/glm/gtx/vector_query.hpp
++++ b/glm/gtx/vector_query.hpp
+@@ -17,6 +17,7 @@
+ #include <cfloat>
+ #include <limits>
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_vector_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+diff --git a/glm/gtx/wrap.hpp b/glm/gtx/wrap.hpp
+index 2c4b55df..5bf26a33 100644
+--- a/glm/gtx/wrap.hpp
++++ b/glm/gtx/wrap.hpp
+@@ -16,6 +16,7 @@
+ #include "../glm.hpp"
+ #include "../gtc/vec1.hpp"
+ 
++#include "../experimental.hpp"
+ #ifndef GLM_ENABLE_EXPERIMENTAL
+ #	error "GLM: GLM_GTX_wrap is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+ #endif
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch
new file mode 100644
index 0000000..1be3318
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch
@@ -0,0 +1,46 @@
+From 7fdd36d7496238e03e43fcc32839f75588116c5d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 16 Mar 2018 15:44:48 +0100
+Subject: [PATCH 2/2] glm: install headers only
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Plausibility check in root source path
+
+$ find glm -type f ! -name '*.hpp' ! -name '*.h' ! -name '*.inl'
+glm/detail/glm.cpp
+glm/detail/dummy.cpp
+glm/experimental.hpp.in
+glm/CMakeLists.txt
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
+Uptream-Status: Submitted [1]
+
+[1] https://github.com/g-truc/glm/pull/741
+---
+ CMakeLists.txt | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bd4dd654..113dd735 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -171,7 +171,12 @@ option(GLM_INSTALL_ENABLE "GLM install" ON)
+ 
+ set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm")
+ if (GLM_INSTALL_ENABLE)
+-	install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
++	install(DIRECTORY glm
++		DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
++		FILES_MATCHING
++			PATTERN "*.h"
++			PATTERN "*.hpp"
++			PATTERN "*.inl")
+ 	install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm)
+ endif()
+ 
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.8.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.8.5.bb
deleted file mode 100644
index a174f2a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.8.5.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "OpenGL Mathematics Library"
-DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \
-mathematics library for graphics software based on the OpenGL \
-Shading Language (GLSL) specifications."
-HOMEPAGE = "https://glm.g-truc.net"
-BUGTRACKER = "https://github.com/g-truc/glm/issues"
-
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://copying.txt;md5=4431606d144252143c9c3df384a74cad"
-
-SRC_URI = "git://github.com/g-truc/glm;branch=0.9.8"
-SRCREV = "6fa203eeb7fbcbb6f620501fad40359c8a456049"
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-FILES_${PN}-dev += "${libdir}/cmake"
-RDEPENDS_${PN}-dev = ""
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
new file mode 100644
index 0000000..4e2ee23
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "OpenGL Mathematics Library"
+DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \
+mathematics library for graphics software based on the OpenGL \
+Shading Language (GLSL) specifications."
+HOMEPAGE = "https://glm.g-truc.net"
+BUGTRACKER = "https://github.com/g-truc/glm/issues"
+
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://readme.md;beginline=21;endline=22;md5=3075b5727d36f29edccf97b93e72b790"
+
+SRC_URI = " \
+    git://github.com/g-truc/glm;branch=master \
+    file://0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch \
+    file://0002-glm-install-headers-only.patch \
+"
+SRCREV = "fcbedf5058ef8613dd02aac62ef00d55dcfeadd7"
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DGLM_ENABLE_EXPERIMENTAL=ON"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+RDEPENDS_${PN}-dev = ""
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb
similarity index 79%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb
index 62d283b..75ad7f4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb
@@ -11,8 +11,8 @@
            file://0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch \
 "
 
-SRC_URI[gphoto2.md5sum] = "bae369aee6881e590c5c91bdbb11a5f8"
-SRC_URI[gphoto2.sha256sum] = "a9abcd15d95f205318d17e3ac12af7ce523d2bc4943709d50b0a12c30cc5ee4d"
+SRC_URI[gphoto2.md5sum] = "6c6a21b5e879330cdd71ef92dce36399"
+SRC_URI[gphoto2.sha256sum] = "9302d02fb472d4936988382b7277ccdc4edaf7ede56c490278912ffd0627699c"
 
 inherit autotools pkgconfig gettext
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-scripts-remove-bashisms.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-scripts-remove-bashisms.patch
deleted file mode 100644
index 0e0dc87..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-scripts-remove-bashisms.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From c00e63e97d8718836ba011d9172128732eecf001 Mon Sep 17 00:00:00 2001
-From: Ismo Puustinen <ismo.puustinen@intel.com>
-Date: Tue, 24 Jan 2017 22:24:05 +0200
-Subject: [PATCH] scripts: remove bashisms.
-
-Convert bash scripts to more generic shell scripts. This removes the
-strict bash dependency and the scripts should now run with any posix
-shell. Also fix the issues reported by shellcheck while at it.
-
-Upstream-status: Accepted [https://github.com/gphoto/libgphoto2/commit/39b4395532058c0edb9a56d0ff04e48a472e4743]
-
----
- packaging/generic/check-ptp-camera          | 12 ++++++------
- packaging/linux-hotplug/gphoto-set-procperm | 14 +++++++-------
- packaging/linux-hotplug/usbcam.console      |  4 ++--
- packaging/linux-hotplug/usbcam.group        |  2 +-
- packaging/linux-hotplug/usbcam.user         |  2 +-
- packaging/linux-hotplug/usbcam.x11-app      |  4 ++--
- 6 files changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/packaging/generic/check-ptp-camera b/packaging/generic/check-ptp-camera
-index 1793fc8..bc3c6ac 100644
---- a/packaging/generic/check-ptp-camera
-+++ b/packaging/generic/check-ptp-camera
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
-@@ -20,13 +20,13 @@ INTERFACE="${1:-06/01/01}"
- 
- BASENAME=${DEVPATH##*/}
- for d in /sys/${DEVPATH}/${BASENAME}:*; do
--	[[ -d ${d} ]] || continue
--	INTERFACEID="$(< ${d}/bInterfaceClass)"
--	INTERFACEID="${INTERFACEID}/$(< ${d}/bInterfaceSubClass)"
--	INTERFACEID="${INTERFACEID}/$(< ${d}/bInterfaceProtocol)"
-+	[ -d "${d}" ] || continue
-+	INTERFACEID="$(cat "${d}"/bInterfaceClass)"
-+	INTERFACEID="${INTERFACEID}/$(cat "${d}"/bInterfaceSubClass)"
-+	INTERFACEID="${INTERFACEID}/$(cat "${d}"/bInterfaceProtocol)"
- 
- 	#echo ${d}: ${INTERFACEID}
--	if [[ ${INTERFACE} == ${INTERFACEID} ]]; then
-+	if [ "${INTERFACE}" = "${INTERFACEID}" ]; then
- 		# Found interface
- 		exit 0
- 	fi
-diff --git a/packaging/linux-hotplug/gphoto-set-procperm b/packaging/linux-hotplug/gphoto-set-procperm
-index d72ee68..977cbf5 100644
---- a/packaging/linux-hotplug/gphoto-set-procperm
-+++ b/packaging/linux-hotplug/gphoto-set-procperm
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
-@@ -18,22 +18,22 @@
- # This is taken from Fedora Core gphoto2 package.
- # http://cvs.fedora.redhat.com/viewcvs/*checkout*/devel/gphoto2/gphoto-set-procperm
- 
--console_user=`cat /var/run/console/console.lock` 
-+console_user=$(cat /var/run/console/console.lock)
- 
- if [ -z "$console_user" ] ; then
-   exit 1 
- fi
- 
--if [ -z "$HAL_PROP_USB_BUS_NUMBER" -o -z "$HAL_PROP_USB_LINUX_DEVICE_NUMBER" ] ; then
-+if [ -z "$HAL_PROP_USB_BUS_NUMBER" ] || [ -z "$HAL_PROP_USB_LINUX_DEVICE_NUMBER" ] ; then
-   exit 1 
- fi
- 
--if [ $HAL_PROP_USB_BUS_NUMBER -lt 0 -o  $HAL_PROP_USB_LINUX_DEVICE_NUMBER -lt 0 ] ; then
-+if [ "$HAL_PROP_USB_BUS_NUMBER" -lt 0 ] || [ "$HAL_PROP_USB_LINUX_DEVICE_NUMBER" -lt 0 ] ; then
-   exit 1 
- fi
- 
- 
--bus_num=`printf %.3u $HAL_PROP_USB_BUS_NUMBER`
--dev_num=`printf %.3u $HAL_PROP_USB_LINUX_DEVICE_NUMBER`
-+bus_num=$(printf %.3u "$HAL_PROP_USB_BUS_NUMBER")
-+dev_num=$(printf %.3u "$HAL_PROP_USB_LINUX_DEVICE_NUMBER")
- 
--chown $console_user /proc/bus/usb/$bus_num/$dev_num 
-+chown "$console_user" /proc/bus/usb/"$bus_num"/"$dev_num"
-diff --git a/packaging/linux-hotplug/usbcam.console b/packaging/linux-hotplug/usbcam.console
-index d72128f..7ac6dc5 100755
---- a/packaging/linux-hotplug/usbcam.console
-+++ b/packaging/linux-hotplug/usbcam.console
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
-@@ -50,7 +50,7 @@ then
-         /var/lock/console.lock
-     do
-         if [ -f "$conlock" ]; then
--	    CONSOLEOWNER=`cat $conlock`
-+            CONSOLEOWNER=$(cat $conlock)
-         fi
-     done
-     if [ -n "$CONSOLEOWNER" ]
-diff --git a/packaging/linux-hotplug/usbcam.group b/packaging/linux-hotplug/usbcam.group
-index f96c33d..8761fac 100755
---- a/packaging/linux-hotplug/usbcam.group
-+++ b/packaging/linux-hotplug/usbcam.group
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
-diff --git a/packaging/linux-hotplug/usbcam.user b/packaging/linux-hotplug/usbcam.user
-index c46f155..a3ba71a 100644
---- a/packaging/linux-hotplug/usbcam.user
-+++ b/packaging/linux-hotplug/usbcam.user
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
-diff --git a/packaging/linux-hotplug/usbcam.x11-app b/packaging/linux-hotplug/usbcam.x11-app
-index 023ae9b..618e7db 100644
---- a/packaging/linux-hotplug/usbcam.x11-app
-+++ b/packaging/linux-hotplug/usbcam.x11-app
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
-@@ -69,7 +69,7 @@ then
-     if [ "${USER}" != "root" ]
-     then
- 	# we don't want to run this as root. definitely not.
--	cd "${DIRECTORY}"
-+	cd "${DIRECTORY}" || exit 1
- 	usrhome=~${USER}
- 	"${SU}" "${USER}" -c "${ENV} DISPLAY=${DISPLAY} HOME=${usrhome} ${X11_APP}"
-     fi
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0002-correct-jpeg-memsrcdest-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0002-correct-jpeg-memsrcdest-support.patch
deleted file mode 100644
index cf2d86d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0002-correct-jpeg-memsrcdest-support.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- libgphoto2-2.5.8/camlibs/ax203/jpeg_memsrcdest.h.orig	2016-06-15 09:03:20.625774684 -0400
-+++ libgphoto2-2.5.8/camlibs/ax203/jpeg_memsrcdest.h	2016-06-15 09:03:47.049774148 -0400
-@@ -1,5 +1,7 @@
- #include <jpeglib.h>
- 
-+#if JPEG_LIB_VERSION < 80 && !defined(MEM_SRCDST_SUPPORTED)
-+
- void
- jpeg_mem_src (j_decompress_ptr cinfo, unsigned char * buffer,
- 	unsigned long bufsize);
-@@ -7,3 +9,5 @@
- void
- jpeg_mem_dest (j_compress_ptr cinfo, unsigned char ** outbuffer,
- 	unsigned long * outsize);
-+
-+#endif
---- libgphoto2-2.5.8/camlibs/ax203/jpeg_memsrcdest.c.orig	2016-06-15 09:03:58.689773913 -0400
-+++ libgphoto2-2.5.8/camlibs/ax203/jpeg_memsrcdest.c	2016-06-15 09:04:17.769773526 -0400
-@@ -26,7 +26,7 @@
- 
- /* libjpeg8 and later come with their own (API compatible) memory source
-    and dest */
--#if JPEG_LIB_VERSION < 80
-+#if JPEG_LIB_VERSION < 80  && !defined(MEM_SRCDST_SUPPORTED)
- 
- /* Expanded data source object for memory input */
- 
---- libgphoto2-2.5.8/camlibs/jl2005c/jpeg_memsrcdest.h.orig	2016-06-15 09:05:01.893772632 -0400
-+++ libgphoto2-2.5.8/camlibs/jl2005c/jpeg_memsrcdest.h	2016-06-15 09:05:17.433772318 -0400
-@@ -1,5 +1,7 @@
- #include <jpeglib.h>
- 
-+#if JPEG_LIB_VERSION < 80 && !defined(MEM_SRCDST_SUPPORTED)
-+
- void
- jpeg_mem_src (j_decompress_ptr cinfo, unsigned char * buffer,
- 	unsigned long bufsize);
-@@ -7,3 +9,5 @@
- void
- jpeg_mem_dest (j_compress_ptr cinfo, unsigned char ** outbuffer,
- 	unsigned long * outsize);
-+
-+#endif
---- libgphoto2-2.5.8/camlibs/jl2005c/jpeg_memsrcdest.c.orig	2016-06-15 09:04:42.641773022 -0400
-+++ libgphoto2-2.5.8/camlibs/jl2005c/jpeg_memsrcdest.c	2016-06-15 09:04:48.657772901 -0400
-@@ -26,7 +26,7 @@
- 
- /* libjpeg8 and later come with their own (API compatible) memory source
-    and dest */
--#if JPEG_LIB_VERSION < 80
-+#if JPEG_LIB_VERSION < 80  && !defined(MEM_SRCDST_SUPPORTED)
- 
- /* Expanded data source object for memory input */
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/avoid_using_sprintf.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/avoid_using_sprintf.patch
deleted file mode 100644
index fba4c69..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/avoid_using_sprintf.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 4adfe5a6c9db07537df302f3c17713515bf23a2e Mon Sep 17 00:00:00 2001
-From: Marcus Meissner <marcus@jet.franken.de>
-Date: Sat, 11 Jul 2015 09:38:13 +0000
-Subject: [PATCH] avoid use of sprintf to convert %% to %, duplicate the macro
-
-git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@15490 67ed7778-7388-44ab-90cf-0a291f65f57c
----
- camlibs/ptp2/chdk.c     |  8 ++---
- camlibs/ptp2/chdk_ptp.h | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 84 insertions(+), 6 deletions(-)
-
-diff --git a/camlibs/ptp2/chdk.c b/camlibs/ptp2/chdk.c
-index 5fb84ea..3b8a995 100644
---- a/camlibs/ptp2/chdk.c
-+++ b/camlibs/ptp2/chdk.c
-@@ -1119,18 +1119,14 @@ chdk_camera_capture (Camera *camera, CameraCaptureType type, CameraFilePath *pat
- 	int		ret, retint;
- 	char		*table, *s;
- 	PTPParams	*params = &camera->pl->params;
--	char		*lua;
--	const char	*luascript =	PTP_CHDK_LUA_SERIALIZE_MSGS \
-+	const char	*luascript = PTP_CHDK_LUA_SERIALIZE_MSGS_SIMPLEQUOTE \
- 				PTP_CHDK_LUA_RLIB_SHOOT	\
- 				"return rlib_shoot({info=true});\n";
- 
- 	ret =  camera_prepare_chdk_capture(camera, context);
- 	if (ret != GP_OK) return ret;
- 
--	lua = malloc(strlen(luascript)+1);
--	sprintf(lua,luascript); /* This expands the %q inside the string too ... do not optimize away. */
--	ret = chdk_generic_script_run (params, lua, &table, &retint, context);
--	free (lua);
-+	ret = chdk_generic_script_run (params, luascript, &table, &retint, context);
- 	GP_LOG_D("rlib_shoot returned table %s, retint %d\n", table, retint);
- 	s = strstr(table, "exp=");
- 	if (s) {
-diff --git a/camlibs/ptp2/chdk_ptp.h b/camlibs/ptp2/chdk_ptp.h
-index d11e0b7..65dcfd7 100644
---- a/camlibs/ptp2/chdk_ptp.h
-+++ b/camlibs/ptp2/chdk_ptp.h
-@@ -198,10 +198,92 @@ function serialize(v,opts)\n\
- 	return table.concat(r)\n\
- end\n"
- 
-+#define PTP_CHDK_LUA_SERIALIZE_SIMPLEQUOTE "\n\
-+serialize_r = function(v,opts,r,seen,depth)\n\
-+	local vt = type(v)\n\
-+	if vt == 'nil' or  vt == 'boolean' or vt == 'number' then\n\
-+		table.insert(r,tostring(v))\n\
-+		return\n\
-+	end\n\
-+	if vt == 'string' then\n\
-+		table.insert(r,string.format('%q',v))\n\
-+		return\n\
-+	end\n\
-+	if vt == 'table' then\n\
-+		if not depth then\n\
-+			depth = 1\n\
-+		end\n\
-+		if depth >= opts.maxdepth then\n\
-+			error('serialize: max depth')\n\
-+		end\n\
-+		if not seen then\n\
-+			seen={}\n\
-+		elseif seen[v] then\n\
-+			if opts.err_cycle then\n\
-+				error('serialize: cycle')\n\
-+			else\n\
-+				table.insert(r,'\"cycle:'..tostring(v)..'\"')\n\
-+				return\n\
-+			end\n\
-+		end\n\
-+		seen[v] = true;\n\
-+		table.insert(r,'{')\n\
-+		for k,v1 in pairs(v) do\n\
-+			if opts.pretty then\n\
-+				table.insert(r,'\\n'..string.rep(' ',depth))\n\
-+			end\n\
-+			if type(k) == 'string' and string.match(k,'^[_%a][%a%d_]*$') then\n\
-+				table.insert(r,k)\n\
-+			else\n\
-+				table.insert(r,'[')\n\
-+				serialize_r(k,opts,r,seen,depth+1)\n\
-+				table.insert(r,']')\n\
-+			end\n\
-+			table.insert(r,'=')\n\
-+			serialize_r(v1,opts,r,seen,depth+1)\n\
-+			table.insert(r,',')\n\
-+		end\n\
-+		if opts.pretty then\n\
-+			table.insert(r,'\\n'..string.rep(' ',depth-1))\n\
-+		end\n\
-+		table.insert(r,'}')\n\
-+		return\n\
-+	end\n\
-+	if opts.err_type then\n\
-+		error('serialize: unsupported type ' .. vt, 2)\n\
-+	else\n\
-+		table.insert(r,'\"'..tostring(v)..'\"')\n\
-+	end\n\
-+end\n\
-+serialize_defaults = {\n\
-+	maxdepth=10,\n\
-+	err_type=true,\n\
-+	err_cycle=true,\n\
-+	pretty=false,\n\
-+}\n\
-+function serialize(v,opts)\n\
-+	if opts then\n\
-+		for k,v in pairs(serialize_defaults) do\n\
-+			if not opts[k] then\n\
-+				opts[k]=v\n\
-+			end\n\
-+		end\n\
-+	else\n\
-+		opts=serialize_defaults\n\
-+	end\n\
-+	local r={}\n\
-+	serialize_r(v,opts,r)\n\
-+	return table.concat(r)\n\
-+end\n"
-+
- #define PTP_CHDK_LUA_SERIALIZE_MSGS \
- PTP_CHDK_LUA_SERIALIZE\
- "usb_msg_table_to_string=serialize\n"
- 
-+#define PTP_CHDK_LUA_SERIALIZE_MSGS_SIMPLEQUOTE \
-+PTP_CHDK_LUA_SERIALIZE_SIMPLEQUOTE\
-+"usb_msg_table_to_string=serialize\n"
-+
- #define PTP_CHDK_LUA_EXTEND_TABLE \
- "function extend_table(target,source,deep)\n\
- 	if type(target) ~= 'table' then\n\
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2-device.fdi b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2-device.fdi
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2.fdi b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2.fdi
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/40-libgphoto2.rules b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/40-libgphoto2.rules
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/40-libgphoto2.rules
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2/40-libgphoto2.rules
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb
similarity index 85%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb
index 4434af9..7a691c6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb
@@ -14,13 +14,10 @@
            file://10-camera-libgphoto2.fdi \
            file://40-libgphoto2.rules \
            file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
-           file://0002-correct-jpeg-memsrcdest-support.patch \
-           file://avoid_using_sprintf.patch \
-           file://0001-scripts-remove-bashisms.patch \
 "
 
-SRC_URI[libgphoto2.md5sum] = "873ab01aced49c6b92a98e515db5dcef"
-SRC_URI[libgphoto2.sha256sum] = "031a262e342fae43f724afe66787947ce1fb483277dfe5a8cf1fbe92c58e27b6"
+SRC_URI[libgphoto2.md5sum] = "084d220d078d28c0c7a3ba13f4476128"
+SRC_URI[libgphoto2.sha256sum] = "e757416d1623e01a9d0d294b2e790162e434c0964f50d3b7ff1a3424b62a2906"
 
 inherit autotools pkgconfig gettext lib_package
 
@@ -54,3 +51,4 @@
 FILES_${PN} += "${nonarch_base_libdir}/udev/* ${datadir}/hal"
 FILES_${PN}-dbg += "${libdir}/*/*/.debug"
 FILES_${PN}-dev += "${libdir}/*/*/*.la"
+FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
index 2db91904..4094513 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
@@ -16,7 +16,9 @@
 
 S = "${WORKDIR}/${BPN}"
 
-inherit autotools binconfig pkgconfig gettext
+inherit distro_features_check autotools binconfig pkgconfig gettext
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 do_configure_prepend () {
     rm -f ${S}/m4/init.m4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb
index 457d721..38dac06 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb
@@ -12,7 +12,9 @@
 
 RDEPENDS_${PN} += "libpng gtk+ libgcrypt"
 
-inherit autotools binconfig pkgconfig
+inherit distro_features_check autotools binconfig pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${PV}.tar.gz"
 SRC_URI[md5sum] = "7f06104d5c009813e95142932c4ddb06"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch
new file mode 100644
index 0000000..045f3ca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch
@@ -0,0 +1,101 @@
+From eb0086dc4ea8fe9cda069456287b3a29a2631d30 Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+Date: Wed, 13 Dec 2017 16:18:45 +0900
+Subject: [PATCH] Fix the error of can't find header file
+
+Upstream-Status: Inappropriate [embedded specific]
+This fix is just for yocto.
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/NCApplication.cc | 2 +-
+ src/NCstyle.h        | 2 +-
+ src/NCurses.h        | 2 +-
+ src/ncursesp.h       | 2 +-
+ src/ncursesw.cc      | 2 +-
+ src/ncursesw.h       | 4 ++--
+ 6 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/NCApplication.cc b/src/NCApplication.cc
+index 5bcf969..510f034 100644
+--- a/src/NCApplication.cc
++++ b/src/NCApplication.cc
+@@ -23,7 +23,7 @@
+ 
+ /-*/
+ 
+-#include <ncursesw/curses.h>
++#include <curses.h>
+ 
+ #define  YUILogComponent "ncurses"
+ #include <yui/YUILog.h>
+diff --git a/src/NCstyle.h b/src/NCstyle.h
+index a40d5a8..3657917 100644
+--- a/src/NCstyle.h
++++ b/src/NCstyle.h
+@@ -25,7 +25,7 @@
+ #ifndef NCstyle_h
+ #define NCstyle_h
+ 
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+ 
+ #include <iosfwd>
+ #include <string>
+diff --git a/src/NCurses.h b/src/NCurses.h
+index a07c6bf..d17d3c3 100644
+--- a/src/NCurses.h
++++ b/src/NCurses.h
+@@ -34,7 +34,7 @@
+ #include <yui/YWidget.h>
+ #include <yui/YMenuItem.h>
+ 
+-#include <ncursesw/curses.h>	/* curses.h: #define  NCURSES_CH_T cchar_t */
++#include <curses.h>	/* curses.h: #define  NCURSES_CH_T cchar_t */
+ #include <wchar.h>
+ 
+ #include "ncursesw.h"
+diff --git a/src/ncursesp.h b/src/ncursesp.h
+index d478347..2fcfea5 100644
+--- a/src/ncursesp.h
++++ b/src/ncursesp.h
+@@ -28,7 +28,7 @@
+ #include <iosfwd>
+ 
+ #include "ncursesw.h"
+-#include <ncursesw/panel.h>
++#include <panel.h>
+ 
+ class NCursesPanel : public NCursesWindow
+ {
+diff --git a/src/ncursesw.cc b/src/ncursesw.cc
+index 3c771af..bb83210 100644
+--- a/src/ncursesw.cc
++++ b/src/ncursesw.cc
+@@ -47,7 +47,7 @@
+ #include <iostream>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <ncursesw/term.h>
++#include <term.h>
+ #undef line
+ #undef columns
+ 
+diff --git a/src/ncursesw.h b/src/ncursesw.h
+index d25923a..c140d37 100644
+--- a/src/ncursesw.h
++++ b/src/ncursesw.h
+@@ -27,8 +27,8 @@
+ 
+ #include <iosfwd>
+ 
+-#include <ncursesw/curses.h>
+-#include <ncursesw/etip.h>
++#include <curses.h>
++#include <etip.h>
+ #include <cstdio>
+ #include <cstdarg>
+ #include <climits>
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch
new file mode 100644
index 0000000..8e3774c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch
@@ -0,0 +1,40 @@
+From 4b84f243a70a8c07f6a38dad3c9411fa707f25c9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 4 Mar 2018 17:08:43 -0800
+Subject: [PATCH] use _nl_msg_cat_cntr only with glibc
+
+The musl libc provides libintl (similar to glibc)
+but does not use the same internals,
+so even though we are using the GNU gettext
+the libintl included with the libc does not define
+_nl_msg_cat_cntr and it does not need to.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/NCi18n.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/NCi18n.h b/src/NCi18n.h
+index 165b0e7..bfc4ed7 100644
+--- a/src/NCi18n.h
++++ b/src/NCi18n.h
+@@ -59,12 +59,13 @@ inline void setTextdomain( const char * domain )
+     bindtextdomain( domain,  YSettings::localeDir().c_str() );
+     bind_textdomain_codeset( domain, "UTF-8" );
+     textdomain( domain );
+-
++#if defined(__GLIBC__)
+     // Make change known
+     {
+ 	extern int _nl_msg_cat_cntr;
+ 	++_nl_msg_cat_cntr;
+     }
++#endif
+ }
+ 
+ 
+-- 
+2.16.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb
new file mode 100644
index 0000000..578c713
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Character Based User Interface for libyui"
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+    file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
+"
+
+SRC_URI = "git://github.com/libyui/libyui-ncurses.git \
+           file://0001-use-_nl_msg_cat_cntr-only-with-glibc.patch \
+          "
+
+SRC_URI_append_class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch"
+
+PV = "2.48.3+git${SRCPV}"
+SRCREV = "79b804b45ffc6a0d92e28e793ff389a20b63b54b"
+
+S = "${WORKDIR}/git"
+
+inherit cmake gettext pkgconfig
+
+DEPENDS += "boost libyui ncurses"
+
+BBCLASSEXTEND = "nativesdk"
+
+do_configure_prepend () {
+    cd ${S}
+    git checkout bootstrap.sh
+    sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" bootstrap.sh
+    ./bootstrap.sh
+    mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
+    cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
+    cd -
+    sed -i "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt
+    sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake
+}
+
+do_install_append () {
+    if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then
+        mv ${D}/usr/lib64 ${D}/usr/lib
+    fi
+}
+
+do_install_append_class-nativesdk () {
+    mkdir -p ${D}/${base_prefix}
+    mv ${D}/usr ${D}/${base_prefix}
+}
+
+FILES_${PN} += "${datadir}/*"
+
+FILES_${PN}-dev += "${libdir}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch
new file mode 100644
index 0000000..c1ba42e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch
@@ -0,0 +1,48 @@
+From 1e6d40fec16a94d1a4bd40634405267200b7e969 Mon Sep 17 00:00:00 2001
+From: marxin <mliska@suse.cz>
+Date: Tue, 10 Apr 2018 15:21:40 +0200
+Subject: [PATCH] Fix GCC 8 warning:
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+/home/marxin/Programming/libyui/src/YDialog.cc: In static member function ‘static void YDialog::showText(const string&, bool)’:
+/home/marxin/Programming/libyui/src/YDialog.cc:690:26: error: catching polymorphic type ‘class YUIException’ by value [-Werror=catch-value=]
+     catch ( YUIException exception )
+                          ^~~~~~~~~
+/home/marxin/Programming/libyui/src/YDialog.cc: In static member function ‘static bool YDialog::showRelNotesText()’:
+/home/marxin/Programming/libyui/src/YDialog.cc:814:26: error: catching polymorphic type ‘class YUIException’ by value [-Werror=catch-value=]
+     catch ( YUIException exception )
+                          ^~~~~~~~~
+---
+Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/122]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ src/YDialog.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/YDialog.cc b/src/YDialog.cc
+index 92e5031..8ecff90 100644
+--- a/src/YDialog.cc
++++ b/src/YDialog.cc
+@@ -687,7 +687,7 @@ YDialog::showText( const std::string & text, bool useRichText )
+ 	dialog->waitForEvent();
+ 	dialog->destroy();
+     }
+-    catch ( YUIException exception )
++    catch ( YUIException &exception )
+     {
+ 	// Don't let the application die just because help couldn't be displayed.
+ 
+@@ -811,7 +811,7 @@ YDialog::showRelNotesText()
+ 	}
+         dialog->destroy();
+     }
+-    catch ( YUIException exception )
++    catch ( YUIException &exception )
+     {
+         // Don't let the application die just because RN couldn't be displayed.
+ 
+-- 
+2.17.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch
new file mode 100644
index 0000000..4269018
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch
@@ -0,0 +1,687 @@
+From 18562671982ad97549bccb444fdbb5905b6e9335 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 24 Apr 2018 15:06:14 -0700
+Subject: [PATCH] Fix build with clang
+
+Fix warnings found with clang
+
+error: class 'YButtonBoxPrivate' was previously declared as a struct [-Werror,-Wmismatched-tags]
+|     friend class YButtonBoxPrivate;
+
+YTimezoneSelector.cc:35:9: error: private field 'dummy' is not used [-Werror,-Wunused-private-field]
+   bool dummy;
+        ^
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/123]
+
+ src/YAlignment.h          | 2 +-
+ src/YBarGraph.h           | 2 +-
+ src/YBusyIndicator.h      | 2 +-
+ src/YButtonBox.h          | 4 ++--
+ src/YCheckBox.h           | 2 +-
+ src/YCheckBoxFrame.h      | 2 +-
+ src/YComboBox.h           | 2 +-
+ src/YCommandLine.h        | 2 +-
+ src/YContextMenu.h        | 2 +-
+ src/YDateField.h          | 2 +-
+ src/YDialog.h             | 2 +-
+ src/YDownloadProgress.h   | 2 +-
+ src/YDumbTab.h            | 2 +-
+ src/YEmpty.h              | 2 +-
+ src/YEventFilter.h        | 2 +-
+ src/YFrame.h              | 2 +-
+ src/YGraph.h              | 2 +-
+ src/YImage.h              | 2 +-
+ src/YInputField.h         | 2 +-
+ src/YIntField.h           | 2 +-
+ src/YLabel.h              | 2 +-
+ src/YLayoutBox.h          | 2 +-
+ src/YLogView.h            | 2 +-
+ src/YMenuButton.h         | 2 +-
+ src/YMultiLineEdit.h      | 2 +-
+ src/YMultiProgressMeter.h | 2 +-
+ src/YMultiSelectionBox.h  | 2 +-
+ src/YPartitionSplitter.h  | 2 +-
+ src/YProgressBar.h        | 2 +-
+ src/YPushButton.h         | 2 +-
+ src/YRadioButton.h        | 2 +-
+ src/YRadioButtonGroup.h   | 2 +-
+ src/YRichText.h           | 2 +-
+ src/YSelectionBox.h       | 2 +-
+ src/YSelectionWidget.h    | 2 +-
+ src/YSimpleInputField.h   | 2 +-
+ src/YSlider.h             | 2 +-
+ src/YSpacing.h            | 2 +-
+ src/YSquash.h             | 2 +-
+ src/YTable.h              | 2 +-
+ src/YTableHeader.h        | 2 +-
+ src/YTimeField.h          | 2 +-
+ src/YTimezoneSelector.cc  | 2 +-
+ src/YTree.h               | 2 +-
+ src/YUILog.h              | 2 +-
+ src/YWidget.h             | 2 +-
+ src/YWizard.h             | 2 +-
+ 47 files changed, 48 insertions(+), 48 deletions(-)
+
+diff --git a/src/YAlignment.h b/src/YAlignment.h
+index d716c77..7276944 100644
+--- a/src/YAlignment.h
++++ b/src/YAlignment.h
+@@ -28,7 +28,7 @@
+ #include "YSingleChildContainerWidget.h"
+ 
+ 
+-class YAlignmentPrivate;
++struct YAlignmentPrivate;
+ 
+ /**
+  * Implementation of all the alignment widgets:
+diff --git a/src/YBarGraph.h b/src/YBarGraph.h
+index 29f7f26..d7eaad2 100644
+--- a/src/YBarGraph.h
++++ b/src/YBarGraph.h
+@@ -29,7 +29,7 @@
+ #include "YColor.h"
+ 
+ 
+-class YBarGraphPrivate;
++struct YBarGraphPrivate;
+ class YBarGraphSegment;
+ 
+ /**
+diff --git a/src/YBusyIndicator.h b/src/YBusyIndicator.h
+index 9530fa5..75297d8 100644
+--- a/src/YBusyIndicator.h
++++ b/src/YBusyIndicator.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YWidget.h"
+ 
+-class YBusyIndicatorPrivate;
++struct YBusyIndicatorPrivate;
+ 
+ 
+ /**
+diff --git a/src/YButtonBox.h b/src/YButtonBox.h
+index 84f8dbb..ca51f57 100644
+--- a/src/YButtonBox.h
++++ b/src/YButtonBox.h
+@@ -30,7 +30,7 @@
+ #include "YWidget.h"
+ #include "YPushButton.h"
+ 
+-class YButtonBoxPrivate;
++struct YButtonBoxPrivate;
+ class YPushButton;
+ 
+ 
+@@ -147,7 +147,7 @@ struct YButtonBoxMargins
+  **/
+ class YButtonBox : public YWidget
+ {
+-    friend class YButtonBoxPrivate;
++    friend struct YButtonBoxPrivate;
+ 
+ protected:
+     /**
+diff --git a/src/YCheckBox.h b/src/YCheckBox.h
+index 793cc77..03f3faa 100644
+--- a/src/YCheckBox.h
++++ b/src/YCheckBox.h
+@@ -30,7 +30,7 @@
+ #include "YWidget.h"
+ #include "ImplPtr.h"
+ 
+-class YCheckBoxPrivate;
++struct YCheckBoxPrivate;
+ 
+ enum YCheckBoxState
+ {
+diff --git a/src/YCheckBoxFrame.h b/src/YCheckBoxFrame.h
+index 243f1a0..7017110 100644
+--- a/src/YCheckBoxFrame.h
++++ b/src/YCheckBoxFrame.h
+@@ -29,7 +29,7 @@
+ #include "YSingleChildContainerWidget.h"
+ #include "ImplPtr.h"
+ 
+-class YCheckBoxFramePrivate;
++struct YCheckBoxFramePrivate;
+ 
+ 
+ /**
+diff --git a/src/YComboBox.h b/src/YComboBox.h
+index 416359a..ad0e550 100644
+--- a/src/YComboBox.h
++++ b/src/YComboBox.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YSelectionWidget.h"
+ 
+-class YComboBoxPrivate;
++struct YComboBoxPrivate;
+ 
+ 
+ /**
+diff --git a/src/YCommandLine.h b/src/YCommandLine.h
+index 70cb4fe..f344a3b 100644
+--- a/src/YCommandLine.h
++++ b/src/YCommandLine.h
+@@ -28,7 +28,7 @@
+ #include <string>
+ #include "ImplPtr.h"
+ 
+-class YCommandLinePrivate;
++struct YCommandLinePrivate;
+ 
+ 
+ /**
+diff --git a/src/YContextMenu.h b/src/YContextMenu.h
+index a4acb1c..1253002 100644
+--- a/src/YContextMenu.h
++++ b/src/YContextMenu.h
+@@ -29,7 +29,7 @@
+ #include "YMenuItem.h"
+ 
+ class YMenuItem;
+-class YContextMenuPrivate;
++struct YContextMenuPrivate;
+ 
+ 
+ /**
+diff --git a/src/YDateField.h b/src/YDateField.h
+index e5a468d..6164fba 100644
+--- a/src/YDateField.h
++++ b/src/YDateField.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YSimpleInputField.h"
+ 
+-class YDateFieldPrivate;
++struct YDateFieldPrivate;
+ 
+ /**
+  * Input field for entering a date.
+diff --git a/src/YDialog.h b/src/YDialog.h
+index 66c25c0..371209b 100644
+--- a/src/YDialog.h
++++ b/src/YDialog.h
+@@ -32,7 +32,7 @@
+ 
+ class YShortcutManager;
+ class YPushButton;
+-class YDialogPrivate;
++struct YDialogPrivate;
+ class YEvent;
+ class YEventFilter;
+ 
+diff --git a/src/YDownloadProgress.h b/src/YDownloadProgress.h
+index c47ec4f..fe09a9d 100644
+--- a/src/YDownloadProgress.h
++++ b/src/YDownloadProgress.h
+@@ -28,7 +28,7 @@
+ #include "YWidget.h"
+ 
+ 
+-class YDownloadProgressPrivate;
++struct YDownloadProgressPrivate;
+ 
+ /**
+  * DownloadProgress: A progress bar that monitors downloading a file by
+diff --git a/src/YDumbTab.h b/src/YDumbTab.h
+index aec17a3..f8fb250 100644
+--- a/src/YDumbTab.h
++++ b/src/YDumbTab.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YSelectionWidget.h"
+ 
+-class YDumbTabPrivate;
++struct YDumbTabPrivate;
+ 
+ /**
+  * DumbTab: A very simple tab widget that can display and switch between a
+diff --git a/src/YEmpty.h b/src/YEmpty.h
+index 9a3cb36..9b88fbc 100644
+--- a/src/YEmpty.h
++++ b/src/YEmpty.h
+@@ -29,7 +29,7 @@
+ #include "ImplPtr.h"
+ 
+ 
+-class YEmptyPrivate;
++struct YEmptyPrivate;
+ 
+ /**
+  * A widget with zero size, useful as a placeholder.
+diff --git a/src/YEventFilter.h b/src/YEventFilter.h
+index 3dc1803..74aa62d 100644
+--- a/src/YEventFilter.h
++++ b/src/YEventFilter.h
+@@ -32,7 +32,7 @@
+ class YEvent;
+ class YDialog;
+ 
+-class YEventFilterPrivate;
++struct YEventFilterPrivate;
+ 
+ 
+ /**
+diff --git a/src/YFrame.h b/src/YFrame.h
+index 111e8ec..4f8c61e 100644
+--- a/src/YFrame.h
++++ b/src/YFrame.h
+@@ -29,7 +29,7 @@
+ #include "YSingleChildContainerWidget.h"
+ #include "ImplPtr.h"
+ 
+-class YFramePrivate;
++struct YFramePrivate;
+ 
+ 
+ /**
+diff --git a/src/YGraph.h b/src/YGraph.h
+index d90d1ae..287d800 100644
+--- a/src/YGraph.h
++++ b/src/YGraph.h
+@@ -37,7 +37,7 @@
+  * For that reason a lot of functions simply take a void* instead of graph_t*.
+  */
+ 
+-class YGraphPrivate;
++struct YGraphPrivate;
+ 
+ /**
+  * A graph with nodes and edges, rendered with Graphviz.
+diff --git a/src/YImage.h b/src/YImage.h
+index 17bea21..84eb674 100644
+--- a/src/YImage.h
++++ b/src/YImage.h
+@@ -29,7 +29,7 @@
+ #include <string>
+ 
+ 
+-class YImagePrivate;
++struct YImagePrivate;
+ 
+ /**
+  * A picture, possibly animated, loaded from a file.
+diff --git a/src/YInputField.h b/src/YInputField.h
+index 70641ce..fa29b42 100644
+--- a/src/YInputField.h
++++ b/src/YInputField.h
+@@ -28,7 +28,7 @@
+ #include <string>
+ #include "YWidget.h"
+ 
+-class YInputFieldPrivate;
++struct YInputFieldPrivate;
+ 
+ 
+ 
+diff --git a/src/YIntField.h b/src/YIntField.h
+index 9da0537..8ad2949 100644
+--- a/src/YIntField.h
++++ b/src/YIntField.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YWidget.h"
+ 
+-class YIntFieldPrivate;
++struct YIntFieldPrivate;
+ 
+ 
+ 
+diff --git a/src/YLabel.h b/src/YLabel.h
+index d2fff61..bf06d8b 100644
+--- a/src/YLabel.h
++++ b/src/YLabel.h
+@@ -30,7 +30,7 @@
+ #include "ImplPtr.h"
+ 
+ 
+-class YLabelPrivate;
++struct YLabelPrivate;
+ 
+ /**
+  * Implementation of the Label, Heading and OutputField widgets
+diff --git a/src/YLayoutBox.h b/src/YLayoutBox.h
+index e652a45..070eaff 100644
+--- a/src/YLayoutBox.h
++++ b/src/YLayoutBox.h
+@@ -29,7 +29,7 @@
+ #include "YWidget.h"
+ 
+ 
+-class YLayoutBoxPrivate;
++struct YLayoutBoxPrivate;
+ 
+ /**
+  * A vertical or horizontal stacking of widgets, implementing HBox and VBox.
+diff --git a/src/YLogView.h b/src/YLogView.h
+index 53fb9ee..5b44229 100644
+--- a/src/YLogView.h
++++ b/src/YLogView.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YWidget.h"
+ 
+-class YLogViewPrivate;
++struct YLogViewPrivate;
+ 
+ 
+ /**
+diff --git a/src/YMenuButton.h b/src/YMenuButton.h
+index 205e730..5df7efb 100644
+--- a/src/YMenuButton.h
++++ b/src/YMenuButton.h
+@@ -29,7 +29,7 @@
+ #include "YMenuItem.h"
+ 
+ class YMenuItem;
+-class YMenuButtonPrivate;
++struct YMenuButtonPrivate;
+ 
+ 
+ /**
+diff --git a/src/YMultiLineEdit.h b/src/YMultiLineEdit.h
+index c52a6ae..1f792f8 100644
+--- a/src/YMultiLineEdit.h
++++ b/src/YMultiLineEdit.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YWidget.h"
+ 
+-class YMultiLineEditPrivate;
++struct YMultiLineEditPrivate;
+ 
+ /**
+  * A multi-line plain-text area
+diff --git a/src/YMultiProgressMeter.h b/src/YMultiProgressMeter.h
+index 57c758d..f6bec91 100644
+--- a/src/YMultiProgressMeter.h
++++ b/src/YMultiProgressMeter.h
+@@ -28,7 +28,7 @@
+ #include "YWidget.h"
+ #include <vector>
+ 
+-class YMultiProgressMeterPrivate;
++struct YMultiProgressMeterPrivate;
+ 
+ 
+ /**
+diff --git a/src/YMultiSelectionBox.h b/src/YMultiSelectionBox.h
+index bbe5a20..f3a2947 100644
+--- a/src/YMultiSelectionBox.h
++++ b/src/YMultiSelectionBox.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YSelectionWidget.h"
+ 
+-class YMultiSelectionBoxPrivate;
++struct YMultiSelectionBoxPrivate;
+ 
+ 
+ /**
+diff --git a/src/YPartitionSplitter.h b/src/YPartitionSplitter.h
+index 2839bbc..9de1174 100644
+--- a/src/YPartitionSplitter.h
++++ b/src/YPartitionSplitter.h
+@@ -28,7 +28,7 @@
+ #include "YWidget.h"
+ 
+ 
+-class YPartitionSplitterPrivate;
++struct YPartitionSplitterPrivate;
+ 
+ 
+ /**
+diff --git a/src/YProgressBar.h b/src/YProgressBar.h
+index 718352f..baab662 100644
+--- a/src/YProgressBar.h
++++ b/src/YProgressBar.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YWidget.h"
+ 
+-class YProgressBarPrivate;
++struct YProgressBarPrivate;
+ 
+ 
+ /**
+diff --git a/src/YPushButton.h b/src/YPushButton.h
+index 5b65c98..e288252 100644
+--- a/src/YPushButton.h
++++ b/src/YPushButton.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YWidget.h"
+ 
+-class YPushButtonPrivate;
++struct YPushButtonPrivate;
+ 
+ 
+ 
+diff --git a/src/YRadioButton.h b/src/YRadioButton.h
+index 9dc62de..5a7c0dd 100644
+--- a/src/YRadioButton.h
++++ b/src/YRadioButton.h
+@@ -28,7 +28,7 @@
+ #include "YWidget.h"
+ 
+ class YRadioButtonGroup;
+-class YRadioButtonPrivate;
++struct YRadioButtonPrivate;
+ 
+ 
+ /**
+diff --git a/src/YRadioButtonGroup.h b/src/YRadioButtonGroup.h
+index 063a52e..671a257 100644
+--- a/src/YRadioButtonGroup.h
++++ b/src/YRadioButtonGroup.h
+@@ -28,7 +28,7 @@
+ #include "YSingleChildContainerWidget.h"
+ 
+ class YRadioButton;
+-class YRadioButtonGroupPrivate;
++struct YRadioButtonGroupPrivate;
+ 
+ typedef std::list<YRadioButton *> 		YRadioButtonList;
+ typedef YRadioButtonList::iterator		YRadioButtonListIterator;
+diff --git a/src/YRichText.h b/src/YRichText.h
+index 149bfb3..86b3f80 100644
+--- a/src/YRichText.h
++++ b/src/YRichText.h
+@@ -30,7 +30,7 @@
+ #include "ImplPtr.h"
+ 
+ 
+-class YRichTextPrivate;
++struct YRichTextPrivate;
+ 
+ 
+ /**
+diff --git a/src/YSelectionBox.h b/src/YSelectionBox.h
+index 7fc4fb8..9bbf9f3 100644
+--- a/src/YSelectionBox.h
++++ b/src/YSelectionBox.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YSelectionWidget.h"
+ 
+-class YSelectionBoxPrivate;
++struct YSelectionBoxPrivate;
+ 
+ 
+ /**
+diff --git a/src/YSelectionWidget.h b/src/YSelectionWidget.h
+index abbdfb4..cf05afd 100644
+--- a/src/YSelectionWidget.h
++++ b/src/YSelectionWidget.h
+@@ -29,7 +29,7 @@
+ #include "YItem.h"
+ #include "ImplPtr.h"
+ 
+-class YSelectionWidgetPrivate;
++struct YSelectionWidgetPrivate;
+ 
+ /**
+  * Base class for various kinds of multi-value widgets.
+diff --git a/src/YSimpleInputField.h b/src/YSimpleInputField.h
+index 6d926d4..b93fe6b 100644
+--- a/src/YSimpleInputField.h
++++ b/src/YSimpleInputField.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YWidget.h"
+ 
+-class YSimpleInputFieldPrivate;
++struct YSimpleInputFieldPrivate;
+ 
+ 
+ /**
+diff --git a/src/YSlider.h b/src/YSlider.h
+index d29f6b8..4bcd7d3 100644
+--- a/src/YSlider.h
++++ b/src/YSlider.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YIntField.h"
+ 
+-class YSliderPrivate;
++struct YSliderPrivate;
+ 
+ 
+ /**
+diff --git a/src/YSpacing.h b/src/YSpacing.h
+index e8aafd3..066cd68 100644
+--- a/src/YSpacing.h
++++ b/src/YSpacing.h
+@@ -28,7 +28,7 @@
+ #include "YWidget.h"
+ #include "ImplPtr.h"
+ 
+-class YSpacingPrivate;
++struct YSpacingPrivate;
+ 
+ 
+ /**
+diff --git a/src/YSquash.h b/src/YSquash.h
+index 4bd0fb6..3804cc4 100644
+--- a/src/YSquash.h
++++ b/src/YSquash.h
+@@ -29,7 +29,7 @@
+ #include "ImplPtr.h"
+ 
+ 
+-class YSquashPrivate;
++struct YSquashPrivate;
+ 
+ /**
+  * HSquash, VSquash HVSquash: reduce child to its preferred size.
+diff --git a/src/YTable.h b/src/YTable.h
+index 6694f10..469b8ca 100644
+--- a/src/YTable.h
++++ b/src/YTable.h
+@@ -30,7 +30,7 @@
+ #include "YTableItem.h"
+ #include "YTableHeader.h"
+ 
+-class YTablePrivate;
++struct YTablePrivate;
+ 
+ 
+ 
+diff --git a/src/YTableHeader.h b/src/YTableHeader.h
+index 70166c2..4ae99b4 100644
+--- a/src/YTableHeader.h
++++ b/src/YTableHeader.h
+@@ -31,7 +31,7 @@
+ 
+ 
+ 
+-class YTableHeaderPrivate;
++struct YTableHeaderPrivate;
+ 
+ /**
+  * Helper class for YTable for table column properties:
+diff --git a/src/YTimeField.h b/src/YTimeField.h
+index ab2f9a3..f3a7b94 100644
+--- a/src/YTimeField.h
++++ b/src/YTimeField.h
+@@ -27,7 +27,7 @@
+ 
+ #include "YSimpleInputField.h"
+ 
+-class YTimeFieldPrivate;
++struct YTimeFieldPrivate;
+ 
+ 
+ /**
+diff --git a/src/YTimezoneSelector.cc b/src/YTimezoneSelector.cc
+index 9259b64..e2f9b6f 100644
+--- a/src/YTimezoneSelector.cc
++++ b/src/YTimezoneSelector.cc
+@@ -32,7 +32,7 @@
+ 
+ class YTimezoneSelectorPrivate
+ {
+-   bool dummy;
++//   bool dummy;
+ };
+ 
+ 
+diff --git a/src/YTree.h b/src/YTree.h
+index 14fa279..70e1364 100644
+--- a/src/YTree.h
++++ b/src/YTree.h
+@@ -28,7 +28,7 @@
+ #include "YSelectionWidget.h"
+ 
+ class YTreeItem;
+-class YTreePrivate;
++struct YTreePrivate;
+ 
+ 
+ /**
+diff --git a/src/YUILog.h b/src/YUILog.h
+index 0890bc5..4a927a7 100644
+--- a/src/YUILog.h
++++ b/src/YUILog.h
+@@ -64,7 +64,7 @@
+ 
+ 
+ 
+-class YUILogPrivate;
++struct YUILogPrivate;
+ 
+ enum YUILogLevel_t
+ {
+diff --git a/src/YWidget.h b/src/YWidget.h
+index 5b285d0..636a41b 100644
+--- a/src/YWidget.h
++++ b/src/YWidget.h
+@@ -45,7 +45,7 @@ typedef YChildrenManager<YWidget>	YWidgetChildrenManager;
+ typedef YSingleChildManager<YWidget>	YSingleWidgetChildManager;
+ typedef YChildrenRejector<YWidget>	YWidgetChildrenRejector;
+ 
+-class YWidgetPrivate;
++struct YWidgetPrivate;
+ 
+ 
+ /**
+diff --git a/src/YWizard.h b/src/YWizard.h
+index 7671cbf..975b597 100644
+--- a/src/YWizard.h
++++ b/src/YWizard.h
+@@ -28,7 +28,7 @@
+ #include "YWidget.h"
+ 
+ class YMacroRecorder;
+-class YWizardPrivate;
++struct YWizardPrivate;
+ class YPushButton;
+ class YReplacePoint;
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb
new file mode 100644
index 0000000..4294528
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libyui/libyui_git.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends."
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING.gpl-3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
+                    file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+                   "
+
+SRC_URI = "git://github.com/libyui/libyui.git \
+           file://0001-Fix-GCC-8-warning.patch \
+           file://0001-Fix-build-with-clang.patch \
+           "
+
+PV = "3.3.3+git"
+SRCREV = "2b634cb7821e2e79dd4b7a73caf8e67c50189376"
+
+S = "${WORKDIR}/git"
+
+inherit cmake gettext pkgconfig
+
+DEPENDS += "boost"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_configure_prepend () {
+        cd ${S}
+        ./bootstrap.sh
+        cd -
+}
+
+do_install_append () {
+        if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then
+            mv ${D}/usr/lib64 ${D}/usr/lib
+        fi
+}
+
+do_install_append_class-nativesdk () {
+        mkdir -p ${D}/${base_prefix}
+        mv ${D}/usr ${D}/${base_prefix}
+}
+
+FILES_${PN}-dev = "${libdir}/* ${includedir}/yui*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
index b354ae7..c35a0c7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
@@ -16,9 +16,11 @@
 # depends on virtual/libx11
 REQUIRED_DISTRO_FEATURES = "x11"
 
-ALTERNATIVE_${PN}-core = "x-window-manager"
+ALTERNATIVE_${PN}-core = "x-window-manager x-session-manager"
 ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/openbox"
 ALTERNATIVE_PRIORITY[x-window-manager] = "10"
+ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/openbox-session"
+ALTERNATIVE_PRIORITY[x-session-manager] = "100"
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
@@ -38,7 +40,7 @@
 }
 
 RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks"
-FILES_${PN}-core = "${bindir}/openbox ${libdir}/*${SOLIBS}"
+FILES_${PN}-core = "${bindir}/openbox ${bindir}/openbox-session ${libdir}/*${SOLIBS}"
 
 FILES_${PN}-lxde += "${datadir}/lxde/ \
                      ${datadir}/lxpanel \
@@ -46,6 +48,7 @@
                      ${datadir}/icons"
 
 FILES_${PN}-gnome += " \
+    ${bindir}/openbox-gnome-session \
     ${datadir}/gnome \
     ${datadir}/gnome-session \
 "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
index 632e7d4..3069d2d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
@@ -5,7 +5,7 @@
 PV = "1.0"
 PR = "r2"
 
-inherit packagegroup allarch
+inherit packagegroup
 
 PACKAGES += "\
     ${PN}-core \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb
index 02bb1cc..e0f72cd 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb
@@ -12,7 +12,9 @@
 SRC_URI[md5sum] = "874eadd9434613dbacf0272c82c3ac23"
 SRC_URI[sha256sum] = "9762ee2a2d5781be6797448d4dd2383ce14907159b30bc12bf6b08e7227be3af"
 
-inherit autotools pkgconfig
+inherit distro_features_check autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 EXTRA_OECONF = " --disable-documentation "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb
index 6a159a7..f539775 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb
@@ -4,9 +4,9 @@
 SECTION = "libs"
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-PV = "3.4.4+git${SRCPV}"
+PV = "4.0.0+git${SRCPV}"
 
-SRCREV = "1b565c7b599029818fc596e7da4371a3083da36c"
+SRCREV = "07f3c5d4bf9136711422cc7dbf28aff469da220a"
 SRC_URI = "git://github.com/fukuchi/libqrencode.git"
 
 S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/Makefile.oe b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/Makefile.oe
deleted file mode 100644
index 2ee6934..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/Makefile.oe
+++ /dev/null
@@ -1,64 +0,0 @@
-# Makefile for slim - OpenEmbedded
-#######################################################
-
-
-SLIMLDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt -lpthread
-CUSTOM=-DHAVE_SHADOW
-
-USE_PAM=1
-ifdef USE_PAM
-SLIMLDFLAGS+= -lpam
-CUSTOM+= -DUSE_PAM
-endif
-
-#######################################################
-
-NAME=slim
-VERSION=1.3.2
-
-DEFINES=-DPACKAGE=\"$(NAME)\" -DVERSION=\"$(VERSION)\" \
-		-DPKGDATADIR=\"$(PREFIX)/share/slim\" -DSYSCONFDIR=\"$(CFGDIR)\"
-
-OBJECTS=jpeg.o png.o main.o image.o numlock.o cfg.o switchuser.o app.o \
-	panel.o util.o
-ifdef USE_PAM
-OBJECTS+=PAM.o
-endif
-
-all: slim
-
-slim: $(OBJECTS)
-	$(CXX) $(OBJECTS) $(LDFLAGS) $(SLIMLDFLAGS) -o $(NAME)
-
-.cpp.o:
-	$(CXX) $(CXXFLAGS) $(DEFINES) $(CUSTOM) -c $< -o $@
-
-.c.o:
-	$(CC) $(CFLAGS) $(DEFINES) $(CUSTOM) -c $< -o $@
-
-install: slim install-theme
-	install -D -m 755 slim $(DESTDIR)$(PREFIX)/bin/slim
-	install -D -m 644 slim.1 $(DESTDIR)$(MANDIR)/man1/slim.1
-	test -e $(DESTDIR)$(CFGDIR)/slim.conf || \
-		install -D -m 644 slim.conf $(DESTDIR)$(CFGDIR)/slim.conf
-
-clean:
-	@rm -f slim *.o
-
-dist:
-	@rm -rf $(NAME)-$(VERSION)
-	@mkdir $(NAME)-$(VERSION)
-	@cp -r *.cpp *.h *.c Makefile Makefile.* COPYING ChangeLog INSTALL README TODO \
-		xinitrc.sample slim.1 THEMES themes slim.conf $(NAME)-$(VERSION)
-	@rm -rf $(NAME)-$(VERSION)/themes/.svn	$(NAME)-$(VERSION)/themes/default/.svn
-	@tar cvzf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)
-	@rm -rf $(NAME)-$(VERSION)
-
-
-install-theme:
-	install -D -m 644 themes/default/slim.theme \
-		 $(DESTDIR)$(PREFIX)/share/slim/themes/default/slim.theme
-	install -D -m 644 themes/default/panel.png \
-		 $(DESTDIR)$(PREFIX)/share/slim/themes/default/panel.png
-	install -D -m 644 themes/default/background.jpg \
-		 $(DESTDIR)$(PREFIX)/share/slim/themes/default/background.jpg
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim-dynwm b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim-dynwm
deleted file mode 100644
index 49c9d47..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim-dynwm
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-update_slim_wmlist
-if [ "x$1" = "x-nodaemon" ]; then
-  shift
-  exec slim "$@"
-else
-  slim -d "$@"
-fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.pamd b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.pamd
deleted file mode 100644
index 80c34b1..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.pamd
+++ /dev/null
@@ -1,19 +0,0 @@
-# Begin /etc/pam.d/slim
-
-auth       required     pam_shells.so
-auth       include      common-auth
-auth       optional     pam_securetty.so
-auth       optional     pam_gnome_keyring.so
-
-account    required     pam_nologin.so
-account    include      common-account
-
-password   include      common-password
-
-session    include      common-session
-session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022
-session    optional     pam_lastlog.so nowtmp
-session    optional     pam_mail.so dir=/var/mail standard
-session    optional     pam_gnome_keyring.so  auto_start
-
-# End /etc/pam.d/slim
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.service b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.service
deleted file mode 100644
index 341351a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=SLiM Simple Login Manager
-Requires=dev-tty7.device
-After=dev-tty7.device systemd-user-sessions.service
-
-[Service]
-ExecStart=/usr/bin/slim -nodaemon
-StandardOutput=syslog
-
-[Install]
-WantedBy=graphical.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/update_slim_wmlist b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/update_slim_wmlist
deleted file mode 100644
index 0f11653..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/update_slim_wmlist
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/perl -w
-#
-# update_slim_wmlist, based on:
-# update_wdm_wmlist, (c) 1998 Marcelo Magallón <mmagallo@debian.org>
-# rewriten to use the x-window-manager alternative
-# modified to also use the x-session-manager alternative by Arthur Korn
-# Copyright 2000 Wichert Akkerman <wakkerma@debian.org>
-# Modified to use the freedesktop.org .desktop like kdm and gdm
-#
-# This script will read the list of installed window managers from
-# the freedesktop .desktop files in <etc>/X11/sessions/:<etc>/dm/Sessions/:
-# <share>/xsessions/
-# and update the sessions line in /etc/slim.conf.
-# BEWARE: It doesn't ask any questions about this. It just does it. It
-# takes an optional list of window managers.
-
-use strict;
-use File::DesktopEntry;
-
-my $wm_list='';
-my %desktop_files;
-
-unless (@ARGV) {
-    #my @wm_list = ('default');
-    my @wm_list;
-    foreach my $dir ('/etc/X11/sessions/','/etc/dm/Sessions/','/usr/share/xsessions/') {
-	    next unless (opendir DIR, $dir);
-	    my @files;
-	    @files = grep { /\.desktop$/ && -r "$dir/$_" } readdir(DIR);
-	    foreach my $file (@files) {
-		   push @{$desktop_files{$file}}, "$dir/$file";
-	    }
-    }
-    DESKTOP: foreach my $desktop_file (keys(%desktop_files)) {
-	    foreach my $file (@{$desktop_files{$desktop_file}}) {
-		    my $entry = File::DesktopEntry->new_from_file($file);
-		    next DESKTOP if (defined($entry->get_value('Hidden'))
-			and $entry->get_value('Hidden') eq 'true');
-		    if ($entry->get_value('Name') =~ /^gnome$/i) {
-			    push (@wm_list, 'gnome');
-		    }
-		    elsif ($entry->get_value('Name') =~ /^kde$/i) {
-			    push (@wm_list, 'kde');
-		    }
-		    elsif (defined($entry->get_value('Exec'))) {
-			    push (@wm_list, $entry->get_value('Exec'));
-		    }
-		    else { # not found, go to next file
-			    next;
-		    }
-		    # found, proceed to next destop file
-		    next DESKTOP;
-	    }
-    }
-   $wm_list = join (',', sort @wm_list) . ',custom';
-} else {
-    $wm_list = join (',', sort @ARGV);
-}
-
-open (SLIM_CONFIG_FILE, '</etc/slim.conf')
-    or die "Can't open /etc/slim.conf for reading: $!";
-open (NEW_SLIM_CONFIG_FILE, '>/etc/slim.conf.new')
-    or die "Can't open /etc/slim.conf.new for writing: $!";
-
-while (<SLIM_CONFIG_FILE>) {
-    s|^(sessions\s*).*|$1$wm_list|;
-    print NEW_SLIM_CONFIG_FILE;
-}
-
-close(SLIM_CONFIG_FILE);
-close(NEW_SLIM_CONFIG_FILE);
-
-rename '/etc/slim.conf.new', '/etc/slim.conf'
-    or die "Can't rename /etc/slim.conf.new: $!";
-
-exit 0;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.1.bb
deleted file mode 100644
index e7c48ff..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.1.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "An abstraction layer for touchscreen panel events"
-DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
-events, as well as a filter stack for the manipulation of those events. \
-Tslib is generally used on embedded devices to provide a common user \
-space interface to touchscreen functionality."
-HOMEPAGE = "http://tslib.org/"
-
-AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
-SECTION = "base"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
-
-SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
-           file://ts.conf \
-           file://tslib.sh \
-"
-
-SRC_URI[md5sum] = "14771f8607b341bb4b297819d37e837d"
-SRC_URI[sha256sum] = "fe35e5f710ea933b118f710e2ce4403ac076fe69926b570333867d4de082a51c"
-
-UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-shared --disable-h3600 --enable-input --disable-corgi --disable-collie --disable-mk712 --disable-arctic2 --disable-ucb1x00"
-
-do_install_prepend() {
-    install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
-}
-
-do_install_append() {
-    install -d ${D}${sysconfdir}/profile.d/
-    install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
-}
-
-# People should consider using udev's /dev/input/touchscreen0 symlink
-# instead of detect-stylus
-#RDEPENDS_tslib-conf_weird-machine = "detect-stylus"
-RPROVIDES_tslib-conf = "libts-0.0-conf"
-
-PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate"
-DEBIAN_NOAUTONAME_tslib-conf = "1"
-DEBIAN_NOAUTONAME_tslib-tests = "1"
-DEBIAN_NOAUTONAME_tslib-calibrate = "1"
-
-RDEPENDS_${PN} = "tslib-conf"
-RRECOMMENDS_${PN} = "pointercal"
-
-FILES_${PN}-dev += "${libdir}/ts/*.la"
-FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
-FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
-FILES_tslib-calibrate += "${bindir}/ts_calibrate"
-FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_test"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.15.bb
new file mode 100644
index 0000000..7ae941a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.15.bb
@@ -0,0 +1,82 @@
+SUMMARY = "An abstraction layer for touchscreen panel events"
+DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
+events, as well as a filter stack for the manipulation of those events. \
+Tslib is generally used on embedded devices to provide a common user \
+space interface to touchscreen functionality."
+HOMEPAGE = "http://tslib.org/"
+
+AUTHOR = "Martin Kepplinger <martink@posteo.de>"
+SECTION = "base"
+LICENSE = "LGPLv2+ & GPLv2+"
+LIC_FILES_CHKSUM = "\
+    file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \
+    file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \
+"
+
+SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
+           file://ts.conf \
+           file://tslib.sh \
+"
+SRC_URI[md5sum] = "9ff36788c9ab76a10b58422227b9629e"
+SRC_URI[sha256sum] = "7ce48807cab655076d71a1ceef3ed0ab8a25df98074981d4a8fd1477ee5f710c"
+
+UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "debounce dejitter iir linear median pthres skip lowpass invert variance input touchkit waveshare"
+PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce"
+PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter"
+PACKAGECONFIG[iir] = "--enable-iir,--disable-iir"
+PACKAGECONFIG[linear] = "--enable-linear,--disable-linear"
+PACKAGECONFIG[median] = "--enable-median,--disable-median"
+PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres"
+PACKAGECONFIG[skip] = "--enable-skip,--disable-skip"
+PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass"
+PACKAGECONFIG[invert] = "--enable-invert,--disable-invert"
+PACKAGECONFIG[variance] = "--enable-variance,--disable-variance"
+PACKAGECONFIG[input] = "--enable-input,--disable-input"
+PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung"
+PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit"
+PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare"
+PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00"
+PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712"
+PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600"
+PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc"
+PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200"
+PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi"
+PACKAGECONFIG[collie] = "--enable-collie,--disable-collie"
+PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2"
+PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000"
+PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre"
+PACKAGECONFIG[galax] = "--enable-galax,--disable-galax"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
+
+do_install_prepend() {
+    install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
+}
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/profile.d/
+    install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
+}
+
+RPROVIDES_tslib-conf = "libts-0.0-conf"
+
+PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput"
+DEBIAN_NOAUTONAME_tslib-conf = "1"
+DEBIAN_NOAUTONAME_tslib-tests = "1"
+DEBIAN_NOAUTONAME_tslib-calibrate = "1"
+DEBIAN_NOAUTONAME_tslib-uinput = "1"
+
+RDEPENDS_${PN} = "tslib-conf"
+RRECOMMENDS_${PN} = "pointercal"
+
+FILES_${PN}-dev += "${libdir}/ts/*.la"
+FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
+FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
+FILES_tslib-calibrate += "${bindir}/ts_calibrate"
+FILES_tslib-uinput += "${bindir}/ts_uinput"
+
+FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \
+                     ${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
index 31f4df4..31bcce0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
@@ -12,7 +12,9 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools pkgconfig
+inherit distro_features_check autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 do_install_append() {
     rm -f ${D}${libdir}/*/*.la
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb
index 27a38c1..a21dc42 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb
@@ -7,6 +7,8 @@
 SRC_URI[md5sum] = "09f56978a62854534deacc8aa8ff3031"
 SRC_URI[sha256sum] = "bc7171a0fa212da866fca2301241630e2009aea8c4ddb75f21b51a31c2e4c581"
 
-inherit autotools pkgconfig
+inherit distro_features_check autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.1.bb
similarity index 70%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.0.5.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.1.bb
index 35d5002..9116b5f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.1.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=f9a35333adf75edd1eaef84bca65a490"
 DEPENDS = "libxfont"
 
-SRC_URI[md5sum] = "53a48e1fdfec29ab2e89f86d4b7ca902"
-SRC_URI[sha256sum] = "38f447be0c61f94c473f128cf519dd0cff63b5d7775240a2e895a183a61e2026"
+SRC_URI[md5sum] = "2a455d3c02390597feb9cefb3fe97a45"
+SRC_URI[sha256sum] = "4b4df05fc53f1e98993638d6f7e178d95b31745c4568cee407e167491fd311a2"
 
 BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb
similarity index 73%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb
index 3885d61..d2afa78 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb
@@ -4,8 +4,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d938a70c8280c265a1ccd2954365d185"
 SRC_URI += "file://0001-Makefile.am-Error-Fix.patch"
-SRC_URI[md5sum] = "e238c89dabc566e1835e1ecb61b605b9"
-SRC_URI[sha256sum] = "551177657835e0902b5eee7b19713035beaa1581bbd3c6506baa553e751e017c"
+SRC_URI[md5sum] = "e475167a892b589da23edf8edf8c942d"
+SRC_URI[sha256sum] = "78a76ae3f3f6a26547a34630d1b740f42344848b5fb6d7c9c7f7da255e35a6e1"
 
 CFLAGS_append_libc-musl = " -D_WTMPX_FILE=WTMP_FILE -D_PATH_WTMPX=_PATH_WTMP -D_UTMPX_FILE=UTMP_FILE -D_PATH_UTMPX=_PATH_UTMP "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.bb
similarity index 74%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.bb
index 583a531..42bda7e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.bb
@@ -10,5 +10,5 @@
 
 BBCLASSEXTEND = "native"
 
-SRC_URI[md5sum] = "9fbf6b174a5138a61738a42e707ad8f5"
-SRC_URI[sha256sum] = "5d9666fcc6c3de210fc70d5a841a404955af709a616fde530fe4e8f7723e3d3d"
+SRC_URI[md5sum] = "4fa92377e0ddc137cd226a7a87b6b29a"
+SRC_URI[sha256sum] = "773f2af49c7ea2c44fba4213bee64325875c1b3c9bc4bbcd8dac9261751809c1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb
similarity index 65%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb
index 9feed75..76b76e4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb
@@ -6,5 +6,5 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b"
 
-SRC_URI[md5sum] = "6f5711bef8c765857a0887a91476283b"
-SRC_URI[sha256sum] = "40295bec35077cee93be2e4c26cc00268ed6ace779ae6e97766a866c1e3927fa"
+SRC_URI[md5sum] = "5774fd4f518b3f338f2b28f270e04bfc"
+SRC_URI[sha256sum] = "89b80b3a030006ab6cef717be286c12f2477894b227158b1e6133274f6ebd368"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
index e3bb0fb..16f9b78 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
@@ -27,3 +27,8 @@
 }
 
 FILES_${PN} += "/usr/lib/X11"
+
+# busybox can supply resize too
+inherit update-alternatives
+
+ALTERNATIVE_${PN} = "resize"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.5.bb
similarity index 73%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.5.bb
index 33bd7f0..7cb550d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.5.bb
@@ -8,5 +8,5 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=31e8892c80b7a0c1c5f37c8e8ae6d794"
 
-SRC_URI[md5sum] = "3025b152b4f13fdffd0c46d0be587be6"
-SRC_URI[sha256sum] = "d6b3a09ccfe750868e26bd2384900ab5ff0d434f7f40cd272a50eda8aaa1f8bd"
+SRC_URI[md5sum] = "79972093bb0766fcd0223b2bd6d11932"
+SRC_URI[sha256sum] = "99997051f8a892313f22edf41dab45864e86e7062ee9012d5dbb6a40fc6b10a9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
index b230962..cb6b5ac 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
@@ -7,4 +7,6 @@
 SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.bz2"
 S = "${WORKDIR}/${XORG_PN}-${PV}"
 
-inherit autotools pkgconfig
+inherit distro_features_check autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
index 29dd71a..2bfe85b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
@@ -1,7 +1,7 @@
-From 834fa06920f88ceedf752964c8e296c653d541e4 Mon Sep 17 00:00:00 2001
+From f919725918fad2b32504f89a28310fcae4ab0406 Mon Sep 17 00:00:00 2001
 From: Yu Ke <ke.yu@intel.com>
 Date: Wed, 11 Apr 2012 14:26:16 +0200
-Subject: [PATCH 01/12] COPYING: add GPLv2 license file
+Subject: [PATCH] COPYING: add GPLv2 license file
 
 this is a local file recipe and the license file is missing.In order
 to pass the license checksum checking, the license file is needed. So
@@ -9,9 +9,10 @@
 
 Signed-off-by: Yu Ke <ke.yu@intel.com>
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- COPYING |  339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 339 insertions(+), 0 deletions(-)
+ COPYING | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 339 insertions(+)
  create mode 100644 COPYING
 
 diff --git a/COPYING b/COPYING
@@ -359,6 +360,3 @@
 +consider it more useful to permit linking proprietary applications with the
 +library.  If this is what you want to do, use the GNU Lesser General
 +Public License instead of this License.
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch
index 26288d6..0ed12d1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch
@@ -1,4 +1,4 @@
-From c92ce6a4b3622874f820b5ec487a2b63f519826c Mon Sep 17 00:00:00 2001
+From 1002a1137b140dad3319bf3206fec5b6c6b74fea Mon Sep 17 00:00:00 2001
 From: Jussi Kukkonen <jussi.kukkonen@intel.com>
 Date: Thu, 10 Nov 2016 14:33:05 +0200
 Subject: [PATCH] Don't install Xsession or Xserver
@@ -8,15 +8,16 @@
 be used as before.
 
 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
 ---
- Makefile | 1 -
- 1 file changed, 1 deletion(-)
+ Makefile | 2 --
+ 1 file changed, 2 deletions(-)
 
 diff --git a/Makefile b/Makefile
-index caa5de1..7e36bbc 100644
+index caa5de1..9428205 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -20,7 +20,5 @@ install-program:
+@@ -20,8 +20,6 @@ install-program:
  	install -m 755 run-calibrate.sh $(DESTDIR)$(PREFIX)/bin/run-calibrate.sh
  	install -m 644 X11/Xdefaults $(DESTDIR)/etc/X11/Xdefaults
  	install -m 755 X11/Xinit $(DESTDIR)/etc/X11/Xinit
@@ -25,6 +26,3 @@
  	install -m 755 X11/xserver-common $(DESTDIR)/etc/X11/xserver-common
  	install -m 755 X11/functions $(DESTDIR)/etc/X11/functions
  	install -d $(DESTDIR)/etc/X11/xmodmap
--- 
-2.1.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
index 23b5345..0be3fa5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
@@ -1,12 +1,13 @@
-From 3d1a1a8273112668927a6c6bb3e361e896f5b229 Mon Sep 17 00:00:00 2001
+From 3b5f431a370054bfc090796e8d55de8c8cea46f4 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:28:45 +0200
-Subject: [PATCH 02/12] add setdpi Xinit.d script
+Subject: [PATCH] add setdpi Xinit.d script
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/Xinit.d/50setdpi |   92 ++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 92 insertions(+), 0 deletions(-)
+ X11/Xinit.d/50setdpi | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 92 insertions(+)
  create mode 100644 X11/Xinit.d/50setdpi
 
 diff --git a/X11/Xinit.d/50setdpi b/X11/Xinit.d/50setdpi
@@ -107,6 +108,3 @@
 +
 +set_dpi "$SET_SCREEN_DPI"
 +set_rxvt_font "$SCREEN_DPI"
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
index 7ee8572..53a283f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
@@ -1,15 +1,16 @@
-From 0c42e1fb84cc2bfe768bed17f3b979aca868cf64 Mon Sep 17 00:00:00 2001
+From b60e364c35d56a2a3164254d98c9931bfa3feed4 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:34:43 +0200
-Subject: [PATCH 06/12] add support for /etc/X11/xserver-system
+Subject: [PATCH] add support for /etc/X11/xserver-system
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/xserver-common |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
+ X11/xserver-common | 5 +++++
+ 1 file changed, 5 insertions(+)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
-index 4c7ed6e..6d8c9df 100644
+index 52655cb..bb7c2ff 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -204,3 +204,8 @@ fi
@@ -21,6 +22,3 @@
 +if [ -e /etc/X11/xserver-system ] ; then                    
 +       . /etc/X11/xserver-system                    
 +fi                    
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
index 8791226..94a3540 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
@@ -1,17 +1,18 @@
-From 63e6b9a54e1f12dbf7ddbfe3376fff4c382421a5 Mon Sep 17 00:00:00 2001
+From 492c65a32a4ae44c34580ed8ac5d3f50a155cfef Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:36:02 +0200
-Subject: [PATCH 07/12] use own functions file instead /etc/init.d/functions
+Subject: [PATCH] use own functions file instead /etc/init.d/functions
 
 * so we don't have to depend on initscripts
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- Makefile             |    1 +
- X11/Xinit.d/11zaurus |    2 +-
- X11/Xinit.d/12keymap |    2 +-
- X11/functions        |   11 +++++++++++
- X11/xserver-common   |    2 +-
+ Makefile             |  1 +
+ X11/Xinit.d/11zaurus |  2 +-
+ X11/Xinit.d/12keymap |  2 +-
+ X11/functions        | 11 +++++++++++
+ X11/xserver-common   |  2 +-
  5 files changed, 15 insertions(+), 3 deletions(-)
  create mode 100644 X11/functions
 
@@ -70,7 +71,7 @@
 +		{ gsub(" ", "_", $2); print tolower($2) } ' </proc/cpuinfo
 +}
 diff --git a/X11/xserver-common b/X11/xserver-common
-index 6d8c9df..de92bb7 100644
+index bb7c2ff..d622f2a 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -30,7 +30,7 @@ if [ -f /etc/profile ]; then
@@ -82,6 +83,3 @@
  
  fallback_screen_arg() {
      geom=`fbset | grep geometry`
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
index e35e4a7..90d0f25 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
@@ -1,16 +1,17 @@
-From 0ee7bf87e0c83abc79de3a99dfa3c87dd5c5b229 Mon Sep 17 00:00:00 2001
+From e2abbe110e71a7b4b56564e6b9d58ffa7f34a9e8 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:37:29 +0200
-Subject: [PATCH 08/12] xserver-common: add dpi and nocursor params for gta01
- and gta02
+Subject: [PATCH] xserver-common: add dpi and nocursor params for gta01 and
+ gta02
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/xserver-common |    8 ++++++--
- 1 files changed, 6 insertions(+), 2 deletions(-)
+ X11/xserver-common | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
-index de92bb7..f76fa5f 100644
+index d622f2a..a2c0591 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -133,15 +133,19 @@ else
@@ -35,6 +36,3 @@
              fi
              ;;
          "motorola_ezx_platform")
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
index 1a0bde8..8fb69b3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
@@ -1,16 +1,16 @@
-From 6d6caecb7172b9b33e7364564b0e6eabf67b6e8b Mon Sep 17 00:00:00 2001
+From f2d808cea5b9f69158f82e16c06f882a6db10d63 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:40:14 +0200
-Subject: [PATCH 09/12] xserver-common: add support for n900 alias
- nokia_rx-51_board
+Subject: [PATCH] xserver-common: add support for n900 alias nokia_rx-51_board
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/xserver-common |    7 +++++++
- 1 files changed, 7 insertions(+), 0 deletions(-)
+ X11/xserver-common | 7 +++++++
+ 1 file changed, 7 insertions(+)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
-index f76fa5f..86ed17f 100644
+index a2c0591..b8c37e6 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -132,6 +132,13 @@ else
@@ -27,6 +27,3 @@
          "gta01" )
              DPI="280"
              if [ "$XSERVER" != "Xorg" ] ; then
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
index 688be40..d30c7bb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
@@ -1,15 +1,16 @@
-From 52003e6b52b1417c1a0e57243d83349addcdacf6 Mon Sep 17 00:00:00 2001
+From a194ba2013f9e58cf73cd39b57be68386e501eda Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:40:44 +0200
-Subject: [PATCH 10/12] xserver-common: add support for nexus S alias herring
+Subject: [PATCH] xserver-common: add support for nexus S alias herring
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/xserver-common |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
+ X11/xserver-common | 3 +++
+ 1 file changed, 3 insertions(+)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
-index 86ed17f..5c9a6eb 100644
+index b8c37e6..9aa6b24 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -126,6 +126,9 @@ else
@@ -22,6 +23,3 @@
          "generic_omap1510/1610/1710")
              ARGS="$ARGS -screen ${SCREEN_SIZE}"
              DPI="225" ;;
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
index f80456d..23e17f0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
@@ -1,16 +1,16 @@
-From 0ecc978b7d8cb6867646fb2a29523ebef3afa016 Mon Sep 17 00:00:00 2001
+From dfd832b35b6cb4cf2b6f2b51df7b0999f10c8ca1 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:41:06 +0200
-Subject: [PATCH 11/12] xserver-common: add support for nexus one alias
- mahimahi
+Subject: [PATCH] xserver-common: add support for nexus one alias mahimahi
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/xserver-common |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
+ X11/xserver-common | 3 +++
+ 1 file changed, 3 insertions(+)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
-index 5c9a6eb..55594fd 100644
+index 9aa6b24..8da926e 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -129,6 +129,9 @@ else
@@ -23,6 +23,3 @@
          "generic_omap1510/1610/1710")
              ARGS="$ARGS -screen ${SCREEN_SIZE}"
              DPI="225" ;;
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
index 54a0329..5e794f6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
@@ -1,16 +1,16 @@
-From d194f0302582f1ca599f2ea58c15e15f4fd6bdef Mon Sep 17 00:00:00 2001
+From d9e05e53b30c66705852256ff5c603252aa94b2c Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Wed, 11 Apr 2012 14:41:52 +0200
-Subject: [PATCH 12/12] xserver-common: add support for gta04 alias
- OpenPhoenux
+Subject: [PATCH] xserver-common: add support for gta04 alias OpenPhoenux
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/xserver-common |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
+ X11/xserver-common | 8 ++++++++
+ 1 file changed, 8 insertions(+)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
-index 55594fd..434333e 100644
+index 8da926e..d9325dd 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -161,6 +161,14 @@ else
@@ -28,6 +28,3 @@
          "motorola_ezx_platform")
              ARGS="$ARGS -screen 240x320"
              DPI="170" ;;
--- 
-1.7.8.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
index 49321eb..78d2e40 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
@@ -1,13 +1,13 @@
-From 176c3bd3d86c223fd44b0f15b62d38526bb3b0d2 Mon Sep 17 00:00:00 2001
+From 57ab521ffc1024f21105ca14be2d041a477942b1 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa@gmail.com>
 Date: Fri, 17 Aug 2012 13:00:56 +0200
-Subject: [PATCH 13/13] xserver-common: add support for tuna alias Galaxy
- Nexus
+Subject: [PATCH] xserver-common: add support for tuna alias Galaxy Nexus
 
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
 ---
- X11/xserver-common |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
+ X11/xserver-common | 8 ++++++++
+ 1 file changed, 8 insertions(+)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
 index d9325dd..017e5ae 100644
@@ -28,6 +28,3 @@
          "motorola_ezx_platform")
              ARGS="$ARGS -screen 240x320"
              DPI="170" ;;
--- 
-1.7.8.6
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch
index 06df261..a731917 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch
@@ -1,3 +1,4 @@
+From 5236209e30e0f45113e140f0667c8ffcfe621536 Mon Sep 17 00:00:00 2001
 From: Javier Viguera <javier.viguera@digi.com>
 Date: Wed, 26 Nov 2014 09:24:44 +0100
 Subject: [PATCH] xserver-common: disable TCP connections
@@ -5,12 +6,13 @@
 Upstream-Status: Inappropriate [configuration]
 
 Signed-off-by: Javier Viguera <javier.viguera@digi.com>
+
 ---
  X11/xserver-common | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/X11/xserver-common b/X11/xserver-common
-index 017e5aee1ab0..4dc48c412741 100644
+index 017e5ae..4dc48c4 100644
 --- a/X11/xserver-common
 +++ b/X11/xserver-common
 @@ -44,7 +44,7 @@ SCREEN_SIZE=`fallback_screen_arg`
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
index cc30541..a5ed21d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
@@ -5,7 +5,9 @@
 PR = "r9"
 
 # we are using a gpe-style Makefile
-inherit gpe
+inherit distro_features_check gpe
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI[md5sum] = "82f2f84cd96610e8f7b92c700cd31c14"
 SRC_URI[sha256sum] = "cd04c33418f776b1e13fcc7af3d6bd0c7cccd03fbabd7dbcd97f88166cc34210"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb
index c963c8e..4abd273 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb
@@ -3,7 +3,7 @@
 saving related features of your processor."
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-DEPENDS = "pciutils"
+DEPENDS = "pciutils gettext-native"
 PROVIDES = "virtual/cpupower"
 
 inherit kernelsrc kernel-arch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0004-crash-fix-build-failure-with-mips.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0004-crash-fix-build-failure-with-mips.patch
deleted file mode 100644
index 1e7ce6b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0004-crash-fix-build-failure-with-mips.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 423ebdce07aa9f398f32c0adf659353069d023c6 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Thu, 4 May 2017 07:14:13 +0000
-Subject: [PATCH] crash: fix build failure with mips
-
-When build crash with mips:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-mips-linux-nat.c:157:1: error: conflicting types for 'ps_get_thread_area'
- ps_get_thread_area (const struct ps_prochandle *ph,
- ^~~~~~~~~~~~~~~~~~
-In file included from gdb_proc_service.h:26:0,
-                 from mips-linux-nat.c:32:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This problem have been fixed on intel and arm plantform, we can use the
-similar approch to fix it on mips.
-
-Upstream-status: Submitted [https://github.com/crash-utility/crash/pull/11]
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- Makefile                                |  1 +
- crash-fix-build-failure-with-mips.patch | 39 +++++++++++++++++++++++++++++++++
- 2 files changed, 40 insertions(+)
- create mode 100644 crash-fix-build-failure-with-mips.patch
-
-diff --git a/Makefile b/Makefile
-index 5496523..2ec3325 100644
---- a/Makefile
-+++ b/Makefile
-@@ -268,6 +268,7 @@ gdb_patch:
- 		grep 'extern ps_err_e ps_get_thread_area (struct' ${RECIPE_SYSROOT}/usr/include/proc_service.h; \
- 		if [ $$? -eq 0 ]; then \
- 			patch -p0 < ${GDB}-proc_service.h.patch; \
-+			patch -p1 < crash-fix-build-failure-with-mips.patch; \
- 		fi; \
- 	fi
- 
-diff --git a/crash-fix-build-failure-with-mips.patch b/crash-fix-build-failure-with-mips.patch
-new file mode 100644
-index 0000000..0c70c5f
---- /dev/null
-+++ b/crash-fix-build-failure-with-mips.patch
-@@ -0,0 +1,39 @@
-+From 615c802d9c73fad48723b6567042cd54f6795849 Mon Sep 17 00:00:00 2001
-+From: Dengke Du <dengke.du@windriver.com>
-+Date: Thu, 4 May 2017 06:14:47 +0000
-+Subject: [PATCH] crash: fix build failure with mips
-+
-+When build crash with mips:
-+
-+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+mips-linux-nat.c:157:1: error: conflicting types for 'ps_get_thread_area'
-+ ps_get_thread_area (const struct ps_prochandle *ph,
-+ ^~~~~~~~~~~~~~~~~~
-+In file included from gdb_proc_service.h:26:0,
-+                 from mips-linux-nat.c:32:
-+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+
-+This problem have been fixed on intel and arm plantform, we can use the
-+similar approch to fix it on mips.
-+
-+Signed-off-by: Dengke Du <dengke.du@windriver.com>
-+---
-+ gdb-7.6/gdb/mips-linux-nat.c | 2 +-
-+ 1 file changed, 1 insertion(+), 1 deletion(-)
-+
-+diff --git a/gdb-7.6/gdb/mips-linux-nat.c b/gdb-7.6/gdb/mips-linux-nat.c
-+index 61e83c6..d517e37 100644
-+--- a/gdb-7.6/gdb/mips-linux-nat.c
-++++ b/gdb-7.6/gdb/mips-linux-nat.c
-+@@ -154,7 +154,7 @@ mips64_linux_register_addr (struct gdbarch *gdbarch, int regno, int store)
-+ /* Fetch the thread-local storage pointer for libthread_db.  */
-+ 
-+ ps_err_e
-+-ps_get_thread_area (const struct ps_prochandle *ph,
-++ps_get_thread_area (struct ps_prochandle *ph,
-+                     lwpid_t lwpid, int idx, void **base)
-+ {
-+   if (ptrace (PTRACE_GET_THREAD_AREA, lwpid, NULL, base) != 0)
-+-- 
-+2.11.0
-+
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.0.bb
similarity index 95%
rename from import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.9.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.0.bb
index d40937e..9bea48e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.9.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.0.bb
@@ -24,10 +24,9 @@
            file://remove-unrecognized-gcc-option-m32-for-mips.patch \
            file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \
            file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \
-           file://0004-crash-fix-build-failure-with-mips.patch \
            "
-SRC_URI[md5sum] = "f3b44a151dbe7046462b9caaa9847ca6"
-SRC_URI[sha256sum] = "c48e1269443a6a8e8337e328b21b03e4e50248f607eed83fbb27eb0d833d6aa4"
+SRC_URI[md5sum] = "48899de3118e04cfa40a2364f5618193"
+SRC_URI[sha256sum] = "5d076e1fefb41aa178ad3e1cef6511670efc47de5cb04d4af9bdd4e8f2f18cbc"
 
 SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
 SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmitool/ipmitool_1.8.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/ipmitool/ipmitool_1.8.18.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
new file mode 100644
index 0000000..b1e73e9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch.inc
@@ -0,0 +1,49 @@
+SUMMARY = "Linux dynamic kernel patching infrastructure"
+DESCRIPTION = "kpatch is a Linux dynamic kernel patching infrastructure which allows you to patch a running kernel without rebooting or restarting any processes."
+LICENSE = "GPLv2 & LGPLv2"
+DEPENDS = "elfutils bash"
+
+SRC_URI = "git://github.com/dynup/kpatch.git;protocol=https \
+	file://0001-kpatch-build-add-cross-compilation-support.patch \
+	file://0002-kpatch-build-allow-overriding-of-distro-name.patch \
+	"
+
+EXTRA_OEMAKE = " \
+	PREFIX=${prefix} \
+	BINDIR=${D}${bindir} \
+	SBINDIR=${D}${sbindir} \
+	LIBDIR=${D}${libdir} \
+	MANDIR=${D}${mandir}/man1 \
+	SYSTEMDDIR=${D}${systemd_system_unitdir} \
+	DESTDIR=${D} \
+	BUILDMOD=no \
+	CC='${CC}' \
+	"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+	oe_runmake install
+}
+
+PACKAGES =+ "kpatch-build"
+PROVIDES += "kpatch-build"
+
+COMPATIBLE_HOST = "(x86_64).*-linux"
+
+RDEPENDS_${PN} = "bash binutils"
+RDEPENDS_kpatch-build = "bash glibc-utils"
+
+FILES_${PN} = " \
+	${sbindir}/kpatch \
+	${systemd_system_unitdir}/kpatch.service \
+	${mandir}/man1/kpatch.1.gz \
+	"
+FILES_kpatch-build = " \
+	${bindir}/kpatch-build \
+	${libexecdir}/* \
+	${datadir}/kpatch \
+	${mandir}/man1/kpatch-build.1.gz \
+	"
+
+SYSTEMD_SERVICE_${PN} = "kpatch.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
new file mode 100644
index 0000000..459fb21
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
@@ -0,0 +1,103 @@
+From a9a80a1f4df65892a0269295ce8a64b06f2ff61d Mon Sep 17 00:00:00 2001
+From: Ruslan Bilovol <rbilovol@cisco.com>
+Date: Tue, 19 Dec 2017 15:59:04 +0200
+Subject: [PATCH] kpatch-build: add cross-compilation support
+
+This patch introduces new option for kpatch-build
+script "--cross-compile" which can be used for
+specifying cross-complier prefix.
+It allows to build live patches not only on
+target system, but also on hosts for a target other
+than the one on which the compiler is running
+
+Also removed quotes in exec lines, so it is
+possible to pass multy-component strings like
+"ccache x86_64-xelinux-linux-" as cross-compiler
+
+Upstream-Status: Pending
+
+Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
+---
+ kpatch-build/kpatch-build | 13 +++++++++++--
+ kpatch-build/kpatch-gcc   |  4 ++--
+ 2 files changed, 13 insertions(+), 4 deletions(-)
+
+diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
+index 166ecbd..af24cc4 100755
+--- a/kpatch-build/kpatch-build
++++ b/kpatch-build/kpatch-build
+@@ -195,7 +195,7 @@ gcc_version_check() {
+ 	# gcc --version varies between distributions therefore extract version
+ 	# by compiling a test file and compare it to vmlinux's version.
+ 	echo 'void main(void) {}' > "$c"
+-	out="$(gcc -c -pg -ffunction-sections -o "$o" "$c" 2>&1)"
++	out="$(${KPATCH_CROSS_COMPILE}gcc -c -pg -ffunction-sections -o "$o" "$c" 2>&1)"
+ 	gccver="$(gcc_version_from_file "$o")"
+ 	kgccver="$(gcc_version_from_file "$VMLINUX")"
+ 	rm -f "$c" "$o"
+@@ -381,12 +381,14 @@ usage() {
+ 	echo "		-d, --debug        Enable 'xtrace' and keep scratch files" >&2
+ 	echo "		                   in <CACHEDIR>/tmp" >&2
+ 	echo "		                   (can be specified multiple times)" >&2
++	echo "		--cross-compile    Specify the prefix used for all executables" >&2
++	echo "		                   used during compilation" >&2
+ 	echo "		--skip-cleanup     Skip post-build cleanup" >&2
+ 	echo "		--skip-gcc-check   Skip gcc version matching check" >&2
+ 	echo "		                   (not recommended)" >&2
+ }
+ 
+-options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
++options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
+ 
+ eval set -- "$options"
+ 
+@@ -444,6 +446,10 @@ while [[ $# -gt 0 ]]; do
+ 			echo "DEBUG mode enabled"
+ 		fi
+ 		;;
++	--cross-compile)
++		KPATCH_CROSS_COMPILE="$2"
++		shift
++		;;
+ 	--skip-cleanup)
+ 		echo "Skipping cleanup"
+ 		SKIPCLEANUP=1
+@@ -691,6 +697,8 @@ if [[ $DEBUG -ge 4 ]]; then
+ 	export KPATCH_GCC_DEBUG=1
+ fi
+ 
++export KPATCH_CROSS_COMPILE
++
+ echo "Building original kernel"
+ ./scripts/setlocalversion --save-scmversion || die
+ make mrproper 2>&1 | logger || die
+@@ -840,6 +848,7 @@ cd "$TEMPDIR/patch" || die
+ KPATCH_BUILD="$SRCDIR" KPATCH_NAME="$MODNAME" \
+ KBUILD_EXTRA_SYMBOLS="$KBUILD_EXTRA_SYMBOLS" \
+ KPATCH_LDFLAGS="$KPATCH_LDFLAGS" \
++CROSS_COMPILE="$KPATCH_CROSS_COMPILE" \
+ 	make 2>&1 | logger || die
+ 
+ if ! "$KPATCH_MODULE"; then
+diff --git a/kpatch-build/kpatch-gcc b/kpatch-build/kpatch-gcc
+index 6ba133c..3937948 100755
+--- a/kpatch-build/kpatch-gcc
++++ b/kpatch-build/kpatch-gcc
+@@ -8,7 +8,7 @@ TOOLCHAINCMD="$1"
+ shift
+ 
+ if [[ -z "$KPATCH_GCC_TEMPDIR" ]]; then
+-	exec "$TOOLCHAINCMD" "$@"
++	exec ${KPATCH_CROSS_COMPILE}${TOOLCHAINCMD} "$@"
+ fi
+ 
+ declare -a args=("$@")
+@@ -80,4 +80,4 @@ elif [[ "$TOOLCHAINCMD" = "ld" ]] ; then
+ 	done
+ fi
+ 
+-exec "$TOOLCHAINCMD" "${args[@]}"
++exec ${KPATCH_CROSS_COMPILE}${TOOLCHAINCMD} "${args[@]}"
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
new file mode 100644
index 0000000..a9d8a7f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
@@ -0,0 +1,62 @@
+From d418d716dae1e2a05131dfb42a19a4da2fc8a85d Mon Sep 17 00:00:00 2001
+From: Ruslan Bilovol <rbilovol@cisco.com>
+Date: Tue, 2 Jan 2018 14:50:03 +0200
+Subject: [PATCH] kpatch-build: allow overriding of distro name
+
+It is sometimes useful to have ability to override
+distro name, for example during cross-compilation
+build when livepatch modules will be ran on the
+target which differs from host.
+
+This patch adds a new --distro option which
+implements all needed functionality
+
+Upstream-Status: Pending
+
+Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
+---
+ kpatch-build/kpatch-build | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
+index af24cc4..4f9f78d 100755
+--- a/kpatch-build/kpatch-build
++++ b/kpatch-build/kpatch-build
+@@ -383,12 +383,13 @@ usage() {
+ 	echo "		                   (can be specified multiple times)" >&2
+ 	echo "		--cross-compile    Specify the prefix used for all executables" >&2
+ 	echo "		                   used during compilation" >&2
++	echo "		--distro           Override distro name" >&2
+ 	echo "		--skip-cleanup     Skip post-build cleanup" >&2
+ 	echo "		--skip-gcc-check   Skip gcc version matching check" >&2
+ 	echo "		                   (not recommended)" >&2
+ }
+ 
+-options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
++options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,distro:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
+ 
+ eval set -- "$options"
+ 
+@@ -450,6 +451,10 @@ while [[ $# -gt 0 ]]; do
+ 		KPATCH_CROSS_COMPILE="$2"
+ 		shift
+ 		;;
++	--distro)
++		DISTRO="$2"
++		shift
++		;;
+ 	--skip-cleanup)
+ 		echo "Skipping cleanup"
+ 		SKIPCLEANUP=1
+@@ -526,7 +531,7 @@ fi
+ # Don't check external file.
+ # shellcheck disable=SC1091
+ source /etc/os-release
+-DISTRO="$ID"
++DISTRO="${DISTRO:-${ID}}"
+ if [[ "$DISTRO" = fedora ]] || [[ "$DISTRO" = rhel ]] || [[ "$DISTRO" = ol ]] || [[ "$DISTRO" = centos ]]; then
+ 	[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/lib/modules/$ARCHVERSION/vmlinux"
+ 	[[ -e "$VMLINUX" ]] || die "kernel-debuginfo-$ARCHVERSION not installed"
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
new file mode 100644
index 0000000..e495e28
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
@@ -0,0 +1,11 @@
+require kpatch.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRCREV = "db6efbb8c7e90d2b761272cf563047119072768f"
+
+PV = "0.5.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc b/import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc
index e200127..9f14370 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc
@@ -16,7 +16,7 @@
 
 # Kernel bootlogo is distro-specific (default is OE logo).
 # Logo resolution (qvga, vga, ...) is machine-specific.
-LOGO_SIZE ?= '${@base_conditional("MACHINE_GUI_CLASS", "bigscreen", "vga", "qvga", d)}'
+LOGO_SIZE ?= '${@oe.utils.conditional("MACHINE_GUI_CLASS", "bigscreen", "vga", "qvga", d)}'
 # To use this, add file://${LOGO_SIZE}/logo_linux_clut224.ppm.bz2 or similar
 # to your kernel recipe, and then structure your logos for each resolution
 # accordingly.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.init b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.init
index 90ef7fa..9c96e31 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.init
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.init
@@ -22,7 +22,7 @@
 
 case "$1" in
     start)
-        echo "|/usr/bin/minicoredumper %p %u %g %s %t %h %e" > /proc/sys/kernel/core_pattern
+        echo "|/usr/sbin/minicoredumper %p %u %g %s %t %h %e" > /proc/sys/kernel/core_pattern
         ;;
     stop)
         echo "core" > /proc/sys/kernel/core_pattern
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.service b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.service
index 851b54c..45d098f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.service
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/minicoredumper.service
@@ -4,7 +4,7 @@
 [Service]
 Type=oneshot
 RemainAfterExit=yes
-ExecStart=/bin/sh -c '/bin/echo "|/usr/bin/minicoredumper %%p %%u %%g %%s %%t %%h %%e" > /proc/sys/kernel/core_pattern'
+ExecStart=/bin/sh -c '/bin/echo "|/usr/sbin/minicoredumper %%p %%u %%g %%s %%t %%h %%e" > /proc/sys/kernel/core_pattern'
 ExecStop=/bin/sh -c '/bin/echo "core" > /proc/sys/kernel/core_pattern'
 
 [Install]
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
index 1858e10..0d3c66b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
@@ -38,4 +38,8 @@
     install -m 0644 ${WORKDIR}/minicoredumper.service ${D}${systemd_system_unitdir}
     install -d ${D}${sysconfdir}/init.d
     install -m 0644 ${WORKDIR}/minicoredumper.init ${D}${sysconfdir}/init.d/minicoredumper
+
+    # correct path of minicoredumper
+    sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${sysconfdir}/init.d/minicoredumper
+    sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${systemd_system_unitdir}/minicoredumper.service
 }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss-1.0.17/libio.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
similarity index 66%
rename from import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss-1.0.17/libio.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
index a053e4c..5299945 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss-1.0.17/libio.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
@@ -1,7 +1,7 @@
-Index: alsa-oss-1.0.15/alsa/stdioemu.c
+Index: alsa-oss-1.0.28/alsa/stdioemu.c
 ===================================================================
---- alsa-oss-1.0.15.orig/alsa/stdioemu.c	2007-10-15 10:50:40.000000000 +0200
-+++ alsa-oss-1.0.15/alsa/stdioemu.c	2008-07-21 22:17:06.303161438 +0200
+--- alsa-oss-1.0.28.orig/alsa/stdioemu.c
++++ alsa-oss-1.0.28/alsa/stdioemu.c
 @@ -37,7 +37,9 @@
  #endif
  
@@ -12,7 +12,7 @@
  
  struct fd_cookie {
  	int fd;
-@@ -99,7 +101,11 @@
+@@ -99,7 +101,11 @@ static FILE *fake_fopen(const char *path
  
  	if (open_mode && fdc->fd > 0) {
  		result = fopencookie (fdc,"w", fns);
@@ -24,11 +24,11 @@
  	}
  	return result;
  }
-Index: alsa-oss-1.0.15/configure.in
+Index: alsa-oss-1.0.28/configure.ac
 ===================================================================
---- alsa-oss-1.0.15.orig/configure.in	2007-10-15 10:50:40.000000000 +0200
-+++ alsa-oss-1.0.15/configure.in	2008-07-21 22:16:11.719837298 +0200
-@@ -33,6 +33,12 @@
+--- alsa-oss-1.0.28.orig/configure.ac
++++ alsa-oss-1.0.28/configure.ac
+@@ -35,6 +35,12 @@ if test "$with_aoss" = "yes"; then
    LIBS="$OLD_LIBS"
  fi
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb
similarity index 75%
rename from import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.17.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb
index 8966dbb..0c4a9f5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.17.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb
@@ -3,11 +3,12 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
 DEPENDS = "alsa-lib"
-PR = "r1"
 
 SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
     file://libio.patch \
 "
+SRC_URI[md5sum] = "91f57e8cee1ad4cc956caa8b62ac5d43"
+SRC_URI[sha256sum] = "3ae62caa88a0bc7b30ed836dcb794dc6ef4d3650439e2260db54cace7d5c6ad5"
 
 inherit autotools
 
@@ -17,6 +18,3 @@
     touch NEWS README AUTHORS ChangeLog
     sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in
 }
-
-SRC_URI[md5sum] = "1b1850c2fc91476a73d50f537cbd402f"
-SRC_URI[sha256sum] = "8d009e23e2cbee1691ec3c95d1838056a804d98440eae7715d6c3aebc710f9ca"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
index c0f220f..3b10e97 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
@@ -18,3 +18,7 @@
 
 DEPENDS = "libcap file bzip2"
 RDEPENDS_${PN} = "perl"
+
+do_install_append() {
+    ln -sf ${bindir}/genisoimage ${D}${bindir}/mkisofs
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch
index 6c7f3bd..130f3c2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch
@@ -1,9 +1,10 @@
-From a860fe0796c43e35eac9783140fcb563cab9f55a Mon Sep 17 00:00:00 2001
+From 945df2da87a412758ceab4ac5711abbb269a47c1 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 8 Jun 2017 23:09:51 -0700
-Subject: [PATCH 1/3] audio_alsa09.c: alsa drain fix
+Subject: [PATCH] audio_alsa09.c: alsa drain fix
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  audio_alsa09.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
@@ -21,6 +22,3 @@
    
  	if (alsadbg) 
  		print_state();
--- 
-2.13.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch
index 337546a..10a6ba0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch
@@ -1,11 +1,12 @@
-From 1fbee6e96384f340b816e221fe1c2f3ff0b487bf Mon Sep 17 00:00:00 2001
+From e218d5a0a545ebb9623d62da5cfca478f9c90fce Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 8 Jun 2017 23:11:31 -0700
-Subject: [PATCH 2/3] Undefine open64 and fopen64
+Subject: [PATCH] Undefine open64 and fopen64
 
 Since the signatures do not match with libc
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  esddsp.c | 2 ++
  1 file changed, 2 insertions(+)
@@ -30,6 +31,3 @@
  FILE *
  fopen64 (const char *path, const char *mode)
  {
--- 
-2.13.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch
index 62c880d..83365b4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch
@@ -1,12 +1,13 @@
-From 979a02d9ec9c28686021cd2b49ca55d2195c9dce Mon Sep 17 00:00:00 2001
+From 89c62db54716d514e639f9e1bfd3c1f7d82641dd Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 8 Jun 2017 23:12:36 -0700
-Subject: [PATCH 3/3] Use -I=<path> in configure
+Subject: [PATCH] Use -I=<path> in configure
 
 This helps to use proper sysroot in
 cross build environment
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  configure.ac | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
@@ -33,6 +34,3 @@
  	SOUND_LIBS=-lmme
        esac
     fi
--- 
-2.13.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch
index fc69f1a..8a546e6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch
@@ -1,11 +1,19 @@
-Index: esound-0.2.36/Makefile.am
-===================================================================
---- esound-0.2.36.orig/Makefile.am
-+++ esound-0.2.36/Makefile.am
+From bfcaa9bdc70440db96f10afc0c2a792870f75acb Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Fri, 3 Jun 2011 19:39:02 +0200
+
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 08c4c94..ede9d26 100644
+--- a/Makefile.am
++++ b/Makefile.am
 @@ -1,5 +1,5 @@
  
 -SUBDIRS = docs
 +SUBDIRS = 
  
- ACLOCAL_FLAGS = -I m4
+ ACLOCAL_AMFLAGS = -I m4
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-typecast-input-parameter-to-int-for-abs.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-typecast-input-parameter-to-int-for-abs.patch
deleted file mode 100644
index c119f19..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-typecast-input-parameter-to-int-for-abs.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8ec6f75bf7a318a3a1e352df7c97630cfaba537a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 21 Apr 2017 16:18:39 -0700
-Subject: [PATCH] typecast input parameter to int for abs()
-
-Fixes
-../tests/test.cpp:482:73: error: call of overloaded 'abs(jack_nframes_t)' is ambiguous
-
-because the signature is int abs(int) and its passing
-unsigned int to it.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/test.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/test.cpp b/tests/test.cpp
-index 8a8a8117..9655742e 100644
---- a/tests/test.cpp
-+++ b/tests/test.cpp
-@@ -479,7 +479,7 @@ int process4(jack_nframes_t nframes, void *arg)
- 	jack_nframes_t delta_time = cur_time - last_time;
- 
- 	Log("calling process4 callback : jack_frame_time = %ld delta_time = %ld\n", cur_time, delta_time);
--	if (delta_time > 0  && (jack_nframes_t)abs(delta_time - cur_buffer_size) > tolerance) {
-+	if (delta_time > 0  && (jack_nframes_t)abs(int(delta_time - cur_buffer_size)) > tolerance) {
- 		printf("!!! ERROR !!! jack_frame_time seems to return incorrect values cur_buffer_size = %d, delta_time = %d tolerance %d\n", cur_buffer_size, delta_time, tolerance);
- 	}
- 
--- 
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb
index b85ba8a..11da6b1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb
@@ -14,11 +14,9 @@
 
 DEPENDS = "libsamplerate0 libsndfile1 readline"
 
-SRC_URI = "git://github.com/jackaudio/jack2.git \
-           file://0001-typecast-input-parameter-to-int-for-abs.patch \
-          "
-SRCREV = "2d1d323505585d406a7e64fb932953baefc5945e"
-PV = "1.9.10+git${SRCPV}"
+SRC_URI = "git://github.com/jackaudio/jack2.git"
+SRCREV = "c1647819eed6d11f94b21981d9c869629299f357"
+PV = "1.9.12"
 S = "${WORKDIR}/git"
 
 inherit waf pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.13.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.13.6.bb
deleted file mode 100644
index 40ac0f8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.13.6.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require recipes-multimedia/${BPN}/${BPN}.inc
-
-SRC_URI[md5sum] = "daa6cfca437c0776af5f79750cdd9b4e"
-SRC_URI[sha256sum] = "f8a874d104e3e72e2cc057e5a1710c650b10367486845a26e5ff28ed7a912c2d"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass.inc b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
similarity index 85%
rename from import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass.inc
rename to import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
index 4bc3db0..3454a5c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
@@ -7,7 +7,9 @@
 
 DEPENDS = "enca fontconfig freetype libpng fribidi"
 
-SRC_URI = "https://github.com/libass/libass/releases/download/${PV}/libass-${PV}.tar.xz"
+SRC_URI = "git://github.com/libass/libass.git"
+SRCREV = "73284b676b12b47e17af2ef1b430527299e10c17"
+S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb
index 99e6a84..6bf64d6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb
@@ -5,8 +5,9 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "d154476feaac5a7b5f180e83eaf3d689"
-SRC_URI[sha256sum] = "4972cd22fd8d0e8bff922d35c7a645be0db0ab0e7b3dfaecc9cd8272429d6975"
+
+SRC_URI[md5sum] = "0cb25905113b930e4539d2f4eb6574b0"
+SRC_URI[sha256sum] = "1b481b5da009bea31db875805665974e2fc568e2b2afa516f4036733657cf958"
 
 inherit autotools pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb
similarity index 77%
rename from import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb
index 8276b44..718f3f5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb
@@ -2,12 +2,12 @@
 SECTION = "libs"
 DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis"
 LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=29d8bc7c38aa44b1cf3a633a46589917"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=95e0c3cf63f71b950911e698a54b7fc5"
 
 SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "c6c4f556d4415871f526248f5c9a627d"
-SRC_URI[sha256sum] = "5a24f62a610249d744cbd8d28ee399d8905db7222bf3bdbc8a8b4a76e597695f"
+SRC_URI[md5sum] = "aaa0551393993c14a13f72b339c0ed6c"
+SRC_URI[sha256sum] = "4e615e27efca4f439df9af6aa2c6de84150d17cbfd12174b54868c12f19c83bb"
 
 S = "${WORKDIR}/SDL2_mixer-${PV}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
index 44d92a0..de78de2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
@@ -16,7 +16,7 @@
 
 SRC_URI = " \
     https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz;name=mpv \
-    http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;subdir=${BPN}-${PV} \
+    http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;downloadfilename=waf;subdir=${BPN}-${PV} \
 "
 SRC_URI[mpv.md5sum] = "038d0b660de07ff645ad6a741704ecab"
 SRC_URI[mpv.sha256sum] = "daf3ef358d5f260f2269f7caabce27f446c291457ec330077152127133b71b46"
@@ -64,9 +64,10 @@
     ${PACKAGECONFIG_CONFARGS} \
 "
 
-do_configure_prepend () {
-    ln -sf waf-1.8.12 ${S}/waf
+adjust_waf_perms() {
     chmod +x ${S}/waf
 }
 
+do_patch[postfuncs] += "adjust_waf_perms"
+
 FILES_${PN} += "${datadir}/icons"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch
index 7413094..eb294b3f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch
@@ -1,4 +1,4 @@
-From 2d6bfa75b2e16b4d764f1bf00bb902fb4b5e507b Mon Sep 17 00:00:00 2001
+From 67a6e919b8263d6d2b7150e62f26fb06bbc526ef Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 27 Feb 2015 21:55:36 +0000
 Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and
@@ -10,6 +10,7 @@
 
 Conflicts:
 	utils/media-ctl/Makefile.am
+
 ---
  utils/media-ctl/Makefile.am | 10 +++-------
  1 file changed, 3 insertions(+), 7 deletions(-)
@@ -40,6 +41,3 @@
  mediactl_includedir=$(includedir)/mediactl
  noinst_HEADERS = mediactl.h v4l2subdev.h
  
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch
index 54161f9..12609d3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch
@@ -1,7 +1,7 @@
-From 806822f5acb756d5acda0f9063c84b28b38b3ffb Mon Sep 17 00:00:00 2001
+From 75372b8088c20474497b79ec6cf1e99f2d17f56d Mon Sep 17 00:00:00 2001
 From: Ismo Puustinen <ismo.puustinen@intel.com>
 Date: Mon, 3 Apr 2017 13:23:38 +0300
-Subject: [PATCH v4l-utils] buildsystem: do not assume building in source tree.
+Subject: [PATCH] buildsystem: do not assume building in source tree.
 
 Use $(top_srcdir) as reference for include paths and buildtime scripts.
 Otherwise compilation outside of project root directory will fail
@@ -12,6 +12,7 @@
 Upstream-status: Accepted [https://git.linuxtv.org//v4l-utils.git/commit/?id=bd98c9a99bffc8d44c54859345e4dfee0ada4275]
 
 Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
+
 ---
  utils/cec-compliance/Makefile.am  | 2 +-
  utils/cec-ctl/Makefile.am         | 2 +-
@@ -22,7 +23,7 @@
  6 files changed, 7 insertions(+), 7 deletions(-)
 
 diff --git a/utils/cec-compliance/Makefile.am b/utils/cec-compliance/Makefile.am
-index ec5de51..8331aa0 100644
+index f05fe6c..f7d1535 100644
 --- a/utils/cec-compliance/Makefile.am
 +++ b/utils/cec-compliance/Makefile.am
 @@ -7,7 +7,7 @@ cec_compliance_LDFLAGS = -lrt
@@ -35,10 +36,10 @@
  cec-compliance.cpp: version.h
  
 diff --git a/utils/cec-ctl/Makefile.am b/utils/cec-ctl/Makefile.am
-index 0a7ef22..6afb6c9 100644
+index 4a6eae5..570a070 100644
 --- a/utils/cec-ctl/Makefile.am
 +++ b/utils/cec-ctl/Makefile.am
-@@ -7,7 +7,7 @@ cec_ctl_LDFLAGS = -lrt
+@@ -6,7 +6,7 @@ cec_ctl_SOURCES = cec-ctl.cpp
  cec-ctl.cpp: cec-ctl-gen.h
  
  cec-ctl-gen.h: msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
@@ -48,7 +49,7 @@
  clean-local:
  	-rm -vf cec-ctl-gen.h
 diff --git a/utils/cec-follower/Makefile.am b/utils/cec-follower/Makefile.am
-index 538edb2..fdbf3d9 100644
+index d8ad292..e3553eb 100644
 --- a/utils/cec-follower/Makefile.am
 +++ b/utils/cec-follower/Makefile.am
 @@ -7,12 +7,12 @@ cec_follower_LDFLAGS = -lrt
@@ -65,7 +66,7 @@
 +	$(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
  
  version.h:
- 	@if git rev-parse HEAD >/dev/null 2>&1; then \
+ 	@if git show-ref -s HEAD >/dev/null 2>&1; then \
 diff --git a/utils/qv4l2/Makefile.am b/utils/qv4l2/Makefile.am
 index fd58486..ccd1a2a 100644
 --- a/utils/qv4l2/Makefile.am
@@ -80,7 +81,7 @@
  if WITH_QTGL
  qv4l2_CPPFLAGS += $(QTGL_CFLAGS)
 diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am
-index 03db8df..18b9892 100644
+index c2b5919..fb8d12e 100644
 --- a/utils/v4l2-compliance/Makefile.am
 +++ b/utils/v4l2-compliance/Makefile.am
 @@ -5,7 +5,7 @@ DEFS :=
@@ -105,6 +106,3 @@
  
  if WITH_V4L2_CTL_LIBV4L
  v4l2_ctl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch
index f1e11da..82fc3e1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch
@@ -1,7 +1,7 @@
-From e60aea50e41ae8a17672beb5859beecb66e7a305 Mon Sep 17 00:00:00 2001
+From b2efcc20617d6317f74c4acb2a6af5b765f20b34 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 14 Jul 2017 13:11:25 -0700
-Subject: [PATCH 1/3] ir-ctl: Define TEMP_FAILURE_RETRY if undefined
+Subject: [PATCH] ir-ctl: Define TEMP_FAILURE_RETRY if undefined
 
 use strndup() instead of strndupa() which is not
 universally available in C libraries
@@ -9,6 +9,7 @@
 Taken from AlpineLinux
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  utils/ir-ctl/ir-ctl.c | 14 +++++++++++++-
  1 file changed, 13 insertions(+), 1 deletion(-)
@@ -50,6 +51,3 @@
  
  	if (!strtoscancode(p + 1, &scancode)) {
  		fprintf(stderr, _("error: invalid scancode '%s'\n"), p + 1);
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
index 2fb4057..a779a30 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
@@ -1,11 +1,12 @@
-From b3acc4c6407f9553f32582a9aee6a11b5fcd1d8a Mon Sep 17 00:00:00 2001
+From 49f865a17d62db7bbd333a9b83fadeea55686e35 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 14 Jul 2017 13:17:19 -0700
-Subject: [PATCH 2/3] contrib/test: Link mc_nextgen_test with libargp if needed
+Subject: [PATCH] contrib/test: Link mc_nextgen_test with libargp if needed
 
 musl depends on external argp implementation e.g.
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  contrib/test/Makefile.am | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
@@ -23,6 +24,3 @@
  
  
  ioctl_test_SOURCES = ioctl-test.c ioctl-test.h ioctl_32.h ioctl_64.h
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch
index 0a986ae..5b84af2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch
@@ -1,7 +1,7 @@
-From d04aa6866cbea57c4a81b033cd60586a9436ac6b Mon Sep 17 00:00:00 2001
+From f7a4b79b3323534460a63b3e6c58ebaf06adf207 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 14 Jul 2017 13:20:05 -0700
-Subject: [PATCH 3/3] v4l2-ctl: Do not use getsubopt
+Subject: [PATCH] v4l2-ctl: Do not use getsubopt
 
 POSIX says that behavior when subopts list is empty is undefined.
 musl libs will set value to NULL which leads to crash.
@@ -9,6 +9,7 @@
 Taken from AlpineLinux
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  utils/v4l2-ctl/v4l2-ctl-common.cpp | 19 ++++++++++---------
  1 file changed, 10 insertions(+), 9 deletions(-)
@@ -44,6 +45,3 @@
  }
  
  void common_cmd(int ch, char *optarg)
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch
index c610e7e..55a5cdc 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch
@@ -1,9 +1,17 @@
-Index: v4l-utils-1.6.2/utils/media-ctl/Makefile.am
-===================================================================
---- v4l-utils-1.6.2.orig/utils/media-ctl/Makefile.am
-+++ v4l-utils-1.6.2/utils/media-ctl/Makefile.am
-@@ -4,8 +4,8 @@ libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS
- libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS)
+From b82e509c10659a4647961a6da3adf4d285dea2dd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 1 Mar 2015 22:25:07 +0000
+
+---
+ utils/media-ctl/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am
+index 7c520a2..748353d 100644
+--- a/utils/media-ctl/Makefile.am
++++ b/utils/media-ctl/Makefile.am
+@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES)
+ nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES)
  libv4l2subdev_la_SOURCES = libv4l2subdev.c
  libv4l2subdev_la_LIBADD = libmediactl.la
 -mediactl_includedir=$(includedir)/mediactl
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch
index 34fb3cf..9fcf611 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch
@@ -1,8 +1,16 @@
-Index: v4l-utils-1.6.2/utils/media-ctl/Makefile.am
-===================================================================
---- v4l-utils-1.6.2.orig/utils/media-ctl/Makefile.am
-+++ v4l-utils-1.6.2/utils/media-ctl/Makefile.am
-@@ -7,6 +7,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la
+From 480c04ac6a9d11bfef9d4aca073052fdcee4fdea Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 1 Mar 2015 22:25:07 +0000
+
+---
+ utils/media-ctl/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am
+index d11fa2e..7c520a2 100644
+--- a/utils/media-ctl/Makefile.am
++++ b/utils/media-ctl/Makefile.am
+@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la
  mediactl_includedir=$(includedir)/mediactl
  noinst_HEADERS = mediactl.h v4l2subdev.h
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
index c7a6e51..6ad7f2b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
@@ -1,19 +1,28 @@
-Upstream: not yet
+From dc0a5c3d2dd4e79d12a150a246a95c4dc88326f1 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Tue, 16 Aug 2011 16:04:35 +0200
+Subject: [PATCH] Upstream: not yet
 
 Fix configure to accept "--prefix=" (a blank prefix).
 
---- libvpx-0.9.1/build/make/configure.sh.orig	2010-06-17 09:08:56.000000000 -0400
-+++ libvpx-0.9.1/build/make/configure.sh	2010-09-23 14:27:48.000000000 -0400
-@@ -444,6 +444,8 @@
+---
+ build/make/configure.sh | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/build/make/configure.sh b/build/make/configure.sh
+index 007e020..04d5cbf 100644
+--- a/build/make/configure.sh
++++ b/build/make/configure.sh
+@@ -581,6 +581,8 @@ process_common_cmdline() {
          ;;
-         --prefix=*)
+       --prefix=*)
          prefix="${optval}"
 +        # Distinguish between "prefix not set" and "prefix set to ''"
 +        prefixset=1
          ;;
-         --libdir=*)
+       --libdir=*)
          libdir="${optval}"
-@@ -587,13 +587,23 @@ process_cmdline() {
+@@ -614,13 +616,23 @@ process_cmdline() {
  }
  
  post_process_common_cmdline() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb
index 1d531ae..b31d8eb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb
@@ -8,9 +8,9 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=8114b83a0435d8136b47bd70111ce5cd"
 
-DEPENDS = "glib-2.0 dbus json-glib libsoup-2.4 intltool-native gobject-introspection-native"
+DEPENDS = "glib-2.0 dbus json-glib libsoup-2.4 intltool-native"
 
-inherit autotools pkgconfig gtk-doc
+inherit autotools pkgconfig gtk-doc gobject-introspection
 
 SRC_URI = " \
     http://www.freedesktop.org/software/geoclue/releases/2.4/geoclue-${PV}.tar.xz \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
deleted file mode 100644
index 2ea3226..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 1e2cea8945bc2183fbe1a012dcd633a352125952 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 24 Apr 2012 18:45:14 +0200
-Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot
- from python_lib_dir
-
-* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix
-  and with PYTHONPATH from OE it's pointing to native python dir
-
-    $ export PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/
-    $ python
-    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
-    [GCC 4.6.2] on linux2
-    Type "help", "copyright", "credits" or "license" for more information.
-    >>> from distutils import sysconfig
-    >>> sysconfig.get_config_vars('INCLUDEPY')
-    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
-    >>>
-    $ unset PYTHONPATH
-    $ python
-    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
-    [GCC 4.6.2] on linux2
-    Type "help", "copyright", "credits" or "license" for more information.
-    >>> from distutils import sysconfig
-    >>> sysconfig.get_config_vars('INCLUDEPY')
-    ['/python2.7']
-    >>> import sysconfig
-    >>> sysconfig.get_config_vars('INCLUDEPY')
-    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
-* python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
-  returns path to target sysroot
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- SConstruct | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/SConstruct b/SConstruct
-index 6c93311..cde8b3d 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1148,6 +1148,12 @@ else:
-         basecflags += ' -coverage'
-         ldflags += ' -coverage'
-         ldshared += ' -coverage'
-+
-+    if env['sysroot']:
-+        print "Prefixing includepy '%s' with sysroot prefix" % includepy
-+        includepy = os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], includepy))
-+        print "'%s'" % includepy
-+
-     # in case CC/CXX was set to the scan-build wrapper,
-     # ensure that we build the python modules with scan-build, too
-     if env['CC'] is None or env['CC'].find('scan-build') < 0:
-@@ -1408,11 +1414,14 @@ if not env['python']:
-     python_install = []
- else:
-     python_lib_dir = env['python_libdir']
-+    python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
-     python_module_dir = python_lib_dir + os.sep + 'gps'
-     python_extensions_install = python_env.Install( DESTDIR + python_module_dir,
-                                                     python_built_extensions)
-     if not env['debug'] and not env['profiling'] and not env['nostrip'] and not sys.platform.startswith('darwin'):
-         python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET')
-+    env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \
-+                     % (python_lib_dir, ))
- 
-     python_modules_install = python_env.Install( DESTDIR + python_module_dir,
-                                                 python_modules)
--- 
-2.1.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
new file mode 100644
index 0000000..1fa27c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
@@ -0,0 +1,81 @@
+From 1e2cea8945bc2183fbe1a012dcd633a352125952 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 24 Apr 2012 18:45:14 +0200
+Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot
+ from python_lib_dir
+
+* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix
+  and with PYTHONPATH from OE it's pointing to native python dir
+
+    $ export PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+    >>>
+    $ unset PYTHONPATH
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/python2.7']
+    >>> import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+* python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
+  returns path to target sysroot
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/SConstruct b/SConstruct
+index 3318bb48..e1c4f963 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -934,7 +934,7 @@ else:
+ 
+ # Set up configuration for target Python
+ 
+-PYTHON_LIBDIR_CALL = 'sysconfig.get_python_lib()'
++PYTHON_LIBDIR_CALL = 'sysconfig.get_python_lib(plat_specific=1)'
+ 
+ PYTHON_CONFIG_NAMES = ['CC', 'CXX', 'OPT', 'BASECFLAGS',
+                        'CCSHARED', 'LDSHARED', 'SO', 'INCLUDEPY', 'LDFLAGS']
+@@ -1364,7 +1364,7 @@ else:
+                        LINK=ldshared,
+                        SHLIBPREFIX="",
+                        SHLIBSUFFIX=python_config['SO'],
+-                       CPPPATH=[python_config['INCLUDEPY']],
++                       CPPPATH=[os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], python_config['INCLUDEPY']))] if env['sysroot'] else [python_config['INCLUDEPY']],
+                        CPPFLAGS=python_config['OPT'],
+                        CFLAGS=python_config['BASECFLAGS'],
+                        CXXFLAGS=python_config['BASECFLAGS'])
+@@ -1662,12 +1662,15 @@ if ((not env['debug'] and not env['profiling'] and not env['nostrip']
+ if not env['python']:
+     python_install = []
+ else:
++    python_libdir = python_libdir.replace(env['sysroot'], '')
+     python_module_dir = python_libdir + os.sep + 'gps'
+     python_extensions_install = python_env.Install(DESTDIR + python_module_dir,
+                                                    python_built_extensions)
+     if ((not env['debug'] and not env['profiling']
+          and not env['nostrip'] and not sys.platform.startswith('darwin'))):
+         python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET')
++    env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \
++                     % (python_libdir, ))
+ 
+     python_modules_install = python_env.Install(DESTDIR + python_module_dir,
+                                                 python_modules)
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch
similarity index 94%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch
index f496b5e..e91e4e9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch
@@ -19,10 +19,10 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/gpsmon.c b/gpsmon.c
-index ead84d0..f205cb1 100644
+index 89c43ee2..5cc0dabd 100644
 --- a/gpsmon.c
 +++ b/gpsmon.c
-@@ -20,6 +20,7 @@
+@@ -24,6 +24,7 @@
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <sys/select.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
similarity index 89%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
index 8527f0d..ba3d205 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
@@ -29,23 +29,22 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index 0e518e7..c01a71b 100644
+index 3318bb48..a5bb756d 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -704,12 +704,12 @@ size_t strlcpy(/*@out@*/char *dst, /*@in@*/const char *src, size_t size);
+@@ -889,11 +889,11 @@ else:
  
-     manbuilder = mangenerator = htmlbuilder = None
+     manbuilder = htmlbuilder = None
      if env['manbuild']:
 -        if config.CheckXsltproc():
 +        if False and config.CheckXsltproc():
-             mangenerator = 'xsltproc'
              build = "xsltproc --nonet %s $SOURCE >$TARGET"
              htmlbuilder = build % docbook_html_uri
              manbuilder = build % docbook_man_uri
 -        elif WhereIs("xmlto"):
 +        elif False and WhereIs("xmlto"):
-             mangenerator = 'xmlto'
-             xmlto = "xmlto %s $SOURCE || mv `basename $TARGET` `dirname $TARGET`"
+             xmlto = "xmlto %s $SOURCE || mv `basename $TARGET` " \
+                     "`dirname $TARGET`"
              htmlbuilder = xmlto % "html-nochunks"
 -- 
 1.8.5.5
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules
deleted file mode 100644
index 61143b8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules
+++ /dev/null
@@ -1,47 +0,0 @@
-# udev rules for gpsd
-# $Id$
-#
-# GPSes don't have their own USB device class.  They're serial-over-USB
-# devices, so what you see is actually the ID of the serial-over-USB chip.
-# Fortunately, just two of these account for over 80% of consumer-grade
-# GPS sensors.  The gpsd.hotplug.wrapper script will tell a running gpsd
-# that it should look at the device that just went active, because it
-# might be a GPS.
-#
-# The following setup works on Debian - something similar will apply on 
-# other distributions:
-# 
-#   /etc/udev/gpsd.rules
-#   /etc/udev/rules.d/025_gpsd.rules -> ../gpsd.rules
-#   /lib/udev/gpsd.hotplug.wrapper
-#   /lib/udev/gpsd.hotplug
-# 
-# Setting the link in /etc/udev/rules.d activates the rule and determines
-# when to run it on boot (similar to init.d processing).
-
-SUBSYSTEM!="tty", GOTO="gpsd_rules_end"
-
-# Prolific Technology, Inc. PL2303 Serial Port
-ATTR{idVendor}=="067b", ATTR{idProduct}=="2303", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# ATEN International Co., Ltd UC-232A Serial Port [pl2303]
-ATTR{idVendor}=="0557", ATTR{idProduct}=="2008", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# FTDI 8U232AM
-ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# Cypress M8/CY7C64013 (DeLorme uses these)
-ATTR{idVendor}=="1163", ATTR{idProduct}=="0100", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# PS-360 OEM (Microsoft GPS sold with Street and Trips 2005)
-ATTR{idVendor}=="067b", ATTR{idProduct}=="aaa0", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# Garmin International GPSmap, various models (tested with Garmin GPS 18 USB)
-ATTR{idVendor}=="091e", ATTR{idProduct}=="0003", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# Cygnal Integrated Products, Inc. CP210x Composite Device (Used by Holux m241)
-ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# u-blox AG, u-blox 5 (tested with Navilock NL-402U)
-ATTR{idVendor}=="1546", ATTR{idProduct}=="01a5", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# FTDI FT232
-ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-# u-blox 4
-ATTR{idVendor}=="1546", ATTR{idProduct}=="01a4", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-
-ACTION=="remove", RUN+="/lib/udev/gpsd.hotplug.wrapper"
-
-LABEL="gpsd_rules_end"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd
deleted file mode 100755
index ba73daf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:          gpsd
-# Required-Start:    $remote_fs $network
-# Should-Start:      bluetooth dbus udev
-# Required-Stop:     $remote_fs $network
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: GPS (Global Positioning System) daemon start/stop script
-# Description:       Start/Stop script for the gpsd service daemon,
-#                    which is able to monitor one or more GPS devices
-#                    connected to a host computer, making all data on
-#                    the location and movements of the sensors available
-#                    to be queried on TCP port 2947.
-### END INIT INFO
-
-# Author: Bernd Zeimetz <bzed@debian.org>
-#
-# Please remove the "Author" lines above and replace them
-# with your own name if you copy and modify this script.
-
-# Do NOT "set -e"
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="GPS (Global Positioning System) daemon"
-NAME=gpsd
-DAEMON=/usr/sbin/$NAME
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Exit if the package is not installed
-[ -x "$DAEMON" ] || exit 0
-
-# Read configuration, if present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-if [ -z "$GPSD_SOCKET" ] && [ -z "$DEVICES" ]; then
-	GPSD_SOCKET=/var/run/gpsd.sock
-fi
-
-if [ -n "$GPSD_SOCKET" ]; then
-        GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
-fi
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
-	# Return
-	#   0 if daemon has been started
-	#   1 if daemon was already running
-	#   2 if daemon could not be started
-	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test \
-        -- $GPSD_OPTIONS -P $PIDFILE $GPS_DEVICES > /dev/null \
-		|| return 1
-	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
-		$GPSD_OPTIONS -P $PIDFILE $GPS_DEVICES \
-		|| return 2
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
-	# Return
-	#   0 if daemon has been stopped
-	#   1 if daemon was already stopped
-	#   2 if daemon could not be stopped
-	#   other if a failure occurred
-	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
-	RETVAL="$?"
-	[ "$RETVAL" = 2 ] && return 2
-	# Many daemons don't delete their pidfiles when they exit.
-	rm -f $PIDFILE
-	return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
-	#
-	# If the daemon can reload its configuration without
-	# restarting (for example, when it is sent a SIGHUP),
-	# then implement that here.
-	#
-	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
-	return 0
-}
-
-case "$1" in
-  start)
-		echo "Starting $DESC" "$NAME"
-		do_start
-		exit $?
-	;;
-  stop)
-	echo "Stopping $DESC" "$NAME"
-	do_stop
-	exit $?
-	;;
-  status)
-       ;;
-  reload|force-reload)
-	echo "Reloading $DESC" "$NAME"
-	do_reload
-	exit $?
-	;;
-  restart)
-	#
-	# If the "reload" option is implemented then remove the
-	# 'force-reload' alias
-	#
-	echo "Restarting $DESC" "$NAME"
-	do_stop
-	case "$?" in
-	  0|1)
-		do_start
-		exit $?
-		;;
-	  *)
-	 	# Failed to stop
-		exit 1
-		;;
-	esac
-	;;
-  *)
-	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-	exit 3
-	;;
-esac
-
-:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default
deleted file mode 100644
index 0ceff03..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default
+++ /dev/null
@@ -1,5 +0,0 @@
-# If you must specify a non-NMEA driver, uncomment and modify the next line
-GPSD_SOCKET="/var/run/gpsd.sock"
-GPSD_OPTIONS="" 
-GPS_DEVICES=""
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
deleted file mode 100644
index 7131a58..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=GPS (Global Positioning System) Daemon
-Requires=gpsd.socket
-
-[Service]
-EnvironmentFile=/etc/default/gpsd
-ExecStart=/usr/sbin/gpsd -N $GPS_DEVICES
-
-[Install]
-Also=gpsd.socket
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
similarity index 87%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
index 26d7486..d526db2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
@@ -11,13 +11,9 @@
     file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
     file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \
     file://0001-include-sys-ttydefaults.h.patch \
-    file://gpsd-default \
-    file://gpsd \
-    file://60-gpsd.rules \
-    file://gpsd.service \
 "
-SRC_URI[md5sum] = "68691b5de4c94f82ec4062b042b5eb63"
-SRC_URI[sha256sum] = "03579af13a4d3fe0c5b79fa44b5f75c9f3cac6749357f1d99ce5d38c09bc2029"
+SRC_URI[md5sum] = "e0cfadcf4a65dfbdd2afb11c58f4e4a1"
+SRC_URI[sha256sum] = "68e0dbecfb5831997f8b3d6ba48aed812eb465d8c0089420ab68f9ce4d85e77a"
 
 inherit scons update-rc.d python-dir pythonnative systemd bluetooth update-alternatives
 
@@ -67,13 +63,13 @@
 
 do_install_append() {
     install -d ${D}/${sysconfdir}/init.d
-    install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/
+    install -m 0755 ${S}/packaging/deb/etc_init.d_gpsd ${D}/${sysconfdir}/init.d/gpsd
     install -d ${D}/${sysconfdir}/default
-    install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default
+    install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}/${sysconfdir}/default/gpsd.default
 
     #support for udev
     install -d ${D}/${sysconfdir}/udev/rules.d
-    install -m 0644 ${WORKDIR}/60-gpsd.rules ${D}/${sysconfdir}/udev/rules.d
+    install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d/
     install -d ${D}${base_libdir}/udev/
     install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
 
@@ -83,7 +79,8 @@
 
     #support for systemd
     install -d ${D}${systemd_unitdir}/system/
-    install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
+    install -m 0644 ${S}/systemd/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
+    install -m 0644 ${S}/systemd/${BPN}ctl@.service ${D}${systemd_unitdir}/system/${BPN}ctl@.service
     install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
 }
 
@@ -132,7 +129,7 @@
 RPROVIDES_${PN} += "${PN}-systemd"
 RREPLACES_${PN} += "${PN}-systemd"
 RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${PN}.socket"
+SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service"
 
 
 ALTERNATIVE_${PN} = "gpsd-defaults"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
index 1a00b08..010f65f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
@@ -5,7 +5,9 @@
 LIC_FILES_CHKSUM = "file://orrery.c;endline=25;md5=d792bdf2b591972da175aecc38d88cfe"
 DEPENDS = "gtk+"
 
-inherit autotools-brokensep pkgconfig
+inherit distro_features_check autotools-brokensep pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://projects.openmoko.org/frs/download.php/923/orrery_2.7_clean.tar.gz \
            file://orrery.png \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
similarity index 97%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
index 198db3c..8fc0b35 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
@@ -21,6 +21,9 @@
 
 DEPENDS += "libpam"
 
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb
similarity index 83%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb
index 4a1b4ce..f362775 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb
@@ -5,9 +5,9 @@
 HOMEPAGE = "http://tomoyo.sourceforge.jp/"
 SECTION = "System Environment/Kernel"
 
-SRC_URI = "http://jaist.dl.sourceforge.jp/tomoyo/53357/${BP}-20140601.tar.gz"
-SRC_URI[md5sum] = "888869b793127f00d6439a3246598b83"
-SRC_URI[sha256sum] = "118ef6ba1fbf7c0b83018c3a0d4d5485dfb9b5b7f647f37ce9f63841a3133c2a"
+SRC_URI = "http://jaist.dl.sourceforge.jp/tomoyo/53357/${BP}-20170102.tar.gz"
+SRC_URI[md5sum] = "888804d58742452fe213a68f7eadd0ad"
+SRC_URI[sha256sum] = "00fedfac5e514321250bbe69eaccc732c8a8158596f77a785c2e3ae9f9968283"
 
 S = "${WORKDIR}/${BPN}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash/0001-Fix-printf-format-errors-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-shells/dash/dash/0001-Fix-printf-format-errors-with-clang.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash/0001-Fix-printf-format-errors-with-clang.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-shells/dash/dash/0001-Fix-printf-format-errors-with-clang.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash_0.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.9.1.bb
similarity index 85%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash_0.5.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.9.1.bb
index 78ca60d..6dee66f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash_0.5.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.9.1.bb
@@ -10,8 +10,8 @@
 SRC_URI = "http://gondor.apana.org.au/~herbert/${BPN}/files/${BP}.tar.gz \
            file://0001-Fix-printf-format-errors-with-clang.patch \
            "
-SRC_URI[md5sum] = "5c152209680dab3c319e8923f6c51378"
-SRC_URI[sha256sum] = "c6db3a237747b02d20382a761397563d813b306c020ae28ce25a1c3915fac60f"
+SRC_URI[md5sum] = "6472702a8d9760d166ef8333dcb527a6"
+SRC_URI[sha256sum] = "5ecd5bea72a93ed10eb15a1be9951dd51b52e5da1d4a7ae020efd9826b49e659"
 
 EXTRA_OECONF += "--bindir=${base_bindir}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch b/import-layers/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh/0002-Add-debian-csh-scripts.patch b/import-layers/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh/0002-Add-debian-csh-scripts.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh/0002-Add-debian-csh-scripts.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh/0002-Add-debian-csh-scripts.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh_6.20.00.bb b/import-layers/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh_6.20.00.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.3.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
index 1f5e390..100c449 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.3.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
@@ -6,13 +6,13 @@
 SECTION = "base/shell"
 
 LICENSE = "zsh"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=b7bc853894664be455a922db9805288e"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"
 
 DEPENDS = "ncurses bison-native libcap libpcre gdbm groff-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "d583fbca0c2410bf9542ce8a651c26ca"
-SRC_URI[sha256sum] = "3d94a590ff3c562ecf387da78ac356d6bea79b050a9ef81e3ecb9f8ee513040e"
+SRC_URI[md5sum] = "dfe156fd69b0d8d1745ecf6d6e02e047"
+SRC_URI[sha256sum] = "957bcdb2c57f64c02f673693ea5a7518ef24b6557aeb3a4ce222cefa6d74acc9"
 
 inherit autotools gettext update-alternatives
 
@@ -30,6 +30,9 @@
     zsh_cv_shared_environ=yes \
 "
 
+# Configure respects --bindir from EXTRA_OECONF, but then Src/Makefile will read bindir from environment
+export bindir="${base_bindir}"
+
 EXTRA_OEMAKE = "-e MAKEFLAGS="
 
 ALTERNATIVE_${PN} = "sh"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
index 291b66b..47ce007 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
@@ -3,20 +3,24 @@
 comment: Stage the native anthy helpers mkfiledic, mkdepgraph, mkworddic, 
 comment: calctrans and proccorpus.
 
---- anthy-7811/mkanthydic/Makefile.am~	2006-05-13 18:28:35.000000000 +0900
-+++ anthy-7811/mkanthydic/Makefile.am	2006-06-18 10:56:25.770000000 +0900
-@@ -3,7 +3,7 @@
+Index: anthy-9100h/mkanthydic/Makefile.am
+===================================================================
+--- anthy-9100h.orig/mkanthydic/Makefile.am
++++ anthy-9100h/mkanthydic/Makefile.am
+@@ -3,7 +3,7 @@ noinst_SCRIPTS =
  CLEANFILES = anthy.dic
- INCLUDES = -I$(top_srcdir)/include -DSRCDIR=\"$(srcdir)\"
+ INCLUDES = -I$(top_srcdir)/ -DSRCDIR=\"$(srcdir)\"
  
 -noinst_PROGRAMS = mkfiledic
 +bin_PROGRAMS = mkfiledic
  mkfiledic_SOURCES = mkfiledic.c
  mkfiledic_LDADD = ../src-diclib/libdiclib.la
  
---- anthy-7811/depgraph/Makefile.am~	2006-06-02 00:20:54.000000000 +0900
-+++ anthy-7811/depgraph/Makefile.am	2006-06-18 10:57:19.420000000 +0900
-@@ -9,7 +9,7 @@
+Index: anthy-9100h/depgraph/Makefile.am
+===================================================================
+--- anthy-9100h.orig/depgraph/Makefile.am
++++ anthy-9100h/depgraph/Makefile.am
+@@ -9,7 +9,7 @@ CLEANFILES = anthy.dep
  EXTRA_DIST = indepword.txt $(DEPWORDS)
  
  # Generate the dictionary
@@ -25,10 +29,12 @@
  mkdepgraph_SOURCES = mkdepgraph.c
  mkdepgraph_LDADD =  ../src-main/libanthy.la ../src-worddic/libanthydic.la
  
---- anthy-7811/mkworddic/Makefile.am~	2006-05-13 18:29:07.000000000 +0900
-+++ anthy-7811/mkworddic/Makefile.am	2006-06-18 11:21:56.300000000 +0900
-@@ -16,7 +16,8 @@
-  udict dict.args.in
+Index: anthy-9100h/mkworddic/Makefile.am
+===================================================================
+--- anthy-9100h.orig/mkworddic/Makefile.am
++++ anthy-9100h/mkworddic/Makefile.am
+@@ -26,7 +26,8 @@ DIC_FILES = @top_srcdir@/alt-cannadic/gc
+ 	    @top_srcdir@/mkworddic/udict
  
  # Generate the dictionary
 -noinst_PROGRAMS = mkworddic
@@ -36,10 +42,12 @@
 +bin_PROGRAMS = mkworddic
  mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h
  mkworddic_LDADD = ../src-worddic/libanthydic.la
-
---- anthy-9100e.orig/calctrans/Makefile.am	2008-05-08 15:04:13.000000000 +0200
-+++ anthy-9100e/calctrans/Makefile.am	2008-05-08 15:04:24.000000000 +0200
-@@ -3,7 +3,7 @@
+ 
+Index: anthy-9100h/calctrans/Makefile.am
+===================================================================
+--- anthy-9100h.orig/calctrans/Makefile.am
++++ anthy-9100h/calctrans/Makefile.am
+@@ -3,7 +3,7 @@ EXTRA_DIST =\
   corpus.3.txt corpus.4.txt corpus.5.txt\
   corpus_info weak_words
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
index bf748f3..1c5c494 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
@@ -1,12 +1,13 @@
 upstream: not applicable
 source: stolen from debian
 
-diff -Naur anthy-7811/src-util.orig/Makefile.am anthy-7811/src-util/Makefile.am
---- anthy-7811/src-util.orig/Makefile.am	2006-06-18 10:47:55.790000000 +0900
-+++ anthy-7811/src-util/Makefile.am	2006-06-18 10:48:23.860000000 +0900
-@@ -6,7 +6,8 @@
+Index: anthy-9100h/src-util/Makefile.am
+===================================================================
+--- anthy-9100h.orig/src-util/Makefile.am
++++ anthy-9100h/src-util/Makefile.am
+@@ -8,7 +8,8 @@ ELISP_FILES = anthy.el anthy-dic.el anth
   anthy-isearch.el anthy-azik.el anthy-kyuri.el
- EXTRA_DIST = $(ELISP_FILES) typetab dic-tool-usage.txt rcsize.rb
+ EXTRA_DIST = $(ELISP_FILES) typetab dic-tool-usage.txt anthy.i
  bin_PROGRAMS = anthy-dic-tool anthy-agent anthy-morphological-analyzer
 -ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc
 +#ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
index 9a19876..0ba7c76 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
@@ -1,4 +1,4 @@
-From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001
+From 32b15332e2130a54b25f4fbf6f58b407b851dd8f Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 13 Apr 2015 17:02:13 -0700
 Subject: [PATCH] Unset need_charset_alias when building for musl
@@ -11,14 +11,15 @@
 Upstream-Status: Pending
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
- lib/gnulib.mk | 2 +-
+ gnulib/lib/Makefile.am | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: augeas-1.2.0/gnulib/lib/Makefile.am
-===================================================================
---- augeas-1.2.0.orig/gnulib/lib/Makefile.am
-+++ augeas-1.2.0/gnulib/lib/Makefile.am
+diff --git a/gnulib/lib/Makefile.am b/gnulib/lib/Makefile.am
+index 963b22d..75788d2 100644
+--- a/gnulib/lib/Makefile.am
++++ b/gnulib/lib/Makefile.am
 @@ -463,7 +463,7 @@ install-exec-localcharset: all-local
  	  case '$(host_os)' in \
  	    darwin[56]*) \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch
index abbdbaa..368bb41 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch
@@ -1,14 +1,21 @@
-Add missing GL_GENERATE_ARGZ_H conditional
+From 9a6e6374da7d7056db0950f0f7d6b8b905009775 Mon Sep 17 00:00:00 2001
+From: Constantin Musca <constantinx.musca@intel.com>
+Date: Fri, 15 Jul 2016 10:04:48 +0300
+Subject: [PATCH] Add missing GL_GENERATE_ARGZ_H conditional
 
 - GL_GENERATE_ARGZ_H is used in gnulib/lib/Makefile.am
 
 Upstream-Status: Pending
 Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
 
-Index: augeas-1.0.0/configure.ac
-===================================================================
---- augeas-1.0.0.orig/configure.ac
-+++ augeas-1.0.0/configure.ac
+---
+ configure.ac | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 72b6984..fb9653e 100644
+--- a/configure.ac
++++ b/configure.ac
 @@ -55,6 +55,8 @@ AC_ARG_WITH([failmalloc],
  
  AM_CONDITIONAL([WITH_FAILMALLOC], [test x$with_failmalloc != xno])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch
index b82a3ee..2b18618 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch
@@ -1,15 +1,24 @@
-Ensure that builds in separate builddirs (${B} != ${S}) correctly install the 
+From 8a277957a2579e7149c1850675441b288192077c Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Fri, 15 Jul 2016 10:04:48 +0300
+Subject: [PATCH] augeas: fix separate builddirs
+
+Ensure that builds in separate builddirs (${B} != ${S}) correctly install the
 lenses files.
 
 Upstream-Status: Pending
 
 RP 2013/4/17
 
-Index: augeas-1.0.0/Makefile.am
-===================================================================
---- augeas-1.0.0.orig/Makefile.am	2012-11-02 15:20:11.000000000 +0000
-+++ augeas-1.0.0/Makefile.am	2013-04-17 10:36:24.033400125 +0000
-@@ -5,8 +5,8 @@
+---
+ Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 87d511a..7710b3b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -5,8 +5,8 @@ ACLOCAL_AMFLAGS = -I gnulib/m4
  lensdir=$(datadir)/augeas/lenses/dist
  lenstestdir=$(datadir)/augeas/lenses/dist/tests
  
@@ -18,5 +27,5 @@
 +dist_lens_DATA=$(wildcard $(top_srcdir)/lenses/*.aug)
 +dist_lenstest_DATA=$(wildcard $(top_srcdir)lenses/tests/*.aug)
  
- EXTRA_DIST=augeas.spec build/aux/move-if-change Makefile.am HACKING
+ EXTRA_DIST=augeas.spec build/ac-aux/move-if-change Makefile.am HACKING.md
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
index 976aafb..30d41a1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
@@ -30,7 +30,6 @@
 
 FILES_${PN}-bin = "${bindir}"
 RDEPENDS_${PN}-bin = " \
-    python3-argparse \
     python3-compression \
     python3-core \
     python3-crypt \
@@ -40,8 +39,6 @@
     python3-pickle \
     python3-shell \
     python3-stringold \
-    python3-subprocess \
-    python3-textutils \
     python3-threading \
 "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
similarity index 91%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
index e883c70..29917c8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=35e00f0c4c96a0820a03e0b31e6416be"
 
 SRC_URI = "git://github.com/ceres-solver/ceres-solver.git"
-SRCREV = "19333b0f55c8462381038e70d42af43b52941128"
+SRCREV = "facb199f3eda902360f9e1d5271372b7e54febe1"
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
new file mode 100644
index 0000000..0feafef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
@@ -0,0 +1,17 @@
+Description: install cmake files into /usr/lib/cmake/cpprestsdk
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Upstream-Status: https://github.com/Microsoft/cpprestsdk/pull/737
+Forwarded: https://github.com/Microsoft/cpprestsdk/pull/737
+Last-Update: 2018-04-19
+
+--- cpprest-2.10.2.orig/CMakeLists.txt
++++ cpprest-2.10.2/CMakeLists.txt
+@@ -18,7 +18,7 @@ enable_testing()
+ set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
+ set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.")
+ set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.")
+-set(CPPREST_EXPORT_DIR lib/cpprestsdk CACHE STRING "Directory to install CMake config files.")
++set(CPPREST_EXPORT_DIR lib/cmake/cpprestsdk CACHE STRING "Directory to install CMake config files.")
+ set(CPPREST_INSTALL_HEADERS ON CACHE BOOL "Install header files.")
+ set(CPPREST_INSTALL ON CACHE BOOL "Add install commands.")
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
new file mode 100644
index 0000000..2ba6fc6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/../license.txt;md5=a2e15b954769218ff912468eecd6a02f"
+DEPENDS = "openssl websocketpp zlib boost"
+
+SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master"
+
+SRC_URI += "file://fix-cmake-install.patch"
+
+# tag 2.10.2
+SRCREV= "fea848e2a77563cf2a6f28f8eab396fd6e787fbf"
+
+S = "${WORKDIR}/git/Release"
+
+inherit cmake
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
similarity index 93%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
index abf7d1c..8d3c578 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
@@ -10,8 +10,8 @@
 
 SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
 
-# Release 7.3.4
-SRCREV = "8381ba4e1c4cd5ce98ebd9c24726d51cb203cde0"
+# Release 7.4.0
+SRCREV = "1182533bde3c1fe65be2ead465e87671faa2c027"
 
 S = "${WORKDIR}/git/dos2unix"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
index 59b01b6..13eb794 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
@@ -13,7 +13,7 @@
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b8ba8e77bcda9a53fac0fe39fe957767"
 
-SRC_URI = "http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.4.2/source/${BPN}_${PV}.tar.gz"
+SRC_URI = "https://www.balabit.com/downloads/syslog-ng/open-source-edition/3.4.2/source/${BPN}_${PV}.tar.gz"
 
 inherit autotools pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
similarity index 87%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.6.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
index ed14e16..aae6ec9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
@@ -4,13 +4,11 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
 
 SRC_URI = " \
-    http://www.fftw.org/fftw-${PV}-pl1.tar.gz \
+    http://www.fftw.org/fftw-${PV}.tar.gz \
     file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
 "
-SRC_URI[md5sum] = "682a0e78d6966ca37c7446d4ab4cc2a1"
-SRC_URI[sha256sum] = "1ef4aa8427d9785839bc767f3eb6a84fcb5e9a37c31ed77a04e7e047519a183d"
-
-S = "${WORKDIR}/fftw-${PV}-pl1"
+SRC_URI[md5sum] = "0d5915d7d39b3253c1cc05030d79ac47"
+SRC_URI[sha256sum] = "3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573"
 
 inherit autotools pkgconfig
 
@@ -76,6 +74,7 @@
 FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom"
 FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
 
-RDEPENDS_${PN}-dev = ""
+FILES_${PN}-dev += "${libdir}/cmake"
+RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf"
 
 BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff
deleted file mode 100644
index b3e4b7a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff
+++ /dev/null
@@ -1,6615 +0,0 @@
-Index: lang/usenglish/Makefile
-===================================================================
---- flite-1.3-release/lang/usenglish/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/lang/usenglish/Makefile	(.../release-1.2)	(revision 7)
-@@ -38,6 +38,7 @@
- DIRNAME=lang/usenglish
- BUILD_DIRS = 
- ALL_DIRS= 
-+include $(TOP)/config/config
- H = usenglish.h us_int_accent_cart.h us_int_tone_cart.h us_durz_cart.h \
-     us_ffeatures.h us_phrasing_cart.h us_text.h us_f0.h us_nums_cart.h
- SRCS = us_int_accent_cart.c us_int_tone_cart.c us_f0_model.c \
-@@ -45,7 +46,11 @@
-        us_phoneset.c us_ffeatures.c us_phrasing_cart.c \
-        us_gpos.c us_text.c us_expand.c us_postlex.c \
-        us_nums_cart.c us_aswd.c usenglish.c 
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- SCM=
- FILES = Makefile $(SCM) $(SRCS) $(H)
- LIBNAME = flite_usenglish
-Index: lang/cmu_us_kal/Makefile
-===================================================================
---- flite-1.3-release/lang/cmu_us_kal/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/lang/cmu_us_kal/Makefile	(.../release-1.2)	(revision 7)
-@@ -43,7 +43,12 @@
-        cmu_us_kal_lpc.c \
-        cmu_us_kal_res.c \
-        cmu_us_kal_residx.c
--OBJS = $(SRCS:.c=.o)
-+include $(TOP)/config/config
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- SCM=
- FILES = Makefile $(SCM) $(SRCS) $(H)
- LIBNAME = flite_cmu_us_kal
-Index: lang/cmu_us_kal16/Makefile
-===================================================================
---- flite-1.3-release/lang/cmu_us_kal16/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/lang/cmu_us_kal16/Makefile	(.../release-1.2)	(revision 7)
-@@ -44,7 +44,12 @@
-        cmu_us_kal16_lpc.c \
-        cmu_us_kal16_res.c \
-        cmu_us_kal16_residx.c
--OBJS = $(SRCS:.c=.o)
-+include $(TOP)/config/config
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- SCM=
- FILES = Makefile $(SCM) $(SRCS) $(H)
- LIBNAME = flite_cmu_us_kal16
-Index: lang/cmu_time_awb/Makefile
-===================================================================
---- flite-1.3-release/lang/cmu_time_awb/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/lang/cmu_time_awb/Makefile	(.../release-1.2)	(revision 7)
-@@ -45,7 +45,12 @@
- 	cmu_time_awb_mcep.c \
- 	cmu_time_awb_lpc.c \
- 	cmu_time_awb_lex_entry.c
--OBJS = $(SRCS:.c=.o)
-+include $(TOP)/config/config
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- SCM=
- FILES = Makefile $(SCM) $(SRCS) $(H)
- LIBNAME = flite_cmu_time_awb
-Index: lang/cmulex/Makefile
-===================================================================
---- flite-1.3-release/lang/cmulex/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/lang/cmulex/Makefile	(.../release-1.2)	(revision 7)
-@@ -38,13 +38,20 @@
- DIRNAME=lang/cmulex
- BUILD_DIRS = 
- ALL_DIRS= 
-+
- H = cmu_lts_model.h cmulex.h
- SRCS = cmu_lts_rules.c cmu_lts_model.c \
-        cmu_lex.c cmu_lex_entries.c cmu_lex_data.c
- LEX_DATA_INCLUDES = cmu_lex_data_raw.c cmu_lex_num_bytes.c \
-      cmu_lex_phones_huff_table.c cmu_lex_entries_huff_table.c
- 
--OBJS = $(SRCS:.c=.o)
-+include $(TOP)/config/config
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
-+
- SCRIPTS=make_cmulex  
- 
- SCM=
-Index: configure
-===================================================================
---- flite-1.3-release/configure	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/configure	(.../release-1.2)	(revision 7)
-@@ -1,324 +1,38 @@
- #! /bin/sh
-+
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by GNU Autoconf 2.57.
-+# Generated automatically using autoconf version 2.13 
-+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
- #
--# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
--# Free Software Foundation, Inc.
- # This configure script is free software; the Free Software Foundation
- # gives unlimited permission to copy, distribute and modify it.
--## --------------------- ##
--## M4sh Initialization.  ##
--## --------------------- ##
- 
--# Be Bourne compatible
--if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
--  emulate sh
--  NULLCMD=:
--  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
--  # is contrary to our usage.  Disable this feature.
--  alias -g '${1+"$@"}'='"$@"'
--elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
--  set -o posix
--fi
--
--# Support unset when possible.
--if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
--  as_unset=unset
--else
--  as_unset=false
--fi
--
--
--# Work around bugs in pre-3.0 UWIN ksh.
--$as_unset ENV MAIL MAILPATH
--PS1='$ '
--PS2='> '
--PS4='+ '
--
--# NLS nuisances.
--for as_var in \
--  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
--  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
--  LC_TELEPHONE LC_TIME
--do
--  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
--    eval $as_var=C; export $as_var
--  else
--    $as_unset $as_var
--  fi
--done
--
--# Required to use basename.
--if expr a : '\(a\)' >/dev/null 2>&1; then
--  as_expr=expr
--else
--  as_expr=false
--fi
--
--if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
--  as_basename=basename
--else
--  as_basename=false
--fi
--
--
--# Name of the executable.
--as_me=`$as_basename "$0" ||
--$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
--	 X"$0" : 'X\(//\)$' \| \
--	 X"$0" : 'X\(/\)$' \| \
--	 .     : '\(.\)' 2>/dev/null ||
--echo X/"$0" |
--    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
--  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
--  	  /^X\/\(\/\).*/{ s//\1/; q; }
--  	  s/.*/./; q'`
--
--
--# PATH needs CR, and LINENO needs CR and PATH.
--# Avoid depending upon Character Ranges.
--as_cr_letters='abcdefghijklmnopqrstuvwxyz'
--as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
--as_cr_Letters=$as_cr_letters$as_cr_LETTERS
--as_cr_digits='0123456789'
--as_cr_alnum=$as_cr_Letters$as_cr_digits
--
--# The user is always right.
--if test "${PATH_SEPARATOR+set}" != set; then
--  echo "#! /bin/sh" >conf$$.sh
--  echo  "exit 0"   >>conf$$.sh
--  chmod +x conf$$.sh
--  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
--    PATH_SEPARATOR=';'
--  else
--    PATH_SEPARATOR=:
--  fi
--  rm -f conf$$.sh
--fi
--
--
--  as_lineno_1=$LINENO
--  as_lineno_2=$LINENO
--  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
--  test "x$as_lineno_1" != "x$as_lineno_2" &&
--  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
--  # Find who we are.  Look in the path if we contain no path at all
--  # relative or not.
--  case $0 in
--    *[\\/]* ) as_myself=$0 ;;
--    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
--done
--
--       ;;
--  esac
--  # We did not find ourselves, most probably we were run as `sh COMMAND'
--  # in which case we are not to be found in the path.
--  if test "x$as_myself" = x; then
--    as_myself=$0
--  fi
--  if test ! -f "$as_myself"; then
--    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
--   { (exit 1); exit 1; }; }
--  fi
--  case $CONFIG_SHELL in
--  '')
--    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for as_base in sh bash ksh sh5; do
--	 case $as_dir in
--	 /*)
--	   if ("$as_dir/$as_base" -c '
--  as_lineno_1=$LINENO
--  as_lineno_2=$LINENO
--  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
--  test "x$as_lineno_1" != "x$as_lineno_2" &&
--  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
--	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
--	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
--	     CONFIG_SHELL=$as_dir/$as_base
--	     export CONFIG_SHELL
--	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
--	   fi;;
--	 esac
--       done
--done
--;;
--  esac
--
--  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
--  # uniformly replaced by the line number.  The first 'sed' inserts a
--  # line-number line before each line; the second 'sed' does the real
--  # work.  The second script uses 'N' to pair each line-number line
--  # with the numbered line, and appends trailing '-' during
--  # substitution so that $LINENO is not a special case at line end.
--  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
--  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
--  sed '=' <$as_myself |
--    sed '
--      N
--      s,$,-,
--      : loop
--      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
--      t loop
--      s,-$,,
--      s,^['$as_cr_digits']*\n,,
--    ' >$as_me.lineno &&
--  chmod +x $as_me.lineno ||
--    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
--   { (exit 1); exit 1; }; }
--
--  # Don't try to exec as it changes $[0], causing all sort of problems
--  # (the dirname of $[0] is not the place where we might find the
--  # original and so on.  Autoconf is especially sensible to this).
--  . ./$as_me.lineno
--  # Exit status is that of the last command.
--  exit
--}
--
--
--case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
--  *c*,-n*) ECHO_N= ECHO_C='
--' ECHO_T='	' ;;
--  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
--  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
--esac
--
--if expr a : '\(a\)' >/dev/null 2>&1; then
--  as_expr=expr
--else
--  as_expr=false
--fi
--
--rm -f conf$$ conf$$.exe conf$$.file
--echo >conf$$.file
--if ln -s conf$$.file conf$$ 2>/dev/null; then
--  # We could just check for DJGPP; but this test a) works b) is more generic
--  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
--  if test -f conf$$.exe; then
--    # Don't use ln at all; we don't have any links
--    as_ln_s='cp -p'
--  else
--    as_ln_s='ln -s'
--  fi
--elif ln conf$$.file conf$$ 2>/dev/null; then
--  as_ln_s=ln
--else
--  as_ln_s='cp -p'
--fi
--rm -f conf$$ conf$$.exe conf$$.file
--
--if mkdir -p . 2>/dev/null; then
--  as_mkdir_p=:
--else
--  as_mkdir_p=false
--fi
--
--as_executable_p="test -f"
--
--# Sed expression to map a string onto a valid CPP name.
--as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
--
--# Sed expression to map a string onto a valid variable name.
--as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
--
--
--# IFS
--# We need space, tab and new line, in precisely that order.
--as_nl='
--'
--IFS=" 	$as_nl"
--
--# CDPATH.
--$as_unset CDPATH
--
--
--# Name of the host.
--# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
--# so uname gets run too.
--ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
--
--exec 6>&1
--
--#
--# Initializations.
--#
-+# Defaults:
-+ac_help=
- ac_default_prefix=/usr/local
--ac_config_libobj_dir=.
--cross_compiling=no
--subdirs=
--MFLAGS=
--MAKEFLAGS=
--SHELL=${CONFIG_SHELL-/bin/sh}
-+# Any additions from configure.in:
-+ac_help="$ac_help
-+  --disable-shared     without shared library support"
-+ac_help="$ac_help
-+  --disable-sockets     without socket support"
-+ac_help="$ac_help
-+  --with-audio          with specific audio support (none linux freebsd etc) "
-+ac_help="$ac_help
-+  --with-lang           with language "
-+ac_help="$ac_help
-+  --with-vox            with vox "
-+ac_help="$ac_help
-+  --with-lex            with lexicon "
- 
--# Maximum number of lines to put in a shell here document.
--# This variable seems obsolete.  It should probably be removed, and
--# only ac_max_sed_lines should be used.
--: ${ac_max_here_lines=38}
--
--# Identity of this package.
--PACKAGE_NAME=
--PACKAGE_TARNAME=
--PACKAGE_VERSION=
--PACKAGE_STRING=
--PACKAGE_BUGREPORT=
--
--ac_unique_file="include/flite.h"
--# Factoring default headers for most tests.
--ac_includes_default="\
--#include <stdio.h>
--#if HAVE_SYS_TYPES_H
--# include <sys/types.h>
--#endif
--#if HAVE_SYS_STAT_H
--# include <sys/stat.h>
--#endif
--#if STDC_HEADERS
--# include <stdlib.h>
--# include <stddef.h>
--#else
--# if HAVE_STDLIB_H
--#  include <stdlib.h>
--# endif
--#endif
--#if HAVE_STRING_H
--# if !STDC_HEADERS && HAVE_MEMORY_H
--#  include <memory.h>
--# endif
--# include <string.h>
--#endif
--#if HAVE_STRINGS_H
--# include <strings.h>
--#endif
--#if HAVE_INTTYPES_H
--# include <inttypes.h>
--#else
--# if HAVE_STDINT_H
--#  include <stdint.h>
--# endif
--#endif
--#if HAVE_UNISTD_H
--# include <unistd.h>
--#endif"
--
--ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR ac_ct_AR TARGET_OS TARGET_CPU M68KCC LEXDEFS VOXDEFS HOST_OS HOST_CPU OTHERLIBS SHFLAGS MMAPTYPE STDIOTYPE CPP EGREP AUDIODRIVER AUDIODEFS AUDIOLIBS FL_LANG FL_VOX FL_LEX LIBOBJS LTLIBOBJS'
--ac_subst_files=''
--
- # Initialize some variables set by options.
--ac_init_help=
--ac_init_version=false
- # The variables have the same names as the options, with
- # dashes changed to underlines.
--cache_file=/dev/null
-+build=NONE
-+cache_file=./config.cache
- exec_prefix=NONE
-+host=NONE
- no_create=
-+nonopt=NONE
- no_recursion=
- prefix=NONE
- program_prefix=NONE
-@@ -327,15 +41,10 @@
- silent=
- site=
- srcdir=
-+target=NONE
- verbose=
- x_includes=NONE
- x_libraries=NONE
--
--# Installation directory options.
--# These are left unexpanded so users can "make install exec_prefix=/foo"
--# and all the variables that are supposed to be based on exec_prefix
--# by default will actually change.
--# Use braces instead of parens because sh, perl, etc. also accept them.
- bindir='${exec_prefix}/bin'
- sbindir='${exec_prefix}/sbin'
- libexecdir='${exec_prefix}/libexec'
-@@ -349,9 +58,17 @@
- infodir='${prefix}/info'
- mandir='${prefix}/man'
- 
-+# Initialize some other variables.
-+subdirs=
-+MFLAGS= MAKEFLAGS=
-+SHELL=${CONFIG_SHELL-/bin/sh}
-+# Maximum number of lines to put in a shell here document.
-+ac_max_here_lines=12
-+
- ac_prev=
- for ac_option
- do
-+
-   # If the previous option needs an argument, assign it.
-   if test -n "$ac_prev"; then
-     eval "$ac_prev=\$ac_option"
-@@ -359,59 +76,59 @@
-     continue
-   fi
- 
--  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-+  case "$ac_option" in
-+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-+  *) ac_optarg= ;;
-+  esac
- 
-   # Accept the important Cygnus configure options, so we can diagnose typos.
- 
--  case $ac_option in
-+  case "$ac_option" in
- 
-   -bindir | --bindir | --bindi | --bind | --bin | --bi)
-     ac_prev=bindir ;;
-   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
--    bindir=$ac_optarg ;;
-+    bindir="$ac_optarg" ;;
- 
-   -build | --build | --buil | --bui | --bu)
--    ac_prev=build_alias ;;
-+    ac_prev=build ;;
-   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
--    build_alias=$ac_optarg ;;
-+    build="$ac_optarg" ;;
- 
-   -cache-file | --cache-file | --cache-fil | --cache-fi \
-   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-     ac_prev=cache_file ;;
-   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
--    cache_file=$ac_optarg ;;
-+    cache_file="$ac_optarg" ;;
- 
--  --config-cache | -C)
--    cache_file=config.cache ;;
--
-   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-     ac_prev=datadir ;;
-   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-   | --da=*)
--    datadir=$ac_optarg ;;
-+    datadir="$ac_optarg" ;;
- 
-   -disable-* | --disable-*)
--    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
-     # Reject names that are not valid shell variable names.
--    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
--      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
--   { (exit 1); exit 1; }; }
--    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
--    eval "enable_$ac_feature=no" ;;
-+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-+    fi
-+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-+    eval "enable_${ac_feature}=no" ;;
- 
-   -enable-* | --enable-*)
--    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
-     # Reject names that are not valid shell variable names.
--    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
--      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
--   { (exit 1); exit 1; }; }
--    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
--    case $ac_option in
--      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-+    fi
-+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-+    case "$ac_option" in
-+      *=*) ;;
-       *) ac_optarg=yes ;;
-     esac
--    eval "enable_$ac_feature='$ac_optarg'" ;;
-+    eval "enable_${ac_feature}='$ac_optarg'" ;;
- 
-   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-@@ -420,47 +137,95 @@
-   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-   | --exec=* | --exe=* | --ex=*)
--    exec_prefix=$ac_optarg ;;
-+    exec_prefix="$ac_optarg" ;;
- 
-   -gas | --gas | --ga | --g)
-     # Obsolete; use --with-gas.
-     with_gas=yes ;;
- 
--  -help | --help | --hel | --he | -h)
--    ac_init_help=long ;;
--  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
--    ac_init_help=recursive ;;
--  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
--    ac_init_help=short ;;
-+  -help | --help | --hel | --he)
-+    # Omit some internal or obsolete options to make the list less imposing.
-+    # This message is too long to be a string in the A/UX 3.1 sh.
-+    cat << EOF
-+Usage: configure [options] [host]
-+Options: [defaults in brackets after descriptions]
-+Configuration:
-+  --cache-file=FILE       cache test results in FILE
-+  --help                  print this message
-+  --no-create             do not create output files
-+  --quiet, --silent       do not print \`checking...' messages
-+  --version               print the version of autoconf that created configure
-+Directory and file names:
-+  --prefix=PREFIX         install architecture-independent files in PREFIX
-+                          [$ac_default_prefix]
-+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-+                          [same as prefix]
-+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-+  --datadir=DIR           read-only architecture-independent data in DIR
-+                          [PREFIX/share]
-+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-+                          [PREFIX/com]
-+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-+  --includedir=DIR        C header files in DIR [PREFIX/include]
-+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-+  --infodir=DIR           info documentation in DIR [PREFIX/info]
-+  --mandir=DIR            man documentation in DIR [PREFIX/man]
-+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
-+  --program-prefix=PREFIX prepend PREFIX to installed program names
-+  --program-suffix=SUFFIX append SUFFIX to installed program names
-+  --program-transform-name=PROGRAM
-+                          run sed PROGRAM on installed program names
-+EOF
-+    cat << EOF
-+Host type:
-+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
-+  --host=HOST             configure for HOST [guessed]
-+  --target=TARGET         configure for TARGET [TARGET=HOST]
-+Features and packages:
-+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-+  --x-includes=DIR        X include files are in DIR
-+  --x-libraries=DIR       X library files are in DIR
-+EOF
-+    if test -n "$ac_help"; then
-+      echo "--enable and --with options recognized:$ac_help"
-+    fi
-+    exit 0 ;;
- 
-   -host | --host | --hos | --ho)
--    ac_prev=host_alias ;;
-+    ac_prev=host ;;
-   -host=* | --host=* | --hos=* | --ho=*)
--    host_alias=$ac_optarg ;;
-+    host="$ac_optarg" ;;
- 
-   -includedir | --includedir | --includedi | --included | --include \
-   | --includ | --inclu | --incl | --inc)
-     ac_prev=includedir ;;
-   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-   | --includ=* | --inclu=* | --incl=* | --inc=*)
--    includedir=$ac_optarg ;;
-+    includedir="$ac_optarg" ;;
- 
-   -infodir | --infodir | --infodi | --infod | --info | --inf)
-     ac_prev=infodir ;;
-   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
--    infodir=$ac_optarg ;;
-+    infodir="$ac_optarg" ;;
- 
-   -libdir | --libdir | --libdi | --libd)
-     ac_prev=libdir ;;
-   -libdir=* | --libdir=* | --libdi=* | --libd=*)
--    libdir=$ac_optarg ;;
-+    libdir="$ac_optarg" ;;
- 
-   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-   | --libexe | --libex | --libe)
-     ac_prev=libexecdir ;;
-   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-   | --libexe=* | --libex=* | --libe=*)
--    libexecdir=$ac_optarg ;;
-+    libexecdir="$ac_optarg" ;;
- 
-   -localstatedir | --localstatedir | --localstatedi | --localstated \
-   | --localstate | --localstat | --localsta | --localst \
-@@ -469,19 +234,19 @@
-   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
--    localstatedir=$ac_optarg ;;
-+    localstatedir="$ac_optarg" ;;
- 
-   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-     ac_prev=mandir ;;
-   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
--    mandir=$ac_optarg ;;
-+    mandir="$ac_optarg" ;;
- 
-   -nfp | --nfp | --nf)
-     # Obsolete; use --without-fp.
-     with_fp=no ;;
- 
-   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
--  | --no-cr | --no-c | -n)
-+  | --no-cr | --no-c)
-     no_create=yes ;;
- 
-   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-@@ -495,26 +260,26 @@
-   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
--    oldincludedir=$ac_optarg ;;
-+    oldincludedir="$ac_optarg" ;;
- 
-   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-     ac_prev=prefix ;;
-   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
--    prefix=$ac_optarg ;;
-+    prefix="$ac_optarg" ;;
- 
-   -program-prefix | --program-prefix | --program-prefi | --program-pref \
-   | --program-pre | --program-pr | --program-p)
-     ac_prev=program_prefix ;;
-   -program-prefix=* | --program-prefix=* | --program-prefi=* \
-   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
--    program_prefix=$ac_optarg ;;
-+    program_prefix="$ac_optarg" ;;
- 
-   -program-suffix | --program-suffix | --program-suffi | --program-suff \
-   | --program-suf | --program-su | --program-s)
-     ac_prev=program_suffix ;;
-   -program-suffix=* | --program-suffix=* | --program-suffi=* \
-   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
--    program_suffix=$ac_optarg ;;
-+    program_suffix="$ac_optarg" ;;
- 
-   -program-transform-name | --program-transform-name \
-   | --program-transform-nam | --program-transform-na \
-@@ -531,7 +296,7 @@
-   | --program-transfo=* | --program-transf=* \
-   | --program-trans=* | --program-tran=* \
-   | --progr-tra=* | --program-tr=* | --program-t=*)
--    program_transform_name=$ac_optarg ;;
-+    program_transform_name="$ac_optarg" ;;
- 
-   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-   | -silent | --silent | --silen | --sile | --sil)
-@@ -541,7 +306,7 @@
-     ac_prev=sbindir ;;
-   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-   | --sbi=* | --sb=*)
--    sbindir=$ac_optarg ;;
-+    sbindir="$ac_optarg" ;;
- 
-   -sharedstatedir | --sharedstatedir | --sharedstatedi \
-   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-@@ -552,57 +317,58 @@
-   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-   | --sha=* | --sh=*)
--    sharedstatedir=$ac_optarg ;;
-+    sharedstatedir="$ac_optarg" ;;
- 
-   -site | --site | --sit)
-     ac_prev=site ;;
-   -site=* | --site=* | --sit=*)
--    site=$ac_optarg ;;
-+    site="$ac_optarg" ;;
- 
-   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-     ac_prev=srcdir ;;
-   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
--    srcdir=$ac_optarg ;;
-+    srcdir="$ac_optarg" ;;
- 
-   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-   | --syscon | --sysco | --sysc | --sys | --sy)
-     ac_prev=sysconfdir ;;
-   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
--    sysconfdir=$ac_optarg ;;
-+    sysconfdir="$ac_optarg" ;;
- 
-   -target | --target | --targe | --targ | --tar | --ta | --t)
--    ac_prev=target_alias ;;
-+    ac_prev=target ;;
-   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
--    target_alias=$ac_optarg ;;
-+    target="$ac_optarg" ;;
- 
-   -v | -verbose | --verbose | --verbos | --verbo | --verb)
-     verbose=yes ;;
- 
--  -version | --version | --versio | --versi | --vers | -V)
--    ac_init_version=: ;;
-+  -version | --version | --versio | --versi | --vers)
-+    echo "configure generated by autoconf version 2.13"
-+    exit 0 ;;
- 
-   -with-* | --with-*)
--    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
-     # Reject names that are not valid shell variable names.
--    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
--      { echo "$as_me: error: invalid package name: $ac_package" >&2
--   { (exit 1); exit 1; }; }
-+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-+    fi
-     ac_package=`echo $ac_package| sed 's/-/_/g'`
--    case $ac_option in
--      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-+    case "$ac_option" in
-+      *=*) ;;
-       *) ac_optarg=yes ;;
-     esac
--    eval "with_$ac_package='$ac_optarg'" ;;
-+    eval "with_${ac_package}='$ac_optarg'" ;;
- 
-   -without-* | --without-*)
--    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
-     # Reject names that are not valid shell variable names.
--    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
--      { echo "$as_me: error: invalid package name: $ac_package" >&2
--   { (exit 1); exit 1; }; }
--    ac_package=`echo $ac_package | sed 's/-/_/g'`
--    eval "with_$ac_package=no" ;;
-+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-+    fi
-+    ac_package=`echo $ac_package| sed 's/-/_/g'`
-+    eval "with_${ac_package}=no" ;;
- 
-   --x)
-     # Obsolete; use --with-x.
-@@ -613,110 +379,99 @@
-     ac_prev=x_includes ;;
-   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
--    x_includes=$ac_optarg ;;
-+    x_includes="$ac_optarg" ;;
- 
-   -x-libraries | --x-libraries | --x-librarie | --x-librari \
-   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-     ac_prev=x_libraries ;;
-   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
--    x_libraries=$ac_optarg ;;
-+    x_libraries="$ac_optarg" ;;
- 
--  -*) { echo "$as_me: error: unrecognized option: $ac_option
--Try \`$0 --help' for more information." >&2
--   { (exit 1); exit 1; }; }
-+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
-     ;;
- 
--  *=*)
--    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
--    # Reject names that are not valid shell variable names.
--    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
--      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
--   { (exit 1); exit 1; }; }
--    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
--    eval "$ac_envvar='$ac_optarg'"
--    export $ac_envvar ;;
--
-   *)
--    # FIXME: should be removed in autoconf 3.0.
--    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
--    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
--      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
--    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-+      echo "configure: warning: $ac_option: invalid host type" 1>&2
-+    fi
-+    if test "x$nonopt" != xNONE; then
-+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-+    fi
-+    nonopt="$ac_option"
-     ;;
- 
-   esac
- done
- 
- if test -n "$ac_prev"; then
--  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
--  { echo "$as_me: error: missing argument to $ac_option" >&2
--   { (exit 1); exit 1; }; }
-+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
- fi
- 
--# Be sure to have absolute paths.
--for ac_var in exec_prefix prefix
--do
--  eval ac_val=$`echo $ac_var`
--  case $ac_val in
--    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
--    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
--   { (exit 1); exit 1; }; };;
--  esac
--done
-+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
- 
--# Be sure to have absolute paths.
--for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
--              localstatedir libdir includedir oldincludedir infodir mandir
-+# File descriptor usage:
-+# 0 standard input
-+# 1 file creation
-+# 2 errors and warnings
-+# 3 some systems may open it to /dev/tty
-+# 4 used on the Kubota Titan
-+# 6 checking for... messages and results
-+# 5 compiler messages saved in config.log
-+if test "$silent" = yes; then
-+  exec 6>/dev/null
-+else
-+  exec 6>&1
-+fi
-+exec 5>./config.log
-+
-+echo "\
-+This file contains any messages produced by compilers while
-+running configure, to aid debugging if configure makes a mistake.
-+" 1>&5
-+
-+# Strip out --no-create and --no-recursion so they do not pile up.
-+# Also quote any args containing shell metacharacters.
-+ac_configure_args=
-+for ac_arg
- do
--  eval ac_val=$`echo $ac_var`
--  case $ac_val in
--    [\\/$]* | ?:[\\/]* ) ;;
--    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
--   { (exit 1); exit 1; }; };;
-+  case "$ac_arg" in
-+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-+  | --no-cr | --no-c) ;;
-+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
-   esac
- done
- 
--# There might be people who depend on the old broken behavior: `$host'
--# used to hold the argument of --host etc.
--# FIXME: To remove some day.
--build=$build_alias
--host=$host_alias
--target=$target_alias
-+# NLS nuisances.
-+# Only set these to C if already set.  These must not be set unconditionally
-+# because not all systems understand e.g. LANG=C (notably SCO).
-+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-+# Non-C LC_CTYPE values break the ctype check.
-+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
- 
--# FIXME: To remove some day.
--if test "x$host_alias" != x; then
--  if test "x$build_alias" = x; then
--    cross_compiling=maybe
--    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
--    If a cross compiler is detected then cross compile mode will be used." >&2
--  elif test "x$build_alias" != "x$host_alias"; then
--    cross_compiling=yes
--  fi
--fi
-+# confdefs.h avoids OS command line length limits that DEFS can exceed.
-+rm -rf conftest* confdefs.h
-+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-+echo > confdefs.h
- 
--ac_tool_prefix=
--test -n "$host_alias" && ac_tool_prefix=$host_alias-
-+# A filename unique to this package, relative to the directory that
-+# configure is in, which we can look for to find out if srcdir is correct.
-+ac_unique_file=include/flite.h
- 
--test "$silent" = yes && exec 6>/dev/null
--
--
- # Find the source files, if location was not specified.
- if test -z "$srcdir"; then
-   ac_srcdir_defaulted=yes
-   # Try the directory containing this script, then its parent.
--  ac_confdir=`(dirname "$0") 2>/dev/null ||
--$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
--         X"$0" : 'X\(//\)[^/]' \| \
--         X"$0" : 'X\(//\)$' \| \
--         X"$0" : 'X\(/\)' \| \
--         .     : '\(.\)' 2>/dev/null ||
--echo X"$0" |
--    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
--  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
--  	  /^X\(\/\/\)$/{ s//\1/; q; }
--  	  /^X\(\/\).*/{ s//\1/; q; }
--  	  s/.*/./; q'`
-+  ac_prog=$0
-+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
-+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
-   srcdir=$ac_confdir
-   if test ! -r $srcdir/$ac_unique_file; then
-     srcdir=..
-@@ -726,441 +481,13 @@
- fi
- if test ! -r $srcdir/$ac_unique_file; then
-   if test "$ac_srcdir_defaulted" = yes; then
--    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
--   { (exit 1); exit 1; }; }
-+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
-   else
--    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
--   { (exit 1); exit 1; }; }
-+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
-   fi
- fi
--(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
--  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
--   { (exit 1); exit 1; }; }
--srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
--ac_env_build_alias_set=${build_alias+set}
--ac_env_build_alias_value=$build_alias
--ac_cv_env_build_alias_set=${build_alias+set}
--ac_cv_env_build_alias_value=$build_alias
--ac_env_host_alias_set=${host_alias+set}
--ac_env_host_alias_value=$host_alias
--ac_cv_env_host_alias_set=${host_alias+set}
--ac_cv_env_host_alias_value=$host_alias
--ac_env_target_alias_set=${target_alias+set}
--ac_env_target_alias_value=$target_alias
--ac_cv_env_target_alias_set=${target_alias+set}
--ac_cv_env_target_alias_value=$target_alias
--ac_env_CC_set=${CC+set}
--ac_env_CC_value=$CC
--ac_cv_env_CC_set=${CC+set}
--ac_cv_env_CC_value=$CC
--ac_env_CFLAGS_set=${CFLAGS+set}
--ac_env_CFLAGS_value=$CFLAGS
--ac_cv_env_CFLAGS_set=${CFLAGS+set}
--ac_cv_env_CFLAGS_value=$CFLAGS
--ac_env_LDFLAGS_set=${LDFLAGS+set}
--ac_env_LDFLAGS_value=$LDFLAGS
--ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
--ac_cv_env_LDFLAGS_value=$LDFLAGS
--ac_env_CPPFLAGS_set=${CPPFLAGS+set}
--ac_env_CPPFLAGS_value=$CPPFLAGS
--ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
--ac_cv_env_CPPFLAGS_value=$CPPFLAGS
--ac_env_CPP_set=${CPP+set}
--ac_env_CPP_value=$CPP
--ac_cv_env_CPP_set=${CPP+set}
--ac_cv_env_CPP_value=$CPP
-+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
- 
--#
--# Report the --help message.
--#
--if test "$ac_init_help" = "long"; then
--  # Omit some internal or obsolete options to make the list less imposing.
--  # This message is too long to be a string in the A/UX 3.1 sh.
--  cat <<_ACEOF
--\`configure' configures this package to adapt to many kinds of systems.
--
--Usage: $0 [OPTION]... [VAR=VALUE]...
--
--To assign environment variables (e.g., CC, CFLAGS...), specify them as
--VAR=VALUE.  See below for descriptions of some of the useful variables.
--
--Defaults for the options are specified in brackets.
--
--Configuration:
--  -h, --help              display this help and exit
--      --help=short        display options specific to this package
--      --help=recursive    display the short help of all the included packages
--  -V, --version           display version information and exit
--  -q, --quiet, --silent   do not print \`checking...' messages
--      --cache-file=FILE   cache test results in FILE [disabled]
--  -C, --config-cache      alias for \`--cache-file=config.cache'
--  -n, --no-create         do not create output files
--      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
--
--_ACEOF
--
--  cat <<_ACEOF
--Installation directories:
--  --prefix=PREFIX         install architecture-independent files in PREFIX
--                          [$ac_default_prefix]
--  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
--                          [PREFIX]
--
--By default, \`make install' will install all the files in
--\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
--an installation prefix other than \`$ac_default_prefix' using \`--prefix',
--for instance \`--prefix=\$HOME'.
--
--For better control, use the options below.
--
--Fine tuning of the installation directories:
--  --bindir=DIR           user executables [EPREFIX/bin]
--  --sbindir=DIR          system admin executables [EPREFIX/sbin]
--  --libexecdir=DIR       program executables [EPREFIX/libexec]
--  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
--  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
--  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
--  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
--  --libdir=DIR           object code libraries [EPREFIX/lib]
--  --includedir=DIR       C header files [PREFIX/include]
--  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
--  --infodir=DIR          info documentation [PREFIX/info]
--  --mandir=DIR           man documentation [PREFIX/man]
--_ACEOF
--
--  cat <<\_ACEOF
--
--System types:
--  --build=BUILD     configure for building on BUILD [guessed]
--  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
--  --target=TARGET   configure for building compilers for TARGET [HOST]
--_ACEOF
--fi
--
--if test -n "$ac_init_help"; then
--
--  cat <<\_ACEOF
--
--Optional Features:
--  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
--  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
--  --disable-shared     without shared library support
--  --disable-sockets     without socket support
--
--Optional Packages:
--  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
--  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
--  --with-audio          with specific audio support (none linux freebsd etc)
--  --with-lang           with language
--  --with-vox            with vox
--  --with-lex            with lexicon
--
--Some influential environment variables:
--  CC          C compiler command
--  CFLAGS      C compiler flags
--  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
--              nonstandard directory <lib dir>
--  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
--              headers in a nonstandard directory <include dir>
--  CPP         C preprocessor
--
--Use these variables to override the choices made by `configure' or to help
--it to find libraries and programs with nonstandard names/locations.
--
--_ACEOF
--fi
--
--if test "$ac_init_help" = "recursive"; then
--  # If there are subdirs, report their specific --help.
--  ac_popdir=`pwd`
--  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
--    test -d $ac_dir || continue
--    ac_builddir=.
--
--if test "$ac_dir" != .; then
--  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
--  # A "../" for each directory in $ac_dir_suffix.
--  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
--else
--  ac_dir_suffix= ac_top_builddir=
--fi
--
--case $srcdir in
--  .)  # No --srcdir option.  We are building in place.
--    ac_srcdir=.
--    if test -z "$ac_top_builddir"; then
--       ac_top_srcdir=.
--    else
--       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
--    fi ;;
--  [\\/]* | ?:[\\/]* )  # Absolute path.
--    ac_srcdir=$srcdir$ac_dir_suffix;
--    ac_top_srcdir=$srcdir ;;
--  *) # Relative path.
--    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
--    ac_top_srcdir=$ac_top_builddir$srcdir ;;
--esac
--# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
--# absolute.
--ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
--ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
--ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
--ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
--
--    cd $ac_dir
--    # Check for guested configure; otherwise get Cygnus style configure.
--    if test -f $ac_srcdir/configure.gnu; then
--      echo
--      $SHELL $ac_srcdir/configure.gnu  --help=recursive
--    elif test -f $ac_srcdir/configure; then
--      echo
--      $SHELL $ac_srcdir/configure  --help=recursive
--    elif test -f $ac_srcdir/configure.ac ||
--           test -f $ac_srcdir/configure.in; then
--      echo
--      $ac_configure --help
--    else
--      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
--    fi
--    cd $ac_popdir
--  done
--fi
--
--test -n "$ac_init_help" && exit 0
--if $ac_init_version; then
--  cat <<\_ACEOF
--
--Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
--Free Software Foundation, Inc.
--This configure script is free software; the Free Software Foundation
--gives unlimited permission to copy, distribute and modify it.
--_ACEOF
--  exit 0
--fi
--exec 5>config.log
--cat >&5 <<_ACEOF
--This file contains any messages produced by compilers while
--running configure, to aid debugging if configure makes a mistake.
--
--It was created by $as_me, which was
--generated by GNU Autoconf 2.57.  Invocation command line was
--
--  $ $0 $@
--
--_ACEOF
--{
--cat <<_ASUNAME
--## --------- ##
--## Platform. ##
--## --------- ##
--
--hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
--uname -m = `(uname -m) 2>/dev/null || echo unknown`
--uname -r = `(uname -r) 2>/dev/null || echo unknown`
--uname -s = `(uname -s) 2>/dev/null || echo unknown`
--uname -v = `(uname -v) 2>/dev/null || echo unknown`
--
--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
--/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
--
--/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
--/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
--/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
--hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
--/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
--/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
--/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
--
--_ASUNAME
--
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  echo "PATH: $as_dir"
--done
--
--} >&5
--
--cat >&5 <<_ACEOF
--
--
--## ----------- ##
--## Core tests. ##
--## ----------- ##
--
--_ACEOF
--
--
--# Keep a trace of the command line.
--# Strip out --no-create and --no-recursion so they do not pile up.
--# Strip out --silent because we don't want to record it for future runs.
--# Also quote any args containing shell meta-characters.
--# Make two passes to allow for proper duplicate-argument suppression.
--ac_configure_args=
--ac_configure_args0=
--ac_configure_args1=
--ac_sep=
--ac_must_keep_next=false
--for ac_pass in 1 2
--do
--  for ac_arg
--  do
--    case $ac_arg in
--    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
--    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
--    | -silent | --silent | --silen | --sile | --sil)
--      continue ;;
--    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
--      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
--    esac
--    case $ac_pass in
--    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
--    2)
--      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
--      if test $ac_must_keep_next = true; then
--        ac_must_keep_next=false # Got value, back to normal.
--      else
--        case $ac_arg in
--          *=* | --config-cache | -C | -disable-* | --disable-* \
--          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
--          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
--          | -with-* | --with-* | -without-* | --without-* | --x)
--            case "$ac_configure_args0 " in
--              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
--            esac
--            ;;
--          -* ) ac_must_keep_next=true ;;
--        esac
--      fi
--      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
--      # Get rid of the leading space.
--      ac_sep=" "
--      ;;
--    esac
--  done
--done
--$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
--$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
--
--# When interrupted or exit'd, cleanup temporary files, and complete
--# config.log.  We remove comments because anyway the quotes in there
--# would cause problems or look ugly.
--# WARNING: Be sure not to use single quotes in there, as some shells,
--# such as our DU 5.0 friend, will then `close' the trap.
--trap 'exit_status=$?
--  # Save into config.log some information that might help in debugging.
--  {
--    echo
--
--    cat <<\_ASBOX
--## ---------------- ##
--## Cache variables. ##
--## ---------------- ##
--_ASBOX
--    echo
--    # The following way of writing the cache mishandles newlines in values,
--{
--  (set) 2>&1 |
--    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
--    *ac_space=\ *)
--      sed -n \
--        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
--    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
--      ;;
--    *)
--      sed -n \
--        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
--      ;;
--    esac;
--}
--    echo
--
--    cat <<\_ASBOX
--## ----------------- ##
--## Output variables. ##
--## ----------------- ##
--_ASBOX
--    echo
--    for ac_var in $ac_subst_vars
--    do
--      eval ac_val=$`echo $ac_var`
--      echo "$ac_var='"'"'$ac_val'"'"'"
--    done | sort
--    echo
--
--    if test -n "$ac_subst_files"; then
--      cat <<\_ASBOX
--## ------------- ##
--## Output files. ##
--## ------------- ##
--_ASBOX
--      echo
--      for ac_var in $ac_subst_files
--      do
--	eval ac_val=$`echo $ac_var`
--        echo "$ac_var='"'"'$ac_val'"'"'"
--      done | sort
--      echo
--    fi
--
--    if test -s confdefs.h; then
--      cat <<\_ASBOX
--## ----------- ##
--## confdefs.h. ##
--## ----------- ##
--_ASBOX
--      echo
--      sed "/^$/d" confdefs.h | sort
--      echo
--    fi
--    test "$ac_signal" != 0 &&
--      echo "$as_me: caught signal $ac_signal"
--    echo "$as_me: exit $exit_status"
--  } >&5
--  rm -f core core.* *.core &&
--  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
--    exit $exit_status
--     ' 0
--for ac_signal in 1 2 13 15; do
--  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
--done
--ac_signal=0
--
--# confdefs.h avoids OS command line length limits that DEFS can exceed.
--rm -rf conftest* confdefs.h
--# AIX cpp loses on an empty file, so make sure it contains at least a newline.
--echo >confdefs.h
--
--# Predefined preprocessor variables.
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_NAME "$PACKAGE_NAME"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_VERSION "$PACKAGE_VERSION"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_STRING "$PACKAGE_STRING"
--_ACEOF
--
--
--cat >>confdefs.h <<_ACEOF
--#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
--_ACEOF
--
--
--# Let the site file select an alternate cache file if it wants to.
- # Prefer explicitly selected file to automatically selected ones.
- if test -z "$CONFIG_SITE"; then
-   if test "x$prefix" != xNONE; then
-@@ -1171,106 +498,42 @@
- fi
- for ac_site_file in $CONFIG_SITE; do
-   if test -r "$ac_site_file"; then
--    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
--echo "$as_me: loading site script $ac_site_file" >&6;}
--    sed 's/^/| /' "$ac_site_file" >&5
-+    echo "loading site script $ac_site_file"
-     . "$ac_site_file"
-   fi
- done
- 
- if test -r "$cache_file"; then
--  # Some versions of bash will fail to source /dev/null (special
--  # files actually), so we avoid doing that.
--  if test -f "$cache_file"; then
--    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
--echo "$as_me: loading cache $cache_file" >&6;}
--    case $cache_file in
--      [\\/]* | ?:[\\/]* ) . $cache_file;;
--      *)                      . ./$cache_file;;
--    esac
--  fi
-+  echo "loading cache $cache_file"
-+  . $cache_file
- else
--  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
--echo "$as_me: creating cache $cache_file" >&6;}
--  >$cache_file
-+  echo "creating cache $cache_file"
-+  > $cache_file
- fi
- 
--# Check that the precious variables saved in the cache have kept the same
--# value.
--ac_cache_corrupted=false
--for ac_var in `(set) 2>&1 |
--               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
--  eval ac_old_set=\$ac_cv_env_${ac_var}_set
--  eval ac_new_set=\$ac_env_${ac_var}_set
--  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
--  eval ac_new_val="\$ac_env_${ac_var}_value"
--  case $ac_old_set,$ac_new_set in
--    set,)
--      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
--echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
--      ac_cache_corrupted=: ;;
--    ,set)
--      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
--echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
--      ac_cache_corrupted=: ;;
--    ,);;
--    *)
--      if test "x$ac_old_val" != "x$ac_new_val"; then
--        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
--echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
--        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
--echo "$as_me:   former value:  $ac_old_val" >&2;}
--        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
--echo "$as_me:   current value: $ac_new_val" >&2;}
--        ac_cache_corrupted=:
--      fi;;
--  esac
--  # Pass precious variables to config.status.
--  if test "$ac_new_set" = set; then
--    case $ac_new_val in
--    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
--      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
--    *) ac_arg=$ac_var=$ac_new_val ;;
--    esac
--    case " $ac_configure_args " in
--      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
--      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
--    esac
--  fi
--done
--if $ac_cache_corrupted; then
--  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
--echo "$as_me: error: changes in the environment can compromise the build" >&2;}
--  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
--echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
--   { (exit 1); exit 1; }; }
--fi
--
- ac_ext=c
-+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
- ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-+cross_compiling=$ac_cv_prog_cc_cross
- 
-+ac_exeext=
-+ac_objext=o
-+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-+    ac_n= ac_c='
-+' ac_t='	'
-+  else
-+    ac_n=-n ac_c= ac_t=
-+  fi
-+else
-+  ac_n= ac_c='\c' ac_t=
-+fi
- 
- 
- 
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
- ac_aux_dir=
- for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-   if test -f $ac_dir/install-sh; then
-@@ -1281,740 +544,312 @@
-     ac_aux_dir=$ac_dir
-     ac_install_sh="$ac_aux_dir/install.sh -c"
-     break
--  elif test -f $ac_dir/shtool; then
--    ac_aux_dir=$ac_dir
--    ac_install_sh="$ac_aux_dir/shtool install -c"
--    break
-   fi
- done
- if test -z "$ac_aux_dir"; then
--  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
--echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
--   { (exit 1); exit 1; }; }
-+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
- fi
--ac_config_guess="$SHELL $ac_aux_dir/config.guess"
--ac_config_sub="$SHELL $ac_aux_dir/config.sub"
--ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-+ac_config_guess=$ac_aux_dir/config.guess
-+ac_config_sub=$ac_aux_dir/config.sub
-+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
- 
--# Make sure we can run config.sub.
--$ac_config_sub sun4 >/dev/null 2>&1 ||
--  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
--echo "$as_me: error: cannot run $ac_config_sub" >&2;}
--   { (exit 1); exit 1; }; }
- 
--echo "$as_me:$LINENO: checking build system type" >&5
--echo $ECHO_N "checking build system type... $ECHO_C" >&6
--if test "${ac_cv_build+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_cv_build_alias=$build_alias
--test -z "$ac_cv_build_alias" &&
--  ac_cv_build_alias=`$ac_config_guess`
--test -z "$ac_cv_build_alias" &&
--  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
--echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
--   { (exit 1); exit 1; }; }
--ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
--  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
--echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
--   { (exit 1); exit 1; }; }
-+# Do some error checking and defaulting for the host and target type.
-+# The inputs are:
-+#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
-+#
-+# The rules are:
-+# 1. You are not allowed to specify --host, --target, and nonopt at the
-+#    same time.
-+# 2. Host defaults to nonopt.
-+# 3. If nonopt is not specified, then host defaults to the current host,
-+#    as determined by config.guess.
-+# 4. Target and build default to nonopt.
-+# 5. If nonopt is not specified, then target and build default to host.
- 
-+# The aliases save the names the user supplied, while $host etc.
-+# will get canonicalized.
-+case $host---$target---$nonopt in
-+NONE---*---* | *---NONE---* | *---*---NONE) ;;
-+*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-+esac
-+
-+
-+# Make sure we can run config.sub.
-+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
- fi
--echo "$as_me:$LINENO: result: $ac_cv_build" >&5
--echo "${ECHO_T}$ac_cv_build" >&6
--build=$ac_cv_build
--build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
--build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
--build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
- 
-+echo $ac_n "checking host system type""... $ac_c" 1>&6
-+echo "configure:585: checking host system type" >&5
- 
--echo "$as_me:$LINENO: checking host system type" >&5
--echo $ECHO_N "checking host system type... $ECHO_C" >&6
--if test "${ac_cv_host+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_cv_host_alias=$host_alias
--test -z "$ac_cv_host_alias" &&
--  ac_cv_host_alias=$ac_cv_build_alias
--ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
--  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
--echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
--   { (exit 1); exit 1; }; }
-+host_alias=$host
-+case "$host_alias" in
-+NONE)
-+  case $nonopt in
-+  NONE)
-+    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-+    fi ;;
-+  *) host_alias=$nonopt ;;
-+  esac ;;
-+esac
- 
--fi
--echo "$as_me:$LINENO: result: $ac_cv_host" >&5
--echo "${ECHO_T}$ac_cv_host" >&6
--host=$ac_cv_host
--host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
--host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
--host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+echo "$ac_t""$host" 1>&6
- 
-+echo $ac_n "checking target system type""... $ac_c" 1>&6
-+echo "configure:606: checking target system type" >&5
- 
--echo "$as_me:$LINENO: checking target system type" >&5
--echo $ECHO_N "checking target system type... $ECHO_C" >&6
--if test "${ac_cv_target+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_cv_target_alias=$target_alias
--test "x$ac_cv_target_alias" = "x" &&
--  ac_cv_target_alias=$ac_cv_host_alias
--ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
--  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
--echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
--   { (exit 1); exit 1; }; }
-+target_alias=$target
-+case "$target_alias" in
-+NONE)
-+  case $nonopt in
-+  NONE) target_alias=$host_alias ;;
-+  *) target_alias=$nonopt ;;
-+  esac ;;
-+esac
- 
--fi
--echo "$as_me:$LINENO: result: $ac_cv_target" >&5
--echo "${ECHO_T}$ac_cv_target" >&6
--target=$ac_cv_target
--target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
--target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
--target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
-+target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+echo "$ac_t""$target" 1>&6
- 
-+echo $ac_n "checking build system type""... $ac_c" 1>&6
-+echo "configure:624: checking build system type" >&5
- 
--# The aliases save the names the user supplied, while $host etc.
--# will get canonicalized.
--test -n "$target_alias" &&
-+build_alias=$build
-+case "$build_alias" in
-+NONE)
-+  case $nonopt in
-+  NONE) build_alias=$host_alias ;;
-+  *) build_alias=$nonopt ;;
-+  esac ;;
-+esac
-+
-+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+echo "$ac_t""$build" 1>&6
-+
-+test "$host_alias" != "$target_alias" &&
-   test "$program_prefix$program_suffix$program_transform_name" = \
-     NONENONEs,x,x, &&
-   program_prefix=${target_alias}-
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--if test -n "$ac_tool_prefix"; then
--  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}gcc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if test -n "$CC"; then
--  ac_cv_prog_CC="$CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_CC="${ac_tool_prefix}gcc"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
- 
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
--  echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
--  ac_ct_CC=$CC
--  # Extract the first word of "gcc", so it can be a program name with args.
-+# Extract the first word of "gcc", so it can be a program name with args.
- set dummy gcc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:649: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  if test -n "$ac_ct_CC"; then
--  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_ac_ct_CC="gcc"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
--  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--  CC=$ac_ct_CC
--else
--  CC="$ac_cv_prog_CC"
--fi
--
--if test -z "$CC"; then
--  if test -n "$ac_tool_prefix"; then
--  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-   if test -n "$CC"; then
-   ac_cv_prog_CC="$CC" # Let the user override the test.
- else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_CC="${ac_tool_prefix}cc"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
-+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-+  ac_dummy="$PATH"
-+  for ac_dir in $ac_dummy; do
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/$ac_word; then
-+      ac_cv_prog_CC="gcc"
-+      break
-+    fi
-+  done
-+  IFS="$ac_save_ifs"
- fi
- fi
--CC=$ac_cv_prog_CC
-+CC="$ac_cv_prog_CC"
- if test -n "$CC"; then
--  echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
-+  echo "$ac_t""$CC" 1>&6
- else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+  echo "$ac_t""no" 1>&6
- fi
- 
--fi
--if test -z "$ac_cv_prog_CC"; then
--  ac_ct_CC=$CC
--  # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if test -n "$ac_ct_CC"; then
--  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_ac_ct_CC="cc"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
--  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--  CC=$ac_ct_CC
--else
--  CC="$ac_cv_prog_CC"
--fi
--
--fi
- if test -z "$CC"; then
-   # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:679: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
-   if test -n "$CC"; then
-   ac_cv_prog_CC="$CC" # Let the user override the test.
- else
-+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-   ac_prog_rejected=no
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
--       ac_prog_rejected=yes
--       continue
--     fi
--    ac_cv_prog_CC="cc"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
-+  ac_dummy="$PATH"
-+  for ac_dir in $ac_dummy; do
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/$ac_word; then
-+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-+        ac_prog_rejected=yes
-+	continue
-+      fi
-+      ac_cv_prog_CC="cc"
-+      break
-+    fi
-+  done
-+  IFS="$ac_save_ifs"
- if test $ac_prog_rejected = yes; then
-   # We found a bogon in the path, so make sure we never use it.
-   set dummy $ac_cv_prog_CC
-   shift
--  if test $# != 0; then
-+  if test $# -gt 0; then
-     # We chose a different compiler from the bogus one.
-     # However, it has the same basename, so the bogon will be chosen
-     # first if we set CC to just the basename; use the full file name.
-     shift
--    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-+    set dummy "$ac_dir/$ac_word" "$@"
-+    shift
-+    ac_cv_prog_CC="$@"
-   fi
- fi
- fi
- fi
--CC=$ac_cv_prog_CC
-+CC="$ac_cv_prog_CC"
- if test -n "$CC"; then
--  echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
-+  echo "$ac_t""$CC" 1>&6
- else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+  echo "$ac_t""no" 1>&6
- fi
- 
--fi
--if test -z "$CC"; then
--  if test -n "$ac_tool_prefix"; then
--  for ac_prog in cl
--  do
--    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
--set dummy $ac_tool_prefix$ac_prog; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  if test -z "$CC"; then
-+    case "`uname -s`" in
-+    *win32* | *WIN32*)
-+      # Extract the first word of "cl", so it can be a program name with args.
-+set dummy cl; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:730: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
-   if test -n "$CC"; then
-   ac_cv_prog_CC="$CC" # Let the user override the test.
- else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
-+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-+  ac_dummy="$PATH"
-+  for ac_dir in $ac_dummy; do
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/$ac_word; then
-+      ac_cv_prog_CC="cl"
-+      break
-+    fi
-+  done
-+  IFS="$ac_save_ifs"
- fi
- fi
--CC=$ac_cv_prog_CC
-+CC="$ac_cv_prog_CC"
- if test -n "$CC"; then
--  echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
-+  echo "$ac_t""$CC" 1>&6
- else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+  echo "$ac_t""no" 1>&6
- fi
--
--    test -n "$CC" && break
--  done
--fi
--if test -z "$CC"; then
--  ac_ct_CC=$CC
--  for ac_prog in cl
--do
--  # Extract the first word of "$ac_prog", so it can be a program name with args.
--set dummy $ac_prog; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if test -n "$ac_ct_CC"; then
--  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_ac_ct_CC="$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
-+ ;;
-+    esac
-   fi
--done
--done
--
-+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
- fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
--  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
- 
--  test -n "$ac_ct_CC" && break
--done
-+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-+echo "configure:762: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
- 
--  CC=$ac_ct_CC
--fi
-+ac_ext=c
-+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-+cross_compiling=$ac_cv_prog_cc_cross
- 
--fi
-+cat > conftest.$ac_ext << EOF
- 
-+#line 773 "configure"
-+#include "confdefs.h"
- 
--test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
--See \`config.log' for more details." >&5
--echo "$as_me: error: no acceptable C compiler found in \$PATH
--See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
--
--# Provide some information about the compiler.
--echo "$as_me:$LINENO:" \
--     "checking for C compiler version" >&5
--ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
--  (eval $ac_compiler --version </dev/null >&5) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
--  (eval $ac_compiler -v </dev/null >&5) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
--  (eval $ac_compiler -V </dev/null >&5) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }
--
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--
--int
--main ()
--{
--
--  ;
--  return 0;
--}
--_ACEOF
--ac_clean_files_save=$ac_clean_files
--ac_clean_files="$ac_clean_files a.out a.exe b.out"
--# Try to create an executable without -o first, disregard a.out.
--# It will help us diagnose broken compilers, and finding out an intuition
--# of exeext.
--echo "$as_me:$LINENO: checking for C compiler default output" >&5
--echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
--ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
--if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
--  (eval $ac_link_default) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; then
--  # Find the output, starting from the most likely.  This scheme is
--# not robust to junk in `.', hence go to wildcards (a.*) only as a last
--# resort.
--
--# Be careful to initialize this variable, since it used to be cached.
--# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
--ac_cv_exeext=
--# b.out is created by i960 compilers.
--for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
--do
--  test -f "$ac_file" || continue
--  case $ac_file in
--    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
--        ;;
--    conftest.$ac_ext )
--        # This is the source file.
--        ;;
--    [ab].out )
--        # We found the default executable, but exeext='' is most
--        # certainly right.
--        break;;
--    *.* )
--        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
--        # FIXME: I believe we export ac_cv_exeext for Libtool,
--        # but it would be cool to find out if it's true.  Does anybody
--        # maintain Libtool? --akim.
--        export ac_cv_exeext
--        break;;
--    * )
--        break;;
--  esac
--done
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
--See \`config.log' for more details." >&5
--echo "$as_me: error: C compiler cannot create executables
--See \`config.log' for more details." >&2;}
--   { (exit 77); exit 77; }; }
--fi
--
--ac_exeext=$ac_cv_exeext
--echo "$as_me:$LINENO: result: $ac_file" >&5
--echo "${ECHO_T}$ac_file" >&6
--
--# Check the compiler produces executables we can run.  If not, either
--# the compiler is broken, or we cross compile.
--echo "$as_me:$LINENO: checking whether the C compiler works" >&5
--echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
--# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
--# If not cross compiling, check that we can run a simple program.
--if test "$cross_compiling" != yes; then
--  if { ac_try='./$ac_file'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--    cross_compiling=no
-+main(){return(0);}
-+EOF
-+if { (eval echo configure:778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+  ac_cv_prog_cc_works=yes
-+  # If we can't run a trivial program, we are probably using a cross compiler.
-+  if (./conftest; exit) 2>/dev/null; then
-+    ac_cv_prog_cc_cross=no
-   else
--    if test "$cross_compiling" = maybe; then
--	cross_compiling=yes
--    else
--	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
--If you meant to cross compile, use \`--host'.
--See \`config.log' for more details." >&5
--echo "$as_me: error: cannot run C compiled programs.
--If you meant to cross compile, use \`--host'.
--See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
--    fi
-+    ac_cv_prog_cc_cross=yes
-   fi
-+else
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  ac_cv_prog_cc_works=no
- fi
--echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+rm -fr conftest*
-+ac_ext=c
-+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-+cross_compiling=$ac_cv_prog_cc_cross
- 
--rm -f a.out a.exe conftest$ac_cv_exeext b.out
--ac_clean_files=$ac_clean_files_save
--# Check the compiler produces executables we can run.  If not, either
--# the compiler is broken, or we cross compile.
--echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
--echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
--echo "$as_me:$LINENO: result: $cross_compiling" >&5
--echo "${ECHO_T}$cross_compiling" >&6
--
--echo "$as_me:$LINENO: checking for suffix of executables" >&5
--echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
--  (eval $ac_link) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; then
--  # If both `conftest.exe' and `conftest' are `present' (well, observable)
--# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
--# work properly (i.e., refer to `conftest.exe'), while it won't with
--# `rm'.
--for ac_file in conftest.exe conftest conftest.*; do
--  test -f "$ac_file" || continue
--  case $ac_file in
--    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
--    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
--          export ac_cv_exeext
--          break;;
--    * ) break;;
--  esac
--done
--else
--  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
--See \`config.log' for more details." >&5
--echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
--See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
-+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-+if test $ac_cv_prog_cc_works = no; then
-+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
- fi
-+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-+echo "configure:804: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-+cross_compiling=$ac_cv_prog_cc_cross
- 
--rm -f conftest$ac_cv_exeext
--echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
--echo "${ECHO_T}$ac_cv_exeext" >&6
--
--rm -f conftest.$ac_ext
--EXEEXT=$ac_cv_exeext
--ac_exeext=$EXEEXT
--echo "$as_me:$LINENO: checking for suffix of object files" >&5
--echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
--if test "${ac_cv_objext+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-+echo "configure:809: checking whether we are using GNU C" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--
--int
--main ()
--{
--
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.o conftest.obj
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; then
--  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
--  case $ac_file in
--    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
--    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
--       break;;
--  esac
--done
-+  cat > conftest.c <<EOF
-+#ifdef __GNUC__
-+  yes;
-+#endif
-+EOF
-+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-+  ac_cv_prog_gcc=yes
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
--See \`config.log' for more details." >&5
--echo "$as_me: error: cannot compute suffix of object files: cannot compile
--See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
-+  ac_cv_prog_gcc=no
- fi
--
--rm -f conftest.$ac_cv_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
--echo "${ECHO_T}$ac_cv_objext" >&6
--OBJEXT=$ac_cv_objext
--ac_objext=$OBJEXT
--echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
--echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
--if test "${ac_cv_c_compiler_gnu+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
- 
--int
--main ()
--{
--#ifndef __GNUC__
--       choke me
--#endif
-+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
- 
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_compiler_gnu=yes
-+if test $ac_cv_prog_gcc = yes; then
-+  GCC=yes
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_compiler_gnu=no
-+  GCC=
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--ac_cv_c_compiler_gnu=$ac_compiler_gnu
- 
--fi
--echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
--echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
--GCC=`test $ac_compiler_gnu = yes && echo yes`
--ac_test_CFLAGS=${CFLAGS+set}
--ac_save_CFLAGS=$CFLAGS
--CFLAGS="-g"
--echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
--echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_g+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+ac_test_CFLAGS="${CFLAGS+set}"
-+ac_save_CFLAGS="$CFLAGS"
-+CFLAGS=
-+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-+echo "configure:837: checking whether ${CC-cc} accepts -g" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--
--int
--main ()
--{
--
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
-+  echo 'void f(){}' > conftest.c
-+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
-   ac_cv_prog_cc_g=yes
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
-+  ac_cv_prog_cc_g=no
-+fi
-+rm -f conftest*
- 
--ac_cv_prog_cc_g=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-+
-+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
- if test "$ac_test_CFLAGS" = set; then
--  CFLAGS=$ac_save_CFLAGS
-+  CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
-   if test "$GCC" = yes; then
-     CFLAGS="-g -O2"
-@@ -2028,304 +863,37 @@
-     CFLAGS=
-   fi
- fi
--echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
--echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_stdc+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_cv_prog_cc_stdc=no
--ac_save_CC=$CC
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <stdarg.h>
--#include <stdio.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
--struct buf { int x; };
--FILE * (*rcsopen) (struct buf *, struct stat *, int);
--static char *e (p, i)
--     char **p;
--     int i;
--{
--  return p[i];
--}
--static char *f (char * (*g) (char **, int), char **p, ...)
--{
--  char *s;
--  va_list v;
--  va_start (v,p);
--  s = g (p, va_arg (v,int));
--  va_end (v);
--  return s;
--}
--int test (int i, double x);
--struct s1 {int (*f) (int a);};
--struct s2 {int (*f) (double a);};
--int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
--int argc;
--char **argv;
--int
--main ()
--{
--return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
--  ;
--  return 0;
--}
--_ACEOF
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX			-qlanglvl=ansi
--# Ultrix and OSF/1	-std1
--# HP-UX 10.20 and later	-Ae
--# HP-UX older versions	-Aa -D_HPUX_SOURCE
--# SVR4			-Xc -D__EXTENSIONS__
--for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
--do
--  CC="$ac_save_CC $ac_arg"
--  rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_prog_cc_stdc=$ac_arg
--break
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
- 
--fi
--rm -f conftest.$ac_objext
--done
--rm -f conftest.$ac_ext conftest.$ac_objext
--CC=$ac_save_CC
--
--fi
--
--case "x$ac_cv_prog_cc_stdc" in
--  x|xno)
--    echo "$as_me:$LINENO: result: none needed" >&5
--echo "${ECHO_T}none needed" >&6 ;;
--  *)
--    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
--    CC="$CC $ac_cv_prog_cc_stdc" ;;
--esac
--
--# Some people use a C++ compiler to compile C.  Since we use `exit',
--# in C++ we need to declare it.  In case someone uses the same compiler
--# for both compiling C and C++ we need to have the C++ compiler decide
--# the declaration of exit, since it's the most demanding environment.
--cat >conftest.$ac_ext <<_ACEOF
--#ifndef __cplusplus
--  choke me
--#endif
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  for ac_declaration in \
--   ''\
--   '#include <stdlib.h>' \
--   'extern "C" void std::exit (int) throw (); using std::exit;' \
--   'extern "C" void std::exit (int); using std::exit;' \
--   'extern "C" void exit (int) throw ();' \
--   'extern "C" void exit (int);' \
--   'void exit (int);'
--do
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <stdlib.h>
--$ac_declaration
--int
--main ()
--{
--exit (42);
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  :
-+# Extract the first word of "ranlib", so it can be a program name with args.
-+set dummy ranlib; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:871: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--continue
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--$ac_declaration
--int
--main ()
--{
--exit (42);
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  break
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--done
--rm -f conftest*
--if test -n "$ac_declaration"; then
--  echo '#ifdef __cplusplus' >>confdefs.h
--  echo $ac_declaration      >>confdefs.h
--  echo '#endif'             >>confdefs.h
--fi
--
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--
--if test -n "$ac_tool_prefix"; then
--  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
--set dummy ${ac_tool_prefix}ranlib; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_RANLIB+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-   if test -n "$RANLIB"; then
-   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
- else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
-+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-+  ac_dummy="$PATH"
-+  for ac_dir in $ac_dummy; do
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/$ac_word; then
-+      ac_cv_prog_RANLIB="ranlib"
-+      break
-+    fi
-+  done
-+  IFS="$ac_save_ifs"
-+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
- fi
- fi
--RANLIB=$ac_cv_prog_RANLIB
-+RANLIB="$ac_cv_prog_RANLIB"
- if test -n "$RANLIB"; then
--  echo "$as_me:$LINENO: result: $RANLIB" >&5
--echo "${ECHO_T}$RANLIB" >&6
-+  echo "$ac_t""$RANLIB" 1>&6
- else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+  echo "$ac_t""no" 1>&6
- fi
- 
--fi
--if test -z "$ac_cv_prog_RANLIB"; then
--  ac_ct_RANLIB=$RANLIB
--  # Extract the first word of "ranlib", so it can be a program name with args.
--set dummy ranlib; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if test -n "$ac_ct_RANLIB"; then
--  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_ac_ct_RANLIB="ranlib"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
--  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
--fi
--fi
--ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
--if test -n "$ac_ct_RANLIB"; then
--  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
--echo "${ECHO_T}$ac_ct_RANLIB" >&6
--else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--  RANLIB=$ac_ct_RANLIB
--else
--  RANLIB="$ac_cv_prog_RANLIB"
--fi
--
- # Find a good install program.  We prefer a C program (faster),
- # so one script is as good as another.  But avoid the broken or
- # incompatible versions:
-@@ -2333,306 +901,158 @@
- # SunOS /usr/etc/install
- # IRIX /sbin/install
- # AIX /bin/install
--# AmigaOS /C/install, which installs bootblocks on floppy discs
- # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
- # AFS /usr/afsws/bin/install, which mishandles nonexistent args
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # ./install, which can be erroneously created by make from ./install.sh.
--echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
--echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-+echo "configure:910: checking for a BSD compatible install" >&5
- if test -z "$INSTALL"; then
--if test "${ac_cv_path_install+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  # Account for people who put trailing slashes in PATH elements.
--case $as_dir/ in
--  ./ | .// | /cC/* | \
--  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
--  /usr/ucb/* ) ;;
--  *)
--    # OSF1 and SCO ODT 3.0 have their own names for install.
--    # Don't use installbsd from OSF since it installs stuff as root
--    # by default.
--    for ac_prog in ginstall scoinst install; do
--      for ac_exec_ext in '' $ac_executable_extensions; do
--        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
--          if test $ac_prog = install &&
--            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
--            # AIX install.  It has an incompatible calling convention.
--            :
--          elif test $ac_prog = install &&
--            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
--            # program-specific install script used by HP pwplus--don't use.
--            :
--          else
--            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
--            break 3
--          fi
--        fi
-+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
-+  for ac_dir in $PATH; do
-+    # Account for people who put trailing slashes in PATH elements.
-+    case "$ac_dir/" in
-+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-+    *)
-+      # OSF1 and SCO ODT 3.0 have their own names for install.
-+      # Don't use installbsd from OSF since it installs stuff as root
-+      # by default.
-+      for ac_prog in ginstall scoinst install; do
-+        if test -f $ac_dir/$ac_prog; then
-+	  if test $ac_prog = install &&
-+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-+	    # AIX install.  It has an incompatible calling convention.
-+	    :
-+	  else
-+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
-+	    break 2
-+	  fi
-+	fi
-       done
--    done
--    ;;
--esac
--done
-+      ;;
-+    esac
-+  done
-+  IFS="$ac_save_IFS"
- 
--
- fi
-   if test "${ac_cv_path_install+set}" = set; then
--    INSTALL=$ac_cv_path_install
-+    INSTALL="$ac_cv_path_install"
-   else
-     # As a last resort, use the slow shell script.  We don't cache a
-     # path for INSTALL within a source directory, because that will
-     # break other packages using the cache if that directory is
-     # removed, or if the path is relative.
--    INSTALL=$ac_install_sh
-+    INSTALL="$ac_install_sh"
-   fi
- fi
--echo "$as_me:$LINENO: result: $INSTALL" >&5
--echo "${ECHO_T}$INSTALL" >&6
-+echo "$ac_t""$INSTALL" 1>&6
- 
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
- # It thinks the first close brace ends the variable substitution.
- test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
- 
--test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
- 
- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
- 
--if test -n "$ac_tool_prefix"; then
--  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-+if test $host != $build; then
-+  ac_tool_prefix=${host_alias}-
-+else
-+  ac_tool_prefix=
-+fi
-+
-+# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ar; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_AR+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:971: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
-   if test -n "$AR"; then
-   ac_cv_prog_AR="$AR" # Let the user override the test.
- else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_AR="${ac_tool_prefix}ar"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
--
-+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-+  ac_dummy="$PATH"
-+  for ac_dir in $ac_dummy; do
-+    test -z "$ac_dir" && ac_dir=.
-+    if test -f $ac_dir/$ac_word; then
-+      ac_cv_prog_AR="${ac_tool_prefix}ar"
-+      break
-+    fi
-+  done
-+  IFS="$ac_save_ifs"
-+  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
- fi
- fi
--AR=$ac_cv_prog_AR
-+AR="$ac_cv_prog_AR"
- if test -n "$AR"; then
--  echo "$as_me:$LINENO: result: $AR" >&5
--echo "${ECHO_T}$AR" >&6
-+  echo "$ac_t""$AR" 1>&6
- else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+  echo "$ac_t""no" 1>&6
- fi
- 
--fi
--if test -z "$ac_cv_prog_AR"; then
--  ac_ct_AR=$AR
--  # Extract the first word of "ar", so it can be a program name with args.
--set dummy ar; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if test -n "$ac_ct_AR"; then
--  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for ac_exec_ext in '' $ac_executable_extensions; do
--  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_ac_ct_AR="ar"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
--    break 2
--  fi
--done
--done
- 
--fi
--fi
--ac_ct_AR=$ac_cv_prog_ac_ct_AR
--if test -n "$ac_ct_AR"; then
--  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
--echo "${ECHO_T}$ac_ct_AR" >&6
--else
--  echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
- 
--  AR=$ac_ct_AR
-+echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-+echo "configure:1001: checking whether byte ordering is bigendian" >&5
-+if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  AR="$ac_cv_prog_AR"
--fi
--
--
--echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
--echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
--if test "${ac_cv_c_bigendian+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  # See if sys/param.h defines the BYTE_ORDER macro.
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
-+  ac_cv_c_bigendian=unknown
-+# See if sys/param.h defines the BYTE_ORDER macro.
-+cat > conftest.$ac_ext <<EOF
-+#line 1008 "configure"
-+#include "confdefs.h"
- #include <sys/types.h>
- #include <sys/param.h>
-+int main() {
- 
--int
--main ()
--{
- #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
-  bogus endian macros
- #endif
--
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
-+; return 0; }
-+EOF
-+if { (eval echo configure:1019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+  rm -rf conftest*
-   # It does; now see whether it defined to BIG_ENDIAN or not.
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
-+cat > conftest.$ac_ext <<EOF
-+#line 1023 "configure"
-+#include "confdefs.h"
- #include <sys/types.h>
- #include <sys/param.h>
-+int main() {
- 
--int
--main ()
--{
- #if BYTE_ORDER != BIG_ENDIAN
-  not big endian
- #endif
--
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
-+; return 0; }
-+EOF
-+if { (eval echo configure:1034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+  rm -rf conftest*
-   ac_cv_c_bigendian=yes
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_c_bigendian=no
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  ac_cv_c_bigendian=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+rm -f conftest*
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--# It does not; compile a test program.
--if test "$cross_compiling" = yes; then
--  # try to guess the endianness by grepping values into an object file
--  ac_cv_c_bigendian=unknown
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
--short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
--void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
--short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
--short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
--void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
--int
--main ()
--{
-- _ascii (); _ebcdic ();
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
--  ac_cv_c_bigendian=yes
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
- fi
--if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
--  if test "$ac_cv_c_bigendian" = unknown; then
--    ac_cv_c_bigendian=no
--  else
--    # finding both strings is unlikely to happen, but who knows?
--    ac_cv_c_bigendian=unknown
--  fi
--fi
-+rm -f conftest*
-+if test $ac_cv_c_bigendian = unknown; then
-+if test "$cross_compiling" = yes; then
-+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--int
--main ()
--{
-+  cat > conftest.$ac_ext <<EOF
-+#line 1054 "configure"
-+#include "confdefs.h"
-+main () {
-   /* Are we little or big endian?  From Harbison&Steele.  */
-   union
-   {
-@@ -2642,52 +1062,31 @@
-   u.l = 1;
-   exit (u.c[sizeof (long) - 1] == 1);
- }
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
--  (eval $ac_link) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
-+EOF
-+if { (eval echo configure:1067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+then
-   ac_cv_c_bigendian=no
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--( exit $ac_status )
--ac_cv_c_bigendian=yes
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -fr conftest*
-+  ac_cv_c_bigendian=yes
- fi
--rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -fr conftest*
- fi
-+
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
--echo "${ECHO_T}$ac_cv_c_bigendian" >&6
--case $ac_cv_c_bigendian in
--  yes)
- 
--cat >>confdefs.h <<\_ACEOF
-+echo "$ac_t""$ac_cv_c_bigendian" 1>&6
-+if test $ac_cv_c_bigendian = yes; then
-+  cat >> confdefs.h <<\EOF
- #define WORDS_BIGENDIAN 1
--_ACEOF
-- ;;
--  no)
--     ;;
--  *)
--    { { echo "$as_me:$LINENO: error: unknown endianness
--presetting ac_cv_c_bigendian=no (or yes) will help" >&5
--echo "$as_me: error: unknown endianness
--presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
--   { (exit 1); exit 1; }; } ;;
--esac
-+EOF
- 
-+fi
- 
-+
- if test "x$GCC" = "xyes"; then
- 	CFLAGS="$CFLAGS -Wall"
- fi
-@@ -2697,14 +1096,13 @@
-   case "${enableval}" in
-                  yes) shared=true ;;
-                  no) shared=false ;;
--                 *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for shared options" >&5
--echo "$as_me: error: bad value ${enableval} for shared options" >&2;}
--   { (exit 1); exit 1; }; } ;;
-+                 *) { echo "configure: error: bad value ${enableval} for shared options" 1>&2; exit 1; } ;;
-                  esac
- else
-   shared=false
--fi;
-+fi
- 
-+
- case "$target_cpu" in
-      i386|i486|i586|i686)
- 	TARGET_CPU=i386
-@@ -2712,7 +1110,7 @@
-      *)
-         TARGET_CPU=$target_cpu
-      ;;
--esac
-+esac     
- TARGET_OS=$target_os
- 
- M68KCC=
-@@ -2726,7 +1124,7 @@
- 		M68KCC=/usr/m68k-palmos/bin/gcc
- 		# Generic build is ARM or M68K (probably ARM though)
-                 CC="/usr/$TARGET_CPU-palmos/bin/gcc"
--		if test "$target_cpu" = "arm"
-+		if test "$target_cpu" = "arm" 
-                 then
-                    CC="$CC -fPIC -march=armv4t"
-                 fi
-@@ -2762,7 +1160,7 @@
-      *)
-         HOST_CPU=$host_cpu
-      ;;
--esac
-+esac     
- HOST_OS=$host_os
- 
- 
-@@ -2800,138 +1198,91 @@
-   case "${enableval}" in
-                  yes) sockets=true ;;
-                  no) sockets=false ;;
--                 *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for sockets options" >&5
--echo "$as_me: error: bad value ${enableval} for sockets options" >&2;}
--   { (exit 1); exit 1; }; } ;;
-+                 *) { echo "configure: error: bad value ${enableval} for sockets options" 1>&2; exit 1; } ;;
-                  esac
- else
-   sockets=true
--fi;
-+fi
-+
- if test "$sockets" = false; then
--   cat >>confdefs.h <<\_ACEOF
-+   cat >> confdefs.h <<\EOF
- #define CST_NO_SOCKETS 1
--_ACEOF
-+EOF
- 
- fi
- 
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
-+cat > conftest.$ac_ext <<EOF
-+#line 1216 "configure"
-+#include "confdefs.h"
- #include <stdio.h>
--int
--main ()
--{
-+int main() {
-  struct a { union { float b; int c; } d; };
--                 const struct a e = { .d={ .b=3.14 } };
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
-+                 const struct a e = { .d={ .b=3.14 } }; 
-+; return 0; }
-+EOF
-+if { (eval echo configure:1224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+  rm -rf conftest*
-   unioninit=yes
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--unioninit=no
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  unioninit=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+rm -f conftest*
- if test "$unioninit" = no; then
--   cat >>confdefs.h <<\_ACEOF
-+   cat >> confdefs.h <<\EOF
- #define NO_UNION_INITIALIZATION 1
--_ACEOF
-+EOF
- 
- fi
- 
--echo "$as_me:$LINENO: checking for mmap" >&5
--echo $ECHO_N "checking for mmap... $ECHO_C" >&6
--if test "${ac_cv_func_mmap+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+echo $ac_n "checking for mmap""... $ac_c" 1>&6
-+echo "configure:1242: checking for mmap" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_mmap'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
-+  cat > conftest.$ac_ext <<EOF
-+#line 1247 "configure"
-+#include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
--    which can conflict with char mmap (); below.
--    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
--    <limits.h> exists even on freestanding compilers.  */
--#ifdef __STDC__
--# include <limits.h>
--#else
--# include <assert.h>
--#endif
-+    which can conflict with char mmap(); below.  */
-+#include <assert.h>
- /* Override any gcc2 internal prototype to avoid an error.  */
--#ifdef __cplusplus
--extern "C"
--{
--#endif
- /* We use char because int might match the return type of a gcc2
--   builtin and then its argument prototype would still apply.  */
--char mmap ();
-+    builtin and then its argument prototype would still apply.  */
-+char mmap();
-+
-+int main() {
-+
- /* The GNU C library defines this for functions which it implements
-     to always fail with ENOSYS.  Some functions are actually named
-     something starting with __ and the normal name is an alias.  */
- #if defined (__stub_mmap) || defined (__stub___mmap)
- choke me
- #else
--char (*f) () = mmap;
-+mmap();
- #endif
--#ifdef __cplusplus
--}
--#endif
- 
--int
--main ()
--{
--return f != mmap;
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
--  (eval $ac_link) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_func_mmap=yes
-+; return 0; }
-+EOF
-+if { (eval echo configure:1270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+  rm -rf conftest*
-+  eval "ac_cv_func_mmap=yes"
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_func_mmap=no
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  eval "ac_cv_func_mmap=no"
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest*
- fi
--echo "$as_me:$LINENO: result: $ac_cv_func_mmap" >&5
--echo "${ECHO_T}$ac_cv_func_mmap" >&6
--if test $ac_cv_func_mmap = yes; then
-+
-+if eval "test \"`echo '$ac_cv_func_'mmap`\" = yes"; then
-+  echo "$ac_t""yes" 1>&6
-   MMAPTYPE=posix
-+else
-+  echo "$ac_t""no" 1>&6
- fi
- 
- 
-@@ -2956,1028 +1307,266 @@
- 
- 
- AUDIODRIVER=none
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
--echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-+echo "configure:1312: checking how to run the C preprocessor" >&5
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
- fi
- if test -z "$CPP"; then
--  if test "${ac_cv_prog_CPP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--      # Double quotes because CPP needs to be expanded
--    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
--    do
--      ac_preproc_ok=false
--for ac_c_preproc_warn_flag in '' yes
--do
--  # Use a header file that comes with gcc, so configuring glibc
--  # with a fresh cross-compiler works.
--  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
--  # <limits.h> exists even on freestanding compilers.
-+    # This must be in double quotes, not single quotes, because CPP may get
-+  # substituted into the Makefile and "${CC-cc}" will confuse make.
-+  CPP="${CC-cc} -E"
-   # On the NeXT, cc -E runs the code through the compiler's parser,
--  # not just through cpp. "Syntax error" is here to catch this case.
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#ifdef __STDC__
--# include <limits.h>
--#else
--# include <assert.h>
--#endif
--                     Syntax error
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+  # not just through cpp.
-+  cat > conftest.$ac_ext <<EOF
-+#line 1327 "configure"
-+#include "confdefs.h"
-+#include <assert.h>
-+Syntax Error
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1333: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-   :
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  # Broken: fails on valid input.
--continue
--fi
--rm -f conftest.err conftest.$ac_ext
--
--  # OK, works on sane cases.  Now check whether non-existent headers
--  # can be detected and how.
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <ac_nonexistent.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
--  # Broken: success on invalid input.
--continue
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  # Passes both tests.
--ac_preproc_ok=:
--break
--fi
--rm -f conftest.err conftest.$ac_ext
--
--done
--# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
--rm -f conftest.err conftest.$ac_ext
--if $ac_preproc_ok; then
--  break
--fi
--
--    done
--    ac_cv_prog_CPP=$CPP
--
--fi
--  CPP=$ac_cv_prog_CPP
--else
--  ac_cv_prog_CPP=$CPP
--fi
--echo "$as_me:$LINENO: result: $CPP" >&5
--echo "${ECHO_T}$CPP" >&6
--ac_preproc_ok=false
--for ac_c_preproc_warn_flag in '' yes
--do
--  # Use a header file that comes with gcc, so configuring glibc
--  # with a fresh cross-compiler works.
--  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
--  # <limits.h> exists even on freestanding compilers.
--  # On the NeXT, cc -E runs the code through the compiler's parser,
--  # not just through cpp. "Syntax error" is here to catch this case.
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#ifdef __STDC__
--# include <limits.h>
--#else
--# include <assert.h>
--#endif
--                     Syntax error
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  CPP="${CC-cc} -E -traditional-cpp"
-+  cat > conftest.$ac_ext <<EOF
-+#line 1344 "configure"
-+#include "confdefs.h"
-+#include <assert.h>
-+Syntax Error
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-   :
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  # Broken: fails on valid input.
--continue
--fi
--rm -f conftest.err conftest.$ac_ext
--
--  # OK, works on sane cases.  Now check whether non-existent headers
--  # can be detected and how.
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <ac_nonexistent.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
--  # Broken: success on invalid input.
--continue
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  # Passes both tests.
--ac_preproc_ok=:
--break
--fi
--rm -f conftest.err conftest.$ac_ext
--
--done
--# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
--rm -f conftest.err conftest.$ac_ext
--if $ac_preproc_ok; then
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  CPP="${CC-cc} -nologo -E"
-+  cat > conftest.$ac_ext <<EOF
-+#line 1361 "configure"
-+#include "confdefs.h"
-+#include <assert.h>
-+Syntax Error
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-   :
- else
--  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
--See \`config.log' for more details." >&5
--echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
--See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  CPP=/lib/cpp
- fi
--
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--
--
--echo "$as_me:$LINENO: checking for egrep" >&5
--echo $ECHO_N "checking for egrep... $ECHO_C" >&6
--if test "${ac_cv_prog_egrep+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
--    then ac_cv_prog_egrep='grep -E'
--    else ac_cv_prog_egrep='egrep'
--    fi
-+rm -f conftest*
- fi
--echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
--echo "${ECHO_T}$ac_cv_prog_egrep" >&6
-- EGREP=$ac_cv_prog_egrep
--
--
--echo "$as_me:$LINENO: checking for ANSI C header files" >&5
--echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
--if test "${ac_cv_header_stdc+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <stdlib.h>
--#include <stdarg.h>
--#include <string.h>
--#include <float.h>
--
--int
--main ()
--{
--
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_header_stdc=yes
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_header_stdc=no
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--
--if test $ac_cv_header_stdc = yes; then
--  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <string.h>
--
--_ACEOF
--if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
--  $EGREP "memchr" >/dev/null 2>&1; then
--  :
--else
--  ac_cv_header_stdc=no
--fi
- rm -f conftest*
--
- fi
--
--if test $ac_cv_header_stdc = yes; then
--  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <stdlib.h>
--
--_ACEOF
--if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
--  $EGREP "free" >/dev/null 2>&1; then
--  :
--else
--  ac_cv_header_stdc=no
--fi
- rm -f conftest*
--
-+  ac_cv_prog_CPP="$CPP"
- fi
--
--if test $ac_cv_header_stdc = yes; then
--  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
--  if test "$cross_compiling" = yes; then
--  :
-+  CPP="$ac_cv_prog_CPP"
- else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <ctype.h>
--#if ((' ' & 0x0FF) == 0x020)
--# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
--# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
--#else
--# define ISLOWER(c) \
--                   (('a' <= (c) && (c) <= 'i') \
--                     || ('j' <= (c) && (c) <= 'r') \
--                     || ('s' <= (c) && (c) <= 'z'))
--# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
--#endif
--
--#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
--int
--main ()
--{
--  int i;
--  for (i = 0; i < 256; i++)
--    if (XOR (islower (i), ISLOWER (i))
--        || toupper (i) != TOUPPER (i))
--      exit(2);
--  exit (0);
--}
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
--  (eval $ac_link) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  :
--else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--( exit $ac_status )
--ac_cv_header_stdc=no
-+  ac_cv_prog_CPP="$CPP"
- fi
--rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
--fi
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
--echo "${ECHO_T}$ac_cv_header_stdc" >&6
--if test $ac_cv_header_stdc = yes; then
-+echo "$ac_t""$CPP" 1>&6
- 
--cat >>confdefs.h <<\_ACEOF
--#define STDC_HEADERS 1
--_ACEOF
--
--fi
--
--# On IRIX 5.3, sys/types and inttypes.h are conflicting.
--
--
--
--
--
--
--
--
--
--for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
--                  inttypes.h stdint.h unistd.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+ac_safe=`echo "sys/soundcard.h" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for sys/soundcard.h""... $ac_c" 1>&6
-+echo "configure:1393: checking for sys/soundcard.h" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--$ac_includes_default
--
--#include <$ac_header>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  eval "$as_ac_Header=yes"
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--eval "$as_ac_Header=no"
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
--  cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--_ACEOF
--
--fi
--
--done
--
--
--if test "${ac_cv_header_sys_soundcard_h+set}" = set; then
--  echo "$as_me:$LINENO: checking for sys/soundcard.h" >&5
--echo $ECHO_N "checking for sys/soundcard.h... $ECHO_C" >&6
--if test "${ac_cv_header_sys_soundcard_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_sys_soundcard_h" >&5
--echo "${ECHO_T}$ac_cv_header_sys_soundcard_h" >&6
--else
--  # Is the header compilable?
--echo "$as_me:$LINENO: checking sys/soundcard.h usability" >&5
--echo $ECHO_N "checking sys/soundcard.h usability... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--$ac_includes_default
-+  cat > conftest.$ac_ext <<EOF
-+#line 1398 "configure"
-+#include "confdefs.h"
- #include <sys/soundcard.h>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_header_compiler=yes
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1403: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=yes"
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_header_compiler=no
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=no"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
--
--# Is the header present?
--echo "$as_me:$LINENO: checking sys/soundcard.h presence" >&5
--echo $ECHO_N "checking sys/soundcard.h presence... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <sys/soundcard.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
-+rm -f conftest*
- fi
--if test -z "$ac_cpp_err"; then
--  ac_header_preproc=yes
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  ac_header_preproc=no
--fi
--rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
--
--# So?  What about this header?
--case $ac_header_compiler:$ac_header_preproc in
--  yes:no )
--    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&5
--echo "$as_me: WARNING: sys/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
--    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--  no:yes )
--    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: present but cannot be compiled" >&5
--echo "$as_me: WARNING: sys/soundcard.h: present but cannot be compiled" >&2;}
--    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: check for missing prerequisite headers?" >&5
--echo "$as_me: WARNING: sys/soundcard.h: check for missing prerequisite headers?" >&2;}
--    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--esac
--echo "$as_me:$LINENO: checking for sys/soundcard.h" >&5
--echo $ECHO_N "checking for sys/soundcard.h... $ECHO_C" >&6
--if test "${ac_cv_header_sys_soundcard_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_cv_header_sys_soundcard_h=$ac_header_preproc
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_sys_soundcard_h" >&5
--echo "${ECHO_T}$ac_cv_header_sys_soundcard_h" >&6
--
--fi
--if test $ac_cv_header_sys_soundcard_h = yes; then
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+  echo "$ac_t""yes" 1>&6
-   AUDIODRIVER="oss"
-                AUDIODEFS=-DCST_AUDIO_LINUX
-+else
-+  echo "$ac_t""no" 1>&6
- fi
- 
--
--if test "${ac_cv_header_machine_soundcard_h+set}" = set; then
--  echo "$as_me:$LINENO: checking for machine/soundcard.h" >&5
--echo $ECHO_N "checking for machine/soundcard.h... $ECHO_C" >&6
--if test "${ac_cv_header_machine_soundcard_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_machine_soundcard_h" >&5
--echo "${ECHO_T}$ac_cv_header_machine_soundcard_h" >&6
-+ac_safe=`echo "machine/soundcard.h" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for machine/soundcard.h""... $ac_c" 1>&6
-+echo "configure:1427: checking for machine/soundcard.h" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  # Is the header compilable?
--echo "$as_me:$LINENO: checking machine/soundcard.h usability" >&5
--echo $ECHO_N "checking machine/soundcard.h usability... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--$ac_includes_default
-+  cat > conftest.$ac_ext <<EOF
-+#line 1432 "configure"
-+#include "confdefs.h"
- #include <machine/soundcard.h>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_header_compiler=yes
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1437: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=yes"
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_header_compiler=no
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=no"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
--
--# Is the header present?
--echo "$as_me:$LINENO: checking machine/soundcard.h presence" >&5
--echo $ECHO_N "checking machine/soundcard.h presence... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <machine/soundcard.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
-+rm -f conftest*
- fi
--if test -z "$ac_cpp_err"; then
--  ac_header_preproc=yes
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  ac_header_preproc=no
--fi
--rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
--
--# So?  What about this header?
--case $ac_header_compiler:$ac_header_preproc in
--  yes:no )
--    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&5
--echo "$as_me: WARNING: machine/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
--    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--  no:yes )
--    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: present but cannot be compiled" >&5
--echo "$as_me: WARNING: machine/soundcard.h: present but cannot be compiled" >&2;}
--    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: check for missing prerequisite headers?" >&5
--echo "$as_me: WARNING: machine/soundcard.h: check for missing prerequisite headers?" >&2;}
--    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--esac
--echo "$as_me:$LINENO: checking for machine/soundcard.h" >&5
--echo $ECHO_N "checking for machine/soundcard.h... $ECHO_C" >&6
--if test "${ac_cv_header_machine_soundcard_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_cv_header_machine_soundcard_h=$ac_header_preproc
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_machine_soundcard_h" >&5
--echo "${ECHO_T}$ac_cv_header_machine_soundcard_h" >&6
--
--fi
--if test $ac_cv_header_machine_soundcard_h = yes; then
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+  echo "$ac_t""yes" 1>&6
-   AUDIODRIVER="oss"
-                AUDIODEFS=-DCST_AUDIO_FREEBSD
-+else
-+  echo "$ac_t""no" 1>&6
- fi
- 
--
--if test "${ac_cv_header_sys_audioio_h+set}" = set; then
--  echo "$as_me:$LINENO: checking for sys/audioio.h" >&5
--echo $ECHO_N "checking for sys/audioio.h... $ECHO_C" >&6
--if test "${ac_cv_header_sys_audioio_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_sys_audioio_h" >&5
--echo "${ECHO_T}$ac_cv_header_sys_audioio_h" >&6
-+ac_safe=`echo "sys/audioio.h" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for sys/audioio.h""... $ac_c" 1>&6
-+echo "configure:1461: checking for sys/audioio.h" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  # Is the header compilable?
--echo "$as_me:$LINENO: checking sys/audioio.h usability" >&5
--echo $ECHO_N "checking sys/audioio.h usability... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--$ac_includes_default
-+  cat > conftest.$ac_ext <<EOF
-+#line 1466 "configure"
-+#include "confdefs.h"
- #include <sys/audioio.h>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_header_compiler=yes
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1471: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=yes"
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_header_compiler=no
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=no"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
--
--# Is the header present?
--echo "$as_me:$LINENO: checking sys/audioio.h presence" >&5
--echo $ECHO_N "checking sys/audioio.h presence... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <sys/audioio.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
-+rm -f conftest*
- fi
--if test -z "$ac_cpp_err"; then
--  ac_header_preproc=yes
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  ac_header_preproc=no
--fi
--rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
--
--# So?  What about this header?
--case $ac_header_compiler:$ac_header_preproc in
--  yes:no )
--    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: accepted by the compiler, rejected by the preprocessor!" >&5
--echo "$as_me: WARNING: sys/audioio.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
--    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--  no:yes )
--    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: present but cannot be compiled" >&5
--echo "$as_me: WARNING: sys/audioio.h: present but cannot be compiled" >&2;}
--    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: check for missing prerequisite headers?" >&5
--echo "$as_me: WARNING: sys/audioio.h: check for missing prerequisite headers?" >&2;}
--    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--esac
--echo "$as_me:$LINENO: checking for sys/audioio.h" >&5
--echo $ECHO_N "checking for sys/audioio.h... $ECHO_C" >&6
--if test "${ac_cv_header_sys_audioio_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_cv_header_sys_audioio_h=$ac_header_preproc
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_sys_audioio_h" >&5
--echo "${ECHO_T}$ac_cv_header_sys_audioio_h" >&6
--
--fi
--if test $ac_cv_header_sys_audioio_h = yes; then
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+  echo "$ac_t""yes" 1>&6
-   AUDIODRIVER="sun"
-                AUDIODEFS=-DCST_AUDIO_SUNOS
-+else
-+  echo "$ac_t""no" 1>&6
- fi
- 
--
--if test "${ac_cv_header_mmsystem_h+set}" = set; then
--  echo "$as_me:$LINENO: checking for mmsystem.h" >&5
--echo $ECHO_N "checking for mmsystem.h... $ECHO_C" >&6
--if test "${ac_cv_header_mmsystem_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--fi
--echo "$as_me:$LINENO: result: $ac_cv_header_mmsystem_h" >&5
--echo "${ECHO_T}$ac_cv_header_mmsystem_h" >&6
-+ ac_safe=`echo "alsa/asoundlib.h" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for alsa/asoundlib.h""... $ac_c" 1>&6
-+echo "configure:1495: checking for alsa/asoundlib.h" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  # Is the header compilable?
--echo "$as_me:$LINENO: checking mmsystem.h usability" >&5
--echo $ECHO_N "checking mmsystem.h usability... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--$ac_includes_default
--#include <mmsystem.h>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_header_compiler=yes
-+  cat > conftest.$ac_ext <<EOF
-+#line 1500 "configure"
-+#include "confdefs.h"
-+#include <alsa/asoundlib.h>
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1505: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=yes"
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_header_compiler=no
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=no"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
--
--# Is the header present?
--echo "$as_me:$LINENO: checking mmsystem.h presence" >&5
--echo $ECHO_N "checking mmsystem.h presence... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line $LINENO "configure"
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <mmsystem.h>
--_ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
-+rm -f conftest*
- fi
--if test -z "$ac_cpp_err"; then
--  ac_header_preproc=yes
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+  echo "$ac_t""yes" 1>&6
-+  AUDIODRIVER="alsa"
-+	       AUDIODEFS=-DCST_AUDIO_ALSA
-+               AUDIOLIBS=-lasound
- else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--  ac_header_preproc=no
-+  echo "$ac_t""no" 1>&6
- fi
--rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
- 
--# So?  What about this header?
--case $ac_header_compiler:$ac_header_preproc in
--  yes:no )
--    { echo "$as_me:$LINENO: WARNING: mmsystem.h: accepted by the compiler, rejected by the preprocessor!" >&5
--echo "$as_me: WARNING: mmsystem.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
--    { echo "$as_me:$LINENO: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--  no:yes )
--    { echo "$as_me:$LINENO: WARNING: mmsystem.h: present but cannot be compiled" >&5
--echo "$as_me: WARNING: mmsystem.h: present but cannot be compiled" >&2;}
--    { echo "$as_me:$LINENO: WARNING: mmsystem.h: check for missing prerequisite headers?" >&5
--echo "$as_me: WARNING: mmsystem.h: check for missing prerequisite headers?" >&2;}
--    { echo "$as_me:$LINENO: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&5
--echo "$as_me: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&2;}
--    (
--      cat <<\_ASBOX
--## ------------------------------------ ##
--## Report this to bug-autoconf@gnu.org. ##
--## ------------------------------------ ##
--_ASBOX
--    ) |
--      sed "s/^/$as_me: WARNING:     /" >&2
--    ;;
--esac
--echo "$as_me:$LINENO: checking for mmsystem.h" >&5
--echo $ECHO_N "checking for mmsystem.h... $ECHO_C" >&6
--if test "${ac_cv_header_mmsystem_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+ac_safe=`echo "mmsystem.h" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for mmsystem.h""... $ac_c" 1>&6
-+echo "configure:1530: checking for mmsystem.h" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+  echo $ac_n "(cached) $ac_c" 1>&6
- else
--  ac_cv_header_mmsystem_h=$ac_header_preproc
-+  cat > conftest.$ac_ext <<EOF
-+#line 1535 "configure"
-+#include "confdefs.h"
-+#include <mmsystem.h>
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:1540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=yes"
-+else
-+  echo "$ac_err" >&5
-+  echo "configure: failed program was:" >&5
-+  cat conftest.$ac_ext >&5
-+  rm -rf conftest*
-+  eval "ac_cv_header_$ac_safe=no"
- fi
--echo "$as_me:$LINENO: result: $ac_cv_header_mmsystem_h" >&5
--echo "${ECHO_T}$ac_cv_header_mmsystem_h" >&6
--
-+rm -f conftest*
- fi
--if test $ac_cv_header_mmsystem_h = yes; then
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+  echo "$ac_t""yes" 1>&6
-   AUDIODRIVER="wince"
- 	       AUDIODEFS=-DCST_AUDIO_WINCE
- 	       AUDIOLIBS=-lwinmm
-+else
-+  echo "$ac_t""no" 1>&6
- fi
- 
- 
--
--
- # Check whether --with-audio or --without-audio was given.
- if test "${with_audio+set}" = set; then
-   withval="$with_audio"
--  AUDIODRIVER=$with_audio
--fi;
-+  AUDIODRIVER=$with_audio 
-+fi
- 
-+
- if test "x$AUDIODEFS" = x; then
-     case "$AUDIODRIVER" in
- 	linux|oss)
-@@ -4006,34 +1595,34 @@
- 
- 
- 
--
- # Check whether --with-lang or --without-lang was given.
- if test "${with_lang+set}" = set; then
-   withval="$with_lang"
--  FL_LANG=$with_lang
--fi;
-+  FL_LANG=$with_lang 
-+fi
-+
- if test "x$with_lang" = "x"; then
-         FL_LANG="usenglish"
- fi
- 
- 
--
- # Check whether --with-vox or --without-vox was given.
- if test "${with_vox+set}" = set; then
-   withval="$with_vox"
--  FL_VOX=$with_vox
--fi;
-+  FL_VOX=$with_vox 
-+fi
-+
- if test "x$with_vox" = "x"; then
-         FL_VOX="cmu_us_kal"
- fi
- 
- 
--
- # Check whether --with-lex or --without-lex was given.
- if test "${with_lex+set}" = set; then
-   withval="$with_lex"
--  FL_LEX=$with_lex
--fi;
-+  FL_LEX=$with_lex 
-+fi
-+
- if test "x$with_lex" = "x"; then
-         FL_LEX="cmulex"
- fi
-@@ -4041,921 +1630,300 @@
- 
- 
- 
--                    ac_config_files="$ac_config_files config/config config/system.mak"
--cat >confcache <<\_ACEOF
-+trap '' 1 2 15
-+cat > confcache <<\EOF
- # This file is a shell script that caches the results of configure
- # tests run on this system so they can be shared between configure
--# scripts and configure runs, see configure's option --config-cache.
--# It is not useful on other systems.  If it contains results you don't
--# want to keep, you may remove or edit it.
-+# scripts and configure runs.  It is not useful on other systems.
-+# If it contains results you don't want to keep, you may remove or edit it.
- #
--# config.status only pays attention to the cache file if you give it
--# the --recheck option to rerun configure.
-+# By default, configure uses ./config.cache as the cache file,
-+# creating it if it does not exist already.  You can give configure
-+# the --cache-file=FILE option to use a different cache file; that is
-+# what configure does when it calls configure scripts in
-+# subdirectories, so they share the cache.
-+# Giving --cache-file=/dev/null disables caching, for debugging configure.
-+# config.status only pays attention to the cache file if you give it the
-+# --recheck option to rerun configure.
- #
--# `ac_cv_env_foo' variables (set or unset) will be overridden when
--# loading this file, other *unset* `ac_cv_foo' will be assigned the
--# following values.
--
--_ACEOF
--
-+EOF
- # The following way of writing the cache mishandles newlines in values,
- # but we know of no workaround that is simple, portable, and efficient.
- # So, don't put newlines in cache variables' values.
- # Ultrix sh set writes to stderr and can't be redirected directly,
- # and sets the high bit in the cache file unless we assign to the vars.
--{
--  (set) 2>&1 |
--    case `(ac_space=' '; set | grep ac_space) 2>&1` in
--    *ac_space=\ *)
--      # `set' does not quote correctly, so add quotes (double-quote
--      # substitution turns \\\\ into \\, and sed turns \\ into \).
--      sed -n \
--        "s/'/'\\\\''/g;
--    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
--      ;;
--    *)
--      # `set' quotes correctly as required by POSIX, so do not add quotes.
--      sed -n \
--        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
--      ;;
--    esac;
--} |
--  sed '
--     t clear
--     : clear
--     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
--     t end
--     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
--     : end' >>confcache
--if diff $cache_file confcache >/dev/null 2>&1; then :; else
-+(set) 2>&1 |
-+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-+  *ac_space=\ *)
-+    # `set' does not quote correctly, so add quotes (double-quote substitution
-+    # turns \\\\ into \\, and sed turns \\ into \).
-+    sed -n \
-+      -e "s/'/'\\\\''/g" \
-+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-+    ;;
-+  *)
-+    # `set' quotes correctly as required by POSIX, so do not add quotes.
-+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-+    ;;
-+  esac >> confcache
-+if cmp -s $cache_file confcache; then
-+  :
-+else
-   if test -w $cache_file; then
--    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
--    cat confcache >$cache_file
-+    echo "updating cache $cache_file"
-+    cat confcache > $cache_file
-   else
-     echo "not updating unwritable cache $cache_file"
-   fi
- fi
- rm -f confcache
- 
-+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-+
- test "x$prefix" = xNONE && prefix=$ac_default_prefix
- # Let make expand exec_prefix.
- test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
- 
--# VPATH may cause trouble with some makes, so we remove $(srcdir),
--# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
--# trailing colons and then remove the whole line if VPATH becomes empty
--# (actually we leave an empty line to preserve line numbers).
-+# Any assignment to VPATH causes Sun make to only execute
-+# the first set of double-colon rules, so remove it if not needed.
-+# If there is a colon in the path, we need to keep it.
- if test "x$srcdir" = x.; then
--  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
--s/:*\$(srcdir):*/:/;
--s/:*\${srcdir}:*/:/;
--s/:*@srcdir@:*/:/;
--s/^\([^=]*=[ 	]*\):*/\1/;
--s/:*$//;
--s/^[^=]*=[ 	]*$//;
--}'
-+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
- fi
- 
-+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-+
- # Transform confdefs.h into DEFS.
- # Protect against shell expansion while executing Makefile rules.
- # Protect against Makefile macro expansion.
--#
--# If the first sed substitution is executed (which looks for macros that
--# take arguments), then we branch to the quote section.  Otherwise,
--# look for a macro that doesn't take arguments.
--cat >confdef2opt.sed <<\_ACEOF
--t clear
--: clear
--s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*([^)]*)\)[ 	]*\(.*\),-D\1=\2,g
--t quote
--s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\),-D\1=\2,g
--t quote
--d
--: quote
--s,[ 	`~#$^&*(){}\\|;'"<>?],\\&,g
--s,\[,\\&,g
--s,\],\\&,g
--s,\$,$$,g
--p
--_ACEOF
--# We use echo to avoid assuming a particular line-breaking character.
--# The extra dot is to prevent the shell from consuming trailing
--# line-breaks from the sub-command output.  A line-break within
--# single-quotes doesn't work because, if this script is created in a
--# platform that uses two characters for line-breaks (e.g., DOS), tr
--# would break.
--ac_LF_and_DOT=`echo; echo .`
--DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
--rm -f confdef2opt.sed
-+cat > conftest.defs <<\EOF
-+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-+s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
-+s%\[%\\&%g
-+s%\]%\\&%g
-+s%\$%$$%g
-+EOF
-+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-+rm -f conftest.defs
- 
- 
--ac_libobjs=
--ac_ltlibobjs=
--for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
--  # 1. Remove the extension, and $U if already installed.
--  ac_i=`echo "$ac_i" |
--         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
--  # 2. Add them.
--  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
--  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
--done
--LIBOBJS=$ac_libobjs
--
--LTLIBOBJS=$ac_ltlibobjs
--
--
--
-+# Without the "./", some shells look in PATH for config.status.
- : ${CONFIG_STATUS=./config.status}
--ac_clean_files_save=$ac_clean_files
--ac_clean_files="$ac_clean_files $CONFIG_STATUS"
--{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
--echo "$as_me: creating $CONFIG_STATUS" >&6;}
--cat >$CONFIG_STATUS <<_ACEOF
--#! $SHELL
--# Generated by $as_me.
-+
-+echo creating $CONFIG_STATUS
-+rm -f $CONFIG_STATUS
-+cat > $CONFIG_STATUS <<EOF
-+#! /bin/sh
-+# Generated automatically by configure.
- # Run this file to recreate the current configuration.
-+# This directory was configured as follows,
-+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-+#
-+# $0 $ac_configure_args
-+#
- # Compiler output produced by configure, useful for debugging
--# configure, is in config.log if it exists.
-+# configure, is in ./config.log if it exists.
- 
--debug=false
--ac_cs_recheck=false
--ac_cs_silent=false
--SHELL=\${CONFIG_SHELL-$SHELL}
--_ACEOF
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--## --------------------- ##
--## M4sh Initialization.  ##
--## --------------------- ##
--
--# Be Bourne compatible
--if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
--  emulate sh
--  NULLCMD=:
--  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
--  # is contrary to our usage.  Disable this feature.
--  alias -g '${1+"$@"}'='"$@"'
--elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
--  set -o posix
--fi
--
--# Support unset when possible.
--if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
--  as_unset=unset
--else
--  as_unset=false
--fi
--
--
--# Work around bugs in pre-3.0 UWIN ksh.
--$as_unset ENV MAIL MAILPATH
--PS1='$ '
--PS2='> '
--PS4='+ '
--
--# NLS nuisances.
--for as_var in \
--  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
--  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
--  LC_TELEPHONE LC_TIME
-+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-+for ac_option
- do
--  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
--    eval $as_var=C; export $as_var
--  else
--    $as_unset $as_var
--  fi
-+  case "\$ac_option" in
-+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
-+    exit 0 ;;
-+  -help | --help | --hel | --he | --h)
-+    echo "\$ac_cs_usage"; exit 0 ;;
-+  *) echo "\$ac_cs_usage"; exit 1 ;;
-+  esac
- done
- 
--# Required to use basename.
--if expr a : '\(a\)' >/dev/null 2>&1; then
--  as_expr=expr
--else
--  as_expr=false
--fi
-+ac_given_srcdir=$srcdir
-+ac_given_INSTALL="$INSTALL"
- 
--if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
--  as_basename=basename
--else
--  as_basename=false
--fi
-+trap 'rm -fr `echo "config/config config/system.mak" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-+EOF
-+cat >> $CONFIG_STATUS <<EOF
- 
-+# Protect against being on the right side of a sed subst in config.status.
-+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
-+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-+$ac_vpsub
-+$extrasub
-+s%@SHELL@%$SHELL%g
-+s%@CFLAGS@%$CFLAGS%g
-+s%@CPPFLAGS@%$CPPFLAGS%g
-+s%@CXXFLAGS@%$CXXFLAGS%g
-+s%@FFLAGS@%$FFLAGS%g
-+s%@DEFS@%$DEFS%g
-+s%@LDFLAGS@%$LDFLAGS%g
-+s%@LIBS@%$LIBS%g
-+s%@exec_prefix@%$exec_prefix%g
-+s%@prefix@%$prefix%g
-+s%@program_transform_name@%$program_transform_name%g
-+s%@bindir@%$bindir%g
-+s%@sbindir@%$sbindir%g
-+s%@libexecdir@%$libexecdir%g
-+s%@datadir@%$datadir%g
-+s%@sysconfdir@%$sysconfdir%g
-+s%@sharedstatedir@%$sharedstatedir%g
-+s%@localstatedir@%$localstatedir%g
-+s%@libdir@%$libdir%g
-+s%@includedir@%$includedir%g
-+s%@oldincludedir@%$oldincludedir%g
-+s%@infodir@%$infodir%g
-+s%@mandir@%$mandir%g
-+s%@host@%$host%g
-+s%@host_alias@%$host_alias%g
-+s%@host_cpu@%$host_cpu%g
-+s%@host_vendor@%$host_vendor%g
-+s%@host_os@%$host_os%g
-+s%@target@%$target%g
-+s%@target_alias@%$target_alias%g
-+s%@target_cpu@%$target_cpu%g
-+s%@target_vendor@%$target_vendor%g
-+s%@target_os@%$target_os%g
-+s%@build@%$build%g
-+s%@build_alias@%$build_alias%g
-+s%@build_cpu@%$build_cpu%g
-+s%@build_vendor@%$build_vendor%g
-+s%@build_os@%$build_os%g
-+s%@CC@%$CC%g
-+s%@RANLIB@%$RANLIB%g
-+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-+s%@INSTALL_DATA@%$INSTALL_DATA%g
-+s%@AR@%$AR%g
-+s%@TARGET_OS@%$TARGET_OS%g
-+s%@TARGET_CPU@%$TARGET_CPU%g
-+s%@M68KCC@%$M68KCC%g
-+s%@LEXDEFS@%$LEXDEFS%g
-+s%@VOXDEFS@%$VOXDEFS%g
-+s%@HOST_OS@%$HOST_OS%g
-+s%@HOST_CPU@%$HOST_CPU%g
-+s%@OTHERLIBS@%$OTHERLIBS%g
-+s%@SHFLAGS@%$SHFLAGS%g
-+s%@MMAPTYPE@%$MMAPTYPE%g
-+s%@STDIOTYPE@%$STDIOTYPE%g
-+s%@CPP@%$CPP%g
-+s%@AUDIODRIVER@%$AUDIODRIVER%g
-+s%@AUDIODEFS@%$AUDIODEFS%g
-+s%@AUDIOLIBS@%$AUDIOLIBS%g
-+s%@FL_LANG@%$FL_LANG%g
-+s%@FL_VOX@%$FL_VOX%g
-+s%@FL_LEX@%$FL_LEX%g
-+s%@EXEEXT@%$EXEEXT%g
- 
--# Name of the executable.
--as_me=`$as_basename "$0" ||
--$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
--	 X"$0" : 'X\(//\)$' \| \
--	 X"$0" : 'X\(/\)$' \| \
--	 .     : '\(.\)' 2>/dev/null ||
--echo X/"$0" |
--    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
--  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
--  	  /^X\/\(\/\).*/{ s//\1/; q; }
--  	  s/.*/./; q'`
-+CEOF
-+EOF
- 
-+cat >> $CONFIG_STATUS <<\EOF
- 
--# PATH needs CR, and LINENO needs CR and PATH.
--# Avoid depending upon Character Ranges.
--as_cr_letters='abcdefghijklmnopqrstuvwxyz'
--as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
--as_cr_Letters=$as_cr_letters$as_cr_LETTERS
--as_cr_digits='0123456789'
--as_cr_alnum=$as_cr_Letters$as_cr_digits
--
--# The user is always right.
--if test "${PATH_SEPARATOR+set}" != set; then
--  echo "#! /bin/sh" >conf$$.sh
--  echo  "exit 0"   >>conf$$.sh
--  chmod +x conf$$.sh
--  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
--    PATH_SEPARATOR=';'
-+# Split the substitutions into bite-sized pieces for seds with
-+# small command number limits, like on Digital OSF/1 and HP-UX.
-+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-+ac_file=1 # Number of current file.
-+ac_beg=1 # First line for current file.
-+ac_end=$ac_max_sed_cmds # Line after last line for current file.
-+ac_more_lines=:
-+ac_sed_cmds=""
-+while $ac_more_lines; do
-+  if test $ac_beg -gt 1; then
-+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-   else
--    PATH_SEPARATOR=:
-+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-   fi
--  rm -f conf$$.sh
--fi
--
--
--  as_lineno_1=$LINENO
--  as_lineno_2=$LINENO
--  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
--  test "x$as_lineno_1" != "x$as_lineno_2" &&
--  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
--  # Find who we are.  Look in the path if we contain no path at all
--  # relative or not.
--  case $0 in
--    *[\\/]* ) as_myself=$0 ;;
--    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
--done
--
--       ;;
--  esac
--  # We did not find ourselves, most probably we were run as `sh COMMAND'
--  # in which case we are not to be found in the path.
--  if test "x$as_myself" = x; then
--    as_myself=$0
--  fi
--  if test ! -f "$as_myself"; then
--    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
--echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
--   { (exit 1); exit 1; }; }
--  fi
--  case $CONFIG_SHELL in
--  '')
--    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
--do
--  IFS=$as_save_IFS
--  test -z "$as_dir" && as_dir=.
--  for as_base in sh bash ksh sh5; do
--	 case $as_dir in
--	 /*)
--	   if ("$as_dir/$as_base" -c '
--  as_lineno_1=$LINENO
--  as_lineno_2=$LINENO
--  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
--  test "x$as_lineno_1" != "x$as_lineno_2" &&
--  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
--	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
--	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
--	     CONFIG_SHELL=$as_dir/$as_base
--	     export CONFIG_SHELL
--	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
--	   fi;;
--	 esac
--       done
--done
--;;
--  esac
--
--  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
--  # uniformly replaced by the line number.  The first 'sed' inserts a
--  # line-number line before each line; the second 'sed' does the real
--  # work.  The second script uses 'N' to pair each line-number line
--  # with the numbered line, and appends trailing '-' during
--  # substitution so that $LINENO is not a special case at line end.
--  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
--  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
--  sed '=' <$as_myself |
--    sed '
--      N
--      s,$,-,
--      : loop
--      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
--      t loop
--      s,-$,,
--      s,^['$as_cr_digits']*\n,,
--    ' >$as_me.lineno &&
--  chmod +x $as_me.lineno ||
--    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
--echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
--   { (exit 1); exit 1; }; }
--
--  # Don't try to exec as it changes $[0], causing all sort of problems
--  # (the dirname of $[0] is not the place where we might find the
--  # original and so on.  Autoconf is especially sensible to this).
--  . ./$as_me.lineno
--  # Exit status is that of the last command.
--  exit
--}
--
--
--case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
--  *c*,-n*) ECHO_N= ECHO_C='
--' ECHO_T='	' ;;
--  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
--  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
--esac
--
--if expr a : '\(a\)' >/dev/null 2>&1; then
--  as_expr=expr
--else
--  as_expr=false
--fi
--
--rm -f conf$$ conf$$.exe conf$$.file
--echo >conf$$.file
--if ln -s conf$$.file conf$$ 2>/dev/null; then
--  # We could just check for DJGPP; but this test a) works b) is more generic
--  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
--  if test -f conf$$.exe; then
--    # Don't use ln at all; we don't have any links
--    as_ln_s='cp -p'
-+  if test ! -s conftest.s$ac_file; then
-+    ac_more_lines=false
-+    rm -f conftest.s$ac_file
-   else
--    as_ln_s='ln -s'
-+    if test -z "$ac_sed_cmds"; then
-+      ac_sed_cmds="sed -f conftest.s$ac_file"
-+    else
-+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-+    fi
-+    ac_file=`expr $ac_file + 1`
-+    ac_beg=$ac_end
-+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
-   fi
--elif ln conf$$.file conf$$ 2>/dev/null; then
--  as_ln_s=ln
--else
--  as_ln_s='cp -p'
--fi
--rm -f conf$$ conf$$.exe conf$$.file
--
--if mkdir -p . 2>/dev/null; then
--  as_mkdir_p=:
--else
--  as_mkdir_p=false
--fi
--
--as_executable_p="test -f"
--
--# Sed expression to map a string onto a valid CPP name.
--as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
--
--# Sed expression to map a string onto a valid variable name.
--as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
--
--
--# IFS
--# We need space, tab and new line, in precisely that order.
--as_nl='
--'
--IFS=" 	$as_nl"
--
--# CDPATH.
--$as_unset CDPATH
--
--exec 6>&1
--
--# Open the log real soon, to keep \$[0] and so on meaningful, and to
--# report actual input values of CONFIG_FILES etc. instead of their
--# values after options handling.  Logging --version etc. is OK.
--exec 5>>config.log
--{
--  echo
--  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
--## Running $as_me. ##
--_ASBOX
--} >&5
--cat >&5 <<_CSEOF
--
--This file was extended by $as_me, which was
--generated by GNU Autoconf 2.57.  Invocation command line was
--
--  CONFIG_FILES    = $CONFIG_FILES
--  CONFIG_HEADERS  = $CONFIG_HEADERS
--  CONFIG_LINKS    = $CONFIG_LINKS
--  CONFIG_COMMANDS = $CONFIG_COMMANDS
--  $ $0 $@
--
--_CSEOF
--echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
--echo >&5
--_ACEOF
--
--# Files that config.status was made for.
--if test -n "$ac_config_files"; then
--  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_headers"; then
--  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_links"; then
--  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_commands"; then
--  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
--fi
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--
--ac_cs_usage="\
--\`$as_me' instantiates files from templates according to the
--current configuration.
--
--Usage: $0 [OPTIONS] [FILE]...
--
--  -h, --help       print this help, then exit
--  -V, --version    print version number, then exit
--  -q, --quiet      do not print progress messages
--  -d, --debug      don't remove temporary files
--      --recheck    update $as_me by reconfiguring in the same conditions
--  --file=FILE[:TEMPLATE]
--                   instantiate the configuration file FILE
--
--Configuration files:
--$config_files
--
--Report bugs to <bug-autoconf@gnu.org>."
--_ACEOF
--
--cat >>$CONFIG_STATUS <<_ACEOF
--ac_cs_version="\\
--config.status
--configured by $0, generated by GNU Autoconf 2.57,
--  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
--
--Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
--Free Software Foundation, Inc.
--This config.status script is free software; the Free Software Foundation
--gives unlimited permission to copy, distribute and modify it."
--srcdir=$srcdir
--INSTALL="$INSTALL"
--_ACEOF
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--# If no file are specified by the user, then we need to provide default
--# value.  By we need to know if files were specified by the user.
--ac_need_defaults=:
--while test $# != 0
--do
--  case $1 in
--  --*=*)
--    ac_option=`expr "x$1" : 'x\([^=]*\)='`
--    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
--    ac_shift=:
--    ;;
--  -*)
--    ac_option=$1
--    ac_optarg=$2
--    ac_shift=shift
--    ;;
--  *) # This is not an option, so the user has probably given explicit
--     # arguments.
--     ac_option=$1
--     ac_need_defaults=false;;
--  esac
--
--  case $ac_option in
--  # Handling of the options.
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
--    ac_cs_recheck=: ;;
--  --version | --vers* | -V )
--    echo "$ac_cs_version"; exit 0 ;;
--  --he | --h)
--    # Conflict between --help and --header
--    { { echo "$as_me:$LINENO: error: ambiguous option: $1
--Try \`$0 --help' for more information." >&5
--echo "$as_me: error: ambiguous option: $1
--Try \`$0 --help' for more information." >&2;}
--   { (exit 1); exit 1; }; };;
--  --help | --hel | -h )
--    echo "$ac_cs_usage"; exit 0 ;;
--  --debug | --d* | -d )
--    debug=: ;;
--  --file | --fil | --fi | --f )
--    $ac_shift
--    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
--    ac_need_defaults=false;;
--  --header | --heade | --head | --hea )
--    $ac_shift
--    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
--    ac_need_defaults=false;;
--  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
--  | -silent | --silent | --silen | --sile | --sil | --si | --s)
--    ac_cs_silent=: ;;
--
--  # This is an error.
--  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
--Try \`$0 --help' for more information." >&5
--echo "$as_me: error: unrecognized option: $1
--Try \`$0 --help' for more information." >&2;}
--   { (exit 1); exit 1; }; } ;;
--
--  *) ac_config_targets="$ac_config_targets $1" ;;
--
--  esac
--  shift
- done
--
--ac_configure_extra_args=
--
--if $ac_cs_silent; then
--  exec 6>/dev/null
--  ac_configure_extra_args="$ac_configure_extra_args --silent"
-+if test -z "$ac_sed_cmds"; then
-+  ac_sed_cmds=cat
- fi
-+EOF
- 
--_ACEOF
--cat >>$CONFIG_STATUS <<_ACEOF
--if \$ac_cs_recheck; then
--  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
--  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
--fi
-+cat >> $CONFIG_STATUS <<EOF
- 
--_ACEOF
--
--
--
--
--
--cat >>$CONFIG_STATUS <<\_ACEOF
--for ac_config_target in $ac_config_targets
--do
--  case "$ac_config_target" in
--  # Handling of arguments.
--  "config/config" ) CONFIG_FILES="$CONFIG_FILES config/config" ;;
--  "config/system.mak" ) CONFIG_FILES="$CONFIG_FILES config/system.mak" ;;
--  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
--echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
--   { (exit 1); exit 1; }; };;
-+CONFIG_FILES=\${CONFIG_FILES-"config/config config/system.mak"}
-+EOF
-+cat >> $CONFIG_STATUS <<\EOF
-+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-+  case "$ac_file" in
-+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-+  *) ac_file_in="${ac_file}.in" ;;
-   esac
--done
- 
--# If the user did not use the arguments to specify the items to instantiate,
--# then the envvar interface is used.  Set only those that are not.
--# We use the long form for the default assignment because of an extremely
--# bizarre bug on SunOS 4.1.3.
--if $ac_need_defaults; then
--  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
--fi
-+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
- 
--# Have a temporary directory for convenience.  Make it in the build tree
--# simply because there is no reason to put it here, and in addition,
--# creating and moving files from /tmp can sometimes cause problems.
--# Create a temporary directory, and hook for its removal unless debugging.
--$debug ||
--{
--  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
--  trap '{ (exit 1); exit 1; }' 1 2 13 15
--}
--
--# Create a (secure) tmp directory for tmp files.
--
--{
--  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
--  test -n "$tmp" && test -d "$tmp"
--}  ||
--{
--  tmp=./confstat$$-$RANDOM
--  (umask 077 && mkdir $tmp)
--} ||
--{
--   echo "$me: cannot create a temporary directory in ." >&2
--   { (exit 1); exit 1; }
--}
--
--_ACEOF
--
--cat >>$CONFIG_STATUS <<_ACEOF
--
--#
--# CONFIG_FILES section.
--#
--
--# No need to generate the scripts if there are no CONFIG_FILES.
--# This happens for instance when ./config.status config.h
--if test -n "\$CONFIG_FILES"; then
--  # Protect against being on the right side of a sed subst in config.status.
--  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
--   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
--s,@SHELL@,$SHELL,;t t
--s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
--s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
--s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
--s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
--s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
--s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
--s,@exec_prefix@,$exec_prefix,;t t
--s,@prefix@,$prefix,;t t
--s,@program_transform_name@,$program_transform_name,;t t
--s,@bindir@,$bindir,;t t
--s,@sbindir@,$sbindir,;t t
--s,@libexecdir@,$libexecdir,;t t
--s,@datadir@,$datadir,;t t
--s,@sysconfdir@,$sysconfdir,;t t
--s,@sharedstatedir@,$sharedstatedir,;t t
--s,@localstatedir@,$localstatedir,;t t
--s,@libdir@,$libdir,;t t
--s,@includedir@,$includedir,;t t
--s,@oldincludedir@,$oldincludedir,;t t
--s,@infodir@,$infodir,;t t
--s,@mandir@,$mandir,;t t
--s,@build_alias@,$build_alias,;t t
--s,@host_alias@,$host_alias,;t t
--s,@target_alias@,$target_alias,;t t
--s,@DEFS@,$DEFS,;t t
--s,@ECHO_C@,$ECHO_C,;t t
--s,@ECHO_N@,$ECHO_N,;t t
--s,@ECHO_T@,$ECHO_T,;t t
--s,@LIBS@,$LIBS,;t t
--s,@build@,$build,;t t
--s,@build_cpu@,$build_cpu,;t t
--s,@build_vendor@,$build_vendor,;t t
--s,@build_os@,$build_os,;t t
--s,@host@,$host,;t t
--s,@host_cpu@,$host_cpu,;t t
--s,@host_vendor@,$host_vendor,;t t
--s,@host_os@,$host_os,;t t
--s,@target@,$target,;t t
--s,@target_cpu@,$target_cpu,;t t
--s,@target_vendor@,$target_vendor,;t t
--s,@target_os@,$target_os,;t t
--s,@CC@,$CC,;t t
--s,@CFLAGS@,$CFLAGS,;t t
--s,@LDFLAGS@,$LDFLAGS,;t t
--s,@CPPFLAGS@,$CPPFLAGS,;t t
--s,@ac_ct_CC@,$ac_ct_CC,;t t
--s,@EXEEXT@,$EXEEXT,;t t
--s,@OBJEXT@,$OBJEXT,;t t
--s,@RANLIB@,$RANLIB,;t t
--s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
--s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
--s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
--s,@INSTALL_DATA@,$INSTALL_DATA,;t t
--s,@AR@,$AR,;t t
--s,@ac_ct_AR@,$ac_ct_AR,;t t
--s,@TARGET_OS@,$TARGET_OS,;t t
--s,@TARGET_CPU@,$TARGET_CPU,;t t
--s,@M68KCC@,$M68KCC,;t t
--s,@LEXDEFS@,$LEXDEFS,;t t
--s,@VOXDEFS@,$VOXDEFS,;t t
--s,@HOST_OS@,$HOST_OS,;t t
--s,@HOST_CPU@,$HOST_CPU,;t t
--s,@OTHERLIBS@,$OTHERLIBS,;t t
--s,@SHFLAGS@,$SHFLAGS,;t t
--s,@MMAPTYPE@,$MMAPTYPE,;t t
--s,@STDIOTYPE@,$STDIOTYPE,;t t
--s,@CPP@,$CPP,;t t
--s,@EGREP@,$EGREP,;t t
--s,@AUDIODRIVER@,$AUDIODRIVER,;t t
--s,@AUDIODEFS@,$AUDIODEFS,;t t
--s,@AUDIOLIBS@,$AUDIOLIBS,;t t
--s,@FL_LANG@,$FL_LANG,;t t
--s,@FL_VOX@,$FL_VOX,;t t
--s,@FL_LEX@,$FL_LEX,;t t
--s,@LIBOBJS@,$LIBOBJS,;t t
--s,@LTLIBOBJS@,$LTLIBOBJS,;t t
--CEOF
--
--_ACEOF
--
--  cat >>$CONFIG_STATUS <<\_ACEOF
--  # Split the substitutions into bite-sized pieces for seds with
--  # small command number limits, like on Digital OSF/1 and HP-UX.
--  ac_max_sed_lines=48
--  ac_sed_frag=1 # Number of current file.
--  ac_beg=1 # First line for current file.
--  ac_end=$ac_max_sed_lines # Line after last line for current file.
--  ac_more_lines=:
--  ac_sed_cmds=
--  while $ac_more_lines; do
--    if test $ac_beg -gt 1; then
--      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
--    else
--      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
--    fi
--    if test ! -s $tmp/subs.frag; then
--      ac_more_lines=false
--    else
--      # The purpose of the label and of the branching condition is to
--      # speed up the sed processing (if there are no `@' at all, there
--      # is no need to browse any of the substitutions).
--      # These are the two extra sed commands mentioned above.
--      (echo ':t
--  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
--      if test -z "$ac_sed_cmds"; then
--  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
--      else
--  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
--      fi
--      ac_sed_frag=`expr $ac_sed_frag + 1`
--      ac_beg=$ac_end
--      ac_end=`expr $ac_end + $ac_max_sed_lines`
--    fi
--  done
--  if test -z "$ac_sed_cmds"; then
--    ac_sed_cmds=cat
-+  # Remove last slash and all that follows it.  Not all systems have dirname.
-+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-+    # The file is in a subdirectory.
-+    test ! -d "$ac_dir" && mkdir "$ac_dir"
-+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
-+    # A "../" for each directory in $ac_dir_suffix.
-+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
-+  else
-+    ac_dir_suffix= ac_dots=
-   fi
--fi # test -n "$CONFIG_FILES"
- 
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
--  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
--  case $ac_file in
--  - | *:- | *:-:* ) # input from stdin
--        cat >$tmp/stdin
--        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
--        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
--  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
--        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
--  * )   ac_file_in=$ac_file.in ;;
-+  case "$ac_given_srcdir" in
-+  .)  srcdir=.
-+      if test -z "$ac_dots"; then top_srcdir=.
-+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-+  *) # Relative path.
-+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
-   esac
- 
--  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
--  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
--$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
--         X"$ac_file" : 'X\(//\)[^/]' \| \
--         X"$ac_file" : 'X\(//\)$' \| \
--         X"$ac_file" : 'X\(/\)' \| \
--         .     : '\(.\)' 2>/dev/null ||
--echo X"$ac_file" |
--    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
--  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
--  	  /^X\(\/\/\)$/{ s//\1/; q; }
--  	  /^X\(\/\).*/{ s//\1/; q; }
--  	  s/.*/./; q'`
--  { if $as_mkdir_p; then
--    mkdir -p "$ac_dir"
--  else
--    as_dir="$ac_dir"
--    as_dirs=
--    while test ! -d "$as_dir"; do
--      as_dirs="$as_dir $as_dirs"
--      as_dir=`(dirname "$as_dir") 2>/dev/null ||
--$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
--         X"$as_dir" : 'X\(//\)[^/]' \| \
--         X"$as_dir" : 'X\(//\)$' \| \
--         X"$as_dir" : 'X\(/\)' \| \
--         .     : '\(.\)' 2>/dev/null ||
--echo X"$as_dir" |
--    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
--  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
--  	  /^X\(\/\/\)$/{ s//\1/; q; }
--  	  /^X\(\/\).*/{ s//\1/; q; }
--  	  s/.*/./; q'`
--    done
--    test ! -n "$as_dirs" || mkdir $as_dirs
--  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
--echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
--   { (exit 1); exit 1; }; }; }
-+  case "$ac_given_INSTALL" in
-+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
-+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
-+  esac
- 
--  ac_builddir=.
--
--if test "$ac_dir" != .; then
--  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
--  # A "../" for each directory in $ac_dir_suffix.
--  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
--else
--  ac_dir_suffix= ac_top_builddir=
--fi
--
--case $srcdir in
--  .)  # No --srcdir option.  We are building in place.
--    ac_srcdir=.
--    if test -z "$ac_top_builddir"; then
--       ac_top_srcdir=.
--    else
--       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
--    fi ;;
--  [\\/]* | ?:[\\/]* )  # Absolute path.
--    ac_srcdir=$srcdir$ac_dir_suffix;
--    ac_top_srcdir=$srcdir ;;
--  *) # Relative path.
--    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
--    ac_top_srcdir=$ac_top_builddir$srcdir ;;
--esac
--# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
--# absolute.
--ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
--ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
--ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
--ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
--
--
--  case $INSTALL in
--  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
--  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
-+  echo creating "$ac_file"
-+  rm -f "$ac_file"
-+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-+  case "$ac_file" in
-+  *Makefile*) ac_comsub="1i\\
-+# $configure_input" ;;
-+  *) ac_comsub= ;;
-   esac
- 
--  if test x"$ac_file" != x-; then
--    { echo "$as_me:$LINENO: creating $ac_file" >&5
--echo "$as_me: creating $ac_file" >&6;}
--    rm -f "$ac_file"
--  fi
--  # Let's still pretend it is `configure' which instantiates (i.e., don't
--  # use $as_me), people would be surprised to read:
--  #    /* config.h.  Generated by config.status.  */
--  if test x"$ac_file" = x-; then
--    configure_input=
--  else
--    configure_input="$ac_file.  "
--  fi
--  configure_input=$configure_input"Generated from `echo $ac_file_in |
--                                     sed 's,.*/,,'` by configure."
-+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-+  sed -e "$ac_comsub
-+s%@configure_input@%$configure_input%g
-+s%@srcdir@%$srcdir%g
-+s%@top_srcdir@%$top_srcdir%g
-+s%@INSTALL@%$INSTALL%g
-+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-+fi; done
-+rm -f conftest.s*
- 
--  # First look for the input files in the build tree, otherwise in the
--  # src tree.
--  ac_file_inputs=`IFS=:
--    for f in $ac_file_in; do
--      case $f in
--      -) echo $tmp/stdin ;;
--      [\\/$]*)
--         # Absolute (can't be DOS-style, as IFS=:)
--         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
--   { (exit 1); exit 1; }; }
--         echo $f;;
--      *) # Relative
--         if test -f "$f"; then
--           # Build tree
--           echo $f
--         elif test -f "$srcdir/$f"; then
--           # Source tree
--           echo $srcdir/$f
--         else
--           # /dev/null tree
--           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
--   { (exit 1); exit 1; }; }
--         fi;;
--      esac
--    done` || { (exit 1); exit 1; }
--_ACEOF
--cat >>$CONFIG_STATUS <<_ACEOF
--  sed "$ac_vpsub
--$extrasub
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--:t
--/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
--s,@configure_input@,$configure_input,;t t
--s,@srcdir@,$ac_srcdir,;t t
--s,@abs_srcdir@,$ac_abs_srcdir,;t t
--s,@top_srcdir@,$ac_top_srcdir,;t t
--s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
--s,@builddir@,$ac_builddir,;t t
--s,@abs_builddir@,$ac_abs_builddir,;t t
--s,@top_builddir@,$ac_top_builddir,;t t
--s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
--s,@INSTALL@,$ac_INSTALL,;t t
--" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
--  rm -f $tmp/stdin
--  if test x"$ac_file" != x-; then
--    mv $tmp/out $ac_file
--  else
--    cat $tmp/out
--    rm -f $tmp/out
--  fi
-+EOF
-+cat >> $CONFIG_STATUS <<EOF
- 
--done
--_ACEOF
-+EOF
-+cat >> $CONFIG_STATUS <<\EOF
- 
--cat >>$CONFIG_STATUS <<\_ACEOF
--
--{ (exit 0); exit 0; }
--_ACEOF
-+exit 0
-+EOF
- chmod +x $CONFIG_STATUS
--ac_clean_files=$ac_clean_files_save
-+rm -fr confdefs* $ac_clean_files
-+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
- 
--
--# configure is writing to config.log, and then calls config.status.
--# config.status does its own redirection, appending to config.log.
--# Unfortunately, on DOS this fails, as config.log is still kept open
--# by configure, so config.status won't be able to write to it; its
--# output is simply discarded.  So we exec the FD to /dev/null,
--# effectively closing config.log, so it can be properly (re)opened and
--# appended to by config.status.  When coming back to configure, we
--# need to make the FD available again.
--if test "$no_create" != yes; then
--  ac_cs_success=:
--  ac_config_status_args=
--  test "$silent" = yes &&
--    ac_config_status_args="$ac_config_status_args --quiet"
--  exec 5>/dev/null
--  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
--  exec 5>>config.log
--  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
--  # would make configure fail if this is the last instruction.
--  $ac_cs_success || { (exit 1); exit 1; }
--fi
--
-Index: configure.in
-===================================================================
---- flite-1.3-release/configure.in	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/configure.in	(.../release-1.2)	(revision 7)
-@@ -206,10 +206,10 @@
- AC_CHECK_HEADER(sys/audioio.h,
-               [AUDIODRIVER="sun"
-                AUDIODEFS=-DCST_AUDIO_SUNOS])
--dnl AC_CHECK_HEADER(sys/asoundlib.h,
--dnl              [AUDIODRIVER="alsa"
--dnl	       AUDIODEFS=-DCST_AUDIO_ALSA
--dnl               AUDIOLIBS=-lasound])
-+ AC_CHECK_HEADER(alsa/asoundlib.h,
-+              [AUDIODRIVER="alsa"
-+	       AUDIODEFS=-DCST_AUDIO_ALSA
-+               AUDIOLIBS=-lasound])
- AC_CHECK_HEADER(mmsystem.h,
- 	      [AUDIODRIVER="wince"
- 	       AUDIODEFS=-DCST_AUDIO_WINCE
-Index: src/hrg/Makefile
-===================================================================
---- flite-1.3-release/src/hrg/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/hrg/Makefile	(.../release-1.2)	(revision 7)
-@@ -39,9 +39,14 @@
- BUILD_DIRS = 
- ALL_DIRS= 
- H = 
-+include $(TOP)/config/config
- SRCS = cst_utterance.c cst_relation.c cst_item.c cst_ffeature.c \
-        cst_rel_io.c
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- FILES = Makefile $(H) $(SRCS)
- LIBNAME = flite
- 
-Index: src/utils/Makefile
-===================================================================
---- flite-1.3-release/src/utils/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/utils/Makefile	(.../release-1.2)	(revision 7)
-@@ -44,8 +44,13 @@
-        cst_tokenstream.c cst_val.c cst_features.c \
-        cst_endian.c cst_socket.c cst_val_const.c \
-        cst_val_user.c cst_args.c 
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os) $(MMAPTYPE:%=cst_mmap_%.os) \
-+        $(STDIOTYPE:%=cst_file_%.os)
-+else
- OBJS := $(SRCS:.c=.o) $(MMAPTYPE:%=cst_mmap_%.o) \
-         $(STDIOTYPE:%=cst_file_%.o)
-+endif
- FILES = Makefile $(H) $(SRCS) \
- 	cst_mmap_posix.c cst_mmap_win32.c cst_mmap_none.c \
- 	cst_file_stdio.c cst_file_wince.c cst_file_palmos.c
-Index: src/audio/au_alsa.c
-===================================================================
---- flite-1.3-release/src/audio/au_alsa.c	(.../flite-1.3-orig)	(revision 0)
-+++ flite-1.3-release/src/audio/au_alsa.c	(.../release-1.2)	(revision 7)
-@@ -0,0 +1,311 @@
-+/*************************************************************************/
-+/*                                                                       */
-+/*                  Language Technologies Institute                      */
-+/*                     Carnegie Mellon University                        */
-+/*                        Copyright (c) 2000                             */
-+/*                        All Rights Reserved.                           */
-+/*                                                                       */
-+/*  Permission is hereby granted, free of charge, to use and distribute  */
-+/*  this software and its documentation without restriction, including   */
-+/*  without limitation the rights to use, copy, modify, merge, publish,  */
-+/*  distribute, sublicense, and/or sell copies of this work, and to      */
-+/*  permit persons to whom this work is furnished to do so, subject to   */
-+/*  the following conditions:                                            */
-+/*   1. The code must retain the above copyright notice, this list of    */
-+/*      conditions and the following disclaimer.                         */
-+/*   2. Any modifications must be clearly marked as such.                */
-+/*   3. Original authors' names are not deleted.                         */
-+/*   4. The authors' names are not used to endorse or promote products   */
-+/*      derived from this software without specific prior written        */
-+/*      permission.                                                      */
-+/*                                                                       */
-+/*  CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK         */
-+/*  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      */
-+/*  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   */
-+/*  SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE      */
-+/*  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    */
-+/*  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   */
-+/*  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          */
-+/*  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       */
-+/*  THIS SOFTWARE.                                                       */
-+/*                                                                       */
-+/*********************************************************************** */
-+/*             Author:  Lukas Loehrer (                                  */
-+/*               Date:  January 2005                                     */
-+/*************************************************************************/
-+/*                                                                       */
-+/*  Native access to alsa audio devices on Linux                         */
-+/*  Tested with libasound version 1.0.10                                 */
-+/*************************************************************************/
-+
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <assert.h>
-+#include <errno.h>
-+
-+#include "cst_string.h"
-+#include "cst_wave.h"
-+#include "cst_audio.h"
-+
-+#include <alsa/asoundlib.h>
-+
-+
-+/*static char *pcm_dev_name = "hw:0,0"; */
-+static char *pcm_dev_name ="default";
-+
-+static inline void print_pcm_state(snd_pcm_t *handle, char *msg)
-+{
-+  fprintf(stderr, "PCM state at %s = %s\n", msg,
-+		  snd_pcm_state_name(snd_pcm_state(handle)));
-+}
-+
-+cst_audiodev *audio_open_alsa(int sps, int channels, cst_audiofmt fmt)
-+{
-+  cst_audiodev *ad;
-+  unsigned 	int real_rate;
-+  int err;
-+
-+  /* alsa specific stuff */
-+  snd_pcm_t *pcm_handle;          
-+  snd_pcm_stream_t stream = SND_PCM_STREAM_PLAYBACK;
-+  snd_pcm_hw_params_t *hwparams;
-+  snd_pcm_format_t format;
-+  snd_pcm_access_t access = SND_PCM_ACCESS_RW_INTERLEAVED;
-+
-+  /* Allocate the snd_pcm_hw_params_t structure on the stack. */
-+  snd_pcm_hw_params_alloca(&hwparams);
-+
-+  /* Open pcm device */
-+  err = snd_pcm_open(&pcm_handle, pcm_dev_name, stream, 0);
-+  if (err < 0) 
-+  {
-+	cst_errmsg("audio_open_alsa: failed to open audio device %s. %s\n",
-+			   pcm_dev_name, snd_strerror(err));
-+	return NULL;
-+  }
-+
-+  /* Init hwparams with full configuration space */
-+  err = snd_pcm_hw_params_any(pcm_handle, hwparams);
-+  if (err < 0) 
-+  {
-+	snd_pcm_close(pcm_handle);
-+	cst_errmsg("audio_open_alsa: failed to get hardware parameters from audio device. %s\n", snd_strerror(err));
-+	return NULL;
-+  }
-+
-+  /* Set access mode */
-+  err = snd_pcm_hw_params_set_access(pcm_handle, hwparams, access);
-+  if (err < 0) 
-+  {
-+	snd_pcm_close(pcm_handle);
-+	cst_errmsg("audio_open_alsa: failed to set access mode. %s.\n", snd_strerror(err));
-+	return NULL;
-+  }
-+
-+  /* Determine matching alsa sample format */
-+  /* This could be implemented in a more */
-+  /* flexible way (byte order conversion). */
-+  switch (fmt)
-+  {
-+  case CST_AUDIO_LINEAR16:
-+	if (CST_LITTLE_ENDIAN)
-+	  format = SND_PCM_FORMAT_S16_LE;
-+	else
-+	  format = SND_PCM_FORMAT_S16_BE;
-+	break;
-+  case CST_AUDIO_LINEAR8:
-+	format = SND_PCM_FORMAT_U8;
-+	break;
-+  case CST_AUDIO_MULAW:
-+	format = SND_PCM_FORMAT_MU_LAW;
-+	break;
-+  default:
-+	snd_pcm_close(pcm_handle);
-+	cst_errmsg("audio_open_alsa: failed to find suitable format.\n");
-+	return NULL;
-+	break;
-+  }
-+
-+  /* Set samble format */
-+  err = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format);
-+  if (err <0) 
-+  {
-+	snd_pcm_close(pcm_handle);
-+	cst_errmsg("audio_open_alsa: failed to set format. %s.\n", snd_strerror(err));
-+	return NULL;
-+  }
-+
-+  /* Set sample rate near the disired rate */
-+  real_rate = sps;
-+  err = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &real_rate, 0);
-+  if (err < 0)   
-+  {
-+	snd_pcm_close(pcm_handle);
-+	cst_errmsg("audio_open_alsa: failed to set sample rate near %d. %s.\n", sps, snd_strerror(err));
-+	return NULL;
-+  }
-+  /*FIXME:  This is probably too strict */
-+  assert(sps == real_rate);
-+
-+  /* Set number of channels */
-+  assert(channels >0);
-+  err = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, channels);
-+  if (err < 0) 
-+  {
-+	snd_pcm_close(pcm_handle);
-+	cst_errmsg("audio_open_alsa: failed to set number of channels to %d. %s.\n", channels, snd_strerror(err));
-+	return NULL;
-+  }
-+
-+  /* Commit hardware parameters */
-+  err = snd_pcm_hw_params(pcm_handle, hwparams);
-+  if (err < 0) 
-+  {
-+	snd_pcm_close(pcm_handle);
-+	cst_errmsg("audio_open_alsa: failed to set hw parameters. %s.\n", snd_strerror(err));
-+	return NULL;
-+  }
-+
-+  /* Make sure the device is ready to accept data */
-+  assert(snd_pcm_state(pcm_handle) == SND_PCM_STATE_PREPARED);
-+
-+  /* Write hardware parameters to flite audio device data structure */
-+  ad = cst_alloc(cst_audiodev, 1);
-+  assert(ad != NULL);
-+  ad->real_sps = ad->sps = sps;
-+  ad->real_channels = ad->channels = channels;
-+  ad->real_fmt = ad->fmt = fmt;
-+  ad->platform_data = (void *) pcm_handle;
-+
-+  return ad;
-+}
-+
-+int audio_close_alsa(cst_audiodev *ad)
-+{
-+  int result;
-+  snd_pcm_t *pcm_handle;
-+
-+  if (ad == NULL)
-+	return 0;
-+
-+  pcm_handle = (snd_pcm_t *) ad->platform_data;
-+  result = snd_pcm_close(pcm_handle);
-+  if (result < 0)
-+  {
-+	cst_errmsg("audio_close_alsa: Error: %s.\n", snd_strerror(result));
-+  }
-+  cst_free(ad);
-+  return result;
-+}
-+
-+/* Returns zero if recovery was successful. */
-+static int recover_from_error(snd_pcm_t *pcm_handle, ssize_t res)
-+{
-+  if (res == -EPIPE) /* xrun */
-+  {
-+	res = snd_pcm_prepare(pcm_handle);
-+	if (res < 0) 
-+	{
-+	  /* Failed to recover from xrun */
-+	  cst_errmsg("recover_from_write_error: failed to recover from xrun. %s\n.", snd_strerror(res));
-+	  return res;
-+	}
-+  } 
-+  else if (res == -ESTRPIPE) /* Suspend */
-+  {
-+	while ((res = snd_pcm_resume(pcm_handle)) == -EAGAIN) 
-+	{
-+	  snd_pcm_wait(pcm_handle, 1000);
-+	}
-+	if (res < 0) 
-+	{
-+	  res = snd_pcm_prepare(pcm_handle);
-+	  if (res <0) 
-+	  {
-+		/* Resume failed */
-+		cst_errmsg("audio_recover_from_write_error: failed to resume after suspend. %s\n.", snd_strerror(res));
-+		return res;
-+	  }
-+	}
-+  } 
-+  else if (res < 0) 
-+  {
-+	/* Unknown failure */
-+	cst_errmsg("audio_recover_from_write_error: %s.\n", snd_strerror(res));
-+	return res;
-+  }
-+  return 0;
-+}
-+
-+int audio_write_alsa(cst_audiodev *ad, void *samples, int num_bytes)
-+{
-+  size_t frame_size;
-+  ssize_t num_frames, res;
-+  snd_pcm_t *pcm_handle;
-+  char *buf = (char *) samples;
-+
-+  /* Determine frame size in bytes */
-+  frame_size  = audio_bps(ad->real_fmt) * ad->real_channels;
-+  /* Require that only complete frames are handed in */
-+  assert((num_bytes % frame_size) == 0);
-+  num_frames = num_bytes / frame_size;
-+  pcm_handle = (snd_pcm_t *) ad->platform_data;
-+
-+  while (num_frames > 0) 
-+  {
-+	res = snd_pcm_writei(pcm_handle, buf, num_frames);
-+	if (res != num_frames) 
-+	{
-+	  if (res == -EAGAIN || (res > 0 && res < num_frames)) 
-+	  {
-+		snd_pcm_wait(pcm_handle, 100);
-+	  }
-+	  else if (recover_from_error(pcm_handle, res) < 0) 
-+	  {
-+		return -1;
-+	  }
-+	}
-+
-+	if (res >0) 
-+	{
-+	  num_frames -= res;
-+	  buf += res * frame_size;
-+	}
-+  }
-+  return num_bytes;
-+}
-+
-+int audio_flush_alsa(cst_audiodev *ad)
-+{
-+  int result;
-+  result = snd_pcm_drain((snd_pcm_t *) ad->platform_data);
-+  if (result < 0)
-+  {
-+	cst_errmsg("audio_flush_alsa: Error: %s.\n", snd_strerror(result));
-+  }
-+	/* Prepare device for more data */
-+  result = snd_pcm_prepare((snd_pcm_t *) ad->platform_data);
-+if (result < 0)
-+  {
-+	cst_errmsg("audio_flush_alsa: Error: %s.\n", snd_strerror(result));
-+  }
-+  return result;
-+}
-+
-+int audio_drain_alsa(cst_audiodev *ad)
-+{
-+  int result;
-+  result = snd_pcm_drop((snd_pcm_t *) ad->platform_data);
-+  if (result < 0)
-+  {
-+	cst_errmsg("audio_drain_alsa: Error: %s.\n", snd_strerror(result));
-+  }
-+/* Prepare device for more data */
-+  result = snd_pcm_prepare((snd_pcm_t *) ad->platform_data);
-+if (result < 0)
-+  {
-+	cst_errmsg("audio_drain_alsa: Error: %s.\n", snd_strerror(result));
-+  }
-+  return result;
-+}
-Index: src/audio/Makefile
-===================================================================
---- flite-1.3-release/src/audio/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/audio/Makefile	(.../release-1.2)	(revision 7)
-@@ -43,9 +43,13 @@
- 
- BASESRCS = auclient.c auserver.c audio.c 
- SRCS = $(BASESRCS) $(AUDIODRIVER:%=au_%.c)
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- FILES = Makefile $(H) $(BASESRCS) au_command.c au_none.c \
--	au_oss.c au_sun.c au_wince.c au_palmos.c
-+	au_oss.c au_sun.c au_wince.c au_palmos.c au_alsa.c
- LIBNAME = flite
- 
- LOCAL_INCLUDES = -I. $(AUDIODEFS)
-Index: src/lexicon/Makefile
-===================================================================
---- flite-1.3-release/src/lexicon/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/lexicon/Makefile	(.../release-1.2)	(revision 7)
-@@ -38,8 +38,13 @@
- DIRNAME=src/lexicon
- BUILD_DIRS = 
- ALL_DIRS= 
-+include $(TOP)/config/config
- SRCS = cst_lexicon.c cst_lts.c cst_lts_rewrites.c
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- FILES = Makefile $(SRCS)
- LIBNAME = flite
- 
-Index: src/synth/Makefile
-===================================================================
---- flite-1.3-release/src/synth/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/synth/Makefile	(.../release-1.2)	(revision 7)
-@@ -38,9 +38,14 @@
- DIRNAME=src/synth
- BUILD_DIRS = 
- ALL_DIRS= 
-+include $(TOP)/config/config
- SRCS = cst_synth.c cst_utt_utils.c cst_voice.c cst_phoneset.c \
-        flite.c 
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- FILES = Makefile $(SRCS)
- LIBNAME = flite
- 
-Index: src/speech/Makefile
-===================================================================
---- flite-1.3-release/src/speech/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/speech/Makefile	(.../release-1.2)	(revision 7)
-@@ -39,9 +39,14 @@
- BUILD_DIRS = 
- ALL_DIRS= 
- H = 
-+include $(TOP)/config/config
- SRCS = cst_wave.c cst_wave_io.c cst_track.c cst_track_io.c \
-        cst_wave_utils.c cst_lpcres.c rateconv.c
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- FILES = Makefile $(H) $(SRCS)
- LIBNAME = flite
- 
-Index: src/wavesynth/Makefile
-===================================================================
---- flite-1.3-release/src/wavesynth/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/wavesynth/Makefile	(.../release-1.2)	(revision 7)
-@@ -38,9 +38,14 @@
- DIRNAME=src/wavesynth
- BUILD_DIRS = 
- ALL_DIRS=
-+include $(TOP)/config/config
- SRCS = cst_units.c cst_sigpr.c cst_clunits.c cst_diphone.c \
-        cst_sigprFP.c cst_sts.c cst_reflpc.c
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- LIBNAME = flite
- FILES = Makefile $(SRCS)
- 
-Index: src/regex/Makefile
-===================================================================
---- flite-1.3-release/src/regex/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/regex/Makefile	(.../release-1.2)	(revision 7)
-@@ -42,8 +42,13 @@
- DIRNAME=src/regex
- BUILD_DIRS = 
- ALL_DIRS= 
-+include $(TOP)/config/config
- SRCS = cst_regex.c regexp.c regsub.c
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- FILES = Makefile $(H) $(SRCS)
- LIBNAME = flite
- 
-Index: src/stats/Makefile
-===================================================================
---- flite-1.3-release/src/stats/Makefile	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/src/stats/Makefile	(.../release-1.2)	(revision 7)
-@@ -39,8 +39,13 @@
- BUILD_DIRS = 
- ALL_DIRS= 
- H = 
-+include $(TOP)/config/config
- SRCS = cst_cart.c cst_viterbi.c cst_ss.c
--OBJS = $(SRCS:.c=.o)
-+ifdef SHFLAGS
-+OBJS := $(SRCS:.c=.os)
-+else
-+OBJS := $(SRCS:.c=.o)
-+endif
- FILES = Makefile $(H) $(SRCS)
- LIBNAME = flite
- 
-Index: config/common_make_rules
-===================================================================
---- flite-1.3-release/config/common_make_rules	(.../flite-1.3-orig)	(revision 7)
-+++ flite-1.3-release/config/common_make_rules	(.../release-1.2)	(revision 7)
-@@ -73,12 +73,13 @@
- ifdef SHFLAGS
- SOOBJS = $(OBJS:.o=.os)
- FULLSHOBJS = $(SOOBJS:%=$(OBJDIR)/%)
--ifdef LIBNAME
--ALL += $(OBJDIR)/.build_so
-+#ifdef LIBNAME
-+#ALL += $(OBJDIR)/.build_so
-+#endif
- endif
--endif
- ifdef LIBNAME
- ALL += $(OBJDIR)/.build_lib
-+ALL += $(OBJDIR)/.build_so
- endif
- # Only do some directories when you are not cross compiling
- ifeq ($(HOST_PLATFORM),$(TARGET_PLATFORM))
-@@ -117,14 +118,17 @@
- 	@ touch $(OBJDIR)/.build_so
- 
- # Used in the lib/ directory and in building new voices
--$(OBJDIR)/%.so: %.shared.a
-+#$(OBJDIR)/%.so: %.shared.a
-+%.so: %.shared.a
- 	@ echo making $@
- 	@ rm -rf shared_os && mkdir shared_os
- 	@ rm -f $@ $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} 
- 	@ (cd shared_os && ar x ../$<)
- 	@ (cd shared_os && $(CC) -shared -Wl,-soname,$@.${PROJECT_SHLIB_VERSION} -o ../$@.${PROJECT_VERSION} *.os)
--	@ ln -s $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION}
--	@ ln -s $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} $(LIBDIR)/$@
-+	#@ ln -s $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION}
-+	#@ ln -s $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} $(LIBDIR)/$@
-+	@ ln -s $@.${PROJECT_VERSION} $@.${PROJECT_SHLIB_VERSION}
-+	@ ln -s $@.${PROJECT_SHLIB_VERSION} $@
- 	@ rm -rf shared_os
- 
- $(OBJDIR)/.make_build_dirs:
-Index: lib/Makefile
-===================================================================
---- flite-1.3-release/lib/Makefile	(.../flite-1.3-orig)	(revision 0)
-+++ flite-1.3-release/lib/Makefile	(.../release-1.2)	(revision 7)
-@@ -0,0 +1,70 @@
-+###########################################################################
-+##                                                                       ##
-+##                  Language Technologies Institute                      ##
-+##                     Carnegie Mellon University                        ##
-+##                        Copyright (c) 1999                             ##
-+##                        All Rights Reserved.                           ##
-+##                                                                       ##
-+##  Permission is hereby granted, free of charge, to use and distribute  ##
-+##  this software and its documentation without restriction, including   ##
-+##  without limitation the rights to use, copy, modify, merge, publish,  ##
-+##  distribute, sublicense, and/or sell copies of this work, and to      ##
-+##  permit persons to whom this work is furnished to do so, subject to   ##
-+##  the following conditions:                                            ##
-+##   1. The code must retain the above copyright notice, this list of    ##
-+##      conditions and the following disclaimer.                         ##
-+##   2. Any modifications must be clearly marked as such.                ##
-+##   3. Original authors' names are not deleted.                         ##
-+##   4. The authors' names are not used to endorse or promote products   ##
-+##      derived from this software without specific prior written        ##
-+##      permission.                                                      ##
-+##                                                                       ##
-+##  CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK         ##
-+##  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ##
-+##  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ##
-+##  SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE      ##
-+##  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ##
-+##  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ##
-+##  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ##
-+##  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ##
-+##  THIS SOFTWARE.                                                       ##
-+##                                                                       ##
-+###########################################################################
-+##                                                                       ##
-+##    FLITE libraries                                                    ##
-+##                                                                       ##
-+###########################################################################
-+TOP=..
-+DIRNAME=lib
-+BUILD_DIRS = 
-+ALL_DIRS=
-+FILES = Makefile
-+LIBNAMES = flite flite_cmulex flite_usenglish \
-+           flite_cmu_us_kal flite_cmu_us_kal16 flite_cmu_time_awb
-+
-+STATICLIBS= $(LIBNAMES:%=lib%.a)
-+SHAREDARLIBS= $(LIBNAMES:%=lib%.shared.a)
-+#SHAREDLIBS = $(LIBNAMES:%=lib%.so)
-+SHAREDLIBS = $(SHAREDARLIBS:%.shared.a=%.so)
-+VERSIONSHAREDLIBS = $(SHAREDLIBS:%=%.${PROJECT_VERSION}) \
-+                    $(SHAREDLIBS:%=%.${PROJECT_SHLIB_VERSION})
-+ALL_LIBS = $(STATICLIBS) $(SHAREDLIBS) $(VERSIONSHAREDLIBS)
-+
-+ALL = shared_libs
-+
-+LOCAL_CLEAN=*.a *.so *.so.${PROJECT_VERSION} *.so.${PROJECT_SHLIB_VERSION}
-+
-+include $(TOP)/config/common_make_rules
-+
-+ifdef SHFLAGS
-+shared_libs: $(SHAREDLIBS)
-+else
-+shared_libs: nothing
-+endif
-+
-+install:
-+	@ cp -vf $(LIBDIR)/* .
-+	@ $(MAKE) shared_libs
-+	@ echo ARLIBS: $(SHAREDARLIBS)
-+	@ echo SHARLIBS: $(SHAREDLIBS)
-+	@ tar cvf - $(ALL_LIBS) | ( cd $(INSTALLLIBDIR) && tar xf -)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
index 619d142..ec9e04b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
@@ -2,7 +2,10 @@
 
 DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
 
-inherit binconfig lib_package gtk-icon-cache mime
+inherit distro_features_check binconfig lib_package gtk-icon-cache mime
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += "file://0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch"
 
 EXTRA_OECMAKE = " \
     -DOPTION_BUILD_SHARED_LIBS=ON \
@@ -15,6 +18,7 @@
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
 
 PACKAGECONFIG[examples] = "-DOPTION_BUILD_EXAMPLES=ON,-DOPTION_BUILD_EXAMPLES=OFF,"
+PACKAGECONFIG[cairo] = "-DOPTION_CAIRO=ON,-DOPTION_CAIRO=OFF,cairo"
 PACKAGECONFIG[opengl] = "-DOPTION_USE_GL=ON,-DOPTION_USE_GL=OFF,virtual/libgl"
 PACKAGECONFIG[xinerama] = "-DOPTION_USE_XINERAMA=ON,-DOPTION_USE_XINERAMA=OFF,libxinerama"
 PACKAGECONFIG[xfixes] = "-DOPTION_USE_XFIXES=ON,-DOPTION_USE_XFIXES=OFF,libxfixes"
@@ -31,4 +35,12 @@
 
 LEAD_SONAME = "libfltk.so"
 
-FILES_${PN} += "${datadir}/mime"
+# .desktop / icons / mime only necessary for fluid app
+FILES_${PN}-bin += " \
+    ${datadir}/applications \
+    ${datadir}/icons \
+    ${datadir}/mime \
+"
+
+# cmake files
+FILES_${PN}-dev += "${datadir}/fltk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch
new file mode 100644
index 0000000..1f2f8ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch
@@ -0,0 +1,41 @@
+From bc38fb41044503c9debf5710910c51dd29674b6a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 15 Dec 2017 22:14:01 +0100
+Subject: [PATCH] CMake build: Force shared libs with unsuffixed names
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For windows build sake CMake complains when a project wants to build shared and
+static libraries with same name. This caused the authors of fltk to generate
+libraries with names suffixed by '_SHARED' when building fltk with cmake -
+autotools builds do not suffix.
+
+Reasons to build shared libs with correct names:
+
+* Shared libraries are the preferred choice for embedded devices
+* There are projects (e.g yoshimi) expecting shared libraries with unsuffixed
+  names - as created by autotools build. These projects link against static
+  libraries by accident causing unusable binaries.
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ CMake/macros.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMake/macros.cmake b/CMake/macros.cmake
+index 4def62d..ab675f0 100644
+--- a/CMake/macros.cmake
++++ b/CMake/macros.cmake
+@@ -49,7 +49,7 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
+ 	    PROPERTIES
+ 	    VERSION ${FLTK_VERSION_FULL}
+ 	    SOVERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
+-	    PREFIX "lib"    # for MSVC static/shared coexistence
++	    OUTPUT_NAME ${LIBNAME} CLEAN_DIRECT_OUTPUT 1
+ 	    )
+     endif (${LIBTYPE} STREQUAL "SHARED")
+ 
+-- 
+2.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch
deleted file mode 100644
index d5f6485..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From bea27fd919b64ee8d97996409e279e1e83d13594 Mon Sep 17 00:00:00 2001
-From: Jean-Louis Dupond <jean-louis@dupond.be>
-Date: Sun, 4 Oct 2015 18:17:33 +0200
-Subject: [PATCH] FindGStreamer_1_0: fix build failure for new gstreamer
- versions
-
----
- cmake/FindGStreamer_1_0.cmake | 30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake
-index f7bf990..3aa8fc6 100644
---- a/cmake/FindGStreamer_1_0.cmake
-+++ b/cmake/FindGStreamer_1_0.cmake
-@@ -53,17 +53,17 @@ set(GSTREAMER_1_0_MINIMUM_VERSION 1.0.5)
- # Helper macro to find a Gstreamer plugin (or Gstreamer itself)
- #   _component_prefix is prepended to the _INCLUDE_DIRS and _LIBRARIES variables (eg. "GSTREAMER_1_0_AUDIO")
- #   _pkgconfig_name is the component's pkg-config name (eg. "gstreamer-1.0", or "gstreamer-video-1.0").
--#   _header is the component's header, relative to the gstreamer-1.0 directory (eg. "gst/gst.h").
- #   _library is the component's library name (eg. "gstreamer-1.0" or "gstvideo-1.0")
--macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library)
-+macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library)
-     # FIXME: The QUIET keyword can be used once we require CMake 2.8.2.
--    pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
- 
--    find_path(${_component_prefix}_INCLUDE_DIRS
--        NAMES ${_header}
--        HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR}
--        PATH_SUFFIXES gstreamer-1.0
--    )
-+    string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}")
-+    if ("${CMAKE_MATCH_2}" STREQUAL "")
-+        pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}")
-+    else ()
-+        pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
-+    endif ()
-+    set(${_component_prefix}_INCLUDE_DIRS ${PC_${_component_prefix}_INCLUDE_DIRS})
- 
-     find_library(${_component_prefix}_LIBRARIES
-         NAMES ${_library} gstreamer_android
-@@ -78,8 +78,8 @@ endmacro()
- # 1.1. Find headers and libraries
- set(GLIB_ROOT_DIR ${GSTREAMER_1_0_ROOT_DIR})
- find_package(Glib REQUIRED)
--FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0 gstreamer-1.0 gst/gst.h gstreamer-1.0)
--FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_BASE gstreamer-base-1.0 gst/gst.h gstbase-1.0)
-+FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0 gstreamer-1.0 gstreamer-1.0)
-+FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_BASE gstreamer-base-1.0 gstbase-1.0)
- 
- # 1.2. Check Gstreamer version
- if (GSTREAMER_1_0_INCLUDE_DIRS)
-@@ -110,11 +110,11 @@ endif ()
- # 2. Find Gstreamer plugins
- # -------------------------
- 
--FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_APP gstreamer-app-1.0 gst/app/gstappsink.h gstapp-1.0)
--FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_AUDIO gstreamer-audio-1.0 gst/audio/audio.h gstaudio-1.0)
--FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_FFT gstreamer-fft-1.0 gst/fft/gstfft.h gstfft-1.0)
--FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_PBUTILS gstreamer-pbutils-1.0 gst/pbutils/pbutils.h gstpbutils-1.0)
--FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_VIDEO gstreamer-video-1.0 gst/video/video.h gstvideo-1.0)
-+FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_APP gstreamer-app-1.0 gstapp-1.0)
-+FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_AUDIO gstreamer-audio-1.0 gstaudio-1.0)
-+FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_FFT gstreamer-fft-1.0 gstfft-1.0)
-+FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_PBUTILS gstreamer-pbutils-1.0 gstpbutils-1.0)
-+FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_VIDEO gstreamer-video-1.0 gstvideo-1.0)
- 
- # ------------------------------------------------
- # 3. Process the COMPONENTS passed to FIND_PACKAGE
--- 
-2.6.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch
new file mode 100644
index 0000000..a567cba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch
@@ -0,0 +1,27 @@
+From 368989526c32cdf9d680a397fede3cb773fa2609 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Fri, 28 Jul 2017 16:31:41 -0400
+Subject: [PATCH] Fix gstreamer-1.0 detection
+
+Upstream State: Backport
+
+---
+ cmake/FindGStreamer_1_0.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake
+index 3aa8fc6..6fbc0ec 100644
+--- a/cmake/FindGStreamer_1_0.cmake
++++ b/cmake/FindGStreamer_1_0.cmake
+@@ -59,7 +59,7 @@ macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library)
+ 
+     string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}")
+     if ("${CMAKE_MATCH_2}" STREQUAL "")
+-        pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}")
++        pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GSTREAMER_1_0_MINIMUM_VERSION}")
+     else ()
+         pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
+     endif ()
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0003-add-missing-define.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0003-add-missing-define.patch
deleted file mode 100644
index 220edef..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0003-add-missing-define.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-libwinpr/comm_seria: fix missing define
-
-FreeRDP uses CMSPAR, which is defined by glibc in bits/termios.h .
-
-glibc has two flavours of bits/termios.h: a genmeric one and an
-architecture-specific one. When installing, glibc will install the
-architecture-specific file if it exists, otherwise it installs the
-generic file. Only Alpha, MIPS, PPC and Sparc have their own
-bits/termios.h.
-
-The generic bits/termios.h, as well as the Alpha, PPC and Sparc flavours
-do define CMSPAR. However, the MIPS flavour does not define it.
-
-Define CMSPAR to the value from the generic value, which is also the
-value known to the Linux kernel for MIPS.
-
-Fixes:
-    http://autobuild.buildroot.org/results/0b4/0b4793f0bf9f4c57933897f3480054a4e06528ad/
-    http://autobuild.buildroot.org/results/7a2/7a2284d0a2987158fa2e78f789b07c8c6fcdb974/
-    http://autobuild.buildroot.org/results/387/3874088c3ccd4bbf76ea0c911ca1ef64c7dc9d1c/
-    ...
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Cc: Peter Korsgaard <jacmet@uclibc.org>
-Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-diff -durN freerdp-17834af7bb378f85a3b3cc4dcadaa5125a337e16.orig/winpr/libwinpr/comm/comm_serial_sys.c freerdp-17834af7bb378f85a3b3cc4dcadaa5125a337e16/winpr/libwinpr/comm/comm_serial_sys.c
---- freerdp-17834af7bb378f85a3b3cc4dcadaa5125a337e16.orig/winpr/libwinpr/comm/comm_serial_sys.c	2015-09-04 16:20:17.000000000 +0100
-+++ freerdp-17834af7bb378f85a3b3cc4dcadaa5125a337e16/winpr/libwinpr/comm/comm_serial_sys.c	2015-10-04 11:07:41.868513726 +0100
-@@ -27,6 +27,14 @@
- #include <fcntl.h>
- #include <sys/ioctl.h>
- #include <termios.h>
-+
-+/* glibc for MIPS has its own bits/termios.h which does not define
-+ * CMSPAR, so we vampirise the value from the generic bits/termios.h
-+ */
-+#ifndef CMSPAR
-+#define CMSPAR 010000000000
-+#endif
-+
- #include <unistd.h>
- 
- #include "comm_serial_sys.h"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
index d279d6d..0d7dcc2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
@@ -1,31 +1,31 @@
-From 253eafc8c8da83fc2b1a99a9e43824efc6105c7a Mon Sep 17 00:00:00 2001
-From: Manuel Bachmann <manuel.bachmann@iot.bzh>
-Date: Sun, 4 Oct 2015 10:44:49 +0200
 Subject: [PATCH] winpr-makecert: Build with install RPATH
 
 As we are installing "winpr-makecert" manually, we do want
 to refer to the library in DESTDIR, not the one resting in
 the build tree.
 
-Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
----
- winpr/tools/makecert/cli/CMakeLists.txt | 4 ++++
- 1 file changed, 4 insertions(+)
+Update it for 2.0.0.
 
-diff --git a/winpr/tools/makecert/cli/CMakeLists.txt b/winpr/tools/makecert/cli/CMakeLists.txt
-index 17954c4..90c446b 100644
---- a/winpr/tools/makecert/cli/CMakeLists.txt
-+++ b/winpr/tools/makecert/cli/CMakeLists.txt
-@@ -45,5 +45,9 @@ set(${MODULE_PREFIX}_LIBS winpr-makecert-tool)
+Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ winpr/tools/makecert-cli/CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/winpr/tools/makecert-cli/CMakeLists.txt b/winpr/tools/makecert-cli/CMakeLists.txt
+index 74afa09..8d00ef1 100644
+--- a/winpr/tools/makecert-cli/CMakeLists.txt
++++ b/winpr/tools/makecert-cli/CMakeLists.txt
+@@ -44,6 +44,9 @@ set(${MODULE_PREFIX}_LIBS winpr-tools)
  
  target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
  
-+set_target_properties(${MODULE_NAME} PROPERTIES 
-+	BUILD_WITH_INSTALL_RPATH 1)
++set_target_properties(${MODULE_NAME} PROPERTIES
++       BUILD_WITH_INSTALL_RPATH 1)
 +
  set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools")
  
-+
+ install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools EXPORT WinPRTargets)
 -- 
-1.8.3.1
+2.7.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
index f0aa1b6..88aec9c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
@@ -10,14 +10,13 @@
 
 inherit pkgconfig cmake gitpkgv
 
-PV = "1.2.5+gitr${SRCPV}"
+PV = "2.0.0+gitr${SRCPV}"
 PKGV = "${GITPKGVTAG}"
 
-SRCREV = "62da9d28c674814c81c245c1c7882eb0da7be76b"
+SRCREV = "1648deb435ad52206f7aa2afe4b4dff71d9329bc"
 SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
     file://winpr-makecert-Build-with-install-RPATH.patch \
-    file://0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch \
-    file://0003-add-missing-define.patch \
+    file://0001-Fix-gstreamer-1.0-detection.patch \
 "
 
 S = "${WORKDIR}/git"
@@ -57,7 +56,7 @@
 # we will need winpr-makecert to generate TLS certificates
 do_install_append () {
     install -d ${D}${bindir}
-    install -m755 winpr/tools/makecert/cli/winpr-makecert ${D}${bindir}
+    install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir}
     rm -rf ${D}${libdir}/cmake
     rm -rf ${D}${libdir}/freerdp
 }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
similarity index 96%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
index 4932bb7..63d9acf 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
@@ -16,7 +16,7 @@
 SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
           "
 
-SRCREV = "de09874b15a4c88772db35ced842330f5de23e76"
+SRCREV = "8255231b68889597d04d451a72438ab92a405aba"
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
index 0e85b3f..28b652a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
@@ -19,3 +19,5 @@
 PACKAGES =+ "${PN}-bash-completion"
 FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh"
 RDEPENDS_${PN}-bash-completion = "bash bash-completion"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
index b505ac1..b72ffa9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
@@ -29,8 +29,8 @@
 do_compile[noexec] = "1"
 do_package[noexec] = "1"
 do_packagedata[noexec] = "1"
-do_package_write_ipk[noexec] = "1"
-do_package_write_deb[noexec] = "1"
-do_package_write_rpm[noexec] = "1"
+deltask package_write_ipk
+deltask package_write_deb
+deltask package_write_rpm
 
 BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch
index e582c0d..2fd21c2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch
@@ -1,4 +1,4 @@
-From ea9f64eb2cdf3be6c4dc65fa1472d854616e43ca Mon Sep 17 00:00:00 2001
+From aa0a63209af6813d87255ec3ab339f2dbbf27d6d Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 6 Mar 2017 13:38:46 -0800
 Subject: [PATCH] Support Atomic ops on clang
@@ -9,25 +9,23 @@
 the atomics and fails for clang
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
+
 Upstream-Status: Pending
 
+---
  src/base/atomicops.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/base/atomicops.h b/src/base/atomicops.h
-index be038f3..f1a21ff 100644
+index dac95be..390733c 100644
 --- a/src/base/atomicops.h
 +++ b/src/base/atomicops.h
-@@ -118,7 +118,7 @@
+@@ -124,7 +124,7 @@
  #include "base/atomicops-internals-linuxppc.h"
  #elif defined(__GNUC__) && defined(__mips__)
  #include "base/atomicops-internals-mips.h"
 -#elif defined(__GNUC__) && GCC_VERSION >= 40700
 +#elif defined(__GNUC__) && GCC_VERSION >= 40700 || defined(__clang__)
  #include "base/atomicops-internals-gcc.h"
- #else
- #error You need to implement atomic operations for this architecture
--- 
-2.12.0
-
+ #elif defined(__clang__) && CLANG_VERSION >= 30400
+ #include "base/atomicops-internals-gcc.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
index 5bd0b6f..b303362 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
@@ -1,4 +1,4 @@
-From 12ac0dc6742e1bcdfaf1842186c9002f0820a5e8 Mon Sep 17 00:00:00 2001
+From 230cd84486145c5bb1d69d4c9a544e00adbcc9b5 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 1 Jul 2017 13:21:21 -0700
 Subject: [PATCH] Use ucontext_t instead of struct ucontext
@@ -6,12 +6,13 @@
 Newer glibc has dropped the ucontext tag from exposing
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/stacktrace_powerpc-linux-inl.h | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
-index a9bf775..47ff2d7 100644
+index 3b3843b..a301a46 100644
 --- a/src/stacktrace_powerpc-linux-inl.h
 +++ b/src/stacktrace_powerpc-linux-inl.h
 @@ -53,7 +53,6 @@
@@ -31,6 +32,3 @@
            // We don't care about the rest, since IP value is at 'uc' field.A
          } *sigframe = reinterpret_cast<rt_signal_frame_32*>(current);
          result[n] = (void*) sigframe->uc.uc_mcontext.uc_regs->gregs[PT_NIP];
--- 
-2.13.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
index 99127e1..ab3ceb9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
@@ -1,19 +1,20 @@
-From b5961f17e9d7f2bc44da611b3e4b27c8a641fc72 Mon Sep 17 00:00:00 2001
+From 06605158852f9364519391fa11070ba5ec4303e9 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 2 Sep 2017 08:07:17 -0700
 Subject: [PATCH] disbale heap checkers and debug allocator on musl
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
+
 Upstream-Status: Pending
 
+---
  configure.ac | 2 ++
  1 file changed, 2 insertions(+)
 
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac
-+++ git/configure.ac
+diff --git a/configure.ac b/configure.ac
+index 70b49a3..8154c5c 100644
+--- a/configure.ac
++++ b/configure.ac
 @@ -51,6 +51,8 @@ case "$host" in
     *-cygwin*) default_enable_heap_checker=no; default_enable_cpu_profiler=no;;
     *-freebsd*) default_enable_heap_checker=no;;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
index 78621c7..0a72ff2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -1,4 +1,4 @@
-From 157914941bd38f1a38bb6bd7294ca6c2bc1b8dcb Mon Sep 17 00:00:00 2001
+From 034e7da08c3fbffcba8cf8d4e24a71a16558db5a Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 16 Jul 2017 15:51:28 -0700
 Subject: [PATCH] fix build with musl libc
@@ -6,6 +6,7 @@
 Patch from https://github.com/gperftools/gperftools/pull/765/
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  configure.ac                 | 1 +
  src/malloc_hook_mmap_linux.h | 8 ++++++--
@@ -56,6 +57,3 @@
  // libc's version:
  extern "C" void* __sbrk(ptrdiff_t increment);
  
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
index 667008a..4c63e73 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
@@ -1,4 +1,4 @@
-From 04ea8e001501931f4dbf20288aca78469617b08a Mon Sep 17 00:00:00 2001
+From a16a73f0819d26219ee83cd98eea82786d7c1755 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 16 Jul 2017 19:28:17 -0700
 Subject: [PATCH] include fcntl.h for loff_t definition
@@ -7,6 +7,7 @@
 linux_syscall_support.h:2641:26: error: 'loff_t' has not been declared
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/base/linux_syscall_support.h | 1 +
  1 file changed, 1 insertion(+)
@@ -23,6 +24,3 @@
  
  #ifdef __mips__
  /* Include definitions of the ABI currently in use.                          */
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
index f264740..c3c5784 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
@@ -1,15 +1,22 @@
-Disable libunwind on aarch64
+From 564f800e3e24647c095f7a321bf3ebdccfbf762d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 12:02:04 -0700
+Subject: [PATCH] Disable libunwind on aarch64
 
 Fixes hangs when using libtcmalloc.so
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -69,6 +69,11 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [re
+---
+ configure.ac | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 8154c5c..063b260 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -69,6 +69,11 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [return __PPC64__])],
                    [default_enable_libunwind=yes
                     default_tcmalloc_pagesize=8])
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
index 7e1a23b..10274a6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
@@ -1,11 +1,19 @@
-sgidef.h does not exist on musl and its not needed to compile
+From 259b420444c52463795b4b582a2ab7511149eea7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Oct 2017 21:26:40 -0700
+Subject: [PATCH] sgidef.h does not exist on musl and its not needed to compile
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Upstream-Status: Pending
-Index: git/src/base/linux_syscall_support.h
-===================================================================
---- git.orig/src/base/linux_syscall_support.h
-+++ git/src/base/linux_syscall_support.h
+
+---
+ src/base/linux_syscall_support.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
+index 70431ca..b23ca59 100644
+--- a/src/base/linux_syscall_support.h
++++ b/src/base/linux_syscall_support.h
 @@ -164,7 +164,7 @@ extern "C" {
  #include <endian.h>
  #include <fcntl.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
index 19f8380..1ec6a61 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
@@ -3,9 +3,10 @@
 Refer to:
 https://bugzilla.redhat.com/show_bug.cgi?id=717479
 
-diff -up hddtemp-0.3-beta15/doc/hddtemp.8~ hddtemp-0.3-beta15/doc/hddtemp.8
---- hddtemp-0.3-beta15/doc/hddtemp.8~	2011-08-18 00:36:05.689001470 +0300
-+++ hddtemp-0.3-beta15/doc/hddtemp.8	2011-08-18 00:44:46.753006253 +0300
+Index: hddtemp-0.3-beta15/doc/hddtemp.8
+===================================================================
+--- hddtemp-0.3-beta15.orig/doc/hddtemp.8
++++ hddtemp-0.3-beta15/doc/hddtemp.8
 @@ -19,7 +19,7 @@
  hddtemp \- Utility to monitor hard drive temperature
  .SH SYNOPSIS
@@ -25,9 +26,10 @@
  
  
  .SH "OPTIONS"
-diff -up hddtemp-0.3-beta15/src/hddtemp.c~ hddtemp-0.3-beta15/src/hddtemp.c
---- hddtemp-0.3-beta15/src/hddtemp.c~	2011-08-18 00:36:05.638996861 +0300
-+++ hddtemp-0.3-beta15/src/hddtemp.c	2011-08-18 00:35:55.485060798 +0300
+Index: hddtemp-0.3-beta15/src/hddtemp.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/hddtemp.c
++++ hddtemp-0.3-beta15/src/hddtemp.c
 @@ -54,6 +54,7 @@
  #include <linux/hdreg.h>
  #include <ctype.h>
@@ -44,7 +46,7 @@
  
    backtrace_sigsegv();
    backtrace_sigill();
-@@ -419,11 +421,6 @@ int main(int argc, char* argv[]) {
+@@ -423,11 +425,6 @@ int main(int argc, char* argv[]) {
       exit(0);
    }
    
@@ -56,7 +58,7 @@
    if(debug) {
      /*    argc = optind + 1;*/
      quiet = 1;
-@@ -434,6 +431,23 @@ int main(int argc, char* argv[]) {
+@@ -438,6 +435,23 @@ int main(int argc, char* argv[]) {
      exit(1);
    }
  
@@ -80,7 +82,7 @@
    init_bus_types();
  
    /* collect disks informations */
-@@ -527,6 +541,7 @@ int main(int argc, char* argv[]) {
+@@ -531,6 +545,7 @@ int main(int argc, char* argv[]) {
    else {
      do_direct_mode(ldisks);
    }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
index f61c164..057b1fd 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
@@ -8,9 +8,11 @@
 
 Upstream-Status: unmaintained
 
+Index: hddtemp-0.3-beta15/doc/hddtemp.8
+===================================================================
 --- hddtemp-0.3-beta15.orig/doc/hddtemp.8
 +++ hddtemp-0.3-beta15/doc/hddtemp.8
-@@ -58,6 +58,10 @@
+@@ -58,6 +58,10 @@ Execute hddtemp in TCP/IP daemon mode (p
  .B \-f, \-\-file=\fIfile\fI
  Specify the database file to use.
  .TP
@@ -21,7 +23,7 @@
  .B \-l, \-\-listen=\fIaddr\fR
  Listen on a specific address.  \fIaddr\fR is a string containing a
  host name or a numeric host address string.  The numeric host address
-@@ -80,6 +84,9 @@
+@@ -80,6 +84,9 @@ seconds.
  .B \-q, \-\-quiet
  Don't check if the drive is supported.
  .TP
@@ -31,7 +33,7 @@
  .B \-v, \-\-version
  Display hddtemp version number.
  .TP
-@@ -96,7 +103,7 @@
+@@ -96,7 +103,7 @@ Listen on IPv6 sockets only.
  .SH "DRIVE DATABASE"
  If you know your drive has a temperature sensor but it is being
  reported unsupported, tell me which model and which manufacturer it
@@ -40,7 +42,7 @@
  line of hddtemp.db is either a comment, a blank line or a line
  containing:
  .TP
-@@ -112,7 +119,7 @@
+@@ -112,7 +119,7 @@ set of drives from its model name or fro
  Feedback is welcome (see the REPORT section below).
  
  .SH "TCP/IP DAEMON MODE"
@@ -49,7 +51,7 @@
  .PP
  # hddtemp SATA:/dev/sda PATA:/dev/hda
  .PP
-@@ -120,7 +127,7 @@
+@@ -120,7 +127,7 @@ To test
  .B hddtemp
  in daemon mode, start it like this:
  .PP
@@ -58,7 +60,7 @@
  .PP
  .PP
  and use
-@@ -165,8 +172,8 @@
+@@ -165,8 +172,8 @@ and 12 are often reported to match a tem
  investigation they do not.  But fields 194 (which is the standard
  field for temperature) and 231 are good candidates.
  .PP
@@ -69,13 +71,15 @@
  yourself.
  
  .SH "BUGS"
-@@ -183,5 +190,5 @@
+@@ -183,5 +190,5 @@ supported on i386 architectures only.
  .PP
  Emmanuel Varagnat (hddtemp@guzu.net).
  .PP
 -This manual page was originaly written by Aurelien Jarno <aurel32@debian.org>,
 +This manual page was originally written by Aurelien Jarno <aurel32@debian.org>,
  for the Debian GNU/Linux system (but may be used by others).
+Index: hddtemp-0.3-beta15/po/fr.po
+===================================================================
 --- hddtemp-0.3-beta15.orig/po/fr.po
 +++ hddtemp-0.3-beta15/po/fr.po
 @@ -7,9 +7,9 @@
@@ -91,7 +95,7 @@
  "Last-Translator: Aurelien Jarno <aurelien@aurel32.net>\n"
  "Language-Team: FRANCAIS <fr@li.org>\n"
  "MIME-Version: 1.0\n"
-@@ -17,23 +17,7 @@
+@@ -17,23 +17,7 @@ msgstr ""
  "Content-Transfer-Encoding: 8bit\n"
  "X-Generator: KBabel 1.0.1\n"
  
@@ -116,7 +120,7 @@
  #, c-format
  msgid ""
  "\n"
-@@ -46,7 +30,7 @@
+@@ -46,7 +30,7 @@ msgstr ""
  "Modèle: %s\n"
  "\n"
  
@@ -125,7 +129,7 @@
  #, c-format
  msgid ""
  "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
-@@ -60,75 +44,60 @@
+@@ -60,75 +44,60 @@ msgstr ""
  "net).\n"
  "ATTENTION : Voir les options --help, --debug et --drivebase.\n"
  
@@ -216,7 +220,7 @@
  "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
  "                        recognize supported drives.\n"
  "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
-@@ -138,6 +107,7 @@
+@@ -138,6 +107,7 @@ msgid ""
  "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
  "default.)\n"
  "  -f   --file=FILE   :  specify database file to use.\n"
@@ -224,7 +228,7 @@
  "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
  "mode).\n"
  "  -n   --numeric     :  print only the temperature.\n"
-@@ -145,6 +115,8 @@
+@@ -145,6 +115,8 @@ msgid ""
  "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
  "mode).\n"
  "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
@@ -233,7 +237,7 @@
  "  -q   --quiet       :  do not check if the drive is supported.\n"
  "  -v   --version     :  display hddtemp version number.\n"
  "  -w   --wake-up     :  wake-up the drive if need.\n"
-@@ -153,11 +125,14 @@
+@@ -153,11 +125,14 @@ msgid ""
  "\n"
  "Report bugs or new drives to <hddtemp@guzu.net>.\n"
  msgstr ""
@@ -249,7 +253,7 @@
  "  -b   --drivebase   :  affiche le contenu du fichier de base de donnée "
  "qui \n"
  "                        permet à hddtemp de reconnaître les lecteurs "
-@@ -172,6 +147,7 @@
+@@ -172,6 +147,7 @@ msgstr ""
  "défaut).\n"
  "  -f   --file=FILE   :  specifie le fichier à utiliser comme base de "
  "données.\n"
@@ -257,7 +261,7 @@
  "  -l   --listen=addr :  écoute sur une interface spécifique (en mode démon "
  "TCP/IP).\n"
  "  -n   --numeric     :  affiche seulement la température.\n"
-@@ -180,6 +156,8 @@
+@@ -180,6 +156,8 @@ msgstr ""
  "démon TCP/IP).\n"
  "  -S   --syslog=s    :  enregistre la température dans syslog tous les s "
  "secondes.\n"
@@ -266,7 +270,7 @@
  "  -q   --quiet       :  ne vérifie pas si le lecteur est supporté.\n"
  "  -v   --version     :  affiche la version de hddtemp.\n"
  "  -w   --wake-up     :  réveiller le lecteur si nécessaire.\n"
-@@ -188,62 +166,95 @@
+@@ -188,62 +166,95 @@ msgstr ""
  "\n"
  "Report bugs or new drives to <hddtemp@guzu.net>.\n"
  
@@ -377,6 +381,8 @@
 +
 +#~ msgid "field(%d)\t = %d\n"
 +#~ msgstr "champ(%d)\t = %d\n"
+Index: hddtemp-0.3-beta15/po/ru.po
+===================================================================
 --- hddtemp-0.3-beta15.orig/po/ru.po
 +++ hddtemp-0.3-beta15/po/ru.po
 @@ -6,8 +6,8 @@
@@ -390,7 +396,7 @@
  "PO-Revision-Date: 2003-03-08 16:42+0300\n"
  "Last-Translator: Michael Shigorin <mike@altlinux.ru>\n"
  "Language-Team: Russian <ru@li.org>\n"
-@@ -15,23 +15,7 @@
+@@ -15,23 +15,7 @@ msgstr ""
  "Content-Type: text/plain; charset=koi8-r\n"
  "Content-Transfer-Encoding: 8bit\n"
  
@@ -415,7 +421,7 @@
  #, c-format
  msgid ""
  "\n"
-@@ -40,7 +24,7 @@
+@@ -40,7 +24,7 @@ msgid ""
  "\n"
  msgstr ""
  
@@ -424,7 +430,7 @@
  #, c-format
  msgid ""
  "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
-@@ -53,72 +37,59 @@
+@@ -53,72 +37,59 @@ msgstr ""
  "÷îéíáîéå: åÓÌÉ ×Ù ÔÏÞÎÏ ÚÎÁÅÔÅ, ÞÔÏ ÄÁÔÞÉË ÅÓÔØ, ÎÁÐÉÛÉÔÅ hddtemp@guzu.net\n"
  "÷îéíáîéå: (ÓÍ. ÏÐÃÉÉ --help, --debug É --drivebase).\n"
  
@@ -512,7 +518,7 @@
  "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
  "                        recognize supported drives.\n"
  "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
-@@ -128,6 +99,7 @@
+@@ -128,6 +99,7 @@ msgid ""
  "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
  "default.)\n"
  "  -f   --file=FILE   :  specify database file to use.\n"
@@ -520,7 +526,7 @@
  "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
  "mode).\n"
  "  -n   --numeric     :  print only the temperature.\n"
-@@ -135,6 +107,8 @@
+@@ -135,6 +107,8 @@ msgid ""
  "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
  "mode).\n"
  "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
@@ -529,7 +535,7 @@
  "  -q   --quiet       :  do not check if the drive is supported.\n"
  "  -v   --version     :  display hddtemp version number.\n"
  "  -w   --wake-up     :  wake-up the drive if need.\n"
-@@ -168,59 +142,90 @@
+@@ -168,59 +142,90 @@ msgstr ""
  "\n"
  "óÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ É ÄÁÎÎÙÅ ÄÌÑ ÄÉÓËÏ× ÏÔÐÒÁ×ÌÑÊÔÅ ÎÁ <hddtemp@guzu.net>.\n"
  
@@ -636,6 +642,8 @@
 +
 +#~ msgid "field(%d)\t = %d\n"
 +#~ msgstr "ÐÏÌÅ(%d)\t = %d\n"
+Index: hddtemp-0.3-beta15/po/sv.po
+===================================================================
 --- hddtemp-0.3-beta15.orig/po/sv.po
 +++ hddtemp-0.3-beta15/po/sv.po
 @@ -6,8 +6,8 @@
@@ -649,7 +657,7 @@
  "PO-Revision-Date: 2005-11-02 19:03+0100\n"
  "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
  "Language-Team: Swedish <sv@li.org>\n"
-@@ -17,23 +17,7 @@
+@@ -17,23 +17,7 @@ msgstr ""
  "X-Poedit-Language: swe\n"
  "X-Poedit-Country: swe\n"
  
@@ -674,7 +682,7 @@
  #, c-format
  msgid ""
  "\n"
-@@ -46,7 +30,7 @@
+@@ -46,7 +30,7 @@ msgstr ""
  "Modell: %s\n"
  "\n"
  
@@ -683,7 +691,7 @@
  #, c-format
  msgid ""
  "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
-@@ -60,76 +44,63 @@
+@@ -60,76 +44,63 @@ msgstr ""
  "net).\n"
  "VARNING: Se --help, --debug och --drivebase flaggorna.\n"
  
@@ -777,7 +785,7 @@
  "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
  "                        recognize supported drives.\n"
  "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
-@@ -139,6 +110,7 @@
+@@ -139,6 +110,7 @@ msgid ""
  "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
  "default.)\n"
  "  -f   --file=FILE   :  specify database file to use.\n"
@@ -785,7 +793,7 @@
  "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
  "mode).\n"
  "  -n   --numeric     :  print only the temperature.\n"
-@@ -146,6 +118,8 @@
+@@ -146,6 +118,8 @@ msgid ""
  "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
  "mode).\n"
  "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
@@ -794,7 +802,7 @@
  "  -q   --quiet       :  do not check if the drive is supported.\n"
  "  -v   --version     :  display hddtemp version number.\n"
  "  -w   --wake-up     :  wake-up the drive if need.\n"
-@@ -184,61 +158,91 @@
+@@ -184,61 +158,91 @@ msgstr ""
  "\n"
  "Rapportera buggar eller nya hårddiskar till <hddtemp@guzu.net>.\n"
  
@@ -901,9 +909,11 @@
 +
 +#~ msgid "field(%d)\t = %d\n"
 +#~ msgstr "fält(%d)\t = %d\n"
+Index: hddtemp-0.3-beta15/po/pt.po
+===================================================================
 --- hddtemp-0.3-beta15.orig/po/pt.po
 +++ hddtemp-0.3-beta15/po/pt.po
-@@ -7,7 +7,7 @@
+@@ -7,7 +7,7 @@ msgid ""
  msgstr ""
  "Project-Id-Version: hddtemp 0.3-beta14\n"
  "Report-Msgid-Bugs-To: \n"
@@ -912,7 +922,7 @@
  "PO-Revision-Date: 2006-03-29 23:22+0000\n"
  "Last-Translator: Miguel Figueiredo <elmig@debianp.org>\n"
  "Language-Team: Portuguese <traduz@debianpt.org>\n"
-@@ -15,23 +15,7 @@
+@@ -15,23 +15,7 @@ msgstr ""
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
  
@@ -937,7 +947,7 @@
  #, c-format
  msgid ""
  "\n"
-@@ -44,7 +28,7 @@
+@@ -44,7 +28,7 @@ msgstr ""
  "Modelo: %s\n"
  "\n"
  
@@ -946,7 +956,7 @@
  #, c-format
  msgid ""
  "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
-@@ -54,79 +38,68 @@
+@@ -54,79 +38,68 @@ msgid ""
  msgstr ""
  "AVISO: O disco %s não parece ter um sensor de temperatura.\n"
  "AVISO: Isto não significa que não tem nenhum.\n"
@@ -1047,7 +1057,7 @@
  "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
  "                        recognize supported drives.\n"
  "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
-@@ -136,6 +109,7 @@
+@@ -136,6 +109,7 @@ msgid ""
  "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
  "default.)\n"
  "  -f   --file=FILE   :  specify database file to use.\n"
@@ -1055,7 +1065,7 @@
  "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
  "mode).\n"
  "  -n   --numeric     :  print only the temperature.\n"
-@@ -143,6 +117,8 @@
+@@ -143,6 +117,8 @@ msgid ""
  "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
  "mode).\n"
  "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
@@ -1064,7 +1074,7 @@
  "  -q   --quiet       :  do not check if the drive is supported.\n"
  "  -v   --version     :  display hddtemp version number.\n"
  "  -w   --wake-up     :  wake-up the drive if need.\n"
-@@ -156,19 +132,23 @@
+@@ -156,19 +132,23 @@ msgstr ""
  "   hddtemp mostra a temperatura dos discos indicados no argumento.\n"
  "   Os discos têm de suportar S.M.A.R.T.\n"
  "\n"
@@ -1096,7 +1106,7 @@
  "  -q   --quiet       :  não verificar se o disco é suportado.\n"
  "  -v   --version     :  mostrar o número da versão do hddtemp.\n"
  "  -w   --wake-up     :  acordar o disco se necessário.\n"
-@@ -177,58 +157,93 @@
+@@ -177,58 +157,93 @@ msgstr ""
  "\n"
  "Relatar bugs ou novos discos para <hddtemp@guzu.net>.\n"
  
@@ -1208,7 +1218,9 @@
 +
 +#~ msgid "field(%d)\t = %d\n"
 +#~ msgstr "campo(%d)\t = %d\n"
---- hddtemp-0.3-beta15.orig/po/de.po
+Index: hddtemp-0.3-beta15/po/de.po
+===================================================================
+--- /dev/null
 +++ hddtemp-0.3-beta15/po/de.po
 @@ -0,0 +1,250 @@
 +# German translation of hddtemp.
@@ -1461,12 +1473,16 @@
 +#, c-format
 +msgid "log sense failed : %s"
 +msgstr "Protokoll-Erkennung fehlgeschlagen : %s"
+Index: hddtemp-0.3-beta15/po/LINGUAS
+===================================================================
 --- hddtemp-0.3-beta15.orig/po/LINGUAS
 +++ hddtemp-0.3-beta15/po/LINGUAS
 @@ -1,2 +1,2 @@
  # Set of available languages.
 -fr pt ru sv 
 +de fr pt ru sv 
+Index: hddtemp-0.3-beta15/po/hddtemp.pot
+===================================================================
 --- hddtemp-0.3-beta15.orig/po/hddtemp.pot
 +++ hddtemp-0.3-beta15/po/hddtemp.pot
 @@ -1,35 +1,22 @@
@@ -1513,7 +1529,7 @@
  #, c-format
  msgid ""
  "\n"
-@@ -38,7 +25,7 @@
+@@ -38,7 +25,7 @@ msgid ""
  "\n"
  msgstr ""
  
@@ -1522,7 +1538,7 @@
  #, c-format
  msgid ""
  "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
-@@ -47,67 +34,59 @@
+@@ -47,67 +34,59 @@ msgid ""
  "WARNING: See --help, --debug and --drivebase options.\n"
  msgstr ""
  
@@ -1604,7 +1620,7 @@
  "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
  "                        recognize supported drives.\n"
  "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
-@@ -117,6 +96,7 @@
+@@ -117,6 +96,7 @@ msgid ""
  "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
  "default.)\n"
  "  -f   --file=FILE   :  specify database file to use.\n"
@@ -1612,7 +1628,7 @@
  "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
  "mode).\n"
  "  -n   --numeric     :  print only the temperature.\n"
-@@ -124,6 +104,8 @@
+@@ -124,6 +104,8 @@ msgid ""
  "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
  "mode).\n"
  "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
@@ -1621,7 +1637,7 @@
  "  -q   --quiet       :  do not check if the drive is supported.\n"
  "  -v   --version     :  display hddtemp version number.\n"
  "  -w   --wake-up     :  wake-up the drive if need.\n"
-@@ -133,58 +115,69 @@
+@@ -133,58 +115,69 @@ msgid ""
  "Report bugs or new drives to <hddtemp@guzu.net>.\n"
  msgstr ""
  
@@ -1705,9 +1721,11 @@
  #, c-format
  msgid "log sense failed : %s"
  msgstr ""
+Index: hddtemp-0.3-beta15/src/sata.c
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/sata.c
 +++ hddtemp-0.3-beta15/src/sata.c
-@@ -118,11 +118,22 @@
+@@ -118,11 +118,22 @@ static enum e_gettemp sata_get_temperatu
    int              i;
    u16 *            p;
  
@@ -1731,7 +1749,7 @@
    
    /* get SMART values */
    if(sata_enable_smart(dsk->fd) != 0) {
-@@ -154,24 +165,15 @@
+@@ -154,24 +165,15 @@ static enum e_gettemp sata_get_temperatu
    }
  
    /* temperature */
@@ -1759,6 +1777,8 @@
  
    /* never reached */
  }
+Index: hddtemp-0.3-beta15/src/satacmds.c
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/satacmds.c
 +++ hddtemp-0.3-beta15/src/satacmds.c
 @@ -39,7 +39,7 @@
@@ -1770,7 +1790,7 @@
  
  // Application specific includes
  #include "satacmds.h"
-@@ -80,8 +80,8 @@
+@@ -80,8 +80,8 @@ int sata_pass_thru(int device, unsigned
  
    ret = scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
   
@@ -1781,7 +1801,7 @@
      return 1;		  
    else 
      return ret;
-@@ -95,10 +95,10 @@
+@@ -95,10 +95,10 @@ void sata_fixstring(unsigned char *s, in
    p = s;
    end = &s[bytecount & ~1]; /* bytecount must be even */
  
@@ -1794,6 +1814,8 @@
    }
  
    /* strip leading blanks */
+Index: hddtemp-0.3-beta15/src/backtrace.c
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/backtrace.c
 +++ hddtemp-0.3-beta15/src/backtrace.c
 @@ -16,9 +16,10 @@
@@ -1822,7 +1844,7 @@
  
  #define MAX_BTSIZE 64
  
-@@ -42,7 +47,6 @@
+@@ -42,7 +47,6 @@ void backtrace_handler(int n, siginfo_t
    static char **messages = NULL;
    static size_t btsize = 0;
    static size_t i;
@@ -1830,7 +1852,7 @@
    static char *strerr = "???";
    static FILE *fstrm;
  
-@@ -61,10 +65,10 @@
+@@ -61,10 +65,10 @@ void backtrace_handler(int n, siginfo_t
        SIC_CASE(SEGV_MAPERR);
        SIC_CASE(SEGV_ACCERR);
      }
@@ -1843,7 +1865,7 @@
      break;
    case SIGILL:
      switch(ist->si_code) {
-@@ -77,10 +81,10 @@
+@@ -77,10 +81,10 @@ void backtrace_handler(int n, siginfo_t
        SIC_CASE(ILL_COPROC);
        SIC_CASE(ILL_BADSTK);
      }
@@ -1856,7 +1878,7 @@
      break;
    case SIGBUS:
      switch(ist->si_code) {
-@@ -88,10 +92,10 @@
+@@ -88,10 +92,10 @@ void backtrace_handler(int n, siginfo_t
        SIC_CASE(BUS_ADRERR);
        SIC_CASE(BUS_OBJERR);
      }
@@ -1869,7 +1891,7 @@
      break;
    }
    fflush(fstrm);
-@@ -101,7 +105,7 @@
+@@ -101,7 +105,7 @@ void backtrace_handler(int n, siginfo_t
    /*
      old_eip = *(unsigned int*)((void*)&n-4);
      old_ebp = *(unsigned int*)((void*)&n-8);
@@ -1878,7 +1900,7 @@
      *(unsigned int*)((void*)&n-8) = puc->uc_mcontext.gregs[REG_EBP];    
      
      btsize = backtrace(btinfo, MAX_BTSIZE);
-@@ -111,14 +115,14 @@
+@@ -111,14 +115,14 @@ void backtrace_handler(int n, siginfo_t
    */
    
    btsize = backtrace(btinfo, MAX_BTSIZE);
@@ -1895,9 +1917,11 @@
    fflush(fstrm);
    fclose(fstrm);
  
+Index: hddtemp-0.3-beta15/src/daemon.c
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/daemon.c
 +++ hddtemp-0.3-beta15/src/daemon.c
-@@ -163,19 +163,16 @@
+@@ -163,19 +163,16 @@ void daemon_send_msg(struct disk *ldisks
  
      switch(dsk->ret) {
      case GETTEMP_NOT_APPLICABLE:
@@ -1922,7 +1946,7 @@
        break;
      case GETTEMP_KNOWN:
        n = snprintf(msg, sizeof(msg), "%s%c%s%c%d%c%c",
-@@ -185,26 +182,23 @@
+@@ -185,26 +182,23 @@ void daemon_send_msg(struct disk *ldisks
                     get_unit(dsk));
        break;
      case GETTEMP_NOSENSOR:
@@ -1955,7 +1979,7 @@
        break;
      }
      write(cfd,&separator, 1);
-@@ -222,14 +216,11 @@
+@@ -222,14 +216,11 @@ void daemon_syslog(struct disk *ldisks)
    for(dsk = ldisks; dsk; dsk = dsk->next) {
      switch(dsk->ret) {
      case GETTEMP_KNOWN:
@@ -1972,7 +1996,7 @@
        break;
      case GETTEMP_DRIVE_SLEEP:
        syslog(LOG_WARNING, _("%s: %s: drive is sleeping"), 
-@@ -270,28 +261,30 @@
+@@ -270,28 +261,30 @@ void do_daemon_mode(struct disk *ldisks)
    fd_set             deffds;
    time_t             next_time;
  
@@ -2025,9 +2049,11 @@
    }
    chdir("/");
    umask(0);
+Index: hddtemp-0.3-beta15/src/hddtemp.c
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/hddtemp.c
 +++ hddtemp-0.3-beta15/src/hddtemp.c
-@@ -75,7 +75,7 @@
+@@ -75,7 +75,7 @@ char *             listen_addr;
  char               separator = SEPARATOR;
  
  struct bustype *   bus[BUS_TYPE_MAX];
@@ -2036,7 +2062,7 @@
  
  static enum { DEFAULT, CELSIUS, FAHRENHEIT } unit;
  
-@@ -194,23 +194,7 @@
+@@ -194,23 +194,7 @@ static void display_temperature(struct d
      if (numeric && quiet)
        printf("0\n");      
      else
@@ -2061,7 +2087,7 @@
  
      break;
    case GETTEMP_KNOWN:
-@@ -232,14 +216,14 @@
+@@ -232,14 +216,14 @@ static void display_temperature(struct d
      if (numeric && quiet)
        printf("0\n");      
      else
@@ -2078,7 +2104,7 @@
        
      break;
    default:
-@@ -268,8 +252,9 @@
+@@ -268,8 +252,9 @@ void do_direct_mode(struct disk *ldisks)
  
  int main(int argc, char* argv[]) {
    int           i, c, lindex = 0, db_loaded = 0;
@@ -2089,16 +2115,16 @@
  
    backtrace_sigsegv();
    backtrace_sigill();
-@@ -279,7 +264,7 @@
-   bindtextdomain (PACKAGE, LOCALEDIR);
+@@ -283,7 +268,7 @@ int main(int argc, char* argv[]) {
    textdomain (PACKAGE);
+ #endif
    
 -  show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = 0;
 +  show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = foreground = 0;
    unit = DEFAULT;
    portnum = PORT_NUMBER;
    listen_addr = NULL;
-@@ -294,6 +279,7 @@
+@@ -298,6 +283,7 @@ int main(int argc, char* argv[]) {
        {"drivebase",  0, NULL, 'b'},
        {"debug",      0, NULL, 'D'},
        {"file",       1, NULL, 'f'},
@@ -2106,7 +2132,7 @@
        {"listen",     1, NULL, 'l'},
        {"version",    0, NULL, 'v'},
        {"port",       1, NULL, 'p'},
-@@ -305,7 +291,7 @@
+@@ -309,7 +295,7 @@ int main(int argc, char* argv[]) {
        {0, 0, 0, 0}
      };
   
@@ -2115,7 +2141,7 @@
      if (c == -1)
        break;
      
-@@ -382,12 +368,13 @@
+@@ -386,12 +372,13 @@ int main(int argc, char* argv[]) {
  		 "                        (done for every drive supplied).\n"
  		 "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by default.)\n"
  		 "  -f   --file=FILE   :  specify database file to use.\n"
@@ -2130,7 +2156,7 @@
  		 "  -q   --quiet       :  do not check if the drive is supported.\n"
  		 "  -v   --version     :  display hddtemp version number.\n"
  		 "  -w   --wake-up     :  wake-up the drive if need.\n"
-@@ -418,6 +405,9 @@
+@@ -422,6 +409,9 @@ int main(int argc, char* argv[]) {
  	  }
          }
  	break;
@@ -2140,7 +2166,7 @@
        default:
  	exit(1);
        }
-@@ -489,6 +479,7 @@
+@@ -493,6 +483,7 @@ int main(int argc, char* argv[]) {
      if( (dsk->fd = open(dsk->drive, O_RDONLY | O_NONBLOCK)) < 0) {
        snprintf(dsk->errormsg, MAX_ERRORMSG_SIZE, "open: %s\n", strerror(errno));
        dsk->type = ERROR;
@@ -2148,7 +2174,7 @@
        continue;
      }
  
-@@ -501,6 +492,7 @@
+@@ -505,6 +496,7 @@ int main(int argc, char* argv[]) {
  
        ldisks = dsk->next;
        free(dsk);
@@ -2156,7 +2182,7 @@
        continue;
      }
  
-@@ -514,11 +506,17 @@
+@@ -518,11 +510,17 @@ int main(int argc, char* argv[]) {
  	db_loaded = 1;
        }      
  
@@ -2177,16 +2203,18 @@
      }
    }
  
-@@ -530,5 +528,5 @@
+@@ -534,5 +532,5 @@ int main(int argc, char* argv[]) {
      do_direct_mode(ldisks);
    }
  
 -  return 0;
 +  return ret;
  }
+Index: hddtemp-0.3-beta15/src/ata.c
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/ata.c
 +++ hddtemp-0.3-beta15/src/ata.c
-@@ -75,7 +75,7 @@
+@@ -75,7 +75,7 @@ static enum e_gettemp ata_get_temperatur
    int              i;
    u16 *            p;
  
@@ -2195,7 +2223,7 @@
      close(dsk->fd);
      dsk->fd = -1;
      return GETTEMP_NOSENSOR;
-@@ -140,24 +140,15 @@
+@@ -140,24 +140,15 @@ static enum e_gettemp ata_get_temperatur
    */
  
    /* temperature */
@@ -2224,9 +2252,11 @@
  
    /* never reached */
  }
+Index: hddtemp-0.3-beta15/src/hddtemp.h
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/hddtemp.h
 +++ hddtemp-0.3-beta15/src/hddtemp.h
-@@ -39,8 +39,6 @@
+@@ -39,8 +39,6 @@ enum e_gettemp {
    GETTEMP_ERROR,            /* Error */
    GETTEMP_NOT_APPLICABLE,   /* */
    GETTEMP_UNKNOWN,          /* Drive is not in database */
@@ -2235,7 +2265,7 @@
    GETTEMP_KNOWN,            /* Drive appear in database */
    GETTEMP_NOSENSOR,         /* Drive appear in database but is known to have no sensor */
    GETTEMP_DRIVE_SLEEP       /* Drive is sleeping */
-@@ -78,7 +76,7 @@
+@@ -78,7 +76,7 @@ struct bustype {
  
  extern struct bustype *   bus[BUS_TYPE_MAX];
  extern char               errormsg[MAX_ERRORMSG_SIZE];
@@ -2244,9 +2274,11 @@
  extern char               separator;
  extern long               portnum, syslog_interval;
  extern char *             listen_addr;
+Index: hddtemp-0.3-beta15/src/scsicmds.c
+===================================================================
 --- hddtemp-0.3-beta15.orig/src/scsicmds.c
 +++ hddtemp-0.3-beta15/src/scsicmds.c
-@@ -147,6 +147,7 @@
+@@ -147,6 +147,7 @@ int scsi_inquiry(int device, unsigned ch
      return 1;
    else {
      scsi_fixstring(buffer + 8, 24);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
new file mode 100644
index 0000000..fc0d86e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
@@ -0,0 +1,39 @@
+We need to use pkg-config to find the ncurses library instead of the
+ncurses*-config applications.
+
+Signed-off-by: Paul Barker <pbarker@toganlabs.com>
+Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
+
+Upstream-status: Inappropriate
+    (`ncurses*-config` can be used outside of OpenEmbedded)
+
+diff --git a/configure.ac b/configure.ac
+index 559dc4d..77aea22 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -185,10 +185,10 @@ m4_define([HTOP_CHECK_LIB],
+ 
+ AC_ARG_ENABLE(unicode, [AS_HELP_STRING([--enable-unicode], [enable Unicode support])], ,enable_unicode="yes")
+ if test "x$enable_unicode" = xyes; then
+-   HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+-    HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+-     HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw5-config",
+-      HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "ncurses5-config",
++   HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++    HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++     HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw5",
++      HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncurses5",
+        HTOP_CHECK_LIB([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW],
+         HTOP_CHECK_LIB([ncursesw], [addnwstr], [HAVE_LIBNCURSESW],
+          HTOP_CHECK_LIB([ncurses], [addnwstr], [HAVE_LIBNCURSESW],
+@@ -201,8 +201,8 @@ if test "x$enable_unicode" = xyes; then
+          [AC_CHECK_HEADERS([ncurses/curses.h],[:],
+             [AC_CHECK_HEADERS([ncurses.h],[:],[missing_headers="$missing_headers $ac_header"])])])])
+ else
+-   HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "ncurses6-config",
+-    HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "ncurses5-config",
++   HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses6",
++    HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses5",
+      HTOP_CHECK_LIB([ncurses6],  [refresh], [HAVE_LIBNCURSES],
+       HTOP_CHECK_LIB([ncurses],  [refresh], [HAVE_LIBNCURSES],
+       missing_libraries="$missing_libraries libncurses"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_1.0.3.bb
deleted file mode 100644
index 181661a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_1.0.3.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "htop process monitor"
-HOMEPAGE = "http://htop.sf.net"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
-
-DEPENDS = "ncurses"
-RDEPENDS_${PN} = "ncurses-terminfo"
-
-SRC_URI = "http://hisham.hm/htop/releases/${PV}/htop-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "e768b9b55c033d9c1dffda72db3a6ac7"
-SRC_URI[sha256sum] = "055c57927f75847fdc222b5258b079a9542811a9dcf5421c615c7e17f55d1829"
-
-LDFLAGS_append_libc-uclibc = " -lubacktrace"
-
-do_configure_prepend () {
-    rm -rf ${S}/config.h
-}
-
-inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb
new file mode 100644
index 0000000..33508f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Interactive process viewer"
+HOMEPAGE = "http://hisham.hm/htop"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \
+           file://0001-Use-pkg-config.patch"
+SRC_URI[md5sum] = "f262b66ad6c194782f4d3a80627e84c8"
+SRC_URI[sha256sum] = "3260be990d26e25b6b49fc9d96dbc935ad46e61083c0b7f6df413e513bf80748"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "proc \
+                   cgroup \
+                   taskstats \
+                   unicode \
+                   linux-affinity \
+                   delayacct"
+PACKAGECONFIG[proc] = "--enable-proc,--disable-proc"
+PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
+PACKAGECONFIG[cgroup] = "--enable-cgroup,--disable-cgroup"
+PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
+PACKAGECONFIG[taskstats] = "--enable-taskstats,--disable-taskstats"
+PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
+PACKAGECONFIG[linux-affinity] = "--enable-linux-affinity,--disable-linux-affinity"
+PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc"
+PACKAGECONFIG[setuid] = "--enable-setuid,--disable-setuid"
+PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
+
+do_configure_prepend () {
+    rm -rf ${S}/config.h
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb
similarity index 75%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb
index 125729f..5feea89 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb
@@ -7,8 +7,8 @@
 "
 
 SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz"
-SRC_URI[md5sum] = "0df1c18c1284f8625af5ae5a8d5c4cef"
-SRC_URI[sha256sum] = "30f593733c50b794016bb03d31fd2a2071e4610c6fa4708e33edad2335102c49"
+SRC_URI[md5sum] = "1a54504cb470aafa6530bb372a10dc04"
+SRC_URI[sha256sum] = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4"
 
 inherit autotools pkgconfig gettext
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
index 50d35c6..679673b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
@@ -5,8 +5,8 @@
 LICENSE = "GPL-2.0+"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
 
-PV = "0.291+git${SRCPV}"
-SRCREV = "4bfbdcf5913d6dd53336d31b8035708075e6fdfa"
+PV = "0.298+git${SRCPV}"
+SRCREV = "9030fbd6ab1538f4d77d3cf1e0b463a7ec25b5c4"
 SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
 
 S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff
deleted file mode 100644
index e666ce0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-Taken from upstream subversion repository:
-
-http://code.google.com/p/iksemel/source/detail?r=25
-
-===================================================================
----
- configure.ac |   10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
---- iksemel-1.4.orig/configure.ac
-+++ iksemel-1.4/configure.ac
-@@ -43,11 +43,19 @@ AM_CONDITIONAL(DO_POSIX, test "x$defio"
- dnl Checks for library functions
- AC_SEARCH_LIBS(recv,socket)
- AC_CHECK_FUNCS(getopt_long)
- AC_CHECK_FUNCS(getaddrinfo)
- 
--AM_PATH_LIBGNUTLS(,AC_DEFINE(HAVE_GNUTLS,,"Use libgnutls"))
-+dnl Check GNU TLS
-+PKG_CHECK_MODULES(GNUTLS, gnutls >= 2.0.0, have_gnutls=yes, have_gnutls=no)
-+if test "x$have_gnutls" = "xyes"; then
-+  LIBGNUTLS_CFLAGS="$GNUTLS_CFLAGS"
-+  LIBGNUTLS_LIBS="$GNUTLS_LIBS"
-+  AC_SUBST(LIBGNUTLS_CFLAGS)
-+  AC_SUBST(LIBGNUTLS_LIBS)
-+  AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.])
-+fi
- 
- dnl Check -Wall flag of GCC
- if test "x$GCC" = "xyes"; then
-   if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
-     CFLAGS="$CFLAGS -Wall"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch
new file mode 100644
index 0000000..41fccc3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch
@@ -0,0 +1,55 @@
+From 7136a908a056d0e36c89b6e1c39adff8ce2bb1d4 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Wed, 1 Nov 2017 13:17:34 -0700
+Subject: [PATCH] avoid obsolete gnutls apis
+
+The gnutls_*_set_priority() family of functions was marked deprecated
+in gnutls 2.12.x and removed completely in 3.5.x. These functions
+have been superceded by gnutls_priority_set_direct(), which was added
+in gnutls 2.2.0 (released 2007-12-14).
+
+Rather than simply update the custom gnutls_*_set_priority() calls to
+use gnutls_priority_set_direct(), drop the custom priority selection
+completely and use the recommended approach of letting gnutls pick a
+reasonable set of defaults.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ src/tls-gnutls.c | 12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/src/tls-gnutls.c b/src/tls-gnutls.c
+index d7b7c91..749e9ef 100644
+--- a/src/tls-gnutls.c
++++ b/src/tls-gnutls.c
+@@ -48,11 +48,6 @@ tls_pull (struct ikstls_data *data, char *buffer, size_t len)
+ static int
+ tls_handshake (struct ikstls_data **datap, ikstransport *trans, void *sock)
+ {
+-	const int protocol_priority[] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 };
+-	const int kx_priority[] = { GNUTLS_KX_RSA, 0 };
+-	const int cipher_priority[] = { GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR, 0};
+-	const int comp_priority[] = { GNUTLS_COMP_ZLIB, GNUTLS_COMP_NULL, 0 };
+-	const int mac_priority[] = { GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, 0 };
+ 	struct ikstls_data *data;
+ 	int ret;
+ 
+@@ -81,11 +76,8 @@ tls_handshake (struct ikstls_data **datap, ikstransport *trans, void *sock)
+ 		return IKS_NOMEM;
+ 	}
+ 
+-	gnutls_protocol_set_priority (data->sess, protocol_priority);
+-	gnutls_cipher_set_priority(data->sess, cipher_priority);
+-	gnutls_compression_set_priority(data->sess, comp_priority);
+-	gnutls_kx_set_priority(data->sess, kx_priority);
+-	gnutls_mac_set_priority(data->sess, mac_priority);
++	gnutls_set_default_priority (data->sess);
++
+ 	gnutls_credentials_set (data->sess, GNUTLS_CRD_CERTIFICATE, data->cred);
+ 
+ 	gnutls_transport_set_push_function (data->sess, (gnutls_push_func) tls_push);
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch
new file mode 100644
index 0000000..05accdd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch
@@ -0,0 +1,62 @@
+From 17a5cf8f70b86d8a2195562e2d9dcccb4fa35c83 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Tue, 31 Oct 2017 20:05:58 -0700
+Subject: [PATCH] fix configure option parsing
+
+Don't over-write with_openssl etc by trying to set to $enablevar
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ configure.ac | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 82e6d2d..823e6c1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -56,17 +56,17 @@ fi
+ dnl Options for overriding TLS checks
+ AC_ARG_WITH([openssl],
+   AS_HELP_STRING([--without-openssl],[disable checking for openssl]),
+-  [with_openssl=$enableval],
+-  [with_openssl=yes]
++  [],
++  [with_openssl=auto]
+ )
+ AC_ARG_WITH([gnutls],
+   AS_HELP_STRING([--without-gnutls],[disable checking for GNU TLS]),
+-  [with_gnutls=$enableval],
+-  [with_gnutls=yes]
++  [],
++  [with_gnutls=auto]
+ )
+ 
+ dnl Check OpenSSL
+-if test "x$with_openssl" = "xyes"; then
++if test "x$with_openssl" != "xno"; then
+   PKG_CHECK_MODULES([OPENSSL], openssl >= 0.9.8, have_openssl=yes, have_openssl=no)
+   if test "x$have_openssl" = "xyes"; then
+     LIBOPENSSL_CFLAGS="$OPENSSL_CFLAGS"
+@@ -78,7 +78,7 @@ if test "x$with_openssl" = "xyes"; then
+ fi
+ 
+ dnl Check GNU TLS
+-if test "x$with_gnutls" = "xyes"; then
++if test "x$with_gnutls" != "xno"; then
+   if test "x$have_openssl" != "xyes"; then
+     PKG_CHECK_MODULES([GNUTLS], gnutls >= 2.0.0, have_gnutls=yes, have_gnutls=no)
+     if test "x$have_gnutls" = "xyes"; then
+@@ -94,7 +94,7 @@ fi
+ dnl Option for overriding Python check
+ AC_ARG_ENABLE([python],
+   AS_HELP_STRING([--disable-python],[disable checking for Python bindings]),
+-  [with_python=$enableval],
++  [],
+   [with_python=yes]
+ )
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
new file mode 100644
index 0000000..0903e90
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Fast and portable XML parser and Jabber protocol library"
+HOMEPAGE = "https://github.com/meduketto/iksemel"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+SRCREV = "978b733462e41efd5db72bc9974cb3b0d1d5f6fa"
+PV = "1.5+git${SRCPV}"
+
+SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https \
+           file://fix-configure-option-parsing.patch \
+           file://avoid-obsolete-gnutls-apis.patch"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig lib_package
+
+# TLS support requires either openssl or gnutls (if both are enabled openssl will be used).
+PACKAGECONFIG ?= "gnutls"
+
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
+
+EXTRA_OECONF = "--disable-python"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch
deleted file mode 100644
index 761dadb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From fd8bc66efac1059c1068f804746b01b90177c333 Mon Sep 17 00:00:00 2001
-From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
-Date: Sun, 18 Oct 2015 16:52:25 +0200
-Subject: [PATCH] CMakeLists.txt: install FindEigen3.cmake script
-
-Upstream-Status: Pending
-
-Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
----
- CMakeLists.txt | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 76a11b9..ec6c6ea 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -342,6 +342,8 @@ if(EIGEN_BUILD_PKGCONFIG)
-         )
- endif(EIGEN_BUILD_PKGCONFIG)
- 
-+install(FILES "${PROJECT_SOURCE_DIR}/cmake/FindEigen3.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/cmake/Modules")
-+
- add_subdirectory(Eigen)
- 
- add_subdirectory(doc EXCLUDE_FROM_ALL)
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.2.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
similarity index 62%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.2.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
index dcca2e9..bc3b32e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.2.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
@@ -4,17 +4,16 @@
 LICENSE = "MPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
 
-SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2 \
-           file://0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch"
-SRC_URI[md5sum] = "9e3bfaaab3db18253cfd87ea697b3ab1"
-SRC_URI[sha256sum] = "722a63d672b70f39c271c5e2a4a43ba14d12015674331790414fcb167c357e55"
+SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2"
+SRC_URI[md5sum] = "a7aab9f758249b86c93221ad417fbe18"
+SRC_URI[sha256sum] = "dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6"
 
-S = "${WORKDIR}/eigen-eigen-07105f7124f9"
+S = "${WORKDIR}/eigen-eigen-5a0156e40feb"
 
 inherit cmake
 
 FILES_${PN} = "${includedir} ${libdir}"
-FILES_${PN}-dev = "${datadir}/cmake/Modules ${datadir}/pkgconfig"
+FILES_${PN}-dev = "${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig"
 
 # ${PN} is empty so we need to tweak -dev and -dbg package dependencies
 RDEPENDS_${PN}-dev = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
similarity index 72%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
index c506057..cd77506 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -5,11 +5,6 @@
 
 SRC_URI = "https://www.kernel.org/pub/software/libs/libgpiod/${BP}.tar.xz"
 
-SRC_URI[md5sum] = "5f9d855352b1a5272cf6f1c2e20689d2"
-SRC_URI[sha256sum] = "6dfd6aeb544e8b7baf484a05c9ae0e67022c109362a41d87005393046b6beacf"
-
-PV = "0.3.1"
-
 inherit autotools pkgconfig
 
 # enable tools
@@ -18,6 +13,9 @@
 PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
 PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,"
 
-PACKAGES += " ${PN}-tools"
+PACKAGES =+ " ${PN}-tools"
 
 FILES_${PN}-tools = "${bindir}/*"
+
+RRECOMMENDS_TOOLS = "${@bb.utils.contains('PACKAGECONFIG', 'tools', '${PN}-tools', '',d)}"
+RRECOMMENDS_${PN} += "${RRECOMMENDS_TOOLS}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
new file mode 100644
index 0000000..09fb65a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
@@ -0,0 +1,4 @@
+require libgpiod.inc
+
+SRC_URI[md5sum] = "2aa1e1a80c3c919ae142ab9a55fb59ca"
+SRC_URI[sha256sum] = "b773e557af1a497f786825462a776b7bf90168e67ee0a5bc5d2473a5674dc38c"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
new file mode 100644
index 0000000..51499fd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
@@ -0,0 +1,4 @@
+require libgpiod.inc
+
+SRC_URI[md5sum] = "2ca0c3eb17d69e367b6f6a109ca86e41"
+SRC_URI[sha256sum] = "972924195367f5fb045c023d65340c4b7dfc8764499516be446553865208dedc"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index d66ac58..ba380ed 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -4,21 +4,41 @@
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
 
-SRCREV = "08f947d5e40600259bb698c3b95538e9f2bfecc2"
-PV = "0.8+git${SRCPV}"
+SRCREV = "fa82974d8bd1fded78e630ab71a7ded1b11d0e33"
+PV = "0.14+git${SRCPV}"
 
-SRC_URI = "git://github.com/analogdevicesinc/libiio.git"
+SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https"
 
 S = "${WORKDIR}/git"
 
-DEPENDS = "flex-native bison-native avahi libaio libusb1 libxml2"
+inherit cmake pythonnative systemd
 
-inherit cmake pythonnative
+DEPENDS = " \
+    flex-native bison-native libaio \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
+"
+
+EXTRA_OECMAKE = " \
+    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+    -DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
+"
+
+PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND"
+
+PACKAGECONFIG[USB_BACKEND] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2"
+PACKAGECONFIG[NETWORK_BACKEND] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
 
 PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-python"
 
 RDEPENDS_${PN}-python = "${PN} python-ctypes python-stringold"
 
-FILES_${PN}-iiod = "${sbindir}/iiod"
+FILES_${PN}-iiod = " \
+    ${sbindir}/iiod \
+    ${systemd_system_unitdir}/iiod.service \
+"
 FILES_${PN}-tests = "${bindir}"
 FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
+SYSTEMD_PACKAGES = "${PN}-iiod"
+SYSTEMD_SERVICE_${PN}-iiod = "iiod.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
index ee399a7..0930a27 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
@@ -11,6 +11,8 @@
 
 inherit autotools lib_package pkgconfig gettext
 
+CFLAGS += "-pthread -D_REENTRANT"
+
 EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
 
 PACKAGECONFIG ?= "curl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
index 74e1ef2..d7adb2b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
 
-SRC_URI = "http://www.balabit.com/downloads/files/libol/0.3/${BP}.tar.gz \
+SRC_URI = "http://www.balabit.com/downloads/libol/0.3/${BP}.tar.gz \
            file://configure.patch"
 SRC_URI[md5sum] = "cbadf4b7ea276dfa85acc38a1cc5ff17"
 SRC_URI[sha256sum] = "9de3bf13297ff882e02a1e6e5f6bf760a544aff92a9d8a1cf4328a32005cefe7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/automake_foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/automake_foreign.patch
deleted file mode 100644
index 2d5bd6d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/automake_foreign.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: SDL2_ttf-2.0.14/Makefile.am
-===================================================================
---- SDL2_ttf-2.0.14.orig/Makefile.am
-+++ SDL2_ttf-2.0.14/Makefile.am
-@@ -1,6 +1,8 @@
- # Makefile.am for the SDL truetype font loading library and viewer
- lib_LTLIBRARIES = libSDL2_ttf.la
- 
-+AUTOMAKE_OPTIONS = foreign
-+
- libSDL2_ttfincludedir = $(includedir)/SDL2
- libSDL2_ttfinclude_HEADERS =	\
- 	SDL_ttf.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
similarity index 80%
copy from import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch
copy to import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
index 8a11f66..1116c34 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
@@ -1,16 +1,21 @@
-freetype-config was removed from oe-core in
+From 8cf318197eea91bec6057308befbb29426d69014 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 22 May 2014 10:59:33 +0100
+Subject: [PATCH] freetype-config was removed from oe-core in
 
 commit 5870bd272b0b077d0826fb900b251884c1c05061
-Author: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date:   Thu May 22 10:59:33 2014 +0100
 
     binconfig-disabled: Add class and use
 
+---
+ configure.in | 38 +++++---------------------------------
+ 1 file changed, 5 insertions(+), 33 deletions(-)
+
 diff --git a/configure.in b/configure.in
-index 408e8d6..5f9e730 100644
+index 865075e..d7a5a81 100644
 --- a/configure.in
 +++ b/configure.in
-@@ -86,39 +86,11 @@ case "$host" in
+@@ -90,39 +90,11 @@ case "$host" in
  esac
  AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
  
@@ -54,4 +59,4 @@
 +)
  
  dnl Check for SDL
- SDL_VERSION=2.0.0
+ SDL_VERSION=1.2.4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
new file mode 100644
index 0000000..871e6e9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
@@ -0,0 +1,21 @@
+From f9c4ad3a171d676e3818b8f6897f325ccf0b2203 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 May 2017 00:57:10 -0700
+
+---
+ Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 8166d91..8e05e49 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,6 +2,8 @@
+ 
+ lib_LTLIBRARIES = libSDL2_ttf.la
+ 
++AUTOMAKE_OPTIONS = foreign
++
+ libSDL2_ttfincludedir = $(includedir)/SDL2
+ libSDL2_ttfinclude_HEADERS =	\
+ 	SDL_ttf.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
index 8a11f66..1dfbec6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
@@ -1,13 +1,18 @@
-freetype-config was removed from oe-core in
+From e6d2c0e130811c15b5f5cc10221fae182cb8609e Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 22 May 2014 10:59:33 +0100
+Subject: [PATCH] freetype-config was removed from oe-core in
 
 commit 5870bd272b0b077d0826fb900b251884c1c05061
-Author: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date:   Thu May 22 10:59:33 2014 +0100
 
     binconfig-disabled: Add class and use
 
+---
+ configure.in | 38 +++++---------------------------------
+ 1 file changed, 5 insertions(+), 33 deletions(-)
+
 diff --git a/configure.in b/configure.in
-index 408e8d6..5f9e730 100644
+index 9b36e15..f300cae 100644
 --- a/configure.in
 +++ b/configure.in
 @@ -86,39 +86,11 @@ case "$host" in
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-disable-RedHat-specific-test.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-disable-RedHat-specific-test.patch
new file mode 100644
index 0000000..468a55f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-disable-RedHat-specific-test.patch
@@ -0,0 +1,32 @@
+From 00debe6bd4cf5a3133a8fbaab75f7447a39fa655 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Thu, 12 Apr 2018 01:54:15 +0000
+Subject: [PATCH] team_basic_test.py: disable RedHat specific test
+
+The test _run_teamd_initscripts() is for RedHat ifcfg scripts which are
+incompatible with OE:
+  /etc/sysconfig/network-scripts/ifcfg-*
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+---
+ scripts/team_basic_test.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index b05be9e..faabd18 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -171,7 +171,7 @@ TEAM_PORT_CONFIG='{"prio": 10}'
+         try:
+             for mode_name in self._team_modes:
+                 self._run_one_mode(mode_name)
+-            self._run_teamd_initscripts()
++            #self._run_teamd_initscripts()
+         finally:
+             cmd_exec("modprobe -r team_mode_loadbalance team_mode_roundrobin team_mode_activebackup team_mode_broadcast team");
+ 
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
new file mode 100644
index 0000000..4ba5acf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+python $(dirname $0)/team_basic_test.py
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
index 3222700..442592d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
@@ -10,6 +10,8 @@
 SRC_URI = "git://github.com/jpirko/libteam \
            file://0001-include-sys-select.h-for-fd_set-definition.patch \
            file://0002-teamd-Re-adjust-include-header-order.patch \
+           file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \
+           file://run-ptest \
            "
 SRCREV = "91a928a56a501daac5ce8b3c16bd9943661f1d16"
 
@@ -18,7 +20,7 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig ptest
 
 FILES_${PN} = "${libdir}/libteam${SOLIBS} \
 "
@@ -33,4 +35,8 @@
 "
 
 RDEPENDS_${PN}-utils = "bash"
+RDEPENDS_${PN}-ptest = "python"
 
+do_install_ptest() {
+	install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch
deleted file mode 100644
index e517d53d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 5fdec9592285f5976345fbccb3d07fae1245ab53 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Aug 2017 15:41:22 -0700
-Subject: [PATCH] mongo: Add using std::string
-
-This is needed with latest clang
-Fixes
-src/mongo/db/dbwebserver.cpp:206:23: error: use of undeclared identifier 'string'; did you mean 'String'?
-        static vector<string> commands;
-                      ^~~~~~
-                      String
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/mongo/db/dbwebserver.cpp             | 1 +
- src/mongo/db/matcher/expression_leaf.cpp | 2 ++
- src/mongo/db/repl/master_slave.cpp       | 1 +
- src/mongo/util/net/miniwebserver.cpp     | 1 +
- 4 files changed, 5 insertions(+)
-
-diff --git a/src/mongo/db/dbwebserver.cpp b/src/mongo/db/dbwebserver.cpp
-index b202e0500b..0255613524 100644
---- a/src/mongo/db/dbwebserver.cpp
-+++ b/src/mongo/db/dbwebserver.cpp
-@@ -67,6 +67,7 @@ namespace mongo {
- using std::map;
- using std::stringstream;
- using std::vector;
-+using std::string;
- 
- using namespace html;
- 
-diff --git a/src/mongo/db/matcher/expression_leaf.cpp b/src/mongo/db/matcher/expression_leaf.cpp
-index d562bff141..4d931985e2 100644
---- a/src/mongo/db/matcher/expression_leaf.cpp
-+++ b/src/mongo/db/matcher/expression_leaf.cpp
-@@ -44,6 +44,8 @@
- #include "mongo/stdx/memory.h"
- #include "mongo/util/mongoutils/str.h"
- 
-+using std::string;
-+
- namespace mongo {
- 
- Status LeafMatchExpression::setPath(StringData path) {
-diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp
-index 05faad1259..ea25d7151b 100644
---- a/src/mongo/db/repl/master_slave.cpp
-+++ b/src/mongo/db/repl/master_slave.cpp
-@@ -78,6 +78,7 @@ using std::endl;
- using std::max;
- using std::min;
- using std::set;
-+using std::string;
- using std::stringstream;
- using std::unique_ptr;
- using std::vector;
-diff --git a/src/mongo/util/net/miniwebserver.cpp b/src/mongo/util/net/miniwebserver.cpp
-index 5f4165d42f..239720c349 100644
---- a/src/mongo/util/net/miniwebserver.cpp
-+++ b/src/mongo/util/net/miniwebserver.cpp
-@@ -46,6 +46,7 @@ namespace mongo {
- 
- using std::shared_ptr;
- using std::stringstream;
-+using std::string;
- using std::vector;
- 
- MiniWebServer::MiniWebServer(const string& name, const string& ip, int port, ServiceContext* ctx)
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.7.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.7.4.bb
deleted file mode 100644
index eaf393e..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.7.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include nano.inc
-
-SRC_URI[md5sum] = "c011c7f9e47cb1da27d4e7cc8b56ec6a"
-SRC_URI[sha256sum] = "752170643039e2c95a433de357f0c70a8c4c4c561a90a7e7259a63e225b659b9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
new file mode 100644
index 0000000..afb0cf2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
@@ -0,0 +1,4 @@
+include nano.inc
+
+SRC_URI[md5sum] = "6dd37f010d6a985bf0e5f8ed091ff919"
+SRC_URI[sha256sum] = "7783bcfd4b2d5dc0bf64d4bd07b1a19e7ba3c91da881a4249772a36b972d4012"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
index e5b50ce..76e0741 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -29,7 +29,7 @@
         d.setVar('NE10_TARGET_ARCH', 'aarch64')
         bb.debug(2, 'Building Ne10 for aarch64')
     else:
-        raise bb.parse.SkipPackage("Incompatible with archs other than armv7 and aarch64")
+        raise bb.parse.SkipRecipe("Incompatible with archs other than armv7 and aarch64")
 }
 
 do_install() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/neon/neon/pkgconfig.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/neon/neon/pkgconfig.patch
new file mode 100644
index 0000000..239dba8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/neon/neon/pkgconfig.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Inappropriate [configuration]
+
+---
+ neon.pc.in |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- neon-0.30.1.orig/neon.pc.in
++++ neon-0.30.1/neon.pc.in
+@@ -7,5 +7,5 @@ Name: neon
+ Description: HTTP/WebDAV client library
+ Version: @NEON_VERSION@
+ Libs: -L${libdir} -lneon @NEON_PC_LIBS@
+-Libs.private: @NEON_LIBS@
++Libs.private: -L${libdir} -lz -lgcrypt -lgpg-error -lexpat -lgnutls
+ Cflags: -I${includedir}/neon @NEON_CFLAGS@
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/neon/neon_0.30.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/neon/neon_0.30.2.bb
new file mode 100644
index 0000000..00b79f6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/neon/neon_0.30.2.bb
@@ -0,0 +1,38 @@
+SUMMARY = "An HTTP and WebDAV client library with a C interface"
+HOMEPAGE = "http://www.webdav.org/neon/"
+SECTION = "libs"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://src/COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a \
+                    file://src/ne_utils.h;beginline=1;endline=20;md5=2caca609538eddaa6f6adf120a218037"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/n/neon27/neon27_${PV}.orig.tar.gz \
+           file://pkgconfig.patch \
+          "
+
+SRC_URI[md5sum] = "e28d77bf14032d7f5046b3930704ef41"
+SRC_URI[sha256sum] = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca"
+
+inherit autotools binconfig-disabled lib_package pkgconfig
+
+# Enable gnutls or openssl, not both
+PACKAGECONFIG ?= "expat gnutls libproxy webdav zlib"
+PACKAGECONFIG_class-native = "expat gnutls webdav zlib"
+
+PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat"
+PACKAGECONFIG[gnutls] = "--with-ssl=gnutls,,gnutls"
+PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
+PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy"
+PACKAGECONFIG[libxml2] = "--with-libxml2,--without-libxml2,libxml2"
+PACKAGECONFIG[openssl] = "--with-ssl=openssl,,openssl"
+PACKAGECONFIG[webdav] = "--enable-webdav,--disable-webdav,"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+EXTRA_OECONF += "--enable-shared"
+
+do_compile_append() {
+    oe_runmake -C test
+}
+
+BINCONFIG = "${bindir}/neon-config"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb
deleted file mode 100644
index 3e6b10a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "HTTP/2 C Library and tools"
-HOMEPAGE = "https://nghttp2.org/"
-SECTION = "libs"
-
-DEPENDS = "pkgconfig cunit zlib openssl libxml2 jansson c-ares"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-SRC_URI = "https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.bz2"
-SRC_URI[md5sum] = "926f07ad3b50f38f7d8935ced04716cf"
-SRC_URI[sha256sum] = "0df4229f4123b5aa96e834ebcfdffe954e93d986f0252fd10123d50c6f010983"
-
-inherit cmake pythonnative python-dir
-
-EXTRA_OECMAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init
new file mode 100644
index 0000000..3828046
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+#   vmtoolsd          Start/stop the vmware tools daemon
+#
+# chkconfig:  2345 90 60
+# description: vmtoolsd is a daemon that starts up.  for some reason, it
+#              doesn't include a sysv init startup file in the latest release.
+#              so i have to write this
+#
+
+### BEGIN INIT INFO
+# Provides: vmtoolsd
+# Required-Start: $local_fs $syslog
+# Required-Stop: $local_fs $syslog
+# Default-Start: 2345
+# Default-Stop: 90
+# Short-Description: Run vmware tools daemon
+### END INIT INFO
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/vmtoolsd
+NAME=vmtoolsd
+DESC="vmware tools daemon"
+VMTOOLSDARGS=" -b /var/run/vmtoolsd.pid "
+RETVAL="1"
+
+# source function library
+. /etc/init.d/functions
+
+test -f $DAEMON || exit 0
+
+
+case "$1" in
+  start)
+    echo -n "Starting vmware tools daemon: "
+    start-stop-daemon --start --quiet --exec $DAEMON -- $VMTOOLSDARGS
+    RETVAL=$?
+    if [ $RETVAL -eq 0 ] ; then
+        echo "OK"
+    else
+        echo "FAIL"
+    fi
+    ;;
+  stop)
+    echo -n "Stopping vmware tools daemon: "
+    start-stop-daemon --stop --quiet --pidfile /var/run/vmtoolsd.pid
+    RETVAL=$?
+    if [ $RETVAL -eq 0 ] ; then
+        echo "OK"
+    else
+        echo "FAIL"
+    fi
+    ;;
+  status)
+    status vmtoolsd
+    exit $?
+    ;;
+  restart)
+    $0 stop && sleep 1 && $0 start
+    ;;
+  *)
+    echo "Usage: /etc/init.d/vmtoolsd {start|stop|status|restart}"
+    exit 1
+esac
+
+exit $RETVAL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
index 81e8e96..c32d2c5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
@@ -24,6 +24,7 @@
 SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
            file://tools.conf \
            file://vmtoolsd.service \
+           file://vmtoolsd.init \
            file://0001-configure.ac-don-t-use-dnet-config.patch \
            file://0002-add-include-sys-sysmacros.h.patch \
            file://0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch \
@@ -50,7 +51,7 @@
 # open-vm-tools is supported only on x86.
 COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
 
-inherit autotools pkgconfig systemd
+inherit autotools pkgconfig systemd update-rc.d
 
 SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
 
@@ -85,8 +86,14 @@
 
 do_install_append() {
     ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
-    install -d ${D}${systemd_unitdir}/system ${D}${sysconfdir}/vmware-tools
-    install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
+    install -d ${D}${sysconfdir}/vmware-tools
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
+    else
+        install -d ${D}${sysconfdir}/init.d
+        install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
+    fi
     install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
 }
 
@@ -95,6 +102,10 @@
     export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
 }
 
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME_${PN} = "vmtoolsd"
+INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
 python() {
     if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
 	'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
index c7d7203..913290c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -25,7 +25,7 @@
 LICENSE = "LGPLv2+"
 LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
 
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
+inherit systemd
 SYSTEMD_SERVICE_${PN} += "openct.service "
 SYSTEMD_AUTO_ENABLE = "enable"
 
@@ -77,10 +77,8 @@
     install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
     install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
 
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install -d ${D}/${systemd_unitdir}/system
-        install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
-    fi
+    install -d ${D}/${systemd_unitdir}/system
+    install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
 
     so=$(find ${D} -name \*.so | sed "s|^${D}||")
     sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
new file mode 100644
index 0000000..6e24f2d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
@@ -0,0 +1,394 @@
+From e4bf148cddf277834e57c9afeec8daff8378a655 Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Date: Wed, 22 Nov 2017 15:27:07 +0100
+Subject: [PATCH] Fix: File already exists in database: caffe.proto
+
+Fixes error when importing python cv
+
+Upstream-status: Backport https://github.com/opencv/opencv/pull/10092
+Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+---
+ modules/dnn/CMakeLists.txt                                | 6 +++---
+ modules/dnn/src/caffe/caffe_importer.cpp                  | 1 -
+ modules/dnn/src/caffe/caffe_io.cpp                        | 1 -
+ modules/dnn/src/caffe/caffe_io.hpp                        | 2 +-
+ modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} | 0
+ 5 files changed, 4 insertions(+), 6 deletions(-)
+ rename modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} (100%)
+
+diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
+index c6329a742263..8ef00ef983ff 100644
+--- a/modules/dnn/CMakeLists.txt
++++ b/modules/dnn/CMakeLists.txt
+@@ -55,13 +55,13 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS
+ 
+ if(PROTOBUF_UPDATE_FILES)
+   file(GLOB proto_files src/tensorflow/*.proto)
+-  list(APPEND proto_files src/caffe/caffe.proto)
++  list(APPEND proto_files src/caffe/opencv-caffe.proto)
+   PROTOBUF_GENERATE_CPP(Protobuf_HDRS Protobuf_SRCS ${proto_files})
+ else()
+   file(GLOB fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.cc)
+   file(GLOB fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.h)
+-  list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.cc)
+-  list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.h)
++  list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.cc)
++  list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.h)
+   list(APPEND Protobuf_SRCS ${fw_srcs})
+   list(APPEND Protobuf_HDRS ${fw_hdrs})
+   list(APPEND Protobuf_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe)
+diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
+index c075651b95b3..2c977c84b0f4 100644
+--- a/modules/dnn/src/caffe/caffe_importer.cpp
++++ b/modules/dnn/src/caffe/caffe_importer.cpp
+@@ -42,7 +42,6 @@
+ #include "../precomp.hpp"
+ 
+ #ifdef HAVE_PROTOBUF
+-#include "caffe.pb.h"
+ 
+ #include <iostream>
+ #include <fstream>
+diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
+index 0f46ea77df9a..1d3c518f1328 100644
+--- a/modules/dnn/src/caffe/caffe_io.cpp
++++ b/modules/dnn/src/caffe/caffe_io.cpp
+@@ -99,7 +99,6 @@
+ #include <fstream>
+ #include <vector>
+ 
+-#include "caffe.pb.h"
+ #include "caffe_io.hpp"
+ #include "glog_emulator.hpp"
+ 
+diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
+index 09bc5709a24e..f5912c3bcec1 100644
+--- a/modules/dnn/src/caffe/caffe_io.hpp
++++ b/modules/dnn/src/caffe/caffe_io.hpp
+@@ -91,7 +91,7 @@
+ #define __OPENCV_DNN_CAFFE_IO_HPP__
+ #ifdef HAVE_PROTOBUF
+ 
+-#include "caffe.pb.h"
++#include "opencv-caffe.pb.h"
+ 
+ namespace cv {
+ namespace dnn {
+diff --git a/modules/dnn/src/caffe/caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
+similarity index 100%
+rename from modules/dnn/src/caffe/caffe.proto
+rename to modules/dnn/src/caffe/opencv-caffe.proto
+diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
+index 0b72326f7e7d..f413bad5b81a 100644
+--- a/modules/dnn/src/layers/detection_output_layer.cpp
++++ b/modules/dnn/src/layers/detection_output_layer.cpp
+@@ -44,7 +44,7 @@
+ #include "layers_common.hpp"
+ #include <float.h>
+ #include <string>
+-#include <caffe.pb.h>
++#include <opencv-caffe.pb.h>
+ 
+ namespace cv
+ {
+diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
+index 2c977c84b0f4..a1827a381117 100644
+--- a/modules/dnn/src/caffe/caffe_importer.cpp
++++ b/modules/dnn/src/caffe/caffe_importer.cpp
+@@ -78,8 +78,8 @@ static cv::String toString(const T &v)
+ 
+ class CaffeImporter : public Importer
+ {
+-    caffe::NetParameter net;
+-    caffe::NetParameter netBinary;
++    opencvcaffe::NetParameter net;
++    opencvcaffe::NetParameter netBinary;
+ 
+ public:
+ 
+@@ -197,7 +197,7 @@ public:
+         }
+     }
+ 
+-    void blobShapeFromProto(const caffe::BlobProto &pbBlob, MatShape& shape)
++    void blobShapeFromProto(const opencvcaffe::BlobProto &pbBlob, MatShape& shape)
+     {
+         shape.clear();
+         if (pbBlob.has_num() || pbBlob.has_channels() || pbBlob.has_height() || pbBlob.has_width())
+@@ -209,7 +209,7 @@ public:
+         }
+         else if (pbBlob.has_shape())
+         {
+-            const caffe::BlobShape &_shape = pbBlob.shape();
++            const opencvcaffe::BlobShape &_shape = pbBlob.shape();
+ 
+             for (int i = 0; i < _shape.dim_size(); i++)
+                 shape.push_back((int)_shape.dim(i));
+@@ -218,7 +218,7 @@ public:
+             CV_Error(Error::StsError, "Unknown shape of input blob");
+     }
+ 
+-    void blobFromProto(const caffe::BlobProto &pbBlob, cv::Mat &dstBlob)
++    void blobFromProto(const opencvcaffe::BlobProto &pbBlob, cv::Mat &dstBlob)
+     {
+         MatShape shape;
+         blobShapeFromProto(pbBlob, shape);
+@@ -233,7 +233,7 @@ public:
+             dstData[i] = pbBlob.data(i);
+     }
+ 
+-    void extractBinaryLayerParms(const caffe::LayerParameter& layer, LayerParams& layerParams)
++    void extractBinaryLayerParms(const opencvcaffe::LayerParameter& layer, LayerParams& layerParams)
+     {
+         const std::string &name = layer.name();
+ 
+@@ -247,7 +247,7 @@ public:
+         if (li == netBinary.layer_size() || netBinary.layer(li).blobs_size() == 0)
+             return;
+ 
+-        const caffe::LayerParameter &binLayer = netBinary.layer(li);
++        const opencvcaffe::LayerParameter &binLayer = netBinary.layer(li);
+         layerParams.blobs.resize(binLayer.blobs_size());
+         for (int bi = 0; bi < binLayer.blobs_size(); bi++)
+         {
+@@ -289,7 +289,7 @@ public:
+ 
+         for (int li = 0; li < layersSize; li++)
+         {
+-            const caffe::LayerParameter &layer = net.layer(li);
++            const opencvcaffe::LayerParameter &layer = net.layer(li);
+             String name = layer.name();
+             String type = layer.type();
+             LayerParams layerParams;
+@@ -313,7 +313,7 @@ public:
+         addedBlobs.clear();
+     }
+ 
+-    void addOutput(const caffe::LayerParameter &layer, int layerId, int outNum)
++    void addOutput(const opencvcaffe::LayerParameter &layer, int layerId, int outNum)
+     {
+         const std::string &name = layer.top(outNum);
+ 
+diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
+index f5912c3bcec1..24cd5fa254eb 100644
+--- a/modules/dnn/src/caffe/caffe_io.hpp
++++ b/modules/dnn/src/caffe/caffe_io.hpp
+@@ -98,9 +98,9 @@ namespace dnn {
+ 
+ // Read parameters from a file into a NetParameter proto message.
+ void ReadNetParamsFromTextFileOrDie(const char* param_file,
+-                                    caffe::NetParameter* param);
++                                    opencvcaffe::NetParameter* param);
+ void ReadNetParamsFromBinaryFileOrDie(const char* param_file,
+-                                      caffe::NetParameter* param);
++                                      opencvcaffe::NetParameter* param);
+ 
+ }
+ }
+diff --git a/modules/dnn/src/caffe/opencv-caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
+index 3d23fb48ea6a..df4e1d3269ae 100644
+--- a/modules/dnn/src/caffe/opencv-caffe.proto
++++ b/modules/dnn/src/caffe/opencv-caffe.proto
+@@ -48,7 +48,7 @@
+ 
+ syntax = "proto2";
+ 
+-package caffe;
++package opencvcaffe;
+ 
+ // Specifies the shape (dimensions) of a Blob.
+ message BlobShape {
+diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
+index f413bad5b81a..832c257eebf9 100644
+--- a/modules/dnn/src/layers/detection_output_layer.cpp
++++ b/modules/dnn/src/layers/detection_output_layer.cpp
+@@ -72,7 +72,7 @@ public:
+ 
+     int _backgroundLabelId;
+ 
+-    typedef caffe::PriorBoxParameter_CodeType CodeType;
++    typedef opencvcaffe::PriorBoxParameter_CodeType CodeType;
+     CodeType _codeType;
+ 
+     bool _varianceEncodedInTarget;
+@@ -85,7 +85,7 @@ public:
+     enum { _numAxes = 4 };
+     static const std::string _layerName;
+ 
+-    typedef std::map<int, std::vector<caffe::NormalizedBBox> > LabelBBox;
++    typedef std::map<int, std::vector<opencvcaffe::NormalizedBBox> > LabelBBox;
+ 
+     bool getParameterDict(const LayerParams &params,
+                           const std::string &parameterName,
+@@ -131,11 +131,11 @@ public:
+     {
+         String codeTypeString = params.get<String>("code_type").toLowerCase();
+         if (codeTypeString == "corner")
+-            _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
++            _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
+         else if (codeTypeString == "center_size")
+-            _codeType = caffe::PriorBoxParameter_CodeType_CENTER_SIZE;
++            _codeType = opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE;
+         else
+-            _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
++            _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
+     }
+ 
+     DetectionOutputLayerImpl(const LayerParams &params)
+@@ -215,7 +215,7 @@ public:
+             GetConfidenceScores(confidenceData, num, numPriors, _numClasses, allConfidenceScores);
+ 
+             // Retrieve all prior bboxes
+-            std::vector<caffe::NormalizedBBox> priorBBoxes;
++            std::vector<opencvcaffe::NormalizedBBox> priorBBoxes;
+             std::vector<std::vector<float> > priorVariances;
+             GetPriorBBoxes(priorData, numPriors, priorBBoxes, priorVariances);
+ 
+@@ -272,7 +272,7 @@ public:
+             for (size_t j = 0; j < indices.size(); ++j, ++count)
+             {
+                 int idx = indices[j];
+-                const caffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
++                const opencvcaffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
+                 outputsData[count * 7] = i;
+                 outputsData[count * 7 + 1] = label;
+                 outputsData[count * 7 + 2] = scores[idx];
+@@ -355,7 +355,7 @@ public:
+ 
+     // Compute bbox size
+     template<bool normalized>
+-    static float BBoxSize(const caffe::NormalizedBBox& bbox)
++    static float BBoxSize(const opencvcaffe::NormalizedBBox& bbox)
+     {
+         if (bbox.xmax() < bbox.xmin() || bbox.ymax() < bbox.ymin())
+         {
+@@ -388,10 +388,10 @@ public:
+     // Decode a bbox according to a prior bbox
+     template<bool variance_encoded_in_target>
+     static void DecodeBBox(
+-        const caffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
++        const opencvcaffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
+         const CodeType code_type,
+-        const bool clip_bbox, const caffe::NormalizedBBox& bbox,
+-        caffe::NormalizedBBox& decode_bbox)
++        const bool clip_bbox, const opencvcaffe::NormalizedBBox& bbox,
++        opencvcaffe::NormalizedBBox& decode_bbox)
+     {
+         float bbox_xmin = variance_encoded_in_target ? bbox.xmin() : prior_variance[0] * bbox.xmin();
+         float bbox_ymin = variance_encoded_in_target ? bbox.ymin() : prior_variance[1] * bbox.ymin();
+@@ -399,13 +399,13 @@ public:
+         float bbox_ymax = variance_encoded_in_target ? bbox.ymax() : prior_variance[3] * bbox.ymax();
+         switch(code_type)
+         {
+-            case caffe::PriorBoxParameter_CodeType_CORNER:
++            case opencvcaffe::PriorBoxParameter_CodeType_CORNER:
+                 decode_bbox.set_xmin(prior_bbox.xmin() + bbox_xmin);
+                 decode_bbox.set_ymin(prior_bbox.ymin() + bbox_ymin);
+                 decode_bbox.set_xmax(prior_bbox.xmax() + bbox_xmax);
+                 decode_bbox.set_ymax(prior_bbox.ymax() + bbox_ymax);
+                 break;
+-            case caffe::PriorBoxParameter_CodeType_CENTER_SIZE:
++            case opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE:
+             {
+                 float prior_width = prior_bbox.xmax() - prior_bbox.xmin();
+                 CV_Assert(prior_width > 0);
+@@ -431,7 +431,7 @@ public:
+         };
+         if (clip_bbox)
+         {
+-            // Clip the caffe::NormalizedBBox such that the range for each corner is [0, 1]
++            // Clip the opencvcaffe::NormalizedBBox such that the range for each corner is [0, 1]
+             decode_bbox.set_xmin(std::max(std::min(decode_bbox.xmin(), 1.f), 0.f));
+             decode_bbox.set_ymin(std::max(std::min(decode_bbox.ymin(), 1.f), 0.f));
+             decode_bbox.set_xmax(std::max(std::min(decode_bbox.xmax(), 1.f), 0.f));
+@@ -443,11 +443,11 @@ public:
+ 
+     // Decode a set of bboxes according to a set of prior bboxes
+     static void DecodeBBoxes(
+-        const std::vector<caffe::NormalizedBBox>& prior_bboxes,
++        const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
+         const std::vector<std::vector<float> >& prior_variances,
+         const CodeType code_type, const bool variance_encoded_in_target,
+-        const bool clip_bbox, const std::vector<caffe::NormalizedBBox>& bboxes,
+-        std::vector<caffe::NormalizedBBox>& decode_bboxes)
++        const bool clip_bbox, const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
++        std::vector<opencvcaffe::NormalizedBBox>& decode_bboxes)
+     {
+         CV_Assert(prior_bboxes.size() == prior_variances.size());
+         CV_Assert(prior_bboxes.size() == bboxes.size());
+@@ -470,7 +470,7 @@ public:
+ 
+     // Decode all bboxes in a batch
+     static void DecodeBBoxesAll(const std::vector<LabelBBox>& all_loc_preds,
+-        const std::vector<caffe::NormalizedBBox>& prior_bboxes,
++        const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
+         const std::vector<std::vector<float> >& prior_variances,
+         const int num, const bool share_location,
+         const int num_loc_classes, const int background_label_id,
+@@ -503,10 +503,10 @@ public:
+     // Get prior bounding boxes from prior_data
+     //    prior_data: 1 x 2 x num_priors * 4 x 1 blob.
+     //    num_priors: number of priors.
+-    //    prior_bboxes: stores all the prior bboxes in the format of caffe::NormalizedBBox.
++    //    prior_bboxes: stores all the prior bboxes in the format of opencvcaffe::NormalizedBBox.
+     //    prior_variances: stores all the variances needed by prior bboxes.
+     static void GetPriorBBoxes(const float* priorData, const int& numPriors,
+-                        std::vector<caffe::NormalizedBBox>& priorBBoxes,
++                        std::vector<opencvcaffe::NormalizedBBox>& priorBBoxes,
+                         std::vector<std::vector<float> >& priorVariances)
+     {
+         priorBBoxes.clear(); priorBBoxes.resize(numPriors);
+@@ -514,7 +514,7 @@ public:
+         for (int i = 0; i < numPriors; ++i)
+         {
+             int startIdx = i * 4;
+-            caffe::NormalizedBBox& bbox = priorBBoxes[i];
++            opencvcaffe::NormalizedBBox& bbox = priorBBoxes[i];
+             bbox.set_xmin(priorData[startIdx]);
+             bbox.set_ymin(priorData[startIdx + 1]);
+             bbox.set_xmax(priorData[startIdx + 2]);
+@@ -565,7 +565,7 @@ public:
+                     {
+                         labelBBox[label].resize(numPredsPerClass);
+                     }
+-                    caffe::NormalizedBBox& bbox = labelBBox[label][p];
++                    opencvcaffe::NormalizedBBox& bbox = labelBBox[label][p];
+                     bbox.set_xmin(locData[startIdx + c * 4]);
+                     bbox.set_ymin(locData[startIdx + c * 4 + 1]);
+                     bbox.set_xmax(locData[startIdx + c * 4 + 2]);
+@@ -612,7 +612,7 @@ public:
+     //    nms_threshold: a threshold used in non maximum suppression.
+     //    top_k: if not -1, keep at most top_k picked indices.
+     //    indices: the kept indices of bboxes after nms.
+-    static void ApplyNMSFast(const std::vector<caffe::NormalizedBBox>& bboxes,
++    static void ApplyNMSFast(const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
+           const std::vector<float>& scores, const float score_threshold,
+           const float nms_threshold, const float eta, const int top_k,
+           std::vector<int>& indices)
+@@ -674,10 +674,10 @@ public:
+ 
+     // Compute the jaccard (intersection over union IoU) overlap between two bboxes.
+     template<bool normalized>
+-    static float JaccardOverlap(const caffe::NormalizedBBox& bbox1,
+-                         const caffe::NormalizedBBox& bbox2)
++    static float JaccardOverlap(const opencvcaffe::NormalizedBBox& bbox1,
++                         const opencvcaffe::NormalizedBBox& bbox2)
+     {
+-        caffe::NormalizedBBox intersect_bbox;
++        opencvcaffe::NormalizedBBox intersect_bbox;
+         if (bbox2.xmin() > bbox1.xmax() || bbox2.xmax() < bbox1.xmin() ||
+             bbox2.ymin() > bbox1.ymax() || bbox2.ymax() < bbox1.ymin())
+         {
+diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
+index 1d3c518f1328..3cf6e255aa60 100644
+--- a/modules/dnn/src/caffe/caffe_io.cpp
++++ b/modules/dnn/src/caffe/caffe_io.cpp
+@@ -107,7 +107,7 @@ namespace dnn {
+ 
+ using std::string;
+ using std::map;
+-using namespace caffe;
++using namespace opencvcaffe;
+ using namespace ::google::protobuf;
+ using namespace ::google::protobuf::io;
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
new file mode 100644
index 0000000..56526ec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
@@ -0,0 +1,16 @@
+Upstream-status: Inappropriate [OE specific] https://github.com/opencv/opencv/pull/10039#issuecomment-342539288
+
+Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
+diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt
+index 74bc0ef04169..4622fbf9a5f1 100644
+--- a/modules/java/CMakeLists.txt
++++ b/modules/java/CMakeLists.txt
+@@ -291,7 +291,7 @@ foreach(java_file ${step3_input_files})
+   endif()
+   if(__configure)
+     configure_file("${java_file}" "${java_src_dir}/${output_name}" @ONLY)
+-  elseif(NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
++  elseif(EXISTS "${java_file}" AND NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
+     configure_file("${java_file}" "${java_src_dir}/${output_name}" COPYONLY)
+   else()
+     add_custom_command(OUTPUT "${java_src_dir}/${output_name}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
new file mode 100644
index 0000000..c63dc14
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
@@ -0,0 +1,57 @@
+Upstream-status: Inappropriate [OE specific]
+
+Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
+diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake
+index b6ce1e7fd56b..e916ec0df2a6 100644
+--- a/cmake/OpenCVFindLibProtobuf.cmake
++++ b/cmake/OpenCVFindLibProtobuf.cmake
+@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON)
+ OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF)
+ 
+ if(PROTOBUF_UPDATE_FILES)
+-  if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE)
++  if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE)
+     find_package(Protobuf QUIET)
+   endif()
+-  if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE})
+-    message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})")
++  if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE})
++    message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})")
+   else()
+-    message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')")
++    message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')")
+   endif()
+ endif()
+ 
+-if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES))
++if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
+   find_package(Protobuf QUIET)
+ endif()
+ 
+-if(Protobuf_FOUND)
++if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
+   # nothing
+ else()
+   set(Protobuf_LIBRARIES libprotobuf)
+diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
+index 2a71568d1a44..c6329a742263 100644
+--- a/modules/dnn/CMakeLists.txt
++++ b/modules/dnn/CMakeLists.txt
+@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn)
+ endif()
+ 
+ include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake)
+-if(NOT Protobuf_FOUND)
++if(NOT PROTOBUF_FOUND)
+   ocv_module_disable(opencv_dnn)
+ endif()
+ 
+@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS})
+ ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS})
+ 
+ ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH})
+-ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES})
++ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES})
+ ocv_add_samples()
+ ocv_add_accuracy_tests()
+ ocv_add_perf_tests()
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
new file mode 100644
index 0000000..c433fc3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
@@ -0,0 +1,34 @@
+Upstream-status: Inappropriate [OE specific]
+
+Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
+diff --git a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt
+index 79b64b12160b..ba06a0a163e4 100644
+--- a/modules/dnn_modern/CMakeLists.txt
++++ b/modules/dnn_modern/CMakeLists.txt
+@@ -15,24 +15,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+ # MODULE REQUIREMENTS
+ # ----------------------------------------------------------------------------
+ 
+-set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn")
+-set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3")
+-ocv_download(FILENAME "v1.0.0a3.tar.gz"
+-               HASH "adb1c512e09ca2c7a6faef36f9c53e59"
+-               URL
+-                 "${OPENCV_TINY_DNN_URL}"
+-                 "$ENV{OPENCV_TINY_DNN_URL}"
+-                 "https://github.com/tiny-dnn/tiny-dnn/archive/"
+-               DESTINATION_DIR "${TINY_DNN_CPP_PATH}"
+-               STATUS TINY_DNN_DOWNLOAD_SUCCESS
+-               ID "tiny-dnn"
+-               UNPACK RELATIVE_URL)
+-
+-if(NOT TINY_DNN_DOWNLOAD_SUCCESS)
+-  message(STATUS "Failed to download tiny-dnn sources")
+-endif()
+-
+-find_package(TinyDNN QUIET)
++set(TINYDNN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/tinydnn/tiny-dnn-1.0.0a3")
++set(TinyDNN_FOUND TRUE)
+ 
+ include(CheckCXXCompilerFlag)
+ CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
index dd9e4ca..ca62de7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
@@ -15,6 +15,8 @@
 SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db"
 SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
 SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
+SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59"
+SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b"
 
 def ipp_filename(d):
     import re
@@ -41,9 +43,11 @@
     git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \
     git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
     git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
+    https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \
     file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
     file://fixpkgconfig.patch \
     file://uselocalxfeatures.patch;patchdir=../contrib/ \
+    file://tinydnn.patch;patchdir=../contrib/ \
     file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \
     file://0003-To-fix-errors-as-following.patch \
     file://0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch \
@@ -53,12 +57,17 @@
     file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \
     file://0002-Do-not-enable-asm-with-clang.patch \
     file://CVE-2017-14136.patch \
+    file://javagen.patch \
+    file://protobuf.patch \
+    file://already-exists.patch \
 "
 PV = "3.3+git${SRCPV}"
 
 S = "${WORKDIR}/git"
 
 do_unpack_extra() {
+    mkdir -p ${S}/3rdparty/tinydnn/
+    tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/
     tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
     cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
     cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
@@ -68,13 +77,13 @@
 EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
     -DWITH_1394=OFF \
     -DCMAKE_SKIP_RPATH=ON \
-    -DOPENCV_ICV_PACKAGE_DOWNLOADED=${IPP_MD5} \
-    -DOPENCV_ICV_PATH=${WORKDIR}/ippicv_lnx \
+    -DOPENCV_ICV_HASH=${IPP_MD5} \
+    -DIPPROOT=${WORKDIR}/ippicv_lnx \
     ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
     ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
     ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
-    ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
-    ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+    ${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+    ${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
 "
 EXTRA_OECMAKE_append_x86 = " -DX86=ON"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
index 72bf4ed..312fc85 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
@@ -1,9 +1,17 @@
-Use pkg-config instead of ${PYTHON}-config to find python
+From 855cc20bafa30597ae7a62f7672d42654b25cde0 Mon Sep 17 00:00:00 2001
+From: Herrie <github.com@herrie.org>
+Date: Mon, 24 Jul 2017 21:30:16 +0200
+Subject: [PATCH] Use pkg-config instead of ${PYTHON}-config to find python
 
-diff -uNr pidgin-2.10.12.orig/configure.ac pidgin-2.10.12/configure.ac
---- pidgin-2.10.12.orig/configure.ac	2016-01-01 00:19:40.000000000 +0100
-+++ pidgin-2.10.12/configure.ac	2016-05-05 16:55:13.258945925 +0200
-@@ -1585,20 +1585,15 @@
+---
+ configure.ac | 21 ++++++++-------------
+ 1 file changed, 8 insertions(+), 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d20a18e..c741829 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1567,20 +1567,15 @@ AM_CONDITIONAL(ENABLE_DBUS, test "x$enable_dbus" = "xyes")
  dnl Check for Python headers (currently useful only for libgnt)
  dnl (Thanks to XChat)
  if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
index 293ef70..9a24fbb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
@@ -1,8 +1,16 @@
-Index: pidgin-2.5.0/libpurple/protocols/irc/irc.h
-===================================================================
---- pidgin-2.5.0.orig/libpurple/protocols/irc/irc.h	2008-08-19 01:53:38.000000000 +0000
-+++ pidgin-2.5.0/libpurple/protocols/irc/irc.h	2008-08-27 11:15:58.000000000 +0000
-@@ -36,9 +36,9 @@
+From 43e9db656431ffb22b429d5fca4ce3b4af21bc9e Mon Sep 17 00:00:00 2001
+From: Herrie <github.com@herrie.org>
+Date: Mon, 24 Jul 2017 21:30:16 +0200
+
+---
+ libpurple/protocols/irc/irc.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libpurple/protocols/irc/irc.h b/libpurple/protocols/irc/irc.h
+index fde35c4..66e52dd 100644
+--- a/libpurple/protocols/irc/irc.h
++++ b/libpurple/protocols/irc/irc.h
+@@ -40,9 +40,9 @@
  
  #define IRC_DEFAULT_CHARSET "UTF-8"
  #define IRC_DEFAULT_AUTODETECT FALSE
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
index a77d64f..84dbcdc 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
@@ -1,6 +1,16 @@
---- /tmp/configure.ac	2007-05-08 17:29:02.000000000 +0200
-+++ pidgin-2.0.0/configure.ac	2007-05-08 17:30:30.325251000 +0200
-@@ -472,7 +472,7 @@
+From c3058f9eadaf5ff28ba776cfed54b609a93a1249 Mon Sep 17 00:00:00 2001
+From: Herrie <github.com@herrie.org>
+Date: Mon, 24 Jul 2017 21:30:16 +0200
+
+---
+ configure.ac | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b8acd2a..d20a18e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -642,7 +642,7 @@ if test "x$enable_consoleui" = "xyes"; then
  	if test "x$enable_consoleui" = "xyes"; then
  		dnl # Some distros put the headers in ncursesw/, some don't
  		found_ncurses_h=no
@@ -8,8 +18,8 @@
 +		for location in $ac_ncurses_includes $NCURSES_HEADERS 
  		do
  			f="$location/ncurses.h"
- 			AC_CHECK_HEADER($f,[
-@@ -1860,10 +1860,6 @@
+ 			orig_CFLAGS="$CFLAGS"
+@@ -2397,10 +2397,6 @@ if test "$kerberos" != "no" ; then
  			KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV"
  		fi
  		KRB4_LDFLAGS="-L${kerberos}/lib"
@@ -20,7 +30,7 @@
  	fi
  	AC_DEFINE(ZEPHYR_USES_KERBEROS, 1, [Define if kerberos should be used in Zephyr.])
  
-@@ -1896,10 +1892,6 @@
+@@ -2433,10 +2429,6 @@ if test "$zephyr" != "no" ; then
  		ZEPHYR_LDFLAGS="-L${zephyr}/lib"
  	elif test -d /usr/athena/include/zephyr ; then
  		ZEPHYR_CFLAGS="-I/usr/athena/include"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
similarity index 97%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
index ac65735..160b4d3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
@@ -12,9 +12,9 @@
 
 BBCLASSEXTEND = "native"
 
-SRCREV = "bfbe6a328744eaa84cb443b93ee20947aa0be91f"
+SRCREV = "af527ab21fca5ab2659285408aec9920ed7c7b17"
 SRC_URI = " \
-    git://github.com/pocoproject/poco.git;branch=master \
+    git://github.com/pocoproject/poco.git \
     file://run-ptest \
    "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
index e530a48..343b6db 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
@@ -17,8 +17,8 @@
            ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
            ${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
 
-SRC_URI[md5sum] = "636a8f2b9f6df9e7ced8ec0946961eaf"
-SRC_URI[sha256sum] = "e752b0d88a7aba54574152143e7bf76436a7ef51977c55d6bd9a48dccde3a7de"
+SRC_URI[md5sum] = "00f8989c804de84af0ba2ea629949980"
+SRC_URI[sha256sum] = "1096a18161f263cccdc6d8a2eb5548c41ff8fcf9a3609243f1b6296abdf72872"
 SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
 SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
 SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
new file mode 100644
index 0000000..18f5085
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
@@ -0,0 +1,38 @@
+From b6fc6c36d359a50503138cd87d7147faf6dff893 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 17 Mar 2018 20:52:10 +0100
+Subject: [PATCH] Do not overwrite all our build flags
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ cmake/modules/PopplerMacros.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake
+index ccb2790..0f392cb 100644
+--- a/cmake/modules/PopplerMacros.cmake
++++ b/cmake/modules/PopplerMacros.cmake
+@@ -125,14 +125,14 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+   set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
+ 
+   set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+-  set(CMAKE_CXX_FLAGS                "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE")
++  set(CMAKE_CXX_FLAGS                "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE ${_save_cxxflags}")
+   set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+   set(CMAKE_CXX_FLAGS_RELEASE        "-O2 -DNDEBUG ${_save_cxxflags}")
+   set(CMAKE_CXX_FLAGS_DEBUG          "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cxxflags}")
+   set(CMAKE_CXX_FLAGS_DEBUGFULL      "-g3 -fno-inline ${_save_cxxflags}")
+   set(CMAKE_CXX_FLAGS_PROFILE        "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}")
+   set(_save_cflags "${CMAKE_C_FLAGS}")
+-  set(CMAKE_C_FLAGS                  "-std=c99 -D_DEFAULT_SOURCE")
++  set(CMAKE_C_FLAGS                  "-std=c99 -D_DEFAULT_SOURCE ${_save_cflags}")
+   set(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -g ${_save_cflags}")
+   set(CMAKE_C_FLAGS_RELEASE          "-O2 -DNDEBUG ${_save_cflags}")
+   set(CMAKE_C_FLAGS_DEBUG            "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cflags}")
+-- 
+2.14.3
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch
deleted file mode 100644
index 4e80d24..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 91b6275f0e91c25beb040b4ef9484053ae305d86 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 26 May 2015 12:45:47 +0200
-Subject: [PATCH] add manadatory options to find qt4/qt5 moc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac | 55 ++++++++-----------------------------------------------
- 1 file changed, 8 insertions(+), 47 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c4cfc2c..8e961c7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -712,25 +712,10 @@ AC_SUBST(POPPLER_QT4_LIBS)
- AC_SUBST(POPPLER_QT4_TEST_LIBS)
- 
- if test x$enable_poppler_qt4 = xyes; then
--  AC_CHECK_TOOL(MOCQT4, moc)
--  AC_MSG_CHECKING([for Qt4 moc])
--  mocversion=`$MOCQT4 -v 2>&1`
--  mocversiongrep=`echo $mocversion | grep "Qt 4"`
--  if test x"$mocversiongrep" != x"$mocversion"; then
--    AC_MSG_RESULT([no])
--    # moc was not the qt4 one, try with moc-qt4
--    AC_CHECK_TOOL(MOCQT42, moc-qt4)
--    AC_MSG_CHECKING([for Qt4 moc-qt4])
--    mocversion=`$MOCQT42 -v 2>&1`
--    mocversiongrep=`echo $mocversion | grep "Qt 4"`
--    if test x"$mocversiongrep" != x"$mocversion"; then
--      # no valid moc found
--      enable_poppler_qt4=no;
--      MOCQT4="not found"
--    else
--      MOCQT4=$MOCQT42
--    fi
--  fi
-+  AC_ARG_WITH([moc-qt4],
-+              AS_HELP_STRING([--with-moc-qt4], [Set location of qt4 moc]),
-+              [MOCQT4=$withval]
-+  )
-   AC_SUBST(MOCQT4)
-   AC_MSG_RESULT([$MOCQT4])
- fi
-@@ -769,34 +754,10 @@ AC_SUBST(POPPLER_QT5_LIBS)
- AC_SUBST(POPPLER_QT5_TEST_LIBS)
- 
- if test x$enable_poppler_qt5 = xyes; then
--  AC_CHECK_TOOL(MOCQT5, moc)
--  AC_MSG_CHECKING([for Qt5 moc])
--  mocversion=`$MOCQT5 -v 2>&1`
--  mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
--  if test x"$mocversiongrep" != x"$mocversion"; then
--    AC_MSG_RESULT([no])
--    # moc was not the qt5 one, try with moc-qt5
--    AC_CHECK_TOOL(MOCQT52, moc-qt5)
--    AC_MSG_CHECKING([for Qt5 moc-qt5])
--    mocversion=`$MOCQT52 -v 2>&1`
--    mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"`
--    if test x"$mocversiongrep" != x"$mocversion"; then
--      AC_CHECK_TOOL(QTCHOOSER, qtchooser)
--      AC_MSG_CHECKING([for qtchooser])
--      qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2`
--      mocversion=`$qt5tooldir/moc -v 2>&1`
--      mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
--      if test x"$mocversiongrep" != x"$mocversion"; then
--        # no valid moc found
--        enable_poppler_qt5=no;
--        MOCQT5="not found"
--      else
--        MOCQT5=$qt5tooldir/moc
--      fi
--    else
--      MOCQT5=$MOCQT52
--    fi
--  fi
-+  AC_ARG_WITH([moc-qt5],
-+              AS_HELP_STRING([--with-moc-qt5], [Set location of qt5 moc]),
-+              [MOCQT5=$withval]
-+  )
-   AC_SUBST(MOCQT5)
-   AC_MSG_RESULT([$MOCQT5])
- fi
--- 
-2.5.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch
new file mode 100644
index 0000000..3c231fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch
@@ -0,0 +1,100 @@
+From 6287663e7db04df7e6dec58a1fc5bb5d510e8bde Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 9 Apr 2018 19:11:20 +0200
+Subject: [PATCH] CairoOutputDev.cc: fix build error when using fixedpoint
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashRound(SplashCoord)':
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1604:28: error: call of overloaded 'floor(FixedPoint)' is ambiguous
+|    return (int)floor(x + 0.5);
+|                             ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double)
+|  __MATHCALLX (floor,, (_Mdouble_ __x), (__const__));
+|  ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:260:3: note: candidate: constexpr float std::floor(float)
+|    floor(float __x)
+|    ^~~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:264:3: note: candidate: constexpr long double std::floor(long double)
+|    floor(long double __x)
+|    ^~~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashCeil(SplashCoord)':
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1608:21: error: call of overloaded 'ceil(SplashCoord&)' is ambiguous
+|    return (int)ceil(x);
+|                      ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:159:1: note: candidate: double ceil(double)
+|  __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__));
+|  ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:165:3: note: candidate: constexpr float std::ceil(float)
+|    ceil(float __x)
+|    ^~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:169:3: note: candidate: constexpr long double std::ceil(long double)
+|    ceil(long double __x)
+|    ^~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashFloor(SplashCoord)':
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1612:22: error: call of overloaded 'floor(SplashCoord&)' is ambiguous
+|    return (int)floor(x);
+|                       ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
+|                  from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double)
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ poppler/CairoOutputDev.cc | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc
+index 18124b8f..4c85ad65 100644
+--- a/poppler/CairoOutputDev.cc
++++ b/poppler/CairoOutputDev.cc
+@@ -1602,15 +1602,27 @@ void CairoOutputDev::endActualText(GfxState *state)
+ }
+ 
+ static inline int splashRound(SplashCoord x) {
++#if defined(USE_FIXEDPOINT)
++  return FixedPoint::floor(x + 0.5);
++#else
+   return (int)floor(x + 0.5);
++#endif
+ }
+ 
+ static inline int splashCeil(SplashCoord x) {
++#if defined(USE_FIXEDPOINT)
++  return FixedPoint::ceil(x);
++#else
+   return (int)ceil(x);
++#endif
+ }
+ 
+ static inline int splashFloor(SplashCoord x) {
++#if defined(USE_FIXEDPOINT)
++  return FixedPoint::floor(x);
++#else
+   return (int)floor(x);
++#endif
+ }
+ 
+ static
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-fix-gcc-6-math-ambiguous-errors.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-fix-gcc-6-math-ambiguous-errors.patch
deleted file mode 100644
index 406009f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-fix-gcc-6-math-ambiguous-errors.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- poppler-0.45.0/poppler/CairoOutputDev.cc.orig	2016-06-17 14:23:35.399083929 -0400
-+++ poppler-0.45.0/poppler/CairoOutputDev.cc	2016-06-17 14:36:53.351097825 -0400
-@@ -42,7 +42,7 @@
- #endif
- 
- #include <string.h>
--#include <math.h>
-+#include <cmath>
- #include <assert.h>
- #include <cairo.h>
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb
deleted file mode 100644
index 63b77aa..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = " \
-    http://poppler.freedesktop.org/${BP}.tar.xz \
-    file://0001-add-manadatory-options-to-find-qt4-qt5-moc.patch \
-    file://0002-fix-gcc-6-math-ambiguous-errors.patch \
-"
-SRC_URI[md5sum] = "bc5a191741604552c90d484103229374"
-SRC_URI[sha256sum] = "0ea37de71b7db78212ebc79df59f99b66409a29c2eac4d882dae9f2397fe44d8"
-
-DEPENDS = "fontconfig zlib cairo lcms"
-
-inherit autotools pkgconfig gtk-doc gobject-introspection
-
-PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
-PACKAGECONFIG[jpeg] = "--enable-dctdecoder=libjpeg,--enable-dctdecoder=none,jpeg"
-PACKAGECONFIG[png] = "--enable-libpng,--disable-libpng,libpng"
-PACKAGECONFIG[tiff] = "--enable-libtiff,--disable-libtiff,tiff"
-PACKAGECONFIG[curl] = "--enable-libcurl,--disable-libcurl,curl"
-PACKAGECONFIG[openjpeg] = "--enable-libopenjpeg=openjpeg2,--disable-libopenjpeg,openjpeg"
-PACKAGECONFIG[qt5] = "--enable-poppler-qt5 --with-moc-qt5=${STAGING_BINDIR_NATIVE}/qt5/moc,--disable-poppler-qt5,qtbase qttools-native"
-PACKAGECONFIG[qt4e] = "--enable-poppler-qt4 --with-moc-qt4=${STAGING_BINDIR_NATIVE}/moc4,--disable-poppler-qt4,qt4-embedded"
-PACKAGECONFIG[nss] = "--enable-libnss,--disable-libnss,nss"
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-
-EXTRA_OECONF = "\
-    --enable-xpdf-headers \
-    --disable-gtk-test \
-    --enable-zlib \
-"
-
-do_compile_prepend() {
-    export GIR_EXTRA_LIBS_PATH="${B}/poppler/.libs"
-}
-
-# Adjust library names when building for QT4e
-QT4E_PATCHES = "${@bb.utils.contains('PACKAGECONFIG', 'qt4e', 'file://fix-qt4e-library-dependencies.patch', '', d)}"
-SRC_URI_append = "${QT4E_PATCHES}"
-
-# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
-def get_poppler_fpu_setting(bb, d):
-    if d.getVar('TARGET_FPU') in [ 'soft' ]:
-        return "--enable-fixedpoint"
-    return ""
-
-EXTRA_OECONF += "${@get_poppler_fpu_setting(bb, d)}"
-
-PACKAGES =+ "libpoppler libpoppler-glib"
-FILES_libpoppler = "${libdir}/libpoppler.so.*"
-FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
-
-RDEPENDS_libpoppler = "poppler-data"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb
new file mode 100644
index 0000000..8acb356
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = " \
+    http://poppler.freedesktop.org/${BP}.tar.xz \
+    file://0001-Do-not-overwrite-all-our-build-flags.patch \
+    file://0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch \
+"
+SRC_URI[md5sum] = "66a54da4896b1408611699feda5c1821"
+SRC_URI[sha256sum] = "27cc8addafc791e1a26ce6acc2b490926ea73a4f89196dd8a7742cff7cf8a111"
+
+DEPENDS = "fontconfig zlib cairo lcms"
+
+inherit cmake pkgconfig gobject-introspection
+
+PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
+PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
+PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
+PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
+
+# surprise - did not expect this to work :)
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+EXTRA_OECMAKE += " \
+    -DENABLE_XPDF_HEADERS=ON \
+    -DBUILD_GTK_TESTS=OFF \
+    -DENABLE_ZLIB=ON \
+"
+
+do_configure_append() {
+    # poppler macro uses pkg-config to check for g-ir runtimes. Something
+    # makes them point to /usr/bin. Align them to sysroot - that's where the
+    # git-wrappers are:
+    sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
+}
+
+# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+def get_poppler_fpu_setting(bb, d):
+    if d.getVar('TARGET_FPU') in [ 'soft' ]:
+        return "-DUSE_FIXEDPOINT=ON"
+    return ""
+
+EXTRA_OECMAKE += "${@get_poppler_fpu_setting(bb, d)}"
+
+PACKAGES =+ "libpoppler libpoppler-glib"
+FILES_libpoppler = "${libdir}/libpoppler.so.*"
+FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
+
+RDEPENDS_libpoppler = "poppler-data"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch
deleted file mode 100644
index be23fd4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: postgresql-9.2.4/configure.in
-===================================================================
---- postgresql-9.2.4.orig/configure.in
-+++ postgresql-9.2.4/configure.in
-@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch un
- 
- AC_INIT([PostgreSQL], [9.4.2], [pgsql-bugs@postgresql.org])
- 
--m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
--Untested combinations of 'autoconf' and PostgreSQL versions are not
--recommended.  You can remove the check from 'configure.in' but it is then
--your responsibility whether the result works or not.])])
- AC_COPYRIGHT([Copyright (c) 1996-2014, PostgreSQL Global Development Group])
- AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
- AC_CONFIG_AUX_DIR(config)
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb
deleted file mode 100644
index eec099a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=81b69ddb31a8be66baafd14a90146ee2"
-
-SRC_URI += "\
-    file://remove.autoconf.version.check.patch \
-    file://not-check-libperl.patch \
-"
-
-do_compile_prepend_libc-musl() {
-    sed -i -e 's/\-lnsl//g' ${B}/src/Makefile.global
-}
-
-SRC_URI[md5sum] = "0aada0833a9208ae5fab966c73c39379"
-SRC_URI[sha256sum] = "12bfb3c7e8e45515ef921ad365e122682a5c4935dcc0032644433af2de31acc4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
index f808125..3f6cdc6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -4,11 +4,16 @@
 LICENSE="GPLv2"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
 
+PR = "r0"
+
+BPV = "0.8.1"
+PV = "${BPV}"
+SRCREV = "318bcae5249722873bf58b27afdd20473c7047cc"
+
 S = "${WORKDIR}/git"
 
 SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=git"
 
-SRCREV = "03405ab45884e4264dfa0371c032b2baaeeaaa98"
 
 inherit autotools
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
index 2ac9c0b..5d481f2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
@@ -4,9 +4,11 @@
 
 Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
 ---
---- a/lib/gprocess.c
-+++ b/lib/gprocess.c
-@@ -1421,6 +1421,18 @@
+Index: syslog-ng-3.8.1/lib/gprocess.c
+===================================================================
+--- syslog-ng-3.8.1.orig/lib/gprocess.c
++++ syslog-ng-3.8.1/lib/gprocess.c
+@@ -1432,6 +1432,18 @@ g_process_startup_ok(void)
  void
  g_process_finish(void)
  {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
index cc8d110..c172e4e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
@@ -10,13 +10,13 @@
  configure.ac | 17 +++++++++++------
  1 file changed, 11 insertions(+), 6 deletions(-)
 
-diff --git a/configure.ac b/configure.ac
-index 474e094..cedca54 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -120,6 +120,9 @@ AC_ARG_ENABLE(memtrace,
- AC_ARG_ENABLE(ssl,
-               [  --enable-ssl        Enable SSL support.],,enable_ssl="auto")
+Index: syslog-ng-3.8.1/configure.ac
+===================================================================
+--- syslog-ng-3.8.1.orig/configure.ac
++++ syslog-ng-3.8.1/configure.ac
+@@ -147,6 +147,9 @@ AC_ARG_ENABLE(gprof,
+ AC_ARG_ENABLE(memtrace,
+               [  --enable-memtrace   Enable alternative leak debugging code.])
  
 +AC_ARG_ENABLE(thread-tls,
 +              [  --enable-thread-tls        Enable Thread Transport Layer Security support.],,enable_thread_tls="no")
@@ -24,7 +24,7 @@
  AC_ARG_ENABLE(dynamic-linking,
                [  --enable-dynamic-linking        Link everything dynamically.],,enable_dynamic_linking="auto")
  
-@@ -381,12 +384,14 @@ dnl ***************************************************************************
+@@ -486,12 +489,14 @@ dnl ************************************
  dnl Is the __thread keyword available?
  dnl ***************************************************************************
  
@@ -45,6 +45,3 @@
  
  dnl ***************************************************************************
  dnl How to do static linking?
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
index 755803c..553f4a5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
@@ -10,11 +10,11 @@
  configure.ac |   27 +++++++++++++++++----------
  1 files changed, 17 insertions(+), 10 deletions(-)
 
-diff --git a/configure.ac b/configure.ac
-index b1e18b4..8e13025 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -73,6 +73,9 @@ AC_CONFIG_HEADERS(config.h)
+Index: syslog-ng-3.8.1/configure.ac
+===================================================================
+--- syslog-ng-3.8.1.orig/configure.ac
++++ syslog-ng-3.8.1/configure.ac
+@@ -104,6 +104,9 @@ AC_CONFIG_HEADERS(config.h)
  dnl ***************************************************************************
  dnl Arguments
  
@@ -24,7 +24,7 @@
  AC_ARG_WITH(libnet,
     [  --with-libnet=path      use path to libnet-config script],
     ,
-@@ -768,22 +771,26 @@ dnl ***************************************************************************
+@@ -893,22 +896,26 @@ dnl ************************************
  dnl libnet headers/libraries
  dnl ***************************************************************************
  AC_MSG_CHECKING(for LIBNET)
@@ -61,6 +61,3 @@
  if test "x$enable_spoof_source" = "xauto"; then
  	AC_MSG_CHECKING(whether to enable spoof source support)
          if test "x$LIBNET_LIBS" != "x"; then
--- 
-1.7.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
index faf9672..54ecce5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
@@ -10,11 +10,11 @@
  scl/Makefile.am |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
-diff --git a/scl/Makefile.am b/scl/Makefile.am
-index 57fad5d..2a29ca5 100644
---- a/scl/Makefile.am
-+++ b/scl/Makefile.am
-@@ -14,7 +14,7 @@ scl-install-data-local:
+Index: syslog-ng-3.8.1/scl/Makefile.am
+===================================================================
+--- syslog-ng-3.8.1.orig/scl/Makefile.am
++++ syslog-ng-3.8.1/scl/Makefile.am
+@@ -27,7 +27,7 @@ scl-install-data-local:
  		fi; \
  	done
  	$(mkinstalldirs) $(DESTDIR)/$(scldir)
@@ -23,6 +23,3 @@
  	chmod -R u+rwX $(DESTDIR)/$(scldir)
  
  scl-uninstall-local:
--- 
-1.7.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index f1bf9b0..771cdb1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -41,7 +41,7 @@
 "
 
 CONFIG_TLS = "--enable-thread-tls"
-CONFIG_TLS_arm = "${@base_conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}"
+CONFIG_TLS_arm = "${@oe.utils.conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}"
 
 PACKAGECONFIG ??= " \
     ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \
@@ -101,7 +101,7 @@
 
 # syslog initscript is handled explicitly because order of
 # update-rc.d and update-alternatives is important
-RDEPENDS_${PN} += " ${@base_conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}"
+RDEPENDS_${PN} += " ${@oe.utils.conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}"
 
 RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
index aa031fe..879b67b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
@@ -11,7 +11,9 @@
 
 S = "${WORKDIR}/git"
 
-inherit gitpkgv pkgconfig
+inherit distro_features_check gitpkgv pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 do_compile() {
     oe_runmake \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch
index 3cc0400..2823c54 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch
@@ -1,4 +1,4 @@
-From 32278297170ffb49116b5789e4a0588b99d02bd0 Mon Sep 17 00:00:00 2001
+From a6eab413f274376cf703a608e2866118291a6185 Mon Sep 17 00:00:00 2001
 From: Amarnath Valluri <amarnath.valluri@intel.com>
 Date: Thu, 9 Feb 2017 11:02:53 +0200
 Subject: [PATCH] Make udev rules directory configurable.
@@ -9,6 +9,7 @@
 Upstream-Status: Inappropriate[Embedded specific]
 
 Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
+
 ---
  configure.ac            | 14 +++-----------
  data/Makefile.am        |  1 -
@@ -49,11 +50,11 @@
  
          compiler:                   ${CC}
 diff --git a/data/Makefile.am b/data/Makefile.am
-index 411ea0f..4834960 100644
+index 08af5f4..9329186 100644
 --- a/data/Makefile.am
 +++ b/data/Makefile.am
 @@ -34,7 +34,6 @@ $(systemdservice_DATA): $(systemdservice_in_files) Makefile
- 	@sed -e "s|\@libexecdir\@|$(prefix)/lib/udisks|" $< > $@
+ 	@sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
  endif
  
 -udevrulesdir = $(slashlibdir)/udev/rules.d
@@ -86,6 +87,3 @@
  
  umount_udisks_SOURCES = umount-udisks.c
  umount_udisks_LDADD = $(DBUS_GLIB_LIBS) $(POLKIT_DBUS_LIBS)
--- 
-2.7.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
index 520655a..8b4f441 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
@@ -1,4 +1,4 @@
-From 9829152b12a8924d2e091a00133ed1a3a7ba75c0 Mon Sep 17 00:00:00 2001
+From 054ad6a06cfac7c3d172d53cd901204079a53ec3 Mon Sep 17 00:00:00 2001
 From: Alexandre Rostovtsev <tetromino@gentoo.org>
 Date: Fri, 29 May 2015 21:09:39 -0400
 Subject: [PATCH] fix build with newer glibc versions
@@ -8,6 +8,7 @@
 Upstream-Status: Applied [1]
 
 [1] http://cgit.freedesktop.org/udisks/commit/?h=udisks1&id=9829152b12a8924d2e091a00133ed1a3a7ba75c0
+
 ---
  src/helpers/job-drive-detach.c | 1 +
  1 file changed, 1 insertion(+)
@@ -24,6 +25,3 @@
  #include <stdio.h>
  #include <string.h>
  #include <errno.h>
--- 
-2.1.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
index 6131701..a890954 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
@@ -1,12 +1,29 @@
-From 1b70b7a798eeeec554ab5aa9fcfff96a22e91774 Mon Sep 17 00:00:00 2001
+From e8b3fbfa3d6a11eee25db2dc0f31f439aaf0b65a Mon Sep 17 00:00:00 2001
 From: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
 Date: Thu, 26 May 2011 17:30:04 -0300
 Subject: [PATCH] Allow disabling atasmart, lvm2 and devicemapper support.
 
 https://bugs.freedesktop.org/show_bug.cgi?id=37647
 
+---
+ configure.ac            | 53 +++++++++++++++++++++++++++++++++++++++----------
+ src/adapter-private.h   |  1 -
+ src/adapter.c           |  1 -
+ src/daemon.c            |  4 ++++
+ src/device-private.c    |  2 +-
+ src/device-private.h    |  5 ++---
+ src/device.c            | 23 +++++++++++++++++----
+ src/expander-private.h  |  1 -
+ src/expander.c          |  1 -
+ src/helpers/Makefile.am | 20 +++++++++++++------
+ src/helpers/partutil.c  |  3 ++-
+ src/port-private.h      |  1 -
+ src/probers/Makefile.am |  8 ++++++--
+ tools/udisks.c          | 10 ++++++++--
+ 14 files changed, 99 insertions(+), 34 deletions(-)
+
 diff --git a/configure.ac b/configure.ac
-index 62cc35d..b664135 100644
+index 9454423..8c4e4c2 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -155,13 +155,33 @@ PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.97])
@@ -49,8 +66,8 @@
 +AM_CONDITIONAL(HAVE_DEVMAPPER, [test "$have_devmapper" = "yes"])
  
  have_lvm2=no
- AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--disable-lvm2], [disable LVM2 support]))
-@@ -185,9 +205,19 @@ if test "x$enable_dmmp" != "xno"; then
+ AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--enable-lvm2], [enable LVM2 support]))
+@@ -185,9 +205,19 @@ if test "x$enable_dmmp" = "xyes"; then
  fi
  AM_CONDITIONAL(HAVE_DMMP, [test "$have_dmmp" = "yes"])
  
@@ -73,7 +90,7 @@
  
  PKG_CHECK_MODULES(LIBUDEV, [libudev >= 143])
  AC_SUBST(LIBUDEV_CFLAGS)
-@@ -267,9 +297,12 @@ echo "
+@@ -278,9 +308,12 @@ echo "
          cppflags:                   ${CPPFLAGS}
          xsltproc:                   ${XSLTPROC}
  
@@ -99,7 +116,7 @@
  #include "types.h"
  
 diff --git a/src/adapter.c b/src/adapter.c
-index b85a0ef..802420b 100644
+index 65e05b0..45db8c8 100644
 --- a/src/adapter.c
 +++ b/src/adapter.c
 @@ -30,7 +30,6 @@
@@ -111,10 +128,10 @@
  #include "daemon.h"
  #include "adapter.h"
 diff --git a/src/daemon.c b/src/daemon.c
-index 6072502..d043cb0 100644
+index fafcf9a..14e952f 100644
 --- a/src/daemon.c
 +++ b/src/daemon.c
-@@ -1745,6 +1745,7 @@ mdstat_changed_event (GIOChannel *channel,
+@@ -1748,6 +1748,7 @@ mdstat_changed_event (GIOChannel *channel,
    return TRUE;
  }
  
@@ -122,7 +139,7 @@
  static gboolean
  refresh_ata_smart_data (Daemon *daemon)
  {
-@@ -1773,6 +1774,7 @@ refresh_ata_smart_data (Daemon *daemon)
+@@ -1776,6 +1777,7 @@ refresh_ata_smart_data (Daemon *daemon)
  
    return FALSE;
  }
@@ -130,7 +147,7 @@
  
  static gboolean
  register_disks_daemon (Daemon *daemon)
-@@ -1984,12 +1986,14 @@ daemon_new (void)
+@@ -1987,12 +1989,14 @@ daemon_new (void)
    mount_file_clean_stale (l);
    g_list_free (l);
  
@@ -146,10 +163,10 @@
    PROFILE ("daemon_new(): end");
    return daemon;
 diff --git a/src/device-private.c b/src/device-private.c
-index 22a0d35..fb96525 100644
+index 45418ce..fb1d959 100644
 --- a/src/device-private.c
 +++ b/src/device-private.c
-@@ -1378,7 +1378,7 @@ device_set_drive_ata_smart_time_collected (Device *device,
+@@ -1390,7 +1390,7 @@ device_set_drive_ata_smart_time_collected (Device *device,
  
  void
  device_set_drive_ata_smart_status (Device *device,
@@ -159,7 +176,7 @@
    if (G_UNLIKELY (device->priv->drive_ata_smart_status != value))
      {
 diff --git a/src/device-private.h b/src/device-private.h
-index a6db7f2..71473a6 100644
+index 32a9bd0..8c57c13 100644
 --- a/src/device-private.h
 +++ b/src/device-private.h
 @@ -23,7 +23,6 @@
@@ -170,7 +187,7 @@
  
  #include "types.h"
  
-@@ -224,7 +223,7 @@ struct DevicePrivate
+@@ -228,7 +227,7 @@ struct DevicePrivate
  
    gboolean drive_ata_smart_is_available;
    guint64 drive_ata_smart_time_collected;
@@ -179,7 +196,7 @@
    void *drive_ata_smart_blob;
    gsize drive_ata_smart_blob_size;
  
-@@ -391,7 +390,7 @@ void device_set_holders_objpath (Device *device, GStrv value);
+@@ -396,7 +395,7 @@ void device_set_holders_objpath (Device *device, GStrv value);
  
  void device_set_drive_ata_smart_is_available (Device *device, gboolean value);
  void device_set_drive_ata_smart_time_collected (Device *device, guint64 value);
@@ -189,7 +206,7 @@
  
  G_END_DECLS
 diff --git a/src/device.c b/src/device.c
-index 6a34940..7a5a4a9 100644
+index 2ae7f38..d73f9d6 100644
 --- a/src/device.c
 +++ b/src/device.c
 @@ -50,7 +50,9 @@
@@ -202,7 +219,7 @@
  
  #include "daemon.h"
  #include "device.h"
-@@ -659,10 +661,14 @@ get_property (GObject *object,
+@@ -664,10 +666,14 @@ get_property (GObject *object,
      case PROP_DRIVE_ATA_SMART_STATUS:
        {
          const gchar *status;
@@ -218,7 +235,7 @@
          g_value_set_string (value, status);
        }
        break;
-@@ -5114,6 +5120,7 @@ device_new (Daemon *daemon,
+@@ -5144,6 +5150,7 @@ device_new (Daemon *daemon,
        goto out;
      }
  
@@ -226,7 +243,7 @@
    /* if just added, update the smart data if applicable */
    if (device->priv->drive_ata_smart_is_available)
      {
-@@ -5121,6 +5128,7 @@ device_new (Daemon *daemon,
+@@ -5151,6 +5158,7 @@ device_new (Daemon *daemon,
        gchar *ata_smart_refresh_data_options[] = { NULL };
        device_drive_ata_smart_refresh_data (device, ata_smart_refresh_data_options, NULL);
      }
@@ -234,7 +251,7 @@
  
    PROFILE ("device_new(native_path=%s): end", native_path);
   out:
-@@ -9794,16 +9802,18 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
+@@ -9840,16 +9848,18 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
                                             const char *stdout,
                                             gpointer user_data)
  {
@@ -256,7 +273,7 @@
    blob = NULL;
  
    if (job_was_cancelled || stdout == NULL)
-@@ -9907,6 +9917,11 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
+@@ -9953,6 +9963,11 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
    g_free (blob);
    if (d != NULL)
      sk_disk_free (d);
@@ -430,7 +447,7 @@
  udisks_probe_sas_expander_SOURCES = udisks-probe-sas-expander.c
  udisks_probe_sas_expander_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
 diff --git a/tools/udisks.c b/tools/udisks.c
-index 6fbd6a6..e0c4fbb 100644
+index 97e80d7..d30159b 100644
 --- a/tools/udisks.c
 +++ b/tools/udisks.c
 @@ -43,7 +43,9 @@
@@ -443,7 +460,7 @@
  
  #include "udisks-daemon-glue.h"
  #include "udisks-device-glue.h"
-@@ -979,6 +981,7 @@ end_highlight (void)
+@@ -983,6 +985,7 @@ end_highlight (void)
      g_print ("\x1B[0m");
  }
  
@@ -451,7 +468,7 @@
  static const gchar *
  ata_smart_status_to_desc (const gchar *status,
                            gboolean *out_highlight)
-@@ -1159,6 +1162,7 @@ print_ata_smart_attr (SkDisk *d,
+@@ -1163,6 +1166,7 @@ print_ata_smart_attr (SkDisk *d,
    g_free (threshold_str);
    g_free (pretty);
  }
@@ -459,7 +476,7 @@
  
  static void
  do_show_info (const char *object_path)
-@@ -1440,7 +1444,7 @@ do_show_info (const char *object_path)
+@@ -1445,7 +1449,7 @@ do_show_info (const char *object_path)
          g_print ("    if speed:                  %" G_GINT64_FORMAT " bits/s\n", props->drive_connection_speed);
  
        /* ------------------------------------------------------------------------------------------------- */
@@ -468,7 +485,7 @@
        if (!props->drive_ata_smart_is_available)
          {
            g_print ("    ATA SMART:                 not available\n");
-@@ -1493,7 +1497,9 @@ do_show_info (const char *object_path)
+@@ -1498,7 +1502,9 @@ do_show_info (const char *object_path)
              }
  
          }
@@ -479,6 +496,3 @@
        /* ------------------------------------------------------------------------------------------------- */
  
      }
--- 
-1.7.5.rc3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
index d5e84d3..d4efa93 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
@@ -1,4 +1,4 @@
-From 7d61ad048856ee239870b917d6933e3ad63f0789 Mon Sep 17 00:00:00 2001
+From a4f6aa5be37ae6e2194c9ded2ea8c1da330f5694 Mon Sep 17 00:00:00 2001
 From: David King <amigadave@amigadave.com>
 Date: Thu, 2 Jul 2015 13:49:22 +0100
 Subject: [PATCH] Fix systemd service file
@@ -12,6 +12,7 @@
 [1] http://pkgs.fedoraproject.org/cgit/udisks.git/tree/udisks-1.0.5-fix-service-file.patch
 
 Upstream-Status: Pending
+
 ---
  data/Makefile.am | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
@@ -29,5 +30,3 @@
  endif
  
  udevrulesdir = $(slashlibdir)/udev/rules.d
--- 
-2.4.5
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
new file mode 100644
index 0000000..1cbd877
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
@@ -0,0 +1,35 @@
+From 7fdd4acdf6daf95c5cc74e968f4710513c8ddaea Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 23 Mar 2018 18:33:52 +0100
+Subject: [PATCH] data: fix out of tree build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| sed: can't read udisks2.service.in: No such file or directory
+
+Upstream-Status: Submitted [1]
+
+[1] https://github.com/storaged-project/udisks/pull/510
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ data/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index ddf9e3d6..b38928c8 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -22,7 +22,7 @@ systemdservicedir       = $(systemdsystemunitdir)
+ systemdservice_DATA     = $(systemdservice_in_files:.service.in=.service)
+ 
+ $(systemdservice_DATA): udisks2.service.in Makefile
+-	@sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" udisks2.service.in > udisks2.service
++	@sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" $(srcdir)/udisks2.service.in > udisks2.service
+ endif
+ 
+ udevrulesdir = $(udevdir)/rules.d
+-- 
+2.14.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb
deleted file mode 100644
index a3efc51..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
-
-DEPENDS = "acl libatasmart polkit libgudev dbus-glib glib-2.0 intltool-native gnome-common-native libxslt-native"
-DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-RDEPENDS_${PN} = "acl"
-
-SRC_URI = "http://udisks.freedesktop.org/releases/udisks-${PV}.tar.bz2 \
-           file://non-gnu-libc.patch \
-"
-SRC_URI[md5sum] = "501d11c243bd8c6c00650474cd2afaab"
-SRC_URI[sha256sum] = "da416914812a77e5f4d82b81deb8c25799fd3228d27d52f7bf89a501b1857dda"
-
-CVE_PRODUCT = "udisks"
-
-inherit autotools systemd gtk-doc gobject-introspection
-
-S = "${WORKDIR}/udisks-${PV}"
-
-EXTRA_OECONF = "--disable-man --disable-gtk-doc"
-
-FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \
-                ${datadir}/dbus-1/ \
-                ${datadir}/polkit-1 \
-                ${nonarch_base_libdir}/udev/* \
-                ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
-"
-
-PACKAGES =+ "${PN}-libs"
-
-FILES_${PN} += "${datadir}/bash-completion"
-FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
-
-FILES_${PN}-dbg += "${exec_prefix}${nonarch_base_libdir}/udisks2/.debug"
-
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
new file mode 100644
index 0000000..4d22afd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
@@ -0,0 +1,49 @@
+SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
+
+DEPENDS = " \
+    acl \
+    libatasmart \
+    polkit \
+    libgudev \
+    dbus-glib \
+    glib-2.0 \
+    libblockdev \
+    intltool-native \
+    gnome-common-native \
+    libxslt-native \
+"
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+RDEPENDS_${PN} = "acl"
+
+SRC_URI = " \
+    git://github.com/storaged-project/udisks.git \
+    file://0001-data-fix-out-of-tree-build.patch \
+    file://non-gnu-libc.patch \
+"
+SRCREV = "b6471f2e99f6aa1133af0de658f1fa05c748932c"
+S = "${WORKDIR}/git"
+
+CVE_PRODUCT = "udisks"
+
+inherit autotools systemd gtk-doc gobject-introspection
+
+EXTRA_OECONF = "--disable-man --disable-gtk-doc"
+
+FILES_${PN} += " \
+    ${datadir}/dbus-1/ \
+    ${datadir}/polkit-1 \
+    ${datadir}/bash-completion \
+    ${libdir}/polkit-1/extensions/*.so \
+    ${nonarch_base_libdir}/udev/* \
+    ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
+    ${systemd_system_unitdir} \
+"
+
+PACKAGES =+ "${PN}-libs"
+FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch
index 4b12494..391b0e6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch
@@ -1,9 +1,10 @@
-From 24fd52cc45f7b5ff45afe072f5fbe66485df8c8e Mon Sep 17 00:00:00 2001
+From 82f44f53b9a9766c2ec816f237506beb953eb332 Mon Sep 17 00:00:00 2001
 From: Andreas Schwab <schwab@suse.de>
 Date: Wed, 29 Oct 2014 14:18:28 +0100
 Subject: [PATCH] Add support for aarch64
 
 * include/private/gcconfig.h: Add support for aarch64.
+
 ---
  sigscheme/libgcroots/include/private/gcconfig.h | 37 +++++++++++++++++++++++++
  1 file changed, 37 insertions(+)
@@ -77,6 +78,3 @@
  # ifdef ARM32
  #   define CPP_WORDSZ 32
  #   define MACH_TYPE "ARM32"
--- 
-2.13.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
index df82b07..0c8f02d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
@@ -1,9 +1,10 @@
-From 2918196ba782dfa4401bdca917ad4de1910505e0 Mon Sep 17 00:00:00 2001
+From 08b5e51224ed95b1e76e99873b5f9f59840b0a74 Mon Sep 17 00:00:00 2001
 From: Lei Maohui <leimaohui@cn.fujitsu.com>
 Date: Fri, 21 Aug 2015 15:58:42 +0900
 Subject: [PATCH] fix bug for cross compile
 
 Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+
 ---
  configure.ac | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
@@ -23,6 +24,3 @@
      AC_CHECK_LIB(curses, tgetent, LIBEDIT_LIBS="-lcurses",
          [AC_CHECK_LIB(ncurses, tgetent, LIBEDIT_LIBS="-lncurses",
              AC_MSG_WARN("libedit needs libcurses or libncurses. disabled...")
--- 
-1.8.4.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
index 8569bf3..3078af0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
@@ -1,11 +1,21 @@
---- uim-1.1.0/scm/Makefile.am~	2006-06-09 10:46:12.000000000 +0900
-+++ uim-1.1.0/scm/Makefile.am	2006-06-19 23:00:15.620000000 +0900
-@@ -58,7 +58,7 @@
-   module_names += "scim"
+From d61495d3fb039842b82df44184c67eb3c1256136 Mon Sep 17 00:00:00 2001
+From: Bian Naimeng <biannm@cn.fujitsu.com>
+Date: Fri, 26 Jun 2015 12:57:48 +0900
+
+---
+ scm/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scm/Makefile.am b/scm/Makefile.am
+index 14d9393..e8a1083 100644
+--- a/scm/Makefile.am
++++ b/scm/Makefile.am
+@@ -119,7 +119,7 @@ if EXPAT
+   module_names += "yahoo-jp"
  endif
  
 -UIM_MODULE_MANAGER = $(top_builddir)/uim/uim-module-manager
 +UIM_MODULE_MANAGER = uim-module-manager
  UIM_MODULE_MANAGER_ENV = \
+         LIBUIM_SYSTEM_SCM_FILES=$(abs_top_srcdir)/sigscheme/lib \
          LIBUIM_SCM_FILES=$(abs_srcdir) \
-         LIBUIM_PLUGIN_LIB_DIR=$(abs_top_builddir)/uim/.libs
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
index 271718e..af28895 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
@@ -17,11 +17,15 @@
 DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts"
 
 RDEPENDS_uim = "libuim0 libedit"
-RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0 glibc-utils glibc-gconv-euc-jp"
+RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0"
+RDEPENDS_uim-anthy_append_libc-glibc = " glibc-utils glibc-gconv-euc-jp"
 
 LEAD_SONAME = "libuim.so.1"
 
-inherit autotools pkgconfig gettext qemu gtk-immodules-cache
+inherit distro_features_check autotools pkgconfig gettext qemu gtk-immodules-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
 GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3"
 
 EXTRA_OECONF += "--disable-emacs \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch
index 69d26ad..2499cff 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch
@@ -13,22 +13,22 @@
  2 files changed, 3 deletions(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index e881cca..1321802 100644
+index 4628401..e8989bf 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -5,7 +5,6 @@ SUBDIRS = \
+@@ -11,7 +11,6 @@ SUBDIRS = \
  	log \
  	lst \
  	ini \
--    libltdl \
+-	libltdl \
  	odbcinst \
  	DriverManager \
  	exe \
 diff --git a/configure.ac b/configure.ac
-index 218502f..d50b7af 100644
+index e4bcdaf..58aa5c5 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -136,9 +136,7 @@ dnl AC_CONFIG_MACRO_DIR([libltdl/m4])
+@@ -144,9 +144,7 @@ dnl AC_CONFIG_MACRO_DIR([libltdl/m4])
  dnl LT_CONFIG_LTDL_DIR([libltdl])
  dnl LTDL_INIT
  
@@ -39,5 +39,5 @@
  dnl Substitute INCLTDL and LIBLTDL in the Makefiles
  AC_SUBST(LTDLINCL)
 -- 
-2.8.1
+2.12.3
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
index 6f57f37..62d9db8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
@@ -11,8 +11,8 @@
 SRC_URI = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-${PV}.tar.gz \
            file://do-not-use-libltdl-source-directory.patch \
 "
-SRC_URI[md5sum] = "bd25d261ca1808c947cb687e2034be81"
-SRC_URI[sha256sum] = "2e1509a96bb18d248bf08ead0d74804957304ff7c6f8b2e5965309c632421e39"
+SRC_URI[md5sum] = "a8629fd2953b04b4639d0a9d8a5cf9d1"
+SRC_URI[sha256sum] = "88b637f647c052ecc3861a3baa275c3b503b193b6a49ff8c28b2568656d14d69"
 
 inherit autotools-brokensep
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
index 9314534..973fbe7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
@@ -5,8 +5,8 @@
 DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit"
 
 SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "ec57b4b7bf0af568f9a7a5603c921d97"
-SRC_URI[sha256sum] = "78605664d027c788f6ab63c50950be6e86c6ba5d030c4cf35a6664337d87f3b2"
+SRC_URI[md5sum] = "236bb439d9ff1151450b3d8582399532"
+SRC_URI[sha256sum] = "24bcc2f6ab25a2533bac70b587bcb019e591293076920f5b5e04bdedc140a401"
 
 inherit autotools pkgconfig gettext gobject-introspection systemd
 
@@ -32,8 +32,3 @@
                 ${datadir}/polkit-1/ \
                 ${base_libdir}/udev/* \
 "
-
-FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
-
-
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
new file mode 100644
index 0000000..b4be853
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
@@ -0,0 +1,14 @@
+SUMMARY = "RFC 3986 compliant URI parsing library"
+HOMEPAGE = "https://uriparser.github.io"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=72b0f9c74ae96eeab8cf1bf3efe08da2"
+
+SRC_URI := "${SOURCEFORGE_MIRROR}/project/uriparser/Sources/${PV}/uriparser-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-test --disable-doc"
+
+SRC_URI[md5sum] = "9aabdc3611546f553f4af372167de6d6"
+SRC_URI[sha256sum] = "ce7ccda4136974889231e8426a785e7578e66a6283009cfd13f1b24a5e657b23"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb
index ff439f3..ac0df8b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb
@@ -8,7 +8,9 @@
 SRC_URI[md5sum] = "38ad5c9d70e06227a00361bdc2b1e568"
 SRC_URI[sha256sum] = "31c0be280d49a99ec3dc0be3325bef320d9c04b50714ef0ce1e36a614d687633"
 
-inherit pkgconfig
+inherit pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "usb_modeswitch@.service"
 
 EXTRA_OEMAKE = "TCL=${bindir}/tclsh"
 
@@ -18,4 +20,8 @@
 
 do_install() {
     oe_runmake DESTDIR=${D} install
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}/${systemd_unitdir}/system
+        install -m 644 ${S}/usb_modeswitch@.service ${D}/${systemd_unitdir}/system
+    fi
 }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash/run-ptest
new file mode 100755
index 0000000..14071a6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cd tests
+for i in test*[0-9] ; do
+    if ./${i} | cmp -s "${i}.ans" - ; then
+        echo "PASS: ${i}"
+    else
+        echo "FAIL: ${i}"
+    fi
+done
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_1.9.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_1.9.7.bb
deleted file mode 100644
index 82a9f2a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_1.9.7.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Hash table for C structures"
-SECTION = "base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=564f9c44927f6247dc810bf557e2b240"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2"
-
-SRC_URI[md5sum] = "1f14bbee7ee73ed0ceb3549f8cf378b4"
-SRC_URI[sha256sum] = "956f5c99798349c413275fe4c9ff128d72e280655dadbe4365f8e9fbda91393f"
-
-do_install () {
-    install -dm755 ${D}${includedir}
-    install -m 0644 ${S}/src/*.h ${D}${includedir}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb
new file mode 100644
index 0000000..ccdd13b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Hash table and linked list for C structures"
+DESCRIPTION = " uthash-dev provides a hash table implementation using C preprocessor macros.\n\
+ This package also includes:\n\
+  * utlist.h provides linked list macros for C structures\n\
+  * utarray.h implements dynamic arrays using macros\n\
+  * utstring.h implements a basic dynamic string\n\
+"
+HOMEPAGE = "https://troydhanson.github.io/uthash/"
+SECTION = "base"
+LICENSE = "BSD-1-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5cc1f1e4c71f19f580458586756c02b4"
+
+SRC_URI = "\
+    https://github.com/troydhanson/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+    file://run-ptest \
+"
+UPSTREAM_CHECK_URI = "https://github.com/troydhanson/${BPN}/releases"
+
+SRC_URI[md5sum] = "d08632a58674274c9cd87e2930f5696a"
+SRC_URI[sha256sum] = "34a31d51dd7a839819cecd6f46049b4ffe031d7f3147d9a042f5504fdb1348d1"
+
+inherit ptest
+
+do_compile[noexec] = "1"
+
+do_compile_ptest() {
+    oe_runmake -C tests tests_only TEST_TARGET=
+}
+
+do_install () {
+    install -dm755 ${D}${includedir}
+    install -m0644 src/*.h ${D}${includedir}
+}
+
+do_install_ptest() {
+    install -dm755 ${D}${PTEST_PATH}/tests
+    install -m0755 tests/test*[0-9] ${D}${PTEST_PATH}/tests
+    install -m0644 tests/test*[0-9].ans ${D}${PTEST_PATH}/tests
+    install -m0644 tests/test*[0-9].dat ${D}${PTEST_PATH}/tests
+}
+
+# The main package is empty and non-existent, so -dev
+# should not depend on it...
+RDEPENDS_${PN}-dev = ""
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
similarity index 71%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
index fdefe03..e00db4d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
@@ -12,22 +12,24 @@
 VBOX_NAME = "VirtualBox-${PV}"
 
 SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
-           file://Makefile.utils \
+    file://Makefile.utils \
 "
-SRC_URI[md5sum] = "d3aec8190c649d7e0d92ba374779dfe3"
-SRC_URI[sha256sum] = "b5715035e681a11ef1475f83f9503d34a00f0276b89c572eebec363dda80c8a9"
+
+SRC_URI[md5sum] = "e731ea9c5c31096ec4c2a3bfba26665c"
+SRC_URI[sha256sum] = "ee2759d47b0b4ac81b8b671c9485c87fb2db12c097b3e7e69b94c1291a8084e8"
 
 S = "${WORKDIR}/vbox_module"
 
 export BUILD_TARGET_ARCH="${ARCH}"
 export BUILD_TARGET_ARCH_x86-64="amd64"
-export KERN_DIR="${STAGING_KERNEL_DIR}"
+
+EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'"
 
 addtask export_sources before do_patch after do_unpack
 
 do_export_sources() {
     mkdir -p "${S}"
-    ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules ${T}/vbox_modules.tar.gz
+    ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
     tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
 
     # add a mount utility to use shared folder from VBox Addition Source Code
@@ -38,6 +40,13 @@
 
 }
 
+do_configure_prepend() {
+    # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set.  Stop.
+    # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set.  Stop.
+    mkdir -p ${WORKDIR}/${KERNEL_VERSION}
+    ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
+}
+
 # compile and install mount utility
 do_compile_append() {
     oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
new file mode 100644
index 0000000..937b9ba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
@@ -0,0 +1,70 @@
+From 9c11f80339372b7aa2f43153d574f2b5abb79708 Mon Sep 17 00:00:00 2001
+From: Li Zhou <li.zhou@windriver.com>
+Date: Sun, 17 Dec 2017 23:09:35 -0800
+Subject: [PATCH] vim: patch 8.0.1263: others can read the swap file if a user
+ is careless
+
+Problem:    Others can read the swap file if a user is careless with his
+            primary group.
+Solution:   If the group permission allows for reading but the world
+            permissions doesn't, make sure the group is right.
+
+Upstream-Status: Backport
+CVE: CVE-2017-17087
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+---
+ src/fileio.c  | 24 +++++++++++++++++++++++-
+ src/version.c |  2 ++
+ 2 files changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/src/fileio.c b/src/fileio.c
+index f54fb8465..2c7740af9 100644
+--- a/src/fileio.c
++++ b/src/fileio.c
+@@ -716,7 +716,29 @@ readfile(
+ 	/* Set swap file protection bits after creating it. */
+ 	if (swap_mode > 0 && curbuf->b_ml.ml_mfp != NULL
+ 			  && curbuf->b_ml.ml_mfp->mf_fname != NULL)
+-	    (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode);
++	{
++	    char_u *swap_fname = curbuf->b_ml.ml_mfp->mf_fname;
++
++	    /*
++	     * If the group-read bit is set but not the world-read bit, then
++	     * the group must be equal to the group of the original file.  If
++	     * we can't make that happen then reset the group-read bit.  This
++	     * avoids making the swap file readable to more users when the
++	     * primary group of the user is too permissive.
++	     */
++	    if ((swap_mode & 044) == 040)
++	    {
++		stat_T	swap_st;
++
++		if (mch_stat((char *)swap_fname, &swap_st) >= 0
++			&& st.st_gid != swap_st.st_gid
++			&& fchown(curbuf->b_ml.ml_mfp->mf_fd, -1, st.st_gid)
++									 == -1)
++		    swap_mode &= 0600;
++	    }
++
++	    (void)mch_setperm(swap_fname, (long)swap_mode);
++	}
+ #endif
+     }
+ 
+diff --git a/src/version.c b/src/version.c
+index a5cb078f0..5c0df475f 100644
+--- a/src/version.c
++++ b/src/version.c
+@@ -770,6 +770,8 @@ static char *(features[]) =
+ static int included_patches[] =
+ {   /* Add new patch number below this line */
+ /**/
++    1263,
++/**/
+     983,
+ /**/
+     982,
+-- 
+2.11.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
index 407ce5e..44c868c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
@@ -9,6 +9,7 @@
 SRC_URI = "git://github.com/vim/vim.git \
            file://disable_acl_header_check.patch;patchdir=.. \
            file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
+           file://CVE-2017-17087.patch;patchdir=.. \
 "
 SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228"
 
@@ -16,8 +17,9 @@
 
 VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
 
-inherit autotools update-alternatives
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
+
+CLEANBROKEN = "1"
 
 # vim configure.in contains functions which got 'dropped' by autotools.bbclass
 do_configure () {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
new file mode 100644
index 0000000..2a9ea74
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
@@ -0,0 +1,31 @@
+From 1dd07113f2a7489444a8990a95be42e035f8e9df Mon Sep 17 00:00:00 2001
+From: Kurt Roeckx <kroeckx@debian.org>
+Date: Tue, 1 Nov 2016 12:57:35 +0100
+Subject: [PATCH] Fix issue #599
+Forwarded: https://github.com/zaphoyd/websocketpp/pull/600
+
+---
+ websocketpp/transport/asio/security/tls.hpp | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
+index 7b32db8..a8aafec 100644
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -355,13 +355,9 @@ protected:
+     template <typename ErrorCodeType>
+     lib::error_code translate_ec(ErrorCodeType ec) {
+         if (ec.category() == lib::asio::error::get_ssl_category()) {
+-            if (ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ) {
+-                return make_error_code(transport::error::tls_short_read);
+-            } else {
+                 // We know it is a TLS related error, but otherwise don't know
+                 // more. Pass through as TLS generic.
+                 return make_error_code(transport::error::tls_error);
+-            }
+         } else {
+             // We don't know any more information about this error so pass
+             // through
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
new file mode 100644
index 0000000..530c960
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
@@ -0,0 +1,155 @@
+From 4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4 Mon Sep 17 00:00:00 2001
+From: Peter Thorson <git@zaphoyd.com>
+Date: Sun, 11 Jun 2017 16:13:25 -0500
+Subject: [PATCH] minor adjustments to recent extension negotiation related
+ fixes, refactor a bit more extension negotiation code to be simpler
+
+---
+ websocketpp/impl/connection_impl.hpp |  6 +--
+ websocketpp/processors/hybi13.hpp    | 92 ++++++++++++++++++------------------
+ 2 files changed, 49 insertions(+), 49 deletions(-)
+
+Index: websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
+===================================================================
+--- websocketpp-0.7.0.orig/websocketpp/impl/connection_impl.hpp
++++ websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
+@@ -1222,17 +1222,17 @@
+     std::pair<lib::error_code,std::string> neg_results;
+     neg_results = m_processor->negotiate_extensions(m_request);
+ 
+-    if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
++    if (neg_results.first == processor::error::make_error_code(processor::error::extension_parse_error)) {
+         // There was a fatal error in extension parsing that should result in
+         // a failed connection attempt.
+-        m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
++        m_elog.write(log::elevel::info, "Bad request: " + neg_results.first.message());
+         m_response.set_status(http::status_code::bad_request);
+         return neg_results.first;
+     } else if (neg_results.first) {
+         // There was a fatal error in extension processing that is probably our
+         // fault. Consider extension negotiation to have failed and continue as
+         // if extensions were not supported
+-        m_alog.write(log::alevel::info, 
++        m_elog.write(log::elevel::info, 
+             "Extension negotiation failed: " + neg_results.first.message());
+     } else {
+         // extension negotiation succeeded, set response header accordingly
+Index: websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
+===================================================================
+--- websocketpp-0.7.0.orig/websocketpp/processors/hybi13.hpp
++++ websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
+@@ -97,11 +97,6 @@
+     /**
+      * This exists mostly because the code for requests and responses is
+      * identical and I can't have virtual template methods.
+-     *
+-     * NOTE: this method makes assumptions that the permessage-deflate
+-     * extension is the only one supported. If additional extensions are
+-     * ever supported it should be reviewed carefully. Most cases where
+-     * that assumption is made are explicitly noted.
+      */
+     template <typename header_type>
+     err_str_pair negotiate_extensions_helper(header_type const & header) {
+@@ -130,55 +125,60 @@
+ 
+         http::parameter_list::const_iterator it;
+ 
++        // look through the list of extension requests to find the first
++        // one that we can accept.
+         if (m_permessage_deflate.is_implemented()) {
+             err_str_pair neg_ret;
+             for (it = p.begin(); it != p.end(); ++it) {
+-                // look through each extension, if the key is permessage-deflate
+-                if (it->first == "permessage-deflate") {
+-                    // if we have already successfully negotiated this extension
+-                    // then skip any other requests to negotiate the same one
+-                    // with different parameters 
+-                    if (m_permessage_deflate.is_enabled()) {
+-                        continue;
+-                    }
+-                    
+-                    
+-                    neg_ret = m_permessage_deflate.negotiate(it->second);
+-
+-                    if (neg_ret.first) {
+-                        // Figure out if this is an error that should halt all
+-                        // extension negotiations or simply cause negotiation of
+-                        // this specific extension to fail.
+-                        //std::cout << "permessage-compress negotiation failed: "
+-                        //          << neg_ret.first.message() << std::endl;
+-                    } else {
+-                        // Note: this list will need commas if WebSocket++ ever
+-                        // supports more than one extension
+-                        
+-                        // Actually try to initialize the extension before we
+-                        // deem negotiation complete
+-                        ret.first = m_permessage_deflate.init(base::m_server);
+-                        if (!ret.first) {
+-
+-                            // TODO: support multiple extensions.
+-                            // right now, because there is only one extension 
+-                            // supported, it failing to negotiate means we are
+-                            // done with all negotiating. In the future if more
+-                            // extensions are supported a better solution will
+-                            // be needed here.
+-                            break;
+-                        } else {
+-                            ret.second += neg_ret.second;
+-
+-                            // continue looking for more extensions
+-                            continue;
+-                        }
+-                        
+-                    }
++                // not a permessage-deflate extension request, ignore
++                if (it->first != "permessage-deflate") {
++                    continue;
++                }
++
++                // if we have already successfully negotiated this extension
++                // then skip any other requests to negotiate the same one
++                // with different parameters 
++                if (m_permessage_deflate.is_enabled()) {
++                    continue;
++                }
++                
++                // attempt to negotiate this offer
++                neg_ret = m_permessage_deflate.negotiate(it->second);
++
++                if (neg_ret.first) {
++                    // negotiation offer failed. Do nothing. We will continue
++                    // searching for a permessage-deflate config that succeeds
++                    continue;
++                }
++
++                // Negotiation tentatively succeeded
++
++                // Actually try to initialize the extension before we
++                // deem negotiation complete
++                lib::error_code ec = m_permessage_deflate.init(base::m_server);
++
++                if (ec) {
++                    // Negotiation succeeded but initialization failed this is 
++                    // an error that should stop negotiation of permessage 
++                    // deflate. Return the reason for the init failure
++
++                    ret.first = ec;
++                    break;
++                } else {
++                    // Successfully initialized, push the negotiated response into
++                    // the reply and stop looking for additional permessage-deflate
++                    // extensions
++                    ret.second += neg_ret.second;
++                    break;
+                 }
+             }
+         }
+ 
++        // support for future extensions would go here. Should check the value of 
++        // ret.first before continuing. Might need to consider whether failure of
++        // negotiation of an earlier extension should stop negotiation of subsequent
++        // ones
++
+         return ret;
+     }
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
new file mode 100644
index 0000000..94bfeb2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
@@ -0,0 +1,600 @@
+## Description: add some description
+## Origin/Author: add some origin or author
+## Bug: bug URL
+From 9ddb300d874a30db35e3ad58f188944bef0bf31b Mon Sep 17 00:00:00 2001
+From: Peter Thorson <git@zaphoyd.com>
+Date: Sun, 11 Jun 2017 15:24:43 -0500
+Subject: [PATCH] Update permessage-deflate support to reflect that zlib
+ doesn't support a 256 bit window. Improve extension negotiation error
+ checking and documentation. fixes #596 fixes #653
+
+---
+ changelog.md                                       |   8 ++
+ test/extension/permessage_deflate.cpp              | 153 +++++++++++++++++----
+ .../extensions/permessage_deflate/enabled.hpp      |  94 ++++++++++---
+ websocketpp/impl/connection_impl.hpp               |  10 +-
+ websocketpp/processors/hybi13.hpp                  |  28 +++-
+ 5 files changed, 247 insertions(+), 46 deletions(-)
+
+diff --git a/changelog.md b/changelog.md
+index bba753cb..de98edd2 100644
+#--- a/changelog.md
+#+++ b/changelog.md
+#@@ -17,6 +17,14 @@ HEAD
+# - Compatibility: Update `telemetry_client` to use a slightly more cross platform
+#   method of sleeping. Should work on windows now. Thank you Meir Yanovich for
+#   reporting.
+#+- Compatibility: Updated permessage-deflate support to reflect that the zlib
+#+  library does not actually support a sliding window size of 256 bits. 
+#+  WebSocket++ will no longer negotiate 256 bit deflate windows. If the user
+#+  of the library tries to request a 256 bit window a 512 bit window will be
+#+  specified instead (This was the previous behavior). #596 #653 Thank you 
+#+  Vinnie Falco and Gianfranco Costamagna for reporting.
+#+- Compatibility: Better error handling and logging in cases where extension
+#+  requests parse correctly but negotiation fails. 
+# - Bug: Store loggers in shared pointers to avoid crashes related to connections
+#   trying to write logs entries after their respective endpoint has been
+#   deallocated. Thank you Thalhammer for reporting and Jupp Müller for the 
+diff --git a/test/extension/permessage_deflate.cpp b/test/extension/permessage_deflate.cpp
+index 4cd3e7b6..805afcc3 100644
+--- a/test/extension/permessage_deflate.cpp
++++ b/test/extension/permessage_deflate.cpp
+@@ -186,15 +186,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_invalid ) {
+ 
+ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_valid ) {
+     ext_vars v;
++    
++    // confirm that a request for a value of 8 is interpreted as 9
+     v.attr["server_max_window_bits"] = "8";
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ 
++    v.attr["server_max_window_bits"] = "9";
+     v.esp = v.exts.negotiate(v.attr);
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ 
+-    v.attr["server_max_window_bits"] = "15";
+ 
++    v.attr["server_max_window_bits"] = "15";
+     v.esp = v.exts.negotiate(v.attr);
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+@@ -213,7 +220,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_server_max_window_bits ) {
+ 
+ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
+     ext_vars v;
+-    v.attr["server_max_window_bits"] = "8";
++    v.attr["server_max_window_bits"] = "9";
+ 
+     v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::decline);
+     v.esp = v.exts.negotiate(v.attr);
+@@ -223,7 +230,7 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
+     BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
+ }
+ 
+-BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept_8 ) {
+     ext_vars v;
+     v.attr["server_max_window_bits"] = "8";
+ 
+@@ -232,10 +239,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ }
+ 
+-BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
++    ext_vars v;
++    v.attr["server_max_window_bits"] = "9";
++
++    v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::accept);
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest_8 ) {
+     ext_vars v;
+     v.attr["server_max_window_bits"] = "8";
+ 
+@@ -244,10 +263,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ }
+ 
+-BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
++    ext_vars v;
++    v.attr["server_max_window_bits"] = "9";
++
++    v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::largest);
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest_8 ) {
+     ext_vars v;
+     v.attr["server_max_window_bits"] = "8";
+ 
+@@ -256,7 +287,19 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
++    ext_vars v;
++    v.attr["server_max_window_bits"] = "9";
++
++    v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::smallest);
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ }
+ 
+ // Negotiate server_max_window_bits
+@@ -292,7 +335,13 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_valid ) {
+     v.esp = v.exts.negotiate(v.attr);
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++
++    v.attr["client_max_window_bits"] = "9";
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+ 
+     v.attr["client_max_window_bits"] = "15";
+     v.esp = v.exts.negotiate(v.attr);
+@@ -311,7 +360,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_client_max_window_bits ) {
+     BOOST_CHECK_EQUAL(v.ec,pmde::make_error_code(pmde::invalid_max_window_bits));
+ }
+ 
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline_8 ) {
+     ext_vars v;
+     v.attr["client_max_window_bits"] = "8";
+ 
+@@ -323,7 +372,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
+     BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
+ }
+ 
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
++    ext_vars v;
++    v.attr["client_max_window_bits"] = "9";
++
++    v.ec = v.exts.set_client_max_window_bits(9,pmd_mode::decline);
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept_8 ) {
+     ext_vars v;
+     v.attr["client_max_window_bits"] = "8";
+ 
+@@ -332,10 +393,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+ }
+ 
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
++    ext_vars v;
++    v.attr["client_max_window_bits"] = "9";
++
++    v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::accept);
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest_8 ) {
+     ext_vars v;
+     v.attr["client_max_window_bits"] = "8";
+ 
+@@ -344,10 +417,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+ }
+ 
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
++    ext_vars v;
++    v.attr["client_max_window_bits"] = "9";
++
++    v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::largest);
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest_8 ) {
+     ext_vars v;
+     v.attr["client_max_window_bits"] = "8";
+ 
+@@ -356,7 +441,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
+     BOOST_CHECK( v.exts.is_enabled() );
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+-    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
++    ext_vars v;
++    v.attr["client_max_window_bits"] = "9";
++
++    v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::smallest);
++    v.esp = v.exts.negotiate(v.attr);
++    BOOST_CHECK( v.exts.is_enabled() );
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+ }
+ 
+ 
+@@ -507,7 +604,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
+     std::string compress_out;
+     std::string decompress_out;
+ 
+-    v.exts.init(true);
++    v.ec = v.exts.init(true);
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ 
+     v.ec = v.exts.compress(compress_in,compress_out);
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -520,7 +618,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
+ BOOST_AUTO_TEST_CASE( compress_data_multiple ) {
+     ext_vars v;
+ 
+-    v.exts.init(true);
++    v.ec = v.exts.init(true);
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ 
+     for (int i = 0; i < 2; i++) {
+         std::string compress_in = "Hello";
+@@ -545,11 +644,12 @@ BOOST_AUTO_TEST_CASE( compress_data_large ) {
+ 
+     websocketpp::http::attribute_list alist;
+ 
+-    alist["server_max_window_bits"] = "8";
+-    v.exts.set_server_max_window_bits(8,websocketpp::extensions::permessage_deflate::mode::smallest);
++    alist["server_max_window_bits"] = "9";
++    v.exts.set_server_max_window_bits(9,websocketpp::extensions::permessage_deflate::mode::smallest);
+ 
+     v.exts.negotiate(alist);
+-    v.exts.init(true);
++    v.ec = v.exts.init(true);
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ 
+     v.ec = v.exts.compress(compress_in,compress_out);
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -573,7 +673,8 @@ BOOST_AUTO_TEST_CASE( compress_data_no_context_takeover ) {
+     v.exts.enable_server_no_context_takeover();
+ 
+     v.exts.negotiate(alist);
+-    v.exts.init(true);
++    v.ec = v.exts.init(true);
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ 
+     v.ec = v.exts.compress(compress_in,compress_out1);
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -609,7 +710,8 @@ BOOST_AUTO_TEST_CASE( compress_empty ) {
+     std::string compress_out;
+     std::string decompress_out;
+ 
+-    v.exts.init(true);
++    v.ec = v.exts.init(true);
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ 
+     v.ec = v.exts.compress(compress_in,compress_out);
+     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -640,7 +742,8 @@ BOOST_AUTO_TEST_CASE( decompress_data ) {
+     std::string out;
+     std::string reference = "Hello";
+ 
+-    v.exts.init(true);
++    v.ec = v.exts.init(true);
++    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ 
+     v.ec = v.exts.decompress(in,11,out);
+ 
+diff --git a/websocketpp/extensions/permessage_deflate/enabled.hpp b/websocketpp/extensions/permessage_deflate/enabled.hpp
+index 1581f14c..f20a1b1d 100644
+--- a/websocketpp/extensions/permessage_deflate/enabled.hpp
++++ b/websocketpp/extensions/permessage_deflate/enabled.hpp
+@@ -46,7 +46,7 @@
+ namespace websocketpp {
+ namespace extensions {
+ 
+-/// Implementation of the draft permessage-deflate WebSocket extension
++/// Implementation of RFC 7692, the permessage-deflate WebSocket extension
+ /**
+  * ### permessage-deflate interface
+  *
+@@ -174,18 +174,30 @@ namespace websocketpp {
+ namespace extensions {
+ namespace permessage_deflate {
+ 
+-/// Default value for server_max_window_bits as defined by draft 17
++/// Default value for server_max_window_bits as defined by RFC 7692
+ static uint8_t const default_server_max_window_bits = 15;
+-/// Minimum value for server_max_window_bits as defined by draft 17
++/// Minimum value for server_max_window_bits as defined by RFC 7692
++/**
++ * NOTE: A value of 8 is not actually supported by zlib, the deflate
++ * library that WebSocket++ uses. To preserve backwards compatibility
++ * with RFC 7692 and previous versions of the library a value of 8
++ * is accepted by the library but will always be negotiated as 9.
++ */
+ static uint8_t const min_server_max_window_bits = 8;
+-/// Maximum value for server_max_window_bits as defined by draft 17
++/// Maximum value for server_max_window_bits as defined by RFC 7692
+ static uint8_t const max_server_max_window_bits = 15;
+ 
+-/// Default value for client_max_window_bits as defined by draft 17
++/// Default value for client_max_window_bits as defined by RFC 7692
+ static uint8_t const default_client_max_window_bits = 15;
+-/// Minimum value for client_max_window_bits as defined by draft 17
++/// Minimum value for client_max_window_bits as defined by RFC 7692
++/**
++ * NOTE: A value of 8 is not actually supported by zlib, the deflate
++ * library that WebSocket++ uses. To preserve backwards compatibility
++ * with RFC 7692 and previous versions of the library a value of 8
++ * is accepted by the library but will always be negotiated as 9.
++ */
+ static uint8_t const min_client_max_window_bits = 8;
+-/// Maximum value for client_max_window_bits as defined by draft 17
++/// Maximum value for client_max_window_bits as defined by RFC 7692
+ static uint8_t const max_client_max_window_bits = 15;
+ 
+ namespace mode {
+@@ -372,7 +384,7 @@ class enabled {
+     /**
+      * The bits setting is the base 2 logarithm of the maximum window size that
+      * the server must use to compress outgoing messages. The permitted range
+-     * is 8 to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB
++     * is 9 to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB
+      * window. The default setting is 15.
+      *
+      * Mode Options:
+@@ -386,6 +398,14 @@ class enabled {
+      * adjusted by the server. A server may unilaterally set this value without
+      * client support.
+      *
++     * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
++     * Prior to version 0.8.0 a value of 8 was also allowed by this library.
++     * zlib, the deflate compression library that WebSocket++ uses has always
++     * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9 
++     * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
++     * continues to perform the 8->9 conversion for backwards compatibility
++     * purposes but this should be considered deprecated functionality.
++     *
+      * @param bits The size to request for the outgoing window size
+      * @param mode The mode to use for negotiating this parameter
+      * @return A status code
+@@ -394,6 +414,12 @@ class enabled {
+         if (bits < min_server_max_window_bits || bits > max_server_max_window_bits) {
+             return error::make_error_code(error::invalid_max_window_bits);
+         }
++
++        // See note in doc comment above about what is happening here
++        if (bits == 8) {
++            bits = 9;
++        }
++
+         m_server_max_window_bits = bits;
+         m_server_max_window_bits_mode = mode;
+ 
+@@ -403,8 +429,8 @@ class enabled {
+     /// Limit client LZ77 sliding window size
+     /**
+      * The bits setting is the base 2 logarithm of the window size that the
+-     * client must use to compress outgoing messages. The permitted range is 8
+-     * to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB window.
++     * client must use to compress outgoing messages. The permitted range is 9
++     * to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB window.
+      * The default setting is 15.
+      *
+      * Mode Options:
+@@ -417,6 +443,14 @@ class enabled {
+      * outgoing window size unilaterally. A server may only limit the client's
+      * window size if the remote client supports that feature.
+      *
++     * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
++     * Prior to version 0.8.0 a value of 8 was also allowed by this library.
++     * zlib, the deflate compression library that WebSocket++ uses has always
++     * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9 
++     * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
++     * continues to perform the 8->9 conversion for backwards compatibility
++     * purposes but this should be considered deprecated functionality.
++     *
+      * @param bits The size to request for the outgoing window size
+      * @param mode The mode to use for negotiating this parameter
+      * @return A status code
+@@ -425,6 +459,12 @@ class enabled {
+         if (bits < min_client_max_window_bits || bits > max_client_max_window_bits) {
+             return error::make_error_code(error::invalid_max_window_bits);
+         }
++
++        // See note in doc comment above about what is happening here
++        if (bits == 8) {
++            bits = 9;
++        }
++
+         m_client_max_window_bits = bits;
+         m_client_max_window_bits_mode = mode;
+ 
+@@ -642,11 +682,17 @@ class enabled {
+      * client requested that we use.
+      *
+      * options:
+-     * - decline (refuse to use the attribute)
+-     * - accept (use whatever the client says)
+-     * - largest (use largest possible value)
++     * - decline (ignore value, offer our default instead)
++     * - accept (use the value requested by the client)
++     * - largest (use largest value acceptable to both)
+      * - smallest (use smallest possible value)
+      *
++     * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
++     * be requested for negotiation by an older client/server, if the result of
++     * the negotiation would be to send a value of 8, a value of 9 is offered
++     * instead. This ensures that WebSocket++ will only ever negotiate connections
++     * with compression settings explicitly supported by zlib.
++     *
+      * @param [in] value The value of the attribute from the offer
+      * @param [out] ec A reference to the error code to return errors via
+      */
+@@ -678,6 +724,11 @@ class enabled {
+                 ec = make_error_code(error::invalid_mode);
+                 m_server_max_window_bits = default_server_max_window_bits;
+         }
++
++        // See note in doc comment
++        if (m_server_max_window_bits == 8) {
++            m_server_max_window_bits = 9;
++        }
+     }
+ 
+     /// Negotiate client_max_window_bits attribute
+@@ -687,11 +738,17 @@ class enabled {
+      * negotiation mode.
+      *
+      * options:
+-     * - decline (refuse to use the attribute)
+-     * - accept (use whatever the client says)
+-     * - largest (use largest possible value)
++     * - decline (ignore value, offer our default instead)
++     * - accept (use the value requested by the client)
++     * - largest (use largest value acceptable to both)
+      * - smallest (use smallest possible value)
+      *
++     * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
++     * be requested for negotiation by an older client/server, if the result of
++     * the negotiation would be to send a value of 8, a value of 9 is offered
++     * instead. This ensures that WebSocket++ will only ever negotiate connections
++     * with compression settings explicitly supported by zlib.
++     *
+      * @param [in] value The value of the attribute from the offer
+      * @param [out] ec A reference to the error code to return errors via
+      */
+@@ -727,6 +784,11 @@ class enabled {
+                 ec = make_error_code(error::invalid_mode);
+                 m_client_max_window_bits = default_client_max_window_bits;
+         }
++
++        // See note in doc comment
++        if (m_client_max_window_bits == 8) {
++            m_client_max_window_bits = 9;
++        }
+     }
+ 
+     bool m_enabled;
+diff --git a/websocketpp/impl/connection_impl.hpp b/websocketpp/impl/connection_impl.hpp
+index 105911db..ae55c338 100644
+--- a/websocketpp/impl/connection_impl.hpp
++++ b/websocketpp/impl/connection_impl.hpp
+@@ -1222,12 +1222,18 @@ lib::error_code connection<config>::process_handshake_request() {
+     std::pair<lib::error_code,std::string> neg_results;
+     neg_results = m_processor->negotiate_extensions(m_request);
+ 
+-    if (neg_results.first) {
++    if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
+         // There was a fatal error in extension parsing that should result in
+         // a failed connection attempt.
+-        m_alog.write(log::alevel::devel, "Bad request: " + neg_results.first.message());
++        m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
+         m_response.set_status(http::status_code::bad_request);
+         return neg_results.first;
++    } else if (neg_results.first) {
++        // There was a fatal error in extension processing that is probably our
++        // fault. Consider extension negotiation to have failed and continue as
++        // if extensions were not supported
++        m_alog.write(log::alevel::info, 
++            "Extension negotiation failed: " + neg_results.first.message());
+     } else {
+         // extension negotiation succeeded, set response header accordingly
+         // we don't send an empty extensions header because it breaks many
+diff --git a/websocketpp/processors/hybi13.hpp b/websocketpp/processors/hybi13.hpp
+index 79486654..a95bc649 100644
+--- a/websocketpp/processors/hybi13.hpp
++++ b/websocketpp/processors/hybi13.hpp
+@@ -97,6 +97,11 @@ class hybi13 : public processor<config> {
+     /**
+      * This exists mostly because the code for requests and responses is
+      * identical and I can't have virtual template methods.
++     *
++     * NOTE: this method makes assumptions that the permessage-deflate
++     * extension is the only one supported. If additional extensions are
++     * ever supported it should be reviewed carefully. Most cases where
++     * that assumption is made are explicitly noted.
+      */
+     template <typename header_type>
+     err_str_pair negotiate_extensions_helper(header_type const & header) {
+@@ -149,9 +154,26 @@ class hybi13 : public processor<config> {
+                     } else {
+                         // Note: this list will need commas if WebSocket++ ever
+                         // supports more than one extension
+-                        ret.second += neg_ret.second;
+-                        m_permessage_deflate.init(base::m_server);
+-                        continue;
++                        
++                        // Actually try to initialize the extension before we
++                        // deem negotiation complete
++                        ret.first = m_permessage_deflate.init(base::m_server);
++                        if (!ret.first) {
++
++                            // TODO: support multiple extensions.
++                            // right now, because there is only one extension 
++                            // supported, it failing to negotiate means we are
++                            // done with all negotiating. In the future if more
++                            // extensions are supported a better solution will
++                            // be needed here.
++                            break;
++                        } else {
++                            ret.second += neg_ret.second;
++
++                            // continue looking for more extensions
++                            continue;
++                        }
++                        
+                     }
+                 }
+             }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
new file mode 100644
index 0000000..342981d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
@@ -0,0 +1,51 @@
+Description: Disable failing test_transport_asio_timers.
+Because of "address already in use" error
+/«PKGBUILDDIR»/test/transport/asio/timers.cpp(129): error in "tls_handshake_timeout": check ec == make_error_code(tls_handshake_timeout) failed [websocketpp.transport.asio.socket:8 != websocketpp.transport.asio.socket:5]
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+
+--- websocketpp-0.7.0.orig/test/transport/CMakeLists.txt
++++ websocketpp-0.7.0/test/transport/CMakeLists.txt
+@@ -1,24 +1,24 @@
+ if (OPENSSL_FOUND)
+ 
+-# Test transport integration
+-file (GLOB SOURCE integration.cpp)
+-
+-init_target (test_transport)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+-
+-# Test transport asio timers
+-file (GLOB SOURCE asio/timers.cpp)
+-
+-init_target (test_transport_asio_timers)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++## Test transport integration
++#file (GLOB SOURCE integration.cpp)
++#
++#init_target (test_transport)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++#
++## Test transport asio timers
++#file (GLOB SOURCE asio/timers.cpp)
++#
++#init_target (test_transport_asio_timers)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+ 
+ # Test transport asio security
+ file (GLOB SOURCE asio/security.cpp)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
new file mode 100644
index 0000000..65fc974
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "C++/Boost Asio based websocket client/server library."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
+DEPENDS = "openssl boost zlib"
+
+SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
+
+# tag 0.7.0
+SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
+
+SRC_URI += "file://0001-Fix-issue-599.patch \
+            file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
+            file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
+            file://disable-tests.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/files/0001-explicitly-disable-man-generation-disable-documentat.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/files/0001-explicitly-disable-man-generation-disable-documentat.patch
deleted file mode 100644
index b2b0e49..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/files/0001-explicitly-disable-man-generation-disable-documentat.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 41093d9634bfeddcaec866745d8d4022f4c6f8c1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Sun, 19 Feb 2017 21:01:39 +0100
-Subject: [PATCH] explicitly disable man generation --disable-documentation is
- not enough
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index c01c54f..dcdf7a2 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,6 +1,6 @@
- NULL =
- 
--SUBDIRS=po man
-+SUBDIRS=po
- 
- INCLUDES =					\
- 	-I$(top_srcdir)				\
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/files/xdg-user-dirs.desktop b/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/files/xdg-user-dirs.desktop
deleted file mode 100644
index a9a22d3..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/files/xdg-user-dirs.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=User folders update
-Exec=xdg-user-dirs-update
-StartupNotify=false
-NoDisplay=true
-X-GNOME-Autostart-Phase=Initialization
-X-KDE-autostart-phase=1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.15.bb
deleted file mode 100644
index c056759..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.15.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "xdg-user-dirs is a tool to help manage user directories like the desktop folder and the music folder"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = " \
-    http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.gz \
-    file://0001-explicitly-disable-man-generation-disable-documentat.patch \
-    file://xdg-user-dirs.desktop \
-"
-SRC_URI[md5sum] = "f5aaf5686ad7d8809a664bfb4566a54d"
-SRC_URI[sha256sum] = "20b4a751f41d0554bce3e0ce5e8d934be98cc62d48f0b90a894c3e1916552786"
-
-inherit autotools gettext
-
-EXTRA_OECONF = "--disable-documentation"
-
-do_install_append () {
-    install -d ${D}${sysconfdir}/xdg/autostart
-    install -m 644 ${WORKDIR}/xdg-user-dirs.desktop ${D}${sysconfdir}/xdg/autostart
-}
-
-CONFFILES_${PN} += " \
-    ${sysconfdir}/xdg/user-dirs.conf \
-    ${sysconfdir}/xdg/user-dirs.defaults \
-"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb
new file mode 100644
index 0000000..e3ce926
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "xdg-user-dirs is a tool to help manage user directories like the desktop folder and the music folder"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "e0564ec6d838e6e41864d872a29b3575"
+SRC_URI[sha256sum] = "2a07052823788e8614925c5a19ef5b968d8db734fdee656699ea4f97d132418c"
+
+inherit autotools gettext
+
+EXTRA_OECONF = "--disable-documentation"
+
+CONFFILES_${PN} += " \
+    ${sysconfdir}/xdg/user-dirs.conf \
+    ${sysconfdir}/xdg/user-dirs.defaults \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
new file mode 100644
index 0000000..0bdafdf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Xorg drivers for xrdp."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a2523660329fdca3d954c0a87390e007"
+
+inherit autotools pkgconfig 
+
+DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git"
+
+SRCREV = "c122544f184d4031bbae1ad80fbab554c34a9427"
+
+PV = "0.2.5"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${libdir}/xorg/modules/*"
+
+INSANE_SKIP_${PN} += "xorg-driver-abi"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch
new file mode 100644
index 0000000..5e7fca0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch
@@ -0,0 +1,33 @@
+From d705b1d666cb8713d86ea6fb2fc45c424128285a Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Fri, 1 Dec 2017 10:24:50 +0900
+Subject: [PATCH] Added  req_distinguished_name in /etc/xrdp/openssl.conf,
+ otherwise, cert.pem can't be created.
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ keygen/openssl.conf | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/keygen/openssl.conf b/keygen/openssl.conf
+index 09db6c2..f077d72 100644
+--- a/keygen/openssl.conf
++++ b/keygen/openssl.conf
+@@ -4,6 +4,14 @@ distinguished_name = req_distinguished_name
+ x509_extensions = v3_ca
+ 
+ [req_distinguished_name]
++# Certificate subject
++#countryName = US
++#stateOrProvinceName = CA
++#localityName = Sunnyvale
++#organizationName = xrdp
++#organizationalUnitName =
++commonName = XRDP
++#emailAddress =
+ 
+ [v3_ca]
+ # Extensions for a typical CA - PKIX recommendation.
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch
new file mode 100644
index 0000000..4c93647
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch
@@ -0,0 +1,148 @@
+Subject: [PATCH] Fix CVE-2017-16927
+
+sesman: scpv0, accept variable length data fields
+
+Upstream-Status: Backport 
+
+---
+ sesman/libscp/libscp_v0.c | 32 +++++++++++++++++++++++++-------
+ 1 file changed, 25 insertions(+), 7 deletions(-)
+
+diff --git a/sesman/libscp/libscp_v0.c b/sesman/libscp/libscp_v0.c
+index 5a0c8bf..5693407 100644
+--- a/sesman/libscp/libscp_v0.c
++++ b/sesman/libscp/libscp_v0.c
+@@ -161,7 +161,7 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+     struct SCP_SESSION *session = 0;
+     tui16 sz;
+     tui32 code = 0;
+-    char buf[257];
++    char *buf = 0;
+ 
+     if (!skipVchk)
+     {
+@@ -226,27 +226,31 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+ 
+         /* reading username */
+         in_uint16_be(c->in_s, sz);
+-        buf[sz] = '\0';
++        buf = g_new0(char, sz);
+         in_uint8a(c->in_s, buf, sz);
+-
++        buf[sz] = '\0';
+         if (0 != scp_session_set_username(session, buf))
+         {
+             scp_session_destroy(session);
+             log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting username", __LINE__);
++            g_free(buf);
+             return SCP_SERVER_STATE_INTERNAL_ERR;
+         }
++        g_free(buf);
+ 
+         /* reading password */
+         in_uint16_be(c->in_s, sz);
+-        buf[sz] = '\0';
++        buf = g_new0(char, sz);
+         in_uint8a(c->in_s, buf, sz);
+-
++        buf[sz] = '\0';
+         if (0 != scp_session_set_password(session, buf))
+         {
+             scp_session_destroy(session);
+             log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__);
++            g_free(buf);
+             return SCP_SERVER_STATE_INTERNAL_ERR;
+         }
++        g_free(buf);
+ 
+         /* width */
+         in_uint16_be(c->in_s, sz);
+@@ -272,9 +276,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+ 
+             if (sz > 0)
+             {
++                buf = g_new0(char, sz);
+                 in_uint8a(c->in_s, buf, sz);
+                 buf[sz] = '\0';
+                 scp_session_set_domain(session, buf);
++                g_free(buf);
+             }
+         }
+ 
+@@ -285,9 +291,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+ 
+             if (sz > 0)
+             {
++                buf = g_new0(char, sz);
+                 in_uint8a(c->in_s, buf, sz);
+                 buf[sz] = '\0';
+                 scp_session_set_program(session, buf);
++                g_free(buf);
+             }
+         }
+ 
+@@ -298,9 +306,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+ 
+             if (sz > 0)
+             {
++                buf = g_new0(char, sz);
+                 in_uint8a(c->in_s, buf, sz);
+                 buf[sz] = '\0';
+                 scp_session_set_directory(session, buf);
++                g_free(buf);
+             }
+         }
+ 
+@@ -311,9 +321,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+ 
+             if (sz > 0)
+             {
++                buf = g_new0(char, sz);
+                 in_uint8a(c->in_s, buf, sz);
+                 buf[sz] = '\0';
+                 scp_session_set_client_ip(session, buf);
++                g_free(buf);
+             }
+         }
+     }
+@@ -332,29 +344,35 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+         scp_session_set_type(session, SCP_GW_AUTHENTICATION);
+         /* reading username */
+         in_uint16_be(c->in_s, sz);
+-        buf[sz] = '\0';
++        buf = g_new0(char, sz);
+         in_uint8a(c->in_s, buf, sz);
++        buf[sz] = '\0';
+ 
+         /* g_writeln("Received user name: %s",buf); */
+         if (0 != scp_session_set_username(session, buf))
+         {
+             scp_session_destroy(session);
+             /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting        username", __LINE__);*/
++            g_free(buf);
+             return SCP_SERVER_STATE_INTERNAL_ERR;
+         }
++        g_free(buf);
+ 
+         /* reading password */
+         in_uint16_be(c->in_s, sz);
+-        buf[sz] = '\0';
++        buf = g_new0(char, sz);
+         in_uint8a(c->in_s, buf, sz);
++        buf[sz] = '\0';
+ 
+         /* g_writeln("Received password: %s",buf); */
+         if (0 != scp_session_set_password(session, buf))
+         {
+             scp_session_destroy(session);
+             /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__); */
++            g_free(buf);
+             return SCP_SERVER_STATE_INTERNAL_ERR;
+         }
++        g_free(buf);
+     }
+     else
+     {
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch
new file mode 100644
index 0000000..deaadde
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch
@@ -0,0 +1,75 @@
+From a9c460f158d68c1b3de6a31ce853de5379977695 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Thu, 30 Nov 2017 11:10:04 +0900
+Subject: [PATCH] Fix sesman.ini and xrdp.ini
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ sesman/sesman.ini | 20 ++++++--------------
+ xrdp/xrdp.ini     | 10 ----------
+ 2 files changed, 6 insertions(+), 24 deletions(-)
+
+diff --git a/sesman/sesman.ini b/sesman/sesman.ini
+index 8225ee4..c09189e 100644
+--- a/sesman/sesman.ini
++++ b/sesman/sesman.ini
+@@ -54,12 +54,14 @@ LogLevel=DEBUG
+ EnableSyslog=1
+ SyslogLevel=DEBUG
+ 
+-[X11rdp]
+-param=X11rdp
+-param=-bs
++[Xorg]
++param=Xorg
++param=-config
++param=xrdp/xorg.conf
++param=-noreset
+ param=-nolisten
+ param=tcp
+-param=-uds
++
+ 
+ [Xvnc]
+ param=Xvnc
+@@ -70,16 +72,6 @@ param=-localhost
+ param=-dpi
+ param=96
+ 
+-[Xorg]
+-param=Xorg
+-param=-config
+-param=xrdp/xorg.conf
+-param=-noreset
+-param=-nolisten
+-param=tcp
+-param=-logfile
+-param=.xorgxrdp.%s.log
+-
+ [Chansrv]
+ ; drive redirection, defaults to xrdp_client if not set
+ FuseMountName=thinclient_drives
+diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini
+index cb6d7c3..9f63a69 100644
+--- a/xrdp/xrdp.ini
++++ b/xrdp/xrdp.ini
+@@ -157,16 +157,6 @@ ip=127.0.0.1
+ port=-1
+ code=20
+ 
+-[X11rdp]
+-name=X11rdp
+-lib=libxup.so
+-username=ask
+-password=ask
+-ip=127.0.0.1
+-port=-1
+-xserverbpp=24
+-code=10
+-
+ [Xvnc]
+ name=Xvnc
+ lib=libvnc.so
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch
new file mode 100644
index 0000000..82b2790
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch
@@ -0,0 +1,35 @@
+Subject: [PATCH] Fix the make error
+
+Fix the compile error:
+ *** No rule to make target '../librfxcodec/src/.libs/librfxencode.a', needed by 'xrdp'.  Stop..
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ xrdp/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/xrdp/Makefile.am b/xrdp/Makefile.am
+index a259ef3..d5505b2 100644
+--- a/xrdp/Makefile.am
++++ b/xrdp/Makefile.am
+@@ -23,7 +23,7 @@ endif
+ if XRDP_RFXCODEC
+ AM_CPPFLAGS += -DXRDP_RFXCODEC
+ AM_CPPFLAGS += -I$(top_srcdir)/librfxcodec/include
+-XRDP_EXTRA_LIBS += $(top_builddir)/librfxcodec/src/.libs/librfxencode.a
++XRDP_EXTRA_LIBS += $(top_builddir)/librfxcodec/src/.libs/librfxencode.la
+ endif
+ 
+ if XRDP_PIXMAN
+@@ -35,7 +35,7 @@ endif
+ if XRDP_PAINTER
+ AM_CPPFLAGS += -DXRDP_PAINTER
+ AM_CPPFLAGS += -I$(top_srcdir)/libpainter/include
+-XRDP_EXTRA_LIBS += $(top_builddir)/libpainter/src/.libs/libpainter.a
++XRDP_EXTRA_LIBS += $(top_builddir)/libpainter/src/.libs/libpainter.la
+ endif
+ 
+ sbin_PROGRAMS = \
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/xrdp.sysconfig b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/xrdp.sysconfig
new file mode 100644
index 0000000..39f500a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/xrdp.sysconfig
@@ -0,0 +1,4 @@
+# put some options here
+
+XRDP_OPTIONS=""
+SESMAN_OPTIONS=""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb
new file mode 100644
index 0000000..3ef7c98
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb
@@ -0,0 +1,99 @@
+SUMMARY = "An open source remote desktop protocol(rdp) server."
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \
+"
+
+inherit distro_features_check autotools pkgconfig useradd systemd
+
+DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native"
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "git://github.com/neutrinolabs/xrdp.git \
+           file://xrdp.sysconfig \
+           file://0001-Fix-sesman.ini-and-xrdp.ini.patch \
+           file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \
+           file://0001-Fix-the-compile-error.patch \
+           file://0001-Fix-of-CVE-2017-16927.patch \
+           "
+
+SRCREV = "c295dd61b882e8b56677cf12791f43634f9190b5"
+
+PV = "0.9.4+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system xrdp"
+USERADD_PARAM_${PN}  = "--system --home /var/run/xrdp -g xrdp \
+                        --no-create-home --shell /bin/false xrdp"
+
+FILES_${PN} += "${datadir}/dbus-1/services/*.service \
+                ${datadir}/dbus-1/accessibility-services/*.service "
+
+FILES_${PN}-dev += "${libdir}/xrdp/libcommon.so \
+                    ${libdir}/xrdp/libxrdp.so \
+                    ${libdir}/xrdp/libscp.so \
+                    ${libdir}/xrdp/libxrdpapi.so "
+
+EXTRA_OECONF = "--enable-pam-config=suse"
+
+do_configure_prepend() {
+    cd ${S}
+    ./bootstrap
+    cd -
+}
+
+do_compile_prepend() {
+    sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in
+}
+
+
+do_install_append() {
+	install -d ${D}${sysconfdir} 
+	install -d ${D}${sysconfdir}/xrdp
+	install -d ${D}${sysconfdir}/xrdp/pam.d
+	install -d ${D}${sysconfdir}/sysconfig/xrdp
+   
+	# deal with systemd unit files
+	install -d ${D}${systemd_unitdir}/system
+	install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service
+	install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service 
+	sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+	sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+	sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+
+	install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${S}/sesman/sesman.ini ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${S}/sesman/startwm.sh ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${S}/xrdp/xrdp.ini ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${S}/xrdp/xrdp_keyboard.ini ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${S}/instfiles/xrdp.sh ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/
+	install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/
+	chown xrdp:xrdp ${D}${sysconfdir}/xrdp
+}
+
+SYSTEMD_SERVICE_${PN} = "xrdp.service xrdp-sesman.service"
+
+pkg_postinst_${PN}() {
+	if test -z "$D"
+	then
+		if test -x ${bindir}/xrdp-keygen
+		then
+			${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null
+                fi
+		if test ! -s ${sysconfdir}/xrdp/cert.pem
+		then
+			openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \
+			-keyout ${sysconfdir}/xrdp/key.pem \
+			-out ${sysconfdir}/xrdp/cert.pem \
+			-config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1
+			chmod 400 ${sysconfdir}/xrdp/key.pem
+		fi			
+        fi
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb
similarity index 70%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.11.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb
index d663f44b..515cf41 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.11.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb
@@ -3,14 +3,14 @@
 DEPENDS = "ncurses bdwgc"
 
 LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
 
 SRC_URI = "http://ftp.gnu.org/gnu/zile/${BP}.tar.gz \
            file://remove-help2man.patch \
 "
 
-SRC_URI[md5sum] = "7a460ccec64e3bec2835697b2eae533c"
-SRC_URI[sha256sum] = "1fd27bbddc61491b1fbb29a345d0d344734aa9e80cfa07b02892eedf831fa9cc"
+SRC_URI[md5sum] = "c7d7eec93231c6878f255978d9747a73"
+SRC_URI[sha256sum] = "7a78742795ca32480f2bab697fd5e328618d9997d6f417cf1b14e9da9af26b74"
 
 inherit autotools pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/cunit/files/fixup-install-docdir.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-test/cunit/files/fixup-install-docdir.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cxxtest/cxxtest_4.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/cxxtest/cxxtest_4.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/evtest/evtest_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/evtest/evtest_git.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/evtest/evtest_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-test/evtest/evtest_git.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbtest/fb-test_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_git.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/fbtest/fb-test_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-test/fbtest/fb-test_git.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.8.0.bb
index 483dc1f..48cf4e0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.8.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.8.0.bb
@@ -7,16 +7,13 @@
 
 PROVIDES += "gmock"
 
+S = "${WORKDIR}/git"
+SRCREV = "ec44c6c1675c25b9827aacd08c02433cccde7780"
 SRC_URI = "\
-    https://github.com/google/googletest/archive/release-${PV}.tar.gz \
+    git://github.com/google/googletest.git;protocol=https; \
     file://Add-pkg-config-support.patch \
 "
 
-SRC_URI[md5sum] = "16877098823401d1bf2ed7891d7dce36"
-SRC_URI[sha256sum] = "58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8"
-
-S = "${WORKDIR}/googletest-release-${PV}"
-
 inherit cmake
 
 ALLOW_EMPTY_${PN} = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
new file mode 100644
index 0000000..d604f86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
@@ -0,0 +1,141 @@
+From 784dcd09d3f266e271d007f4fd257e85036872ca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
+Date: Tue, 17 Oct 2017 10:13:20 -0500
+Subject: [PATCH] Several changes to fix musl build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+stress-{context, stackmmap}.c: Set tests to non-implemented because uses
+swapcontext, musl provide the definition but not the implementation due
+  to that functions are pre-POSIX and set to be deprecated.
+  stress-{resources, pty}.c: Doesn't include termio.h and remove stress
+  operations that uses struct termio, musl doesn't provide that struct.
+stress-malloc.c: Check for definition of M_MMAP_THRESHOLD musl doesn't
+  ptovide that constant.
+stress-madvise.c: Add static poision_count integer, definition of
+  MADV_SOFT_OFFLINE doesn't grauntee MADV_HWPOISON to be defined.
+cache.c: Define GLOB_ONLYDIR not available on MUSL.
+
+Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
+Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
+
+Upstream-status: Pending
+
+---
+ cache.c            |  4 ++++
+ stress-madvise.c   |  1 +
+ stress-malloc.c    |  2 +-
+ stress-pty.c       | 18 ------------------
+ stress-resources.c |  1 -
+ stress-stackmmap.c |  2 +-
+ 6 files changed, 7 insertions(+), 21 deletions(-)
+
+diff --git a/cache.c b/cache.c
+index fbf7674..936c1ff 100644
+--- a/cache.c
++++ b/cache.c
+@@ -28,6 +28,10 @@ typedef struct {
+ 
+ #include <glob.h>
+ 
++#ifndef GLOB_ONLYDIR
++#define GLOB_ONLYDIR    0x100
++#endif
++
+ #if defined(__linux__)
+ #define SYS_CPU_PREFIX               "/sys/devices/system/cpu"
+ #define GLOB_PATTERN SYS_CPU_PREFIX  "/cpu[0-9]*"
+diff --git a/stress-madvise.c b/stress-madvise.c
+index 9e71e11..ddf8d2d 100644
+--- a/stress-madvise.c
++++ b/stress-madvise.c
+@@ -147,6 +147,7 @@ static int stress_random_advise(const args_t *args)
+ #if defined(MADV_SOFT_OFFLINE)
+ 	if (advise == MADV_SOFT_OFFLINE) {
+ 		static int soft_offline_count;
++		static int poison_count;
+ 
+ 		/* ..and minimize number of soft offline pages */
+ 		if ((soft_offline_count >= NUM_SOFT_OFFLINE_MAX) ||
+diff --git a/stress-malloc.c b/stress-malloc.c
+index a46b8c6..427827a 100644
+--- a/stress-malloc.c
++++ b/stress-malloc.c
+@@ -99,7 +99,7 @@ int stress_malloc(const args_t *args)
+ 			malloc_max = MIN_MALLOC_MAX;
+ 	}
+ 
+-#if defined(__GNUC__) && defined(__linux__)
++#if defined(__GNUC__) && defined(__linux__) && defined(M_MMAP_THRESHOLD)
+ 	if (get_setting("malloc-threshold", &malloc_threshold))
+ 		(void)mallopt(M_MMAP_THRESHOLD, (int)malloc_threshold);
+ #endif
+diff --git a/stress-pty.c b/stress-pty.c
+index 1bd1fbd..b1fe573 100644
+--- a/stress-pty.c
++++ b/stress-pty.c
+@@ -26,7 +26,6 @@
+ 
+ #if defined(__linux__)
+ 
+-#include <termio.h>
+ #include <termios.h>
+ 
+ typedef struct {
+@@ -108,7 +107,6 @@ int stress_pty(const args_t *args)
+ 		 */
+ 		for (i = 0; i < n; i++) {
+ 			struct termios ios;
+-			struct termio io;
+ 			struct winsize ws;
+ 			int arg;
+ 
+@@ -130,22 +128,6 @@ int stress_pty(const args_t *args)
+ 			if (ioctl(ptys[i].slave, TCSETSF, &ios) < 0)
+ 				pr_fail_err("ioctl TCSETSF on slave pty");
+ #endif
+-#if defined(TCGETA)
+-			if (ioctl(ptys[i].slave, TCGETA, &io) < 0)
+-				pr_fail_err("ioctl TCGETA on slave pty");
+-#endif
+-#if defined(TCSETA)
+-			if (ioctl(ptys[i].slave, TCSETA, &io) < 0)
+-				pr_fail_err("ioctl TCSETA on slave pty");
+-#endif
+-#if defined(TCSETAW)
+-			if (ioctl(ptys[i].slave, TCSETAW, &io) < 0)
+-				pr_fail_err("ioctl TCSETAW on slave pty");
+-#endif
+-#if defined(TCSETAF)
+-			if (ioctl(ptys[i].slave, TCSETAF, &io) < 0)
+-				pr_fail_err("ioctl TCSETAF on slave pty");
+-#endif
+ #if defined(TIOCGLCKTRMIOS)
+ 			if (ioctl(ptys[i].slave, TIOCGLCKTRMIOS, &ios) < 0)
+ 				pr_fail_err("ioctl TIOCGLCKTRMIOS on slave pty");
+diff --git a/stress-resources.c b/stress-resources.c
+index 958c99a..af79abd 100644
+--- a/stress-resources.c
++++ b/stress-resources.c
+@@ -31,7 +31,6 @@
+ #include <sys/inotify.h>
+ #endif
+ #if defined(__linux__)
+-#include <termio.h>
+ #include <termios.h>
+ #endif
+ #if defined(HAVE_LIB_PTHREAD) && defined(__linux__)
+diff --git a/stress-stackmmap.c b/stress-stackmmap.c
+index 9c83a69..2984f09 100644
+--- a/stress-stackmmap.c
++++ b/stress-stackmmap.c
+@@ -24,7 +24,7 @@
+  */
+ #include "stress-ng.h"
+ 
+-#if defined(__linux__)
++#if defined(__linux__) && False
+ 
+ #include <ucontext.h>
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch
new file mode 100644
index 0000000..ed3287e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch
@@ -0,0 +1,25 @@
+From faadbc147394cea9278bc2494f33e3521d88e742 Mon Sep 17 00:00:00 2001
+From: Tim Orling <timothy.t.orling@linux.intel.com>
+Date: Tue, 9 Jan 2018 18:38:45 -0800
+Subject: [PATCH] stress-fcntl: fix build for musl
+
+Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
+
+Upstream-status: Pending
+
+---
+ stress-fcntl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/stress-fcntl.c b/stress-fcntl.c
+index 2ea867b..e91b345 100644
+--- a/stress-fcntl.c
++++ b/stress-fcntl.c
+@@ -415,6 +415,7 @@ ofd_lock_abort:	{ /* Nowt */ }
+ #if (defined(F_GET_FILE_RW_HINT) && defined(F_SET_FILE_RW_HINT)) | \
+     (defined(F_GET_RW_HINT) && defined(F_SET_RW_HINT))
+ 	{
++		int ret;
+ 		size_t i;
+ 		unsigned long hint;
+ 		static const unsigned long hints[] = {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb
new file mode 100644
index 0000000..7fab430
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb
@@ -0,0 +1,25 @@
+SUMMARY = "A tool to load and stress a computer system"
+HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "zlib libaio"
+
+SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
+           file://0002-stress-fcntl-fix-build-for-musl.patch \
+          "
+SRC_URI_append_libc-musl = " \
+    file://0001-Several-changes-to-fix-musl-build.patch \
+    "
+SRC_URI[md5sum] = "1f8b6c2c2830704d2a2814c16082d48e"
+SRC_URI[sha256sum] = "02cac34a5cb041197af60c1867844c6cbb089a6d10a38cdcf7b8f27bfaa6ef8f"
+
+UPSTREAM_CHECK_URI ?= "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/"
+UPSTREAM_CHECK_REGEX ?= "(?P<pver>\d+(\.\d+)+)\.tar"
+
+CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'"
+
+do_install_append() {
+    install -d ${D}${bindir}
+    install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/testfloat_3a.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/testfloat_3a.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb
diff --git a/import-layers/meta-openembedded/meta-oe/site/endian-big b/import-layers/meta-openembedded/meta-oe/site/endian-big
deleted file mode 100644
index 3a968e3..0000000
--- a/import-layers/meta-openembedded/meta-oe/site/endian-big
+++ /dev/null
@@ -1,2 +0,0 @@
-# rp-pppoe
-rpppoe_cv_pack_bitfields=${rpppoe_cv_pack_bitfields=normal}
diff --git a/import-layers/meta-openembedded/meta-oe/site/endian-little b/import-layers/meta-openembedded/meta-oe/site/endian-little
deleted file mode 100644
index 0bcd966..0000000
--- a/import-layers/meta-openembedded/meta-oe/site/endian-little
+++ /dev/null
@@ -1,2 +0,0 @@
-# rp-pppoe
-rpppoe_cv_pack_bitfields=${rpppoe_cv_pack_bitfields=rev}