Yocto 2.4

Move OpenBMC to Yocto 2.4(rocko)

Tested: Built and verified Witherspoon and Palmetto images
Change-Id: I12057b18610d6fb0e6903c60213690301e9b0c67
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/import-layers/meta-openembedded/meta-oe/README b/import-layers/meta-openembedded/meta-oe/README
index fdc5640..dabed2f 100644
--- a/import-layers/meta-openembedded/meta-oe/README
+++ b/import-layers/meta-openembedded/meta-oe/README
@@ -1,15 +1,15 @@
 This layer depends on:
 
 URI: git://github.com/openembedded/oe-core.git
-branch: pyro
+branch: rocko
 revision: HEAD
 
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][pyro]' in the subject'
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][rocko]' 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][pyro][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][rocko][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.
 
-pyro Branch Maintainer:
+rocko Branch Maintainer:
 Armin Kuster <akuster808@gmail.com>
diff --git a/import-layers/meta-openembedded/meta-oe/classes/dos2unix.bbclass b/import-layers/meta-openembedded/meta-oe/classes/dos2unix.bbclass
new file mode 100644
index 0000000..1bad998
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/classes/dos2unix.bbclass
@@ -0,0 +1,14 @@
+# Class for use to convert all CRLF line terminators to LF
+# provided that some projects are being developed/maintained
+# on Windows so they have different line terminators(CRLF) vs
+# on Linux(LF), which can cause annoying patching errors during
+# git push/checkout processes.
+
+do_convert_crlf_to_lf[depends] += "dos2unix-native:do_populate_sysroot"
+
+# Convert CRLF line terminators to LF
+do_convert_crlf_to_lf () {
+    find ${S} -type f -exec dos2unix {} \;
+}
+
+addtask convert_crlf_to_lf after do_unpack before do_patch
diff --git a/import-layers/meta-openembedded/meta-oe/classes/meson.bbclass b/import-layers/meta-openembedded/meta-oe/classes/meson.bbclass
index c33174a..a09bc24 100644
--- a/import-layers/meta-openembedded/meta-oe/classes/meson.bbclass
+++ b/import-layers/meta-openembedded/meta-oe/classes/meson.bbclass
@@ -10,10 +10,15 @@
 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)
@@ -27,12 +32,12 @@
               --includedir ${@noprefix('includedir', d)} \
               --mandir ${@noprefix('mandir', d)} \
               --infodir ${@noprefix('infodir', d)} \
-              --localedir ${@noprefix('localedir', d)} \
               --sysconfdir ${sysconfdir} \
               --localstatedir ${localstatedir} \
               --sharedstatedir ${sharedstatedir}"
 
-MESON_C_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
+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)}"
@@ -60,10 +65,11 @@
 pkgconfig = 'pkg-config'
 
 [properties]
+needs_exe_wrapper = true
 c_args = [${@meson_array('MESON_C_ARGS', d)}]
-cpp_args = [${@meson_array('TOOLCHAIN_OPTIONS', d)}]
-c_link_args = [${@meson_array('TOOLCHAIN_OPTIONS', d)}]
-cpp_link_args = [${@meson_array('TOOLCHAIN_OPTIONS', 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}'
diff --git a/import-layers/meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc b/import-layers/meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc
deleted file mode 100644
index 03868bf..0000000
--- a/import-layers/meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-# Build errors with the pie options enabled
-SECURITY_CFLAGS_pn-libdbus-c++ = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-libdevmapper = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-lvm2 = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-rrdtool = "${SECURITY_NO_PIE_CFLAGS}"
-
-# This has text reloc errors with the pie options enabled
-SECURITY_CFLAGS_pn-llvm3.3 = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-mozjs = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-openldap = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-s3c64xx-gpio = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-s3c24xx-gpio = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-cpufrequtils = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-libcec = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-libmodplug = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-libcdio = "${SECURITY_NO_PIE_CFLAGS}"
-
-#| /mnt/b/build/tmp-glibc/sysroots/intel-corei7-64/usr/lib/libc_nonshared.a(elf-init.oS): In function `__libc_csu_init':
-#| /usr/src/debug/glibc/2.24-r0/git/csu/elf-init.c:86: undefined reference to `__init_array_start'
-
-SECURITY_CFLAGS_pn-libvdpau = "${SECURITY_NO_PIE_CFLAGS}"
-
-#| /mnt/a/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/6.2.0/ld: lj_err_dyn.o: relocation R_X86_64_TPOFF32 against `static_uex' can not be used when making a shared object; recompile with -fPIC
-#| /mnt/a/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/6.2.0/ld: final link failed: Nonrepresentable section on output
-#| collect2: error: ld returned 1 exit status
-#| make[1]: *** [Makefile:675: libluajit.so] Error 1
-SECURITY_CFLAGS_pn-luajit = "${SECURITY_NO_PIE_CFLAGS}"
-
diff --git a/import-layers/meta-openembedded/meta-oe/conf/layer.conf b/import-layers/meta-openembedded/meta-oe/conf/layer.conf
index 54425c6..d84bd09 100644
--- a/import-layers/meta-openembedded/meta-oe/conf/layer.conf
+++ b/import-layers/meta-openembedded/meta-oe/conf/layer.conf
@@ -41,6 +41,7 @@
 "
 
 SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
+  android-tools->android-tools-conf \
   usb-modeswitch-data->usb-modeswitch \
   lmsensors->lmsensors-config \
   phoronix-test-suite->bash \
@@ -74,10 +75,3 @@
   source-han-sans-kr-fonts->fontconfig \
   source-han-sans-tw-fonts->fontconfig \
 "
-
-FREESMARTPHONE_GIT = "git://git.freesmartphone.org"
-
-# Override security flags
-require conf/distro/include/meta_oe_security_flags.inc
-
-HOSTTOOLS += "id"
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/FLTK b/import-layers/meta-openembedded/meta-oe/licenses/FLTK
new file mode 100644
index 0000000..9542075
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/FLTK
@@ -0,0 +1,530 @@
+                             FLTK License
+                           December 11, 2001
+
+The FLTK library and included programs are provided under the terms
+of the GNU Library General Public License (LGPL) with the following
+exceptions:
+
+    1. Modifications to the FLTK configure script, config
+       header file, and makefiles by themselves to support
+       a specific platform do not constitute a modified or
+       derivative work.
+
+      The authors do request that such modifications be
+      contributed to the FLTK project - send all contributions
+      through the "Software Trouble Report" on the following page:
+ 
+           http://www.fltk.org/str.php
+
+    2. Widgets that are subclassed from FLTK widgets do not
+       constitute a derivative work.
+
+    3. Static linking of applications and widgets to the
+       FLTK library does not constitute a derivative work
+       and does not require the author to provide source
+       code for the application or widget, use the shared
+       FLTK libraries, or link their applications or
+       widgets against a user-supplied version of FLTK.
+
+       If you link the application or widget to a modified
+       version of FLTK, then the changes to FLTK must be
+       provided under the terms of the LGPL in sections
+       1, 2, and 4.
+
+    4. You do not have to provide a copy of the FLTK license
+       with programs that are linked to the FLTK library, nor
+       do you have to identify the FLTK license in your
+       program or documentation as required by section 6
+       of the LGPL.
+
+       However, programs must still identify their use of FLTK.
+       The following example statement can be included in user
+       documentation to satisfy this requirement:
+
+           [program/widget] is based in part on the work of
+           the FLTK project (http://www.fltk.org).
+
+-----------------------------------------------------------------------
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+			 Version 2, June 1991
+
+	  Copyright (C) 1991 Free Software Foundation, Inc.
+       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+     Everyone is permitted to copy and distribute verbatim copies
+      of this license document, but changing it is not allowed.
+
+    [This is the first released version of the library GPL.  It is
+   numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+			       Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+     Appendix: How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/Intel b/import-layers/meta-openembedded/meta-oe/licenses/Intel
deleted file mode 100644
index eb81dd7..0000000
--- a/import-layers/meta-openembedded/meta-oe/licenses/Intel
+++ /dev/null
@@ -1,21 +0,0 @@
-License for Contributions to ACPICA
-
-Copyright (c) 2000 – 2015 Intel Corp.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-2. 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.
-
-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 HOLDER 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 BUSINES
-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.
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/UFL b/import-layers/meta-openembedded/meta-oe/licenses/UFL
new file mode 100644
index 0000000..e78ac4a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/UFL
@@ -0,0 +1,97 @@
+-------------------------------
+UBUNTU FONT LICENCE Version 1.0
+-------------------------------
+
+PREAMBLE
+This licence allows the licensed fonts to be used, studied, modified and
+redistributed freely. The fonts, including any derivative works, can be
+bundled, embedded, and redistributed provided the terms of this licence
+are met. The fonts and derivatives, however, cannot be released under
+any other licence. The requirement for fonts to remain under this
+licence does not require any document created using the fonts or their
+derivatives to be published under this licence, as long as the primary
+purpose of the document is not to be a vehicle for the distribution of
+the fonts.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this licence and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Original Version" refers to the collection of Font Software components
+as received under this licence.
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to
+a new environment.
+
+"Copyright Holder(s)" refers to all individuals and companies who have a
+copyright ownership of the Font Software.
+
+"Substantially Changed" refers to Modified Versions which can be easily
+identified as dissimilar to the Font Software by users of the Font
+Software comparing the Original Version with the Modified Version.
+
+To "Propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification and with or without charging
+a redistribution fee), making available to the public, and in some
+countries other activities as well.
+
+PERMISSION & CONDITIONS
+This licence does not grant any rights under trademark law and all such
+rights are reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of the Font Software, to propagate the Font Software, subject to
+the below conditions:
+
+1) Each copy of the Font Software must contain the above copyright
+notice and this licence. These can be included either as stand-alone
+text files, human-readable headers or in the appropriate machine-
+readable metadata fields within text or binary files as long as those
+fields can be easily viewed by the user.
+
+2) The font name complies with the following:
+(a) The Original Version must retain its name, unmodified.
+(b) Modified Versions which are Substantially Changed must be renamed to
+avoid use of the name of the Original Version or similar names entirely.
+(c) Modified Versions which are not Substantially Changed must be
+renamed to both (i) retain the name of the Original Version and (ii) add
+additional naming elements to distinguish the Modified Version from the
+Original Version. The name of such Modified Versions must be the name of
+the Original Version, with "derivative X" where X represents the name of
+the new work, appended to that name.
+
+3) The name(s) of the Copyright Holder(s) and any contributor to the
+Font Software shall not be used to promote, endorse or advertise any
+Modified Version, except (i) as required by this licence, (ii) to
+acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with
+their explicit written permission.
+
+4) The Font Software, modified or unmodified, in part or in whole, must
+be distributed entirely under this licence, and must not be distributed
+under any other licence. The requirement for fonts to remain under this
+licence does not affect any document created using the Font Software,
+except any version of the Font Software extracted from a document
+created using the Font Software may only be distributed under this
+licence.
+
+TERMINATION
+This licence becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
+DEALINGS IN THE FONT SOFTWARE.
+
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/X11 b/import-layers/meta-openembedded/meta-oe/licenses/X11
new file mode 100644
index 0000000..da3e406
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/X11
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2008 Alex Graveley
+ * Copyright (C) 2010 Ulrik Sverdrup <ulrik.sverdrup@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch
new file mode 100644
index 0000000..6a5350c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch
@@ -0,0 +1,81 @@
+dhrystone: fix compilation problems
+
+This patch fixes two compilation errors with original
+dhrystone sources:
+* Redefinition of times() with wrong return type
+  - Fixed by commenting out the unnecessary redefinition
+* Undefined identifier HZ
+  - Originally HZ was supposed to be the clock frequency
+    value for times()
+  - For Linux, the frequency should come from sysconf
+  - This patch defines global varible HZ and initializes
+    it from sysconf
+
+Additionally, this patch adds a simple Makefile.
+
+Upstream-status: Pending
+
+Sign-off-by: Kimmo Surakka <kimmo.surakka@ge.com>
+Signed-off-by: Jose Alarcon <jose.alarcon@ge.com>
+---
+
+diff -Naur dhry.orig/dhry_1.c dhry/dhry_1.c
+--- dhry.orig/dhry_1.c	2015-07-20 14:25:58.059945353 +0300
++++ dhry/dhry_1.c	2015-07-20 12:43:25.318945353 +0300
+@@ -45,11 +45,15 @@
+ 
+ #ifdef TIMES
+ struct tms      time_info;
+-extern  int     times ();
++/* extern  int     times (); */
+                 /* see library function "times" */
+ #define Too_Small_Time 120
+                 /* Measurements should last at least about 2 seconds */
+ #endif
++#ifndef HZ
++#include <unistd.h>  /* sysconf */
++   long HZ;
++#endif
+ #ifdef TIME
+ extern long     time();
+                 /* see library function "time"  */
+@@ -84,6 +88,9 @@
+ 
+   /* Initializations */
+ 
++#ifndef HZ
++  HZ = sysconf(_SC_CLK_TCK);
++#endif
+   Next_Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
+   Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
+ 
+diff -Naur dhry.orig/dhry.h dhry/dhry.h
+--- dhry.orig/dhry.h	2015-07-20 14:25:58.054945353 +0300
++++ dhry/dhry.h	2015-07-20 12:42:59.903945353 +0300
+@@ -420,4 +420,6 @@
+           } variant;
+       } Rec_Type, *Rec_Pointer;
+ 
+-
++#ifndef HZ
++   extern long HZ;
++#endif
+diff -Naur dhry.orig/Makefile dhry/Makefile
+--- dhry.orig/Makefile	1970-01-01 02:00:00.000000000 +0200
++++ dhry/Makefile	2015-07-20 14:10:45.832945353 +0300
+@@ -0,0 +1,15 @@
++CC=gcc
++
++all: dhry
++
++dhry: dhry_1.o dhry_2.o
++	$(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS)
++
++dhry_1.o: dhry_1.c dhry.h
++
++dhry_2.o: dhry_2.c dhry.h
++
++clean:
++	rm -f *.o *~
++
++.PHONY: all clean
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb
new file mode 100644
index 0000000..17e8c70
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Dhrystone CPU benchmark"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851"
+
+SRC_URI = "http://www.netlib.org/benchmark/dhry-c;downloadfilename=dhry-c.shar \
+           file://dhrystone.patch"
+SRC_URI[md5sum] = "75aa5909c174eed98c134be2f56307da"
+SRC_URI[sha256sum] = "038a7e9169787125c3451a6c941f3aca5db2d2f3863871afcdce154ef17f4e3e"
+
+# Need to override Makefile variables
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_unpack() {
+    [ -d ${S} ] || mkdir -p ${S}
+    cd ${S}
+    sh ${DL_DIR}/dhry-c.shar
+}
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/dhry ${D}${bindir}
+}
+
+# Prevent procedure merging as required by dhrystone.c:
+CFLAGS += "-fno-lto"
+
+LDFLAGS += "-fno-lto"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch
new file mode 100644
index 0000000..cdf09fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch
@@ -0,0 +1,31 @@
+From 35e9f80518d666db5f9c62e8072ffbc307b4af4f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 26 Aug 2017 08:30:01 -0700
+Subject: [PATCH] Fix clang warnings
+
+../src/native-state-drm.cpp:334:20: error: cannot pass object of non-trivial type 'std::__cxx11::basic_string<char>' through variadic function; call will abort at runtime [-Wnon-pod-varargs]
+                   dev_path);
+                   ^
+1 error generated.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/native-state-drm.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/native-state-drm.cpp b/src/native-state-drm.cpp
+index dc2b323..62566ee 100644
+--- a/src/native-state-drm.cpp
++++ b/src/native-state-drm.cpp
+@@ -331,7 +331,7 @@ static int open_using_udev_scan()
+     if (!valid_fd(fd)) {
+         // %m is GLIBC specific... Maybe use strerror here...
+         Log::error("Tried to use '%s' but failed.\nReason : %m",
+-                   dev_path);
++                   dev_path.c_str());
+     }
+     else
+         Log::debug("Success!\n");
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch
deleted file mode 100644
index 4395081..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 9c74ec83e2929b1d5ab65d5137b6ba42edeb332d Mon Sep 17 00:00:00 2001
-From: Yong Gan <b45748@freescale.com>
-Date: Tue, 27 Oct 2015 18:15:20 +0800
-Subject: [PATCH] Fix: wl_surface should be destoryed after the wl_window
- destroyed.
-
-Upstream-Status: Submitted [https://github.com/glmark2/glmark2/issues/12]
-
-Signed-off-by: Yong Gan <b45748@freescale.com>
-
----
- src/native-state-wayland.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/native-state-wayland.cpp b/src/native-state-wayland.cpp
-index 41fc743..cdcdf34 100644
---- a/src/native-state-wayland.cpp
-+++ b/src/native-state-wayland.cpp
-@@ -56,10 +56,10 @@ NativeStateWayland::~NativeStateWayland()
-             wl_shell_surface_destroy(window_->shell_surface);
-         if (window_->opaque_reqion)
-             wl_region_destroy(window_->opaque_reqion);
--        if (window_->surface)
--            wl_surface_destroy(window_->surface);
-         if (window_->native)
-             wl_egl_window_destroy(window_->native);
-+        if (window_->surface)
-+            wl_surface_destroy(window_->surface);
-         delete window_;
-     }
- 
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 26c5c04..b72ced0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -8,21 +8,24 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
 
-DEPENDS = "libpng12 jpeg"
+DEPENDS = "libpng jpeg udev"
 
-PV = "2014.03+${SRCPV}"
+PV = "2017.07+${SRCPV}"
 
-SRC_URI = " \
-    git://github.com/glmark2/glmark2.git;protocol=https \
-    file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch \
-    file://0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch \
-    file://Fix-configure-for-sqrt-check.patch \
-"
-SRCREV = "f413c5b423250b4fde8f95639ad368d5b02c5b9b"
+COMPATIBLE_HOST_rpi  = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '.*-linux*', 'null', d)}"
+
+SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \
+           file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch \
+           file://Fix-configure-for-sqrt-check.patch \
+           file://0001-Fix-clang-warnings.patch \
+           "
+SRCREV = "ed20c633f1926d1dd78e3e89043c85a81302cbe6"
 
 S = "${WORKDIR}/git"
 
-inherit waf pkgconfig
+inherit waf pkgconfig distro_features_check
+
+REQUIRED_DISTRO_FEATURES += "opengl"
 
 PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl x11-gles2', '', d)} \
                   ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gl wayland-gles2', '', d)} \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
index 4a01896..4d1b0c4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
@@ -9,7 +9,9 @@
 BUGTRACKER = "https://github.com/esnet/iperf/issues"
 AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
 LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3434c5a9a53c78c7739f0bc9e5adda"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d098223e44bdd19585315ee75cd9d2d7"
+
+DEPENDS = "openssl"
 
 SRC_URI = "git://github.com/esnet/iperf.git \
            file://automake-foreign.patch \
@@ -17,8 +19,7 @@
            file://0002-Remove-pg-from-profile_CFLAGS.patch \
            "
 
-PV = "3.1.3+gitr${SRCPV}"
-SRCREV = "099244ec686b620393e9845478a554b1c7ca5c8b"
+SRCREV = "88d907f7fb58bfab5d086c5da60c922e1c582c92"
 
 S = "${WORKDIR}/git"
 
@@ -28,4 +29,6 @@
 
 CFLAGS += "-D_GNU_SOURCE"
 
+EXTRA_OECONF = "--with-openssl=${RECIPE_SYSROOT}"
+
 BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
deleted file mode 100644
index 676fa8a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-Upstream-Status: Inappropriate [oe-core specific]
-
-
-fix the below error:
-  ERROR: QA Issue: libhugetlbfs: Files/directories were installed but not shipped
-  /usr/lib64
-  /usr/lib64/libhugetlbfs.so
-  /usr/lib64/libhugetlbfs.a
-  /usr/lib64/libhugetlbfs_privutils.so
-  /usr/lib64/perl5
-  /usr/lib64/perl5/TLBC
-  /usr/lib64/perl5/TLBC/PerfCollect.pm
-  /usr/lib64/perl5/TLBC/Report.pm
-  /usr/lib64/perl5/TLBC/DataCollect.pm
-  /usr/lib64/perl5/TLBC/OpCollect.pm
-$<50>ERROR: QA run found fatal errors. Please consider fixing them.
-
-
-Signed-off-by: Guo Chunrong <B40290@freescale.com>
-
---- a/Makefile	2013-09-23 02:28:57.340566998 -0500
-+++ b/Makefile	2013-09-23 02:31:05.344569896 -0500
-@@ -33,7 +33,6 @@
- CPPFLAGS += -D__LIBHUGETLBFS__ -DPPC_NO_SEGMENTS
- 
- ARCH = $(shell uname -m | sed -e s/i.86/i386/)
--CC = gcc
- 
- CUSTOM_LDSCRIPTS = yes
- 
-@@ -59,9 +58,9 @@
- CUSTOM_LDSCRIPTS = no
- else
- ifeq ($(ARCH),aarch64)
--CC64 = gcc
-+CC64 = $(CC)
- ELF64 = aarch64elf
--TMPLIB64 = lib64
-+TMPLIB64 = lib
- CUSTOM_LDSCRIPTS = no
- else
- ifeq ($(ARCH),i386)
-@@ -72,7 +71,7 @@
- ifeq ($(ARCH),x86_64)
- CC64 = $(CC) -m64
- ELF64 = elf_x86_64
--TMPLIB64 = lib64
-+TMPLIB64 = lib
- TMPLIB32 = lib
- ifneq ($(BUILDTYPE),NATIVEONLY)
- CC32 = $(CC) -m32
-@@ -172,11 +171,23 @@
- BINDIR = $(PREFIX)/share/libhugetlbfs
- EXEDIR = $(PREFIX)/bin
- DOCDIR = $(PREFIX)/share/doc/libhugetlbfs
-+
- ifdef CC32
- PMDIR = $(PREFIX)/lib/perl5/TLBC
-+endif
-+
-+ifdef CC64
-+ifeq ($(ARCH),x86_64)
-+PMDIR = $(PREFIX)/lib/perl5/TLBC
-+else
-+ifeq ($(ARCH),aarch64)
-+PMDIR = $(PREFIX)/lib/perl5/TLBC
- else
- PMDIR = $(PREFIX)/lib64/perl5/TLBC
- endif
-+endif
-+endif
-+
- MANDIR1 = $(PREFIX)/share/man/man1
- MANDIR3 = $(PREFIX)/share/man/man3
- MANDIR7 = $(PREFIX)/share/man/man7
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index 823e07c..a63494a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -33,6 +33,8 @@
 PARALLEL_MAKE = ""
 CFLAGS += "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -g0"
 
+export HUGETLB_LDSCRIPT_PATH="${S}/ldscripts"
+
 TARGET_CC_ARCH += "${LDFLAGS}"
 
 #The CUSTOM_LDSCRIPTS doesn't work with the gold linker
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
index 56272d9..da2cb4b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
@@ -1,3 +1,4 @@
+SUMMARY = "A CPU benchmark utility"
 DESCRIPTION = "BYTE Magazine's native benchmarks (also called BYTEmark) \
 designed to expose the capabilities of a system's CPU, FPU, \
 and memory system."
@@ -6,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://README;beginline=57;endline=66;md5=020ef579f8fa5746b7e307a54707834f"
 SECTION = "console/utils"
 
-SRC_URI = "http://www.tux.org/~mayer/linux/${BP}.tar.gz \
+SRC_URI = "https://fossies.org/linux/misc/${BP}.tar.gz \
            file://nbench_32bits.patch \
            file://Makefile-add-more-dependencies-to-pointer.h.patch"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb
similarity index 80%
rename from import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.6.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb
index b321779..3ccd5db 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.6.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb
@@ -6,8 +6,8 @@
 SECTION = "console/tests"
 
 SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "5bcac5896a4a34fc6ae4ae94991e1637"
-SRC_URI[sha256sum] = "631ceb808d8bd6cebe69c8b711d55090d6880e906a65837f18fa8200fe7d2c4d"
+SRC_URI[md5sum] = "86fa3eede43ffff88992fe21368b11b7"
+SRC_URI[sha256sum] = "de9aec3ef4f980581756fd0bf7b30dd1ccb20e7aae637078a587606bf75a6b67"
 
 S = "${WORKDIR}/phoronix-test-suite"
 
@@ -34,5 +34,3 @@
     ${datadir}/mime/packages/openbenchmarking-mime.xml \
     ${systemd_unitdir}/* \
 "
-
-PNBLACKLIST[phoronix-test-suite] ?= "Runtime depends on blacklisted php-cli - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/pmbw/pmbw_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/pmbw/pmbw_git.bb
deleted file mode 100644
index 8113da7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/pmbw/pmbw_git.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMERY = "Parallel Memory Bandwidth Measurement / Benchmark"
-DESCRIPTION = "\
-The tool pmbw is a set of assembler routines to measure the parallel memory \
-(cache and RAM) bandwidth of modern multi-core machines."
-HOMEPAGE = "http://panthema.net/2013/pmbw/"
-SECTION = "benchmark/tests"
-AUTHOR = "Timo Bingmann"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "git://github.com/bingmann/pmbw;protocol=https"
-
-PV = "0.6.2+git${SRCPV}"
-SRCREV = "4a3b37728060a8aba06fc83f157a1965088d79d6"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-# the hand coded asm uses r11, which therefore cannot be used for storing
-# the frame pointer when debugging on arm
-SELECTED_OPTIMIZATION_remove_arm = "-fno-omit-frame-pointer"
-
-PACKAGES =+ "${PN}-stats2gnuplot"
-
-FILES_${PN}-stats2gnuplot = "${bindir}/stats2gnuplot"
-
-RRECOMMENDS_${PN} = "${PN}-stats2gnuplot"
-
-PNBLACKLIST[pmbw] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130568/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Specify-printf-formats.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Specify-printf-formats.patch
new file mode 100644
index 0000000..cfd34f0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Specify-printf-formats.patch
@@ -0,0 +1,49 @@
+From b08e61ef64eece23ce8ffa2784cd3c4f70b6169e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 08:08:56 -0700
+Subject: [PATCH] Specify printf formats
+
+Fixes
+tiotest.c:555:4: error: format not a string literal and no format arguments [-Werror=format-security]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tiotest.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tiotest.c b/tiotest.c
+index 6b3d0c3..3e6166a 100644
+--- a/tiotest.c
++++ b/tiotest.c
+@@ -91,7 +91,7 @@ inline void checkIntZero(int value, char *mess)
+ {
+ 	if (value <= 0) 
+ 	{
+-		printf(mess);
++		printf("%s",mess);
+ 		printf("Try 'tiotest -h' for more information.\n");
+ 		exit(1);
+ 	}
+@@ -101,7 +101,7 @@ inline void checkLong(long value, char *mess)
+ {
+ 	if (value < 0) 
+ 	{
+-		printf(mess);
++		printf("%s", mess);
+ 		printf("Try 'tiotest -h' for more information\n");
+ 		exit(1);
+ 	}
+@@ -552,7 +552,7 @@ void do_test( ThreadTest *test, int testCase, int sequential,
+ 		if(args.debugLevel > 4)
+ 		{
+ 			printf("Created %d threads\n", i);
+-			fprintf(stderr, debugMessage);
++			fprintf(stderr, "%s",  debugMessage);
+ 			fflush(stderr);
+ 		}
+ 	
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
index 35af35f..427ce67 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
@@ -10,6 +10,7 @@
     file://tiobench-makefile.patch \
     file://avoid-glibc-clashes.patch \
     file://0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch \
+    file://0001-Specify-printf-formats.patch \
 "
 SRC_URI[md5sum] = "bf485bf820e693c79e6bd2a38702a128"
 SRC_URI[sha256sum] = "8ad011059a35ac70cdb5e3d3999ceee44a8e8e9078926844b0685b7ea9db2bcc"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch
deleted file mode 100644
index 0c77f1a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Pending [package obsolete/not maintained by upstream]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd bluez-hcidump-2.5/configure.ac bluez-hcidump-2.5/configure.ac
---- bluez-hcidump-2.5/configure.ac	2012-11-30 10:29:41.000000000 +0200
-+++ bluez-hcidump-2.5/configure.ac	2013-01-12 10:02:10.609511463 +0200
-@@ -2,7 +2,7 @@
- AC_INIT(bluez-hcidump, 2.5)
-
- AM_INIT_AUTOMAKE([foreign subdir-objects])
--AM_CONFIG_HEADER(config.h)
-+AC_CONFIG_HEADERS(config.h)
-
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb
deleted file mode 100644
index 3a15d64..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Linux Bluetooth Stack HCI Debugger Tool"
-DESCRIPTION = "The hcidump tool reads raw HCI data coming from and going to a Bluetooth device \
-and displays the commands, events and data in a human-readable form."
-
-SECTION = "console"
-# hcidump was integrated into bluez5
-DEPENDS = "bluez4"
-RCONFLICTS_${PN} = "bluez5"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
-                    file://src/hcidump.c;beginline=1;endline=23;md5=3bee3a162dff43a5be7470710b99fbcf"
-PR = "r1"
-
-PNBLACKLIST[bluez-hcidump] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/bluez-hcidump-${PV}.tar.gz \
-           file://obsolete_automake_macros.patch \
-"
-
-SRC_URI[md5sum] = "2eab54bbd2b59a2ed4274ebb9390cf18"
-SRC_URI[sha256sum] = "9b7c52b375081883738cf049ecabc103b97d094b19c6544fb241267905d88881"
-S = "${WORKDIR}/bluez-hcidump-${PV}"
-
-inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/bluetooth.conf b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/bluetooth.conf
deleted file mode 100644
index ca5e9e4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/bluetooth.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- This configuration file specifies the required security policies
-     for Bluetooth core daemon to work. -->
-
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
-
-  <!-- ../system.conf have denied everything, so we just punch some holes -->
-
-  <policy context="default">
-    <allow own="org.bluez"/>
-    <allow send_destination="org.bluez"/>
-    <allow send_interface="org.bluez.Agent"/>
-  </policy>
-
-</busconfig>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix-udev-paths.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix-udev-paths.patch
deleted file mode 100644
index 8089914..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix-udev-paths.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Add udevdir/udevrulesdir options
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: bluez-4.101/Makefile.am
-===================================================================
---- bluez-4.101.orig/Makefile.am
-+++ bluez-4.101/Makefile.am
-@@ -395,7 +395,7 @@ EXTRA_DIST += audio/bluetooth.conf
- include Makefile.tools
- 
- if DATAFILES
--rulesdir = @UDEV_DIR@/rules.d
-+rulesdir = @UDEV_RULES_DIR@
- 
- udev_files =
- 
-Index: bluez-4.101/configure.ac
-===================================================================
---- bluez-4.101.orig/configure.ac
-+++ bluez-4.101/configure.ac
-@@ -61,4 +61,14 @@ if (test -n "${path_systemdunit}"); then
- fi
- AM_CONDITIONAL(SYSTEMD, test -n "${path_systemdunit}")
- 
-+AC_ARG_WITH([udevdir],
-+    AS_HELP_STRING([--with-udevdir=DIR], [udev directory]),
-+    [], [with_udevdir=/lib/udev/])
-+AC_SUBST([UDEV_DIR], [$with_udevdir])
-+
-+AC_ARG_WITH([udevrulesdir],
-+    AS_HELP_STRING([--with-udevrulesdir=DIR], [udev rules directory]),
-+    [], [with_udevrulesdir=/lib/udev/rules.d])
-+AC_SUBST([UDEV_RULES_DIR], [$with_udevrulesdir])
-+
- AC_OUTPUT(Makefile doc/version.xml src/bluetoothd.8 src/bluetooth.service bluez.pc)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix_encrypt_collision.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix_encrypt_collision.patch
deleted file mode 100644
index 1bc390f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix_encrypt_collision.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-Avoid namepspace collision with encrypt function from libc
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: bluez-4.101/test/l2test.c
-===================================================================
---- bluez-4.101.orig/test/l2test.c
-+++ bluez-4.101/test/l2test.c
-@@ -107,7 +107,7 @@ static char *filename = NULL;
- static int rfcmode = 0;
- static int master = 0;
- static int auth = 0;
--static int encrypt = 0;
-+static int encryption_request = 0;
- static int secure = 0;
- static int socktype = SOCK_SEQPACKET;
- static int linger = 0;
-@@ -340,7 +340,7 @@ static int do_connect(char *svr)
- 		opt |= L2CAP_LM_MASTER;
- 	if (auth)
- 		opt |= L2CAP_LM_AUTH;
--	if (encrypt)
-+	if (encryption_request)
- 		opt |= L2CAP_LM_ENCRYPT;
- 	if (secure)
- 		opt |= L2CAP_LM_SECURE;
-@@ -475,7 +475,7 @@ static void do_listen(void (*handler)(in
- 		opt |= L2CAP_LM_MASTER;
- 	if (auth)
- 		opt |= L2CAP_LM_AUTH;
--	if (encrypt)
-+	if (encryption_request)
- 		opt |= L2CAP_LM_ENCRYPT;
- 	if (secure)
- 		opt |= L2CAP_LM_SECURE;
-@@ -1407,7 +1407,7 @@ int main(int argc, char *argv[])
- 			break;
- 
- 		case 'E':
--			encrypt = 1;
-+			encryption_request = 1;
- 			break;
- 
- 		case 'S':
-Index: bluez-4.101/test/rctest.c
-===================================================================
---- bluez-4.101.orig/test/rctest.c
-+++ bluez-4.101/test/rctest.c
-@@ -79,7 +79,7 @@ static char *filename = NULL;
- 
- static int master = 0;
- static int auth = 0;
--static int encrypt = 0;
-+static int encryption_request = 0;
- static int secure = 0;
- static int socktype = SOCK_STREAM;
- static int linger = 0;
-@@ -200,7 +200,7 @@ static int do_connect(const char *svr)
- 		opt |= RFCOMM_LM_MASTER;
- 	if (auth)
- 		opt |= RFCOMM_LM_AUTH;
--	if (encrypt)
-+	if (encryption_request)
- 		opt |= RFCOMM_LM_ENCRYPT;
- 	if (secure)
- 		opt |= RFCOMM_LM_SECURE;
-@@ -291,7 +291,7 @@ static void do_listen(void (*handler)(in
- 		opt |= RFCOMM_LM_MASTER;
- 	if (auth)
- 		opt |= RFCOMM_LM_AUTH;
--	if (encrypt)
-+	if (encryption_request)
- 		opt |= RFCOMM_LM_ENCRYPT;
- 	if (secure)
- 		opt |= RFCOMM_LM_SECURE;
-@@ -701,7 +701,7 @@ int main(int argc, char *argv[])
- 			break;
- 
- 		case 'E':
--			encrypt = 1;
-+			encryption_request = 1;
- 			break;
- 
- 		case 'S':
-Index: bluez-4.101/src/textfile.h
-===================================================================
---- bluez-4.101.orig/src/textfile.h
-+++ bluez-4.101/src/textfile.h
-@@ -24,6 +24,8 @@
- #ifndef __TEXTFILE_H
- #define __TEXTFILE_H
- 
-+#include <sys/types.h>
-+
- int create_dirs(const char *filename, const mode_t mode);
- int create_file(const char *filename, const mode_t mode);
- int create_name(char *buf, size_t size, const char *path,
-Index: bluez-4.101/test/attest.c
-===================================================================
---- bluez-4.101.orig/test/attest.c
-+++ bluez-4.101/test/attest.c
-@@ -34,6 +34,7 @@
- #include <termios.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
-+#include <sys/select.h>
- 
- #include <bluetooth/bluetooth.h>
- #include <bluetooth/rfcomm.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch
deleted file mode 100644
index 23f7d99..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Upstream-Status: Inappropriate
-
-Install the bluez's test scripts
-
-Signed-off-by: Zhong Hongbo <hongbo.zhong@windriver.com>
-diff -Nurd bluez-4.101.orig/Makefile.tools bluez-4.101/Makefile.tools
---- bluez-4.101.orig/Makefile.tools	2013-11-19 15:49:07.688838000 +0800
-+++ bluez-4.101/Makefile.tools	2013-11-19 15:50:09.256837848 +0800
-@@ -227,6 +227,17 @@
- 		test/service-spp.xml test/service-opp.xml test/service-ftp.xml \
- 		test/simple-player test/test-nap
- 
-+bluez4_testdir = $(libdir)/bluez4/test/
-+dist_bluez4_test_SCRIPTS = test/sap-client test/hsplay test/hsmicro \
-+		test/monitor-bluetooth test/list-devices \
-+		test/test-discovery test/test-manager test/test-adapter \
-+		test/test-device test/test-service test/test-serial \
-+		test/test-telephony test/test-network test/simple-agent \
-+		test/simple-service test/simple-endpoint test/test-audio \
-+		test/test-input test/test-sap-server test/test-oob \
-+		test/test-attrib test/test-proximity test/test-thermometer \
-+		test/test-serial-proxy test/test-health test/test-health-sink \
-+		test/simple-player test/test-nap
- if HIDD
- bin_PROGRAMS += compat/hidd
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/network-fix-network-Connect-method-parameters.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/network-fix-network-Connect-method-parameters.patch
deleted file mode 100644
index 37f9199..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/network-fix-network-Connect-method-parameters.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
-
-From 57170b311f1468330f4a9961dc0b3ac45f97bc13 Mon Sep 17 00:00:00 2001
-From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
-Date: Sat, 30 Jun 2012 00:39:05 -0300
-Subject: [PATCH] network: fix network Connect() method parameters
-
----
- network/connection.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/network/connection.c b/network/connection.c
-index 544ec3a..59423a9 100644
---- a/network/connection.c
-+++ b/network/connection.c
-@@ -554,7 +554,9 @@ static void path_unregister(void *data)
- 
- static const GDBusMethodTable connection_methods[] = {
- 	{ GDBUS_ASYNC_METHOD("Connect",
--			NULL, NULL, connection_connect) },
-+				GDBUS_ARGS({"uuid", "s"}),
-+				GDBUS_ARGS({"interface", "s"}),
-+				connection_connect) },
- 	{ GDBUS_METHOD("Disconnect",
- 			NULL, NULL, connection_disconnect) },
- 	{ GDBUS_METHOD("GetProperties",
--- 
-1.7.9.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/obsolete_automake_macros.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/obsolete_automake_macros.patch
deleted file mode 100644
index 1068f24..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Backport
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd bluez-4.101/configure.ac bluez-4.101/configure.ac
---- bluez-4.101/configure.ac	2012-06-22 19:36:49.000000000 +0300
-+++ bluez-4.101/configure.ac	2013-01-07 06:13:18.385888966 +0200
-@@ -2,7 +2,7 @@
- AC_INIT(bluez, 4.101)
-
- AM_INIT_AUTOMAKE([foreign subdir-objects color-tests])
--AM_CONFIG_HEADER(config.h)
-+AC_CONFIG_HEADERS(config.h)
-
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/sbc_mmx.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/sbc_mmx.patch
deleted file mode 100644
index 98fab45..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/sbc_mmx.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-on x86 and x86_64 gcc 4.7 complains
-
-sbc/sbc_primitives_mmx.c: In function 'sbc_calc_scalefactors_mmx':
-sbc/sbc_primitives_mmx.c:294:4: warning: asm operand 2 probably doesn't match constraints [enabled by default]
-sbc/sbc_primitives_mmx.c:294:4: error: impossible constraint in 'asm'
-
-This patch is taken from https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/911871
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-Index: bluez-4.98/sbc/sbc_primitives_mmx.c
-===================================================================
---- bluez-4.98.orig/sbc/sbc_primitives_mmx.c	2011-12-21 14:53:54.000000000 -0800
-+++ bluez-4.98/sbc/sbc_primitives_mmx.c	2012-02-24 10:07:03.422073800 -0800
-@@ -318,7 +318,7 @@
- 				"movl          %k0, 4(%3)\n"
- 			: "+r" (blk)
- 			: "r" (&sb_sample_f[0][ch][sb]),
--				"i" ((char *) &sb_sample_f[1][0][0] -
-+				"r" ((char *) &sb_sample_f[1][0][0] -
- 					(char *) &sb_sample_f[0][0][0]),
- 				"r" (&scale_factor[ch][sb]),
- 				"r" (&consts),
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4.inc b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4.inc
deleted file mode 100644
index 5240ccf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4.inc
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "Linux Bluetooth Stack Userland V4"
-DESCRIPTION = "Linux Bluetooth stack V4 userland components.  These include a system configurations, daemons, tools and system libraries."
-HOMEPAGE = "http://www.bluez.org"
-SECTION = "libs"
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
-                    file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \
-                    file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e \
-                    file://sbc/sbc.c;beginline=1;endline=25;md5=1a40781ed30d50d8639323a184aeb191"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-
-DEPENDS = "udev libusb dbus-glib glib-2.0 libcheck readline libsndfile1"
-RDEPENDS_${PN}-dev = "bluez-hcidump"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pie systemd', d)}"
-PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
-PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,"
-PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
-
-ASNEEDED = ""
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.gz"
-S = "${WORKDIR}/bluez-${PV}"
-
-inherit autotools-brokensep pkgconfig systemd
-
-EXTRA_OECONF = "\
-    --disable-gstreamer \
-    --enable-usb \
-    --enable-tools \
-    --enable-bccmd \
-    --enable-hid2hci \
-    --enable-dfutool \
-    --disable-hidd \
-    --disable-pand \
-    --disable-dund \
-    --disable-cups \
-    --enable-test \
-    --enable-datafiles \
-    --with-udevdir=`pkg-config --variable=udevdir udev` \
-    --with-udevrulesdir=`pkg-config --variable=udevdir udev`/rules.d \
-"
-
-EXCLUDE_FROM_WORLD = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb
deleted file mode 100644
index d6d16c0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-require bluez4.inc
-
-PNBLACKLIST[bluez4] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-PR = "r11"
-
-SRC_URI += "file://bluetooth.conf \
-            file://sbc_mmx.patch \
-            file://fix-udev-paths.patch \
-            file://obsolete_automake_macros.patch \
-            file://network-fix-network-Connect-method-parameters.patch \
-            file://install-test-script.patch \
-            file://fix_encrypt_collision.patch \
-"
-
-SRC_URI[md5sum] = "fb42cb7038c380eb0e2fa208987c96ad"
-SRC_URI[sha256sum] = "59738410ade9f0e61a13c0f77d9aaffaafe49ba9418107e4ad75fe52846f7487"
-
-RCONFLICTS_${PN} = "bluez5"
-
-do_install_append() {
-    install -m 0644 ${S}/audio/audio.conf ${D}/${sysconfdir}/bluetooth/
-    install -m 0644 ${S}/network/network.conf ${D}/${sysconfdir}/bluetooth/
-    install -m 0644 ${S}/input/input.conf ${D}/${sysconfdir}/bluetooth/
-    # at_console doesn't really work with the current state of OE, so punch some more holes so people can actually use BT
-    install -m 0644 ${WORKDIR}/bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d/
-}
-
-RDEPENDS_${PN}-dev = "bluez-hcidump"
-RDEPENDS_${PN}-testtools += "python python-dbus python-pygobject"
-
-ALLOW_EMPTY_libasound-module-bluez = "1"
-PACKAGES =+ "libasound-module-bluez ${PN}-testtools"
-
-FILES_libasound-module-bluez = "${libdir}/alsa-lib/lib*.so ${datadir}/alsa"
-FILES_${PN} += "${libdir}/bluetooth/plugins ${libdir}/bluetooth/plugins/*.so ${base_libdir}/udev/ ${nonarch_base_libdir}/udev/ ${systemd_unitdir}/ ${datadir}/dbus-1"
-FILES_${PN}-dev += "\
-    ${libdir}/bluetooth/plugins/*.la \
-    ${libdir}/alsa-lib/*.la \
-"
-
-FILES_${PN}-testtools = "${libdir}/bluez4/test/*"
-
-FILES_${PN}-dbg += "\
-    ${libdir}/bluetooth/plugins/.debug \
-    ${libdir}/*/.debug \
-    */udev/.debug \
-"
-
-SYSTEMD_SERVICE_${PN} = "bluetooth.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb
deleted file mode 100644
index 822aec4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-require bluez4.inc
-require recipes-multimedia/gstreamer/gst-plugins-package.inc
-
-PNBLACKLIST[gst-plugin-bluetooth] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-PR = "r1"
-
-SRC_URI[md5sum] = "fb42cb7038c380eb0e2fa208987c96ad"
-SRC_URI[sha256sum] = "59738410ade9f0e61a13c0f77d9aaffaafe49ba9418107e4ad75fe52846f7487"
-
-DEPENDS = "bluez4 gst-plugins-base"
-
-EXTRA_OECONF = "\
-    --enable-gstreamer \
-"
-
-# clean unwanted files
-do_install_append() {
-    rm -rf ${D}${bindir}
-    rm -rf ${D}${sbindir}
-    rm -f  ${D}${libdir}/lib*
-    rm -rf ${D}${libdir}/pkgconfig
-    rm -rf ${D}${sysconfdir}
-    rm -rf ${D}${base_libdir}
-    rm -rf ${D}${libdir}/bluetooth
-    rm -rf ${D}${localstatedir}
-    rm -rf ${D}${libdir}/alsa-lib
-    rm -rf ${D}${datadir}
-    rm -rf ${D}${includedir}
-    rm -rf ${D}${nonarch_base_libdir}
-}
-
-FILES_${PN} = "${libdir}/gstreamer-0.10/lib*.so"
-FILES_${PN}-dev += "\
-    ${libdir}/gstreamer-0.10/*.la \
-"
-
-FILES_${PN}-dbg += "\
-    ${libdir}/*/.debug \
-"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb
deleted file mode 100644
index b6098d8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Cellphone tools and driver software"
-SECTION = "console/network"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "http://www.gnokii.org/download/gnokii/gnokii-${PV}.tar.bz2"
-
-DEPENDS = "glib-2.0 intltool-native"
-X11DEPENDS = " libxpm gtk+"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
-PACKAGECONFIG[libical] = "--enable-libical,--disable-libical,libical"
-PACKAGECONFIG[pcsc-lite] = "--enable-libpcsclite,--disable-libpcsclite,pcsc-lite"
-PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
-PACKAGECONFIG[usb] = "--enable-libusb,--disable-libusb,virtual/libusb0"
-PACKAGECONFIG[x11] = ",--without-x,${X11DEPENDS}"
-
-inherit autotools pkgconfig
-
-PACKAGES += "libgnokii libgnokii-dev"
-
-EXTRA_OECONF = "--disable-smsd"
-
-FILES_${PN} = "${bindir} ${sbindir}"
-FILES_libgnokii-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \
-    ${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \
-    /lib/*.a /lib/*.o ${datadir}/aclocal \
-"
-FILES_${PN}-dev = ""
-FILES_libgnokii = "${libdir}/libgnokii.so.*"
-
-SRC_URI[md5sum] = "d9627f4a1152d3ea7806df4532850d5f"
-SRC_URI[sha256sum] = "8f5a083b05c1a66a3402ca5cd80084e14c2c0632c991bb53b03c78e9adb02501"
-
-PNBLACKLIST[gnokii] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130662/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.1.bb
deleted file mode 100644
index 041f5de..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "ncurses IRC client"
-DESCRIPTION = "Irssi is an ncurses IRC client"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8"
-
-DEPENDS = "glib-2.0 ncurses openssl"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
-SRC_URI[md5sum] = "f6bed196cef63ea089f5cce089784445"
-SRC_URI[sha256sum] = "9428c51a3f3598ffaef438c351a8d609cf10db34f2435bdcb84456226c383ccf"
-
-inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb
new file mode 100644
index 0000000..10b04bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb
@@ -0,0 +1,18 @@
+SUMMARY = "ncurses IRC client"
+DESCRIPTION = "Irssi is an ncurses IRC client"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8"
+
+DEPENDS = "glib-2.0 ncurses openssl"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
+SRC_URI[md5sum] = "46d4ac2a7ab472e5dc800e5d7bd9a879"
+SRC_URI[sha256sum] = "b85c07dbafe178213eccdc69f5f8f0ac024dea01c67244668f91ec1c06b986ca"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--with-textui \
+                 --with-proxy \
+                 --with-bot \
+                 --with-perl=no \
+                 --enable-true-color"
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
new file mode 100644
index 0000000..4b82f02
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/CVE-2017-11462.patch
@@ -0,0 +1,419 @@
+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_1.15.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.15.1.bb
index b515eb5..e75e861 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.15.1.bb
@@ -31,6 +31,7 @@
            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"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb
index c05ff4e..798b170 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb
@@ -45,10 +45,10 @@
 PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile"
 PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt"
 
-PACKAGES =+ "libmtp-common libmtp-runtime mtp-tools"
+PACKAGES =+ "libmtp-common libmtp-runtime"
 
 RDEPENDS_${PN} += "libmtp-common"
-RRECOMMENDS_${PN} += "libmtp-runtime mtp-tools"
+RRECOMMENDS_${PN} += "libmtp-runtime ${PN}-bin"
 FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug/*"
 FILES_libmtp-common = "${nonarch_base_libdir}/udev/rules.d/*"
 SUMMARY_libmtp-common = "The udev rules file for MTP devices"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
index 2cc345a..5148798 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
@@ -1,5 +1,5 @@
 SUMMARY = "Library for IPv6 Neighbor Discovery Protocol"
-
+HOMEPAGE = "http://libndp.org/"
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch
new file mode 100644
index 0000000..96163f6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch
@@ -0,0 +1,26 @@
+From b36cafdbcbe2193f5b669e703c608e19e23f80a3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2017 11:16:42 -0700
+Subject: [PATCH 3/4] include missing time.h for time_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ util.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/util.h b/util.h
+index e912f19..3c634c1 100644
+--- a/util.h
++++ b/util.h
+@@ -22,7 +22,7 @@
+ 
+ #include "ddt.h"
+ #include "ether.h"
+-
++#include <time.h>
+ /**
+  * Table of human readable strings, one for each port state.
+  */
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch
new file mode 100644
index 0000000..e699275
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch
@@ -0,0 +1,36 @@
+From 3cd28aa771934d9165ff0d7e19932cde65de3e52 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2017 11:16:57 -0700
+Subject: [PATCH 4/4] Adjust include header sequence to avoid duplicate
+ definitions on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ raw.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/raw.c b/raw.c
+index f51c829..494ea7f 100644
+--- a/raw.c
++++ b/raw.c
+@@ -18,8 +18,6 @@
+  */
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <linux/filter.h>
+-#include <linux/if_ether.h>
+ #include <net/ethernet.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+@@ -32,6 +30,8 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+ 
++#include <linux/filter.h>
++#include <linux/if_ether.h>
+ #include <linux/errqueue.h>
+ #include <linux/net_tstamp.h>
+ #include <linux/sockios.h>
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb
similarity index 66%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.6.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb
index 2e28644..c7b8b29 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb
@@ -4,10 +4,13 @@
 
 SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
            file://build-Allow-CC-and-prefix-to-be-overriden.patch \
-           file://no-incdefs-using-host-headers.patch"
+           file://no-incdefs-using-host-headers.patch \
+           file://0003-include-missing-time.h-for-time_t.patch \
+           file://0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch \
+           "
 
-SRC_URI[md5sum] = "6aa15d83f5a35f1fd076ba9adc4e7285"
-SRC_URI[sha256sum] = "e7fd16a9f235b059be527bd512e86f0c1d9f2e7c36736e6d6d9727a4427ac14c"
+SRC_URI[md5sum] = "5688cdfe57932273e1dbf35b3b97b9a0"
+SRC_URI[sha256sum] = "fa8e00f6ec73cefa7bb313dce7f60dfe5eb9e2bde3353594e9ac18edc93e5165"
 
 EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \
     EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'"
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
new file mode 100644
index 0000000..0d0912b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/build.patch
@@ -0,0 +1,94 @@
+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/files/mosquitto.init b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init
new file mode 100644
index 0000000..d2a27b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init
@@ -0,0 +1,89 @@
+#! /bin/sh
+
+# Based on the Debian initscript for mosquitto
+
+### BEGIN INIT INFO
+# Provides:         mosquitto
+# Required-Start:   $remote_fs $syslog
+# Required-Stop:    $remote_fs $syslog
+# Default-Start:    2 3 4 5
+# Default-Stop:     0 1 6
+# Short-Description:    mosquitto MQTT v3.1 message broker
+# Description: 
+#  This is a message broker that supports version 3.1 of the MQ Telemetry
+#  Transport (MQTT) protocol.
+#  
+#  MQTT provides a method of carrying out messaging using a publish/subscribe
+#  model. It is lightweight, both in terms of bandwidth usage and ease of
+#  implementation. This makes it particularly useful at the edge of the network
+#  where a sensor or other simple device may be implemented using an arduino for
+#  example.
+### END INIT INFO
+
+set -e
+
+PIDFILE=@LOCALSTATEDIR@/run/mosquitto.pid
+DAEMON=@SBINDIR@/mosquitto
+
+# start and stop the mosquitto MQTT message broker
+
+test -x ${DAEMON} || exit 0
+
+umask 022
+
+. @SYSCONFDIR@/init.d/functions
+
+export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@"
+
+case "$1" in
+    start)
+        echo "Starting Mosquitto message broker" "mosquitto"
+        if start-stop-daemon --start --quiet --oknodo --background  --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then
+            exit 0
+        else
+            exit 1
+        fi
+        ;;
+    stop)
+        echo "Stopping Mosquitto message broker" "mosquitto"
+        if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE}; then
+            rm -f ${PIDFILE}
+            exit 0
+        else
+            exit 1
+        fi
+        ;;
+
+
+    reload|force-reload)
+        if [ -f ${PIDFILE} ] ; then
+            echo "Reloading configuration for mosquitto"
+            pid=`cat ${PIDFILE}`
+            kill -HUP $pid
+        else
+            echo "mosquitto does not seem to be running"
+        fi
+        ;;
+
+    restart)
+        echo "Restarting Mosquitto message broker" "mosquitto"
+        if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then
+            rm -f ${PIDFILE}
+        fi
+        if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then
+            exit 0
+        else
+            exit 1
+        fi
+        ;;
+
+    status)
+        status ${DAEMON} && exit 0 || exit $?
+        ;;
+
+    *)
+        echo "Usage: $0 {start|stop|reload|force-reload|restart|status}"
+        exit 1
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service
new file mode 100644
index 0000000..25f68fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Mosquitto - lightweight server implementation of the MQTT and MQTT-SN protocols
+ConditionPathExists=/etc/mosquitto/mosquitto.conf
+After=network.target
+
+[Service]
+Type=simple
+ExecStartPre=/bin/rm -f /var/run/mosquitto.pid
+ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
+ExecReload=/bin/kill -HUP $MAINPID
+PIDFile=/var/run/mosquitto.pid
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
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
new file mode 100644
index 0000000..7554248
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb
@@ -0,0 +1,80 @@
+SUMMARY = "Open source MQTT v3.1/3.1.1 implemention"
+DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. "
+HOMEPAGE = "http://mosquitto.org/"
+SECTION = "console/network"
+LICENSE = "EPL-1.0 | EDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20 \
+                    file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
+                    file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \
+                    file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
+"
+
+SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
+           file://build.patch \
+           file://mosquitto.service \
+           file://mosquitto.init \
+"
+
+SRC_URI[md5sum] = "6b0966e93f118bc71ad7b61600a6c2d3"
+SRC_URI[sha256sum] = "156b1fa731d12baad4b8b22f7b6a8af50ba881fc711b81e9919ec103cf2942d1"
+
+inherit systemd update-rc.d useradd
+
+PACKAGECONFIG ??= "ssl uuid"
+
+PACKAGECONFIG[dns-srv] = ",,c-ares"
+PACKAGECONFIG[ssl] = ",,openssl"
+PACKAGECONFIG[uuid] = ",,util-linux"
+EXTRA_OEMAKE = "${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \
+                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)}"
+
+export LIB_SUFFIX="${@d.getVar('baselib', True).replace('lib', '')}"
+
+do_compile() {
+    oe_runmake PREFIX=${prefix}
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+    install -d ${D}${libdir}
+    install -m 0644 lib/libmosquitto.a ${D}${libdir}/
+
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/mosquitto.service ${D}${systemd_unitdir}/system/
+
+    install -d ${D}${sysconfdir}/init.d/
+    install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto
+    sed -i -e 's,@SBINDIR@,${sbindir},g' \
+        -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
+        -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
+        -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+        ${D}${sysconfdir}/init.d/mosquitto
+}
+
+PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients"
+
+FILES_${PN} = "${sbindir}/mosquitto \
+               ${bindir}/mosquitto_passwd \
+               ${sysconfdir}/mosquitto \
+               ${sysconfdir}/init.d \
+               ${systemd_unitdir}/system/mosquitto.service \
+"
+
+FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1"
+
+FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1"
+
+FILES_${PN}-clients = "${bindir}/mosquitto_pub \
+                       ${bindir}/mosquitto_sub \
+"
+
+SYSTEMD_SERVICE_${PN} = "mosquitto.service"
+
+INITSCRIPT_NAME = "mosquitto"
+INITSCRIPT_PARAMS = "defaults 30"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false \
+                       --user-group mosquitto"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
deleted file mode 100644
index cce3f91..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "NetworkManager-openvpn-plugin"
-SECTION = "net/misc"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c"
-
-DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native"
-
-inherit gnomebase useradd gettext systemd
-
-SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz"
-SRC_URI[md5sum] = "9f325be386aa906ff9b0b7c0bdf2a59a"
-SRC_URI[sha256sum] = "3e0b4007f248d96df4b8eb5d0f937536044af7053debbbf525e67c9bc5d30654"
-
-S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
-
-PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
-
-do_install_append () {
-    rm -rf ${D}${libdir}/NetworkManager/*.la
-}
-
-# Create user and group nm-openvpn that are needed since version 1.0.6
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system nm-openvpn"
-
-FILES_${PN} += " \
-    ${libdir}/NetworkManager/*.so \
-    ${libdir}/NetworkManager/VPN/nm-openvpn-service.name \
-"
-
-FILES_${PN}-staticdev += " \
-    ${libdir}/NetworkManager/*.a \
-"
-
-RDEPENDS_${PN} = " \
-    networkmanager \
-    openvpn \
-"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch
deleted file mode 100644
index ced0c7c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 047d3bf96b510740f64687480333c378e414995f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 15:57:05 -0700
-Subject: [PATCH 1/5] adjust net/ headers for musl compatibility
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libnm-core/nm-utils.c          | 12 +++++++-----
- libnm-core/nm-utils.h          |  5 ++---
- src/platform/wifi/wifi-utils.h |  2 +-
- 3 files changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
-index df75d56..868224e 100644
---- a/libnm-core/nm-utils.c
-+++ b/libnm-core/nm-utils.c
-@@ -19,24 +19,26 @@
-  * Copyright 2005 - 2014 Red Hat, Inc.
-  */
- 
--#include "nm-default.h"
--
--#include "nm-utils.h"
--
- #include <string.h>
- #include <errno.h>
- #include <stdlib.h>
--#include <netinet/ether.h>
- #include <arpa/inet.h>
- #include <uuid/uuid.h>
- #include <libintl.h>
- #include <gmodule.h>
- #include <sys/stat.h>
-+//#include <net/if_arp.h>
-+//#include <net/ethernet.h>
-+#include <netinet/ether.h>
-+
-+#include "nm-default.h"
- 
-+#include "nm-utils.h"
- #if WITH_JANSSON
- #include <jansson.h>
- #endif
- 
-+
- #include "nm-common-macros.h"
- #include "nm-utils-private.h"
- #include "nm-setting-private.h"
-diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
-index 407c14e..156ccae 100644
---- a/libnm-core/nm-utils.h
-+++ b/libnm-core/nm-utils.h
-@@ -27,11 +27,10 @@
- 
- #include <glib.h>
- 
--#include <netinet/in.h>
--
- /* For ETH_ALEN and INFINIBAND_ALEN */
--#include <linux/if_ether.h>
-+//#include <linux/if_ether.h>
- #include <linux/if_infiniband.h>
-+#include <netinet/in.h>
- 
- #include "nm-core-enum-types.h"
- #include "nm-setting-wireless-security.h"
-diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h
-index 8e2b93f..84f5ce9 100644
---- a/src/platform/wifi/wifi-utils.h
-+++ b/src/platform/wifi/wifi-utils.h
-@@ -22,7 +22,7 @@
- #ifndef __WIFI_UTILS_H__
- #define __WIFI_UTILS_H__
- 
--#include <net/ethernet.h>
-+//#include <net/ethernet.h>
- 
- #include "nm-dbus-interface.h"
- 
--- 
-2.12.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch
deleted file mode 100644
index 26f380b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 05e8bd664d0244cb8ab4376b962830b97860f6bf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 18:37:19 -0700
-Subject: [PATCH] check for strndupa before using it
-
-musl does not have strndupa
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- config.h.in                        |  4 ++++
- configure.ac                       |  1 +
- src/systemd/src/basic/alloc-util.h | 12 ++++++++++++
- 3 files changed, 17 insertions(+)
-
-diff --git a/config.h.in b/config.h.in
-index db8c135..c4229ed 100644
---- a/config.h.in
-+++ b/config.h.in
-@@ -41,6 +41,10 @@
-    */
- #undef HAVE_DCGETTEXT
- 
-+/* Define to 1 if you have the declaration of `strndupa', and to 0 if you
-+   don't. */
-+#undef HAVE_DECL_STRNDUPA
-+
- /* Define to 1 if you have the <dlfcn.h> header file. */
- #undef HAVE_DLFCN_H
- 
-diff --git a/configure.ac b/configure.ac
-index 2630f8d..d0a57fd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -54,6 +54,7 @@ AC_SUBST(NM_VERSION)
- 
- GIT_SHA_RECORD(NM_GIT_SHA)
- 
-+AC_CHECK_DECLS([strndupa], [], [], [[#include <string.h>]])
- dnl
- dnl Checks for typedefs, structures, and compiler characteristics.
- dnl
-diff --git a/src/systemd/src/basic/alloc-util.h b/src/systemd/src/basic/alloc-util.h
-index ceeee51..924b59c 100644
---- a/src/systemd/src/basic/alloc-util.h
-+++ b/src/systemd/src/basic/alloc-util.h
-@@ -25,6 +25,18 @@
- #include <string.h>
- 
- #include "macro.h"
-+#include "config.h"
-+
-+#if !HAVE_DECL_STRNDUPA
-+#define strndupa(s, n) \
-+  ({ \
-+    const char *__old = (s); \
-+    size_t __len = strnlen(__old, (n)); \
-+    char *__new = (char *)alloca(__len + 1); \
-+    __new[__len] = '\0'; \
-+    (char *)memcpy(__new, __old, __len); \
-+  })
-+#endif
- 
- #define new(t, n) ((t*) malloc_multiply(sizeof(t), (n)))
- 
--- 
-2.12.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch
deleted file mode 100644
index 5c9ed92..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7dd40db6606c3b3559365a03944cb99aee5ceabc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Thu, 4 Apr 2013 12:57:58 +0200
-Subject: [PATCH] don't try to run /sbin/dhclient to get the version number,
- this break cross-compiling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [build system specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac |    6 ------
- 1 files changed, 0 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index cc66e9b..7163287 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -488,12 +488,6 @@ AS_IF([test -z "$with_dhcpcd"], with_dhcpcd=yes)
- # Search and check the executables
- if test "$with_dhclient" = "yes"; then
- 	AC_PATH_PROGS(with_dhclient, dhclient, no, /sbin:/usr/sbin:/usr/local/sbin)
--	if test "$with_dhclient" != "no"; then
--		if ! $with_dhclient --version 2>&1 | grep -q "^isc-dhclient-4\."; then
--			AC_MSG_WARN([Cannot use dhclient, version 4.x is required])
--			with_dhclient=no
--		fi
--	fi
- fi
- if test "$with_dhcpcd" = "yes"; then
- 	AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin)
--- 
-1.7.6.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch
deleted file mode 100644
index aa57c83..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 7274bbadd398a69b8babf47431f80d35e0228c42 Mon Sep 17 00:00:00 2001
-From: Adrian Freihofer <adrian.freihofer@gmail.com>
-Date: Mon, 18 Jan 2016 08:53:26 +0100
-Subject: [PATCH] Fix nm-version-macro includes
-
-nm-version-macros.h cannot be found since include directive has
-been changed from " to <. This breaks for example gnome-panel
-build:
-/usr/include/NetworkManager/NetworkManager.h:31:31:
-fatal error: nm-version-macros.h: No such file or directory.
----
- libnm-core/nm-version.h     | 2 +-
- libnm-util/NetworkManager.h | 2 +-
- libnm-util/nm-version.h     | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h
-index 730330a..d751bc1 100644
---- a/libnm-core/nm-version.h
-+++ b/libnm-core/nm-version.h
-@@ -23,7 +23,7 @@
- 
- #include <glib.h>
- 
--#include <nm-version-macros.h>
-+#include "nm-version-macros.h"
- 
- /* Deprecation / Availability macros */
- 
-diff --git a/libnm-util/NetworkManager.h b/libnm-util/NetworkManager.h
-index d83e4ab..3a964fc 100644
---- a/libnm-util/NetworkManager.h
-+++ b/libnm-util/NetworkManager.h
-@@ -28,7 +28,7 @@
- 
- /* This header must not include glib or libnm. */
- 
--#include <nm-version-macros.h>
-+#include "nm-version-macros.h"
- 
- /*
-  * dbus services details
-diff --git a/libnm-util/nm-version.h b/libnm-util/nm-version.h
-index 63895dd..41101a4 100644
---- a/libnm-util/nm-version.h
-+++ b/libnm-util/nm-version.h
-@@ -23,7 +23,7 @@
- 
- #include <glib.h>
- 
--#include <nm-version-macros.h>
-+#include "nm-version-macros.h"
- 
- /* Deprecation / Availability macros */
- 
--- 
-2.5.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch
deleted file mode 100644
index 22bc6e8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 98d7e3ae5b15e30af1bf5dd1d279e1a774bf2b86 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 16:05:05 -0700
-Subject: [PATCH 2/5] socket-util.h: Include linux/sockios.h on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/systemd/src/basic/socket-util.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/systemd/src/basic/socket-util.h b/src/systemd/src/basic/socket-util.h
-index 2536b08..76d6107 100644
---- a/src/systemd/src/basic/socket-util.h
-+++ b/src/systemd/src/basic/socket-util.h
-@@ -29,6 +29,12 @@
- #include <linux/netlink.h>
- #include <linux/if_packet.h>
- 
-+#if !defined(__GLIBC__)
-+/* SIOCGSTAMPNS from linux/asm-generic.h
-+ * for src/systemd/src/libsystemd-network/sd-lldp.c */
-+#include <linux/sockios.h>
-+#endif
-+
- #include "macro.h"
- #include "util.h"
- 
--- 
-2.12.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch
deleted file mode 100644
index 236914f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 16c3dc7a407101243d2056d2c93e61dce1a05350 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 16:08:45 -0700
-Subject: [PATCH 3/5] Define ETH_ALEN
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libnm-core/nm-utils.h          | 1 +
- src/platform/wifi/wifi-utils.h | 2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
-index 156ccae..68e222b 100644
---- a/libnm-core/nm-utils.h
-+++ b/libnm-core/nm-utils.h
-@@ -29,6 +29,7 @@
- 
- /* For ETH_ALEN and INFINIBAND_ALEN */
- //#include <linux/if_ether.h>
-+#define ETH_ALEN	6		/* Octets in one ethernet addr	 */
- #include <linux/if_infiniband.h>
- #include <netinet/in.h>
- 
-diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h
-index 84f5ce9..33a838d 100644
---- a/src/platform/wifi/wifi-utils.h
-+++ b/src/platform/wifi/wifi-utils.h
-@@ -24,6 +24,8 @@
- 
- //#include <net/ethernet.h>
- 
-+#define ETH_ALEN	6		/* Octets in one ethernet addr	 */
-+
- #include "nm-dbus-interface.h"
- 
- typedef struct WifiData WifiData;
--- 
-2.12.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch
deleted file mode 100644
index 27c9ae9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 2153109e60e362e0d09215d529bf00176f31a3e7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 16:09:41 -0700
-Subject: [PATCH 4/5] Define missing features to cater for musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/systemd/sd-adapt/nm-sd-adapt.h | 2 +-
- src/systemd/src/basic/parse-util.c | 5 ++++-
- src/systemd/src/basic/stdio-util.h | 2 ++
- src/systemd/src/basic/util.h       | 5 +++++
- src/systemd/src/systemd/sd-event.h | 4 ----
- 5 files changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/src/systemd/sd-adapt/nm-sd-adapt.h b/src/systemd/sd-adapt/nm-sd-adapt.h
-index cf27c1a..72c1b89 100644
---- a/src/systemd/sd-adapt/nm-sd-adapt.h
-+++ b/src/systemd/sd-adapt/nm-sd-adapt.h
-@@ -119,7 +119,7 @@ G_STMT_START { \
- #  ifdef HAVE___SECURE_GETENV
- #    define secure_getenv __secure_getenv
- #  else
--#    error neither secure_getenv nor __secure_getenv is available
-+#    define secure_getenv getenv
- #  endif
- #endif
- 
-diff --git a/src/systemd/src/basic/parse-util.c b/src/systemd/src/basic/parse-util.c
-index 2738663..9c21e5a 100644
---- a/src/systemd/src/basic/parse-util.c
-+++ b/src/systemd/src/basic/parse-util.c
-@@ -25,8 +25,11 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#ifdef __GLIBC__
- #include <xlocale.h>
--
-+#else
-+#include <locale.h>
-+#endif
- #include "alloc-util.h"
- #include "extract-word.h"
- #include "macro.h"
-diff --git a/src/systemd/src/basic/stdio-util.h b/src/systemd/src/basic/stdio-util.h
-index bd1144b..c92e935 100644
---- a/src/systemd/src/basic/stdio-util.h
-+++ b/src/systemd/src/basic/stdio-util.h
-@@ -19,7 +19,9 @@
-   along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
- 
-+#ifdef __GLIBC__
- #include <printf.h>
-+#endif
- #include <stdarg.h>
- #include <stdio.h>
- #include <sys/types.h>
-diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h
-index bb2fc31..fe074a5 100644
---- a/src/systemd/src/basic/util.h
-+++ b/src/systemd/src/basic/util.h
-@@ -46,6 +46,11 @@
- #include "missing.h"
- #include "time-util.h"
- 
-+#if !defined(__GLIBC__)
-+typedef int (*__compar_fn_t) (const void*, const void*);
-+typedef __compar_fn_t comparison_fn_t;
-+#endif
-+
- size_t page_size(void) _pure_;
- #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
- 
-diff --git a/src/systemd/src/systemd/sd-event.h b/src/systemd/src/systemd/sd-event.h
-index cc26b7d..c7e0004 100644
---- a/src/systemd/src/systemd/sd-event.h
-+++ b/src/systemd/src/systemd/sd-event.h
-@@ -69,11 +69,7 @@ typedef int (*sd_event_handler_t)(sd_event_source *s, void *userdata);
- typedef int (*sd_event_io_handler_t)(sd_event_source *s, int fd, uint32_t revents, void *userdata);
- typedef int (*sd_event_time_handler_t)(sd_event_source *s, uint64_t usec, void *userdata);
- typedef int (*sd_event_signal_handler_t)(sd_event_source *s, const struct signalfd_siginfo *si, void *userdata);
--#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
- typedef int (*sd_event_child_handler_t)(sd_event_source *s, const siginfo_t *si, void *userdata);
--#else
--typedef void* sd_event_child_handler_t;
--#endif
- 
- int sd_event_default(sd_event **e);
- 
--- 
-2.12.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
deleted file mode 100644
index f4a04c7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 9e9e5814456ec23b9fc669d342bf9d8f7ee49fc2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 16:48:00 -0700
-Subject: [PATCH 5/5] sd-lldp.h: Remove net/ethernet.h seems to be over
- specified
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/systemd/src/systemd/sd-lldp.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: NetworkManager-1.4.2/src/systemd/src/systemd/sd-lldp.h
-===================================================================
---- NetworkManager-1.4.2.orig/src/systemd/src/systemd/sd-lldp.h
-+++ NetworkManager-1.4.2/src/systemd/src/systemd/sd-lldp.h
-@@ -22,7 +22,7 @@
- ***/
- 
- #include <inttypes.h>
--#include <net/ethernet.h>
-+//#include <net/ethernet.h>
- #include <sys/types.h>
- 
- #include "sd-event.h"
-Index: NetworkManager-1.4.2/src/systemd/src/libsystemd-network/sd-lldp.c
-===================================================================
---- NetworkManager-1.4.2.orig/src/systemd/src/libsystemd-network/sd-lldp.c
-+++ NetworkManager-1.4.2/src/systemd/src/libsystemd-network/sd-lldp.c
-@@ -21,6 +21,7 @@
- #include "nm-sd-adapt.h"
- 
- #include <arpa/inet.h>
-+#include <net/ethernet.h>
- 
- #include "sd-lldp.h"
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb
deleted file mode 100644
index 85098fe..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb
+++ /dev/null
@@ -1,128 +0,0 @@
-SUMMARY = "NetworkManager"
-SECTION = "net/misc"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
-                    file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
-                    file://docs/api/html/license.html;md5=8eb8e72bab097b9d11763002cb003697 \
-"
-
-DEPENDS = " \
-    intltool-native \
-    libnl \
-    dbus \
-    dbus-glib \
-    dbus-glib-native \
-    libgudev \
-    util-linux \
-    libndp \
-    libnewt \
-    polkit \
-    jansson \
-"
-
-inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection
-
-SRC_URI = "${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
-           file://0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch \
-           file://0002-Fix-nm-version-macro-includes.patch \
-           file://0001-adjust-net-headers-for-musl-compatibility.patch \
-           file://0002-socket-util.h-Include-linux-sockios.h-on-musl.patch \
-           file://0003-Define-ETH_ALEN.patch \
-           file://0004-Define-missing-features-to-cater-for-musl.patch \
-           file://0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
-           file://0001-check-for-strndupa-before-using-it.patch \
-           "
-SRC_URI[md5sum] = "63f1e0d6d7e9099499d062c84c927a75"
-SRC_URI[sha256sum] = "829378f318cc008d138a23ca6a9191928ce75344e7e47a2f2c35f4ac82133309"
-
-S = "${WORKDIR}/NetworkManager-${PV}"
-
-EXTRA_OECONF = " \
-    --disable-ifcfg-rh \
-    --disable-ifnet \
-    --disable-ifcfg-suse \
-    --disable-more-warnings \
-    --with-iptables=${sbindir}/iptables \
-    --with-tests \
-    --with-nmtui=yes \
-"
-
-do_compile_prepend() {
-        export GIR_EXTRA_LIBS_PATH="${B}/libnm-util/.libs"
-}
-
-PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \
-"
-PACKAGECONFIG[systemd] = " \
-    --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \
-    --without-systemdsystemunitdir, \
-    polkit \
-"
-PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
-# consolekit is not picked by shlibs, so add it to RDEPENDS too
-PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
-PACKAGECONFIG[concheck] = "--with-libsoup=yes,--with-libsoup=no,libsoup-2.4"
-PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
-PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
-# Use full featured dhcp client instead of internal one
-PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
-PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
-PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
-PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
-PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,wireless-tools,wpa-supplicant wireless-tools"
-PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
-PACKAGECONFIG[netconfig] = "--with-netconfig=yes,--with-netconfig=no"
-PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
-
-PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \
-  ${PN}-nmtui ${PN}-nmtui-doc \
-  ${PN}-adsl \
-"
-
-FILES_libnmutil += "${libdir}/libnm-util.so.*"
-FILES_libnmglib += "${libdir}/libnm-glib.so.*"
-FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*"
-
-FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so"
-
-FILES_${PN} += " \
-    ${libexecdir} \
-    ${libdir}/pppd/*/nm-pppd-plugin.so \
-    ${libdir}/NetworkManager/*.so \
-    ${datadir}/polkit-1 \
-    ${datadir}/dbus-1 \
-    ${base_libdir}/udev/* \
-    ${systemd_unitdir}/system \
-"
-
-RRECOMMENDS_${PN} += "iptables \
-    ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
-"
-RCONFLICTS_${PN} = "connman"
-
-FILES_${PN}-dev += " \
-    ${datadir}/NetworkManager/gdb-cmd \
-    ${libdir}/pppd/*/*.la \
-    ${libdir}/NetworkManager/*.la \
-"
-
-FILES_${PN}-nmtui = " \
-    ${bindir}/nmtui \
-    ${bindir}/nmtui-edit \
-    ${bindir}/nmtui-connect \
-    ${bindir}/nmtui-hostname \
-"
-
-FILES_${PN}-nmtui-doc = " \
-    ${mandir}/man1/nmtui* \
-"
-
-SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service"
-
-do_install_append() {
-    rm -rf ${D}/run ${D}${localstatedir}/run
-}
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 053c80a..2db48f3 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
@@ -21,6 +21,7 @@
 S = "${WORKDIR}/${BP}-Source"
 
 EXTRA_OECONF = " -DCMAKE_SKIP_RPATH=ON "
+EXTRA_OECMAKE += "-DBUILD_DOCUMENTATION=OFF"
 
 #--enable-apps --enable-syslog
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
index 0ede5e5..f2a16dc 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
@@ -2,7 +2,7 @@
 # Released under the MIT license (see COPYING.MIT for the terms)
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
                     file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
 SUMMARY = "Set of Bluetooth related tools for inclusion in images"
@@ -15,13 +15,13 @@
 
 RDEPENDS_bluez4 = " \
     obexftp \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'libasound-module-bluez', '', d)} \
 "
 
 RDEPENDS_bluez5 = " \
     bluez5-noinst-tools \
     bluez5-obex \
     bluez5-testtools  \
-    libasound-module-bluez \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', \
         'pulseaudio-module-bluetooth-discover \
          pulseaudio-module-bluetooth-policy \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch
new file mode 100644
index 0000000..a31bfaa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch
@@ -0,0 +1,25 @@
+Disable building some things we don't need
+
+Upstream-Status: Inappropriate [config]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+---
+ Makefile |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 33bd2d0..84262bd 100644
+--- a/Makefile
++++ b/Makefile
+@@ -115,7 +115,8 @@ LDFLAGS_AS = -shared -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -lpthread
+ 
+ all: build
+ 	
+-build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET} ${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS}
++build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET}
++#${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS}
+ 
+ clean:
+ 	rm -rf ${blddir}/*
+-- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb
new file mode 100644
index 0000000..fec380c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols"
+DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
+HOMEPAGE = "http://www.eclipse.org/paho/"
+SECTION = "console/network"
+LICENSE = "EPL-1.0 | EDL-1.0"
+
+LIC_FILES_CHKSUM = " \
+        file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
+        file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
+        file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
+        file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \
+"
+
+SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http"
+
+SRCREV = "e8d34da24ad807f5e698b327d67591fd4b4bfa7e"
+
+DEPENDS = "openssl"
+
+S = "${WORKDIR}/git"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+    install -d ${D}${libdir}
+    oe_libinstall -C build/output -so libpaho-mqtt3a ${D}${libdir}
+    oe_libinstall -C build/output -so libpaho-mqtt3as ${D}${libdir}
+    oe_libinstall -C build/output -so libpaho-mqtt3c  ${D}${libdir}
+    oe_libinstall -C build/output -so libpaho-mqtt3cs ${D}${libdir}
+    install -d ${D}${includedir}
+    install -m 644 src/MQTTAsync.h ${D}${includedir}
+    install -m 644 src/MQTTClient.h ${D}${includedir}
+    install -m 644 src/MQTTClientPersistence.h ${D}${includedir}
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch
new file mode 100644
index 0000000..8bb7e5a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch
@@ -0,0 +1,25 @@
+From f7ad9a4471cee2324f216a0d82ba8097ec746c56 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2017 11:48:12 -0700
+Subject: [PATCH] Include limits.h for PATH_MAX
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/pnstat.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/pnstat.c b/src/pnstat.c
+index 661a5bc..76068e6 100644
+--- a/src/pnstat.c
++++ b/src/pnstat.c
+@@ -35,6 +35,7 @@
+ #include <dirent.h>
+ #include <unistd.h>
+ #include <netinet/tcp.h>
++#include <limits.h>
+ 
+ struct fd
+ {
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb
index 5589963..3c59995 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb
@@ -2,7 +2,9 @@
 HOMEPAGE = ""
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "git://gitorious.org/meego-cellular/phonet-utils.git;branch=master"
+SRC_URI = "git://gitorious.org/meego-cellular/phonet-utils.git;branch=master \
+           file://0001-Include-limits.h-for-PATH_MAX.patch \
+           "
 PR = "r2"
 S = "${WORKDIR}/git"
 SRCREV = "4acfa720fd37d178a048fc2be17180137d4a70ea"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
index af1c4d6..c731cf7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
@@ -14,6 +14,10 @@
 
 S = "${WORKDIR}/git"
 
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
 inherit autotools pkgconfig
 
 do_configure_prepend() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
similarity index 71%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
index 288c586..708650f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
@@ -7,8 +7,8 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "80011ac0e60bbdcb65f1d7a86251e3f3"
-SRC_URI[sha256sum] = "fdee1e69903cf409bdc6f32403a566cbc6006aa9e2a4d6f8f12b90dfd5ca0d0e"
+SRC_URI[md5sum] = "562274d783534276a9feac913b7d8c4e"
+SRC_URI[sha256sum] = "d846066e27c3072565990745d030357aa0c278f96b7d1d4f59023347c1db8824"
 
 inherit autotools pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch
deleted file mode 100644
index bf1ffdf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch
+++ /dev/null
@@ -1,13 +0,0 @@
----
- configure.ac |    1 +
- 1 file changed, 1 insertion(+)
-
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -7,5 +7,6 @@ AC_PROG_CC
- AC_CONFIG_HEADERS([config.h])
- AC_CONFIG_FILES([Makefile lib/Makefile tools/Makefile])
- PKG_CHECK_MODULES([FTDI], [libftdi >= 0.13])
- AC_OUTPUT
- AM_PROG_CC_C_O
-+AM_PROG_AR
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/soft66_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/soft66_git.bb
deleted file mode 100644
index 816f583..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/soft66_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Library and tools for Soft66ADD and related SDR radio receivers"
-LICENSE = "GPLv3 & LGPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
-                    file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 "
-
-PNBLACKLIST[soft66] ?= "BROKEN: depends on broken libftdi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-DEPENDS = "libftdi"
-
-PV = "0.1.3+gitr${SRCPV}"
-PR = "r1"
-
-SRCREV = "a1dab25e73896c90c98227ac8055f227b830d512"
-SRC_URI = "git://home.horsten.com/soft66 \
-file://fix-ar.patch"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch
deleted file mode 100644
index a7737fb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Fix double reference to this file to work with recent autoconf+automake
-
-RP 1/2/10
-
-Upstream-Status: Inappropriate [configuration]
-
-Index: libtelepathy-0.3.3/src/Makefile.am
-===================================================================
---- libtelepathy-0.3.3.orig/src/Makefile.am	2010-02-01 13:13:50.869038984 +0000
-+++ libtelepathy-0.3.3/src/Makefile.am	2010-02-01 13:14:23.267789456 +0000
-@@ -27,7 +27,6 @@
-     tp-chan-type-text-gen.h \
-     tp-chan-type-tubes-gen.h \
-     tp-conn-iface-aliasing-gen.h \
--    tp-conn-iface-avatars-gen.h \
-     tp-conn-iface-capabilities-gen.h \
-     tp-conn-iface-contact-info-gen.h \
-     tp-conn-iface-forwarding-gen.h \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch
deleted file mode 100644
index 37679ab..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: libtelepathy-0.3.1/configure.ac
-===================================================================
---- libtelepathy-0.3.1.orig/configure.ac	2007-11-22 19:05:56.000000000 +0000
-+++ libtelepathy-0.3.1/configure.ac	2008-01-04 12:07:28.000000000 +0000
-@@ -51,7 +51,7 @@
-   AC_MSG_ERROR([xsltproc (from the libxslt source package) is required])
- fi
- 
--AC_CHECK_PROGS([PYTHON], [python2.3 python2.4 python2.5 python])
-+AC_CHECK_PROGS([PYTHON], [python2.5 python2.4 python2.3 python])
- if test -z "$PYTHON"; then
-   AC_MSG_ERROR([Python is required to compile this package])
- fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb
deleted file mode 100644
index 783bd5d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Telepathy framework"
-DESCRIPTION = "Telepathy is a D-Bus framework for unifying real time \
-communication, including instant messaging, voice calls and video calls.  It \
-abstracts differences between protocols to provide a unified interface for \
-applications."
-HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
-DEPENDS = "glib-2.0 dbus dbus-glib telepathy-glib libxslt-native"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
-                    file://src/tp-conn.c;beginline=1;endline=19;md5=4c58069f77d601cc59200bce5396c7cb"
-PR = "r5"
-
-SRC_URI = "http://telepathy.freedesktop.org/releases/libtelepathy/libtelepathy-${PV}.tar.gz \
-    file://prefer_python_2.5.patch \
-    file://doublefix.patch \
-"
-
-SRC_URI[md5sum] = "490ca1a0c614d4466394b72d43bf7370"
-SRC_URI[sha256sum] = "e0d230be855125163579743418203c6f6be2f10f98c4f065735c1dc9ed115878"
-
-inherit autotools pkgconfig pythonnative
-
-FILES_${PN} += "${datadir}/telepathy \
-    ${datadir}/dbus-1"
-
-PNBLACKLIST[libtelepathy] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130609/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch
deleted file mode 100644
index ece1da6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Sun, 22 Sep 2013 23:21:01 -0400
-Subject: [PATCH] src/Makefile.am: fix race issue for _gen/gtypes.h and _gen/gtypes-body.h
-
-There might be an error when parallel build:
-
-[snip]
-Traceback (most recent call last):
-  File "/path/to/tools/glib-gtypes-generator.py", line 304, in <module>
-    GTypesGenerator(dom, argv[1], argv[2])()
-  File "/path/to/tools/glib-gtypes-generator.py", line 295, in __call__
-    file_set_contents(self.output + '.h', ''.join(self.header))
-  File "/path/to/tools/libtpcodegen.py", line 42, in file_set_contents
-    os.rename(filename + '.tmp', filename)
-OSError: [Errno 2] No such file or directory
-[snip]
-
-This is a race issue, the _gen/gtypes.h and _gen/gtypes-body.h may
-write(remove/rename) _gen/gtypes.tmp at the same time, then there would
-be the error.
-
-There was a similar bug in telepathy-glib which was already fixed, we use the
-similar patch to fix it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- src/Makefile.am |   18 +++++++++++++++---
- 1 file changed, 15 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -288,7 +288,11 @@ _gen/interfaces-body.h: _gen/mcd.xml \
- 		$(tools_dir)/glib-interfaces-body-generator.xsl \
- 		$< > $@
- 
--_gen/gtypes.h _gen/gtypes-body.h: _gen/mcd.xml \
-+# do nothing, output as a side-effect
-+_gen/gtypes.h: _gen/gtypes-body.h
-+	@:
-+
-+_gen/gtypes-body.h: _gen/mcd.xml \
- 	$(top_srcdir)/tools/glib-gtypes-generator.py
- 	$(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \
- 		$< _gen/gtypes mc
-@@ -309,7 +313,11 @@ _gen/%.xml: %.xml $(wildcard $(top_srcdir)/xml/*.xml) Makefile.am
- 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) --xinclude $(tools_dir)/identity.xsl \
- 		$< > $@
- 
--_gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
-+# do nothing, output as a side-effect
-+_gen/cli-%.h: _gen/cli-%-body.h
-+	@:
-+
-+_gen/cli-%-body.h: _gen/%.xml \
- 	$(tools_dir)/glib-client-gen.py Makefile.am
- 	$(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-gen.py \
- 		--group=`echo $* | tr x- x_` \
-@@ -317,7 +325,11 @@ _gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
- 		--tp-proxy-api=0.7.6 \
- 		$< Mc_Cli _gen/cli-$*
- 
--_gen/svc-%.c _gen/svc-%.h: _gen/%.xml \
-+# do nothing, output as a side-effect
-+_gen/svc-%.h: _gen/svc-%.c
-+	@:
-+
-+_gen/svc-%.c: _gen/%.xml \
- 	$(tools_dir)/glib-ginterface-gen.py Makefile.am
- 	$(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \
- 		--filename=_gen/svc-$* \
--- 
-1.7.10.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb
deleted file mode 100644
index 6a4d5d0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Central control for Telepathy IM connection managers"
-HOMEPAGE = "http://telepathy.freedesktop.org/wiki/Mission_Control/"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
-                    file://src/request.h;beginline=1;endline=21;md5=f80534d9af1c33291b3b79609f196eb2"
-SECTION = "libs"
-DEPENDS = "libtelepathy dbus-glib gconf libxslt-native"
-
-SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-mission-control/${BP}.tar.gz \
-           file://tmc-Makefile-fix-race.patch \
-          "
-SRC_URI[md5sum] = "421115a35b9e427807326877f86e7f43"
-SRC_URI[sha256sum] = "14ceb7d53535b43d44b8271ad11319d1d0fe6d193d154636b9e62b42799b9723"
-
-inherit autotools-brokensep pkgconfig pythonnative
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[upower] = "--enable-upower,--disable-upower,upower"
-
-# to select connman or nm you need to use "connectivity" and "connman" or "nm", default is to disable both
-PACKAGECONFIG[connectivity] = ",--with-connectivity=no"
-PACKAGECONFIG[connman] = "--with-connectivity=connman,,connman"
-PACKAGECONFIG[nm] = "--with-connectivity=nm,,networkmanager"
-
-PACKAGES =+ " \
-    libmissioncontrol \
-    libmissioncontrol-config \
-    libmissioncontrol-server \
-    libmissioncontrol-dev \
-    libmissioncontrol-config-dev \
-    libmissioncontrol-server-dev \
-    libmissioncontrol-dbg \
-    libmissioncontrol-config-dbg \
-    libmissioncontrol-server-dbg \
-"
-
-FILES_${PN} += "${datadir}/dbus* ${datadir}/glib-2.0/schemas"
-
-FILES_libmissioncontrol = "${libdir}/libmissioncontrol.so.*"
-FILES_libmissioncontrol-config = "${libdir}/libmissioncontrol-config.so.*"
-FILES_libmissioncontrol-server = "${libdir}/libmissioncontrol-server.so.*"
-
-FILES_libmissioncontrol-dev = "${libdir}/libmissioncontrol.* \
-                               ${includedir}/libmissioncontrol/ \
-                               ${libdir}/pkgconfig/libmissioncontrol.pc"
-FILES_libmissioncontrol-config-dev = "${libdir}/libmissioncontrol-config.*"
-FILES_libmissioncontrol-server-dev = "${libdir}/libmissioncontrol-server.*"
-
-FILES_libmissioncontrol-dbg = "${libdir}/.debug/libmissioncontrol.so.*"
-FILES_libmissioncontrol-config-dbg = "${libdir}/.debug/libmissioncontrol-config.so.*"
-FILES_libmissioncontrol-server-dbg = "${libdir}/.debug/libmissioncontrol-server.so.*"
-
-PNBLACKLIST[telepathy-mission-control] ?= "Depends on blacklisted libtelepathy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch
deleted file mode 100644
index 2488246..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Add dependency of __init__.py
-
-Tasks must be done after exec of __init__, which creates the
-src/_generated directory that tasks are based on.
-
-Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-
-Upstream-Status: Submitted
-(However it seems that this project is out of maintanence.)
-
-diff -ruN telepathy-python-0.15.19-orig/src/Makefile.am telepathy-python-0.15.19/src/Makefile.am
---- telepathy-python-0.15.19-orig/src/Makefile.am	2011-03-10 08:51:49.000000000 +0800
-+++ telepathy-python-0.15.19/src/Makefile.am	2011-03-10 08:54:45.000000000 +0800
-@@ -39,17 +39,17 @@
- XSLTPROC_OPTS = --nonet --novalid --xinclude
- tools_dir = $(top_srcdir)/tools
- 
--_generated/interfaces.py: $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml)
-+_generated/interfaces.py: _generated/__init__.py $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml)
- 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
- 	    $(tools_dir)/python-interfaces-generator.xsl \
- 	    $(spec_dir)/all.xml
- 
--_generated/constants.py: $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml)
-+_generated/constants.py: _generated/__init__.py $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml)
- 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
- 	    $(tools_dir)/python-constants-generator.xsl \
- 	    $(spec_dir)/all.xml
- 
--_generated/errors.py: $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml)
-+_generated/errors.py: _generated/__init__.py $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml)
- 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
- 	    $(tools_dir)/python-errors-generator.xsl \
- 	    $(spec_dir)/all.xml
-@@ -58,7 +58,7 @@
- 	$(AM_V_GEN)$(mkdir_p) $(dir $@)
- 	@echo "# Placeholder for package" > $@
- 
--_generated/%.py: $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
-+_generated/%.py: _generated/__init__.py $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
- 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
- 	    $(tools_dir)/spec-to-python.xsl \
- 	    $(spec_dir)/$*.xml
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch
deleted file mode 100644
index df95a4c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit f6c67662145de889055a86a6b3b12c70a45fc8d5
-Author: Dongxiao Xu <dongxiao.xu@intel.com>
-Date:   Wed Sep 7 16:02:20 2011 +0800
-
-    Avoid duplicated installation of errors.py
-    
-    newer version of autotools don't seem to like listing files to install
-    twice. Remove one errors.py from the installation list.
-    
-    Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-    
-    Upstream-Status: Inappropirate [upstream inactive]
-    
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 5c27dfe..7536e43 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -11,7 +11,7 @@ telepathy_PYTHON = \
- 
- # telepathy._generated.* auto-generated modules
- spec_dir = $(top_srcdir)/spec
--spec_files := $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml))
-+spec_files := $(filter-out _generated/errors.py, $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml)))
- 
- BUILT_SOURCES = \
- 	_generated/interfaces.py \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch
deleted file mode 100644
index f613fdc..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Upstream-Status: Pending
-
-automake 1.12 has deprecated use of mkdir_p, and it recommends
-use of MKDIR_P instead. Changed the code to avoid these kind 
-of warning-errors.
-
-| make[1]: _generated/: Command not found
-| make[1]: *** [_generated/__init__.py] Error 127
-| make[1]: Leaving directory `/srv/home/nitin/builds2/build0/tmp/work/i586-poky-linux/telepathy-python-0.15.19-r4/telepathy-python-0.15.19/src'
-| make: *** [all-recursive] Error 1
-
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
-2012/07/10
-Index: telepathy-python-0.15.19/src/Makefile.am
-===================================================================
---- telepathy-python-0.15.19.orig/src/Makefile.am
-+++ telepathy-python-0.15.19/src/Makefile.am
-@@ -55,7 +55,7 @@ _generated/errors.py: _generated/__init_
- 	    $(spec_dir)/all.xml
- 
- _generated/__init__.py:
--	$(AM_V_GEN)$(mkdir_p) $(dir $@)
-+	$(AM_V_GEN)$(MKDIR_P) $(dir $@)
- 	@echo "# Placeholder for package" > $@
- 
- _generated/%.py: _generated/__init__.py $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb
deleted file mode 100644
index b7aea24..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Telepathy IM framework - Python package"
-HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-                    file://src/utils.py;beginline=1;endline=17;md5=9a07d1a9791a7429a14e7b25c6c86822"
-
-DEPENDS = "libxslt-native"
-RDEPENDS_${PN} += "python-dbus"
-
-SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
-           file://parallel_make.patch \
-           file://remove_duplicate_install.patch \
-           file://telepathy-python_fix_for_automake_1.12.patch"
-
-PR = "r6"
-
-inherit autotools pythonnative
-
-SRC_URI[md5sum] = "f7ca25ab3c88874015b7e9728f7f3017"
-SRC_URI[sha256sum] = "244c0e1bf4bbd78ae298ea659fe10bf3a73738db550156767cc2477aedf72376"
-
-FILES_${PN} += "\
-    ${libdir}/python*/site-packages/telepathy/*.py \
-    ${libdir}/python*/site-packages/telepathy/*/*.py \
-"
-
-do_install_append () {
-    rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyc
-    rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyo
-    rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyc
-    rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyo
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
index 9baeed1..aa93283 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
@@ -41,11 +41,6 @@
     -DWITH_QT5=OFF \
 "
 
-EXTRA_OECMAKE_append_class-native = "\
-             -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DWITH_CPP=OFF"
-EXTRA_OECMAKE_append_class-nativesdk = "\
-             -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DWITH_PYTHON=OFF"
-
 PACKAGECONFIG ??= "libevent glib python"
 PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent,"
 PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python,"
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 cbf3061..2129e37 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
@@ -9,13 +9,13 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33"
 DEPENDS = "rpm indent-native"
 
-SRC_URI = "git://git.umip.org/umip.git \
+SRC_URI = "git://github.com/jlanza/umip \
            file://add-dependency-to-support-parallel-compilation.patch \
            file://mip6d \
            file://mip6d.service \
            file://0001-Add-format-string-to-fprintf-call.patch \
            "
-SRCREV = "428974c2d0d8e75a2750a3ab0488708c5dfdd8e3"
+SRCREV = "7d67209cd1bba2dd0e183a0fa07eeef07964dd14"
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb
similarity index 94%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb
index 7e7d6de..bab5a6a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb
@@ -28,8 +28,8 @@
     file://zabbix-agent.service \
 "
 
-SRC_URI[md5sum] = "f7f41850397d2078ccae4b7389f9a005"
-SRC_URI[sha256sum] = "1df3e106427ed21547b8119049a161092f597d04507f9eb535951a9ee887a476"
+SRC_URI[md5sum] = "489d21b464277c0d412155c7e5611a8f"
+SRC_URI[sha256sum] = "4445f26c025009681c29c9b350aa6c4ee7b124ddcaf1609ae36c55997bcb8cf2"
 
 inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch
deleted file mode 100644
index 43096d2..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch
+++ /dev/null
@@ -1,292 +0,0 @@
-Upstream-Status: Inappropriate
-
-This patch lets you build Ice with OpenEmbedded. I doubt you could do
-a regular build after applying this patch.
-
-From bc622ce74fa03a935278d21736a5a251466e1798 Mon Sep 17 00:00:00 2001
-From: Tom Rondeau <tom@trondeau.com>
-Date: Wed, 16 Apr 2014 14:34:51 -0400
-Subject: [PATCH] Modify Makefiles for cross compile
-
----
- config/Make.common.rules           |   20 +++++++------
- cpp/Makefile                       |    9 +++---
- cpp/config/Make.rules              |   32 ++++++++++++--------
- cpp/config/Make.rules.Linux        |   18 ++---------
- cpp/src/IceStorm/FreezeDB/Makefile |    2 +-
- py/config/Make.rules               |   58 +++++++++++++++++++-----------------
- 6 files changed, 70 insertions(+), 69 deletions(-)
-
-diff --git a/config/Make.common.rules b/config/Make.common.rules
-index d7b1d59..a3fb17e 100644
---- a/config/Make.common.rules
-+++ b/config/Make.common.rules
-@@ -65,9 +65,9 @@ ifeq ($(UNAME),Linux)
-       #
-       # Some Linux distributions like Debian/Ubuntu don't use /usr/lib64.
-       #
--      ifeq ($(shell test -d /usr/lib64 && echo 0),0)
--          lp64suffix	= 64
--      endif
-+      #ifeq ($(shell test -d /usr/lib64 && echo 0),0)
-+      #    lp64suffix	= 64
-+      #endif
-       ifeq ($(LP64),)
-           LP64      	= yes
-       endif
-@@ -244,12 +244,13 @@ else
-     slicedir = $(ice_dir)/slice
- endif
- 
--ifeq ($(prefix), /usr)
--    install_slicedir = /usr/share/Ice-$(VERSION)/slice
--else
--    install_slicedir = $(prefix)/slice
--endif
-+#ifeq ($(prefix), /usr)
-+#    install_slicedir = /usr/share/Ice-$(VERSION)/slice
-+#else
-+#    install_slicedir = $(prefix)/slice
-+#endif
- 
-+install_slicedir = $(prefix)/slice
- #
- # Set environment variables for the Slice translator.
- #
-@@ -265,7 +266,8 @@ ifneq ($(ice_dir), /usr)
-     endif
- 
-     ifeq ($(UNAME),Linux)
--        export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
-+        #export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
-+        export LD_LIBRARY_PATH := $(ICE_HOME)/lib:$(LD_LIBRARY_PATH)
-     endif
- 
-     ifeq ($(UNAME),SunOS)
-diff --git a/cpp/Makefile b/cpp/Makefile
-index a68f113..1f44f57 100644
---- a/cpp/Makefile
-+++ b/cpp/Makefile
-@@ -11,11 +11,12 @@ top_srcdir	= .
- 
- include $(top_srcdir)/config/Make.rules
- 
--SUBDIRS		= config src include test
-+#SUBDIRS		= config src include test
-+SUBDIRS		= config src include
- 
--ifeq ($(shell uname | grep MINGW),)
--SUBDIRS		:= $(SUBDIRS) demo
--endif
-+#ifeq ($(shell uname | grep MINGW),)
-+#SUBDIRS		:= $(SUBDIRS) demo
-+#endif
- 
- INSTALL_SUBDIRS	= $(install_bindir) $(install_libdir) $(install_includedir) \
- 	$(install_configdir) $(install_mandir)
-diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
-index 37461ae..197c5e8 100644
---- a/cpp/config/Make.rules
-+++ b/cpp/config/Make.rules
-@@ -175,11 +175,12 @@ headerdir		= $(top_srcdir)/include
- # includedir is not handled the same as bindir and libdir
- # because it is used in the .depend files
- #
--ifdef ice_src_dist
--    includedir		= $(top_srcdir)/include
--else
--    includedir		= $(ice_dir)/include
--endif
-+#ifdef ice_src_dist
-+#    includedir		= $(top_srcdir)/include
-+#else
-+#    includedir		= $(ice_dir)/include
-+#endif
-+includedir		= $(top_srcdir)/include
- 
- #
- # Platform specific definitions
-@@ -277,14 +278,17 @@ ICECPPFLAGS		= -I$(slicedir)
- SLICE2CPPFLAGS		= $(ICECPPFLAGS)
- 
- ifeq ($(ice_dir), /usr) 
--    LDFLAGS		= $(LDPLATFORMFLAGS) $(CXXFLAGS)
-+    LDFLAGS		+= $(LDPLATFORMFLAGS) $(CXXFLAGS)
- else
-     CPPFLAGS	+= -I$(includedir)
--    ifdef ice_src_dist
--	LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
--    else
--	LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
--    endif
-+# We must always build using the libraries in the source tree, the host's are obviously
-+# not what we want for the target
-+    LDFLAGS	+= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) $(call rpathlink,$(libdir))
-+#    ifdef ice_src_dist
-+#        LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
-+#    else
-+#	LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
-+#    endif
- endif
- 
- ifeq ($(FLEX_NOLINE),yes)
-@@ -313,8 +317,10 @@ endif
- 
- ifdef ice_src_dist
-     SLICEPARSERLIB	= $(libdir)/$(call mklibfilename,Slice,$(VERSION))
--    SLICE2CPP		= $(bindir)/slice2cpp
--    SLICE2FREEZE	= $(bindir)/slice2freeze
-+#    SLICE2CPP		= $(bindir)/slice2cpp
-+#    SLICE2FREEZE	= $(bindir)/slice2freeze
-+    SLICE2CPP		= $(ICE_HOME)/bin/slice2cpp
-+    SLICE2FREEZE	= $(ICE_HOME)/bin/slice2freeze
- else
-     SLICEPARSERLIB	= $(ice_dir)/$(libsubdir)$(cpp11suffix)/$(call mklibfilename,Slice,$(VERSION))
-     SLICE2CPP		= $(ice_dir)/$(binsubdir)$(cpp11suffix)/slice2cpp
-diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux
-index 5d5717c..8363c6e 100644
---- a/cpp/config/Make.rules.Linux
-+++ b/cpp/config/Make.rules.Linux
-@@ -31,7 +31,7 @@ ifeq ($(CXX),c++)
-    CXX			= g++
- endif
- 
--ifeq ($(CXX),g++)
-+#ifeq ($(CXX),g++)
- 
-     ifneq ($(SUSE_i586),)
-         CXXARCHFLAGS	+= -march=i586
-@@ -71,14 +71,6 @@ ifeq ($(CXX),g++)
-       CXXARCHFLAGS	+= -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED
-    endif
- 
--   ifeq ($(MACHINE),x86_64)
--      ifeq ($(LP64),yes)
--         CXXARCHFLAGS	+= -m64
--      else
--         CXXARCHFLAGS	+= -m32
--      endif
--   endif
--
-    CXXFLAGS		= $(CXXARCHFLAGS) -Wall -Werror -pthread
- 
-    ifneq ($(GENPIC),no)
-@@ -102,15 +94,11 @@ ifeq ($(CXX),g++)
- 
-    rpathlink            = -Wl,-rpath-link,$(1) 
- 
--   ifneq ($(embedded_runpath_prefix),)
--      LDPLATFORMFLAGS      = -Wl,--enable-new-dtags -Wl,-rpath,$(runpath_libdir)
--   else
--      LDPLATFORMFLAGS      = -Wl,--enable-new-dtags
--   endif
-+   LDPLATFORMFLAGS      = -Wl,--enable-new-dtags -Wl,-rpath,../../../lib
- 
-    LDPLATFORMFLAGS	+= -rdynamic
- 
--endif
-+#endif
- 
- ifeq ($(CXX),icpc)
-    $(warning ===================================================================) 
-diff --git a/cpp/src/IceStorm/FreezeDB/Makefile b/cpp/src/IceStorm/FreezeDB/Makefile
-index 7c844b7..cf15cb1 100644
---- a/cpp/src/IceStorm/FreezeDB/Makefile
-+++ b/cpp/src/IceStorm/FreezeDB/Makefile
-@@ -66,7 +66,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
- 
- $(MIGRATE): $(MOBJS)
- 	rm -f $@
--	$(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS)
-+	$(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS) -ldb_cxx
- 
- # The slice2freeze rules are structured like this to avoid issues with
- # parallel make.
-diff --git a/py/config/Make.rules b/py/config/Make.rules
-index 43ce01b..1349342 100644
---- a/py/config/Make.rules
-+++ b/py/config/Make.rules
-@@ -92,21 +92,23 @@ ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
-     include $(top_srcdir)/config/Make.rules.$(UNAME)
- else
-     include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
--endif 
-+endif
- 
- libdir                  = $(top_srcdir)/python
--ifneq ($(prefix), /usr)
--install_pythondir       = $(prefix)/python
--install_libdir          = $(prefix)/python
--else
--    ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
--        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
--        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
--    else
--        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
--        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
--    endif
--endif
-+#ifneq ($(prefix), /usr)
-+#install_pythondir       = $(prefix)/python
-+#install_libdir          = $(prefix)/python
-+#else
-+#    ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
-+#        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
-+#        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
-+#    else
-+#        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
-+#        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
-+#    endif
-+#endif
-+install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
-+install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
- 
- ifeq ($(UNAME),SunOS)
-    ifeq ($(LP64),yes)
-@@ -115,19 +117,21 @@ ifeq ($(UNAME),SunOS)
-    endif
- endif
- 
--ifdef ice_src_dist
--    ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
--        ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
--    else
--        ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
--    endif
--    ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
--    ICE_FLAGS 	= -I$(ice_cpp_dir)/include
--endif
--ifdef ice_bin_dist
--    ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
--    ICE_FLAGS	= -I$(ice_dir)/include
--endif
-+#ifdef ice_src_dist
-+#    ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
-+#        ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
-+#    else
-+#        ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
-+#    endif
-+#    ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
-+#    ICE_FLAGS 	= -I$(ice_cpp_dir)/include
-+#endif
-+#ifdef ice_bin_dist
-+#    ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
-+#    ICE_FLAGS	= -I$(ice_dir)/include
-+#endif
-+ICE_LIB_DIR = -L$(top_srcdir)/../cpp/lib
-+ICE_FLAGS = -I$(ice_cpp_dir)/include
- ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
- 
- ifneq ($(embedded_runpath_prefix),)
-@@ -137,7 +141,7 @@ endif
- CPPFLAGS		=
- ICECPPFLAGS		= -I$(slicedir)
- SLICE2PYFLAGS		= $(ICECPPFLAGS)
--LDFLAGS			= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
-+LDFLAGS			+= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
- 
- ifdef ice_src_dist
-     ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
--- 
-1.7.9.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb
deleted file mode 100644
index 7c833b0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb
+++ /dev/null
@@ -1,87 +0,0 @@
-DESCRIPTION = "The Internet Communications Engine"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515"
-DEPENDS = "bzip2 expat openssl python db mcpp"
-DEPENDS_prepend_class-target = "zeroc-ice-native "
-
-SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \
-           file://0002-Modify-Makefile-for-cross-compile.patch \
-          "
-SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80"
-SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392"
-
-#| MapDb.cpp: In constructor 'Freeze::MapDb::MapDb(const ConnectionIPtr&, const string&, const string&, const string&, const KeyCompareBasePtr&, const std::vector<IceUtil::Handle<Freeze::MapIndexBase> >&, bool)':
-#| MapDb.cpp:138:46: error: call of overloaded 'set_bt_compare(int (*)(DB*, const DBT*, const DBT*))' is ambiguous
-#| MapDb.cpp:138:46: note: candidates are:
-#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note: virtual int Db::set_bt_compare(bt_compare_fcn_type) <near match>
-#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note:   no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'bt_compare_fcn_type {aka int (*)(__db*, const __db_dbt*, const __db_dbt*, long unsigned int*)}'
-#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note: virtual int Db::set_bt_compare(int (*)(Db*, const Dbt*, const Dbt*, size_t*)) <near match>
-#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note:   no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'int (*)(Db*, const Dbt*, const Dbt*, size_t*) {aka int (*)(Db*, const Dbt*, const Dbt*, long unsigned int*)}'
-#| make[3]: *** [MapDb.o] Error 1
-PNBLACKLIST[zeroc-ice] ?= "BROKEN: not compatible with default db version - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-S = "${WORKDIR}/Ice-${PV}"
-
-inherit python-dir pkgconfig
-
-export PYTHON_VERSION = "python2.7"
-
-do_configure() {
-    :
-}
-
-do_compile_prepend_class-target () {
-    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
-    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
-    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
-}
-
-do_compile_prepend_class-nativesdk () {
-    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
-    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
-    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
-}
-
-do_compile_prepend_class-native () {
-    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
-    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
-    export ICE_HOME="${S}/cpp"
-}
-
-do_compile() {
-    oe_runmake -C ${S} cpp
-    oe_runmake -C ${S} py
-}
-
-do_install_prepend_class-target () {
-    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
-    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
-    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
-}
-
-do_install_prepend_class-nativesdk () {
-    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
-    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
-    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
-}
-
-do_install_prepend_class-native () {
-    export ICE_HOME="${S}/cpp"
-}
-
-do_install() {
-    oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common
-    oe_runmake -C ${S}/py prefix=${D}${prefix} install
-}
-
-PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg"
-
-FILES_${PN}-doc += "${prefix}/man/man1"
-FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES"
-FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config"
-FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so"
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py"
-FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
-FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
new file mode 100644
index 0000000..2c4ca05
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
@@ -0,0 +1,30 @@
+From 8e6d1f590b1cb437dc67c51298ef1722a7266d35 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 25 Jul 2017 18:37:58 -0700
+Subject: [PATCH] dbus-daemon-proxy: Return DBUS_HANDLER_RESULT_NOT_YET_HANDLED
+ from master_filter_cb() if DBusConnection is null
+
+So it can be passed on to other handlers since this could
+not be handled here
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dbus-daemon-proxy.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dbus-daemon-proxy.c b/dbus-daemon-proxy.c
+index 009e4fd..f3f0d80 100644
+--- a/dbus-daemon-proxy.c
++++ b/dbus-daemon-proxy.c
+@@ -115,7 +115,7 @@ master_filter_cb (DBusConnection *conn,
+   guint32 serial;
+ 
+   if (!dbus_conn)
+-    return;
++    DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ 
+   if (verbose)
+     g_print ("New message from server: type='%d' path='%s' iface='%s'"
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
index a953ebc..42cd032 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
@@ -4,21 +4,20 @@
 DEPENDS = "dbus dbus-glib"
 SRCREV = "1226a0a1374628ff191f6d8a56000be5e53e7608"
 PV = "0.0.0+gitr${SRCPV}"
-PR = "r1"
+PR = "r1.59"
 
-ASNEEDED_pn-dbus-daemon-proxy = ""
-
-SRC_URI = "git://git.collabora.co.uk/git/user/alban/dbus-daemon-proxy"
+SRC_URI = "git://github.com/alban/dbus-daemon-proxy \
+           file://0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch \
+           "
 S = "${WORKDIR}/git"
 
+inherit pkgconfig
+
 do_compile() {
-    ${CC} ${LDFLAGS} `pkg-config --cflags --libs dbus-glib-1` -o dbus-daemon-proxy dbus-daemon-proxy.c
+    ${CC} ${CFLAGS} -o dbus-daemon-proxy dbus-daemon-proxy.c `pkg-config --cflags --libs dbus-glib-1` ${LDFLAGS}
 }
 
 do_install() {
     install -d ${D}${bindir}
     install -m 0755 dbus-daemon-proxy ${D}${bindir}
 }
-
-
-PNBLACKLIST[dbus-daemon-proxy] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130613/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ell/ell_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_git.bb
similarity index 88%
rename from import-layers/meta-openembedded/meta-oe/recipes-connectivity/ell/ell_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_git.bb
index d259f52..10df6e1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ell/ell_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/ell/ell_git.bb
@@ -7,7 +7,7 @@
 inherit autotools pkgconfig
 
 S = "${WORKDIR}/git"
-SRCREV = "399099946abaeb2f3718a0667cc11436a7c0be14"
+SRCREV = "7b7c15c2e5caff88fc45e7a8b874a47196a0eddd"
 SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git"
 
 do_configure_prepend () {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb
deleted file mode 100644
index 9d50ea4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require fakeroot_${PV}.bb
-
-S = "${WORKDIR}/fakeroot-${PV}"
-
-inherit native
-
-EXTRA_OECONF = "--program-prefix="
-
-# Compatability for the rare systems not using or having SYSV
-python () {
-    if d.getVar('HOST_NONSYSV') and d.getVar('HOST_NONSYSV') != '0':
-        d.setVar('EXTRA_OECONF', ' --with-ipc=tcp --program-prefix= ')
-}
-
-RDEPENDS_${PN} = "util-linux-native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb
deleted file mode 100644
index 0a787e3..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Gives a fake root environment"
-HOMEPAGE = "http://fakeroot.alioth.debian.org"
-SECTION = "base"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-
-SRC_URI = "\
-    ${DEBIAN_MIRROR}/main/f/fakeroot/fakeroot_${PV}.orig.tar.bz2 \
-"
-
-inherit autotools
-
-do_configure_prepend() {
-    mkdir -p ${S}/build-aux
-}
-
-do_install_append() {
-    install -d ${D}${includedir}/fakeroot
-    install -m 644 *.h ${D}${includedir}/fakeroot
-}
-
-# fakeroot needs getopt which is provided by the util-linux package
-RDEPENDS_${PN} = "util-linux"
-
-
-SRC_URI[md5sum] = "706171d8d520b1ca1576ac73f2ceb4f3"
-SRC_URI[sha256sum] = "0a359efa3e9496c33234b3e9c89306a09bb4da9d33de43c261f1d8447e6ebea2"
-
-# http://errors.yoctoproject.org/Errors/Details/35143/
-PNBLACKLIST[fakeroot] ?= "BROKEN: QA Issue: -dev package contains non-symlink .so - the recipe will be removed on 2017-09-01 unless the issue is fixed"
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.50.1.bb
index 401b3b2..9cc558f 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.50.1.bb
@@ -23,6 +23,10 @@
 
     install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/
     install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true
+
+    for i in generate_wrap_init.pl gmmproc; do
+        sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.4/proc/$i
+    done
 }
 
 FILES_${PN} = "${libdir}/lib*.so.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common.bb
deleted file mode 100644
index 618cc1e..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Helper script for OE's llvm support"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
-                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
-"
-
-SRC_URI = "file://llvm-config"
-
-ALLOW_EMPTY_${PN} = "1"
-SYSROOT_PREPROCESS_FUNCS_append_class-target = " llvm_common_sysroot_preprocess"
-
-llvm_common_sysroot_preprocess() {
-    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-    install -m 0755 ${WORKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-}
-
-do_install_class-native() {
-    install -d ${D}${bindir}
-    install -m 0755 ${WORKDIR}/llvm-config ${D}${bindir}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common/llvm-config b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common/llvm-config
deleted file mode 100644
index b0f33c8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common/llvm-config
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-# Wrapper script for real llvm-config. Simply calls
-
-if [ $WANT_LLVM_RELEASE ]; then
-	exec `dirname $0`/${TARGET_PREFIX}llvm-config$WANT_LLVM_RELEASE ${@}
-else
-	echo "To use llvm-common WANT_LLVM_RELEASE needs to be exported."
-	echo "For example if this is being called through a recipe:"
-	echo "export WANT_LLVM_RELEASE=\"3.3\""
-	exit 1
-fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm.inc b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm.inc
deleted file mode 100644
index f27261f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm.inc
+++ /dev/null
@@ -1,162 +0,0 @@
-# LLVM does not provide ABI stability between different versions. For this
-# reason OE makes it possible to build and install different llvm versions
-# at the same time.
-#
-# This is true for the normal recipes as well as the native ones.
-#
-# All regular installation directories are prefixed with 'llvm${LLVM_RELEASE}'
-# e.g. "${STAGING_BINDIR}/llvm2.5" or "${STAGING_INCDIR}/llvm2.5"
-#
-# For your program or library that makes use of llvm you do should not need to
-# modify anything as long as it uses the results of various llvm-config
-# invocations. If you need customizations something is wrong and it needs to be
-# fixed (report bug).
-#
-# However the *recipe* for your program/library *must* declare
-# export WANT_LLVM_RELEASE = "<valid version number>"
-# The version number is picked up by a generic wrapper script which just calls
-# the variant of the specified version.
-
-DESCRIPTION = "The Low Level Virtual Machine"
-HOMEPAGE = "http://llvm.org"
-
-# 3-clause BSD-like
-# University of Illinois/NCSA Open Source License
-LICENSE = "NCSA"
-LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=d0a3ef0d3e0e8f5cf59e5ffc273ab1f8"
-
-DEPENDS = "libffi libxml2-native llvm-common"
-
-inherit perlnative pythonnative autotools
-
-LLVM_RELEASE = "${PV}"
-LLVM_DIR = "llvm${LLVM_RELEASE}"
-
-SRC_URI = "http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.gz"
-S = "${WORKDIR}/llvm-${PV}.src"
-
-LLVM_BUILD_DIR = "${WORKDIR}/llvm-${PV}.build"
-LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install"
-
-EXTRA_OECONF += "--disable-assertions \
-                 --enable-debug-runtime \
-                 --disable-expensive-checks \
-                 --enable-bindings=none \
-                 --enable-keep-symbols \
-                 --enable-libffi \
-                 --enable-optimized \
-                 --enable-shared \
-                 --enable-targets=host-only"
-EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1"
-
-do_configure_prepend() {
-    # Remove RPATHs
-    sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' ${S}/Makefile.rules
-
-    # Drop "svn" suffix from version string
-    sed -i 's/${PV}svn/${PV}/g' ${S}/configure
-
-    # Fix paths in llvm-config
-    sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
-    sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp
-
-    # Fix the hardcoded libdir in llvm-config
-    sed -i 's:/lib\>:/${baselib}:g' ${S}/tools/llvm-config/llvm-config.cpp
-
-    # Fails to build unless using separate directory from source
-    mkdir -p ${LLVM_BUILD_DIR}
-    cd ${LLVM_BUILD_DIR}
-}
-
-do_compile() {
-    cd ${LLVM_BUILD_DIR}
-
-    # Fix libdir for multilib
-    sed -i 's:(PROJ_prefix)/lib:(PROJ_prefix)/${baselib}:g' Makefile.config
-
-    oe_runmake \
-        AR="${BUILD_AR}" \
-        CC="${BUILD_CC}" \
-        CFLAGS="${BUILD_CFLAGS}" \
-        CXX="${BUILD_CXX}" \
-        CXXFLAGS="${BUILD_CXXFLAGS}" \
-        CPP="${BUILD_CPP}" \
-        CPPFLAGS="${BUILD_CPPFLAGS}" \
-        NM="${BUILD_NM}" \
-        RANLIB="${BUILD_RANLIB}" \
-        PATH="${STAGING_BINDIR_NATIVE}:$PATH" \
-        cross-compile-build-tools
-    oe_runmake
-}
-
-do_install() {
-    cd ${LLVM_BUILD_DIR}
-    oe_runmake DESTDIR=${LLVM_INSTALL_DIR} install
-
-    mv ${LLVM_INSTALL_DIR}${bindir}/${HOST_SYS}-llvm-config-host ${LLVM_INSTALL_DIR}/llvm-config-host
-
-    install -d ${D}${bindir}/${LLVM_DIR}
-    mv ${LLVM_INSTALL_DIR}${bindir}/* ${D}${bindir}/${LLVM_DIR}/
-
-    install -d ${D}${includedir}/${LLVM_DIR}
-    mv ${LLVM_INSTALL_DIR}${includedir}/* ${D}${includedir}/${LLVM_DIR}/
-
-    install -d ${D}${libdir}/${LLVM_DIR}
-    mv ${LLVM_INSTALL_DIR}${libdir}/* ${D}${libdir}/${LLVM_DIR}/
-    ln -s ${LLVM_DIR}/libLLVM-${PV}.so ${D}${libdir}/libLLVM-${PV}.so
-
-    install -d ${D}${docdir}/${LLVM_DIR}
-    mv ${LLVM_INSTALL_DIR}${prefix}/docs/llvm/* ${D}${docdir}/${LLVM_DIR}
-}
-
-SYSROOT_PREPROCESS_FUNCS += "llvm_sysroot_preprocess"
-
-llvm_sysroot_preprocess() {
-    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
-    mv ${LLVM_INSTALL_DIR}/llvm-config-host ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
-}
-
-PACKAGES += "${PN}-bugpointpasses ${PN}-llvmhello"
-ALLOW_EMPTY_${PN} = "1"
-ALLOW_EMPTY_${PN}-staticdev = "1"
-FILES_${PN} = ""
-FILES_${PN}-staticdev = ""
-FILES_${PN}-dbg = " \
-    ${bindir}/${LLVM_DIR}/.debug \
-    ${libdir}/${LLVM_DIR}/.debug/BugpointPasses.so \
-    ${libdir}/${LLVM_DIR}/.debug/LLVMHello.so \
-    /usr/src/debug \
-"
-
-FILES_${PN}-dev = " \
-    ${bindir}/${LLVM_DIR} \
-    ${includedir}/${LLVM_DIR} \
-"
-RRECOMMENDS_${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello"
-
-FILES_${PN}-bugpointpasses = "\
-    ${libdir}/${LLVM_DIR}/BugpointPasses.so \
-"
-FILES_${PN}-llvmhello = "\
-    ${libdir}/${LLVM_DIR}/LLVMHello.so \
-"
-
-PACKAGES_DYNAMIC = "^libllvm${LLVM_RELEASE}-.*$"
-NOAUTOPACKAGEDEBUG = "1"
-
-INSANE_SKIP_${MLPREFIX}libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE} += "dev-so"
-
-python llvm_populate_packages() {
-    libdir = bb.data.expand('${libdir}', d)
-    libllvm_libdir = bb.data.expand('${libdir}/${LLVM_DIR}', d)
-    split_dbg_packages = do_split_packages(d, libllvm_libdir+'/.debug', '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s-dbg', 'Split debug package for %s', allow_dirs=True)
-    split_packages = do_split_packages(d, libdir, '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s', 'Split package for %s', allow_dirs=True, allow_links=True, recursive=True)
-    split_staticdev_packages = do_split_packages(d, libllvm_libdir, '^lib(.*)\.a$', 'libllvm${LLVM_RELEASE}-%s-staticdev', 'Split staticdev package for %s', allow_dirs=True)
-    if split_packages:
-        pn = d.getVar('PN')
-        d.appendVar('RDEPENDS_' + pn, ' '+' '.join(split_packages))
-        d.appendVar('RDEPENDS_' + pn + '-dbg', ' '+' '.join(split_dbg_packages))
-        d.appendVar('RDEPENDS_' + pn + '-staticdev', ' '+' '.join(split_staticdev_packages))
-}
-
-PACKAGESPLITFUNCS_prepend = "llvm_populate_packages "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/Remove-error-output-from-configure-if-CFLAGS-is-set-.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/Remove-error-output-from-configure-if-CFLAGS-is-set-.patch
deleted file mode 100644
index 44387e8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/Remove-error-output-from-configure-if-CFLAGS-is-set-.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From d4bf7a3853dab12c11cbfc8088fd76f548a8d017 Mon Sep 17 00:00:00 2001
-From: Patrik Hagglund <patrik.h.hagglund@ericsson.com>
-Date: Tue, 24 Sep 2013 11:38:45 +0000
-Subject: [PATCH] Remove error output from configure if CFLAGS is set (r174313).
-
-This fixes PR16724.
-
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191289 91177308-0d34-0410-b5e6-96231b3b80d8
-
-https://github.com/llvm-mirror/llvm/commit/d4bf7a3853dab12c11cbfc8088fd76f548a8d017
-
-Upstream-Status: Backport
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- autoconf/configure.ac | 4 ++--
- configure             | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/autoconf/configure.ac b/autoconf/configure.ac
-index f9c365c..45f2fe4 100644
---- a/autoconf/configure.ac
-+++ b/autoconf/configure.ac
-@@ -61,8 +61,8 @@ fi
- 
- dnl Default to empty (i.e. assigning the null string to) CFLAGS and CXXFLAGS,
- dnl instead of the autoconf default (for example, '-g -O2' for CC=gcc).
--${CFLAGS=}
--${CXXFLAGS=}
-+: ${CFLAGS=}
-+: ${CXXFLAGS=}
- 
- dnl We need to check for the compiler up here to avoid anything else
- dnl starting with a different one.
-diff --git a/configure b/configure
-index f3a6594..9090cda 100755
---- a/configure
-+++ b/configure
-@@ -1992,8 +1992,8 @@ echo "$as_me: error: Already configured in ${srcdir}" >&2;}
-   fi
- fi
- 
--${CFLAGS=}
--${CXXFLAGS=}
-+: ${CFLAGS=}
-+: ${CXXFLAGS=}
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch
deleted file mode 100644
index c3ae494..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: llvm-2.9/include/llvm/Support/FEnv.h
-===================================================================
---- llvm-2.9.orig/include/llvm/Support/FEnv.h	2010-11-29 20:44:50.000000000 +0100
-+++ llvm-2.9/include/llvm/Support/FEnv.h	2011-11-18 18:42:22.580161297 +0100
-@@ -17,6 +17,9 @@
- 
- #include "llvm/Config/config.h"
- #include <cerrno>
-+
-+#undef HAVE_FENV_H
-+
- #ifdef HAVE_FENV_H
- #include <fenv.h>
- #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb
deleted file mode 100644
index 60a2221..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require llvm.inc
-
-DEPENDS += "zlib"
-EXTRA_OECONF += "--enable-zlib"
-
-SRC_URI += "file://Remove-error-output-from-configure-if-CFLAGS-is-set-.patch"
-
-SRC_URI_append_libc-uclibc = " file://arm_fenv_uclibc.patch "
-
-SRC_URI[md5sum] = "40564e1dc390f9844f1711c08b08e391"
-SRC_URI[sha256sum] = "68766b1e70d05a25e2f502e997a3cb3937187a3296595cf6e0977d5cd6727578"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[r600] = "--enable-experimental-targets=R600,,,"
-
-# Fails to build with thumb-1 (qemuarm)
-# | {standard input}: Assembler messages:
-# | {standard input}:22: Error: selected processor does not support Thumb mode `stmdb sp!,{r0,r1,r2,r3,lr}'
-# | {standard input}:31: Error: lo register required -- `ldmia sp!,{r0,r1,r2,r3,lr}'
-# | {standard input}:32: Error: lo register required -- `ldr pc,[sp],#4'
-# | make[3]: *** [/home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/llvm3.3/3.3-r0/llvm-3.3.build/lib/Target/ARM/Release/ARMJITInfo.o] Error 1
-ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
index a53fa69..b12183b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
@@ -3,7 +3,7 @@
 
 SUMMARY = "Basic task to get a device online"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 PR = "r13"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
index a542ae4..3ae7a49 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
@@ -1,6 +1,6 @@
 SUMMARY = "Basic task to get a device booting"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 PR = "r58"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb
deleted file mode 100644
index 697f9bf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "A set of useful command line tools"
-SUMMARY_${PN}-debug = "A set of command line tools useful for debugging"
-SECTION = "console"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PV = "1.0"
-PR = "r21"
-
-inherit packagegroup allarch
-
-PACKAGES += "${PN}-debug"
-
-RDEPENDS_${PN} = "\
-    dbus-daemon-proxy \
-    dosfstools \
-    htop \
-    iptables \
-    lsof \
-    mbuffer \
-    mtd-utils \
-    nano \
-    nfs-utils-client \
-    nmon \
-    powertop \
-    screen \
-    socat \
-    sysstat \
-"
-
-RDEPENDS_${PN}-debug = "\
-    evtest \
-    devmem2 \
-    i2c-tools \
-    gdb \
-    procps \
-    pxaregs \
-    s3c24xx-gpio \
-    s3c64xx-gpio \
-    serial-forward \
-    strace \
-"
-
-RRECOMMENDS_${PN}-debug = "\
-    ltrace \
-"
-
-PNBLACKLIST[packagegroup-cli-tools] ?= "Runtime depends on blacklisted dbus-daemon-proxy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-PNBLACKLIST[packagegroup-cli-tools] ?= "Runtime depends on blacklisted packagegroup-cli-tools - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch
deleted file mode 100644
index 0df232d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: proxy-libintl-20080418-r6/src/proxy-libintl/Makefile
-===================================================================
---- proxy-libintl-20080418-r6.orig/src/proxy-libintl/Makefile	2010-07-25 08:40:22.893620001 -0700
-+++ proxy-libintl-20080418-r6/src/proxy-libintl/Makefile	2010-07-25 10:51:29.573620000 -0700
-@@ -6,16 +6,13 @@ CFLAGS = -Wall -I ../../include
- 
- all : ../../lib/libintl.so ../../lib/intl.lib
- 
--../../lib/libintl.so : libintl.o
--	$(CC) -shared -o $@ libintl.o
-+../../lib/libintl.so : libintl.c
-+	$(CC) $(CFLAGS) -shared -Wl,-soname -Wl,libintl.so -o $@ $<
- 
- ../../lib/intl.lib : ../../lib/libintl.so
- 	cp ../../lib/libintl.so $@
- 	$(STRIP) --strip-unneeded $@
- 
--libintl.o : libintl.c
--	$(CC) $(CFLAGS) -c libintl.c
--
- clean :
- 	rm -f *.o ../../lib/libintl.so ../../$(ZIPFILE)
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_git.bb
similarity index 87%
rename from import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_git.bb
index 0cd44ff..08f9715 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_git.bb
@@ -2,21 +2,22 @@
 HOMEPAGE = "http://www.landley.net/toybox/"
 DEPENDS = "attr"
 
-SRC_URI = " \
-    http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz \
-"
-
-SRC_URI[md5sum] = "6fa2a001402cb067ba541e0d8948da50"
-SRC_URI[sha256sum] = "e6469b508224e0d2e4564dda05c4bb47aef5c28bf29d6c983bcdc6e3a0cd29d6"
-
 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"
+
 SECTION = "base"
 
 TOYBOX_BIN = "generated/unstripped/toybox"
 
-EXTRA_OEMAKE = 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
+EXTRA_OEMAKE = 'HOSTCC="${BUILD_CC}" CPUS=${@oe.utils.cpu_count()}'
 
 do_configure() {
     oe_runmake defconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
index b8a08f8..b034c10 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
@@ -3,6 +3,8 @@
 !*.indirectionsymlink
 !*.[ch]
 !*.mk
+!*.patch
+!*.service
 !NOTICE
 !MODULE_LICENSE_*
 !/system/
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
new file mode 100644
index 0000000..680d21f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
@@ -0,0 +1,351 @@
+From bbeb72f11c64f190b23abbed5f44311bd021bdc9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:46:38 -0700
+Subject: [PATCH 1/2] add base64 implementation
+
+musl needs it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ system/core/adb/adb_auth_client.c |   2 +-
+ system/core/adb/base64.c          | 315 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 316 insertions(+), 1 deletion(-)
+ create mode 100644 system/core/adb/base64.c
+
+diff --git a/system/core/adb/adb_auth_client.c b/system/core/adb/adb_auth_client.c
+index 55e9dca..104b413 100644
+--- a/system/core/adb/adb_auth_client.c
++++ b/system/core/adb/adb_auth_client.c
+@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list)
+         if (sep)
+             *sep = '\0';
+ 
+-        ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
++        ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
+         if (ret != sizeof(key->key)) {
+             D("%s: Invalid base64 data ret=%d\n", file, ret);
+             free(key);
+diff --git a/system/core/adb/base64.c b/system/core/adb/base64.c
+new file mode 100644
+index 0000000..95da284
+--- /dev/null
++++ b/system/core/adb/base64.c
+@@ -0,0 +1,315 @@
++/*
++ * Copyright (c) 1996-1999 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, 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.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#if !defined(LINT) && !defined(CODECENTER)
++static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $";
++#endif /* not lint */
++
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/socket.h>
++
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <arpa/nameser.h>
++
++#include <ctype.h>
++#include <resolv.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <string.h>
++
++#define Assert(Cond) if (!(Cond)) abort()
++
++static const char Base64[] =
++	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++   The following encoding technique is taken from RFC 1521 by Borenstein
++   and Freed.  It is reproduced here in a slightly edited form for
++   convenience.
++
++   A 65-character subset of US-ASCII is used, enabling 6 bits to be
++   represented per printable character. (The extra 65th character, "=",
++   is used to signify a special processing function.)
++
++   The encoding process represents 24-bit groups of input bits as output
++   strings of 4 encoded characters. Proceeding from left to right, a
++   24-bit input group is formed by concatenating 3 8-bit input groups.
++   These 24 bits are then treated as 4 concatenated 6-bit groups, each
++   of which is translated into a single digit in the base64 alphabet.
++
++   Each 6-bit group is used as an index into an array of 64 printable
++   characters. The character referenced by the index is placed in the
++   output string.
++
++                         Table 1: The Base64 Alphabet
++
++      Value Encoding  Value Encoding  Value Encoding  Value Encoding
++          0 A            17 R            34 i            51 z
++          1 B            18 S            35 j            52 0
++          2 C            19 T            36 k            53 1
++          3 D            20 U            37 l            54 2
++          4 E            21 V            38 m            55 3
++          5 F            22 W            39 n            56 4
++          6 G            23 X            40 o            57 5
++          7 H            24 Y            41 p            58 6
++          8 I            25 Z            42 q            59 7
++          9 J            26 a            43 r            60 8
++         10 K            27 b            44 s            61 9
++         11 L            28 c            45 t            62 +
++         12 M            29 d            46 u            63 /
++         13 N            30 e            47 v
++         14 O            31 f            48 w         (pad) =
++         15 P            32 g            49 x
++         16 Q            33 h            50 y
++
++   Special processing is performed if fewer than 24 bits are available
++   at the end of the data being encoded.  A full encoding quantum is
++   always completed at the end of a quantity.  When fewer than 24 input
++   bits are available in an input group, zero bits are added (on the
++   right) to form an integral number of 6-bit groups.  Padding at the
++   end of the data is performed using the '=' character.
++
++   Since all base64 input is an integral number of octets, only the
++         -------------------------------------------------
++   following cases can arise:
++
++       (1) the final quantum of encoding input is an integral
++           multiple of 24 bits; here, the final unit of encoded
++	   output will be an integral multiple of 4 characters
++	   with no "=" padding,
++       (2) the final quantum of encoding input is exactly 8 bits;
++           here, the final unit of encoded output will be two
++	   characters followed by two "=" padding characters, or
++       (3) the final quantum of encoding input is exactly 16 bits;
++           here, the final unit of encoded output will be three
++	   characters followed by one "=" padding character.
++   */
++
++int
++b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize)
++{
++	size_t datalength = 0;
++	uint8_t input[3];
++	uint8_t output[4];
++	size_t i;
++
++	while (2 < srclength) {
++		input[0] = *src++;
++		input[1] = *src++;
++		input[2] = *src++;
++		srclength -= 3;
++
++		output[0] = input[0] >> 2;
++		output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++		output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++		output[3] = input[2] & 0x3f;
++		Assert(output[0] < 64);
++		Assert(output[1] < 64);
++		Assert(output[2] < 64);
++		Assert(output[3] < 64);
++
++		if (datalength + 4 > targsize)
++			return (-1);
++		target[datalength++] = Base64[output[0]];
++		target[datalength++] = Base64[output[1]];
++		target[datalength++] = Base64[output[2]];
++		target[datalength++] = Base64[output[3]];
++	}
++
++	/* Now we worry about padding. */
++	if (0 != srclength) {
++		/* Get what's left. */
++		input[0] = input[1] = input[2] = '\0';
++		for (i = 0; i < srclength; i++)
++			input[i] = *src++;
++
++		output[0] = input[0] >> 2;
++		output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++		output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++		Assert(output[0] < 64);
++		Assert(output[1] < 64);
++		Assert(output[2] < 64);
++
++		if (datalength + 4 > targsize)
++			return (-1);
++		target[datalength++] = Base64[output[0]];
++		target[datalength++] = Base64[output[1]];
++		if (srclength == 1)
++			target[datalength++] = Pad64;
++		else
++			target[datalength++] = Base64[output[2]];
++		target[datalength++] = Pad64;
++	}
++	if (datalength >= targsize)
++		return (-1);
++	target[datalength] = '\0';	/* Returned value doesn't count \0. */
++	return (datalength);
++}
++
++/* skips all whitespace anywhere.
++   converts characters, four at a time, starting at (or after)
++   src from base - 64 numbers into three 8 bit bytes in the target area.
++   it returns the number of data bytes stored at the target, or -1 on error.
++ */
++
++int b64_pton(const char* src, uint8_t* target, size_t targsize)
++{
++	int tarindex, state, ch;
++	char *pos;
++
++	state = 0;
++	tarindex = 0;
++
++	while ((ch = *src++) != '\0') {
++		if (isspace(ch))	/* Skip whitespace anywhere. */
++			continue;
++
++		if (ch == Pad64)
++			break;
++
++		pos = strchr(Base64, ch);
++		if (pos == 0) 		/* A non-base64 character. */
++			return (-1);
++
++		switch (state) {
++		case 0:
++			if (target) {
++				if ((size_t)tarindex >= targsize)
++					return (-1);
++				target[tarindex] = (pos - Base64) << 2;
++			}
++			state = 1;
++			break;
++		case 1:
++			if (target) {
++				if ((size_t)tarindex + 1 >= targsize)
++					return (-1);
++				target[tarindex]   |=  (pos - Base64) >> 4;
++				target[tarindex+1]  = ((pos - Base64) & 0x0f)
++							<< 4 ;
++			}
++			tarindex++;
++			state = 2;
++			break;
++		case 2:
++			if (target) {
++				if ((size_t)tarindex + 1 >= targsize)
++					return (-1);
++				target[tarindex]   |=  (pos - Base64) >> 2;
++				target[tarindex+1]  = ((pos - Base64) & 0x03)
++							<< 6;
++			}
++			tarindex++;
++			state = 3;
++			break;
++		case 3:
++			if (target) {
++				if ((size_t)tarindex >= targsize)
++					return (-1);
++				target[tarindex] |= (pos - Base64);
++			}
++			tarindex++;
++			state = 0;
++			break;
++		default:
++			abort();
++		}
++	}
++
++	/*
++	 * We are done decoding Base-64 chars.  Let's see if we ended
++	 * on a byte boundary, and/or with erroneous trailing characters.
++	 */
++
++	if (ch == Pad64) {		/* We got a pad char. */
++		ch = *src++;		/* Skip it, get next. */
++		switch (state) {
++		case 0:		/* Invalid = in first position */
++		case 1:		/* Invalid = in second position */
++			return (-1);
++
++		case 2:		/* Valid, means one byte of info */
++			/* Skip any number of spaces. */
++			for ((void)NULL; ch != '\0'; ch = *src++)
++				if (!isspace(ch))
++					break;
++			/* Make sure there is another trailing = sign. */
++			if (ch != Pad64)
++				return (-1);
++			ch = *src++;		/* Skip the = */
++			/* Fall through to "single trailing =" case. */
++			/* FALLTHROUGH */
++
++		case 3:		/* Valid, means two bytes of info */
++			/*
++			 * We know this char is an =.  Is there anything but
++			 * whitespace after it?
++			 */
++			for ((void)NULL; ch != '\0'; ch = *src++)
++				if (!isspace(ch))
++					return (-1);
++
++			/*
++			 * Now make sure for cases 2 and 3 that the "extra"
++			 * bits that slopped past the last full byte were
++			 * zeros.  If we don't check them, they become a
++			 * subliminal channel.
++			 */
++			if (target && target[tarindex] != 0)
++				return (-1);
++		}
++	} else {
++		/*
++		 * We ended by seeing the end of the string.  Make sure we
++		 * have no partial bytes lying around.
++		 */
++		if (state != 0)
++			return (-1);
++	}
++
++	return (tarindex);
++}
++
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
new file mode 100644
index 0000000..c7aebb6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
@@ -0,0 +1,134 @@
+From f8653ed0ede4aa781ab758fcd44fdc05ffbe0b0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:50:57 -0700
+Subject: [PATCH 2/2] adb: Musl fixes
+
+__nonnull is gcc specific
+include sys/types.h for size_t
+Do not redefine close() and lseek()
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ system/core/adb/adb.h                    |  2 ++
+ system/core/adb/disable_verity_service.c | 13 ++++++++-----
+ system/core/adb/framebuffer_service.c    |  7 ++++---
+ system/core/adb/sysdeps.h                | 12 ++++++------
+ 4 files changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/system/core/adb/adb.h b/system/core/adb/adb.h
+index 44e5981..bcdc49f 100644
+--- a/system/core/adb/adb.h
++++ b/system/core/adb/adb.h
+@@ -18,7 +18,9 @@
+ #define __ADB_H
+ 
+ #include <limits.h>
++#include <sys/types.h>
+ 
++#include "fdevent.h"
+ #include "adb_trace.h"
+ #include "transport.h"  /* readx(), writex() */
+ 
+diff --git a/system/core/adb/disable_verity_service.c b/system/core/adb/disable_verity_service.c
+index ed3da52..29fa3d6 100644
+--- a/system/core/adb/disable_verity_service.c
++++ b/system/core/adb/disable_verity_service.c
+@@ -14,25 +14,28 @@
+  * limitations under the License.
+  */
+ 
+-#include "sysdeps.h"
+ 
+ #define  TRACE_TAG  TRACE_ADB
+ #include "adb.h"
++#include "sysdeps.h"
++#include "cutils/properties.h"
++#include "ext4_sb.h"
++#include <fs_mgr.h>
+ 
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <inttypes.h>
++#include <unistd.h>
++#include <errno.h>
++#include <stdbool.h>
+ 
+-#include "cutils/properties.h"
+-#include "ext4_sb.h"
+-#include <fs_mgr.h>
+ 
+ #define FSTAB_PREFIX "/fstab."
+ struct fstab *fstab;
+ 
+-__attribute__((__format__(printf, 2, 3))) __nonnull((2))
++__attribute__((__format__(printf, 2, 3))) __attribute__((nonnull((2))))
+ static void write_console(int fd, const char* format, ...)
+ {
+     char buffer[256];
+diff --git a/system/core/adb/framebuffer_service.c b/system/core/adb/framebuffer_service.c
+index 8cbe840..8f0ccfb 100644
+--- a/system/core/adb/framebuffer_service.c
++++ b/system/core/adb/framebuffer_service.c
+@@ -14,6 +14,10 @@
+  * limitations under the License.
+  */
+ 
++#include "fdevent.h"
++#include "adb.h"
++#include "sysdeps.h"
++
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -23,9 +27,6 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ 
+-#include "fdevent.h"
+-#include "adb.h"
+-
+ #include <linux/fb.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+diff --git a/system/core/adb/sysdeps.h b/system/core/adb/sysdeps.h
+index cc1f839..ea39ac3 100644
+--- a/system/core/adb/sysdeps.h
++++ b/system/core/adb/sysdeps.h
+@@ -123,8 +123,8 @@ static __inline__ int  unix_close(int fd)
+ {
+     return close(fd);
+ }
+-#undef   close
+-#define  close   ____xxx_close
++//#undef   close
++//#define  close   ____xxx_close
+ 
+ static __inline__  int  unix_read(int  fd, void*  buf, size_t  len)
+ {
+@@ -369,8 +369,8 @@ static __inline__ int  adb_close(int fd)
+ {
+     return close(fd);
+ }
+-#undef   close
+-#define  close   ____xxx_close
++//#undef   close
++//#define  close   ____xxx_close
+ 
+ 
+ static __inline__  int  adb_read(int  fd, void*  buf, size_t  len)
+@@ -392,8 +392,8 @@ static __inline__ int   adb_lseek(int  fd, int  pos, int  where)
+ {
+     return lseek(fd, pos, where);
+ }
+-#undef   lseek
+-#define  lseek   ___xxx_lseek
++//#undef   lseek
++//#define  lseek   ___xxx_lseek
+ 
+ static __inline__  int    adb_unlink(const char*  path)
+ {
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
index 84cd06b..31452ae 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
@@ -16,6 +16,7 @@
 adbd_SRC_FILES += framebuffer_service.c
 adbd_SRC_FILES += remount_service.c
 adbd_SRC_FILES += disable_verity_service.c
+adbd_SRC_FILES += base64.c
 adbd_SRC_FILES += usb_linux_client.c
 adbd_OBJS := $(adbd_SRC_FILES:.c=.o)
 
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 34fddcb..d3ccd1d 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
@@ -32,6 +32,8 @@
     file://define-shell-command.patch \
     file://implicit-declaration-function-strlcat-strlcopy.patch \
     file://fix-big-endian-build.patch \
+    file://0001-add-base64-implementation.patch \
+    file://0002-adb-Musl-fixes.patch \
     file://android-tools-adbd.service \
     file://.gitignore;subdir=git \
     file://adb.mk;subdir=${BPN} \
@@ -52,24 +54,6 @@
 
 SYSTEMD_SERVICE_${PN} = "android-tools-adbd.service"
 
-# Get rid of files uneeded to build Android tools
-do_unpack_extra() {
-    cd ${S}
-    rm -rf \
-      system/core/.git \
-      system/extras/.git \
-      hardware/libhardware/.git \
-      external/libselinux/.git \
-      build/.git
-    git init
-    git add .
-    git commit -m \
-      "Initial import - committed ${ANDROID_TAG}"
-    git clean -fdx
-}
-
-addtask unpack_extra after do_unpack before do_patch
-
 # Find libbsd headers during native builds
 CC_append_class-native = " -I${STAGING_INCDIR}"
 CC_append_class-nativesdk = " -I${STAGING_INCDIR}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc
deleted file mode 100644
index 9684d1f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-LICENSE = "GPLv3"
-HOMEPAGE = "http://www.gnu.org/software/autoconf-archive/"
-SECTION = "devel"
-
-DEPENDS += "m4-native"
-DEPENDS_class-native = "m4-native gnu-config-native"
-DEPENDS_class-nativesdk = "m4-nativesdk gnu-config-nativesdk"
-
-RDEPENDS_${PN} = "m4 gnu-config gnome-common"
-RDEPENDS_${PN}_class-native = "m4-native gnu-config-native"
-RDEPENDS_${PN}_class-nativesdk = "m4-nativesdk gnu-config-nativesdk"
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-
-inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive/delete-some-m4-files.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive/delete-some-m4-files.patch
deleted file mode 100644
index 2aa788b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive/delete-some-m4-files.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Delete two m4files ax_code_coverage.m4 and ax_check_enable_debug.m4
-to avoid installing conflicts. These two files can be installed by
-gnome-common from oe-core, even if the files in gnmoe-common is
-copied from autoconf-archive(the reason is that the old version
-autoconf-archive don't provide the two files).
-After upgrading to the new version, we need to drop them in meta-oe
-and then set rdepends to gnome-common(oe-core)
-
-Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
-
-Index: a/configure.ac
-===================================================================
---- a/configure.ac     2016-09-16 06:00:00.000000000 +0800
-+++ b/configure.ac     2017-04-18 17:43:05.946290554 +0800
-@@ -19,7 +19,7 @@
- 
- AC_PROG_SED
- 
--M4FILES="m4_esyscmd([echo -n m4/*.m4])"
-+M4FILES="m4_esyscmd([echo -n m4/*.m4 | sed -e 's:m4/ax_code_coverage.m4 ::g'|sed -e 's:m4/ax_check_enable_debug.m4 ::g'])"
- AC_SUBST([M4FILES])
- 
- TEXIFILES="m4_esyscmd([cd m4 && echo -n *.m4 | sed -e 's/\.m4/.texi/g'])"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2016.09.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2016.09.16.bb
deleted file mode 100644
index 561b57b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2016.09.16.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require autoconf-archive.inc
-
-
-PARALLEL_MAKE = ""
-
-LICENSE = "GPLv2 & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI[md5sum] = "bf19d4cddce260b3c3e1d51d42509071"
-SRC_URI[sha256sum] = "e8f2efd235f842bad2f6938bf4a72240a5e5fcd248e8444335e63beb60fabd82"
-
-SRC_URI += "\
-        file://delete-some-m4-files.patch \
-"
-
-EXTRA_OECONF += "ac_cv_path_M4=m4"
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch
new file mode 100644
index 0000000..07cb8a3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch
@@ -0,0 +1,242 @@
+From b90c8f3b60bfe5dbed2823620242e9d30b9eb28f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Jun 2017 19:01:18 -0700
+Subject: [PATCH] Replace use of struct ucontext with ucontext_t
+
+glibc 2.26 would not expose struct ucontext anymore
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ .../linux/dump_writer_common/ucontext_reader.cc    | 32 +++++++++++-----------
+ .../linux/dump_writer_common/ucontext_reader.h     | 14 +++++-----
+ src/client/linux/handler/exception_handler.cc      | 10 +++----
+ src/client/linux/handler/exception_handler.h       |  4 +--
+ .../linux/microdump_writer/microdump_writer.cc     |  2 +-
+ .../linux/minidump_writer/minidump_writer.cc       |  2 +-
+ 6 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc
+index c80724dd..052ce37c 100644
+--- a/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ b/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -36,19 +36,19 @@ namespace google_breakpad {
+ 
+ // Minidump defines register structures which are different from the raw
+ // structures which we get from the kernel. These are platform specific
+-// functions to juggle the ucontext and user structures into minidump format.
++// functions to juggle the ucontext_t and user structures into minidump format.
+ 
+ #if defined(__i386__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_ESP];
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_EIP];
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                                     const struct _libc_fpstate* fp) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+ 
+ #elif defined(__x86_64)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_RSP];
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[REG_RIP];
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                                     const struct _libc_fpstate* fpregs) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+ 
+ #elif defined(__ARM_EABI__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.arm_sp;
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.arm_pc;
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
+   out->context_flags = MD_CONTEXT_ARM_FULL;
+ 
+   out->iregs[0] = uc->uc_mcontext.arm_r0;
+@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
+ 
+ #elif defined(__aarch64__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.sp;
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.pc;
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                                     const struct fpsimd_context* fpregs) {
+   out->context_flags = MD_CONTEXT_ARM64_FULL;
+ 
+@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+ 
+ #elif defined(__mips__)
+ 
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
+ }
+ 
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+   return uc->uc_mcontext.pc;
+ }
+ 
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
+ #if _MIPS_SIM == _ABI64
+   out->context_flags = MD_CONTEXT_MIPS64_FULL;
+ #elif _MIPS_SIM == _ABIO32
+diff --git a/src/client/linux/dump_writer_common/ucontext_reader.h b/src/client/linux/dump_writer_common/ucontext_reader.h
+index b6e77b4b..2de80b70 100644
+--- a/src/client/linux/dump_writer_common/ucontext_reader.h
++++ b/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -39,23 +39,23 @@
+ 
+ namespace google_breakpad {
+ 
+-// Wraps platform-dependent implementations of accessors to ucontext structs.
++// Wraps platform-dependent implementations of accessors to ucontext_t structs.
+ struct UContextReader {
+-  static uintptr_t GetStackPointer(const struct ucontext* uc);
++  static uintptr_t GetStackPointer(const ucontext_t* uc);
+ 
+-  static uintptr_t GetInstructionPointer(const struct ucontext* uc);
++  static uintptr_t GetInstructionPointer(const ucontext_t* uc);
+ 
+-  // Juggle a arch-specific ucontext into a minidump format
++  // Juggle a arch-specific ucontext_t into a minidump format
+   //   out: the minidump structure
+   //   info: the collection of register structures.
+ #if defined(__i386__) || defined(__x86_64)
+-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                              const struct _libc_fpstate* fp);
+ #elif defined(__aarch64__)
+-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                              const struct fpsimd_context* fpregs);
+ #else
+-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
+ #endif
+ };
+ 
+diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
+index 586d84e9..05936d28 100644
+--- a/src/client/linux/handler/exception_handler.cc
++++ b/src/client/linux/handler/exception_handler.cc
+@@ -457,9 +457,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+   // Fill in all the holes in the struct to make Valgrind happy.
+   memset(&g_crash_context_, 0, sizeof(g_crash_context_));
+   memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
+-  memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
++  memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
+ #if defined(__aarch64__)
+-  struct ucontext* uc_ptr = (struct ucontext*)uc;
++  ucontext_t* uc_ptr = (ucontext_t*)uc;
+   struct fpsimd_context* fp_ptr =
+       (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
+   if (fp_ptr->head.magic == FPSIMD_MAGIC) {
+@@ -468,9 +468,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+   }
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+   // FP state is not part of user ABI on ARM Linux.
+-  // In case of MIPS Linux FP state is already part of struct ucontext
++  // In case of MIPS Linux FP state is already part of ucontext_t
+   // and 'float_state' is not a member of CrashContext.
+-  struct ucontext* uc_ptr = (struct ucontext*)uc;
++  ucontext_t* uc_ptr = (ucontext_t*)uc;
+   if (uc_ptr->uc_mcontext.fpregs) {
+     memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
+            sizeof(g_crash_context_.float_state));
+@@ -494,7 +494,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
+   // ExceptionHandler::HandleSignal().
+   siginfo.si_code = SI_USER;
+   siginfo.si_pid = getpid();
+-  struct ucontext context;
++  ucontext_t context;
+   getcontext(&context);
+   return HandleSignal(sig, &siginfo, &context);
+ }
+diff --git a/src/client/linux/handler/exception_handler.h b/src/client/linux/handler/exception_handler.h
+index daba57e0..25598a29 100644
+--- a/src/client/linux/handler/exception_handler.h
++++ b/src/client/linux/handler/exception_handler.h
+@@ -191,11 +191,11 @@ class ExceptionHandler {
+   struct CrashContext {
+     siginfo_t siginfo;
+     pid_t tid;  // the crashing thread.
+-    struct ucontext context;
++    ucontext_t context;
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+     // #ifdef this out because FP state is not part of user ABI for Linux ARM.
+     // In case of MIPS Linux FP state is already part of struct
+-    // ucontext so 'float_state' is not required.
++    // ucontext_t so 'float_state' is not required.
+     fpstate_t float_state;
+ #endif
+   };
+diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
+index 3764eec2..80ad5c46 100644
+--- a/src/client/linux/microdump_writer/microdump_writer.cc
++++ b/src/client/linux/microdump_writer/microdump_writer.cc
+@@ -593,7 +593,7 @@ class MicrodumpWriter {
+ 
+   void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
+ 
+-  const struct ucontext* const ucontext_;
++  const ucontext_t* const ucontext_;
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;
+ #endif
+diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc
+index d11ba6e5..c7161434 100644
+--- a/src/client/linux/minidump_writer/minidump_writer.cc
++++ b/src/client/linux/minidump_writer/minidump_writer.cc
+@@ -1323,7 +1323,7 @@ class MinidumpWriter {
+   const int fd_;  // File descriptor where the minidum should be written.
+   const char* path_;  // Path to the file where the minidum should be written.
+ 
+-  const struct ucontext* const ucontext_;  // also from the signal handler
++  const ucontext_t* const ucontext_;  // also from the signal handler
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;  // ditto
+ #endif
+-- 
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch
new file mode 100644
index 0000000..33bae1a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch
@@ -0,0 +1,41 @@
+From ab8dcad25d0ac1f3a88814e78794e5d450de15ac Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:12:51 -0700
+Subject: [PATCH 1/5] Turn off sign-compare for musl-libc
+
+Fix
+
+../../../../../../../workspace/sources/breakpad/src/client/linux/crash_generation/crash_generation_server.cc:234:14: error:                 comparison of integers of different signs: 'unsigned long' and 'int' [-Werror,-Wsign-compare]                                          hdr = CMSG_NXTHDR(&msg, hdr)) {                                                                                                             ^~~~~~~~~~~~~~~~~~~~~~
+/mnt/a/oe/build/tmp/work/cortexa7hf-neon-vfpv4-bec-linux-musleabi/breakpad/1_1.0+git999-r0/recipe-sysroot/usr/include/sys/socket.h:288:44: note:                                                                                                                                  expanded from macro 'CMSG_NXTHDR'                                                                                                       __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                       1 error generated.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/client/linux/crash_generation/crash_generation_server.cc | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
+index 2596afde..2faeb9e5 100644
+--- a/src/client/linux/crash_generation/crash_generation_server.cc
++++ b/src/client/linux/crash_generation/crash_generation_server.cc
+@@ -230,8 +230,18 @@ CrashGenerationServer::ClientEvent(short revents)
+   // Walk the control payload and extract the file descriptor and validated pid.
+   pid_t crashing_pid = -1;
+   int signal_fd = -1;
++#ifndef __GLIBC__
++  // In musl-libc, CMSG_NXTHDR typecasts char* to cmsghdr* which causes
++  // clang to throw sign-compare warning. This is to suppress the warning
++  // inline.
++  #pragma clang diagnostic push
++  #pragma clang diagnostic ignored "-Wsign-compare"
++#endif
+   for (struct cmsghdr *hdr = CMSG_FIRSTHDR(&msg); hdr;
+        hdr = CMSG_NXTHDR(&msg, hdr)) {
++#ifndef __GLIBC__
++  #pragma clang diagnostic pop
++#endif
+     if (hdr->cmsg_level != SOL_SOCKET)
+       continue;
+     if (hdr->cmsg_type == SCM_RIGHTS) {
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
new file mode 100644
index 0000000..4583d60
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
@@ -0,0 +1,28 @@
+From 68580cb62f77117be3164c52abae68f75e8e59a1 Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 14:26:52 +0100
+Subject: [PATCH 1/3] include <sys/reg.h> to get __WORDSIZE on musl libc
+
+---
+ src/common/linux/elf_core_dump.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: git/src/common/linux/elf_core_dump.h
+===================================================================
+--- git.orig/src/common/linux/elf_core_dump.h
++++ git/src/common/linux/elf_core_dump.h
+@@ -33,10 +33,13 @@
+ #ifndef COMMON_LINUX_ELF_CORE_DUMP_H_
+ #define COMMON_LINUX_ELF_CORE_DUMP_H_
+ 
++#include <config.h>
+ #include <elf.h>
+ #include <link.h>
+ #include <stddef.h>
+-
++#ifdef HAVE_SYS_REG_H
++#include <sys/reg.h>
++#endif
+ #include "common/memory_range.h"
+ 
+ namespace google_breakpad {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
new file mode 100644
index 0000000..2b892ad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
@@ -0,0 +1,45 @@
+From 5f7333e4f7b7485598bd71aa80967e1a16a7f901 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 22:57:52 -0700
+Subject: [PATCH] lss: Match syscalls to match musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ linux_syscall_support.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: lss/linux_syscall_support.h
+===================================================================
+--- lss.orig/linux_syscall_support.h
++++ lss/linux_syscall_support.h
+@@ -793,6 +793,9 @@ struct kernel_statfs {
+ #define FUTEX_TRYLOCK_PI_PRIVATE  (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
+ #endif
+ 
++#ifndef __NR_fstatat
++#define __NR_fstatat __NR_fstatat64
++#endif
+ 
+ #if defined(__x86_64__)
+ #ifndef ARCH_SET_GS
+@@ -924,6 +927,7 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate          324
+ #endif
++
+ /* End of i386 definitions                                                   */
+ #elif defined(__ARM_ARCH_3__) || defined(__ARM_EABI__)
+ #ifndef __NR_setresuid
+@@ -1211,6 +1215,12 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate          285
+ #endif
++#ifndef __NR_pread
++#define __NR_pread __NR_pread64
++#endif
++#ifndef __NR_pwrite
++#define __NR_pwrite __NR_pwrite64
++#endif
+ /* End of x86-64 definitions                                                 */
+ #elif defined(__mips__)
+ #if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch
new file mode 100644
index 0000000..bc62829
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch
@@ -0,0 +1,29 @@
+From 806964f852773e427fea82a7716d44ce3be4498c Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 14:27:32 +0100
+Subject: [PATCH 2/3] Avoid using basename
+
+---
+ src/common/linux/dump_symbols.cc | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/common/linux/dump_symbols.cc b/src/common/linux/dump_symbols.cc
+index d029ca14..6ac4a17b 100644
+--- a/src/common/linux/dump_symbols.cc
++++ b/src/common/linux/dump_symbols.cc
+@@ -881,9 +881,9 @@ const char* ElfArchitecture(const typename ElfClass::Ehdr* elf_header) {
+ // last slash, or the whole filename if there are no slashes.
+ string BaseFileName(const string &filename) {
+   // Lots of copies!  basename's behavior is less than ideal.
+-  char* c_filename = strdup(filename.c_str());
+-  string base = basename(c_filename);
+-  free(c_filename);
++  const char *c_filename = filename.c_str();
++  const char *p = strrchr(c_filename, '/');
++  string base = p ? p+1 : c_filename;
+   return base;
+ }
+ 
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch
new file mode 100644
index 0000000..6c097cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch
@@ -0,0 +1,60 @@
+From 0ba1b3e35e7c743b670bedc3e90001dfb868df10 Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 13:45:51 +0100
+Subject: [PATCH 2/6] Use _fpstate instead of _libc_fpstate on linux
+
+glibc defines both. musl libc only the former.
+---
+ src/client/linux/dump_writer_common/ucontext_reader.cc | 4 ++--
+ src/client/linux/dump_writer_common/ucontext_reader.h  | 2 +-
+ src/client/linux/minidump_writer/minidump_writer.h     | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+Index: git/src/client/linux/dump_writer_common/ucontext_reader.cc
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ git/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstruction
+ }
+ 
+ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+-                                    const struct _libc_fpstate* fp) {
++                                    const struct _fpstate* fp) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+   out->context_flags = MD_CONTEXT_X86_FULL |
+@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstruction
+ }
+ 
+ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+-                                    const struct _libc_fpstate* fpregs) {
++                                    const struct _fpstate* fpregs) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+   out->context_flags = MD_CONTEXT_AMD64_FULL;
+Index: git/src/client/linux/dump_writer_common/ucontext_reader.h
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/ucontext_reader.h
++++ git/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -50,7 +50,7 @@ struct UContextReader {
+   //   info: the collection of register structures.
+ #if defined(__i386__) || defined(__x86_64)
+   static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+-                             const struct _libc_fpstate* fp);
++                             const struct _fpstate* fp);
+ #elif defined(__aarch64__)
+   static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+                              const struct fpsimd_context* fpregs);
+Index: git/src/client/linux/minidump_writer/minidump_writer.h
+===================================================================
+--- git.orig/src/client/linux/minidump_writer/minidump_writer.h
++++ git/src/client/linux/minidump_writer/minidump_writer.h
+@@ -48,7 +48,7 @@ class ExceptionHandler;
+ #if defined(__aarch64__)
+ typedef struct fpsimd_context fpstate_t;
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+-typedef struct _libc_fpstate fpstate_t;
++typedef struct _fpstate fpstate_t;
+ #endif
+ 
+ // These entries store a list of memory regions that the client wants included
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch
new file mode 100644
index 0000000..cfd9a9b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch
@@ -0,0 +1,26 @@
+From 15582e19c2545d5ffe8ff07f957d0ed602aeca74 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:15:09 -0700
+Subject: [PATCH 2/5] <sys/signal.h> is a nonportable alias for <signal.h>
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/client/linux/handler/exception_handler.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
+index 05936d28..cca023fd 100644
+--- a/src/client/linux/handler/exception_handler.cc
++++ b/src/client/linux/handler/exception_handler.cc
+@@ -78,7 +78,7 @@
+ #include <sys/wait.h>
+ #include <unistd.h>
+ 
+-#include <sys/signal.h>
++#include <signal.h>
+ #include <sys/ucontext.h>
+ #include <sys/user.h>
+ #include <ucontext.h>
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
new file mode 100644
index 0000000..2593ea9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
@@ -0,0 +1,88 @@
+From 569af712da94637091080943f6a0d69ccb35864e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:24:08 -0700
+Subject: [PATCH 3/5] Dont include stab.h
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/common/stabs_reader.cc          |  1 -
+ src/common/stabs_reader.h           | 12 +++++++++++-
+ src/common/stabs_reader_unittest.cc |  1 -
+ 3 files changed, 11 insertions(+), 3 deletions(-)
+
+Index: git/src/common/stabs_reader.cc
+===================================================================
+--- git.orig/src/common/stabs_reader.cc
++++ git/src/common/stabs_reader.cc
+@@ -34,7 +34,9 @@
+ #include "common/stabs_reader.h"
+ 
+ #include <assert.h>
++#ifdef HAVE_STAB_H
+ #include <stab.h>
++#endif
+ #include <string.h>
+ 
+ #include <string>
+Index: git/src/common/stabs_reader.h
+===================================================================
+--- git.orig/src/common/stabs_reader.h
++++ git/src/common/stabs_reader.h
+@@ -58,6 +58,30 @@
+ #elif defined(HAVE_A_OUT_H)
+ #include <a.out.h>
+ #endif
++// Definitions from <stab.h> and <a.out.h> for systems which
++// do not have them
++#ifndef HAVE_A_OUT_H
++#undef N_UNDF
++#define N_UNDF 0x0
++#ifndef N_FUN
++#define N_FUN 0x24
++#endif
++#ifndef N_SLINE
++#define N_SLINE 0x44
++#endif
++#ifndef N_SO
++#define N_SO 0x64
++#endif
++#ifndef N_LSYM
++#define N_LSYM 0x80
++#endif
++#ifndef N_BINCL
++#define N_BINCL 0x82
++#endif
++#ifndef N_SOL
++#define N_SOL 0x84
++#endif
++#endif
+ 
+ #include <string>
+ #include <vector>
+Index: git/src/common/stabs_reader_unittest.cc
+===================================================================
+--- git.orig/src/common/stabs_reader_unittest.cc
++++ git/src/common/stabs_reader_unittest.cc
+@@ -33,7 +33,9 @@
+ 
+ #include <assert.h>
+ #include <errno.h>
++#ifdef HAVE_STAB_H
+ #include <stab.h>
++#endif
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <string.h>
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+ AX_PTHREAD
+-AC_CHECK_HEADERS([a.out.h sys/random.h])
++AC_CHECK_HEADERS([a.out.h stab.h sys/random.h])
+ AC_CHECK_FUNCS([arc4random getrandom])
+ 
+ AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
new file mode 100644
index 0000000..8510047
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
@@ -0,0 +1,35 @@
+From 7aa266545dabf9934ccd44d4fc836040497159be Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 13:41:08 +0100
+Subject: [PATCH 3/3] Fix conflict between musl libc <dirent.h> and lss
+
+Include <dirent.h> late to avoid the macro getdents64 in musl
+libc's <dirent.h> to conflict with linux_sycall_support.h.
+---
+ src/client/linux/crash_generation/crash_generation_server.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
+index 26c50a5c..2596afde 100644
+--- a/src/client/linux/crash_generation/crash_generation_server.cc
++++ b/src/client/linux/crash_generation/crash_generation_server.cc
+@@ -28,7 +28,6 @@
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+ #include <assert.h>
+-#include <dirent.h>
+ #include <fcntl.h>
+ #include <limits.h>
+ #include <poll.h>
+@@ -49,6 +48,8 @@
+ #include "common/linux/guid_creator.h"
+ #include "common/linux/safe_readlink.h"
+ 
++#include <dirent.h>
++
+ static const char kCommandQuit = 'x';
+ 
+ namespace google_breakpad {
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
new file mode 100644
index 0000000..525a155
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
@@ -0,0 +1,43 @@
+From 680f9590d19a6e35c7c5587e3f4d8194aab0fcd2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:28:36 -0700
+Subject: [PATCH 4/5] elf_reader.cc: include <sys/reg.h> to get __WORDSIZE on
+ musl libc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/common/dwarf/elf_reader.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: git/src/common/dwarf/elf_reader.cc
+===================================================================
+--- git.orig/src/common/dwarf/elf_reader.cc
++++ git/src/common/dwarf/elf_reader.cc
+@@ -29,10 +29,13 @@
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE  // needed for pread()
+ #endif
+-
++#include <config.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/mman.h>
++#ifdef HAVE_SYS_REG_H
++#include <sys/reg.h>
++#endif
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <string.h>
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+ AX_PTHREAD
+-AC_CHECK_HEADERS([a.out.h stab.h sys/random.h])
++AC_CHECK_HEADERS([a.out.h stab.h sys/random.h sys/reg.h])
+ AC_CHECK_FUNCS([arc4random getrandom])
+ 
+ AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
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
new file mode 100644
index 0000000..80de8c6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch
@@ -0,0 +1,199 @@
+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/0005-md2core-Replace-basename.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch
new file mode 100644
index 0000000..852c1ed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch
@@ -0,0 +1,38 @@
+From bbf2b5ed5d93b227df8aea5726727b48e29f6790 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:35:40 -0700
+Subject: [PATCH 5/5] md2core: Replace basename()
+
+musl does not provide it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tools/linux/md2core/minidump-2-core.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/tools/linux/md2core/minidump-2-core.cc b/src/tools/linux/md2core/minidump-2-core.cc
+index 6a9e28eb..52b81c22 100644
+--- a/src/tools/linux/md2core/minidump-2-core.cc
++++ b/src/tools/linux/md2core/minidump-2-core.cc
+@@ -107,6 +107,9 @@ struct Options {
+ 
+ static void
+ Usage(int argc, const char* argv[]) {
++  const char *c_filename = argv[0];;
++  const char *p = strrchr(c_filename, '/');
++  const char *base = p ? p+1 : c_filename;
+   fprintf(stderr,
+           "Usage: %s [options] <minidump file>\n"
+           "\n"
+@@ -133,7 +136,7 @@ Usage(int argc, const char* argv[]) {
+           "             lookups to be done in this directory rather than the filesystem\n"
+           "             layout as it exists in the crashing image.  This path should end\n"
+           "             with a slash if it's a directory.  e.g. /var/lib/breakpad/\n"
+-          "", basename(argv[0]));
++          "", base);
+ }
+ 
+ static void
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
new file mode 100644
index 0000000..42e073b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
@@ -0,0 +1,77 @@
+map the mcontext_t structure for musl
+
+Upstream-Status: Inappropriate[need to consider Android]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: git/src/client/linux/dump_writer_common/thread_info.cc
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/thread_info.cc
++++ git/src/client/linux/dump_writer_common/thread_info.cc
+@@ -229,7 +229,6 @@ void ThreadInfo::FillCPUContext(RawConte
+ }
+ 
+ #elif defined(__mips__)
+-
+ uintptr_t ThreadInfo::GetInstructionPointer() const {
+   return mcontext.pc;
+ }
+@@ -263,8 +262,11 @@ void ThreadInfo::FillCPUContext(RawConte
+   out->cause = 0; // Not stored in mcontext
+ 
+   for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
++#ifdef __GLIBC__
+     out->float_save.regs[i] = mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs;
+-
++#else
++    out->float_save.regs[i] = mcontext.fpregs[i];
++#endif
+   out->float_save.fpcsr = mcontext.fpc_csr;
+ #if _MIPS_SIM == _ABIO32
+   out->float_save.fir = mcontext.fpc_eir;
+Index: git/src/client/linux/dump_writer_common/ucontext_reader.cc
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ git/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -247,8 +247,11 @@ void UContextReader::FillCPUContext(RawC
+   out->cause = 0;  // Not reported in signal context.
+ 
+   for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
++#ifdef __GLIBC__
+     out->float_save.regs[i] = uc->uc_mcontext.fpregs.fp_r.fp_dregs[i];
+-
++#else
++    out->float_save.regs[i] = uc->uc_mcontext.fpregs[i];
++#endif
+   out->float_save.fpcsr = uc->uc_mcontext.fpc_csr;
+ #if _MIPS_SIM == _ABIO32
+   out->float_save.fir = uc->uc_mcontext.fpc_eir;  // Unused.
+Index: git/src/client/linux/minidump_writer/linux_core_dumper.cc
+===================================================================
+--- git.orig/src/client/linux/minidump_writer/linux_core_dumper.cc
++++ git/src/client/linux/minidump_writer/linux_core_dumper.cc
+@@ -196,7 +196,7 @@ bool LinuxCoreDumper::EnumerateThreads()
+         info.tgid = status->pr_pgrp;
+         info.ppid = status->pr_ppid;
+ #if defined(__mips__)
+-#if defined(__ANDROID__)
++#if defined(__ANDROID__) || !defined(__GLIBC__)
+         for (int i = EF_R0; i <= EF_R31; i++)
+           info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
+ #else  // __ANDROID__
+Index: git/src/tools/linux/md2core/minidump-2-core.cc
+===================================================================
+--- git.orig/src/tools/linux/md2core/minidump-2-core.cc
++++ git/src/tools/linux/md2core/minidump-2-core.cc
+@@ -516,8 +516,12 @@ ParseThreadRegisters(CrashedProcess::Thr
+   thread->mcontext.lo3 = rawregs->lo[2];
+ 
+   for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i) {
++#ifdef __GLIBC__
+     thread->mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs =
+         rawregs->float_save.regs[i];
++#else
++    thread->mcontext.fpregs[i] = rawregs->float_save.regs[i];
++#endif
+   }
+ 
+   thread->mcontext.fpc_csr = rawregs->float_save.fpcsr;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch
new file mode 100644
index 0000000..19bb560
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch
@@ -0,0 +1,27 @@
+Index: lss/linux_syscall_support.h
+===================================================================
+--- lss.orig/linux_syscall_support.h
++++ lss/linux_syscall_support.h
+@@ -118,21 +118,13 @@ extern "C" {
+ #include <endian.h>
+ 
+ #ifdef __mips__
+-/* Include definitions of the ABI currently in use.                          */
+-#ifdef __ANDROID__
+-/* Android doesn't have sgidefs.h, but does have asm/sgidefs.h,
+- * which has the definitions we need.
+- */
+ #include <asm/sgidefs.h>
+-#else
+-#include <sgidefs.h>
+-#endif
+ #endif
+ #endif
+ 
+ /* The Android NDK's <sys/stat.h> #defines these macros as aliases
+  * to their non-64 counterparts. To avoid naming conflict, remove them. */
+-#ifdef __ANDROID__
++#if defined(__ANDROID__) || (defined(__linux__) && !defined(__glibc__))
+   /* These are restored by the corresponding #pragma pop_macro near
+    * the end of this file. */
+ # pragma push_macro("stat64")
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 36c2b63..5f6d82c 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
@@ -17,24 +17,37 @@
 
 PV = "1.0+git${SRCPV}"
 
-SRCREV_FORMAT = "breakpad_glog_gmock_gtest_protobuf_lss"
+SRCREV_FORMAT = "breakpad_gtest_protobuf_lss_gyp"
 
-SRCREV_breakpad = "2f6cb866d615d6240a18c7535c994c6bb93b1ba5"
-SRCREV_glog = "d8cb47f77d1c31779f3ff890e1a5748483778d6a"
-SRCREV_gmock = "f7d03d2734759ee12b57d2dbcb695607d89e8e05"
+SRCREV_breakpad = "dea867e76f24e4a68395684b9d1cf24bcef82f20"
 SRCREV_gtest = "ec44c6c1675c25b9827aacd08c02433cccde7780"
 SRCREV_protobuf = "cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac"
-SRCREV_lss = "1549d20f6d3e7d66bb4e687c0ab9da42c2bff2ac"
+SRCREV_lss = "a91633d172407f6c83dd69af11510b37afebb7f9"
+SRCREV_gyp = "324dd166b7c0b39d513026fa52d6280ac6d56770"
 
 SRC_URI = "git://github.com/google/breakpad;name=breakpad \
-           git://github.com/google/glog.git;destsuffix=git/src/third_party/glog;name=glog \
-           git://github.com/google/googlemock.git;destsuffix=git/src/testing;name=gmock \
            git://github.com/google/googletest.git;destsuffix=git/src/testing/gtest;name=gtest \
            git://github.com/google/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf \
            git://chromium.googlesource.com/linux-syscall-support;protocol=https;destsuffix=git/src/third_party/lss;name=lss \
+           git://chromium.googlesource.com/external/gyp;protocol=https;destsuffix=git/src/tools/gyp;name=gyp \
+           file://0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch \
+           file://0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch \
+           file://0002-Avoid-using-basename.patch \
+           file://0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch \
+           file://0001-Turn-off-sign-compare-for-musl-libc.patch \
+           file://0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch \
+           file://0003-Dont-include-stab.h.patch \
+           file://0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch \
+           file://0005-md2core-Replace-basename.patch \
+           file://0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch \
+           file://mcontext.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 \
 "
 S = "${WORKDIR}/git"
 
+CXXFLAGS += "-D_GNU_SOURCE"
+
 COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
 
 do_install_append() {
@@ -67,7 +80,7 @@
         install -m 0644 ${S}/src/google_breakpad/common/minidump_format.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_format.h
         install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_amd64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_amd64.h
         install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm.h
-        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm64.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm64.h
         install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_mips.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_mips.h
         install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc64.h
         install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
new file mode 100644
index 0000000..ffbe73f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Cap'n Proto serialization/RPC system"
+DESCRIPTION = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. "
+HOMEPAGE = "https://github.com/sandstorm-io/capnproto"
+SECTION = "console/tools"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=0a5b5b742baf10cc1c158579eba7fb1d"
+
+SRCREV = "c949a18da5f041a36cc218c5c4b79c7705999b4f"
+SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV}"
+
+EXTRA_OECMAKE += "\
+    -DBUILD_TESTING=OFF \
+"
+
+inherit cmake
+
+S = "${WORKDIR}/git/c++"
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+FILES_${PN}-compiler = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
deleted file mode 100644
index b32311a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From ac1953d04f3f26d6aa5d8f53a9397d3ba0e96fa3 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@circuitco.com>
-Date: Fri, 11 May 2012 15:23:02 +0000
-Subject: [PATCH] ide: use 'node' as interpreter for sketches instead of
- argv[0]
-
-This enables running scripts with node 0.6.x instead of 0.4.x
-
-Signed-off-by: root <root@beaglebone.(none)>
----
- server/cloud9/ide.js |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/server/cloud9/ide.js b/server/cloud9/ide.js
-index ce782f5..6c4e0f7 100644
---- a/server/cloud9/ide.js
-+++ b/server/cloud9/ide.js
-@@ -53,7 +53,7 @@ var Ide = module.exports = function(options, httpServer, exts, socket) {
-     };
- 
-     this.$users = {};
--    this.nodeCmd = process.argv[0];
-+    this.nodeCmd = "node";
- 
-     var davOptions = {
-         node: this.options.mountDir,
--- 
-1.7.7
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
deleted file mode 100644
index c6d7890..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
+++ /dev/null
@@ -1,118 +0,0 @@
-SUMMARY = "Meet Cloud9, development-as-a-service for Javascripters and other developers"
-HOMEPAGE = "http://c9.io"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4784c3bcff601fd8f9515f52a11e7018"
-
-PR = "r5"
-
-# Nodejs-native for node-waf, nodejs4-native for the headers
-DEPENDS = "libxml2 nodejs-native nodejs4-native"
-
-PNBLACKLIST[cloud9] ?= "Not comatible with current nodejs 0.12, but upstream is working on it for v3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-inherit systemd
-
-SRC_URI = "git://github.com/ajaxorg/cloud9.git;name=cloud9ide \
-           git://github.com/ajaxorg/o3;destsuffix=o3;name=o3 \
-           git://github.com/ajaxorg/ace.git;destsuffix=git/support/ace;name=ace \
-           git://github.com/ajaxorg/ace.wiki.git;destsuffix=git/support/ace/doc/wiki;name=acewiki \
-           git://github.com/ajaxorg/apf.git;destsuffix=git/support/apf;name=apf \
-           git://github.com/ajaxorg/async.js.git;destsuffix=git/support/asyncjs;name=asyncjs \
-           git://github.com/ajaxorg/connect.git;destsuffix=git/support/connect;name=connect;branch=ajaxorg \
-           git://github.com/jashkenas/coffee-script.git;destsuffix=git/support/connect/support/coffee-script;name=coffee-script \
-           git://github.com/visionmedia/expresso.git;destsuffix=git/support/connect/support/expresso;name=expresso \
-           git://github.com/visionmedia/node-jscoverage.git;destsuffix=git/support/connect/support/expresso/deps/jscoverage;name=jscoverage \
-           git://github.com/cloudhead/less.js.git;destsuffix=git/support/connect/support/less;name=less \
-           git://github.com/matehat/sass.js.git;destsuffix=git/support/connect/support/sass;name=sass \
-           git://github.com/ajaxorg/jsDAV.git;destsuffix=git/support/jsdav;name=jsdav \
-           git://github.com/fjakobs/async.js.git;destsuffix=git/support/jsdav/support/async.js;name=async-js \
-           git://github.com/felixge/node-formidable.git;destsuffix=git/support/jsdav/support/formidable;name=formidable \
-           git://github.com/ajaxorg/jsftp.git;destsuffix=git/support/jsdav/support/jsftp;name=jsftp \
-           git://github.com/Gozala/streamer.git;destsuffix=git/support/jsdav/support/jsftp/support/streamer;name=streamer \
-           git://github.com/ajaxorg/node-sftp.git;destsuffix=git/support/jsdav/support/node-sftp;name=sftp \
-           git://github.com/ajaxorg/lib-v8debug.git;destsuffix=git/support/lib-v8debug;name=lib-v8debug \
-           git://github.com/ajaxorg/socket.io.git;destsuffix=git/support/socket.io;name=socketio;branch=cadorn-upstream \
-           git://github.com/LearnBoost/socket.io-client.git;destsuffix=git/support/socket.io-client;name=socketio-client \
-           git://github.com/ajaxorg/treehugger.git;destsuffix=git/support/treehugger;name=treehugger \
-           git://github.com/ajaxorg/UglifyJS.git;destsuffix=git/support/uglify-js;name=uglify-js \
-           file://index.js \
-           file://cloud9-avahi.service \
-           file://cloud9.service \
-           file://0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch \
-"
-
-SRCREV_cloud9ide = "c4e2574896a22bb749f0500b25f41c888d346bed"
-SRCREV_o3 = "d66d4e3252e505f44ada6804c8cab39915ce8afd"
-SRCREV_ace = "0fc5392cbe46fb134052c3065a238ad8e3b31cfd"
-SRCREV_acewiki = "d2a65d0addc2e5ab922bbff9cb6022a4652b4f13"
-SRCREV_apf = "2560b762b2b0e5a8b46f8a4062f927a9a9d239f4"
-SRCREV_asyncjs = "d36ead408e2959b1e99572114ef3a1b6a48c1072"
-SRCREV_connect = "6bec95b51f2286b942bc7f340d62d816bcdc13d4"
-SRCREV_coffee-script = "a53c104db16d3ac9d13cf9f16834edec250b9749"
-SRCREV_expresso = "7f10ab7fa655299b4e2f519065b0495e6ac34ef2"
-SRCREV_jscoverage = "0d4608a6b4275b020ba665389aa75897d5d4a584"
-SRCREV_less = "a2807288008587b95c6c2f8ba5cac16f1bcab98f"
-SRCREV_sass = "4dfd4c699e7a8baf226215ab044854c4507f4420"
-SRCREV_jsdav = "f04ebf3d012cc8aeabfcfb2b8fab8966d52929e9"
-SRCREV_async-js = "92fb710a70efd3cdc2376ebfba71a7fb3a4f1651"
-SRCREV_formidable = "a37292d4b7d6d76a38909ed670334c9068d40871"
-SRCREV_jsftp = "e3f10c8927347c170cdd0150ef38e18272acf942"
-SRCREV_streamer = "1a7f75d4065819171ac91a09974199b932dbe17d"
-SRCREV_sftp = "a0539345134970d7535a19cb2608e3d1bc119d71"
-SRCREV_lib-v8debug = "7c11897f4bc77c7275c2b6dff5becc72ac018662"
-SRCREV_socketio = "735d5239b325df2ba67d2b9bb4ec32442283bc06"
-SRCREV_socketio-client = "4375ef1344ecb8ad75a3848a00af6b391822f86b"
-SRCREV_treehugger = "436d0d6dd0ce43782e6be08ad12c356730626996"
-SRCREV_uglify-js = "941c845c4a01e4e47a158458fe846eb36d0828ad"
-
-SRCREV_FORMAT = "cloud9ide"
-
-S = "${WORKDIR}/git"
-
-do_configure () {
-    cd ${WORKDIR}/o3
-    node-waf -vv configure
-}
-
-EXTRA_CXXFLAGS = "-Idefault/include -I../include -Idefault/hosts -I../hosts -Idefault/modules -I../modules -Idefault/deps -I../deps -I${STAGING_DIR_NATIVE}/usr/include/node4 -fPIC -DPIC"
-
-do_compile () {
-    cd ${WORKDIR}/o3
-    node4 tools/gluegen.js
-    cd hosts
-    ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node.o node-o3/sh_node.cc
-    ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node_libs.o node-o3/sh_node_libs.cc
-    cd ..
-    ${CXX} ${TARGET_LDFLAGS} hosts/sh_node.o hosts/sh_node_libs.o -o o3.node -shared -Wl,-Bdynamic -lxml2
-}
-
-do_install () {
-    install -m 0755 -d ${D}${datadir}/cloud9 ${D}${bindir} ${D}/var/lib/cloud9
-    rsync -r --exclude=".*" ${S}/* ${D}${datadir}/cloud9
-
-    touch ${D}${bindir}/cloud9
-    echo "#!/bin/sh" > ${D}${bindir}/cloud9
-    echo "node4 ${datadir}/cloud9/bin/cloud9.js -l 0.0.0.0 -w /var/lib/cloud9 -p 3000" >> ${D}${bindir}/cloud9
-    chmod 0755 ${D}${bindir}/cloud9
-
-    install -m 0755 -d ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml
-    install -m 0644 ${WORKDIR}/index.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/index.js
-    install -m 0644 ${WORKDIR}/o3/modules/o3.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.js
-    install -m 0755 ${WORKDIR}/o3/o3.node ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.node
-
-     install -m 0755 -d ${D}${sysconfdir}/avahi/services/
-     install -m 0644 ${WORKDIR}/cloud9-avahi.service ${D}${sysconfdir}/avahi/services/
-
-     install -d ${D}${systemd_unitdir}/system
-     install -m 0644 ${WORKDIR}/cloud9.service ${D}${systemd_unitdir}/system
-}
-
-FILES_${PN}-dbg += "${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/.debug \
-                    ${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/.debug \
-"
-
-RDEPENDS_${PN} = "nodejs4 nodejs gzip"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "cloud9.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
index 62b2796..8472aca 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
@@ -1,7 +1,7 @@
 SUMMARY = "Install a Debian system into a subdirectory"
 HOMEPAGE = "https://wiki.debian.org/Debootstrap"
 SECTION = "devel"
-LICENSE = "debootstrap-custom-license"
+LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
 
 inherit pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
deleted file mode 100644
index ccb9a02..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4cf7e16fe9b773e2e7763d4b773854eefe2aa9ab Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Tue, 12 Jan 2016 09:59:55 -0200
-Subject: [PATCH] Stop using relative path for scsilib.c link
-Organization: O.S. Systems Software LTDA.
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- Makefile.linux | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.linux b/Makefile.linux
-index 78333ff..e210564 100644
---- a/Makefile.linux
-+++ b/Makefile.linux
-@@ -129,7 +129,7 @@ scsilib.c:
- 	    echo "Please specify OS={aix,linux,hpux,solaris,windows}"; \
- 	    exit 1; \
- 	fi; \
--	ln -sf ../scsilib-$(OS).c scsilib.c
-+	ln -sf scsilib-$(OS).c scsilib.c
- 
- print:;
- 		@$(PRINTER) $(PRINTFLAGS) $(ALL_CFILES)
--- 
-2.1.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
deleted file mode 100644
index 0c00fdf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From e3c6eb8776f659eb9e6eeccf90d785eff18ecf74 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Mon, 15 Feb 2016 18:00:05 -0200
-Subject: [PATCH] Use 'tcsh' shell
-Organization: O.S. Systems Software LTDA.
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- Scripts/dta | 2 +-
- Scripts/dtc | 2 +-
- Scripts/dtf | 2 +-
- Scripts/dtr | 2 +-
- Scripts/dts | 2 +-
- Scripts/dtt | 2 +-
- Scripts/dtw | 2 +-
- 7 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/Scripts/dta b/Scripts/dta
-index ebc7072..4f90247 100755
---- a/Scripts/dta
-+++ b/Scripts/dta
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- #
- #	Script file to test asynchronous communication lines.
- #
-diff --git a/Scripts/dtc b/Scripts/dtc
-index da69c2e..89d48c2 100755
---- a/Scripts/dtc
-+++ b/Scripts/dtc
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- #	%Z%%M% %I% %E%
- #
- #	Date:	August 7, 1990
-diff --git a/Scripts/dtf b/Scripts/dtf
-index 9f8cd87..321d261 100755
---- a/Scripts/dtf
-+++ b/Scripts/dtf
-@@ -1,4 +1,4 @@
--#! /bin/csh
-+#! /bin/tcsh
- #
- #	Script file to gather floppy disk performance data.
- #
-diff --git a/Scripts/dtr b/Scripts/dtr
-index ddb7947..1ff5a0b 100755
---- a/Scripts/dtr
-+++ b/Scripts/dtr
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- #	%Z%%M% %I% %E%
- #
- #	Date:	August 21, 1990
-diff --git a/Scripts/dts b/Scripts/dts
-index 6b8a167..42d2312 100755
---- a/Scripts/dts
-+++ b/Scripts/dts
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- #	%Z%%M% %I% %E%
- #
- #	Date:	August 7, 1990
-diff --git a/Scripts/dtt b/Scripts/dtt
-index 36cc6bd..df19d2f 100755
---- a/Scripts/dtt
-+++ b/Scripts/dtt
-@@ -1,4 +1,4 @@
--#! /bin/csh
-+#! /bin/tcsh
- #	%Z%%M% %I% %E%
- #
- #	Date:	August 7, 1990
-diff --git a/Scripts/dtw b/Scripts/dtw
-index 8a4ac39..c58e304 100755
---- a/Scripts/dtw
-+++ b/Scripts/dtw
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- #	%Z%%M% %I% %E%
- #
- #	Date:	August 21, 1990
--- 
-2.1.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
deleted file mode 100644
index 87016ed..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-
-diff -rupN dt.v18.32.old/common.h dt.v18.32/common.h
---- dt.v18.32.old/common.h	2013-03-01 23:52:30.000000000 +0100
-+++ dt.v18.32/common.h	2014-09-24 17:41:40.777604710 +0200
-@@ -127,7 +127,7 @@ typedef volatile slarge_t	v_slarge;
- 
- #endif /* defined(_WIN64) */
- 
--#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE) 
-+#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined (_DEFAULT_SOURCE) ||  defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE) 
- 
- #define QuadIsLongLong
- typedef unsigned long long int	large_t;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
deleted file mode 100644
index b6780c1..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-
-diff -rupN dt.v18.32.old/dt.c dt.v18.32/dt.c
---- dt.v18.32.old/dt.c	2014-08-18 14:45:53.242351115 +0200
-+++ dt.v18.32/dt.c	2014-08-18 15:11:36.367719880 +0200
-@@ -4378,7 +4378,7 @@ report_error(
- 	    (void)sprintf(dip->di_msg_buffer, "(%d): '%s', errno = %d - %s\n",
- 			  dip->di_process_id, error_info, errno, emsg);
- 	}
--	syslog(LOG_ERR, dip->di_msg_buffer);
-+	syslog(LOG_ERR, "%s", dip->di_msg_buffer);
-     }
- #endif /* defined(SYSLOG) */
- 
-diff -rupN dt.v18.32.old/dtutil.c dt.v18.32/dtutil.c
---- dt.v18.32.old/dtutil.c	2014-08-18 14:45:53.354350779 +0200
-+++ dt.v18.32/dtutil.c	2014-08-18 15:13:53.835307311 +0200
-@@ -5180,7 +5180,7 @@ ReportDeviceInfo (
- 	    bp += Sprintf(bp,
- 			  "(%d) Device name: %s\n",
- 			   dip->di_process_id, dip->di_dname);
--	    syslog(LOG_ERR, dip->di_msg_buffer);
-+	    syslog(LOG_ERR, "%s", dip->di_msg_buffer);
- 	    bp = dip->di_msg_buffer;
- # if defined(SCSI)
- 	    if (dip->di_serial_number) {
-@@ -5193,7 +5193,7 @@ ReportDeviceInfo (
- 			      dip->di_process_id, dip->di_device_id);
- 	    }
- # endif /* defined(SCSI) */
--	    syslog(LOG_ERR, dip->di_msg_buffer);
-+	    syslog(LOG_ERR, "%s", dip->di_msg_buffer);
- 	    bp = dip->di_msg_buffer;
- 	    bp += Sprintf(bp,
- 		  "(%d) Relative block number where the error occurred is " LUF ","
-@@ -5203,7 +5203,7 @@ ReportDeviceInfo (
-   	    } else {
-                 bp += Sprintf(bp, "\n");
-             }
--	    syslog(LOG_ERR, dip->di_msg_buffer);
-+	    syslog(LOG_ERR, "%s", dip->di_msg_buffer);
- 	}
- #endif /* defined(SYSLOG) */
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb
deleted file mode 100644
index 0234f76..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Generic data test program"
-DESCRIPTION = "The Data Test Program (dt) is a generic data test program used to verify proper \
-operation of peripherals, file systems, device drivers, or any data stream supported by the \
-operating system."
-HOMEPAGE = "http://www.scsifaq.org/RMiller_Tools/dt.html"
-
-SECTION = "console/tests"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=be8bb25bbcfaa0725710d188e5152668"
-
-# Source URI taken from Fedora RPM spec file at:
-#  http://pkgs.fedoraproject.org/git/rpms/dt.git
-SRC_URI = "http://dl.dropboxusercontent.com/u/32363629/Datatest/dt-source-v${PV}.tar.gz \
-           file://dt-default-source-define.patch \
-           file://dt-wformat-security.patch \
-           file://Stop-using-relative-path-for-scsilib.c-link.patch \
-           file://Use-tcsh-shell.patch \
-"
-
-SRC_URI[md5sum] = "3054aeaaba047a1dbe90c2132a382ee2"
-SRC_URI[sha256sum] = "10d164676e918a4d07f233bcd11e4cb6bfd1052c996182cd1827ccd0c063fcc6"
-
-S = "${WORKDIR}/dt.v${PV}"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-EXTRA_OEMAKE += "-f Makefile.linux \
-                 OS=linux \
-                 CFLAGS="-I.. -DAIO -DFIFO -DMMAP -D__linux__ -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DTHREADS -DSCSI""
-
-do_compile() {
-    oe_runmake
-}
-
-do_install() {
-    install -Dm755 dt ${D}${sbindir}/dt
-    install -Dm644 Documentation/dt.man ${D}${mandir}/man8/dt.8
-
-    install -d ${D}${datadir}/dt/
-    install -d ${D}${docdir}/dt/html/
-    install -m755 Scripts/dt? ${D}${datadir}/dt/
-    install -m644 data/pattern_* ${D}${datadir}/dt/
-    install -m644 html/* ${D}${docdir}/dt/html/
-}
-
-RDEPENDS_${PN} += "tcsh"
-
-PNBLACKLIST[dt] ?= "Rdepends on blacklisted tcsh - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
new file mode 100644
index 0000000..a7a42f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
@@ -0,0 +1,26 @@
+From 8b44dc65d98d50b462843ac9dab6fe3fc25abe36 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Fri, 12 May 2017 13:54:49 +0200
+Subject: [PATCH] correct version for so lib
+
+Upstream-Status: Pending
+
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3670afe..f4fcd2c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -172,6 +172,7 @@ endif()
+ if(FLATBUFFERS_BUILD_SHAREDLIB)
+   add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
+   set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers)
++  set_target_properties(flatbuffers_shared PROPERTIES VERSION "${PV}")
+ endif()
+ 
+ function(compile_flatbuffers_schema_to_cpp SRC_FBS)
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
new file mode 100644
index 0000000..d736f01
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
@@ -0,0 +1,113 @@
+From a614d8e20fa9e4fd16b699d581ddac2956c120f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 10:04:02 -0700
+Subject: [PATCH 1/2] flatbuffers: Move EndianSwap template to
+ flatbuffers/base.h
+
+Clang complains
+call to function 'EndianSwap' that is neither visible in the template definition nor found by argument-dependent lookup
+     return EndianSwap(t);
+
+This seems to be due to limitation of two-phase lookup of dependent names in template definitions
+
+Its not being found using associated namespaces therefore
+it has to be made visible at the template definition site as well
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ include/flatbuffers/base.h        | 33 +++++++++++++++++++++++++++++++++
+ include/flatbuffers/flatbuffers.h | 32 --------------------------------
+ 2 files changed, 33 insertions(+), 32 deletions(-)
+
+diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
+index f051755..c73fb2d 100644
+--- a/include/flatbuffers/base.h
++++ b/include/flatbuffers/base.h
+@@ -150,6 +150,39 @@ typedef uintmax_t largest_scalar_t;
+ // We support aligning the contents of buffers up to this size.
+ #define FLATBUFFERS_MAX_ALIGNMENT 16
+ 
++template<typename T> T EndianSwap(T t) {
++  #if defined(_MSC_VER)
++    #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
++    #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
++    #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
++  #else
++    #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
++      // __builtin_bswap16 was missing prior to GCC 4.8.
++      #define FLATBUFFERS_BYTESWAP16(x) \
++        static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
++    #else
++      #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
++    #endif
++    #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
++    #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
++  #endif
++  if (sizeof(T) == 1) {   // Compile-time if-then's.
++    return t;
++  } else if (sizeof(T) == 2) {
++    auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
++    return *reinterpret_cast<T *>(&r);
++  } else if (sizeof(T) == 4) {
++    auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
++    return *reinterpret_cast<T *>(&r);
++  } else if (sizeof(T) == 8) {
++    auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
++    return *reinterpret_cast<T *>(&r);
++  } else {
++    assert(0);
++  }
++}
++
++
+ template<typename T> T EndianScalar(T t) {
+   #if FLATBUFFERS_LITTLEENDIAN
+     return t;
+diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h
+index 9216cf4..f749dcb 100644
+--- a/include/flatbuffers/flatbuffers.h
++++ b/include/flatbuffers/flatbuffers.h
+@@ -37,38 +37,6 @@ inline void EndianCheck() {
+   (void)endiantest;
+ }
+ 
+-template<typename T> T EndianSwap(T t) {
+-  #if defined(_MSC_VER)
+-    #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
+-    #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
+-    #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
+-  #else
+-    #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
+-      // __builtin_bswap16 was missing prior to GCC 4.8.
+-      #define FLATBUFFERS_BYTESWAP16(x) \
+-        static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
+-    #else
+-      #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
+-    #endif
+-    #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
+-    #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
+-  #endif
+-  if (sizeof(T) == 1) {   // Compile-time if-then's.
+-    return t;
+-  } else if (sizeof(T) == 2) {
+-    auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
+-    return *reinterpret_cast<T *>(&r);
+-  } else if (sizeof(T) == 4) {
+-    auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
+-    return *reinterpret_cast<T *>(&r);
+-  } else if (sizeof(T) == 8) {
+-    auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
+-    return *reinterpret_cast<T *>(&r);
+-  } else {
+-    assert(0);
+-  }
+-}
+-
+ template<typename T> FLATBUFFERS_CONSTEXPR size_t AlignOf() {
+   #ifdef _MSC_VER
+     return __alignof(T);
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
new file mode 100644
index 0000000..460159f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
@@ -0,0 +1,30 @@
+From 626fe5e043de25e970ebdf061b88c646fa689113 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 10:09:31 -0700
+Subject: [PATCH 2/2] use __builtin_bswap16 when building with clang
+
+clang pretends to be gcc 4.2.0 and therefore the code does
+not use __builtin_bswap16 but tries to synthesize it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+ include/flatbuffers/base.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
+index c73fb2d..13e8fac 100644
+--- a/include/flatbuffers/base.h
++++ b/include/flatbuffers/base.h
+@@ -156,7 +156,7 @@ template<typename T> T EndianSwap(T t) {
+     #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
+     #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
+   #else
+-    #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
++    #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 && !defined(__clang__)
+       // __builtin_bswap16 was missing prior to GCC 4.8.
+       #define FLATBUFFERS_BYTESWAP16(x) \
+         static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
+-- 
+2.14.1
+
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.7.1.bb
new file mode 100644
index 0000000..a8df444
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.7.1.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Memory Efficient Serialization Library"
+HOMEPAGE = "https://github.com/google/flatbuffers"
+SECTION = "console/tools"
+LICENSE = "Apache-2.0"
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+
+RDEPENDS_${PN}-compiler = "${PN}"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559"
+
+SRCREV = "25a15950f5a24d7217689739ed8f6dac64912d62"
+
+SRC_URI = "git://github.com/google/flatbuffers.git \
+           file://0001-correct-version-for-so-lib.patch \
+           file://0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch \
+           file://0002-use-__builtin_bswap16-when-building-with-clang.patch \
+           "
+
+# Make sure C++11 is used, required for example for GCC 4.9
+CXXFLAGS += "-std=c++11"
+BUILD_CXXFLAGS += "-std=c++11"
+
+EXTRA_OECMAKE += "\
+    -DFLATBUFFERS_BUILD_TESTS=OFF \
+    -DFLATBUFFERS_BUILD_SHAREDLIB=ON \
+    -DPV=${PV} \
+"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+FILES_${PN}-compiler = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.30.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
similarity index 96%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.30.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
index f01dda8..27fe860 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.30.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
@@ -25,8 +25,8 @@
 inherit autotools pkgconfig gtk-icon-cache
 
 SRC_URI = "http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "13f8e5d900b4911059385649b8dde887"
-SRC_URI[sha256sum] = "8adb90645d273d9549e1fa99b69ea87dc1fd612f7467eb18eee11a6b30c9ba5b"
+SRC_URI[md5sum] = "808f9048b77fd9704569ed2ba12a56e9"
+SRC_URI[sha256sum] = "76bd9e803db5a626b86669f08330cf95b8cc35057a1cdf65759bc00aef120e25"
 
 do_configure_prepend() {
     rm -f ${S}/build/cache/glib-gettext.m4
@@ -166,6 +166,11 @@
 FILES_${PN}-git-changebar = "${libdir}/geany/git-changebar.so"
 RDEPENDS_${PN}-git-changebar = "${PN}"
 
+PLUGINS += "${PN}-keyrecord"
+LIC_FILES_CHKSUM += "file://keyrecord/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES_${PN}-keyrecord = "${libdir}/geany/keyrecord.so"
+RDEPENDS_${PN}-keyrecord = "${PN}"
+
 PLUGINS += "${PN}-lineoperations"
 LIC_FILES_CHKSUM += "file://lineoperations/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
 FILES_${PN}-lineoperations = "${libdir}/geany/lineoperations.so"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.30.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
similarity index 75%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.30.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
index e316ea7..ce36e1e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.30.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
@@ -8,8 +8,8 @@
 inherit autotools pkgconfig perlnative pythonnative gettext
 
 SRC_URI = "http://download.geany.org/${BP}.tar.bz2"
-SRC_URI[md5sum] = "75081b600560c5c8366eda0e1b8cc531"
-SRC_URI[sha256sum] = "0ac360f1f3d6c28790a81d570252a7d40421f6e1d8e5a8d653756bd041d88491"
+SRC_URI[md5sum] = "386000be6b26972c6a699939c37cda34"
+SRC_URI[sha256sum] = "30fdb906bb76c4251a8bcf83ee267db28c26ef6ab867668a782cec1164a3aba5"
 
 FILES_${PN} += "${datadir}/icons"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade/remove-yelp-help-rules-var.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade/remove-yelp-help-rules-var.patch
new file mode 100644
index 0000000..78a8719
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade/remove-yelp-help-rules-var.patch
@@ -0,0 +1,39 @@
+From 42efc94c11d510b41d8cf3407e1c3900eb52b600 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 4 Jun 2015 16:28:02 +0800
+Subject: [PATCH] Remove unused variable (YELP_HELP_RULES)
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ help/Makefile.am | 2 --
+ help/Makefile.in | 2 --
+ 2 files changed, 4 deletions(-)
+
+diff --git a/help/Makefile.am b/help/Makefile.am
+index 50c0e84..5c5d2e9 100644
+--- a/help/Makefile.am
++++ b/help/Makefile.am
+@@ -1,5 +1,3 @@
+-@YELP_HELP_RULES@
+-
+ HELP_ID = glade
+ 
+ HELP_FILES = \
+diff --git a/help/Makefile.in b/help/Makefile.in
+index 6978ea5..e1c7d3b 100644
+--- a/help/Makefile.in
++++ b/help/Makefile.in
+@@ -521,8 +521,6 @@ uninstall-am:
+ 
+ .PRECIOUS: Makefile
+ 
+-@YELP_HELP_RULES@
+-
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/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
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0002-fix-gcc-6-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0002-fix-gcc-6-build.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
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.0.bb
new file mode 100644
index 0000000..f33b6e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb
@@ -0,0 +1,25 @@
+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+ gtk+3 glib-2.0 libxml2 intltool-native \
+           gnome-common-native \
+"
+
+
+inherit autotools pkgconfig gnomebase gobject-introspection
+
+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"
+
+EXTRA_OECONF += "--disable-man-pages"
+
+FILES_${PN} += "${datadir}/* ${libdir}/glade/modules/libgladegtk.so"
+FILES_${PN}-dev += "${libdir}/glade/modules/libgladegtk.la"
+FILES_${PN}-dbg += "${libdir}/glade/modules/.debug/libgladegtk.so"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
new file mode 100644
index 0000000..5b9afd9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
@@ -0,0 +1,54 @@
+From 86b4d398dbb95e2437b70eba3b30e995ec9be505 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Aug 2017 20:47:50 -0700
+Subject: [PATCH] Fix printd formatting strings
+
+Fixes
+error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ipfilter.c | 2 +-
+ src/othptab.c  | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/ipfilter.c b/src/ipfilter.c
+index eb17ec7..8c76e4c 100644
+--- a/src/ipfilter.c
++++ b/src/ipfilter.c
+@@ -146,7 +146,7 @@ void gethostparams(struct hostparams *data, char *init_saddr, char *init_smask,
+ 				snprintf(msgstr, 60,
+ 					 "Invalid protocol input at or near token \"%s\"",
+ 					 bptr);
+-				tui_error(ANYKEY_MSG, msgstr);
++				tui_error(ANYKEY_MSG, "%s", msgstr);
+ 				doagain = 1;
+ 			} else
+ 				doagain = 0;
+diff --git a/src/othptab.c b/src/othptab.c
+index 142c9c2..fe395c2 100644
+--- a/src/othptab.c
++++ b/src/othptab.c
+@@ -410,7 +410,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
+ 				break;
+ 			}
+ 
+-			sprintf(scratchpad, rarp_mac_addr);
++			sprintf(scratchpad, "%s", rarp_mac_addr);
+ 			strcat(msgstring, scratchpad);
+ 			wattrset(table->othpwin, ARPATTR);
+ 			break;
+@@ -485,7 +485,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
+ 		wattrset(table->othpwin, UNKNIPATTR);
+ 		protptr = getprotobynumber(entry->protocol);
+ 		if (protptr != NULL) {
+-			sprintf(protname, protptr->p_aliases[0]);
++			sprintf(protname, "%s", protptr->p_aliases[0]);
+ 		} else {
+ 			sprintf(protname, "IP protocol");
+ 			unknown = 1;
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
new file mode 100644
index 0000000..65b92da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
@@ -0,0 +1,81 @@
+Use pkg-config to search for ncurses libraries
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: iptraf-ng-1.1.4/Makefile
+===================================================================
+--- iptraf-ng-1.1.4.orig/Makefile
++++ iptraf-ng-1.1.4/Makefile
+@@ -205,8 +205,8 @@ endif
+ 
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSES5
+-	NCURSES_CFLAGS := $(shell ncurses5-config --cflags 2>/dev/null)
+-	NCURSES_LDFLAGS := $(shell ncurses5-config --libs 2>/dev/null)
++	NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
++	NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
+ 	ifndef NO_PANEL
+ 		NCURSES_LDFLAGS += -lpanel
+ 	endif
+@@ -215,8 +215,8 @@ endif
+ 
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSESW5
+-	NCURSES_CFLAGS := $(shell ncursesw5-config --cflags 2>/dev/null)
+-	NCURSES_LDFLAGS := $(shell ncursesw5-config --libs 2>/dev/null)
++	NCURSES_CFLAGS := $(shell p[k-config ncursesw --cflags 2>/dev/null)
++	NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ 	ifndef NO_PANEL
+ 		NCURSES_LDFLAGS += -lpanel
+ 	endif
+@@ -225,8 +225,8 @@ endif
+ 
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSES6
+-	NCURSES_CFLAGS := $(shell ncurses6-config --cflags 2>/dev/null)
+-	NCURSES_LDFLAGS := $(shell ncurses6-config --libs 2>/dev/null)
++	NCURSES_CFLAGS := $(shell pkg-config ncurses6 --cflags 2>/dev/null)
++	NCURSES_LDFLAGS := $(shell pkg-config ncurses6 --libs 2>/dev/null)
+ 	ifndef NO_PANEL
+ 		NCURSES_LDFLAGS += -lpanel
+ 	endif
+@@ -235,8 +235,8 @@ endif
+ 
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSESW6
+-	NCURSES_CFLAGS := $(shell ncursesw6-config --cflags 2>/dev/null)
+-	NCURSES_LDFLAGS := $(shell ncursesw6-config --libs 2>/dev/null)
++	NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++	NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ 	ifndef NO_PANEL
+ 		NCURSES_LDFLAGS += -lpanel
+ 	endif
+@@ -246,17 +246,17 @@ endif
+ # try find ncuses by autodetect
+ ifndef NCURSES_LDFLAGS
+ 	ifneq ($(shell ncursesw6-config --libs 2>/dev/null),)
+-		NCURSES_CFLAGS := $(shell ncursesw6-config --cflags 2>/dev/null)
+-		NCURSES_LDFLAGS := $(shell ncursesw6-config --libs 2>/dev/null)
+-	else ifneq ($(shell ncurses6-config --libs 2>/dev/null),)
+-		NCURSES_CFLAGS := $(shell ncurses6-config --cflags 2>/dev/null)
+-		NCURSES_LDFLAGS := $(shell ncurses6-config --libs 2>/dev/null)
+-	else ifneq ($(shell ncursesw5-config --libs 2>/dev/null),)
+-		NCURSES_CFLAGS := $(shell ncursesw5-config --cflags 2>/dev/null)
+-		NCURSES_LDFLAGS := $(shell ncursesw5-config --libs 2>/dev/null)
+-	else ifneq ($(shell ncurses5-config --libs 2>/dev/null),)
+-		NCURSES_CFLAGS := $(shell ncurses5-config --cflags 2>/dev/null)
+-		NCURSES_LDFLAGS := $(shell ncurses5-config --libs 2>/dev/null)
++		NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++		NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
++	else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
++		NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
++		NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
++	else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++		NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++		NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
++	else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
++		NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
++		NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
+ 	endif
+ 
+ 	ifneq ($(NCURSES_LDFLAGS),)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
new file mode 100644
index 0000000..c53e663
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
@@ -0,0 +1,42 @@
+# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A console-based network monitoring utility"
+DESCRIPTION = "IPTraf-ng is a console-based network monitoring utility.  IPTraf gathers \
+data like TCP connection packet and byte counts, interface statistics \
+and activity indicators, TCP/UDP traffic breakdowns, and LAN station \
+packet and byte counts.  IPTraf-ng features include an IP traffic monitor \
+which shows TCP flag information, packet and byte counts, ICMP \
+details, OSPF packet types, and oversized IP packet warnings; \
+interface statistics showing IP, TCP, UDP, ICMP, non-IP and other IP \
+packet counts, IP checksum errors, interface activity and packet size \
+counts; a TCP and UDP service monitor showing counts of incoming and \
+outgoing packets for common TCP and UDP application ports, a LAN \
+statistics module that discovers active hosts and displays statistics \
+about their activity; TCP, UDP and other protocol display filters so \
+you can view just the traffic you want; logging; support for Ethernet, \
+FDDI, ISDN, SLIP, PPP, and loopback interfaces; and utilization of the \
+built-in raw socket interface of the Linux kernel, so it can be used \
+on a wide variety of supported network cards."
+
+HOMEPAGE = "https://fedorahosted.org/iptraf-ng/"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e2b3850593b899b1a17594ed4cc4c731"
+DEPENDS = "ncurses"
+
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/iptraf-ng/iptraf-ng-1.1.4.tar.gz/e0f8df3b7baf2b5106709abc4f8c029a/${BP}.tar.gz \
+           file://ncurses-config.patch \
+           file://0001-Fix-printd-formatting-strings.patch \
+           "
+SRC_URI[md5sum] = "e0f8df3b7baf2b5106709abc4f8c029a"
+SRC_URI[sha256sum] = "16b9b05bf5d3725d86409b901696639ad46944d02de6def87b1ceae5310dd35c"
+
+inherit autotools-brokensep pkgconfig
+
+CFLAGS += "-D_GNU_SOURCE"
+
+PROVIDES = "iptraf"
+RPROVIDES_${PN} += "iptraf"
+RREPLACES_${PN} += "iptraf"
+RCONFLICTS_${PN} += "iptraf"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch
deleted file mode 100644
index 291ed31..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 27910ea19260b7f7a3f9c0465addd1dea80cf3bd Mon Sep 17 00:00:00 2001
-From: Li Xin <lixin.fnst@cn.fujitsu.com>
-Date: Thu, 8 Oct 2015 15:11:17 +0900
-Subject: [PATCH] src: Fix error in cross-compile
-
-The errors are like this:
-tcptable.h:26:25: fatal error: linux/if_tr.h: No such file or directory
-ld: cannot find -ltextbox
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- src/Makefile     | 2 +-
- src/hostmon.c    | 2 +-
- src/install.sh   | 4 ++--
- src/othptab.c    | 2 +-
- src/packet.c     | 2 +-
- src/tcptable.h   | 2 +-
- src/tr.c         | 2 +-
- support/Makefile | 3 +--
- 8 files changed, 9 insertions(+), 10 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 2043c2d..0f77bea 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -39,7 +39,7 @@ LDOPTS		= #-static
- # you may want to change this to point to your ncurses include directory
- # if the ncurses include files are not in the default location.
- 
--INCLUDEDIR	= -I/usr/include/ncurses -I../support
-+INCLUDEDIR	=  -I../support
- 
- # You can uncomment this one to disable the backspace key in input fields.
- # This means you must use the Del key or Ctrl+H combination to erase the
-diff --git a/src/hostmon.c b/src/hostmon.c
-index 14df2c8..6571562 100644
---- a/src/hostmon.c
-+++ b/src/hostmon.c
-@@ -31,7 +31,7 @@ details.
- #include <linux/if_packet.h>
- #include <linux/if_ether.h>
- #include <linux/if_fddi.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <net/if_arp.h>
- #include <stdlib.h>
- #include <time.h>
-diff --git a/src/install.sh b/src/install.sh
-index d2fd360..36d3516 100755
---- a/src/install.sh
-+++ b/src/install.sh
-@@ -23,9 +23,9 @@ echo
- echo "*** Installing executable programs and preparing work directories"
- echo
- echo ">>> Installing iptraf in $TARGET"
--$INSTALL -m 0700 -o root -g root -s iptraf $TARGET
-+$INSTALL -m 0700 -o root -g root  iptraf $TARGET
- echo ">>> Installing rvnamed in $TARGET"
--$INSTALL -m 0700 -o root -g root -s rvnamed $TARGET
-+$INSTALL -m 0700 -o root -g root  rvnamed $TARGET
- 
- if [ ! -d $WORKDIR ]; then
-     echo ">>> Creating IPTraf work directory $WORKDIR"
-diff --git a/src/othptab.c b/src/othptab.c
-index 97771d1..a8bb536 100644
---- a/src/othptab.c
-+++ b/src/othptab.c
-@@ -18,7 +18,7 @@ details.
- 
- #include <asm/types.h>
- #include <linux/if_ether.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <linux/if_fddi.h>
- #include <winops.h>
- #include "arphdr.h"
-diff --git a/src/packet.c b/src/packet.c
-index 33fdf2a..1e2b81b 100644
---- a/src/packet.c
-+++ b/src/packet.c
-@@ -36,7 +36,7 @@ details.
- #include <linux/if_packet.h>
- #include <linux/if_ether.h>
- #include <linux/if_fddi.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <linux/isdn.h>
- #include <linux/sockios.h>
- #include <msgboxes.h>
-diff --git a/src/tcptable.h b/src/tcptable.h
-index 3e17793..d1380b5 100644
---- a/src/tcptable.h
-+++ b/src/tcptable.h
-@@ -23,7 +23,7 @@
- #include <linux/if_packet.h>
- #include <linux/if_ether.h>
- #include <linux/if_fddi.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <net/if.h>
- #include <netinet/ip.h>
- #include <netinet/udp.h>
-diff --git a/src/tr.c b/src/tr.c
-index 40c9e63..11f8045 100644
---- a/src/tr.c
-+++ b/src/tr.c
-@@ -7,7 +7,7 @@
-  */
- 
- #include <asm/types.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <netinet/in.h>
- 
- unsigned int get_tr_ip_offset(unsigned char *pkt)
-diff --git a/support/Makefile b/support/Makefile
-index 114bfc3..c962c09 100644
---- a/support/Makefile
-+++ b/support/Makefile
-@@ -1,4 +1,3 @@
--INCLUDEDIR		= -I/usr/include/ncurses
- 
- OBJS			= input.o menurt.o listbox.o winops.o labels.o \
- 				msgboxes.o txbox.o
-@@ -12,7 +11,7 @@ libtextbox.a: $(OBJS)
- #	gcc -shared -o libtextbox.so $(OBJS)
- 
- %.o: %.c *.h
--	gcc -O2 -g -Wall -fPIC $(INCLUDEDIR) -c -o $*.o $<
-+	${CC} -O2 -g -Wall -fPIC  -c -o $*.o $<
- 
- clean:
- 	rm -rf *.o *~ libtextbox.a libtextbox.so
--- 
-1.8.4.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/format_string.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/format_string.patch
deleted file mode 100644
index 5f96f0f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/format_string.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Index: iptraf-3.0.0/src/othptab.c
-===================================================================
---- iptraf-3.0.0.orig/src/othptab.c
-+++ iptraf-3.0.0/src/othptab.c
-@@ -335,7 +335,7 @@ void printothpentry(struct othptable *ta
-                 break;
-             }
- 
--            sprintf(scratchpad, inet_ntoa(saddr));
-+            sprintf(scratchpad, "%s", inet_ntoa(saddr));
-             strcat(msgstring, scratchpad);
-             wattrset(table->othpwin, ARPATTR);
-             break;
-@@ -354,7 +354,7 @@ void printothpentry(struct othptable *ta
-                 break;
-             }
- 
--            sprintf(scratchpad, rarp_mac_addr);
-+            sprintf(scratchpad, "%s", rarp_mac_addr);
-             strcat(msgstring, scratchpad);
-             wattrset(table->othpwin, ARPATTR);
-             break;
-@@ -421,7 +421,7 @@ void printothpentry(struct othptable *ta
-         wattrset(table->othpwin, UNKNIPATTR);
-         protptr = getprotobynumber(entry->protocol);
-         if (protptr != NULL) {
--            sprintf(protname, protptr->p_aliases[0]);
-+            sprintf(protname, "%s", protptr->p_aliases[0]);
-         } else {
-             sprintf(protname, "IP protocol");
-             unknown = 1;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/ldopts.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/ldopts.patch
deleted file mode 100644
index c84a0a0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/ldopts.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Index: iptraf-3.0.0/src/Makefile
-===================================================================
---- iptraf-3.0.0.orig/src/Makefile
-+++ iptraf-3.0.0/src/Makefile
-@@ -5,7 +5,7 @@
- #
- # Architecture determination string borrowed from the kernel makefile.
- #
--ARCH 		:= $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-+ARCH 		?= $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
- 			-e s/arm.*/arm/ -e s/sa110/arm/)
- PLATFORM 	= -DPLATFORM=\"$(shell uname -s)/$(ARCH)\"
- VERNUMBER	:= $(shell cat version)
-@@ -17,7 +17,7 @@ VERSION 	= -DVERSION=\"$(VERNUMBER)\"
- #
- BINDIR		= ../../iptraf-$(VERNUMBER).bin.$(ARCH)
- 
--CC		= gcc
-+CC		= $(CC)
- LIBS		= -L../support -ltextbox -lpanel -lncurses   # in this order!
- 
- # comment this one out to omit debug code when done.
-@@ -31,10 +31,10 @@ PROF		= #-pg
- # options to be passed to the compiler.  I don't believe they need to be
- # modified (except for -m486 on non-Intel x86 platforms).
- 
--CFLAGS		= -Wall #-O2 #-m486
-+CFLAGS		?= -Wall #-O2 #-m486
- DIRS		= -DWORKDIR=\"$(WORKDIR)\" \
- 		  -DLOGDIR=\"$(LOGDIR)\" -DEXECDIR=\"$(TARGET)\"
--LDOPTS		= #-static
-+LDOPTS		?= #-static
- 
- # you may want to change this to point to your ncurses include directory
- # if the ncurses include files are not in the default location.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb
deleted file mode 100644
index abfab02..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-DESCRIPTION = "IPTraf is a console-based network statistics utility for Linux. \
-It gathers a variety of figures such as TCP connection packet and byte counts, \
-interface statistics and activity indicators, TCP/UDP traffic breakdowns, \
-and LAN station packet and byte counts."
-
-HOMEPAGE = "http://iptraf.seul.org"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc0bdc29df738baf327368b1bbb15a45"
-
-DEPENDS = "ncurses"
-
-SRC_URI = " \
-    ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.0.tar.gz \
-    file://0001-src-Fix-error-in-cross-compile.patch \
-    file://format_string.patch \
-    file://ldopts.patch \
-"
-SRC_URI[md5sum] = "377371c28ee3c21a76f7024920649ea8"
-SRC_URI[sha256sum] = "9ee433d95573d612539da4b452e6cdcbca6ab6674a88bfbf6eaf12d4902b5163"
-RDEPENDS_${PN} = "ncurses"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS= LDOPTS='${LDFLAGS}' ARCH='${TARGET_ARCH}'"
-
-do_compile() {
-    oe_runmake -C src all
-}
-
-do_install_append() {
-    rm -r ${D}/${localstatedir}/run
-}
-
-do_install() {
-    install -d ${D}${bindir}
-    oe_runmake -C src install \
-        TARGET=${D}${bindir} \
-        WORKDIR=${D}${localstatedir}/local/iptraf \
-        LOGDIR=${D}${localstatedir}/log/iptraf \
-        LOCKDIR=${D}${localstatedir}/run/iptraf
-}
-
-FILES_${PN} += "${bindir} ${localstatedir} /run"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Link-to-libatomic.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Link-to-libatomic.patch
new file mode 100644
index 0000000..4c8c7b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Link-to-libatomic.patch
@@ -0,0 +1,64 @@
+From bbac9ac3e391253bc1f90cf0f70a2ce1aac9511f Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Wed, 30 Aug 2017 16:50:56 +0200
+Subject: [PATCH] Link to libatomic
+
+This is needed for clang compiler.
+
+Upstream-Status: Pending
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ json_demo/CMakeLists.txt              | 2 +-
+ json_headers_only_demo/CMakeLists.txt | 2 +-
+ json_map_demo/CMakeLists.txt          | 2 +-
+ json_test/CMakeLists.txt              | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/json_demo/CMakeLists.txt b/json_demo/CMakeLists.txt
+index b1d3c6a..0dfd308 100644
+--- a/json_demo/CMakeLists.txt
++++ b/json_demo/CMakeLists.txt
+@@ -5,5 +5,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+ 
+ ADD_EXECUTABLE(json_demo ${JSON_DEMO_SRCS})
+-TARGET_LINK_LIBRARIES(json_demo json_spirit)
++TARGET_LINK_LIBRARIES(json_demo json_spirit -latomic)
+ 
+diff --git a/json_headers_only_demo/CMakeLists.txt b/json_headers_only_demo/CMakeLists.txt
+index a3c787a..6eae11e 100644
+--- a/json_headers_only_demo/CMakeLists.txt
++++ b/json_headers_only_demo/CMakeLists.txt
+@@ -5,5 +5,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+ 
+ ADD_EXECUTABLE(json_headers_only_demo ${JSON_HEADERS_ONLY_DEMO_SRCS})
+-TARGET_LINK_LIBRARIES(json_headers_only_demo json_spirit)
++TARGET_LINK_LIBRARIES(json_headers_only_demo json_spirit -latomic)
+ 
+diff --git a/json_map_demo/CMakeLists.txt b/json_map_demo/CMakeLists.txt
+index 599006a..e3e45e8 100644
+--- a/json_map_demo/CMakeLists.txt
++++ b/json_map_demo/CMakeLists.txt
+@@ -5,5 +5,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+ 
+ ADD_EXECUTABLE(json_map_demo ${JSON_MAP_DEMO_SRCS})
+-TARGET_LINK_LIBRARIES(json_map_demo json_spirit)
++TARGET_LINK_LIBRARIES(json_map_demo json_spirit -latomic)
+ 
+diff --git a/json_test/CMakeLists.txt b/json_test/CMakeLists.txt
+index 38ffa7f..1ec1365 100644
+--- a/json_test/CMakeLists.txt
++++ b/json_test/CMakeLists.txt
+@@ -11,5 +11,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+ 
+ ADD_EXECUTABLE(json_test ${JSON_TEST_SRCS})
+-TARGET_LINK_LIBRARIES(json_test json_spirit)
++TARGET_LINK_LIBRARIES(json_test json_spirit -latomic)
+ 
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
index 2f456bf..c7c1ad1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
@@ -11,14 +11,13 @@
 
 SRC_URI = "file://json_spirit_v${PV}.zip \
            file://0001-Adjust-the-cmake-files.patch \
+           file://0001-Link-to-libatomic.patch \
 "
 
 S = "${WORKDIR}/json_spirit_v${PV}"
 
 DEPENDS = "boost"
 
-LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
-
 inherit cmake
 
 FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibJsonSpirit.cmake"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
similarity index 83%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
index fe6ae24..b7a02ef 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
@@ -9,9 +9,9 @@
 SECTION = "libs"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c56ee55c03a55f8105b969d8270632ce"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fa2a23dd1dc6c139f35105379d76df2b"
 
-SRCREV = "f700fe455940d4d325c088b9174a173e130e0fa8"
+SRCREV = "2de18021fcb11370e9b5a1fbe7dcfd673533a134"
 SRC_URI = "git://github.com/open-source-parsers/jsoncpp"
 
 S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Makefile-ensure-frontends-exits-before-writing-into-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Makefile-ensure-frontends-exits-before-writing-into-.patch
new file mode 100644
index 0000000..a5263c6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Makefile-ensure-frontends-exits-before-writing-into-.patch
@@ -0,0 +1,32 @@
+From 780b0b8e48551ba49b011caeeb09101a09c14a61 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Fri, 26 May 2017 17:11:32 +0100
+Subject: [PATCH] Makefile: ensure frontends/ exits before writing into it
+
+As previously, if GCC dependencies are not being written and the build is out of
+tree then frontends/ won't exist so we need to create it.
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
+(cherry picked from commit f7986375129d1ada7dc6abeeec5b9d00ef6f7149)
+Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 1baa110..434db5d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -171,6 +171,7 @@ if COND_kconfig
+ bin_SCRIPTS += frontends/kconfig
+ 
+ frontends/kconfig: frontends/kconfig.in
++	$(MKDIR_P) $(@D)
+ 	$(AM_V_GEN)$(SED) -e 's/@KCFG_LIST@/$(kcfg_list)/g' \
+ 		$< >$@
+ 	@chmod +x $@
+-- 
+2.12.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Switch-utils-kconfig-diff-to-use-Python-3.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Switch-utils-kconfig-diff-to-use-Python-3.patch
new file mode 100644
index 0000000..b8f8904
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Switch-utils-kconfig-diff-to-use-Python-3.patch
@@ -0,0 +1,26 @@
+From 3b9b0f82c33f793a14d44bf06b6c8136bc3fc4bf Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 27 Apr 2017 16:48:42 +0300
+Subject: [PATCH] Switch utils/kconfig-diff to use Python 3
+
+The script supports it, but continues to refer to 2.x in shebang.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ utils/kconfig-diff | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/utils/kconfig-diff b/utils/kconfig-diff
+index 0db267d..19189f3 100755
+--- a/utils/kconfig-diff
++++ b/utils/kconfig-diff
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+ #
+ # diffconfig - a tool to compare .config files.
+ #
+-- 
+2.11.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
new file mode 100644
index 0000000..df08b8b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
@@ -0,0 +1,41 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Linux kernel style configuration framework for other projects"
+DESCRIPTION = "The kconfig-frontends project aims at centralising \
+the effort of keeping an up-to-date, out-of-tree, packaging of the \
+kconfig infrastructure, ready for use by third-party projects. \
+The kconfig-frontends package provides the kconfig parser, as well as all \
+the frontends"
+HOMEPAGE = "http://ymorin.is-a-geek.org/projects/kconfig-frontends"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
+SECTION = "devel"
+DEPENDS += "ncurses flex bison gperf-native"
+RDEPENDS_${PN} += "python3 bash"
+SRC_URI = "git://ymorin.is-a-geek.org/kconfig-frontends;branch=4.11.x \
+	   file://0001-Makefile-ensure-frontends-exits-before-writing-into-.patch \
+           file://0001-Switch-utils-kconfig-diff-to-use-Python-3.patch"
+
+SRCREV = "f22fce3a308be1c7790ebefc6bbedb33c5f7c86a"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+do_configure_prepend () {
+	mkdir -p ${S}/scripts/.autostuff/m4
+}
+
+do_install_append() {
+	ln -s kconfig-conf ${D}${bindir}/conf
+	ln -s kconfig-mconf ${D}${bindir}/mconf
+}
+
+EXTRA_OECONF += "--disable-gconf --disable-qconf"
+
+# Some packages have the version preceeding the .so instead properly
+# versioned .so.<version>, so we need to reorder and repackage.
+SOLIBS = "-${@d.getVar('PV')[:-2]}.so"
+FILES_SOLIBSDEV = "${libdir}/libkconfig-parser.so"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
index cd0d143..560c3a6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
@@ -53,7 +53,7 @@
 +####################################################################
 +INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake)
 +
-+SET (LIBRCF_LIBRARIES "-lpthread -ldl")
++SET (LIBRCF_LIBRARIES "-lpthread -ldl -latomic")
 +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/include)
 +
 +IF (LIBRCF_USE_OPENSSL)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch
new file mode 100644
index 0000000..d91accf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch
@@ -0,0 +1,28 @@
+From ac7316679e30f7013604b19aa0949a0744e91d2f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 1 Jul 2017 13:06:30 -0700
+Subject: [PATCH] Check for __powerpc__ define
+
+Also check for gcc's internal define for ppc platform
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/RCF/ByteOrdering.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/RCF/ByteOrdering.cpp b/src/RCF/ByteOrdering.cpp
+index 278ca80..9f9c446 100755
+--- a/src/RCF/ByteOrdering.cpp
++++ b/src/RCF/ByteOrdering.cpp
+@@ -36,7 +36,7 @@ namespace RCF {
+ 
+     const ByteOrder MachineByteOrder = BigEndian;
+ 
+-#elif defined( __ppc__ )
++#elif defined( __ppc__ ) || defined( __powerpc__ )
+ 
+     const ByteOrder MachineByteOrder = BigEndian;
+ 
+-- 
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch
new file mode 100644
index 0000000..e949dee
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch
@@ -0,0 +1,35 @@
+From d78851b6f87f2472f041102d7b3726ffc009bfad Mon Sep 17 00:00:00 2001
+From: Ming Liu <peter.x.liu@external.atlascopco.com>
+Date: Tue, 6 Jun 2017 05:54:20 +0200
+Subject: [PATCH] ClientStub.hpp: fix a clang compiling issue
+
+A error was observed with clang compiler, as follows:
+| src/RCF/RCF.cpp:49:
+| src/RCF/ClientStub.cpp:28:
+| include/RCF/Future.hpp:49:26: error: 'enrol' is a private member of 'RCF::ClientStub'
+
+it can be fixed by declaring Future as a friend class of ClientStub.
+
+Upstream-Status: Pending
+
+Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
+---
+ include/RCF/ClientStub.hpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/RCF/ClientStub.hpp b/include/RCF/ClientStub.hpp
+index 9882cf4..8465625 100755
+--- a/include/RCF/ClientStub.hpp
++++ b/include/RCF/ClientStub.hpp
+@@ -372,6 +372,8 @@ namespace RCF {
+ 
+     private:
+ 
++        template<typename U>
++        friend class Future;
+         friend class FutureImplBase;
+ 
+         template<
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
index 28cd0fe..e08efb9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
@@ -3,11 +3,11 @@
 --- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp
 +++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
 @@ -60,7 +60,7 @@ namespace RCF {
- 

-     const ByteOrder MachineByteOrder = LittleEndian;

- 

--#elif defined(__arm__)

-+#elif defined(__arm__) || defined(__aarch64__)

- 

-     const ByteOrder MachineByteOrder = LittleEndian;

- 

+ 
+     const ByteOrder MachineByteOrder = LittleEndian;
+ 
+-#elif defined(__arm__)
++#elif defined(__arm__) || defined(__aarch64__)
+ 
+     const ByteOrder MachineByteOrder = LittleEndian;
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch
new file mode 100644
index 0000000..4a327f7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch
@@ -0,0 +1,19 @@
+Index: RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
+===================================================================
+--- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp
++++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
+@@ -64,6 +64,14 @@ namespace RCF {
+ 
+     const ByteOrder MachineByteOrder = LittleEndian;
+ 
++#elif defined(__mipsel__) || defined(__mips64el__)
++
++    const ByteOrder MachineByteOrder = LittleEndian;
++
++#elif defined( __mips__ ) || defined(__mips64__)
++
++    const ByteOrder MachineByteOrder = BigEndian;
++
+ #elif defined(__bfin__)
+ 
+     const ByteOrder MachineByteOrder = LittleEndian;
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 51ad7ec..43eff72 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
@@ -8,19 +8,22 @@
 SECTION = "libs"
 PRIORITY = "optional"
 LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://license.txt;md5=137c2935b51c95068a8b1bbd434ffe2d"
+LIC_FILES_CHKSUM = "file://license.txt;md5=7586a312b9e978f9d6fac9a5780d1f84"
 
 SRC_URI = "http://www.deltavsoft.com/downloads/RCF-${PV}.tar.gz \
            file://0001-Add-CMake-build-files.patch \
            file://aarch64-support.patch \
-          "
+           file://0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch \
+           file://mips-support.patch \
+           file://0001-Check-for-__powerpc__-define.patch \
+           "
 
 SRC_URI[md5sum] = "7ecb3c73f7eb66dba8790b659374f690"
 SRC_URI[sha256sum] = "bbfcc88de502c39604878c395f516b03fff4eac63eb4f7f44c07d433839712dd"
 
 S = "${WORKDIR}/RCF-${PV}"
 
-inherit cmake
+inherit cmake dos2unix
 
 PACKAGECONFIG ?= "zlib openssl sf-serialization boost-filesystem boost-asio protobuf json dll static shared demos"
 PACKAGECONFIG[zlib] = "-DLIBRCF_USE_ZLIB=ON,-DLIBRCF_USE_ZLIB=OFF,zlib,zlib"
@@ -31,8 +34,8 @@
 PACKAGECONFIG[boost-serialization] = "-DLIBRCF_USE_BOOST_SERIALIZATION=ON,-DLIBRCF_USE_BOOST_SERIALIZATION=OFF,boost,"
 PACKAGECONFIG[boost-filesystem] = "-DLIBRCF_USE_BOOST_FILESYSTEM=ON,-DLIBRCF_USE_BOOST_FILESYSTEM=OFF,boost,"
 PACKAGECONFIG[boost-asio] = "-DLIBRCF_USE_BOOST_ASIO=ON,-DLIBRCF_USE_BOOST_ASIO=OFF,boost,"
-PACKAGECONFIG[protobuf] = "-DLIBRCF_USE_PROTOBUF=ON,-DLIBRCF_USE_PROTOBUF=OFF,protobuf,"
-PACKAGECONFIG[json] = "-DLIBRCF_USE_JSON=ON,-DLIBRCF_USE_JSON=OFF,json-spirit,"
+PACKAGECONFIG[protobuf] = "-DLIBRCF_USE_PROTOBUF=ON,-DLIBRCF_USE_PROTOBUF=OFF,protobuf,protobuf"
+PACKAGECONFIG[json] = "-DLIBRCF_USE_JSON=ON,-DLIBRCF_USE_JSON=OFF,json-spirit,json-spirit"
 PACKAGECONFIG[ipv6] = "-DLIBRCF_USE_IPV6=ON,-DLIBRCF_USE_IPV6=OFF,"
 PACKAGECONFIG[custom-allocator] = "-DLIBRCF_USE_CUSTOM_ALLOCATOR=ON,-DLIBRCF_USE_CUSTOM_ALLOCATOR=OFF,"
 PACKAGECONFIG[dll] = "-DLIBRCF_BUILD_DLL=ON,-DLIBRCF_BUILD_DLL=OFF,"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3/0001-configure.ac-fix-cross-compiling-issue.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3/0001-configure.ac-fix-cross-compiling-issue.patch
new file mode 100644
index 0000000..1a69287
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3/0001-configure.ac-fix-cross-compiling-issue.patch
@@ -0,0 +1,31 @@
+From 9c2ffe825e28d63e2a771135f297e8ffac0dbe81 Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Tue, 11 Jul 2017 14:35:30 +0200
+Subject: [PATCH] configure.ac: fix cross-compiling issue
+
+Avoid checking for file existence when cross compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ configure.ac | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9978852..06b16e3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -120,9 +120,6 @@ AC_ARG_WITH(unicode-version,
+   AC_HELP_STRING(--with-unicode-version=VERSION,
+   [version of Unicode Standard @<:@default=current version@:>@]),
+   UNICODE_VERSION=$withval,UNICODE_VERSION=$DEFAULT_UNICODE_VERSION)
+-AC_CHECK_FILE([lib/$UNICODE_VERSION.c],
+-  AC_MSG_RESULT($UNICODE_VERSION),
+-  AC_MSG_ERROR(Unknown Unicode version $UNICODE_VERSION.))
+ AC_SUBST(UNICODE_VERSION)
+ 
+ # check if code to debug memory allocation is enabled.
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
new file mode 100644
index 0000000..b83e86a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Sombok - Unicode Text Segmentation Package."
+DESCRIPTION = "Sombok library package performs Line Breaking Algorithm described in \
+Unicode Standard Annex #14 (UAX #14).  East_Asian_Width informative \
+properties defined by Annex #11 (UAX #11) may be concerned to determin \
+breaking positions.  This package also implements "default" Grapheme \
+Cluster segmentation described in Annex #29 (UAX #29)."
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5b122a36d0f6dc55279a0ebc69f3c60b"
+
+SRC_URI = "git://github.com/hatukanezumi/sombok.git;protocol=https \
+           file://0001-configure.ac-fix-cross-compiling-issue.patch \
+          "
+
+inherit autotools pkgconfig
+
+# sombok-2.4.0
+SRCREV = "0098d85a037ef5c99a648a3669a077781a45e8cc"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+# Disable libthai support
+EXTRA_OECONF = "--disable-libthai"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
deleted file mode 100644
index 3e4aa73..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5bda9c0af56869c6ff2c25d38ea087179c946bc6 Mon Sep 17 00:00:00 2001
-From: Chong Lu <Chong.Lu@windriver.com>
-Date: Tue, 11 Mar 2014 14:47:22 +0800
-Subject: [PATCH] ltp: Don't link against libfl
-
-We have already defined yywrap function in scan.l file. After this, we no longer need to
-link against libfl and so no longer get errors about undefined references to yylex.
-
-Upstream-status: Pending
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
----
- pan/Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pan/Makefile b/pan/Makefile
-index 4cc6466..a4b575b 100644
---- a/pan/Makefile
-+++ b/pan/Makefile
-@@ -31,7 +31,7 @@ CPPFLAGS		+= -Wno-error
- 
- CPPFLAGS		+= -I$(abs_srcdir)
- 
--LDLIBS			+= -lm $(LEXLIB)
-+LDLIBS			+= -lm
- 
- LFLAGS			+= -l
- 
--- 
-1.7.9.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
deleted file mode 100644
index b13bd7b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
+++ /dev/null
@@ -1,97 +0,0 @@
-SUMMARY = "Embedded Linux Device Driver Tests based on Linux Test Project"
-HOMEPAGE = "http://arago-project.org/git/projects/test-automation/ltp-ddt.git"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-PROVIDES += "ltp"
-DEPENDS += "zip-native virtual/kernel alsa-lib"
-
-RDEPENDS_${PN} += "pm-qa serialcheck"
-
-inherit autotools module-base kernel-module-split
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRCREV = "f086bed6cc88bf102eaad0e96cb7ebe79944a8ad"
-BRANCH ?= "master"
-
-SRC_URI = "git://arago-project.org/git/projects/test-automation/ltp-ddt.git;branch=${BRANCH} \
-    file://ltp-Do-not-link-against-libfl.patch \
-"
-
-S = "${WORKDIR}/git"
-
-LTPROOT = "/opt/ltp"
-
-EXTRA_OEMAKE_append = " \
-    prefix=${LTPROOT} \
-    CROSS_COMPILE=${HOST_PREFIX} \
-    SKIP_IDCHECK=1 \
-    KERNEL_PATH=${STAGING_KERNEL_DIR} \
-    KERNEL_INC=${STAGING_KERNEL_DIR} \
-    KERNEL_USR_INC=${STAGING_INCDIR} \
-    ALSA_INCPATH=${STAGING_INCDIR} \
-    ALSA_LIBPATH=${STAGING_LIBDIR} \
-    PLATFORM=${MACHINE} \
-    RANLIB=${RANLIB} \
-    DESTDIR=${D} \
-    CC='${CC}' \
-    KERNEL_CC='${KERNEL_CC}' \
-"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-FILES_${PN}-dbg += " \
-    ${LTPROOT}/.debug \
-    ${LTPROOT}/bin/.debug \
-    ${LTPROOT}/runtest/.debug \
-    ${LTPROOT}/testcases/bin/.debug \
-    ${LTPROOT}/testcases/bin/*/bin/.debug \
-    ${LTPROOT}/testcases/bin/*/test/.debug \
-    ${LTPROOT}/testcases/bin/ddt/.debug \
-    ${LTPROOT}/testcases/bin/ddt/*/bin/.debug \
-    ${LTPROOT}/testcases/bin/ddt/*/test/.debug \
-    ${LTPROOT}/testcases/realtime/*/*/.debug \
-"
-
-FILES_${PN}-staticdev += "${LTPROOT}/lib"
-FILES_${PN} += "${LTPROOT}/*"
-
-KERNEL_MODULES_META_PACKAGE = "${PN}"
-
-kmoddir = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/ddt"
-
-# ltp doesn't regenerate ffsb-6.0-rc2 configure and hardcode configure call.
-# we explicitly force regeneration of that directory and pass configure options.
-do_configure_append() {
-    (cd utils/ffsb-6.0-rc2; autoreconf -fvi; ./configure ${CONFIGUREOPTS})
-}
-
-# The makefiles make excessive use of make -C and several include testcases.mk
-# which triggers a build of the syscall header. To reproduce, build ltp,
-# then delete the header, then "make -j XX" and watch regen.sh run multiple
-# times. Its easier to generate this once here instead.
-do_compile_prepend () {
-    ( make -C ${B}/testcases/kernel include/linux_syscall_numbers.h )
-}
-
-do_compile_append () {
-    unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
-    oe_runmake modules
-}
-
-do_install() {
-    oe_runmake install
-    install -d ${D}${datadir}
-    install -d ${D}${kmoddir}
-    mv ${D}${LTPROOT}/testcases/bin/ddt/*.ko ${D}${kmoddir}
-}
-
-# do_make_scripts should be a separate task for the lock to work
-addtask make_scripts before do_compile
-do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
-do_make_scripts[deptask] = "do_populate_sysroot"
-
-# http://errors.yoctoproject.org/Errors/Details/56327/
-PNBLACKLIST[ltp-ddt] ?= "BROKEN: fails since last autotools.bbclass changes - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch
new file mode 100644
index 0000000..76ba7de
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch
@@ -0,0 +1,27 @@
+From 19a3e590c97420bd3952301bf376067c75d0ee32 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 18 Sep 2017 23:45:54 -0700
+Subject: [PATCH] mips/plt.c: Delete include error.h
+
+Its not needed
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/linux-gnu/mips/plt.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/sysdeps/linux-gnu/mips/plt.c b/sysdeps/linux-gnu/mips/plt.c
+index 2d85ad9..9c3ae2f 100644
+--- a/sysdeps/linux-gnu/mips/plt.c
++++ b/sysdeps/linux-gnu/mips/plt.c
+@@ -24,7 +24,6 @@
+ 
+ #include <sys/ptrace.h>
+ #include <errno.h>
+-#include <error.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+ #include <string.h>
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index 01b3bbe..abe015d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -24,6 +24,7 @@
            file://0001-Fix-tautological-compare-warning.patch \
            file://0001-Add-support-for-mips64-n32-n64.patch \
            file://0001-configure-Recognise-linux-musl-as-a-host-OS.patch \
+           file://0001-mips-plt.c-Delete-include-error.h.patch \
            "
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
similarity index 80%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
index b7995c2..8f4e8fe 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "Lua is a powerful light-weight programming language designed \
 for extending applications."
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=318;endline=352;md5=10ffd57d574c60d5b4d6189544e205a9"
+LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=318;endline=352;md5=60aa5cfdbd40086501778d9b6ebf29ee"
 HOMEPAGE = "http://www.lua.org/"
 
 DEPENDS = "readline"
@@ -13,10 +13,10 @@
             file://run-ptest \
            ', '', d)}"
 
-SRC_URI[tarballsrc.md5sum] = "703f75caa4fdf4a911c1a72e67a27498"
-SRC_URI[tarballsrc.sha256sum] = "5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2"
-SRC_URI[tarballtest.md5sum] = "76f4fb07f2a4970d554645ac26df86df"
-SRC_URI[tarballtest.sha256sum] = "13154abc20976196119db531b4169ce1ce511755879d40b4192e4173291287e5"
+SRC_URI[tarballsrc.md5sum] = "53a9c68bcc0eda58bdc2095ad5cdfc63"
+SRC_URI[tarballsrc.sha256sum] = "f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c"
+SRC_URI[tarballtest.md5sum] = "b14fe3748c1cb2d74e3acd1943629ba3"
+SRC_URI[tarballtest.sha256sum] = "b80771238271c72565e5a1183292ef31bd7166414cd0d43a8eb79845fa7f599f"
 
 inherit pkgconfig binconfig ptest
 
@@ -56,4 +56,4 @@
         cp -R --no-dereference --preserve=mode,links -v ${WORKDIR}/lua-${PV}-tests ${D}${PTEST_PATH}/test
 }
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch
new file mode 100644
index 0000000..c39ef6f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch
@@ -0,0 +1,19 @@
+clang pretends to be gcc 4.2.0 which is a big lie when it comes
+to features, its same as latest gcc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: LuaJIT-2.0.5/src/lj_arch.h
+===================================================================
+--- LuaJIT-2.0.5.orig/src/lj_arch.h
++++ LuaJIT-2.0.5/src/lj_arch.h
+@@ -313,7 +313,7 @@
+ #error "Need at least GCC 4.2 or newer"
+ #endif
+ #elif !LJ_TARGET_PS3
+-#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3)
++#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) && !defined(__clang__)
+ #error "Need at least GCC 4.3 or newer"
+ #endif
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
similarity index 91%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
index cee9cc4..73c3811 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
@@ -1,13 +1,14 @@
 SUMMARY = "Just-In-Time Compiler for Lua"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3992f1fbae3b8b061f9056b7fcda8cc6"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22"
 HOMEPAGE = "http://luajit.org"
 
 SRC_URI = "http://luajit.org/download/LuaJIT-${PV}.tar.gz \
            file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
+           file://clang.patch \
 "
-SRC_URI[md5sum] = "dd9c38307f2223a504cbfb96e477eca0"
-SRC_URI[sha256sum] = "620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d"
+SRC_URI[md5sum] = "48353202cbcacab84ee41a5a70ea0a2c"
+SRC_URI[sha256sum] = "874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979"
 
 S = "${WORKDIR}/LuaJIT-${PV}"
 
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
index 53eeff7..993e975 100644
--- 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
@@ -1,8 +1,13 @@
+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 da73a57b7ecd..22100f69c580 100644
+index 04a22f985941..3e33bc4a79e7 100644
 --- a/mesonbuild/dependencies.py
 +++ b/mesonbuild/dependencies.py
-@@ -65,7 +65,7 @@ class Dependency():
+@@ -95,7 +95,7 @@ class Dependency:
      def need_threads(self):
          return False
  
@@ -11,7 +16,7 @@
          raise MesonException('Tried to get a pkg-config variable from a non-pkgconfig dependency.')
  
  class InternalDependency(Dependency):
-@@ -177,8 +177,12 @@ class PkgConfigDependency(Dependency):
+@@ -224,8 +224,12 @@ class PkgConfigDependency(Dependency):
          return s.format(self.__class__.__name__, self.name, self.is_found,
                          self.version_reqs)
  
@@ -23,10 +28,10 @@
 +        else:
 +            pkgbin = [self.pkgbin]
 +        p, out = Popen_safe(pkgbin + args, env=os.environ)[0:2]
-         return (p.returncode, out.strip())
+         return p.returncode, out.strip()
  
      def _set_cargs(self):
-@@ -212,8 +216,8 @@ class PkgConfigDependency(Dependency):
+@@ -259,8 +263,8 @@ class PkgConfigDependency(Dependency):
                  self.is_libtool = True
              self.libs.append(lib)
  
@@ -37,12 +42,8 @@
          variable = ''
          if ret != 0:
              if self.required:
-@@ -933,10 +937,10 @@ class QtBaseDependency(Dependency):
-             corekwargs = {'required': 'false', 'silent': 'true'}
-             core = PkgConfigDependency(self.qtpkgname + 'Core', env, corekwargs)
-         # Used by self.compilers_detect()
--        self.bindir = core.get_pkgconfig_variable('host_bins')
-+        self.bindir = core.get_pkgconfig_variable('host_bins', use_native=True)
+@@ -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')
@@ -50,3 +51,21 @@
              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.37.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
similarity index 74%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.37.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
index dbbea64..14644ba 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.37.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
@@ -9,12 +9,12 @@
     file://native_bindir.patch \
 "
 
-SRCREV = "3d4bfdcb22314ea7db45a5b075f8b2a9c1498aab"
+SRCREV = "b25d3e4d3f2b4d37029a507cc089bdde643c6240"
 
 S = "${WORKDIR}/git"
 
 inherit setuptools3
 
-RDEPENDS_${PN}_class-target = "ninja python3-core python3-modules"
+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 4537a66..4a2c377 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
@@ -12,8 +12,6 @@
 SRC_URI[md5sum] = "f414cfa77099cd1fa1a5ae4e22db508a"
 SRC_URI[sha256sum] = "0778679a6b693d7b7caff37ff9d2856dc2bfc51318bf8373859bfa74253da3dc"
 
-CACHED_CONFIGUREVARS += "BASH_SHELL=${base_bindir}/bash"
-
 RDEPENDS_${PN} += "bash perl libxml2"
 S = "${WORKDIR}/${BP}"
 
@@ -26,6 +24,8 @@
     --disable-fc \
     --disable-fortran \
     --disable-cxx \
+    BASH_SHELL='${USRBINPATH}/env bash' \
+    PERL='${USRBINPATH}/env perl' \
 "
 
 inherit autotools-brokensep gettext
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Comment-intentional-fallthrough-in-case-statements.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Comment-intentional-fallthrough-in-case-statements.patch
deleted file mode 100644
index a388297..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Comment-intentional-fallthrough-in-case-statements.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 15d8bb6792c9639d85a9ffe2ac81431f1b986c21 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 08:53:50 -0700
-Subject: [PATCH] Comment intentional fallthrough in case statements
-
-Fixes build with gcc7
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp b/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp
-index b35c21a7..4c463a90 100644
---- a/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp
-+++ b/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp
-@@ -105,6 +105,7 @@ struct define_array<A0, A1> {
-             switch(size) {
-             default:
-             case 2: ptr[1].convert(a1);
-+            //fallthrough
-             case 1: ptr[0].convert(a0);
-             }
-         }
-@@ -193,8 +194,11 @@ struct define_array<A0, A1, A2, A3> {
-             switch(size) {
-             default:
-             case 4: ptr[3].convert(a3);
-+            //fallthrough
-             case 3: ptr[2].convert(a2);
-+            //fallthrough
-             case 2: ptr[1].convert(a1);
-+            //fallthrough
-             case 1: ptr[0].convert(a0);
-             }
-         }
--- 
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
index 7655d94..d9f6956 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
@@ -9,10 +9,9 @@
 
 PV .= "+git${SRCPV}"
 
-SRCREV = "20ef1f925b007f170ab1c257e4aa61fdd0927773"
+SRCREV = "7a98138f27f27290e680bf8fbf1f8d1b089bf138"
 
 SRC_URI = "git://github.com/msgpack/msgpack-c \
-           file://0001-Comment-intentional-fallthrough-in-case-statements.patch \
            "
 
 inherit cmake pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja_1.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja_1.7.2.bb
deleted file mode 100644
index 932e3a6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja_1.7.2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Ninja is a small build system with a focus on speed."
-HOMEPAGE = "http://martine.github.com/ninja/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
-
-DEPENDS = "re2c-native ninja-native"
-
-SRCREV = "717b7b4a31db6027207588c0fb89c3ead384747b"
-
-SRC_URI = "git://github.com/martine/ninja.git;branch=release"
-
-S = "${WORKDIR}/git"
-
-do_configure[noexec] = "1"
-
-do_compile_class-native() {
-    ./configure.py --bootstrap
-}
-
-do_compile() {
-    ./configure.py
-    ninja
-}
-
-do_install() {
-    install -d ${D}${bindir}
-    install -m 0755 ${S}/ninja ${D}${bindir}/
-}
-
-BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000..324a468
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
@@ -0,0 +1,29 @@
+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/0001-Disable-running-gyp-files-for-bundled-deps.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
new file mode 100644
index 0000000..324a468
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
@@ -0,0 +1,29 @@
+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_4.8.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
similarity index 87%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.8.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
index ae84ad3..5bcbc00 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.8.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
@@ -1,19 +1,19 @@
 DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
 HOMEPAGE = "http://nodejs.org"
 LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f45e9ffb97e64da46d14f462d34a039f"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e4d35c6120f175e1fbe5ff908b1cf2d6"
 
-DEPENDS = "openssl zlib"
+DEPENDS = "openssl10 zlib"
 
 COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
 COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
 COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
 
 SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
-    file://no-registry.patch \
+           file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
 "
-SRC_URI[md5sum] = "aea6139f952bb7e1d66f76afedee813c"
-SRC_URI[sha256sum] = "b961350b8490c791bdd3663925662ba0fbe01e004b43f1c2779baffcc816b930"
+SRC_URI[md5sum] = "e6c85c83001340b30671e9432e1bd337"
+SRC_URI[sha256sum] = "5d5aa2a101dcc617231a475812eb8ed87cac21491f1dcc7997b9dd463563f361"
 
 S = "${WORKDIR}/node-v${PV}"
 
@@ -40,10 +40,11 @@
 
 # Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
 do_configure () {
+    rm -rf ${S}/deps/openssl
     export LD="${CXX}"
     GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
     # $TARGET_ARCH settings don't match --dest-cpu settings
-   ./configure --prefix=${prefix} --without-snapshot --shared-openssl --shared-zlib \
+   ./configure --prefix=${prefix} --without-intl --without-snapshot --shared-openssl --shared-zlib \
                --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
                --dest-os=linux \
                ${ARCHFLAGS}
@@ -78,7 +79,7 @@
 }
 
 PACKAGES =+ "${PN}-npm"
-FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/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"
 
 PACKAGES =+ "${PN}-systemtap"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch
new file mode 100644
index 0000000..644146c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch
@@ -0,0 +1,155 @@
+From 8f85163b030e7b957648f90cd8fa599fb04d5d65 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 23:32:49 -0700
+Subject: [PATCH 1/5] Add fallthrough comments
+
+Fixes
+
+src/svf/svf.c:663:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
+     i = -1;
+     ~~^~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/flash/mflash.c            | 3 ++-
+ src/flash/nand/mx3.c          | 1 +
+ src/jtag/drivers/ftdi.c       | 1 +
+ src/svf/svf.c                 | 2 ++
+ src/target/arm_adi_v5.c       | 9 +++++++++
+ src/target/arm_disassembler.c | 1 +
+ src/target/target.c           | 1 +
+ 7 files changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/flash/mflash.c b/src/flash/mflash.c
+index b69995542..3254a3d56 100644
+--- a/src/flash/mflash.c
++++ b/src/flash/mflash.c
+@@ -259,10 +259,11 @@ static int mg_dsk_wait(mg_io_type_wait wait_local, uint32_t time_var)
+ 				case mg_io_wait_rdy:
+ 					if (status & mg_io_rbit_status_ready)
+ 						return ERROR_OK;
+-
++					/* fallthru */
+ 				case mg_io_wait_drq:
+ 					if (status & mg_io_rbit_status_data_req)
+ 						return ERROR_OK;
++					/* fallthru */
+ 
+ 				default:
+ 					break;
+diff --git a/src/flash/nand/mx3.c b/src/flash/nand/mx3.c
+index b61e47535..0a55929ed 100644
+--- a/src/flash/nand/mx3.c
++++ b/src/flash/nand/mx3.c
+@@ -281,6 +281,7 @@ static int imx31_command(struct nand_device *nand, uint8_t command)
+ 			 * offset == one half of page size
+ 			 */
+ 			in_sram_address = MX3_NF_MAIN_BUFFER0 + (nand->page_size >> 1);
++			/* fallthru */
+ 		default:
+ 			in_sram_address = MX3_NF_MAIN_BUFFER0;
+ 	}
+diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
+index 00fe37faf..20f17d810 100644
+--- a/src/jtag/drivers/ftdi.c
++++ b/src/jtag/drivers/ftdi.c
+@@ -855,6 +855,7 @@ COMMAND_HANDLER(ftdi_handle_set_signal_command)
+ 			ftdi_set_signal(sig, *CMD_ARGV[1]);
+ 			break;
+ 		}
++		/* fallthru */
+ 	default:
+ 		LOG_ERROR("unknown signal level '%s', use 0, 1 or z", CMD_ARGV[1]);
+ 		return ERROR_COMMAND_SYNTAX_ERROR;
+diff --git a/src/svf/svf.c b/src/svf/svf.c
+index e7e815c10..7b261cc72 100644
+--- a/src/svf/svf.c
++++ b/src/svf/svf.c
+@@ -661,11 +661,13 @@ static int svf_read_command_from_file(FILE *fd)
+ 				if (svf_getline(&svf_read_line, &svf_read_line_size, svf_fd) <= 0)
+ 					return ERROR_FAIL;
+ 				i = -1;
++				/* fallthru */
+ 			case '\r':
+ 				slash = 0;
+ 				/* Don't save '\r' and '\n' if no data is parsed */
+ 				if (!cmd_pos)
+ 					break;
++				/* fallthru */
+ 			default:
+ 				/* The parsing code currently expects a space
+ 				 * before parentheses -- "TDI (123)".  Also a
+diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
+index eafc2ddc0..d444db2b1 100644
+--- a/src/target/arm_adi_v5.c
++++ b/src/target/arm_adi_v5.c
+@@ -346,10 +346,13 @@ static int mem_ap_write(struct adiv5_ap *ap, const uint8_t *buffer, uint32_t siz
+ 			case 4:
+ 				outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
+ 				outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
++				/* fallthru */
+ 			case 2:
+ 				outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
++				/* fallthru */
+ 			case 1:
+ 				outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
++				/* fallthru */
+ 			}
+ 		}
+ 
+@@ -509,20 +512,26 @@ static int mem_ap_read(struct adiv5_ap *ap, uint8_t *buffer, uint32_t size, uint
+ 			case 4:
+ 				*buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
+ 				*buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
++				/* fallthru */
+ 			case 2:
+ 				*buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
++				/* fallthru */
+ 			case 1:
+ 				*buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
++				/* fallthru */
+ 			}
+ 		} else {
+ 			switch (this_size) {
+ 			case 4:
+ 				*buffer++ = *read_ptr >> 8 * (address++ & 3);
+ 				*buffer++ = *read_ptr >> 8 * (address++ & 3);
++				/* fallthru */
+ 			case 2:
+ 				*buffer++ = *read_ptr >> 8 * (address++ & 3);
++				/* fallthru */
+ 			case 1:
+ 				*buffer++ = *read_ptr >> 8 * (address++ & 3);
++				/* fallthru */
+ 			}
+ 		}
+ 
+diff --git a/src/target/arm_disassembler.c b/src/target/arm_disassembler.c
+index 5277b94d8..2eb21ea33 100644
+--- a/src/target/arm_disassembler.c
++++ b/src/target/arm_disassembler.c
+@@ -3299,6 +3299,7 @@ static int t2ev_data_immed(uint32_t opcode, uint32_t address,
+ 		case 0x10:
+ 		case 0x12:
+ 			is_signed = true;
++			/* fallthru */
+ 		case 0x18:
+ 		case 0x1a:
+ 			/* signed/unsigned saturated add */
+diff --git a/src/target/target.c b/src/target/target.c
+index e04ecc470..597b4b13d 100644
+--- a/src/target/target.c
++++ b/src/target/target.c
+@@ -3684,6 +3684,7 @@ COMMAND_HANDLER(handle_bp_command)
+ 				addr = 0;
+ 				return handle_bp_command_set(CMD_CTX, addr, asid, length, hw);
+ 			}
++			/* fallthru */
+ 
+ 		case 4:
+ 			hw = BKPT_HARD;
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch
new file mode 100644
index 0000000..aa99735
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch
@@ -0,0 +1,53 @@
+From 8daaa8c27794653d02854c5982669a7638473224 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 23:52:46 -0700
+Subject: [PATCH 2/5] Workaround new warnings generated by GCC 7
+
+src/flash/nor/xmc4xxx.c: In function 'xmc4xxx_get_info_command':
+src/flash/nor/xmc4xxx.c:939:43: error: '%d' directive output may be truncated writing between 1 and 10 bytes into a region of size 6 [-Werror=format-truncation=]
+     snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
+                                           ^~
+src/flash/nor/xmc4xxx.c:939:40: note: directive argument in the range [0, 2147483647]
+     snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
+                                        ^~~~~~~~
+src/flash/nor/xmc4xxx.c:939:5: note: 'snprintf' output between 5 and 14 bytes into a destination of size 8
+     snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
+     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/flash/nor/xmc4xxx.c | 2 +-
+ src/target/arm_adi_v5.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/flash/nor/xmc4xxx.c b/src/flash/nor/xmc4xxx.c
+index 02df46a3f..e6c398ff9 100644
+--- a/src/flash/nor/xmc4xxx.c
++++ b/src/flash/nor/xmc4xxx.c
+@@ -931,7 +931,7 @@ static int xmc4xxx_get_info_command(struct flash_bank *bank, char *buf, int buf_
+ 
+ 	/* If OTP Write protection is enabled (User 2), list each
+ 	 * sector that has it enabled */
+-	char otp_str[8];
++	char otp_str[14];
+ 	if (otp_enabled) {
+ 		strcat(prot_str, "\nOTP Protection is enabled for sectors:\n");
+ 		for (int i = 0; i < bank->num_sectors; i++) {
+diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
+index d444db2b1..d0d95121f 100644
+--- a/src/target/arm_adi_v5.c
++++ b/src/target/arm_adi_v5.c
+@@ -1062,7 +1062,7 @@ static int dap_rom_display(struct command_context *cmd_ctx,
+ 	int retval;
+ 	uint64_t pid;
+ 	uint32_t cid;
+-	char tabs[7] = "";
++	char tabs[16] = "";
+ 
+ 	if (depth > 16) {
+ 		command_print(cmd_ctx, "\tTables too deep");
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch
new file mode 100644
index 0000000..bcfbfc9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch
@@ -0,0 +1,27 @@
+From 8e5051e83fedb078170565a24d1f5de6c2ce4428 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 00:01:51 -0700
+Subject: [PATCH 3/5] armv7a: Add missing break to fix fallthrough warning
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/target/armv7a.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/target/armv7a.c b/src/target/armv7a.c
+index 6021def4e..bad806b3d 100644
+--- a/src/target/armv7a.c
++++ b/src/target/armv7a.c
+@@ -355,6 +355,7 @@ int armv7a_mmu_translate_va_pa(struct target *target, uint32_t va,
+ 				break;
+ 			case 7:
+ 				LOG_INFO("inner: Write-Back, no Write-Allocate");
++				break;
+ 
+ 			default:
+ 				LOG_INFO("inner: %" PRIx32 " ???", INNER);
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch
new file mode 100644
index 0000000..bfc5627
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch
@@ -0,0 +1,30 @@
+From d3ca56370a2be7e737d48bd14d474d790a0ab8ac Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 00:04:00 -0700
+Subject: [PATCH 4/5] Fix overflow warning
+
+Remove an empty space which makes it fit into 11 byte string
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/target/nds32_cmd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/target/nds32_cmd.c b/src/target/nds32_cmd.c
+index edb4872e4..73355073c 100644
+--- a/src/target/nds32_cmd.c
++++ b/src/target/nds32_cmd.c
+@@ -821,7 +821,7 @@ static int jim_nds32_bulk_read(Jim_Interp *interp, int argc, Jim_Obj * const *ar
+ 	jim_wide i;
+ 	Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
+ 	for (i = 0; i < count; i++) {
+-		sprintf(data_str, "0x%08" PRIx32 " ", data[i]);
++		sprintf(data_str, "0x%08" PRIx32 "", data[i]);
+ 		Jim_AppendStrings(interp, Jim_GetResult(interp), data_str, NULL);
+ 	}
+ 
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch
new file mode 100644
index 0000000..60f75da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch
@@ -0,0 +1,27 @@
+From 29dbf92ffdbdda29662b4190a2f8eb09caad8b51 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 00:06:32 -0700
+Subject: [PATCH 5/5] command: Move the fall through comment to right scope
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/helper/command.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/helper/command.c b/src/helper/command.c
+index 5deaee859..287c14857 100644
+--- a/src/helper/command.c
++++ b/src/helper/command.c
+@@ -1456,8 +1456,8 @@ COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label)
+ 				LOG_ERROR("%s: argument '%s' is not valid", CMD_NAME, in);
+ 				return ERROR_COMMAND_SYNTAX_ERROR;
+ 			}
+-			/* fall through */
+ 		}
++		/* fall through */
+ 		case 0:
+ 			LOG_INFO("%s is %s", label, *out ? "enabled" : "disabled");
+ 			break;
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
new file mode 100644
index 0000000..20bc663
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "libusb-compat libftdi"
+RDEPENDS_${PN} = "libusb1"
+
+SRC_URI = "git://repo.or.cz/openocd.git \
+           file://0001-Add-fallthrough-comments.patch \
+           file://0002-Workaround-new-warnings-generated-by-GCC-7.patch \
+           file://0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch \
+           file://0004-Fix-overflow-warning.patch \
+           file://0005-command-Move-the-fall-through-comment-to-right-scope.patch \
+"
+SRCREV = "1025be363e2bf42f1613083223a2322cc3a9bd4c"
+
+PV = "0.10+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools-brokensep gettext
+
+BBCLASSEXTEND += "nativesdk"
+
+EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html "
+
+do_configure() {
+    ./bootstrap
+    oe_runconf ${EXTRA_OECONF}
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+    if [ -e "${D}${infodir}" ]; then
+      rm -Rf ${D}${infodir}
+    fi
+    if [ -e "${D}${mandir}" ]; then
+      rm -Rf ${D}${mandir}
+    fi
+    if [ -e "${D}${bindir}/.debug" ]; then
+      rm -Rf ${D}${bindir}/.debug
+    fi
+}
+
+FILES_${PN} = " \
+  ${datadir}/openocd/* \
+  ${bindir}/openocd \
+  "
+
+PACKAGECONFIG[sysfsgpio] = "--enable-sysfsgpio,--disable-sysfsgpio"
+PACKAGECONFIG ??= "sysfsgpio"
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 14e75dc..1be7f6a 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
@@ -1,6 +1,6 @@
 SUMMARY = "Packages required for a target (on-device) SDK"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 PR = "r1"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
deleted file mode 100644
index ecf8e74..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 869e52a9055c72970fed036a1510f676e6ce0824 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jun 2013 01:24:19 -0700
-Subject: [PATCH] Don't call deprecated glib functions and use the new gthread
- API.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate[version Unmaintained Upstream]
----
- client/pk-console.c                              |    3 ++-
- client/pk-generate-pack.c                        |    3 ++-
- client/pk-monitor.c                              |    3 ++-
- contrib/command-not-found/PackageKit.sh          |    2 +-
- contrib/command-not-found/pk-command-not-found.c |    4 ++--
- contrib/debuginfo-install/pk-debuginfo-install.c |    4 ++--
- src/pk-backend.c                                 |    7 +++++++
- src/pk-main.c                                    |    4 ++--
- 10 files changed, 20 insertions(+), 10 deletions(-)
-
-diff --git a/client/pk-console.c b/client/pk-console.c
-index de927e1..2435f27 100644
---- a/client/pk-console.c
-+++ b/client/pk-console.c
-@@ -1264,11 +1264,12 @@ main (int argc, char *argv[])
- 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- 	textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- 	if (! g_thread_supported ())
- 		g_thread_init (NULL);
- 	g_type_init ();
- 	dbus_g_thread_init ();
-+#endif
- 
- 	/* do stuff on ctrl-c */
- 	signal (SIGINT, pk_console_sigint_cb);
-diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
-index 0b2b40f..20d7e8d 100644
---- a/client/pk-generate-pack.c
-+++ b/client/pk-generate-pack.c
-@@ -251,12 +251,13 @@ main (int argc, char *argv[])
- 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- 	textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- 	if (! g_thread_supported ())
- 		g_thread_init (NULL);
- 
- 	g_type_init ();
- 	dbus_g_thread_init ();
-+#endif
- 
- 	/* do stuff on ctrl-c */
- 	signal (SIGINT, pk_generate_pack_sigint_cb);
-diff --git a/client/pk-monitor.c b/client/pk-monitor.c
-index f230f7a..d43007f 100644
---- a/client/pk-monitor.c
-+++ b/client/pk-monitor.c
-@@ -285,11 +285,12 @@ main (int argc, char *argv[])
- 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- 	textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- 	if (! g_thread_supported ())
- 		g_thread_init (NULL);
- 	g_type_init ();
- 	dbus_g_thread_init ();
-+#endif
- 
- 	context = g_option_context_new (NULL);
- 	/* TRANSLATORS: this is a program that monitors PackageKit */
-diff --git a/contrib/command-not-found/PackageKit.sh b/contrib/command-not-found/PackageKit.sh
-index d08989c..d708fff 100644
---- a/contrib/command-not-found/PackageKit.sh
-+++ b/contrib/command-not-found/PackageKit.sh
-@@ -18,7 +18,7 @@ command_not_found_handle () {
- 
- 	# run the command, or just print a warning
- 	if [ $runcnf -eq 1 ]; then
--		/home/hughsie/.root/libexec/pk-command-not-found $1
-+		/usr/lib/packagekit/pk-command-not-found $1
- 		retval=$?
- 	else
- 		echo "bash: $1: command not found"
-diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
-index 70679c0..9f81ce4 100644
---- a/contrib/command-not-found/pk-command-not-found.c
-+++ b/contrib/command-not-found/pk-command-not-found.c
-@@ -659,12 +659,12 @@ main (int argc, char *argv[])
- 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- 	textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- 	if (! g_thread_supported ())
- 		g_thread_init (NULL);
- 	dbus_g_thread_init ();
- 	g_type_init ();
--
-+#endif
- 	context = g_option_context_new (NULL);
- 	/* TRANSLATORS: tool that gets called when the command is not found */
- 	g_option_context_set_summary (context, _("PackageKit Command Not Found"));
-diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
-index c12aca5..b0e1e7c 100644
---- a/contrib/debuginfo-install/pk-debuginfo-install.c
-+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
-@@ -532,11 +532,11 @@ main (int argc, char *argv[])
- 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- 	textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- 	if (! g_thread_supported ())
- 		g_thread_init (NULL);
- 	g_type_init ();
--
-+#endif
- 	context = g_option_context_new (NULL);
- 	/* TRANSLATORS: tool that gets called when the command is not found */
- 	g_option_context_set_summary (context, _("PackageKit Debuginfo Installer"));
-diff --git a/src/pk-backend.c b/src/pk-backend.c
-index 5216b63..5b83ae4 100644
---- a/src/pk-backend.c
-+++ b/src/pk-backend.c
-@@ -2103,7 +2103,14 @@ pk_backend_thread_create (PkBackend *backend, PkBackendThreadFunc func)
- 		egg_warning ("already has thread");
- 		return FALSE;
- 	}
-+#if !GLIB_CHECK_VERSION(2,32,0)
- 	backend->priv->thread = g_thread_create ((GThreadFunc) func, backend, FALSE, NULL);
-+#else
-+	backend->priv->thread = g_thread_try_new ("daemon thread", (GThreadFunc) func, backend, NULL);
-+	if (backend->priv->thread != NULL) {
-+		g_thread_unref(backend->priv->thread);
-+	}
-+#endif
- 	if (backend->priv->thread == NULL) {
- 		egg_warning ("failed to create thread");
- 		return FALSE;
-diff --git a/src/pk-main.c b/src/pk-main.c
-index 4c758cd..8fa2482 100644
---- a/src/pk-main.c
-+++ b/src/pk-main.c
-@@ -219,12 +219,12 @@ main (int argc, char *argv[])
- 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- 	textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- 	if (! g_thread_supported ())
- 		g_thread_init (NULL);
- 	dbus_g_thread_init ();
- 	g_type_init ();
--
-+#endif
- 	/* TRANSLATORS: describing the service that is running */
- 	context = g_option_context_new (_("PackageKit service"));
- 	g_option_context_add_main_entries (context, options, NULL);
--- 
-1.7.9.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
deleted file mode 100644
index 48f9591..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: PackageKit-0.6.0/configure.ac
-===================================================================
---- PackageKit-0.6.0.orig/configure.ac	2010-01-04 16:32:18.000000000 +0000
-+++ PackageKit-0.6.0/configure.ac	2010-01-29 11:33:48.000000000 +0000
-@@ -90,7 +90,7 @@
- 							enable_strict=$default_strict)
- if test x$enable_strict != xno; then
- 	if test "$GCC" = "yes"; then
--		WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Werror"
-+		:
- 	fi
- fi
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
deleted file mode 100644
index 5a73a19..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
+++ /dev/null
@@ -1,422 +0,0 @@
-Index: PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c
-===================================================================
---- PackageKit-0.6.0.orig/backends/opkg/pk-backend-opkg.c	2010-01-29 09:39:33.000000000 +0000
-+++ PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c	2010-01-29 11:30:51.000000000 +0000
-@@ -29,8 +29,7 @@
- 
-+#include <stdio.h>
- #include <libopkg/opkg.h>
- 
--static opkg_t *opkg;
--
- enum {
- 	SEARCH_NAME,
- 	SEARCH_DESCRIPTION,
-@@ -62,7 +60,7 @@
-  * check an opkg package for known GUI dependancies
-  */
- static gboolean
--opkg_is_gui_pkg (opkg_package_t *pkg)
-+opkg_is_gui_pkg (pkg_t *pkg)
- {
- 
-   /* TODO: check appropriate tag */
-@@ -84,7 +82,7 @@
-  * check an opkg package to determine if it is a development package
-  */
- static gboolean
--opkg_is_devel_pkg (opkg_package_t *pkg)
-+opkg_is_devel_pkg (pkg_t *pkg)
- {
-   if (g_strrstr (pkg->name, "-dev"))
-       return TRUE;
-@@ -105,7 +103,7 @@
-  * returns true if the tag is present
-  */
- static gboolean 
--opkg_check_tag (opkg_package_t *pkg, const gchar *tag)
-+opkg_check_tag (pkg_t *pkg, const gchar *tag)
- {
- 	if (pkg->tags && tag)
- 		return (g_strrstr (pkg->tags, tag) != NULL);
-@@ -118,7 +116,7 @@
- {
- 	switch (err)
- 	{
--	case OPKG_NO_ERROR:
-+/*	case OPKG_NO_ERROR:
- 		break;
- 	case OPKG_PACKAGE_NOT_INSTALLED:
- 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
-@@ -140,7 +138,7 @@
- 		break;
- 	case OPKG_PACKAGE_NOT_AVAILABLE:
- 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, NULL);
--		break;
-+		break;*/
- 	default:
- 		opkg_unknown_error (backend, err, "Update package");
- 	}
-@@ -152,7 +150,7 @@
- static void
- backend_initialize (PkBackend *backend)
- {
--	opkg = opkg_new ();
-+	int opkg = opkg_new ();
- 
- 	if (!opkg) {
- 		pk_backend_error_code (backend,
-@@ -162,8 +160,8 @@
- 	}
- 
- #ifdef OPKG_OFFLINE_ROOT
--	opkg_set_option (opkg, (char *) "offline_root", OPKG_OFFLINE_ROOT);
--	opkg_re_read_config_files (opkg);
-+	opkg_set_option ((char *) "offline_root", OPKG_OFFLINE_ROOT);
-+	opkg_re_read_config_files ();
- #endif
- 
- }
-@@ -174,22 +172,22 @@
- static void
- backend_destroy (PkBackend *backend)
- {
--	opkg_free (opkg);
-+	opkg_free ();
- }
- 
- 
- static void
--pk_opkg_progress_cb (opkg_t *_opkg, const opkg_progress_data_t *pdata, void *data)
-+pk_opkg_progress_cb (const opkg_progress_data_t *pdata, void *data)
- {
--	PkBackend *backend = PK_BACKEND (data);
-+	PkBackend *backend = (PkBackend*) data;
- 	if (!backend)
- 		return;
- 
- 	pk_backend_set_percentage (backend, pdata->percentage);
--	if (pdata->package)
-+	if (pdata->pkg)
- 	{
- 		gchar *uid;
--		opkg_package_t *pkg = pdata->package;
-+		pkg_t *pkg = pdata->pkg;
- 		gint status = PK_INFO_ENUM_UNKNOWN;
- 
- 		uid = g_strdup_printf ("%s;%s;%s;",
-@@ -225,12 +223,12 @@
- {
- 	int ret;
- 
--	ret = opkg_update_package_lists (opkg, pk_opkg_progress_cb, backend);
-+	ret = opkg_update_package_lists (pk_opkg_progress_cb, backend);
- 
- 	if (ret) {
--		if (ret == OPKG_DOWNLOAD_FAILED)
--			pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
--		else
-+//		if (ret == OPKG_DOWNLOAD_FAILED)
-+//			pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
-+//		else
- 			opkg_unknown_error (backend, ret, "Refreshing cache");
- 	}
- 	pk_backend_finished (backend);
-@@ -256,7 +254,7 @@
-  */
- 
- static void
--pk_opkg_package_list_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
-+pk_opkg_package_list_cb (pkg_t *pkg, void *data)
- {
- 	SearchParams *params = (SearchParams*) data;
- 	gchar *uid;
-@@ -298,7 +296,7 @@
- 	uid = g_strdup_printf ("%s;%s;%s;",
- 		pkg->name, pkg->version, pkg->architecture);
- 
--	if (pkg->installed)
-+	if (pkg->state_status == SS_INSTALLED)
- 		status = PK_INFO_ENUM_INSTALLED;
- 	else
- 		status = PK_INFO_ENUM_AVAILABLE;
-@@ -318,10 +316,10 @@
-                 opkg_is_gui_pkg (pkg))
- 		goto end_handle;
- 	if (pk_bitfield_contain(filters, PK_FILTER_ENUM_INSTALLED) && 
--                (!pkg->installed))
-+                (pkg->state_status != SS_INSTALLED))
- 		goto end_handle;
- 	if (pk_bitfield_contain(filters, PK_FILTER_ENUM_NOT_INSTALLED) && 
--                (pkg->installed))
-+                (pkg->state_status == SS_INSTALLED))
- 		goto end_handle;
- 
- 	pk_backend_package (params->backend, status, uid, pkg->description);
-@@ -338,7 +336,7 @@
- 
- 	params = pk_backend_get_pointer (backend, "search-params");
- 
--	opkg_list_packages (opkg, pk_opkg_package_list_cb, params);
-+	opkg_list_packages (pk_opkg_package_list_cb, params);
- 
- 	pk_backend_finished (params->backend);
- 
-@@ -349,7 +347,7 @@
- }
- 
- static void
--backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search)
-+backend_search_name (PkBackend *backend, PkBitfield filters, gchar **search)
- {
- 	SearchParams *params;
- 
-@@ -360,7 +358,7 @@
- 	params = g_new0 (SearchParams, 1);
- 	params->filters = filters;
- 	params->search_type = SEARCH_NAME;
--	params->needle = g_utf8_strdown (search, -1);
-+	params->needle = g_utf8_strdown (search[0], -1);
- 	params->backend = backend;
- 
- 	pk_backend_set_pointer (backend, "search-params", params);
-@@ -371,7 +369,7 @@
-  * backend_search_description:
-  */
- static void
--backend_search_description (PkBackend *backend, PkBitfield filters, const gchar *search)
-+backend_search_description (PkBackend *backend, PkBitfield filters, gchar **search)
- {
- 	SearchParams *params;
- 
-@@ -382,7 +380,7 @@
- 	params = g_new0 (SearchParams, 1);
- 	params->filters = filters;
- 	params->search_type = SEARCH_DESCRIPTION;
--	params->needle = g_utf8_strdown (search, -1);
-+	params->needle = g_utf8_strdown (search[0], -1);
- 	params->backend = backend;
- 
- 	pk_backend_set_pointer (backend, "search-params", params);
-@@ -390,7 +388,7 @@
- }
- 
- static void
--backend_search_group (PkBackend *backend, PkBitfield filters, const gchar *search)
-+backend_search_group (PkBackend *backend, PkBitfield filters, gchar **search)
- {
- 	SearchParams *params;
- 
-@@ -401,7 +399,7 @@
- 	params = g_new0 (SearchParams, 1);
- 	params->filters = filters;
- 	params->search_type = SEARCH_TAG;
--	params->needle = g_strdup_printf ("group::%s", search);
-+	params->needle = g_strdup_printf ("group::%s", search[0]);
- 	params->backend = backend;
- 
- 	pk_backend_set_pointer (backend, "search-params", params);
-@@ -412,9 +410,9 @@
- static gboolean
- backend_install_packages_thread (PkBackend *backend)
- {
--	PkPackageId *pi;
- 	gint err, i;
- 	gchar **package_ids;
-+	gchar **parts;
- 
- 	package_ids = pk_backend_get_strv (backend, "pkids");
- 
-@@ -424,13 +422,13 @@
- 	{
- 		pk_backend_package (backend, PK_INFO_ENUM_INSTALLING, package_ids[i], NULL);
- 
--		pi = pk_package_id_new_from_string (package_ids[i]);
-+		parts = pk_package_id_split (package_ids[i]);
- 
--		err = opkg_install_package (opkg, pi->name, pk_opkg_progress_cb, backend);
-+		err = opkg_install_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
- 		if (err)
- 			handle_install_error (backend, err);
- 
--		pk_package_id_free (pi);
-+		g_strfreev (parts);
- 		if (err != 0)
- 			break;
- 	}
-@@ -453,9 +451,9 @@
- static gboolean
- backend_remove_packages_thread (PkBackend *backend)
- {
--	PkPackageId *pi;
- 	gint err, i;
- 	gchar **package_ids;
-+	gchar **parts;
- 	gboolean allow_deps;
- 	gboolean autoremove;
- 	gpointer *data;
-@@ -467,29 +465,30 @@
- 	autoremove = GPOINTER_TO_INT (data[2]);
- 	g_free (data);
- 
--	opkg_set_option (opkg, (char *)"autoremove", &autoremove);
--	opkg_set_option (opkg, (char *)"force_removal_of_dependent_packages", &allow_deps);
-+	opkg_set_option ((char *)"autoremove", &autoremove);
-+	opkg_set_option ((char *)"force_removal_of_dependent_packages", &allow_deps);
- 
- 	err = 0;
- 
- 	for (i = 0; package_ids[i]; i++)
- 	{
--		pi = pk_package_id_new_from_string (package_ids[i]);
- 		pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[i], NULL);
- 
--		err = opkg_remove_package (opkg, pi->name, pk_opkg_progress_cb, backend);
-+		parts = pk_package_id_split (package_ids[i]);
-+
-+		err = opkg_remove_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
- 
- 		switch (err)
- 		{
--		case OPKG_NO_ERROR:
--			break;
--		case OPKG_PACKAGE_NOT_INSTALLED:
--			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
--			break;
-+		//case OPKG_NO_ERROR:
-+		//	break;
-+		//case OPKG_PACKAGE_NOT_INSTALLED:
-+		//	pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
-+		//	break;
- 		default:
- 			opkg_unknown_error (backend, err, "Remove");
- 		}
--		pk_package_id_free (pi);
-+		g_strfreev (parts);
- 
- 		if (err != 0)
- 			break;
-@@ -540,7 +539,7 @@
- 	gint err;
- 
- 	/* FIXME: support only_trusted */
--	err = opkg_upgrade_all (opkg, pk_opkg_progress_cb, backend);
-+	err = opkg_upgrade_all (pk_opkg_progress_cb, backend);
- 
- 	if (err)
- 		opkg_unknown_error (backend, err, "Upgrading system");
-@@ -564,29 +563,28 @@
- static gboolean
- backend_update_package_thread (PkBackend *backend)
- {
--	PkPackageId *pi;
-+        gchar **parts;
- 	gint err = 0;
- 	const gchar *package_id;
- 
- 	/* FIXME: support only_trusted */
- 	package_id = pk_backend_get_string (backend, "pkgid");
--	pi = pk_package_id_new_from_string (package_id);
-+	parts = pk_package_id_split (package_id);
- 
--	if (!pi->name || !pi->version)
-+	if (!parts)
- 	{
- 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
- 				"Package not found");
--		pk_package_id_free (pi);
- 		pk_backend_finished (backend);
- 		return FALSE;
- 	}
- 
--	err = opkg_upgrade_package (opkg, pi->name, pk_opkg_progress_cb, backend);
-+	err = opkg_upgrade_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
- 	if (err)
- 		handle_install_error (backend, err);
- 
- 
--	pk_package_id_free (pi);
-+	g_strfreev (parts);
- 	pk_backend_finished (backend);
- 	return (err != 0);
- }
-@@ -610,13 +608,13 @@
-  */
- 
- static void
--pk_opkg_list_upgradable_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
-+pk_opkg_list_upgradable_cb (pkg_t *pkg, void *data)
- {
--	PkBackend *backend = PK_BACKEND (data);
-+	PkBackend *backend = (PkBackend*) data;
- 	gchar *uid;
- 	gint status;
- 
--	if (pkg->installed)
-+	if (pkg->state_status == SS_INSTALLED)
- 		status = PK_INFO_ENUM_INSTALLED;
- 	else
- 		status = PK_INFO_ENUM_AVAILABLE;
-@@ -631,7 +629,7 @@
- static gboolean
- backend_get_updates_thread (PkBackend *backend)
- {
--	opkg_list_upgradable_packages (opkg, pk_opkg_list_upgradable_cb, backend);
-+	opkg_list_upgradable_packages (pk_opkg_list_upgradable_cb, backend);
- 	pk_backend_finished (backend);
- 	return TRUE;
- }
-@@ -668,16 +666,18 @@
- static gboolean
- backend_get_details_thread (PkBackend *backend)
- {
--	PkPackageId *pi;
- 	gchar **package_ids;
-+        gchar **parts;
- 	int group_index;
- 	PkGroupEnum group = 0;
--	opkg_package_t *pkg;
-+	pkg_t *pkg;
- 	gchar *newid;
- 
-         package_ids = pk_backend_get_strv(backend, "package_ids");
--	pi = pk_package_id_new_from_string (package_ids[0]);
--	if (pi == NULL)
-+	parts = pk_package_id_split (package_ids[0]);
-+
-+
-+	if (!parts)
- 	{
- 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
- 		pk_backend_finished (backend);
-@@ -685,8 +685,8 @@
- 	}
- 
- 
--	pkg = opkg_find_package (opkg, pi->name, pi->version, pi->arch, pi->data);
--	pk_package_id_free (pi);
-+	pkg = opkg_find_package (parts[PK_PACKAGE_ID_NAME], parts[PK_PACKAGE_ID_VERSION], parts[PK_PACKAGE_ID_ARCH], parts[PK_PACKAGE_ID_DATA]);
-+	g_strfreev (parts);
- 
- 	if (!pkg)
- 	{
-@@ -695,7 +695,7 @@
- 		return FALSE;
- 	}
- 
--	newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->repository);
-+	newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->src->name);
- 
- 	if (pkg->tags) {
- 		for (group_index = 0; group < PK_GROUP_ENUM_LAST; group_index++) {
-@@ -706,9 +706,8 @@
- 		}
- 	}
- 
--	pk_backend_details (backend, newid, NULL, group, pkg->description, pkg->url, pkg->size);
-+	pk_backend_details (backend, newid, NULL, group, pkg->description, NULL, pkg->size);
- 	g_free (newid);
--	opkg_package_free(pkg);
- 	pk_backend_finished (backend);
- 	return TRUE;
- }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
deleted file mode 100644
index 1b60c47..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "PackageKit package management abstraction"
-SECTION = "libs"
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "gtk+ python polkit dbus dbus-glib glib-2.0 sqlite3 opkg intltool intltool-native"
-RDEPENDS_${PN} = "opkg bash"
-
-inherit gnome pythonnative
-
-SRC_URI = "http://www.freedesktop.org/software/PackageKit/releases/PackageKit-${PV}.tar.bz2;name=archive \
-           file://configurefix.patch \
-           file://opkgfixes.patch \
-           file://0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch \
-          "
-
-SRC_URI[archive.md5sum] = "33a3127e9ed41e26671786aee9fe56ff"
-SRC_URI[archive.sha256sum] = "8dae41493dfb011442746d252b3435bf3204e17bf7c47e396f90fbd215260e14"
-
-S = "${WORKDIR}/PackageKit-${PV}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[service-packs] = "--enable-service-packs,--disable-service-packs,libarchive"
-
-EXTRA_OECONF = "--with-security-framework=dummy \
-                --with-default-backend=opkg \
-                --enable-opkg \
-                --disable-tests \
-                --disable-ruck \
-                --disable-qt \
-                --disable-gstreamer-plugin \
-                --disable-local  \
-                --disable-networkmanager \
-                --disable-device-rebind \
-                ac_cv_path_XMLTO=no \
-"
-
-#do_configure_prepend() {
-#    mkdir -p m4
-#    echo "EXTRA_DIST=" > gtk-doc.make
-#}
-
-do_configure_append() {
-    for i in $(find . -name Makefile) ; do
-        sed -i -e s:${STAGING_DIR_NATIVE}::g \
-               -e s:/usr/bin/intltool-merge:${STAGING_BINDIR_NATIVE}/intltool-merge:g \
-               $i
-    done
-}
-
-PACKAGES =+ "${PN}-website"
-FILES_${PN}-website = "${datadir}/PackageKit/website"
-
-PACKAGES =+ "${PN}-python"
-FILES_${PN}-python = "${libdir}/python*"
-
-PACKAGES =+ "${PN}-gtkmodule"
-FILES_${PN}-gtkmodule = "${libdir}/gtk-2.0/*/*.so"
-
-FILES_${PN} += "${libdir}/packagekit-backend/*.so ${libdir}/pm-utils ${datadir}/dbus-1/system-services/ ${datadir}/PolicyKit ${datadir}/PackageKit"
-FILES_${PN}-dbg += "${libdir}/packagekit-backend/.debug/*.so ${libdir}/gtk-2.0/*/.debug"
-FILES_${PN}-dev += "${libdir}/packagekit-backend/*.la ${libdir}/gtk-2.0/*/*.la"
-FILES_${PN}-staticdev += "${libdir}/packagekit-backend/*.a ${libdir}/gtk-2.0/*/*.a"
-
-# PackageKit-0.5.6/backends/opkg/pk-backend-opkg.c:31:26: fatal error: libopkg/opkg.h: No such file or directory
-PNBLACKLIST[packagekit] ?= "BROKEN: depends on old deprecated libopkg which is currently disabled and will be removed soon - the recipe will be removed on 2017-09-01 unless the issue is fixed"
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.94.bb
index 66054a2..3b58939 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.94.bb
@@ -3,6 +3,7 @@
 using files, pipes, and pseudo-ttys. Both system()-style and scripted \
 usages are supported and may be mixed. Likewise, functional and OO API \
 styles are both supported and may be mixed."
+HOMEPAGE = "https://metacpan.org/release/IPC-Run"
 SECTION = "libs"
 LICENSE = "Artistic-1.0 | GPL-1.0+"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/0001-Add-lpthread-to-link.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/0001-Add-lpthread-to-link.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/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
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/0001-Specify-tag-with-libtool.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch
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
new file mode 100644
index 0000000..41d2a0f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
@@ -0,0 +1,5241 @@
+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.7/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
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
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 0e55020..283d630 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
@@ -203,6 +203,7 @@
 
 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}"
 
+RDEPENDS_${PN} += "libgcc"
 RDEPENDS_${PN}-pear = "${PN}"
 RDEPENDS_${PN}-phar = "${PN}-cli"
 RDEPENDS_${PN}-cli = "${PN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.26.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
similarity index 65%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.26.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
index dfce949..dd8047b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.26.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
@@ -6,5 +6,5 @@
             file://pthread-check-threads-m4.patch \
             file://0001-Add-lpthread-to-link.patch \
            "
-SRC_URI[md5sum] = "cb424b705cfb715fc04f499f8a8cf52e"
-SRC_URI[sha256sum] = "d47aab8083a4284b905777e1b45dd7735adc53be827b29f896684750ac8b6236"
+SRC_URI[md5sum] = "620abe25e0d6cd5f041a360a30ce5783"
+SRC_URI[sha256sum] = "8f397169cb65f0539f3bcb04060f97770d73e19074a37bd2c58b98ebf6ecb10f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
similarity index 74%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.7.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
index ebf9237..acf68a0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
@@ -4,9 +4,10 @@
 
 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] = "22e11a372f99afbbbf3f46a31e8a82ca"
-SRC_URI[sha256sum] = "079b6792987f38dc485f92258c04f9e02dedd593f9d260ebe725343f812d1ff8"
+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 \
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-devtools/pm-qa/pm-qa_git.bb
index 7322df8..1ee6573 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb
@@ -4,12 +4,11 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-PV = "0.4.14"
+PV = "0.5.2"
 
 BRANCH ?= "master"
 
-# Corresponds to tag pm-qa-v0.4.14
-SRCREV = "9111d1930f02337394cf16e84ad2a27f33607cbb"
+SRCREV = "05710ec5032be4c8edafb4109d4d908d31243906"
 
 SRC_URI = "git://git.linaro.org/power/pm-qa.git;protocol=git;branch=${BRANCH}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
index 94fc736..8491fc9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
@@ -15,6 +15,11 @@
 
 S = "${WORKDIR}/git"
 
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_${PN} = "acpixtract"
+
 do_configure[noexec] = "1"
 do_compile() {
     oe_runmake
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
similarity index 75%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.2.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
index 40fb96c..fe1e6e5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.2.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
@@ -15,11 +15,14 @@
 RDEPENDS_${PN}-compiler = "protobuf-compiler"
 RDEPENDS_${PN}-dev += "${PN}-compiler"
 
-LIC_FILES_CHKSUM = "file://LICENSE;md5=235c3195a3968524dc1524b4ebea0c0e"
-SRC_URI = "https://github.com/protobuf-c/protobuf-c/archive/v${PV}.tar.gz"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558"
 
-SRC_URI[md5sum] = "b884aeba4283309445a8e3b6e7322dd6"
-SRC_URI[sha256sum] = "2d708fb3c024b9e6e86df141faff802194f5db90a4b79e6d4aa6bd61dd983dd6"
+PV .= "+git${SRCPV}"
+SRCREV = "dac1a65feac4ad72f612aab99f487056fbcf5c1a"
+
+SRC_URI = "git://github.com/protobuf-c/protobuf-c.git"
+
+S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
similarity index 72%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.1.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
index 18210b1..fae7c18 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.1.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
@@ -6,7 +6,7 @@
 SECTION = "console/tools"
 LICENSE = "BSD-3-Clause"
 
-PACKAGE_BEFORE_PN = "${PN}-compiler"
+PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
 
 DEPENDS = "zlib"
 RDEPENDS_${PN}-compiler = "${PN}"
@@ -14,19 +14,20 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
 
-SRCREV = "a428e42072765993ff674fda72863c9f1aa2d268"
+SRCREV = "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9"
 
-PV = "3.1.0+git${SRCPV}"
+PV = "3.4.1+git${SRCPV}"
 
-SRC_URI = "git://github.com/google/protobuf.git"
+SRC_URI = "git://github.com/google/protobuf.git;branch=3.4.x"
 
 EXTRA_OECONF += " --with-protoc=echo"
 
-inherit autotools
+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"
 
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
index 3eb1882..c85fc56 100644
--- 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
@@ -12,3 +12,5 @@
 S = "${WORKDIR}/futures-${PV}"
 
 inherit setuptools
+
+BBCLASSEXTEND = "native"
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.22.0.bb
index acc2f5b..9d2e165 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.22.0.bb
@@ -1,4 +1,5 @@
 SUMMARY = "Python GObject bindings"
+HOMEPAGE = "http://www.pygtk.org/"
 SECTION = "devel/python"
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
index 4cded07..8ab35d2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
@@ -21,5 +21,6 @@
 # RapidJSON is a header-only C++ library, so the main package will be empty.
 
 FILES_${PN}-dev += "${libdir}/cmake"
+RDEPENDS_${PN}-dev = ""
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
new file mode 100644
index 0000000..82b1795
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Trace and analyze execution of a program written in C/C++"
+HOMEPAGE = "https://github.com/namhyung/uftrace"
+BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "elfutils"
+DEPENDS_append_libc-musl = " argp-standalone"
+
+inherit autotools
+
+SRCREV = "5af9ff9fa89c340617e52c8ed05798b352a7145c"
+SRC_URI = "git://github.com/namhyung/${BPN}"
+S = "${WORKDIR}/git"
+
+LDFLAGS_append_libc-musl = " -largp"
+EXTRA_OECONF = "ARCH=${TARGET_ARCH}"
+
+do_configure() {
+    ${S}/configure ${EXTRA_OECONF}
+}
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/*.so"
+
+COMPATIBLE_HOST = "(x86_64|aarch64|arm)"
+
+# uftrace supports armv6 and above
+COMPATIBLE_HOST_armv4 = 'null'
+COMPATIBLE_HOST_armv5 = 'null'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
index 0849e88..91003f6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -6,7 +6,7 @@
 
 DEPENDS = "openssl"
 
-SRC_URI = "ftp://ftp.cac.washington.edu/imap/imap-${PV}.tar.gz \
+SRC_URI = "https://fossies.org/linux/misc/old/imap-${PV}.tar.gz \
            file://quote_cctype.patch \
            file://imap-2007e-shared.patch \
            file://imap-2007f-format-security.patch \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
deleted file mode 100644
index f7d480f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Vala DBus Binding Tool"
-SECTION = "devel"
-DEPENDS = "vala libgee libxml2"
-HOMEPAGE = "http://wiki.freesmartphone.org/index.php/Implementations/vala-dbus-binding-tool"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-PE = "1"
-INC_PR = "r3"
-
-export XDG_DATA_DIRS = "${STAGING_DATADIR}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/freesmartphone/sources/${BP}.tar.bz2"
-
-inherit autotools perlnative pkgconfig
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
deleted file mode 100644
index 14d84ae..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8abed2e5bf8e7815b11df6d22042d5f0ac8efcb0 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 5 May 2015 13:43:35 +0200
-Subject: [PATCH] configure.ac: don't use dash in m4 macro names
-
-* otherwise it doesn't get expanded and vala-dbus-binding-tool ends with version 'vala-dbus-binding-tool_version'
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- configure.ac | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 48f007c..18d0bde 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,9 +1,9 @@
--m4_define([vala-dbus-binding-tool_released], [0])
--m4_define([vala-dbus-binding-tool_base_version], [1.0])
--m4_define([vala-dbus-binding-tool_maybe_gitrev], m4_if(vala-dbus-binding-tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
--m4_define([vala-dbus-binding-tool_version], m4_if(vala-dbus-binding-tool_released, [1], [vala-dbus-binding-tool_base_version], [vala-dbus-binding-tool_base_version-vala-dbus-binding-tool_maybe_gitrev]))
-+m4_define([vala_dbus_binding_tool_released], [0])
-+m4_define([vala_dbus_binding_tool_base_version], [1.0])
-+m4_define([vala_dbus_binding_tool_maybe_gitrev], m4_if(vala_dbus_binding_tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
-+m4_define([vala_dbus_binding_tool_version], m4_if(vala_dbus_binding_tool_released, [1], [vala_dbus_binding_tool_base_version], [vala_dbus_binding_tool_base_version-vala_dbus_binding_tool_maybe_gitrev]))
- 
--AC_INIT([vala-dbus-binding-tool], [vala-dbus-binding-tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
-+AC_INIT([vala-dbus-binding-tool], [vala_dbus_binding_tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
- AC_CONFIG_SRCDIR([src/Makefile.am])
- AC_CONFIG_HEADERS(config.h)
- AM_INIT_AUTOMAKE([dist-bzip2])
--- 
-2.3.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
deleted file mode 100644
index 19e3dce..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require vala-dbus-binding-tool.inc
-
-SRC_URI[md5sum] = "59eab7abf38f35355d3786803bd2441f"
-SRC_URI[sha256sum] = "1e37ab2e6238eaef9f573560ea7379e6955570f7c9503083e50c4c185c1956df"
-
-PNBLACKLIST[vala-dbus-binding-tool] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/131628/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
deleted file mode 100644
index 32f3455..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require vala-dbus-binding-tool.inc
-
-# Temporary remove negative preference, because there are 2 versions of 0.4.0 archives:
-# the original one depending on libgee1.0 from
-# http://downloads.freesmartphone.org/sources/${BPN}/${BP}.tar.bz2
-# and new one depending on libgee0.8 from
-# http://sourceforge.net/projects/freesmartphone/files/sources/
-# The original one can be already deployed on various premirrors,
-# so prefer the git recipe which doesn't suffer from this issue
-# DEFAULT_PREFERENCE = "-1"
-
-SRCREV = "742c04c2bb0743891904522ce47e50f9e5c99b12"
-PV = "0.4.0+gitr${SRCPV}"
-
-SRC_URI = "git://github.com/freesmartphone/vala-dbus-binding-tool.git;protocol=https \
-    file://0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch \
-"
-S = "${WORKDIR}/git"
-
-PNBLACKLIST[vala-dbus-binding-tool] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130581/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch
new file mode 100644
index 0000000..234d696
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch
@@ -0,0 +1,52 @@
+From 950b27f8320b841490cafcb3e6e3b818c7174c0d Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 20 Jul 2017 22:32:50 -0400
+Subject: [PATCH] fix compile failure against musl C library
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ test/cpp/server_abyss.cpp               |  2 +-
+ tools/xmlrpc_pstream/xmlrpc_pstream.cpp | 10 +++++++---
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/test/cpp/server_abyss.cpp b/test/cpp/server_abyss.cpp
+index 2458a8f..82f91da 100644
+--- a/test/cpp/server_abyss.cpp
++++ b/test/cpp/server_abyss.cpp
+@@ -18,7 +18,7 @@
+ #ifdef WIN32
+   #include <winsock2.h>
+ #else
+-  #include <sys/unistd.h>
++  #include <unistd.h>
+   #include <sys/socket.h>
+   #include <arpa/inet.h>
+   #include <netinet/in.h>
+diff --git a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
+index d39e105..1fd8900 100644
+--- a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
++++ b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
+@@ -15,11 +15,15 @@
+ #include "xmlrpc-c/girerr.hpp"
+ using girerr::throwf;
+ 
+-#include <features.h>  // for __BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ 
+-__BEGIN_DECLS
+ #include "dumpvalue.h"  /* An internal Xmlrpc-c header file ! */
+-__END_DECLS
++
++#ifdef __cplusplus
++}
++#endif
+ 
+ 
+ #include <xmlrpc-c/base.hpp>
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0002-fix-formatting-issues.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0002-fix-formatting-issues.patch
new file mode 100644
index 0000000..9d92e47
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0002-fix-formatting-issues.patch
@@ -0,0 +1,34 @@
+From 14f15cb0f03defa8efb4c8e2fece58e50655be6b Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 23 Jul 2017 22:20:29 -0400
+Subject: [PATCH] src/xmlrpc_server_abyss.c: fix formatting issues
+
+Fixed when compile with "-Wformat -Wformat-security -Werror=format-security":
+|src/xmlrpc_server_abyss.c:771:13: error: format not a string literal
+and no format arguments [-Werror=format-security]
+|             xmlrpc_faultf(envP, error);
+|             ^~~~~~~~~~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/xmlrpc_server_abyss.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c
+index 2388652..3843f10 100644
+--- a/src/xmlrpc_server_abyss.c
++++ b/src/xmlrpc_server_abyss.c
+@@ -768,7 +768,7 @@ createServer(xmlrpc_env *                      const envP,
+         ServerInit2(abyssServerP, &error);
+ 
+         if (error) {
+-            xmlrpc_faultf(envP, error);
++            xmlrpc_faultf(envP, "%s", error);
+             xmlrpc_strfree(error);
+         }
+     }
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb
new file mode 100644
index 0000000..efa58f1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to help you \
+write an XML-RPC server or client in C or C++."
+
+HOMEPAGE = "http://xmlrpc-c.sourceforge.net/"
+LICENSE = "BSD & MIT"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951"
+
+SRC_URI = "git://github.com/ensc/xmlrpc-c.git;branch=master \
+           file://0001-fix-compile-failure-against-musl-C-library.patch \
+           file://0002-fix-formatting-issues.patch \
+"
+SRCREV = "81443a9dc234cc275449dbc17867ad77ae189124"
+S = "${WORKDIR}/git"
+
+DEPENDS = "curl libxml2"
+RDEPENDS_${PN} = "curl perl"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-D_lib:STRING=${baselib}"
+
+BBCLASSEXTEND = "native"
+
+TARGET_CFLAGS += "-Wno-narrowing"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
index ac5f755..99b43fa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
@@ -39,7 +39,9 @@
 SRC_URI[md5sum] = "437b4b98e384b4bda4ef7056e68166ac"
 SRC_URI[sha256sum] = "c4b1c29b9655013e0ac61dddf47ad7f30f38c46159f02a9d9dc8ab854e99aa6d"
 
-inherit gettext autotools-brokensep pkgconfig
+inherit gettext autotools-brokensep pkgconfig distro_features_check
+
+REQUIRED_DISTRO_FEATURES += "opengl"
 
 S = "${WORKDIR}/${BPN}_release-7.6-${PV}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
new file mode 100644
index 0000000..9bdafd2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
@@ -0,0 +1,23 @@
+SUMMARY = "Berkeley LALR Yacc parser generator"
+HOMEPAGE = "http://invisible-island.net/byacc/"
+DESCRIPTION = "A parser generator utility that reads a grammar specification from a file and generates an LR(1) \
+parser for it.  The parsers consist of a set of LALR(1) parsing tables and a driver routine written in the C \
+programming language."
+SECTION = "devel"
+LICENSE = "PD"
+
+SRC_URI = "ftp://invisible-island.net/byacc/byacc-${PV}.tgz \
+           file://byacc-open.patch \
+           file://0001-byacc-do-not-reorder-CC-and-CFLAGS.patch"
+
+EXTRA_OECONF += "--program-transform-name='s,^,b,'"
+
+BBCLASSEXTEND = "native"
+
+inherit autotools
+
+do_configure() {
+	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+	oe_runconf
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
new file mode 100644
index 0000000..7cd2510
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
@@ -0,0 +1,161 @@
+Subject: byacc: do not reorder $CC and $CFLAGS
+
+byacc tries to process $CC and decide which part should belong to CC and which
+part should below to CFLAGS and then do reordering. It doesn't make much sense
+for OE. And it doesn't do its work correctly. Some options are dropped.
+
+Delete all these stuff so that we could have all options we need.
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ aclocal.m4 |   1 -
+ configure  | 119 -------------------------------------------------------------
+ 2 files changed, 120 deletions(-)
+
+diff --git a/aclocal.m4 b/aclocal.m4
+index 917a848..62ef241 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -1021,7 +1021,6 @@ CF_GCC_VERSION
+ CF_ACVERSION_CHECK(2.52,
+ 	[AC_PROG_CC_STDC],
+ 	[CF_ANSI_CC_REQD])
+-CF_CC_ENV_FLAGS
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_PROG_GROFF version: 2 updated: 2015/07/04 11:16:27
+diff --git a/configure b/configure
+index 9707e50..4f0497c 100755
+--- a/configure
++++ b/configure
+@@ -1946,125 +1946,6 @@ esac
+ # This should have been defined by AC_PROG_CC
+ : ${CC:=cc}
+ 
+-echo "$as_me:1949: checking \$CC variable" >&5
+-echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
+-case "$CC" in
+-(*[\ \	]-*)
+-	echo "$as_me:1953: result: broken" >&5
+-echo "${ECHO_T}broken" >&6
+-	{ echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
+-echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
+-	# humor him...
+-	cf_flags=`echo "$CC" | sed -e 's/^.*[ 	]\(-[^ 	]\)/\1/'`
+-	CC=`echo "$CC " | sed -e 's/[ 	]-[^ 	].*$//' -e 's/[ 	]*$//'`
+-	for cf_arg in $cf_flags
+-	do
+-		case "x$cf_arg" in
+-		(x-[IUDfgOW]*)
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_flags
+-do
+-case $cf_fix_cppflags in
+-(no)
+-	case $cf_add_cflags in
+-	(-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
+-		case $cf_add_cflags in
+-		(-D*)
+-			cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+-			test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+-				&& test -z "${cf_tst_cflags}" \
+-				&& cf_fix_cppflags=yes
+-
+-			if test $cf_fix_cppflags = yes ; then
+-				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-				continue
+-			elif test "${cf_tst_cflags}" = "\"'" ; then
+-				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-				continue
+-			fi
+-			;;
+-		esac
+-		case "$CPPFLAGS" in
+-		(*$cf_add_cflags)
+-			;;
+-		(*)
+-			case $cf_add_cflags in
+-			(-D*)
+-				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+-	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+-		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+-
+-				;;
+-			esac
+-			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+-			;;
+-		esac
+-		;;
+-	(*)
+-		cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+-		;;
+-	esac
+-	;;
+-(yes)
+-	cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+-	cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+-	test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+-		&& test -z "${cf_tst_cflags}" \
+-		&& cf_fix_cppflags=no
+-	;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+-	CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+-	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+-	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+-			;;
+-		(*)
+-			CC="$CC $cf_arg"
+-			;;
+-		esac
+-	done
+-	test -n "$verbose" && echo "	resulting CC: '$CC'" 1>&6
+-
+-echo "${as_me:-configure}:2051: testing resulting CC: '$CC' ..." 1>&5
+-
+-	test -n "$verbose" && echo "	resulting CFLAGS: '$CFLAGS'" 1>&6
+-
+-echo "${as_me:-configure}:2055: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
+-
+-	test -n "$verbose" && echo "	resulting CPPFLAGS: '$CPPFLAGS'" 1>&6
+-
+-echo "${as_me:-configure}:2059: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+-
+-	;;
+-(*)
+-	echo "$as_me:2063: result: ok" >&5
+-echo "${ECHO_T}ok" >&6
+-	;;
+-esac
+-
+ echo "$as_me:2068: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+-- 
+2.8.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/byacc-open.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/byacc-open.patch
new file mode 100644
index 0000000..0058311
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/byacc-open.patch
@@ -0,0 +1,25 @@
+Ubuntu defaults to passing _FORTIFY_SOURCE=2 which breaks byacc as it doesn't
+pass enough arguments to open():
+
+ inlined from 'open_tmpfile' at byacc-20150711/main.c:588:5:
+ /usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:24: error: call to '__open_missing_mode' declared with attribute error:
+ open with O_CREAT in second argument needs 3 arguments
+
+Add a mode of 0666 to fix this.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/main.c b/main.c
+index 620ce3f..82071a4 100644
+--- a/main.c
++++ b/main.c
+@@ -526,7 +526,7 @@ my_mkstemp(char *temp)
+     }
+     if ((name = tempnam(dname, fname)) != 0)
+     {
+-	fd = open(name, O_CREAT | O_EXCL | O_RDWR);
++      fd = open(name, O_CREAT | O_EXCL | O_RDWR, 0666);
+ 	strcpy(temp, name);
+     }
+     else
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20170201.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20170201.bb
new file mode 100644
index 0000000..702c4c9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20170201.bb
@@ -0,0 +1,12 @@
+# Sigh. This is one of those places where everyone licenses it differently. Someone
+# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
+# "I've found no reliable source which states that byacc must bear a UCB copyright."
+# Setting to PD as this is what the upstream has it as.
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=9176bfb16dab43ebcb8e50d9ee9550b6"
+require byacc.inc
+
+SRC_URI[md5sum] = "4bb274bbd7b648d4251c2b9ca36ed0c9"
+SRC_URI[sha256sum] = "90b768d177f91204e6e7cef226ae1dc7cac831b625774cebd3e233a917754f91"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
index 70b0983..5069a63 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
@@ -1,14 +1,18 @@
-From 14d469bc82c758116aef7d549abd49c131b4170f Mon Sep 17 00:00:00 2001
+From b459c55e4968321e5a82272cb39aa69d4054990f Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 22 Apr 2017 11:54:57 -0700
 Subject: [PATCH] configure: Check for -Wno-error=format-truncation compiler
  option
 
 If this option is supported by compiler then disable it ( gcc7+)
+Use -Werror to elevate the warning to an error in case compiler like clang
+which warn about unknown options but not error out unless asked for
+
 Fixes
 client.c:834:23: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1010 [-Werror=format-truncation=]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  configure.ac                |  3 +-
  m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++
@@ -16,7 +20,7 @@
  create mode 100644 m4/ax_check_compile_flag.m4
 
 diff --git a/configure.ac b/configure.ac
-index 8854542..f3a6b57 100644
+index 8854542..edb8cfb 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -4,7 +4,6 @@ AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)])
@@ -31,7 +35,7 @@
          AM_CFLAGS="$AM_CFLAGS -Werror"
          AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
  fi
-+AX_CHECK_COMPILE_FLAG([-Werror=format-truncation],[AM_CFLAGS="$AM_CFLAGS -Wno-error=format-truncation" AM_CXXFLAGS="$AM_CXXFLAGS -Wno-error=format-truncation"])
++AX_CHECK_COMPILE_FLAG([-Werror -Werror=format-truncation],[AM_CFLAGS="$AM_CFLAGS -Wno-error=format-truncation" AM_CXXFLAGS="$AM_CXXFLAGS -Wno-error=format-truncation"])
 +
  AC_SUBST([AM_CFLAGS])
  AC_SUBST([AM_CXXFLAGS])
@@ -117,5 +121,5 @@
 +AS_VAR_POPDEF([CACHEVAR])dnl
 +])dnl AX_CHECK_COMPILE_FLAGS
 -- 
-2.12.2
+2.13.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.2.bb
similarity index 96%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.2.bb
index b7789c7..c156ea1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.7.2.bb
@@ -13,8 +13,8 @@
            file://0001-fix-to-build-with-glibc-2.25.patch \
            file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
 "
-SRC_URI[md5sum] = "dc36141ed3058c4919bbd54b87c07873"
-SRC_URI[sha256sum] = "7edd3643c0842215553b2421d5456f4e9a8a58b07e216b40a7e8e91026d8e501"
+SRC_URI[md5sum] = "5da2b69c286a064db35c6cc1e758b039"
+SRC_URI[sha256sum] = "9d20a0221569a8d6b80bbc52b86e5e84965f5bafdbf5dfc3790e0fed0763e592"
 
 inherit autotools pythonnative update-rc.d pkgconfig systemd
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch
deleted file mode 100644
index fe4b079..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 85ea47fedbc96ed9180e08b0d371d9966e3a88da Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Aug 2017 17:28:55 -0700
-Subject: [PATCH] Include fcntl.h for F_* and O_* defines
-
-Fixes errors like
-utils.c:95:22: error: use of undeclared identifier 'O_WRONLY'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- qdevices/utils.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/qdevices/utils.c b/qdevices/utils.c
-index 41850b8c..87090853 100644
---- a/qdevices/utils.c
-+++ b/qdevices/utils.c
-@@ -39,6 +39,7 @@
- 
- #include <err.h>
- #include <errno.h>
-+#include <fcntl.h>
- #include <inttypes.h>
- #include <libgen.h>
- #include <stdio.h>
--- 
-2.14.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync_2.4.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync_2.4.2.bb
deleted file mode 100644
index c4af006..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync_2.4.2.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
-DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
-APIs and libraries, default configuration files, and an init script."
-HOMEPAGE = "http://corosync.github.io/corosync/"
-
-SECTION = "base"
-
-inherit autotools pkgconfig systemd
-
-SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz \
-           file://0001-Include-fcntl.h-for-F_-and-O_-defines.patch \
-          "
-SRC_URI[md5sum] = "547fa78704da53aa35912be58d31035f"
-SRC_URI[sha256sum] = "f26e3011309fe4bcce94b1dc20ea8c462f19483a73f3ca62f13b925d011a4ba9"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
-
-DEPENDS = "groff-native nss libqb"
-
-SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-INITSCRIPT_NAME = "corosync-daemon"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd"
-
-EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash"
-EXTRA_OEMAKE = "tmpfilesdir_DATA="
-
-do_configure_prepend() {
-    ( cd ${S}
-    ${S}/autogen.sh )
-}
-
-do_install_append() {
-    install -d ${D}${sysconfdir}/sysconfig/
-    install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
-    install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
-
-    rm -rf "${D}${localstatedir}/run"
-
-    install -d ${D}${sysconfdir}/default/volatiles
-    echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
-
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install -d ${D}${sysconfdir}/tmpfiles.d
-        echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
-    fi
-}
-
-RDEPENDS_${PN} += "bash"
-
-FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug"
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-20160828.bb
index bff3d97..85dede1 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-20160828.bb
@@ -8,7 +8,7 @@
 LICENSE = "LGPL-2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
 
-SRC_URI = "ftp://invisible-island.net/dialog/dialog-${PV}.tgz \
+SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
           "
 SRC_URI[md5sum] = "a39ec183517bc1feaff017d067300b8c"
 SRC_URI[sha256sum] = "453095abaec288bfbc1ca9faced917e17742cff1ea45ec46210071ac153562f9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
deleted file mode 100644
index 69b2f90..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile
---- dlm-4.0.2.orig/dlm_controld/Makefile	2017-04-04 10:49:23.661320260 +0200
-+++ dlm-4.0.2/dlm_controld/Makefile	2017-04-04 10:50:36.121326429 +0200
-@@ -55,7 +55,7 @@
- BIN_CFLAGS += -fPIE -DPIE
- BIN_CFLAGS += -I../include -I../libdlm
- 
--BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
-+BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie
- BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum
- 
- LIB_CFLAGS += $(BIN_CFLAGS)
-diff -uNr dlm-4.0.2.orig/dlm_tool/Makefile dlm-4.0.2/dlm_tool/Makefile
---- dlm-4.0.2.orig/dlm_tool/Makefile	2013-07-31 17:50:26.000000000 +0200
-+++ dlm-4.0.2/dlm_tool/Makefile	2017-04-04 10:50:44.617327153 +0200
-@@ -32,7 +32,7 @@
- BIN_CFLAGS += -fPIE -DPIE
- BIN_CFLAGS += -I../include -I../libdlm -I../dlm_controld
- 
--BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
-+BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie
- BIN_LDFLAGS += -L../libdlm -L../dlm_controld
- BIN_LDFLAGS += -lpthread -ldlm -ldlmcontrol
- 
-diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile
---- dlm-4.0.2.orig/dlm_controld/Makefile	2017-04-04 11:02:58.578389641 +0200
-+++ dlm-4.0.2/dlm_controld/Makefile	2017-04-04 11:07:55.672414935 +0200
-@@ -59,7 +59,7 @@
- BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum
- 
- LIB_CFLAGS += $(BIN_CFLAGS)
--LIB_LDFLAGS += -Wl,-z,relro -pie
-+LIB_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -pie
- 
- ifeq ($(USE_SD_NOTIFY),yes)
- 	BIN_CFLAGS += $(shell pkg-config --cflags libsystemd-daemon) \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb
deleted file mode 100644
index 31e411e..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-DESCRIPTION = "dlm control daemon and tool"
-
-SECTION = "utils"
-HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz \
-    file://respect-ldflags-also-from-bin_ldflags.patch \
-"
-
-SRC_URI[md5sum] = "efc2ee6093aa6aa0a88aaad83e998a3f"
-SRC_URI[sha256sum] = "b89bc557aaffbab0ac005398025f247718a5589cff6574d902eaffe2b20e683e"
-
-LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
-
-DEPENDS = "corosync systemd"
-
-inherit pkgconfig systemd distro_features_check
-
-SYSTEMD_SERVICE_${PN} = "dlm.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-export EXTRA_OEMAKE = ""
-
-do_compile_prepend() {
-    sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
-}
-
-do_compile () {
-    oe_runmake 'CC=${CC}'
-}
-
-do_install_append (){
-    install -d ${D}${sysconfdir}/sysconfig/
-    install -d ${D}${sysconfdir}/init.d/
-    install -m 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
-    install -m 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
-
-    # install systemd unit files
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install -d ${D}${systemd_unitdir}/system
-        install -m 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system
-    fi
-}
-
-do_install() {
-    oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
-}
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr/0001-Remove-extra-const-keywords-gcc-7-gripes-about.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr/0001-Remove-extra-const-keywords-gcc-7-gripes-about.patch
deleted file mode 100644
index b6211c2..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr/0001-Remove-extra-const-keywords-gcc-7-gripes-about.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From a9f8d414972b0b7c963d7efe38b5cfdcb6413c46 Mon Sep 17 00:00:00 2001
-From: Peter Jones <pjones@redhat.com>
-Date: Mon, 6 Feb 2017 16:34:54 -0500
-Subject: [PATCH] Remove extra const keywords gcc 7 gripes about.
-
-Signed-off-by: Peter Jones <pjones@redhat.com>
----
- src/efibootdump.c | 2 +-
- src/efibootmgr.c  | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/efibootdump.c b/src/efibootdump.c
-index 3e448c2..5a9b681 100644
---- a/src/efibootdump.c
-+++ b/src/efibootdump.c
-@@ -36,7 +36,7 @@ print_boot_entry(efi_load_option *loadopt, size_t data_size)
- 	uint8_t *optional_data = NULL;
- 	size_t optional_data_len = 0;
- 	uint16_t pathlen;
--	const unsigned char const *desc;
-+	const unsigned char *desc;
- 	char *raw;
- 	size_t raw_len;
- 
-diff --git a/src/efibootmgr.c b/src/efibootmgr.c
-index baefa68..683623b 100644
---- a/src/efibootmgr.c
-+++ b/src/efibootmgr.c
-@@ -214,7 +214,7 @@ warn_duplicate_name(list_t *boot_list)
- 	list_t *pos;
- 	var_entry_t *boot;
- 	efi_load_option *load_option;
--	const unsigned char const *desc;
-+	const unsigned char *desc;
- 
- 	list_for_each(pos, boot_list) {
- 		boot = list_entry(pos, var_entry_t, list);
-@@ -821,7 +821,7 @@ show_boot_vars()
- {
- 	list_t *pos;
- 	var_entry_t *boot;
--	const unsigned char const *description;
-+	const unsigned char *description;
- 	efi_load_option *load_option;
- 	efidp dp = NULL;
- 	unsigned char *optional_data = NULL;
--- 
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.12.bb
deleted file mode 100644
index 193150b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.12.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION = "Linux user-space application to modify the EFI Boot Manager."
-SUMMARY = "EFI Boot Manager"
-HOMEPAGE = "https://github.com/rhinstaller/efibootmgr"
-SECTION = "base"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-DEPENDS = "pciutils zlib efivar"
-
-COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-
-SRCREV = "75d25807ba81cb724964c989012611272c8f1f5d"
-SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \
-           file://0001-Remove-extra-const-keywords-gcc-7-gripes-about.patch \
-          "
-
-S = "${WORKDIR}/git"
-
-
-inherit pkgconfig
-
-EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/src/include `pkg-config --cflags efivar` \
-                 -DEFIBOOTMGR_VERSION=\"$(RELEASE_MAJOR).$(RELEASE_MINOR)\" '"
-
-do_install () {
-    install -D -p -m0755 src/efibootmgr ${D}/${sbindir}/efibootmgr
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.15.bb
new file mode 100644
index 0000000..9cc62a9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.15.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Linux user-space application to modify the EFI Boot Manager."
+SUMMARY = "EFI Boot Manager"
+HOMEPAGE = "https://github.com/rhinstaller/efibootmgr"
+SECTION = "base"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+DEPENDS = "pciutils zlib efivar"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+SRCREV = "5c14da22802576a99ebb854f7aa174f796f7b031"
+SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \
+          "
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "'EFIDIR=/' 'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/src/include `pkg-config --cflags efivar`'"
+
+CFLAGS_append_toolchain-clang = " -Wno-error"
+do_install () {
+    install -D -p -m0755 ${B}/src/efibootmgr ${D}/${sbindir}/efibootmgr
+}
+
+CLEANBROKEN = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-Remove-some-extra-const-that-gcc-complains-about.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-Remove-some-extra-const-that-gcc-complains-about.patch
deleted file mode 100644
index 4ae8cb9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-Remove-some-extra-const-that-gcc-complains-about.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 29a2dea16113b5a8e51de46437c6a9f7426c5867 Mon Sep 17 00:00:00 2001
-From: Peter Jones <pjones@redhat.com>
-Date: Mon, 6 Feb 2017 14:28:19 -0500
-Subject: [PATCH 1/2] Remove some extra "const" that gcc complains about.
-
-One of these days I'll get these right.
-
-Signed-off-by: Peter Jones <pjones@redhat.com>
----
- src/include/efivar/efiboot-loadopt.h | 4 ++--
- src/loadopt.c                        | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/include/efivar/efiboot-loadopt.h b/src/include/efivar/efiboot-loadopt.h
-index 07db5c4..efc29c6 100644
---- a/src/include/efivar/efiboot-loadopt.h
-+++ b/src/include/efivar/efiboot-loadopt.h
-@@ -32,8 +32,8 @@ extern ssize_t efi_loadopt_create(uint8_t *buf, ssize_t size,
- 
- extern efidp efi_loadopt_path(efi_load_option *opt, ssize_t limit)
- 	__attribute__((__nonnull__ (1)));
--extern const unsigned char const * efi_loadopt_desc(efi_load_option *opt,
--						    ssize_t limit)
-+extern const unsigned char * efi_loadopt_desc(efi_load_option *opt,
-+					      ssize_t limit)
- 	__attribute__((__visibility__ ("default")))
- 	__attribute__((__nonnull__ (1)));
- extern uint32_t efi_loadopt_attrs(efi_load_option *opt)
-diff --git a/src/loadopt.c b/src/loadopt.c
-index 64e333f..ec50722 100644
---- a/src/loadopt.c
-+++ b/src/loadopt.c
-@@ -336,7 +336,7 @@ teardown(void)
- 
- __attribute__((__nonnull__ (1)))
- __attribute__((__visibility__ ("default")))
--const unsigned char const *
-+const unsigned char *
- efi_loadopt_desc(efi_load_option *opt, ssize_t limit)
- {
- 	if (last_desc) {
--- 
-2.12.2
-
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-extended/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
new file mode 100644
index 0000000..1b8815e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
@@ -0,0 +1,32 @@
+From 3d43c5efdb632da5d7387dcadce4e87b83929c64 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
+
+change !dp check to a comparision against NULL to silent clang warning
+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
+  * though older or other compilers might just ignore that attribute if they
+  * don't support it.  Ugh.
+  */
++#pragma GCC diagnostic push
+ #if defined(__GNUC__) && __GNUC__ >= 6
+ #pragma GCC diagnostic ignored "-Wnonnull-compare"
+ #endif
++#if defined(__clang__)
++#pragma GCC diagnostic ignored "-Wunknown-attributes"
++#pragma GCC diagnostic ignored "-Wpointer-bool-conversion"
++#endif
+ 
+ static inline int16_t
+ __attribute__((__artificial__))
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-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
new file mode 100644
index 0000000..73a7721
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
@@ -0,0 +1,37 @@
+From 98b33d4193998687aa3a78c097f7bd4c393e0c85 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
+
+not available on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/makeguids.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/makeguids.c b/src/makeguids.c
+index da2f5f7..daf821a 100644
+--- a/src/makeguids.c
++++ b/src/makeguids.c
+@@ -155,13 +155,13 @@ main(int argc, char *argv[])
+ #if BYTE_ORDER == BIG_ENDIAN\n\
+ #define cpu_to_be32(n) (n)\n\
+ #define cpu_to_be16(n) (n)\n\
+-#define cpu_to_le32(n) (__bswap_constant_32(n))\n\
+-#define cpu_to_le16(n) (__bswap_constant_16(n))\n\
++#define cpu_to_le32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
++#define cpu_to_le16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
+ #else\n\
+ #define cpu_to_le32(n) (n)\n\
+ #define cpu_to_le16(n) (n)\n\
+-#define cpu_to_be32(n) (__bswap_constant_32(n))\n\
+-#define cpu_to_be16(n) (__bswap_constant_16(n))\n\
++#define cpu_to_be32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
++#define cpu_to_be16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
+ #endif\n\
+ """);
+ 
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-version-new-way-symbol-versioning-breaks.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-version-new-way-symbol-versioning-breaks.patch
deleted file mode 100644
index 737b78b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-version-new-way-symbol-versioning-breaks.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 31e655d2b5f66e772d9714422b7332bbaa60d2e6 Mon Sep 17 00:00:00 2001
-From: Peter Jones <pjones@redhat.com>
-Date: Mon, 6 Feb 2017 14:41:58 -0500
-Subject: [PATCH 2/2] New gcc version, new way symbol versioning breaks.
-
-Apparently I get to redo this every time there's a compiler release.
-Yaaaaaay.
-
-Anyway, the current method is to define the two compat things from the
-land before time as @libefivar.so.0 symbols and list them there in the
-link map.  Then we have the real one defined with another name, and set
-as efi_set_variable@@LIBEFIVAR_0.24.  Then to make there actually be a
-efi_set_variable symbol to link against, we create it as a weak alias.
-
-This is all completely absurd.
-
-Signed-off-by: Peter Jones <pjones@redhat.com>
----
- src/lib.c | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
-diff --git a/src/lib.c b/src/lib.c
-index 6a9b392..afa7d94 100644
---- a/src/lib.c
-+++ b/src/lib.c
-@@ -49,7 +49,7 @@ _efi_set_variable(efi_guid_t guid, const char *name, uint8_t *data,
- {
- 	return ops->set_variable(guid, name, data, data_size, attributes, 0600);
- }
--__asm__(".symver _efi_set_variable,_efi_set_variable@");
-+__asm__(".symver _efi_set_variable,_efi_set_variable@libefivar.so.0");
- 
- int
- __attribute__((__nonnull__ (2, 3)))
-@@ -59,17 +59,24 @@ _efi_set_variable_variadic(efi_guid_t guid, const char *name, uint8_t *data,
- {
- 	return ops->set_variable(guid, name, data, data_size, attributes, 0600);
- }
--__asm__(".symver _efi_set_variable_variadic,efi_set_variable@");
-+__asm__(".symver _efi_set_variable_variadic,efi_set_variable@libefivar.so.0");
- 
- int
- __attribute__((__nonnull__ (2, 3)))
- __attribute__((__visibility__ ("default")))
--efi_set_variable(efi_guid_t guid, const char *name, uint8_t *data,
--		 size_t data_size, uint32_t attributes, mode_t mode)
-+_efi_set_variable_mode(efi_guid_t guid, const char *name, uint8_t *data,
-+		       size_t data_size, uint32_t attributes, mode_t mode)
- {
- 	return ops->set_variable(guid, name, data, data_size, attributes, mode);
- }
--__asm__(".symver efi_set_variable,efi_set_variable@@LIBEFIVAR_0.24");
-+__asm__(".symver _efi_set_variable_mode,efi_set_variable@@LIBEFIVAR_0.24");
-+
-+int
-+__attribute__((__nonnull__ (2, 3)))
-+__attribute__((__visibility__ ("default")))
-+efi_set_variable(efi_guid_t guid, const char *name, uint8_t *data,
-+		 size_t data_size, uint32_t attributes, mode_t mode)
-+	__attribute((weak, alias ("_efi_set_variable_mode")));
- 
- int
- __attribute__((__nonnull__ (2, 3)))
--- 
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0002-disable-static-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0002-disable-static-build.patch
deleted file mode 100644
index 951b159..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0002-disable-static-build.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 126e0d3c1ad74cf5b0abe9e98ec444bcc3c83159 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Fri, 4 Mar 2016 14:53:55 +0100
-Subject: [PATCH 2/2] disable static build
-
-Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-
-Upstream-Status: Inappropriate [meta-oe specific]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- src/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 1829d22..c7a0ca3 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -8,9 +8,9 @@ include $(TOPDIR)/Make.defaults
- 
- LIBTARGETS=libefivar.so libefiboot.so
- STATICLIBTARGETS=libefivar.a libefiboot.a
--BINTARGETS=efivar efivar-static
-+BINTARGETS=efivar
- PCTARGETS=efivar.pc efiboot.pc
--TARGETS=$(LIBTARGETS) $(STATICLIBTARGETS) $(BINTARGETS) $(PCTARGETS)
-+TARGETS=$(LIBTARGETS) $(BINTARGETS) $(PCTARGETS)
- 
- LIBEFIBOOT_SOURCES = crc32.c creator.c disk.c gpt.c linux.c loadopt.c
- LIBEFIBOOT_OBJECTS = $(patsubst %.c,%.o,$(LIBEFIBOOT_SOURCES))
--- 
-2.4.3
-
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-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch
index 5d50c19..96d0c6b 100644
--- 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-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch
@@ -23,16 +23,13 @@
  gcc.specs | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/gcc.specs b/gcc.specs
-index 24fabc2..5b0fdef 100644
---- a/gcc.specs
-+++ b/gcc.specs
+Index: git/gcc.specs
+===================================================================
+--- git.orig/gcc.specs
++++ git/gcc.specs
 @@ -14,4 +14,4 @@
  + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now}
  
  *link:
--+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-PIE}} %{shared:-z relro -PIC} %{static:%<pie}
-++ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro -fPIC} %{static:%<pie}
--- 
-2.8.1
-
+-+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}
+++ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}
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-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
index 1c68a29..e3fa2e1 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-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
@@ -20,10 +20,10 @@
  gcc.specs | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/gcc.specs b/gcc.specs
-index 0d4bbda..3802ca6 100644
---- a/gcc.specs
-+++ b/gcc.specs
+Index: git/gcc.specs
+===================================================================
+--- git.orig/gcc.specs
++++ git/gcc.specs
 @@ -2,13 +2,13 @@
  + -D_GNU_SOURCE
  
@@ -35,11 +35,8 @@
  + %(efivar_cpp_options)
  
  *cc1_options:
--+ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -flto -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
+-+ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
 ++ %(efivar_cpp_options) -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
  
  *self_spec:
  + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now}
--- 
-2.8.1
-
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
new file mode 100644
index 0000000..fc8f8c8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
@@ -0,0 +1,17 @@
+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/efivar/efivar_0.24.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.31.bb
similarity index 78%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.24.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.31.bb
index 877ca90..9d4cdc9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.24.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.31.bb
@@ -12,13 +12,13 @@
 
 COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
 
-SRCREV = "963cb2e5adc145fe00717f94e382f2973f80e753"
+SRCREV = "11324799c68193116e1dd5f94b416591bd324f90"
 SRC_URI = "git://github.com/rhinstaller/efivar.git \
-           file://0002-disable-static-build.patch \
            file://allow-multi-definitions-for-native.patch \
-           file://0001-Remove-some-extra-const-that-gcc-complains-about.patch \
-           file://0002-New-gcc-version-new-way-symbol-versioning-breaks.patch \
-"
+           file://0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch \
+           file://musl-strndupa.patch \
+           file://0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch \
+           "
 SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch \
                                 file://0003-efivar-fix-for-cross-compile.patch \
                                 ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', '', d)} \
@@ -35,11 +35,15 @@
     sed -i -e s:-Werror::g ${S}/gcc.specs
 }
 
+do_compile_class-native() {
+    oe_runmake -C src makeguids
+}
+
 do_install() {
     oe_runmake install DESTDIR=${D}
 }
 
-do_install_append_class-native() {
+do_install_class-native() {
     install -D -m 0755 ${B}/src/makeguids ${D}${bindir}/makeguids
 }
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/enscript/enscript/enscript-autoconf.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/enscript/enscript/enscript-autoconf.patch
new file mode 100644
index 0000000..d3bb5c0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/enscript/enscript/enscript-autoconf.patch
@@ -0,0 +1,118 @@
+autoconf no longer supports AM_C_PROTOTYPES
+
+| configure.ac:14: error: automatic de-ANSI-fication support has been removed
+| /bitbake_build/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.12/protos.m4:10: AM_C_PROTOTYPES is expanded from...
+
+Upstream-Status: Pending
+
+Author: Mark Hatle <mark.hatle@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+Index: enscript-1.6.6/configure.ac
+===================================================================
+--- enscript-1.6.6.orig/configure.ac
++++ enscript-1.6.6/configure.ac
+@@ -11,7 +11,6 @@ AC_PROG_INSTALL
+ AC_PROG_CC
+ 
+ AC_USE_SYSTEM_EXTENSIONS
+-AM_C_PROTOTYPES
+ 
+ AC_C_CONST
+ AC_FUNC_ALLOCA
+Index: enscript-1.6.6/afmlib/afm.h
+===================================================================
+--- enscript-1.6.6.orig/afmlib/afm.h
++++ enscript-1.6.6/afmlib/afm.h
+@@ -24,11 +24,7 @@
+ #define AFM_H
+ 
+ #ifndef ___P
+-#if PROTOTYPES
+ #define ___P(protos) protos
+-#else /* no PROTOTYPES */
+-#define ___P(protos) ()
+-#endif /* no PROTOTYPES */
+ #endif
+ 
+ /**********************************************************************
+Index: enscript-1.6.6/afmlib/afmint.h
+===================================================================
+--- enscript-1.6.6.orig/afmlib/afmint.h
++++ enscript-1.6.6/afmlib/afmint.h
+@@ -34,11 +34,7 @@
+ #include <stdio.h>
+ 
+ #ifndef ___P
+-#if PROTOTYPES
+ #define ___P(protos) protos
+-#else /* no PROTOTYPES */
+-#define ___P(protos) ()
+-#endif /* no PROTOTYPES */
+ #endif
+ 
+ #if STDC_HEADERS
+Index: enscript-1.6.6/afmlib/strhash.h
+===================================================================
+--- enscript-1.6.6.orig/afmlib/strhash.h
++++ enscript-1.6.6/afmlib/strhash.h
+@@ -24,11 +24,7 @@
+ #define STRHASH_H
+ 
+ #ifndef ___P
+-#if PROTOTYPES
+ #define ___P(protos) protos
+-#else /* no PROTOTYPES */
+-#define ___P(protos) ()
+-#endif /* no PROTOTYPES */
+ #endif
+ 
+ typedef struct stringhash_st *StringHashPtr;
+Index: enscript-1.6.6/compat/xalloc.h
+===================================================================
+--- enscript-1.6.6.orig/compat/xalloc.h
++++ enscript-1.6.6/compat/xalloc.h
+@@ -28,11 +28,7 @@
+ #define XALLOC_H
+ 
+ #ifndef ___P
+-#if PROTOTYPES
+ #define ___P(protos) protos
+-#else /* no PROTOTYPES */
+-#define ___P(protos) ()
+-#endif /* no PROTOTYPES */
+ #endif
+ 
+ void *xmalloc ___P ((size_t size));
+Index: enscript-1.6.6/src/gsint.h
+===================================================================
+--- enscript-1.6.6.orig/src/gsint.h
++++ enscript-1.6.6/src/gsint.h
+@@ -39,11 +39,7 @@
+ #include <sys/stat.h>
+ 
+ #ifndef ___P
+-#if PROTOTYPES
+ #define ___P(protos) protos
+-#else /* no PROTOTYPES */
+-#define ___P(protos) ()
+-#endif /* no PROTOTYPES */
+ #endif
+ 
+ #if STDC_HEADERS
+Index: enscript-1.6.6/states/defs.h
+===================================================================
+--- enscript-1.6.6.orig/states/defs.h
++++ enscript-1.6.6/states/defs.h
+@@ -37,11 +37,7 @@
+ #include <ctype.h>
+ 
+ #ifndef ___P
+-#if PROTOTYPES
+ #define ___P(protos) protos
+-#else /* no PROTOTYPES */
+-#define ___P(protos) ()
+-#endif /* no PROTOTYPES */
+ #endif
+ 
+ #if STDC_HEADERS
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
new file mode 100644
index 0000000..2b6d14e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A plain ASCII to PostScript converter"
+DESCRIPTION = "GNU enscript is a free replacement for Adobe''s Enscript \
+program. Enscript converts ASCII files to PostScript(TM) and spools generated \
+PostScript output to the specified printer or saves it to a file. Enscript can \
+be extended to handle different output media and includes many options for \
+customizing printouts."
+HOMEPAGE = "http://www.gnu.org/software/enscript/"
+SECTION = "console/utils"
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
+           file://enscript-autoconf.patch \
+"
+
+inherit autotools gettext
+
+EXTRA_OECONF += "PERL='${USRBINPATH}/env perl'"
+
+SRC_URI[md5sum] = "3acc242b829adacabcaf28533f049afd"
+SRC_URI[sha256sum] = "6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb"
+
+RDEPENDS_${PN} = "perl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-Fix-compilation-on-aarch64.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-Fix-compilation-on-aarch64.patch
deleted file mode 100644
index 6c2f64e..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-Fix-compilation-on-aarch64.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From d9e4dc750dc45e42b482d744829254a3672c11b3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Oct 2016 00:24:08 +0000
-Subject: [PATCH 1/3] Fix compilation on aarch64
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- arch.h     | 2 +-
- hwaccess.c | 2 +-
- hwaccess.h | 6 +++---
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
-Index: flashrom-0.9.6.1/arch.h
-===================================================================
---- flashrom-0.9.6.1.orig/arch.h
-+++ flashrom-0.9.6.1/arch.h
-@@ -27,7 +27,7 @@
- #define __FLASHROM_ARCH__ "mips"
- #elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
- #define __FLASHROM_ARCH__ "ppc"
--#elif defined(__arm__)
-+#elif defined(__arm__) || defined(__aarch64__)
- #define __FLASHROM_ARCH__ "arm"
- #endif
- __FLASHROM_ARCH__
-Index: flashrom-0.9.6.1/hwaccess.c
-===================================================================
---- flashrom-0.9.6.1.orig/hwaccess.c
-+++ flashrom-0.9.6.1/hwaccess.c
-@@ -121,7 +121,7 @@ int rget_io_perms(void)
- 	return 0;
- }
- 
--#elif defined (__arm__)
-+#elif defined (__arm__) || defined (__aarch64__)
- 
- static inline void sync_primitive(void)
- {
-Index: flashrom-0.9.6.1/hwaccess.h
-===================================================================
---- flashrom-0.9.6.1.orig/hwaccess.h
-+++ flashrom-0.9.6.1/hwaccess.h
-@@ -68,8 +68,8 @@
- #error Little-endian PowerPC #defines are unknown
- #endif
- 
--#elif defined (__arm__)
--#if defined (__ARMEL__)
-+#elif defined (__arm__) || defined (__aarch64__)
-+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- #define __FLASHROM_LITTLE_ENDIAN__ 1
- #else
- #error Big-endian ARM #defines are unknown
-@@ -337,7 +337,7 @@ int libpayload_wrmsr(int addr, msr_t msr
- 
- /* PCI port I/O is not yet implemented on MIPS. */
- 
--#elif defined(__arm__)
-+#elif defined(__arm__) || defined (__aarch64__)
- 
- /* Non memory mapped I/O is not supported on ARM. */
- 
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
new file mode 100644
index 0000000..51397dc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-Remove-undefined-behavior.patch
@@ -0,0 +1,82 @@
+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-ichspi.c-Fix-build-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-ichspi.c-Fix-build-with-clang.patch
deleted file mode 100644
index ff16f0b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-ichspi.c-Fix-build-with-clang.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a2f603c54013cd0b04bb0103dc615644f315d5e8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 15 Nov 2016 17:39:24 +0000
-Subject: [PATCH] ichspi.c: Fix build with clang
-
-ichspi.c:1130:24: error: duplicate 'const' declaration specifier [-Werror,-Wduplicate-decl-specifier]
-        static const uint32_t const dec_berase[4] = {
-                              ^
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ichspi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ichspi.c b/ichspi.c
-index 0223ae3..e47aebd 100644
---- a/ichspi.c
-+++ b/ichspi.c
-@@ -1127,7 +1127,7 @@ static void ich_hwseq_set_addr(uint32_t addr)
- static uint32_t ich_hwseq_get_erase_block_size(unsigned int addr)
- {
- 	uint8_t enc_berase;
--	static const uint32_t const dec_berase[4] = {
-+	static const uint32_t dec_berase[4] = {
- 		256,
- 		4 * 1024,
- 		8 * 1024,
--- 
-1.9.1
-
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
new file mode 100644
index 0000000..4170fef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0001-spi-Define-_XOPEN_SOURCE-to-enable-ffs-libc-API.patch
@@ -0,0 +1,28 @@
+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/0002-Disable-Wtautological-pointer-compare-when-using-cla.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0002-Disable-Wtautological-pointer-compare-when-using-cla.patch
deleted file mode 100644
index aec11bf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0002-Disable-Wtautological-pointer-compare-when-using-cla.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 9be0d152dfe8ac0f9b665d61aeb3f99dae533e0f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Oct 2016 00:25:09 +0000
-Subject: [PATCH 2/3] Disable Wtautological-pointer-compare when using clang
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- flashrom.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/flashrom.c b/flashrom.c
-index 04e9934..bf49104 100644
---- a/flashrom.c
-+++ b/flashrom.c
-@@ -1569,6 +1569,9 @@ int selfcheck(void)
- 	 * For 'flashchips' we check the first element to be non-null. In the
- 	 * other cases there exist use cases where the first element can be
- 	 * null. */
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Wtautological-pointer-compare"
-+
- 	if (flashchips == NULL || flashchips[0].vendor == NULL) {
- 		msg_gerr("Flashchips table miscompilation!\n");
- 		ret = 1;
-@@ -1602,6 +1605,7 @@ int selfcheck(void)
- 		msg_gerr("Known laptops table does not exist!\n");
- 		ret = 1;
- 	}
-+#pragma clang diagnostic pop
- #endif
- 	return ret;
- }
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0003-remove-duplicate-const-qualifiers.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0003-remove-duplicate-const-qualifiers.patch
deleted file mode 100644
index 99283d3..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/0003-remove-duplicate-const-qualifiers.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 42ec9bd51e60aa38fe6e78f644e742d6989b6683 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Oct 2016 00:25:23 +0000
-Subject: [PATCH 3/3] remove duplicate const qualifiers
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- bitbang_spi.c  | 12 ++++++------
- dummyflasher.c |  2 +-
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/bitbang_spi.c b/bitbang_spi.c
-index 11d2de1..508cf45 100644
---- a/bitbang_spi.c
-+++ b/bitbang_spi.c
-@@ -26,33 +26,33 @@
- #include "spi.h"
- 
- /* Note that CS# is active low, so val=0 means the chip is active. */
--static void bitbang_spi_set_cs(const const struct bitbang_spi_master *master, int val)
-+static void bitbang_spi_set_cs(const struct bitbang_spi_master *master, int val)
- {
- 	master->set_cs(val);
- }
- 
--static void bitbang_spi_set_sck(const const struct bitbang_spi_master *master, int val)
-+static void bitbang_spi_set_sck(const struct bitbang_spi_master *master, int val)
- {
- 	master->set_sck(val);
- }
- 
--static void bitbang_spi_set_mosi(const const struct bitbang_spi_master *master, int val)
-+static void bitbang_spi_set_mosi(const struct bitbang_spi_master *master, int val)
- {
- 	master->set_mosi(val);
- }
- 
--static int bitbang_spi_get_miso(const const struct bitbang_spi_master *master)
-+static int bitbang_spi_get_miso(const struct bitbang_spi_master *master)
- {
- 	return master->get_miso();
- }
- 
--static void bitbang_spi_request_bus(const const struct bitbang_spi_master *master)
-+static void bitbang_spi_request_bus(const struct bitbang_spi_master *master)
- {
- 	if (master->request_bus)
- 		master->request_bus();
- }
- 
--static void bitbang_spi_release_bus(const const struct bitbang_spi_master *master)
-+static void bitbang_spi_release_bus(const struct bitbang_spi_master *master)
- {
- 	if (master->release_bus)
- 		master->release_bus();
-diff --git a/dummyflasher.c b/dummyflasher.c
-index 66d0df0..d0de41c 100644
---- a/dummyflasher.c
-+++ b/dummyflasher.c
-@@ -66,7 +66,7 @@ int spi_ignorelist_size = 0;
- static uint8_t emu_status = 0;
- 
- /* A legit complete SFDP table based on the MX25L6436E (rev. 1.8) datasheet. */
--static const uint8_t const sfdp_table[] = {
-+static const uint8_t sfdp_table[] = {
- 	0x53, 0x46, 0x44, 0x50, // @0x00: SFDP signature
- 	0x00, 0x01, 0x01, 0xFF, // @0x04: revision 1.0, 2 headers
- 	0x00, 0x00, 0x01, 0x09, // @0x08: JEDEC SFDP header rev. 1.0, 9 DW long
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/sst26.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/sst26.patch
new file mode 100644
index 0000000..46a0152
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom/sst26.patch
@@ -0,0 +1,198 @@
+--- flashrom-0.9.9.orig/chipdrivers.h
++++ flashrom-0.9.9/chipdrivers.h
+@@ -103,6 +103,7 @@
+ int spi_prettyprint_status_register_sst25(struct flashctx *flash);
+ int spi_prettyprint_status_register_sst25vf016(struct flashctx *flash);
+ int spi_prettyprint_status_register_sst25vf040b(struct flashctx *flash);
++int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash);
+ 
+ /* sfdp.c */
+ int probe_spi_sfdp(struct flashctx *flash);
+--- flashrom-0.9.9.orig/flashchips.c
++++ flashrom-0.9.9/flashchips.c
+@@ -12564,6 +12564,120 @@
+ 
+ 	{
+ 		.vendor		= "SST",
++		.name		= "SST26VF016B(A)",
++		.bustype	= BUS_SPI,
++		.manufacture_id	= SST_ID,
++		.model_id	= SST_SST26VF016B,
++		.total_size	= 2048,
++		.page_size	= 256,
++		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_OTP,
++		.tested		= TEST_OK_PREW,
++		.probe		= probe_spi_rdid,
++		.probe_timing	= TIMING_ZERO,
++		.block_erasers	=
++		{
++			{
++				.eraseblocks = { {4 * 1024, 512} },
++				.block_erase = spi_block_erase_20,
++			}, {
++				.eraseblocks = {
++					{8 * 1024, 4},
++					{32 * 1024, 1},
++					{64 * 1024, 30},
++					{32 * 1024, 1},
++					{8 * 1024, 4},
++				},
++				.block_erase = spi_block_erase_d8,
++			}, {
++				.eraseblocks = { {2 * 1024 * 1024, 1} },
++				.block_erase = spi_block_erase_c7,
++			},
++		},
++		.printlock	= spi_prettyprint_status_register_plain, /* TODO: improve */
++		.unlock		= spi_disable_blockprotect_sst26_global_unprotect,
++		.write		= spi_chip_write_256, /* Multi I/O supported */
++		.read		= spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
++		.voltage	= {2700, 3600},
++	},
++	{
++		.vendor		= "SST",
++		.name		= "SST26VF032B(A)",
++		.bustype	= BUS_SPI,
++		.manufacture_id	= SST_ID,
++		.model_id	= SST_SST26VF032B,
++		.total_size	= 4096,
++		.page_size	= 256,
++		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_OTP,
++		.tested		= TEST_UNTESTED,
++		.probe		= probe_spi_rdid,
++		.probe_timing	= TIMING_ZERO,
++		.block_erasers	=
++		{
++			{
++				.eraseblocks = { {4 * 1024, 1024} },
++				.block_erase = spi_block_erase_20,
++			}, {
++				.eraseblocks = {
++					{8 * 1024, 4},
++					{32 * 1024, 1},
++					{64 * 1024, 62},
++					{32 * 1024, 1},
++					{8 * 1024, 4},
++				},
++				.block_erase = spi_block_erase_d8,
++			}, {
++				.eraseblocks = { {4 * 1024 * 1024, 1} },
++				.block_erase = spi_block_erase_c7,
++			},
++		},
++		.printlock	= spi_prettyprint_status_register_plain, /* TODO: improve */
++		.unlock		= spi_disable_blockprotect_sst26_global_unprotect,
++		.write		= spi_chip_write_256, /* Multi I/O supported */
++		.read		= spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
++		.voltage	= {2700, 3600},
++	},
++
++
++	{
++		.vendor		= "SST",
++		.name		= "SST26VF064B(A)",
++		.bustype	= BUS_SPI,
++		.manufacture_id	= SST_ID,
++		.model_id	= SST_SST26VF064B,
++		.total_size	= 8192,
++		.page_size	= 256,
++		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_OTP,
++		.tested		= TEST_OK_PREW,
++		.probe		= probe_spi_rdid,
++		.probe_timing	= TIMING_ZERO,
++		.block_erasers	=
++		{
++			{
++				.eraseblocks = { {4 * 1024, 2048} },
++				.block_erase = spi_block_erase_20,
++			}, {
++				.eraseblocks = {
++					{8 * 1024, 4},
++					{32 * 1024, 1},
++					{64 * 1024, 126},
++					{32 * 1024, 1},
++					{8 * 1024, 4},
++				},
++				.block_erase = spi_block_erase_d8,
++			}, {
++				.eraseblocks = { {8 * 1024 * 1024, 1} },
++				.block_erase = spi_block_erase_c7,
++			},
++		},
++		.printlock	= spi_prettyprint_status_register_plain, /* TODO: improve */
++		.unlock		= spi_disable_blockprotect_sst26_global_unprotect,
++		.write		= spi_chip_write_256, /* Multi I/O supported */
++		.read		= spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
++		.voltage	= {2700, 3600},
++	},
++
++	{
++		.vendor		= "SST",
+ 		.name		= "SST25WF512",
+ 		.bustype	= BUS_SPI,
+ 		.manufacture_id	= SST_ID,
+--- flashrom-0.9.9.orig/flashchips.h
++++ flashrom-0.9.9/flashchips.h
+@@ -697,6 +697,8 @@
+ #define SST_SST25VF064C		0x254B
+ #define SST_SST26VF016		0x2601
+ #define SST_SST26VF032		0x2602
++#define SST_SST26VF016B		0x2641
++#define SST_SST26VF032B		0x2642
+ #define SST_SST26VF064B		0x2643
+ #define SST_SST27SF512		0xA4
+ #define SST_SST27SF010		0xA5
+--- flashrom-0.9.9.orig/linux_spi.c
++++ flashrom-0.9.9/linux_spi.c
+@@ -141,6 +141,16 @@
+ 	return 0;
+ }
+ 
++static void print_hex(const char *msg, const void *buf, size_t len)
++{
++        size_t i;
++	msg_pspew("%s:\n", msg);
++        for (i = 0; i < len; i++) {
++                msg_pspew(" %02x", ((uint8_t *)buf)[i]);
++        }
++        msg_pspew("\n");
++}
++
+ static int linux_spi_send_command(struct flashctx *flash, unsigned int writecnt,
+ 				  unsigned int readcnt,
+ 				  const unsigned char *txbuf,
+@@ -172,10 +182,12 @@
+ 	else
+ 		iocontrol_code = SPI_IOC_MESSAGE(2);
+ 
++	print_hex("Write", txbuf, writecnt);
+ 	if (ioctl(fd, iocontrol_code, msg) == -1) {
+ 		msg_cerr("%s: ioctl: %s\n", __func__, strerror(errno));
+ 		return -1;
+ 	}
++	if (readcnt) print_hex("Got", rxbuf, readcnt);
+ 	return 0;
+ }
+ 
+--- flashrom-0.9.9.orig/spi25_statusreg.c
++++ flashrom-0.9.9/spi25_statusreg.c
+@@ -196,6 +196,19 @@
+ 	return spi_disable_blockprotect_generic(flash, 0x3C, 0, 0, 0xFF);
+ }
+ 
++int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash)
++{
++	int result = spi_write_enable(flash);
++	if (result)
++		return result;
++
++	static const unsigned char cmd[] = { 0x98 }; /* ULBPR */
++	result = spi_send_command(flash, sizeof(cmd), 0, cmd, NULL);
++	if (result)
++		msg_cerr("ULBPR failed\n");
++	return result;
++}
++
+ /* A common block protection disable that tries to unset the status register bits masked by 0x0C (BP0-1) and
+  * protected/locked by bit #7. Useful when bits 4-5 may be non-0). */
+ int spi_disable_blockprotect_bp1_srwd(struct flashctx *flash)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.6.1.bb
deleted file mode 100644
index 0edc688..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.6.1.bb
+++ /dev/null
@@ -1,22 +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"
-
-SRC_URI = "http://download.flashrom.org/releases/flashrom-${PV}.tar.bz2 \
-           file://0001-Fix-compilation-on-aarch64.patch \
-           file://0002-Disable-Wtautological-pointer-compare-when-using-cla.patch \
-           file://0003-remove-duplicate-const-qualifiers.patch \
-           file://0001-ichspi.c-Fix-build-with-clang.patch \
-           "
-
-SRC_URI[md5sum] = "407e836c0a2b17ec76583cb6809f65e5"
-SRC_URI[sha256sum] = "6f7b588cce74c90b4fe9c9c794de105de76e0323442fb5770b1aeab81e9d560a"
-
-CFLAGS += "-Wno-error=unknown-pragmas"
-
-do_install() {
-    oe_runmake PREFIX=${prefix} DESTDIR=${D} install
-}
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
new file mode 100644
index 0000000..4cdd8ad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.9.bb
@@ -0,0 +1,20 @@
+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/0001-CMakeLists.txt-Add-AUTOCONF_HOST_OPT-to-help-cross-c.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Add-AUTOCONF_HOST_OPT-to-help-cross-c.patch
deleted file mode 100644
index 539a42a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Add-AUTOCONF_HOST_OPT-to-help-cross-c.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From ceb47f37582a055bb7f253f813c435ad55c5b6eb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 10:02:50 -0700
-Subject: [PATCH 1/2] CMakeLists.txt: Add AUTOCONF_HOST_OPT to help cross
- compiling
-
-This helps in doing cross compiles for modules which are using
-GNU autoconf for build system
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b093f9a..ebf0cd7 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -290,6 +290,12 @@ else()
-   endif()
- endif()
- 
-+if("${GNU_HOST}" STREQUAL "")
-+    set(AUTOCONF_HOST_OPT "")
-+else()
-+    set(AUTOCONF_HOST_OPT "--host=${GNU_HOST}")
-+endif()
-+
- # Memory Allocator
- # ================
- if(FLB_JEMALLOC AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-@@ -299,7 +305,7 @@ if(FLB_JEMALLOC AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-   # Link to Jemalloc as an external dependency
-   ExternalProject_Add(jemalloc
-     SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc
--    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc/configure --with-lg-quantum=3 --enable-cc-silence --prefix=<INSTALL_DIR>
-+    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc/configure ${AUTOCONF_HOST_OPT} --with-lg-quantum=3 --enable-cc-silence --prefix=<INSTALL_DIR>
-     CFLAGS=-std=gnu99\ -Wall\ -pipe\ -g3\ -O3\ -funroll-loops
-     BUILD_COMMAND ${MAKE}
-     INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/
-@@ -317,7 +323,7 @@ endif()
- if(FLB_REGEX)
-   ExternalProject_Add(onigmo
-     SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/onigmo
--    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/onigmo/configure --with-pic --disable-shared --enable-static --prefix=<INSTALL_DIR>
-+    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/onigmo/configure ${AUTOCONF_HOST_OPT} --with-pic --disable-shared --enable-static --prefix=<INSTALL_DIR>
-     CFLAGS=-std=gnu99\ -Wall\ -pipe\ -g3\ -O3\ -funroll-loops
-     BUILD_COMMAND ${MAKE}
-     INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/
--- 
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0001-fluent-bit-shared-Link-with-lpthread.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0001-fluent-bit-shared-Link-with-lpthread.patch
new file mode 100644
index 0000000..e9eed24
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0001-fluent-bit-shared-Link-with-lpthread.patch
@@ -0,0 +1,35 @@
+From 62fa9bceb15a9d160dd5d624a6d46907c1019c5c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Sep 2017 17:02:55 -0700
+Subject: [PATCH] fluent-bit-shared: Link with -lpthread
+
+This fixes a reference to pthread_atfork in libfluent-bit.so
+otherwise we get undefined reference to the symbols in binaries
+which are linked with libfluent-bit.so
+
+Fixes errors like
+arm-bec-linux-gnueabi-ld: ../../bin/hello_world: hidden symbol `pthread_atfork' in /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/fluentbit/0.12.1-r0/recipe-sysroot/usr/lib/libpthread_nonshared.a(pthread_atfork.oS) is referenced by DSO
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 425a246..1264e59 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -168,7 +168,7 @@ set(FLB_DEPS
+ # Shared Library
+ if(NOT FLB_WITHOUT_SHARED_LIB)
+   add_library(fluent-bit-shared SHARED ${src})
+-  target_link_libraries(fluent-bit-shared ${FLB_DEPS})
++  target_link_libraries(fluent-bit-shared ${FLB_DEPS} -lpthread)
+   set_target_properties(fluent-bit-shared
+     PROPERTIES OUTPUT_NAME fluent-bit)
+ 
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0002-msgpack-Add-comment-for-intended-fallthrough.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0002-msgpack-Add-comment-for-intended-fallthrough.patch
deleted file mode 100644
index 35cdb18..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/0002-msgpack-Add-comment-for-intended-fallthrough.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From d95c2977da074be0d3913e94fb8fb5ed1c64404a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 10:04:03 -0700
-Subject: [PATCH 2/2] msgpack: Add comment for intended fallthrough
-
-Helps fixing build with gcc7
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/msgpack-c-0b7cabd/include/msgpack/unpack_template.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/msgpack-c-0b7cabd/include/msgpack/unpack_template.h b/lib/msgpack-c-0b7cabd/include/msgpack/unpack_template.h
-index a6dae6f..651e6c2 100644
---- a/lib/msgpack-c-0b7cabd/include/msgpack/unpack_template.h
-+++ b/lib/msgpack-c-0b7cabd/include/msgpack/unpack_template.h
-@@ -248,7 +248,7 @@ msgpack_unpack_func(int, _execute)(msgpack_unpack_struct(_context)* ctx, const c
- 
-             _fixed_trail_again:
-                 ++p;
--
-+            // fallthrough
-             default:
-                 if((size_t)(pe - p) < trail) { goto _out; }
-                 n = p;  p += trail - 1;
--- 
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/jemalloc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/jemalloc.patch
new file mode 100644
index 0000000..abaf92c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit/jemalloc.patch
@@ -0,0 +1,18 @@
+Add  --with-jemalloc-prefix=je_ so it compiles on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: fluent-bit-0.12.1/CMakeLists.txt
+===================================================================
+--- fluent-bit-0.12.1.orig/CMakeLists.txt
++++ fluent-bit-0.12.1/CMakeLists.txt
+@@ -325,7 +325,7 @@ if(FLB_JEMALLOC AND ${CMAKE_SYSTEM_NAME}
+   # Link to Jemalloc as an external dependency
+   ExternalProject_Add(jemalloc
+     SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc
+-    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc/configure ${AUTOCONF_HOST_OPT} --with-lg-quantum=3 --enable-cc-silence --prefix=<INSTALL_DIR>
++    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc/configure --with-jemalloc-prefix=je_ ${AUTOCONF_HOST_OPT} --with-lg-quantum=3 --enable-cc-silence --prefix=<INSTALL_DIR>
+     CFLAGS=-std=gnu99\ -Wall\ -pipe\ -g3\ -O3\ -funroll-loops
+     BUILD_COMMAND ${MAKE}
+     INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.11.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.11.3.bb
deleted file mode 100644
index 8d756e6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.11.3.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Fast data collector for Embedded Linux"
-HOMEPAGE = "http://fluentbit.io"
-BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
-
-SRC_URI = "http://fluentbit.io/releases/0.11/fluent-bit-${PV}.tar.gz \
-           file://0001-CMakeLists.txt-Add-AUTOCONF_HOST_OPT-to-help-cross-c.patch \
-           file://0002-msgpack-Add-comment-for-intended-fallthrough.patch \
-           "
-SRC_URI[md5sum] = "9383262339412782b80cc49e7ad15609"
-SRC_URI[sha256sum] = "eb8a85c656fa60682b0bf8dd1ad58d848cd251dab4f35a6777acd552c65b0511"
-
-S = "${WORKDIR}/fluent-bit-${PV}"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-
-DEPENDS = "zlib"
-INSANE_SKIP_${PN}-dev += "dev-elf"
-
-inherit cmake systemd
-
-EXTRA_OECMAKE = "-DGNU_HOST=${HOST_SYS}"
-
-SYSTEMD_SERVICE_${PN} = "fluent-bit.service"
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
new file mode 100644
index 0000000..e2edd09
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Fast data collector for Embedded Linux"
+HOMEPAGE = "http://fluentbit.io"
+BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
+
+SRC_URI = "http://fluentbit.io/releases/0.12/fluent-bit-${PV}.tar.gz \
+           file://jemalloc.patch \
+           file://0001-fluent-bit-shared-Link-with-lpthread.patch \
+           "
+SRC_URI[md5sum] = "6b4472cb7e7213a01425af9121576827"
+SRC_URI[sha256sum] = "8ec05365baea723033165687611b3bba3e67a77dce72e282e9f000f7acf9e37b"
+
+S = "${WORKDIR}/fluent-bit-${PV}"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+DEPENDS = "zlib"
+INSANE_SKIP_${PN}-dev += "dev-elf"
+
+inherit cmake systemd
+
+EXTRA_OECMAKE = "-DGNU_HOST=${HOST_SYS} -DFLB_ALL=ON -DFLB_TD=1"
+
+SYSTEMD_SERVICE_${PN} = "td-agent-bit.service"
+
+TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch
new file mode 100644
index 0000000..fef2bc7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch
@@ -0,0 +1,32 @@
+From d13b918a3ff8b0ebfd1e7b18b198b4b45841d720 Mon Sep 17 00:00:00 2001
+From: Andrea Galbusera <gizero@gmail.com>
+Date: Fri, 31 Jul 2015 16:42:08 +0200
+Subject: [PATCH] Makefile: remove hardcoding of CC
+
+* upgrade previous patch to avoid wiping CFLAGS. This fixes build on arm
+platforms which previously caused and issue due to -fPIC being lost
+
+Signed-off-by: Andrea Galbusera <gizero@gmail.com>
+---
+ Makefile | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 8b0f0c2..66a4317 100644
+--- a/Makefile
++++ b/Makefile
+@@ -34,11 +34,6 @@ define REDIS_TEST_CONFIG
+ endef
+ export REDIS_TEST_CONFIG
+ 
+-# Fallback to gcc when $CC is not in $PATH.
+-CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
+-OPTIMIZATION?=-O3
+-WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
+-DEBUG?= -g -ggdb
+ REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG) $(ARCH)
+ REAL_LDFLAGS=$(LDFLAGS) $(ARCH)
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb
new file mode 100644
index 0000000..fae30d7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Minimalistic C client library for Redis"
+HOMEPAGE = "http://github.com/redis/hiredis"
+LICENSE = "BSD-3-Clause"
+SECTION = "libs"
+DEPENDS = "redis"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d84d659a35c666d23233e54503aaea51"
+SRC_URI = "git://github.com/redis/hiredis;protocol=git;rev=f58dd249d6ed47a7e835463c3b04722972281dbb \
+           file://0001-Makefile-remove-hardcoding-of-CC.patch"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OEMAKE = "PREFIX=${prefix}"
+
+# By default INSTALL variable in Makefile is equal to 'cp -a', which preserves
+# ownership and causes host-user-contamination QA issue.
+# And PREFIX defaults to /usr/local.
+do_install_prepend() {
+  export INSTALL='cp -r'
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
new file mode 100644
index 0000000..5a335b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Portable Hardware Locality (hwloc) software package"
+DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \
+ provides a portable abstraction of the hierarchical topology of modern \
+ architectures."
+HOMEPAGE = "https://www.open-mpi.org/software/hwloc/"
+SECTION = "base"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b"
+
+SRC_URI = "https://www.open-mpi.org/software/${PN}/v1.11/downloads/${BP}.tar.bz2"
+SRC_URI[md5sum] = "96c34136ff416d2b13a7821c27477bed"
+SRC_URI[sha256sum] = "95d80286dfe658a3f79e2ac90698782bb36e5504f4bac1bba2394ba14dbbad24"
+
+inherit autotools pkgconfig
+
+DEPENDS += "ncurses udev zlib"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}"
+
+PACKAGECONFIG ?= "pci libxml2 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+
+PACKAGECONFIG[numactl] = "--enable-libnuma,--disable-libnuma,numactl,numactl"
+PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2,libxml2"
+PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo"
+PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess"
+
+# Split hwloc library into separate subpackage
+PACKAGES_prepend = " libhwloc "
+FILES_libhwloc += "${libdir}/libhwloc.so.*"
+RDEPENDS_${PN} += "libhwloc (= ${EXTENDPKGV})"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
new file mode 100644
index 0000000..bcfc117
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
@@ -0,0 +1,60 @@
+From cffe4767f89ea0b54b57e8bf9065a08a9c38d46e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 18 Jul 2017 21:53:00 -0400
+Subject: [PATCH] tweak install prefix
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index df16a3b..fbdfcb4 100644
+--- a/Makefile
++++ b/Makefile
+@@ -39,26 +39,26 @@ pyisomd5sum.so: $(PYOBJS)
+ install: all install-bin install-python install-devel
+ 
+ install-bin:
+-	install -d -m 0755 $(DESTDIR)/usr/bin
+-	install -d -m 0755 $(DESTDIR)/usr/share/man/man1
+-	install -m 0755 implantisomd5 $(DESTDIR)/usr/bin
+-	install -m 0755 checkisomd5 $(DESTDIR)/usr/bin
+-	install -m 0644 implantisomd5.1 $(DESTDIR)/usr/share/man/man1
+-	install -m 0644 checkisomd5.1 $(DESTDIR)/usr/share/man/man1
++	install -d -m 0755 $(DESTDIR)$(bindir)
++	install -d -m 0755 $(DESTDIR)$(mandir)/man1
++	install -m 0755 implantisomd5 $(DESTDIR)$(bindir)
++	install -m 0755 checkisomd5 $(DESTDIR)$(bindir)
++	install -m 0644 implantisomd5.1 $(DESTDIR)$(mandir)/man1
++	install -m 0644 checkisomd5.1 $(DESTDIR)$(mandir)/man1
+ 
+ install-python:
+ 	install -d -m 0755 $(DESTDIR)$(PYTHONSITEPACKAGES)
+ 	install -m 0755 pyisomd5sum.so $(DESTDIR)$(PYTHONSITEPACKAGES)
+ 
+ install-devel:
+-	install -d -m 0755 $(DESTDIR)/usr/include
+-	install -d -m 0755 $(DESTDIR)/usr/$(LIBDIR)
+-	install -d -m 0755 $(DESTDIR)/usr/share/pkgconfig
+-	install -m 0644 libimplantisomd5.h $(DESTDIR)/usr/include/
+-	install -m 0644 libcheckisomd5.h $(DESTDIR)/usr/include/
+-	install -m 0644 libimplantisomd5.a $(DESTDIR)/usr/$(LIBDIR)
+-	install -m 0644 libcheckisomd5.a $(DESTDIR)/usr/$(LIBDIR)
+-	sed "s#@VERSION@#${VERSION}#g; s#@includedir@#${DESTDIR}/usr/include#g; s#@libdir@#${DESTDIR}/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}/usr/share/pkgconfig/isomd5sum.pc
++	install -d -m 0755 $(DESTDIR)$(includedir)
++	install -d -m 0755 $(DESTDIR)$(libdir)
++	install -d -m 0755 $(DESTDIR)${datadir}/pkgconfig
++	install -m 0644 libimplantisomd5.h $(DESTDIR)$(includedir)
++	install -m 0644 libcheckisomd5.h $(DESTDIR)$(includedir)
++	install -m 0644 libimplantisomd5.a $(DESTDIR)$(libdir)
++	install -m 0644 libcheckisomd5.a $(DESTDIR)$(libdir)
++	sed "s#@VERSION@#${VERSION}#g; s#@includedir@#${DESTDIR}/usr/include#g; s#@libdir@#${DESTDIR}/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}${datadir}/pkgconfig/isomd5sum.pc
+ 
+ clean:
+ 	rm -f *.o *.so *.pyc *.a .depend *~
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0002-fix-parallel-error.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0002-fix-parallel-error.patch
new file mode 100644
index 0000000..7a33e42
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/files/0002-fix-parallel-error.patch
@@ -0,0 +1,33 @@
+From 2acce7bc8ab7711e76c7765c84a198fe38f247f3 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 18 Jul 2017 23:06:41 -0400
+Subject: [PATCH] fix parallel error
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index fbdfcb4..2ad3238 100644
+--- a/Makefile
++++ b/Makefile
+@@ -29,9 +29,11 @@ implantisomd5: implantisomd5.o libimplantisomd5.a
+ checkisomd5: checkisomd5.o libcheckisomd5.a
+ 	$(CC) $(CPPFLAGS) $(CFLAGS) checkisomd5.o libcheckisomd5.a -lpopt $(LDFLAGS) -o checkisomd5
+ 
+-libimplantisomd5.a: libimplantisomd5.a(libimplantisomd5.o md5.o utilities.o)
++libimplantisomd5.a: libimplantisomd5.o md5.o utilities.o
++	$(AR) rv $@ $^
+ 
+-libcheckisomd5.a: libcheckisomd5.a(libcheckisomd5.o md5.o utilities.o)
++libcheckisomd5.a: libcheckisomd5.o md5.o utilities.o
++	$(AR) rv $@ $^
+ 
+ pyisomd5sum.so: $(PYOBJS)
+ 	$(CC) $(CPPFLAGS) $(CFLAGS) -shared -g -fpic $(PYOBJS) $(LDFLAGS) -o pyisomd5sum.so
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb
new file mode 100644
index 0000000..815113e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Tools for taking the MD5 sum of ISO images"
+DESCRIPTION = "Tools for taking the MD5 sum of ISO images"
+
+DEPENDS = "popt python3 openssl curl popt-native"
+RDEPENDS_${PN} = "openssl curl"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master \
+           file://0001-tweak-install-prefix.patch \
+           file://0002-fix-parallel-error.patch \
+"
+
+S = "${WORKDIR}/git"
+inherit python3native
+
+EXTRA_OEMAKE += " \
+    DESTDIR='${D}' \
+    PYTHONINCLUDE='-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}' \
+    PYTHONSITEPACKAGES='${PYTHON_SITEPACKAGES_DIR}' \
+"
+
+do_install () {
+    oe_runmake install
+}
+
+PACKAGES += "${PYTHON_PN}-${PN} ${PYTHON_PN}-${PN}-dbg"
+
+FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
+FILES_${PYTHON_PN}-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug/pyisomd5sum.so"
+
+SRCREV = "69dc036d20761715b734ca9cc59ecc6dc8145026"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi-native_0.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi-native_0.9.2.bb
deleted file mode 100644
index 9b2ace9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi-native_0.9.2.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Tool for rapid CMPI providers development"
-DESCRIPTION = "\
-KonkretCMPI makes CMPI provider development easier by generating type-safe \
-concrete CIM interfaces from MOF definitions and by providing default \
-implementations for many of the provider operations."
-HOMEPAGE = "https://github.com/rnovacek/konkretcmpi"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f673270bfc350d9ce1efc8724c6c1873"
-DEPENDS = "cmake-native cmpi-bindings-native"
-
-SRC_URI = "git://github.com/rnovacek/konkretcmpi.git \
-           file://konkretcmpi-0.9.2-fix-returning-instance-from-method.patch \
-           file://0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch "
-
-SRCREV = "460e6421c16a8216d29ccd1b7490f814dab8b769"
-S = "${WORKDIR}/git"
-
-inherit native cmake
-LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
-EXTRA_OECMAKE = "-DWITH_PYTHON=ON \
-                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
-                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
-                "
-
-do_install_append() {
-    rm -rf ${D}${datadir}
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
new file mode 100644
index 0000000..342017b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
@@ -0,0 +1,38 @@
+From 45e1c4c04a126d2386446775f99084bd603016af Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Jun 2017 23:10:59 -0700
+Subject: [PATCH] drop including rpath cmake module
+
+Fixes cross compilation QA errors e.g.
+/usr/lib/libkonkret.so.0.0.1 contains probably-redundant RPATH /usr/lib [useless-rpaths]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/konkret/CMakeLists.txt | 1 -
+ src/program/CMakeLists.txt | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/src/konkret/CMakeLists.txt b/src/konkret/CMakeLists.txt
+index c2faa40..df49e11 100644
+--- a/src/konkret/CMakeLists.txt
++++ b/src/konkret/CMakeLists.txt
+@@ -8,7 +8,6 @@ set(konkret_SRCS
+     kstr.c
+     print.c
+ )
+-include(rpath)
+ include_directories(${CMPI_INCLUDE_DIR})
+ 
+ add_library(libkonkret SHARED ${konkret_SRCS})
+diff --git a/src/program/CMakeLists.txt b/src/program/CMakeLists.txt
+index afcefe5..8a4646c 100644
+--- a/src/program/CMakeLists.txt
++++ b/src/program/CMakeLists.txt
+@@ -1,4 +1,3 @@
+-include (rpath)
+ include_directories(${CMPI_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/src)
+ 
+ add_executable(konkret main.cpp)
+-- 
+2.13.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/konkretcmpi-0.9.2-fix-returning-instance-from-method.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/konkretcmpi-0.9.2-fix-returning-instance-from-method.patch
deleted file mode 100644
index b54d091..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/konkretcmpi-0.9.2-fix-returning-instance-from-method.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Port from Fedora20
-
-    | commit aca6c7f910ffe9930b5789969f0adfadd668bb46
-    | Author: Michal Minar <miminar@redhat.com>
-    | Date:   Fri Jun 20 10:50:45 2014 +0200
-    | 
-    |     Fix returning instance as an output argument from method
-    |     
-    |     Submitted By: Radek Novacek <rnovacek@redhat.com>
-
-Upstream-Status: Pending
-Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
-
-diff --git a/src/program/main.cpp b/src/program/main.cpp
-index 885dc12..9e7108a 100644
---- a/src/program/main.cpp
-+++ b/src/program/main.cpp
-@@ -506,7 +506,11 @@ static void gen_feature_decls(
- 
-             // Add sig entry [type][length][name][zero-terminator]
- 
--            KTag tag = _ktag(pd->data_type, pd->array_index, key, false, false);
-+            KTag tag;
-+            if (pd->qualifiers->has_key("EmbeddedInstance"))
-+                tag = _ktag(TOK_INSTANCE, pd->array_index, key, false, false);
-+            else
-+                tag = _ktag(pd->data_type, pd->array_index, key, false, false);
-             pack_tag(sig, tag);
-             pack_name(sig, pd->name);
-             count++;
-@@ -640,6 +644,7 @@ static void gen_param(FILE* os, MOF_Parameter* p, vector<unsigned char>& sig)
-         const char* ktn = _ktype_name(p->data_type);
- 
-         if (p->qualifiers->has_key("EmbeddedInstance")) {
-+            tag = _ktag(TOK_INSTANCE, p->array_index, false, in, out);
-             if (p->array_index)
-                 put(os, "    KInstanceA $0;\n", p->name, NULL);
-             else
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 1d8b0db..cbf0473 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
@@ -6,14 +6,15 @@
 HOMEPAGE = "https://github.com/rnovacek/konkretcmpi"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f673270bfc350d9ce1efc8724c6c1873"
-DEPENDS = "swig-native sblim-cmpi-devel python"
+DEPENDS_append_class-target = " swig-native sblim-cmpi-devel python"
+DEPENDS_append_class-native = " cmpi-bindings-native"
 
 SRC_URI = "git://github.com/rnovacek/konkretcmpi.git \
-           file://konkretcmpi-0.9.2-fix-returning-instance-from-method.patch \
            file://0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch \
+           file://0001-drop-including-rpath-cmake-module.patch \
            "
 
-SRCREV = "460e6421c16a8216d29ccd1b7490f814dab8b769"
+SRCREV = "ad28225e6eceff88417a60c1ba8896c8e40f21a7"
 S = "${WORKDIR}/git"
 
 inherit cmake
@@ -23,6 +24,8 @@
                  ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
                 "
 
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
 do_install_append() {
     rm -rf ${D}${datadir}
 }
@@ -32,3 +35,4 @@
 FILES_${PN}-python = "${libdir}/python2.7/site-packages/konkretmof.py* ${libdir}/python2.7/site-packages/_konkretmof.so"
 FILES_${PN}-python-dbg = "${libdir}/python2.7/site-packages/.debug/*"
 
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Explicitly-disable-tcmalloc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Explicitly-disable-tcmalloc.patch
deleted file mode 100644
index 4b76dd0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Explicitly-disable-tcmalloc.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From d6daac04dab4b3acf4b88f16742d1b402cdc3d83 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Wed, 1 Oct 2014 18:54:04 +0200
-Subject: [PATCH] Explicitly disable tcmalloc
-
-Without this change leveldb autodetects tcmalloc from sysroot and
-sometimes became dependant on gperftools
-
-Disable autodetection without TCMALLOC_ENABLED=true pased to make
-
-Upstream-Status: Pending
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- build_detect_platform | 16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/build_detect_platform b/build_detect_platform
-index bb76c4f..a586364 100755
---- a/build_detect_platform
-+++ b/build_detect_platform
-@@ -201,15 +201,17 @@ EOF
-         PLATFORM_LIBS="$PLATFORM_LIBS -lsnappy"
-     fi
- 
--    # Test whether tcmalloc is available
--    $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null  <<EOF
--      int main() {}
-+    if [ "$TCMALLOC_ENABLED" = "true" ]; then
-+        # Test whether tcmalloc is available
-+        $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null  <<EOF
-+          int main() {}
- EOF
--    if [ "$?" = 0 ]; then
--        PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc"
--    fi
-+        if [ "$?" = 0 ]; then
-+            PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc"
-+        fi
- 
--    rm -f $CXXOUTPUT 2>/dev/null
-+        rm -f $CXXOUTPUT 2>/dev/null
-+    fi
- fi
- 
- PLATFORM_CCFLAGS="$PLATFORM_CCFLAGS $COMMON_FLAGS"
--- 
-2.1.1
-
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-extended/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch
new file mode 100644
index 0000000..3135d4d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch
@@ -0,0 +1,34 @@
+From c85978e77725ef233543370d24e23f853f449170 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Sep 2017 17:47:02 -0700
+Subject: [PATCH] Makefile: Fix parallel build
+
+Sometimes mkdir $(SHARED_OUTDIR)/db races with compiler which is
+creating .o file in the same directory $(SHARED_OUTDIR)/db/db_bench.o
+
+Fixes error like
+
+| mkdir out-static
+| mkdir out-shared/db
+| Assembler messages:
+| Fatal error: can't create out-shared/db/db_bench.o: No such file or directory
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index f7cc7d7..51a0bcd 100644
+--- a/Makefile
++++ b/Makefile
+@@ -386,6 +386,7 @@ $(STATIC_OUTDIR)/write_batch_test:db/write_batch_test.cc $(STATIC_LIBOBJECTS) $(
+ $(STATIC_OUTDIR)/memenv_test:$(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS)
+ 	$(XCRUN) $(CXX) $(LDFLAGS) $(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS) -o $@ $(LIBS)
+ 
++$(SHARED_OUTDIR)/db/db_bench.o: | $(SHARED_OUTDIR)/db
+ $(SHARED_OUTDIR)/db_bench:$(SHARED_OUTDIR)/db/db_bench.o $(SHARED_LIBS) $(TESTUTIL)
+ 	$(XCRUN) $(CXX) $(LDFLAGS) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(SHARED_OUTDIR)/db/db_bench.o $(TESTUTIL) $(SHARED_OUTDIR)/$(SHARED_LIB3) -o $@ $(LIBS)
+ 
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-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
new file mode 100644
index 0000000..8f93cb3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
@@ -0,0 +1,37 @@
+From 5fd0918df2bb30e8f3edb2ee895d178edbf26f40 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 4 Sep 2017 22:38:03 -0700
+Subject: [PATCH 1/2] build_detect_platform: Check for __SSE4_2__
+
+just using -msse4.2 is not enough, especially with clang
+where it may accept -msse4.2 even during cross compiling
+for say arm, however the difference is that builtin defines
+wont be defined.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ build_detect_platform | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: git/build_detect_platform
+===================================================================
+--- git.orig/build_detect_platform
++++ git/build_detect_platform
+@@ -224,13 +224,13 @@ EOF
+     rm -f $CXXOUTPUT 2>/dev/null
+ 
+     # Test if gcc SSE 4.2 is supported
+-    $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -msse4.2 2>/dev/null  <<EOF
++    $CXX $CXXFLAGS -Werror -x c++ - -o $CXXOUTPUT -msse4.2 -dD -E 2>/dev/null  <<EOF
+       int main() {}
+ EOF
++    eval fgrep __SSE4_2__ $CXXOUTPUT >/dev/null 2>&1
+     if [ "$?" = 0 ]; then
+         PLATFORM_SSEFLAGS="-msse4.2"
+     fi
+-
+     rm -f $CXXOUTPUT 2>/dev/null
+ fi
+ 
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-extended/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch
new file mode 100644
index 0000000..fc708b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch
@@ -0,0 +1,43 @@
+From 1ed8cec1fcf666904bb3ebd29fc85e235b72d122 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 4 Sep 2017 22:40:49 -0700
+Subject: [PATCH 2/2] makefile: build SHARED_MEMENVLIB
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index f7cc7d7..cb42278 100644
+--- a/Makefile
++++ b/Makefile
+@@ -126,12 +126,12 @@ SHARED_VERSION_MINOR = 20
+ SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
+ SHARED_LIB2 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR)
+ SHARED_LIB3 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
+-SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3)
++SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3) $(SHARED_MEMENVLIB)
+ $(SHARED_OUTDIR)/$(SHARED_LIB1): $(SHARED_OUTDIR)/$(SHARED_LIB3)
+ 	ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB1)
+ $(SHARED_OUTDIR)/$(SHARED_LIB2): $(SHARED_OUTDIR)/$(SHARED_LIB3)
+ 	ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB2)
+-SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a
++SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.$(PLATFORM_SHARED_EXT).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
+ endif
+ 
+ $(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS)
+@@ -294,7 +294,7 @@ endif
+ 
+ $(SHARED_MEMENVLIB):$(SHARED_MEMENVOBJECTS)
+ 	rm -f $@
+-	$(AR) -rs $@ $(SHARED_MEMENVOBJECTS)
++	$(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(basename $(notdir $(SHARED_MEMENVLIB))) $(SHARED_MEMENVOBJECTS) -o $(SHARED_MEMENVLIB) $(LIBS)
+ 
+ $(STATIC_OUTDIR)/db_bench:db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL)
+ 	$(CXX) $(LDFLAGS) $(CXXFLAGS) db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS)
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb
index a6a3024..8fec89c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb
@@ -4,24 +4,34 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d"
 
-SRCREV = "803d69203a62faf50f1b77897310a3a1fcae712b"
-PV = "1.18+git${SRCPV}"
+SRCREV = "a53934a3ae1244679f812d998a4f16f2c7f309a6"
+PV = "1.20+git${SRCPV}"
 
 SRC_URI = "git://github.com/google/${BPN}.git \
-    file://0001-Explicitly-disable-tcmalloc.patch \
-"
+           file://0001-build_detect_platform-Check-for-__SSE4_2__.patch \
+           file://0002-makefile-build-SHARED_MEMENVLIB.patch \
+           file://0001-Makefile-Fix-parallel-build.patch \
+           "
 
 S = "${WORKDIR}/git"
 
+inherit utils
+
 do_compile() {
     # do not use oe_runmake. oe_runmake pass to make compilation arguments and override
     # leveldb makefile variable CFLAGS and broke leveldb build.
-    CFLAGS="${CFLAGS}" make || die
+    CFLAGS="${CFLAGS}" make ${PARALLEL_MAKE}|| die
 }
 
 do_install() {
-    install -d ${D}${libdir}
-    oe_libinstall -C ${S} -so libleveldb ${D}${libdir}
-    install -d ${D}${includedir}/leveldb
+    install -d ${D}${libdir} ${D}${bindir} ${D}${includedir}/leveldb
+    oe_libinstall -C ${B}/out-shared libleveldb ${D}${libdir}
+    oe_libinstall -C ${S}/out-static libleveldb ${D}${libdir}
+    oe_libinstall -C ${S}/out-static libmemenv ${D}${libdir}
+    install -m 0755 ${B}/out-shared/db_bench ${D}${bindir}
+    install -m 0755 ${B}/out-static/*_test ${D}${bindir}
     install -m 644 ${S}/include/leveldb/*.h ${D}${includedir}/leveldb/
 }
+
+PACKAGES =+ "${PN}-ptest"
+FILES_${PN}-ptest = "${bindir}"
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
new file mode 100644
index 0000000..914ee99
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
@@ -0,0 +1,79 @@
+From 86686ccbf43c5d9e8c8dc97c66ba09e522050e5e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 27 Jul 2017 10:06:24 +0800
+Subject: [PATCH 1/3] fix configure and compile failures
+
+1. Fix do_configure failure
+---------------------------
+|Checking header volume_key/libvolume_key.h existence and usability.
+../tmp/6tvtK.c:1:38: fatal error: volume_key/libvolume_key.h:
+No such file or directory
+| #include <volume_key/libvolume_key.h>
+|Checking header dmraid/dmraid.h existence and usability.../tmp/
+ktVJ6.c:1:27: fatal error: dmraid/dmraid.h: No such file or directory
+| #include <dmraid/dmraid.h>
+---------------------------
+We explictly add volume_key and dmraid to DEPENDS, do not need
+configure to test.
+
+2. Fix config.h not found
+Add it to configure.ac
+
+3. Correct AC_DEFINE
+...
+autoheader: warning: missing template: LIBMOUNT_NEW_ERR_API
+autoheader: Use AC_DEFINE([LIBMOUNT_NEW_ERR_API], [], [Description])
+...
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0270c99..b7c7368 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,6 +9,8 @@ AC_DISABLE_STATIC
+ AM_INIT_AUTOMAKE([foreign -Wall -Werror -Wno-syntax -Wno-portability])
+ AC_CONFIG_MACRO_DIR([m4])
+ 
++AC_CONFIG_HEADERS([config.h])
++
+ AM_PATH_PYTHON
+ 
+ AM_PROG_AR
+@@ -129,7 +131,6 @@ LIBBLOCKDEV_PKG_CHECK_MODULES([UDEV], [libudev >= 216])
+ 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])
+-       LIBBLOCKDEV_CHECK_HEADER([volume_key/libvolume_key.h], [$GLIB_CFLAGS $NSS_CFLAGS], [libvolume_key.h not available])
+       ],
+       [])
+ 
+@@ -137,10 +138,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])],
+       [])
+ 
+-AS_IF([test "x$with_dm" != "xno"],
+-      [LIBBLOCKDEV_CHECK_HEADER([dmraid/dmraid.h], [], [dmraid.h not available])],
+-      [])
+-
+ AS_IF([test "x$with_kbd" != "xno"],
+       [LIBBLOCKDEV_PKG_CHECK_MODULES([KMOD], [libkmod >= 19])],
+       [])
+@@ -154,7 +151,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],
+-             [AC_DEFINE([LIBMOUNT_NEW_ERR_API])], [])
++             [AC_DEFINE([LIBMOUNT_NEW_ERR_API], [1], [new versions of libmount has some new functions we can use])],
++             [])
+ 
+        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
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch
new file mode 100644
index 0000000..0719759
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch
@@ -0,0 +1,30 @@
+From 40dae7ea6450cb30f066da8443eabf063b5b0ad7 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 8 May 2017 02:05:40 -0400
+Subject: [PATCH 2/3] remove python2 support
+
+Only python3 is required.
+
+Upstream-Status: Inappropriate [wr-installer specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/python/gi/overrides/Makefile.am | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/src/python/gi/overrides/Makefile.am b/src/python/gi/overrides/Makefile.am
+index a2927ac..6385502 100644
+--- a/src/python/gi/overrides/Makefile.am
++++ b/src/python/gi/overrides/Makefile.am
+@@ -1,8 +1,3 @@
+-pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
+-
+-overridesdir = $(pylibdir)/gi/overrides
+-dist_overrides_DATA = BlockDev.py
+-
+ if WITH_PYTHON3
+ py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
+ py3overridesdir = $(py3libdir)/gi/overrides
+-- 
+1.8.3.1
+
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
new file mode 100644
index 0000000..3d9cb6d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
@@ -0,0 +1,470 @@
+From bda7c937ba544182a5cae2a9cf0c173e0ba268c9 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 27 Jul 2017 09:47:23 +0800
+Subject: [PATCH 3/3] remove dmraid while compiling with --with-dm
+
+Fix the following failure:
+
+...
+Perhaps you should add the directory containing `dmraid.pc'
+to the PKG_CONFIG_PATH environment variable
+No package 'dmraid' found
+...
+
+...
+../../../git/src/plugins/dm.c:24:10: fatal error: dmraid/dmraid.h: No
+such file or directory
+ #include <dmraid/dmraid.h>
+          ^~~~~~~~~~~~~~~~~
+...
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/lib/plugin_apis/dm.api          |  41 -----
+ src/plugins/Makefile.am             |   2 +-
+ src/plugins/dm.c                    | 318 ------------------------------------
+ src/plugins/dm.h                    |   5 -
+ src/python/gi/overrides/BlockDev.py |   6 -
+ 5 files changed, 1 insertion(+), 371 deletions(-)
+
+diff --git a/src/lib/plugin_apis/dm.api b/src/lib/plugin_apis/dm.api
+index a885bba..ec86b80 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);
+  */
+ 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
+- * @uuid: (allow-none): uuid of the member
+- * @major: major number of the device or -1 if not specified
+- * @minor: minor number of the device or -1 if not specified
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: (transfer full) (array zero-terminated=1): list of names of the RAID sets related to
+- * the member or %NULL in case of error
+- *
+- * One of @name, @uuid or @major:@minor has to be given.
+- */
+-gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error);
+-
+-/**
+- * bd_dm_activate_raid_set:
+- * @name: name of the DM RAID set to activate
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: whether the RAID set @name was successfully activate or not
+- */
+-gboolean bd_dm_activate_raid_set (const gchar *name, GError **error);
+-
+-/**
+- * bd_dm_deactivate_raid_set:
+- * @name: name of the DM RAID set to deactivate
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: whether the RAID set @name was successfully deactivate or not
+- */
+-gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error);
+-
+-/**
+- * bd_dm_get_raid_set_type:
+- * @name: name of the DM RAID set to get the type of
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: string representation of the @name RAID set's type
+- */
+-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
+--- a/src/plugins/Makefile.am
++++ b/src/plugins/Makefile.am
+@@ -76,7 +76,7 @@ endif
+ 
+ if WITH_DM
+ libbd_dm_la_CFLAGS = $(GLIB_CFLAGS) $(DEVMAPPER_CFLAGS) $(UDEV_CFLAGS) -Wall -Wextra -Werror
+-libbd_dm_la_LIBADD = $(GLIB_LIBS) $(DEVMAPPER_LIBS) $(UDEV_LIBS) -ldmraid ${builddir}/../utils/libbd_utils.la
++libbd_dm_la_LIBADD = $(GLIB_LIBS) $(DEVMAPPER_LIBS) $(UDEV_LIBS) ${builddir}/../utils/libbd_utils.la
+ libbd_dm_la_LDFLAGS = -L${srcdir}/../utils/ -version-info 2:0:0 -Wl,--no-undefined
+ # 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
+--- a/src/plugins/dm.c
++++ b/src/plugins/dm.c
+@@ -21,16 +21,10 @@
+ #include <unistd.h>
+ #include <blockdev/utils.h>
+ #include <libdevmapper.h>
+-#include <dmraid/dmraid.h>
+ #include <libudev.h>
+ 
+ #include "dm.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)
+-#define for_each_subset(_rs, _n) list_for_each_entry(_n, &(_rs)->sets, list)
+-#define for_each_device(_rs, _d) list_for_each_entry(_d, &(_rs)->devs, devs)
+-
+ /**
+  * 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
+     return ret;
+ }
+ 
+-/**
+- * init_dmraid_stack: (skip)
+- *
+- * Initializes the dmraid stack by creating the library context, discovering
+- * devices, raid sets, etc.
+- */
+-static struct lib_context* init_dmraid_stack (GError **error) {
+-    gint rc = 0;
+-    gchar *argv[] = {"blockdev.dmraid", NULL};
+-    struct lib_context *lc;
+-
+-    /* the code for this function was cherry-picked from the pyblock code */
+-    /* XXX: do this all just once, store global lc and provide a reinit
+-     *      function? */
+-
+-    /* initialize dmraid library context */
+-    lc = libdmraid_init (1, (gchar **)argv);
+-
+-    rc = discover_devices (lc, NULL);
+-    if (!rc) {
+-        g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
+-                     "Failed to discover devices");
+-        libdmraid_exit (lc);
+-        return NULL;
+-    }
+-    discover_raid_devices (lc, NULL);
+-
+-    if (!count_devices (lc, RAID)) {
+-        g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_DEVS,
+-                     "No RAIDs discovered");
+-        libdmraid_exit (lc);
+-        return NULL;
+-    }
+-
+-    argv[0] = NULL;
+-    if (!group_set (lc, argv)) {
+-        g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
+-                     "Failed to group_set");
+-        libdmraid_exit (lc);
+-        return NULL;
+-    }
+-
+-    return lc;
+-}
+-
+-/**
+- * raid_dev_matches_spec: (skip)
+- *
+- * Returns: whether the device specified by @sysname matches the spec given by @name,
+- *          @uuid, @major and @minor
+- */
+-static gboolean raid_dev_matches_spec (struct raid_dev *raid_dev, const gchar *name, const gchar *uuid, gint major, gint minor) {
+-    gchar const *dev_name = NULL;
+-    gchar const *dev_uuid;
+-    gchar const *major_str;
+-    gchar const *minor_str;
+-    struct udev *context;
+-    struct udev_device *device;
+-    gboolean ret = TRUE;
+-
+-    /* find the second '/' to get name (the rest of the string) */
+-    dev_name = strchr (raid_dev->di->path, '/');
+-    if (dev_name && strlen (dev_name) > 1) {
+-        dev_name++;
+-        dev_name = strchr (dev_name, '/');
+-    }
+-    if (dev_name && strlen (dev_name) > 1) {
+-        dev_name++;
+-    }
+-    else
+-        dev_name = NULL;
+-
+-    /* if we don't have the name, we cannot check any match */
+-    g_return_val_if_fail (dev_name, FALSE);
+-
+-    if (name && strcmp (dev_name, name) != 0) {
+-        return FALSE;
+-    }
+-
+-    context = udev_new ();
+-    device = udev_device_new_from_subsystem_sysname (context, "block", dev_name);
+-    dev_uuid = udev_device_get_property_value (device, "UUID");
+-    major_str = udev_device_get_property_value (device, "MAJOR");
+-    minor_str = udev_device_get_property_value (device, "MINOR");
+-
+-    if (uuid && (g_strcmp0 (uuid, "") != 0) && (g_strcmp0 (uuid, dev_uuid) != 0))
+-        ret = FALSE;
+-
+-    if (major >= 0 && (atoi (major_str) != major))
+-        ret = FALSE;
+-
+-    if (minor >= 0 && (atoi (minor_str) != minor))
+-        ret = FALSE;
+-
+-    udev_device_unref (device);
+-    udev_unref (context);
+-
+-    return ret;
+-}
+-
+-/**
+- * 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;
+-
+-    if (T_GROUP(rs) || !list_empty(&(rs->sets))) {
+-        for_each_subset (rs, subset)
+-            find_raid_sets_for_dev (name, uuid, major, minor, lc, subset, ret_sets);
+-    } else {
+-        for_each_device (rs, dev) {
+-            if (raid_dev_matches_spec (dev, name, uuid, major, minor))
+-                g_ptr_array_add (ret_sets, g_strdup (rs->name));
+-        }
+-    }
+-}
+-
+-/**
+- * bd_dm_get_member_raid_sets:
+- * @name: (allow-none): name of the member
+- * @uuid: (allow-none): uuid of the member
+- * @major: major number of the device or -1 if not specified
+- * @minor: minor number of the device or -1 if not specified
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: (transfer full) (array zero-terminated=1): list of names of the RAID sets related to
+- * the member or %NULL in case of error
+- *
+- * One of @name, @uuid or @major:@minor has to be given.
+- */
+-gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error) {
+-    guint64 i = 0;
+-    struct lib_context *lc = NULL;
+-    struct raid_set *rs = NULL;
+-    GPtrArray *ret_sets = g_ptr_array_new ();
+-    gchar **ret = NULL;
+-
+-    lc = init_dmraid_stack (error);
+-    if (!lc)
+-        /* error is already populated */
+-        return NULL;
+-
+-    for_each_raidset (lc, rs) {
+-        find_raid_sets_for_dev (name, uuid, major, minor, lc, rs, ret_sets);
+-    }
+-
+-    /* now create the return value -- NULL-terminated array of strings */
+-    ret = g_new0 (gchar*, ret_sets->len + 1);
+-    for (i=0; i < ret_sets->len; i++)
+-        ret[i] = (gchar*) g_ptr_array_index (ret_sets, i);
+-    ret[i] = NULL;
+-
+-    g_ptr_array_free (ret_sets, FALSE);
+-
+-    libdmraid_exit (lc);
+-    return ret;
+-}
+-
+-/**
+- * find_in_raid_sets: (skip)
+- *
+- * Runs @eval_fn with @data on each set (traversing recursively) and returns the
+- * first RAID set that @eval_fn returns. Thus the @eval_fn should return %NULL
+- * on all RAID sets that don't fulfill the search criteria.
+- */
+-static struct raid_set* find_in_raid_sets (struct raid_set *rs, RSEvalFunc eval_fn, gpointer data) {
+-    struct raid_set *subset = NULL;
+-    struct raid_set *ret = NULL;
+-
+-    ret = eval_fn (rs, data);
+-    if (ret)
+-        return ret;
+-
+-    if (T_GROUP(rs) || !list_empty(&(rs->sets))) {
+-        for_each_subset (rs, subset) {
+-            ret = find_in_raid_sets (subset, eval_fn, data);
+-            if (ret)
+-                return ret;
+-        }
+-    }
+-
+-    return ret;
+-}
+-
+-static struct raid_set* rs_matches_name (struct raid_set *rs, gpointer *name_data) {
+-    gchar *name = (gchar*) name_data;
+-
+-    if (g_strcmp0 (rs->name, name) == 0)
+-        return rs;
+-    else
+-        return NULL;
+-}
+-
+-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 raid_set *match_rs = NULL;
+-
+-    lc = init_dmraid_stack (error);
+-    if (!lc)
+-        /* error is already populated */
+-        return FALSE;
+-
+-    for_each_raidset (lc, iter_rs) {
+-        match_rs = find_in_raid_sets (iter_rs, (RSEvalFunc)rs_matches_name, (gchar *)name);
+-        if (match_rs)
+-            break;
+-    }
+-
+-    if (!match_rs) {
+-        g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_EXIST,
+-                     "RAID set %s doesn't exist", name);
+-        libdmraid_exit (lc);
+-        return FALSE;
+-    }
+-
+-    rc = change_set (lc, action, match_rs);
+-    if (!rc) {
+-        g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
+-                     "Failed to activate the RAID set '%s'", name);
+-        libdmraid_exit (lc);
+-        return FALSE;
+-    }
+-
+-    libdmraid_exit (lc);
+-    return TRUE;
+-}
+-
+-/**
+- * bd_dm_activate_raid_set:
+- * @name: name of the DM RAID set to activate
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: whether the RAID set @name was successfully activate or not
+- */
+-gboolean bd_dm_activate_raid_set (const gchar *name, GError **error) {
+-    guint64 progress_id = 0;
+-    gchar *msg = NULL;
+-    gboolean ret = FALSE;
+-
+-    msg = g_strdup_printf ("Activating DM RAID set '%s'", name);
+-    progress_id = bd_utils_report_started (msg);
+-    g_free (msg);
+-    ret = change_set_by_name (name, A_ACTIVATE, error);
+-    bd_utils_report_finished (progress_id, "Completed");
+-    return ret;
+-}
+-
+-/**
+- * bd_dm_deactivate_raid_set:
+- * @name: name of the DM RAID set to deactivate
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: whether the RAID set @name was successfully deactivate or not
+- */
+-gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error) {
+-    guint64 progress_id = 0;
+-    gchar *msg = NULL;
+-    gboolean ret = FALSE;
+-
+-    msg = g_strdup_printf ("Deactivating DM RAID set '%s'", name);
+-    progress_id = bd_utils_report_started (msg);
+-    g_free (msg);
+-    ret = change_set_by_name (name, A_DEACTIVATE, error);
+-    bd_utils_report_finished (progress_id, "Completed");
+-    return ret;
+-}
+-
+-/**
+- * bd_dm_get_raid_set_type:
+- * @name: name of the DM RAID set to get the type of
+- * @error: (out): variable to store error (if any)
+- *
+- * Returns: string representation of the @name RAID set's type
+- */
+-gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error) {
+-    struct lib_context *lc;
+-    struct raid_set *iter_rs;
+-    struct raid_set *match_rs = NULL;
+-    const gchar *type = NULL;
+-
+-    lc = init_dmraid_stack (error);
+-    if (!lc)
+-        /* error is already populated */
+-        return NULL;
+-
+-    for_each_raidset (lc, iter_rs) {
+-        match_rs = find_in_raid_sets (iter_rs, (RSEvalFunc)rs_matches_name, (gchar *)name);
+-        if (match_rs)
+-            break;
+-    }
+-
+-    if (!match_rs) {
+-        g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_EXIST,
+-                     "RAID set %s doesn't exist", name);
+-        libdmraid_exit (lc);
+-        return NULL;
+-    }
+-
+-    type = get_set_type (lc, match_rs);
+-    if (!type) {
+-        g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
+-                     "Failed to get RAID set's type");
+-        libdmraid_exit (lc);
+-        return NULL;
+-    }
+-
+-    libdmraid_exit (lc);
+-    return g_strdup (type);
+-}
+diff --git a/src/plugins/dm.h b/src/plugins/dm.h
+index 859fb80..80acd49 100644
+--- a/src/plugins/dm.h
++++ b/src/plugins/dm.h
+@@ -1,5 +1,4 @@
+ #include <glib.h>
+-#include <dmraid/dmraid.h>
+ 
+ #ifndef BD_DM
+ #define BD_DM
+@@ -35,9 +34,5 @@ gboolean bd_dm_remove (const gchar *map_name, GError **error);
+ 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_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);
+-gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error);
+ 
+ #endif  /* BD_DM */
+diff --git a/src/python/gi/overrides/BlockDev.py b/src/python/gi/overrides/BlockDev.py
+index fb3ffb4..eed0a38 100644
+--- a/src/python/gi/overrides/BlockDev.py
++++ b/src/python/gi/overrides/BlockDev.py
+@@ -233,12 +233,6 @@ def dm_create_linear(map_name, device, length, uuid=None):
+     return _dm_create_linear(map_name, device, length, uuid)
+ __all__.append("dm_create_linear")
+ 
+-_dm_get_member_raid_sets = BlockDev.dm_get_member_raid_sets
+-@override(BlockDev.dm_get_member_raid_sets)
+-def dm_get_member_raid_sets(name=None, uuid=None, major=-1, minor=-1):
+-    return _dm_get_member_raid_sets(name, uuid, major, minor)
+-__all__.append("dm_get_member_raid_sets")
+-
+ 
+ _loop_setup = BlockDev.loop_setup
+ @override(BlockDev.loop_setup)
+-- 
+1.8.3.1
+
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
new file mode 100644
index 0000000..f18b569
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
@@ -0,0 +1,50 @@
+From 59fbd57acd1df25b1972a131dc6a77a4fe147729 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 27 Jul 2017 10:45:02 +0800
+Subject: [PATCH] fix compile failure against musl C library
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/plugins/crypto.c | 2 +-
+ src/plugins/part.c   | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
+index 8fbce4f..66e11e5 100644
+--- a/src/plugins/crypto.c
++++ b/src/plugins/crypto.c
+@@ -22,7 +22,7 @@
+ #include <libcryptsetup.h>
+ #include <nss.h>
+ #include <volume_key/libvolume_key.h>
+-#include <sys/fcntl.h>
++#include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <linux/random.h>
+ #include <locale.h>
+diff --git a/src/plugins/part.c b/src/plugins/part.c
+index 12d2ef7..3afe297 100644
+--- a/src/plugins/part.c
++++ b/src/plugins/part.c
+@@ -25,6 +25,7 @@
+ #include <inttypes.h>
+ #include <unistd.h>
+ #include <sys/file.h>
++#include <fcntl.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,
+         real_flags |= 0x4000000000000000; /* 1 << 62 */
+     if (flags & BD_PART_FLAG_GPT_NO_AUTOMOUNT)
+         real_flags |= 0x8000000000000000; /* 1 << 63 */
+-    mask_str = g_strdup_printf ("%.16"__PRI64_PREFIX"x", real_flags);
++    mask_str = g_strdup_printf ("%.16"__PRI64"x", real_flags);
+ 
+     args[2] = g_strdup_printf ("%d:=:%s", part_num, mask_str);
+     g_free (mask_str);
+-- 
+1.8.3.1
+
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
new file mode 100644
index 0000000..3818936
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
@@ -0,0 +1,111 @@
+From 9b4a7a4d0653b627d747e00d6b3ada2990caa1d3 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 9 Aug 2017 13:57:57 +0800
+Subject: [PATCH] fix a clang compiling issue
+
+[snip]
+../../../git/src/plugins/fs.c:2617:26: error: missing field 'start'
+initializer [-Werror,-Wmissing-field-initializers]
+    PedGeometry geom = {0};
+                         ^
+../../../git/src/plugins/fs.c:2618:30: error: missing field 'start'
+initializer [-Werror,-Wmissing-field-initializers]
+    PedGeometry new_geom = {0};
+[snip]
+
+Fix typo s/enum libvk_packet_format format/enum libvk_secret secret_type/
+
+Upstream-Status: Submitted [https://github.com/storaged-project/libblockdev/pull/266]
+
+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 +-
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
+index 8fbce4f..7ee7cdc 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
+     gint ret = 0;
+     guint64 progress_id = 0;
+     gchar *msg = NULL;
+-    struct crypt_params_tcrypt params = {0};
++    struct crypt_params_tcrypt params = {NULL,0,NULL,0,NULL,NULL,NULL,0,0};
+ 
+     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) {
+     return str;
+ }
+ 
+-static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libvk_ui *ui, enum libvk_packet_format format, const gchar *out_path,
++static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libvk_ui *ui, enum libvk_secret secret_type, const gchar *out_path,
+                                         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
+     gsize bytes_written = 0;
+     GError *tmp_error = NULL;
+ 
+-    packet_data = libvk_volume_create_packet_asymmetric_with_format (volume, &packet_data_size, format, cert,
++    packet_data = libvk_volume_create_packet_asymmetric_with_format (volume, &packet_data_size, secret_type, cert,
+                                                                      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) {
+  */
+ gboolean bd_fs_vfat_resize (const gchar *device, guint64 new_size, GError **error) {
+     PedDevice *ped_dev = NULL;
+-    PedGeometry geom = {0};
+-    PedGeometry new_geom = {0};
++    PedGeometry geom = {NULL, 0, 0, 0};
++    PedGeometry new_geom = {NULL, 0, 0, 0};
+     PedFileSystem *fs = NULL;
+     PedSector start = 0;
+     PedSector length = 0;
+diff --git a/src/plugins/part.c b/src/plugins/part.c
+index 12d2ef7..d277688 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
+         return NULL;
+     }
+ 
+-    part = ped_partition_new (disk, type, NULL, geom->start, geom->end);
++    part = ped_partition_new (disk, (PedPartitionType)type, NULL, geom->start, geom->end);
+     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
+     PedPartition *ped_part = NULL;
+     const gchar *part_num_str = NULL;
+     gint part_num = 0;
+-    guint64 i = 0;
++    int i = 0;
+     gint status = 0;
+     gboolean ret = FALSE;
+     guint64 progress_id = 0;
+diff --git a/src/utils/exec.c b/src/utils/exec.c
+index 7ac44fd..0a3094c 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
+     GIOStatus io_status = G_IO_STATUS_NORMAL;
+     guint i = 0;
+     guint8 completion = 0;
+-    GPollFD fds[2] = {{0}, {0}};
++    GPollFD fds[2] = {{0,0,0}, {0,0,0}};
+     gboolean out_done = FALSE;
+     gboolean err_done = FALSE;
+     GString *stdout_data = g_string_new (NULL);
+-- 
+1.8.3.1
+
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.10.bb
new file mode 100644
index 0000000..2a92354
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.10.bb
@@ -0,0 +1,51 @@
+DESCRIPTION = "libblockdev is a C library supporting GObject introspection for manipulation of \
+block devices. It has a plugin-based architecture where each technology (like \
+LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly \
+with multiple implementations (e.g. using LVM CLI or the new LVM DBus API)."
+HOMEPAGE = "http://rhinstaller.github.io/libblockdev/"
+LICENSE = "LGPLv2+"
+SECTION = "devel/lib"
+
+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 += " \
+    cryptsetup \
+    nss \
+    volume-key \
+    libbytesize \
+    btrfs-tools \
+"
+RDEPENDS_${PN} += " \
+    lvm2 \
+"
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
+
+PACKAGECONFIG ??= "python3 lvm dm kmod parted fs"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools"
+PACKAGECONFIG[dm] = "--with-dm, --without-dm"
+PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd, kmod"
+PACKAGECONFIG[parted] = "--with-part, --without-part, parted"
+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/libexecinfo/libexecinfo_1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libexecinfo/libexecinfo_1.1.bb
index 13a38ab..d4bad38 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libexecinfo/libexecinfo_1.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libexecinfo/libexecinfo_1.1.bb
@@ -15,8 +15,7 @@
 SRC_URI[md5sum] = "8e9e81c554c1c5d735bc877448e92b91"
 SRC_URI[sha256sum] = "c9a21913e7fdac8ef6b33250b167aa1fc0a7b8a175145e26913a4c19d8a59b1f"
 
-CFLAGS += "-fno-omit-frame-pointer"
-CFLAGS += " -D_GNU_SOURCE"
+CFLAGS += "-fno-omit-frame-pointer  -D_GNU_SOURCE"
 
 do_install() {
     install -D -m 0744 ${S}/execinfo.h ${D}${includedir}/execinfo.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
index e5655b5..0c41afa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
@@ -1,4 +1,5 @@
 SUMMARY = "File locking library"
+HOMEPAGE = "http://packages.qa.debian.org/libl/liblockfile.html"
 SECTION = "libs"
 LICENSE = "LGPLv2+ & GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ac284a60d48eaa4bc811cddc377fa341"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
new file mode 100644
index 0000000..d12492f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
@@ -0,0 +1,48 @@
+From 1ea09e09ab2387c326bb7170835361ece6e25477 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 3 Aug 2015 13:43:14 +0800
+Subject: [PATCH] setup.py.in: add missing python include dir for cross
+ compiling
+
+Upstream-Status: inappropriate [oe-core specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ python/Makefile.am | 2 +-
+ python/setup.py.in | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/python/Makefile.am b/python/Makefile.am
+index abc5cd3..e35ba71 100644
+--- a/python/Makefile.am
++++ b/python/Makefile.am
+@@ -14,4 +14,4 @@ all-local:
+ 	CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-lib=.
+ 
+ install-exec-local:
+-	CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py install --prefix=${DESTDIR}${prefix}
++	CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py install --prefix=${DESTDIR}${prefix} --install-lib=${DESTDIR}/${PYTHONSITEDIR}
+diff --git a/python/setup.py.in b/python/setup.py.in
+index 6457595..d3db0e5 100755
+--- a/python/setup.py.in
++++ b/python/setup.py.in
+@@ -6,6 +6,7 @@
+ 
+ from distutils.core import setup, Extension
+ from distutils.command.build_ext import build_ext as _build_ext
++import os
+ 
+ class build_ext(_build_ext):
+     def genconstants(self, headerfile, outputfile):
+@@ -23,7 +24,7 @@ class build_ext(_build_ext):
+ 
+ pwqmodule = Extension('pwquality',
+             sources = ['pwquality.c'],
+-            include_dirs = ['../src'],
++            include_dirs = ['../src', os.path.join(os.environ['STAGING_INCDIR'], os.environ['PYTHON_DIR'])],
+             library_dirs = ['../src/.libs'],
+             libraries = ['pwquality'])
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
new file mode 100644
index 0000000..2c96063
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "Library for password quality checking and generating random passwords"
+HOMEPAGE = "https://github.com/libpwquality/libpwquality"
+SECTION = "devel/lib"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bd2f1386df813a459a0c34fde676fc2"
+
+SRCNAME = "libpwquality"
+SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2 \
+           file://add-missing-python-include-dir-for-cross.patch \
+"
+
+SRC_URI[md5sum] = "b8defcc7280a90e9400d6689c93a279c"
+SRC_URI[sha256sum] = "1de6ff046cf2172d265a2cb6f8da439d894f3e4e8157b056c515515232fade6b"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+DEPENDS = "cracklib virtual/gettext python3"
+RDEPENDS_python3-libpwquality = "${PN}"
+
+inherit autotools python3native gettext
+
+B = "${S}"
+
+export PYTHON_DIR
+export BUILD_SYS
+export HOST_SYS
+export STAGING_LIBDIR
+export STAGING_INCDIR
+
+EXTRA_OECONF += "--with-python-rev=${PYTHON_BASEVERSION} \
+                 --with-python-binary=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} \
+                 --with-pythonsitedir=${PYTHON_SITEPACKAGES_DIR} \
+                 --libdir=${libdir} \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+PACKAGECONFIG[pam] = "--enable-pam, --disable-pam, libpam"
+
+PACKAGES += "python3-libpwquality python3-libpwquality-dbg"
+FILES_${PN} += "${libdir}/security/pam_pwquality.so"
+FILES_${PN}-dbg += "${libdir}/security/.debug"
+FILES_${PN}-staticdev += "${libdir}/security/pam_pwquality.a"
+FILES_${PN}-dev += "${libdir}/security/pam_pwquality.la"
+FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
+FILES_python3-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.2.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.2.bb
index e26bb7c..574f660 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.2.bb
@@ -11,7 +11,7 @@
 
 PV .= "+git${SRCPV}"
 
-SRCREV = "0a329683a76bc6aeb36f20f2bf6b43ba0440c4dc"
+SRCREV = "608de6d59a3de0eef0fbcbd8f284acbc018daa9a"
 SRC_URI = "git://github.com/ClusterLabs/${BPN}.git \
            file://0001-Remove-runtime-check-for-CLOCK_MONOTONIC.patch \
           "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
new file mode 100644
index 0000000..9b328a1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
@@ -0,0 +1,28 @@
+From db32ba60ca75d288d3ac08b54256cb74d9e1581a Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 26 Apr 2017 03:47:58 -0400
+Subject: [PATCH 1/3] Makefile.am: remove doc and apidoc
+
+There was a failure at do_install time, so remove doc to workaround.
+
+Upstream-Status:  Inappropriate workaround
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c6ab640..fb09fc1 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,5 +1,5 @@
+ ACLOCAL_AMFLAGS = -I m4
+-SUBDIRS = po src tests doc apidoc
++SUBDIRS = po src tests
+ 
+ EXTRA_DIST = \
+     libreport.pc.in \
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
new file mode 100644
index 0000000..146510e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
@@ -0,0 +1,48 @@
+From d8c49e6a15ab28f4ca94e03b2a53ed8df63346cd Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 26 Apr 2017 03:49:45 -0400
+Subject: [PATCH 2/3] configure.ac: remove prog test of xmlto and asciidoc
+
+The prog of xmlto and asciidoc were used to generate documents,
+and since the doc module has already been disabled, so we should
+remove the prog test.
+
+Upstream-Status:  Inappropriate workaround
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 18 ------------------
+ 1 file changed, 18 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ccefe50..ed48c88 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -68,24 +68,6 @@ if test -z "$PYTHON3"; then
+     exit 1
+ fi
+ 
+-AC_PATH_PROG([ASCIIDOC], [asciidoc], [no])
+-[if test "$ASCIIDOC" = "no"]
+-[then]
+-    [echo "The asciidoc program was not found in the search path. Please ensure"]
+-    [echo "that it is installed and its directory is included in the search path."]
+-    [echo "Then run configure again before attempting to build libreport."]
+-    [exit 1]
+-[fi]
+-
+-AC_PATH_PROG([XMLTO], [xmlto], [no])
+-[if test "$XMLTO" = "no"]
+-[then]
+-    [echo "The xmlto program was not found in the search path. Please ensure"]
+-    [echo "that it is installed and its directory is included in the search path."]
+-    [echo "Then run configure again before attempting to build libreport."]
+-    [exit 1]
+-[fi]
+-
+ AC_ARG_WITH(bugzilla,
+ AS_HELP_STRING([--with-bugzilla],[use Bugzilla plugin (default is YES)]),
+ LIBREPORT_PARSE_WITH([bugzilla]))
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
new file mode 100644
index 0000000..3ad7774
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
@@ -0,0 +1,26 @@
+From 0e96d9f23b2b166e7444e7c8e0a6d4b83c2eccd7 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 26 Apr 2017 03:51:03 -0400
+Subject: [PATCH 3/3] without build plugins
+
+Upstream-Status:  Inappropriate workaround
+
+Rebase to 2.9.1
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index c15928c..bac02b1 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -8,4 +8,4 @@ if BUILD_NEWT
+ sub_dirs += report-newt
+ endif
+ 
+-SUBDIRS = include lib plugins report-python cli client-python workflows $(sub_dirs)
++SUBDIRS = include lib report-python cli client-python workflows $(sub_dirs)
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
new file mode 100644
index 0000000..9839e5a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
@@ -0,0 +1,36 @@
+From cf3b646facc19078ed29f828e36dd2e552283518 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 27 Apr 2017 02:15:02 -0400
+Subject: [PATCH] configure.ac: remove prog test of augparse
+
+The build time does not require it.
+
+Upstream-Status:  Inappropriate workaround
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c06af2d..b90f49e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -288,14 +288,6 @@ AC_ARG_WITH(augeaslenslibdir,
+                            [Directory for librepor lens (default: /usr/share/augeas/lenses)])],
+             [], [with_augeaslenslibdir="/usr/share/augeas/lenses"])
+ AC_SUBST([AUGEAS_LENS_LIB_DIR], [$with_augeaslenslibdir])
+-AC_PATH_PROG(AUGPARSE, augparse, no)
+-[if test "$AUGPARSE" = "no"]
+-[then]
+-    [echo "The augparse program was not found in the search path. Please ensure"]
+-    [echo "that it is installed and its directory is included in the search path."]
+-    [echo "Then run configure again before attempting to build libreport."]
+-    [exit 1]
+-[fi]
+ 
+ AC_ARG_WITH([defaultdumpdirmode],
+             AS_HELP_STRING([--with-defaultdumpdirmode=OCTAL-MODE],
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch
new file mode 100644
index 0000000..9770f07
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch
@@ -0,0 +1,142 @@
+From 06710ab89fc7d7a82a378289aa3fcd92d33074f2 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 27 Apr 2017 03:31:00 -0400
+Subject: [PATCH] remove python2 support
+
+We do not require python2, so remove it.
+
+Upstream-Status:  Inappropriate workaround
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac                               | 15 ---------------
+ src/client-python/reportclient/Makefile.am |  9 ---------
+ src/report-python/Makefile.am              | 19 -------------------
+ 3 files changed, 43 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index eb50382..826d0fe 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -166,15 +166,6 @@ do
+ done
+ fi dnl end NO_MANTISBT
+ 
+-AC_PATH_PROG([PYTHON_CONFIG], [python-config], [no])
+-[if test "$PYTHON_CONFIG" = "no"]
+-[then]
+-    [echo "The python-config program was not found in the search path. Please ensure"]
+-    [echo "that it is installed and its directory is included in the search path."]
+-    [echo "Then run configure again before attempting to build libreport."]
+-    [exit 1]
+-[fi]
+-
+ AC_PATH_PROG([PYTHON3_CONFIG], [python3-config], [no])
+ [if test "$PYTHON3_CONFIG" = "no"]
+ [then]
+@@ -184,9 +175,6 @@ AC_PATH_PROG([PYTHON3_CONFIG], [python3-config], [no])
+     [exit 1]
+ [fi]
+ 
+-PYTHON_CFLAGS=`python-config --cflags 2> /dev/null`
+-PYTHON_LIBS=`python-config --libs 2> /dev/null`
+-
+ PYTHON3_CFLAGS=`python3-config --cflags 2> /dev/null`
+ PYTHON3_LIBS=`python3-config --libs 2> /dev/null`
+ 
+@@ -198,9 +186,6 @@ PYTHON3_DIR=`$PYTHON3 -c "import distutils.sysconfig; \
+ PYTHON3_EXECDIR=`$PYTHON3 -c "import distutils.sysconfig; \
+     print(distutils.sysconfig.get_python_lib(1,0,prefix='$PYTHON3_EXEC_PREFIX'))"`
+ 
+-AC_SUBST(PYTHON_CFLAGS)
+-AC_SUBST(PYTHON_LIBS)
+-
+ AC_SUBST(PYTHON3_CFLAGS)
+ AC_SUBST(PYTHON3_LIBS)
+ AC_SUBST(python3dir, $PYTHON3_DIR)
+diff --git a/src/client-python/reportclient/Makefile.am b/src/client-python/reportclient/Makefile.am
+index 46ac42f..fb5216a 100644
+--- a/src/client-python/reportclient/Makefile.am
++++ b/src/client-python/reportclient/Makefile.am
+@@ -4,13 +4,10 @@ PYFILES = \
+     dnfdebuginfo.py \
+     yumdebuginfo.py
+ 
+-py2clientdir = $(pyexecdir)/reportclient
+ py3clientdir = $(py3execdir)/reportclient
+ 
+-py2client_PYTHON = $(PYFILES)
+ py3client_PYTHON = $(PYFILES)
+ 
+-py2client_LTLIBRARIES = _reportclient.la
+ py3client_LTLIBRARIES = _reportclient3.la
+ 
+ PYEXTFILES = \
+@@ -33,12 +30,6 @@ PYEXTLDFLAGS = \
+     -avoid-version \
+     -Wl,-z,relro -Wl,-z,now
+ 
+-_reportclient_la_SOURCES = $(PYEXTFILES)
+-_reportclient_la_CPPFLAGS = $(PYEXTCPPFLAGS) $(PYTHON_CFLAGS)
+-_reportclient_la_LDFLAGS = $(PYEXTLDFLAGS) \
+-    -export-symbols-regex init_reportclient
+-_reportclient_la_LIBADD = ../../lib/libreport.la
+-
+ _reportclient3_la_SOURCES = $(PYEXTFILES)
+ _reportclient3_la_CPPFLAGS = $(PYEXTCPPFLAGS) $(PYTHON3_CFLAGS)
+ _reportclient3_la_LDFLAGS = $(PYEXTLDFLAGS) \
+diff --git a/src/report-python/Makefile.am b/src/report-python/Makefile.am
+index 793cebd..241dcb7 100644
+--- a/src/report-python/Makefile.am
++++ b/src/report-python/Makefile.am
+@@ -1,12 +1,9 @@
+ PYFILES = __init__.py accountmanager.py
+ 
+-pyreportexecdir = $(pyexecdir)/report
+ py3reportexecdir = $(py3execdir)/report
+ 
+-pyreportexec_PYTHON = $(PYFILES)
+ py3reportexec_PYTHON = $(PYFILES)
+ 
+-pyreportexec_LTLIBRARIES = _pyreport.la
+ py3reportexec_LTLIBRARIES = _py3report.la
+ 
+ PYEXTFILES = \
+@@ -34,20 +31,6 @@ PYEXTLDFLAGS = \
+     -avoid-version \
+     -Wl,-z,relro -Wl,-z,now
+ 
+-_pyreport_la_SOURCES = $(PYEXTFILES)
+-
+-_pyreport_la_CPPFLAGS = \
+-    $(PYEXTCPPFLAGS) \
+-    $(PYTHON_CFLAGS)
+-
+-_pyreport_la_LDFLAGS = \
+-   $(PYEXTLDFLAGS) \
+-   -export-symbols-regex init_pyreport
+-
+-_pyreport_la_LIBADD = \
+-    ../lib/libreport.la \
+-    $(PYTHON2_LIBS)
+-
+ _py3report_la_SOURCES = $(PYEXTFILES)
+ 
+ _py3report_la_CPPFLAGS = \
+@@ -64,7 +47,6 @@ _py3report_la_LIBADD = \
+ 
+ # report compat:
+ 
+-pyreportioexecdir = $(pyexecdir)/report/io
+ py3reportioexecdir = $(py3execdir)/report/io
+ 
+ PYIOFILES = \
+@@ -73,5 +55,4 @@ PYIOFILES = \
+     io/NewtIO.py \
+     io/TextIO.py
+ 
+-pyreportioexec_PYTHON = $(PYIOFILES)
+ py3reportioexec_PYTHON = $(PYIOFILES)
+-- 
+2.8.1
+
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
new file mode 100644
index 0000000..525437b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "Libraries providing API for reporting different problems in applications \
+to different bug targets like Bugzilla, ftp, trac, etc..."
+SUMMARY = "Generic library for reporting various problems"
+HOMEPAGE = "https://abrt.readthedocs.org/"
+LICENSE = "GPLv2+"
+DEPENDS = "xmlrpc-c xmlrpc-c-native intltool-native \
+        json-c libtar libnewt libproxy rpm \
+        augeas satyr systemd gtk+3 \
+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+
+SRC_URI = "git://github.com/abrt/libreport.git;protocol=https"
+SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \
+            file://0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch \
+            file://0003-without-build-plugins.patch \
+            file://0004-configure.ac-remove-prog-test-of-augparse.patch \
+            file://0005-remove-python2-support.patch \
+"
+SRCREV = "cfff49f06d9d17e269d463ee71b3d94c8bfb0c58"
+S = "${WORKDIR}/git"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+inherit gettext autotools python3native pkgconfig
+
+RDEPENDS_python3-libreport += "${PN}"
+
+do_patch[prefuncs] += "do_gen_version"
+do_gen_version() {
+    cd ${S}
+    ./gen-version
+}
+
+PACKAGES += "python3-libreport"
+
+FILES_${PN} += "${datadir}/*"
+FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug"
+FILES_python3-libreport = "${PYTHON_SITEPACKAGES_DIR}/*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/logcheck/logcheck_1.3.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/logcheck/logcheck_1.3.17.bb
deleted file mode 100644
index ba4c2ab..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/logcheck/logcheck_1.3.17.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Analyzes log files and sends noticeable events as email"
-DESCRIPTION = "\
-Logcheck is a simple utility which is designed to allow a system administrator \
-to view the log-files which are produced upon hosts under their control. \
-It does this by mailing summaries of the log-files to them, after first \
-filtering out "normal" entries. \
-Normal entries are entries which match one of the many included regular \
-expression files contain in the database."
-SECTION = "Applications/System"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-SRC_URI = "git://git.debian.org/git/logcheck/logcheck.git"
-SRCREV = "2429e67ad875fee8a0234c64d504277b038c89cd"
-
-S = "${WORKDIR}/git"
-
-do_install() {
-    # Fix QA Issue
-    sed -i '/install -d $(DESTDIR)\/var\/lock\/logcheck/s/^/#/' Makefile
-
-    # "make install" do not install the manpages. Install them manually.
-    install -m 755 -d ${D}${mandir}/man1
-    install -m 755 -d ${D}${mandir}/man8
-    install -m 644 docs/logcheck-test.1 ${D}${mandir}/man1/
-    install -m 644 docs/logtail.8 ${D}${mandir}/man8/
-    install -m 644 docs/logtail2.8 ${D}${mandir}/man8/
-    sed -i "s/syslog/messages/" etc/logcheck.logfiles
-    sed -i "s/auth\.log/secure/" etc/logcheck.logfiles
-    install -m 755 -d ${D}${sysconfdir}/cron.d
-    install -m 644 debian/logcheck.cron.d ${D}${sysconfdir}/cron.d/logcheck
-    install -m 755 -d ${D}/var/lib/logcheck
-    oe_runmake install DESTDIR=${D}
-}
-
-RDEPENDS_${PN} = "perl"
-
-FILES_${PN} += "${datadir}/logtail"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch
new file mode 100644
index 0000000..77da333
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch
@@ -0,0 +1,59 @@
+From: Luk Claes <luk@debian.org>
+Date: Sat, 4 Jul 2009 10:54:53 +0200
+Subject: Don't reuse weak symbol optopt to fix FTBFS on mips*
+
+This patch is taken from 
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+---
+ getopt.c |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/getopt.c b/getopt.c
+index 83ce628..82e983c 100644
+--- a/getopt.c
++++ b/getopt.c
+@@ -43,7 +43,7 @@ typedef	int	ssize_t;
+ char	*optarg;
+ int	optind = 1;
+ int	opterr = 1;
+-int	optopt;
++int	optoptc;
+ 
+ static void
+ error(const char *s, int c)
+@@ -69,7 +69,7 @@ error(const char *s, int c)
+ 		*bp++ = *s++;
+ 	while (*msg)
+ 		*bp++ = *msg++;
+-	*bp++ = optopt;
++	*bp++ = optoptc;
+ 	*bp++ = '\n';
+ 	write(2, buf, bp - buf);
+ 	ac_free(buf);
+@@ -101,13 +101,13 @@ getopt(int argc, char *const argv[], const char *optstring)
+ 		}
+ 		curp = &argv[optind][1];
+ 	}
+-	optopt = curp[0] & 0377;
++	optoptc = curp[0] & 0377;
+ 	while (optstring[0]) {
+ 		if (optstring[0] == ':') {
+ 			optstring++;
+ 			continue;
+ 		}
+-		if ((optstring[0] & 0377) == optopt) {
++		if ((optstring[0] & 0377) == optoptc) {
+ 			if (optstring[1] == ':') {
+ 				if (curp[1] != '\0') {
+ 					optarg = (char *)&curp[1];
+@@ -127,7 +127,7 @@ getopt(int argc, char *const argv[], const char *optstring)
+ 					optind++;
+ 				optarg = 0;
+ 			}
+-			return optopt;
++			return optoptc;
+ 		}
+ 		optstring++;
+ 	}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch
new file mode 100644
index 0000000..6bad433
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch
@@ -0,0 +1,41 @@
+From: Hilko Bengen <bengen@debian.org>
+Date: Wed, 27 Apr 2011 00:18:42 +0200
+Subject: Patched out SSL2 support since it is no longer supported by OpenSSL.
+
+This patch is taken from
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+---
+ mailx.1   |    2 +-
+ openssl.c |    4 +---
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/mailx.1 b/mailx.1
+index 417ea04..a02e430 100644
+--- a/mailx.1
++++ b/mailx.1
+@@ -3575,7 +3575,7 @@ Only applicable if SSL/TLS support is built using OpenSSL.
+ .TP
+ .B ssl-method
+ Selects a SSL/TLS protocol version;
+-valid values are `ssl2', `ssl3', and `tls1'.
++valid values are `ssl3', and `tls1'.
+ If unset, the method is selected automatically,
+ if possible.
+ .TP
+diff --git a/openssl.c b/openssl.c
+index b4e33fc..44fe4e5 100644
+--- a/openssl.c
++++ b/openssl.c
+@@ -216,9 +216,7 @@ ssl_select_method(const char *uhp)
+ 
+ 	cp = ssl_method_string(uhp);
+ 	if (cp != NULL) {
+-		if (equal(cp, "ssl2"))
+-			method = SSLv2_client_method();
+-		else if (equal(cp, "ssl3"))
++		if (equal(cp, "ssl3"))
+ 			method = SSLv3_client_method();
+ 		else if (equal(cp, "tls1"))
+ 			method = TLSv1_client_method();
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch
new file mode 100644
index 0000000..13b73ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch
@@ -0,0 +1,25 @@
+From: Hilko Bengen <bengen@debian.org>
+Date: Sat, 14 Apr 2012 20:22:43 +0200
+Subject: Fixed Lintian warning (warning: macro `N' not defined)
+
+This patch is taken from
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+---
+ mailx.1 |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mailx.1 b/mailx.1
+index a02e430..b0723bd 100644
+--- a/mailx.1
++++ b/mailx.1
+@@ -3781,7 +3781,7 @@ you could examine the first message by giving the command:
+ .sp
+ .fi
+ which might cause
+-.N mailx
++.I mailx
+ to respond with, for example:
+ .nf
+ .sp
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch
new file mode 100644
index 0000000..13b955c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch
@@ -0,0 +1,71 @@
+From 9984ae5cb0ea0d61df1612b06952a61323c083d9 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 17 Nov 2014 11:13:38 +0100
+Subject: [PATCH 1/4] outof: Introduce expandaddr flag
+
+Document that address expansion is disabled unless the expandaddr
+binary option is set.
+
+This has been assigned CVE-2014-7844 for BSD mailx, but it is not
+a vulnerability in Heirloom mailx because this feature was documented.
+
+This patch is taken from
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+CVE: CVE-2014-7844
+---
+ mailx.1 | 14 ++++++++++++++
+ names.c |  3 +++
+ 2 files changed, 17 insertions(+)
+
+diff --git a/mailx.1 b/mailx.1
+index 70a7859..22a171b 100644
+--- a/mailx.1
++++ b/mailx.1
+@@ -656,6 +656,14 @@ but any reply returned to the machine
+ will have the system wide alias expanded
+ as all mail goes through sendmail.
+ .SS "Recipient address specifications"
++If the
++.I expandaddr
++option is not set (the default), recipient addresses must be names of
++local mailboxes or Internet mail addresses.
++.PP
++If the
++.I expandaddr
++option is set, the following rules apply:
+ When an address is used to name a recipient
+ (in any of To, Cc, or Bcc),
+ names of local mail folders
+@@ -2391,6 +2399,12 @@ and exits immediately.
+ If this option is set,
+ \fImailx\fR starts even with an empty mailbox.
+ .TP
++.B expandaddr
++Causes
++.I mailx
++to expand message recipient addresses, as explained in the section,
++Recipient address specifications.
++.TP
+ .B flipr
+ Exchanges the
+ .I Respond
+diff --git a/names.c b/names.c
+index 66e976b..c69560f 100644
+--- a/names.c
++++ b/names.c
+@@ -268,6 +268,9 @@ outof(struct name *names, FILE *fo, struct header *hp)
+ 	FILE *fout, *fin;
+ 	int ispipe;
+ 
++	if (value("expandaddr") == NULL)
++		return names;
++
+ 	top = names;
+ 	np = names;
+ 	time(&now);
+-- 
+1.9.3
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch
new file mode 100644
index 0000000..8cdbfd8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch
@@ -0,0 +1,79 @@
+From e34e2ac67b80497080ebecccec40c3b61456167d Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 17 Nov 2014 11:14:06 +0100
+Subject: [PATCH 2/4] unpack: Disable option processing for email addresses
+ when calling sendmail
+
+This patch is taken from
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+---
+ extern.h  | 2 +-
+ names.c   | 8 ++++++--
+ sendout.c | 2 +-
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/extern.h b/extern.h
+index 6b85ba0..8873fe8 100644
+--- a/extern.h
++++ b/extern.h
+@@ -396,7 +396,7 @@ struct name *outof(struct name *names, FILE *fo, struct header *hp);
+ int is_fileaddr(char *name);
+ struct name *usermap(struct name *names);
+ struct name *cat(struct name *n1, struct name *n2);
+-char **unpack(struct name *np);
++char **unpack(struct name *smopts, struct name *np);
+ struct name *elide(struct name *names);
+ int count(struct name *np);
+ struct name *delete_alternates(struct name *np);
+diff --git a/names.c b/names.c
+index c69560f..45bbaed 100644
+--- a/names.c
++++ b/names.c
+@@ -549,7 +549,7 @@ cat(struct name *n1, struct name *n2)
+  * Return an error if the name list won't fit.
+  */
+ char **
+-unpack(struct name *np)
++unpack(struct name *smopts, struct name *np)
+ {
+ 	char **ap, **top;
+ 	struct name *n;
+@@ -564,7 +564,7 @@ unpack(struct name *np)
+ 	 * the terminating 0 pointer.  Additional spots may be needed
+ 	 * to pass along -f to the host mailer.
+ 	 */
+-	extra = 2;
++	extra = 3 + count(smopts);
+ 	extra++;
+ 	metoo = value("metoo") != NULL;
+ 	if (metoo)
+@@ -581,6 +581,10 @@ unpack(struct name *np)
+ 		*ap++ = "-m";
+ 	if (verbose)
+ 		*ap++ = "-v";
++	for (; smopts != NULL; smopts = smopts->n_flink)
++		if ((smopts->n_type & GDEL) == 0)
++			*ap++ = smopts->n_name;
++	*ap++ = "--";
+ 	for (; n != NULL; n = n->n_flink)
+ 		if ((n->n_type & GDEL) == 0)
+ 			*ap++ = n->n_name;
+diff --git a/sendout.c b/sendout.c
+index 7b7f2eb..c52f15d 100644
+--- a/sendout.c
++++ b/sendout.c
+@@ -835,7 +835,7 @@ start_mta(struct name *to, struct name *mailargs, FILE *input,
+ #endif	/* HAVE_SOCKETS */
+ 
+ 	if ((smtp = value("smtp")) == NULL) {
+-		args = unpack(cat(mailargs, to));
++		args = unpack(mailargs, to);
+ 		if (debug || value("debug")) {
+ 			printf(catgets(catd, CATSET, 181,
+ 					"Sendmail arguments:"));
+-- 
+1.9.3
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch
new file mode 100644
index 0000000..5558d86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch
@@ -0,0 +1,113 @@
+From 2bae8ecf04ec2ba6bb9f0af5b80485dd0edb427d Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 17 Nov 2014 12:48:25 +0100
+Subject: [PATCH 3/4] fio.c: Unconditionally require wordexp support
+
+This patch is taken from
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+---
+ fio.c | 67 +++++--------------------------------------------------------------
+ 1 file changed, 5 insertions(+), 62 deletions(-)
+
+diff --git a/fio.c b/fio.c
+index 65e8f10..1529236 100644
+--- a/fio.c
++++ b/fio.c
+@@ -43,12 +43,15 @@ static char sccsid[] = "@(#)fio.c	2.76 (gritter) 9/16/09";
+ #endif /* not lint */
+ 
+ #include "rcv.h"
++
++#ifndef HAVE_WORDEXP
++#error wordexp support is required
++#endif
++
+ #include <sys/stat.h>
+ #include <sys/file.h>
+ #include <sys/wait.h>
+-#ifdef	HAVE_WORDEXP
+ #include <wordexp.h>
+-#endif	/* HAVE_WORDEXP */
+ #include <unistd.h>
+ 
+ #if defined (USE_NSS)
+@@ -481,7 +484,6 @@ next:
+ static char *
+ globname(char *name)
+ {
+-#ifdef	HAVE_WORDEXP
+ 	wordexp_t we;
+ 	char *cp;
+ 	sigset_t nset;
+@@ -527,65 +529,6 @@ globname(char *name)
+ 	}
+ 	wordfree(&we);
+ 	return cp;
+-#else	/* !HAVE_WORDEXP */
+-	char xname[PATHSIZE];
+-	char cmdbuf[PATHSIZE];		/* also used for file names */
+-	int pid, l;
+-	char *cp, *shell;
+-	int pivec[2];
+-	extern int wait_status;
+-	struct stat sbuf;
+-
+-	if (pipe(pivec) < 0) {
+-		perror("pipe");
+-		return name;
+-	}
+-	snprintf(cmdbuf, sizeof cmdbuf, "echo %s", name);
+-	if ((shell = value("SHELL")) == NULL)
+-		shell = SHELL;
+-	pid = start_command(shell, 0, -1, pivec[1], "-c", cmdbuf, NULL);
+-	if (pid < 0) {
+-		close(pivec[0]);
+-		close(pivec[1]);
+-		return NULL;
+-	}
+-	close(pivec[1]);
+-again:
+-	l = read(pivec[0], xname, sizeof xname);
+-	if (l < 0) {
+-		if (errno == EINTR)
+-			goto again;
+-		perror("read");
+-		close(pivec[0]);
+-		return NULL;
+-	}
+-	close(pivec[0]);
+-	if (wait_child(pid) < 0 && WTERMSIG(wait_status) != SIGPIPE) {
+-		fprintf(stderr, catgets(catd, CATSET, 81,
+-				"\"%s\": Expansion failed.\n"), name);
+-		return NULL;
+-	}
+-	if (l == 0) {
+-		fprintf(stderr, catgets(catd, CATSET, 82,
+-					"\"%s\": No match.\n"), name);
+-		return NULL;
+-	}
+-	if (l == sizeof xname) {
+-		fprintf(stderr, catgets(catd, CATSET, 83,
+-				"\"%s\": Expansion buffer overflow.\n"), name);
+-		return NULL;
+-	}
+-	xname[l] = 0;
+-	for (cp = &xname[l-1]; *cp == '\n' && cp > xname; cp--)
+-		;
+-	cp[1] = '\0';
+-	if (strchr(xname, ' ') && stat(xname, &sbuf) < 0) {
+-		fprintf(stderr, catgets(catd, CATSET, 84,
+-				"\"%s\": Ambiguous.\n"), name);
+-		return NULL;
+-	}
+-	return savestr(xname);
+-#endif	/* !HAVE_WORDEXP */
+ }
+ 
+ /*
+-- 
+1.9.3
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch
new file mode 100644
index 0000000..ae14b8a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch
@@ -0,0 +1,31 @@
+From 73fefa0c1ac70043ec84f2d8b8f9f683213f168d Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 17 Nov 2014 13:11:32 +0100
+Subject: [PATCH 4/4] globname: Invoke wordexp with WRDE_NOCMD (CVE-2004-2771)
+
+This patch is taken from
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+CVE: CVE-2004-2771
+---
+ fio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fio.c b/fio.c
+index 1529236..774a204 100644
+--- a/fio.c
++++ b/fio.c
+@@ -497,7 +497,7 @@ globname(char *name)
+ 	sigemptyset(&nset);
+ 	sigaddset(&nset, SIGCHLD);
+ 	sigprocmask(SIG_BLOCK, &nset, NULL);
+-	i = wordexp(name, &we, 0);
++	i = wordexp(name, &we, WRDE_NOCMD);
+ 	sigprocmask(SIG_UNBLOCK, &nset, NULL);
+ 	switch (i) {
+ 	case 0:
+-- 
+1.9.3
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch
new file mode 100644
index 0000000..2b59914
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch
@@ -0,0 +1,38 @@
+Description: Sendmail is at /usr/sbin/sendmail
+ As per Debian Policy §11.6
+Author: Ryan Kavanagh <rak@debian.org>
+Origin: Debian
+Forwarded: no
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: heirloom-mailx-12.5/Makefile
+===================================================================
+This patch is taken from
+ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
+
+Upstream-Status: Inappropriate [upstream is dead]
+
+--- heirloom-mailx-12.5.orig/Makefile	2011-04-26 17:23:22.000000000 -0400
++++ heirloom-mailx-12.5/Makefile	2015-01-27 13:20:04.733542801 -0500
+@@ -13,7 +13,7 @@
+ 
+ MAILRC		= $(SYSCONFDIR)/nail.rc
+ MAILSPOOL	= /var/mail
+-SENDMAIL	= /usr/lib/sendmail
++SENDMAIL	= /usr/sbin/sendmail
+ 
+ DESTDIR		=
+ 
+Index: heirloom-mailx-12.5/mailx.1
+===================================================================
+--- heirloom-mailx-12.5.orig/mailx.1	2015-01-27 13:18:49.000000000 -0500
++++ heirloom-mailx-12.5/mailx.1	2015-01-27 13:20:32.382336867 -0500
+@@ -4922,7 +4922,7 @@
+ which just acts as a proxy.
+ .PP
+ \fIMailx\fR immediately contacts the SMTP server (or
+-.IR \%/usr/lib/sendmail )
++.IR \%/usr/sbin/sendmail )
+ even when operating in
+ .I disconnected
+ mode.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch
new file mode 100644
index 0000000..b74fd04
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch
@@ -0,0 +1,46 @@
+krb5 support is autodetected from sysroot making builds undeterministic
+feel free to improve this to support explicitly enabling/disabling it
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+--- a/makeconfig	2013-07-21 15:06:11.177792334 +0200
++++ b/makeconfig	2013-07-21 15:07:20.028793994 +0200
+@@ -424,36 +424,6 @@
+ }
+ !
+ 
+-<$tmp2.c link_check gssapi 'for GSSAPI in libgss' \
+-		'#define USE_GSSAPI' '-lgss' ||
+-	<$tmp2.c link_check gssapi 'for GSSAPI in libgssapi_krb5' \
+-			'#define USE_GSSAPI' '-lgssapi_krb5' ||
+-		link_check gssapi 'for GSSAPI in libgssapi_krb5, old-style' \
+-				'#define USE_GSSAPI
+-#define GSSAPI_OLD_STYLE' '-lgssapi_krb5' <<\! || \
+-			link_check gssapi 'for GSSAPI in libgssapi' \
+-				'#define USE_GSSAPI
+-#define	GSSAPI_REG_INCLUDE' '-lgssapi' <<\%
+-#include <gssapi/gssapi.h>
+-#include <gssapi/gssapi_generic.h>
+-
+-int main(void)
+-{
+-	gss_import_name(0, 0, gss_nt_service_name, 0);
+-	gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
+-	return 0;
+-}
+-!
+-#include <gssapi.h>
+-
+-int main(void)
+-{
+-	gss_import_name(0, 0, GSS_C_NT_HOSTBASED_SERVICE, 0);
+-	gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
+-	return 0;
+-}
+-%
+-
+ cat >$tmp2.c <<\!
+ #include "config.h"
+ #ifdef HAVE_NL_LANGINFO
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
new file mode 100644
index 0000000..0a191a0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
@@ -0,0 +1,53 @@
+SUMMARY = "mailx is the traditional command-line-mode mail user agent"
+
+DESCRIPTION = "Mailx is derived from Berkeley Mail and is intended provide the \
+functionality of the POSIX mailx command with additional support \
+for MIME, IMAP, POP3, SMTP, and S/MIME."
+
+HOMEPAGE = "http://heirloom.sourceforge.net/mailx.html"
+SECTION = "console/network"
+LICENSE = "BSD & MPL-1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4202a0a62910cf94f7af8a3436a2a2dd"
+
+DEPENDS = "openssl10"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gz;name=archive \
+           file://0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch \
+           file://0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch \
+           file://0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch \
+           file://0011-outof-Introduce-expandaddr-flag.patch \
+           file://0012-unpack-Disable-option-processing-for-email-addresses.patch \
+           file://0013-fio.c-Unconditionally-require-wordexp-support.patch \
+           file://0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch \
+           file://0015-usr-sbin-sendmail.patch \
+           file://explicitly.disable.krb5.support.patch \
+          "
+
+SRC_URI[archive.md5sum] = "29a6033ef1412824d02eb9d9213cb1f2"
+SRC_URI[archive.sha256sum] = "015ba4209135867f37a0245d22235a392b8bbed956913286b887c2e2a9a421ad"
+
+# for this package we're mostly interested in tracking debian patches,
+# and not in the upstream version where all development has effectively stopped
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/h/heirloom-mailx/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
+
+S = "${WORKDIR}/heirloom-mailx-12.5"
+
+inherit autotools-brokensep
+
+CFLAGS_append = " -D_BSD_SOURCE -DDEBIAN -I${S}/EXT"
+
+# "STRIP=true" means that 'true' command will be used to 'strip' files which will achieve the effect of not stripping them
+# mailx's Makefile doesn't allow a more straightforward way to avoid stripping
+EXTRA_OEMAKE = "SENDMAIL=${sbindir}/sendmail IPv6=-DHAVE_IPv6_FUNCS PREFIX=/usr UCBINSTALL=/usr/bin/install STRIP=true"
+
+# The makeconfig can't run parallelly, otherwise the checking results
+# might be incorrect and lead to errors:
+# fio.c:56:17: fatal error: ssl.h: No such file or directory
+# #include <ssl.h>
+PARALLEL_MAKE = ""
+
+# Causes gcc to get stuck and eat all available memory in qemuarm builds
+# http://errors.yoctoproject.org/Errors/Details/20488/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
index b674439..49b7f15 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
@@ -1,4 +1,5 @@
 SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+HOMEPAGE = "http://www.mozilla.org/js/"
 LICENSE = "MPL-2.0"
 LIC_FILES_CHKSUM = "file://../../LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
 
@@ -51,6 +52,9 @@
 
 # mozjs requires autoreconf 2.13
 do_configure() {
+    export HOST_CFLAGS="${BUILD_CFLAGS}"
+    export HOST_CXXFLAGS="${BUILD_CPPFLAGS}"
+    export HOST_LDFLAGS="${BUILD_LDFLAGS}"
     ( cd ${S}
       gnu-configize --force
       mv config.guess config.sub build/autoconf )
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
new file mode 100644
index 0000000..616048f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Linux Library for low speed I/O Communication"
+HOMEPAGE = "https://github.com/intel-iot-devkit/mraa"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=66493d54e65bfc12c7983ff2e884f37f"
+
+SRCREV = "8ddbcde84e2d146bc0f9e38504d6c89c14291480"
+PV = "1.7.0-git${SRCPV}"
+
+SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http"
+
+S = "${WORKDIR}/git"
+
+# CMakeLists.txt checks the architecture, only x86 and ARM supported for now
+COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
+
+inherit cmake distutils3-base
+
+DEPENDS += "json-c"
+
+EXTRA_OECMAKE_append = " -DINSTALLTOOLS:BOOL=ON -DFIRMATA=ON -DCMAKE_SKIP_RPATH=ON"
+
+# Prepend mraa-utils to make sure bindir ends up in there
+PACKAGES =+ "${PN}-utils"
+
+FILES_${PN}-doc += "${datadir}/mraa/examples/"
+
+FILES_${PN}-utils = "${bindir}/"
+
+# 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 '' }"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
+ ${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
+
+PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN},"
+PACKAGECONFIG[nodejs] = "-DBUILDSWIGNODE=ON, -DBUILDSWIGNODE=OFF, swig-native nodejs-native,"
+PACKAGECONFIG[ft4222] = "-DUSBPLAT=ON -DFTDI4222=ON, -DUSBPLAT=OFF -DFTDI4222=OFF,, libft4222"
+
+FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}/"
+RDEPENDS_${PYTHON_PN}-${PN} += "${PYTHON_PN}"
+
+FILES_node-${PN} = "${prefix}/lib/node_modules/"
+RDEPENDS_node-${PN} += "nodejs"
+
+### Include desired language bindings ###
+PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'nodejs', 'node-${PN}', '', d)}"
+PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'python', '${PYTHON_PN}-${PN}', '', d)}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch
new file mode 100644
index 0000000..a208f97
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch
@@ -0,0 +1,37 @@
+From 52590fbf735cef3fec85a042458aa89a02c52b57 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2017 11:33:12 -0700
+Subject: [PATCH] nicstat.c: Do not define uint64_t and uint32_t
+
+Use the defines from platform
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ nicstat.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/nicstat.c b/nicstat.c
+index 83ad557..2a6e0c1 100644
+--- a/nicstat.c
++++ b/nicstat.c
+@@ -32,6 +32,7 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <ctype.h>
+@@ -88,8 +89,6 @@
+ #define	PROC_NET_BUFSIZ		(128 * 1024)
+ #define	PROC_UPTIME		"/proc/uptime"
+ /* Needs to be fixed if not built under ILP32 */
+-typedef unsigned long long	uint64_t;
+-typedef unsigned int		uint32_t;
+ extern char *optarg;
+ extern int optind, opterr, optopt;
+ #endif /* OS_LINUX */
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
index 5126a31..3875f0f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
@@ -5,7 +5,9 @@
 LICENSE = "Artistic-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4a94da2a1f918b217ef5156634fc9e0"
 
-SRC_URI = "http://softlayer-sng.dl.sourceforge.net/project/${BPN}/${BP}.tar.gz"
+SRC_URI = "http://softlayer-sng.dl.sourceforge.net/project/${BPN}/${BP}.tar.gz \
+           file://0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch \
+           "
 SRC_URI[md5sum] = "9a0b87bbc670c1e738e5b40c7afd184d"
 SRC_URI[sha256sum] = "c4cc33f8838f4523f27c3d7584eedbe59f4c587f0821612f5ac2201adc18b367"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
deleted file mode 100644
index c238200..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 336bb5a031077461ec6b2e5438738bf100f0dd2f Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Mon, 3 Aug 2015 02:37:46 +0900
-Subject: [PATCH] fix lib64 can not be shiped in 64bit target
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- CMakeLists.txt | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1ba3cd3..2411745 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -35,13 +35,6 @@ if (DEBUG)
-     add_definitions("-DDEBUG_ENABLED")
- endif (DEBUG)
- 
--# Set LIB_SUFFIX to 64 on 64bit architectures
--if(CMAKE_SIZEOF_VOID_P EQUAL 4)
--    set(LIB_SUFFIX "")
--else(CMAKE_SIZEOF_VOID_P EQUAL 4)
--    SET(LIB_SUFFIX 64)
--endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
--
- # Find OpenLMIMacros when installed in other prefix than /usr (e.g. /usr/local)
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX})
- include(OpenLMIMacros RESULT_VARIABLE LMIMACROS)
--- 
-1.8.4.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb
deleted file mode 100644
index 081bd3b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "CIM providers for network management"
-DESCRIPTION = "\
-openlmi-networking is set of CMPI providers for network management using \
-Common Information Model (CIM)."
-HOMEPAGE = "http://www.openlmi.org/"
-LICENSE = "LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
-SECTION = "System/Management"
-DEPENDS = "openlmi-providers konkretcmpi konkretcmpi-native sblim-cmpi-devel cim-schema-exper networkmanager dbus libcheck glib-2.0"
-
-SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
-           file://0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch \
-          "
-SRC_URI[md5sum] = "f20de8c76fb6a80001b14c1eb035953e"
-SRC_URI[sha256sum] = "578eaa5c65fe924b5d7aeb635509dd46443166cd6a88b019bc42646e3518a460"
-
-inherit cmake
-
-EXTRA_OECMAKE = "${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
-                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
-                "
-
-
-do_configure_prepend() {
-     export CMAKE_INSTALL_DATDIR="${STAGING_DATADIR}"
-}
-
-
-FILES_${PN} =+ "${libdir}/cmpi/libcmpiLMI_Networking.so ${prefix}/libexec*"
-FILES_${PN}-dbg =+ "${libdir}/cmpi/.debug*"
-
-PNBLACKLIST[openlmi-networking] ?= "Depends on blacklisted openlmi-providers - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch
deleted file mode 100644
index 4bcd1c4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 764171866b84e0198b67538f63022abde3e628ad Mon Sep 17 00:00:00 2001
-From: Qian Lei <qianl.fnst@cn.fujitsu.com>
-Date: Fri, 16 Jan 2015 14:15:25 +0800
-Subject: [PATCH] fix error
-
-Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
----
- cmake/modules/OpenLMIMacros.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/modules/OpenLMIMacros.cmake b/cmake/modules/OpenLMIMacros.cmake
-index d55f983..dbc32ec 100644
---- a/cmake/modules/OpenLMIMacros.cmake
-+++ b/cmake/modules/OpenLMIMacros.cmake
-@@ -89,7 +89,7 @@ macro(konkretcmpi_generate MOFS CIM_PROVIDERS CIM_HEADERS CIM_CLASSES)
-         endforeach(CLASS ${CIM_CLASS_NAMES})
- 
-         # Generate headers for CIM classes
--        set(ENV{KONKRET_SCHEMA_DIR} "/usr/share/mof/cim-current")
-+        set(ENV{KONKRET_SCHEMA_DIR} "$ENV{CMAKE_INSTALL_DATDIR}/mof/cim-current")
-         execute_process(COMMAND ${KONKRETCMPI_KONKRET}
-                                 ${KONKRET_MOF_FILES}
-                                 ${GENERATE_PROVIDERS}
--- 
-1.8.3.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
deleted file mode 100644
index 9c8ebe4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 7cecfa95f033b33a1c3260c214b2d0e5e81b4fd3 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Mon, 3 Aug 2015 02:05:56 +0900
-Subject: [PATCH] fix lib64 can not be shiped in 64bit target
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- CMakeLists.txt | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 48ae206..3ead9c6 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -21,13 +21,6 @@ else(HAS_STACK_PROTECTOR_STRONG)
-     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
- endif()
- 
--# Set LIB_SUFFIX to 64 on 64bit architectures
--if(CMAKE_SIZEOF_VOID_P EQUAL 4)
--    set(LIB_SUFFIX "")
--else(CMAKE_SIZEOF_VOID_P EQUAL 4)
--    SET(LIB_SUFFIX 64)
--endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
--
- if(NOT SYSCONF_INSTALL_DIR)
-     set(SYSCONF_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/etc)
- endif(NOT SYSCONF_INSTALL_DIR)
--- 
-1.8.4.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb
deleted file mode 100644
index 2eda653..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Set of basic CIM providers"
-DESCRIPTION = "\
-openlmi-providers is set of (usually) small CMPI providers (agents) for \
-basic monitoring and management of host system using Common Information \
-Model (CIM)."
-HOMEPAGE = "http://www.openlmi.org/"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
-SECTION = "System/Management"
-DEPENDS = "konkretcmpi-native konkretcmpi sblim-sfcb sblim-cmpi-devel cim-schema-exper lmsensors libuser swig swig-native dbus udev systemd-systemctl-native pciutils"
-
-SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
-           file://0001-fix-error.patch \
-           file://0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch \
-          "
-SRC_URI[md5sum] = "5904f23cf494946237cfbbdbe644a3cd"
-SRC_URI[sha256sum] = "e2b2fbeaec45a83905d0da3b87da83904d9cd94c1b86312f844587b3fff11f56"
-
-inherit cmake
-LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-EXTRA_OECMAKE = " \
-                 -DWITH-DEVASSISTANT=OFF \
-                 -DWITH-JOURNALD=OFF \
-                 -DWITH-SERVICE=OFF \
-                 -DWITH-SERVICE-LEGACY=ON \
-                 -DWITH-ACCOUNT=OFF \
-                 -DWITH-PCP=OFF \
-                 -DWITH-REALMD=OFF \
-                 -DWITH-FAN=OFF \
-                 -DWITH-LOCALE=OFF \
-                 -DWITH-INDSENDER=OFF \
-                 -DWITH-JOBMANAGER=OFF \
-                 -DWITH-SSSD=OFF \
-                 -DWITH-SELINUX=OFF \
-                 -DWITH-SOFTWARE-DBUS=ON \
-                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
-                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
-               "
-
-do_configure_prepend() {
-    export CMAKE_INSTALL_DATDIR="${STAGING_DATADIR}"
-}
-
-do_install_append() {
-    if [ -d ${D}${prefix}${sysconfidr} ]; then
-        mv ${D}${prefix}${sysconfdir} ${D}${sysconfdir}
-    fi
-}
-
-FILES_${PN} =+ "${libdir}/cmpi/libcmpiLMI* ${prefix}/libexec*"
-FILES_${PN}-dev =+ "${datadir}/cmake*"
-FILES_${PN}-dbg =+ "${libdir}/cmpi/.debug*"
-
-RDEPENDS_${PN} = "python"
-
-PNBLACKLIST[openlmi-providers] ?= "Depends on blacklisted lmsensors - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb
deleted file mode 100644
index f99b77c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "CIM providers for storage management"
-DESCRIPTION = "\
-The openlmi-storage package contains CMPI providers for management of storage \
-using Common Information Managemen (CIM) protocol. \
-\
-The providers can be registered in any CMPI-aware CIMOM, both OpenPegasus and \
-SFCB were tested."
-HOMEPAGE = "http://www.openlmi.org/"
-LICENSE = "LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SECTION = "System/Management"
-DEPENDS = "openlmi-providers pywbem cmpi-bindings"
-RDEPENDS_${PN} += "bash"
-
-SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "898cf0d8c03b8ad6b45d65f335ddee0d"
-SRC_URI[sha256sum] = "4a1ba9957750f94ea58a89cea28985564f38d7cc9aa00fcae20c51e7b32bd0a8"
-
-inherit setuptools
-
-do_install_append() {
-    install -m 755 -d ${D}${datadir}/${BPN}
-    install -m 644 ${S}/mof/* ${D}${datadir}/${BPN}/
-
-    install -m 755 -d ${D}${sysconfdir}/openlmi/storage
-    install -m 644 storage.conf ${D}${sysconfdir}/openlmi/storage/storage.conf
-
-    install -m 755 -d ${D}${libexecdir}/pegasus
-    install -m 755 pycmpiLMI_Storage-cimprovagt ${D}${libexecdir}/pegasus/
-}
-
-FILES_${PN} =+ "${sysconfdir}/openlmi/storage/storage.conf ${datadir}/${BPN}/*"
-
-PNBLACKLIST[openlmi-storage] ?= "Depends on blacklisted pywbem - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
index b23869d..13e67cb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
@@ -21,3 +21,8 @@
 do_install_prepend() {
     cd cli
 }
+
+python() {
+    if 'meta-python' not in d.getVar('BBFILE_COLLECTIONS').split():
+        raise bb.parse.SkipRecipe('Requires meta-python to be present.')
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch
new file mode 100644
index 0000000..7823fde
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch
@@ -0,0 +1,29 @@
+From e05bad73f5fe4be1626560d92465893a5fc931e5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 00:01:19 -0700
+Subject: [PATCH] lock.c: Define PTHREAD_MUTEX_RECURSIVE_NP if undefined
+
+Check for PTHREAD_MUTEX_RECURSIVE_NP being defined instead of
+checking for OS
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/u/lock.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/lib/u/lock.c b/src/lib/u/lock.c
+index 025eea4c..b31c77b5 100644
+--- a/src/lib/u/lock.c
++++ b/src/lib/u/lock.c
+@@ -50,7 +50,7 @@
+ extern int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
+ #endif
+ 
+-#if defined (__SVR4) && defined (__sun)
++#ifndef PTHREAD_MUTEX_RECURSIVE_NP
+ #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
+ #endif
+ 
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
similarity index 94%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
index 2925f4b..c4778ca 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.3.bb
@@ -17,7 +17,9 @@
 
 SRC_URI = "git://github.com/Openwsman/openwsman.git \
            file://libssl-is-required-if-eventint-supported.patch \
-           file://openwsmand.service"
+           file://openwsmand.service \
+           file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \
+           "
 
 S = "${WORKDIR}/git"
 
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
new file mode 100644
index 0000000..ff88533
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
@@ -0,0 +1,48 @@
+SUMMARY = "pam-ssh-agent-auth"
+DESCRIPTION = "A PAM module which permits authentication via ssh-agent."
+HOMEPAGE = "http://sourceforge.net/projects/pamsshagentauth/"
+SECTION = "libs"
+LICENSE = "openssl & BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.OpenSSL;md5=8ab01146141ded59b75f8ba7811ed05a \
+                    file://OPENSSH_LICENSE;md5=7ae09218173be1643c998a4b71027f9b \
+"
+
+SRC_URI = "http://sourceforge.net/projects/pamsshagentauth/files/pam_ssh_agent_auth/v${PV}/pam_ssh_agent_auth-${PV}.tar.bz2"
+SRC_URI[md5sum] = "8dbe90ab3625e545036333e6f51ccf1d"
+SRC_URI[sha256sum] = "3c53d358d6eaed1b211239df017c27c6f9970995d14102ae67bae16d4f47a763"
+
+DEPENDS += "libpam openssl"
+
+# This gets us ssh-agent, which we are almost certain to want.
+#
+RDEPENDS_${PN} += "openssh-misc"
+
+# Kind of unfortunate to have underscores in the name.
+#
+S = "${WORKDIR}/pam_ssh_agent_auth-${PV}"
+
+inherit autotools-brokensep
+
+# Avoid autoreconf.  Override the --libexec oe_runconf specifies so that
+# the module is put with the other pam modules.  Because it cannot, in general,
+# do a runtime test, configure wants to use rpl_malloc() and rpl_realloc()
+# instead of malloc() and realloc().  We set variables to tell it not to because
+# these functions do not exist.
+#
+do_configure () {
+    install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+    install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+    oe_runconf --without-openssl-header-check  --libexecdir=${base_libdir}/security \
+               ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes
+}
+
+# Link with CC.  Configure cannot figure out the correct AR.
+#
+do_compile () {
+    oe_runmake  LD="${CC}" AR="${AR}"
+}
+
+# This stuff is not any place looked at by default.
+#
+FILES_${PN} += "${base_libdir}/security/pam*"
+FILES_${PN}-dbg += "${base_libdir}/security/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb
new file mode 100644
index 0000000..035fe9f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Perl module that provides simple filename and pathname matching"
+DESCRIPTION = "File::FnMatch::fnmatch() provides simple, shell-like pattern \
+matching. \
+Though considerably less powerful than regular expressions, shell patterns \
+are nonetheless useful and familiar to a large audience of end-users."
+
+HOMEPAGE = "http://search.cpan.org/dist/File-FnMatch/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+
+LIC_FILES_CHKSUM = "file://README;beginline=34;endline=37;md5=54fdfac62963b7cece5583ab38f2cf0d"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/M/MJ/MJP/File-FnMatch-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "22f77c20d0fb5af01a3165e2df2fe34c"
+SRC_URI[sha256sum] = "962454b8e86bea8b132bf8af35757d0c6a8f5d599015bd6a5d68cb7ae7a9e916"
+
+S = "${WORKDIR}/File-FnMatch-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
index eced4b6..934a53e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "Create usergroup datetime. All members off this group are allowed set date/time/timezone via system dbus"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 require polkit-group-rule.inc
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
index 551ed3e..66a73ea 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "Create usergroup network. All members off this group are allowed to modify networkmanager settings"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 require polkit-group-rule.inc
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb
index 326c934..f34928f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb
@@ -10,7 +10,9 @@
 inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection
 
 PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
-                 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit', d)}"
+                 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
+                    bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
+                "
 
 PACKAGECONFIG[pam] = "--with-authfw=pam,--with-authfw=shadow,libpam,libpam"
 PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunitdir=${systemd_unitdir}/system/,--enable-libsystemd-login=no --with-systemdsystemunitdir=,systemd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/pywbem/pywbem_0.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/pywbem/pywbem_0.8.0.bb
deleted file mode 100644
index 7f1986e..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/pywbem/pywbem_0.8.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Python WBEM Client and Provider Interface"
-DESCRIPTION = "\
-A Python library for making CIM (Common Information Model) operations over \
-HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
-WBEM client should be easy to use and not necessarily require a large amount \
-of programming knowledge. It is suitable for a large range of tasks from \
-simply poking around to writing web and GUI applications. \
-\
-WBEM, or Web Based Enterprise Management is a manageability protocol, like \
-SNMP, standardised by the Distributed Management Task Force (DMTF) available \
-at http://www.dmtf.org/standards/wbem. \
-\
-It also provides a Python provider interface, and is the fastest and easiest \
-way to write providers on the planet."
-HOMEPAGE = "http://pywbem.sf.net/"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://pywbem/LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
-SECTION = "Development/Libraries"
-DEPENDS = "python-m2crypto-native python-typing-native"
-SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BPN}/${BP}/${BP}-dev.r704.zip"
-SRC_URI[md5sum] = "84072451dcdd1aa9ee82363848faf7ad"
-SRC_URI[sha256sum] = "898035866d3cc741bbcd62c4ac26e633ad07b7c11d89db2472b9f923f3fd3ed8"
-
-S = "${WORKDIR}/${BP}-dev"
-
-inherit setuptools python-dir
-
-do_install_append() {
-    mv ${D}${bindir}/wbemcli.py ${D}${bindir}/pywbemcli
-    mv ${D}${bindir}/mof_compiler.py ${D}${bindir}/mofcomp
-
-    rm ${D}${libdir}/python2.7/site-packages/${BPN}/wbemcli.py*
-    rm ${D}${libdir}/python2.7/site-packages/${BPN}/mof_compiler.py*
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rocksdb/rocksdb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rocksdb/rocksdb_git.bb
new file mode 100644
index 0000000..9b19c1a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rocksdb/rocksdb_git.bb
@@ -0,0 +1,31 @@
+SUMMARY = "RocksDB an embeddable, persistent key-value store"
+DESCRIPTION = "RocksDB is library that provides an embeddable, persistent key-value store for fast storage."
+HOMEPAGE = "http://rocksdb.org/"
+LICENSE = "(Apache-2.0 | GPL-2.0) & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+                    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
+
+SRCREV = "266ac245affd69555643b735d19d3715c4eff91a"
+PV = "5.8+git${SRCPV}"
+
+SRC_URI = "git://github.com/facebook/${BPN}.git"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGECONFIG ??= "bzip2 zlib lz4"
+PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2"
+PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4"
+PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
+PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF"
+
+# Tools and tests currently don't compile on armv5 so we disable them
+EXTRA_OECMAKE = "\
+    -DPORTABLE=ON \
+    -DWITH_TESTS=OFF \
+    -DWITH_TOOLS=OFF \
+"
+
+FILES_${PN}-dev += "${libdir}/cmake"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.6.0.bb
index a3aac45..797bcaa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.6.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.6.0.bb
@@ -22,7 +22,7 @@
 SYSTEMD_PACKAGES = "rrdcached"
 SYSTEMD_SERVICE_rrdcached = "rrdcached.socket rrdcached.service"
 
-EXTRA_AUTORECONF = "-I m4"
+EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
 
 PACKAGECONFIG ??= "python perl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
 
@@ -49,6 +49,7 @@
     --disable-lua \
     --disable-tcl \
     --disable-rpath \
+    --enable-nls=${USE_NLS} \
 "
 
 export STAGING_LIBDIR
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.12.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb
index 84c2583..28047eb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.12.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb
@@ -8,7 +8,7 @@
 
 SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https"
 
-SRCREV = "02c3be4f5c39fec59d05cd8b75b08dbba04098ad"
+SRCREV = "fc512e337bfc7c92770246dbff5f482b879498b9"
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
similarity index 94%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
index d1d391b..7056e1c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
@@ -31,8 +31,8 @@
     file://0001-Include-sys-time-h.patch \
 "
 
-SRC_URI[md5sum] = "ad0f25f429aa2daa326732950a5eeb6c"
-SRC_URI[sha256sum] = "06e2884181333dccecceaca82827ae24ca7a258b4fbf7b1e07a80d4caae640ca"
+SRC_URI[md5sum] = "3805617f65a4b4bea34606487a5255a0"
+SRC_URI[sha256sum] = "220ba30b5afb0f3ddb328613fea7aa3966b01e4d0c52d6de9ab27b0858f19738"
 
 inherit autotools pkgconfig systemd update-rc.d ptest
 
@@ -55,7 +55,7 @@
 PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,,"
 PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
 PACKAGECONFIG[libgcrypt] = "--enable-libgcrypt,--disable-libgcrypt,libgcrypt,"
-PACKAGECONFIG[testbench] = "--enable-testbench,--disable-testbench,,"
+PACKAGECONFIG[testbench] = "--enable-testbench --enable-omstdout,--disable-testbench --disable-omstdout,,"
 
 # default no in configure
 PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
@@ -118,9 +118,10 @@
 
 do_install_append() {
     install -d "${D}${sysconfdir}/init.d"
+    install -d "${D}${sysconfdir}/logrotate.d"
     install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
     install -m 644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}/rsyslog.conf
-    install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.rsyslog
+    install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
 }
 
 FILES_${PN} += "${bindir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-cimxml-Include-sys-select.h-for-fd_set.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-cimxml-Include-sys-select.h-for-fd_set.patch
new file mode 100644
index 0000000..19e50ec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-cimxml-Include-sys-select.h-for-fd_set.patch
@@ -0,0 +1,37 @@
+From 9981542cb443cdaf9134500b78fe7eda9f99861f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Sep 2017 21:43:26 -0700
+Subject: [PATCH] cimxml: Include sys/select.h for fd_set
+
+define __SOCKADDR_ARG on linux when libc != glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+ backend/cimxml/indicationlistener.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/backend/cimxml/indicationlistener.c b/backend/cimxml/indicationlistener.c
+index 0d7d9fe..37c45ae 100755
+--- a/backend/cimxml/indicationlistener.c
++++ b/backend/cimxml/indicationlistener.c
+@@ -25,6 +25,7 @@
+ 
+ #include <pthread.h>
+ #include <sys/socket.h>
++#include <sys/select.h>
+ #include <netinet/in.h>
+ #include <fcntl.h>
+ #include <errno.h>
+@@ -36,7 +37,7 @@ static int do_listen=1;
+ #define hdrBufsize 5000
+ #define hdrLimmit 5000
+ 
+-#ifdef __APPLE__
++#if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ # define __SOCKADDR_ARG   struct sockaddr *__restrict
+ #endif
+ 
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
index 1ec9940..df55a67 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
@@ -2,7 +2,9 @@
 DESCRIPTION = "Small Footprint CIM Client Library Runtime Libraries"
 HOMEPAGE = "http://www.sblim.org"
 
-SRC_URI = "http://netcologne.dl.sourceforge.net/project/sblim/${BPN}/${BPN}-${PV}.tar.bz2"
+SRC_URI = "http://netcologne.dl.sourceforge.net/project/sblim/${BPN}/${BPN}-${PV}.tar.bz2 \
+           file://0001-cimxml-Include-sys-select.h-for-fd_set.patch \
+           "
 
 SRC_URI[md5sum] = "0bac0dec19f17ec065b6c332a56d7bae"
 SRC_URI[sha256sum] = "1b8f187583bc6c6b0a63aae0165ca37892a2a3bd4bb0682cd76b56268b42c3d6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch
new file mode 100644
index 0000000..6edda08
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch
@@ -0,0 +1,13 @@
+--- mdadm.d/mdadm-1.3.0/mdadm.h.org	2017-06-20 00:35:55.366978372 -0700
++++ mdadm.d/mdadm-1.3.0/mdadm.h	2017-06-20 00:36:41.244363348 -0700
+@@ -29,8 +29,9 @@
+ 
+ #define	__USE_LARGEFILE64
+ #include	<unistd.h>
+-extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
++//extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
+ 
++#include	<sys/sysmacros.h>
+ #include	<sys/types.h>
+ #include	<sys/stat.h>
+ #include	<stdlib.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch
new file mode 100644
index 0000000..ac81780
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch
@@ -0,0 +1,218 @@
+Index: scsirastools-1.6.6/src/sgcommon.c
+===================================================================
+--- scsirastools-1.6.6.orig/src/sgcommon.c
++++ scsirastools-1.6.6/src/sgcommon.c
+@@ -304,8 +304,8 @@ void showit(char *buf)
+ 	    fdlog = stderr;
+ 	}
+     }
+-    if (flogopen) fprintf(fdlog, buf);	/*write to log */
+-    fprintf(fdmsg, buf);	/*defaults to stdout */
++    if (flogopen) fprintf(fdlog, "%s", buf);	/*write to log */
++    fprintf(fdmsg, "%s", buf);	/*defaults to stdout */
+ }
+ 
+ void showlog(const char * format, ...) 
+Index: scsirastools-1.6.6/src/sgdefects.c
+===================================================================
+--- scsirastools-1.6.6.orig/src/sgdefects.c
++++ scsirastools-1.6.6/src/sgdefects.c
+@@ -226,7 +226,7 @@ int main(int argc, char **argv)
+ 	    ("              ******************************************\n");
+ 	if (flogopen)
+ 	    printf("Log file %s is open\n", logfile);
+-	printf(HeaderStr);
++	printf("%s", HeaderStr);
+ 	/* get SCSI Device Info */
+ 	idev = 0;
+ 	flags = O_RDWR;		/* could use OPEN_FLAG if read-only. */
+Index: scsirastools-1.6.6/src/sgdiag.c
+===================================================================
+--- scsirastools-1.6.6.orig/src/sgdiag.c
++++ scsirastools-1.6.6/src/sgdiag.c
+@@ -250,7 +250,7 @@ int main(int argc, char **argv)
+ 	   printf("              ******************************************\n");
+ 	   if (flogopen)
+ 	       printf("Log file %s is open, debug=%d\n", logfile,fdebug);
+-	   printf(HeaderStr);
++	   printf("%s", HeaderStr);
+ 	}
+ 	/* get SCSI Device Info */
+ 	idev = 0;
+@@ -356,12 +356,12 @@ int main(int argc, char **argv)
+ 	case 'F':
+ 	case 'f':
+ 	    func = 'f';
+-	    printf(erase_msg);
++	    printf("%s", erase_msg);
+ 	    break;
+ 	case 'W':
+ 	case 'w':
+ 	    func = 'w';
+-	    printf(erase_msg);
++	    printf("%s", erase_msg);
+ 	    break;
+ 	case 'S':
+ 	case 's':
+Index: scsirastools-1.6.6/src/sgdiskmon.c
+===================================================================
+--- scsirastools-1.6.6.orig/src/sgdiskmon.c
++++ scsirastools-1.6.6/src/sgdiskmon.c
+@@ -197,9 +197,9 @@ void showit(char *buf)
+         }
+     }
+     if (flogopen)
+-        fprintf(fdlog, buf);    /*write to log */
++        fprintf(fdlog, "%s", buf);    /*write to log */
+     if (!background)
+-        fprintf(fdmsg, buf);    /*message display defaults to stdout */
++        fprintf(fdmsg, "%s",  buf);    /*message display defaults to stdout */
+ }
+ 
+ /*
+@@ -235,7 +235,7 @@ rem_scsi_dev(int bus, int ch, int id, in
+ 	fp = fopen("/proc/scsi/scsi","r+");
+ 	if (fp == NULL) return(errno); 
+ 	sprintf(cmd,"remove-single-device %d %d %d %d",bus,ch,id,lun);
+-	n = fprintf(fp,cmd);
++	n = fprintf(fp,"%s", cmd);
+ 	fclose(fp);
+ 	strcat(cmd,"\n");
+ 	showit(cmd);
+@@ -256,7 +256,7 @@ add_scsi_dev(int bus, int ch, int id, in
+ 	fp = fopen("/proc/scsi/scsi","r+");
+ 	if (fp == NULL) return(errno); 
+ 	sprintf(cmd,"add-single-device %d %d %d %d",bus,ch,id,lun);
+-	n = fprintf(fp,cmd);
++	n = fprintf(fp, "%s", cmd);
+ 	fclose(fp);
+ 	strcat(cmd,"\n");
+ 	showit(cmd);
+@@ -1233,7 +1233,7 @@ main(int argc, char **argv)
+             interval = atoi(optarg);
+             break;
+ 	default:
+-            printf(output2);    /*prog header*/
++            printf("%s", output2);    /*prog header*/
+             printf("Usage: %s [-bemnrx -t time]\n",progname);
+ 	    printf(" -b  Run in Background as a daemon\n");
+ 	    printf(" -e  Do not write to any files.\n");
+@@ -1246,7 +1246,7 @@ main(int argc, char **argv)
+             exit(1); 
+ 	}
+    }
+-   if (!background) printf(output2);  /*prog header*/
++   if (!background) printf("%s", output2);  /*prog header*/
+ 
+    /* only run this as superuser */
+    i = geteuid();
+Index: scsirastools-1.6.6/src/sgmode.c
+===================================================================
+--- scsirastools-1.6.6.orig/src/sgmode.c
++++ scsirastools-1.6.6/src/sgmode.c
+@@ -303,7 +303,7 @@ int main(int argc, char **argv)
+ 	    ("              ******************************************\n");
+ 	if (flogopen)
+ 	    printf("Log file %s is open\n", logfile);
+-	printf(HeaderStr);
++	printf("%s", HeaderStr);
+ 	/* get SCSI Device Info */
+ 	idev = 0;
+ 	flags = O_RDWR;		/* could use OPEN_FLAG if read-only. */
+@@ -585,8 +585,8 @@ int do_modeselect(int idx)
+ 	    if (!foverwrite) {
+ 		/* use existing capacity from mode sense */
+ 		memcpy(sel_buffer + 4, out_buffer + 4, 8);
+-		sprintf(scratch, "Using existing capacity instead\n");
+-		printf(scratch);
++		sprintf(scratch, "%s", "Using existing capacity instead\n");
++		printf("%s",scratch);
+ 		showlog( scratch);
+ 	    } else {  /* foverwrite==1, changing something */
+ 		/* usually only change num blks, if change blk size, flag it. */
+Index: scsirastools-1.6.6/src/sgraidmon.c
+===================================================================
+--- scsirastools-1.6.6.orig/src/sgraidmon.c
++++ scsirastools-1.6.6/src/sgraidmon.c
+@@ -269,9 +269,9 @@ void showit(char *buf)
+         }
+     }
+     if (flogopen)
+-        fprintf(fdlog, buf);    /*write to log */
++        fprintf(fdlog, "%s", buf);    /*write to log */
+     if (!background)
+-        fprintf(fdmsg, buf);    /*message display defaults to stdout */
++        fprintf(fdmsg, "%s", buf);    /*message display defaults to stdout */
+ }
+ 
+ /*
+@@ -563,7 +563,7 @@ add_scsi_dev(int bus, int ch, int id, in
+ 	fp = fopen("/proc/scsi/scsi","r+");
+ 	if (fp == NULL) return(errno); 
+ 	sprintf(cmd,"add-single-device %d %d %d %d",bus,ch,id,lun);
+-	fprintf(fp,cmd);
++	fprintf(fp, "%s", cmd);
+ 	fclose(fp);
+ 	strcat(cmd,"\n");
+ 	showit(cmd);
+@@ -1585,7 +1585,7 @@ main(int argc, char **argv)
+             interval = atoi(optarg);
+             break;
+ 	default:
+-            printf(output2);    /*prog header*/
++            printf("%s", output2);    /*prog header*/
+             printf("Usage: %s [-bemnrx -t time]\n",progname);
+ 	    printf(" -b  Run in Background as a daemon\n");
+ 	    printf(" -e  Do not write to any files.\n");
+@@ -1598,7 +1598,7 @@ main(int argc, char **argv)
+             exit(1); 
+ 	}
+    }
+-   if (!background) printf(output2);  /*prog header*/
++   if (!background) printf("%s", output2);  /*prog header*/
+ 
+    /* only run this as superuser */
+    i = geteuid();
+Index: scsirastools-1.6.6/src/sgsafte.c
+===================================================================
+--- scsirastools-1.6.6.orig/src/sgsafte.c
++++ scsirastools-1.6.6/src/sgsafte.c
+@@ -174,9 +174,9 @@ void showit(char *buf)
+         }
+     }
+     if (flogopen)
+-        fprintf(fdlog, buf);    /*write to log */
++        fprintf(fdlog, "%s", buf);    /*write to log */
+     if (!background)
+-        fprintf(fdmsg, buf);    /*message display defaults to stdout */
++        fprintf(fdmsg, "%s", buf);    /*message display defaults to stdout */
+ }
+  
+ /*
+@@ -384,7 +384,7 @@ add_scsi_dev(int bus, int ch, int id, in
+ 	fp = fopen("/proc/scsi/scsi","r+");
+ 	if (fp == NULL) return(errno); 
+ 	sprintf(cmd,"add-single-device %d %d %d %d",bus,ch,id,lun);
+-	fprintf(fp,cmd);
++	fprintf(fp, "%s", cmd);
+ 	fclose(fp);
+ 	strcat(cmd,"\n");
+ 	showit(cmd);
+@@ -1261,7 +1261,7 @@ main(int argc, char **argv)
+             do_numeric = 0;
+             break; 
+ 	default:
+-            printf(output2);    /*prog header*/
++            printf("%s", output2);    /*prog header*/
+             printf("Usage: %s [-d num -rf -emnx]\n",progname);
+ 	    printf(" -d  drive number to set (0, 1, ...)\n");
+ 	    printf(" -r  set SAF-TE status to ready\n");
+@@ -1273,7 +1273,7 @@ main(int argc, char **argv)
+             exit(1); 
+ 	}
+    }
+-   if (!background) printf(output2);  /*prog header*/
++   if (!background) printf("%s", output2);  /*prog header*/
+ 
+    if (setval != 0 && drivenum == -1) drivenum = 0;  /*default to first drive*/
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
similarity index 81%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
index d0c36e4..e202d16 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
@@ -10,15 +10,23 @@
 
 DEPENDS += "groff-native"
 
-SRC_URI = "http://prdownloads.sourceforge.net/scsirastools/scsirastools-${PV}.tar.gz"
-SRC_URI[md5sum] = "2d775111b62e2dfc1960a722f5fda211"
-SRC_URI[sha256sum] = "38d2c6c9b04a2c594e528927b950754f94c0522718d17c78e6589ba778339bf8"
+SRC_URI = "http://prdownloads.sourceforge.net/scsirastools/scsirastools-${PV}.tar.gz \
+           file://mdadm.patch;apply=no \
+           file://print-format.patch \
+"
+SRC_URI[md5sum] = "6271a61b2ce40aaf33ef61775148cda1"
+SRC_URI[sha256sum] = "e7b997e75decb06a650c42c35cd63d0c94c34e39cf133c723337b0eeabbfdf6a"
 
 inherit autotools update-rc.d
 
 # mdadm Makefile has CC set to gcc, hence override CC to ${CC}
 EXTRA_OEMAKE += "CC='${CC}'"
 
+
+do_configure_append() {
+	oe_runmake -C mdadm.d mdadm-1.3.0
+	patch -p0 < ${WORKDIR}/mdadm.patch
+}
 INITSCRIPT_PACKAGES = "${PN}-diskmon ${PN}-raidmon"
 INITSCRIPT_NAME_${PN}-diskmon = "sgdisk"
 INITSCRIPT_PARAMS_${PN}-diskmon = "defaults 80 20"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
index ee7bcda..63e8d36 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
@@ -1,4 +1,5 @@
 SUMMARY = "SGPIO captive backplane tool"
+HOMEPAGE = "http://sources.redhat.com/lvm2/wiki/DMRAID_Eventing"
 DESCRIPTION = "Intel SGPIO enclosure management utility"
 
 SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/${BPN}/${BPN}-1.2-0.10-src.tar.gz/a417bf68da4e9bd79a4664c11d7debd1/${BPN}-1.2-0.10-src.tar.gz \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
index 931e332..a2d62c3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
@@ -6,7 +6,7 @@
 DEPENDS = "libsocketcan"
 
 SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master"
-SRCREV = "67a2bdcd336e6becfa5784742e18c88dbeddc973"
+SRCREV = "4c8fb05cb4d6ddcd67299008db54af423f86fd05"
 
 PV = "0.0+gitr${SRCPV}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/subsurface/subsurface_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/subsurface/subsurface_git.bb
deleted file mode 100644
index 90adaf4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/subsurface/subsurface_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Subsurface is an open source dive log program"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "libdivecomputer gtk+ libxml2 glib-2.0 gconf"
-
-PNBLACKLIST[subsurface] ?= "Needs to be upgraded for compatibility with new libdivecomputer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-inherit gtk-icon-cache cmake
-
-inherit gitpkgv
-PKGV = "${GITPKGVTAG}"
-PV = "4.2"
-
-SRCREV = "f61ee20ba356ecfc4c5b247f548f52d588179c94"
-SRC_URI = "git://subsurface.hohndel.org/subsurface.git"
-S = "${WORKDIR}/git"
-
-#FILES_${PN} += "${datadir}/icons/hicolor/scalable/apps/subsurface.svg"
-RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconv-iso8859-15"
-
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 b7157b4..720aa3c 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
@@ -17,6 +17,8 @@
 
 DEPENDS += "libdaemon"
 
+RDEPENDS_${PN} = "iproute2-tipc"
+
 S = "${WORKDIR}/git"
 
 do_configure_prepend() {
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
new file mode 100644
index 0000000..c617d14
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/files/ads1x15-fixed-case-logic-in-getThresh-function.patch
@@ -0,0 +1,54 @@
+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
new file mode 100644
index 0000000..38065ce
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Sensor/Actuator repository for Mraa"
+HOMEPAGE = "https://github.com/intel-iot-devkit/upm"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=66493d54e65bfc12c7983ff2e884f37f"
+
+DEPENDS = "libjpeg-turbo mraa"
+
+SRCREV = "106b6c706268522ab0168a4ddb19e89ce832e084"
+PV = "1.3.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"
+
+# Depends on mraa which only supports x86 and ARM for now
+COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
+
+inherit distutils3-base cmake
+
+
+# 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 '' }"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
+ ${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
+
+PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN},"
+PACKAGECONFIG[nodejs] = "-DBUILDSWIGNODE=ON, -DBUILDSWIGNODE=OFF, swig-native nodejs-native,"
+
+FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
+RDEPENDS_${PYTHON_PN}-${PN} += "${PYTHON_PN}"
+
+FILES_node-${PN} = "${prefix}/lib/node_modules/"
+RDEPENDS_node-${PN} += "nodejs"
+
+### Include desired language bindings ###
+PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'nodejs', 'node-${PN}', '', d)}"
+PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'python', '${PYTHON_PN}-${PN}', '', 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
new file mode 100644
index 0000000..ee0d074
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/disable_vlockrc.patch
@@ -0,0 +1,37 @@
+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 @@
+ 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
+-.SH FILES
+-.B ~/.vlockrc
+-.IP
+-This file is read by \fBvlock\fR on startup if it exists.  All the variables
+-mentioned above can be set here.
+ .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 @@
+ 
+ ${VLOCK_ENTER_PROMPT}"
+ 
+-# Read user settings.
+-if [ -r "${HOME}/.vlockrc" ] ; then
+-  . "${HOME}/.vlockrc"
+-fi
+-
+ # "Compile" time variables.
+ VLOCK_MAIN="%PREFIX%/sbin/vlock-main"
+ VLOCK_VERSION="%VLOCK_VERSION%"
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
new file mode 100644
index 0000000..6e8a6a9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock-no_tally.patch
@@ -0,0 +1,107 @@
+Upstream-Status: Pending
+
+written by: Jeff Polk <jeff.polk@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+--- a/Makefile
++++ b/Makefile
+@@ -126,6 +126,10 @@ ifeq ($(AUTH_METHOD),shadow)
+ vlock-main : override LDLIBS += $(CRYPT_LIB)
+ endif
+ 
++ifneq ($(ENABLE_FAIL_COUNT),yes)
++vlock-main.o : override CFLAGS += -DNO_FAIL_COUNT
++endif
++
+ 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
+--- a/configure
++++ b/configure
+@@ -44,6 +44,7 @@ Optional Features:
+   --enable-shadow         enable shadow authentication [disabled]
+   --enable-root-password  enable unlogging with root password [enabled]
+   --enable-debug          enable debugging
++  --enable-fail-count     enable failed login attempt summary [enabled]
+ 
+ Additional configuration:
+   --with-scripts=SCRIPTS  enable the named scripts []
+@@ -78,6 +79,9 @@ enable_feature() {
+     root-password)
+       ENABLE_ROOT_PASSWORD="$2"
+     ;;
++    fail-count)
++      ENABLE_FAIL_COUNT="$2"
++    ;;
+     pam|shadow)
+       if [ "$2" = "yes" ] ; then
+         if [ -n "$auth_method" ] && [ "$auth_method" != "$1" ] ; then
+@@ -232,6 +232,7 @@ set_defaults() {
+   AUTH_METHOD="pam"
+   ENABLE_ROOT_PASSWORD="yes"
+   ENABLE_PLUGINS="yes"
++  ENABLE_FAIL_COUNT="yes"
+   SCRIPTS=""
+ 
+   VLOCK_GROUP="vlock"
+@@ -356,10 +356,14 @@ ENABLE_PLUGINS = ${ENABLE_PLUGINS}
+ # which plugins should be build
+ MODULES = ${MODULES}
+ # which scripts should be installed
+ SCRIPTS = ${SCRIPTS}
+ 
++# display a summary of failed authentication attempts after successfully
++# unlocking?
++ENABLE_FAIL_COUNT = ${ENABLE_FAIL_COUNT}
++
+ # root's group
+ ROOT_GROUP = ${ROOT_GROUP}
+ 
+ # group for privileged plugins
+ VLOCK_GROUP = ${VLOCK_GROUP}
+--- 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);
+ }
+ 
++#ifdef ENABLE_FAIL_COUNT
+ static int auth_tries;
++#endif /* ENABLE_FAIL_COUNT */
+ 
+ static void auth_loop(const char *username)
+ {
+@@ -181,7 +183,9 @@ static void auth_loop(const char *userna
+     }
+ #endif
+ 
++#ifdef ENABLE_FAIL_COUNT
+     auth_tries++;
++#endif /* ENABLE_FAIL_COUNT */
+   }
+ 
+   /* Free timeouts memory. */
+@@ -189,11 +193,13 @@ static void auth_loop(const char *userna
+   free(prompt_timeout);
+ }
+ 
++#ifdef ENABLE_FAIL_COUNT
+ void display_auth_tries(void)
+ {
+   if (auth_tries > 0)
+     fprintf(stderr, "%d failed authentication %s.\n", auth_tries, auth_tries > 1 ? "tries" : "try");
+ }
++#endif /* ENABLE_FAIL_COUNT */
+ 
+ #ifdef USE_PLUGINS
+ static void call_end_hook(void)
+@@ -216,7 +222,9 @@ int main(int argc, char *const argv[])
+   if (username == NULL)
+     fatal_perror("vlock: could not get username");
+ 
++#ifdef ENABLE_FAIL_COUNT
+   ensure_atexit(display_auth_tries);
++#endif /* ENABLE_FAIL_COUNT */
+ 
+ #ifdef USE_PLUGINS
+   for (int i = 1; i < argc; i++)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam
new file mode 100644
index 0000000..a919682
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam
@@ -0,0 +1,3 @@
+# Use the default auth and account policies for vlock
+auth       include      common-auth
+account    include      common-account
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
new file mode 100644
index 0000000..4ce0abc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock-2.2.3/vlock_pam_tally2_reset.patch
@@ -0,0 +1,19 @@
+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 @@
+ 
+   if (pam_status != PAM_SUCCESS) {
+     fprintf(stderr, "vlock: %s\n", pam_strerror(pamh, pam_status));
++  } else {
++    pam_status = pam_acct_mgmt(pamh, 0);
++    if (pam_status == PAM_SUCCESS) pam_setcred(pamh, PAM_REINITIALIZE_CRED);
+   }
+ 
+ end:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
new file mode 100644
index 0000000..259d3a5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Virtual Console lock program"
+DESCRIPTION = "Sometimes a malicious local user could cause more problems \
+  than a sophisticated remote one. vlock is a program that locks one or more \
+  sessions on the Linux console to prevent attackers from gaining physical \
+  access to the machine. \
+  "
+SECTION = "utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf"
+
+SRC_URI = "${GENTOO_MIRROR}/${BP}.tar.gz \
+       file://disable_vlockrc.patch \
+       file://vlock_pam_tally2_reset.patch \
+       file://vlock-no_tally.patch \
+       file://vlock_pam \
+       "
+
+SRC_URI[md5sum] = "378175c7692a8f288e65fd4dbf8a38eb"
+SRC_URI[sha256sum] = "85aa5aed1ae49351378a0bd527a013078f0f969372a63164b1944174ae1a5e39"
+
+inherit autotools-brokensep update-alternatives
+
+# authentification method: either pam or shadow
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', 'shadow', d)}"
+PACKAGECONFIG[pam] = "--enable-pam,,libpam,"
+PACKAGECONFIG[shadow] = "--enable-shadow,,shadow,"
+
+CFLAGS += "-Wall -W -pedantic -std=gnu99"
+
+do_configure () {
+    # The configure tries to use 'getent' to get the group
+    # info from the host, which should be avoided.
+    sed -i 's/\(ROOT_GROUP=\).*/\1"root"/' ${CONFIGURE_SCRIPT}
+
+    ${CONFIGURE_SCRIPT} \
+        VLOCK_GROUP=root \
+        ROOT_GROUP=root \
+        CC="${CC}" \
+        CFLAGS="${CFLAGS}" \
+        LDFLAGS="${LDFLAGS}" \
+        --prefix=${prefix} \
+        --libdir=${libdir} \
+        --mandir=${mandir} \
+        --with-modules="all.so new.so nosysrq.so ttyblank.so vesablank.so" \
+        --disable-root-password --enable-debug --disable-fail-count \
+        ${PACKAGECONFIG_CONFARGS}
+}
+
+do_install_append () {
+    if [ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', '', d)} = yes ]; then
+        install -d -m 0755 ${D}/${sysconfdir}/pam.d
+        install -m 0644 ${WORKDIR}/vlock_pam ${D}${sysconfdir}/pam.d/vlock
+    fi
+}
+
+ALTERNATIVE_${PN} = "vlock"
+ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_LINK_NAME[vlock] = "${bindir}/vlock"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch
new file mode 100644
index 0000000..03edb13
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch
@@ -0,0 +1,56 @@
+From 18415c0b4c6e50ed9b99dfdae8d210590d0ab72e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 28 Apr 2017 04:50:30 -0400
+Subject: [PATCH] explicitly support python3 by pkg-config
+
+The PYTHON_CPPFLAGS and -lpython$(PYTHON_VERSION) is hardcoded,
+use pkg-config to replace
+
+Upstream-Status: Inappropriate [wr-installer specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile.am  | 5 ++---
+ configure.ac | 2 ++
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 4569bbf..7a8daf4 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -20,7 +20,6 @@ ACLOCAL_AMFLAGS = -I m4
+ AM_CPPFLAGS = $(blkid_CFLAGS) $(glib_CFLAGS) $(GPGME_CFLAGS) \
+ 	$(libcryptsetup_CFLAGS) $(nss_CFLAGS)
+ LOCALEDIR_CPPFLAGS = -DLOCALEDIR='"$(localedir)"'
+-PYTHON_CPPFLAGS = -I/usr/include/python$(PYTHON_VERSION)
+ 
+ ## Targets
+ SUBDIRS = po
+@@ -63,9 +62,9 @@ lib_libvolume_key_la_LIBADD = $(blkid_LIBS) $(glib_LIBS) $(GPGME_LIBS) \
+ 	$(LTLIBINTL) $(libcryptsetup_LIBS) $(nss_LIBS)
+ 
+ python__volume_key_la_SOURCES = python/volume_key_wrap.c
+-python__volume_key_la_CPPFLAGS = $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS)
++python__volume_key_la_CPPFLAGS = $(AM_CPPFLAGS) $(python3_CFLAGS)
+ python__volume_key_la_LDFLAGS = -module -avoid-version $(glib_LIBS)
+-python__volume_key_la_LIBADD = lib/libvolume_key.la -lpython$(PYTHON_VERSION) \
++python__volume_key_la_LIBADD = lib/libvolume_key.la $(python3_LIBS) \
+ 	$(glib_LIBS) $(nss_LIBS)
+ 
+ src_volume_key_SOURCES = src/volume_key.c
+diff --git a/configure.ac b/configure.ac
+index ff35dd0..0928a6c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -27,6 +27,8 @@ AM_INIT_AUTOMAKE([no-dist-gzip dist-xz no-define subdir-objects -Wall])
+ AC_PROG_CC
+ AM_PROG_CC_C_O
+ LT_INIT([disable-static])
++
++PKG_CHECK_MODULES(python3, [python3])
+ AM_PATH_PYTHON
+ 
+ dnl Not gpg2, it cannot receive passphrases from gpgme
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb
new file mode 100644
index 0000000..febf3f2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "The volume_key project provides a libvolume_key, a library for manipulating \
+storage volume encryption keys and storing them separately from volumes, and an \
+associated command-line tool, named volume_key."
+LICENSE = "GPLv2"
+SECTION = "devel/lib"
+
+HOMEPAGE = "https://pagure.io/volume_key"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://releases.pagure.org/volume_key/volume_key-${PV}.tar.xz \
+           file://0001-explicitly-support-python3-by-pkg-config.patch \
+"
+SRC_URI[md5sum] = "a2d14931177c660e1f3ebbcf5f47d8e2"
+SRC_URI[sha256sum] = "450a54fe9bf56acec6850c1e71371d3e4913c9ca1ef0cdc3a517b4b6910412a6"
+
+SRCNAME = "volume_key"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit autotools python3native gettext
+
+DEPENDS += " \
+    util-linux \
+    glib-2.0 \
+    cryptsetup \
+    nss \
+    gpgme \
+"
+
+RDEPENDS_python3-${PN} += "${PN}"
+
+PACKAGES += "python3-${PN}"
+FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zlog/zlog/0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/zlog/zlog/0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch
new file mode 100644
index 0000000..71a9891
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zlog/zlog/0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch
@@ -0,0 +1,32 @@
+From b97f62fdf3b78eb5cfcb3a1b12c6fd62f735717b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2017 09:29:33 -0700
+Subject: [PATCH] event.c: Cast pthread_t to unsigned long instead of unsigned
+ int
+
+On 64bit machines it ends up in errors
+
+event.c:85:67: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
+  a_event->tid_hex_str_len = sprintf(a_event->tid_hex_str, "0x%x", (unsigned int)a_event->tid);
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/event.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/event.c b/src/event.c
+index 8f988b5..c632c33 100644
+--- a/src/event.c
++++ b/src/event.c
+@@ -82,7 +82,7 @@ zlog_event_t *zlog_event_new(int time_cache_count)
+ 	a_event->tid = pthread_self();
+ 
+ 	a_event->tid_str_len = sprintf(a_event->tid_str, "%lu", (unsigned long)a_event->tid);
+-	a_event->tid_hex_str_len = sprintf(a_event->tid_hex_str, "0x%x", (unsigned int)a_event->tid);
++	a_event->tid_hex_str_len = sprintf(a_event->tid_hex_str, "0x%lu", (unsigned long)a_event->tid);
+ 
+ 	//zlog_event_profile(a_event, ZC_DEBUG);
+ 	return a_event;
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb
index 51c746f..86e6d30 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zlog/zlog_git.bb
@@ -6,7 +6,9 @@
 PV = "1.2.12+git${SRCPV}"
 
 SRCREV = "13904dab2878aa2654d0c20fb8600a3dc5f2dd68"
-SRC_URI = "git://github.com/HardySimpson/zlog"
+SRC_URI = "git://github.com/HardySimpson/zlog \
+           file://0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch \
+           "
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb
index e07f570..dfd75e7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb
@@ -1,6 +1,6 @@
 SUMMARY = "Linux zram compressed in-memory swap"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 inherit update-rc.d systemd
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.3.1.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.0.5.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.3.1.bb
index 39b2d95..1f5e390 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.3.1.bb
@@ -11,8 +11,8 @@
 DEPENDS = "ncurses bison-native libcap libpcre gdbm groff-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "6fb0e3e52a0f8de5ca63138391b81ce0"
-SRC_URI[sha256sum] = "b35cf19e4a6ba39fd03c6372b8a8760a491cc2e2e4aba3d15023ff291c2894b4"
+SRC_URI[md5sum] = "d583fbca0c2410bf9542ce8a651c26ca"
+SRC_URI[sha256sum] = "3d94a590ff3c562ecf387da78ac356d6bea79b050a9ef81e3ecb9f8ee513040e"
 
 inherit autotools gettext update-alternatives
 
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
new file mode 100644
index 0000000..06f3bb3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Common macros for building GNOME applications"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SECTION = "x11/gnome"
+inherit gnomebase allarch
+
+SRC_URI[archive.md5sum] = "933258d9c23e218eb6eec9cc1951b053"
+SRC_URI[archive.sha256sum] = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf"
+
+EXTRA_AUTORECONF = ""
+DEPENDS = ""
+
+FILES_${PN} += "${datadir}/aclocal"
+FILES_${PN}-dev = ""
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch
deleted file mode 100644
index da4f3f4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index f5375f5..c306f23 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -1,4 +1,4 @@
--SUBDIRS = reference tutorial
-+SUBDIRS = reference
- 
- EXTRA_DIST = \
- 	COPYING \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb
deleted file mode 100644
index 34b7aa6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Gtk+Extra is a set of custom widget for plots and images"
-HOMEPAGE = "http://gtkextra.sourceforge.net/"
-
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/gtkextra/${BP}.tar.gz \
-           file://remove-tutorial.patch \
-"
-
-SRC_URI[md5sum] = "486cea93666020f85f101ed8341baf41"
-SRC_URI[sha256sum] = "9cab6c5d6b792eb828d17cec2b9c1baba2ef57f789a290464afab80b53969e65"
-
-DEPENDS = "gtk+"
-
-inherit autotools pkgconfig gobject-introspection
-
-# | ./.libs/libgtkextra-x11-3.0.so: error: undefined reference to 'roundint'
-PNBLACKLIST[gtkextra] ?= "BROKEN: Fails to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch
deleted file mode 100644
index b3eb396..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 4b17eed4b8588569d11ec4bd2b6fa3c063830e6e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Thu, 16 May 2013 18:44:50 +0200
-Subject: [PATCH] tests/main.c: fix build with glib 2.36
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: project seems dead
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- tests/main.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/tests/main.c b/tests/main.c
-index 61cce82..18165ed 100644
---- a/tests/main.c
-+++ b/tests/main.c
-@@ -30,7 +30,9 @@ main (gint argc, gchar **argv)
- {
- 	GtkWidget *browser;
- 
-+#if !GLIB_CHECK_VERSION (2, 36, 0)
- 	g_thread_init(NULL);
-+#endif
- 
- 	gtk_init (&argc, &argv);
- 
--- 
-1.7.6.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb
deleted file mode 100644
index 021b077..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SECTION = "libs"
-DEPENDS = "gtk+ glib-2.0 libxml2"
-SUMMARY = "A GTK+ HTML rendering library"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
-
-SRCREV = "1161"
-PV = "2.11.0+svnr${SRCPV}"
-PR = "r5"
-
-SRC_URI = "svn://svn.gnome.org/svn/gtkhtml2/;module=trunk;protocol=http \
-           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/css-stylesheet-user.patch;striplevel=0;name=patch2 \
-           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/css-media.patch;striplevel=0;name=patch3 \
-           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/add-end-element-signal.patch;striplevel=0;name=patch4 \
-           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/add-dom-functions.patch;striplevel=0;name=patch5 \
-           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/iain-mem-leak.patch;striplevel=0;name=patch6 \
-           file://0001-tests-main.c-fix-build-with-glib-2.36.patch \
-"
-
-SRC_URI[patch2.md5sum] = "05fc3627ca364095702dc804f41c8391"
-SRC_URI[patch2.sha256sum] = "df5cca50a8f95333505d7920929fea251daea3be25be6834a1c50a742d9eb674"
-
-SRC_URI[patch3.md5sum] = "d3fe4cda3545f3e4718f1acc186608ab"
-SRC_URI[patch3.sha256sum] = "3aefaa17ffa38143bf5df1161c51ab402d35bfbee41ab4643c313edf569165d5"
-
-SRC_URI[patch4.md5sum] = "651b1601d8a1b21c8a3040fadb729043"
-SRC_URI[patch4.sha256sum] = "d067e8331bf9c6851f1c6067d991a7f54327f532900b405ebdf8e149c071f381"
-
-SRC_URI[patch5.md5sum] = "041be9711a16e629d01487664ba97152"
-SRC_URI[patch5.sha256sum] = "42956fb41341cf82ae8bce18b4cf96a7e2aa631b1b60657afb6d7e9be7cd138c"
-
-SRC_URI[patch6.md5sum] = "4e11dc7899d68f2be2e06ccee01d296d"
-SRC_URI[patch6.sha256sum] = "1e2cc080e654c1839c5cb4b4adf4c62a23e7da208427f3ba0b16cfed9e5cfa98"
-
-S = "${WORKDIR}/trunk"
-
-inherit pkgconfig autotools
-
-EXTRA_OECONF = " --disable-accessibility"
-
-PNBLACKLIST[gtkhtml2] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130633/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/assimp/assimp_3.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/assimp/assimp_3.1.1.bb
deleted file mode 100644
index 4da3dc2..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/assimp/assimp_3.1.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Open Asset Import Library is a portable Open Source library to import \
-               various well-known 3D model formats in a uniform manner."
-HOMEPAGE = "http://www.assimp.org/"
-SECTION = "devel"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bc4231a2268da8fc55525ad119638a87"
-
-DEPENDS = "boost virtual/libgl"
-
-SRC_URI = "http://sourceforge.net/projects/${BPN}/files/${BPN}-3.1/${BPN}-${PV}_no_test_models.zip"
-SRC_URI[md5sum] = "ccd4788204509da58a3a53c7aeda7a8b"
-SRC_URI[sha256sum] = "da9827876f10a8b447270368753392cfd502e70a2e9d1361554e5dfcb1fede9e"
-
-inherit cmake
-
-FILES_${PN}-dev += "${libdir}/cmake"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.28.bb
similarity index 72%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.16.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.28.bb
index daea052..9d8c90f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.16.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.28.bb
@@ -5,8 +5,8 @@
 inherit gnomebase
 
 SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.1/${BP}.tar.bz2"
-SRC_URI[md5sum] = "a1c72e5f5d55a8b736ef2fa67ddb86ec"
-SRC_URI[sha256sum] = "7d6ba55ec53ee6f6bf6945beec28839d09ff72376f4d83035eb379cd4f3e980e"
+SRC_URI[md5sum] = "cc53d8474a43aafb7cdaccea56cfde44"
+SRC_URI[sha256sum] = "63f3ed23e72a857a0e6df53d9d968a325024177b01edbe314a0c98b499eb8603"
 
 FILES_${PN} += "${libdir}/babl-*/*.so"
 FILES_${PN}-dev += "${libdir}/babl-*/*.la"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d.inc
deleted file mode 100644
index 646b785..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Clutter Box2D"
-HOMEPAGE = "http://www.clutter-project.org/"
-LICENSE = "LGPLv2.1+"
-
-# The main clutter lib is machine specific so we need to be too
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-inherit autotools pkgconfig gtk-doc
-
-do_install_append () {
-    install -d ${D}${bindir}
-    install ${S}/examples/.libs/blockbox ${D}${bindir}
-}
-
-FILESPATH = "${FILE_DIRNAME}/clutter-box2d"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb
deleted file mode 100644
index d73e2f1..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require clutter-box2d.inc
-
-LIC_FILES_CHKSUM = "file://box2d/License.txt;md5=e5d39ad91f7dc4692dcdb1d85139ec6b"
-
-# 0.12.1+gitAUTOINC+de5452e56b-r1/git/clutter-box2d/clutter-box2d.h:226:47:
-#  fatal error: clutter-box2d/clutter-box2d-child.h: No such file or directory
-# |  #include <clutter-box2d/clutter-box2d-child.h>
-PNBLACKLIST[clutter-box2d] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRCREV = "de5452e56b537a11fd7f9453d048ff4b4793b5a2"
-PV = "0.12.1+git${SRCPV}"
-PR = "r1"
-
-SRC_URI = "git://git.gnome.org/clutter-box2d.git"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += "clutter-1.0"
-PROVIDES = "clutter-box2d-1.6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch
new file mode 100644
index 0000000..87e8637
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch
@@ -0,0 +1,28 @@
+From 65e8e3c9c69f41778b6308c2f8f3262c82c6f3e1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Jun 2017 13:57:53 -0700
+Subject: [PATCH] configure.ac: Do not demand linker hash-style
+
+This helps fixing on architectures e.g. mips where gnu hash
+is not supported
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index e1dba23..7bcc039 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -65,7 +65,6 @@ CC_CHECK_CFLAGS_APPEND([ \
+         -ffunction-sections \
+         -fdata-sections \
+ 	-Wl,-O1 \
+-	-Wl,--hash-style=gnu \
+         -Wl,--as-needed \
+         -Wl,--gc-sections])
+ 
+-- 
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
index a88caf8..32f0815 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
@@ -7,8 +7,10 @@
 PV = "0.3"
 PR = "r1"
 
-SRCREV = "f7aadacbe3c19e37ea938e00a5141b577fb74a5e"
-SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git"
+SRCREV = "ef2e1a390e768e21e6a6268977580ee129a96633"
+SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git \
+           file://0001-configure.ac-Do-not-demand-linker-hash-style.patch \
+           "
 
 inherit autotools
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/files/cross_cc.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/files/cross_cc.patch
deleted file mode 100644
index 85ab1ef..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/files/cross_cc.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9b0b322d86c7b2d2cddaa62f7dab4aa669739a48 Mon Sep 17 00:00:00 2001
-From: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
-Date: Wed, 19 Mar 2014 13:18:21 +0100
-Subject: [PATCH] Upstream-Status: Pending
-
-b2ba should be built by BUILD_CC in cross environment
-This is only used when configured with --enable-hardcoded-font
-
-Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
----
- src/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index a1d4330..a8150b9 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -63,7 +63,7 @@ help-acm.cpp: fim.h
- 	$(ECHO) '//#endif' >> $@
- 
- b2ba:
--	$(CC) -o b2ba b2ba.c
-+	$(BUILD_CC) -o b2ba b2ba.c
- 
- if FIM_WANT_CUSTOM_HARDCODED_CONSOLEFONT
- default_font_byte_array.h: $(FIM_CUSTOM_HARDCODED_CONSOLEFONT) b2ba
--- 
-1.8.5.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb
deleted file mode 100644
index 7d1a3aa..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Framebuffer (scriptable) image viewer"
-DESCRIPTION = "FIM (Fbi IMproved) aims to be a highly customizable and scriptable \
-               image viewer targeted at users who are comfortable with software \
-               like the Vim text editor or the Mutt mail user agent."
-SECTION = "utils"
-HOMEPAGE = "http://www.autistici.org/dezperado/fim/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fa01bff138cc98a62b8840a157951c88"
-
-PNBLACKLIST[fim] ?= "BROKEN: doesn't build with B!=S (flex: can't open lex.lex) - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-# flex with provide /usr/include/FlexLexer.h
-DEPENDS = "flex-native bison-native flex"
-
-SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/fbi-improved/${BPN}-${PV}.tar.gz \
-           file://cross_cc.patch"
-SRC_URI[md5sum] = "d7362dde5541c2b6439c35c6e2bd5046"
-SRC_URI[sha256sum] = "3f6bf2de2952b9adcbeb3db12c2a979e999a81dd1e314a03bc58e24f1ea9f686"
-
-PARALLEL_MAKE = ""
-
-inherit autotools pkgconfig
-
-# Don't use provided regex.c
-EXTRA_OECONF = "fim_cv_regex=no fim_cv_regex_broken=no \
-    --enable-framebuffer \
-    --disable-djvu \
-    --disable-ps \
-    --disable-xcftopnm \
-    --disable-convert \
-    --disable-inkscape \
-    --disable-xfig \
-    --disable-dia \
-    --disable-aa \
-    --disable-sdl \
-    --enable-read-dirs \
-    --enable-recursive-dirs \
-    --enable-custom-status-bar \
-"
-
-# Note: imlib2 is located in meta-efl layer.
-PACKAGECONFIG ?= "jpeg rl hf"
-PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff"
-PACKAGECONFIG[gif] = "--enable-gif,--disable-gif,giflib"
-PACKAGECONFIG[pdf] = "--enable-poppler,--disable-poppler,poppler"
-PACKAGECONFIG[magick] = "--enable-graphicsmagick,--disable-graphicsmagick,imagemagick"
-PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
-PACKAGECONFIG[rl] = "--enable-readline,--disable-readline,readline"
-PACKAGECONFIG[hf] = "--enable-hardcoded-font,--disable-hardcoded-font"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20161012.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
similarity index 95%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20161012.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
index 1c3376d..d9f0867 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20161012.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
@@ -14,8 +14,8 @@
 REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
 
 SRC_URI = "git://github.com/${BPN}/${BPN}.git"
-# tag 20161012
-SRCREV = "072edb0235cd163d6c3391da9cc3754c3c66f47a"
+# tag 20170731
+SRCREV = "b9149c13e8f9464fc21473f1f676b36a2130775d"
 S = "${WORKDIR}/git"
 
 EXTRA_OECONF_append_class-native = " with_x=no"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
index 90f0216..6cc20f5 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
@@ -16,8 +16,8 @@
 
 SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.3/${BP}.tar.bz2 \
            file://pkgconfig.patch "
-SRC_URI[md5sum] = "c19478321594d715a4cb324a0decda6f"
-SRC_URI[sha256sum] = "846290a790854d1e6b7c17a2d6f82ad7cb14c72e240bd3b81b98cc0ceddbc3ec"
+SRC_URI[md5sum] = "6e5c6f229261478dc436a38c84405b2a"
+SRC_URI[sha256sum] = "d7858ef26ede136d14e3de188a9e9c0de7707061a9fb96d7d615fab4958491fb"
 
 LDFLAGS += "-lm"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch
new file mode 100644
index 0000000..7da78e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch
@@ -0,0 +1,34 @@
+From e1c8f4b8323e3965271a93529eab5774c1a7083c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Jun 2017 10:32:14 -0700
+Subject: [PATCH 3/3] Fix use of gegl API
+
+newer version of gegl does not define GEGL_IS_PARAM_SPEC_MULTILINE
+
+| core/libappcore.a(gimpparamspecs-duplicate.o): In function `gimp_param_spec_duplicate':
+| /usr/src/debug/gimp/2.8.22-r0/gimp-2.8.22/app/core/../../../../../../../../../workspace/sources/gimp/app/core/gimpparamspecs-duplicate.c:70: undefined reference to `GEGL_IS_PARAM_SPEC_MULTILINE'
+| collect2: error: ld returned 1 exit status
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ app/core/gimpparamspecs-duplicate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/app/core/gimpparamspecs-duplicate.c b/app/core/gimpparamspecs-duplicate.c
+index c0b7426..2efaf23 100644
+--- a/app/core/gimpparamspecs-duplicate.c
++++ b/app/core/gimpparamspecs-duplicate.c
+@@ -67,7 +67,7 @@ gimp_param_spec_duplicate (GParamSpec *pspec)
+                                      spec->default_value,
+                                      pspec->flags);
+ 
+-          if (GEGL_IS_PARAM_SPEC_MULTILINE (pspec))
++          if (gegl_param_spec_get_property_key(pspec, "multiline"))
+             {
+               g_param_spec_set_qdata (new, multiline_quark,
+                                       GINT_TO_POINTER (TRUE));
+-- 
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.20.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
similarity index 70%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.20.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
index 9588ab0..cd7e27a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.20.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
@@ -11,7 +11,6 @@
     gtk+ \
     babl \
     gegl \
-    libart-lgpl \
     jpeg \
     libpng \
     libexif \
@@ -27,13 +26,13 @@
 
 inherit gnome gtk-doc
 
-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 \
-    file://bump_Babl-GEGL_versions.patch \
-"
-SRC_URI[md5sum] = "d405640c426b234d6efc36fb4f5bae57"
-SRC_URI[sha256sum] = "939ca1df70be865c672ffd654f4e20f188121d01601c5c90237214101533c805"
+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 \
+           file://bump_Babl-GEGL_versions.patch \
+           file://0003-Fix-use-of-gegl-API.patch \
+           "
+SRC_URI[md5sum] = "7e4fd7a53b1d3c32dff642ab1a94b44d"
+SRC_URI[sha256sum] = "9187a35cc52b110d78124d7b27b68a68ade14a794c2721314bac6134d2a5638a"
 
 EXTRA_OECONF = "--disable-python \
                 --without-webkit \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/0001-build-Specify-std-c-11-on-cmdline.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/0001-build-Specify-std-c-11-on-cmdline.patch
deleted file mode 100644
index ffbc297..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/0001-build-Specify-std-c-11-on-cmdline.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 47bfef0dd83ed2e10ec4c615908ec926c4d5fe2e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Oct 2016 00:56:54 +0000
-Subject: [PATCH] build: Specify -std=c++11 on cmdline
-
-We use c++11 features so demand it explicitly from compiler
-
-Fixes
-| ../src/libmatrix/shader-source.cc:37:10: error: no member named 'unique_ptr' in namespace 'std'
-|     std::unique_ptr<std::istream> is_ptr(Util::get_resource(filename));
-|     ~~~~~^
-| ../src/libmatrix/shader-source.cc:37:33: error: expected '(' for function-style cast or type construction
-|     std::unique_ptr<std::istream> is_ptr(Util::get_resource(filename));
-|                     ~~~~~~~~~~~~^
-| ../src/libmatrix/shader-source.cc:37:35: error: use of undeclared identifier 'is_ptr'
-|     std::unique_ptr<std::istream> is_ptr(Util::get_resource(filename));
-|                                   ^
-| ../src/libmatrix/shader-source.cc:38:30: error: use of undeclared identifier 'is_ptr'
-|     std::istream& inputFile(*is_ptr);
-|                              ^
-| 4 errors generated.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- wscript | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wscript b/wscript
-index dcaf298..485a9fb 100644
---- a/wscript
-+++ b/wscript
-@@ -79,7 +79,7 @@ def configure(ctx):
-             ctx.check_cfg(package = pkg, uselib_store = uselib, args = '--cflags --libs',
-                           mandatory = True)
- 
--    ctx.env.append_unique('CXXFLAGS', '-Wall -Werror -Wextra'.split(' '))
-+    ctx.env.append_unique('CXXFLAGS', '-Wall -Werror -std=c++11 -Wextra'.split(' '))
- 
-     # Prepend -O# and -g flags so that they can be overriden by the CFLAGS environment variable
-     if Options.options.opt:
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/0001-waf-Disable-errors-due-to-Wdeprecated.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/0001-waf-Disable-errors-due-to-Wdeprecated.patch
deleted file mode 100644
index deb6016..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/0001-waf-Disable-errors-due-to-Wdeprecated.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 49297e2fbe0420a255cbe67989d0ec539125412c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 23 Apr 2017 10:38:24 -0700
-Subject: [PATCH] waf: Disable errors due to -Wdeprecated
-
-throw() has been deprecated in c++11 and removed
-from c++17, gcc7 is more pedandic about this warning
-we therefore add a workaround to ignore this warning
-for now.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- wscript | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wscript b/wscript
-index 485a9fb..7f59761 100644
---- a/wscript
-+++ b/wscript
-@@ -79,7 +79,7 @@ def configure(ctx):
-             ctx.check_cfg(package = pkg, uselib_store = uselib, args = '--cflags --libs',
-                           mandatory = True)
- 
--    ctx.env.append_unique('CXXFLAGS', '-Wall -Werror -std=c++11 -Wextra'.split(' '))
-+    ctx.env.append_unique('CXXFLAGS', '-Wall -Werror -std=c++11 -Wextra -Wno-error=deprecated'.split(' '))
- 
-     # Prepend -O# and -g flags so that they can be overriden by the CFLAGS environment variable
-     if Options.options.opt:
--- 
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix-configure-for-sqrt-check.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix-configure-for-sqrt-check.patch
deleted file mode 100755
index 4831c40..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix-configure-for-sqrt-check.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: git/wscript
-===================================================================
---- git.orig/wscript	2016-07-29 13:15:44.954249796 -0500
-+++ git/wscript	2016-07-29 15:52:06.196768865 -0500
-@@ -56,7 +56,7 @@
-         ctx.check_cxx(lib = lib, uselib_store = uselib)
- 
-     # Check required functions
--    req_funcs = [('gettimeofday', 'sys/time.h', []) ,('sqrt', 'math.h', ['m']),
-+    req_funcs = [('gettimeofday', 'sys/time.h', []),
-                  ('strtol', 'stdlib.h', []), ('strtoul', 'stdlib.h', [])]
-     for func, header, uselib in req_funcs:
-         ctx.check_cxx(function_name = func, header_name = header, uselib = uselib, mandatory = True)
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix_auto_ptr_deprecated.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix_auto_ptr_deprecated.patch
deleted file mode 100755
index 930c7cb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix_auto_ptr_deprecated.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -aur glcompbench-2012.08/src/libmatrix/shader-source.cc Fixed/src/libmatrix/shader-source.cc
---- glcompbench-2012.08/src/libmatrix/shader-source.cc	2012-08-22 13:41:36.000000000 -0500
-+++ Fixed/src/libmatrix/shader-source.cc	2016-08-24 14:23:49.576023317 -0500
-@@ -34,7 +34,7 @@
- bool
- ShaderSource::load_file(const std::string& filename, std::string& str)
- {
--    std::auto_ptr<std::istream> is_ptr(Util::get_resource(filename));
-+    std::unique_ptr<std::istream> is_ptr(Util::get_resource(filename));
-     std::istream& inputFile(*is_ptr);
- 
-     if (!inputFile)
-diff -aur glcompbench-2012.08/src/texture.cc Fixed/src/texture.cc
---- glcompbench-2012.08/src/texture.cc	2012-08-22 13:41:36.000000000 -0500
-+++ Fixed/src/texture.cc	2016-08-24 14:23:28.223917438 -0500
-@@ -52,7 +52,7 @@
- 
-         Log::debug("Reading PNG file %s\n", filename.c_str());
- 
--        const std::auto_ptr<std::istream> is_ptr(Util::get_resource(filename));
-+        const std::unique_ptr<std::istream> is_ptr(Util::get_resource(filename));
-         if (!(*is_ptr)) {
-             Log::error("Cannot open file %s!\n", filename.c_str());
-             return false;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix_space_issues.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix_space_issues.patch
deleted file mode 100755
index 516baad..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/Fix_space_issues.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -aur glcompbench-2012.08/src/composite-canvas.cc Fixed/src/composite-canvas.cc
---- glcompbench-2012.08/src/composite-canvas.cc	2012-08-22 13:41:36.000000000 -0500
-+++ Fixed/src/composite-canvas.cc	2016-08-24 14:05:28.970565709 -0500
-@@ -41,7 +41,7 @@
- #include "log.h"
- #include "profiler.h"
- 
--const std::string glcompbench_version_string("glcompbench "GLCOMPBENCH_VERSION);
-+const std::string glcompbench_version_string("glcompbench " GLCOMPBENCH_VERSION);
- 
- /*******************
-  * Private methods *
-@@ -495,7 +495,7 @@
-     // When we complete an iteration, reset the count and tell the caller.
- 
-     if (stats.total >= current_test_duration_) {
--        Log::info("FPS: %"PRIu64"\n", (uint64_t)(1000 * stats.nsamples / stats.total));
-+        Log::info("FPS: %" PRIu64 "\n", (uint64_t)(1000 * stats.nsamples / stats.total));
- 
-         for (Profiler::Point p = 0; p < profiler.get_num_points(); p += 2) {
-             profiler.get_stats(p, p + 1, stats);
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/glbench-compile-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/glbench-compile-fix.patch
deleted file mode 100644
index 374a6cf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/glbench-compile-fix.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From c4bc44c3abf69f26e4c2b7684f4da4670a51f993 Mon Sep 17 00:00:00 2001
-From: Prabhu Sundararaj <prabhu.sundararaj@freescale.com>
-Date: Tue, 5 Nov 2013 11:03:04 -0600
-Subject: [PATCH] to make compilable
-
-Upstream Status: Inappropriate [workaround]
-
-Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@freescale.com>
----
- src/composite-test-simple-blur.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/composite-test-simple-blur.cc b/src/composite-test-simple-blur.cc
-index 170ad64..d7f77cf 100644
---- a/src/composite-test-simple-blur.cc
-+++ b/src/composite-test-simple-blur.cc
-@@ -347,6 +347,7 @@ CompositeTestSimpleBlur::CompositeTestSimpleBlur() :
- 
- CompositeTestSimpleBlur::~CompositeTestSimpleBlur()
- {
-+#if 0
-     for (BlurWindowMapType::iterator winIt = priv_->windowMap.begin();
-          winIt != priv_->windowMap.end();
-          winIt++)
-@@ -354,6 +355,7 @@ CompositeTestSimpleBlur::~CompositeTestSimpleBlur()
-         RenderWindowBlur* ro = winIt->second;
-         delete ro;
-     }
-+#endif
-     delete priv_;
- }
- 
--- 
-1.8.1.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench_2012.08.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench_2012.08.bb
deleted file mode 100755
index e846585..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench_2012.08.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A benchmark for GL(ES)2 based compositing operations"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-
-DEPENDS = "virtual/libgl virtual/egl virtual/libgles1 virtual/libgles2 \
-           virtual/libx11 libxcomposite pixman libxrender libpng12"
-
-SRC_URI = "https://launchpad.net/glcompbench/trunk/${PV}/+download/${BPN}-${PV}.tar.gz \
-           file://glbench-compile-fix.patch \
-           file://Fix-configure-for-sqrt-check.patch \
-           file://Fix_space_issues.patch \
-           file://Fix_auto_ptr_deprecated.patch \
-           file://0001-build-Specify-std-c-11-on-cmdline.patch \
-           file://0001-waf-Disable-errors-due-to-Wdeprecated.patch \
-           "
-
-SRC_URI[md5sum] = "c939d9156fe940960098f38707fea827"
-SRC_URI[sha256sum] = "b04b738cec06c6786ceafa86e4735fd8b971c078265754854ef356b0379542ee"
-
-inherit pkgconfig waf distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
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.8.bb
index 5e798ef..4434af9 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.8.bb
@@ -31,7 +31,7 @@
 PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev"
 
 do_configure_append() {
-    cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/
+    cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/
     cd ${S}/libgphoto2_port/
     autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
     cd ${S}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.73.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb
similarity index 69%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.73.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb
index c32d24a..91fa00c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.73.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb
@@ -1,11 +1,11 @@
 DESCRIPTION = "A pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications"
 DEPENDS = "jpeg tiff libpng zlib"
 LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=20cdd3af097ca431b82004c691f406a6"
+LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=34aa579294e8284b7b848c8d5d361e8f"
 
 SRC_URI = "http://leptonica.com/source/leptonica-${PV}.tar.gz"
-SRC_URI[md5sum] = "092cea2e568cada79fff178820397922"
-SRC_URI[sha256sum] = "19e4335c674e7b78af9338d5382cc5266f34a62d4ce533d860af48eaa859afc1"
+SRC_URI[md5sum] = "4f32be9bd2e2c142ba018037ab5d746f"
+SRC_URI[sha256sum] = "29c35426a416bf454413c6fec24c24a0b633e26144a17e98351b6dffaa4a833b"
 
 EXTRA_OECONF += " \
     --without-libwebp \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy.inc
deleted file mode 100644
index 5a11ca0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Libsexy is a collection of GTK+ widgets that extend the functionality of such standard widgets as GtkEntry and GtkLabel"
-HOMEPAGE = "http://wiki.chipx86.com/wiki/Libsexy"
-AUTHOR = "Christian Hammond <chipx86@chipx86.com>"
-SECTION = "x11/libs"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-DEPENDS = "gtk+ enchant libxml2"
-
-SRC_URI = "http://releases.chipx86.com/libsexy/${BPN}/${BP}.tar.gz \
-           file://libsexy-pkgconfig-fixes.patch"
-
-inherit autotools pkgconfig
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch
deleted file mode 100644
index 61da947..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: libsexy-0.1.11/libsexy.pc.in
-===================================================================
---- libsexy-0.1.11.orig/libsexy.pc.in	2005-11-10 10:21:18.000000000 +0000
-+++ libsexy-0.1.11/libsexy.pc.in	2008-03-05 14:36:39.000000000 +0000
-@@ -6,7 +6,8 @@
- Name: libsexy
- Description: Doing naughty things to good widgets
- Version: @VERSION@
--Libs: -L${libdir} -lsexy @PACKAGE_LIBS@
--Cflags: -I${includedir} @PACKAGE_CFLAGS@
- 
-+Requires: pango glib-2.0 gtk+-2.0 libxml-2.0
-+Libs: -L${libdir} -lsexy 
-+Cflags: -I${includedir}
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb
deleted file mode 100644
index 2ba1ebb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require libsexy.inc
-
-PR = "r2"
-
-SRC_URI[md5sum] = "33c079a253270ec8bfb9508e4bb30754"
-SRC_URI[sha256sum] = "8c4101a8cda5fccbba85ba1a15f46f2cf75deaa8b3c525ce5b135b9e1a8fe49e"
-
-PNBLACKLIST[libsexy] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130607/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
deleted file mode 100644
index 8f4365c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 5c2a94d..f98038a 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,7 +1,7 @@
- ACLOCAL_AMFLAGS = -I m4
- 
--SUBDIRS=libvncserver examples libvncclient webclients client_examples test
--DIST_SUBDIRS=libvncserver examples libvncclient webclients client_examples test
-+SUBDIRS=libvncserver examples libvncclient client_examples test
-+DIST_SUBDIRS=libvncserver examples libvncclient client_examples test
- EXTRA_DIST = CMakeLists.txt rfb/rfbint.h.cmake rfb/rfbconfig.h.cmake
- 
- bin_SCRIPTS = libvncserver-config
-diff --git a/configure.ac b/configure.ac
-index ca9f3b3..9b464cf 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -600,9 +600,6 @@ AC_CONFIG_FILES([Makefile
- 	libvncserver/Makefile
- 	examples/Makefile
- 	examples/android/Makefile
--	webclients/Makefile
--	webclients/java-applet/Makefile
--	webclients/java-applet/ssl/Makefile
- 	libvncclient/Makefile
- 	client_examples/Makefile
- 	test/Makefile
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch
deleted file mode 100644
index 8b70d2f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch
+++ /dev/null
@@ -1,524 +0,0 @@
-diff --git a/common/sha1.c b/common/sha1.c
-new file mode 100644
-index 0000000..988b188
---- /dev/null
-+++ b/common/sha1.c
-@@ -0,0 +1,411 @@
-+/*
-+ * Copyright (C) The Internet Society (2001).  All Rights Reserved.
-+ *
-+ * This document and translations of it may be copied and furnished to
-+ * others, and derivative works that comment on or otherwise explain it
-+ * or assist in its implementation may be prepared, copied, published
-+ * and distributed, in whole or in part, without restriction of any
-+ * kind, provided that the above copyright notice and this paragraph are
-+ * included on all such copies and derivative works.  However, this
-+ * document itself may not be modified in any way, such as by removing
-+ * the copyright notice or references to the Internet Society or other
-+ * Internet organizations, except as needed for the purpose of
-+ * developing Internet standards in which case the procedures for
-+ * copyrights defined in the Internet Standards process must be
-+ * followed, or as required to translate it into languages other than
-+ * English.
-+ *
-+ * The limited permissions granted above are perpetual and will not be
-+ * revoked by the Internet Society or its successors or assigns.
-+ *
-+ * This document and the information contained herein is provided on an
-+ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
-+ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-+ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-+ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-+ */
-+
-+/*
-+ *  sha1.c
-+ *
-+ *  Description:
-+ *      This file implements the Secure Hashing Algorithm 1 as
-+ *      defined in FIPS PUB 180-1 published April 17, 1995.
-+ *
-+ *      The SHA-1, produces a 160-bit message digest for a given
-+ *      data stream.  It should take about 2**n steps to find a
-+ *      message with the same digest as a given message and
-+ *      2**(n/2) to find any two messages with the same digest,
-+ *      when n is the digest size in bits.  Therefore, this
-+ *      algorithm can serve as a means of providing a
-+ *      "fingerprint" for a message.
-+ *
-+ *  Portability Issues:
-+ *      SHA-1 is defined in terms of 32-bit "words".  This code
-+ *      uses <stdint.h> (included via "sha1.h" to define 32 and 8
-+ *      bit unsigned integer types.  If your C compiler does not
-+ *      support 32 bit unsigned integers, this code is not
-+ *      appropriate.
-+ *
-+ *  Caveats:
-+ *      SHA-1 is designed to work with messages less than 2^64 bits
-+ *      long.  Although SHA-1 allows a message digest to be generated
-+ *      for messages of any number of bits less than 2^64, this
-+ *      implementation only works with messages with a length that is
-+ *      a multiple of the size of an 8-bit character.
-+ *
-+ */
-+
-+#include "sha1.h"
-+
-+/*
-+ *  Define the SHA1 circular left shift macro
-+ */
-+#define SHA1CircularShift(bits,word) \
-+                (((word) << (bits)) | ((word) >> (32-(bits))))
-+
-+/* Local Function Prototyptes */
-+void SHA1PadMessage(SHA1Context *);
-+void SHA1ProcessMessageBlock(SHA1Context *);
-+
-+/*
-+ *  SHA1Reset
-+ *
-+ *  Description:
-+ *      This function will initialize the SHA1Context in preparation
-+ *      for computing a new SHA1 message digest.
-+ *
-+ *  Parameters:
-+ *      context: [in/out]
-+ *          The context to reset.
-+ *
-+ *  Returns:
-+ *      sha Error Code.
-+ *
-+ */
-+int SHA1Reset(SHA1Context *context)
-+{
-+    if (!context)
-+    {
-+        return shaNull;
-+    }
-+
-+    context->Length_Low             = 0;
-+    context->Length_High            = 0;
-+    context->Message_Block_Index    = 0;
-+
-+    context->Intermediate_Hash[0]   = 0x67452301;
-+    context->Intermediate_Hash[1]   = 0xEFCDAB89;
-+    context->Intermediate_Hash[2]   = 0x98BADCFE;
-+    context->Intermediate_Hash[3]   = 0x10325476;
-+    context->Intermediate_Hash[4]   = 0xC3D2E1F0;
-+
-+    context->Computed   = 0;
-+    context->Corrupted  = 0;
-+    return shaSuccess;
-+}
-+
-+/*
-+ *  SHA1Result
-+ *
-+ *  Description:
-+ *      This function will return the 160-bit message digest into the
-+ *      Message_Digest array  provided by the caller.
-+ *      NOTE: The first octet of hash is stored in the 0th element,
-+ *            the last octet of hash in the 19th element.
-+ *
-+ *  Parameters:
-+ *      context: [in/out]
-+ *          The context to use to calculate the SHA-1 hash.
-+ *      Message_Digest: [out]
-+ *          Where the digest is returned.
-+ *
-+ *  Returns:
-+ *      sha Error Code.
-+ *
-+ */
-+int SHA1Result( SHA1Context *context,
-+                uint8_t Message_Digest[SHA1HashSize])
-+{
-+    int i;
-+
-+    if (!context || !Message_Digest)
-+    {
-+        return shaNull;
-+    }
-+
-+    if (context->Corrupted)
-+    {
-+        return context->Corrupted;
-+    }
-+
-+    if (!context->Computed)
-+    {
-+        SHA1PadMessage(context);
-+        for(i=0; i<64; ++i)
-+        {
-+            /* message may be sensitive, clear it out */
-+            context->Message_Block[i] = 0;
-+        }
-+        context->Length_Low = 0;    /* and clear length */
-+        context->Length_High = 0;
-+        context->Computed = 1;
-+    }
-+
-+    for(i = 0; i < SHA1HashSize; ++i)
-+    {
-+        Message_Digest[i] = context->Intermediate_Hash[i>>2]
-+                            >> 8 * ( 3 - ( i & 0x03 ) );
-+    }
-+
-+    return shaSuccess;
-+}
-+
-+/*
-+ *  SHA1Input
-+ *
-+ *  Description:
-+ *      This function accepts an array of octets as the next portion
-+ *      of the message.
-+ *
-+ *  Parameters:
-+ *      context: [in/out]
-+ *          The SHA context to update
-+ *      message_array: [in]
-+ *          An array of characters representing the next portion of
-+ *          the message.
-+ *      length: [in]
-+ *          The length of the message in message_array
-+ *
-+ *  Returns:
-+ *      sha Error Code.
-+ *
-+ */
-+int SHA1Input(    SHA1Context    *context,
-+                  const uint8_t  *message_array,
-+                  unsigned       length)
-+{
-+    if (!length)
-+    {
-+        return shaSuccess;
-+    }
-+
-+    if (!context || !message_array)
-+    {
-+        return shaNull;
-+    }
-+
-+    if (context->Computed)
-+    {
-+        context->Corrupted = shaStateError;
-+        return shaStateError;
-+    }
-+
-+    if (context->Corrupted)
-+    {
-+         return context->Corrupted;
-+    }
-+    while(length-- && !context->Corrupted)
-+    {
-+    context->Message_Block[context->Message_Block_Index++] =
-+                    (*message_array & 0xFF);
-+
-+    context->Length_Low += 8;
-+    if (context->Length_Low == 0)
-+    {
-+        context->Length_High++;
-+        if (context->Length_High == 0)
-+        {
-+            /* Message is too long */
-+            context->Corrupted = 1;
-+        }
-+    }
-+
-+    if (context->Message_Block_Index == 64)
-+    {
-+        SHA1ProcessMessageBlock(context);
-+    }
-+
-+    message_array++;
-+    }
-+
-+    return shaSuccess;
-+}
-+
-+/*
-+ *  SHA1ProcessMessageBlock
-+ *
-+ *  Description:
-+ *      This function will process the next 512 bits of the message
-+ *      stored in the Message_Block array.
-+ *
-+ *  Parameters:
-+ *      None.
-+ *
-+ *  Returns:
-+ *      Nothing.
-+ *
-+ *  Comments:
-+ *      Many of the variable names in this code, especially the
-+ *      single character names, were used because those were the
-+ *      names used in the publication.
-+ *
-+ *
-+ */
-+void SHA1ProcessMessageBlock(SHA1Context *context)
-+{
-+    const uint32_t K[] =    {       /* Constants defined in SHA-1   */
-+                            0x5A827999,
-+                            0x6ED9EBA1,
-+                            0x8F1BBCDC,
-+                            0xCA62C1D6
-+                            };
-+    int           t;                 /* Loop counter                */
-+    uint32_t      temp;              /* Temporary word value        */
-+    uint32_t      W[80];             /* Word sequence               */
-+    uint32_t      A, B, C, D, E;     /* Word buffers                */
-+
-+    /*
-+     *  Initialize the first 16 words in the array W
-+     */
-+    for(t = 0; t < 16; t++)
-+    {
-+        W[t] = context->Message_Block[t * 4] << 24;
-+        W[t] |= context->Message_Block[t * 4 + 1] << 16;
-+        W[t] |= context->Message_Block[t * 4 + 2] << 8;
-+        W[t] |= context->Message_Block[t * 4 + 3];
-+    }
-+
-+    for(t = 16; t < 80; t++)
-+    {
-+       W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
-+    }
-+
-+    A = context->Intermediate_Hash[0];
-+    B = context->Intermediate_Hash[1];
-+    C = context->Intermediate_Hash[2];
-+    D = context->Intermediate_Hash[3];
-+    E = context->Intermediate_Hash[4];
-+
-+    for(t = 0; t < 20; t++)
-+    {
-+        temp =  SHA1CircularShift(5,A) +
-+                ((B & C) | ((~B) & D)) + E + W[t] + K[0];
-+        E = D;
-+        D = C;
-+        C = SHA1CircularShift(30,B);
-+        B = A;
-+        A = temp;
-+    }
-+
-+    for(t = 20; t < 40; t++)
-+    {
-+        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
-+        E = D;
-+        D = C;
-+        C = SHA1CircularShift(30,B);
-+        B = A;
-+        A = temp;
-+    }
-+
-+    for(t = 40; t < 60; t++)
-+    {
-+        temp = SHA1CircularShift(5,A) +
-+               ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
-+        E = D;
-+        D = C;
-+        C = SHA1CircularShift(30,B);
-+        B = A;
-+        A = temp;
-+    }
-+
-+    for(t = 60; t < 80; t++)
-+    {
-+        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
-+        E = D;
-+        D = C;
-+        C = SHA1CircularShift(30,B);
-+        B = A;
-+        A = temp;
-+    }
-+
-+    context->Intermediate_Hash[0] += A;
-+    context->Intermediate_Hash[1] += B;
-+    context->Intermediate_Hash[2] += C;
-+    context->Intermediate_Hash[3] += D;
-+    context->Intermediate_Hash[4] += E;
-+
-+    context->Message_Block_Index = 0;
-+}
-+
-+
-+/*
-+ *  SHA1PadMessage
-+ *
-+ *  Description:
-+ *      According to the standard, the message must be padded to an even
-+ *      512 bits.  The first padding bit must be a '1'.  The last 64
-+ *      bits represent the length of the original message.  All bits in
-+ *      between should be 0.  This function will pad the message
-+ *      according to those rules by filling the Message_Block array
-+ *      accordingly.  It will also call the ProcessMessageBlock function
-+ *      provided appropriately.  When it returns, it can be assumed that
-+ *      the message digest has been computed.
-+ *
-+ *  Parameters:
-+ *      context: [in/out]
-+ *          The context to pad
-+ *      ProcessMessageBlock: [in]
-+ *          The appropriate SHA*ProcessMessageBlock function
-+ *  Returns:
-+ *      Nothing.
-+ *
-+ */
-+
-+void SHA1PadMessage(SHA1Context *context)
-+{
-+    /*
-+     *  Check to see if the current message block is too small to hold
-+     *  the initial padding bits and length.  If so, we will pad the
-+     *  block, process it, and then continue padding into a second
-+     *  block.
-+     */
-+    if (context->Message_Block_Index > 55)
-+    {
-+        context->Message_Block[context->Message_Block_Index++] = 0x80;
-+        while(context->Message_Block_Index < 64)
-+        {
-+            context->Message_Block[context->Message_Block_Index++] = 0;
-+        }
-+
-+        SHA1ProcessMessageBlock(context);
-+
-+        while(context->Message_Block_Index < 56)
-+        {
-+            context->Message_Block[context->Message_Block_Index++] = 0;
-+        }
-+    }
-+    else
-+    {
-+        context->Message_Block[context->Message_Block_Index++] = 0x80;
-+        while(context->Message_Block_Index < 56)
-+        {
-+            context->Message_Block[context->Message_Block_Index++] = 0;
-+        }
-+    }
-+
-+    /*
-+     *  Store the message length as the last 8 octets
-+     */
-+    context->Message_Block[56] = context->Length_High >> 24;
-+    context->Message_Block[57] = context->Length_High >> 16;
-+    context->Message_Block[58] = context->Length_High >> 8;
-+    context->Message_Block[59] = context->Length_High;
-+    context->Message_Block[60] = context->Length_Low >> 24;
-+    context->Message_Block[61] = context->Length_Low >> 16;
-+    context->Message_Block[62] = context->Length_Low >> 8;
-+    context->Message_Block[63] = context->Length_Low;
-+
-+    SHA1ProcessMessageBlock(context);
-+}
-diff --git a/common/sha1.h b/common/sha1.h
-new file mode 100644
-index 0000000..1d49b1b
---- /dev/null
-+++ b/common/sha1.h
-@@ -0,0 +1,101 @@
-+/*
-+ * Copyright (C) The Internet Society (2001).  All Rights Reserved.
-+ *
-+ * This document and translations of it may be copied and furnished to
-+ * others, and derivative works that comment on or otherwise explain it
-+ * or assist in its implementation may be prepared, copied, published
-+ * and distributed, in whole or in part, without restriction of any
-+ * kind, provided that the above copyright notice and this paragraph are
-+ * included on all such copies and derivative works.  However, this
-+ * document itself may not be modified in any way, such as by removing
-+ * the copyright notice or references to the Internet Society or other
-+ * Internet organizations, except as needed for the purpose of
-+ * developing Internet standards in which case the procedures for
-+ * copyrights defined in the Internet Standards process must be
-+ * followed, or as required to translate it into languages other than
-+ * English.
-+ *
-+ * The limited permissions granted above are perpetual and will not be
-+ * revoked by the Internet Society or its successors or assigns.
-+ *
-+ * This document and the information contained herein is provided on an
-+ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
-+ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-+ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-+ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-+ */
-+
-+/*
-+ *  sha1.h
-+ *
-+ *  Description:
-+ *      This is the header file for code which implements the Secure
-+ *      Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
-+ *      April 17, 1995.
-+ *
-+ *      Many of the variable names in this code, especially the
-+ *      single character names, were used because those were the names
-+ *      used in the publication.
-+ *
-+ *      Please read the file sha1.c for more information.
-+ *
-+ */
-+
-+
-+#ifndef _SHA1_H_
-+#define _SHA1_H_
-+
-+#include <stdint.h>
-+/*
-+ * If you do not have the ISO standard stdint.h header file, then you
-+ * must typdef the following:
-+ *    name              meaning
-+ *  uint32_t         unsigned 32 bit integer
-+ *  uint8_t          unsigned 8 bit integer (i.e., unsigned char)
-+ *  int_least16_t    integer of >= 16 bits
-+ *
-+ */
-+
-+#ifndef _SHA_enum_
-+#define _SHA_enum_
-+enum
-+{
-+    shaSuccess = 0,
-+    shaNull,            /* Null pointer parameter */
-+    shaInputTooLong,    /* input data too long */
-+    shaStateError       /* called Input after Result */
-+};
-+#endif
-+#define SHA1HashSize 20
-+
-+/*
-+ *  This structure will hold context information for the SHA-1
-+ *  hashing operation
-+ */
-+typedef struct SHA1Context
-+{
-+    uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest  */
-+
-+    uint32_t Length_Low;            /* Message length in bits      */
-+    uint32_t Length_High;           /* Message length in bits      */
-+
-+                               /* Index into message block array   */
-+    int_least16_t Message_Block_Index;
-+    uint8_t Message_Block[64];      /* 512-bit message blocks      */
-+
-+    int Computed;               /* Is the digest computed?         */
-+    int Corrupted;             /* Is the message digest corrupted? */
-+} SHA1Context;
-+
-+/*
-+ *  Function Prototypes
-+ */
-+int SHA1Reset(  SHA1Context *);
-+int SHA1Input(  SHA1Context *,
-+                const uint8_t *,
-+                unsigned int);
-+int SHA1Result( SHA1Context *,
-+                uint8_t Message_Digest[SHA1HashSize]);
-+
-+#endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-format_string.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-format_string.patch
deleted file mode 100644
index 566a208..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-format_string.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Luca Falavigna <dktrkranz@debian.org>
-Date: Tue, 27 Jan 2015 01:26:04 +0000
-Subject: format_string
-
----
- client_examples/gtkvncviewer.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/client_examples/gtkvncviewer.c b/client_examples/gtkvncviewer.c
-index 261b2da..861e4e3 100644
---- a/client_examples/gtkvncviewer.c
-+++ b/client_examples/gtkvncviewer.c
-@@ -588,7 +588,7 @@ static void GtkDefaultLog (const char *format, ...)
- 
- 	time (&log_clock);
- 	strftime (buf, 255, "%d/%m/%Y %X ", localtime (&log_clock));
--	fprintf (stdout, buf);
-+	fprintf (stdout, "%s", buf);
- 
- 	vfprintf (stdout, format, args);
- 	fflush (stdout);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb
deleted file mode 100644
index 0eba87c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "library for easy implementation of a RDP/VNC server"
-HOMEPAGE = "https://libvnc.github.io"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
-
-DEPENDS += "zlib libsdl jpeg libpng gtk+ libgcrypt nettle gnutls gmp"
-RDEPENDS_${PN} += "libpng gtk+ libgcrypt"
-
-inherit autotools binconfig pkgconfig
-
-SRC_URI  = "\
-    ${DEBIAN_MIRROR}/main/libv/libvncserver/libvncserver_0.9.10+dfsg.orig.tar.xz \
-    file://0001-remove-webclients-build.patch \
-    file://0002-common-add-sha1.patch \
-    file://0002-format_string.patch \
-"
-
-SRC_URI[md5sum] = "e883b6c7bd339a5e1c48645051abe5c4"
-SRC_URI[sha256sum] = "583f28869b82aec57768d7d18cd7ff81bf092ecbbc1209b587c2c2cd68330250"
-
-S = "${WORKDIR}/${BPN}-LibVNCServer-${PV}"
-
-EXTRA_OECONF += "--without-libva"
-
-TARGET_LDFLAGS += "-lgcrypt"
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
new file mode 100644
index 0000000..457d721
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "library for easy implementation of a RDP/VNC server"
+HOMEPAGE = "https://libvnc.github.io"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
+
+DEPENDS += "zlib libsdl jpeg libpng gtk+ libgcrypt nettle gnutls gmp"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+PACKAGECONFIG[systemd] = ",,systemd"
+
+RDEPENDS_${PN} += "libpng gtk+ libgcrypt"
+
+inherit autotools binconfig pkgconfig
+
+SRC_URI = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${PV}.tar.gz"
+SRC_URI[md5sum] = "7f06104d5c009813e95142932c4ddb06"
+SRC_URI[sha256sum] = "193d630372722a532136fd25c5326b2ca1a636cbb8bf9bb115ef869c804d2894"
+
+S = "${WORKDIR}/${BPN}-LibVNCServer-${PV}"
+
+TARGET_LDFLAGS += "-lgcrypt"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
index c98c3a1..8e7efcd 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
@@ -34,7 +34,7 @@
 "
 
 do_configure_prepend() {
-    cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/
+    cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/
 }
 
 do_compile_append() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch
new file mode 100644
index 0000000..866d9aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch
@@ -0,0 +1,31 @@
+From 226f07e4b49c2757b181c62e6841000c512054e3 Mon Sep 17 00:00:00 2001
+From: Even Rouault <even.rouault@spatialys.com>
+Date: Mon, 14 Aug 2017 17:26:58 +0200
+Subject: [PATCH] bmp_read_info_header(): reject bmp files with biBitCount == 0
+ (#983)
+
+Upstream-Status: Backport [https://github.com/uclouvain/openjpeg/commit/baf0c1ad4572daa89caa3b12985bdd93530f0dd7]
+CVE: CVE-2017-12982
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ src/bin/jp2/convertbmp.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c
+index b49e7a0..2715fdf 100644
+--- a/src/bin/jp2/convertbmp.c
++++ b/src/bin/jp2/convertbmp.c
+@@ -392,6 +392,10 @@ static OPJ_BOOL bmp_read_info_header(FILE* IN, OPJ_BITMAPINFOHEADER* header)
+ 
+     header->biBitCount  = (OPJ_UINT16)getc(IN);
+     header->biBitCount |= (OPJ_UINT16)((OPJ_UINT32)getc(IN) << 8);
++    if (header->biBitCount == 0) {
++        fprintf(stderr, "Error, invalid biBitCount %d\n", 0);
++        return OPJ_FALSE;
++    }
+ 
+     if (header->biSize >= 40U) {
+         header->biCompression  = (OPJ_UINT32)getc(IN);
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb
similarity index 65%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.1.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb
index fa4f796..4ef1c40 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.1.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb
@@ -4,9 +4,11 @@
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c"
 
-SRC_URI = "https://github.com/uclouvain/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
-SRC_URI[md5sum] = "0cc4b2aee0a9b6e9e21b7abcd201a3ec"
-SRC_URI[sha256sum] = "82c27f47fc7219e2ed5537ac69545bf15ed8c6ba8e6e1e529f89f7356506dbaa"
+SRC_URI = "https://github.com/uclouvain/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+           file://0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch \
+          "
+SRC_URI[md5sum] = "269bb0b175476f3addcc0d03bd9a97b6"
+SRC_URI[sha256sum] = "6fddbce5a618e910e03ad00d66e7fcd09cc6ee307ce69932666d54c73b7c6e7b"
 
 inherit cmake
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch
deleted file mode 100644
index de82d63..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch
+++ /dev/null
@@ -1,343 +0,0 @@
-From 24e548a222f0aab4313d5ba8b04f0840b173000f Mon Sep 17 00:00:00 2001
-From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
-Date: Mon, 30 Aug 2010 01:24:54 +0000
-Subject: [PATCH 2/8] Fix image handling integer overflows
-
-Image loading memory allocation is based on the image width and height:
- malloc(heigth * width * 3).  Providing an image with large height and
-width values can cause the result of this calculation to exceed the
-maximum value of an unsigned int and thus causes an integer overflow.
-The result: too little memory is allocated and an heap overflow occurs.
-
-This patch was based by Niels Heinen <niels@freebsd.org>
-Thanks!
-
-Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-
-git-svn-id: svn://svn.berlios.de/slim/trunk@176 7c53e7cc-98ea-0310-8f1f-a0b24da60408
----
- const.h |    3 ++
- jpeg.c  |   51 +++++++++++++++-----------
- png.c   |  122 ++++++++++++++++++++++++++++++++------------------------------
- 3 files changed, 96 insertions(+), 80 deletions(-)
-
-diff --git a/const.h b/const.h
-index df0989c..a18c6f3 100644
---- a/const.h
-+++ b/const.h
-@@ -42,4 +42,7 @@
- // variables replaced in pre-session_cmd and post-session_cmd
- #define USER_VAR       "%user"
- 
-+// max height/width for images
-+#define MAX_DIMENSION 10000
-+
- #endif
-diff --git a/jpeg.c b/jpeg.c
-index 1cf106c..e1f8352 100644
---- a/jpeg.c
-+++ b/jpeg.c
-@@ -22,16 +22,22 @@
- #include <string.h>
- 
- #include <jpeglib.h>
-+#include "const.h"
- 
- int
- read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
- {
-+    int ret = 0;
-     struct jpeg_decompress_struct cinfo;
-     struct jpeg_error_mgr jerr;
-     unsigned char *ptr = NULL;
-     unsigned int i, ipos;
- 
-     FILE *infile = fopen(filename, "rb");
-+    if (infile == NULL) {
-+        fprintf(stderr, "Can not fopen file: %s\n",filename);
-+        return ret;
-+    }
- 
-     cinfo.err = jpeg_std_error(&jerr);
-     jpeg_create_decompress(&cinfo);
-@@ -39,43 +45,39 @@ read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
-     jpeg_read_header(&cinfo, TRUE);
-     jpeg_start_decompress(&cinfo);
- 
-+    /* Prevent against integer overflow */
-+    if(cinfo.output_width >= MAX_DIMENSION || cinfo.output_height >= MAX_DIMENSION) {
-+        fprintf(stderr, "Unreasonable dimension found in file: %s\n",filename);
-+        goto close_file;
-+    }
-+
-     *width = cinfo.output_width;
-     *height = cinfo.output_height;
- 
-     rgb[0] = malloc(3 * cinfo.output_width * cinfo.output_height);
--    if (rgb[0] == NULL)
--    {
-+    if (rgb[0] == NULL) {
-         fprintf(stderr, "Can't allocate memory for JPEG file.\n");
--    fclose(infile);
--        return(0);
-+        goto close_file;
-     }
- 
--    if (cinfo.output_components == 3)
--    {
-+    if (cinfo.output_components == 3) {
-         ptr = rgb[0];
--        while (cinfo.output_scanline < cinfo.output_height) 
--        {
-+        while (cinfo.output_scanline < cinfo.output_height) {
-             jpeg_read_scanlines(&cinfo, &ptr, 1);
-             ptr += 3 * cinfo.output_width;
-         }
--    }
--    else if (cinfo.output_components == 1)
--    {
-+    } else if (cinfo.output_components == 1) {
-         ptr = malloc(cinfo.output_width);
--        if (ptr == NULL)
--        {
-+        if (ptr == NULL) {
-             fprintf(stderr, "Can't allocate memory for JPEG file.\n");
--        fclose(infile);
--            return(0);
-+            goto rgb_free;
-         }
- 
-         ipos = 0;
--        while (cinfo.output_scanline < cinfo.output_height) 
--        {
-+        while (cinfo.output_scanline < cinfo.output_height) {
-             jpeg_read_scanlines(&cinfo, &ptr, 1);
- 
--            for (i = 0; i < cinfo.output_width; i++)
--            {
-+            for (i = 0; i < cinfo.output_width; i++) {
-                 memset(rgb[0] + ipos, ptr[i], 3);
-                 ipos += 3;
-             }
-@@ -85,9 +87,16 @@ read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
-     }
- 
-     jpeg_finish_decompress(&cinfo);
--    jpeg_destroy_decompress(&cinfo);
- 
-+    ret = 1;
-+    goto close_file;
-+
-+rgb_free:
-+    free(rgb[0]);
-+
-+close_file:
-+    jpeg_destroy_decompress(&cinfo);
-     fclose(infile);
- 
--    return(1);
-+    return(ret);
- }
-diff --git a/png.c b/png.c
-index a2661c6..5c086c6 100644
---- a/png.c
-+++ b/png.c
-@@ -22,12 +22,13 @@
- #include <stdlib.h>
- 
- #include <png.h>
-+#include "const.h"
- 
- int
- read_png(const char *filename, int *width, int *height, unsigned char **rgb, 
-      unsigned char **alpha)
- {
--    FILE *infile = fopen(filename, "rb");
-+    int ret = 0;
- 
-     png_structp png_ptr;
-     png_infop info_ptr;
-@@ -38,31 +39,27 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
-     int bit_depth, color_type, interlace_type;
-     int i;
- 
-+    FILE *infile = fopen(filename, "rb");
-+    if (infile == NULL) {
-+        fprintf(stderr, "Can not fopen file: %s\n",filename);
-+        return ret;
-+    }
-+
-     png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, 
-                                      (png_voidp) NULL, 
-                                      (png_error_ptr) NULL, 
-                                      (png_error_ptr) NULL);
--    if (!png_ptr) 
--    {
--        fclose(infile);
--        return(0);
--    }
-+    if (!png_ptr)
-+        goto file_close;
-   
-     info_ptr = png_create_info_struct(png_ptr);
--    if (!info_ptr)
--    {
-+    if (!info_ptr) {
-         png_destroy_read_struct(&png_ptr, (png_infopp) NULL, 
-                                 (png_infopp) NULL);
--        fclose(infile);
--        return(0);
-     }
-   
-     if (setjmp(png_ptr->jmpbuf))
--    {
--        png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
--        fclose(infile);
--        return(0);
--    }
-+        goto png_destroy;
-   
-     png_init_io(png_ptr, infile);
-     png_read_info(png_ptr, info_ptr);
-@@ -70,18 +67,23 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
-     png_get_IHDR(png_ptr, info_ptr, &w, &h, &bit_depth, &color_type,
-                  &interlace_type, (int *) NULL, (int *) NULL);
- 
-+    /* Prevent against integer overflow */
-+    if(w >= MAX_DIMENSION || h >= MAX_DIMENSION) {
-+        fprintf(stderr, "Unreasonable dimension found in file: %s\n",filename);
-+        goto png_destroy;
-+    }
-+
-     *width = (int) w;
-     *height = (int) h;
-     
-     if (color_type == PNG_COLOR_TYPE_RGB_ALPHA
--    || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
--    {
--    alpha[0] = malloc(*width * *height);
--    if (alpha[0] == NULL)
--    {
--        fprintf(stderr, "Can't allocate memory for alpha channel in PNG file.\n");
--        return(0); 
--    }
-+        || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
-+        alpha[0] = malloc(*width * *height);
-+        if (alpha[0] == NULL)
-+        {
-+            fprintf(stderr, "Can't allocate memory for alpha channel in PNG file.\n");
-+            goto png_destroy;
-+        }
-     }
- 
-     /* Change a paletted/grayscale image to RGB */
-@@ -94,68 +96,70 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
-         png_set_gray_to_rgb(png_ptr);
- 
-     /* If the PNG file has 16 bits per channel, strip them down to 8 */
--    if (bit_depth == 16) png_set_strip_16(png_ptr);
-+    if (bit_depth == 16)
-+        png_set_strip_16(png_ptr);
- 
-     /* use 1 byte per pixel */
-     png_set_packing(png_ptr);
- 
-     row_pointers = malloc(*height * sizeof(png_bytep));
--    if (row_pointers == NULL)
--    {
-+    if (row_pointers == NULL) {
-         fprintf(stderr, "Can't allocate memory for PNG file.\n");
--        return(0);
-+        goto png_destroy;
-     }
- 
--    for (i = 0; i < *height; i++)
--    {
-+    for (i = 0; i < *height; i++) {
-         row_pointers[i] = malloc(4 * *width);
--        if (row_pointers == NULL)
--        {
-+        if (row_pointers == NULL) {
-             fprintf(stderr, "Can't allocate memory for PNG line.\n");
--            return(0);
-+            goto rows_free;
-         }
-     }
- 
-     png_read_image(png_ptr, row_pointers);
- 
-     rgb[0] = malloc(3 * *width * *height);
--    if (rgb[0] == NULL)
--    {
-+    if (rgb[0] == NULL) {
-         fprintf(stderr, "Can't allocate memory for PNG file.\n");
--        return(0);
-+        goto rows_free;
-     }
- 
-     if (alpha[0] == NULL)
-     {
--    ptr = rgb[0];
--    for (i = 0; i < *height; i++)
--    {
--        memcpy(ptr, row_pointers[i], 3 * *width);
--        ptr += 3 * *width;
--    }
--    }
--    else
--    {
--    int j;
--    ptr = rgb[0];
--    for (i = 0; i < *height; i++)
--    {
--        int ipos = 0;
--        for (j = 0; j < *width; j++)
--        {
--        *ptr++ = row_pointers[i][ipos++];
--        *ptr++ = row_pointers[i][ipos++];
--        *ptr++ = row_pointers[i][ipos++];
--        alpha[0][i * *width + j] = row_pointers[i][ipos++];
-+        ptr = rgb[0];
-+        for (i = 0; i < *height; i++) {
-+            memcpy(ptr, row_pointers[i], 3 * *width);
-+            ptr += 3 * *width;
-+        }
-+    } else {
-+        int j;
-+        ptr = rgb[0];
-+        for (i = 0; i < *height; i++) {
-+            int ipos = 0;
-+            for (j = 0; j < *width; j++) {
-+                *ptr++ = row_pointers[i][ipos++];
-+                *ptr++ = row_pointers[i][ipos++];
-+                *ptr++ = row_pointers[i][ipos++];
-+                alpha[0][i * *width + j] = row_pointers[i][ipos++];
-+            }
-         }
--    }
-     }
- 
--    png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
-+    ret = 1; /* data reading is OK */
-+
-+rows_free:
-+    for (i = 0; i < *height; i++) {
-+        if (row_pointers[i] != NULL ) {
-+            free(row_pointers[i]);
-+        }
-+    }
- 
--    for (i = 0; i < *height; i++) free(row_pointers[i]);
-     free(row_pointers);
- 
-+png_destroy:
-+    png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
-+
-+file_close:
-     fclose(infile);
--    return(1);
-+    return(ret);
- }
--- 
-1.6.6.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch
deleted file mode 100644
index 471c4f5..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 6aad913ddd5cdb473db9fa21a5e8ecec58de172b Mon Sep 17 00:00:00 2001
-From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
-Date: Wed, 12 Jan 2011 04:41:02 +0000
-Subject: [PATCH 3/8] Fix build failure with ld --as-needed.
-
-Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-
-git-svn-id: svn://svn.berlios.de/slim/trunk@177 7c53e7cc-98ea-0310-8f1f-a0b24da60408
----
- Makefile |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 1219de4..fafa0ef 100644
---- a/Makefile
-+++ b/Makefile
-@@ -4,7 +4,7 @@
- # to fit into your operating system / distribution
- #######################################################
- CXX=/usr/bin/g++
--CC=/usr/bin/gcc
-+CC=/usr/bin/gcc-4.5
- CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
- CXXFLAGS=$(CFLAGS)
- LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
-@@ -33,7 +33,7 @@ endif
- all: slim
- 
- slim: $(OBJECTS)
--	$(CXX) $(LDFLAGS) $(OBJECTS) -o $(NAME)
-+	$(CXX) $(OBJECTS) $(LDFLAGS) -o $(NAME)
- 
- .cpp.o:
- 	$(CXX) $(CXXFLAGS) $(DEFINES) $(CUSTOM) -c $< -o $@
--- 
-1.6.6.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch
deleted file mode 100644
index f2087c0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From c2067e8c16bfb721d339718ae0c99c70a994936b Mon Sep 17 00:00:00 2001
-From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
-Date: Fri, 17 Jun 2011 20:35:07 +0000
-Subject: [PATCH 4/8] Add support libpng15
-
-Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-
-git-svn-id: svn://svn.berlios.de/slim/trunk@178 7c53e7cc-98ea-0310-8f1f-a0b24da60408
----
- Makefile |    4 ++--
- png.c    |    6 +++++-
- 2 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index fafa0ef..1202614 100644
---- a/Makefile
-+++ b/Makefile
-@@ -5,9 +5,9 @@
- #######################################################
- CXX=/usr/bin/g++
- CC=/usr/bin/gcc-4.5
--CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
-+CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include
- CXXFLAGS=$(CFLAGS)
--LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
-+LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
- CUSTOM=-DHAVE_SHADOW
- ifdef USE_PAM
- LDFLAGS+= -lpam
-diff --git a/png.c b/png.c
-index 5c086c6..aa0f5e5 100644
---- a/png.c
-+++ b/png.c
-@@ -57,8 +57,12 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
-         png_destroy_read_struct(&png_ptr, (png_infopp) NULL, 
-                                 (png_infopp) NULL);
-     }
--  
-+
-+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
-+	if (setjmp(png_jmpbuf((data->png_ptr))))
-+#else
-     if (setjmp(png_ptr->jmpbuf))
-+#endif
-         goto png_destroy;
-   
-     png_init_io(png_ptr, infile);
--- 
-1.6.6.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch
deleted file mode 100644
index 566ae35..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 4f69eb1aa85fbb395a0474b1f376505fab81ee22 Mon Sep 17 00:00:00 2001
-From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
-Date: Fri, 17 Jun 2011 20:35:10 +0000
-Subject: [PATCH 5/8] Remove path of gcc amd g++, and version of g++
-
-Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-
-git-svn-id: svn://svn.berlios.de/slim/trunk@179 7c53e7cc-98ea-0310-8f1f-a0b24da60408
----
- Makefile |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 1202614..5c5fde1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -3,8 +3,8 @@
- # Edit the following section to adjust the options
- # to fit into your operating system / distribution
- #######################################################
--CXX=/usr/bin/g++
--CC=/usr/bin/gcc-4.5
-+CXX=g++
-+CC=gcc
- CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include
- CXXFLAGS=$(CFLAGS)
- LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
--- 
-1.6.6.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch
deleted file mode 100644
index a5b8125..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e188d5fd3e3c0e40c3e35729fd8b81b138191a75 Mon Sep 17 00:00:00 2001
-From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
-Date: Fri, 17 Jun 2011 20:35:13 +0000
-Subject: [PATCH 6/8] Remove localhost from Authenticator of pam
-
-http://bugs.gentoo.org/346037
-https://developer.berlios.de/bugs/?func=detailbug&bug_id=17757&group_id=2663
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-misc/slim/files/346037-stop_setting_host_for_pam_ck_connector_so.patch?view=log
-
-Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-
-git-svn-id: svn://svn.berlios.de/slim/trunk@180 7c53e7cc-98ea-0310-8f1f-a0b24da60408
----
- app.cpp |    2 --
- 1 files changed, 0 insertions(+), 2 deletions(-)
-
-diff --git a/app.cpp b/app.cpp
-index c80a73e..7177363 100644
---- a/app.cpp
-+++ b/app.cpp
-@@ -236,8 +236,6 @@ void App::Run() {
-         pam.start("slim");
-         pam.set_item(PAM::Authenticator::TTY, DisplayName);
-         pam.set_item(PAM::Authenticator::Requestor, "root");
--        pam.set_item(PAM::Authenticator::Host, "localhost");
--
-     }
-     catch(PAM::Exception& e){
-         cerr << APPNAME << ": " << e << endl;
--- 
-1.6.6.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch
deleted file mode 100644
index fa2502b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From da172fd6234b3b2b487ab36d63da72758829cb1d Mon Sep 17 00:00:00 2001
-From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
-Date: Fri, 17 Jun 2011 20:35:15 +0000
-Subject: [PATCH 7/8] Fix tty slowness
-
-Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-
-git-svn-id: svn://svn.berlios.de/slim/trunk@181 7c53e7cc-98ea-0310-8f1f-a0b24da60408
----
- app.cpp |   10 ++++++----
- 1 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/app.cpp b/app.cpp
-index 7177363..44ab099 100644
---- a/app.cpp
-+++ b/app.cpp
-@@ -278,21 +278,23 @@ void App::Run() {
-         signal(SIGALRM, AlarmSignal);
- 
- #ifndef XNEST_DEBUG
--        OpenLog();
--        
-         if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
-             daemonmode = true;
-         }
- 
-         // Daemonize
-         if (daemonmode) {
--            if (daemon(0, 1) == -1) {
-+            if (daemon(0, 0) == -1) {
-                 cerr << APPNAME << ": " << strerror(errno) << endl;
-                 exit(ERR_EXIT);
-             }
--            UpdatePid();
-         }
- 
-+        OpenLog();
-+
-+        if (daemonmode)
-+            UpdatePid();
-+
-         CreateServerAuth();
-         StartServer();
-         alarm(2);
--- 
-1.6.6.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch
deleted file mode 100644
index 0c5cfb7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From ee77a3d154443d2823ecbf2141daa1b5924f629f Mon Sep 17 00:00:00 2001
-From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
-Date: Fri, 17 Jun 2011 20:38:34 +0000
-Subject: [PATCH 8/8] restart Xserver if killed
-
-Patch from http://developer.berlios.de/patch/?func=detailpatch&patch_id=2378&group_id=2663.
-
-Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-
-git-svn-id: svn://svn.berlios.de/slim/trunk@182 7c53e7cc-98ea-0310-8f1f-a0b24da60408
----
- app.cpp |   36 +++++++++---------------------------
- app.h   |    2 +-
- 2 files changed, 10 insertions(+), 28 deletions(-)
-
-diff --git a/app.cpp b/app.cpp
-index 44ab099..358a98f 100644
---- a/app.cpp
-+++ b/app.cpp
-@@ -104,6 +104,11 @@ int conv(int num_msg, const struct pam_message **msg,
- 
- extern App* LoginApp;
- 
-+int xioerror(Display *disp) {
-+	LoginApp->RestartServer();
-+    return 0;
-+}
-+
- void CatchSignal(int sig) {
-     cerr << APPNAME << ": unexpected signal " << sig << endl;
- 
-@@ -114,19 +119,6 @@ void CatchSignal(int sig) {
-     exit(ERR_EXIT);
- }
- 
--
--void AlarmSignal(int sig) {
--    int pid = LoginApp->GetServerPID();
--    if(waitpid(pid, NULL, WNOHANG) == pid) {
--        LoginApp->StopServer();
--        LoginApp->RemoveLock();
--        exit(OK_EXIT);
--    }
--    signal(sig, AlarmSignal);
--    alarm(2);
--}
--
--
- void User1Signal(int sig) {
-     signal(sig, User1Signal);
- }
-@@ -275,7 +267,6 @@ void App::Run() {
-         signal(SIGHUP, CatchSignal);
-         signal(SIGPIPE, CatchSignal);
-         signal(SIGUSR1, User1Signal);
--        signal(SIGALRM, AlarmSignal);
- 
- #ifndef XNEST_DEBUG
-         if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
-@@ -297,7 +288,6 @@ void App::Run() {
- 
-         CreateServerAuth();
-         StartServer();
--        alarm(2);
- #endif
- 
-     }
-@@ -613,6 +603,8 @@ void App::Login() {
-     int status;
-     while (wpid != pid) {
-         wpid = wait(&status);
-+		if (wpid == ServerPID)
-+			xioerror(Dpy);	// Server died, simulate IO error
-     }
-     if (WIFEXITED(status) && WEXITSTATUS(status)) {
-         LoginPanel->Message("Failed to execute login command");
-@@ -658,9 +650,6 @@ void App::Login() {
- 
- 
- void App::Reboot() {
--    // Stop alarm clock
--    alarm(0);
--
- #ifdef USE_PAM
-     try{
-         pam.end();
-@@ -683,9 +672,6 @@ void App::Reboot() {
- 
- 
- void App::Halt() {
--    // Stop alarm clock
--    alarm(0);
--
- #ifdef USE_PAM
-     try{
-         pam.end();
-@@ -771,6 +757,7 @@ void App::RestartServer() {
- 
-     StopServer(); 
-     RemoveLock();
-+	while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens
-     Run();
- } 
- 
-@@ -841,6 +828,7 @@ int App::WaitForServer() {
- 
-     for(cycles = 0; cycles < ncycles; cycles++) {
-         if((Dpy = XOpenDisplay(DisplayName))) {
-+            XSetIOErrorHandler(xioerror);
-             return 1;
-         } else {
-             if(!ServerTimeout(1, (char *) "X server to begin accepting connections"))
-@@ -925,9 +913,6 @@ int App::StartServer() {
-             ServerPID = -1;
-             break;
-         }
--        alarm(15);
--        pause();
--        alarm(0);
- 
-         // Wait for server to start up
-         if(WaitForServer() == 0) {
-@@ -962,15 +947,12 @@ int IgnoreXIO(Display *d) {
- 
- 
- void App::StopServer() {
--    // Stop alars clock and ignore signals
--    alarm(0);
-     signal(SIGQUIT, SIG_IGN);
-     signal(SIGINT, SIG_IGN);
-     signal(SIGHUP, SIG_IGN);
-     signal(SIGPIPE, SIG_IGN);
-     signal(SIGTERM, SIG_DFL);
-     signal(SIGKILL, SIG_DFL);
--    signal(SIGALRM, SIG_DFL);
- 
-     // Catch X error
-     XSetIOErrorHandler(IgnoreXIO);
-diff --git a/app.h b/app.h
-index dd7c281..2db1038 100644
---- a/app.h
-+++ b/app.h
-@@ -34,6 +34,7 @@ public:
-     ~App();
-     void Run();
-     int GetServerPID();
-+    void RestartServer();
-     void StopServer();
- 
- 	bool serverStarted;
-@@ -49,7 +50,6 @@ private:
-     void Console();
-     void Exit();
-     void KillAllClients(Bool top);
--    void RestartServer();
-     void ReadConfig();
-     void OpenLog();
-     void CloseLog();
--- 
-1.6.6.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim_1.3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim_1.3.2.bb
deleted file mode 100644
index 2fbdcab..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim_1.3.2.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-DESCRIPTION="Simple Login Manager"
-HOMEPAGE="http://slim.berlios.de"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-PR = "r1"
-
-DEPENDS = "virtual/libx11 libxmu libpng jpeg freetype sessreg ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-SRC_URI = " \
-    http://download.berlios.de/${BPN}/${BP}.tar.gz \
-    file://0002-Fix-image-handling-integer-overflows.patch \
-    file://0003-Fix-build-failure-with-ld-as-needed.patch \
-    file://0004-Add-support-libpng15.patch \
-    file://0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch \
-    file://0006-Remove-localhost-from-Authenticator-of-pam.patch \
-    file://0007-Fix-tty-slowness.patch \
-    file://0008-restart-Xserver-if-killed.patch \
-    file://slim-dynwm \
-    file://update_slim_wmlist \
-    file://Makefile.oe \
-    file://slim.pamd \
-    file://slim.service \
-"
-
-SRC_URI[md5sum] = "ca1ae6120e6f4b4969f2d6cf94f47b42"
-SRC_URI[sha256sum] = "f1560125005f253b9b88220598fed7a9575ef405716862c6ca3fcc72dbd482b8"
-
-
-EXTRA_OEMAKE += " \
-    USE_PAM=${@bb.utils.contains('DISTRO_FEATURES', 'pam', '1', '0', d)} \
-    PREFIX=${prefix} \
-    CFGDIR=${sysconfdir} \
-    MANDIR=${mandir} \
-    DESTDIR=${D} \
-    CFLAGS+=-I${STAGING_INCDIR}/freetype2 \
-    CXXFLAGS+=-I${STAGING_INCDIR}/freetype2 \
-"
-
-do_compile_prepend() {
-    cp -pP ${WORKDIR}/Makefile.oe ${S}/Makefile
-}
-
-do_install() {
-    oe_runmake install
-    install -d ${D}${bindir}
-    install -m 0755 ${WORKDIR}/slim-dynwm ${D}${bindir}/
-    install -m 0755 ${WORKDIR}/update_slim_wmlist ${D}${bindir}/
-    install -d ${D}${sysconfdir}/pam.d/
-    install -m 0644 ${WORKDIR}/slim.pamd ${D}${sysconfdir}/pam.d/slim
-
-    install -d ${D}${systemd_unitdir}/system/
-    install -m 0644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system/
-
-    echo 'sessionstart_cmd    /usr/bin/sessreg -a -l $DISPLAY %user' >> ${D}${sysconfdir}/slim.conf
-    echo 'sessionstop_cmd     /usr/bin/sessreg -d -l $DISPLAY %user' >> ${D}${sysconfdir}/slim.conf
-}
-
-
-RDEPENDS_${PN} = "perl xauth freetype sessreg "
-FILES_${PN} += "${systemd_unitdir}/system/"
-
-pkg_postinst_${PN} () {
-if test "x$D" != "x"; then
-    exit 1
-fi
-systemctl enable slim.service
-
-# Register SLiM as default DM
-mkdir -p ${sysconfdir}/X11/
-echo "${bindir}/slim" > ${sysconfdir}/X11/default-display-manager
-}
-
-pkg_postrm_${PN} () {
-if test "x$D" != "x"; then
-    exit 1
-fi
-systemctl disable slim.service
-sed -i /slim/d $D${sysconfdir}/X11/default-display-manager || true
-}
-
-PNBLACKLIST[slim] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb
index 4c8399d..c460fc3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb
@@ -8,7 +8,7 @@
 LICENSE = "OFL-1.1"
 LIC_FILES_CHKSUM = "file://OFL.TXT;md5=9cadb26f4c5c005618c5ae74f041ec54"
 
-DEPENDS = "hostperl-runtime-native gzip-native"
+DEPENDS = "hostperl-runtime-native gzip-native bdftopcf-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
 SRC_URI[md5sum] = "a8e792fe6e84c86ed2b6ed3e2a12ba66"
@@ -43,5 +43,3 @@
 FILES_${PN}-consolefonts = "${datadir}/consolefonts"
 FILES_${PN}-consoletrans = "${datadir}/consoletrans"
 FILES_${PN}-pcf = "${datadir}/fonts/terminus"
-
-PNBLACKLIST[terminus-font] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130638/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_git.bb
index c2675cd..89d09a0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_git.bb
@@ -1,11 +1,12 @@
 SUMMARY = "A commercial quality OCR engine "
 
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c0c94b3c86ad0c386bb6dec70ca8a36a"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7ea4f9a43aba9d3c849fe5c203a0ed40"
 
-PV = "3.04.00+git${SRCPV}"
-SRCREV = "228317caa1ced217e6d264aafc901f361ecd7e90"
-SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git"
+BRANCH = "3.05"
+PV = "${BRANCH}.01+git${SRCPV}"
+SRCREV = "215866151e774972c9502282111b998d7a053562"
+SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH}"
 S = "${WORKDIR}/git"
 
 DEPENDS = "leptonica"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
new file mode 100644
index 0000000..12c4376
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
@@ -0,0 +1,50 @@
+From 4b423cd2e5e4296abca3be553bf64d8cc287180a Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 20 Jul 2017 17:09:05 +0800
+Subject: [PATCH 1/4] tigervnc: remove includedir
+
+Upstream-Status: Pending
+
+Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+
+It fixes host contamination
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ unix/xserver/hw/vnc/Makefile.am | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/unix/xserver/hw/vnc/Makefile.am b/unix/xserver/hw/vnc/Makefile.am
+index 0d6a4ac..854f078 100644
+--- a/unix/xserver/hw/vnc/Makefile.am
++++ b/unix/xserver/hw/vnc/Makefile.am
+@@ -22,7 +22,7 @@ libvnccommon_la_SOURCES = $(HDRS) \
+ 
+ libvnccommon_la_CPPFLAGS = -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
+ 	-DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_H \
+-	-I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} -I$(includedir) \
++	-I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} \
+ 	-I$(top_srcdir)/include
+ 
+ bin_PROGRAMS = Xvnc
+@@ -42,7 +42,7 @@ Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DTIGERVNC -DNO_MODULE_EXTS \
+ 	-UHAVE_CONFIG_H \
+ 	-DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
+ 	-DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common \
+-	-I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir)
++	-I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS}
+ 
+ Xvnc_LDADD = $(XVNC_LIBS) libvnccommon.la $(COMMON_LIBS) \
+ 	$(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XVNC_SYS_LIBS) -lX11
+@@ -62,7 +62,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_
+ 	-I$(top_srcdir)/hw/xfree86/os-support \
+ 	-I$(top_srcdir)/hw/xfree86/os-support/bus \
+ 	-I$(top_srcdir)/include \
+-	${XSERVERLIBS_CFLAGS} -I$(includedir)
++	${XSERVERLIBS_CFLAGS}
+ 
+ libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now
+ 
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch
new file mode 100644
index 0000000..4e875ba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch
@@ -0,0 +1,29 @@
+From c3460d63f0b6cd50b9a64265f420f0439e12a1d5 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 25 Apr 2017 01:36:44 -0400
+Subject: [PATCH 2/4] do not build tests sub directory
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CMakeLists.txt | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 94ec2ef..fb72a00 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -300,9 +300,6 @@ if(BUILD_VIEWER)
+   add_subdirectory(media)
+ endif()
+ 
+-add_subdirectory(tests)
+-
+-
+ include(cmake/BuildPackages.cmake)
+ 
+ # uninstall
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch
new file mode 100644
index 0000000..cfb84ac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch
@@ -0,0 +1,28 @@
+From 6369a5be2af2ed1fa443f40f48deaf318d22713e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 20 Jul 2017 05:06:00 -0400
+Subject: [PATCH 3/4] add missing dynamic library to FLTK_LIBRARIES
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fb72a00..5732dc8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -246,6 +246,8 @@ if(UNIX AND NOT APPLE)
+   endif()
+ endif()
+ 
++set(FLTK_LIBRARIES ${FLTK_LIBRARIES} -lm -ldl -lpng -ljpeg)
++
+ # Check for GNUTLS library
+ option(ENABLE_GNUTLS "Enable protocol encryption and advanced authentication" ON)
+ if(ENABLE_GNUTLS)
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch
new file mode 100644
index 0000000..97b0a38
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch
@@ -0,0 +1,62 @@
+From 9563b69640227da2220ee0c39077afb736cc96d1 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 20 Jul 2017 17:12:17 +0800
+Subject: [PATCH 4/4] tigervnc: add fPIC option to COMPILE_FLAGS
+
+The static libraries in Xregion/network/rdr/rfb were linked by shared
+library libvnc.so, so we should add fPIC option to COMPILE_FLAGS to fix
+relocation issue.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ common/Xregion/CMakeLists.txt | 1 +
+ common/network/CMakeLists.txt | 1 +
+ common/rdr/CMakeLists.txt     | 1 +
+ common/rfb/CMakeLists.txt     | 1 +
+ 4 files changed, 4 insertions(+)
+
+diff --git a/common/Xregion/CMakeLists.txt b/common/Xregion/CMakeLists.txt
+index 40ca97e..9411328 100644
+--- a/common/Xregion/CMakeLists.txt
++++ b/common/Xregion/CMakeLists.txt
+@@ -3,4 +3,5 @@ add_library(Xregion STATIC
+ 
+ if(UNIX)
+   libtool_create_control_file(Xregion)
++  set_target_properties(Xregion PROPERTIES COMPILE_FLAGS -fPIC)
+ endif()
+diff --git a/common/network/CMakeLists.txt b/common/network/CMakeLists.txt
+index b624c8e..6c06ec9 100644
+--- a/common/network/CMakeLists.txt
++++ b/common/network/CMakeLists.txt
+@@ -9,4 +9,5 @@ endif()
+ 
+ if(UNIX)
+   libtool_create_control_file(network)
++  set_target_properties(network PROPERTIES COMPILE_FLAGS -fPIC)
+ endif()
+diff --git a/common/rdr/CMakeLists.txt b/common/rdr/CMakeLists.txt
+index 989ba2f..20f6489 100644
+--- a/common/rdr/CMakeLists.txt
++++ b/common/rdr/CMakeLists.txt
+@@ -27,4 +27,5 @@ target_link_libraries(rdr ${RDR_LIBRARIES})
+ 
+ if(UNIX)
+   libtool_create_control_file(rdr)
++  set_target_properties(rdr PROPERTIES COMPILE_FLAGS -fPIC)
+ endif()
+diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt
+index 5047e5e..88838ab 100644
+--- a/common/rfb/CMakeLists.txt
++++ b/common/rfb/CMakeLists.txt
+@@ -98,4 +98,5 @@ target_link_libraries(rfb ${RFB_LIBRARIES})
+ 
+ if(UNIX)
+   libtool_create_control_file(rfb)
++  set_target_properties(rfb PROPERTIES COMPILE_FLAGS -fPIC)
+ endif()
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch
new file mode 100644
index 0000000..2f342c6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch
@@ -0,0 +1,27 @@
+From e4ec992984983ac9107efae1f1cc552007e4229e Mon Sep 17 00:00:00 2001
+From: Vishal Biswas <vshlbiswas@ymail.com>
+Date: Mon, 8 May 2017 11:06:11 +0530
+Subject: [PATCH] Remove INITARGS from xserver119.patch
+
+Upstream-Status: Backport
+
+---
+ unix/xserver119.patch | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unix/xserver119.patch b/unix/xserver119.patch
+index 614f104..7adf314 100644
+--- a/unix/xserver119.patch
++++ b/unix/xserver119.patch
+@@ -66,7 +66,7 @@ diff -up xserver/mi/miinitext.c.xserver116-rebased xserver/mi/miinitext.c
+  #include "globals.h"
+  
+ +#ifdef TIGERVNC
+-+extern void vncExtensionInit(INITARGS);
+++extern void vncExtensionInit(void);
+ +#endif
+ +
+  /* The following is only a small first step towards run-time
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb
new file mode 100644
index 0000000..469745f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb
@@ -0,0 +1,132 @@
+DESCRIPTION = "TigerVNC remote display system"
+HOMEPAGE = "http://www.tigervnc.com/"
+LICENSE = "GPLv2+"
+SECTION = "x11/utils"
+DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk"
+RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme"
+
+LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
+
+S = "${WORKDIR}/git"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "x11"
+
+inherit autotools cmake
+B = "${S}"
+
+SRCREV = "4d6e1b8306a8cca8ad5e15ff8201f6ea24459cfd"
+
+SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.8-branch \
+           file://0001-tigervnc-remove-includedir.patch \
+           file://0002-do-not-build-tests-sub-directory.patch \
+           file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \
+           file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \
+           file://0005-Remove-INITARGS-from-xserver119.patch.patch \
+"
+
+# Keep sync with xorg-server in oe-core
+XORG_PN ?= "xorg-server"
+XORG_PV ?= "1.19.3"
+SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg"
+XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}"
+SRC_URI[xorg.md5sum] = "015d2fc4b9f2bfe7a626edb63a62c65e"
+SRC_URI[xorg.sha256sum] = "677a8166e03474719238dfe396ce673c4234735464d6dadf2959b600d20e5a98"
+
+# It is the directory containing the Xorg source for the
+# machine on which you are building TigerVNC.
+XSERVER_SOURCE_DIR="${S}/unix/xserver"
+
+do_patch[postfuncs] += "do_patch_xserver"
+do_patch_xserver () {
+    for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do
+        install -d ${XSERVER_SOURCE_DIR}/$subdir
+    done
+
+    for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do
+        install -d ${XSERVER_SOURCE_DIR}/$subdir
+    done
+
+    sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \
+             hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \
+             hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in"
+    for i in ${sources}; do
+        install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i;
+    done
+
+    cd ${XORG_S}
+    find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \
+    xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -)
+
+    cd ${XSERVER_SOURCE_DIR}
+    xserverpatch="${S}/unix/xserver119.patch"
+    echo "Apply $xserverpatch"
+    patch -p1 -b --suffix .vnc < $xserverpatch
+}
+
+EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
+        --disable-xwin --disable-xephyr --disable-kdrive --with-pic \
+        --disable-static --disable-xinerama \
+        --with-xkb-output=${localstatedir}/lib/xkb \
+        --disable-glx --disable-dri --disable-dri2 \
+        --disable-config-hal \
+        --disable-config-udev \
+        --without-dtrace \
+        --disable-unit-tests \
+        --disable-devel-docs \
+        --disable-selective-werror \
+        --disable-xshmfence \
+        --disable-config-udev \
+        --disable-dri3 \
+        --disable-libunwind \
+        --without-xmlto \
+        --enable-systemd-logind=no \
+        --disable-xinerama \
+        --disable-xwayland \
+"
+
+do_configure_append () {
+    olddir=`pwd`
+    cd ${XSERVER_SOURCE_DIR}
+
+    rm -rf aclocal-copy/
+    rm -f aclocal.m4
+
+    export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy"
+    mkdir -p ${ACLOCALDIR}/
+    if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
+        cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/
+    fi
+    if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
+        cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/
+    fi
+    ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
+    chmod +x ./configure
+    ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
+    cd $olddir
+}
+
+do_compile_append () {
+    olddir=`pwd`
+    cd ${XSERVER_SOURCE_DIR}
+
+    oe_runmake
+
+    cd $olddir
+}
+
+do_install_append() {
+    olddir=`pwd`
+    cd ${XSERVER_SOURCE_DIR}/hw/vnc
+
+    oe_runmake 'DESTDIR=${D}' install
+
+    cd $olddir
+}
+
+FILES_${PN} += " \
+    ${libdir}/xorg/modules/extensions \
+    ${datadir}/icons \
+"
+
+FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug"
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
index 502034a..e7c48ff 100644
--- 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
@@ -3,7 +3,7 @@
 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.berlios.de/"
+HOMEPAGE = "http://tslib.org/"
 
 AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
 SECTION = "base"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb
deleted file mode 100755
index 2af6697..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Wayland-fits, the Wayland Functional Integration Test Suite"
-DESCRIPTION = "Wayland-fits is a fully automated functional integration \
-test suite. Its main purpose is to test the functionality and integration of \
-client-side (i.e. toolkit) and server-side (compositor) implementations of \
-the Wayland protocol."
-HOMEPAGE = "https://github.com/01org/wayland-fits"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f8d34cadaf891753c0f00c6cd48f08f5 \
-                    file://src/extensions/weston/weston-wfits.cpp;endline=21;md5=848c81e55cf3a30a9f6ed75f0dba7a97"
-
-SRC_URI = "git://github.com/01org/wayland-fits.git"
-SRCREV = "f108335e374772ae2818a30ae37fe6fcda81980f"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-DEPENDS = "libcheck boost wayland weston"
-RDEPENDS_${PN} = "weston"
-
-EXTRA_OECONF += "--enable-shared --disable-static --with-boost-libdir=${STAGING_LIBDIR}"
-
-PACKAGECONFIG ?= "gtk+3"
-
-PACKAGECONFIG[elementary] = "--enable-efl-tests,--disable-efl-tests,elementary"
-PACKAGECONFIG[gtk+3] = "--enable-gtk-tests,--disable-gtk-tests,gtk+3"
-
-do_install_append() {
-    rm -f ${D}/${libdir}/weston/*.la
-}
-
-FILES_${PN} += "${bindir}/wfits ${libdir}/weston/*.so"
-FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/weston/.debug ${prefix}/src"
-
-PNBLACKLIST[wayland-fits] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130632/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
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.0.bb
index 2e25b7d..3885d61 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.0.bb
@@ -6,3 +6,6 @@
 SRC_URI += "file://0001-Makefile.am-Error-Fix.patch"
 SRC_URI[md5sum] = "e238c89dabc566e1835e1ecb61b605b9"
 SRC_URI[sha256sum] = "551177657835e0902b5eee7b19713035beaa1581bbd3c6506baa553e751e017c"
+
+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/xterm_325.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
similarity index 77%
rename from import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_325.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
index a627af0..e3bb0fb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_325.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
@@ -2,13 +2,12 @@
 SUMMARY = "xterm is the standard terminal emulator for the X Window System"
 DEPENDS = "libxaw xproto xextproto libxext libxau libxinerama libxpm ncurses"
 
-LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=842e945c46c43e05c44d95003aa878e1"
+LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=f02ab9ebda87b770ecf711dbb3784a33"
 
 SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz"
 
-SRC_URI[md5sum] = "e78a0bbc4d5fa3780917e447ae8ebc6b"
-SRC_URI[sha256sum] = "3b31b07a0c40427e9330ec3be9d1a748c72808f945953cea9e526e48be315f1b"
-
+SRC_URI[md5sum] = "9a6db7974aa4ccbb50eabebf72618467"
+SRC_URI[sha256sum] = "7aeef9f29f6b95e09f481173c8c3053357bf5ffe162585647f690fd1707556df"
 PACKAGECONFIG ?= ""
 PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch
deleted file mode 100644
index 771a2a8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-diff --git a/src/multitouch.c b/src/multitouch.c
-index c55d742..4a8192d 100644
---- a/src/multitouch.c
-+++ b/src/multitouch.c
-@@ -114,7 +114,7 @@ static int init_properties(DeviceIntPtr dev)
- 	return Success;
- }
- 
--static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
-+static int device_init(DeviceIntPtr dev, InputInfoPtr local)
- {
- 	struct mtev_mtouch *mt = local->private;
- 	Atom atom;
-@@ -222,7 +222,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
- 			xf86InitValuatorAxisStruct(dev, val, axes_labels[val],
- 						   min,
- 						   max,
--						   1, 0, 1);
-+						   1, 0, 1,Absolute);
- 			xf86InitValuatorDefaults(dev, val);
- 		}
- 	}
-@@ -232,7 +232,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
- 	return Success;
- }
- 
--static int device_on(LocalDevicePtr local)
-+static int device_on(InputInfoPtr local)
- {
- 	struct mtev_mtouch *mt = local->private;
- 	local->fd = xf86OpenSerial(local->options);
-@@ -248,7 +248,7 @@ static int device_on(LocalDevicePtr local)
- 	return Success;
- }
- 
--static int device_off(LocalDevicePtr local)
-+static int device_off(InputInfoPtr local)
- {
- 	struct mtev_mtouch *mt = local->private;
- 	xf86RemoveEnabledDevice(local);
-@@ -259,12 +259,12 @@ static int device_off(LocalDevicePtr local)
- 	return Success;
- }
- 
--static int device_close(LocalDevicePtr local)
-+static int device_close(InputInfoPtr local)
- {
- 	return Success;
- }
- 
--static void process_state(LocalDevicePtr local,
-+static void process_state(InputInfoPtr local,
- 			  const struct mtev_mtouch *mt)
- {
- 
-@@ -321,22 +321,22 @@ static void process_state(LocalDevicePtr local,
- 	}
- 
- 	/* Some x-clients assume they get motion events before button down */
-+	xf86Msg(X_INFO,"down %d|pdown %d\n", down, pdown);
- 	if (down)
- 		xf86PostMotionEventP(local->dev, TRUE,
- 				     0, down * MT_AXIS_PER_FINGER, valuators);
--
- 	if(down && pdown == 0)
- 		xf86PostButtonEventP(local->dev, TRUE,
- 				     1, 1,
- 				     0, down * MT_AXIS_PER_FINGER, valuators);
--	else if (down == 0 && pdown)
--		xf86PostButtonEvent(local->dev, TRUE, 1, 0, 0, 0);
--
-+	else if (down == 0 && pdown){
-+		xf86PostButtonEvent(local->dev, TRUE, 1, 1, 0, 0);
-+	}
- 	pdown = !!down;
- }
- 
- /* called for each full received packet from the touchpad */
--static void read_input(LocalDevicePtr local)
-+static void read_input(InputInfoPtr local)
- {
- 	struct mtev_mtouch *mt = local->private;
- 	while (mtouch_read_synchronized_event(mt, local->fd)) {
-@@ -346,7 +346,7 @@ static void read_input(LocalDevicePtr local)
- 
- static Bool device_control(DeviceIntPtr dev, int mode)
- {
--	LocalDevicePtr local = dev->public.devicePrivate;
-+	InputInfoPtr local = dev->public.devicePrivate;
- 	switch (mode) {
- 	case DEVICE_INIT:
- 		xf86Msg(X_INFO, "device control: init\n");
-@@ -366,39 +366,29 @@ static Bool device_control(DeviceIntPtr dev, int mode)
- 	}
- }
- 
--static InputInfoPtr preinit(InputDriverPtr drv, IDevPtr dev, int flags)
-+static InputInfoPtr preinit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
- {
- 	struct mtev_mtouch *mt;
--	InputInfoPtr local = xf86AllocateInput(drv, 0);
--	if (!local)
--		goto error;
-+	int rc;
-+
- 	mt = calloc(1, sizeof(struct mtev_mtouch));
-+
- 	if (!mt)
- 		goto error;
- 
--	local->name = dev->identifier;
--	local->type_name = XI_TOUCHSCREEN;
--	local->device_control = device_control;
--	local->read_input = read_input;
--	local->private = mt;
--	local->flags = XI86_POINTER_CAPABLE |
--		XI86_SEND_DRAG_EVENTS;
--
--	local->conf_idev = dev;
--
--	xf86CollectInputOptions(local, NULL, NULL);
--	//xf86OptionListReport(local->options);
--	xf86ProcessCommonOptions(local, local->options);
-+	pInfo->private = mt;
-+	pInfo->type_name = "UNKNOWN";
-+	pInfo->device_control = device_control;
-+	pInfo->read_input = read_input;
- 
-+	mt->swap_xy = xf86SetBoolOption(pInfo->options, "SwapAxes", FALSE);
-+	mt->invert_x = xf86SetBoolOption(pInfo->options, "InvertX", FALSE);
-+	mt->invert_y = xf86SetBoolOption(pInfo->options, "InvertY", FALSE);
- 
--	mt->swap_xy = xf86SetBoolOption(local->options, "SwapAxes", FALSE);
--	mt->invert_x = xf86SetBoolOption(local->options, "InvertX", FALSE);
--	mt->invert_y = xf86SetBoolOption(local->options, "InvertY", FALSE);
--
--	local->flags |= XI86_CONFIGURED;
-+	return Success;
- 
- error:
--	return local;
-+	return !Success;
- }
- 
- static void uninit(InputDriverPtr drv, InputInfoPtr local, int flags)
-@@ -415,7 +405,6 @@ static InputDriverRec MTEV = {
- 	.PreInit = preinit,
- 	.UnInit = uninit,
- 	.module = NULL,
--	.refCount = 0
- };
- 
- static XF86ModuleVersionInfo VERSION = {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb
deleted file mode 100644
index 5f2adec..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-input.inc
-SUMMARY = "X.Org X server -- multitouch input driver"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543"
-
-DEPENDS += "pixman"
-
-PNBLACKLIST[xf86-input-mtev] ?= "BROKEN: doesn't build with B!=S (Makefile without ${S} in sed call) - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "git://gitorious.org/xorg/xf86-input-mtev.git file://fix-it.patch"
-SRCREV = "1eb469166ffc095c5801475f057f911f97a6e641"
-S = "${WORKDIR}/git"
-PV = "1.0.0+gitr${SRCPV}"
-PR = "${INC_PR}.0"
-
-EXTRA_OEMAKE = "'INCLUDE=-I${STAGING_INCDIR}/xorg -I${STAGING_INCDIR}/pixman-1'"
-
-#skip xorg-driver-common.inc AC_CHECK_FILE mangling
-do_configure_prepend () {
-    sed 's#gcc#${CC}#g' -i Makefile
-    return
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb
index a101008..d409a18 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb
@@ -9,6 +9,9 @@
 DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
             virtual/libgl xineramaproto libpciaccess"
 
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES += "opengl"
+
 COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
 
 SRC_URI[md5sum] = "f34d04a755e761e03b459155fa3ddcbb"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch
deleted file mode 100644
index fcd2f68..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 621d946e56efac2c779b83b1a5c6b645169c4ebd Mon Sep 17 00:00:00 2001
-From: "Brian A. Lloyd" <brian.lloyd@familyhonor.net>
-Date: Wed, 1 Oct 2014 12:35:18 +0300
-Subject: [PATCH] Add config.h include to src/lx_memory.c
-
-The src/lx_memory.c file uses the xf86.h header file.  This file must have
-HAVE_STRNDUP defined before calling it when the building platform has a strndup
-function.  When using config.h, this file doesn't have that define and so fails
-to compile.
-
-The attached patch adds the conditional config.h to this file so it may compile
-on the affected platforms.
-
-The patch is trivial and may be included and used under whatever licensing
-desired.
-
-Closes: Free Desktop Bug #84541
-
-Signed-off-by: Brian A. Lloyd <brian.lloyd@familyhonor.net>
-Upstream-Status: Backport
----
- src/lx_memory.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/lx_memory.c b/src/lx_memory.c
-index f26d280..992446f 100644
---- a/src/lx_memory.c
-+++ b/src/lx_memory.c
-@@ -22,6 +22,9 @@
-  * contributors may be used to endorse or promote products derived from this
-  * software without specific prior written permission.
-  */
-+#if HAVE_CONFIG_H
-+#include "config.h"
-+#endif
- 
- #include "xf86.h"
- #include "geode.h"
--- 
-2.1.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb
deleted file mode 100644
index e543413..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-LIC_FILES_CHKSUM = "file://COPYING;md5=e7f3e39474aeea5af381a8e103dafc36"
-
-SUMMARY = "X.org server -- Geode GX2/LX display driver"
-PR = "${INC_PR}.0"
-
-SRC_URI += "file://0001-Add-config.h-include-to-src-lx_memory.c.patch"
-SRC_URI[md5sum] = "35fa387f6a33f6b22a56ce4bda424392"
-SRC_URI[sha256sum] = "38fc1f55e29fb7985b90c9021a4b7e5295d42888bd669174f42f3b7f681fc1a7"
-
-COMPATIBLE_HOST = "i.86.*-linux"
-
-RDEPENDS_${PN} += "xserver-xorg-module-exa"
-
-# 2_2.11.16-r21.0/xf86-video-geode-2.11.16/src/gx_driver.c:376:20: error: implicit declaration of function 'xf86MapVidMem' [-Werror=implicit-function-declaration]
-PNBLACKLIST[xf86-video-geode] ?= "BROKEN, fails to build - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch
deleted file mode 100644
index 25e8320..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From f485e878bc8bb0e381a38a30009308c82fa8d672 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Thu, 16 Aug 2012 08:18:56 +0200
-Subject: [PATCH] fix build with KMS disabled
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/glamo.h |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/src/glamo.h b/src/glamo.h
-index d4a2f19..5fd5c04 100644
---- a/src/glamo.h
-+++ b/src/glamo.h
-@@ -37,8 +37,11 @@
- #include "xf86.h"
- #include "exa.h"
- #include <linux/fb.h>
-+
-+#ifdef HAVE_KMS
- #include <libdrm/drm.h>
- #include <libdrm/glamo_bo.h>
-+#endif
- 
- #define GLAMO_REG_BASE(c)		((c)->attr.address[0])
- #define GLAMO_REG_SIZE(c)		(0x2400)
--- 
-1.7.8.6
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch
deleted file mode 100644
index fab0b23..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 040ade8bb86a771fa4e71b41d2080254830ca9f3 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Sat, 16 Mar 2013 17:44:37 +0100
-Subject: [PATCH] glamo*driver: remove references to mibstore
-
-* fix build with xserver-1.14
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/glamo-driver.c     | 2 --
- src/glamo-kms-driver.c | 1 -
- 2 files changed, 3 deletions(-)
-
-diff --git a/src/glamo-driver.c b/src/glamo-driver.c
-index 10b7762..22f57d7 100644
---- a/src/glamo-driver.c
-+++ b/src/glamo-driver.c
-@@ -14,7 +14,6 @@
- #include "xf86_OSproc.h"
- 
- #include "mipointer.h"
--#include "mibstore.h"
- #include "micmap.h"
- #include "colormapst.h"
- #include "xf86cmap.h"
-@@ -612,7 +611,6 @@ GlamoScreenInit(SCREEN_INIT_ARGS_DECL)
-     }
- 
-     xf86SetBlackWhitePixels(pScreen);
--    miInitializeBackingStore(pScreen);
-     xf86SetBackingStore(pScreen);
- 
-     /* software cursor */
-diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c
-index c5c7a00..f192398 100644
---- a/src/glamo-kms-driver.c
-+++ b/src/glamo-kms-driver.c
-@@ -415,7 +415,6 @@ Bool GlamoKMSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc,
- 
- 	GlamoKMSExaInit(pScrn);
- 
--	miInitializeBackingStore(pScreen);
- 	xf86SetBackingStore(pScreen);
- 	xf86SetSilkenMouse(pScreen);
- 	miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
--- 
-1.8.1.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch
deleted file mode 100644
index 0d63743..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 963c221aa01be2ea99d39578d91e4aa08ec3ab0a Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Mon, 23 May 2011 14:29:38 +0200
-Subject: [PATCH] glamo-kms-driver: drop unused xf86_config
-
-* gcc-4.6 doesn't like unused variables which are only set and never read
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/glamo-kms-driver.c |    2 --
- 1 files changed, 0 insertions(+), 2 deletions(-)
-
-diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c
-index ce87caa..c5c7a00 100644
---- a/src/glamo-kms-driver.c
-+++ b/src/glamo-kms-driver.c
-@@ -208,7 +208,6 @@ static const xf86CrtcConfigFuncsRec crtc_config_funcs = {
- 
- Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags)
- {
--	xf86CrtcConfigPtr xf86_config;
- 	GlamoPtr pGlamo;
- 	rgb defaultWeight = { 0, 0, 0 };
- 	int max_width, max_height;
-@@ -254,7 +253,6 @@ Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags)
- 
- 	/* Allocate an xf86CrtcConfig */
- 	xf86CrtcConfigInit(pScrn, &crtc_config_funcs);
--	xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
- 
- 	max_width = 480;
- 	max_height = 640;
--- 
-1.7.5.rc3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch
deleted file mode 100644
index cbdc6e7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch
+++ /dev/null
@@ -1,279 +0,0 @@
-From 57e8944e3cced03b9526bd075649d74d97c24899 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 20 Nov 2012 22:18:23 +0100
-Subject: [PATCH 3/3] glamo-driver: adapt to xserver-0.13 video API
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/compat-api.h   | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/glamo-driver.c | 43 ++++++++++++------------
- 2 files changed, 118 insertions(+), 21 deletions(-)
- create mode 100644 src/compat-api.h
-
-diff --git a/src/compat-api.h b/src/compat-api.h
-new file mode 100644
-index 0000000..b1591b1
---- /dev/null
-+++ b/src/compat-api.h
-@@ -0,0 +1,96 @@
-+/*
-+ * Copyright 2012 Red Hat, Inc.
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a
-+ * copy of this software and associated documentation files (the "Software"),
-+ * to deal in the Software without restriction, including without limitation
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+ * and/or sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice (including the next
-+ * paragraph) shall be included in all copies or substantial portions of the
-+ * Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-+ * DEALINGS IN THE SOFTWARE.
-+ *
-+ * Author: Dave Airlie <airlied@redhat.com>
-+ */
-+
-+/* this file provides API compat between server post 1.13 and pre it,
-+   it should be reused inside as many drivers as possible */
-+#ifndef COMPAT_API_H
-+#define COMPAT_API_H
-+
-+#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
-+#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
-+#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
-+#endif
-+
-+#ifndef XF86_HAS_SCRN_CONV
-+#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
-+#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
-+#endif
-+
-+#ifndef XF86_SCRN_INTERFACE
-+
-+#define SCRN_ARG_TYPE int
-+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
-+
-+#define SCREEN_ARG_TYPE int
-+#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
-+
-+#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv
-+
-+#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask
-+#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask
-+
-+#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
-+#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
-+
-+#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
-+
-+#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
-+
-+#define FREE_SCREEN_ARGS_DECL int arg, int flags
-+#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0
-+
-+#define VT_FUNC_ARGS_DECL int arg, int flags
-+#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags)
-+
-+#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex)
-+#else
-+#define SCRN_ARG_TYPE ScrnInfoPtr
-+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
-+
-+#define SCREEN_ARG_TYPE ScreenPtr
-+#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
-+
-+#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
-+
-+#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
-+#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
-+
-+#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
-+#define CLOSE_SCREEN_ARGS pScreen
-+
-+#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
-+#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
-+
-+#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
-+#define FREE_SCREEN_ARGS(x) (x)
-+
-+#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
-+#define VT_FUNC_ARGS(flags) pScrn
-+
-+#define XF86_ENABLEDISABLEFB_ARG(x) (x)
-+
-+#endif
-+
-+#endif
-diff --git a/src/glamo-driver.c b/src/glamo-driver.c
-index b13caae..10b7762 100644
---- a/src/glamo-driver.c
-+++ b/src/glamo-driver.c
-@@ -43,6 +43,7 @@
- 
- #include <sys/mman.h>
- 
-+#include "compat-api.h"
- 
- static Bool debug = 0;
- 
-@@ -68,10 +69,10 @@ static Bool
- GlamoPreInit(ScrnInfoPtr pScrn, int flags);
- 
- static Bool
--GlamoScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
-+GlamoScreenInit(SCREEN_INIT_ARGS_DECL);
- 
- static Bool
--GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen);
-+GlamoCloseScreen(CLOSE_SCREEN_ARGS_DECL);
- 
- static Bool
- GlamoCrtcResize(ScrnInfoPtr scrn, int width, int height);
-@@ -86,10 +87,10 @@ static void
- GlamoRestoreHW(ScrnInfoPtr pScren);
- 
- static Bool
--GlamoEnterVT(int scrnIndex, int flags);
-+GlamoEnterVT(VT_FUNC_ARGS_DECL);
- 
- static void
--GlamoLeaveVT(int scrnIndex, int flags);
-+GlamoLeaveVT(VT_FUNC_ARGS_DECL);
- 
- static void
- GlamoLoadColormap(ScrnInfoPtr pScrn, int numColors, int *indices,
-@@ -248,8 +249,8 @@ GlamoUnmapMMIO(ScrnInfoPtr pScrn) {
- }
- 
- static Bool
--GlamoSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) {
--    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-+GlamoSwitchMode(SWITCH_MODE_ARGS_DECL) {
-+    SCRN_INFO_PTR(arg);
-     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (pScrn);
-     xf86OutputPtr output = config->output[config->compat_output];
-     Rotation rotation;
-@@ -286,7 +287,7 @@ GlamoFbdevProbe(DriverPtr drv, GDevPtr *devSections, int numDevSections)
- 
- 	for (i = 0; i < numDevSections; i++) {
- 
--		dev = xf86FindOptionValue(devSections[i]->options, "Device");
-+		dev = (char *) xf86FindOptionValue(devSections[i]->options, "Device");
- 		if (fbdevHWProbe(NULL, dev, NULL)) {
- 			int entity;
- 			pScrn = NULL;
-@@ -430,7 +431,7 @@ GlamoPreInit(ScrnInfoPtr pScrn, int flags)
- 
-     pGlamo->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
- 
--    fb_device = xf86FindOptionValue(pGlamo->pEnt->device->options, "Device");
-+    fb_device = (char *) xf86FindOptionValue(pGlamo->pEnt->device->options, "Device");
- 
-     /* open device */
-     if (!fbdevHWInit(pScrn, NULL, fb_device))
-@@ -523,7 +524,7 @@ GlamoPreInit(ScrnInfoPtr pScrn, int flags)
- 
- 
- static Bool
--GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-+GlamoScreenInit(SCREEN_INIT_ARGS_DECL)
- {
-     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-     GlamoPtr pGlamo = GlamoPTR(pScrn);
-@@ -545,7 +546,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- #endif
- 
-     if (NULL == (pGlamo->fbmem = fbdevHWMapVidmem(pScrn))) {
--        xf86DrvMsg(scrnIndex, X_ERROR, "mapping of video memory failed\n");
-+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mapping of video memory failed\n");
-         return FALSE;
-     }
- 
-@@ -556,13 +557,13 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-     /* mi layer */
-     miClearVisualTypes();
-     if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits, TrueColor)) {
--        xf86DrvMsg(scrnIndex, X_ERROR,
-+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                    "visual type setup failed for %d bits per pixel [1]\n",
-                    pScrn->bitsPerPixel);
-         return FALSE;
-     }
-     if (!miSetPixmapDepths()) {
--      xf86DrvMsg(scrnIndex, X_ERROR, "pixmap depth setup failed\n");
-+      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "pixmap depth setup failed\n");
-       return FALSE;
-     }
- 
-@@ -617,7 +618,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-     /* software cursor */
-     miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
- 
--    GlamoEnterVT(scrnIndex, 0);
-+    GlamoEnterVT(VT_FUNC_ARGS(0));
- 
-     xf86CrtcScreenInit(pScreen);
- #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,5,0,0,0)
-@@ -627,7 +628,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-     /* colormap */
-     pGlamo->colormap = NULL;
-     if (!miCreateDefColormap(pScreen)) {
--        xf86DrvMsg(scrnIndex, X_ERROR,
-+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                    "internal error: miCreateDefColormap failed "
-                    "in GlamoScreenInit()\n");
-         return FALSE;
-@@ -652,9 +653,9 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- }
- 
- static Bool
--GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen)
-+GlamoCloseScreen(CLOSE_SCREEN_ARGS_DECL)
- {
--    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-     GlamoPtr pGlamo = GlamoPTR(pScrn);
- 
-     if (pGlamo->accel)
-@@ -675,7 +676,7 @@ GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen)
- 
-     pScreen->CreateScreenResources = pGlamo->CreateScreenResources;
-     pScreen->CloseScreen = pGlamo->CloseScreen;
--    return (*pScreen->CloseScreen)(scrnIndex, pScreen);
-+    return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
- }
- 
- static Bool
-@@ -826,8 +827,8 @@ GlamoRestoreHW(ScrnInfoPtr pScrn) {
- }
- 
- static Bool
--GlamoEnterVT(int scrnIndex, int flags) {
--    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-+GlamoEnterVT(VT_FUNC_ARGS_DECL) {
-+    SCRN_INFO_PTR(arg);
-     GlamoPtr pGlamo = GlamoPTR(pScrn);
- 
-     GlamoSaveHW(pScrn);
-@@ -842,8 +843,8 @@ GlamoEnterVT(int scrnIndex, int flags) {
- }
- 
- static void
--GlamoLeaveVT(int scrnIndex, int flags) {
--    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-+GlamoLeaveVT(VT_FUNC_ARGS_DECL) {
-+    SCRN_INFO_PTR(arg);
-     GlamoPtr pGlamo = GlamoPTR(pScrn);
- 
-     if (pGlamo->accel)
--- 
-1.8.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch
deleted file mode 100644
index a820371..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 180a00634f351a09ceabc5695d8e1acc3e585501 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Fri, 12 Dec 2014 12:00:10 +0100
-Subject: [PATCH] glamo.h: use const for jbt6k74_state_path
-
-* fix build issue with xserver 1.16:
-  glamo-driver.c:501:32: error: assignment discards 'const' qualifier from pointer target type [-Werror]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- src/glamo.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/glamo.h b/src/glamo.h
-index 5fd5c04..5e072be 100644
---- a/src/glamo.h
-+++ b/src/glamo.h
-@@ -148,7 +148,7 @@ typedef struct {
- #endif
- 
- #ifdef JBT6K74_SET_STATE
--    char *jbt6k74_state_path;
-+    const char *jbt6k74_state_path;
-     char saved_jbt6k74_state[14];
- #endif
- 
--- 
-2.1.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
deleted file mode 100644
index 5818d0c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-SUMMARY = "X.Org X server -- Glamo display driver with KMS support"
-DEPENDS += "libdrm"
-RDEPENDS_${PN} += "xserver-xorg-module-exa"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
-
-PE = "2"
-PV = "1.0.0+gitr${SRCPV}"
-PR = "${INC_PR}.4"
-
-SRC_URI = "git://git.openmoko.org/git/xf86-video-glamo.git;branch=master \
-           file://0001-glamo-kms-driver-drop-unused-xf86_config.patch \
-           file://0001-fix-build-with-KMS-disabled.patch \
-           file://0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch \
-           file://0001-glamo-driver-remove-references-to-mibstore.patch \
-           file://0004-glamo.h-use-const-for-jbt6k74_state_path.patch \
-"
-
-S = "${WORKDIR}/git"
-SRCREV = "cb9ed17035a79e49dde26a1e7e2bc5f10fd8144b"
-
-EXTRA_OECONF = " --disable-kms "
-
-PNBLACKLIST[xf86-video-glamo] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130629/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch
new file mode 100644
index 0000000..ceae6df
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch
@@ -0,0 +1,68 @@
+Upstream-Status: Submitted [https://bugs.freedesktop.org/show_bug.cgi?id=57606]
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From c9014a8f3c9b691b5aa7b1f3ec66cf7c84b8211b Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Thu, 29 Nov 2012 11:00:43 +0000
+Subject: [PATCH] build: dont use AC_CHECK_FILE when enabling DRI
+
+Automatically enabling or disabling a feature based on installed files isn't
+deterministic, and AC_CHECK_FILE returns an error when cross-compiling.
+
+Fix this by enabling DRI by default, and removing the explicit file checks as
+pkg-config is good enough.
+
+(#57606)
+
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+---
+ configure.ac |   25 ++-----------------------
+ 1 file changed, 2 insertions(+), 23 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index fca1a9c..d2aa2ed 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,9 +55,9 @@ AC_ARG_WITH(xorg-module-dir,
+             [moduledir="$libdir/xorg/modules"])
+ 
+ AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
+-                                  [Disable DRI support [[default=auto]]]),
++                                  [Disable DRI support [[default=enabled]]]),
+               [DRI="$enableval"],
+-              [DRI=auto])
++              [DRI=yes])
+ AC_ARG_ENABLE(exa,
+               AS_HELP_STRING([--disable-exa],
+                              [Disable EXA support [[default=enabled]]]),
+@@ -76,27 +76,6 @@ sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
+ 
+ # Checks for libraries.
+ 
+-if test "x$DRI" != xno; then
+-        AC_CHECK_FILE([${sdkdir}/dri.h],
+-                      [have_dri_h="yes"], [have_dri_h="no"])
+-        AC_CHECK_FILE([${sdkdir}/sarea.h],
+-                      [have_sarea_h="yes"], [have_sarea_h="no"])
+-        AC_CHECK_FILE([${sdkdir}/dristruct.h],
+-                      [have_dristruct_h="yes"], [have_dristruct_h="no"])
+-fi
+-
+-AC_MSG_CHECKING([whether to include DRI support])
+-if test "x$DRI" = xauto; then
+-        if test "x$have_dri_h" = xyes && \
+-           test "x$have_sarea_h" = xyes && \
+-           test "x$have_dristruct_h" = xyes; then
+-                DRI="yes"
+-        else
+-                DRI="no"
+-        fi
+-fi
+-AC_MSG_RESULT([$DRI])
+-
+ AM_CONDITIONAL(DRI, test "x$DRI" = xyes)
+ if test "x$DRI" = xyes; then
+         PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb
new file mode 100644
index 0000000..cd68059
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb
@@ -0,0 +1,21 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+SUMMARY = "X.Org X server -- Matrox MGA display driver"
+
+DESCRIPTION = "mga is an Xorg driver for Matrox video cards"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=bc1395d2cd32dfc5d6c57d2d8f83d3fc"
+
+SRC_URI += "file://checkfile.patch"
+
+DEPENDS += "virtual/libx11 libpciaccess"
+
+COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
+
+SRC_URI[md5sum] = "3ee2549247e01de3e7bce52c27483118"
+SRC_URI[sha256sum] = "b663cd8e6364f7c4e2637b9fcab9861d0e3971518c73b00d213f6545a1289422"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}"
+PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xf86driproto,xserver-xorg-extension-dri"
+
+RDEPENDS_${PN} = "xserver-xorg-module-exa"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.12.bb
deleted file mode 100644
index 444189a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.12.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
-
-SUMMARY = "X.Org X server -- nouveau video driver"
-
-DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics"
-
-DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
-            virtual/libgl xineramaproto libpciaccess"
-RDEPENDS_${PN} += "xserver-xorg-module-exa"
-
-COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
-
-SRC_URI[md5sum] = "dc79910c7b9e32321cefc7af250c7765"
-SRC_URI[sha256sum] = "0ea057ad7fc31caba2d4e46c7e418fe2b3c762b04fb8d382f53383397fd8391e"
-
-
-PNBLACKLIST[xf86-video-nouveau] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130657/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb
new file mode 100644
index 0000000..2746821
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb
@@ -0,0 +1,20 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+
+SUMMARY = "X.Org X server -- nouveau video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
+            virtual/libgl xineramaproto libpciaccess"
+RDEPENDS_${PN} += "xserver-xorg-module-exa"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+SRC_URI[md5sum] = "717203cb87029cddcbccf7398f9ad8c3"
+SRC_URI[sha256sum] = "aede10fd395610a328697adca3434fb14e9afbd79911d6c8545cfa2c0e541d4c"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
index fcf6826..45e3f7b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
@@ -12,13 +12,3 @@
     font-bh-lucidatypewriter-100dpi \
     font-bitstream-100dpi \
 "
-
-PNBLACKLIST[xorg-fonts-100dpi] ?= "Runtime depends on blacklisted font-adobe-100dpi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-PNBLACKLIST[xorg-fonts-100dpi] ?= "Runtime depends on blacklisted xorg-fonts-100dpi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-PNBLACKLIST[xorg-fonts-100dpi] ?= "Runtime depends on blacklisted font-bh-100dpi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-PNBLACKLIST[xorg-fonts-100dpi] ?= "Runtime depends on blacklisted font-adobe-utopia-100dpi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-PNBLACKLIST[xorg-fonts-100dpi] ?= "Runtime depends on blacklisted font-bh-lucidatypewriter-100dpi - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb
new file mode 100644
index 0000000..8e370f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Proxy for UDP/TCP debug connections"
+DESCRIPTION = "The agent-proxy will forward tcp or udp connections as well as allow for script multiplexing of terminal sessions."
+HOMEPAGE = "http://kgdb.wiki.kernel.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SECTION = "devel"
+
+EXTRA_OEMAKE = "'CC=${CC}'"
+
+SRCREV = "e6c9d3d996bd55e7ab14dbd74deb7841e0c3a4f1"
+PV = "1.96+git${SRCPV}"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git;protocol=git \
+           file://0001-Makefile-Add-LDFLAGS-variable.patch \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+    install -d ${D}${bindir}
+    install -m 0755 agent-proxy ${D}${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/files/0001-Makefile-Add-LDFLAGS-variable.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/files/0001-Makefile-Add-LDFLAGS-variable.patch
new file mode 100644
index 0000000..5eec91d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/agent-proxy/files/0001-Makefile-Add-LDFLAGS-variable.patch
@@ -0,0 +1,43 @@
+From 1beb0dad6f8b99eb3bf1b9982e0b49e81ff77bbc Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 23 Nov 2016 19:17:31 +0800
+Subject: [PATCH] Makefile: Add LDFLAGS variable
+
+Add LDFLAGS variable to make sure the extra linkder
+flags can be passed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index e20918f..25d92d3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -51,7 +51,7 @@ $(CROSS_COMPILE)agent-proxy: $(OBJS)
+ 	$(CC) -DAGENT_VER=$(AGENTVER) $(LINKFLAGS) $(CFLAGS) -o $(extpath)$@ $(OBJS) wsock32.lib
+ else
+ $(CROSS_COMPILE)agent-proxy: $(OBJS)
+-	$(CC) -DAGENT_VER=$(AGENTVER) $(CFLAGS) -o $(extpath)$@ $(OBJS) $(LDLIBS)
++	$(CC) -DAGENT_VER=$(AGENTVER) $(CFLAGS) $(LDFLAGS) -o $(extpath)$@ $(OBJS) $(LDLIBS)
+ endif
+ 
+ 
+@@ -61,9 +61,9 @@ clean:
+ 	rm -f $(extpath)$(CROSS_COMPILE)agent-proxy $(extpath)agent-proxy $(extpath)*.o $(extpath)*.obj $(extpath)*.exp $(extpath)*.exe $(extpath)*.ilk $(extpath)*.pdb *~
+ 
+ $(extpath)$(CROSS_COMPILE)%.o::%.c
+-	$(CC) -DAGENT_VER=$(AGENTVER) $(CFLAGS) -c $< -o $@
++	$(CC) -DAGENT_VER=$(AGENTVER) $(CFLAGS) $(LDFLAGS) -c $< -o $@
+ 
+ $(extpath)%.obj:%.c
+-	$(CC) -DAGENT_VER=$(AGENTVER) $(CFLAGS) -c -Fo$@ $(TLSPATH_INC) $<
++	$(CC) -DAGENT_VER=$(AGENTVER) $(CFLAGS) $(LDFLAGS) -c -Fo$@ $(TLSPATH_INC) $<
+ 
+ 
+-- 
+2.8.3
+
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
new file mode 100644
index 0000000..c963c8e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Shows and sets processor power related values"
+DESCRIPTION = "cpupower is a collection of tools to examine and tune power \
+saving related features of your processor."
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+DEPENDS = "pciutils"
+PROVIDES = "virtual/cpupower"
+
+inherit kernelsrc kernel-arch
+
+do_populate_lic[depends] += "virtual/kernel:do_patch"
+
+EXTRA_OEMAKE = "-C ${S}/tools/power/cpupower O=${B} CROSS=${TARGET_PREFIX} CC="${CC}" LD="${LD}" AR=${AR} ARCH=${ARCH}"
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+    # Do not ship headers
+    rm -rf ${D}${includedir}
+    chown -R root:root ${D}
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+RDEPENDS_${PN} = "bash"
+
+python do_package_prepend() {
+    d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0])
+}
+
+B = "${WORKDIR}/${BPN}-${PV}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-Fix-for-a-compilation-error-if-glibc-2.25-or-later-h.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-Fix-for-a-compilation-error-if-glibc-2.25-or-later-h.patch
deleted file mode 100644
index 9434815..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-Fix-for-a-compilation-error-if-glibc-2.25-or-later-h.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From b8c8fbe0a2481e97fc57dd596346827a692a5768 Mon Sep 17 00:00:00 2001
-From: Dave Anderson <anderson@redhat.com>
-Date: Tue, 28 Mar 2017 15:44:40 -0400
-Subject: [PATCH 1/3] Fix for a compilation error if glibc-2.25 or later has
- been installed on the host build machine.  Without the patch, the build fails
- with the error message "amd64-linux-nat.c:496:1: error: conflicting types for
- 'ps_get_thread_area'". (anderson@redhat.com)
-
-Upstream-Status: Backport
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- Makefile                     |  6 +++++
- configure.c                  |  2 +-
- gdb-7.6-proc_service.h.patch | 55 ++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 62 insertions(+), 1 deletion(-)
- create mode 100644 gdb-7.6-proc_service.h.patch
-
-diff --git a/Makefile b/Makefile
-index 202ef8b..b6b7e80 100644
---- a/Makefile
-+++ b/Makefile
-@@ -264,6 +264,12 @@ gdb_patch:
- 	if [ "${ARCH}" = "x86_64" ] && [ "${TARGET}" = "PPC64" ] && [ -f ${GDB}-ppc64le-support.patch ]; then \
- 		patch -d ${GDB} -p1 -F0 < ${GDB}-ppc64le-support.patch ; \
- 	fi
-+	if [ -f /usr/include/proc_service.h ]; then \
-+		grep 'extern ps_err_e ps_get_thread_area (struct' /usr/include/proc_service.h; \
-+		if [ $$? -eq 0 ]; then \
-+			patch -p0 < ${GDB}-proc_service.h.patch; \
-+		fi; \
-+	fi
- 
- library: make_build_data ${OBJECT_FILES}
- 	ar -rs ${PROGRAM}lib.a ${OBJECT_FILES}
-diff --git a/configure.c b/configure.c
-index d63cdd7..776defe 100644
---- a/configure.c
-+++ b/configure.c
-@@ -240,7 +240,7 @@ struct supported_gdb_version {
- 	    "7.6",
- 	    "GDB_FILES=${GDB_7.6_FILES}",
- 	    "GDB_OFILES=${GDB_7.6_OFILES}",
--	    "GDB_PATCH_FILES=gdb-7.6.patch gdb-7.6-ppc64le-support.patch",
-+	    "GDB_PATCH_FILES=gdb-7.6.patch gdb-7.6-ppc64le-support.patch gdb-7.6-proc_service.h.patch",
- 	    "GDB_FLAGS=-DGDB_7_6",
- 	    "GPLv3"
- 	},
-diff --git a/gdb-7.6-proc_service.h.patch b/gdb-7.6-proc_service.h.patch
-new file mode 100644
-index 0000000..49d18bb
---- /dev/null
-+++ b/gdb-7.6-proc_service.h.patch
-@@ -0,0 +1,55 @@
-+--- gdb-7.6/gdb/gdb_proc_service.h.orig
-++++ gdb-7.6/gdb/gdb_proc_service.h
-+@@ -115,7 +115,7 @@ extern pid_t ps_getpid (struct ps_procha
-+ /* Fetch the special per-thread address associated with the given LWP.
-+    This call is only used on a few platforms (most use a normal register).
-+    The meaning of the `int' parameter is machine-dependent.  */
-+-extern ps_err_e ps_get_thread_area (const struct ps_prochandle *,
-++extern ps_err_e ps_get_thread_area (struct ps_prochandle *,
-+ 				    lwpid_t, int, psaddr_t *);
-+ 
-+ 
-+--- gdb-7.6/gdb/amd64-linux-nat.c.orig
-++++ gdb-7.6/gdb/amd64-linux-nat.c
-+@@ -493,7 +493,7 @@ amd64_linux_new_fork (struct lwp_info *p
-+    a request for a thread's local storage address.  */
-+ 
-+ 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 (gdbarch_bfd_arch_info (target_gdbarch ())->bits_per_word == 32)
-+--- gdb-7.6/gdb/aarch64-linux-nat.c.orig
-++++ gdb-7.6/gdb/aarch64-linux-nat.c
-+@@ -750,7 +750,7 @@ aarch64_linux_new_fork (struct lwp_info
-+    storage (or its descriptor).  */
-+ 
-+ 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)
-+ {
-+   struct iovec iovec;
-+--- gdb-7.6/gdb/arm-linux-nat.c.orig
-++++ gdb-7.6/gdb/arm-linux-nat.c
-+@@ -613,7 +613,7 @@ supply_fpregset (struct regcache *regcac
-+ /* 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)
-+--- gdb-7.6/gdb/i386-linux-nat.c.orig
-++++ gdb-7.6/gdb/i386-linux-nat.c
-+@@ -849,7 +849,7 @@ i386_linux_new_fork (struct lwp_info *pa
-+    storage (or its descriptor).  */
-+ 
-+ 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)
-+ {
-+   /* NOTE: cagney/2003-08-26: The definition of this buffer is found
--- 
-2.8.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.9.bb
similarity index 94%
rename from import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.9.bb
index 9c31f5e..d40937e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.9.bb
@@ -10,7 +10,7 @@
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
 
-DEPENDS = "zlib readline"
+DEPENDS = "zlib readline coreutils-native"
 
 SRC_URI = "https://github.com/crash-utility/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
            http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz;name=gdb;subdir=${BP} \
@@ -22,14 +22,12 @@
            file://donnot-extract-gdb-during-do-compile.patch \
            file://gdb_build_jobs_and_not_write_crash_target.patch \
            file://remove-unrecognized-gcc-option-m32-for-mips.patch \
-           file://0001-Fix-for-a-compilation-error-if-glibc-2.25-or-later-h.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] = "31787074f267a3536eebff008a0652ec"
-SRC_URI[sha256sum] = "9965dee9199d7e39764fbee7f21c7c45b1f7b6d17c8e92ad62f468f062876478"
+SRC_URI[md5sum] = "f3b44a151dbe7046462b9caaa9847ca6"
+SRC_URI[sha256sum] = "c48e1269443a6a8e8337e328b21b03e4e50248f607eed83fbb27eb0d833d6aa4"
 
 SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
 SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap-module_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap-module_git.bb
deleted file mode 100644
index 1119d4c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap-module_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require ktap.inc
-
-SUMMARY = "KTAP is a scripting dynamic tracing tool for Linux"
-
-inherit module
-
-# See https://github.com/ktap/ktap/issues/80
-PNBLACKLIST[ktap-module] ?= "Not compatible with 3.19 kernel - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-# Only build the module
-MAKE_TARGETS = "mod"
-
-# Kernel module packages MUST begin with 'kernel-module-', otherwise
-# multilib image generation can fail.
-#
-# The following line is only necessary if the recipe name does not begin
-# with kernel-module-.
-#
-PKG_${PN} = "kernel-module-${PN}"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap.inc b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap.inc
deleted file mode 100644
index c214a02..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-HOMEPAGE = "http://www.ktap.org"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE-GPL;md5=eb723b61539feef013de476e68b5c50a"
-
-PV = "0.4+gitr${SRCPV}"
-SRCREV = "c8401e07c89cdec9a5f673da4ddb12b7982b522b"
-SRC_URI = "git://github.com/ktap/ktap.git"
-
-S = "${WORKDIR}/git"
-
-# Package config is abused as a general compile time configuration tool.
-
-# Only supports x86_64 for now!. Needs to be enabled for ktap-module too.
-PACKAGECONFIG[ffi] = ""
-
-# Needed to resolve symbols in DSO and for sdt
-PACKAGECONFIG[libelf] = ",,elfutils"
-
-PACKAGECONFIG ?= "libelf"
-
-EXTRA_OEMAKE = " \
-    ${@bb.utils.contains('PACKAGECONFIG', 'libelf', '', 'NO_LIBELF=1', d)} \
-    ${@bb.utils.contains('PACKAGECONFIG', 'ffi', 'FFI=1', '', d)} \
-"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap_git.bb
deleted file mode 100644
index a947b7f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require ktap.inc
-
-SUMMARY = "KTAP is a scripting dynamic tracing tool for Linux"
-DEPENDS = "ktap-module"
-
-PNBLACKLIST[ktap] ?= "Depends on blacklisted kernel-module-ktapvm - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-# Only build the userspace app
-EXTRA_OEMAKE += "ktap"
-
-do_install() {
-    install -d ${D}${bindir}
-    install -m 0755 ${S}/ktap ${D}${bindir}/
-}
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-RRECOMMENDS_${PN} = "kernel-module-ktapvm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-Add-proper-format-string-to-print-a-str.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-Add-proper-format-string-to-print-a-str.patch
deleted file mode 100644
index 056a0ba..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-Add-proper-format-string-to-print-a-str.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0fff28f31aef9ad1d5a817216a3c98ba9d605106 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 19 Jun 2017 23:52:14 -0700
-Subject: [PATCH] makedumpfile: Add proper format string to print a string
-
-Fix
-makedumpfile.c: In function 'write_eraseinfo':
-makedumpfile.c:8273:4: error: format not a string literal and no format arguments [-Werror=format-security]
-    DEBUG_MSG(obuf);
-    ^~~~~~~~~
-makedumpfile.c:8273:4: error: format not a string literal and no format arguments [-Werror=format-security]
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- makedumpfile.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/makedumpfile.c b/makedumpfile.c
-index e69b6df..8b8a6b0 100644
---- a/makedumpfile.c
-+++ b/makedumpfile.c
-@@ -8270,7 +8270,7 @@ write_eraseinfo(struct cache_data *cd_page, unsigned long *size_out)
- 			}
- 			sprintf(obuf, "erase %s %s", erase_info[i].symbol_expr,
- 							size_str);
--			DEBUG_MSG(obuf);
-+			DEBUG_MSG("%s", obuf);
- 			if (!write_cache(cd_page, obuf, strlen(obuf)))
- 				goto out;
- 			size_eraseinfo += strlen(obuf);
--- 
-2.13.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb
similarity index 87%
rename from import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb
index 83bbf7f..d6f2d80 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb
@@ -24,10 +24,9 @@
     ${SOURCEFORGE_MIRROR}/makedumpfile/${BPN}-${PV}.tar.gz \
     file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
     file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \
-    file://0001-makedumpfile-Add-proper-format-string-to-print-a-str.patch \
 "
-SRC_URI[md5sum] = "16c0ae9902ae57be4a603a6ab1e86c53"
-SRC_URI[sha256sum] = "0b6e73106998670407887de9e1a505b3a2dbb2fb517a4b968a665eda8fb097ce"
+SRC_URI[md5sum] = "72be5bf973eed898c5127e3abc466583"
+SRC_URI[sha256sum] = "ee3d21cb4032a60bd2c802d1d8b21b9f399710e1574f8de8ead5ab50cd821a6d"
 
 SECTION = "base"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-fix-compile-error-on-arch-x32.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-fix-compile-error-on-arch-x32.patch
new file mode 100644
index 0000000..6ba6ad4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-fix-compile-error-on-arch-x32.patch
@@ -0,0 +1,32 @@
+From 883f53ee33eaef8aca1288a110857402ad362966 Mon Sep 17 00:00:00 2001
+From: John Ogness <john.ogness@linutronix.de>
+Date: Fri, 8 Sep 2017 15:03:03 -0700
+Subject: [PATCH] fix compile error on arch=x32
+
+On the x32 architecture time_t is a "long long int". By
+ typecasting time_t to "long long", this should work correctly
+ for all architectures.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/minicoredumper/corestripper.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c
+index fd39bfb..07dc318 100644
+--- a/src/minicoredumper/corestripper.c
++++ b/src/minicoredumper/corestripper.c
+@@ -1241,7 +1241,7 @@ static int dump_compressed_tar(struct dump_info *di)
+ 	snprintf(hdr.mode, sizeof(hdr.mode), "%07o", 0644);
+ 	snprintf(hdr.uid, sizeof(hdr.uid), "%07o", 0);
+ 	snprintf(hdr.gid, sizeof(hdr.gid), "%07o", 0);
+-	snprintf(hdr.mtime, sizeof(hdr.mtime), "%011lo",
++	snprintf(hdr.mtime, sizeof(hdr.mtime), "%011llo",
+ 		 (long long)time(NULL));
+ 	memset(hdr.checksum, ' ', sizeof(hdr.checksum));
+ 	hdr.type = 'S';
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch
new file mode 100644
index 0000000..ad255fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch
@@ -0,0 +1,29 @@
+From 6181d9c3c407ee030b4c3a94045318b9e3a3cc89 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 25 Jul 2017 14:08:54 -0700
+Subject: [PATCH] minicoredumper: Initialize pointer to config struct to null
+
+Fixes
+corestripper.c:3632:13: error: variable 'cfg' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/minicoredumper/corestripper.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c
+index a764073..ddb0d25 100644
+--- a/src/minicoredumper/corestripper.c
++++ b/src/minicoredumper/corestripper.c
+@@ -3605,7 +3605,7 @@ out:
+ 
+ static int do_all_dumps(struct dump_info *di, int argc, char *argv[])
+ {
+-	struct config *cfg;
++	struct config *cfg = 0;
+ 	const char *recept;
+ 	bool live_dumper;
+ 	char *comm_base;
+-- 
+2.13.3
+
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 58cd45a..1858e10 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
@@ -1,7 +1,7 @@
 SUMMARY = "minicoredumper provides an alternate core dump facility for Linux \
 to allow minimal and customized crash dumps"
 LICENSE = " LGPLv2.1 & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=709087c2ed0acda54a4d91497a889e42 \
+LIC_FILES_CHKSUM = "file://COPYING;md5=aa846ae365f71b69e9fa0d21a56391ec \
                     file://COPYING.BSD;md5=b915ac80d5236d6aa659cb986daf00e5 \
                     file://COPYING.LGPLv2.1;md5=321bf41f280cf805086dd5a720b37785 \
                    "
@@ -9,14 +9,16 @@
 
 inherit autotools pkgconfig systemd update-rc.d
 
-SRCREV = "248019446ccf6079926efb54f8b6dd7be769bbae"
+SRCREV = "cdc1faf1212a51e89b477468876e229223fceb9a"
 
 PR .= "+git${SRCPV}"
 
-SRC_URI = "git://github.com/Linutronix/minicoredumper-debian;branch=unstable \
+SRC_URI = "git://git.linuxfoundation.org/diamon/minicoredumper.git;protocol=http \
            file://minicoredumper.service \
            file://minicoredumper.init \
-"
+           file://0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch \
+           file://0001-fix-compile-error-on-arch-x32.patch \
+           "
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
new file mode 100644
index 0000000..4b01654
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc
@@ -0,0 +1,65 @@
+SUMMARY = "System-Wide Profiler"
+DESCRIPTION = "OProfile is a system-wide profiler for Linux systems, capable \
+of profiling all running code at low overhead."
+HOMEPAGE = "http://oprofile.sourceforge.net/news/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=16191&atid=116191"
+
+LICENSE = "LGPLv2.1+ & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://libopagent/opagent.h;beginline=5;endline=26;md5=4f16f72c7a493d8a4704aa18d03d15c6 \
+                   "
+SECTION = "devel"
+
+DEPENDS = "popt binutils"
+RDEPENDS_${PN} = "binutils-symlinks"
+RRECOMMENDS_${PN} = "kernel-vmlinux"
+
+FILES_${PN} = "${bindir} ${libdir}/${BPN}/lib*${SOLIBS} ${datadir}/${BPN}"
+FILES_${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV} ${libdir}/${BPN}/lib*.la"
+FILES_${PN}-staticdev += "${libdir}/${BPN}/lib*.a"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+           file://acinclude.m4 \
+           file://automake-foreign.patch \
+           file://oprofile-cross-compile-tests.patch \
+           file://run-ptest \
+           file://root-home-dir.patch \
+           file://0001-Add-rmb-definition-for-NIOS2-architecture.patch \
+           file://0001-Fix-FTBFS-problem-with-GCC-6.patch \
+"
+UPSTREAM_CHECK_REGEX = "oprofile-(?P<pver>\d+(\.\d+)+)/"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/oprofile/files/oprofile/"
+
+SRC_URI_append_libc-musl = " file://musl.patch"
+
+inherit autotools pkgconfig ptest
+
+EXTRA_OECONF = "--with-kernel=${STAGING_DIR_HOST}${prefix} --without-x ac_cv_prog_XSLTPROC="
+do_configure () {
+	cp ${WORKDIR}/acinclude.m4 ${S}/
+	autotools_do_configure
+}
+
+EXTRA_OEMAKE = "SRCDIR=${PTEST_PATH}/libutil++/tests"
+do_compile_ptest() {
+	oe_runmake check
+}
+
+do_install_ptest() {
+	subdirs="libdb/tests libutil++/tests libregex/tests libutil/tests libop/tests libdb/tests "
+	for tooltest in ${subdirs}
+	do
+		find ${tooltest} -perm /u=x -type f| cpio -pvdu ${D}${PTEST_PATH}
+	done
+
+	# needed by some libop tests
+	cp -r events ${D}${PTEST_PATH}
+
+	# needed by libregex regex_test
+	cp libregex/stl.pat ${D}${PTEST_PATH}/libregex
+	cp libregex/tests/mangled-name ${D}${PTEST_PATH}/libregex/tests
+
+	# needed by litutil++ file_manip_tests
+	cp ${S}/libutil++/tests/file_manip_tests.cpp \
+		libutil++/tests/file_manip_tests.o ${D}${PTEST_PATH}/libutil++/tests
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Add-rmb-definition-for-NIOS2-architecture.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Add-rmb-definition-for-NIOS2-architecture.patch
new file mode 100644
index 0000000..ae8562a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Add-rmb-definition-for-NIOS2-architecture.patch
@@ -0,0 +1,30 @@
+From 34b0d9b1a32fb404a30327a7ae8931c7c75583bf Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 9 Feb 2016 02:00:29 +0100
+Subject: [PATCH] Add rmb() definition for NIOS2 architecture
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Upstream-Status: Submitted [ http://marc.info/?l=oprofile-list&m=145501915931874&w=2 ]
+---
+ libperf_events/operf_utils.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libperf_events/operf_utils.h b/libperf_events/operf_utils.h
+index 32954cc..8270e53 100644
+--- a/libperf_events/operf_utils.h
++++ b/libperf_events/operf_utils.h
+@@ -178,6 +178,11 @@ void op_release_resources(void);
+ #define cpu_relax()	asm volatile("" ::: "memory")
+ #endif
+ 
++#ifdef __nios2__
++#define rmb()		asm volatile("" ::: "memory")
++#define cpu_relax()	asm volatile("" ::: "memory")
++#endif
++
+ #ifdef __tile__
+ #include <asm/unistd.h>
+ #define rmb()		__insn_mf()
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
new file mode 100644
index 0000000..d372fd5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
@@ -0,0 +1,51 @@
+From 39d4d46a0bd504ac708ffe72df87bf74cd12ad30 Mon Sep 17 00:00:00 2001
+From: William Cohen <wcohen@redhat.com>
+Date: Fri, 5 Feb 2016 17:30:19 -0500
+Subject: [PATCH] Fix FTBFS problem with GCC-6
+
+GCC-6 is pickier about some of the type conversions causing the Fedora
+24 mass rebuild the build of oprofile failed with:
+
+make[3]: Entering directory '/builddir/build/BUILD/oprofile-1.1.0/libutil++'
+g++ -DHAVE_CONFIG_H -I. -I..  -I ../libutil -I ../libop -I ../libpp   -W -Wall -fno-common -ftemplate-depth-50 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c -o op_bfd.o op_bfd.cpp
+op_bfd.cpp: In member function 'void op_bfd::get_symbol_range(symbol_index_t, long long unsigned int&, long long unsigned int&) const':
+op_bfd.cpp:538:47: error: cannot convert 'std::ostream {aka std::basic_ostream<char>}' to 'const bool' in initialization
+  bool const verbose = cverb << (vbfd & vlevel1);
+                                               ^
+op_bfd.cpp:546:7: error: in argument to unary !
+  if (!verbose)
+       ^~~~~~~
+
+Avoid the intermediate bool type to make GCC-6 happy.
+
+Signed-off-by: William Cohen <wcohen@redhat.com>
+---
+Upstream-Status: Backport
+
+ libutil++/op_bfd.cpp | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/libutil++/op_bfd.cpp b/libutil++/op_bfd.cpp
+index 389c920..f2eb42b 100644
+--- a/libutil++/op_bfd.cpp
++++ b/libutil++/op_bfd.cpp
+@@ -535,15 +535,13 @@ void op_bfd::get_symbol_range(symbol_index_t sym_idx,
+ {
+ 	op_bfd_symbol const & sym = syms[sym_idx];
+ 
+-	bool const verbose = cverb << (vbfd & vlevel1);
+-
+ 	if (anon_obj)
+ 		start = sym.vma();
+ 	else
+ 		start = sym.filepos();
+ 	end = start + sym.size();
+ 
+-	if (!verbose)
++	if (!(cverb << (vbfd & vlevel1)))
+ 		return;
+ 
+ 	io_state state(cverb << (vbfd & vlevel1));
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/acinclude.m4 b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/acinclude.m4
new file mode 100644
index 0000000..95ecd91
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/acinclude.m4
@@ -0,0 +1,581 @@
+dnl AX_KERNEL_OPTION(option, action-if-found, action-if-not-found)
+dnl see if autoconf.h defines the option
+AC_DEFUN([AX_KERNEL_OPTION], [
+SAVE_CFLAGS=$CFLAGS
+CFLAGS="-I$KINC -O2 -D__KERNEL__"
+AC_TRY_COMPILE( [#include <linux/config.h>],
+[
+#ifndef $1
+break_me_hard(\\\);
+#endif
+],[$2],[$3],)
+CFLAGS=$SAVE_CFLAGS
+])
+
+dnl Handle the 2.4 module inside module/
+AC_DEFUN([AX_CONFIG_MODULE],
+[
+if test ! -f $KINC/linux/autoconf.h; then
+	AC_MSG_ERROR([no suitably configured kernel include tree found])
+fi
+
+dnl  --- Get Linux kernel version and compile parameters ---
+
+AC_SUBST(KVERS)
+AC_MSG_CHECKING([for kernel version])
+dnl it's like this to handle mandrake's fubar version.h - bug #471448
+eval KVERS=`gcc -I$KINC -E -dM $KINC/linux/version.h | grep -w UTS_RELEASE | awk '{print $[]3}'`
+AC_MSG_RESULT([$KVERS])
+case "$KVERS" in
+2.2.*|2.4.*) ;;
+*) AC_MSG_ERROR([Unsupported kernel version])
+esac
+
+dnl Check for the minimal kernel version supported
+AC_MSG_CHECKING([kernel version])
+AX_KERNEL_VERSION(2, 2, 10, <=, AC_MSG_RESULT([ok]), AC_MSG_ERROR([check html documentation install section]))
+
+dnl linux/spinlock.h added at some point in past
+AC_MSG_CHECKING([for $KINC/linux/spinlock.h])
+if test -f $KINC/linux/spinlock.h; then
+	EXTRA_CFLAGS_MODULE="$EXTRA_CFLAGS_MODULE -DHAVE_LINUX_SPINLOCK_HEADER"
+	AC_MSG_RESULT([yes])
+else
+	AC_MSG_RESULT([no])
+fi
+
+AC_MSG_CHECKING([for rtc_lock])
+gcc -I$KINC -E $KINC/linux/mc146818rtc.h | grep rtc_lock >/dev/null
+if test "$?" -eq 0; then
+	EXTRA_CFLAGS_MODULE="$EXTRA_CFLAGS_MODULE -DRTC_LOCK"
+	AC_MSG_RESULT([yes])
+else
+	AC_MSG_RESULT([no])
+fi
+	 
+arch="unknown"
+AC_MSG_CHECKING(for x86-64 architecture)
+AX_KERNEL_OPTION(CONFIG_X86_64, x8664=1, x8664=0)
+AX_MSG_RESULT_YN($x8664)
+BUILD_HAMMER=no
+if test "$x8664" -eq 1; then
+	arch="x86"
+	BUILD_HAMMER=yes
+else
+	AC_MSG_CHECKING(for x86 architecture)
+	AX_KERNEL_OPTION(CONFIG_X86, x86=1, x86=0)
+	AX_KERNEL_OPTION(CONFIG_X86_WP_WORKS_OK, x86=1, x86=$x86)
+	AX_MSG_RESULT_YN($x86)
+	test "$x86" = 1 && arch="x86"
+	
+	if test "$arch" = "unknown"; then
+  		AC_MSG_CHECKING(for ia64 architecture)
+  		AX_KERNEL_OPTION(CONFIG_IA64, ia64=1, ia64=0)
+  		AX_MSG_RESULT_YN($ia64)
+  		test "$ia64" = 1 && arch="ia64"
+	fi
+
+fi
+AC_SUBST(BUILD_HAMMER)
+
+test "$arch" = "unknown" && AC_MSG_ERROR(Unsupported architecture)
+
+dnl check to see if kernel verion appropriate for arch
+AC_MSG_CHECKING(arch/kernel version combination)
+case "$arch" in
+ia64)
+	AX_KERNEL_VERSION(2, 4, 18, <, AC_MSG_RESULT([ok]),
+		AC_MSG_ERROR([unsupported arch/kernel])) ;;
+*) AC_MSG_RESULT([ok])
+esac
+
+dnl for now we do not support PREEMPT patch
+AC_MSG_CHECKING([for preempt patch])
+AX_KERNEL_OPTION(CONFIG_PREEMPT,preempt=1,preempt=0)
+AX_MSG_RESULT_YN([$preempt])
+test "$preempt" = 0 || AC_MSG_ERROR([unsupported kernel configuration : CONFIG_PREEMPT])
+
+AC_SUBST(KINC)
+
+MODINSTALLDIR=/lib/modules/$KVERS
+ 
+OPROFILE_MODULE_ARCH=$arch
+AC_SUBST(OPROFILE_MODULE_ARCH)
+]
+)
+
+dnl AX_MSG_RESULT_YN(a)
+dnl results "yes" iff a==1, "no" else
+AC_DEFUN([AX_MSG_RESULT_YN], [x=no
+test "x$1" = "x1" && x=yes
+AC_MSG_RESULT($x)])
+
+dnl AX_MALLOC_ATTRIBUTE - see if gcc will take __attribute__((malloc))
+AC_DEFUN([AX_MALLOC_ATTRIBUTE],
+[
+AC_MSG_CHECKING([whether malloc attribute is understood])
+SAVE_CFLAGS=$CFLAGS
+CFLAGS="-Werror $CFLAGS"
+AC_TRY_COMPILE(,[
+void monkey() __attribute__((malloc));
+],AC_MSG_RESULT([yes]); AC_DEFINE(MALLOC_ATTRIBUTE_OK, 1, [whether malloc attribute is understood]), AC_MSG_RESULT([no]))
+CFLAGS=$SAVE_CFLAGS 
+]
+)
+
+dnl builtin_expect is used in module we can't add that in config.h
+AC_DEFUN([AX_BUILTIN_EXPECT],
+[
+AC_MSG_CHECKING([whether __builtin_expect is understood])
+SAVE_CFLAGS=$CFLAGS
+CFLAGS="-Werror $CFLAGS"
+AC_TRY_LINK(,[
+int i;
+if (__builtin_expect(i, 0)) { }
+],
+AC_MSG_RESULT([yes]); EXTRA_CFLAGS_MODULE="$EXTRA_CFLAGS_MODULE -DEXPECT_OK",
+AC_MSG_RESULT([no]);)
+CFLAGS=$SAVE_CFLAGS 
+]
+) 
+
+dnl AX_EXTRA_DIRS - Let user specify extra dirs for include/libs
+AC_DEFUN([AX_EXTRA_DIRS],
+[
+AC_ARG_WITH(extra-includes,
+[  --with-extra-includes=DIR    add extra include paths],
+  use_extra_includes="$withval",
+  use_extra_includes=NO
+)
+if test -n "$use_extra_includes" && \
+        test "$use_extra_includes" != "NO"; then
+  ac_save_ifs=$IFS
+  IFS=':'
+  for dir in $use_extra_includes; do
+    extra_includes="$extra_includes -I$dir"
+  done
+  IFS=$ac_save_ifs
+  CPPFLAGS="$CPPFLAGS $extra_includes"
+fi
+
+AC_ARG_WITH(extra-libs,
+[  --with-extra-libs=DIR        add extra library paths],
+  use_extra_libs=$withval,
+  use_extra_libs=NO
+)
+if test -n "$use_extra_libs" && \
+        test "$use_extra_libs" != "NO"; then
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $use_extra_libs; do
+     extra_libraries="$extra_libraries -L$dir"
+   done
+   IFS=$ac_save_ifs
+   LDFLAGS="$LDFLAGS $extra_libraries"
+fi
+]
+)
+
+dnl AX_POPT_CONST - check popt prototype
+AC_DEFUN([AX_POPT_CONST],
+[
+AC_MSG_CHECKING([popt prototype])
+SAVE_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-Werror $CXXFLAGS"
+AC_TRY_COMPILE([#include <popt.h>],
+[
+int c; char **v;
+poptGetContext(0, c, v, 0, 0);
+],
+AC_MSG_RESULT([takes char **]);,
+AC_MSG_RESULT([takes const char **]); AC_DEFINE(CONST_POPT, 1, [whether popt prototype takes a const char **]))
+CXXFLAGS="$SAVE_CXXFLAGS"
+]
+)
+
+dnl AX_CHECK_SSTREAM - check if local sstream is needed to compile OK
+AC_DEFUN([AX_CHECK_SSTREAM],
+[
+AC_MSG_CHECKING([whether to use included sstream])
+AC_TRY_COMPILE([#include <sstream>], [], 
+AC_MSG_RESULT([no]);,
+AC_MSG_RESULT([yes]); OP_CXXFLAGS="$OP_CXXFLAGS -I\${top_srcdir}/include")
+]
+)
+
+dnl AX_CHECK_TYPEDEF(typedef_name, type, action-if-true, action-if-false)
+dnl exec action-if-true if typedef_name is a typedef to type else exec 
+dnl action-if-false
+dnl currently work only with type typedef'ed in stddef.h
+AC_DEFUN([AX_CHECK_TYPEDEF], [
+dnl AC_LANG_PUSH(C) not in autoconf 2.13
+AC_LANG_SAVE
+AC_LANG_C
+SAVE_CFLAGS=$CFLAGS
+CFLAGS="-Werror $CFLAGS"
+
+AC_TRY_COMPILE(
+  [
+  #include <stddef.h>
+  ],
+  [
+  typedef void (*fct1)($1);
+  typedef void (*fct2)($2);
+  fct1 f1 = 0;
+  fct2 f2 = 0;
+  if (f1 == f2) {}
+  ],
+[$3],[$4])
+
+CFLAGS=$SAVE_CFLAGS
+AC_LANG_RESTORE
+])
+
+
+dnl AX_TYPEDEFED_NAME(typedef_name, candidate_list, var_name)
+dnl set var_name to the typedef name of $1 which must be in canditate_list
+dnl else produce a fatal error
+AC_DEFUN([AX_TYPEDEFED_NAME], [
+	AC_MSG_CHECKING([type of $1])
+	for f in $2; do
+		AX_CHECK_TYPEDEF($1, $f, $3="$f", $3="")
+		if test -n "${$3}"; then
+			break
+		fi
+	done
+	if test -n "${$3}"; then
+		AC_MSG_RESULT([${$3}])
+	else
+		AC_MSG_ERROR([not found])
+	fi
+])
+
+dnl find a binary in the path
+AC_DEFUN([QT_FIND_PATH],
+[
+	AC_MSG_CHECKING([for $1])
+	AC_CACHE_VAL(qt_cv_path_$1,
+	[
+		qt_cv_path_$1="NONE"
+		if test -n "$$2"; then
+			qt_cv_path_$1="$$2";
+		else
+			dirs="$3"
+			qt_save_IFS=$IFS
+			IFS=':'
+			for dir in $PATH; do
+				dirs="$dirs $dir"
+			done
+			IFS=$qt_save_IFS
+ 
+			for dir in $dirs; do
+				if test -x "$dir/$1"; then
+					if test -n "$5"; then
+						evalstr="$dir/$1 $5 2>&1 "
+						if eval $evalstr; then
+							qt_cv_path_$1="$dir/$1"
+							break
+						fi
+					else
+						qt_cv_path_$1="$dir/$1"
+						break
+					fi
+				fi
+			done
+		fi
+	])
+ 
+	if test -z "$qt_cv_path_$1" || test "$qt_cv_path_$1" = "NONE"; then
+		AC_MSG_RESULT(not found)
+		$4
+	else
+		AC_MSG_RESULT($qt_cv_path_$1)
+		$2=$qt_cv_path_$1
+	fi
+])
+
+dnl Find the uic compiler on the path or in qt_cv_dir
+AC_DEFUN([QT_FIND_UIC],
+[
+	QT_FIND_PATH(uic, ac_uic, $qt_cv_dir/bin)
+	if test -z "$ac_uic" -a "$FATAL" = 1; then
+		AC_MSG_ERROR([uic binary not found in \$PATH or $qt_cv_dir/bin !])
+	fi
+])
+ 
+dnl Find the right moc in path/qt_cv_dir
+AC_DEFUN([QT_FIND_MOC],
+[
+	QT_FIND_PATH(moc2, ac_moc2, $qt_cv_dir/bin)
+	QT_FIND_PATH(moc, ac_moc1, $qt_cv_dir/bin)
+
+	if test -n "$ac_moc1" -a -n "$ac_moc2"; then
+		dnl found both. Prefer Qt3's if it exists else moc2
+		$ac_moc1 -v 2>&1 | grep "Qt 3" >/dev/null
+		if test "$?" = 0; then
+			ac_moc=$ac_moc1;
+		else
+			ac_moc=$ac_moc2;
+		fi
+	else
+		if test -n "$ac_moc1"; then
+			ac_moc=$ac_moc1;
+		else
+			ac_moc=$ac_moc2;
+		fi
+	fi
+
+	if test -z "$ac_moc"  -a "$FATAL" = 1; then
+		AC_MSG_ERROR([moc binary not found in \$PATH or $qt_cv_dir/bin !])
+	fi
+])
+
+dnl check a particular libname
+AC_DEFUN([QT_TRY_LINK],
+[
+	SAVE_LIBS="$LIBS"
+	LIBS="$LIBS $1"
+	AC_TRY_LINK([
+	#include <qglobal.h>
+	#include <qstring.h>
+		],
+	[
+	QString s("mangle_failure");
+	#if (QT_VERSION < 221)
+	break_me_(\\\);
+	#endif
+	],
+	qt_cv_libname=$1,
+	)
+	LIBS="$SAVE_LIBS"
+])
+ 
+dnl check we can do a compile
+AC_DEFUN([QT_CHECK_COMPILE],
+[
+	AC_MSG_CHECKING([for Qt library name])
+ 
+	AC_CACHE_VAL(qt_cv_libname,
+	[
+		AC_LANG_CPLUSPLUS
+		SAVE_CXXFLAGS=$CXXFLAGS
+		CXXFLAGS="$CXXFLAGS $QT_INCLUDES $QT_LDFLAGS" 
+
+		for libname in -lqt-mt -lqt3 -lqt2 -lqt;
+		do
+			QT_TRY_LINK($libname)
+			if test -n "$qt_cv_libname"; then
+				break;
+			fi
+		done
+
+		CXXFLAGS=$SAVE_CXXFLAGS
+	])
+
+	if test -z "$qt_cv_libname"; then
+		AC_MSG_RESULT([failed]) 
+		if test "$FATAL" = 1 ; then
+			AC_MSG_ERROR([Cannot compile a simple Qt executable. Check you have the right \$QTDIR !])
+		fi
+	else
+		AC_MSG_RESULT([$qt_cv_libname])
+	fi
+])
+
+dnl get Qt version we're using
+AC_DEFUN([QT_GET_VERSION],
+[
+	AC_CACHE_CHECK([Qt version],lyx_cv_qtversion,
+	[
+		AC_LANG_CPLUSPLUS
+		SAVE_CPPFLAGS=$CPPFLAGS
+		CPPFLAGS="$CPPFLAGS $QT_INCLUDES"
+
+		cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+#include <qglobal.h>
+"%%%"QT_VERSION_STR"%%%"
+EOF
+		lyx_cv_qtversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
+			grep '^"%%%"'  2>/dev/null | \
+			sed -e 's/"%%%"//g' -e 's/"//g'`
+		rm -f conftest.$ac_ext
+		CPPFLAGS=$SAVE_CPPFLAGS
+	])
+ 
+	QT_VERSION=$lyx_cv_qtversion
+	AC_SUBST(QT_VERSION)
+])
+ 
+dnl start here 
+AC_DEFUN([QT_DO_IT_ALL],
+[
+	dnl Please leave this alone. I use this file in
+	dnl oprofile.
+	FATAL=0
+
+	AC_ARG_WITH(qt-dir, [  --with-qt-dir           where the root of Qt is installed ],
+		[ qt_cv_dir=`eval echo "$withval"/` ])
+	 
+	AC_ARG_WITH(qt-includes, [  --with-qt-includes      where the Qt includes are. ],
+		[ qt_cv_includes=`eval echo "$withval"` ])
+ 
+	AC_ARG_WITH(qt-libraries, [  --with-qt-libraries     where the Qt library is installed.],
+		[  qt_cv_libraries=`eval echo "$withval"` ])
+
+	dnl pay attention to $QTDIR unless overridden
+	if test -z "$qt_cv_dir"; then
+		qt_cv_dir=$QTDIR
+	fi
+ 
+	dnl derive inc/lib if needed
+	if test -n "$qt_cv_dir"; then
+		if test -z "$qt_cv_includes"; then
+			qt_cv_includes=$qt_cv_dir/include
+		fi
+		if test -z "$qt_cv_libraries"; then
+			qt_cv_libraries=$qt_cv_dir/lib
+		fi
+	fi
+
+	dnl flags for compilation
+	QT_INCLUDES=
+	QT_LDFLAGS=
+	if test -n "$qt_cv_includes"; then
+		QT_INCLUDES="-I$qt_cv_includes"
+	fi
+	if test -n "$qt_cv_libraries"; then
+		QT_LDFLAGS="-L$qt_cv_libraries"
+	fi
+	AC_SUBST(QT_INCLUDES)
+	AC_SUBST(QT_LDFLAGS)
+ 
+	QT_FIND_MOC
+	MOC=$ac_moc
+	AC_SUBST(MOC)
+	QT_FIND_UIC
+	UIC=$ac_uic
+	AC_SUBST(UIC)
+
+	QT_CHECK_COMPILE
+ 
+	QT_LIB=$qt_cv_libname;
+	AC_SUBST(QT_LIB)
+
+	if test -n "$qt_cv_libname"; then
+		QT_GET_VERSION
+	fi
+])
+
+dnl AX_CXXFLAGS_OPTIONS(var-name, option)
+dnl add option to var-name if $CXX support it.
+AC_DEFUN([AX_CHECK_PRECOMPILED_HEADER], [
+AC_MSG_CHECKING([whether ${CXX} support precompiled header])
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+SAVE_CXXFLAGS=$CXXFLAGS
+dnl we consider than if -Winvalid-pch is accepted pch will works ...
+CXXFLAGS=-Winvalid-pch
+dnl but we don't want -Winvalid-pch else compilation will fail due -Werror and
+dnl the fact than some pch will be invalid for the given compilation option
+AC_TRY_COMPILE(,[;],AC_MSG_RESULT([yes]); $1="${$1} -include bits/stdc++.h", AC_MSG_RESULT([no]))
+CXXFLAGS=$SAVE_CXXFLAGS
+AC_LANG_RESTORE
+])
+
+dnl AX_CHECK_DOCBOOK
+AC_DEFUN([AX_CHECK_DOCBOOK], [
+# It's just rude to go over the net to build
+XSLTPROC_FLAGS=--nonet
+DOCBOOK_ROOT=
+if test ! -f /etc/xml/catalog; then
+	for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/;
+	do
+		if test -d "$i"; then
+			DOCBOOK_ROOT=$i
+		fi
+	done
+
+	# Last resort - try net
+	if test -z "$DOCBOOK_ROOT"; then
+		XSLTPROC_FLAGS=
+	fi
+else
+	XML_CATALOG=/etc/xml/catalog
+	CAT_ENTRY_START='<!--'
+	CAT_ENTRY_END='-->'
+fi
+
+AC_CHECK_PROG(XSLTPROC,xsltproc,xsltproc,)
+XSLTPROC_WORKS=no
+if test -n "$XSLTPROC"; then
+	AC_MSG_CHECKING([whether xsltproc works])
+
+	if test -n "$XML_CATALOG"; then
+		DB_FILE="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"
+	else
+		DB_FILE="$DOCBOOK_ROOT/docbook.xsl"
+	fi
+
+	$XSLTPROC $XSLTPROC_FLAGS $DB_FILE >/dev/null 2>&1 << END
+<?xml version="1.0" encoding='ISO-8859-1'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<book id="test">
+</book>
+END
+	if test "$?" = 0; then
+		XSLTPROC_WORKS=yes
+	fi
+	AC_MSG_RESULT($XSLTPROC_WORKS)
+fi
+AM_CONDITIONAL(have_xsltproc, test "$XSLTPROC_WORKS" = "yes")
+
+AC_SUBST(XML_CATALOG)
+AC_SUBST(XSLTPROC_FLAGS)
+AC_SUBST(DOCBOOK_ROOT)
+AC_SUBST(CAT_ENTRY_START)
+AC_SUBST(CAT_ENTRY_END)
+])
+
+dnl AX_CFLAGS_OPTIONS(var-name, option)
+dnl add option to var-name if $CC support it.
+AC_DEFUN([AX_CFLAGS_OPTION], [
+AC_MSG_CHECKING([whether ${CC} $2 is understood])
+AC_LANG_SAVE
+AC_LANG_C
+SAVE_CFLAGS=$CFLAGS
+CFLAGS=$2
+AC_TRY_COMPILE(,[;],AC_MSG_RESULT([yes]); $1="${$1} $2",AC_MSG_RESULT([no]))
+CFLAGS=$SAVE_CFLAGS
+AC_LANG_RESTORE
+])
+
+
+dnl AX_CXXFLAGS_OPTIONS(var-name, option)
+dnl add option to var-name if $CXX support it.
+AC_DEFUN([AX_CXXFLAGS_OPTION], [
+AC_MSG_CHECKING([whether ${CXX} $2 is understood])
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+SAVE_CXXFLAGS=$CXXFLAGS
+CXXFLAGS=$2
+AC_TRY_COMPILE(,[;],AC_MSG_RESULT([yes]); $1="${$1} $2",AC_MSG_RESULT([no]))
+CXXFLAGS=$SAVE_CXXFLAGS
+AC_LANG_RESTORE
+])
+
+dnl AX_COPY_IF_CHANGE(source, dest)
+dnl copy source to dest if they don't compare equally or if dest doesn't exist
+AC_DEFUN([AX_COPY_IF_CHANGE], [
+if test -r $2; then
+	if cmp $1 $2 > /dev/null; then
+		echo $2 is unchanged
+	else
+		cp -f $1 $2
+	fi
+else
+	cp -f $1 $2
+fi
+])
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/automake-foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/automake-foreign.patch
new file mode 100644
index 0000000..b9bb6c5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/automake-foreign.patch
@@ -0,0 +1,12 @@
+oprofile doesn't want GNU-levels of automake strictness so tell it to be "foreign".
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/configure.ac b/configure.ac
+index 5740585..cf6c316 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -16 +16 @@ AC_CONFIG_SRCDIR([libop/op_config.h])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/musl.patch
new file mode 100644
index 0000000..51db408
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/musl.patch
@@ -0,0 +1,46 @@
+Fix glibc-isms so that oprofile builds with musl.
+
+Patch taken from openwrt (https://github.com/openwrt-mirror/openwrt/blob/master/package/devel/oprofile/patches/100-musl.patch)
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+--- a/pe_profiling/operf.cpp
++++ b/pe_profiling/operf.cpp
+@@ -857,11 +857,14 @@ static int __delete_old_previous_sample_
+                                 int tflag  __attribute__((unused)),
+                                 struct FTW *ftwbuf __attribute__((unused)))
+ {
++	int err;
++
+ 	if (remove(fpath)) {
++		err = errno;
+ 		perror("sample data removal error");
+-		return FTW_STOP;
++		return err;
+ 	} else {
+-		return FTW_CONTINUE;
++		return 0;
+ 	}
+ }
+ 
+@@ -896,7 +899,7 @@ static void convert_sample_data(void)
+ 		return;
+ 
+ 	if (!operf_options::append) {
+-                int flags = FTW_DEPTH | FTW_ACTIONRETVAL;
++                int flags = FTW_DEPTH;
+ 		errno = 0;
+ 		if (nftw(previous_sampledir.c_str(), __delete_old_previous_sample_data, 32, flags) !=0 &&
+ 				errno != ENOENT) {
+--- a/libop/op_events.c
++++ b/libop/op_events.c
+@@ -83,7 +83,7 @@ static int parse_hex(char const * str)
+ static u64 parse_long_hex(char const * str)
+ {
+ 	u64 value;
+-	if (sscanf(str, "%Lx", &value) != 1)
++	if (sscanf(str, "0x%llx", &value) != 1)
+ 		parse_error("expected long hexadecimal value");
+ 
+ 	fflush(stderr);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/oprofile-cross-compile-tests.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/oprofile-cross-compile-tests.patch
new file mode 100644
index 0000000..aefa954
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/oprofile-cross-compile-tests.patch
@@ -0,0 +1,98 @@
+Prevent running check tests on host if cross compiling
+
+This patch enables running the 'make check' tests on the target
+in a cross-compiled environment. If not cross-compiling, then 'make
+ check' builds and executes the tests; no change from this patch.
+In a cross-compiling environment, the make variable CROSS_COMPILE is
+set which bypasses assiging tests to the makekfile variable TESTS.
+Since TESTS is empty, the 'make check' process never tries to run the
+tests on the hosts.  On the target, the tests must be run manually.
+
+Also, in the libutil++ tests, a makefile variable SRCDIR is passed into
+the compilation phase, pointing to the runtime location of the test
+'file-manip-tests'.  The mechanism used for a host test, based on
+'topdir' doesn't work.  Instead, if CROSS_COMPILE is set, the
+makefile takes the path of SRCDIR from the build environment and not
+from an expression based on the host path 'topdir'.
+
+Upstream-Status: Pending
+
+Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
+
+diff --git a/configure.ac b/configure.ac
+index 41ece64..ce5a16f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -392,6 +392,7 @@ AC_ARG_ENABLE(account-check,
+ 	enable_account_check=$enableval, enable_account_check=yes)
+ 
+ AM_CONDITIONAL(CHECK_ACCOUNT, test "x$enable_account_check" = "xyes")
++AM_CONDITIONAL(CROSS_COMPILE, test "x$cross_compiling" = "xyes")
+ 
+ AC_SUBST(OP_CFLAGS)
+ AC_SUBST(OP_CXXFLAGS)
+diff --git a/libdb/tests/Makefile.am b/libdb/tests/Makefile.am
+index 8a69003..d820090 100644
+--- a/libdb/tests/Makefile.am
++++ b/libdb/tests/Makefile.am
+@@ -13,4 +13,6 @@ check_PROGRAMS = db_test
+ db_test_SOURCES = db_test.c
+ db_test_LDADD = ../libodb.a ../../libutil/libutil.a
+ 
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
+diff --git a/libop/tests/Makefile.am b/libop/tests/Makefile.am
+index 8a79eb5..6d417c4 100644
+--- a/libop/tests/Makefile.am
++++ b/libop/tests/Makefile.am
+@@ -33,4 +33,6 @@ load_events_files_tests_LDADD = ${COMMON_LIBS}
+ mangle_tests_SOURCES = mangle_tests.c
+ mangle_tests_LDADD = ${COMMON_LIBS}
+ 
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS} utf8_checker.sh
++endif
+diff --git a/libregex/tests/Makefile.am b/libregex/tests/Makefile.am
+index 6f19838..1d176f9 100644
+--- a/libregex/tests/Makefile.am
++++ b/libregex/tests/Makefile.am
+@@ -18,4 +18,6 @@ java_test_LDADD = \
+ 
+ EXTRA_DIST = mangled-name.in
+ 
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
+diff --git a/libutil++/tests/Makefile.am b/libutil++/tests/Makefile.am
+index 51af031..a01ea2d 100644
+--- a/libutil++/tests/Makefile.am
++++ b/libutil++/tests/Makefile.am
+@@ -1,7 +1,9 @@
+ 
+ REALPATH= readlink -f
+ 
++if ! CROSS_COMPILE
+ SRCDIR := $(shell $(REALPATH) $(topdir)/libutil++/tests/ )
++endif
+ 
+ AM_CPPFLAGS = \
+ 	-I ${top_srcdir}/libutil++ -D SRCDIR="\"$(SRCDIR)/\"" @OP_CPPFLAGS@
+@@ -46,4 +48,6 @@ cached_value_tests_LDADD = ${COMMON_LIBS}
+ utility_tests_SOURCES = utility_tests.cpp
+ utility_tests_LDADD = ${COMMON_LIBS}
+ 
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
+diff --git a/libutil/tests/Makefile.am b/libutil/tests/Makefile.am
+index dfcd6ec..e8831b5 100644
+--- a/libutil/tests/Makefile.am
++++ b/libutil/tests/Makefile.am
+@@ -12,4 +12,6 @@ file_tests_LDADD = ../libutil.a
+ string_tests_SOURCES = string_tests.c
+ string_tests_LDADD = ../libutil.a
+ 
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/root-home-dir.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/root-home-dir.patch
new file mode 100644
index 0000000..3eaf6a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/root-home-dir.patch
@@ -0,0 +1,44 @@
+oprofile: Determine the root home directory dynamically
+
+This commit detects the root home directory dynamically with changes to
+the oprofile gui app source.
+
+The commit replaces an earlier fix that detected and adjusted a
+'non-standard' root home directory at build time.  The advantage of this
+patch is that the oprofile tools are adjusted to the current run-time
+path to ~root, not the build time path.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
+
+Index: oprofile-1.0.0/doc/oprofile.html
+===================================================================
+--- oprofile-1.0.0.orig/doc/oprofile.html	2014-11-03 17:55:31.511034857 +0000
++++ oprofile-1.0.0/doc/oprofile.html	2014-11-03 17:57:26.415037988 +0000
+@@ -1563,8 +1563,8 @@
+ 		<span class="emphasis"><em>must</em></span> stop it in a controlled manner in order to process
+ 		the profile data it has collected.  Use <code class="code">kill -SIGINT &lt;operf-PID&gt;</code>
+ 		for this purpose. It is recommended that when running <span class="command"><strong>operf</strong></span>
+-		with this option, your current working directory should be <code class="filename">/root</code> or a subdirectory
+-		of <code class="filename">/root</code> to avoid storing sample data files in locations accessible by regular users.
++		with this option, your current working directory should be <code class="filename">~root</code> or a subdirectory
++		of <code class="filename">~root</code> to avoid storing sample data files in locations accessible by regular users.
+ 		</p>
+               </dd>
+               <dt>
+Index: oprofile-1.0.0/doc/oprofile.xml
+===================================================================
+--- oprofile-1.0.0.orig/doc/oprofile.xml	2014-11-03 17:55:31.515034857 +0000
++++ oprofile-1.0.0/doc/oprofile.xml	2014-11-03 17:58:03.719039005 +0000
+@@ -654,8 +654,8 @@
+ 		<emphasis>must</emphasis> stop it in a controlled manner in order to process
+ 		the profile data it has collected.  Use <code>kill -SIGINT &lt;operf-PID&gt;</code>
+ 		for this purpose. It is recommended that when running <command>operf</command>
+-		with this option, your current working directory should be <filename>/root</filename> or a subdirectory
+-		of <filename>/root</filename> to avoid storing sample data files in locations accessible by regular users.
++		with this option, your current working directory should be <filename>~root</filename> or a subdirectory
++		of <filename>~root</filename> to avoid storing sample data files in locations accessible by regular users.
+ 		</para></listitem>
+ 	</varlistentry>
+ 	<varlistentry>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/run-ptest
new file mode 100644
index 0000000..4814be6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/run-ptest
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+saved_dir=$PWD
+for dir in */tests ; do
+	cd $dir
+	for atest in * ; do
+		if [ \( -x $atest \) -a \( -f $atest \) ] ; then
+			./$atest > ${atest}.stdout 2> ${atest}.stderr
+			if [ $? = 0 ] ; then
+				echo "PASS: $dir $atest"
+				rm ${atest}.stdout ${atest}.stderr
+			else
+				echo "FAIL: ${dir}/${atest}"
+			fi
+		fi
+	done
+	cd $saved_dir
+done
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb
new file mode 100644
index 0000000..92a94ad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb
@@ -0,0 +1,10 @@
+require oprofile.inc
+
+DEPENDS += "virtual/kernel"
+DEPENDS_append_powerpc64 = " libpfm4"
+
+SRC_URI[md5sum] = "248c4c069f9476f427fa7195563f9867"
+SRC_URI[sha256sum] = "cf759a6de1a6033d5dfc93bda129a9f2e128aecc4238cc657feb0801d1b0366c"
+
+S = "${WORKDIR}/oprofile-${PV}"
+
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 f0efc51..c0f220f 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
@@ -8,6 +8,8 @@
 SRC_URI = "${DEBIAN_MIRROR}/main/c/${BPN}/${BPN}_${PV}.orig.tar.gz \
            file://0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch \
            file://0001-genisoimage-Fix-fprintf-format-errors.patch \
+           file://0001-define-__THROW-to-avoid-build-issue-with-musl.patch \
+           file://0002-Do-not-use-rcmd-on-build-with-musl.patch \
            "
 SRC_URI[md5sum] = "efe08e2f3ca478486037b053acd512e9"
 SRC_URI[sha256sum] = "d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch
new file mode 100644
index 0000000..b3beb06
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch
@@ -0,0 +1,47 @@
+From 7c3036609494296f7c29413bf3acba829c81f62c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Sat, 8 Aug 2015 22:58:57 +0200
+Subject: [PATCH 1/2] define __THROW to avoid build issue with musl
+
+Fixes:
+http://autobuild.buildroot.net/results/d27/d2781e70b04a207e2e9397d888032294c7285034/build-end.log
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ genisoimage/sha256.h | 4 ++++
+ genisoimage/sha512.h | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/genisoimage/sha256.h b/genisoimage/sha256.h
+index e7f4cb9..bcae7ef 100644
+--- a/genisoimage/sha256.h
++++ b/genisoimage/sha256.h
+@@ -29,6 +29,10 @@
+ #include <stdint.h>
+ #include <stdio.h>
+ 
++/* define __THROW to avoid build issue when it's not available from the libc */
++#ifndef __THROW
++# define __THROW
++#endif
+ 
+ /* Structure to save state of computation between the single steps.  */
+ struct sha256_ctx
+diff --git a/genisoimage/sha512.h b/genisoimage/sha512.h
+index 7298355..8cee8b0 100644
+--- a/genisoimage/sha512.h
++++ b/genisoimage/sha512.h
+@@ -29,6 +29,10 @@
+ #include <stdint.h>
+ #include <stdio.h>
+ 
++/* define __THROW to avoid build issue when it's not available from the libc */
++#ifndef __THROW
++# define __THROW
++#endif
+ 
+ /* Structure to save state of computation between the single steps.  */
+ struct sha512_ctx
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch
new file mode 100644
index 0000000..547a21c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch
@@ -0,0 +1,31 @@
+From 510838b2c96a9b097b3ee2694cba1c3623b0bac7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Sep 2017 22:38:05 -0700
+Subject: [PATCH 2/2] Do not use rcmd on build with musl
+
+cdrkit unconditionally enables code using rcmd(3), which isn't available
+on musl.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/xconfig.h.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/include/xconfig.h.in b/include/xconfig.h.in
+index 476c00b..6b4b298 100644
+--- a/include/xconfig.h.in
++++ b/include/xconfig.h.in
+@@ -186,8 +186,9 @@
+  *	Instead use the tests AC_SMALL_FSEEKO/AC_SMALL/STELLO and make sure
+  *	they are placed before the large file tests.
+  */
+-
++#ifdef __GLIBC__
+ #define HAVE_RCMD 1		/* rcmd() is present in libc/libsocket */
++#endif
+ #define HAVE_SOCKET 1		/* socket() is present in libc/libsocket */
+ #define HAVE_SOCKETPAIR 1		/* socketpair() is present in libc/libsocket */
+ #define HAVE_GETSERVBYNAME 1	/* getservbyname() is present in libc/libsocket */
+-- 
+2.14.1
+
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
new file mode 100644
index 0000000..6c7f3bd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch
@@ -0,0 +1,26 @@
+From a860fe0796c43e35eac9783140fcb563cab9f55a 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
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ audio_alsa09.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/audio_alsa09.c b/audio_alsa09.c
+index 534e3db..d9450e6 100644
+--- a/audio_alsa09.c
++++ b/audio_alsa09.c
+@@ -506,7 +506,7 @@ void esd_audio_flush(void)
+ 	}
+ 
+ 	if (alsa_playback_handle != NULL)
+-		snd_pcm_drain( alsa_playback_handle );
++		snd_pcm_drop( alsa_playback_handle );
+   
+ 	if (alsadbg) 
+ 		print_state();
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-replace-missing-AM_PATH_AUDIOFILE-by-PKG_CHECK_MODUL.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-replace-missing-AM_PATH_AUDIOFILE-by-PKG_CHECK_MODUL.patch
deleted file mode 100644
index 89c97a4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-replace-missing-AM_PATH_AUDIOFILE-by-PKG_CHECK_MODUL.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 218e0702d6ce4d2cb20d5d108daa16afca2b7c41 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Fri, 16 Dec 2016 13:22:51 +0100
-Subject: [PATCH] replace missing AM_PATH_AUDIOFILE by PKG_CHECK_MODULES(
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstrem-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 486c492..dccfd1b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -353,7 +353,7 @@ echo "---------------------------------------------------------------------"
- echo "--- Checking for the audiofile library.  NOTE: This library is now"
- echo "--- REQUIRED from proper compilation of the esound package."
- 
--AM_PATH_AUDIOFILE(0.1.5, [
-+PKG_CHECK_MODULES(AUDIOFILE, audiofile, [
- 
- build_esdplay=true
- echo "--- libaudiofile found. Building esound with audiofile support"
--- 
-2.7.4
-
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
new file mode 100644
index 0000000..337546a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch
@@ -0,0 +1,35 @@
+From 1fbee6e96384f340b816e221fe1c2f3ff0b487bf 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
+
+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(+)
+
+diff --git a/esddsp.c b/esddsp.c
+index d3c6ea9..17b5949 100644
+--- a/esddsp.c
++++ b/esddsp.c
+@@ -290,6 +290,7 @@ open (const char *pathname, int flags, ...)
+   return open_wrapper(func, pathname, flags, mode);
+ }
+ 
++#undef open64
+ int
+ open64 (const char *pathname, int flags, ...)
+ {
+@@ -374,6 +375,7 @@ fopen (const char *path, const char *mode)
+   return fopen_wrapper(func, path, mode);
+ }
+ 
++#undef fopen64
+ 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
new file mode 100644
index 0000000..62c880d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch
@@ -0,0 +1,38 @@
+From 979a02d9ec9c28686021cd2b49ca55d2195c9dce 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
+
+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(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5645dce..d374cda 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -208,7 +208,7 @@ if test "x$enable_local_sound" = "xyes"; then
+    AC_CHECK_HEADERS(CoreAudio/CoreAudio.h)
+    # mme_api.h directly includes other files from the mme subdir
+    xCPPFLAGS="$CPPFLAGS"
+-   CPPFLAGS="$CPPFLAGS -I/usr/include/mme"
++   CPPFLAGS="$CPPFLAGS -I=/usr/include/mme"
+    AC_CHECK_HEADERS(mme/mme_api.h)
+    CPPFLAGS="$xCPPFLAGS"
+    AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
+@@ -269,7 +269,7 @@ if test "x$enable_local_sound" = "xyes"; then
+       osf*)
+ 	found_sound=yes
+ 	AC_DEFINE(DRIVER_OSF, 1, [Defined if OSF backend is enabled])
+-	CPPFLAGS="$CPPFLAGS -I/usr/include/mme"
++	CPPFLAGS="$CPPFLAGS -I=/usr/include/mme"
+ 	SOUND_LIBS=-lmme
+       esac
+    fi
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch
deleted file mode 100644
index 8fdc35a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- /tmp/configure.ac	2008-06-02 16:46:55.640793306 +0200
-+++ esound-0.2.36/configure.ac	2008-06-02 16:47:26.030793494 +0200
-@@ -29,6 +29,7 @@
- AC_SUBST(pkgdocdir)
- 
- AC_PROG_CC
-+AC_PROG_CXX
- AC_PROG_CPP
- AC_LIBTOOL_WIN32_DLL
- AM_PROG_LIBTOOL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz
deleted file mode 100644
index 719f5d0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz
+++ /dev/null
Binary files differ
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb
deleted file mode 100644
index d19ba82..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Enlightened Sound Daemon"
-SECTION = "gpe/base"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
-DEPENDS = "audiofile"
-
-inherit gnome binconfig
-
-PR = "r1"
-
-SRC_URI = " \
-    ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.36.tar.bz2;name=archive \
-    file://esound_0.2.36-1ubuntu5.diff.gz \
-    file://no-docs.patch \
-    file://configure-fix.patch \
-    file://0001-replace-missing-AM_PATH_AUDIOFILE-by-PKG_CHECK_MODUL.patch \
-"
-
-SRC_URI[archive.md5sum] = "3facb5aa0115cc1c31771b9ad454ae76"
-SRC_URI[archive.sha256sum] = "68bf399fcbd45c5e9ba99cd13a3a479e4ef2bc5dc52e540ffa00aef1e1b19a76"
-
-EXTRA_OECONF = " \
-    --disable-alsa \
-    --disable-arts \
-    --disable-artstest \
-"
-
-CFLAGS += "-lm"
-
-do_configure_prepend() {
-    sed -i -e 's:/usr/include/mme:${STAGING_INCDIR}/mme:g' ${S}/configure.ac
-}
-
-PACKAGES =+ "esddsp esd esd-utils"
-
-FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*"
-FILES_esd = "${bindir}/esd"
-FILES_esd-utils = "${bindir}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb
new file mode 100644
index 0000000..0ddf94f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Enlightened Sound Daemon"
+SECTION = "gpe/base"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
+DEPENDS = "audiofile"
+
+inherit gnome
+
+SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/${P}.tar.bz2;name=archive \
+           file://no-docs.patch \
+           file://0001-audio_alsa09.c-alsa-drain-fix.patch \
+           file://0002-Undefine-open64-and-fopen64.patch \
+           file://0003-Use-I-path-in-configure.patch \
+           "
+SRC_URI[archive.md5sum] = "8d9aad3d94d15e0d59ba9dc0ea990c6c"
+SRC_URI[archive.sha256sum] = "5eb5dd29a64b3462a29a5b20652aba7aa926742cef43577bf0796b787ca34911"
+
+EXTRA_OECONF += " \
+    --disable-arts \
+    --disable-artstest \
+"
+EXTRA_OECONF_remove = "--disable-schemas-install"
+
+CFLAGS += "-lm"
+
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[libwrap] = "--with-libwrap,--without-libwrap,tcp-wrappers,"
+PACKAGECONFIG[alsa] = "--enable-alsa --disable-oss,--disable-alsa,alsa-lib,"
+
+PACKAGECONFIG ??= "libwrap alsa \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGES =+ "esddsp esd esd-utils"
+
+FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*"
+FILES_esd = "${bindir}/esd"
+FILES_esd-utils = "${bindir}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
index daae8d7..14ea664 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
@@ -16,12 +16,9 @@
 S = "${WORKDIR}/live"
 TARGET_CC_ARCH += "${LDFLAGS}"
 
-XLOCALE_libc-musl = " -DXLOCALE_NOT_USED"
-XLOCALE ?= ""
-
 do_configure() {
     cp ${WORKDIR}/config.linux-cross .
-    echo "COMPILE_OPTS+=" -fPIC ${XLOCALE}"" >> config.linux-cross
+    echo "COMPILE_OPTS+=" -fPIC -DXLOCALE_NOT_USED"" >> config.linux-cross
     ./genMakefiles linux-cross
 }
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna.inc b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna.inc
deleted file mode 100644
index b333fce..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna.inc
+++ /dev/null
@@ -1,39 +0,0 @@
-DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \
-being fully compliant with DLNA/UPnP-AV clients."
-LICENSE = "GPL-2.0|BSD"
-DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis"
-
-# because it depends on libav which has commercial flag
-LICENSE_FLAGS = "commercial"
-
-inherit gettext autotools-brokensep update-rc.d systemd
-
-SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \
-           file://minidlna-daemon.init.d \
-           file://minidlna.service "
-
-S = "${WORKDIR}/git"
-
-# This remove "--exclude=autopoint" option from autoreconf argument to avoid
-# configure.ac:30: error: required file './ABOUT-NLS' not found
-EXTRA_AUTORECONF = ""
-
-do_install_append(){
-    install -d ${D}${sysconfdir}
-    install -m 0755 minidlna.conf ${D}${sysconfdir}
-
-# Systemd script
-    install -d ${D}${nonarch_base_libdir}/systemd/system
-    install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system
-
-# Sysvinit script
-    install -d ${D}${sysconfdir}/init.d
-    install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna
-
-}
-
-SYSTEMD_SERVICE_${PN} = "minidlna.service"
-
-INITSCRIPT_NAME = "minidlna"
-INITSCRIPT_PARAMS = "defaults 90"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb
deleted file mode 100644
index 81d700a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require ${BPN}.inc
-
-SRCREV = "v1_1_5"
-LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b"
-
-PNBLACKLIST[minidlna] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130630/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
deleted file mode 100644
index e232595..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 3541649b711a773aa2e42ac80d9b4c1b36fce23f Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Thu, 27 Mar 2014 00:08:54 +0100
-Subject: [PATCH] configure: don't disable ASS support when explicitly enabled
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index 60fd308..2f7df3b 100755
---- a/configure
-+++ b/configure
-@@ -4346,7 +4346,7 @@ fi
- 
- 
- echocheck "SSA/ASS support"
--if test "$_ass" = auto ; then
-+if test "$_ass" = auto -o "$_ass" = yes ; then
-     if pkg_config_add libass ; then
-         _ass=yes
-         def_ass='#define CONFIG_ASS 1'
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
deleted file mode 100644
index b4d9841..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 0571bb4f1a6e1934ee7e093ce7aa517b9bac8e6a Mon Sep 17 00:00:00 2001
-From: Awais Belal <awais_belal@mentor.com>
-Date: Sun, 17 Jan 2016 14:46:10 +0500
-Subject: [PATCH] demux_ogg: partially port libtheora glue code to Theora 1.0
- API
-
-This partially backports the following commit to allow building
-with gcc-5.x and otherwise fails to find the definition of
-the _ilog function the way it is used.
-
-https://github.com/pigoz/mplayer-svn/commit/85e51408cd00979fc209da8e3a39b6f0e7f325bc
-
-Signed-off-by: Awais Belal <awais_belal@mentor.com>
----
- libmpdemux/demux_ogg.c | 52 ++++++++++++++++++++++++++------------------------
- 1 file changed, 27 insertions(+), 25 deletions(-)
-
-diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
-index 9eea061..9144426 100644
---- a/libmpdemux/demux_ogg.c
-+++ b/libmpdemux/demux_ogg.c
-@@ -50,8 +50,7 @@
- #endif
- 
- #ifdef CONFIG_OGGTHEORA
--#include <theora/theora.h>
--int _ilog (unsigned int); /* defined in many places in theora/lib/ */
-+#include <theora/theoradec.h>
- #endif
- 
- #define BLOCK_SIZE 4096
-@@ -62,9 +61,10 @@ int _ilog (unsigned int); /* defined in many places in theora/lib/ */
-  */
- #ifdef CONFIG_OGGTHEORA
- typedef struct theora_struct_st {
--    theora_state   st;
--    theora_comment cc;
--    theora_info    inf;
-+    th_setup_info *tsi;
-+    th_dec_ctx    *tctx;
-+    th_comment     tc;
-+    th_info        ti;
- } theora_struct_t;
- #endif
- 
-@@ -117,7 +117,7 @@ typedef struct ogg_stream {
-     float   samplerate; /// granulpos 2 time
-     int64_t lastpos;
-     int32_t lastsize;
--    int     keyframe_frequency_force;
-+    int     keyframe_granule_shift;
- 
-     // Logical stream state
-     ogg_stream_state stream;
-@@ -300,11 +300,10 @@ static unsigned char *demux_ogg_read_packet(ogg_stream_t *os, ogg_packet *pack,
-            have theora_state st, until all header packets were passed to the
-            decoder. */
-         if (!pack->bytes || !(*data&0x80)) {
--            int keyframe_granule_shift = _ilog(os->keyframe_frequency_force - 1);
--            int64_t iframemask = (1 << keyframe_granule_shift) - 1;
-+            int64_t iframemask = iframemask = (1 << os->keyframe_granule_shift) - 1;
- 
-             if (pack->granulepos >= 0) {
--                os->lastpos  = pack->granulepos >> keyframe_granule_shift;
-+                os->lastpos  = pack->granulepos >> os->keyframe_granule_shift;
-                 os->lastpos += pack->granulepos & iframemask;
-                 *keyframe = (pack->granulepos & iframemask) == 0;
-             } else {
-@@ -888,14 +887,15 @@ int demux_ogg_open(demuxer_t *demuxer)
- #ifdef CONFIG_OGGTHEORA
-         } else if (pack.bytes >= 7 && !strncmp (&pack.packet[1], "theora", 6)) {
-             int errorCode = 0;
--            theora_info inf;
--            theora_comment cc;
-+            th_info ti;
-+            th_comment tc;
-+            th_setup_info *tsi = NULL;
- 
--            theora_info_init (&inf);
--            theora_comment_init (&cc);
-+            th_info_init (&ti);
-+            th_comment_init (&tc);
- 
--            errorCode = theora_decode_header (&inf, &cc, &pack);
--            if (errorCode) {
-+            errorCode = th_decode_headerin(&ti, &tc, &tsi, &pack);
-+            if (errorCode < 0) {
-                 mp_msg(MSGT_DEMUX, MSGL_ERR,
-                        "Theora header parsing failed: %i \n", errorCode);
-             } else {
-@@ -904,30 +904,32 @@ int demux_ogg_open(demuxer_t *demuxer)
-                 sh_v->bih = calloc(1, sizeof(*sh_v->bih));
-                 sh_v->bih->biSize        = sizeof(*sh_v->bih);
-                 sh_v->bih->biCompression = sh_v->format = FOURCC_THEORA;
--                sh_v->fps = ((double)inf.fps_numerator) / (double)inf.fps_denominator;
--                sh_v->frametime = ((double)inf.fps_denominator) / (double)inf.fps_numerator;
--                sh_v->disp_w = sh_v->bih->biWidth  = inf.frame_width;
--                sh_v->disp_h = sh_v->bih->biHeight = inf.frame_height;
-+                sh_v->fps = ((double)ti.fps_numerator) / (double)ti.fps_denominator;
-+                sh_v->frametime = ((double)ti.fps_denominator) / (double)ti.fps_numerator;
-+                sh_v->i_bps  = ti.target_bitrate / 8;
-+                sh_v->disp_w = sh_v->bih->biWidth  = ti.frame_width;
-+                sh_v->disp_h = sh_v->bih->biHeight = ti.frame_height;
-                 sh_v->bih->biBitCount  = 24;
-                 sh_v->bih->biPlanes    = 3;
-                 sh_v->bih->biSizeImage = ((sh_v->bih->biBitCount / 8) * sh_v->bih->biWidth * sh_v->bih->biHeight);
-                 ogg_d->subs[ogg_d->num_sub].samplerate               = sh_v->fps;
-                 ogg_d->subs[ogg_d->num_sub].theora                   = 1;
--                ogg_d->subs[ogg_d->num_sub].keyframe_frequency_force = inf.keyframe_frequency_force;
-+                ogg_d->subs[ogg_d->num_sub].keyframe_granule_shift   = ti.keyframe_granule_shift;
-                 ogg_d->subs[ogg_d->num_sub].id                       = n_video;
-                 n_video++;
-                 mp_msg(MSGT_DEMUX, MSGL_INFO,
-                        "[Ogg] stream %d: video (Theora v%d.%d.%d), -vid %d\n",
-                        ogg_d->num_sub,
--                       (int)inf.version_major,
--                       (int)inf.version_minor,
--                       (int)inf.version_subminor,
-+                       (int)ti.version_major,
-+                       (int)ti.version_minor,
-+                       (int)ti.version_subminor,
-                        n_video - 1);
-                 if (mp_msg_test(MSGT_HEADER, MSGL_V))
-                     print_video_header(sh_v->bih, MSGL_V);
-             }
--            theora_comment_clear(&cc);
--            theora_info_clear(&inf);
-+            th_comment_clear(&tc);
-+            th_info_clear(&ti);
-+            th_setup_free(tsi);
- #endif /* CONFIG_OGGTHEORA */
-         } else if (pack.bytes >= 4 && !strncmp (&pack.packet[0], "fLaC", 4)) {
-             sh_a = new_sh_audio_aid(demuxer, ogg_d->num_sub, n_audio);
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
deleted file mode 100644
index 1a4ae27..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
+++ /dev/null
@@ -1,159 +0,0 @@
-SUMMARY = "Open Source multimedia player"
-SECTION = "multimedia"
-HOMEPAGE = "http://www.mplayerhq.hu/"
-DEPENDS = "libvpx libdvdread libtheora virtual/libsdl ffmpeg xsp zlib \
-           libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses \
-           libxv virtual/libx11 libass speex faad2 libxscrnsaver"
-
-RDEPENDS_${PN} = "mplayer-common"
-PROVIDES = "mplayer"
-RPROVIDES_${PN} = "mplayer"
-RCONFLICTS_${PN} = "mplayer"
-
-# Depends on xsp, libxv, virtual/libx11, libxscrnsaver
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# because it depends on libpostproc/libav which has commercial flag
-LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'postproc', 'commercial', '', d)}"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "git://repo.or.cz/mplayer.git \
-    file://0001-configure-don-t-disable-ASS-support-when-explicitly-.patch \
-    file://0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch \
-"
-
-SRCREV = "2c378c71a4d9b1df382db9aa787b646628b4e3f9"
-
-ARM_INSTRUCTION_SET = "arm"
-
-PV = "2.0+gitr${SRCPV}"
-PR = "r13"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/git"
-
-FILES_${PN} = "${bindir}/mplayer ${libdir} /usr/etc/mplayer/"
-CONFFILES_${PN} += "/usr/etc/mplayer/input.conf \
-                    /usr/etc/mplayer/example.conf \
-                    /usr/etc/mplayer/codecs.conf \
-"
-
-inherit autotools-brokensep pkgconfig python3native
-
-EXTRA_OECONF = " \
-    --prefix=/usr \
-    --mandir=${mandir} \
-    --target=${SIMPLE_TARGET_SYS} \
-    \
-    --disable-lirc \
-    --disable-lircc \
-    --disable-joystick \
-    --disable-vm \
-    --disable-xf86keysym \
-    --enable-tv \
-    --enable-tv-v4l2 \
-    --disable-tv-bsdbt848 \
-    --enable-rtc \
-    --enable-networking \
-    --disable-smb \
-    --disable-dvdnav \
-    --enable-dvdread \
-    --disable-dvdread-internal \
-    --disable-libdvdcss-internal \
-    --disable-enca \
-    --disable-ftp \
-    --disable-vstream \
-    \
-    --disable-gif \
-    --enable-png \
-    --enable-jpeg \
-    --disable-libcdio \
-    --disable-qtx \
-    --disable-xanim \
-    --disable-real \
-    --disable-xvid \
-    \
-    --enable-speex \
-    --enable-theora \
-    --disable-ladspa \
-    --disable-libdv \
-    --enable-mad \
-    --disable-xmms \
-    --disable-musepack \
-    \
-    --disable-gl \
-    --enable-sdl \
-    --disable-caca \
-    --disable-directx \
-    --disable-dvb \
-    --enable-xv \
-    --disable-vm \
-    --disable-xinerama \
-    --enable-x11 \
-    --disable-directfb \
-    --disable-tga \
-    --disable-pnm \
-    --disable-md5sum \
-    \
-    --enable-alsa \
-    --enable-ossaudio \
-    --disable-pulse \
-    --disable-jack \
-    --disable-openal \
-    --enable-select \
-    --enable-libass \
-    \
-    --extra-libs=' -lXext -lX11 -lvorbis -ltheoradec -lasound ' \
-"
-# -ltheoradec is missing in:
-# libmpcodecs/vd_theora.o: undefined reference to symbol 'theora_decode_init@@libtheora.so.1.0'
-
-EXTRA_OECONF_append_armv6 = " --enable-armv6"
-EXTRA_OECONF_append_armv7a = " --enable-armv6 --enable-neon"
-
-PACKAGECONFIG ??= "vorbis postproc"
-PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
-PACKAGECONFIG[a52] = "--enable-liba52,--disable-liba52,liba52"
-PACKAGECONFIG[lame] = ",,lame"
-PACKAGECONFIG[postproc] = ",--disable-libpostproc,libpostproc"
-PACKAGECONFIG[vorbis] = ",--disable-libvorbis,libvorbis"
-PACKAGECONFIG[portaudio] = ",--disable-portaudio,portaudio-v19"
-PACKAGECONFIG[mpg123] = ",--disable-mpg123,mpg123"
-PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
-
-FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math"
-BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
-
-CFLAGS_append = " -I${S}/libdvdread4 "
-
-do_configure() {
-    sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure
-    sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure
-    sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure
-    sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure
-    sed -i 's|_install_strip="-s"|_install_strip=""|g' ${S}/configure
-    sed -i 's|HOST_CC|BUILD_CC|' ${S}/Makefile
-    sed -i 's|extra_cflags="-I. $extra_cflags"|extra_cflags="-I. -I${STAGING_INCDIR}/directfb $extra_cflags"|g' ${S}/configure
-    export SIMPLE_TARGET_SYS="$(echo ${TARGET_SYS} | sed s:${TARGET_VENDOR}::g)"
-    ./configure ${EXTRA_OECONF}
-
-}
-
-do_compile () {
-    oe_runmake
-}
-
-do_install() {
-    oe_runmake 'DESTDIR=${D}' install-no-man
-    install -d ${D}/usr/etc/mplayer
-    install ${S}/etc/input.conf ${D}/usr/etc/mplayer/
-    install ${S}/etc/example.conf ${D}/usr/etc/mplayer/
-    install ${S}/etc/codecs.conf ${D}/usr/etc/mplayer/
-    [ -e ${D}/usr/lib ] && rmdir ${D}/usr/lib
-}
-
-# http://errors.yoctoproject.org/Errors/Details/40734/
-PNBLACKLIST[mplayer2] ?= "Not compatible with currently used ffmpeg 3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv/0001-Fix-build-with-HAVE_GL-0.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv/0001-Fix-build-with-HAVE_GL-0.patch
deleted file mode 100644
index ab2b534..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv/0001-Fix-build-with-HAVE_GL-0.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 212f6c8206bd4dcc7d8970c5f1632823ae4e783a Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sun, 12 Feb 2017 23:01:21 -0800
-Subject: [PATCH] Fix build with HAVE_GL==0
-
-video/out/opengl/hwdec.h includes video/out/opengl/common.h, which tries
-to include opengl headers.
-
-Upstream-Status: Backport
----
- options/options.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/options/options.c b/options/options.c
-index b711156..0bb36ad 100644
---- a/options/options.c
-+++ b/options/options.c
-@@ -40,7 +40,6 @@
- #include "stream/stream.h"
- #include "video/csputils.h"
- #include "video/hwdec.h"
--#include "video/out/opengl/hwdec.h"
- #include "video/image_writer.h"
- #include "sub/osd.h"
- #include "audio/filter/af.h"
-@@ -53,6 +52,10 @@
- #include "video/out/drm_common.h"
- #endif
- 
-+#if HAVE_GL
-+#include "video/out/opengl/hwdec.h"
-+#endif
-+
- extern const char mp_help_text[];
- 
- static void print_version(struct mp_log *log)
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.24.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.24.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
index b1da217..44d92a0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.24.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
@@ -11,13 +11,15 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb"
 
+# While this item does not require it, it depends on ffmpeg which does
+LICENSE_FLAGS = "commercial"
+
 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} \
-    file://0001-Fix-build-with-HAVE_GL-0.patch \
 "
-SRC_URI[mpv.md5sum] = "5c85d1163911e49315a5bf1ca1fae13d"
-SRC_URI[mpv.sha256sum] = "a41854fa0ac35b9c309ad692aaee67c8d4495c3546f11cb4cdd0a124195d3f15"
+SRC_URI[mpv.md5sum] = "038d0b660de07ff645ad6a741704ecab"
+SRC_URI[mpv.sha256sum] = "daf3ef358d5f260f2269f7caabce27f446c291457ec330077152127133b71b46"
 SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71"
 SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb
index b408bb0..57cfb13 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb
@@ -7,6 +7,8 @@
 DEPENDS = "jpeg \
            ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
 DEPENDS_append_libc-musl = " argp-standalone"
+DEPENDS_append_class-target = " udev"
+LDFLAGS_append = " -pthread"
 
 inherit autotools gettext pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.5.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb
index 648818e..e17cda1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.5.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb
@@ -10,8 +10,8 @@
 SRC_URI += "http://storage.googleapis.com/downloads.webmproject.org/releases/webm/${BP}.tar.bz2 \
             file://libvpx-configure-support-blank-prefix.patch \
            "
-SRC_URI[md5sum] = "49e59dd184caa255886683facea56fca"
-SRC_URI[sha256sum] = "306d67908625675f8e188d37a81fbfafdf5068b09d9aa52702b6fbe601c76797"
+SRC_URI[md5sum] = "a19518c8111fa93bdabdd85259162611"
+SRC_URI[sha256sum] = "1c2c0c2a97fba9474943be34ee39337dee756780fc12870ba1dc68372586a819"
 
 # ffmpeg links with this and fails
 # sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb
deleted file mode 100644
index d91cbcb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "FoxtrotGPS is a map and GPS application using OpenStreetMap"
-AUTHOR = "Joshua Judson Rosen <rozzin@geekspace.com>"
-HOMEPAGE = "http://www.foxtrotgps.org/"
-SECTION = "x11/applications"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-DEPENDS = "curl gtk+ libglade sqlite3 libexif gpsd bluez4 intltool-native"
-
-PNBLACKLIST[foxtrotgps] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-SRC_URI = "http://www.foxtrotgps.org/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "6777d448ee9d3ba195f9d26ea90e3163"
-SRC_URI[sha256sum] = "ae9706285510554cc0813ac92522e0d1672b0ddb065307bfacfcff3c328f6adb"
-
-inherit autotools pkgconfig perlnative gconf
-
-PR = "r2"
-
-do_configure_prepend() {
-    if [ -f ${S}/configure.in ] ; then
-    mv ${S}/configure.in ${S}/configure.ac
-    fi
-}
-
-RDEPENDS_${PN} += "python perl"
-RRECOMMENDS_${PN} = "gpsd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
deleted file mode 100644
index 4e821be..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-SUMMARY = "GDAL is a translator library for raster geospatial data formats"
-HOMEPAGE = "http://www.gdal.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=0952e17969fab12227096b5228f23149"
-
-DEPENDS = "proj sqlite3 tiff json-c"
-
-SRC_URI = "ftp://download.osgeo.org/gdal/${PV}/${BP}.tar.xz"
-
-SRC_URI[md5sum] = "2e126d7c6605691d38f3e71b945f5c73"
-SRC_URI[sha256sum] = "20e1042cff15a71038459a299732fb342428aea9912f32df30c85790fcab6302"
-
-inherit autotools-brokensep lib_package binconfig
-
-EXTRA_OECONF = "--without-perl \
-                --without-php \
-                --without-ruby \
-                --without-python \
-                \
-                --without-grass \
-                --without-libgrass \
-                --without-cfitsio \
-                --without-dds \
-                --without-gta \
-                --without-pcidsk \
-                --without-ogdi \
-                --without-fme \
-                --without-hdf4 \
-                --without-hdf5 \
-                --without-pg \
-                --without-jpeg12 \
-                --without-ogdi \
-                --without-netcdf \
-                --without-openjpeg \
-                --without-fgdb \
-                --without-ecw \
-                --without-kakadu \
-                --without-mrsid \
-                --without-jp2mrsid \
-                --without-mrsid_lidar \
-                --without-msg \
-                --without-bsb \
-                --without-grib \
-                --without-mysql \
-                --without-ingres \
-                --without-odbc \
-                --without-dods_root \
-                --without-xml2 \
-                --without-spatialite \
-                --without-pcre \
-                --without-dwgdirect \
-                --without-dwgdirect \
-                --without-idb \
-                --without-sde \
-                --without-sde-version \
-                --without-epsilon \
-                --without-webp \
-                --without-opencl \
-                --without-opencl-include \
-                --without-opencl-lib \
-                --without-freexl \
-                --without-pam \
-                --without-poppler \
-                --without-podofo \
-                --without-podofo-lib \
-                --without-podofo-extra-lib-for-test \
-                --without-static_proj4 \
-                --without-perl \
-                --without-php \
-                --without-ruby \
-                --without-python \
-                --without-java \
-                --without-mdb \
-                --without-jvm-lib \
-                --without-jvm-lib-add-rpath \
-                --without-rasdaman \
-                --without-armadillo \
-                \
-                --with-pcraster=internal \
-                --with-geotiff=internal \
-                \
-                --with-sqlite3=${STAGING_EXECPREFIXDIR} \
-                --with-libtiff=${STAGING_EXECPREFIXDIR} \
-                --with-libjson-c=${STAGING_EXECPREFIXDIR} \
-                --with-expat=${STAGING_EXECPREFIXDIR} \
-"
-
-EXTRA_OEMAKE += "INST_DATA="${datadir}/gdal""
-
-PACKAGECONFIG ?= "geos png jasper"
-PACKAGECONFIG[geos] = "--with-geos,--without-geos,geos"
-PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
-PACKAGECONFIG[png] = "--with-png,--without-png,libpng"
-PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib"
-PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg"
-PACKAGECONFIG[z] = "--with-libz,--without-libz,zlib"
-PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
-PACKAGECONFIG[curl] = "--with-curl,--without-curl,curl"
-
-do_configure_prepend () {
-    # The configure script has many hardcoded paths to search
-    # for the library headers when using external libraries,
-    # workaround it.
-    sed -e 's,/usr/include,NON_EXISTENT_DIR,g' \
-        -e 's,/usr/lib,NON_EXISTENT_DIR,g' \
-        -i ${S}/configure.in
-}
-
-FILES_${PN} += "${libdir}/gdalplugins"
-
-# | gdalserver.c:124:21: error: storage size of 'sHints' isn't known
-# |      struct addrinfo sHints;
-# |                      ^
-PNBLACKLIST[gdal] ?= "BROKEN: fails to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch
deleted file mode 100644
index 82ac5aa..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From c30716be9e615513fe66993fd3cdc818c3d70410 Mon Sep 17 00:00:00 2001
-From: "Gary E. Miller" <gem@rellim.com>
-Date: Sun, 15 Mar 2015 11:51:45 -0700
-Subject: [PATCH 1/3] Check for __STDC_NO_ATOMICS__ before using stdatomic.h
-
----
- SConstruct | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/SConstruct b/SConstruct
-index adf473d..566c14a 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -633,7 +633,7 @@ else:
-         announce("You do not have kernel CANbus available.")
-         env["nmea2000"] = False
- 
--    if config.CheckHeader("stdatomic.h"):
-+    if not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
-         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
-     else:
- 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
--- 
-2.1.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch
deleted file mode 100644
index bc9167e..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 79f6d9133378325d70a92e66f7352c1becefbb88 Mon Sep 17 00:00:00 2001
-From: Gleb Smirnoff <glebius@FreeBSD.org>
-Date: Sat, 16 May 2015 02:47:28 +0300
-Subject: [PATCH] Include <stdatomic.h> only in C mode.
-
-Upstream-Status: Backport from 3.15
-
-Without this build with gcc-5.2 fails with:
-| arm-oe-linux-gnueabi-g++ -march=armv4t -mthumb -mthumb-interwork -mtune=arm920t --sysroot=/OE/build/shr-core/tmp-glibc/sysroots/om-gta02 -o clock_gettime-qt.os -c -O2 -pipe -g -feliminate-unused-debug-types --sysroot=/OE/build/shr-core/tmp-glibc/sysroots/om-gta02 -Wextra -Wall -Wno-uninitialized -Wno-missing-field-initializers -Wcast-align -Wmissing-declarations -Wpointer-arith -Wreturn-type -pthread -Wmissing-declarations -g -O0 -pthread -fPIC -DUSE_QT -DQT_SHARED -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/dbus-1.0 -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/lib/dbus-1.0/include -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4/QtNetwork -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4 -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4/QtCore clock_gettime.c
-| In file included from compiler.h:50:0,
-|                  from clock_gettime.c:10:
-| /OE/build/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/5.2.0/include/stdatomic.h:40:9: error: '_Atomic' does not name a type
-|  typedef _Atomic _Bool atomic_bool;
-|          ^
-....
-
-More info:
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932
-
-Signed-off-by: Gary E. Miller <gem@rellim.com>
----
- compiler.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/compiler.h b/compiler.h
-index 837c935..03430c0 100644
---- a/compiler.h
-+++ b/compiler.h
-@@ -66,9 +66,9 @@
-     } while (0)
- 
- #ifdef HAVE_STDATOMIC_H
--#ifndef __COVERITY__	/* Coverity is confused by a GNU typedef */
-+#if !defined(__COVERITY__) && !defined(__cplusplus)
- #include <stdatomic.h>
--#endif /* __COVERITY__ */
-+#endif /* __COVERITY__ || __cplusplus */
- #endif /* HAVE_STDATOMIC_H */
- 
- #ifdef HAVE_OSATOMIC_H
--- 
-2.5.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
deleted file mode 100644
index c4134f4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 3c5fb3a8691ac711ea93edf8e0b42bffc62b197e Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 24 Apr 2012 11:52:35 +0200
-Subject: [PATCH 1/4] SConstruct: respect sysroot also in SPLINTOPTS
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- SConstruct | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/SConstruct b/SConstruct
-index 14e2f59..f0cafa8 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1414,7 +1414,10 @@ def Utility(target, source, action):
- # Report splint warnings
- # Note: test_bits.c is unsplintable because of the PRI64 macros.
- # If you get preprocessor or fatal errors, add +showscan.
--splintopts = "-I/usr/include/libusb-1.0 +quiet"
-+if not env['sysroot']:
-+    splintopts = "-I/usr/include/libusb-1.0 +quiet"
-+else:
-+    splintopts = "-I%s/usr/include/libusb-1.0 +quiet" % env['sysroot']
- # splint does not know about multi-arch, work around that
- ma_status, ma = _getstatusoutput('dpkg-architecture -qDEB_HOST_MULTIARCH')
- if ma_status == 0:
--- 
-1.8.5.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch
deleted file mode 100644
index 7a06795..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 6ff099b1ba8de74df9ddeb61e3825264b96ef692 Mon Sep 17 00:00:00 2001
-From: Moritz Fischer <moritz.fischer@ettus.com>
-Date: Tue, 22 Dec 2015 19:38:31 -0800
-Subject: [PATCH] libgpsd-core: Fix issue with ACTIVATE hook not being called.
-
-In the current system session->mode seemed to ignore the
-O_OPTIMIZE flag, leading to the ACTIVATE hook being ignored.
-
-Another way to fix this would be to keep the session->mode
-condition pull up the check for O_CONTINUE.
-
-Upstream-Status: Backported
-This patch is in upstream git
-
-Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
----
- libgpsd_core.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libgpsd_core.c b/libgpsd_core.c
-index 31fec2a..a84e85f 100644
---- a/libgpsd_core.c
-+++ b/libgpsd_core.c
-@@ -543,7 +543,7 @@ int gpsd_open(struct gps_device_t *session)
- int gpsd_activate(struct gps_device_t *session, const int mode)
- /* acquire a connection to the GPS device */
- {
--    if (session->mode == O_OPTIMIZE)
-+    if (mode == O_OPTIMIZE)
- 	gpsd_run_device_hook(&session->context->errout,
- 			     session->gpsdata.dev.path, "ACTIVATE");
-     session->gpsdata.gps_fd = gpsd_open(session);
--- 
-2.4.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch
deleted file mode 100644
index 22ee1bd..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 99444b3d2c4a4f7fd7128e60461005780d0c5c83 Mon Sep 17 00:00:00 2001
-From: "Gary E. Miller" <gem@rellim.com>
-Date: Sun, 15 Mar 2015 12:05:15 -0700
-Subject: [PATCH 2/3] Add a test for C11 and check we have C11 before using
- stdatomic.h
-
----
- SConstruct | 19 ++++++++++++++++++-
- 1 file changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/SConstruct b/SConstruct
-index 566c14a..faa8651 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -473,6 +473,20 @@ def CheckCompilerDefines(context, define):
-     context.Result(ret)
-     return ret
- 
-+# Check if this compiler is C11 or better
-+def CheckC11(context):
-+    context.Message( 'Checking if compiler is C11 ...' )
-+    ret = context.TryLink("""
-+	#if (__STDC_VERSION__ < 201112L) 
-+        #error Not C11
-+        #endif
-+        int main(int argc, char **argv) {
-+            return 0;
-+        }
-+    """,'.c')
-+    context.Result(ret)
-+    return ret
-+
- def GetLoadPath(context):
-     context.Message("Getting system load path ...")
- 
-@@ -491,6 +505,7 @@ else:
-                                              'CheckXsltproc' : CheckXsltproc,
-                                              'CheckCompilerOption' : CheckCompilerOption,
-                                              'CheckCompilerDefines' : CheckCompilerDefines,
-+                                             'CheckC11' : CheckC11,
-                                              'CheckHeaderDefines' : CheckHeaderDefines})
- 
- 
-@@ -633,7 +648,9 @@ else:
-         announce("You do not have kernel CANbus available.")
-         env["nmea2000"] = False
- 
--    if not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
-+    # check for C11 or better, and __STDC__NO_ATOMICS__ is no defined
-+    # before looking for stdatomic.h
-+    if not config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
-         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
-     else:
- 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
--- 
-2.1.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch
deleted file mode 100644
index 083a662..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d090638ff983e509162d5e3b62aa4918de4aa5fa Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 24 Apr 2012 16:24:35 +0200
-Subject: [PATCH 2/4] SConstruct: remove rpath
-
-* even with correct prefix (without DESTDIR) included it's redundant
-  WARNING: QA Issue: libgps:
-  /work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0
-  contains probably-redundant RPATH /usr/lib
-* and with prefix from scons.bbclass it's invalid
-  WARNING: QA Issue: package libgps contains bad RPATH
-  /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/image/usr/lib
-  in file
-  /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0
-
-Upstream-Status: Inapppropriate [embedded specific]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- SConstruct | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/SConstruct b/SConstruct
-index f0cafa8..ff46713 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1340,8 +1340,11 @@ if qt_env:
-     binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib))
- 
- if env["shared"] and env["chrpath"]:
--    env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
--                      % (installdir('libdir', False), ))
-+    if not env['sysroot']:
-+        env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
-+                          % (installdir('libdir', False), ))
-+    else:
-+        env.AddPostAction(binaryinstall, '$CHRPATH -d "$TARGET"')
- 
- if not env['debug'] and not env['profiling'] and env['strip']:
-     env.AddPostAction(binaryinstall, '$STRIP $TARGET')
--- 
-1.8.5.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch
deleted file mode 100644
index 8bb0928..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 674c50ee54fd7cd304e8b3c4b33d3ff1272ed191 Mon Sep 17 00:00:00 2001
-From: "Gary E. Miller" <gem@rellim.com>
-Date: Sun, 15 Mar 2015 12:17:51 -0700
-Subject: [PATCH 3/3] Whoops, check for C11, not for not C11 in stdatomic.h
- test.
-
----
- SConstruct | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/SConstruct b/SConstruct
-index faa8651..f4ea145 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -650,7 +650,7 @@ else:
- 
-     # check for C11 or better, and __STDC__NO_ATOMICS__ is no defined
-     # before looking for stdatomic.h
--    if not config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
-+    if config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
-         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
-     else:
- 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
--- 
-2.1.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/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
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-include-sys-ttydefaults.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch
similarity index 79%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-include-sys-ttydefaults.h.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch
index b27c671..f496b5e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-include-sys-ttydefaults.h.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch
@@ -1,4 +1,4 @@
-From 543f79222520cc6ab65d20f9fa356dac5c848e3b Mon Sep 17 00:00:00 2001
+From f221fa959c80b43c65426500a6836a1b5cf6fe0c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 17 Aug 2016 02:16:12 +0000
 Subject: [PATCH] include sys/ttydefaults.h
@@ -11,14 +11,15 @@
 scons: *** [gpsmon] Error 1
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
 
+Foreward port to gpsd 3.16
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
  gpsmon.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/gpsmon.c b/gpsmon.c
-index bee05b8..daed818 100644
+index ead84d0..f205cb1 100644
 --- a/gpsmon.c
 +++ b/gpsmon.c
 @@ -20,6 +20,7 @@
@@ -27,8 +28,8 @@
  #include <sys/select.h>
 +#include <sys/ttydefaults.h>
  #include <fcntl.h>
- #ifndef S_SPLINT_S
  #include <unistd.h>
+ 
 -- 
-1.8.3.1
+2.12.0
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
similarity index 81%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
index fb02f95..26d7486 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb
@@ -8,26 +8,20 @@
 EXTRANATIVEPATH += "chrpath-native"
 
 SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
-    file://0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
-    file://0002-SConstruct-remove-rpath.patch \
     file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
     file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \
-    file://0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch \
-    file://0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch \
-    file://0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch \
-    file://0001-Include-stdatomic.h-only-in-C-mode.patch \
-    file://0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch \
     file://0001-include-sys-ttydefaults.h.patch \
     file://gpsd-default \
     file://gpsd \
     file://60-gpsd.rules \
     file://gpsd.service \
 "
-SRC_URI[md5sum] = "bc7467009b99e07ba461377b5da6c039"
-SRC_URI[sha256sum] = "504fc812f3c1525a1a48e04bf4d77f9a8066c201448d98089df89d58ef53a8cb"
+SRC_URI[md5sum] = "68691b5de4c94f82ec4062b042b5eb63"
+SRC_URI[sha256sum] = "03579af13a4d3fe0c5b79fa44b5f75c9f3cac6749357f1d99ce5d38c09bc2029"
 
-inherit scons update-rc.d python-dir pythonnative systemd bluetooth
+inherit scons update-rc.d python-dir pythonnative systemd bluetooth update-alternatives
 
+INITSCRIPT_PACKAGES = "gpsd-conf"
 INITSCRIPT_NAME = "gpsd"
 INITSCRIPT_PARAMS = "defaults 35"
 
@@ -36,8 +30,6 @@
 export STAGING_INCDIR
 export STAGING_LIBDIR
 
-LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
 PACKAGECONFIG[bluez] = "bluez='true',bluez='false',${BLUEZ}"
 PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free"
@@ -95,14 +87,6 @@
     install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
 }
 
-pkg_postinst_${PN}-conf() {
-    update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10
-}
-
-pkg_postrm_${PN}-conf() {
-    update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default
-}
-
 PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
 
 FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
@@ -136,9 +120,21 @@
 
 SUMMARY_python-pygps = "Python bindings to gpsd"
 FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
+RDEPENDS_python-pygps = " \
+    python-core \
+    python-io \
+    python-threading \
+    python-terminal \
+    python-curses \
+    gpsd \
+    python-json"
 
 RPROVIDES_${PN} += "${PN}-systemd"
 RREPLACES_${PN} += "${PN}-systemd"
 RCONFLICTS_${PN} += "${PN}-systemd"
 SYSTEMD_SERVICE_${PN} = "${PN}.socket"
+
+
+ALTERNATIVE_${PN} = "gpsd-defaults"
+ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd"
+ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch
deleted file mode 100644
index 063bea6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 5b859b6e7c82f49d967c25398a8e75b61af9bcc0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Jun 2013 20:58:51 -0700
-Subject: [PATCH] g_type_init() is deprecated for glib >= 2.35.0
-
-Call it for old versions.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- examples/list-known-gps-devices.c |    4 ++--
- examples/simple-gps-dbus.c        |    3 ++-
- examples/simple-gps-gypsy.c       |    4 ++--
- examples/simple-gps-satellites.c  |    4 ++--
- gypsy/gypsy-marshal.c             |    2 +-
- src/main.c                        |    4 ++--
- 6 files changed, 11 insertions(+), 10 deletions(-)
-
-diff --git a/examples/list-known-gps-devices.c b/examples/list-known-gps-devices.c
-index c7c4059..0a8b04b 100644
---- a/examples/list-known-gps-devices.c
-+++ b/examples/list-known-gps-devices.c
-@@ -20,9 +20,9 @@ main (int argc,
-     GError *error = NULL;
-     GPtrArray *known_devices;
-     int i;
--
-+#if !GLIB_CHECK_VERSION(2,35,0)
-     g_type_init ();
--
-+#endif
-     discovery = gypsy_discovery_new ();
-     known_devices = gypsy_discovery_list_devices (discovery, &error);
- 
-diff --git a/examples/simple-gps-dbus.c b/examples/simple-gps-dbus.c
-index f7044e6..76b18aa 100644
---- a/examples/simple-gps-dbus.c
-+++ b/examples/simple-gps-dbus.c
-@@ -121,8 +121,9 @@ main (int    argc,
- 	DBusConnection *conn;
- 	DBusError error;
- 	GMainLoop *mainloop;
--
-+#if !GLIB_CHECK_VERSION(2,35,0)
- 	g_type_init ();
-+#endif
- 	conn = get_connection ();
- 
- 	dbus_error_init (&error);
-diff --git a/examples/simple-gps-gypsy.c b/examples/simple-gps-gypsy.c
-index 0b6b7a6..86033d9 100644
---- a/examples/simple-gps-gypsy.c
-+++ b/examples/simple-gps-gypsy.c
-@@ -67,9 +67,9 @@ main (int    argc,
- 		g_print ("Usage: %s device\n", argv[0]);
- 		return 0;
- 	}
--
-+#if !GLIB_CHECK_VERSION(2,35,0) 
- 	g_type_init ();
--
-+#endif
- 	control = gypsy_control_get_default ();
- 	path = gypsy_control_create (control, argv[1], &error);
- 	if (path == NULL) {
-diff --git a/examples/simple-gps-satellites.c b/examples/simple-gps-satellites.c
-index 140c98f..9a3f95a 100644
---- a/examples/simple-gps-satellites.c
-+++ b/examples/simple-gps-satellites.c
-@@ -42,9 +42,9 @@ main (int    argc,
- 		g_print ("Usage: %s device\n", argv[0]);
- 		return 0;
- 	}
--
-+#if !GLIB_CHECK_VERSION(2,35,0)
- 	g_type_init ();
--
-+#endif
- 	control = gypsy_control_get_default ();
- 	path = gypsy_control_create (control, argv[1], &error);
- 	if (path == NULL) {
-diff --git a/gypsy/gypsy-marshal.c b/gypsy/gypsy-marshal.c
-index 6964644..9ac0095 100644
---- a/gypsy/gypsy-marshal.c
-+++ b/gypsy/gypsy-marshal.c
-@@ -5,7 +5,7 @@
- 
- #ifdef G_ENABLE_DEBUG
- #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
--#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-+#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
- #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
- #define g_marshal_value_peek_int(v)      g_value_get_int (v)
- #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-diff --git a/src/main.c b/src/main.c
-index 3e8a794..ec980e5 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -187,9 +187,9 @@ main (int    argc,
- 	g_option_context_free (context);
- 
- 	umask (022);
--
-+#if !GLIB_CHECK_VERSION(2,35,0)
- 	g_type_init ();
--
-+#endif
- 	mainloop = g_main_loop_new (NULL, FALSE);
- 
- 	conn = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
--- 
-1.7.9.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch
deleted file mode 100644
index de4d92e..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
----
- docs/reference/Makefile.am |    2 ++
- 1 file changed, 2 insertions(+)
-
---- gypsy.orig/docs/reference/Makefile.am
-+++ gypsy/docs/reference/Makefile.am
-@@ -81,10 +81,12 @@ expand_content_files=
- # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
- 
- INCLUDES=-I$(top_srcdir) $(GYPSY_CFLAGS)
- GTKDOC_LIBS=$(top_builddir)/gypsy/libgypsy.la $(GYPSY_LIBS)
- 
-+EXTRA_DIST =
-+CLEANFILES =
- # This includes the standard gtk-doc make rules, copied by gtkdocize.
- include $(top_srcdir)/gtk-doc.make
- 
- # Other files to distribute
- # e.g. EXTRA_DIST += version.xml.in
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc
deleted file mode 100644
index 9efd356..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "GPS Multiplexing Daemon"
-DESCRIPTION = "Gypsy is a GPS multiplexing daemon which allows \
-multiple clients to access GPS data from multiple GPS sources \
-concurrently.  Gypsy also hides the details of parsing NMEA from the \
-client applications, passing the data as simple values for the clients \
-to use."
-LICENSE = "GPLv2.0 & LGPLv2.1"
-SECTION = "console/network"
-DEPENDS = "glib-2.0 dbus bluez4 dbus-glib libxslt-native libxslt"
-
-PNBLACKLIST[gypsy] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-inherit autotools pkgconfig gtk-doc
-PACKAGES += "libgypsy"
-
-FILES_${PN} = " \
-  ${sysconfdir}/gypsy.conf \
-  ${sysconfdir}/dbus-1 \
-  ${libexecdir}/gypsy-daemon \
-  ${datadir}/dbus-1 \
-"
-
-FILES_libgypsy = " \
-  ${libdir}/libgypsy${SOLIBS} \
-"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb
deleted file mode 100644
index 24c8987..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require gypsy.inc
-
-PR = "r2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
-                    file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \
-                    file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \
-                    file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd"
-
-SRC_URI += "http://gypsy.freedesktop.org/releases/gypsy-${PV}.tar.gz \
-           file://0001-g_type_init-is-deprecated-for-glib-2.35.0.patch \
-          "
-
-SRC_URI[md5sum] = "e2d186df9c2cc3b70a027043e22acf1a"
-SRC_URI[sha256sum] = "14e1cbe17351f408538e033ca370b4bf51ccf9c88744e236ddfb271904f154d6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb
deleted file mode 100644
index 6ab16e6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require gypsy.inc
-
-DEFAULT_PREFERENCE = "-1"
-
-SRCREV = "be8c9c382d2d1d37b51d29b0843045121ec90213"
-PV = "0.9+git${SRCPV}"
-PR = "r2"
-
-S = "${WORKDIR}/git"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
-                    file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \
-                    file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \
-                    file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd"
-
-SRC_URI += "git://anongit.freedesktop.org/gypsy \
-            file://fixups.patch"
-
-do_configure_prepend() {
-  # from patch 563716fc596d53f1085949a9dd11a62f39b2d624
-  test -d ${S}/m4 || mkdir -p ${S}/m4
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc
deleted file mode 100644
index 54b7a97..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-
-def get_navit_fpu_setting(bb, d):
-    if d.getVar('TARGET_FPU') in [ 'soft' ]:
-        return "--enable-avoid-float"
-    return ""
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc
deleted file mode 100644
index 1c0bfda..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc
+++ /dev/null
@@ -1,95 +0,0 @@
-DESCRIPTION = "Navit is a car navigation system with routing engine."
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ed539d099d6ce08de6ea0dfed9ecb333 \
-                    file://LGPL-2;md5=3214f080875748938ba060314b4f727d \
-                    file://GPL-2;md5=751419260aa954499f7abaabaa882bbe \
-"
-
-SECTION = "x11/applications"
-DEPENDS = "glib-2.0 gd gypsy librsvg-native"
-RDEPENDS_${PN} = " ${PN}-icons ${PN}-config "
-RRECOMMENDS_${PN} = "gpsd ${PN}-dbus ${PN}-speech-cmdline ${PN}-gui-internal ${PN}-graphics-gtk"
-RSUGGESTS_${PN} = "flite-alsa espeak ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-qt ${PN}-maptool"
-
-PE = "1"
-INC_PR = "r11"
-
-# Depends on gypsy
-PNBLACKLIST[navit] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[fribidi] = "--enable-fribidi,--disable-fribidi,fribidi"
-PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
-PACKAGECONFIG[sdl] = "--enable-graphics-sdl,--disable-graphics-sdl,libsdl"
-PACKAGECONFIG[gtk] = "--enable-graphics-gtk-drawing-area --enable-gui-gtk,--disable-graphics-gtk-drawing-area --disable-gui-gtk,gtk+"
-PACKAGECONFIG[qt] = "--enable-graphics-qt-qpainter --enable-gui-qml,--disable-graphics-qt-qpainter --disable-gui-qml,qt4-x11-free,qt4-plugin-imageformat-svg"
-
-EXTRA_OECONF += " \
-    --disable-binding-python \
-    --disable-samplemap \
-    --enable-avoid-unaligned \
-    --enable-svg2png-scaling-flag=32 \
-    --disable-speech-speech-dispatcher \
-    --enable-cache-size=20971520 \
-"
-
-#  --enable-avoid-float \
-#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
-require navit-fpu.inc
-EXTRA_OECONF += "${@get_navit_fpu_setting(bb, d)}"
-
-PACKAGES =+ "${PN}-maptool ${PN}-config ${PN}-dbus ${PN}-speech-cmdline ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-internal ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-gtk ${PN}-graphics-qt ${PN}-icons"
-
-EXTRA_AUTORECONF = " -I m4"
-
-CONFFILES_${PN}-config += "${datadir}/navit/navit.default.xml \
-    ${datadir}/navit/navit.xml \
-    ${datadir}/navit/maps.xml \
-    ${datadir}/navit/osd.xml \
-    ${datadir}/navit/speech.xml \
-    ${datadir}/navit/plugins.xml \
-"
-
-SRC_URI += "file://navit.xml \
-            file://maps.xml \
-            file://osd.xml \
-            file://speech.xml \
-            file://plugins.xml \
-"
-
-FILES_${PN} += "${libdir}/${BPN}/*/*.so ${datadir}/icons"
-FILES_${PN}-dbg += "${libdir}/${BPN}/*/.debug"
-FILES_${PN}-maptool = " ${bindir}/maptool "
-FILES_${PN}-config = " ${datadir}/navit/*.xml "
-FILES_${PN}-dbus = " ${datadir}/dbus-1/services/ ${libdir}/${BPN}/binding/libbinding_dbus.so "
-FILES_${PN}-speech-cmdline = " ${libdir}/${BPN}/speech/libspeech_cmdline.so "
-FILES_${PN}-speech-dbus = " ${libdir}/${BPN}/speech/libspeech_dbus.so "
-FILES_${PN}-gui-gtk = " ${libdir}/${BPN}/gui/libgui_gtk.so "
-FILES_${PN}-gui-qml = " ${libdir}/${BPN}/gui/libgui_qml.so ${datadir}/navit/skins/ "
-FILES_${PN}-gui-internal = " ${libdir}/${BPN}/gui/libgui_internal.so "
-FILES_${PN}-graphics-sdl = " ${libdir}/${BPN}/graphics/libgraphics_sdl.so "
-FILES_${PN}-graphics-qt = " ${libdir}/${BPN}/graphics/libgraphics_qt_qpainter.so "
-FILES_${PN}-graphics-gtk = " ${libdir}/${BPN}/graphics/libgraphics_gtk_drawing_area.so "
-FILES_${PN}-icons = "/usr/share/navit/xpm/"
-
-do_configure_prepend() {
-    # MOC=`$PKG_CONFIG QtGui --variable=moc_location` returns only /usr/bin/moc4 which is not available on hosts without Qt
-    sed -i "s#MOC=#MOC=${STAGING_DIR_NATIVE}#g" ${S}/configure.in
-}
-
-do_install_append() {
-    # fix QA issue
-    sed -i 's#Categories=GTK;Utility;Geography;#Categories=Graphics;#g' ${D}${datadir}/applications/navit.desktop
-
-    rm ${D}${libdir}/${BPN}/*/*.la
-
-    #Use split config
-    mv ${D}${datadir}/navit/navit.xml ${D}${datadir}/navit/navit.default.xml
-    install -m 0644 ${WORKDIR}/navit.xml ${D}${datadir}/navit/navit.xml
-    install -m 0644 ${WORKDIR}/maps.xml ${D}${datadir}/navit/maps.xml
-    install -m 0644 ${WORKDIR}/osd.xml ${D}${datadir}/navit/osd.xml
-    install -m 0644 ${WORKDIR}/speech.xml ${D}${datadir}/navit/speech.xml
-    install -m 0644 ${WORKDIR}/plugins.xml ${D}${datadir}/navit/plugins.xml
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch
deleted file mode 100644
index be41792..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/configure.in.orig	2014-05-10 15:57:18.146362110 +0200
-+++ b/configure.in	2014-05-10 15:59:27.859358845 +0200
-@@ -498,10 +498,13 @@
- AC_SUBST(FRIBIDI_CFLAGS)
- AC_SUBST(FRIBIDI_LIBS)
- 
-+AC_ARG_ENABLE(imlib2, [  --disable-imlib2  disable imlib2 support], imlib2=$enableval;imlib2_reason="configure parameter", imlib2=yes)
-+if test x"${imlib2}" = "xyes"; then
- PKG_CHECK_MODULES(IMLIB2, [imlib2], [imlib2_pkgconfig=yes], [imlib2_pkgconfig=no])
- if test "x$imlib2_pkgconfig" = "xyes"; then
-    AC_DEFINE(HAVE_IMLIB2, 1, [Define to 1 if you have imlib2])
- fi
-+fi
- AC_SUBST(IMLIB2_CFLAGS)
- AC_SUBST(IMLIB2_LIBS)
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch
deleted file mode 100644
index 288997b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Description: Fix FTBFS caused by freetype headers path change.
-Author: Gilles Filippini <pini@debian.org>
-Bug-Debian: http://bugs.debian.org/733378
-Index: navit/navit/font/freetype/font_freetype.c
-===================================================================
---- navit.orig/navit/font/freetype/font_freetype.c	2013-09-23 10:43:32.000000000 +0200
-+++ navit/navit/font/freetype/font_freetype.c	2013-12-30 19:54:45.000000000 +0100
-@@ -32,7 +32,7 @@
- #if USE_FRIBIDI
- #include <fribidi.h>
- #endif
--#include <freetype/ftglyph.h>
-+#include <ftglyph.h>
- #include "point.h"
- #include "graphics.h"
- #include "debug.h"
-diff -uNr navit.orig/navit/graphics/sdl/graphics_sdl.c navit/navit/graphics/sdl/graphics_sdl.c
---- navit.orig/navit/graphics/sdl/graphics_sdl.c	2012-06-22 14:16:01.000000000 +0200
-+++ navit/navit/graphics/sdl/graphics_sdl.c	2014-01-01 22:31:10.892948164 +0100
-@@ -84,7 +84,7 @@
- #else
- #include <ft2build.h>
- #include FT_FREETYPE_H
--#include <freetype/ftglyph.h>
-+#include <ftglyph.h>
- #endif
- #include <event.h>
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml
deleted file mode 100644
index 6f59f20..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-                <!-- If you have the reiseplaner maps installed, set enabled="yes" in the next line and set the path correctly -->
-                <mapset enabled="no">
-                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map"/>
-                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp1.smp"/>
-                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp2.smp"/>
-                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp3.smp"/>
-                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp4.smp"/>
-                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp5.smp"/>
-                </mapset>
-
-                <!-- If you dont want to use the sample map, either set enabled="no" in the next line or remove the xml file from the maps directory -->
-                <mapset enabled="no">
-                        <xi:include href="$NAVIT_SHAREDIR/maps/*.xml"/>
-                </mapset>
-
-                <!-- Mapset template for openstreetmaps -->
-                <mapset enabled="yes">
-                        <map type="binfile" enabled="yes" data="/media/mmc2/MapsNavit/osm_europe.bin"/>
-                </mapset>
-
-                <!-- Mapset template for garmin maps -->
-                <mapset enabled="no">
-                        <map type="garmin" enabled="yes" data="/path/to/img" debug="4"/>
-                </mapset>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml
deleted file mode 100644
index 58c8c22..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE config SYSTEM "navit.dtd">
-<config xmlns:xi="http://www.w3.org/2001/XInclude">
-	<xi:include href="/usr/share/navit/plugins.xml"/>
-	<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/debug)"/>
-
-	<navit center="4808 N 1134 E" zoom="256" tracking="1" orientation="-1" recent_dest="10" drag_bitmap="1">
-		<graphics type="gtk_drawing_area"/>
-		<gui type="gtk" enabled="no" menubar="1" toolbar="1" statusbar="1"/>
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/gui[@type='internal'])"/>
-		<!-- or comment gtk version above and try:
-		opkg install navit-graphics-qt
-		opkg install navit-gui-qml
-		<graphics type="qt_qpainter"/>
-		<gui type="qml" enabled="yes" menubar="1" toolbar="1" statusbar="1"/>
-		-->
-		<xi:include href="/usr/share/navit/osd.xml"/>
-		<log enabled="no" type="textfile_debug" data="debug_%Y%m%d-%i.txt" flush_size="1000" flush_time="30"/>
-		<vehicle name="Local GPS" profilename="car" enabled="yes" active="1" source="gpsd://localhost" gpsd_query="w+xj">
-			<!-- <log type="gpx" attr_types="position_time_iso8601,position_direction,position_speed,profilename,position_radius" data="track_%Y%m%d-%i.gpx" flush_size="1000" flush_time="30"/> -->
-		</vehicle>
-
-		<vehicle name="Demo" profilename="car" enabled="no" active="yes" source="demo://"/>
-
-		<!-- For the cumulative displacement filter to be enabled, set cdf_histsize="x" here, with x being an integer somewhere around 4 -->
-		<tracking cdf_histsize="0"/>
-
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='car'])"/>
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='bike'])"/>
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='pedestrian'])"/>
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='horse'])"/>
-
-		<route destination_distance="50"/>
-
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/navigation)"/>
-
-		<xi:include href="/usr/share/navit/speech.xml"/>
-		<xi:include href="/usr/share/navit/maps.xml"/>
-
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Car'])"/>
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Car-dark'])"/>
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Bike'])"/>
-		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='T@H'])"/>
-	</navit>
-</config>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml
deleted file mode 100644
index 2d0f9ff..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-                <!-- osd items allow to position display and control items directly on top of the map: -->
-                <osd enabled="no" type="compass"/>
-                <osd enabled="no" type="eta"/>
-                <osd enabled="no" type="navigation_distance_to_target"/>
-                <osd enabled="no" type="navigation"/>
-                <osd enabled="no" type="navigation_distance_to_next"/>
-                <osd enabled="no" type="navigation_next_turn"/>
-
-                <!-- Commands include gui_internal_menu, gui_internal_fullscreen, zoom_in and zoom_out.
-                         Usage of negative values change the button origins. x="0" y="0" specifies the top left, x="-0" y="-0" the bottom right corner.
-                         It's always the top left corner of the icon, so you need to consider the icon's size when you enter the values. -->
-                <osd enabled="no" type="button" x="0" y="0" command="gui.fullscreen()" src="toggle_fullscreen.xpm"/>
-                <osd enabled="no" type="button" x="-96" y="0" command="gui.menu()" src="menu.xpm"/>
-                <osd enabled="no" type="button" x="-96" y="-96" command="zoom_in()" src="zoom_in.xpm"/>
-                <osd enabled="no" type="button" x="0" y="-96" command="zoom_out()" src="zoom_out.xpm"/>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml
deleted file mode 100644
index 015b055..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<plugins>
-	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}lib*.so" ondemand="yes"/>
-	<plugin path="$NAVIT_LIBDIR/autoload/${NAVIT_LIBPREFIX}lib*.so"/>
-	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}libbinding_dbus.so" active="yes"/>
-	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}libgraphics_null.so" active="no"/>
-</plugins>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml
deleted file mode 100644
index 28c4990..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-                <!-- Navit provides speech output in text format.
-                         If you have a speech synthesizer like festival lite installed, you can get turn by turn directions out of navit. Please set the "cps"-value to how many characters your tts engine approximately speaks per second.
-                         The default is text output to the shell -->
-                <!-- <speech type="cmdline" data="echo 'Fix the speech tag in navit.xml to let navit say:' '%s'" cps="15"/> -->
-                <!-- <speech type="cmdline" data="espeak -s 150 -v czech '%s' &amp;"/> -->
-                <!-- <speech type="cmdline" data="flite -t '%s'"/> -->
-                <!-- <speech type="cmdline" data="/usr/local/bin/say.sh '%s'"/> -->
-                <speech type="cmdline" data="espeak '%s' &amp;"/>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb
deleted file mode 100644
index bdfbb4b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require navit.inc
-
-SRCREV = "5310"
-PV = "0.2.0+svnr${SRCPV}"
-PR = "${INC_PR}.3"
-
-S = "${WORKDIR}/${BPN}"
-SRC_URI += "svn://anonymous@navit.svn.sourceforge.net/svnroot/navit/trunk;module=navit;protocol=http \
-    file://freetype-include-path.patch \
-    file://configure.add.imlib2.option.patch \
-"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.9.3.bb
similarity index 70%
rename from import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.9.3.bb
index b4bfaf4..f45f894 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.9.3.bb
@@ -6,8 +6,8 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608"
 
 SRC_URI = "http://download.osgeo.org/proj/proj-${PV}.tar.gz"
-SRC_URI[md5sum] = "d815838c92a29179298c126effbb1537"
-SRC_URI[sha256sum] = "2db2dbf0fece8d9880679154e0d6d1ce7c694dd8e08b4d091028093d87a9d1b5"
+SRC_URI[md5sum] = "d598336ca834742735137c5674b214a1"
+SRC_URI[sha256sum] = "6984542fea333488de5c82eea58d699e4aff4b359200a9971537cd7e047185f7"
 
 inherit autotools pkgconfig lib_package
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb
deleted file mode 100644
index 534ba3b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SECTION = "x11/network"
-SUMMARY = "Mail user agent"
-DEPENDS = "gtk+ libetpan openssl aspell curl libgcrypt"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e059bde2972c1790af786f3e86bac22e"
-
-PNBLACKLIST[claws-mail] ?= "depends on blacklisted libetpan - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-inherit autotools pkgconfig gettext
-
-# translation patch: http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1774
-SRC_URI = "\
-        ${SOURCEFORGE_MIRROR}/project/claws-mail/Claws%20Mail/${PV}/claws-mail-${PV}.tar.bz2;name=archive "
-SRC_URI[archive.md5sum] = "4c5ac7b21f0ed17d0f6404124c2229a4"
-SRC_URI[archive.sha256sum] = "ed70975a5056b3ffc4fe6e977f0d9606febc1499763c090241b029a73ff24e65"
-
-do_configure_append() {
-    cd ${S}/po ; for PO in *.po ; do MO=`echo $PO | sed s/\\.po//`.gmo ; if ! test -f $MO ; then msgfmt $PO -o $MO ; fi ; done; cd ${B}
-}
-
-PACKAGECONFIG ??= "startup-notification dbus"
-PACKAGECONFIG[enchant] = "--enable-enchant,--disable-enchant,enchant"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
-PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
-
-# FIXME: maemo builds may want --enable-maemo
-# FIXME: some platforms may want --enable-generic-umpc
-EXTRA_OECONF = " \
-    --disable-manual \
-    --disable-crash-dialog \
-    --disable-jpilot \
-    --disable-trayicon-plugin \
-    --disable-spamassassin-plugin \
-    --disable-bogofilter-plugin \
-    --disable-pgpcore-plugin \
-    --disable-pgpmime-plugin \
-    --disable-pgpinline-plugin \
-    --disable-dillo-viewer-plugin \
-    --disable-valgrind \
-"
-
-# Remove enchant references:
-do_install_prepend() {
-    sed -i -e 's:${STAGING_INCDIR}:${includedir}:g;s:${STAGING_LIBDIR}:${libdir}:g' claws-mail.pc
-}
-
-# Work-around broken GPE icon lookup:
-do_install_append() {
-    rm -r ${D}${datadir}/icons
-    install -d ${D}${datadir}/pixmaps
-    install -m 0644 ${S}/claws-mail.png ${D}${datadir}/pixmaps/
-    sed -i 's/Icon=[^.]*$/&.png/' ${D}${datadir}/applications/claws-mail.desktop
-}
-
-RSUGGESTS_${PN} = "claws-plugin-gtkhtml2-viewer claws-plugin-mailmbox claws-plugin-rssyl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch
deleted file mode 100644
index 222a796..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Index: gtkhtml2_viewer-0.31/configure.ac
-===================================================================
---- gtkhtml2_viewer-0.31.orig/configure.ac	2011-08-27 08:08:55.000000000 +0000
-+++ gtkhtml2_viewer-0.31/configure.ac	2014-07-18 07:28:42.769518618 +0000
-@@ -1,33 +1,27 @@
- AC_PREREQ(2.60)
--AC_INIT(src/gtkhtml2_viewer.c)
-+
-+dnl plugin version
-+m4_define([plugin_major_version],[0])
-+m4_define([plugin_minor_version],[31])
-+m4_define([plugin_micro_version],[0])
-+m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version])
-+
-+AC_INIT(gtkhml2_viewer, plugin_version)
-+AC_CONFIG_SRCDIR(src/gtkhtml2_viewer.c)
- AC_CONFIG_AUX_DIR(config)
- AM_MAINTAINER_MODE
- 
- PACKAGE=gtkhtml2_viewer
- 
--dnl plugin version
--MAJOR_VERSION=0
--MINOR_VERSION=31
--MICRO_VERSION=0
-+MAJOR_VERSION=plugin_major_version
-+MINOR_VERSION=plugin_minor_version
-+MICRO_VERSION=plugin_micro_version
- EXTRA_VERSION=0
--
--if test \( $EXTRA_VERSION -eq 0 \); then
--    if test \( $MICRO_VERSION -eq 0 \); then
--        VERSION=${MAJOR_VERSION}.${MINOR_VERSION} 
--    else
--		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}
--    fi
--else
--    if test \( $MICRO_VERSION -eq 0 \); then
--        VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION}
--    else
--		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}
--    fi
--fi
-+VERSION=plugin_version
- 
- AC_CANONICAL_SYSTEM
- 
--AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
-+AM_INIT_AUTOMAKE([foreign no-define])
- AC_CONFIG_HEADERS(config.h)
- AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version])
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
deleted file mode 100644
index 29b41be..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SECTION = "x11/network"
-SUMMARY = "Mail user agent plugins"
-DEPENDS = "claws-mail gtkhtml2 curl"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=977f04a8048c04684e521c06e2844a94"
-
-PNBLACKLIST[claws-plugin-gtkhtml2-viewer] ?= "depends on blacklisted claws-mail - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-PR = "r1"
-
-SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/gtkhtml2_viewer-${PV}.tar.gz \
-           file://configure.patch"
-SRC_URI[md5sum] = "a6c9dfa6f969ccd844796a5724b52167"
-SRC_URI[sha256sum] = "4d41f6d961efaac0f51705e5052bac732bc0bdafee2ef2082a9cf9d89f183ae5"
-
-inherit autotools pkgconfig gettext
-
-S = "${WORKDIR}/gtkhtml2_viewer-${PV}"
-
-FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
-FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
-FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
-FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb
deleted file mode 100644
index 986b5d4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SECTION = "x11/network"
-SUMMARY = "Mail user agent plugins"
-DEPENDS = "claws-mail"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-PNBLACKLIST[claws-plugin-mailmbox] ?= "depends on blacklisted claws-mail - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/mailmbox-${PV}.tar.gz"
-SRC_URI[md5sum] = "7f72c68e6e1a8768f1247f455fd20b62"
-SRC_URI[sha256sum] = "633f7835261c88a0aa06de38553ac935a1799a7128120963a7fa87ace01dac18"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/mailmbox-${PV}"
-
-FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
-FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
-FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
-FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch
deleted file mode 100644
index a7a38f3..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Index: rssyl-0.34/configure.ac
-===================================================================
---- rssyl-0.34.orig/configure.ac	2014-07-18 07:37:28.981532959 +0000
-+++ rssyl-0.34/configure.ac	2014-07-18 07:39:45.881536690 +0000
-@@ -1,5 +1,13 @@
-+
-+dnl plugin version
-+m4_define([plugin_major_version],[0])
-+m4_define([plugin_minor_version],[34])
-+m4_define([plugin_micro_version],[0])
-+m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version])
-+
- AC_PREREQ(2.60)
--AC_INIT(src/plugin.c)
-+AC_INIT(rssyl, plugin_version)
-+AC_CONFIG_SRCDIR(src/plugin.c)
- AC_CONFIG_AUX_DIR(config)
- AM_MAINTAINER_MODE
- AC_CONFIG_HEADERS(config.h)
-@@ -7,28 +15,15 @@
- PACKAGE=rssyl
- 
- dnl plugin version
--MAJOR_VERSION=0
--MINOR_VERSION=34
--MICRO_VERSION=0
-+MAJOR_VERSION=plugin_major_version
-+MINOR_VERSION=plugin_minor_version
-+MICRO_VERSION=plugin_micro_version
- EXTRA_VERSION=0
--
--if test \( $EXTRA_VERSION -eq 0 \); then
--    if test \( $MICRO_VERSION -eq 0 \); then
--        VERSION=${MAJOR_VERSION}.${MINOR_VERSION} 
--    else
--		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}
--    fi
--else
--    if test \( $MICRO_VERSION -eq 0 \); then
--        VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION}
--    else
--		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}
--    fi
--fi
-+VERSION=plugin_version
- 
- AC_CANONICAL_SYSTEM
- 
--AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
-+AM_INIT_AUTOMAKE([foreign no-define])
- AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version])
- 
- AC_PROG_CC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb
deleted file mode 100644
index eec9a2d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SECTION = "x11/network"
-SUMMARY = "Mail user agent plugins"
-DEPENDS = "claws-mail libxml2 curl glib-2.0 gtk+"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0c2348e0a084e573f0220f5e45d8097e"
-
-PNBLACKLIST[claws-plugin-rssyl] ?= "depends on blacklisted claws-mail - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/rssyl-${PV}.tar.gz \
-           file://configure.patch"
-SRC_URI[md5sum] = "49b45608e8d160b3625d3d50016ec2ca"
-SRC_URI[sha256sum] = "2e96a1cd6a1a5bb7f86cd2eb48f6e174665957fafe1f3b1e8361aac3bb967f79"
-inherit autotools pkgconfig gettext
-
-S = "${WORKDIR}/rssyl-${PV}"
-
-FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
-FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
-FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
-FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
deleted file mode 100644
index 1520e57..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- sylpheed-2.7.1.orig/libsylph/defs.h	2009-06-10 09:55:46.000000000 +0200
-+++ sylpheed-2.7.1/libsylph/defs.h	2012-05-06 08:28:27.514746256 +0200
-@@ -24,8 +24,6 @@
- #  include "config.h"
- #endif
- 
--#include <glibconfig.h>
--
- #ifdef G_OS_WIN32
- #  include <glib/gwin32.h>
- #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
deleted file mode 100644
index 978d777..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SECTION = "x11/network"
-SUMMARY = "Mail user agent"
-DEPENDS = "gtk+ gpgme gnutls"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
-                    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-PR = "r2"
-
-SRC_URI = "http://sylpheed.sraoss.jp/sylpheed/v2.7/sylpheed-${PV}.tar.bz2 \
-    file://glib-2.32.patch \
-"
-SRC_URI[md5sum] = "1f470525c1fbe53253813a0978c18228"
-SRC_URI[sha256sum] = "8bb6457db4e2eea1877b487d9ac8513546372db9a6a2e4271d11229f4af84e23"
-
-FILES_${PN} += "${datadir}/pixmaps ${datadir}/applications"
-FILES_${PN}-doc += "${datadir}"
-
-EXTRA_OECONF = "--disable-ssl"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-do_configure_prepend() {
-    mkdir -p m4
-    for i in $(find ${S} -name "Makefile.am") ; do
-        sed -i s:'-I$(includedir)'::g $i
-    done
-}
-
-inherit autotools pkgconfig
-
-
-PNBLACKLIST[sylpheed] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130651/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
deleted file mode 100644
index c8c54a4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Apcupsd a daemon for controlling APC UPSes"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c12853cc7fdf20d17b4fddefd26b7802"
-
-SRC_URI = "http://garr.dl.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable/3.14.10/apcupsd-${PV}.tar.gz"
-SRC_URI[md5sum] = "5928822d855c5cf7ac29655e3e0b8c23"
-SRC_URI[sha256sum] = "0707b5ec9916fbde9e44eb8d18037c8d8f75dfd6aeef51aba5487e189eef2032"
-
-PNBLACKLIST[apcupsd] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-inherit autotools
-
-LD = "${CXX}"
-
-EXTRA_OECONF = "--without-x \
-                --enable-usb \
-                --with-distname=${DISTRO}"
-
-do_configure() {
-    export topdir=${S}
-    cp -R --no-dereference --preserve=mode,links -v ${S}/autoconf/configure.in ${S}
-
-    if ! [ -d ${S}/platforms/${DISTRO} ] ; then
-        cp -R --no-dereference --preserve=mode,links -v ${S}/platforms/unknown ${S}/platforms/${DISTRO}
-    fi
-
-    gnu-configize --force
-    # install --help says '-c' is an ignored option, but it turns out that the argument to -c isn't ignored, so drop the complete '-c path/to/strip' line
-    sed -i -e 's:$(INSTALL_PROGRAM) $(STRIP):$(INSTALL_PROGRAM):g' ${S}/autoconf/targets.mak
-    # Searching in host dirs triggers the QA checks
-    sed -i -e 's:-I/usr/local/include::g' -e 's:-L/usr/local/lib64::g' -e 's:-L/usr/local/lib::g' ${S}/configure
-
-    # m4 macros are missing, using autotools_do_configure leads to linking errors with gethostname_re
-    oe_runconf
-}
-
-do_install_append() {
-    rm ${D}${datadir}/hal -rf
-}
-
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch
new file mode 100644
index 0000000..8ef774f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch
@@ -0,0 +1,29 @@
+configure.ac: add check for NO_GETCONTEXT definition
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+[yann.morin.1998@free.fr: add a comment, change variable name, use
+ AS_IF, remove debug traces, use AC_CHECK_FUNCS (as suggested by
+ Thomas)]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+Upstream-Status: Pending
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- bdwgc-7.2f.orig/configure.ac	2014-06-01 19:00:47.000000000 +0200
++++ bdwgc-7.2f/configure.ac	2014-12-23 14:13:11.585716713 +0100
+@@ -365,6 +365,12 @@
+   AC_MSG_RESULT($ac_cv_fno_strict_aliasing)
+ fi
+ 
++# Check for getcontext (uClibc can be configured without it, for example)
++AC_CHECK_FUNCS([getcontext])
++AS_IF([test "$ac_cv_func_getcontext" = "no"],
++  [CFLAGS="$CFLAGS -DNO_GETCONTEXT"
++   CPPFLAGS="$CPPFLAGS -DNO_GETCONTEXT"])
++
+ case "$host" in
+ # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64
+ # and unnecessary everywhere.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
new file mode 100644
index 0000000..4a18496
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
@@ -0,0 +1,27 @@
+Add missing header to avoid:
+
+| 1472659610.016355: ../git/pthread_stop_world.c: In function 'GC_brief_async_signal_safe_sleep':
+| 1472659610.0540252: ../git/pthread_stop_world.c:397:22: error: storage size of 'tv' isn't known
+| 1472659610.0540252:        struct timeval tv;
+| 1472659610.0540252:                       ^~
+| 1472659610.054099: ../git/pthread_stop_world.c:397:22: warning: unused variable 'tv' [-Wunused-variable]
+| 1472659610.054099:        struct timeval tv;
+| 1472659610.054099:                       ^~
+| 1472659610.054099: Makefile:1530: recipe for target 'pthread_stop_world.lo' failed
+
+in musl builds.
+
+Upstream-Status: Pending
+
+Index: git/pthread_stop_world.c
+===================================================================
+--- git.orig/pthread_stop_world.c
++++ git/pthread_stop_world.c
+@@ -45,6 +45,7 @@
+ #include <semaphore.h>
+ #include <errno.h>
+ #include <unistd.h>
++#include <sys/time.h>
+ #include "atomic_ops.h"
+ 
+ /* It's safe to call original pthread_sigmask() here.   */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb
new file mode 100644
index 0000000..dcb68f0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb
@@ -0,0 +1,42 @@
+SUMMARY = "A garbage collector for C and C++"
+
+DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\
+ used as a garbage collecting replacement for C malloc or C++ new. It allows\
+ you to allocate memory basically as you normally would, without explicitly\
+ deallocating memory that is no longer useful. The collector automatically\
+ recycles memory when it determines that it can no longer be otherwise\
+ accessed.\
+  The collector is also used by a number of programming language\
+ implementations that either use C as intermediate code, want to facilitate\
+ easier interoperation with C libraries, or just prefer the simple collector\
+ interface.\
+  Alternatively, the garbage collector may be used as a leak detector for C\
+ or C++ programs, though that is not its primary goal.\
+  Empirically, this collector works with most unmodified C programs, simply\
+ by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\
+ calls, and removing free calls."
+
+HOMEPAGE = "http://www.hboehm.info/gc/"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.QUICK;md5=4f81f24ec69726c312487c2ac740e9e3"
+
+SRCREV = "8ac1d84a40eb7a431fec1b8097e3f24b48fb23fa"
+SRC_URI = "git://github.com/ivmai/bdwgc.git \
+           file://0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch \
+           file://musl_header_fix.patch \
+          "
+
+FILES_${PN}-doc = "${datadir}"
+
+S = "${WORKDIR}/git"
+
+ARM_INSTRUCTION_SET = "arm"
+
+inherit autotools pkgconfig
+
+# by default use external libatomic-ops
+PACKAGECONFIG ??= "libatomic-ops"
+PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomic-ops"
+
+BBCLASSEXTEND = "native nativesdk"
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.13.bb
new file mode 100644
index 0000000..e883c70
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems."
+AUTHOR = "Sameer Agarwal and Keir Mierle and Others"
+HOMEPAGE = "http://ceres-solver.org/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=35e00f0c4c96a0820a03e0b31e6416be"
+
+SRC_URI = "git://github.com/ceres-solver/ceres-solver.git"
+SRCREV = "19333b0f55c8462381038e70d42af43b52941128"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libeigen glog"
+
+inherit cmake
+
+# Only a static library and headers are created
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-dev += "${libdir}/cmake/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
index def58db..84e9bca 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
@@ -1,4 +1,5 @@
 SUMMARY = "DJB daemontools"
+HOMEPAGE = "http://cr.yp.to/daemontools.html"
 DESCRIPTION = "supervise monitors a service. It starts the service and restarts the \
 service if it dies. The companion svc program stops, pauses, or restarts \
 the service on sysadmin request. The svstat program prints a one-line \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
new file mode 100644
index 0000000..13f20eb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Miscellaneous utilities specific to Debian"
+SUMMARY_${PN}-cron = "Cron scripts to control automatic debsum checking"
+DESCRIPTION = "A tool for verification of installed package files against \
+MD5 checksums debsums can verify the integrity of installed package files \
+against MD5 checksums installed by the package, or generated from a .deb \
+archive."
+DESCRIPTION_${PN}-cron = "Cron scripts to control automatic system integrity \
+checking via debsums."
+SECTION = "base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=770d751553e6559e9eaefd2e11ccf7e9"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20170530T212108Z/pool/main/d/debsums/debsums_2.2.2.tar.xz"
+SRC_URI[md5sum] = "82b0710855a7e5212d4358163a269e79"
+SRC_URI[sha256sum] = "aa61896f93a6bbfe0161c21dcd67529ae8e1ec8c3ccf244523c52c4ad8253d97"
+
+# the package is taken from snapshots.debian.org; that source is static and goes stale
+# so we check the latest upstream from a directory that does get updated
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
+
+inherit perlnative gettext
+
+do_install() {
+        install -d ${D}/${sysconfdir}/cron.daily ${D}/${sysconfdir}/cron.weekly
+        install -d ${D}/${sysconfdir}/cron.monthly ${D}${sbindir} ${D}${bindir}
+        install -d ${D}${mandir}/man1 ${D}${mandir}/man8
+        install -m 0755 debsums ${D}${bindir}/
+        install -m 0755 rdebsums ${D}${bindir}/
+        install -m 0755 debsums_init ${D}${sbindir}
+        install -m 0644 man/debsums.1 ${D}${mandir}/man1/
+        install -m 0644 man/rdebsums.1 ${D}${mandir}/man1/
+        install -m 0644 man/debsums_init.8 ${D}${mandir}/man8/
+        install -m 0644 debian/cron.daily \
+                ${D}/${sysconfdir}/cron.daily/debsums
+        install -m 0644 debian/cron.weekly \
+                ${D}/${sysconfdir}/cron.weekly/debsums
+        install -m 0644 debian/cron.monthly \
+                ${D}/${sysconfdir}/cron.monthly/debsums
+        # Must exist, defaults to empty.
+        touch ${D}/${sysconfdir}/debsums-ignore
+}
+
+PACKAGES =+ "${PN}-cron"
+
+RDEPENDS_${PN} = "dpkg dpkg-perl libfile-fnmatch-perl perl \
+                  perl-module-constant perl-module-digest-md5 \
+                  perl-module-errno perl-module-fcntl \
+                  perl-module-file-basename perl-module-file-copy \
+                  perl-module-file-find perl-module-file-glob \
+                  perl-module-file-path perl-module-file-spec \
+                  perl-module-file-temp perl-module-getopt-long \
+                  perl-module-posix"
+
+FILES_${PN}-cron = "${sysconfdir}/cron.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
index 7a7a662..aeca23b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
@@ -8,9 +8,8 @@
 
 do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
 do_deploy() {
-    install -d ${DEPLOY_DIR_TOOLS}
-    install -m 0755 src/dfu-util_static ${DEPLOY_DIR_TOOLS}/dfu-util-${PV}
-    rm -f ${DEPLOY_DIR_TOOLS}/dfu-util
-    ln -sf ./dfu-util-${PV} ${DEPLOY_DIR_TOOLS}/dfu-util
+    install -m 0755 src/dfu-util_static ${DEPLOYDIR}/dfu-util-${PV}
+    rm -f ${DEPLOYDIR}/dfu-util
+    ln -sf ./dfu-util-${PV} ${DEPLOYDIR}/dfu-util
 }
 addtask deploy before do_package after do_install
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
index 01bca22..76e1552 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
@@ -1,4 +1,5 @@
 DESCRIPTION = "USB Device Firmware Upgrade utility"
+HOMEPAGE = "http://dfu-util.sourceforge.net"
 SECTION = "devel"
 AUTHOR = "Harald Welte <laforge@openmoko.org>"
 LICENSE = "GPLv2"
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.3.4.bb
new file mode 100644
index 0000000..abf7d1c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Convert text file line endings between CRLF and LF"
+DESCRIPTION = "The Dos2unix package includes utilities dos2unix and \
+unix2dos to convert plain text files in DOS or Mac format to Unix \
+format and vice versa."
+HOMEPAGE = "http://waterlan.home.xs4all.nl/dos2unix.html"
+SECTION = "support"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=1b78fca784db24f4a40e30b300787f3f"
+
+SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
+
+# Release 7.3.4
+SRCREV = "8381ba4e1c4cd5ce98ebd9c24726d51cb203cde0"
+
+S = "${WORKDIR}/git/dos2unix"
+
+inherit gettext perlnative
+
+# The dos2unix NLS relies on po4a-native, while po4a recipe is
+# provided by meta-perl layer, so make it optional here, you
+# need have meta-perl in bblayers.conf before enabling nls in
+# PACKAGECONFIG.
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[nls] = "ENABLE_NLS=1,ENABLE_NLS=,po4a-native"
+
+EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} LDFLAGS_USER='${LDFLAGS}'"
+EXTRA_OEMAKE_class-native = "ENABLE_NLS="
+
+do_install () {
+    oe_runmake DESTDIR="${D}${base_prefix}" install
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
deleted file mode 100644
index 4200301..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Fix linking problem:
-undefined reference to `__aeabi_unwind_cpp_pr0'
-undefined reference to `__aeabi_unwind_cpp_pr1'
-Index: emacs/src/Makefile.in
-===================================================================
---- emacs.orig/src/Makefile.in	2008-08-16 14:20:18.000000000 +0000
-+++ emacs/src/Makefile.in	2008-08-16 14:51:25.000000000 +0000
-@@ -443,7 +443,7 @@
-    ask GCC explicitly where to find libgcc.a.  */
- 
- #ifndef LINKER
--#define LINKER $(CC) -nostdlib
-+#define LINKER $(CC) -nostdlib -lgcc_s
- #endif
- 
- #ifndef LIB_GCC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
deleted file mode 100644
index c15207a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-diff -uNr emacs-23.4/Makefile.in emacs-23.4.new/Makefile.in
---- emacs-23.4/Makefile.in	2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/Makefile.in	2012-07-31 00:54:07.223590866 +0200
-@@ -336,7 +336,7 @@
- # all preloaded elisp files, and only then dump the actual src/emacs, which
- # is not wrong, but is overkill in 99.99% of the cases.
- src: Makefile FRC
--	boot=bootstrap-emacs$(EXEEXT);                         \
-+	boot=${QEMU} bootstrap-emacs$(EXEEXT);                         \
- 	if [ ! -x "src/$$boot" ]; then                                     \
- 	    cd $@; $(MAKE) all $(MFLAGS)                                   \
- 	      CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}'         \
-diff -uNr emacs-23.4/leim/Makefile.in emacs-23.4.new/leim/Makefile.in
---- emacs-23.4/leim/Makefile.in	2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/leim/Makefile.in	2012-07-31 00:54:07.179590866 +0200
-@@ -51,7 +51,7 @@
- 
- # How to run Emacs.
- RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
--	${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
-+	${QEMU} ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
- 
- # Subdirectories to be made if ${srcdir} is different from the current
- # directory.
-diff -uNr emacs-23.4/lib-src/Makefile.in emacs-23.4.new/lib-src/Makefile.in
---- emacs-23.4/lib-src/Makefile.in	2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/lib-src/Makefile.in	2012-07-31 00:54:07.180590866 +0200
-@@ -23,7 +23,7 @@
- SHELL = /bin/sh
- 
- # Following ../lisp/Makefile.in.
--EMACS = ../src/emacs
-+EMACS = ${QEMU} ../src/emacs
- EMACSOPT = -batch --no-site-file --multibyte
- 
- # ==================== Things `configure' will edit ====================
-@@ -372,7 +372,7 @@
-    clobbered too.  */
- test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
- 	$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
--	./test-distrib ${srcdir}/testfile
-+	${QEMU} ./test-distrib ${srcdir}/testfile
- 
- /* We need the following in order to create a <getopt.h> when the system
-    does not have one that works with the given compiler.  */
-diff -uNr emacs-23.4/lisp/Makefile.in emacs-23.4.new/lisp/Makefile.in
---- emacs-23.4/lisp/Makefile.in	2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/lisp/Makefile.in	2012-07-31 00:54:07.195590866 +0200
-@@ -26,8 +26,7 @@
- # You can specify a different executable on the make command line,
- # e.g. "make EMACS=../src/emacs ...".
- 
--EMACS = ../src/emacs
--
-+EMACS = "${QEMU} ../src/emacs"
- # Command line flags for Emacs.  This must include --multibyte,
- # otherwise some files will not compile.
- 
-diff -uNr emacs-23.4/src/Makefile.in emacs-23.4.new/src/Makefile.in
---- emacs-23.4/src/Makefile.in	2012-01-12 11:27:54.000000000 +0100
-+++ emacs-23.4.new/src/Makefile.in	2012-07-31 00:55:30.344593847 +0200
-@@ -482,7 +482,7 @@
-    this with the shell''s ``for'' construct.
-    Note that some people do not have '.'  in their paths, so we must
-    use ./prefix-args.  */
--#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
-+#define YMF_PASS_LDFLAGS(flags) `${QEMU} ./prefix-args -Xlinker flags`
- #else
- #define YMF_PASS_LDFLAGS(flags) flags
- #endif
-@@ -919,9 +919,9 @@
-    $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
- 
- #ifdef HAVE_SHM
--RUN_TEMACS = `/bin/pwd`/temacs -nl
-+RUN_TEMACS = ${QEMU} temacs -nl
- #else
--RUN_TEMACS = `/bin/pwd`/temacs
-+RUN_TEMACS = ${QEMU} temacs
- #endif
- 
- all: emacs${EXEEXT} $(OTHER_FILES)
-@@ -936,7 +936,7 @@
- 	@: This new Emacs is as functional and more efficient then
- 	@: bootstrap-emacs, so let us replace it.
- 	-ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
--	-./emacs -q -batch -f list-load-path-shadows
-+	-${QEMU} ./emacs -q -batch -f list-load-path-shadows
- #endif /* ! defined (CANNOT_DUMP) */
- 
- /* We run make-docfile twice because the command line may get too long
-@@ -954,8 +954,8 @@
-    only in order to reduce the command line length.  --Stef  */
- ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
- 	-rm -f ${etc}DOC
--	${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
--	${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
-+	${QEMU}${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
-+	${QEMU} ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
- 
- ${libsrc}make-docfile${EXEEXT}:
- 	cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc
deleted file mode 100644
index 5b905f9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc
+++ /dev/null
@@ -1,147 +0,0 @@
-DESCRIPTION = "Emacs"
-HOMEPAGE = "http://www.gnu.org/software/emacs/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SECTION = "editor"
-# and it needs to run some generated binaries..
-DEPENDS += "qemu-native"
-
-DEPENDS +=" liblockfile"
-
-X11DEPENDS = " \
-    libice libsm atk cairo dbus expat libffi fontconfig freetype gconf giflib \
-    jpeg xz pixman libpng librsvg tiff libcroco \
-    libx11 libxau libxcomposite libxcursor libxdamage libxdmcp libxext libxfixes \
-    libxft libxpm libxrandr libxrender \
-    gdk-pixbuf glib-2.0 gtk+ pango libxcb harfbuzz icu \
-"
-
-EXTRA_OECONF =  "--without-sound --with-crt-dir=${STAGING_LIBDIR} "
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "--with-x-toolkit=gtk,--without-x --without-dbus,${X11DEPENDS}"
-
-
-inherit autotools
-
-PACKAGES =+ "${PN}-el"
-
-FILES_${PN}-el = "${datadir}/emacs/*/*/*.el.gz \
-                  ${datadir}/emacs/*/*/*/*.el.gz"
-
-FILES_${PN} += "${datadir}/emacs ${datadir}/icons"
-
-FILES_${PN}-dbg += "${libexecdir}/emacs/*/*/.debug ${datadir}/emacs/*/*/.debug"
-
-TREEDIR = "${WORKDIR}/qemu-treedir"
-
-QEMUARCH= "${TARGET_ARCH}"
-QEMUARCH_x86 = "i386"
-
-# Large stack is required at least on x86_64 host, otherwise random segfaults appear:
-QEMU = "qemu-${QEMUARCH} ${QEMU_OPTIONS} -s 1048576 -L ${TREEDIR} "
-
-export LOGNAME = "$(whoami)"
-
-do_compile_prepend() {
-    sed -i ':1;s:\(START.* \|LIB_STANDARD.* \|LIBES.* \)/usr/lib:\1${STAGING_LIBDIR}:;t1' ${S}/src/s/gnu-linux.h `find "${S}" -name Makefile`
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TOOLCHAIN_PATH}/${TARGET_SYS}/lib"
-# Ugly hack, see files/use-qemu.patch for more:
-    ln -sf ../src/emacs lisp/emacs
-    ln -sf ../src/emacs lib-src/emacs
-    ln -sf ../src/emacs leim/emacs
-#copy STAGING_DIR_TARGET and libgcc_s.so* to WORKDIR/qemu-treedir #copied code from glibc-package.bbclass
-    treedir=${TREEDIR}
-    if [ -e $treedir ];then
-        rm -rf $treedir
-    fi
-
-    mkdir -p $treedir/${base_libdir}
-
-    if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so ]; then
-        cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so $treedir/${base_libdir}
-    fi
-    if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* ]; then
-        cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* $treedir/${base_libdir}
-    fi
-    # stupid hack, but without it, it tries to use /usr/lib/libc.so from host and fails
-    # temacs: error while loading shared libraries: /usr/lib/libc.so: ELF file version does not match current one
-    if [ ! -f $treedir/${base_libdir}/libc.so ]; then
-        ln -s libc.so.6 $treedir/${base_libdir}/libc.so
-    fi
-
-    # copy only as much stuff as we need
-    # before: 5.5G   ../../qemu-treedir/
-    # after:   17M   ../../qemu-treedir/
-    cp -pPR \
-    ${STAGING_DIR_TARGET}/${base_libdir}/ld-* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libc.* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libc-* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libm-* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libm.* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libtinfo.so.* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libresolv* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libdl* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/librt* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libgcc_s.so.* \
-    ${STAGING_DIR_TARGET}/${base_libdir}/libpthread* $treedir/${base_libdir}/
-
-    if [ ! -z "${@bb.utils.filter('PACKAGECONFIG', 'x11', d)}" ]; then
-        echo "X11 build enabled"
-        # copy only as much stuff as we need
-        # before: 5.5G   ../../qemu-treedir/
-        # after:   86M   ../../qemu-treedir/
-        cp -pPR \
-        ${STAGING_DIR_TARGET}/${base_libdir}/libuuid.so.* \
-        ${STAGING_DIR_TARGET}/${base_libdir}/libz.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libICE.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libSM.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libatk-1.0.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libcairo.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libdbus-1.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libdbus-glib-1.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libexpat.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libffi.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libfontconfig.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libfreetype.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libgconf-2.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libgif.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libjpeg.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/liblzma.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libpixman-1.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libpng1*.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/librsvg-2.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libstdc++.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libtiff.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libxml2.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libcroco-0.6.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libharfbuzz.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libicule.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libicuuc.so.* \
-        ${STAGING_DIR_TARGET}/${libdir}/libicudata.so.* $treedir/${base_libdir}/
-
-        # X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext Xfixes Xft Xpm Xrandr Xrender
-        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libX*.so.* $treedir/${base_libdir}/
-
-        # gdk-x11 gdk_pixbuf gio glib gmodule gobject gthread gtk-x11
-        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libg*-2.0.so.* $treedir/${base_libdir}/
-
-        # pango pangocairo pangoft2
-        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libpango*-1.0.so.* $treedir/${base_libdir}/
-
-        # xcb-render xcb-shm xcb
-        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libxcb*.so.* $treedir/${base_libdir}/
-    fi
-}
-
-do_install_append() {
-    # freaks package.bbclass and whole bitbake call returns error code
-    # ERROR: runstrip: ''arm-oe-linux-gnueabi-strip'  '/var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed
-    mv ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.ko ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.KO
-    # Info dir listing isn't interesting at this point so remove it if it exists.
-    if [ -e "${D}${infodir}/dir" ]; then
-        rm -f ${D}${infodir}/dir
-    fi
-}
-
-EXTRA_OEMAKE += 'QEMU="${QEMU}"'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb
deleted file mode 100644
index 3388ff0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require emacs.inc
-
-PR = "r4"
-
-PNBLACKLIST[emacs] ?= "qemu: uncaught target signal 11 (Segmentation fault) - core dumped - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz;name=tarball \
-           file://use-qemu.patch \
-           file://nostdlib-unwind.patch \
-"
-SRC_URI[tarball.md5sum] = "34405165fcd978fbc8b304cbd99ccf4f"
-SRC_URI[tarball.sha256sum] = "b9a2b8434052771f797d2032772eba862ff9aa143029efc72295170607289c18"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
similarity index 81%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
index 914bf36..79b2cc1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
@@ -22,6 +22,3 @@
     install -d ${D}${layout_datadir}/espeak-data
     install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data
 }
-
-SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02"
-SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
index 5d0b403..60b3f73 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
@@ -3,8 +3,11 @@
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/espeak/espeak-${PV}-source.zip \
-           file://fix-gcc6-errors.patch"
+SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
+           file://gcc-narrowing-warning-fix.patch \
+"
+SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
+SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
 
 S = "${WORKDIR}/espeak-${PV}-source"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
similarity index 89%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
index 273fe34..552f404 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -4,9 +4,6 @@
 EXTRA_PHONEMES = '${@bb.utils.contains("SITEINFO_ENDIANNESS", "be",  "espeak-data (= ${PV})", "", d)}'
 RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}"
 
-SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02"
-SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3"
-
 CXXFLAGS += "-DUSE_PORTAUDIO"
 TARGET_CC_ARCH += "${LDFLAGS}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/fix-gcc6-errors.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/fix-gcc6-errors.patch
deleted file mode 100644
index 9cf23cf..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/fix-gcc6-errors.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Fix gcc6 errors with narrowing
-
-| tr_languages.cpp:462:73: error: narrowing conversion of '171' from 'int' to 'char' inside { } [-Wnarrowing]
-|     static const char ko_voiced[] = {0x02,0x05,0x06,0xab,0xaf,0xb7,0xbc,0};  // voiced consonants, l,m,n,N
-
-Upstream-Status: Backport
-
-Signed-off-by: Derek Straka <derek@asterius.io>
---- a/src/tr_languages.cpp
-+++ b/src/tr_languages.cpp
-@@ -459,7 +459,7 @@
- 	case L('k','o'):   // Korean, TEST
- 		{
- 			static const char ko_ivowels[] = {0x63,0x64,0x67,0x68,0x6d,0x72,0x74,0x75,0};  // y and i vowels
--			static const char ko_voiced[] = {0x02,0x05,0x06,0xab,0xaf,0xb7,0xbc,0};  // voiced consonants, l,m,n,N
-+			static const char ko_voiced[] = {0x02,0x05,0x06,(char)0xab,(char)0xaf,(char)0xb7,(char)0xbc,0};  // voiced consonants, l,m,n,N
- 			tr = new Translator();
- 
- 			tr->letter_bits_offset = OFFSET_KOREAN;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
new file mode 100644
index 0000000..2a9b460
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
@@ -0,0 +1,56 @@
+From f09c83640b9173552fd9277c3a48619b903fa436 Mon Sep 17 00:00:00 2001
+From: "Reece H. Dunn" <msclrhd@gmail.com>
+Date: Wed, 20 Jan 2016 20:48:29 +0000
+Subject: [PATCH] Fix GCC -Wnarrowing warnings.
+
+---
+ src/tr_languages.cpp | 7 ++++---
+ src/translate.h    | 2 +-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+Index: espeak-1.48.04-source/src/tr_languages.cpp
+===================================================================
+--- espeak-1.48.04-source.orig/src/tr_languages.cpp
++++ espeak-1.48.04-source/src/tr_languages.cpp
+@@ -198,8 +198,8 @@ static const unsigned short chars_ignore
+ 	0x200d,  1, // zero width joiner
+ 	0, 0 };
+ 
+-const char string_ordinal[] = {0xc2,0xba,0};  // masculine ordinal character, UTF-8
+-
++const unsigned char string_ordinal[] = {0xc2,0xba,0};  // masculine ordinal character, UTF-8
++const unsigned char utf8_null[] = { 0 }; // null string, UTF-8
+ 
+ static Translator* NewTranslator(void)
+ {//===================================
+@@ -296,7 +296,7 @@ static const char transpose_map_latin[]
+ 	tr->langopts.replace_chars = NULL;
+ 	tr->langopts.ascii_language[0] = 0;    // Non-Latin alphabet languages, use this language to speak Latin words, default is English
+ 	tr->langopts.alt_alphabet_lang = L('e','n');
+-	tr->langopts.roman_suffix = "";
++	tr->langopts.roman_suffix = utf8_null;
+ 
+ 	SetLengthMods(tr,201);
+ //	tr->langopts.length_mods = length_mods_en;
+@@ -758,7 +758,7 @@ Translator *SelectTranslator(const char
+ 				tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
+ 				tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_ORDINAL;
+ 				tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND;
+-				tr->langopts.roman_suffix = string_ordinal;
++				tr->langopts.roman_suffix = utf8_null;
+ 			}
+ 			else
+ 			if(name2 == L_pap)
+Index: espeak-1.48.04-source/src/translate.h
+===================================================================
+--- espeak-1.48.04-source.orig/src/translate.h
++++ espeak-1.48.04-source/src/translate.h
+@@ -545,7 +545,7 @@ typedef struct {
+ 	int decimal_sep;
+ 	int max_digits;    // max number of digits which can be spoken as an integer number (rather than individual digits)
+ 	const char *ordinal_indicator;   // UTF-8 string
+-	const char *roman_suffix;    // add this (ordinal) suffix to Roman numbers (LANG=an)
++	const unsigned char *roman_suffix;    // add this (ordinal) suffix to Roman numbers (LANG=an)
+ 
+ 	// bit 0, accent name before the letter name, bit 1 "capital" after letter name
+ 	int accents;
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 349507d..59b01b6 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
@@ -1,4 +1,5 @@
 SUMMARY = "Replacement syslog API"
+HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
 DESCRIPTION = "The EventLog library aims to be a replacement of the \
               simple syslog() API provided on UNIX systems. The \
               major difference between EventLog and syslog is that \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
deleted file mode 100644
index 14ce57a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "FarSight is an audio/video conferencing framework specifically designed for Instant Messengers."
-HOMEPAGE = "http://farsight.sf.net"
-SRC_URI = "http://farsight.freedesktop.org/releases/farsight2/${BP}.tar.gz"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-PR = "r3"
-
-DEPENDS = "libnice glib-2.0 libxml2 zlib dbus gstreamer gst-plugins-base"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
-
-EXTRA_OECONF = " \
-    --disable-debug \
-    --disable-gtk-doc \
-    --disable-python \
-"
-
-FILES_${PN} += "${libdir}/*/*.so"
-FILES_${PN}-dev += "${libdir}/*/*.la"
-FILES_${PN}-staticdev += "${libdir}/*/*.a"
-FILES_${PN}-dbg += "${libdir}/*/.debug"
-
-
-SRC_URI[md5sum] = "e1f540cf3ebab06c3d7db1f46b44ac88"
-SRC_URI[sha256sum] = "3ae59aa61a8071c9fad111e5fd606aabc27961eb4192f8729987a27dae6b3974"
-
-PNBLACKLIST[farsight2] ?= "Depends on blacklisted gstreamer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-PNBLACKLIST[farsight2] ?= "Depends on blacklisted libnice - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-PNBLACKLIST[farsight2] ?= "Depends on blacklisted gst-plugins-base - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
index 88f7a4f..5f6f990 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -1,4 +1,5 @@
 SUMMARY = "Default display timings and resolutions for fbset"
+HOMEPAGE = "http://users.telenet.be/geertu/Linux/fbdev/"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
index cbbe6ca..fbf834d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
@@ -6,6 +6,7 @@
 # Date: 28-May-06
 
 SUMMARY = "The fbset console tool"
+HOMEPAGE = "http://users.telenet.be/geertu/Linux/fbdev/"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://fbset.c;endline=19;md5=bf326f82cdfcac391af208f019c5603f"
 RRECOMMENDS_${PN} = "fbset-modes"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb
deleted file mode 100644
index 49cc270..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "FFTW benchmarks"
-SECTION = "libs"
-LICENSE = "GPLv2"
-
-# single precision fftw is called fftwf
-DEPENDS = "virtual/fftw"
-
-SRC_URI = "http://www.fftw.org/benchfft/benchfft-${PV}.tar.gz"
-
-EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared"
-
-inherit autotools pkgconfig
-
-do_compile_prepend() {
-    sed -i -e 's:all-recursive:$(RECURSIVE_TARGETS):g' ${S}/Makefile
-}
-
-SRC_URI[md5sum] = "9356e5e9dcb3f1481977009720a2ccf8"
-SRC_URI[sha256sum] = "1b4a5b5e48ad5e61a21586b7b59d5c0a88691a981e73e2c6dc5868197461791b"
-
-PNBLACKLIST[benchfft] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
deleted file mode 100644
index e1e7aed..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- flite-1.3-release/configure.in.old	2008-01-06 02:17:47.000000000 -0600
-+++ flite-1.3-release/configure.in	2008-01-06 02:19:56.000000000 -0600
-@@ -220,7 +220,8 @@ dnl allow the user to override the one d
- dnl
- AC_ARG_WITH( audio,
- 	[  --with-audio          with specific audio support (none linux freebsd etc) ],
--        AUDIODRIVER=$with_audio )
-+        [AUDIODRIVER=$with_audio
-+         AUDIODEFS=])
- 
- if test "x$AUDIODEFS" = x; then
-     case "$AUDIODRIVER" in
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
deleted file mode 100644
index 0883c1a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require flite.inc
-
-PR = "r1"
-
-EXTRA_OECONF = "--with-audio=alsa --enable-shared"
-
-SRC_URI = "http://www.speech.cs.cmu.edu/flite/packed/flite-${PV}/flite-${PV}-release.tar.gz \
-           file://flite-1.3-alsa_support-1.2.diff \
-           file://flite-alsa-1.3-configure-with-audio.patch"
-
-SRC_URI[md5sum] = "ae0aca1cb7b4801f4372f3a75a9e52b5"
-SRC_URI[sha256sum] = "922225f7001e57a0fbace8833b0a48790a68f6c7b491f2d47c78ad537ab78a8b"
-
-# Looks like caused by flite-1.3-alsa_support-1.2.diff
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/armv5te-oe-linux-gnueabi/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/armv5te-oe-linux-gnueabi/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/core2-64-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/core2-64-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/i586-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/i586-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
-PNBLACKLIST[flite-alsa] ?= "OLD: wasn't updated in over 6 years, only navit was RSUGGESTing it and doesn't respect LDFLAGS - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc
deleted file mode 100644
index 0ef82c0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "flite - the festival light speech synthesizer"
-HOMEPAGE = "http://www.speech.cs.cmu.edu/flite/"
-SECTION = "console/utils"
-LICENSE = "flite"
-LIC_FILES_CHKSUM = "file://COPYING;md5=68a16b1ee49c96c36f232ccdcd287650"
-DEPENDS = "alsa-oss"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/flite-${PV}-release"
-
-CFLAGS += " -lasound "
-
-inherit autotools-brokensep
-
-PACKAGES += "lib${PN} lib${PN}-vox8 lib${PN}-vox16"
-
-FILES_${PN} = "${bindir}"
-
-FILES_lib${PN} ="${libdir}/libflite.so.* \
-    ${libdir}/libflite_cmu_time_awb.so.* \
-    ${libdir}/libflite_cmulex.so.* \
-    ${libdir}/libflite_usenglish.so.*"
-
-FILES_lib${PN}-vox8 = "${libdir}/libflite_cmu_us_kal.so.*"
-
-FILES_lib${PN}-vox16 = "${libdir}/libflite_cmu_us_kal16.so.*"
-
-LEAD_SONAME = "libflite.so"
-
-do_install() {
-    oe_runmake INSTALLBINDIR="${D}${bindir}" INSTALLLIBDIR="${D}${libdir}" INSTALLINCDIR="${D}${includedir}" install
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
index 353987e..2636287 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
@@ -14,3 +14,8 @@
     -DOPTION_USE_XFIXES=OFF \
     -DOPTION_USE_XCURSOR=OFF \
 "
+
+do_install_append() {
+    # make sure native fltk-config is not used accidentaly
+    rm -f ${D}${bindir}/fltk-config
+}
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 542fd66..619d142 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
@@ -1,6 +1,6 @@
 require ${BPN}.inc
 
-DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft  ${BPN}-native"
+DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
 
 inherit binconfig lib_package gtk-icon-cache mime
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/files/fix-gcc-unused-functions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/files/fix-gcc-unused-functions.patch
deleted file mode 100644
index 02cb5ad..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/files/fix-gcc-unused-functions.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-gdft.c: remove functions that cause warnings about being unused
-
-Upstream-Status: Backport (Fixed in master branch)
-
-Signed-off-by: Derek Straka <derek@asterius.io>
---- git/src/gdft.c.orig	2016-08-12 10:20:41.418440091 -0400
-+++ git/src/gdft.c	2016-08-12 10:22:34.226442987 -0400
-@@ -139,16 +139,6 @@
- }
- #else
- 
--#ifndef HAVE_LIBFONTCONFIG
--static char * font_pattern(char **fontpath, char *fontpattern)
--{
--	(void)fontpath;
--	(void)fontpattern;
--
--	return "libgd was not built with FontConfig support\n";
--}
--#endif /* HAVE_LIBFONTCONFIG */
--
- #include "gdcache.h"
- /* 2.0.16 Christophe Thomas: starting with FreeType 2.1.6, this is
-   mandatory, and it has been supported for a long while. */
-@@ -446,16 +436,15 @@
- 	return (strcmp (a->fontlist, b->fontlist) == 0 && a->flags == b->flags);
- }
- 
-+#ifdef HAVE_LIBFONTCONFIG
- static int useFontConfig(int flag)
- {
--#ifdef HAVE_LIBFONTCONFIG
- 	if (fontConfigFlag) {
- 		return (!(flag & gdFTEX_FONTPATHNAME));
- 	}
--#endif
- 	return flag & gdFTEX_FONTCONFIG;
- }
--
-+#endif
- static void *
- fontFetch (char **error, void *key)
- {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/.gitignore-the-new-test-case.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/.gitignore-the-new-test-case.patch
deleted file mode 100644
index eab4975..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/.gitignore-the-new-test-case.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 8520274759cb8f95e483b02a445aff225e13467b Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 16:00:27 +0200
-Subject: [PATCH] .gitignore the new test case
-
-Upstream-Status: Backport
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- tests/tga/.gitignore | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/tga/.gitignore b/tests/tga/.gitignore
-index e88e124..7a659b1 100644
---- a/tests/tga/.gitignore
-+++ b/tests/tga/.gitignore
-@@ -4,3 +4,4 @@
- /bug00248
- /bug00248a
- /tga_null
-+/tga_read
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10166.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10166.patch
deleted file mode 100644
index 7ccfbea..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10166.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From c92240c1670c20c2f854761d3a89ab61dd158c91 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Sat, 6 Aug 2016 10:08:53 +0200
-Subject: [PATCH] Fix potential unsigned underflow
-
-No need to decrease `u`, so we don't do it. While we're at it, we also factor
-out the overflow check of the loop, what improves performance and readability.
-
-This issue has been reported by Stefan Esser to security@libgd.org.
-
-Upstream-Status: Backport
-CVE: CVE-2016-10166
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_interpolation.c | 19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/src/gd_interpolation.c b/src/gd_interpolation.c
-index 7e7943d..9944349 100644
---- a/src/gd_interpolation.c
-+++ b/src/gd_interpolation.c
-@@ -829,8 +829,13 @@ static inline LineContribType * _gdContributionsAlloc(unsigned int line_length,
- {
- 	unsigned int u = 0;
- 	LineContribType *res;
--	int overflow_error = 0;
-+	size_t weights_size;
- 
-+	if (overflow2(windows_size, sizeof(double))) {
-+		return NULL;
-+	} else {
-+		weights_size = windows_size * sizeof(double);
-+	}
- 	res = (LineContribType *) gdMalloc(sizeof(LineContribType));
- 	if (!res) {
- 		return NULL;
-@@ -847,15 +852,11 @@ static inline LineContribType * _gdContributionsAlloc(unsigned int line_length,
- 		return NULL;
- 	}
- 	for (u = 0 ; u < line_length ; u++) {
--		if (overflow2(windows_size, sizeof(double))) {
--			overflow_error = 1;
--		} else {
--			res->ContribRow[u].Weights = (double *) gdMalloc(windows_size * sizeof(double));
--		}
--		if (overflow_error == 1 || res->ContribRow[u].Weights == NULL) {
-+		res->ContribRow[u].Weights = (double *) gdMalloc(weights_size);
-+		if (res->ContribRow[u].Weights == NULL) {
- 			unsigned int i;
--			u--;
--			for (i=0;i<=u;i++) {
-+
-+			for (i=0;i<u;i++) {
- 				gdFree(res->ContribRow[i].Weights);
- 			}
- 			gdFree(res->ContribRow);
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10167.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10167.patch
deleted file mode 100644
index 54ef22c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10167.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 6ab531ef0d82efb9e00236ee5ea23928335d221f Mon Sep 17 00:00:00 2001
-From: Catalin Enache <catalin.enache@windriver.com>
-Date: Fri, 7 Apr 2017 12:30:22 +0300
-Subject: [PATCH] Fix DOS vulnerability in gdImageCreateFromGd2Ctx()
-
-We must not pretend that there are image data if there are none. Instead
-we fail reading the image file gracefully.
-
-Upstream-Status: Backport
-CVE: CVE-2016-10167
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_gd2.c | 14 ++++++--------
- 1 file changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/src/gd_gd2.c b/src/gd_gd2.c
-index 8df93c1..bae65ea 100644
---- a/src/gd_gd2.c
-+++ b/src/gd_gd2.c
-@@ -445,18 +445,16 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2Ctx (gdIOCtxPtr in)
- 
- 						if (im->trueColor) {
- 							if (!gdGetInt (&im->tpixels[y][x], in)) {
--								/*printf("EOF while reading\n"); */
--								/*gdImageDestroy(im); */
--								/*return 0; */
--								im->tpixels[y][x] = 0;
-+								gd_error("gd2: EOF while reading\n");
-+								gdImageDestroy(im);
-+								return NULL;
- 							}
- 						} else {
- 							int ch;
- 							if (!gdGetByte (&ch, in)) {
--								/*printf("EOF while reading\n"); */
--								/*gdImageDestroy(im); */
--								/*return 0; */
--								ch = 0;
-+								gd_error("gd2: EOF while reading\n");
-+								gdImageDestroy(im);
-+								return NULL;
- 							}
- 							im->pixels[y][x] = ch;
- 						}
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10168.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10168.patch
deleted file mode 100644
index aef1060..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10168.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 2d37bdc03a6e2b820fe380016f22592a7733e0be Mon Sep 17 00:00:00 2001
-From: Catalin Enache <catalin.enache@windriver.com>
-Date: Fri, 7 Apr 2017 12:32:49 +0300
-Subject: [PATCH] Fix #354: Signed Integer Overflow gd_io.c
-
-GD2 stores the number of horizontal and vertical chunks as words (i.e. 2
-byte unsigned). These values are multiplied and assigned to an int when
-reading the image, what can cause integer overflows. We have to avoid
-that, and also make sure that either chunk count is actually greater
-than zero. If illegal chunk counts are detected, we bail out from
-reading the image.
-
-Upstream-Status: Backport
-CVE: CVE-2016-10168
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_gd2.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/gd_gd2.c b/src/gd_gd2.c
-index bae65ea..9006bd2 100644
---- a/src/gd_gd2.c
-+++ b/src/gd_gd2.c
-@@ -151,6 +151,10 @@ _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy,
- 	GD2_DBG (printf ("%d Chunks vertically\n", *ncy));
- 
- 	if (gd2_compressed (*fmt)) {
-+		if (*ncx <= 0 || *ncy <= 0 || *ncx > INT_MAX / *ncy) {
-+			GD2_DBG(printf ("Illegal chunk counts: %d * %d\n", *ncx, *ncy));
-+			goto fail1;
-+		}
- 		nc = (*ncx) * (*ncy);
- 
- 		GD2_DBG (printf ("Reading %d chunk index entries\n", nc));
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-1.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-1.patch
deleted file mode 100644
index 97b7f72..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-1.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From fb0e0cce0b9f25389ab56604c3547351617e1415 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 16:26:19 +0200
-Subject: [PATCH] Fix OOB reads of the TGA decompression buffer
-
-It is possible to craft TGA files which will overflow the decompression
-buffer, but not the image's bitmap. Therefore we augment the check for the
-bitmap's overflow with a check for the buffer's overflow.
-
-This issue had been reported by Ibrahim El-Sayed to security@libgd.org.
-
-CVE-2016-6906
-
-Upstream-Status: Backport
-CVE: CVE-2016-6906
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_tga.c                |   6 ++++--
- tests/tga/.gitignore        |   1 +
- tests/tga/CMakeLists.txt    |   1 +
- tests/tga/Makemodule.am     |   2 ++
- tests/tga/heap_overflow.c   |  51 ++++++++++++++++++++++++++++++++++++++++++++
- tests/tga/heap_overflow.tga | Bin 0 -> 605 bytes
- 6 files changed, 59 insertions(+), 2 deletions(-)
- create mode 100644 tests/tga/heap_overflow.c
- create mode 100644 tests/tga/heap_overflow.tga
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index 8737b04..68e4b17 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -300,7 +300,8 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 				encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & ~TGA_RLE_FLAG ) + 1 );
- 				buffer_caret++;
- 
--				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
-+				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size
-+						|| buffer_caret + pixel_block_size > rle_size) {
- 					gdFree( decompression_buffer );
- 					gdFree( conversion_buffer );
- 					return -1;
-@@ -316,7 +317,8 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 				encoded_pixels = decompression_buffer[ buffer_caret ] + 1;
- 				buffer_caret++;
- 
--				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
-+				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size
-+						|| buffer_caret + (encoded_pixels * pixel_block_size) > rle_size) {
- 					gdFree( decompression_buffer );
- 					gdFree( conversion_buffer );
- 					return -1;
-diff --git a/tests/tga/.gitignore b/tests/tga/.gitignore
-index 7a659b1..cf0556b 100644
---- a/tests/tga/.gitignore
-+++ b/tests/tga/.gitignore
-@@ -3,5 +3,6 @@
- /bug00247a
- /bug00248
- /bug00248a
-+/heap_overflow
- /tga_null
- /tga_read
-diff --git a/tests/tga/CMakeLists.txt b/tests/tga/CMakeLists.txt
-index 789fb14..11542a0 100644
---- a/tests/tga/CMakeLists.txt
-+++ b/tests/tga/CMakeLists.txt
-@@ -5,6 +5,7 @@ LIST(APPEND TESTS_FILES
- 	bug00247a
- 	bug00248
- 	bug00248a
-+	heap_overflow
- 	tga_read
- )
- 
-diff --git a/tests/tga/Makemodule.am b/tests/tga/Makemodule.am
-index a1e6af6..916d707 100644
---- a/tests/tga/Makemodule.am
-+++ b/tests/tga/Makemodule.am
-@@ -4,6 +4,7 @@ libgd_test_programs += \
- 	tga/bug00247a \
- 	tga/bug00248 \
- 	tga/bug00248a \
-+	tga/heap_overflow \
- 	tga/tga_null \
- 	tga/tga_read
- 
-@@ -14,6 +15,7 @@ EXTRA_DIST += \
- 	tga/bug00247a.tga \
- 	tga/bug00248.tga \
- 	tga/bug00248a.tga \
-+	tga/heap_overflow.tga \
- 	tga/tga_read_rgb.png \
- 	tga/tga_read_rgb.tga \
- 	tga/tga_read_rgb_rle.tga
-diff --git a/tests/tga/heap_overflow.c b/tests/tga/heap_overflow.c
-new file mode 100644
-index 0000000..0e9a2d0
---- /dev/null
-+++ b/tests/tga/heap_overflow.c
-@@ -0,0 +1,51 @@
-+/**
-+ * Test that the crafted TGA file doesn't trigger OOB reads.
-+ */
-+
-+
-+#include "gd.h"
-+#include "gdtest.h"
-+
-+
-+static size_t read_test_file(char **buffer, char *basename);
-+
-+
-+int main()
-+{
-+    gdImagePtr im;
-+    char *buffer;
-+    size_t size;
-+
-+    size = read_test_file(&buffer, "heap_overflow.tga");
-+    im = gdImageCreateFromTgaPtr(size, (void *) buffer);
-+    gdTestAssert(im == NULL);
-+    free(buffer);
-+
-+    return gdNumFailures();
-+}
-+
-+
-+static size_t read_test_file(char **buffer, char *basename)
-+{
-+    char *filename;
-+    FILE *fp;
-+    size_t exp_size, act_size;
-+
-+    filename = gdTestFilePath2("tga", basename);
-+    fp = fopen(filename, "rb");
-+    gdTestAssert(fp != NULL);
-+
-+	fseek(fp, 0, SEEK_END);
-+	exp_size = ftell(fp);
-+	fseek(fp, 0, SEEK_SET);
-+
-+    *buffer = malloc(exp_size);
-+    gdTestAssert(*buffer != NULL);
-+    act_size = fread(*buffer, sizeof(**buffer), exp_size, fp);
-+    gdTestAssert(act_size == exp_size);
-+
-+    fclose(fp);
-+    free(filename);
-+
-+    return act_size;
-+}
-diff --git a/tests/tga/heap_overflow.tga b/tests/tga/heap_overflow.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..e9bc0ecb2a847ac6edba92dd0ff61167b49002cd
-GIT binary patch
-literal 605
-zcmZQz;9`IQ9tIu;g&7<$F3o7Yg1qzyh6tefy9wZAs2d<Uh*yuz=?XwW4Qvuv#g2nS
-zp93+mT0rVR>T&8(2TGy=f_l)@gSap~$FayUFu(!|SyJIFga^{8fGj~vwq8kkVgvv>
-Cavop+
-
-literal 0
-HcmV?d00001
-
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-2.patch
deleted file mode 100644
index 8b6de97..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-2.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 58b6dde319c301b0eae27d12e2a659e067d80558 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 16:26:19 +0200
-Subject: [PATCH] Fix OOB reads of the TGA decompression buffer
-
-It is possible to craft TGA files which will overflow the decompression
-buffer, but not the image's bitmap. Therefore we also have to check for
-potential decompression buffer overflows.
-
-This issue had been reported by Ibrahim El-Sayed to security@libgd.org;
-a modified case exposing an off-by-one error of the first patch had been
-provided by Konrad Beckmann.
-
-This commit is an amendment to commit fb0e0cce, so we use CVE-2016-6906
-as well.
-
-Upstream-Status: Backport
-CVE: CVE-2016-6906
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_tga.c                  |   8 +++++++-
- tests/tga/Makemodule.am       |   3 ++-
- tests/tga/heap_overflow.c     |  16 ++++++++++++----
- tests/tga/heap_overflow_1.tga | Bin 0 -> 605 bytes
- tests/tga/heap_overflow_2.tga | Bin 0 -> 8746 bytes
- 5 files changed, 21 insertions(+), 6 deletions(-)
- create mode 100644 tests/tga/heap_overflow_1.tga
- create mode 100644 tests/tga/heap_overflow_2.tga
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index 68e4b17..f80f0b1 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -295,7 +295,13 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 		buffer_caret = 0;
- 
- 		while( bitmap_caret < image_block_size ) {
--			
-+
-+			if (buffer_caret + pixel_block_size > rle_size) {
-+				gdFree( decompression_buffer );
-+				gdFree( conversion_buffer );
-+				return -1;
-+			}
-+
- 			if ((decompression_buffer[buffer_caret] & TGA_RLE_FLAG) == TGA_RLE_FLAG) {
- 				encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & ~TGA_RLE_FLAG ) + 1 );
- 				buffer_caret++;
-diff --git a/tests/tga/Makemodule.am b/tests/tga/Makemodule.am
-index 916d707..ab08dbf 100644
---- a/tests/tga/Makemodule.am
-+++ b/tests/tga/Makemodule.am
-@@ -15,7 +15,8 @@ EXTRA_DIST += \
- 	tga/bug00247a.tga \
- 	tga/bug00248.tga \
- 	tga/bug00248a.tga \
--	tga/heap_overflow.tga \
-+	tga/heap_overflow_1.tga \
-+	tga/heap_overflow_2.tga \
- 	tga/tga_read_rgb.png \
- 	tga/tga_read_rgb.tga \
- 	tga/tga_read_rgb_rle.tga
-diff --git a/tests/tga/heap_overflow.c b/tests/tga/heap_overflow.c
-index 0e9a2d0..ddd4b63 100644
---- a/tests/tga/heap_overflow.c
-+++ b/tests/tga/heap_overflow.c
-@@ -1,5 +1,5 @@
- /**
-- * Test that the crafted TGA file doesn't trigger OOB reads.
-+ * Test that crafted TGA files don't trigger OOB reads.
-  */
- 
- 
-@@ -7,21 +7,29 @@
- #include "gdtest.h"
- 
- 
-+static void check_file(char *basename);
- static size_t read_test_file(char **buffer, char *basename);
- 
- 
- int main()
- {
-+    check_file("heap_overflow_1.tga");
-+    check_file("heap_overflow_2.tga");
-+
-+    return gdNumFailures();
-+}
-+
-+
-+static void check_file(char *basename)
-+{
-     gdImagePtr im;
-     char *buffer;
-     size_t size;
- 
--    size = read_test_file(&buffer, "heap_overflow.tga");
-+    size = read_test_file(&buffer, basename);
-     im = gdImageCreateFromTgaPtr(size, (void *) buffer);
-     gdTestAssert(im == NULL);
-     free(buffer);
--
--    return gdNumFailures();
- }
- 
- 
-diff --git a/tests/tga/heap_overflow_1.tga b/tests/tga/heap_overflow_1.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..e9bc0ecb2a847ac6edba92dd0ff61167b49002cd
-GIT binary patch
-literal 605
-zcmZQz;9`IQ9tIu;g&7<$F3o7Yg1qzyh6tefy9wZAs2d<Uh*yuz=?XwW4Qvuv#g2nS
-zp93+mT0rVR>T&8(2TGy=f_l)@gSap~$FayUFu(!|SyJIFga^{8fGj~vwq8kkVgvv>
-Cavop+
-
-literal 0
-HcmV?d00001
-
-diff --git a/tests/tga/heap_overflow_2.tga b/tests/tga/heap_overflow_2.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..2b681f2df8941d6823aa761be0a7fa3c02c92cbf
-GIT binary patch
-literal 8746
-zcmeIxF$#b%6a>*<djij4?cuz+Vi5?!RIY)@*eDAQ@`zPSwQE1NTI<YQEqdQG#s5@h
-zwDFtAoIjm)CIQa|$z*q(vz}DbnPjrN&RI{Y=}a=&UFWPP)joCZ<31}ey8!(}FZZ71
-zWop>#e)AY=opmMw&j!h4cb&7IRMVMcvb)Y%PpaumGTB|{tS8lUCYkK6bJmk;IzMDC
-D4PYIN
-
-literal 0
-HcmV?d00001
-
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/Fix-290-TGA-RLE-decoding-is-broken.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/Fix-290-TGA-RLE-decoding-is-broken.patch
deleted file mode 100644
index 64f5c62..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/Fix-290-TGA-RLE-decoding-is-broken.patch
+++ /dev/null
@@ -1,359 +0,0 @@
-From 4f8e26f2a40ffaa3a5b77be6a49989a1a42e2b83 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 14:27:23 +0200
-Subject: [PATCH] Fix #290: TGA RLE decoding is broken
-
-We make it work only, for now. Actually, it doesn't make sense that
-`oTga::bitmap` is an `int *` as we're storing only bytes there. If this
-will be changed, we can even get rid of the `conversion_buffer` in
-`read_image_tga` altogether, and read the image data into the
-`decompression_buffer` (if RLE'd) or the `tga->bitmap` (if uncompressed)
-directly.
-
-Upstream-Status: Backport
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_tga.c                   |  18 ++++++++++--------
- tests/tga/CMakeLists.txt       |   1 +
- tests/tga/Makemodule.am        |   8 ++++++--
- tests/tga/tga_read.c           |  40 ++++++++++++++++++++++++++++++++++++++++
- tests/tga/tga_read_rgb.png     | Bin 0 -> 2349 bytes
- tests/tga/tga_read_rgb.tga     | Bin 0 -> 90444 bytes
- tests/tga/tga_read_rgb_rle.tga | Bin 0 -> 9987 bytes
- 7 files changed, 57 insertions(+), 10 deletions(-)
- create mode 100644 tests/tga/tga_read.c
- create mode 100644 tests/tga/tga_read_rgb.png
- create mode 100644 tests/tga/tga_read_rgb.tga
- create mode 100644 tests/tga/tga_read_rgb_rle.tga
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index ec6781f..8737b04 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -207,12 +207,13 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- {
- 	int pixel_block_size = (tga->bits / 8);
- 	int image_block_size = (tga->width * tga->height) * pixel_block_size;
--	uint8_t* decompression_buffer = NULL;
-+	int* decompression_buffer = NULL;
- 	unsigned char* conversion_buffer = NULL;
- 	int buffer_caret = 0;
- 	int bitmap_caret = 0;
- 	int i = 0;
- 	int encoded_pixels;
-+	int rle_size;
- 
- 	if(overflow2(tga->width, tga->height)) {
- 		return -1;
-@@ -266,7 +267,7 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 		/*! \brief Read in RLE compressed RGB TGA
- 		 *  Chunk load the pixel data from an RLE compressed RGB type TGA.
- 		 */
--		decompression_buffer = (uint8_t*) gdMalloc(image_block_size * sizeof(uint8_t));
-+		decompression_buffer = (int*) gdMalloc(image_block_size * sizeof(int));
- 		if (decompression_buffer == NULL) {
- 			return -1;
- 		}
-@@ -277,7 +278,8 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 			return -1;
- 		}
- 
--		if (gdGetBuf(conversion_buffer, image_block_size, ctx) != image_block_size) {
-+		rle_size = gdGetBuf(conversion_buffer, image_block_size, ctx);
-+		if (rle_size <= 0) {
- 			gdFree(conversion_buffer);
- 			gdFree(decompression_buffer);
- 			return -1;
-@@ -285,7 +287,7 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 
- 		buffer_caret = 0;
- 
--		while( buffer_caret < image_block_size) {
-+		while( buffer_caret < rle_size) {
- 			decompression_buffer[buffer_caret] = (int)conversion_buffer[buffer_caret];
- 			buffer_caret++;
- 		}
-@@ -298,14 +300,14 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 				encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & ~TGA_RLE_FLAG ) + 1 );
- 				buffer_caret++;
- 
--				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) >= image_block_size) {
-+				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
- 					gdFree( decompression_buffer );
- 					gdFree( conversion_buffer );
- 					return -1;
- 				}
- 
- 				for (i = 0; i < encoded_pixels; i++) {
--					memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, pixel_block_size);
-+					memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, pixel_block_size * sizeof(int));
- 					bitmap_caret += pixel_block_size;
- 				}
- 				buffer_caret += pixel_block_size;
-@@ -314,13 +316,13 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 				encoded_pixels = decompression_buffer[ buffer_caret ] + 1;
- 				buffer_caret++;
- 
--				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) >= image_block_size) {
-+				if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
- 					gdFree( decompression_buffer );
- 					gdFree( conversion_buffer );
- 					return -1;
- 				}
- 
--				memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, encoded_pixels * pixel_block_size);
-+				memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, encoded_pixels * pixel_block_size * sizeof(int));
- 				bitmap_caret += (encoded_pixels * pixel_block_size);
- 				buffer_caret += (encoded_pixels * pixel_block_size);
- 			}
-diff --git a/tests/tga/CMakeLists.txt b/tests/tga/CMakeLists.txt
-index c3a589c..789fb14 100644
---- a/tests/tga/CMakeLists.txt
-+++ b/tests/tga/CMakeLists.txt
-@@ -5,6 +5,7 @@ LIST(APPEND TESTS_FILES
- 	bug00247a
- 	bug00248
- 	bug00248a
-+	tga_read
- )
- 
- ADD_GD_TESTS()
-diff --git a/tests/tga/Makemodule.am b/tests/tga/Makemodule.am
-index dff828f..a1e6af6 100644
---- a/tests/tga/Makemodule.am
-+++ b/tests/tga/Makemodule.am
-@@ -4,7 +4,8 @@ libgd_test_programs += \
- 	tga/bug00247a \
- 	tga/bug00248 \
- 	tga/bug00248a \
--	tga/tga_null
-+	tga/tga_null \
-+	tga/tga_read
- 
- EXTRA_DIST += \
- 	tga/CMakeLists.txt \
-@@ -12,4 +13,7 @@ EXTRA_DIST += \
- 	tga/bug00247.tga \
- 	tga/bug00247a.tga \
- 	tga/bug00248.tga \
--	tga/bug00248a.tga
-+	tga/bug00248a.tga \
-+	tga/tga_read_rgb.png \
-+	tga/tga_read_rgb.tga \
-+	tga/tga_read_rgb_rle.tga
-diff --git a/tests/tga/tga_read.c b/tests/tga/tga_read.c
-new file mode 100644
-index 0000000..310b72f
---- /dev/null
-+++ b/tests/tga/tga_read.c
-@@ -0,0 +1,40 @@
-+/**
-+ * Basic test case for reading TGA files.
-+ */
-+
-+
-+#include "gd.h"
-+#include "gdtest.h"
-+
-+
-+static void assert_equals(char *exp, char *orig);
-+
-+
-+int main()
-+{
-+    assert_equals("tga_read_rgb.png", "tga_read_rgb.tga");
-+    assert_equals("tga_read_rgb.png", "tga_read_rgb_rle.tga");
-+
-+    return gdNumFailures();
-+}
-+
-+
-+static void assert_equals(char *exp, char *orig)
-+{
-+    gdImagePtr im;
-+    FILE *fp;
-+    char *filename;
-+
-+    fp = gdTestFileOpen2("tga", orig);
-+    gdTestAssertMsg(fp != NULL, "can't open %s", orig);
-+
-+    im = gdImageCreateFromTga(fp);
-+    gdTestAssertMsg(im != NULL, "can't read %s", orig);
-+    fclose(fp);
-+
-+    filename = gdTestFilePath2("tga", exp);
-+    gdAssertImageEqualsToFile(filename, im);
-+    gdFree(filename);
-+
-+    gdImageDestroy(im);
-+}
-diff --git a/tests/tga/tga_read_rgb.png b/tests/tga/tga_read_rgb.png
-new file mode 100644
-index 0000000000000000000000000000000000000000..bc468e3d927eaeb77d2f5c3bc35b970457f60f18
-GIT binary patch
-literal 2349
-zcmZ`*c{tSX7XOaO7-6K6b&RD_MnXy$nHe#bsVG~TvfZ*vO?Jle8%ar+AySDfStFGh
-zG#*)pL0RUPJ(FedBaE?x-*o@D_deZwpZ7WMdCuo~-t)faoX_)~lW+lNCI*p(001C{
-zHOJWSbt_+Pfp_!w<m@>WzS`|-X@&uIeytaE1*v>QB*5J9HUNl9{Spw6`Sc(k6uyJC
-zHWeNNLm|3~tCo{U002|57?VrEU+1$sy;a&|;-kbZl`6E_C%>gqbDtC=57F3fUD$)k
-zSG5DTL6#NnU=7wGcCw|<f|{rZi)5q<cVW*NQPQCY0xPU0_nGG#D?wR37BO^o^261%
-z+}quQI_1ZP=gTNp-n|;#)z~^;78o=e@tRYrS#8Jc>M{W*OdYEgjJp6u9Rb7l#X%t`
-zun;^h28uEP=P3Px?|rNGF#17D%A(CJ_ar|?n^0nq!~w+Wg23867ryn!Zlb|~&7A~z
-zqkP=IPyLrOM?58>2rEq=&{*9OMU!HNWJkg`(`y(=2{WLg392OTDyiM2$iCLcv5LCG
-zjWwRq46Da$pV|V^4Gvs36k1dWF^V4c8j%3~jN{*0*$phpF|-#zi@;k@t-s?cqW&sd
-zPh{x~@zm`!5V23*L&Qb=_elN~nEEqQhrhNZiRU#|qjK>6ptaYgj*sAcuS+t-7X5aB
-zUI5f*aL0Dut+y0vde?tg7QMa^0`(plvuD^Q>)J(abQY>@6P_*YY;XJ54VC^_f7F2x
-z21ee^35}!<L@bW?<-JgJ-%sahFv68xPXghCl|CsCc-P-A{`kl_3By}Mq}YnYYmSt4
-z8h8mx?<zBgq9CzV4*#zR8t}x5Or8!9Rn6LgajJ!B)ebxEtrwC@*p4M@D51#?OEY}<
-zqJHu+sCRU2YXNxiq(DP@*(Ui?Jz;IQ@O$Lbf}e8Nwij*L&iUd$N4-Ykfp$vDx#uv?
-z#_eULpAbPvN<tVA>Ek##rQDAOW+@)2?%}XiiSi^ted1PQu{v0&?bA^r%z?7*An3_H
-zvYFv8{p8fsCguNR$#3=6O{^H&8kT9N92CeaRAj3Y_cNl-znY8JZ{MpO#OK}A<_w9J
-zWMI2Kl?xv|S-FTV(aUG_`UWTZOFJGgv2)>JR#*H2Uad(wyqbIZt?w|Dw|k<eY&&9F
-zcr!zDg7=#H^=^MC+W02GN{78K=4Kuq90c@$7f$7+h)^YFm}-?3cEdU+Ivh5RC<+Yy
-zOz(7r<tT|Z34S@glz^9lpp@OstDBGA(iwk<LQ#r@i_)^MV*Re3^qB#j7N}4etZfK>
-zt6<wtj&M2(TLgTh3AH(}4;f4j=<Iu^axvT0!8B)K0O!7g?WnhIyGH5@EtT77&?E{6
-zB5<#{PWJOxQkF}LskzI@;(qVCjE%v-h|S8;`k#h^W5wR-cadW2H2Mk+7QZhqSRd!M
-zcQ8fpx~O^(^O#2gXiWDX&u@lZT#qjPG~Xh0UobVq#~Lumf!%S9`Jhf%MH?4Re5-17
-z7BP>D>=sy59jEGoeEx_W13BnmhAs?*j6#bG1a@#16O~1>q+P2@%QN~``Ws7=WX;F9
-z`=p5I$1ig*G|iW8vslr2^8hj+A0HWDoT-@fn5I53ZWWp!r8fMghmpjdqC%E#%2HFI
-zY&A(g!Li3+$<B^y8^Hw5!sXd&k%Ev!a;~aB#joj1?2ntu9|!GAFUwyc0oe_~y<}?E
-zUh@HUbCI(x2W1rmg7ckzRL2Ew#cdujut+*-t0g)81Tu+3ZH4uP`r1d1kSooU@5ybL
-zR5_J%A5sbak)KrSf>(r|V*&yCb;Ha(&ACi9w;?kQ7q1$hwjli^);+KIJAh|K&YL#E
-z+b(`PZN>V_5?v`hu-U429K9fO%8*k8pE=jDkn5ZJK|Vgl*@&QE^;mwlCxWbq4(hyi
-zUuz)bk@5^HOk@gB`SaWZfX07Eom07js%np8Xot&?YP8R+3|jrR4c#zO{LO<?^G84O
-zoP}G`MK)LZDo_$#nWR09X>NY_mL~1^BUG})*4b;Z_zq+`Q@kzUHC&`trCiQYum;1?
-zBic+0Bl>LLYU?>!B3k!Ils}uXR*`OEr3`f<P@HZFk`0fP5`^X=BOtC?@!vUq7B4OF
-zZEw6+3eoFRE@xEw(%DfIybhJuo03Du2ldm$20Sn3hj15Lu&gPQp=N%r%hME$*j{^@
-zRTffQhH7JLB-70qVkSm$9Zt`mahHLT7O^JnNqAAJs0C^n+1uj_E-}S^?&_U=H?;D_
-z1U9UJAz|+7z|Yq(6${A~5fhc}hH5twnKukf#Dn_JnQ$J4-Z$d}*Trq>?aKr2p19c6
-zYJ}r+^s>6aD~mrp;oIUhlig4sM)Jg3=J{K;dp#BCzRu1sU3D1wJl{jA^Y#ShVT+|^
-zUyjiM&wD~v3zy}K!zWm%3cpu#(*)cmxw1+n+C7V|hcZ6h8CZLubXt&J)h$6yflV6>
-zOVv_gDb*glO9FLL8x6bqM6(F#pGhGy+jjOyt9-daMWGrJKF{XvnT#^TeYaq2MG)qw
-zJ=RV;Mwg*goOa?(wM=EH<#AS$egRj*wnm+Bu4Pb{$-O}GZSiuT1UdBDwv2Rz)b3+L
-zRA=nkaWHB7I$T~B%;KynnS0b@3YpKqt$2;qzwLf>DZ4RFCQB!=QQ`Ft&y_PThuDsA
-zckawmbFnA9Tl7+Ez%a)>>T+Nh@8UxzrZP`<pHEXVd#|2v=f_b#A@|oAzbk6Q_>|O)
-zgw?Xli!)-)xrF2z=thH-TI;|>UVYK64@asT%484CF-pjk+~~wA+Z%fZYua+sDJ<Nf
-zfO`bfl}ig_0&C7BCuBa)xZ?-mQO=bQ2N5;>Sw}~|(tM}hK+z>+^8QQhOsTxl+2AJ+
-zX8WjlS|;0WRv7s_Bk=@u$v3GL@qC?&jcNEv<o68kaz!pHOs@;#CSh|{!j&zrsfn8j
-z6|o#^6C2NO9!G&u;Q0U5hkpCs|2Z3I$nNY~x}Tl<rOB|1KiB|RQyiuYbv@>9Cook&
-
-literal 0
-HcmV?d00001
-
-diff --git a/tests/tga/tga_read_rgb.tga b/tests/tga/tga_read_rgb.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..5f11f5a080f3424dff6ff368db6af140a5777e23
-GIT binary patch
-literal 90444
-zcmeI4Kab?b5yc6Af(;c(13`fU*%&xb;tQC_*aPhI`Y#kR+DO4FyO7x>23DD|fPu*!
-zc$3RVz$FeASlIpmlR7c>{0XS{cwI!Xhn!*0&G0z9w?L_y)m6=&?%yLhCt|YfC)vBd
-z@3Mbp-(`!RR#lbBv<6~842S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3#DEwO
-z17bi7hygJm2E>3E5CdYM&A?}$ex4m_TFdrYYCYz+9zh#Fz&|9|x2zKn^W#B#+TPQk
-zkGJqug1wSH+UqE;=D8ly$2|8{dOgm*N*~8rNAWn%b(B8lxv$dearRaEIL<nX$9b-!
-z^fAwUm0pjtuhPeH)=@mpa~-9RdG4$9dYpZgK8~}F;&GnqD1FRxU!~XM?5p%~oOKkB
-z^IXTEkMH5{66|-Z6BF}fVs88T*I)i3JJhoOSJ|O9w{_I#nWx?l)duSh)duUtlh$At
-z17Cjm-|T(t=^t5ksQGyXeY}RR66}rB$6N4TCD<$JL)!2RcC~{xmhcaW#u{p)fITEy
-zttmer=|ik~9;VU``gjIkB^qnU`Ab-pXwrv%OZ+UJZKV%gx2JNgp5i>D59woyTux<9
-z(uedh6&9yB59vetm?D=`nUnM(eN2VLDb7RskUpl!<y7V*eMlcuVR4G{kUpf3DRMcL
-zIY}SV$5dFH;yfm%k4wB~a-Co=-1}Dr-lw`wu&?y~m97o@G#T{q3H)`Uv4-!7EMeD)
-zw)K9=Z~mTThuUAV|7C~TzV%W6$E~45nY6k?xn!MZFO2s+{6m8MjdfuTKfpgE*thW<
-z{Cw2@xOHLsAGrJk{yNcELpGPN>qM)WwmHy;dAx?N66{Tw1IK#{s}k%La$6ep^HE#+
-za9lo1VAA+y4Y_=oz@+gjedzt&v$!^qahUWWUeAKpvG42Bhn^$GX6~HMCw)jC=fvyS
-zbCo`%kFl9Mr}If4(#JXRI`&+p59woU=FaJS(ueeMPP~piSLs9g7@N6sI-m3*eVh}o
-zW6yPB`q2AV`u~)Z`u~(cA78-VB^qn^p2#KaF44B$FA47vAM{(Ncz3vdANUYI_Vq~T
-zJFok7_+8Hr{@dw6AD4;m*uMzx*i#=x;yd<VQBUIaym%dZzk)u#fWJ#L*6_E}FJX6y
-zR{!R@|ExhDui;aE=k$%!$6N58@;j%mqz`GsGuYJ*`gjJP^1JEGWequh2}}9ibmmGQ
-z`krwX_ipJ!*U+x(reg27kUpdjX`!D1>7##b#EsTQ`Va%U4)il1ee|!5xY623A7Vh)
-zfqn+0kN&k0H(DF%Lk#FT(9eMM(Z4q0Mr$K|hyh&(`Wcv*KJ@;s-aDDpdnZ93Q+a<^
-z`j9>*rH}Wyw|@5N=h^$%`<z>~{m%qin`x{~&_)6OkZ858w2#x+NA1ID_95uwC47}=
-zz52*T_`_V+ZoXxF%76dsKew<oecZR}82QUk$J(XkqFq?rVsrM=+dI91F>*dfeUR^p
-zOs8;+{5;gLHn&=|ON(1<&R+VEKDzjZ2Kw$F(#J>m?+&_ubg5)Jru)Zfp6{oApOQYd
-zwa^ujKBNz5CFMK%pzr4xvxIHj*iUG$U^$H6v1y&(p%Guen9G_f*dx5vTC9wj2G56n
-z|5yYq@Of%s<Hq`6AI$y@fakh_U0A;Ni03elS1=yhthu+C<>UB*F_<5lxjeqIJnut3
-z$IoG`U%^;I&v~(rw(xbnjlQMNoBDNqtoebp40e+5=NOml8^f{p%x`^%M%@zTb9U92
-zey`caUXzcCKJMFfjC?Z2I$CbIXp=9ClcgtjY;nf67)H!$*JzV-%cp;I=eWXg*SM{G
-z<g|2%V~)!lp64;Nt>)excV35he&noN-o;q_P5nGz@Fe=cxFsxRdfmf(i(%wkbmVOi
-z<GmvulgFhoW*&QO%(TX~{yvYo+;Ngy9%9Bgxif~z9^;-Z_AjlDKIHhib%?RP2szXo
-zb1ZKaayY(coc$}-*dLD9FsrNkam>0$*aBw#8>@*ua-LwUy=ULlxgBeMVC(4mz?d=L
-z_l$AfL*EMCbKYVYeX+I**76U1IV`@fly#^3k7J@WwoB=3qAm}dkd@q$&?aw;nHAPY
-zkGSW%b<U`^)n{WM$234rTl(r4|H<k?-x@VGuhRF0{=)U=9sRs-S^X9J$Kr45=K*VE
-z?x@dK7_WdC|75w=hTj*&HZG^d4C4MiQTjTz(eKCSdA4$}-^NU9?0BsB7<EJRv5M<>
-zjM~z1wy>NiUh`*t=0grOa$~XBqwf(`bL{&Nv(L)Dt+i$hM%}T0Ywn2gyzFaqH+62u
-znjhFYg+6XEuIZ!mnU_qvoEF0_&M_9A1#2Vj?;)kd&10{Pnbz3W-{(;`L?3xqJ!<_u
-zq|pK5ox157qc4Ur$oM{eY<ASIP~Xx3bHlid(;DrJ#oyG=1J0<AOW0kav99wzjQAR6
-z`Y5~h4E?#wX&8>;RaY%z$lG}i?DabAc{6t3SU!%Lz54L^aXXxotd-Wsw#6;B%OjUM
-zD?;50zR?BR9J{qHINtkNk>fv?*DlXfkI5XH*VMTkYkuIY=KN6KHP49M!q(h-<VYWW
-zLC^-DH?WQ4)wtdAz7+ZEP_y$|;Kr`MgL4d5yYXXo?W<x{=lvjcT_Syye%-B&oGX~!
-zW14-9bW>S=?Dw6+?RztJJVw_s>il&!w;aSvSk0-$y1eBu-};Bt`kXMv2A<sC!l)bG
-zQ%nb~b#d{XpA~t{XF&S`wt&^23BL6loVw@AAFds+>%V`jj1%vpoYuag&vZk-^mW!o
-z{6l{K=$sQ6J4jooBdbp^vdU+vg?&!%Lto8v6gS<p*3sv%&2eF-hXQTt&W>B3NxTo|
-zJ$0?XuD>^IF^>ND-+x>CivCBKX=F=Z==0BJ%qu%s7{p9R-CoAQ)Ykbp4&p1v+l7tI
-ze2ZJmd-QdlGs;=m81zx!;LnQM`!EhYwMczD`tjIK-E-v+*Av$l%x)axyw+1Q)CIlg
-zpM1yqC=fG!(BE)O{-I56_<INY%evG32YWu48COQeJ6T1%gpnoM6RdT;#c>h(*uRR#
-zY-)Yn+8oQ(mKHZ3`i<p!4%SDH{&lEtt)tJeHuC&D>#-1P*4OgH`*7Y<*NSTlW~l?u
-z_^$TWzM?kP5H+#s8MCx~HSd@q%j9RD)x0AwhZ#4y8?Rv;{hN@pf@l0b9J7w+TUZ@E
-zj+<H^_ig0Zm>gprYP!Z|KdsSc$gk`Cn0;;JbB;C+{UXjy-E-v+*ORR^SdQ-lUL&6M
-zE`2O_=z-(-dq`>LH1C-49PDc6tVLb!*r{V7-Y|}SUhiYZIQE8p%=dqYHMKtO+pL3i
-zjmdEt=NMNo`wWHEBeo9lt#z~<?~%K5<8;=D_u;&!u9e>laJ+!s!q&m=;i;P(W_sz|
-zBlPomtc10+gk#qFF$;fAwz2;Oj7$x+MW|c2nmQKZxy4=HEn;Mob_2U$U;Kx7t2XYp
-zW90GN9LL7I568{8;kbmqa&-lc87nNd%d-|%1?#Ly-E-v+*Av(!|E7m#AN`)8pWK^1
-zntzY?IclF~1)z(S(?_E{e>U+xocGkVirDA1zqJQA=ChN3KDzOHqxR`m0J^w<*>l{g
-z?@XzCuKeM83jEu>fu366a~1CyYgpX3=-Vg7kFx^M1fQvL7@yhf*{XNl#rtsHQ`d?+
-z3Jt6x9e7RncENo8opuGF3A<;QHd_C`JU)Bso-2R2o@}k54}K5X^yq~5lcnX#pLPYH
-z5BttRos|2|Cf<khp1M}?+Cv8mSnjO#eI(A;@rPf5)IC@J>GY(v)!K>yF(3xSfEW-1
-zVn7Ut0Wly3#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1
-pVn7Ut0Wly3rpJK2`Txh?|LN;LKmWt?-@f?SH@|xR>#u*F{Rp+*(8>S+
-
-literal 0
-HcmV?d00001
-
-diff --git a/tests/tga/tga_read_rgb_rle.tga b/tests/tga/tga_read_rgb_rle.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..ce845ad0c3da65205af25854d64568b1cf0921e3
-GIT binary patch
-literal 9987
-zcmeI2J!~9R5Xbk<L5NgWrh*l6K@rf2A`LFK334O|$EPT_a+TuJx!kjzIGiJ2I<P>x
-ziiRRbk%9(oq!dtCIspYA&6UugGcC>X|IOQdZ+$+;#>5ek&eFVnJ3DVa{%>aX?a5Je
-zF>-%5qwk}eQT$4wzvw%Lr!o5$L%T1%_;U0&GrMhYD|*=1u+QBMI7bBz5GWAXUI?5o
-z4)=h152)YuP~W$``}B?1quuDQ!tKvI-d*GdmoNVj?N0AU(FV5-mWdwpH55x49>GD6
-z=%BBmXlU4mV>@qJ8fX!<cQoubnZc3TbVtK}?@1Y0!9an5mD0dE28xA&sM>=CL?@={
-z0-|RLqE&j)8olUxtrw;AqBVNamHEBs60Ks5R&l9p6>VC@T4)u!Z+{g<yLY2MYn^Q1
-zd9ELFE4tU$u)n0?3plJ1J?v}PZ)msyr`8V<5?$KSu-0S-M?&o#4QoBb4;grXfdT`M
-zN=c*-Fi>D%n-xb5tYDzPz)HDn9RtO}K-2&bfLTDa$ReF=%5-@43+;@(Xqh_Lqg5;e
-zg}THltzs{<ie37oodrXq8PIa=9O>E>BBIs4hP5RP*Wqxy6Qz9`Y(v8pI6+HwtX$ra
-zy1k}`<+7Ep?x=h3^=RRT3_QR<fq_Rg0|yu=Ft9z}zzPNm46Kv})-g~l4EUq{0-{A0
-z@uf#ui57)+Y^yj$Kb#Ty+&-!K64#`N?AC_rx07^75BGbIkyuBfFo`X6d}cobiI>AG
-z_yH!{gxCD>ho1(boNM2tG;8-@MK-H=sqwzy_Dk<p<<Y;ghphqw-d=+40((iXvX>d}
-zeC*AO?;PyiJI7egrh5aA*tASEv0P|sHWdv;37nkl7;GWQvslElsh1w>E)mVkrK5Wr
-zvyT~j8_(=*6BF=71Iw<4W?fOstUs?=BFaQ*Da#xiBX|}K8QkJdG}zFPqlKLAcr83*
-zWg<d$C_)R@Zt(9GMk4VnKb+4e=emmuJZ@>Q+HzQdV{TOj;%(7%jzp+KJSs$|sS9Fk
-zi>8|_;%+MHn6)L%h}LxJYN%Lsjm=l2JEG}rgt!}vT81WTD?iXN22oo(>Q%FW$7$$!
-zt&?$T0IopDHZ|A}nmLfzok8W3vju;nlA35T-r~-!Mh%-@xp^A6E=V4LfMg^hw4o2J
-zZI)js`N&kV*g%#wDTZ~m<nWLi1ePizuWxAjE=soYvC=mb&tTOxu05X^q<~*Zj<9wL
-zP=$-ZWz~5>cOy6~E}sky$N;c`=y|Ej2+1ZQ2f9i4w?h@e2{8NMT~!94nB@itGuLH}
-zXVpo_fLn+Ny=`_6ub%qVxz9IOHOQr&m-w|E<2CfOb2=CaIW-6=RoY?8DbvigNhHcJ
-zG#i_20Ls>TP|sG<1T!>Hm<6C_+a^z4YoiJ>5de05QI0M6IheVSK%5>}CEC#MwBHBI
-ziIa1Wpa&iZ_r@?tJkJ5<afw}YS{54Q*|ADIR<0rq7ju0Ezq{lB$w1gObbznQZdZVC
-zC{fEsk6_CHMd|PuWL7zD?Gbil$1PB(y&Zkn_I|ZCmODo!ml!;5_YN=f8&f%XLJ69i
-zw+YreoXy~Iho>|{-W{nZBP!8&Q$t}P*I~(hRwZ6%$Lp+>-V88<W1vX?KTsG@4Mp7*
-zP43JO--G~U!gJBc0<A+dG0?19zUEwf+}?LWRX6~j_TKxg%r*$-xiTt}Yajv!vcmP)
-zqnTh(gvtWBmMHdlF_;5HXb)v)Q_z7o(;nJBIi5s&D7DGOkh+Oa-OSuJgOmf2R1I-V
-zRL&L6j_DV<hr<B?9Mn_S!{H7Uhx4N2TcLZ}5FFv{ZJA>rG8_ARaUB|->lMt--ZnEI
-zTJ7{U4;S{j2Ay9PTlySLkZpPkSyjD9xB@11Gqz?H&}bm6INZyXa|<usjtD%sjy+Z`
-zO^{AKuWKHIUn2Ss=N8*9c5f<jyF%cp-^Zcb5%Fp{gGhMmxXnNb1>}y*$KYeSt=BT^
-z9)n8f69who6DC3I4i6#*smWsw#8aACPLFDXvaYploY`rTzv^v6%`=fZ=~tM<Gx7U2
-zGVu^u%W!94&zt&L+f3G5W^S(`9GhA$F^gxQaDFP%)PFP84q_$@7HzQb60>~+#d%*t
-zf%)V_G>Dlk3}01X6V9YA0}KH#x+MuyPXYm7$4BlC*YhI}#g|)Uh0-v*i7ggcv&@^C
-zjYO%ac80KpJfmhZkwXX$pH_*;t&cQIT_(xF6ht!Iic3UdT(%7ihfT|wtXWA&V1Sf;
-zU3WEU`G(*m{rfc5Lu-SUf;0gW_gTQ5!wKEEk(Qj)=S2;}8FVa^9uYEg=U`?TJS&;e
-zZ|IGrGhpnT4H$<N0L>R>%fn7eg+%K9in1ezX3K%Y`r6i<mRK!fyE0L3T&%#2e?}WI
-zcSMQE6&v2hGddfHYR&MD28%5H1s1ZQZU%;X@Wf!oTq<&1f;-%4`%tL#0yUz{`gTy@
-x8%~Vp2_Ce5$E=Cyg!2^tf$X%_aF4$a-uv+CN7vrJ_RjTJKYsJtTUTF;{sH~|7$pDz
-
-literal 0
-HcmV?d00001
-
--- 
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb
similarity index 61%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb
index 5621706..4932bb7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb
@@ -9,20 +9,14 @@
 
 SECTION = "libs"
 LICENSE = "GD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c97638cafd3581eb87abd37332137669"
+LIC_FILES_CHKSUM = "file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545"
+
 DEPENDS = "freetype libpng jpeg zlib tiff"
 
 SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
-           file://fix-gcc-unused-functions.patch \
-           file://CVE-2016-10166.patch \
-           file://CVE-2016-10167.patch \
-           file://CVE-2016-10168.patch \
-           file://.gitignore-the-new-test-case.patch \
-           file://Fix-290-TGA-RLE-decoding-is-broken.patch;apply=no \
-           file://CVE-2016-6906-1.patch;apply=no \
-           file://CVE-2016-6906-2.patch;apply=no"
+          "
 
-SRCREV = "46ceef5970bf3a847ff61d1bdde7501d66c11d0c"
+SRCREV = "de09874b15a4c88772db35ced842330f5de23e76"
 
 S = "${WORKDIR}/git"
 
@@ -39,19 +33,6 @@
 
 EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"'
 
-do_git_apply () {
-       cd ${S}
-       if [ ! -f tests/tga/tga_read_rgb.png ]; then
-               git apply ${S}/../Fix-290-TGA-RLE-decoding-is-broken.patch
-               git apply ${S}/../CVE-2016-6906-1.patch
-               git apply ${S}/../CVE-2016-6906-2.patch
-       fi
-}
-
-do_patch_append() {
-    bb.build.exec_func('do_git_apply', d)
-}
-
 do_install_append() {
     # cleanup buildpaths from gdlib.pc
     sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/gdlib.pc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
similarity index 86%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
index c7c7ae8..b505ac1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
@@ -10,9 +10,8 @@
 SECTION = "devel"
 LICENSE = "LGPLv2+"
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=e4cf3810f33a067ea7ccd2cd889fed21"
-SRCREV = "b6b3ed1fa4c6de12908a9f01d1689f156c3cd441"
-PV = "0.1.496+git${SRCPV}"
+LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
+SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc"
 
 SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \
 "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Fix-build-failure-for-ppc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Fix-build-failure-for-ppc.patch
deleted file mode 100644
index 27f855d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Fix-build-failure-for-ppc.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Subject: Fix build failure for ppc
-
-Upstream-Status: Pending
-
-Fix the following build failure.
-
-  error: 'siginfo_t' does not name a type
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/stacktrace_powerpc-linux-inl.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
-index 5d16fa1..a9bf775 100644
---- a/src/stacktrace_powerpc-linux-inl.h
-+++ b/src/stacktrace_powerpc-linux-inl.h
-@@ -44,6 +44,7 @@
- 
- #include <stdint.h>   // for uintptr_t
- #include <stdlib.h>   // for NULL
-+#include <signal.h>   // for siginfo_t
- #include <gperftools/stacktrace.h>
- #include <base/vdso_support.h>
- 
--- 
-2.8.3
-
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
new file mode 100644
index 0000000..99127e1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
@@ -0,0 +1,25 @@
+From b5961f17e9d7f2bc44da611b3e4b27c8a641fc72 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
+@@ -51,6 +51,8 @@ case "$host" in
+    *-cygwin*) default_enable_heap_checker=no; default_enable_cpu_profiler=no;;
+    *-freebsd*) default_enable_heap_checker=no;;
+    *-darwin*) default_enable_heap_checker=no;;
++   *-musl*) default_enable_heap_checker=no; default_enable_heap_profiler=no;
++            default_enable_debugalloc=no; default_enable_libunwind=no;
+ esac
+ 
+ # Currently only backtrace works on s390.
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
new file mode 100644
index 0000000..78621c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -0,0 +1,61 @@
+From 157914941bd38f1a38bb6bd7294ca6c2bc1b8dcb 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
+
+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 ++++++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b42fea3..70b49a3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -188,6 +188,7 @@ AC_HEADER_STDC
+ AC_CHECK_TYPES([__int64])       # defined in some windows platforms
+ AC_CHECK_TYPES([struct mallinfo],,, [#include <malloc.h>])
+ AC_CHECK_TYPES([Elf32_Versym],,, [#include <elf.h>])   # for vdso_support.h
++AC_CHECK_FUNCS(__sbrk)          # for intercepting glibc memory allocator
+ AC_CHECK_FUNCS(sbrk)            # for tcmalloc to get memory
+ AC_CHECK_FUNCS(geteuid)         # for turning off services when run as root
+ AC_CHECK_FUNCS(fork)            # for the pthread_atfork setup
+diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
+index 79ac4e3..d444635 100755
+--- a/src/malloc_hook_mmap_linux.h
++++ b/src/malloc_hook_mmap_linux.h
+@@ -46,6 +46,10 @@
+ #include <errno.h>
+ #include "base/linux_syscall_support.h"
+ 
++#ifndef __GLIBC__
++typedef off64_t   __off64_t;
++#endif
++
+ // The x86-32 case and the x86-64 case differ:
+ // 32b has a mmap2() syscall, 64b does not.
+ // 64b and 32b have different calling conventions for mmap().
+@@ -168,7 +172,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
+   return result;
+ }
+ 
+-# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)
++# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH))
+ 
+ extern "C" void* mmap(void *start, size_t length, int prot, int flags,
+                       int fd, off_t offset) __THROW {
+@@ -206,7 +210,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
+   return result;
+ }
+ 
+-#ifndef __UCLIBC__
++#if HAVE___SBRK
+ // 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
new file mode 100644
index 0000000..667008a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
@@ -0,0 +1,28 @@
+From 04ea8e001501931f4dbf20288aca78469617b08a 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
+
+Fixes
+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(+)
+
+diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
+index 85347a2..70431ca 100644
+--- a/src/base/linux_syscall_support.h
++++ b/src/base/linux_syscall_support.h
+@@ -162,6 +162,7 @@ extern "C" {
+ #include <unistd.h>
+ #include <linux/unistd.h>
+ #include <endian.h>
++#include <fcntl.h>
+ 
+ #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
new file mode 100644
index 0000000..f264740
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
@@ -0,0 +1,23 @@
+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
+                   [default_enable_libunwind=yes
+                    default_tcmalloc_pagesize=8])
+ 
++# Disable libunwind linking on aarch64 by default.
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [return __aarch64__])],
++                  [default_enable_libunwind=no],
++                  [default_enable_libunwind=yes])
++
+ AC_ARG_ENABLE([cpu-profiler],
+               [AS_HELP_STRING([--disable-cpu-profiler],
+                               [do not build the cpu profiler])],
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
new file mode 100644
index 0000000..7e1a23b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
@@ -0,0 +1,17 @@
+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
+@@ -164,7 +164,7 @@ extern "C" {
+ #include <endian.h>
+ #include <fcntl.h>
+ 
+-#ifdef __mips__
++#if defined(__mips__) && defined(__glibc__)
+ /* Include definitions of the ABI currently in use.                          */
+ #include <sgidefs.h>
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.5.bb
deleted file mode 100644
index 43780a5..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
-HOMEPAGE = "http://code.google.com/p/gperftools/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
-DEPENDS = "libunwind"
-
-SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/gperftools/gperftools-2.5.tar.gz/aa1eaf95dbe2c9828d0bd3a00f770f50/gperftools-2.5.tar.gz \
-           file://0001-Support-Atomic-ops-on-clang.patch \
-           file://0001-Fix-build-failure-for-ppc.patch \
-           file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \
-           "
-
-SRC_URI[md5sum] = "aa1eaf95dbe2c9828d0bd3a00f770f50"
-SRC_URI[sha256sum] = "6fa2748f1acdf44d750253e160cf6e2e72571329b42e563b455bde09e9e85173"
-
-inherit autotools
-
-# On mips, we have the following error.
-#   do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
-#   Segmentation fault (core dumped)
-COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64|arm|aarch64).*-linux*"
-# On aarch64, add this option to avoid system hanging when using libtcmalloc.so.
-EXTRA_OECONF_aarch64 += "--disable-libunwind"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
new file mode 100644
index 0000000..ecac6c5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE = "https://github.com/gperftools/gperftools"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
+DEPENDS += "libunwind"
+
+SRCREV = "bf840dec0495e17f5c8403e68e10b9d6bf05c559"
+SRC_URI = "git://github.com/gperftools/gperftools \
+           file://0001-Support-Atomic-ops-on-clang.patch \
+           file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \
+           file://0001-fix-build-with-musl-libc.patch \
+           file://0001-include-fcntl.h-for-loff_t-definition.patch \
+           file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
+           file://disable_libunwind_aarch64.patch \
+           file://sgidef.patch \
+           "
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+# Disable thumb1
+# {standard input}: Assembler messages:
+# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
+# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch
new file mode 100644
index 0000000..a919816
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch
@@ -0,0 +1,34 @@
+From 52e6cf052b1f938fcca1bc24d578fe0bfd972988 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 25 Jun 2017 07:25:33 -0700
+Subject: [PATCH] Use sigemptyset API instead of __sigemptyset
+
+__sigemptyset has been removed from glibc public
+API headers in upcoming (2.26) release onwards
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ src/prog/gpm-root.y | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y
+index 5126c65..76c896c 100644
+--- a/src/prog/gpm-root.y
++++ b/src/prog/gpm-root.y
+@@ -1196,11 +1196,7 @@ int main(int argc, char **argv)
+                                                         LOG_DAEMON : LOG_USER);
+    /* reap your zombies */
+    childaction.sa_handler=reap_children;
+-#if defined(__GLIBC__)
+-   __sigemptyset(&childaction.sa_mask);
+-#else /* __GLIBC__ */
+    sigemptyset(&childaction.sa_mask);
+-#endif /* __GLIBC__ */
+    childaction.sa_flags=0;
+    sigaction(SIGCHLD,&childaction,NULL);
+ 
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
index 69f12d9..51c4dd6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -12,10 +12,12 @@
 DEPENDS = "ncurses"
 
 SRC_URI = "git://github.com/telmich/gpm;protocol=git \
+           file://init \
            file://no-docs.patch \
            file://processcreds.patch \
            file://gpm.service.in \
-           file://init"
+           file://0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch \
+           "
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch
new file mode 100644
index 0000000..5ceb4bf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch
@@ -0,0 +1,178 @@
+From 8a10b6bd556426616e93f15639f369defbeca33f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 14 Aug 2017 11:58:58 -0700
+Subject: [PATCH] Fix out of tree builds
+
+When build dir is not same as sourcedir then the build failed due
+to use of $(srcdir) variable which assumes source = build therefore
+replace that with top_srcdir
+
+Additionally move the conditional addition of sources to Makefile.am
+instead of adding it in configure.ac, since then we can use top_srcdir
+variable to access those sources too otherwise its not possible to
+specify the right dir for these sources
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted[https://sourceforge.net/p/gsoap2/patches/171/]
+
+ configure.ac                          |  5 +++--
+ gsoap/Makefile.am                     | 14 +++++++-------
+ gsoap/samples/autotest/Makefile.am    |  8 ++++----
+ gsoap/samples/databinding/Makefile.am |  8 ++++----
+ gsoap/wsdl/Makefile.am                | 15 +++++++++------
+ 5 files changed, 27 insertions(+), 23 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0631c18..c36e696 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -265,7 +265,7 @@ if test "x$with_openssl" = "xyes"; then
+     WSDL2H_EXTRA_FLAGS="-DWITH_OPENSSL -DWITH_GZIP"
+     # an ugly hack to get httpda and smdevp plugins to conditionally
+     # compile with wsdl2h when OPENSSL is available
+-    WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} ../plugin/httpda.c ../plugin/smdevp.c ../plugin/threads.c -lssl -lcrypto -lz"
++    WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lssl -lcrypto -lz"
+     SAMPLE_INCLUDES=
+     SAMPLE_SSL_LIBS="-lssl -lcrypto -lz"
+     WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+@@ -289,12 +289,13 @@ else
+   SAMPLE_INCLUDES=
+   WSDL2H_SOAP_CPP_LIB="libgsoap++.a"
+ fi
++AM_CONDITIONAL(WITH_OPENSSL, test "x$with_openssl" = "xyes" -a "x$with_gnutls" != "xyes")
++AC_SUBST(WITH_OPENSSL)
+ AC_SUBST(WSDL2H_EXTRA_FLAGS)
+ AC_SUBST(WSDL2H_EXTRA_LIBS)
+ AC_SUBST(SAMPLE_INCLUDES)
+ AC_SUBST(SAMPLE_SSL_LIBS)
+ AC_SUBST(WSDL2H_SOAP_CPP_LIB)
+-
+ # enable the compile of the samples
+ AC_ARG_ENABLE(samples,
+ [  --enable-samples	  enable compile for the gsoap samples],
+diff --git a/gsoap/Makefile.am b/gsoap/Makefile.am
+index 7273b82..9c0c89f 100644
+--- a/gsoap/Makefile.am
++++ b/gsoap/Makefile.am
+@@ -13,26 +13,26 @@ AM_CXXFLAGS = $(SOAPCPP2_DEBUG) -D$(platform)
+ AM_CFLAGS = $(SOAPCPP2_DEBUG) -D$(platform)
+ 
+ # Install all soapcpp2 and wsdl2h files into ${prefix}/share/gsoap
+-nobase_pkgdata_DATA = $(srcdir)/import/* $(srcdir)/plugin/* $(srcdir)/WS/* $(srcdir)/custom/* $(srcdir)/extras/*
++nobase_pkgdata_DATA = $(top_srcdir)/gsoap/import/* $(top_srcdir)/gsoap/plugin/* $(top_srcdir)/gsoap/WS/* $(top_srcdir)/gsoap/custom/* $(top_srcdir)/gsoap/extras/*
+ 
+ ## we cannot build stdsoap2.o from 2 different sources (stdsoap2.cpp and stdsoap2.c), so we need an intermediate target:
+ stdsoap2_ck.c: stdsoap2.cpp
+-	$(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck.c
++	$(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck.c
+ 
+ stdsoap2_cpp.cpp: stdsoap2.cpp
+-	$(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_cpp.cpp
++	$(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_cpp.cpp
+ 
+ stdsoap2_ck_cpp.cpp: stdsoap2.cpp
+-	$(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck_cpp.cpp
++	$(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck_cpp.cpp
+ 
+ stdsoap2_ssl.c: stdsoap2.cpp
+-	$(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl.c
++	$(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl.c
+ 
+ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp
+-	$(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl_cpp.cpp
++	$(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl_cpp.cpp
+ ## do the same fo dom.cpp since we want to link it into the cpp libs and dom.c into the c libs
+ dom_cpp.cpp: dom.cpp
+-	$(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp
++	$(LN_S) -f $(top_srcdir)/gsoap/dom.cpp dom_cpp.cpp
+ 
+ lib_LIBRARIES = libgsoap.a libgsoap++.a libgsoapck.a libgsoapck++.a libgsoapssl.a libgsoapssl++.a
+ 
+diff --git a/gsoap/samples/autotest/Makefile.am b/gsoap/samples/autotest/Makefile.am
+index 36adf51..61e514c 100644
+--- a/gsoap/samples/autotest/Makefile.am
++++ b/gsoap/samples/autotest/Makefile.am
+@@ -6,13 +6,13 @@
+ AUTOMAKE_OPTIONS = subdir-objects foreign 1.4
+ 
+ CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+-AM_LDFLAGS=$(CPPFLAGS) -I$(srcdir) -L$(srcdir)
++AM_LDFLAGS=$(CPPFLAGS) -I$(top_srcdir)/gsoap/samples/autotest -L$(top_srcdir)/gsoap/samples/autotest
+ SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT)
+ WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT)
+-WSDL_FLAGS=-d -P -t $(srcdir)/typemap.dat
++WSDL_FLAGS=-d -P -t $(top_srcdir)/gsoap/samples/autotest/typemap.dat
+ SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/import -I$(top_srcdir)/gsoap/custom
+-WSDLINPUT=$(srcdir)/examples.wsdl
+-SOAPHEADER=$(srcdir)/examples.h
++WSDLINPUT=$(top_srcdir)/gsoap/samples/autotest/examples.wsdl
++SOAPHEADER=$(top_srcdir)/gsoap/samples/autotest/examples.h
+ SOAP_CPP_SRC=soapC.cpp soapServer.cpp
+ SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+ 
+diff --git a/gsoap/samples/databinding/Makefile.am b/gsoap/samples/databinding/Makefile.am
+index 892d4fd..86ad482 100644
+--- a/gsoap/samples/databinding/Makefile.am
++++ b/gsoap/samples/databinding/Makefile.am
+@@ -6,13 +6,13 @@
+ AUTOMAKE_OPTIONS = subdir-objects foreign 1.4
+ 
+ CPPFLAGS=$(SAMPLE_INCLUDES) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+-AM_LDFLAGS=$(AM_CPPFLAGS) -I$(srcdir) -L$(srcdir)
++AM_LDFLAGS=$(AM_CPPFLAGS) -I$(top_srcdir)/gsoap/samples/databinding -L$(top_srcdir)/gsoap/samples/databinding
+ SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT)
+ WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT)
+-WSDL_FLAGS=-g -t $(srcdir)/addresstypemap.dat
++WSDL_FLAGS=-g -t $(top_srcdir)/gsoap/samples/databinding/addresstypemap.dat
+ SOAP_FLAGS=-0 -CS -p address -I$(top_srcdir)/gsoap/import
+-WSDLINPUT=$(srcdir)/address.xsd
+-SOAPHEADER=$(srcdir)/address.h
++WSDLINPUT=$(top_srcdir)/gsoap/samples/databinding/address.xsd
++SOAPHEADER=$(top_srcdir)/gsoap/samples/databinding/address.h
+ SOAP_CPP_SRC=addressC.cpp
+ SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+ 
+diff --git a/gsoap/wsdl/Makefile.am b/gsoap/wsdl/Makefile.am
+index b8da5db..9f2aefa 100644
+--- a/gsoap/wsdl/Makefile.am
++++ b/gsoap/wsdl/Makefile.am
+@@ -6,14 +6,14 @@
+ AUTOMAKE_OPTIONS = foreign 1.4
+ 
+ # INCLUDES=-I$(top_srcdir)/gsoap
+-# AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir)
+-AM_LDFLAGS=-L$(srcdir) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
++# AM_LDFLAGS=$(INCLUDES) -I$(top_srcdir)/gsoap/wsdl -L$(top_srcdir)/gsoap/wsdl
++AM_LDFLAGS=-L$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+ AM_CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+ SOAP=$(top_builddir)/gsoap/src/soapcpp2$(EXEEXT)
+ SOAP_CPP_LIB=$(top_builddir)/gsoap/$(WSDL2H_SOAP_CPP_LIB)
+ SOAP_CPP_SRC=wsdlC.cpp
+-SOAPHEADER=$(srcdir)/wsdl.h
+-SOAP_FLAGS=-SC -pwsdl -I$(srcdir) -I$(top_srcdir)/gsoap/import
++SOAPHEADER=$(top_srcdir)/gsoap/wsdl/wsdl.h
++SOAP_FLAGS=-SC -pwsdl -I$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap/import
+ BUILT_SOURCES=$(SOAP_CPP_SRC)
+ # WSDL2H_EXTRA_FLAGS=-DWITH_OPENSSL -DWITH_GZIP # defined in configure.in
+ # WSDL2H_EXTRA_LIBS=-lssl -lcrypto -lz # defined in configure.in
+@@ -24,11 +24,14 @@ $(SOAP_CPP_SRC) : $(SOAPHEADER)
+ #LIBS=
+ 
+ bin_PROGRAMS=wsdl2h
+-
++if WITH_OPENSSL
++wsdl2h_LDADD=$(SOAP_CPP_LIB) $(top_srcdir)/gsoap/plugin/httpda.c $(top_srcdir)/gsoap/plugin/smdevp.c $(top_srcdir)/gsoap/plugin/threads.c $(WSDL2H_EXTRA_LIBS)
++else
++wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS)
++endif
+ wsdl2h_CFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS)
+ wsdl2h_CXXFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS) $(WSDL2H_IMPORTPATH)
+ wsdl2h_CPPFLAGS=$(AM_CPPFLAGS) $(SOAPCPP2_NONAMESPACES) -D$(platform)
+ wsdl2h_SOURCES=wsdl2h.cpp wsdl.cpp wadl.cpp schema.cpp types.cpp service.cpp soap.cpp mime.cpp wsp.cpp bpel.cpp $(SOAP_CPP_SRC)
+-wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS)
+ 
+ CLEANFILES= *~ *C.cpp *H.h *Stub.h *.nsmap
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch
new file mode 100644
index 0000000..571cbe5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch
@@ -0,0 +1,63 @@
+From db260fbc7af4c73c997c485a0c69c61594a0e59c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 30 Aug 2017 19:48:50 -0700
+Subject: [PATCH] stdgsoap2: Fix build with musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gsoap/stdsoap2.c   | 2 +-
+ gsoap/stdsoap2.cpp | 4 ++--
+ gsoap/stdsoap2.h   | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c
+index 58e9df4..62389e1 100644
+--- a/gsoap/stdsoap2.c
++++ b/gsoap/stdsoap2.c
+@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr)
+       return soap->error = SOAP_EOM;
+     return SOAP_OK;
+   }
+-#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
++#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
+   if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0)
+     host = NULL;
+ #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
+diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp
+index 58e9df4..b637161 100644
+--- a/gsoap/stdsoap2.cpp
++++ b/gsoap/stdsoap2.cpp
+@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr)
+       return soap->error = SOAP_EOM;
+     return SOAP_OK;
+   }
+-#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
++#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
+   if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0)
+     host = NULL;
+ #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
+@@ -19658,7 +19658,7 @@ soap_strerror(struct soap *soap)
+   {
+ #ifndef WIN32
+ # ifdef HAVE_STRERROR_R
+-#  if defined(_GNU_SOURCE) && !defined(__ANDROID__)
++#  if defined(_GNU_SOURCE) && !defined(__ANDROID__) && defined(__GLIBC__)
+     return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */
+ #  else
+     strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
+diff --git a/gsoap/stdsoap2.h b/gsoap/stdsoap2.h
+index 07a3952..c6ace4c 100644
+--- a/gsoap/stdsoap2.h
++++ b/gsoap/stdsoap2.h
+@@ -947,7 +947,7 @@ extern "C" {
+ # endif
+ #elif defined(SOCKLEN_T)
+ # define SOAP_SOCKLEN_T SOCKLEN_T
+-#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE)
++#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) || defined (LINUX)
+ # define SOAP_SOCKLEN_T socklen_t
+ #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS)
+ # define SOAP_SOCKLEN_T int
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
similarity index 62%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
index 6da08ac..8875844 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
@@ -1,19 +1,21 @@
 DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \
 for the development of SOAP Web Services and clients."
 SECTION = "devel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b338b08b1b61e028e0f399a4de25e58f"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \
+                    file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip"
-SRC_URI[md5sum] = "5700d26fc6fe3073d038349e19c3640d"
-SRC_URI[sha256sum] = "51eef118544fa846f4d2dea2eedf91c84c46a1abeafc5eee3dcff783f4015a00"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
+           file://0001-Fix-out-of-tree-builds.patch \
+           file://0001-stdgsoap2-Fix-build-with-musl.patch \
+           "
+SRC_URI[md5sum] = "212951d6e1435bb51fa4320f458809ea"
+SRC_URI[sha256sum] = "3e7bb24a9e492f5cb86daca34054c9787152f1d7b70add36b789d03816d5ffa1"
 
 inherit autotools
 
 BBCLASSEXTEND = "native"
 
-PR = "r1"
-
 S = "${WORKDIR}/${BPN}-2.8"
 
 PARALLEL_MAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch
new file mode 100644
index 0000000..cfffa2e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch
@@ -0,0 +1,37 @@
+From d195f8cfe41991573128ccdcd3a0ed0267aa5e33 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Jun 2017 19:44:46 -0700
+Subject: [PATCH] backtrace: Replace struct ucontext with ucontext_t
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/backtrace.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/backtrace.c b/src/backtrace.c
+index 69bee99..dc35f8f 100644
+--- a/src/backtrace.c
++++ b/src/backtrace.c
+@@ -42,7 +42,7 @@
+ #define MAX_BTSIZE 64
+ 
+ void backtrace_handler(int n, siginfo_t *ist, void *extra) {
+-  static struct ucontext *puc;
++  static ucontext_t *puc;
+   static void *btinfo[MAX_BTSIZE];
+   static char **messages = NULL;
+   static size_t btsize = 0;
+@@ -58,7 +58,7 @@ void backtrace_handler(int n, siginfo_t *ist, void *extra) {
+ 
+ #define SIC_CASE(c) case c: strerr = #c
+ 
+-  puc = (struct ucontext *)extra;
++  puc = (ucontext_t *)extra;
+   switch(n) {
+   case SIGSEGV:
+     switch(ist->si_code) {
+-- 
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
index 601b7b1..4a871bf 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
@@ -8,6 +8,7 @@
            file://hddtemp-no-nls-support.patch \
            file://hddtemp_0.3-beta15-52.diff \
            file://hddtemp-0.3-beta15-autodetect-717479.patch \
+           file://0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch \
            file://hddtemp.db \
            file://init \
 "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
deleted file mode 100644
index 3dc22c5..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Fast and portable XML parser and Jabber protocol library"
-AUTHOR = "Gurer Ozen <meduketto at gmail.com>"
-HOMEPAGE = "http://iksemel.googlecode.com"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
-DEPENDS = "gnutls"
-
-PR = "r1"
-
-# http://errors.yoctoproject.org/Errors/Details/25825/
-PNBLACKLIST[iksemel] ?= "Not compatible with gnutls version 3.4 currently in oe-core - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://iksemel.googlecode.com/files/${BP}.tar.gz;name=archive \
-           file://r25.diff"
-SRC_URI[archive.md5sum] = "532e77181694f87ad5eb59435d11c1ca"
-SRC_URI[archive.sha256sum] = "458c1b8fb3349076a6cecf26c29db1d561315d84e16bfcfba419f327f502e244"
-
-inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
similarity index 76%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
index 960cb00..669534e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
@@ -1,20 +1,16 @@
 SUMMARY = "ImageMagick is an image convertion tools"
 SECTION = "console/utils"
 LICENSE = "ImageMagick"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=22d47a47bf252ca3ed7f71273b53612e"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1"
 # FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
 DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib fftw freetype"
 
-# Important note: tarballs for all patchsets within a version are deleted when
-# a new pachset is created. To avoid multiple patches for each patchset, try to
-# update to the last pachset of a version
-PATCHSET = "10"
-SRC_URI = "http://www.imagemagick.org/download/releases/ImageMagick-${PV}-${PATCHSET}.tar.xz \
-"
-SRC_URI[md5sum] = "e1cb23d9c10a8eff228ef30ee281711a"
-SRC_URI[sha256sum] = "dad306bfd7730e1665c6fdb6eb478fb2c41e2db71ab56451bbaebe9df546b1d2"
+BASE_PV := "${PV}"
+PV .= "_7"
+SRC_URI = "git://github.com/ImageMagick/ImageMagick.git "
+SRCREV = "e12602b39b5e778240d286b6f9bbbc0fe3fb26c5"
 
-S = "${WORKDIR}/ImageMagick-${PV}-${PATCHSET}"
+S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig update-alternatives
 
@@ -33,16 +29,12 @@
 PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
 PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
 
-FILES_${PN} += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.so \
-                ${libdir}/ImageMagick-${PV}/modules-Q16/*/*.la \
-                ${libdir}/ImageMagick-${PV}/modules-Q16/filters \
-                ${libdir}/ImageMagick-${PV}/modules-Q16/coders \
-                ${libdir}/ImageMagick-${PV}/config-Q16* \
-                ${datadir}/ImageMagick-7 "
+FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \
+                ${datadir}/ImageMagick-7"
 
-FILES_${PN}-dev += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.a"
+FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a"
 
-FILES_${PN}-dbg += "${libdir}/ImageMagick-${PV}/modules-Q16/*/.debug/*"
+FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*"
 
 BBCLASSEXTEND = "native"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
new file mode 100644
index 0000000..89b890d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
@@ -0,0 +1,31 @@
+inotify-tools: fix __NR_inotify_add_watch system call number on _MIPS_SIM_ABI64
+
+The correct value should be the same as defined in
+linux/arch/mips/include/uapi/asm/unistd.h
+
+Upstream-Status: Summitted [https://github.com/rvoicilas/inotify-tools/pull/71]
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ libinotifytools/src/inotifytools/inotify-nosys.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h
+index db76b2c..5f7b11b 100644
+--- a/libinotifytools/src/inotifytools/inotify-nosys.h
++++ b/libinotifytools/src/inotifytools/inotify-nosys.h
+@@ -100,8 +100,8 @@ struct inotify_event {
+ # endif
+ # if _MIPS_SIM == _MIPS_SIM_ABI64
+ #  define __NR_inotify_init (__NR_Linux + 243)
+-#  define __NR_inotify_add_watch (__NR_Linux + 243)
+-#  define __NR_inotify_rm_watch (__NR_Linux + 243)
++#  define __NR_inotify_add_watch (__NR_Linux + 244)
++#  define __NR_inotify_rm_watch (__NR_Linux + 245)
+ # endif
+ # if _MIPS_SIM == _MIPS_SIM_NABI32
+ #  define __NR_inotify_init (__NR_Linux + 247)
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
index a8ef557..efc753d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
@@ -10,6 +10,7 @@
 
 SRC_URI = "git://github.com/rvoicilas/${BPN} \
            file://inotifywait-fix-compile-error-with-GCC-6.patch \
+           file://inotify-nosys-fix-system-call-number.patch \
           "
 
 S = "${WORKDIR}/git"
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-support/ipmiutil/ipmiutil/fix_systemd_path.patch
index 2fa7c68..33116b3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
@@ -6,115 +6,11 @@
 
 Signed-off-By: Armin Kuster <akuster@mvista.com>
 
-Index: ipmiutil-2.9.6/configure
+Index: ipmiutil-3.0.5/configure.ac
 ===================================================================
---- ipmiutil-2.9.6.orig/configure
-+++ ipmiutil-2.9.6/configure
-@@ -792,7 +792,6 @@ LTLIBOBJS
- LIBOBJS
- pkgconfigdir
- SHR_LINK
--SYSTEMD_DIR
- CROSS_LFLAGS
- CROSS_CFLAGS
- SUBDIR_S
-@@ -999,7 +998,7 @@ psdir='${docdir}'
- libdir='${exec_prefix}/lib'
- localedir='${datarootdir}/locale'
- mandir='${datarootdir}/man'
--
-+systemddir='${datarootdir}/ipmiutil'
- ac_prev=
- ac_dashdash=
- for ac_option
-@@ -1594,7 +1593,10 @@ Optional Features:
-   --enable-standalone    build standalone, with no GPL or LanPlus libs.
-   --enable-libsensors	 build libipmiutil with sensor modules [default=no]
-   --enable-gpl           build with some GPL code [default=no]
--  --enable-systemd       enable systemd service type=notify support and %_unitdir [default=disabled]
-+  --enable-systemd[=systemddir]      install systemd unit file.  If 'yes'
-+                probe the system for unit directory.
-+                If a path is specified, assume that
-+                is a valid install path.  [default=disabled]
- 
- Optional Packages:
-   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-@@ -12980,7 +12982,6 @@ CROSS_LFLAGS=""
- CROSS_CFLAGS=""
- LIBSENSORS=""
- SAM2OBJ="isensor2.o ievents2.o"
--SYSTEMD_DIR=/usr/share/ipmiutil
- 
- # Check whether --enable-useflags was given.
- if test "${enable_useflags+set}" = set; then
-@@ -13032,31 +13033,43 @@ if test "${enable_gpl+set}" = set; then
-     fi
- 
- fi
--
-+#
-+# Check for systemd unit files direectory exists if unit file installation
-+# is requested
-+#
- 
- # Check whether --enable-systemd was given.
--if test "${enable_systemd+set}" = set; then
--  enableval=$enable_systemd;
--fi
--
--if test "x$enable_systemd" = "xyes"; then
--   GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
--   # if systemd enabled, install service scripts in unitdir
--   SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
--else
--   # otherwise install the systemd service scripts in the data dir
--  if test  "x$sysname" = "xDarwin" ; then
--    # MacOS 'which' command returns 0 always
--    SYSTEMD_DIR=/usr/share/ipmiutil
--  else
-+if test "${enable_systemd+set}" = set; then :
-+  withval=$enable_systemd; if test "$withval" = yes; then
-+  GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
-+  if test -z "$systemddir"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5
-+$as_echo_n "checking location of the systemd unit files directory... " >&6; }
-+    _rpmdir = ""
-     which rpm >/dev/null 2>&1
-     if test  $? -eq 0 ; then
--       datad=`rpm --eval "%{_datadir}"`
--       SYSTEMD_DIR=${datad}/ipmiutil
--    else
--       SYSTEMD_DIR=/usr/share/ipmiutil
-+      _rpmdir = `rpm --eval "%{_unitdir}"`
-     fi
-+    for systemd_d in ${datadir}/usr/share/ipmiutil ${_rpmdir} /usr/share/ipmiutil; do
-+      if test -z "$systemddir"; then
-+        if test -d "$systemd_d"; then
-+          systemddir="$systemd_d"
-+        fi
-+      fi
-+    done
-   fi
-+  if test -n "$systemddir"; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5
-+$as_echo "$systemddir" >&6; }
-+  else
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-+$as_echo "not found" >&6; }
-+ fi
-+else
-+ if test "$withval" != no; then
-+  systemddir=$withval
-+ fi
-+fi
- fi
- 
- case "$archm" in
-Index: ipmiutil-2.9.6/configure.ac
-===================================================================
---- ipmiutil-2.9.6.orig/configure.ac
-+++ ipmiutil-2.9.6/configure.ac
-@@ -140,7 +140,6 @@ CROSS_LFLAGS=""
+--- ipmiutil-3.0.5.orig/configure.ac
++++ ipmiutil-3.0.5/configure.ac
+@@ -149,7 +149,6 @@ CROSS_LFLAGS=""
  CROSS_CFLAGS=""
  LIBSENSORS=""
  SAM2OBJ="isensor2.o ievents2.o"
@@ -122,7 +18,7 @@
  
  AC_ARG_ENABLE([useflags],
      [  --enable-useflags    include environment CFLAGS and LDFLAGS.],
-@@ -191,25 +190,42 @@ AC_ARG_ENABLE([gpl],
+@@ -200,29 +199,42 @@ AC_ARG_ENABLE([gpl],
  
  dnl Does this Linux have systemd enabled?  Otherwise use sysv init.
  AC_ARG_ENABLE([systemd],
@@ -130,7 +26,12 @@
 -if test "x$enable_systemd" = "xyes"; then
 -   GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
 -   # if systemd enabled, install service scripts in unitdir
--   SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
+-   which rpm >/dev/null 2>&1
+-   if test  $? -eq 0 ; then
+-	SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
+-   else
+-    SYSTEMD_DIR=/usr/share/ipmiutil
+-   fi
 +    [  --enable-systemd[=systemddir]      install systemd unit file.  If 'yes'
 +        probe the system for unit directory.
 +        If a path is specified, assume that
@@ -164,16 +65,15 @@
 +	fi
  else
 -   # otherwise install the systemd service scripts in the data dir
--  if test  "x$sysname" = "xDarwin" ; then
--    # MacOS 'which' command returns 0 always
--    SYSTEMD_DIR=/usr/share/ipmiutil
--  else
--    which rpm >/dev/null 2>&1
--    if test  $? -eq 0 ; then
--       datad=`rpm --eval "%{_datadir}"`
--       SYSTEMD_DIR=${datad}/ipmiutil
--    else
--       SYSTEMD_DIR=/usr/share/ipmiutil
+-  SYSTEMD_DIR=/usr/share/ipmiutil
+-  if test "x$sysname" != "xDarwin" ; then
+-    if test  "x$os" != "xhpux" ; then
+-      # MacOS and HP-UX: 'which' command returns 0 always
+-      which rpm >/dev/null 2>&1
+-      if test  $? -eq 0 ; then
+-         datad=`rpm --eval "%{_datadir}"`
+-         SYSTEMD_DIR=${datad}/ipmiutil
+-      fi
 -    fi
 -  fi
 +	if test "$withval" != no; then
@@ -183,7 +83,7 @@
  fi
  
  dnl start main logic
-@@ -481,7 +497,7 @@ AC_SUBST(INS_LIB)
+@@ -528,7 +540,7 @@ AC_SUBST(INS_LIB)
  AC_SUBST(SUBDIR_S)
  AC_SUBST(CROSS_CFLAGS)
  AC_SUBST(CROSS_LFLAGS)
@@ -192,74 +92,10 @@
  AC_SUBST(SHR_LINK)
  AC_SUBST(pkgconfigdir)
  
-Index: ipmiutil-2.9.6/Makefile.in
+Index: ipmiutil-3.0.5/scripts/Makefile.am
 ===================================================================
---- ipmiutil-2.9.6.orig/Makefile.in
-+++ ipmiutil-2.9.6/Makefile.in
-@@ -182,7 +182,7 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
-@@ -233,6 +233,7 @@ sbindir = @sbindir@
- sharedstatedir = @sharedstatedir@
- srcdir = @srcdir@
- sysconfdir = @sysconfdir@
-+systemddir = @systemddir@
- target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
-Index: ipmiutil-2.9.6/scripts/Makefile.in
-===================================================================
---- ipmiutil-2.9.6.orig/scripts/Makefile.in
-+++ ipmiutil-2.9.6/scripts/Makefile.in
-@@ -126,7 +126,7 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
-@@ -195,7 +195,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
- sbinto = ${DESTDIR}${sbindir}
- varto = ${DESTDIR}/var/lib/ipmiutil
- initto = ${DESTDIR}@INIT_DIR@
--sysdto = ${DESTDIR}@SYSTEMD_DIR@
-+sysdto = ${DESTDIR}@systemddir@
-+systemddir = @systemddir@
- sysvinit = ${datato}
- sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm
- all: all-am
-@@ -398,11 +399,14 @@ install:
- 	${INSTALL_SCRIPT_SH} evt.sh       ${datato}
- 	if [ -f /etc/debian_version ]; then \
- 	   sysvinit=${initto}; fi
--	${INSTALL_SCRIPT_SH} ipmiutil_wdt ${sysvinit}/ipmiutil_wdt
--	${INSTALL_SCRIPT_SH} ipmiutil_asy ${sysvinit}/ipmiutil_asy
--	${INSTALL_SCRIPT_SH} ipmiutil_evt ${sysvinit}/ipmiutil_evt
--	${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
--	${INSTALL_SCRIPT_SH} ipmi_info    ${sysvinit}/ipmi_info
-+	if [ ! -z "${systemddir}" ]; then \
-+		$(MKDIR) ${sysdto}; \
-+		${INSTALL_SCRIPT_SH} ipmiutil_wdt ${sysvinit}/ipmiutil_wdt; \
-+		${INSTALL_SCRIPT_SH} ipmiutil_asy ${sysvinit}/ipmiutil_asy; \
-+		${INSTALL_SCRIPT_SH} ipmiutil_evt ${sysvinit}/ipmiutil_evt; \
-+		${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port; \
-+		${INSTALL_SCRIPT_SH} ipmi_info    ${sysvinit}/ipmi_info; \
-+	fi
- 	${INSTALL_SCRIPT_SH} checksel     ${datato}
- 	${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}
- 	${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}
-Index: ipmiutil-2.9.6/scripts/Makefile.am
-===================================================================
---- ipmiutil-2.9.6.orig/scripts/Makefile.am
-+++ ipmiutil-2.9.6/scripts/Makefile.am
+--- ipmiutil-3.0.5.orig/scripts/Makefile.am
++++ ipmiutil-3.0.5/scripts/Makefile.am
 @@ -17,7 +17,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
  sbinto = ${DESTDIR}${sbindir}
  varto  = ${DESTDIR}/var/lib/ipmiutil
@@ -268,7 +104,7 @@
 +sysdto = ${DESTDIR}@systemddir@
 +systemddir = @systemddir@
  sysvinit = ${datato}
- sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm
+ sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm iuser
  
 @@ -47,10 +48,14 @@ install:
  	${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
@@ -289,30 +125,3 @@
  	${INSTALL_SCRIPT_SH} ipmiutil.env     ${datato}
  	${INSTALL_SCRIPT_SH} ipmiutil.pre     ${datato}
  	${INSTALL_SCRIPT_SH} ipmiutil.setup   ${datato}
-Index: ipmiutil-2.9.6/lib/Makefile.in
-===================================================================
---- ipmiutil-2.9.6.orig/lib/Makefile.in
-+++ ipmiutil-2.9.6/lib/Makefile.in
-@@ -128,7 +128,7 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
-Index: ipmiutil-2.9.6/lib/lanplus/Makefile.in
-===================================================================
---- ipmiutil-2.9.6.orig/lib/lanplus/Makefile.in
-+++ ipmiutil-2.9.6/lib/lanplus/Makefile.in
-@@ -177,7 +177,8 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
-+systemddir = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb
similarity index 76%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb
index ee0766e..338cafd 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb
@@ -13,17 +13,17 @@
 
 HOMEPAGE = "http://ipmiutil.sourceforge.net"
 LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f9372493401f309e6149dd2ce0a044b"
+LIC_FILES_CHKSUM = "file://COPYING;md5=626a5970304daa1fcb87f757fb42b795"
 
 DEPENDS += "openssl"
 
 PARALLEL_MAKE = ""
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \
-    file://fix_systemd_path.patch "
-
-SRC_URI[md5sum] = "462087995f05fa9e692ed7f55c840f71"
-SRC_URI[sha256sum] = "884c1f3d8bfb0b33c303973d286c3166f5a537976451a0312e3524af54771519"
+           file://fix_systemd_path.patch \
+          "
+SRC_URI[md5sum] = "5feaf6a827205792e057bb4ff5c4e842"
+SRC_URI[sha256sum] = "b2d7f72535131c7832ba4be13dc33c81513fc3ee43fe797b4b52014600ecee5e"
 
 inherit autotools-brokensep pkgconfig systemd
 
@@ -43,20 +43,4 @@
 CFLAGS += "-I${STAGING_INCDIR}"
 LDFLAGS += "-L${STAGING_LIBDIR}"
 
-do_configure () {
-    aclocal
-    libtoolize --automake --copy --force
-    autoheader
-    automake --foreign --add-missing --copy
-
-    aclocal
-    autoconf
-    automake --foreign
-    ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
-}
-
-do_install () {
-    oe_runmake install DESTDIR=${D}
-}
-
 COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
new file mode 100644
index 0000000..b57e39f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
@@ -0,0 +1,30 @@
+From 2ddc97b30792817d162f51ec3818376aefbf184e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 3 May 2017 02:05:33 -0400
+Subject: [PATCH] remove python2 support
+
+We use python3 rather than python2 support
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/python/Makefile.am | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/src/python/Makefile.am b/src/python/Makefile.am
+index 567d0d7..8d9f446 100644
+--- a/src/python/Makefile.am
++++ b/src/python/Makefile.am
+@@ -1,8 +1,3 @@
+-pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
+-
+-pybytesizedir     = $(pylibdir)/bytesize
+-dist_pybytesize_DATA = bytesize.py __init__.py
+-
+ if WITH_PYTHON3
+ py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
+ py3bytesizedir    = $(py3libdir)/bytesize
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
new file mode 100644
index 0000000..6903021
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "The goal of this project is to provide a tiny library that would \
+facilitate the common operations with sizes in bytes."
+HOMEPAGE = "https://github.com/rhinstaller/libbytesize"
+LICENSE = "LGPLv2+"
+SECTION = "devel/lib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+SRCREV = "369127c0edbba7d1a4e2e02486375dd9d379524f"
+PV = "0.10+git${SRCPV}"
+SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \
+           file://0001-remove-python2-support.patch \
+"
+
+inherit gettext autotools python3native
+
+DEPENDS += " \
+    libpcre \
+    gmp \
+    mpfr \
+"
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
+
+PACKAGECONFIG ??= "python3"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
+
+EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
new file mode 100644
index 0000000..74b5e21
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Enable userspace control of Cypress USB-Serial bridge devices"
+HOMEPAGE = "https://github.com/cyrozap/libcyusbserial"
+BUGTRACKER = "https://github.com/cyrozap/libcyusbserial/issues"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER.txt;md5=4fbd65380cdd255951079008b364516c"
+DEPENDS = "libusb udev"
+
+PV = "1.0.0+git${SRCPV}"
+
+SRCREV = "655e2d544183d094f0e2d119c7e0c6206a0ddb3f"
+SRC_URI = "git://github.com/cyrozap/${BPN}.git"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGES =+ "${PN}-utils"
+FILES_${PN}-utils = "${bindir}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
deleted file mode 100644
index b509532..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
+++ /dev/null
@@ -1,51 +0,0 @@
-# libdbi-drivers OE build file
-# Copyright (C) 2005, Koninklijke Philips Electronics NV.  All Rights Reserved
-# Released under the MIT license (see packages/COPYING)
-
-DESCRIPTION = "Database Drivers for libdbi"
-HOMEPAGE = "http://libdbi-drivers.sourceforge.net/"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
-SECTION = "libs"
-
-PROVIDES = "libdbd-sqlite"
-DEPENDS = "libdbi sqlite sqlite3 mysql5 postgresql"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi-drivers/libdbi-drivers-${PV}.tar.gz"
-
-inherit autotools
-
-PACKAGES += "libdbd-sqlite3 libdbd-sqlite libdbd-pgsql libdbd-mysql"
-
-EXTRA_OECONF = "--with-dbi-incdir=${STAGING_INCDIR} \
-                --with-dbi-libdir=${STAGING_LIBDIR} \
-                --with-sqlite \
-                --with-sqlite3 \
-                --with-pgsql \
-                --with-mysql \
-                --with-sqlite-libdir=${STAGING_LIBDIR} \
-                --with-sqlite-incdir=${STAGING_INCDIR} \
-                --with-sqlite3-incdir=${STAGING_INCDIR} \
-                --with-sqlite3-libdir=${STAGING_LIBDIR} \
-                --with-mysql-incdir=${STAGING_INCDIR} \
-                --with-mysql-libdir=${STAGING_LIBDIR} \
-                --with-pgsql-incdir=${STAGING_INCDIR} \
-                --with-pgsql-libdir=${STAGING_LIBDIR} \
-                --disable-docs"
-
-FILES_${PN}-dbg += " ${libdir}/dbd/.debug/*.so"
-FILES_${PN}-dev += " ${libdir}/dbd/*.la"
-FILES_${PN}-staticdev += " ${libdir}/dbd/*.a"
-
-DESCRIPTION_libdbd-sqlite = "SQLite database driver for libdbi"
-FILES_libdbd-sqlite = "${libdir}/dbd/libdbdsqlite.so"
-
-DESCRIPTION_libdbd-sqlite3 =  "SQLite3 database driver for libdbi"
-FILES_libdbd-sqlite3 = "${libdir}/dbd/libdbdsqlite3.so"
-
-DESCRIPTION_libdbd-mysql = "MySQL4 database driver for libdbi"
-FILES_libdbd-mysql = "${libdir}/dbd/libdbdmysql.so"
-
-DESCRIPTION_libdbd-psql = "Postgres SQL database driver for libdbi"
-FILES_libdbd-pgsql = "${libdir}/dbd/libdbdpgsql.so"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
deleted file mode 100644
index 8d2c505..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require ${PN}.inc
-
-
-SRC_URI[md5sum] = "4de79b323162a5a7652b65b608eca6cd"
-SRC_URI[sha256sum] = "4ab9944398ce769c0deeb64d2f73555c67bc25ccd2ade1ccf552226c7b2acf72"
-
-# libdbi-drivers-0.8.3-1/drivers/mysql/dbd_mysql.c:232:5: error: conflicting types for 'dbd_goto_row'
-PNBLACKLIST[libdbi-drivers] ?= "BROKEN: fails to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
deleted file mode 100644
index d05967d..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: libetpan-0.57/configure.ac
-===================================================================
---- libetpan-0.57.orig/configure.ac	2008-10-08 19:54:20.000000000 +0000
-+++ libetpan-0.57/configure.ac	2008-11-11 16:34:33.000000000 +0000
-@@ -106,6 +106,7 @@
- 
- # Check the C compiler.
- AC_PROG_CC
-+AC_PROG_CXX
- 
- # Compiler flags.
- AC_ARG_ENABLE(debug,   [  --enable-debug          setup flags (gcc) for debugging (default=no)],
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
deleted file mode 100644
index 438f44f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libetpan-0.57/configure.ac~	2009-09-21 23:31:42.000000000 +0200
-+++ libetpan-0.57/configure.ac	2009-09-21 23:31:42.000000000 +0200
-@@ -457,7 +457,7 @@
-       LDFLAGS="-$flag $LDFLAGS"
-       AC_TRY_LINK([], [pthread_create();], 
-                       [pthflag=yes; checkpthread=no], 
--                      [pthflag=no; LDFLAGS="$OLDCFLAGS"])
-+                      [pthflag=no; LDFLAGS="$OLDFLAGS"])
-       AC_MSG_RESULT($pthflag)
-     fi
-   done
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
deleted file mode 100644
index 4f01617..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: libetpan-0.57/rules.mk
-===================================================================
---- libetpan-0.57.orig/rules.mk
-+++ libetpan-0.57/rules.mk
-@@ -134,9 +134,9 @@ prepare-am: prepare-local
- 	         if test -e ../../$(subdir)/$${hdr}; then \
- 	           echo "$(LN_S) -f ../../$(subdir)/$${hdr} ."; \
- 	           $(LN_S) -f ../../$(subdir)/$${hdr} .; \
-              else \
--	           echo "$(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} ."; \
--	           $(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} .; \
-+	           echo "$(LN_S) -f $(srcdir)/$${hdr} ."; \
-+	           $(LN_S) -f $(srcdir)/$${hdr} .; \
-              fi; \
-            fi; \
- 	     done; \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
deleted file mode 100644
index 5cadf16..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "libetpan is a library for communicating with mail and news servers. \
-It supports the protocols SMTP, POP3, IMAP and NNTP."
-HOMEPAGE = "http://www.etpan.org"
-SECTION = "libs"
-DEPENDS = "gnutls liblockfile curl"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f18ebe7e452708c26f83954f81062ba7"
-
-PR = "r1"
-
-# http://errors.yoctoproject.org/Errors/Details/25823/
-PNBLACKLIST[libetpan] ?= "Not compatible with gnutls version 3.4 currently in oe-core - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libetpan/libetpan-${PV}.tar.gz \
-           file://libetpan-autoreconf.patch \
-           file://libetpan-ldflags.patch \
-           file://sepbuild.patch"
-
-inherit autotools pkgconfig gettext binconfig
-
-EXTRA_OECONF = "--without-openssl --without-sasl --with-gnutls --disable-db"
-
-PARALLEL_MAKE = ""
-
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-dev = "${bindir} ${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libdir}/pkgconfig"
-
-
-SRC_URI[md5sum] = "8ce8c6c071e81884a475b12b7f9a9cc0"
-SRC_URI[sha256sum] = "1f3fda5c9e2961d1a6298dc8aadae321493d37727d8db45bc2e8d58f20547011"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
similarity index 85%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
index 199e5a8..6bea165 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
@@ -14,8 +14,8 @@
 
 SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
 
-SRC_URI[md5sum] = "156cdf40cece9f8a3ce1582db59a502a"
-SRC_URI[sha256sum] = "9a8c95c94bfbcf36584a0a58a6e2003d9b133213d9202b76aec76302ffaa81f4"
+SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2"
+SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681cb31b74"
 
 S = "${WORKDIR}/${BPN}1-${PV}"
 
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.bb
new file mode 100644
index 0000000..c506057
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb
@@ -0,0 +1,23 @@
+SUMMARY = "C library and tools for interacting with the linux GPIO character device"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
+
+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
+PACKAGECONFIG ?= "tools"
+
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
+PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,"
+
+PACKAGES += " ${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
index ec8f360..7f425cd 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
@@ -1,4 +1,5 @@
 SUMMARY = "JavaScript library for dynamic web applications"
+HOMEPAGE = "https://jquery.com/"
 LICENSE = "MIT | BSD | GPL-2"
 LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=5d1ec6f95e0a91d38e2f71de93ddb00e"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
index 92ab31f..4928b6c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
@@ -1,4 +1,5 @@
 SUMMARY = "Pure-JavaScript CSS selector engine"
+HOMEPAGE = "https://github.com/jquery/sizzle/wiki"
 LICENSE = "GPL-2.0 & MIT & AFL-2.1"
 LIC_FILES_CHKSUM = "file://MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch
deleted file mode 100644
index a02bbd4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From: jose.bollo@iot.bzh
-Date: Thu, 4 May 2017 21:47:38 +0200
-Subject: [PATCH] Check response existence on upgrade
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When a connection upgrade is requested and when the
-request sent an error reply, the response is most of
-the time already sent when the test on
-connection->response->upgrade_handler is made, leading
-to dereferencing NULL.
-
-Two possibilities exist:
-
-  NULL == connection->response || NULL == connection->response->upgrade_handler
-
-or
-
-  NULL != connection->response && NULL == connection->response->upgrade_handler
-
-The first is prefered because it is probably safer to close the connection
-in that case.
-
-Upstream-Status: Accepted [https://gnunet.org/git/libmicrohttpd.git/commit/?id=b4216c60fdb5b48f6cfec416301fc63a1167e6cd]
-
-Change-Id: Ie6e7fc165f7fe3635ade0952bb34a0b937d38716
-Signed-off-by: José Bollo <jobol@nonadev.net>
-Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- src/microhttpd/connection.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
-index a495524..d39c110 100644
---- a/src/microhttpd/connection.c
-+++ b/src/microhttpd/connection.c
-@@ -882,7 +882,7 @@ keepalive_possible (struct MHD_Connection *connection)
- #ifdef UPGRADE_SUPPORT
-     if ( (MHD_str_equal_caseless_ (end,
-                                    "upgrade")) &&
--         (NULL == connection->response->upgrade_handler) )
-+         (NULL == connection->response || NULL == connection->response->upgrade_handler) )
-       return MHD_NO;
- #endif /* UPGRADE_SUPPORT */
- 
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.53.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
similarity index 76%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.53.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
index 45f2460..ee399a7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.53.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
@@ -6,11 +6,8 @@
 DEPENDS = "libgcrypt gnutls file"
 
 SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "5a425e993a0f5295aecb5d6607a1c242"
-SRC_URI[sha256sum] = "9b15ec2d381f44936323adfd4f989fa35add517cccbbfa581896b02a393c2cc4"
-
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-SRC_URI += " file://Check-response-existence-on-upgrade.patch"
+SRC_URI[md5sum] = "1c20f84a8b9cf692dd50b558b3571a3a"
+SRC_URI[sha256sum] = "0c1cab8dc9f2588bd3076a28f77a7f8de9560cbf2d80e53f9a8696ada80ed0f8"
 
 inherit autotools lib_package pkgconfig gettext
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
index 02fe805..3e35f4d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
@@ -1,6 +1,7 @@
 # Copyright (c) 2013  LG Electronics, Inc.
 
 SUMMARY = "libnih library"
+HOMEPAGE = "https://launchpad.net/libnih"
 DESCRIPTION = "libnih is a small library for C application development \
     containing functions that, despite its name, are not implemented \
     elsewhere in the standard library set. \
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 c31f483..74e1ef2 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
@@ -1,4 +1,5 @@
 SUMMARY = "A tiny C support library"
+HOMEPAGE = "https://my.balabit.com/downloads/libol"
 SECTION = "libs"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
similarity index 63%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
index d88006c..949c337 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
@@ -9,16 +9,12 @@
 DEPENDS = "libtool openssl"
 
 SRC_URI = "git://github.com/OpenSC/libp11.git"
-SRCREV = "22de793340ab73cafc92f8238afb51a06d8411c3"
+SRCREV = "64569a391897bd29c5060b19fa4613e619e59277"
 
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
 
-# Currently, Makefile dependencies are incorrectly defined which causes build errors
-# The number of jobs is high
-# See https://github.com/OpenSC/libp11/issues/94
-PARALLEL_MAKE = ""
 EXTRA_OECONF = "--disable-static"
 
 do_install_append () {
@@ -26,5 +22,5 @@
     rm -rf ${D}${docdir}/${BPN}
 }
 
-FILES_${PN} += "${libdir}/pkcs11${SOLIBS}"
-FILES_${PN}-dev += "${libdir}/pkcs11${SOLIBSDEV}"
+FILES_${PN} += "${libdir}/engines/pkcs11.so"
+FILES_${PN}-dev += "${libdir}/engines/libpkcs11${SOLIBSDEV}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
similarity index 84%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.7.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
index c62dab1..94bfb8f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.7.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
@@ -8,8 +8,8 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca"
 
 SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "b01662a210e94cccf2f76094db7dac5c"
-SRC_URI[sha256sum] = "e4561fd43a50539a8c2ceb37841691baf03ecb7daf043766da1b112e4280d584"
+SRC_URI[md5sum] = "3d1147cae66e2959ea5441b183de1b1c"
+SRC_URI[sha256sum] = "39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4"
 
 inherit autotools pkgconfig
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
new file mode 100644
index 0000000..31c0d29
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
@@ -0,0 +1,25 @@
+From e9fee689430af7791b932a1ee3c2cc103ccf290f Mon Sep 17 00:00:00 2001
+From: Stefan Eichenberger <stefan.eichenberger@netmodule.com>
+Date: Wed, 2 Nov 2016 05:43:43 -0400
+Subject: [PATCH] Do not strip libtar.
+
+---
+ libtar/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libtar/Makefile.in b/libtar/Makefile.in
+index 7c6f1bc..80bb8d9 100644
+--- a/libtar/Makefile.in
++++ b/libtar/Makefile.in
+@@ -20,7 +20,7 @@ SHELL           = @SHELL@
+ 
+ ### Installation programs and flags
+ INSTALL		= @INSTALL@
+-INSTALL_PROGRAM	= @INSTALL_PROGRAM@ -s
++INSTALL_PROGRAM	= @INSTALL_PROGRAM@
+ INSTALL_DATA	= @INSTALL_DATA@
+ LN_S		= @LN_S@
+ MKDIR		= @MKDIR@
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
new file mode 100644
index 0000000..178a970
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
@@ -0,0 +1,19 @@
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 4623100..1c6b43d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -13,6 +13,7 @@ AC_CONFIG_MACRO_DIR([autoconf])
+ AM_INIT_AUTOMAKE([dist-bzip2])
+ ENCAP_PKG([], [postinstall-encap])
+ 
++LT_INIT
+ 
+ dnl ### Load subdirectory modules. ##################################
+ PSG_MODULE([compat])
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
new file mode 100644
index 0000000..60710f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
@@ -0,0 +1,21 @@
+SUMMARY = "libtar, tar manipulating library"
+DESCRIPTION = "libtar is a library for manipulating POSIX tar files"
+HOMEPAGE = "http://www.feep.net/libtar"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=61cbac6719ae682ce6cd45b5c11e21af"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz \
+           file://fix_libtool_sysroot.patch \
+           file://0002-Do-not-strip-libtar.patch \
+           "
+
+S = "${WORKDIR}/${BPN}"
+
+SRC_URI[md5sum] = "6ced95ab3a4b33fbfe2dfb231d156cdb"
+SRC_URI[sha256sum] = "50f24c857a7ef1cb092e6508758b86d06f1188508f897f3e6b40c573e8879109"
+
+inherit autotools-brokensep
+
+PACKAGECONFIG ??= "zlib"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch
new file mode 100644
index 0000000..a4a17ed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch
@@ -0,0 +1,28 @@
+From 0ab69dc18a2057ff5bf41abcdf2b983b72d5a903 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jul 2017 15:34:49 -0700
+Subject: [PATCH 1/2] include sys/select.h for fd_set definition
+
+Fixes
+teamnl.c:160:2: error: unknown type name 'fd_set'; did you mean 'fpos_t'?
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ utils/teamnl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/utils/teamnl.c b/utils/teamnl.c
+index e8de7e2..25129e8 100644
+--- a/utils/teamnl.c
++++ b/utils/teamnl.c
+@@ -24,6 +24,7 @@
+ #include <getopt.h>
+ #include <errno.h>
+ #include <sys/signalfd.h>
++#include <sys/select.h>
+ #include <signal.h>
+ #include <unistd.h>
+ #include <team.h>
+-- 
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch
new file mode 100644
index 0000000..beabf63
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch
@@ -0,0 +1,40 @@
+From a5b945cb3c62a18dcd7047f62707c09076c4e48b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jul 2017 15:35:51 -0700
+Subject: [PATCH 2/2] teamd: Re-adjust include header order
+
+So it gets the library definition before kernel definition
+
+usr/include/ne
+tinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
+ struct ethhdr {
+        ^~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ teamd/teamd_runner_lacp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
+index 9c77fae..8800854 100644
+--- a/teamd/teamd_runner_lacp.c
++++ b/teamd/teamd_runner_lacp.c
+@@ -23,6 +23,7 @@
+ #include <unistd.h>
+ #include <limits.h>
+ #include <sys/ioctl.h>
++#include <net/ethernet.h>
+ #include <linux/if_ether.h>
+ #include <sys/socket.h>
+ #include <linux/netdevice.h>
+@@ -30,7 +31,6 @@
+ #include <errno.h>
+ #include <team.h>
+ #include <private/misc.h>
+-#include <net/ethernet.h>
+ 
+ #include "teamd.h"
+ #include "teamd_config.h"
+-- 
+2.13.2
+
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
new file mode 100644
index 0000000..3222700
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Library for controlling team network device"
+HOMEPAGE = "http://www.libteam.org/"
+SECTION = "libs/network"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libnl libdaemon jansson"
+
+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 \
+           "
+SRCREV = "91a928a56a501daac5ce8b3c16bd9943661f1d16"
+
+SRC_URI[md5sum] = "565114d70c41bff6093d8e57be284e8a"
+SRC_URI[sha256sum] = "d65286379141db141bea33424ec0507bb0f827a0bf03d9c65004bb593e3d5545"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+FILES_${PN} = "${libdir}/libteam${SOLIBS} \
+"
+
+PACKAGES += "${PN}-dctl ${PN}-utils"
+FILES_${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \
+"
+FILES_${PN}-utils = "${bindir}/bond2team \
+                     ${bindir}/teamd \
+                     ${bindir}/teamdctl \
+                     ${bindir}/teamnl \
+"
+
+RDEPENDS_${PN}-utils = "bash"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_4.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb
similarity index 81%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_4.0.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb
index 3a66598..8b5ab44 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_4.0.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb
@@ -6,10 +6,12 @@
 
 SRC_URI = "git://github.com/leethomason/tinyxml2.git"
 
-SRCREV = "74d44acb176f8510abf28ee0a70961eb26631988"
+SRCREV = "37bc3aca429f0164adf68c23444540b4a24b5778"
 
 S = "${WORKDIR}/git"
 
 inherit cmake
 
+FILES_${PN}-dev += "${libdir}/cmake/"
+
 BBCLASSEXTEND = "native"
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-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
new file mode 100644
index 0000000..fb3878d
--- /dev/null
+++ b/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
@@ -0,0 +1,88 @@
+From 727524453f115ddc05109e9bbb3d0e60a7db9185 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 15:05:50 -0700
+Subject: [PATCH] prog: Do not limit sys/io.h header include to just glibc
+
+musl provides it too.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ prog/dump/isadump.c | 6 ------
+ prog/dump/isaset.c  | 6 ------
+ prog/dump/superio.c | 5 -----
+ prog/dump/util.c    | 5 -----
+ 4 files changed, 22 deletions(-)
+
+diff --git a/prog/dump/isadump.c b/prog/dump/isadump.c
+index e0e6f00..8794537 100644
+--- a/prog/dump/isadump.c
++++ b/prog/dump/isadump.c
+@@ -36,13 +36,7 @@
+ #include "util.h"
+ #include "superio.h"
+ 
+-
+-/* To keep glibc2 happy */
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+ 
+ #ifdef __powerpc__
+ unsigned long isa_io_base = 0; /* XXX for now */
+diff --git a/prog/dump/isaset.c b/prog/dump/isaset.c
+index e743755..85a4f64 100644
+--- a/prog/dump/isaset.c
++++ b/prog/dump/isaset.c
+@@ -32,13 +32,7 @@
+ #include <string.h>
+ #include "util.h"
+ 
+-
+-/* To keep glibc2 happy */
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+ 
+ #ifdef __powerpc__
+ unsigned long isa_io_base = 0; /* XXX for now */
+diff --git a/prog/dump/superio.c b/prog/dump/superio.c
+index 64ef27b..906fe55 100644
+--- a/prog/dump/superio.c
++++ b/prog/dump/superio.c
+@@ -20,12 +20,7 @@
+ */
+ 
+ #include <stdlib.h>
+-
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+ 
+ #include "superio.h"
+ 
+diff --git a/prog/dump/util.c b/prog/dump/util.c
+index 874c1b9..197fa64 100644
+--- a/prog/dump/util.c
++++ b/prog/dump/util.c
+@@ -11,12 +11,7 @@
+ #include <stdio.h>
+ #include "util.h"
+ 
+-/* To keep glibc2 happy */
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+ 
+ /* Return 1 if we should continue, 0 if we should abort */
+ int user_ack(int def)
+-- 
+2.13.3
+
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-support/lm_sensors/lmsensors_3.4.0.bb
index dbc05a8..454a69f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
@@ -11,6 +11,7 @@
            file://fancontrol.init \
            file://sensord.init \
            file://0001-lmsensors-sensors-detect-print-a-special-message-whe.patch \
+           file://0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch \
 "
 SRC_URI[md5sum] = "1e9f117cbfa11be1955adc96df71eadb"
 SRC_URI[sha256sum] = "e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e"
@@ -37,6 +38,11 @@
         CC="${CC}" AR="${AR}"'
 
 do_compile() {
+    sed -i -e 's:^# \(PROG_EXTRA\):\1:' ${S}/Makefile
+    # Respect LDFLAGS
+    sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' ${S}/Makefile
+    sed -i -e 's/\$(LIBSHSONAME) -o/$(LIBSHSONAME) \$(LDFLAGS) -o/g' \
+                ${S}/lib/Module.mk
     oe_runmake user PROG_EXTRA="sensors sensord"
 }
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
new file mode 100644
index 0000000..5ae36bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
@@ -0,0 +1,52 @@
+SUMMARY = "A utility for finding interesting messages in log files"
+DESCRIPTION = "Logwarn searches for interesting messages in log files, \
+  where 'interesting' is defined by a user-supplied list of positive and \
+  negative extended regular expressions. \
+"
+HOMEPAGE = "https://github.com/archiecobbs/logwarn/wiki"
+SECTION = "console/utils"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "https://s3.amazonaws.com/archie-public/${BPN}/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "e544a6230673ea54f7430bf817bb39d8"
+SRC_URI[sha256sum] = "8dbfcf9b28c782ab3bddd6a620d4fb95d1b0ffcbe93276996cdc4800aa9aebd1"
+
+inherit autotools-brokensep
+
+# This directory is NOT volatile.
+#
+lcl_default_state_dir = "${localstatedir}/lib/logwarn"
+
+CFLAGS += '-DDEFAULT_STATE_DIR=\""${lcl_default_state_dir}\""'
+
+CACHED_CONFIGUREVARS += " \
+    ac_cv_path_BASH_SHELL=${base_bindir}/bash \
+    ac_cv_path_CAT=${base_bindir}/cat \
+    ac_cv_path_RM=${base_bindir}/rm \
+    ac_cv_path_SED=${base_bindir}/sed \
+"
+
+# Make sure some files exist for autoreconf.
+#
+do_configure_prepend () {
+    touch ${S}/NEWS
+    touch ${S}/ChangeLog
+    touch ${S}/README
+}
+
+# Create a directory for logfile state info, usually under /var/lib.
+#
+do_install_append () {
+    install -d ${D}${lcl_default_state_dir}
+}
+
+# Make a package for the nagios plug-in (script).
+#
+PACKAGES += "${PN}-nagios"
+
+FILES_${PN}-nagios = "${nonarch_libdir}/nagios"
+
+RDEPENDS_${PN}-nagios += "bash coreutils sed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
new file mode 100644
index 0000000..15aa9f5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
@@ -0,0 +1,58 @@
+From d8bb25e34d6533ba78eaae697771ee499a66706f Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 2 Aug 2017 03:41:37 -0400
+Subject: [PATCH] do not build manual
+
+On some host (ubuntu 1404), build manual failed.
+...
+./tools/man-generator --primary lvscan lvscan.8_des
+Failed to stat description file lvscan.8_des.
+...
+
+Do not build man to workaround the issue.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile.in  | 4 ++--
+ configure.in | 1 -
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 31d428d..24f89a2 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -18,7 +18,7 @@ top_builddir = @top_builddir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ 
+-SUBDIRS = conf daemons include lib libdaemon libdm man scripts tools
++SUBDIRS = conf daemons include lib libdaemon libdm scripts tools
+ 
+ ifeq ("@UDEV_RULES@", "yes")
+   SUBDIRS += udev
+@@ -69,7 +69,7 @@ liblvm.device-mapper: include.device-mapper
+ daemons.device-mapper: libdm.device-mapper
+ tools.device-mapper: libdm.device-mapper
+ scripts.device-mapper: include.device-mapper
+-device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper
++device-mapper: tools.device-mapper daemons.device-mapper
+ 
+ ifeq ("@INTL@", "yes")
+ lib.pofile: include.pofile
+diff --git a/configure.in b/configure.in
+index 1dc8819..108ace4 100644
+--- a/configure.in
++++ b/configure.in
+@@ -2213,7 +2213,6 @@ libdm/Makefile
+ libdm/libdevmapper.pc
+ liblvm/Makefile
+ liblvm/liblvm2app.pc
+-man/Makefile
+ po/Makefile
+ python/Makefile
+ python/setup.py
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch
new file mode 100644
index 0000000..0e68d62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch
@@ -0,0 +1,32 @@
+From 24a2c47fd01dde1710f1fa66f5c30ce7010c5956 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 21 Sep 2017 15:28:10 +0800
+Subject: [PATCH] start lvm2-monitor.service after tmp.mount
+
+The lvm2-monitor.service reqires the existence of locking_dir
+("/tmp/lock/lvm"), and unit tmp.mount is to mount /tmp.
+So start lvm2-monitor.service after tmp.mount
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in
+index 22238b7..93b2bee 100644
+--- a/scripts/lvm2_monitoring_systemd_red_hat.service.in
++++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in
+@@ -2,7 +2,7 @@
+ Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
+ Documentation=man:dmeventd(8) man:lvcreate(8) man:lvchange(8) man:vgchange(8)
+ Requires=dm-event.socket lvm2-lvmetad.socket
+-After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service
++After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service tmp.mount
+ Before=local-fs-pre.target
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
index 9e3b5fe..c2bb85d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
@@ -214,7 +214,7 @@
 
     # Local non-LV directory that holds file-based locks while commands are
     # in progress.  A directory like /tmp that may get wiped on reboot is OK.
-    locking_dir = "/var/lock/lvm"
+    locking_dir = "/tmp/lock/lvm"
 
     # Other entries can go here to allow you to load shared libraries
     # e.g. if support for LVM1 metadata was compiled as a shared library use
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb
deleted file mode 100644
index 462e8fb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-require lvm2.inc
-
-SRC_URI[md5sum] = "c5a54ee0b86703daaad6e856439e115a"
-SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655051b94"
-
-DEPENDS += "autoconf-archive-native"
-
-PACKAGECONFIG = ""
-
-# Unset user/group to unbreak install.
-EXTRA_OECONF = "--with-user= \
-                --with-group= \
-                --enable-pkgconfig \
-                --with-usrlibdir=${libdir} \
-"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install_append() {
-    # Remove things unrelated to libdevmapper
-    rm -rf ${D}${sysconfdir}
-    for i in `ls ${D}${sbindir}/*`; do
-	if [ $i != ${D}${sbindir}/dmsetup ]; then
-	    rm $i
-	fi
-    done
-    # Remove docs
-    rm -rf ${D}${datadir}
-}
-
-RRECOMMENDS_${PN} += "lvm2-udevrules"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
new file mode 100644
index 0000000..b6ae902
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
@@ -0,0 +1,16 @@
+require lvm2.inc
+
+SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
+SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
+
+DEPENDS += "autoconf-archive-native"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' -C libdm install
+}
+
+RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
index cb5a9e0..289e07d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -1,3 +1,4 @@
+HOMEPAGE = "https://www.sourceware.org/lvm2/"
 SECTION = "utils"
 DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
 LICENSE = "GPLv2 & LGPLv2"
@@ -13,16 +14,25 @@
            file://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \
            file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \
            file://0001-Avoid-bashisms-in-init-scripts.patch \
+           file://0005-do-not-build-manual.patch \
+           file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
            "
 S = "${WORKDIR}/LVM2.${PV}"
 
-inherit autotools-brokensep pkgconfig systemd
+inherit autotools-brokensep pkgconfig systemd license
+
+LVM2_PACKAGECONFIG = "dmeventd lvmetad"
+LVM2_PACKAGECONFIG_append_class-target = " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
+    ${@incompatible_license_contains('GPLv3', '', 'thin-provisioning-tools', d)} \
+    udev \
+"
 
 # odirect is always enabled because there currently is a bug in
 # lib/device/dev-io.c which prevents compiling without it. It is
 # better to stick to configurations that were actually tested by
 # upstream...
-PACKAGECONFIG_append = " odirect"
+PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}"
 
 PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd"
 PACKAGECONFIG[lvmetad] = "--enable-lvmetad,--disable-lvmetad"
@@ -31,3 +41,20 @@
 PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
 PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools"
 PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev"
+
+# Unset user/group to unbreak install.
+EXTRA_OECONF = "--with-user= \
+                --with-group= \
+                --enable-realtime \
+                --enable-applib \
+                --enable-cmdlib \
+                --enable-pkgconfig \
+                --with-usrlibdir=${libdir} \
+                --with-systemdsystemunitdir=${systemd_system_unitdir} \
+                --disable-thin_check_needs_check \
+                --with-thin-check=${sbindir}/thin_check \
+                --with-thin-dump=${sbindir}/thin_dump \
+                --with-thin-repair=${sbindir}/thin_repair \
+                --with-thin-restore=${sbindir}/thin_restore \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
new file mode 100644
index 0000000..e85818d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
@@ -0,0 +1,36 @@
+From 0a8e466fcf99622896e070c5133165e4278e8cfb Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 25 May 2017 05:27:11 -0400
+Subject: [PATCH] explicitly do not install libdm
+
+Already have package libdevmapper which split from lvm2,
+explicitly do not do the installation here.
+
+Upstream-Status: Inappropriate [meta-oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ libdm/Makefile.in | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libdm/Makefile.in b/libdm/Makefile.in
+index 3c9a4ce..45c91c6 100644
+--- a/libdm/Makefile.in
++++ b/libdm/Makefile.in
+@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes")
+   INSTALL_TYPE += install_pkgconfig
+ endif
+ 
+-install: $(INSTALL_TYPE) install_include
++install:
++	echo "Do not install device mappler in lvm2"
+ 
+-install_device-mapper: install
++install_device-mapper:
++	echo "Do not install device mappler in lvm2"
+ 
+ install_include: $(srcdir)/libdevmapper.h
+ 	$(INSTALL_DATA) -D $< $(includedir)/$(<F)
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
similarity index 60%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
index 7939f05..84881e7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
@@ -1,35 +1,12 @@
 require lvm2.inc
 
-SRC_URI[md5sum] = "c5a54ee0b86703daaad6e856439e115a"
-SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655051b94"
+SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
+SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
+
+SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
 
 DEPENDS += "autoconf-archive-native"
 
-LVM2_PACKAGECONFIG = "dmeventd lvmetad"
-LVM2_PACKAGECONFIG_append_class-target = " \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
-    thin-provisioning-tools \
-    udev \
-"
-
-PACKAGECONFIG ??= "${LVM2_PACKAGECONFIG}"
-
-# Unset user/group to unbreak install.
-EXTRA_OECONF = "--with-user= \
-                --with-group= \
-                --enable-realtime \
-                --enable-applib \
-                --enable-cmdlib \
-                --enable-pkgconfig \
-                --with-usrlibdir=${libdir} \
-                --with-systemdsystemunitdir=${systemd_system_unitdir} \
-                --disable-thin_check_needs_check \
-                --with-thin-check=${sbindir}/thin_check \
-                --with-thin-dump=${sbindir}/thin_dump \
-                --with-thin-repair=${sbindir}/thin_repair \
-                --with-thin-restore=${sbindir}/thin_restore \
-"
-
 CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
 
 do_install_append() {
@@ -45,10 +22,6 @@
         mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
         rm -rf ${D}${sysconfdir}/rc.d
     fi
-    # Remove things related to libdevmapper
-    rm -f ${D}${sbindir}/dmsetup
-    rm -f ${D}${libdir}/libdevmapper.so.*
-    rm -f ${D}${libdir}/libdevmapper.so ${D}${libdir}/pkgconfig/devmapper.pc ${D}${includedir}/libdevmapper.h
 }
 
 PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb
deleted file mode 100644
index a5d9962..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Lossless data compressor based on the LZMA algorithm"
-HOMEPAGE = "http://lzip.nongnu.org/lzip.html"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
-                    file://decoder.cc;endline=16;md5=0809128ac32163252846e09a70c8b80b"
-
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/lzip/lzip-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "716a9876dc595ec52d4f3bda81e42471"
-SRC_URI[sha256sum] = "128cc25baf92c8b69700831e6f984d954016318cc78edca87870d0c033112751"
-
-CONFIGUREOPTS = "\
-    '--srcdir=${S}' \
-    '--prefix=${prefix}' \
-    '--exec-prefix=${exec_prefix}' \
-    '--bindir=${bindir}' \
-    '--datadir=${datadir}' \
-    '--infodir=${infodir}' \
-    '--sysconfdir=${sysconfdir}' \
-    'CXX=${CXX}' \
-    'CPPFLAGS=${CPPFLAGS}' \
-    'CXXFLAGS=${CXXFLAGS}' \
-    'LDFLAGS=${LDFLAGS}' \
-"
-EXTRA_OEMAKE = ""
-
-B = "${S}/obj"
-do_configure () {
-    ${S}/configure ${CONFIGUREOPTS}
-}
-
-do_install () {
-    oe_runmake 'DESTDIR=${D}' install
-    # Info dir listing isn't interesting at this point so remove it if it exists.
-    if [ -e "${D}${infodir}/dir" ]; then
-        rm -f ${D}${infodir}/dir
-    fi
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.46.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
similarity index 84%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.46.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
index 58b8f02..114ce46 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.46.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
@@ -1,4 +1,5 @@
 SUMMARY = "Helper application and MIME type associations for file types"
+HOMEPAGE = "https://pagure.io/mailcap"
 DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \
 mailcap file to determine how it should display non-text or multimedia \
 material. Basically, mailcap associates a particular type of file \
@@ -17,8 +18,8 @@
 
 SRC_URI = "https://releases.pagure.org/${BPN}/${BP}.tar.xz"
 
-SRC_URI[md5sum] = "d865a1baf574ae5d309f5c1f79315800"
-SRC_URI[sha256sum] = "c68eb3b531d731476d5980c9b7cc287bd64c2a13bec5a537009a2c4af63f9bb0"
+SRC_URI[md5sum] = "2c26e18e912a5cf00318fcf7f8f2d747"
+SRC_URI[sha256sum] = "d7b023b237d6053bf05ff6786e0663c55c614efcc99cdf856120be13b5c29157"
 
 do_install() {
     oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
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-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
new file mode 100644
index 0000000..5da3448
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
@@ -0,0 +1,36 @@
+From fbfceebce2121831904f2f7115252dd03b413a6d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 18:52:53 -0700
+Subject: [PATCH] IntelRDFPMathLib20U1: Check for __DEFINED_wchar_t
+
+This is defined by musl if wchar_t is already defined
+
+avoids errors like
+
+src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h:46:15: error: typedef redefinition with different types
+      ('int' vs 'unsigned int')
+typedef int   wchar_t;
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+index 2b3f76db86..cc80305775 100755
+--- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
++++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+@@ -42,7 +42,7 @@
+ #include <ctype.h>
+ 
+ // Fix system header issue on Sun solaris and define required type by ourselves
+-#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__)
++#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) && !defined(__DEFINED_wchar_t)
+ typedef int   wchar_t;
+ #endif
+ 
+-- 
+2.14.1
+
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-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
new file mode 100644
index 0000000..f8c419d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
@@ -0,0 +1,50 @@
+From 3eed8388b49d5d3cbc2db74fee1b017eb4b40d0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 10:06:24 -0700
+Subject: [PATCH] Use __GLIBC__ to control use of gnu_get_libc_version
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+ src/mongo/util/processinfo_linux.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp
+index 910015215e..bf8c1ffd15 100644
+--- a/src/mongo/util/processinfo_linux.cpp
++++ b/src/mongo/util/processinfo_linux.cpp
+@@ -40,7 +40,7 @@
+ #include <sys/mman.h>
+ #include <sys/utsname.h>
+ #include <unistd.h>
+-#ifdef __UCLIBC__
++#ifndef __GLIBC__
+ #include <features.h>
+ #else
+ #include <gnu/libc-version.h>
+@@ -451,11 +451,13 @@ double ProcessInfo::getSystemMemoryPressurePercentage() {
+ }
+ 
+ void ProcessInfo::getExtraInfo(BSONObjBuilder& info) {
++#if defined(__GLIBC__)
+     LinuxProc p(_pid);
+     if (p._maj_flt <= std::numeric_limits<long long>::max())
+         info.appendNumber("page_faults", static_cast<long long>(p._maj_flt));
+     else
+         info.appendNumber("page_faults", static_cast<double>(p._maj_flt));
++#endif
+ }
+ 
+ /**
+@@ -491,7 +493,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
+     stringstream ss;
+     ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__;
+     bExtra.append("libcVersion", ss.str());
+-#else
++#elif defined(__GLIBC__)
+     bExtra.append("libcVersion", gnu_get_libc_version());
+ #endif
+     if (!verSig.empty())
+-- 
+2.14.1
+
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-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
new file mode 100644
index 0000000..c43beb4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -0,0 +1,67 @@
+From a4951489d649c2b609cbb80f6cfb49fdcad8bd43 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 10:03:37 -0700
+Subject: [PATCH] Use long long instead of int64_t
+
+Fixes
+error: call to member function 'appendNumber' is ambiguous
+since this function expects long long as parameter and not int64_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+ 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,
+ 
+                     StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
+ 
+-                    uint64_t value;
++                    long long  value;
+ 
+                     if (!parseNumberFromString(stringValue, &value).isOK()) {
+                         value = 0;
+@@ -272,7 +272,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
+             } else {
+                 StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
+ 
+-                uint64_t value;
++                long long value;
+ 
+                 if (!parseNumberFromString(stringValue, &value).isOK()) {
+                     value = 0;
+@@ -365,7 +365,7 @@ Status parseProcMemInfo(const std::vector<StringData>& keys,
+ 
+             StringData stringValue((*partIt).begin(), (*partIt).end());
+ 
+-            uint64_t value;
++            long long value;
+ 
+             if (!parseNumberFromString(stringValue, &value).isOK()) {
+                 value = 0;
+@@ -426,7 +426,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+                           StringData data,
+                           BSONObjBuilder* builder) {
+     bool foundKeys = false;
+-    std::vector<uint64_t> stats;
++    std::vector<long long> stats;
+     stats.reserve(kDiskFieldCount);
+ 
+     using string_split_iterator = boost::split_iterator<StringData::const_iterator>;
+@@ -501,7 +501,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+ 
+                 StringData stringValue((*partIt).begin(), (*partIt).end());
+ 
+-                uint64_t value;
++                long long value;
+ 
+                 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-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
new file mode 100644
index 0000000..0334d99
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
@@ -0,0 +1,26 @@
+From a4dfc92ff342e59596ab64267a8d4f22f173c23b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 12:40:41 -0700
+Subject: [PATCH 1/4] Use strerror_r only on glibc systems
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/log.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mongo/util/log.cpp b/src/mongo/util/log.cpp
+index 1957eb4791..ddf3908818 100644
+--- a/src/mongo/util/log.cpp
++++ b/src/mongo/util/log.cpp
+@@ -101,7 +101,7 @@ string errnoWithDescription(int errNumber) {
+     char buf[kBuflen];
+     char* msg{nullptr};
+ 
+-#if defined(__GNUC__) && defined(_GNU_SOURCE)
++#if defined(__GNUC__) && defined(_GNU_SOURCE) && defined(__GLIBC__)
+     msg = strerror_r(errNumber, buf, kBuflen);
+ #elif defined(_WIN32)
+ 
+-- 
+2.14.1
+
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
new file mode 100644
index 0000000..e517d53
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch
@@ -0,0 +1,72 @@
+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/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
new file mode 100644
index 0000000..098306f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
@@ -0,0 +1,35 @@
+From df7ef16afcc6ab55daa686e4f15c16e3d1280337 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 12:42:30 -0700
+Subject: [PATCH 2/4] Add a definition for the macro __ELF_NATIVE_CLASS
+
+It depends on the native arch's word size.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/stacktrace_posix.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/mongo/util/stacktrace_posix.cpp b/src/mongo/util/stacktrace_posix.cpp
+index 53ab85f56f..7c458e7ef2 100644
+--- a/src/mongo/util/stacktrace_posix.cpp
++++ b/src/mongo/util/stacktrace_posix.cpp
+@@ -37,6 +37,15 @@
+ #include <string>
+ #include <sys/utsname.h>
+ 
++#if !defined(__GLIBC__)
++#if defined __x86_64__ && !defined __ILP32__
++# define __WORDSIZE    64
++#else
++# define __WORDSIZE    32
++#endif
++#define __ELF_NATIVE_CLASS __WORDSIZE
++#endif
++
+ #include "mongo/base/init.h"
+ #include "mongo/config.h"
+ #include "mongo/db/jsobj.h"
+-- 
+2.14.1
+
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-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
new file mode 100644
index 0000000..95f9c1c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
@@ -0,0 +1,28 @@
+From 5759878e5d278f11a1063e8fccd1e6b7b54caadf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2017 16:25:37 -0700
+Subject: [PATCH 2/2] d_state.cpp: Add missing dependenncy on
+ local_sharding_info
+
+Fixes
+| src/mongo/s/d_state.cpp:81: error: undefined reference to 'mongo::enableLocalShardingInfo(mongo::ServiceContext*, std::function<bool (mongo::OperationContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ 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
+@@ -317,5 +317,6 @@ env.Library(
+         "$BUILD_DIR/mongo/db/s/sharding",
+         "$BUILD_DIR/mongo/executor/network_interface_factory",
+         "$BUILD_DIR/mongo/s/client/shard_local",
++        "$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-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
new file mode 100644
index 0000000..1591f94
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
@@ -0,0 +1,39 @@
+From 458f80f482a201b427a1c92235804d0c3f98fd51 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 13:01:11 -0700
+Subject: [PATCH 3/4] Conditionalize glibc specific strerror_r
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp    | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
+index 4e7badb14a..0eeae884e2 100644
+--- a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
++++ b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
+@@ -97,17 +97,14 @@ public:
+ #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
+     using namespace std;
+     return strerror(value);
+-#elif defined(__MACH__) && defined(__APPLE__) \
+-  || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
+-  || defined(_AIX) || defined(__hpux) || defined(__osf__) \
+-  || defined(__ANDROID__)
++#elif defined(__GLIBC__) && defined(_GNU_SOURCE)
++    char buf[256] = "";
++    return strerror_r(value, buf, sizeof(buf));
++#else
+     char buf[256] = "";
+     using namespace std;
+     strerror_r(value, buf, sizeof(buf));
+     return buf;
+-#else
+-    char buf[256] = "";
+-    return strerror_r(value, buf, sizeof(buf));
+ #endif
+ #endif // defined(ASIO_WINDOWS)
+   }
+-- 
+2.14.1
+
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-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
new file mode 100644
index 0000000..e871f2b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
@@ -0,0 +1,26 @@
+From a1c77702926eb8546ff96b00b5b994f7478dabae Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 13:13:15 -0700
+Subject: [PATCH 4/4] wiredtiger: Disable strtouq on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/third_party/wiredtiger/build_linux/wiredtiger_config.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
+index 1122e1e319..fdfd48687b 100644
+--- a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
++++ b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
+@@ -101,7 +101,7 @@
+ #define HAVE_STRING_H 1
+ 
+ /* Define to 1 if you have the `strtouq' function. */
+-#define HAVE_STRTOUQ 1
++/* #undef HAVE_STRTOUQ 1 */
+ 
+ /* Define to 1 if you have the `sync_file_range' function. */
+ /* #undef HAVE_SYNC_FILE_RANGE */
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch
new file mode 100644
index 0000000..9046bb2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch
@@ -0,0 +1,43 @@
+Add alises for arm64 which is same as aarch64
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: git/SConstruct
+===================================================================
+--- git.orig/SConstruct
++++ git/SConstruct
+@@ -990,6 +990,7 @@ elif endian == "big":
+ processor_macros = {
+     'arm'     : { 'endian': 'little', 'defines': ('__arm__',) },
+     'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
++    'arm64'   : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
+     'i386'    : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')},
+     'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)},
+     's390x'   : { 'endian': 'big',    'defines': ('__s390x__',)},
+Index: git/src/third_party/IntelRDFPMathLib20U1/SConscript
+===================================================================
+--- git.orig/src/third_party/IntelRDFPMathLib20U1/SConscript
++++ git/src/third_party/IntelRDFPMathLib20U1/SConscript
+@@ -301,7 +301,7 @@ if processor == 'i386':
+ elif processor == 'arm':
+     cpp_defines['IA32'] = '1'
+     cpp_defines['ia32'] = '1'
+-elif processor == "aarch64":
++elif processor == "aarch64" or processor == 'arm64':
+     cpp_defines['efi2'] = '1'
+     cpp_defines['EFI2'] = '1'
+ # Using 64 bit little endian
+Index: git/src/third_party/wiredtiger/SConscript
+===================================================================
+--- git.orig/src/third_party/wiredtiger/SConscript
++++ git/src/third_party/wiredtiger/SConscript
+@@ -139,7 +139,7 @@ condition_map = {
+     'POSIX_HOST'   : not env.TargetOSIs('windows'),
+     'WINDOWS_HOST' : env.TargetOSIs('windows'),
+ 
+-    'ARM64_HOST'   : env['TARGET_ARCH'] == 'aarch64',
++    'ARM64_HOST'   : env['TARGET_ARCH'] in ('aarch64', 'arm64'),
+     'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le',
+     'X86_HOST'     : env['TARGET_ARCH'] == 'x86_64',
+     'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x',
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-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
new file mode 100644
index 0000000..5c5c20c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
@@ -0,0 +1,50 @@
+imported from debian
+
+Upstream-Status: Pending
+Index: git/src/third_party/wiredtiger/SConscript
+===================================================================
+--- git.orig/src/third_party/wiredtiger/SConscript
++++ git/src/third_party/wiredtiger/SConscript
+@@ -169,7 +169,9 @@ if useSnappy:
+ # If not available at runtime, we fall back to software in some cases.
+ #
+ # On zSeries we may disable because SLES 11 kernel doe not support the instructions.
+-if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"):
++# Debian: disable hardware-assisted crc32 on s390x and arm64, as at least the
++# buildd's do not support the instructions.
++if env['TARGET_ARCH'] not in ('s390x', 'arm64', 'aarch64'):
+     env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"])
+ 
+ wtlib = env.Library(
+Index: git/src/third_party/wiredtiger/dist/filelist
+===================================================================
+--- git.orig/src/third_party/wiredtiger/dist/filelist
++++ git/src/third_party/wiredtiger/dist/filelist
+@@ -54,7 +54,6 @@ src/checksum/power8/crc32_wrapper.c	POWE
+ src/checksum/software/checksum.c
+ src/checksum/x86/crc32-x86.c		X86_HOST
+ src/checksum/zseries/crc32-s390x.c	ZSERIES_HOST
+-src/checksum/zseries/crc32le-vx.sx	ZSERIES_HOST
+ src/config/config.c
+ src/config/config_api.c
+ src/config/config_check.c
+Index: git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
+===================================================================
+--- git.orig/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
++++ git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
+@@ -78,6 +78,7 @@ unsigned int __wt_crc32c_le(unsigned int
+ 		return crc;                                                 \
+ 	}
+ 
++#if defined(HAVE_CRC32_HARDWARE)
+ /* Main CRC-32 functions */
+ DEFINE_CRC32_VX(__wt_crc32c_le_vx, __wt_crc32c_le_vgfm_16, __wt_crc32c_le)
+ 
+@@ -90,6 +91,7 @@ __wt_checksum_hw(const void *chunk, size
+ {
+ 	return (~__wt_crc32c_le_vx(0xffffffff, chunk, len));
+ }
++#endif
+ 
+ #endif
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
index f1a6555..0ff7d0b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
@@ -1,18 +1,30 @@
 SUMMARY = "mongodb"
-LICENSE = "AGPL-3.0 & Apache-2.0"
+LICENSE = "AGPL-3.0 & Apache-2.0 & Zlib"
 LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \
                     file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-DEPENDS = "openssl libpcre libpcap zlib"
+DEPENDS = "openssl libpcre libpcap zlib python boost"
 
-inherit scons
+inherit scons dos2unix siteinfo
 
-PV = "3.3.0+git${SRCPV}"
-SRCREV = "aacd231be0626a204cb40908afdf62c4b67bb0ad"
-SRC_URI = "git://github.com/mongodb/mongo.git;branch=master \
+PV = "3.4.6+git${SRCPV}"
+SRCREV = "c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5"
+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 \
+           file://0001-Use-strerror_r-only-on-glibc-systems.patch \
+           file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \
+           file://0003-Conditionalize-glibc-specific-strerror_r.patch \
+           file://arm64-support.patch \
+           file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
+           file://disable-hw-crc32-on-arm64-s390x.patch \
            "
-
+SRC_URI_append_libc-musl ="\
+           file://0004-wiredtiger-Disable-strtouq-on-musl.patch \
+           "
 S = "${WORKDIR}/git"
 
 # Wiredtiger supports only 64-bit platforms
@@ -22,10 +34,13 @@
 # gperftools compilation fails for arm below v7 because of missing support of
 # dmb operation. So we use system-allocator instead of tcmalloc
 PACKAGECONFIG_remove_armv6 = "tcmalloc"
+PACKAGECONFIG_remove_libc-musl = "tcmalloc"
 
 #std::current_exception is undefined for arm < v6
 COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
 COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
+COMPATIBLE_MACHINE_armv7a = "(!.*armv7a).*"
+COMPATIBLE_MACHINE_armv7ve = "(!.*armv7ve).*"
 COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
 COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
 
@@ -43,9 +58,14 @@
                  --use-system-zlib \
                  --js-engine=none \
                  --nostrip \
+                 --endian=${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
                  ${PACKAGECONFIG_CONFARGS} \
                  mongod mongos"
 
+do_configure_prepend() {
+        # tests use hex floats, not supported in plain C++
+        sed -e 's|-std=c++11|-std=gnu++11|g' -i ${S}/SConstruct
+}
 scons_do_compile() {
         ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} || \
         die "scons build execution failed."
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
new file mode 100644
index 0000000..46dd8e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
@@ -0,0 +1,29 @@
+From 330028a5a904a0da3788141030e614569dc5aaa7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jul 2017 23:28:12 -0700
+Subject: [PATCH] kpartx: include limits.h for PATH_MAX
+
+lopart.c:76:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'INT8_MAX'?
+  char path[PATH_MAX];
+            ^~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ kpartx/lopart.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/kpartx/lopart.c b/kpartx/lopart.c
+index 7005445..5efe5dc 100644
+--- a/kpartx/lopart.c
++++ b/kpartx/lopart.c
+@@ -22,6 +22,7 @@
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <limits.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <sys/mman.h>
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
new file mode 100644
index 0000000..acb4269
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
@@ -0,0 +1,107 @@
+From 5ab50e0cb888e553a2635bbbf81eea3cdeffee60 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 12 Apr 2017 09:07:51 -0500
+Subject: [PATCH 01/14] multipath: attempt at common multipath.rules
+
+This is a proposal to try and bring the Redhat and SuSE multipath.rules
+closer. There are a couple of changes that I'd like some input on.
+
+The big change is moving the kpartx call into the multipath rules.  Half
+of the current kpartx.rules file is about creating symlinks for multiple
+types of dm devices. The other half auto-creates kpartx devices on top
+of multipath devices. Since it is only creating kpartx devices on top of
+multipath devices, I've moved the these rules into multipath.rules, or
+rather, I've replaced them with the redhat rules in multipath.rules. The
+biggest difference is the kpartx isn't run on every reload.  It works
+with the 11-dm-mpath.rules code to not run kpartx on multipathd
+generated reloads or when there aren't any working paths. It does
+remember if it didn't get to run kpartx when it was supposed to (because
+there were no valid paths or the device was suspended) and will make
+sure to run it on the next possible uevent.
+
+The other change is the redhat multipath rules remove the partition
+device nodes for devices claimed by multipath. The udev rule will only
+do this one time (both to keep from running partx on every event, and so
+that if users manually reread the partition table, we don't keep
+removing them when clearly they are wanted). Redhat does this because we
+had multiple customer issues where they were using the scsi partitions
+instead of the kpartx devices. Obviously, with setting the partition
+devices to not ready and clearing their fs_type, this isn't essential,
+but it has helped make customers do the right thing.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ kpartx/kpartx.rules       |  8 --------
+ multipath/multipath.rules | 27 ++++++++++++++++++++++++---
+ 2 files changed, 24 insertions(+), 11 deletions(-)
+
+diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
+index a958791..906e320 100644
+--- a/kpartx/kpartx.rules
++++ b/kpartx/kpartx.rules
+@@ -34,12 +34,4 @@ ENV{ID_FS_LABEL_ENC}=="?*", IMPORT{db}="ID_FS_LABEL_ENC"
+ ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", \
+ 	SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
+ 
+-# Create dm tables for partitions
+-ENV{DM_ACTION}=="PATH_FAILED|PATH_REINSTATED", GOTO="kpartx_end"
+-ENV{DM_NR_VALID_PATHS}=="0", GOTO="kpartx_end"
+-ENV{ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
+-ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="kpartx_end"
+-ENV{DM_STATE}!="SUSPENDED", ENV{DM_UUID}=="mpath-*", \
+-	RUN+="/sbin/kpartx -un -p -part /dev/$name"
+-
+ LABEL="kpartx_end"
+diff --git a/multipath/multipath.rules b/multipath/multipath.rules
+index 86defc0..616a04c 100644
+--- a/multipath/multipath.rules
++++ b/multipath/multipath.rules
+@@ -1,13 +1,13 @@
+ # Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath
+ SUBSYSTEM!="block", GOTO="end_mpath"
+ ACTION!="add|change", GOTO="end_mpath"
+-KERNEL!="sd*|dasd*", GOTO="end_mpath"
+-
++KERNEL!="sd*|dasd*|rbd*|dm-*", GOTO="end_mpath"
+ IMPORT{cmdline}="nompath"
+ ENV{nompath}=="?*", GOTO="end_mpath"
+ IMPORT{cmdline}="multipath"
+ ENV{multipath}=="off", GOTO="end_mpath"
+ 
++KERNEL=="dm-*", GOTO="check_kpartx"
+ ENV{DEVTYPE}!="partition", GOTO="test_dev"
+ IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
+ ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="none", \
+@@ -21,7 +21,28 @@ TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
+ 
+ ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
+ 	PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u %k", \
+-	ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="none", \
++	ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="mpath_member", \
+ 	ENV{SYSTEMD_READY}="0"
+ 
++ENV{DM_MULTIPATH_DEVICE_PATH}!="1", GOTO="end_mpath"
++
++IMPORT{db}="DM_MULTIPATH_WIPE_PARTS"
++ENV{DM_MULTIPATH_WIPE_PARTS}!="1", ENV{DM_MULTIPATH_WIPE_PARTS}="1", \
++	RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
++GOTO="end_mpath"
++
++LABEL="check_kpartx"
++
++IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
++ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
++ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
++ACTION!="change", GOTO="end_mpath"
++ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath"
++ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
++ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
++ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
++ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
++RUN+="/sbin/kpartx -un -p -part /dev/$name"
++ENV{DM_MULTIPATH_NEED_KPARTX}=""
++
+ LABEL="end_mpath"
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch
deleted file mode 100644
index 60c3c0a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 630483b9738349c8b3e637a00879b96834a33cdb Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Tue, 7 Jul 2015 11:34:36 +0900
-Subject: [PATCH] multipathd.service: Error fix
-
-Failed to start Device-Mapper Multipath Device Controller.
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- multipathd/multipathd.service | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index e3d6f91..a7e00b2 100644
---- a/multipathd/multipathd.service
-+++ b/multipathd/multipathd.service
-@@ -8,11 +8,12 @@ Wants=local-fs-pre.target multipathd.socket blk-availability.service
- Conflicts=shutdown.target
- 
- [Service]
--Type=notify
-+Type=forking
- NotifyAccess=main
- LimitCORE=infinity
-+PIDFile=/var/run/multipathd.pid
- ExecStartPre=/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
--ExecStart=/sbin/multipathd -d -s
-+ExecStart=/sbin/multipathd
- ExecReload=/sbin/multipathd reconfigure
- 
- [Install]
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
new file mode 100644
index 0000000..e63d2eb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
@@ -0,0 +1,110 @@
+From 158255383c02d3fb81c82fb9ec6fd36fb234f68e Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 13 Apr 2017 07:22:23 -0500
+Subject: [PATCH 02/14] RH: fixup udev rules for redhat
+
+The multipath rules need to run after scsi_id is run. This means moving
+them after 60-persistent-storage.rules for redhat. Also, we don't
+currently set up all the symlinks that SuSE does. If we want them, they
+should be done in the device-mapper package, since they are for all
+device-mapper devices. Redhat also uses a different naming scheme for
+partitions than SuSE.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc              |  2 +-
+ kpartx/Makefile           | 14 +++++++-------
+ multipath/Makefile        |  4 ++--
+ multipath/multipath.rules |  3 ++-
+ 4 files changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 1815f9a..2591fa9 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -47,7 +47,7 @@ endif
+ 
+ prefix		=
+ exec_prefix	= $(prefix)
+-bindir		= $(exec_prefix)/sbin
++bindir		= $(exec_prefix)/usr/sbin
+ libudevdir	= $(prefix)/$(SYSTEMDPATH)/udev
+ udevrulesdir	= $(libudevdir)/rules.d
+ multipathdir	= $(TOPDIR)/libmultipath
+diff --git a/kpartx/Makefile b/kpartx/Makefile
+index 7b75032..bfa6fe8 100644
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
+@@ -26,19 +26,19 @@ $(EXEC): $(OBJS)
+ install: $(EXEC) $(EXEC).8
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ 	$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
+-	$(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
+-	$(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
+-	$(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
+-	$(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
++#	$(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
++#	$(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
++#	$(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
++#	$(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
+ 	$(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
+ 
+ uninstall:
+ 	$(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ 	$(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+-	$(RM) $(DESTDIR)$(libudevdir)/kpartx_id
+-	$(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
+-	$(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
++#	$(RM) $(DESTDIR)$(libudevdir)/kpartx_id
++#	$(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
++#	$(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
+ 
+ clean:
+ 	$(RM) core *.o $(EXEC) *.gz
+diff --git a/multipath/Makefile b/multipath/Makefile
+index c85314e..1e9ee4b 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -24,7 +24,7 @@ install:
+ 	$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ 	$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+-	$(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++	$(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
+ 	$(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+@@ -33,7 +33,7 @@ install:
+ uninstall:
+ 	$(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ 	$(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
+-	$(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++	$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ 	$(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+ 	$(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
+ 
+diff --git a/multipath/multipath.rules b/multipath/multipath.rules
+index 616a04c..4d78b98 100644
+--- a/multipath/multipath.rules
++++ b/multipath/multipath.rules
+@@ -33,6 +33,7 @@ GOTO="end_mpath"
+ 
+ LABEL="check_kpartx"
+ 
++ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10"
+ IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
+ ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
+ ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
+@@ -42,7 +43,7 @@ ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
+ ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
+ ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
+ ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
+-RUN+="/sbin/kpartx -un -p -part /dev/$name"
++RUN+="/sbin/kpartx -un /dev/$name"
+ ENV{DM_MULTIPATH_NEED_KPARTX}=""
+ 
+ LABEL="end_mpath"
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
new file mode 100644
index 0000000..684e959
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
@@ -0,0 +1,70 @@
+From 69a67c2ed09ae51b53de402966a9f7a4cc737715 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 2 Jul 2014 12:49:53 -0500
+Subject: [PATCH 03/14] RH: Remove the property blacklist exception builtin
+
+Multipath set the default property blacklist exceptions to
+(ID_SCSI_VPD|ID_WWN).  This has the effect of blacklisting some internal
+devices.  These devices may never have multiple paths, but it is nice
+to be able to set multipath up on them all the same.  This patch simply
+removes the default, and makes it so that if no property
+blacklist_exception is given, then devices aren't failed for not matching
+it.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/blacklist.c   | 15 ++++++---------
+ multipath/multipath.conf.5 |  4 ----
+ 2 files changed, 6 insertions(+), 13 deletions(-)
+
+diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
+index ee396e2..19d4697 100644
+--- a/libmultipath/blacklist.c
++++ b/libmultipath/blacklist.c
+@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf)
+ 	if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
+ 		return 1;
+ 
+-	str = STRDUP("(SCSI_IDENT_|ID_WWN)");
+-	if (!str)
+-		return 1;
+-	if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT))
+-		return 1;
+-
+ 	vector_foreach_slot (conf->hwtable, hwe, i) {
+ 		if (hwe->bl_product) {
+ 			if (_blacklist_device(conf->blist_device, hwe->vendor,
+@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev)
+ 	 * This is the inverse of the 'normal' matching;
+ 	 * the environment variable _has_ to match.
+ 	 */
+-	log_filter(devname, NULL, NULL, NULL, NULL,
+-		   MATCH_PROPERTY_BLIST_MISSING);
+-	return MATCH_PROPERTY_BLIST_MISSING;
++	if (VECTOR_SIZE(conf->elist_property)) {
++		log_filter(devname, NULL, NULL, NULL, NULL,
++			   MATCH_PROPERTY_BLIST_MISSING);
++		return MATCH_PROPERTY_BLIST_MISSING;
++	}
++	return 0;
+ }
+ 
+ void
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index f04ff19..fbbbb27 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -1014,10 +1014,6 @@ The \fIWorld Wide Identification\fR of a device.
+ .TP
+ .B property
+ Regular expression of the udev property to be whitelisted.
+-.RS
+-.TP
+-The default is: \fB(SCSI_IDENT_|ID_WWN)\fR
+-.RE
+ .TP
+ .B device
+ Subsection for the device description. This subsection recognizes the
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
new file mode 100644
index 0000000..87a6d3f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
@@ -0,0 +1,108 @@
+From b2b504fc1959c7a3f0a843c3c204e8e193b675b7 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 15 Oct 2014 10:39:30 -0500
+Subject: [PATCH 04/14] RH: don't start without a config file
+
+If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
+all devices when running multipath.  A completely blank configuration file
+is almost never what users want.  Also, people may have the multipath
+packages installed but don't want to use them.  This patch provides a
+simple way to disable multipath.  Simply removing or renaming
+/etc/multipath.conf will keep multipath from doing anything.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c         | 17 +++++++++++++++++
+ libmultipath/config.h         |  1 +
+ multipath/multipath.rules     |  1 +
+ multipathd/multipathd.8       |  2 ++
+ multipathd/multipathd.service |  1 +
+ 5 files changed, 22 insertions(+)
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index bb6619b..aae69b8 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -25,6 +25,7 @@
+ #include "prio.h"
+ #include "devmapper.h"
+ #include "mpath_cmd.h"
++#include "version.h"
+ 
+ static int
+ hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
+@@ -667,6 +668,22 @@ load_config (char * file)
+ 			factorize_hwtable(conf->hwtable, builtin_hwtable_size);
+ 		}
+ 
++	} else {
++		condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
++		condlog(0, "A default multipath.conf file is located at");
++		condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
++		if (conf->blist_devnode == NULL) {
++			conf->blist_devnode = vector_alloc();
++			if (!conf->blist_devnode) {
++				condlog(0, "cannot allocate blacklist\n");
++				goto out;
++			}
++		}
++		if (store_ble(conf->blist_devnode, strdup(".*"),
++		              ORIGIN_NO_CONFIG)) {
++			condlog(0, "cannot store default no-config blacklist\n");
++			goto out;
++		}
+ 	}
+ 
+ 	conf->processed_main_config = 1;
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index ffc69b5..614331c 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -7,6 +7,7 @@
+ 
+ #define ORIGIN_DEFAULT 0
+ #define ORIGIN_CONFIG  1
++#define ORIGIN_NO_CONFIG 2
+ 
+ /*
+  * In kernel, fast_io_fail == 0 means immediate failure on rport delete.
+diff --git a/multipath/multipath.rules b/multipath/multipath.rules
+index 4d78b98..5753766 100644
+--- a/multipath/multipath.rules
++++ b/multipath/multipath.rules
+@@ -6,6 +6,7 @@ IMPORT{cmdline}="nompath"
+ ENV{nompath}=="?*", GOTO="end_mpath"
+ IMPORT{cmdline}="multipath"
+ ENV{multipath}=="off", GOTO="end_mpath"
++TEST!="/etc/multipath.conf", GOTO="end_mpath"
+ 
+ KERNEL=="dm-*", GOTO="check_kpartx"
+ ENV{DEVTYPE}!="partition", GOTO="test_dev"
+diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
+index 4c765af..c1499a5 100644
+--- a/multipathd/multipathd.8
++++ b/multipathd/multipathd.8
+@@ -39,6 +39,8 @@ map regains its maximum performance and redundancy.
+ This daemon executes the external \fBmultipath\fR tool when events occur.
+ In turn, the multipath tool signals the multipathd daemon when it is done with
+ devmap reconfiguration, so that it can refresh its failed path list.
++
++In this Linux distribution, multipathd does not run unless a /etc/multipath.conffile exists
+ .
+ .
+ .\" ----------------------------------------------------------------------------
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index fd66cf6..fafd088 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -4,6 +4,7 @@ Wants=systemd-udev-trigger.service systemd-udev-settle.service
+ Before=iscsi.service iscsid.service lvm2-lvmetad.service lvm2-activation-early.service
+ Before=local-fs-pre.target blk-availability.service
+ After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service
++ConditionPathExists=/etc/multipath.conf
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+ ConditionKernelCommandLine=!nompath
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
new file mode 100644
index 0000000..acef410
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
@@ -0,0 +1,648 @@
+From de44504fe7f7802cd474efd92ac15b5a8857db1f Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 16 Oct 2014 15:49:01 -0500
+Subject: [PATCH 05/14] RH: add mpathconf
+
+mpathconf is a program (largely based on lvmcomf) to help users
+configure /etc/multipath.conf and enable or disable multipathing.  It
+has a couple of built-in options that can be set directly from the
+command line.  But, mostly it is used to get a multipath.conf file
+with the OS defaults, and to enable and disable multipathing via
+a single command.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c |   1 +
+ multipath/Makefile    |   5 +
+ multipath/mpathconf   | 464 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ multipath/mpathconf.8 | 101 +++++++++++
+ 4 files changed, 571 insertions(+)
+ create mode 100644 multipath/mpathconf
+ create mode 100644 multipath/mpathconf.8
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index aae69b8..c485748 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -672,6 +672,7 @@ load_config (char * file)
+ 		condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
+ 		condlog(0, "A default multipath.conf file is located at");
+ 		condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
++		condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
+ 		if (conf->blist_devnode == NULL) {
+ 			conf->blist_devnode = vector_alloc();
+ 			if (!conf->blist_devnode) {
+diff --git a/multipath/Makefile b/multipath/Makefile
+index 1e9ee4b..3d4d459 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -18,10 +18,12 @@ $(EXEC): $(OBJS)
+ 	$(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) $(LIBDEPS)
+ 	$(GZIP) $(EXEC).8 > $(EXEC).8.gz
+ 	$(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
++	$(GZIP) mpathconf.8 > mpathconf.8.gz
+ 
+ install:
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ 	$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
++	$(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ 	$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+ 	$(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+@@ -29,13 +31,16 @@ install:
+ 	$(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
+ 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+ 	$(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
++	$(INSTALL_PROGRAM) -m 644 mpathconf.8.gz $(DESTDIR)$(man8dir)
+ 
+ uninstall:
+ 	$(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ 	$(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
+ 	$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
++	$(RM) $(DESTDIR)$(bindir)/mpathconf
+ 	$(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+ 	$(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
++	$(RM) $(DESTDIR)$(man8dir)/mpathconf.8.gz
+ 
+ clean:
+ 	$(RM) core *.o $(EXEC) *.gz
+diff --git a/multipath/mpathconf b/multipath/mpathconf
+new file mode 100644
+index 0000000..e839134
+--- /dev/null
++++ b/multipath/mpathconf
+@@ -0,0 +1,464 @@
++#!/bin/bash
++#
++# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
++#
++# This file is part of the device-mapper-multipath package.
++#
++# This copyrighted material is made available to anyone wishing to use,
++# modify, copy, or redistribute it subject to the terms and conditions
++# of the GNU General Public License v.2.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software Foundation,
++# Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++
++#
++# Simple editting of /etc/multipath.conf
++# This program was largely ripped off from lvmconf
++#
++
++unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_WWID_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_EXCEPTIONS HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE HAVE_OUTFILE SHOW_STATUS CHANGED_CONFIG WWID_LIST
++
++DEFAULT_CONFIG="# device-mapper-multipath configuration file
++
++# For a complete list of the default configuration values, run either:
++# # multipath -t
++# or
++# # multipathd show config
++
++# For a list of configuration options with descriptions, see the
++# multipath.conf man page.
++
++defaults {
++	user_friendly_names yes
++	find_multipaths yes
++}
++
++blacklist_exceptions {
++        property \"(SCSI_IDENT_|ID_WWN)\"
++}"
++
++CONFIGFILE="/etc/multipath.conf"
++OUTPUTFILE="/etc/multipath.conf"
++MULTIPATHDIR="/etc/multipath"
++TMPFILE="/etc/multipath/.multipath.conf.tmp"
++WWIDS=0
++
++function usage
++{
++	echo "usage: $0 <command>"
++	echo ""
++	echo "Commands:"
++	echo "Enable: --enable "
++	echo "Disable: --disable"
++	echo "Only allow certain wwids (instead of enable): --allow <WWID>"
++	echo "Set user_friendly_names (Default y): --user_friendly_names <y|n>"
++	echo "Set find_multipaths (Default y): --find_multipaths <y|n>"
++	echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
++	echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
++	echo "select output file (Default /etc/multipath.conf): --outfile <FILE>"
++	echo ""
++}
++
++function add_wwid
++{
++	INDEX=0
++	while [ "$INDEX" -lt "$WWIDS" ] ; do
++		if [ "$1" = "${WWID_LIST[$INDEX]}" ] ; then
++			return
++		fi
++		((INDEX++))
++	done
++	WWID_LIST[$WWIDS]="$1"
++	((WWIDS++))
++}
++
++function get_dm_deps
++{
++	shift 3
++	while [ -n "$1" -a -n "$2" ]; do
++		MAJOR=$(echo $1 | tr -d '(,')
++		MINOR=$(echo $2 | tr -d ')')
++		UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR  2> /dev/null`
++		if [ -n "$UUID" ] ; then
++			set_dm_wwid $UUID
++		fi
++		shift 2
++	done
++}
++
++function set_dm_wwid
++{
++	if [[ "$1" =~ ^part[[:digit:]]+-mpath- ]] ; then
++		add_wwid "${1##part*-mpath-}"
++	elif [[ "$1" =~ ^mpath- ]] ; then
++		add_wwid "${1##mpath-}"
++	else
++		get_dm_deps `dmsetup deps -u $1`
++	fi
++}
++
++function set_wwid
++{
++	UUID=""
++	if [[ "$1" =~ ^[[:digit:]]+:[[:digit:]]+$ ]] ; then
++		MAJOR=${1%%:*}
++		MINOR=${1##*:}
++		UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR  2> /dev/null`
++	else
++		UUID=`dmsetup info -c --noheadings -o uuid $1 2> /dev/null`
++	fi
++	if [ -n "$UUID" ] ; then
++		set_dm_wwid $UUID
++	else
++		add_wwid "$1"
++	fi
++}
++
++function parse_args
++{
++	while [ -n "$1" ]; do
++		case $1 in
++			--enable)
++				ENABLE=1
++				shift
++				;;
++			--disable)
++				ENABLE=0
++				shift
++				;;
++			--allow)
++				ENABLE=2
++				if [ -n "$2" ]; then
++					set_wwid $2
++					shift 2
++				else
++					usage
++					exit 1
++				fi
++				;;
++			--user_friendly_names)
++				if [ -n "$2" ]; then
++					FRIENDLY=$2
++					shift 2
++				else
++					usage
++					exit 1
++				fi
++				;;
++			--find_multipaths)
++				if [ -n "$2" ]; then
++					FIND=$2
++					shift 2
++				else
++					usage
++					exit 1
++				fi
++				;;
++			--with_module)
++				if [ -n "$2" ]; then
++					MODULE=$2
++					shift 2
++				else
++					usage
++					exit 1
++				fi
++				;;
++			--with_multipathd)
++				if [ -n "$2" ]; then
++					MULTIPATHD=$2
++					shift 2
++				else
++					usage
++					exit 1
++				fi
++				;;
++			--outfile)
++				if [ -n "$2" ]; then
++					OUTPUTFILE=$2
++					HAVE_OUTFILE=1
++					shift 2
++				else
++					usage
++					exit 1
++				fi
++				;;
++			*)
++				usage
++				exit
++		esac
++	done
++}
++
++function validate_args
++{
++	if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then
++		echo "ignoring extra parameters on disable"
++		FRIENDLY=""
++		FIND=""
++		MODULE=""
++	fi
++	if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
++		echo "--user_friendly_names must be either 'y' or 'n'"
++		exit 1
++	fi
++	if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
++		echo "--find_multipaths must be either 'y' or 'n'"
++		exit 1
++	fi
++	if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
++		SHOW_STATUS=1
++	fi
++	if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then
++		echo "--with_module must be either 'y' or 'n'"
++		exit 1
++	fi
++	if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then
++		echo "--with_multipathd must be either 'y' or 'n'"
++		exit 1
++	fi
++	if [ "$ENABLE" = 2 -a -z "$HAVE_OUTFILE" ]; then
++		echo "Because --allow makes changes that cannot be automatically reversed,"
++		echo "you must set --outfile when you set --allow"
++		exit 1
++	fi
++}
++
++function add_blacklist_exceptions
++{
++	INDEX=0
++	while [ "$INDEX" -lt "$WWIDS" ] ; do
++		sed -i '/^blacklist_exceptions[[:space:]]*{/ a\
++	wwid '"\"${WWID_LIST[$INDEX]}\""'
++' $TMPFILE
++		((INDEX++))
++	done
++}
++
++umask 0077
++
++parse_args "$@"
++
++validate_args
++
++if [ ! -d "$MULTIPATHDIR" ]; then
++	echo "/etc/multipath/ does not exist. failing"
++	exit 1
++fi
++
++rm $TMPFILE 2> /dev/null
++echo "$DEFAULT_CONFIG" > $TMPFILE
++if [ -f "$CONFIGFILE" ]; then
++	cp $CONFIGFILE $TMPFILE
++fi
++
++if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
++	HAVE_BLACKLIST=1
++fi
++
++if grep -q "^blacklist_exceptions[[:space:]]*{" $TMPFILE ; then
++	HAVE_EXCEPTIONS=1
++fi
++
++if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
++	HAVE_DEFAULTS=1
++fi
++
++if [ -z "$MODULE" -o "$MODULE" = "y" ]; then
++	if lsmod | grep -q "dm_multipath" ; then
++		HAVE_MODULE=1
++	else
++		HAVE_MODULE=0
++	fi
++fi
++
++if [ "$MULTIPATHD" = "y" ]; then
++	if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++		HAVE_MULTIPATHD=1
++	else
++		HAVE_MULTIPATHD=0
++	fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++	if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
++		HAVE_DISABLE=1
++	elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"" ; then
++		HAVE_DISABLE=0
++	fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++	if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*wwid \"\.\?\*\"" ; then
++		HAVE_WWID_DISABLE=1
++	elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"" ; then
++		HAVE_WWID_DISABLE=0
++	fi
++fi
++
++if [ "$HAVE_DEFAULTS" = "1" ]; then
++	if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
++		HAVE_FIND=1
++	elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
++		HAVE_FIND=0
++	fi
++	if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
++		HAVE_FRIENDLY=1
++	elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
++		HAVE_FRIENDLY=0
++	fi
++fi
++
++if [ -n "$SHOW_STATUS" ]; then
++	if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
++		echo "multipath is enabled"
++	else
++		echo "multipath is disabled"
++	fi
++	if [ -z "$HAVE_FIND"  -o "$HAVE_FIND" = 0 ]; then
++		echo "find_multipaths is disabled"
++	else
++		echo "find_multipaths is enabled"
++	fi
++	if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
++		echo "user_friendly_names is disabled"
++	else
++		echo "user_friendly_names is enabled"
++	fi
++	if [ -n "$HAVE_MODULE" ]; then
++		if [ "$HAVE_MODULE" = 1 ]; then
++			echo "dm_multipath module is loaded"
++		else
++			echo "dm_multipath module is not loaded"
++		fi
++	fi
++	if [ -z "$HAVE_MULTIPATHD" ]; then
++		if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++			HAVE_MULTIPATHD=1
++		else
++			HAVE_MULTIPATHD=0
++		fi
++	fi
++	if [ "$HAVE_MULTIPATHD" = 1 ]; then
++		echo "multipathd is running"
++	else
++		echo "multipathd is not running"
++	fi
++	exit 0
++fi
++
++if [ -z "$HAVE_BLACKLIST" ]; then
++	cat >> $TMPFILE <<- _EOF_
++
++blacklist {
++}
++_EOF_
++fi
++
++if [ -z "$HAVE_DEFAULTS" ]; then
++	cat >> $TMPFILE <<- _EOF_
++
++defaults {
++}
++_EOF_
++fi
++
++if [ "$ENABLE" = 2 ]; then
++	if [ "$HAVE_DISABLE" = 1 ]; then
++		sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/#	devnode ".*"/' $TMPFILE
++	fi
++	if [ -z "$HAVE_WWID_DISABLE" ]; then
++		sed -i '/^blacklist[[:space:]]*{/ a\
++	wwid ".*"
++' $TMPFILE
++	elif [ "$HAVE_WWID_DISABLE" = 0 ]; then
++		sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"/	wwid ".*"/' $TMPFILE
++	fi
++	if [ "$HAVE_EXCEPTIONS" = 1 ]; then
++		sed -i '/^blacklist_exceptions[[:space:]]*{/,/^}/ {/^[[:space:]]*wwid/ d}' $TMPFILE
++	else
++		cat >> $TMPFILE <<- _EOF_
++
++blacklist_exceptions {
++}
++_EOF_
++	fi
++	add_blacklist_exceptions
++elif [ "$ENABLE" = 1 ]; then
++	if [ "$HAVE_DISABLE" = 1 ]; then
++		sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/#	devnode ".*"/' $TMPFILE
++	fi
++elif [ "$ENABLE" = 0 ]; then
++	if [ -z "$HAVE_DISABLE" ]; then
++		sed -i '/^blacklist[[:space:]]*{/ a\
++	devnode ".*"
++' $TMPFILE
++	elif [ "$HAVE_DISABLE" = 0 ]; then
++		sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"/	devnode ".*"/' $TMPFILE
++	fi
++fi
++
++if [ "$FIND" = "n" ]; then
++	if [ "$HAVE_FIND" = 1 ]; then
++		sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/	find_multipaths no/' $TMPFILE
++		CHANGED_CONFIG=1
++	fi
++elif [ "$FIND" = "y" ]; then
++	if [ -z "$HAVE_FIND" ]; then
++		sed -i '/^defaults[[:space:]]*{/ a\
++	find_multipaths yes
++' $TMPFILE
++		CHANGED_CONFIG=1
++	elif [ "$HAVE_FIND" = 0 ]; then
++		sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/	find_multipaths yes/' $TMPFILE
++		CHANGED_CONFIG=1
++	fi
++fi
++
++if [ "$FRIENDLY" = "n" ]; then
++	if [ "$HAVE_FRIENDLY" = 1 ]; then
++		sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/	user_friendly_names no/' $TMPFILE
++		CHANGED_CONFIG=1
++	fi
++elif [ "$FRIENDLY" = "y" ]; then
++	if [ -z "$HAVE_FRIENDLY" ]; then
++		sed -i '/^defaults[[:space:]]*{/ a\
++	user_friendly_names yes
++' $TMPFILE
++		CHANGED_CONFIG=1
++	elif [ "$HAVE_FRIENDLY" = 0 ]; then
++		sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/	user_friendly_names yes/' $TMPFILE
++		CHANGED_CONFIG=1
++	fi
++fi
++
++if [ -f "$OUTPUTFILE" ]; then
++	cp $OUTPUTFILE $OUTPUTFILE.old
++	if [ $? != 0 ]; then
++		echo "failed to backup old config file, $OUTPUTFILE not updated"
++		exit 1
++	fi
++fi
++
++cp $TMPFILE $OUTPUTFILE
++if [ $? != 0 ]; then
++	echo "failed to copy new config file into place, check $OUTPUTFILE is still OK"
++	exit 1
++fi
++
++rm -f $TMPFILE
++
++if [ "$ENABLE" = 1 ]; then
++	if [ "$HAVE_MODULE" = 0 ]; then
++		modprobe dm_multipath
++	fi
++	if [ "$HAVE_MULTIPATHD" = 0 ]; then
++		systemctl start multipathd.service
++	fi
++elif [ "$ENABLE" = 0 ]; then
++	if [ "$HAVE_MULTIPATHD" = 1 ]; then
++		systemctl stop multipathd.service
++	fi
++elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
++	systemctl reload multipathd.service
++fi
+diff --git a/multipath/mpathconf.8 b/multipath/mpathconf.8
+new file mode 100644
+index 0000000..4cd3267
+--- /dev/null
++++ b/multipath/mpathconf.8
+@@ -0,0 +1,101 @@
++.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual"
++.SH NAME
++mpathconf - A tool for configuring device-mapper-multipath
++.SH SYNOPSIS
++.B mpathconf
++.RB [\| commands \|]
++.RB [\| options \|]
++.SH DESCRIPTION
++.B mpathconf
++is a utility that creates or modifies
++.B /etc/multipath.conf.
++It can enable or disable multipathing and configure some common options.
++.B mpathconf
++can also load the
++.B dm_multipath
++module, start and stop the
++.B multipathd
++daemon, and configure the
++.B multipathd
++service to start automatically or not. If
++.B mpathconf
++is called with no commands, it will display the current configuration.
++
++The default options for mpathconf are
++.B --with_module
++The
++.B --with_multipathd
++option is not set by default.  Enabling multipathing will load the
++.B dm_multipath
++module but it will not immediately start it. This is so
++that users can manually edit their config file if necessary, before starting
++.B multipathd.
++
++If
++.B /etc/multipath.conf
++already exists, mpathconf will edit it. If it does not exist, mpathconf will
++create a default file with
++.B user_friendly_names
++and
++.B find_multipaths
++set. To disable these, use the
++.B --user_friendly_names n
++and
++.B --find_multipaths n
++options
++.SH COMMANDS
++.TP
++.B --enable
++Removes any line that blacklists all device nodes from the
++.B /etc/multipath.conf
++blacklist section.
++.TP
++.B --disable
++Adds a line that blacklists all device nodes to the
++.B /etc/multipath.conf
++blacklist section. If no blacklist section exists, it will create one.
++.TP
++.B --user_friendly_name \fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B user_friendly_names yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used along with any other command.
++.TP
++.B --find_multipaths\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B find_multipaths yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used aldong with any other command.
++.SH OPTIONS
++.TP
++.B --with_module\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B modprobe dm_multipath
++to install the multipath modules. This option only works with the
++.B --enable
++command. This option is set to \fBy\fP by default.
++.TP
++.B --with_multipathd { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B service multipathd start
++to start the multipathd daemon on \fB--enable\fP,
++.B service multipathd stop
++to stop the multipathd daemon on \fB--disable\fP, and
++.B service multipathd reload
++to reconfigure multipathd on \fB--user_frindly_names\fP and
++\fB--find_multipaths\fP.
++This option is set to \fBn\fP by default.
++.SH FILES
++.BR /etc/multipath.conf
++.SH "SEE ALSO"
++.BR multipath.conf (5),
++.BR modprobe (8),
++.BR multipath (8),
++.BR multipathd (8),
++.BR service (8),
++.SH AUTHOR
++Benjamin Marzinski <bmarzins@redhat.com>
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
new file mode 100644
index 0000000..dc291b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
@@ -0,0 +1,166 @@
+From 15179c830521d8f37f9254ebc6bbf150a409f956 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 17 Oct 2014 11:20:34 -0500
+Subject: [PATCH 06/14] RH: add wwids from kernel cmdline mpath.wwids with -A
+
+This patch adds another option to multipath, "-A", which reads
+/proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
+to /etc/multipath/wwids.  While this isn't usually important during
+normal operation, since these wwids should already be added, it can be
+helpful during installation, to make sure that multipath can claim
+devices as its own, before LVM or something else makes use of them.  The
+patch also execs "/sbin/multipath -A" before running multipathd in
+multipathd.service
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/wwids.c          | 44 +++++++++++++++++++++++++++++++++++++++++++
+ libmultipath/wwids.h          |  1 +
+ multipath/main.c              | 10 ++++++++--
+ multipath/multipath.8         |  5 ++++-
+ multipathd/multipathd.service |  1 +
+ 5 files changed, 58 insertions(+), 3 deletions(-)
+
+diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
+index bc70a27..88bb72b 100644
+--- a/libmultipath/wwids.c
++++ b/libmultipath/wwids.c
+@@ -321,3 +321,47 @@ remember_wwid(char *wwid)
+ 		condlog(4, "wwid %s already in wwids file", wwid);
+ 	return 0;
+ }
++
++int remember_cmdline_wwid(void)
++{
++	FILE *f = NULL;
++	char buf[LINE_MAX], *next, *ptr;
++	int ret = 0;
++
++	f = fopen("/proc/cmdline", "re");
++	if (!f) {
++		condlog(0, "can't open /proc/cmdline : %s", strerror(errno));
++		return -1;
++	}
++
++	if (!fgets(buf, sizeof(buf), f)) {
++		if (ferror(f))
++			condlog(0, "read of /proc/cmdline failed : %s",
++				strerror(errno));
++		else
++			condlog(0, "couldn't read /proc/cmdline");
++		fclose(f);
++		return -1;
++	}
++	fclose(f);
++	next = buf;
++	while((ptr = strstr(next, "mpath.wwid="))) {
++		ptr += 11;
++		next = strpbrk(ptr, " \t\n");
++		if (next) {
++			*next = '\0';
++			next++;
++		}
++		if (strlen(ptr)) {
++			if (remember_wwid(ptr) != 0)
++				ret = -1;
++		}
++		else {
++			condlog(0, "empty mpath.wwid kernel command line option");
++			ret = -1;
++		}
++		if (!next)
++			break;
++	}
++	return ret;
++}
+diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h
+index 9527012..b665232 100644
+--- a/libmultipath/wwids.h
++++ b/libmultipath/wwids.h
+@@ -17,5 +17,6 @@ int remember_wwid(char *wwid);
+ int check_wwids_file(char *wwid, int write_wwid);
+ int remove_wwid(char *wwid);
+ int replace_wwids(vector mp);
++int remember_cmdline_wwid(void);
+ 
+ #endif /* _WWIDS_H */
+diff --git a/multipath/main.c b/multipath/main.c
+index 4174d43..72585b0 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -102,7 +102,7 @@ usage (char * progname)
+ {
+ 	fprintf (stderr, VERSION_STRING);
+ 	fprintf (stderr, "Usage:\n");
+-	fprintf (stderr, "  %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
++	fprintf (stderr, "  %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
+ 	fprintf (stderr, "  %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname);
+ 	fprintf (stderr, "  %s -F [-v lvl] [-R num]\n", progname);
+ 	fprintf (stderr, "  %s -t\n", progname);
+@@ -116,6 +116,8 @@ usage (char * progname)
+ 		"  -f      flush a multipath device map\n"
+ 		"  -F      flush all multipath device maps\n"
+ 		"  -a      add a device wwid to the wwids file\n"
++		"  -A      add devices from kernel command line mpath.wwids\n"
++		"          parameters to wwids file\n"
+ 		"  -c      check if a device should be a path in a multipath device\n"
+ 		"  -q      allow queue_if_no_path when multipathd is not running\n"
+ 		"  -d      dry run, do not create or update devmaps\n"
+@@ -522,7 +524,7 @@ main (int argc, char *argv[])
+ 		exit(1);
+ 	multipath_conf = conf;
+ 	conf->retrigger_tries = 0;
+-	while ((arg = getopt(argc, argv, ":adchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
++	while ((arg = getopt(argc, argv, ":aAdchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
+ 		switch(arg) {
+ 		case 1: printf("optarg : %s\n",optarg);
+ 			break;
+@@ -586,6 +588,10 @@ main (int argc, char *argv[])
+ 		case 't':
+ 			r = dump_config(conf);
+ 			goto out_free_config;
++		case 'A':
++			if (remember_cmdline_wwid() != 0)
++				exit(1);
++			exit(0);
+ 		case 'h':
+ 			usage(argv[0]);
+ 			exit(0);
+diff --git a/multipath/multipath.8 b/multipath/multipath.8
+index b9436e5..b9ad6b1 100644
+--- a/multipath/multipath.8
++++ b/multipath/multipath.8
+@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig.
+ .RB [\| \-b\ \c
+ .IR bindings_file \|]
+ .RB [\| \-d \|]
+-.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \|-u | \-w | \-W \|]
++.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \-A | \-u | \-w | \-W \|]
+ .RB [\| \-p\ \c
+ .IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|]
+ .RB [\| \-R\ \c
+@@ -122,6 +122,9 @@ Add the WWID for the specified device to the WWIDs file.
+ Check if the device specified in the program environment should be
+ a path in a multipath device.
+ .
++.B \-A
++add wwids from any kernel command line mpath.wwid parameters to the wwids file
++.
+ .TP
+ .B \-w
+ Remove the WWID for the specified device from the WWIDs file.
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index fafd088..a623a3f 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -15,6 +15,7 @@ Type=notify
+ NotifyAccess=main
+ LimitCORE=infinity
+ ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
++ExecStartPre=-/sbin/multipath -A
+ ExecStart=/sbin/multipathd -d -s
+ ExecReload=/sbin/multipathd reconfigure
+ 
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
new file mode 100644
index 0000000..025a351
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
@@ -0,0 +1,138 @@
+From 0d2c9afbd89d79fd700f9c99aa20e5f7c7382027 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Mon, 24 Apr 2017 09:39:57 -0500
+Subject: [PATCH 07/14] RH: trigger change uevent on new device creation
+
+When multipath first sees a path device with user_friendly names
+enabled, it can't know if the device should be multipathed. This means
+that it will not claim the device in udev.  If the device is eventually
+multipathed, multipath should trigger a change uevent to update the udev
+database to claim the device.
+
+This also reverts commit 64e27ec066a001012f44550f095c93443e91d845.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/configure.c | 26 ++++++++++++++++++++++++--
+ libmultipath/configure.h |  1 +
+ libmultipath/wwids.c     |  4 ++--
+ multipath/main.c         |  2 +-
+ multipathd/main.c        |  7 ++-----
+ 5 files changed, 30 insertions(+), 10 deletions(-)
+
+diff --git a/libmultipath/configure.c b/libmultipath/configure.c
+index bd090d9..843dd09 100644
+--- a/libmultipath/configure.c
++++ b/libmultipath/configure.c
+@@ -422,6 +422,28 @@ trigger_udev_change(const struct multipath *mpp)
+ 	udev_device_unref(udd);
+ }
+ 
++void
++trigger_paths_udev_change(const struct multipath *mpp)
++{
++	struct pathgroup * pgp;
++	struct path * pp;
++	int i, j;
++
++	if (!mpp || !mpp->pg)
++		return;
++
++	vector_foreach_slot (mpp->pg, pgp, i) {
++		if (!pgp->paths)
++			continue;
++		vector_foreach_slot(pgp->paths, pp, j) {
++			if (!pp->udev)
++				continue;
++			sysfs_attr_set_value(pp->udev, "uevent", "change",
++					     strlen("change"));
++		}
++	}
++}
++
+ static int
+ is_mpp_known_to_udev(const struct multipath *mpp)
+ {
+@@ -802,8 +824,8 @@ int domap(struct multipath *mpp, char *params, int is_daemon)
+ 		 * succeeded
+ 		 */
+ 		mpp->force_udev_reload = 0;
+-		if (mpp->action == ACT_CREATE)
+-			remember_wwid(mpp->wwid);
++		if (mpp->action == ACT_CREATE && remember_wwid(mpp->wwid) == 1)
++			trigger_paths_udev_change(mpp);
+ 		if (!is_daemon) {
+ 			/* multipath client mode */
+ 			dm_switchgroup(mpp->alias, mpp->bestpg);
+diff --git a/libmultipath/configure.h b/libmultipath/configure.h
+index fd7f581..253e29b 100644
+--- a/libmultipath/configure.h
++++ b/libmultipath/configure.h
+@@ -36,3 +36,4 @@ int get_refwwid (enum mpath_cmds cmd, char * dev, enum devtypes dev_type,
+ 		 vector pathvec, char **wwid);
+ int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, int is_daemon);
+ int sysfs_get_host_adapter_name(struct path *pp, char *adapter_name);
++void trigger_paths_udev_change(const struct multipath *mpp);
+diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
+index 88bb72b..249c6c1 100644
+--- a/libmultipath/wwids.c
++++ b/libmultipath/wwids.c
+@@ -319,7 +319,7 @@ remember_wwid(char *wwid)
+ 		condlog(3, "wrote wwid %s to wwids file", wwid);
+ 	else
+ 		condlog(4, "wwid %s already in wwids file", wwid);
+-	return 0;
++	return ret;
+ }
+ 
+ int remember_cmdline_wwid(void)
+@@ -353,7 +353,7 @@ int remember_cmdline_wwid(void)
+ 			next++;
+ 		}
+ 		if (strlen(ptr)) {
+-			if (remember_wwid(ptr) != 0)
++			if (remember_wwid(ptr) < 0)
+ 				ret = -1;
+ 		}
+ 		else {
+diff --git a/multipath/main.c b/multipath/main.c
+index 72585b0..2eda6a3 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -336,7 +336,7 @@ configure (struct config *conf, enum mpath_cmds cmd,
+ 		}
+ 		if (cmd == CMD_ADD_WWID) {
+ 			r = remember_wwid(refwwid);
+-			if (r == 0)
++			if (r >= 0)
+ 				printf("wwid '%s' added\n", refwwid);
+ 			else
+ 				printf("failed adding '%s' to wwids file\n",
+diff --git a/multipathd/main.c b/multipathd/main.c
+index 81c76ca..874bcce 100644
+--- a/multipathd/main.c
++++ b/multipathd/main.c
+@@ -2093,7 +2093,8 @@ configure (struct vectors * vecs, int start_waiters)
+ 
+ 	sync_maps_state(mpvec);
+ 	vector_foreach_slot(mpvec, mpp, i){
+-		remember_wwid(mpp->wwid);
++		if (remember_wwid(mpp->wwid) == 1)
++			trigger_paths_udev_change(mpp);
+ 		update_map_pr(mpp);
+ 	}
+ 
+@@ -2175,10 +2176,6 @@ reconfigure (struct vectors * vecs)
+ 		conf->verbosity = verbosity;
+ 	if (bindings_read_only)
+ 		conf->bindings_read_only = bindings_read_only;
+-	if (conf->find_multipaths) {
+-		condlog(2, "find_multipaths is set: -n is implied");
+-		ignore_new_devs = 1;
+-	}
+ 	if (ignore_new_devs)
+ 		conf->ignore_new_devs = ignore_new_devs;
+ 	uxsock_timeout = conf->uxsock_timeout;
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
new file mode 100644
index 0000000..f678809
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
@@ -0,0 +1,56 @@
+From 0be174dbedd861d7694b0c7799fe26be31eb32b0 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 26 May 2017 17:52:57 -0500
+Subject: [PATCH 08/14] libmultipath: change how RADOS checker is enabled
+
+Instead of making the user call "make", "make install" and "make clean"
+with ENABLE_RADOS set correctly, have the makefile check if
+/usr/include/rados/librados.h exists, just like it checks if specific
+functions exist in a file.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc                   | 13 +++++++++++++
+ libmultipath/checkers/Makefile |  3 ++-
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 2591fa9..e084fd1 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -109,5 +109,18 @@ check_func =								       \
+ 	echo "$$found"							       \
+     )
+ 
++# Checker whether a file with name $1 exists
++check_file = $(shell	\
++	if [ -f "$1" ]; then \
++		found=1; \
++		status="yes"; \
++	else \
++		found=0; \
++		status="no"; \
++	fi; \
++	echo 1>&2 "Checking if $1 exists ... $$status"; \
++	echo "$$found" \
++	)
++
+ %.o:	%.c
+ 	$(CC) $(CFLAGS) -c -o $@ $<
+diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
+index 732ca9d..bce6b8b 100644
+--- a/libmultipath/checkers/Makefile
++++ b/libmultipath/checkers/Makefile
+@@ -14,7 +14,8 @@ LIBS= \
+ 	libcheckemc_clariion.so \
+ 	libcheckhp_sw.so \
+ 	libcheckrdac.so
+-ifneq ($(ENABLE_RADOS),0)
++
++ifneq ($(call check_file,/usr/include/rados/librados.h),0)
+ LIBS += libcheckrbd.so
+ endif
+ 
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
new file mode 100644
index 0000000..17d2d91
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
@@ -0,0 +1,40 @@
+From 526e539628e051128abf46a60ec22e18c9b5d84f Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 31 May 2017 15:03:02 -0500
+Subject: [PATCH 09/14] multipath: set verbosity to default during config
+
+condlog was setting the verbosity to 0 if there was no configuration.
+This keeps multipath from printing warning messages about config file
+problems that are found while loading the configuration. Instead, it
+should use the default config level until it loads the configuration
+to find the current value.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/debug.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/libmultipath/debug.c b/libmultipath/debug.c
+index fbe171a..f89b264 100644
+--- a/libmultipath/debug.c
++++ b/libmultipath/debug.c
+@@ -11,6 +11,7 @@
+ #include "../third-party/valgrind/drd.h"
+ #include "vector.h"
+ #include "config.h"
++#include "defaults.h"
+ 
+ void dlog (int sink, int prio, const char * fmt, ...)
+ {
+@@ -21,7 +22,7 @@ void dlog (int sink, int prio, const char * fmt, ...)
+ 	va_start(ap, fmt);
+ 	conf = get_multipath_config();
+ 	ANNOTATE_IGNORE_READS_BEGIN();
+-	thres = (conf) ? conf->verbosity : 0;
++	thres = (conf) ? conf->verbosity : DEFAULT_VERBOSITY;
+ 	ANNOTATE_IGNORE_READS_END();
+ 	put_multipath_config(conf);
+ 
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
new file mode 100644
index 0000000..396b6d3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
@@ -0,0 +1,37 @@
+From f88d60a93e98d86ae294f2317a122c4efde276f0 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 31 May 2017 17:58:59 -0500
+Subject: [PATCH 10/14] mpath: skip device configs without vendor/product
+
+Right now if multipath.conf includes a device configuration without a
+vendor or product string, it will automatically be applied to all
+devices, skipping all other configs entirely.  This is clearly wrong.
+This patch makes sure that user added configs include vendor and
+product strings
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index c485748..bdde113 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -452,6 +452,13 @@ restart:
+ 			break;
+ 		j = n;
+ 		vector_foreach_slot_after(hw, hwe2, j) {
++			/* drop invalid device configs */
++			if (!hwe2->vendor || !hwe2->product) {
++				condlog(0, "device config missing vendor or product parameter");
++				vector_del_slot(hw, j--);
++				free_hwe(hwe2);
++				continue;
++			}
+ 			if (hwe_regmatch(hwe1, hwe2))
+ 				continue;
+ 			/* dup */
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
new file mode 100644
index 0000000..12d6d38
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
@@ -0,0 +1,38 @@
+From bc3ceda747104afdc24386df5dc45ca86f6c2936 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 1 Jun 2017 17:52:28 -0500
+Subject: [PATCH 11/14] multipathd: fix "show maps json" crash
+
+If there are no multipath devices, show_maps_json sets the maximum size
+of the reply buffer to 0. Having a size of 0 causes the calls to calloc
+and realloc to behave in ways that the code isn't designed to handle,
+leading to a double-free crash. Instead, show_maps_json should just
+use the INITIAL_REPLY_LEN if there are no multipath devices.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipathd/cli_handlers.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
+index 04c7386..7b0d00c 100644
+--- a/multipathd/cli_handlers.c
++++ b/multipathd/cli_handlers.c
+@@ -162,10 +162,12 @@ show_maps_json (char ** r, int * len, struct vectors * vecs)
+ 	struct multipath * mpp;
+ 	char * c;
+ 	char * reply;
+-	unsigned int maxlen = INITIAL_REPLY_LEN *
+-			PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
++	unsigned int maxlen = INITIAL_REPLY_LEN;
+ 	int again = 1;
+ 
++	if (VECTOR_SIZE(vecs->mpvec) > 0)
++		maxlen *= PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
++
+ 	vector_foreach_slot(vecs->mpvec, mpp, i) {
+ 		if (update_multipath(vecs, mpp->alias, 0)) {
+ 			return 1;
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
new file mode 100644
index 0000000..5ccd4ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
@@ -0,0 +1,58 @@
+From 6864ba28dec61609662ce5dc8bc7ed1925abb546 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 5 Jul 2017 02:56:13 -0400
+Subject: [PATCH 12/14] multipath-tools: modify Makefile.inc for
+ cross-compilation
+
+Do not look for systemd info on the host, and allow us to pass in CFLAGS
+using the OPTFLAGS variable.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Update for version 0.5.0-144-g770e6d0
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Update for version 0.7.1
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile.inc | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index e084fd1..c7f45fa 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -35,12 +35,6 @@ ifndef RUN
+ 	endif
+ endif
+ 
+-ifndef SYSTEMD
+-	ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
+-		SYSTEMD = $(shell systemctl --version 2> /dev/null |  sed -n 's/systemd \([0-9]*\)/\1/p')
+-	endif
+-endif
+-
+ ifndef SYSTEMDPATH
+ 	SYSTEMDPATH=usr/lib
+ endif
+@@ -82,11 +76,13 @@ TEST_CC_OPTION = $(shell \
+ 
+ STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
+ 
++ifndef OPTFLAGS
+ OPTFLAGS	= -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
+ 		  -Werror=implicit-function-declaration -Werror=format-security \
+ 		  -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
+ 		  -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \
+ 		  --param=ssp-buffer-size=4
++endif
+ 
+ CFLAGS		= $(OPTFLAGS) -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
+ BIN_CFLAGS	= -fPIE -DPIE
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
new file mode 100644
index 0000000..52240f6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
@@ -0,0 +1,53 @@
+From 1498338970a093fccbda3e33f5588a289ef2c66a Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 5 Jul 2017 02:59:46 -0400
+Subject: [PATCH 13/14] Always use devmapper
+
+Do not try to compute several _API_ make variables
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Rebase to 0.7.1
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ libmultipath/Makefile | 19 ++++---------------
+ 1 file changed, 4 insertions(+), 15 deletions(-)
+
+diff --git a/libmultipath/Makefile b/libmultipath/Makefile
+index b3244fc..9006b3f 100644
+--- a/libmultipath/Makefile
++++ b/libmultipath/Makefile
+@@ -20,21 +20,10 @@ ifdef SYSTEMD
+ 	endif
+ endif
+ 
+-ifneq ($(call check_func,dm_task_no_flush,/usr/include/libdevmapper.h),0)
+-	CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
+-endif
+-
+-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
+-	CFLAGS += -DLIBDM_API_COOKIE
+-endif
+-
+-ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,/usr/include/libudev.h),0)
+-	CFLAGS += -DLIBUDEV_API_RECVBUF
+-endif
+-
+-ifneq ($(call check_func,dm_task_deferred_remove,/usr/include/libdevmapper.h),0)
+-	CFLAGS += -DLIBDM_API_DEFERRED
+-endif
++CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
++CFLAGS += -DLIBDM_API_COOKIE
++CFLAGS += -DLIBUDEV_API_RECVBUF
++CFLAGS += -DLIBDM_API_DEFERRED
+ 
+ OBJS = memory.o parser.o vector.o devmapper.o callout.o \
+ 	hwtable.o blacklist.o util.o dmparser.o config.o \
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
new file mode 100644
index 0000000..f951213
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
@@ -0,0 +1,37 @@
+From 7f5869cd32a7b3f717d9544b35562d9d01ca6510 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 5 Jul 2017 03:03:16 -0400
+Subject: [PATCH 14/14] Always use devmapper for kpartx
+
+Do not try to compute the LIBDM_API_COOKIE make variable
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Rebase to 0.7.1
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ kpartx/Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/kpartx/Makefile b/kpartx/Makefile
+index bfa6fe8..be87124 100644
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
+@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS)
+ 
+ LIBDEPS += -ldevmapper
+ 
+-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
+-	CFLAGS += -DLIBDM_API_COOKIE
+-endif
++CFLAGS += -DLIBDM_API_COOKIE
+ 
+ OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
+ 	gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch
deleted file mode 100644
index 803e52c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7267cf235fc052eaa1ca36e437096576edacb131 Mon Sep 17 00:00:00 2001
-From: Aws Ismail <aws.ismail@windriver.com>
-Date: Mon, 22 Sep 2014 17:22:32 -0700
-Subject: [PATCH] Always use devmapper for kpartx
-
-Do not try to compute the LIBDM_API_COOKIE make variable
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
- kpartx/Makefile | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index e8a59f2..e694a65 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -7,11 +7,7 @@ CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
- 
- LIBDEPS += -ldevmapper
- 
--LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_COOKIE)),0)
--	CFLAGS += -DLIBDM_API_COOKIE
--endif
-+CFLAGS += -DLIBDM_API_COOKIE
- 
- OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
- 	gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch
deleted file mode 100644
index 33834f6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From c4f0dba4e86bfa20252fcc8218398e7468ca9149 Mon Sep 17 00:00:00 2001
-From: Aws Ismail <aws.ismail@windriver.com>
-Date: Mon, 22 Sep 2014 17:22:32 -0700
-Subject: [PATCH] Always use devmapper
-
-Do not try to compute several _API_ make variables
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
- libmultipath/Makefile | 27 ++++-----------------------
- 1 file changed, 4 insertions(+), 23 deletions(-)
-
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index 495cebe..9626e69 100644
---- a/libmultipath/Makefile
-+++ b/libmultipath/Makefile
-@@ -20,29 +20,10 @@ ifdef SYSTEMD
- 	endif
- endif
- 
--LIBDM_API_FLUSH = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_no_flush' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_FLUSH)),0)
--	CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
--endif
--
--LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_COOKIE)),0)
--	CFLAGS += -DLIBDM_API_COOKIE
--endif
--
--LIBUDEV_API_RECVBUF = $(shell grep -Ecs '^[a-z]*[[:space:]]+udev_monitor_set_receive_buffer_size' /usr/include/libudev.h)
--
--ifneq ($(strip $(LIBUDEV_API_RECVBUF)),0)
--	CFLAGS += -DLIBUDEV_API_RECVBUF
--endif
--
--LIBDM_API_DEFERRED = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_deferred_remove' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_DEFERRED)),0)
--	CFLAGS += -DLIBDM_API_DEFERRED
--endif
-+CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
-+CFLAGS += -DLIBDM_API_COOKIE
-+CFLAGS += -DLIBUDEV_API_RECVBUF
-+CFLAGS += -DLIBDM_API_DEFERRED
- 
- OBJS = memory.o parser.o vector.o devmapper.o callout.o \
- 	hwtable.o blacklist.o util.o dmparser.o config.o \
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/checkers-disable-libcheckrbd.so.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/checkers-disable-libcheckrbd.so.patch
deleted file mode 100644
index 908a516..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/checkers-disable-libcheckrbd.so.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 148b848f45957e5e1c0466e8c79c84ba4a0bf241 Mon Sep 17 00:00:00 2001
-From: Patrick Ohly <patrick.ohly@intel.com>
-Date: Fri, 27 Jan 2017 10:35:54 +0100
-Subject: [PATCH] checkers: disable libcheckrbd.so
-
-libcheckrbd.so depends on librados, which is not currently available
-as a recipe. These checkers seem to be optional, so for now we merely
-disable compilation of libcheckrbd.so.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
----
- libmultipath/checkers/Makefile | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
-index 11ab76f..c848d50 100644
---- a/libmultipath/checkers/Makefile
-+++ b/libmultipath/checkers/Makefile
-@@ -14,7 +14,6 @@ LIBS= \
- 	libcheckemc_clariion.so \
- 	libcheckhp_sw.so \
- 	libcheckrdac.so \
--	libcheckrbd.so
- 
- all: $(LIBS)
- 
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch
deleted file mode 100644
index 5b7b696..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 9f5768eca165502b0f17d271aa6f7cf530ec60b2 Mon Sep 17 00:00:00 2001
-From: Joe Slater <joe.slater@windriver.com>
-Date: Mon, 22 Sep 2014 17:22:32 -0700
-Subject: [PATCH] multipath-tools: modify Makefile.inc for
- cross-compilation
-
-Do not look for systemd info on the host, and allow us to pass in CFLAGS
-using the OPTFLAGS variable.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Update for version 0.5.0-144-g770e6d0
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- Makefile.inc | 17 +++++------------
- 1 file changed, 5 insertions(+), 12 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 1cc8f44..15f8b91 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -29,12 +29,6 @@ ifndef RUN
- 	endif
- endif
- 
--ifndef SYSTEMD
--	ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
--		SYSTEMD = $(shell systemctl --version 2> /dev/null |  sed -n 's/systemd \([0-9]*\)/\1/p')
--	endif
--endif
--
- ifndef SYSTEMDPATH
- 	SYSTEMDPATH=usr/lib
- endif
-@@ -61,13 +55,12 @@ RM		= rm -f
- LN		= ln -sf
- INSTALL_PROGRAM	= install
- 
--OPTFLAGS	= -O2 -g -pipe -Wall -Wextra -Wformat=2 \
--		  -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
--		  -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector \
--		  --param=ssp-buffer-size=4
-+ifndef OPTFLAGS
-+OPTFLAGS     = $(RPM_OPT_FLAGS) -Wunused -Wstrict-prototypes
-+endif
- 
--CFLAGS		= $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
--SHARED_FLAGS	= -shared
-+CFLAGS	     = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
-+SHARED_FLAGS = -shared
- 
- %.o:	%.c
- 	$(CC) $(CFLAGS) -c -o $@ $<
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example
new file mode 100644
index 0000000..6bbeadb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example
@@ -0,0 +1,90 @@
+# This is a basic configuration file with some examples, for device mapper
+# multipath.
+# For a complete list of the default configuration values, see
+# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults
+# For a list of configuration options with descriptions, see
+# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.annotated
+
+## By default, devices with vendor = "IBM" and product = "S/390.*" are
+## blacklisted. To enable mulitpathing on these devies, uncomment the
+## following lines.
+#blacklist_exceptions {
+#	device {
+#		vendor	"IBM"
+#		product	"S/390.*"
+#	}
+#}
+
+## Use user friendly names, instead of using WWIDs as names.
+defaults {
+	user_friendly_names yes
+}
+##
+## Here is an example of how to configure some standard options.
+##
+#
+#defaults {
+#	udev_dir		/dev
+#	polling_interval 	10
+#	selector		"round-robin 0"
+#	path_grouping_policy	multibus
+#	getuid_callout		"/lib/udev/scsi_id --whitelisted --device=/dev/%n"
+#	prio			alua
+#	path_checker		readsector0
+#	rr_min_io		100
+#	max_fds			8192
+#	rr_weight		priorities
+#	failback		immediate
+#	no_path_retry		fail
+#	user_friendly_names	yes
+#}
+##
+## The wwid line in the following blacklist section is shown as an example
+## of how to blacklist devices by wwid.  The 2 devnode lines are the
+## compiled in default blacklist. If you want to blacklist entire types
+## of devices, such as all scsi devices, you should use a devnode line.
+## However, if you want to blacklist specific devices, you should use
+## a wwid line.  Since there is no guarantee that a specific device will
+## not change names on reboot (from /dev/sda to /dev/sdb for example)
+## devnode lines are not recommended for blacklisting specific devices.
+##
+#blacklist {
+#       wwid 26353900f02796769
+#	devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
+#	devnode "^hd[a-z]"
+#}
+#multipaths {
+#	multipath {
+#		wwid			3600508b4000156d700012000000b0000
+#		alias			yellow
+#		path_grouping_policy	multibus
+#		path_checker		readsector0
+#		path_selector		"round-robin 0"
+#		failback		manual
+#		rr_weight		priorities
+#		no_path_retry		5
+#	}
+#	multipath {
+#		wwid			1DEC_____321816758474
+#		alias			red
+#	}
+#}
+#devices {
+#	device {
+#		vendor			"COMPAQ  "
+#		product			"HSV110 (C)COMPAQ"
+#		path_grouping_policy	multibus
+#		getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
+#		path_checker		readsector0
+#		path_selector		"round-robin 0"
+#		hardware_handler	"0"
+#		failback		15
+#		rr_weight		priorities
+#		no_path_retry		queue
+#	}
+#	device {
+#		vendor			"COMPAQ  "
+#		product			"MSA1000         "
+#		path_grouping_policy	multibus
+#	}
+#}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/shared-libs-avoid-linking-.so-as-executable.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/shared-libs-avoid-linking-.so-as-executable.patch
deleted file mode 100644
index 88579e6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/shared-libs-avoid-linking-.so-as-executable.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 4311856200480288494df8df737f71ea316592d0 Mon Sep 17 00:00:00 2001
-From: Patrick Ohly <patrick.ohly@intel.com>
-Date: Thu, 26 Jan 2017 15:28:34 +0100
-Subject: [PATCH] shared libs: avoid linking .so as executable
-
-When the OE build systems sets CFLAGS including -pie, gcc overrides
-the earlier -shared parameter and tries to link a binary, leading to
-errors about missing functions like main().
-
-Reordering the parameters so that -shared comes after CFLAGS
-fixes this.
-
-Upstream-Status: Inappropriate [OE specific, -pie shouldn't be in CFLAGS?!]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
----
-diff --git a/libmpathcmd/Makefile b/libmpathcmd/Makefile
-index 457c4ca..f68c82c 100644
---- a/libmpathcmd/Makefile
-+++ b/libmpathcmd/Makefile
-@@ -9,7 +9,7 @@ OBJS = mpath_cmd.o
- all: $(LIBS)
- 
- $(LIBS): $(OBJS)
--	$(CC) $(LDFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ $(CFLAGS) -o $@ $(OBJS) $(LIBDEPS)
-+	$(CC) $(LDFLAGS) $(CFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ -o $@ $(OBJS) $(LIBDEPS)
- 	$(LN) $@ $(DEVLIB)
- 
- install: $(LIBS)
-diff --git a/libmpathpersist/Makefile b/libmpathpersist/Makefile
-index 6e43427..2486302 100644
---- a/libmpathpersist/Makefile
-+++ b/libmpathpersist/Makefile
-@@ -15,7 +15,7 @@ all: $(LIBS)
- 
- $(LIBS):
- 	$(CC) -c $(CFLAGS) *.c
--	$(CC) $(LDFLAGS) $(SHARED_FLAGS) $(LIBDEPS) -Wl,-soname=$@ $(CFLAGS) -o $@ $(OBJS)
-+	$(CC) $(LDFLAGS) $(CFLAGS) $(SHARED_FLAGS) $(LIBDEPS) -Wl,-soname=$@ -o $@ $(OBJS)
- 	$(LN) $(LIBS) $(DEVLIB)
- 	$(GZIP) mpath_persistent_reserve_in.3 > mpath_persistent_reserve_in.3.gz
- 	$(GZIP) mpath_persistent_reserve_out.3 > mpath_persistent_reserve_out.3.gz
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index 495cebe..752bcc0 100644
---- a/libmultipath/Makefile
-+++ b/libmultipath/Makefile
-@@ -55,7 +55,7 @@ OBJS = memory.o parser.o vector.o devmapper.o callout.o \
- all: $(LIBS)
- 
- $(LIBS): $(OBJS)
--	$(CC) $(LDFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ $(CFLAGS) -o $@ $(OBJS) $(LIBDEPS)
-+	$(CC) $(LDFLAGS) $(CFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ -o $@ $(OBJS) $(LIBDEPS)
- 	$(LN) $@ $(DEVLIB)
- 
- install:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
new file mode 100644
index 0000000..6ec5dff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
@@ -0,0 +1,113 @@
+SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
+
+DESCRIPTION = "It provides tools to manage multipath devices \
+by instructing the device-mapper kernel module what to do. These \
+tools include: \
+1. multipath - Scan the system for multipath devices and assemble them.\
+2. multipathd - Detects when paths fail and execs multipath to update \
+things.\
+3. mpathpersist - Persistent reservation management feature allows \
+cluster management software to manage persistent reservation through \
+mpath device. It processes management requests from callers and hides \
+the management task details. It also handles persistent reservation \
+management of data path life cycle and state changes.\
+4. kpartx - This tool, derived from util-linux's partx, reads partition \
+tables on specified device and create device maps over partitions \
+segments detected. It is called from hotplug upon device maps creation \
+and deletion"
+
+HOMEPAGE = "http://christophe.varoqui.free.fr/"
+
+DEPENDS = "libdevmapper \
+           libaio \
+           liburcu \
+           readline \
+           udev \
+           json-c \
+          "
+
+LICENSE = "GPLv2"
+
+SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
+           file://multipathd.oe \
+           file://multipath.conf.example \
+           file://0001-multipath-attempt-at-common-multipath.rules.patch \
+           file://0002-RH-fixup-udev-rules-for-redhat.patch \
+           file://0003-RH-Remove-the-property-blacklist-exception-builtin.patch \
+           file://0004-RH-don-t-start-without-a-config-file.patch \
+           file://0005-RH-add-mpathconf.patch \
+           file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
+           file://0007-RH-trigger-change-uevent-on-new-device-creation.patch \
+           file://0008-libmultipath-change-how-RADOS-checker-is-enabled.patch \
+           file://0009-multipath-set-verbosity-to-default-during-config.patch \
+           file://0010-mpath-skip-device-configs-without-vendor-product.patch \
+           file://0011-multipathd-fix-show-maps-json-crash.patch \
+           file://0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
+           file://0013-Always-use-devmapper.patch \
+           file://0014-Always-use-devmapper-for-kpartx.patch \
+           file://0001-kpartx-include-limits.h-for-PATH_MAX.patch \
+           "
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+SRCREV = "f21166a812a2cfb50ecf9550d32947c83103f83a"
+
+S = "${WORKDIR}/git"
+
+inherit systemd pkgconfig
+
+SYSTEMD_SERVICE_${PN} = "multipathd.service"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+# multipath-tools includes a copy of the valgrind.h header
+# file and uses the macros to suppress some false positives. However,
+# that only works on ARM when thumb is disabled. Otherwise one gets:
+#   Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
+#   ../Makefile.inc:66: recipe for target 'debug.o' failed
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+# The exact version of SYSTEMD does not matter but should be greater than 209.
+#
+EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
+                OPTFLAGS="${CFLAGS}" \
+                bindir=${base_sbindir} \
+                LIB=${base_libdir} libdir=${base_libdir}/multipath \
+                unitdir=${systemd_system_unitdir} \
+                ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
+               '
+
+do_install() {
+    oe_runmake install
+
+    # We copy an initscript, but do not start multipathd at init time.
+    #
+    if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then
+        install -d ${D}${sysconfdir}/init.d
+        cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
+    fi
+
+    install -d ${D}${sysconfdir}
+    install -m 0644 ${WORKDIR}/multipath.conf.example \
+    ${D}${sysconfdir}/multipath.conf.example
+}
+
+FILES_${PN}-dbg += "${base_libdir}/multipath/.debug"
+
+PACKAGES =+ "${PN}-libs"
+FILES_${PN}-libs = "${base_libdir}/lib*.so.* \
+                    ${base_libdir}/multipath/lib*.so*"
+RDEPENDS_${PN} += "${PN}-libs bash"
+
+PROVIDES += "device-mapper-multipath"
+RPROVIDES_${PN} += "device-mapper-multipath"
+RPROVIDES_${PN}-libs += "device-mapper-multipath-libs"
+
+FILES_${PN}-dev += "${base_libdir}/pkgconfig"
+
+PACKAGES =+ "kpartx"
+FILES_kpartx = "${base_sbindir}/kpartx \
+                ${nonarch_libdir}/udev/kpartx_id \
+               "
+
+RDEPENDS_${PN} += "bash kpartx"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb
deleted file mode 100644
index 5f8c422..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
-
-DEPENDS = "libdevmapper libaio liburcu readline udev"
-
-LICENSE = "LGPLv2"
-
-SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
-           file://multipathd.oe \
-           file://makefile_inc.patch \
-           file://always-use-libdevmapper.patch \
-           file://always-use-libdevmapper-kpartx.patch \
-           file://0001-multipathd.service-Error-fix.patch \
-           file://shared-libs-avoid-linking-.so-as-executable.patch \
-           file://checkers-disable-libcheckrbd.so.patch \
-           "
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-# 0.6.4
-SRCREV = "922421cf795d53d339862bb2d99f1a85c96ad9a3"
-
-inherit systemd
-
-
-S = "${WORKDIR}/git"
-
-PV = "0.6.4+git${@'${SRCPV}'.split('+')[-1]}"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-# multipath-tools includes a copy of the valgrind.h header
-# file and uses the macros to suppress some false positives. However,
-# that only works on ARM when thumb is disabled. Otherwise one gets:
-#   Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
-#   ../Makefile.inc:66: recipe for target 'debug.o' failed
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-# The exact version of SYSTEMD does not matter but should be greater than 209.
-#
-EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
-                OPTFLAGS="${CFLAGS}" \
-                bindir=${base_sbindir} \
-                LIB=${base_libdir} libdir=${base_libdir}/multipath \
-                unitdir=${systemd_system_unitdir} \
-                ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
-               '
-
-do_install() {
-    oe_runmake install
-
-    # We copy an initscript, but do not start multipathd at init time.
-    #
-    install -d ${D}${sysconfdir}/init.d
-    cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
-
-}
-
-FILES_${PN}-dbg += "${base_libdir}/multipath/.debug"
-
-# systemd and udev stuff always goes under /lib!
-#
-FILES_${PN} += "${base_libdir}/multipath \
-                ${systemd_system_unitdir} \
-		"
-
-PACKAGES =+ "kpartx"
-FILES_kpartx = "${base_sbindir}/kpartx \
-                ${nonarch_libdir}/udev/kpartx_id \
-               "
-
-RDEPENDS_${PN} += "kpartx"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.55.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.55.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
index fd9dcbd..263b313 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
@@ -4,7 +4,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI = "http://downloads.mariadb.com/MariaDB/mariadb-${PV}/source/mariadb-${PV}.tar.gz \
+SRC_URI = "https://downloads.mariadb.org/f/${BP}/source/${BP}.tar.gz \
            file://fix-cmake-module-path.patch \
            file://remove-bad-path.patch \
            file://fix-mysqlclient-r-version.patch \
@@ -17,10 +17,10 @@
            file://fix-a-building-failure.patch \
            file://change-cc-to-cc-version.patch \
            file://0001-disable-ucontext-on-musl.patch \
-           file://gcc7.patch \
           "
-SRC_URI[md5sum] = "54a0bbbc9b67308e7c076622d02f0fcd"
-SRC_URI[sha256sum] = "cb94e315d0fc90c62db5a6c7829c9966f674285d99b3ba3ffa575fb4a26edc86"
+
+SRC_URI[md5sum] = "2d4104aae0b9e5efa8878918bd329cb4"
+SRC_URI[sha256sum] = "5dbde98d7e4a5a1721b6cbed7898b2549a88866247951cf586057975c6cea641"
 
 S = "${WORKDIR}/mariadb-${PV}"
 
@@ -82,6 +82,9 @@
                  -DCAT_EXECUTABLE=`which cat` \
                  -DCMAKE_AR:FILEPATH=${AR}"
 
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
 do_configure_append() {
     # handle distros with different values of ${libexecdir}
     libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
@@ -255,6 +258,7 @@
     ${bindir}/mysqlbinlog \
     ${bindir}/mysqld_multi \
     ${bindir}/mysqld_safe \
+    ${bindir}/mysqld_safe_helper \
     ${bindir}/mysqlhotcopy \
     ${bindir}/mysqltest \
     ${bindir}/ndb_delete_all \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/gcc7.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/gcc7.patch
deleted file mode 100644
index 3e75b26..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/gcc7.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: mariadb-5.5.55/client/mysql.cc
-===================================================================
---- mariadb-5.5.55.orig/client/mysql.cc
-+++ mariadb-5.5.55/client/mysql.cc
-@@ -2850,7 +2850,7 @@ You can turn off this feature to get a q
-         mysql_free_result(fields);
-         break;
-       }
--      field_names[i][num_fields*2]= '\0';
-+      field_names[i][num_fields*2][0]= '\0';
-       j=0;
-       while ((sql_field=mysql_fetch_field(fields)))
-       {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.55.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.55.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb
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
new file mode 100644
index 0000000..3e6b10a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb
@@ -0,0 +1,16 @@
+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/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
new file mode 100644
index 0000000..e8debe5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
@@ -0,0 +1,46 @@
+From d977b5170027926eb97ab9742ddc51d2a5555a34 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jul 2017 10:06:49 -0700
+Subject: [PATCH] lmon16g.c: Adjust system headers
+
+fstab.h is unused
+errno.h is in /usr/include
+defines from sys/cdefs.h is used
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lmon16g.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lmon16g.c b/lmon16g.c
+index cb27e09..d2a11c5 100644
+--- a/lmon16g.c
++++ b/lmon16g.c
+@@ -63,7 +63,7 @@ static char *SccsId = "nmon " VERSION;
+ #include <fcntl.h>
+ #include <math.h>
+ #include <time.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/ioctl.h>
+@@ -71,6 +71,7 @@ static char *SccsId = "nmon " VERSION;
+ #include <sys/time.h>
+ #include <sys/socket.h>
+ #include <sys/wait.h>
++#include <sys/cdefs.h>
+ 
+ /* Windows moved here so they can be cleared when the screen mode changes */
+ WINDOW *padwelcome = NULL;
+@@ -576,7 +577,6 @@ struct procsinfo {
+ int isroot = 0;
+ 
+ #include <mntent.h>
+-#include <fstab.h>
+ #include <sys/stat.h>
+ #include <sys/statfs.h>
+ #include <net/if.h>
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb
deleted file mode 100644
index 1f75189..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "nmon performance monitor"
-HOMEPAGE = "http://nmon.sf.net"
-SECTION = "console/utils"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
-DEPENDS = "ncurses"
-PR = "r2"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon \
-           ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
-"
-
-SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494"
-SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5"
-SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
-SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
-
-CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
-LDFLAGS += "-ltinfo -lncursesw"
-ASNEEDED_pn-nmon = ""
-
-do_compile() {
-    ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon
-}
-
-do_install() {
-    install -d ${D}${bindir}
-    install -m 0755 nmon ${D}${bindir}
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
new file mode 100644
index 0000000..e77faa3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
@@ -0,0 +1,31 @@
+SUMMARY = "nmon performance monitor"
+HOMEPAGE = "http://nmon.sf.net"
+SECTION = "console/utils"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
+DEPENDS = "ncurses"
+DEPENDS_append_libc-musl = " bsd-headers"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \
+           ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
+           file://0001-lmon16g.c-Adjust-system-headers.patch \
+"
+SRC_URI[lmon.md5sum] = "246ccfc74d5af55d992601fc4d3d4a72"
+SRC_URI[lmon.sha256sum] = "da82dd693b503b062854dfe7dbb5d36b347872ab44a4aa05b97e9d577747f688"
+SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
+SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
+
+CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
+LDFLAGS += "-ltinfo -lncursesw -lm"
+ASNEEDED_pn-nmon = ""
+
+S = "${WORKDIR}"
+
+do_compile() {
+    ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 nmon ${D}${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
similarity index 88%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
index dd159a3..b9cbcf0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
@@ -1,4 +1,5 @@
 SUMMARY = "Development package for building Applications that use numa"
+HOMEPAGE = "http://oss.sgi.com/projects/libnuma/" 
 DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \
 to run other programs with a specific NUMA policy and a libnuma to do \
 allocations with NUMA policy in applications."
@@ -10,15 +11,18 @@
 
 LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
 
-SRC_URI = "ftp://oss.sgi.com/www/projects/libnuma/download/${BPN}-${PV}.tar.gz \
+SRCREV = "ea3a70681c2f523fe58e1d44527f478ca76db74e"
+PV = "2.0.11+git${SRCPV}"
+
+SRC_URI = "git://github.com/numactl/numactl \
     file://fix-null-pointer.patch \
     file://Fix-the-test-output-format.patch \
     file://Makefile \
     file://run-ptest \
     file://0001-define-run-test-target.patch \
 "
-SRC_URI[md5sum] = "d3bc88b7ddb9f06d60898f4816ae9127"
-SRC_URI[sha256sum] = "450c091235f891ee874a8651b179c30f57a1391ca5c4673354740ba65e527861"
+
+S = "${WORKDIR}/git"
 
 # ARM does not currently support NUMA
 COMPATIBLE_HOST = "^((?!arm).*)$"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch
deleted file mode 100644
index 246b2e2..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: ode-0.13/libccd/configure.ac
-===================================================================
---- ode-0.13.orig/libccd/configure.ac	2013-08-19 17:48:03.000000000 +0000
-+++ ode-0.13/libccd/configure.ac	2014-07-17 22:04:16.580595690 +0000
-@@ -5,7 +5,7 @@
- AC_INIT([libccd], [1.0], [danfis@danfis.cz])
- AC_CONFIG_SRCDIR([src/ccd.c])
- AC_CONFIG_HEADERS([src/config.h])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
- 
- # Checks for programs.
- AC_PROG_CXX
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb
deleted file mode 100644
index c90c819..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "ODE is an Open Source Physics Engine"
-SECTION = "libs"
-HOMEPAGE = "http://www.ode.org"
-LICENSE = "LGPLv2.1 & BSD"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=1de906ee96808d9776dd72a5f9a79a22 \
-    file://LICENSE.TXT;md5=771782cb6245c7fbbe74bc0ec059beff \
-"
-# LICENSE-BSD.TXT is missing in 0.13 tarball, but COPYING still says it's dual licensed
-# and svn repo still contains LICENSE-BSD.TXT so maybe it will return in next tarball
-# file://LICENSE-BSD.TXT;md5=c74e6304a772117e059458fb9763a928
-
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/opende/ode-${PV}.tar.bz2 \
-           file://configure.patch"
-SRC_URI[md5sum] = "04b32c9645c147e18caff7a597a19f84"
-SRC_URI[sha256sum] = "34ce3e236e313bf109a0cb5546d2fca462aed99f29a42e62bc1463b803c31ef9"
-
-inherit autotools binconfig
-
-EXTRA_OECONF = "--disable-demos --enable-soname"
-
-FILES_${PN} = "${libdir}/lib*${SOLIBS}"
-
-PACKAGECONFIG ?= ""
-# if it isn't explicitly selected and "$build_os" == "$target_os", then configure will run
-# series of AC_TRY_RUN which won't work for cross-compilation and configure fails
-PACKAGECONFIG[double-precision] = "--enable-double-precision,--disable-double-precision"
-
-PNBLACKLIST[ode] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130599/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-PNBLACKLIST[ode] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130620/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
deleted file mode 100644
index d3f2e78..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "An encoder/decoder for the VCDIFF (RFC3284) format"
-DESCRIPTION = "A library with a simple API is included, as well as a \
-               command-line executable that can apply the encoder and \
-               decoder to source, target, and delta files. \
-               A slight variation from the draft standard is defined \
-               to allow chunk-by-chunk decoding when only a partial \
-               delta file window is available."
-HOMEPAGE = "http://code.google.com/p/open-vcdiff/"
-SECTION = "console/utils"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ff820d4ddc1ba05b6fd37b41a21506f9"
-
-SRC_URI = "https://drive.google.com/uc?id=0B5WpIi2fQU1aNGJwVE9hUjU5clU&export=download;downloadfilename=${BP}.tar.gz"
-SRC_URI[md5sum] = "5c0d378d907bebc38b51c3d7e4117011"
-SRC_URI[sha256sum] = "2b142b1027fb0a62c41347600e01a53fa274dad15445a7da48083c830c3138b3"
-
-inherit autotools
-
-# http://errors.yoctoproject.org/Errors/Details/68667/
-PNBLACKLIST[open-vcdiff] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
new file mode 100644
index 0000000..f6cae70
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
@@ -0,0 +1,2 @@
+[guestinfo]
+disable-perf-mon=1
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service
new file mode 100644
index 0000000..d30e380
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Open Virtual Machine Tools (VMware Tools)
+ConditionVirtualization=vmware
+
+[Service]
+ExecStart=/usr/bin/vmtoolsd
+Restart=on-failure
+KillSignal=SIGKILL
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
new file mode 100644
index 0000000..9773b4a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
@@ -0,0 +1,45 @@
+From a0983d84185f04c4e40778fe951fde4439894882 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 07:37:03 -0700
+Subject: [PATCH 01/11] Remove assumptions about glibc being only libc
+ implementation on linux
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/file/fileIOPosix.c      | 2 +-
+ open-vm-tools/lib/include/vm_basic_defs.h | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+Index: open-vm-tools/lib/file/fileIOPosix.c
+===================================================================
+--- open-vm-tools.orig/lib/file/fileIOPosix.c
++++ open-vm-tools/lib/file/fileIOPosix.c
+@@ -205,7 +205,7 @@ static AlignedPool alignedPool;
+  * are not available in any header file.
+  */
+ 
+-#if defined(__linux__) && !defined(__ANDROID__)
++#if defined(__linux__) && defined(__GLIBC__)
+    #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
+       /*
+        * We want preadv/pwritev. But due to FOB=64, the symbols are -64.
+Index: open-vm-tools/lib/include/vm_basic_defs.h
+===================================================================
+--- open-vm-tools.orig/lib/include/vm_basic_defs.h
++++ open-vm-tools/lib/include/vm_basic_defs.h
+@@ -571,6 +571,7 @@ typedef int pid_t;
+ #if defined __linux__ && !defined __KERNEL__ && !defined MODULE && \
+                          !defined VMM && !defined FROBOS && !defined __ANDROID__
+ #include <features.h>
++#if __GLIBC__
+ #if __GLIBC_PREREQ(2, 1) && !defined GLIBC_VERSION_21
+ #define GLIBC_VERSION_21
+ #endif
+@@ -590,6 +591,7 @@ typedef int pid_t;
+ #define GLIBC_VERSION_212
+ #endif
+ #endif
++#endif
+ 
+ /*
+  * Convenience definitions of unicode characters.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
new file mode 100644
index 0000000..e9cb873
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -0,0 +1,41 @@
+From 929150608c16644695f19cd2e0cc8a06a41cd497 Mon Sep 17 00:00:00 2001
+From: Martin Kelly <mkelly@xevo.com>
+Date: Fri, 7 Apr 2017 15:20:30 -0700
+Subject: [PATCH] configure.ac: don't use dnet-config
+
+The dnet-config tool doesn't know about cross-compilation, so it injects
+-I/usr/include into the path, causing compiler errors. So instead find dnet via
+-ldnet.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Kelly <mkelly@xevo.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3400b86..7d6119e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -942,7 +942,7 @@ if test "$with_dnet" = "yes"; then
+       AC_VMW_CHECK_LIB([dnet],
+                        [DNET],
+                        [],
+-                       [dnet-config],
++                       [],
+                        [],
+                        [dnet.h],
+                        [intf_open],
+@@ -952,7 +952,7 @@ if test "$with_dnet" = "yes"; then
+ 
+    if test $have_dnet = "no"; then
+ 		AC_MSG_ERROR(
+-		   [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
++		   [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
+ 	fi
+ fi
+ 
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
new file mode 100644
index 0000000..f905601
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
@@ -0,0 +1,33 @@
+From 5818acc8032e3247257730376e947330340a07b3 Mon Sep 17 00:00:00 2001
+From: Martin Kelly <mkelly@xevo.com>
+Date: Mon, 22 May 2017 17:00:05 -0700
+Subject: [PATCH 2/2] add #include <sys/sysmacros.h>
+
+In newer glibc versions, the definition for major() has been moved to
+sys/sysmacros.h, and using the older version in <sys/types.h> has been
+deprecated. So, add an include for <sys/sysmacros.h>.
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Kelly <mkelly@xevo.com>
+---
+ lib/wiper/wiperPosix.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/open-vm-tools/lib/wiper/wiperPosix.c b/open-vm-tools/lib/wiper/wiperPosix.c
+index d389eee..1f221fc 100644
+--- a/lib/wiper/wiperPosix.c
++++ b/lib/wiper/wiperPosix.c
+@@ -40,6 +40,9 @@
+ #  include <libgen.h>
+ # endif /* __FreeBSD_version >= 500000 */
+ #endif
++#if defined(__linux__)
++#include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+ 
+ #include "vmware.h"
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
new file mode 100644
index 0000000..d26bf2d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
@@ -0,0 +1,24 @@
+From d44c7c9de7380ad7b284231bd5b5c99b5c19758d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 07:37:59 -0700
+Subject: [PATCH 02/11] include poll.h instead of obsolete sys/poll.h
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/asyncsocket/asyncSocketInt.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: open-vm-tools/lib/asyncsocket/asyncSocketInt.h
+===================================================================
+--- open-vm-tools.orig/lib/asyncsocket/asyncSocketInt.h
++++ open-vm-tools/lib/asyncsocket/asyncSocketInt.h
+@@ -71,8 +71,8 @@
+ #else
+ #include <stddef.h>
+ #include <ctype.h>
++#include <poll.h>
+ #include <sys/types.h>
+-#include <sys/poll.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <netdb.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
new file mode 100644
index 0000000..8641778
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
@@ -0,0 +1,756 @@
+From 687fca20b3417ac885b6961e6fe1126d4a3fe7a4 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 17 Nov 2015 10:57:31 +0000
+Subject: [PATCH 03/11] Rename poll.h to vm_poll.h
+
+musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
+we rename poll.h to vm_poll.h.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c                          | 2 +-
+ open-vm-tools/lib/hgfsServer/hgfsServer.c                            | 2 +-
+ open-vm-tools/lib/include/asyncsocket.h                              | 2 +-
+ open-vm-tools/lib/include/pollImpl.h                                 | 2 +-
+ open-vm-tools/lib/include/{poll.h => vm_poll.h}                      | 0
+ open-vm-tools/lib/rpcIn/rpcin.c                                      | 2 +-
+ open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +-
+ 7 files changed, 6 insertions(+), 6 deletions(-)
+ rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (100%)
+
+Index: open-vm-tools/lib/asyncsocket/asyncsocket.c
+===================================================================
+--- open-vm-tools.orig/lib/asyncsocket/asyncsocket.c
++++ open-vm-tools/lib/asyncsocket/asyncsocket.c
+@@ -52,7 +52,7 @@
+ #include "vmware.h"
+ #include "asyncsocket.h"
+ #include "asyncSocketInt.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "log.h"
+ #include "err.h"
+ #include "hostinfo.h"
+Index: open-vm-tools/lib/hgfsServer/hgfsServer.c
+===================================================================
+--- open-vm-tools.orig/lib/hgfsServer/hgfsServer.c
++++ open-vm-tools/lib/hgfsServer/hgfsServer.c
+@@ -48,7 +48,7 @@
+ #include "hgfsServerOplock.h"
+ #include "hgfsDirNotify.h"
+ #include "userlock.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "mutexRankLib.h"
+ #include "vm_basic_asm.h"
+ #include "unicodeOperations.h"
+Index: open-vm-tools/lib/include/asyncsocket.h
+===================================================================
+--- open-vm-tools.orig/lib/include/asyncsocket.h
++++ open-vm-tools/lib/include/asyncsocket.h
+@@ -129,7 +129,7 @@ typedef struct AsyncSocket AsyncSocket;
+  * Or the client can specify its favorite poll class and locking behavior.
+  * Use of IVmdbPoll is only supported for regular sockets and for Attach.
+  */
+-#include "poll.h"
++#include "vm_poll.h"
+ struct IVmdbPoll;
+ typedef struct AsyncSocketPollParams {
+    int flags;               /* Default 0, only POLL_FLAG_NO_BULL is valid */
+Index: open-vm-tools/lib/include/poll.h
+===================================================================
+--- open-vm-tools.orig/lib/include/poll.h
++++ /dev/null
+@@ -1,324 +0,0 @@
+-/*********************************************************
+- * Copyright (C) 1998-2016 VMware, Inc. All rights reserved.
+- *
+- * 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 version 2.1 and no later version.
+- *
+- * This program is distributed in the hope that it will be useful, but
+- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+- * or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
+- * License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public License
+- * along with this program; if not, write to the Free Software Foundation, Inc.,
+- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+- *
+- *********************************************************/
+-
+-/*********************************************************
+- * The contents of this file are subject to the terms of the Common
+- * Development and Distribution License (the "License") version 1.0
+- * and no later version.  You may not use this file except in
+- * compliance with the License.
+- *
+- * You can obtain a copy of the License at
+- *         http://www.opensource.org/licenses/cddl1.php
+- *
+- * See the License for the specific language governing permissions
+- * and limitations under the License.
+- *
+- *********************************************************/
+-
+-
+-#ifndef _POLL_H_
+-#define _POLL_H_
+-
+-#define INCLUDE_ALLOW_USERLEVEL
+-#define INCLUDE_ALLOW_VMCORE
+-#include "includeCheck.h"
+-
+-#include "vm_basic_types.h"
+-#include "vm_basic_defs.h"
+-#include "vmware.h"
+-#include "userlock.h"
+-
+-#ifdef _WIN32
+-#define HZ 100
+-#elif defined linux
+-#include <asm/param.h>
+-#elif __APPLE__
+-#include <TargetConditionals.h>
+-/*
+- * Old SDKs don't define TARGET_OS_IPHONE at all.
+- * New ones define it to 0 on Mac OS X, 1 on iOS.
+- */
+-#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
+-#include <sys/kernel.h>
+-#endif
+-#include <sys/poll.h>
+-#define HZ 100
+-#endif
+-#ifdef __ANDROID__
+-/*
+- * <poll.h> of android should be included, but its name is same
+- * with this file. So its content is put here to avoid conflict.
+- */
+-#include <asm/poll.h>
+-#define HZ 100
+-typedef unsigned int  nfds_t;
+-int poll(struct pollfd *, nfds_t, long);
+-#endif
+-
+-
+-/*
+- * Poll event types: each type has a different reason for firing,
+- * or condition that must be met before firing.
+- */
+-
+-typedef enum {
+-   /*
+-    * Actual Poll queue types against which you can register callbacks.
+-    */
+-   POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
+-   POLL_VTIME = 0,
+-   POLL_REALTIME,
+-   POLL_DEVICE,
+-   POLL_MAIN_LOOP,
+-   POLL_NUM_QUEUES
+-} PollEventType;
+-
+-
+-/*
+- * Classes of events
+- *
+- * These are the predefined classes.  More can be declared
+- * with Poll_AllocClass().
+- */
+-
+-typedef enum PollClass {
+-   POLL_CLASS_MAIN,
+-   POLL_CLASS_PAUSE,
+-   POLL_CLASS_IPC,
+-   POLL_CLASS_CPT,
+-   POLL_CLASS_MKS,
+-   POLL_FIXED_CLASSES,
+-   POLL_MAX_CLASSES = 320 /* Size enum to maximum */
+-} PollClass;
+-
+-
+-/*
+- * Each callback is registered in a set of classes
+- */
+-
+-typedef struct PollClassSet {
+-   /* Type is uintptr_t to give best 32/64-bit code. */
+-#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
+-   uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
+-} PollClassSet;
+-
+-/* An empty PollClassSet. */
+-static INLINE PollClassSet
+-PollClassSet_Empty(void)
+-{
+-   PollClassSet set = { { 0 } };
+-   return set;
+-}
+-
+-/* A PollClassSet with the single member. */
+-static INLINE PollClassSet
+-PollClassSet_Singleton(PollClass c)
+-{
+-   PollClassSet s = PollClassSet_Empty();
+-
+-   ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
+-   ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
+-   ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
+-   ASSERT(c < POLL_MAX_CLASSES);
+-
+-   s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
+-   return s;
+-}
+-
+-/* Combine two PollClassSets. */
+-static INLINE PollClassSet
+-PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
+-{
+-   PollClassSet u;
+-   unsigned i;
+-
+-   for (i = 0; i < ARRAYSIZE(u.bits); i++) {
+-      u.bits[i] = lhs.bits[i] | rhs.bits[i];
+-   }
+-   return u;
+-}
+-
+-/* Add single class to PollClassSet. */
+-static INLINE PollClassSet
+-PollClassSet_Include(PollClassSet set, PollClass c)
+-{
+-   return PollClassSet_Union(set, PollClassSet_Singleton(c));
+-}
+-
+-
+-#define POLL_CS_MAIN    PollClassSet_Singleton(POLL_CLASS_MAIN)
+-#define POLL_CS_PAUSE   PollClassSet_Union(POLL_CS_MAIN,            \
+-                           PollClassSet_Singleton(POLL_CLASS_PAUSE))
+-#define POLL_CS_CPT     PollClassSet_Union(POLL_CS_PAUSE,           \
+-                           PollClassSet_Singleton(POLL_CLASS_CPT))
+-#define POLL_CS_IPC     PollClassSet_Union(POLL_CS_CPT,             \
+-                           PollClassSet_Singleton(POLL_CLASS_IPC))
+-#define POLL_CS_VMDB    POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
+-#define POLL_CS_MKS	PollClassSet_Singleton(POLL_CLASS_MKS)
+-/* 
+- * DANGER.  You don't need POLL_CS_ALWAYS.  Really.  So don't use it.
+- */
+-#define POLL_CS_ALWAYS  PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
+-
+-/*
+- * Poll class-set taxonomy:
+- * POLL_CS_MAIN
+- *    - Unless you NEED another class, use POLL_CS_MAIN.
+- * POLL_CS_PAUSE
+- *    - For callbacks that must occur even if the guest is paused.
+- *      Most VMDB or Foundry commands are in this category.
+- * POLL_CS_CPT
+- *    - Only for callbacks which can trigger intermediate Checkpoint 
+- *      transitions.
+- *      The ONLY such callback is Migrate.
+- * POLL_CS_IPC
+- *    - Only for callbacks which can contain Msg_(Post|Hint|Question) 
+- *      responses, and for signal handlers (why)?
+- *      Vigor, VMDB, and Foundry can contain Msg_* responses.
+- * POLL_CS_MKS
+- *    - Callback runs in MKS thread.
+- * POLL_CS_ALWAYS
+- *    - Only for events that must be processed immediately.
+- *      The ONLY such callback is OvhdMemVmxSizeCheck.
+- */
+-
+-
+-/*
+- * Poll_Callback flags
+- */
+-
+-#define POLL_FLAG_PERIODIC		0x01    // keep after firing
+-#define POLL_FLAG_REMOVE_AT_POWEROFF	0x02  	// self-explanatory
+-#define POLL_FLAG_READ			0x04	// device is ready for reading
+-#define POLL_FLAG_WRITE			0x08	// device is ready for writing
+-#define POLL_FLAG_SOCKET                0x10    // device is a Windows socket
+-#define POLL_FLAG_NO_BULL               0x20    // callback does its own locking
+-#define POLL_FLAG_WINSOCK               0x40    // Winsock style write events
+-#define POLL_FLAG_FD                    0x80    // device is a Windows file descriptor.
+-#define POLL_FLAG_ACCEPT_INVALID_FDS    0x100   // For broken 3rd party libs, e.g. curl
+-#define POLL_FLAG_THUNK_TO_WND          0x200   // thunk callback to window message loop
+-
+-
+-/*
+- * Advisory minimum time period.
+- * Users that want the fastest running real-time poll
+- * should use TICKS_TO_USECS(1).
+- */
+-
+-#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
+-#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
+-
+-
+-typedef void (*PollerFunction)(void *clientData);
+-typedef void (*PollerFireWrapper)(PollerFunction func,
+-                                  void *funcData,
+-                                  void *wrapperData);
+-typedef Bool (*PollerErrorFn)(const char *errorStr);
+-
+-/*
+- * Initialisers:
+- *
+- *      For the sake of convenience, we declare the initialisers
+- *      for custom implmentations here, even though the actual
+- *      implementations are distinct from the core poll code.
+- */
+-
+-typedef struct PollOptions {
+-   Bool locked;           // Use internal MXUser for locking
+-   Bool allowFullQueue;   // Don't assert when device event queue is full.
+-   VThreadID windowsMsgThread;       // thread that processes Windows messages
+-   PollerFireWrapper fireWrapperFn;  // optional; may be useful for stats
+-   void *fireWrapperData; // optional
+-   PollerErrorFn errorFn; // optional; called upon unrecoverable error
+-} PollOptions;
+-
+-
+-void Poll_InitDefault(void);
+-void Poll_InitDefaultEx(const PollOptions *opts);
+-void Poll_InitGtk(void); // On top of glib for Linux
+-void Poll_InitCF(void);  // On top of CoreFoundation for OSX
+-
+-
+-/*
+- * Functions
+- */
+-int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
+-void Poll_Loop(Bool loop, Bool *exit, PollClass c);
+-void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
+-Bool Poll_LockingEnabled(void);
+-void Poll_Exit(void);
+-
+-
+-/*
+- * Poll_Callback adds a callback regardless of whether an identical one exists.
+- *
+- * Likewise, Poll_CallbackRemove removes exactly one callback.
+- */
+-
+-VMwareStatus Poll_Callback(PollClassSet classSet,
+-                           int flags,
+-                           PollerFunction f,
+-                           void *clientData,
+-                           PollEventType type,
+-                           PollDevHandle info, // fd/microsec delay
+-                           MXUserRecLock *lck);
+-Bool Poll_CallbackRemove(PollClassSet classSet,
+-                         int flags,
+-                         PollerFunction f,
+-                         void *clientData,
+-                         PollEventType type);
+-Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
+-                                int flags,
+-                                PollerFunction f,
+-                                PollEventType type,
+-                                void **clientData);
+-
+-void Poll_NotifyChange(PollClassSet classSet);
+-
+-/*
+- * Wrappers for Poll_Callback and Poll_CallbackRemove that present
+- * simpler subsets of those interfaces.
+- */
+-
+-VMwareStatus Poll_CB_Device(PollerFunction f,
+-                            void *clientData,
+-                            PollDevHandle device,
+-                            Bool periodic);
+-
+-Bool Poll_CB_DeviceRemove(PollerFunction f,
+-                          void *clientData,
+-                          Bool periodic);
+-
+-
+-VMwareStatus Poll_CB_RTime(PollerFunction f,
+-                           void *clientData,
+-                           int delay,	// microseconds
+-                           Bool periodic,
+-                           MXUserRecLock *lock);
+-
+-Bool Poll_CB_RTimeRemove(PollerFunction f,
+-                         void *clientData,
+-                         Bool periodic);
+-
+-
+-#ifdef _WIN32
+-void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
+-Bool Poll_FireWndCallback(void *lparam);
+-#endif
+-
+-#endif // _POLL_H_
+Index: open-vm-tools/lib/include/pollImpl.h
+===================================================================
+--- open-vm-tools.orig/lib/include/pollImpl.h
++++ open-vm-tools/lib/include/pollImpl.h
+@@ -44,7 +44,7 @@
+ #define INCLUDE_ALLOW_USERLEVEL
+ #include "includeCheck.h"
+ 
+-#include "poll.h"
++#include "vm_poll.h"
+ 
+ /*
+  * PollImpl:
+Index: open-vm-tools/lib/include/vm_poll.h
+===================================================================
+--- /dev/null
++++ open-vm-tools/lib/include/vm_poll.h
+@@ -0,0 +1,324 @@
++/*********************************************************
++ * Copyright (C) 1998-2016 VMware, Inc. All rights reserved.
++ *
++ * 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 version 2.1 and no later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser GNU General Public
++ * License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
++ *
++ *********************************************************/
++
++/*********************************************************
++ * The contents of this file are subject to the terms of the Common
++ * Development and Distribution License (the "License") version 1.0
++ * and no later version.  You may not use this file except in
++ * compliance with the License.
++ *
++ * You can obtain a copy of the License at
++ *         http://www.opensource.org/licenses/cddl1.php
++ *
++ * See the License for the specific language governing permissions
++ * and limitations under the License.
++ *
++ *********************************************************/
++
++
++#ifndef _POLL_H_
++#define _POLL_H_
++
++#define INCLUDE_ALLOW_USERLEVEL
++#define INCLUDE_ALLOW_VMCORE
++#include "includeCheck.h"
++
++#include "vm_basic_types.h"
++#include "vm_basic_defs.h"
++#include "vmware.h"
++#include "userlock.h"
++
++#ifdef _WIN32
++#define HZ 100
++#elif defined linux
++#include <asm/param.h>
++#elif __APPLE__
++#include <TargetConditionals.h>
++/*
++ * Old SDKs don't define TARGET_OS_IPHONE at all.
++ * New ones define it to 0 on Mac OS X, 1 on iOS.
++ */
++#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
++#include <sys/kernel.h>
++#endif
++#include <sys/poll.h>
++#define HZ 100
++#endif
++#ifdef __ANDROID__
++/*
++ * <poll.h> of android should be included, but its name is same
++ * with this file. So its content is put here to avoid conflict.
++ */
++#include <asm/poll.h>
++#define HZ 100
++typedef unsigned int  nfds_t;
++int poll(struct pollfd *, nfds_t, long);
++#endif
++
++
++/*
++ * Poll event types: each type has a different reason for firing,
++ * or condition that must be met before firing.
++ */
++
++typedef enum {
++   /*
++    * Actual Poll queue types against which you can register callbacks.
++    */
++   POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
++   POLL_VTIME = 0,
++   POLL_REALTIME,
++   POLL_DEVICE,
++   POLL_MAIN_LOOP,
++   POLL_NUM_QUEUES
++} PollEventType;
++
++
++/*
++ * Classes of events
++ *
++ * These are the predefined classes.  More can be declared
++ * with Poll_AllocClass().
++ */
++
++typedef enum PollClass {
++   POLL_CLASS_MAIN,
++   POLL_CLASS_PAUSE,
++   POLL_CLASS_IPC,
++   POLL_CLASS_CPT,
++   POLL_CLASS_MKS,
++   POLL_FIXED_CLASSES,
++   POLL_MAX_CLASSES = 320 /* Size enum to maximum */
++} PollClass;
++
++
++/*
++ * Each callback is registered in a set of classes
++ */
++
++typedef struct PollClassSet {
++   /* Type is uintptr_t to give best 32/64-bit code. */
++#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
++   uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
++} PollClassSet;
++
++/* An empty PollClassSet. */
++static INLINE PollClassSet
++PollClassSet_Empty(void)
++{
++   PollClassSet set = { { 0 } };
++   return set;
++}
++
++/* A PollClassSet with the single member. */
++static INLINE PollClassSet
++PollClassSet_Singleton(PollClass c)
++{
++   PollClassSet s = PollClassSet_Empty();
++
++   ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
++   ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
++   ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
++   ASSERT(c < POLL_MAX_CLASSES);
++
++   s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
++   return s;
++}
++
++/* Combine two PollClassSets. */
++static INLINE PollClassSet
++PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
++{
++   PollClassSet u;
++   unsigned i;
++
++   for (i = 0; i < ARRAYSIZE(u.bits); i++) {
++      u.bits[i] = lhs.bits[i] | rhs.bits[i];
++   }
++   return u;
++}
++
++/* Add single class to PollClassSet. */
++static INLINE PollClassSet
++PollClassSet_Include(PollClassSet set, PollClass c)
++{
++   return PollClassSet_Union(set, PollClassSet_Singleton(c));
++}
++
++
++#define POLL_CS_MAIN    PollClassSet_Singleton(POLL_CLASS_MAIN)
++#define POLL_CS_PAUSE   PollClassSet_Union(POLL_CS_MAIN,            \
++                           PollClassSet_Singleton(POLL_CLASS_PAUSE))
++#define POLL_CS_CPT     PollClassSet_Union(POLL_CS_PAUSE,           \
++                           PollClassSet_Singleton(POLL_CLASS_CPT))
++#define POLL_CS_IPC     PollClassSet_Union(POLL_CS_CPT,             \
++                           PollClassSet_Singleton(POLL_CLASS_IPC))
++#define POLL_CS_VMDB    POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
++#define POLL_CS_MKS	PollClassSet_Singleton(POLL_CLASS_MKS)
++/* 
++ * DANGER.  You don't need POLL_CS_ALWAYS.  Really.  So don't use it.
++ */
++#define POLL_CS_ALWAYS  PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
++
++/*
++ * Poll class-set taxonomy:
++ * POLL_CS_MAIN
++ *    - Unless you NEED another class, use POLL_CS_MAIN.
++ * POLL_CS_PAUSE
++ *    - For callbacks that must occur even if the guest is paused.
++ *      Most VMDB or Foundry commands are in this category.
++ * POLL_CS_CPT
++ *    - Only for callbacks which can trigger intermediate Checkpoint 
++ *      transitions.
++ *      The ONLY such callback is Migrate.
++ * POLL_CS_IPC
++ *    - Only for callbacks which can contain Msg_(Post|Hint|Question) 
++ *      responses, and for signal handlers (why)?
++ *      Vigor, VMDB, and Foundry can contain Msg_* responses.
++ * POLL_CS_MKS
++ *    - Callback runs in MKS thread.
++ * POLL_CS_ALWAYS
++ *    - Only for events that must be processed immediately.
++ *      The ONLY such callback is OvhdMemVmxSizeCheck.
++ */
++
++
++/*
++ * Poll_Callback flags
++ */
++
++#define POLL_FLAG_PERIODIC		0x01    // keep after firing
++#define POLL_FLAG_REMOVE_AT_POWEROFF	0x02  	// self-explanatory
++#define POLL_FLAG_READ			0x04	// device is ready for reading
++#define POLL_FLAG_WRITE			0x08	// device is ready for writing
++#define POLL_FLAG_SOCKET                0x10    // device is a Windows socket
++#define POLL_FLAG_NO_BULL               0x20    // callback does its own locking
++#define POLL_FLAG_WINSOCK               0x40    // Winsock style write events
++#define POLL_FLAG_FD                    0x80    // device is a Windows file descriptor.
++#define POLL_FLAG_ACCEPT_INVALID_FDS    0x100   // For broken 3rd party libs, e.g. curl
++#define POLL_FLAG_THUNK_TO_WND          0x200   // thunk callback to window message loop
++
++
++/*
++ * Advisory minimum time period.
++ * Users that want the fastest running real-time poll
++ * should use TICKS_TO_USECS(1).
++ */
++
++#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
++#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
++
++
++typedef void (*PollerFunction)(void *clientData);
++typedef void (*PollerFireWrapper)(PollerFunction func,
++                                  void *funcData,
++                                  void *wrapperData);
++typedef Bool (*PollerErrorFn)(const char *errorStr);
++
++/*
++ * Initialisers:
++ *
++ *      For the sake of convenience, we declare the initialisers
++ *      for custom implmentations here, even though the actual
++ *      implementations are distinct from the core poll code.
++ */
++
++typedef struct PollOptions {
++   Bool locked;           // Use internal MXUser for locking
++   Bool allowFullQueue;   // Don't assert when device event queue is full.
++   VThreadID windowsMsgThread;       // thread that processes Windows messages
++   PollerFireWrapper fireWrapperFn;  // optional; may be useful for stats
++   void *fireWrapperData; // optional
++   PollerErrorFn errorFn; // optional; called upon unrecoverable error
++} PollOptions;
++
++
++void Poll_InitDefault(void);
++void Poll_InitDefaultEx(const PollOptions *opts);
++void Poll_InitGtk(void); // On top of glib for Linux
++void Poll_InitCF(void);  // On top of CoreFoundation for OSX
++
++
++/*
++ * Functions
++ */
++int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
++void Poll_Loop(Bool loop, Bool *exit, PollClass c);
++void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
++Bool Poll_LockingEnabled(void);
++void Poll_Exit(void);
++
++
++/*
++ * Poll_Callback adds a callback regardless of whether an identical one exists.
++ *
++ * Likewise, Poll_CallbackRemove removes exactly one callback.
++ */
++
++VMwareStatus Poll_Callback(PollClassSet classSet,
++                           int flags,
++                           PollerFunction f,
++                           void *clientData,
++                           PollEventType type,
++                           PollDevHandle info, // fd/microsec delay
++                           MXUserRecLock *lck);
++Bool Poll_CallbackRemove(PollClassSet classSet,
++                         int flags,
++                         PollerFunction f,
++                         void *clientData,
++                         PollEventType type);
++Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
++                                int flags,
++                                PollerFunction f,
++                                PollEventType type,
++                                void **clientData);
++
++void Poll_NotifyChange(PollClassSet classSet);
++
++/*
++ * Wrappers for Poll_Callback and Poll_CallbackRemove that present
++ * simpler subsets of those interfaces.
++ */
++
++VMwareStatus Poll_CB_Device(PollerFunction f,
++                            void *clientData,
++                            PollDevHandle device,
++                            Bool periodic);
++
++Bool Poll_CB_DeviceRemove(PollerFunction f,
++                          void *clientData,
++                          Bool periodic);
++
++
++VMwareStatus Poll_CB_RTime(PollerFunction f,
++                           void *clientData,
++                           int delay,	// microseconds
++                           Bool periodic,
++                           MXUserRecLock *lock);
++
++Bool Poll_CB_RTimeRemove(PollerFunction f,
++                         void *clientData,
++                         Bool periodic);
++
++
++#ifdef _WIN32
++void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
++Bool Poll_FireWndCallback(void *lparam);
++#endif
++
++#endif // _POLL_H_
+Index: open-vm-tools/lib/rpcIn/rpcin.c
+===================================================================
+--- open-vm-tools.orig/lib/rpcIn/rpcin.c
++++ open-vm-tools/lib/rpcIn/rpcin.c
+@@ -57,7 +57,7 @@
+ 
+ #if defined(VMTOOLS_USE_VSOCKET)
+ #  include <glib.h>
+-#  include "poll.h"
++#  include "vm_poll.h"
+ #  include "asyncsocket.h"
+ #  include "vmci_defs.h"
+ #include "dataMap.h"
+Index: open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+===================================================================
+--- open-vm-tools.orig/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
++++ open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+@@ -48,7 +48,7 @@
+ #include "rpcout.h"
+ #include "rabbitmqProxyConst.h"
+ #include "vm_basic_types.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #ifdef OPEN_VM_TOOLS
+ #include "vmci_sockets.h"
+ #include "sslDirect.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
new file mode 100644
index 0000000..0105167
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
@@ -0,0 +1,31 @@
+From cdb0b3c898c6b6b6c8259d9ddb8b00163ac5e419 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 09:43:18 -0700
+Subject: [PATCH 04/11] Add -Wno-incompatible-pointer-types and
+ -Wno-error=address
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/dynxdr/Makefile.am | 2 +-
+ open-vm-tools/lib/file/Makefile.am   | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+Index: open-vm-tools/lib/dynxdr/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/dynxdr/Makefile.am
++++ open-vm-tools/lib/dynxdr/Makefile.am
+@@ -20,4 +20,4 @@ noinst_LTLIBRARIES = libDynxdr.la
+ libDynxdr_la_SOURCES = 
+ libDynxdr_la_SOURCES += dynxdr.c
+ libDynxdr_la_SOURCES += xdrutil.c
+-
++libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
+Index: open-vm-tools/lib/file/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/file/Makefile.am
++++ open-vm-tools/lib/file/Makefile.am
+@@ -27,3 +27,4 @@ libFile_la_SOURCES += fileLockPrimitive.
+ libFile_la_SOURCES += fileLockPosix.c
+ libFile_la_SOURCES += fileTempPosix.c
+ libFile_la_SOURCES += fileTemp.c
++libFile_la_CPPFLAGS = -Wno-error=address
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
new file mode 100644
index 0000000..f02d00f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
@@ -0,0 +1,45 @@
+From bf1eafb07297711baf9320b1edcca8a3376f117d Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:03:00 +0000
+Subject: [PATCH 05/11] Use configure test for struct timespec
+
+Use the configure script to test for struct time spec instead of trying
+to keep track of what platforms has it.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac           | 1 +
+ open-vm-tools/lib/include/hgfsUtil.h | 8 +-------
+ 2 files changed, 2 insertions(+), 7 deletions(-)
+
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -1127,6 +1127,7 @@ AC_TYPE_OFF_T
+ AC_TYPE_PID_T
+ AC_TYPE_SIZE_T
+ AC_CHECK_MEMBERS([struct stat.st_rdev])
++AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include <time.h>]])
+ AC_HEADER_TIME
+ AC_STRUCT_TM
+ AC_C_VOLATILE
+Index: open-vm-tools/lib/include/hgfsUtil.h
+===================================================================
+--- open-vm-tools.orig/lib/include/hgfsUtil.h
++++ open-vm-tools/lib/include/hgfsUtil.h
+@@ -53,13 +53,7 @@
+ #      include <time.h>
+ #   endif
+ #   include "vm_basic_types.h"
+-#   if !defined _STRUCT_TIMESPEC &&   \
+-       !defined _TIMESPEC_DECLARED && \
+-       !defined __timespec_defined && \
+-       !defined sun && \
+-       !defined __FreeBSD__ && \
+-       !__APPLE__ && \
+-       !defined _WIN32
++#   if !defined HAVE_STRUCT_TIMESPEC_TV_SEC
+ struct timespec {
+    time_t tv_sec;
+    long   tv_nsec;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
new file mode 100644
index 0000000..d1f4eff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
@@ -0,0 +1,58 @@
+From 31ae6f42458f90d4994a4ad8e2b7673691612c36 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:10:14 +0000
+Subject: [PATCH 06/11] Fix definition of ALLPERMS and ACCESSPERMS
+
+The ALLPERMS and ACCESSPERMS defines are not specified in POSIX so
+assume it is not there instead of testing for specific implementations.
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c      | 8 +++++---
+ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+Index: open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+===================================================================
+--- open-vm-tools.orig/lib/hgfsServer/hgfsServerLinux.c
++++ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -107,11 +107,13 @@ typedef struct DirectoryEntry {
+ #endif
+ 
+ /*
+- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the
+- * Solaris version of <sys/stat.h>.
++ * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in
++ * POSIX.
+  */
+-#ifdef sun
++#ifndef ACCESSPERMS
+ #   define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++#ifndef ALLPERMS
+ #   define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
+ #endif
+ 
+Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+===================================================================
+--- open-vm-tools.orig/services/plugins/dndcp/dnd/dndLinux.c
++++ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+@@ -51,7 +51,7 @@
+ 
+ #define DND_ROOTDIR_PERMS     (S_IRWXU | S_IRWXG | S_IRWXO)
+ #define DND_STAGINGDIR_PERMS  (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
+-#ifdef sun
++#ifndef ACCESSPERMS
+ #define ACCESSPERMS           (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+ #ifdef __ANDROID__
+@@ -60,7 +60,6 @@
+  */
+ #define NO_SETMNTENT
+ #define NO_ENDMNTENT
+-#define ACCESSPERMS           (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+ 
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
new file mode 100644
index 0000000..5adf9b0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
@@ -0,0 +1,144 @@
+From 6cc1c22cc30320f56da552a76bd956db8f255b6a Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:05:07 +0000
+Subject: [PATCH 07/11] Use configure to test for feature instead of platform
+
+Test for various functions instead of trying to keep track of what
+platform and what version of the given platform has support for what.
+
+This should make it easier to port to currently unknown platforms and
+will solve the issue if a platform add support for a missing feature in
+the future.
+
+The features we test for are:
+- getifaddrs
+- getauxval
+- issetugid
+- __secure_getenv
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac               |  4 ++++
+ open-vm-tools/lib/misc/idLinux.c         | 30 ++++++++++++++----------------
+ open-vm-tools/lib/nicInfo/nicInfoPosix.c |  8 ++++++--
+ 3 files changed, 24 insertions(+), 18 deletions(-)
+
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -798,6 +798,7 @@ AC_CHECK_FUNCS(
+ 
+ AC_CHECK_FUNCS([ecvt])
+ AC_CHECK_FUNCS([fcvt])
++AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv])
+ 
+ AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
+ 
+@@ -1063,10 +1064,13 @@ AC_PATH_PROG(
+ ###
+ 
+ AC_CHECK_HEADERS([crypt.h])
++AC_CHECK_HEADERS([ifaddrs.h])
+ AC_CHECK_HEADERS([inttypes.h])
+ AC_CHECK_HEADERS([stdint.h])
+ AC_CHECK_HEADERS([stdlib.h])
+ AC_CHECK_HEADERS([wchar.h])
++AC_CHECK_HEADERS([net/if.h])
++AC_CHECK_HEADERS([sys/auxv.h])
+ AC_CHECK_HEADERS([sys/inttypes.h])
+ AC_CHECK_HEADERS([sys/io.h])
+ AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD
+Index: open-vm-tools/lib/misc/idLinux.c
+===================================================================
+--- open-vm-tools.orig/lib/misc/idLinux.c
++++ open-vm-tools/lib/misc/idLinux.c
+@@ -27,12 +27,9 @@
+ #include <sys/syscall.h>
+ #include <string.h>
+ #include <unistd.h>
+-#ifdef __linux__
+-#if defined(__GLIBC__) && \
+-           (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#ifdef HAVE_SYS_AUXV_H
+ #include <sys/auxv.h>
+ #endif
+-#endif
+ #ifdef __APPLE__
+ #include <sys/socket.h>
+ #include <TargetConditionals.h>
+@@ -997,31 +994,32 @@ Id_EndSuperUser(uid_t uid)  // IN:
+ static Bool
+ IdIsSetUGid(void)
+ {
+-#if defined(__ANDROID__)
+-   /* Android does not have a secure_getenv, so be conservative. */
+-   return TRUE;
+-#else
+    /*
+     * We use __secure_getenv, which returns NULL if the binary is
+-    * setuid or setgid. Alternatives include,
++    * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not
++    * available. Alternatives include,
+     *
+-    *   a) getauxval(AT_SECURE); not available until glibc 2.16.
+-    *   b) __libc_enable_secure; may not be exported.
++    *   a) issetugid(); not (yet?) available in glibc.
++    *   b) getauxval(AT_SECURE); not available until glibc 2.16.
++    *   c) __libc_enable_secure; may not be exported.
+     *
+-    * Use (a) when we are based on glibc 2.16, or newer.
++    * Use (b) when we are based on glibc 2.16, or newer.
+     */
+ 
+-#if defined(__GLIBC__) && \
+-           (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#if HAVE_ISSETUGID
++   return issetugid();
++#elif HAVE_GETAUXVAL
+    return getauxval(AT_SECURE) != 0;
+-#else
++#elif HAVE___SECURE_GETENV
+    static const char envName[] = "VMW_SETUGID_TEST";
+ 
+    if (setenv(envName, "1", TRUE) == -1) {
+       return TRUE; /* Conservative */
+    }
+    return __secure_getenv(envName) == NULL;
+-#endif
++#else
++   /* Android does not have a secure_getenv, so be conservative. */
++   return TRUE;
+ #endif
+ }
+ #endif
+Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c
+===================================================================
+--- open-vm-tools.orig/lib/nicInfo/nicInfoPosix.c
++++ open-vm-tools/lib/nicInfo/nicInfoPosix.c
+@@ -34,9 +34,13 @@
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <errno.h>
+-#if defined(__FreeBSD__) || defined(__APPLE__)
++#if HAVE_SYS_SYSCTL_H
+ # include <sys/sysctl.h>
++#endif
++#if HAVE_IFADDRS_H
+ # include <ifaddrs.h>
++#endif
++#if HAVE_NET_IF_H
+ # include <net/if.h>
+ #endif
+ #ifndef NO_DNET
+@@ -348,7 +352,7 @@ GuestInfoGetNicInfo(NicInfoV3 *nicInfo)
+  *
+  ******************************************************************************
+  */
+-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(USERWORLD)
++#if defined(NO_DNET) && defined(HAVE_GETIFADDRS)
+ 
+ char *
+ GuestInfoGetPrimaryIP(void)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
new file mode 100644
index 0000000..3d1291c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
@@ -0,0 +1,30 @@
+From d4d1e7146ca2698089f6bd532f2fb8b9c1134ca7 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Mon, 2 Jan 2017 14:39:27 +0000
+Subject: [PATCH 08/11] use posix strerror_r unless gnu
+
+---
+ open-vm-tools/lib/err/errPosix.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+Index: open-vm-tools/lib/err/errPosix.c
+===================================================================
+--- open-vm-tools.orig/lib/err/errPosix.c
++++ open-vm-tools/lib/err/errPosix.c
+@@ -63,11 +63,13 @@ ErrErrno2String(Err_Number errorNumber,
+ {
+    char *p;
+ 
+-#if defined(linux) && !defined(N_PLAT_NLM) && !defined(__ANDROID__)
++#if defined(__GLIBC__)
+    p = strerror_r(errorNumber, buf, bufSize);
+ #else
+-   p = strerror(errorNumber);
+-#endif
++   if (strerror_r(errorNumber, buf, bufSize) != 0)
++      snprintf(buf, bufSize, "unknown error %i", errorNumber);
++   p = buf;
++#endif /* defined __GLIBC__ */
+    ASSERT(p != NULL);
+    return p;
+ }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
new file mode 100644
index 0000000..2bee5ac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
@@ -0,0 +1,342 @@
+From 5ae6c662fefa621f4600559e299a7d97c2254e69 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Sun, 16 Jul 2017 10:20:10 -0700
+Subject: [PATCH 1/3] Add support for building with system libtirpc
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ open-vm-tools/configure.ac                               | 14 ++++++++++++++
+ open-vm-tools/lib/dynxdr/Makefile.am                     |  8 ++++++--
+ open-vm-tools/lib/err/errPosix.c                         |  1 +
+ open-vm-tools/lib/guestRpc/Makefile.am                   |  6 ++++++
+ open-vm-tools/lib/misc/Makefile.am                       |  1 +
+ open-vm-tools/lib/netUtil/Makefile.am                    |  4 ++++
+ open-vm-tools/lib/nicInfo/Makefile.am                    |  2 ++
+ open-vm-tools/lib/rpcChannel/Makefile.am                 |  4 ++++
+ open-vm-tools/lib/slashProc/Makefile.am                  |  4 ++++
+ open-vm-tools/lib/string/bsd_output_shared.c             |  2 +-
+ open-vm-tools/libguestlib/Makefile.am                    |  2 ++
+ open-vm-tools/rpctool/Makefile.am                        |  3 +++
+ open-vm-tools/rpctool/rpctool.c                          |  2 ++
+ open-vm-tools/services/plugins/dndcp/Makefile.am         |  2 ++
+ open-vm-tools/services/plugins/guestInfo/Makefile.am     |  1 +
+ open-vm-tools/services/plugins/resolutionSet/Makefile.am |  2 ++
+ open-vm-tools/services/plugins/vix/Makefile.am           |  2 ++
+ open-vm-tools/services/plugins/vmbackup/Makefile.am      |  2 ++
+ open-vm-tools/toolbox/Makefile.am                        |  2 ++
+ 19 files changed, 61 insertions(+), 3 deletions(-)
+
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -405,6 +405,20 @@ AC_VMW_CHECK_LIB([fuse],
+                   AC_MSG_WARN([Fuse is missing, vmblock-fuse/vmhgfs-fuse will be disabled.])])
+ 
+ #
++# Check for libtirpc
++#
++AC_VMW_CHECK_LIB([libtirpc],
++                 [LIBTIRPC],
++                 [libtirpc],
++                 [],
++                 [],
++                 [rpc/xdr.h],
++                 [xdr_void],
++                 [have_libtirpc=yes],
++                 [have_libtitirpc=no;
++                  AC_MSG_WARN([libtirpc is missing.])])
++
++#
+ # Check for PAM.
+ #
+ AC_ARG_WITH([pam],
+Index: open-vm-tools/lib/dynxdr/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/dynxdr/Makefile.am
++++ open-vm-tools/lib/dynxdr/Makefile.am
+@@ -17,7 +17,11 @@
+ 
+ noinst_LTLIBRARIES = libDynxdr.la
+ 
+-libDynxdr_la_SOURCES = 
++libDynxdr_la_SOURCES =
+ libDynxdr_la_SOURCES += dynxdr.c
+ libDynxdr_la_SOURCES += xdrutil.c
+-libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
++libDynxdr_la_CPPFLAGS = @LIBTIRPC_CPPFLAGS@ -Wno-incompatible-pointer-types
++
++libDynxdr_la_LIBADD =
++libDynxdr_la_LIBADD += @LIBTIRPC_LIBS@
++
+Index: open-vm-tools/lib/err/errPosix.c
+===================================================================
+--- open-vm-tools.orig/lib/err/errPosix.c
++++ open-vm-tools/lib/err/errPosix.c
+@@ -31,6 +31,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <locale.h>
++#include <stdio.h>
+ 
+ #include "vmware.h"
+ #include "errInt.h"
+Index: open-vm-tools/lib/guestRpc/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/guestRpc/Makefile.am
++++ open-vm-tools/lib/guestRpc/Makefile.am
+@@ -20,6 +20,12 @@ noinst_LTLIBRARIES = libGuestRpc.la
+ libGuestRpc_la_SOURCES =
+ libGuestRpc_la_SOURCES += nicinfo_xdr.c
+ 
++libGuestRpc_la_CPPFLAGS =
++libGuestRpc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libGuestRpc_la_LIBADD =
++libGuestRpc_la_LIBADD += @LIBTIRPC_LIBS@
++
+ # XXX: Autoreconf complains about this and recommends using AM_CFLAGS instead.
+ # Problem is, $(CFLAGS) is appended to the compiler command line after AM_CFLAGS
+ # and after libGuestRpc_la_CFLAGS, so "-Wall -Werror" will override this flag.
+Index: open-vm-tools/lib/misc/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/misc/Makefile.am
++++ open-vm-tools/lib/misc/Makefile.am
+@@ -52,4 +52,5 @@ libMisc_la_SOURCES += utilMem.c
+ libMisc_la_SOURCES += vmstdio.c
+ libMisc_la_SOURCES += strutil.c
+ libMisc_la_SOURCES += vthreadBase.c
++libMisc_la_CPPFLAGS = -Wno-error=int-conversion
+ 
+Index: open-vm-tools/lib/netUtil/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/netUtil/Makefile.am
++++ open-vm-tools/lib/netUtil/Makefile.am
+@@ -20,3 +20,7 @@ noinst_LTLIBRARIES = libNetUtil.la
+ libNetUtil_la_SOURCES =
+ libNetUtil_la_SOURCES += netUtilLinux.c
+ 
++libNetUtil_la_CPPFLAGS =
++libNetUtil_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libNetUtil_la_LIBADD = @LIBTIRPC_LIBS@
+Index: open-vm-tools/lib/nicInfo/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/nicInfo/Makefile.am
++++ open-vm-tools/lib/nicInfo/Makefile.am
+@@ -25,12 +25,14 @@ libNicInfo_la_SOURCES += nicInfoPosix.c
+ 
+ libNicInfo_la_CPPFLAGS =
+ libNicInfo_la_CPPFLAGS += @GLIB2_CPPFLAGS@
++libNicInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ 
+ AM_CFLAGS = $(DNET_CPPFLAGS)
+ if USE_SLASH_PROC
+ AM_CFLAGS += -DUSE_SLASH_PROC
+ endif
+ libNicInfo_la_LIBADD =
++libNicInfo_la_LIBADD += @LIBTIRPC_LIBS@
+ if HAVE_DNET
+    libNicInfo_la_LIBADD += @DNET_LIBS@
+ endif
+Index: open-vm-tools/lib/rpcChannel/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/rpcChannel/Makefile.am
++++ open-vm-tools/lib/rpcChannel/Makefile.am
+@@ -27,3 +27,7 @@ endif
+ 
+ libRpcChannel_la_CPPFLAGS =
+ libRpcChannel_la_CPPFLAGS += @VMTOOLS_CPPFLAGS@
++libRpcChannel_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libRpcChannel_la_LIBADD =
++libRpcChannel_la_LIBADD += @LIBTIRPC_LIBS@
+Index: open-vm-tools/lib/slashProc/Makefile.am
+===================================================================
+--- open-vm-tools.orig/lib/slashProc/Makefile.am
++++ open-vm-tools/lib/slashProc/Makefile.am
+@@ -22,6 +22,10 @@ libSlashProc_la_SOURCES += net.c
+ 
+ libSlashProc_la_CPPFLAGS =
+ libSlashProc_la_CPPFLAGS += @GLIB2_CPPFLAGS@
++libSlashProc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
++
++libSlashProc_la_LIBADD =
++libSlashProc_la_LIBADD += @LIBTIRPC_LIBS@
+ 
+ AM_CFLAGS = $(DNET_CPPFLAGS)
+ 
+Index: open-vm-tools/lib/string/bsd_output_shared.c
+===================================================================
+--- open-vm-tools.orig/lib/string/bsd_output_shared.c
++++ open-vm-tools/lib/string/bsd_output_shared.c
+@@ -38,7 +38,7 @@
+ //#include <sys/cdefs.h>
+ 
+ #if !defined(STR_NO_WIN32_LIBS) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__ANDROID__)
+-
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #ifndef _WIN32
+Index: open-vm-tools/libguestlib/Makefile.am
+===================================================================
+--- open-vm-tools.orig/libguestlib/Makefile.am
++++ open-vm-tools/libguestlib/Makefile.am
+@@ -22,6 +22,7 @@ AM_CFLAGS += -I$(top_srcdir)/include
+ 
+ libguestlib_la_LIBADD =
+ libguestlib_la_LIBADD += @VMTOOLS_LIBS@
++libguestlib_la_LIBADD += @LIBTIRPC_LIBS@
+ 
+ libguestlib_la_SOURCES =
+ libguestlib_la_SOURCES += guestlibV3_xdr.c
+@@ -56,6 +57,7 @@ CFLAGS += -Wno-unused
+ libguestlib_la_CPPFLAGS =
+ libguestlib_la_CPPFLAGS += -DVMTOOLS_USE_GLIB
+ libguestlib_la_CPPFLAGS += @GLIB2_CPPFLAGS@
++libguestlib_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ 
+ EXTRA_DIST = vmguestlib.pc.in
+ 
+Index: open-vm-tools/rpctool/Makefile.am
+===================================================================
+--- open-vm-tools.orig/rpctool/Makefile.am
++++ open-vm-tools/rpctool/Makefile.am
+@@ -17,10 +17,13 @@
+ 
+ bin_PROGRAMS = vmware-rpctool
+ 
++vmware_rpctool_CFLAGS= @LIBTIRPC_LIBS@
++
+ vmware_rpctool_SOURCES =
+ vmware_rpctool_SOURCES += rpctool.c
+ 
+ vmware_rpctool_LDADD =
++vmware_rpctool_LDADD += @LIBTIRPC_LIBS@
+ vmware_rpctool_LDADD += ../lib/rpcOut/libRpcOut.la
+ vmware_rpctool_LDADD += ../lib/message/libMessage.la
+ vmware_rpctool_LDADD += ../lib/backdoor/libBackdoor.la
+Index: open-vm-tools/rpctool/rpctool.c
+===================================================================
+--- open-vm-tools.orig/rpctool/rpctool.c
++++ open-vm-tools/rpctool/rpctool.c
+@@ -23,6 +23,8 @@
+  */
+ 
+ #ifndef _WIN32
++#define _GNU_SOURCE
++#include <signal.h>
+ #include "sigPosixRegs.h"
+ #include <errno.h>
+ #include <stdint.h>
+Index: open-vm-tools/services/plugins/dndcp/Makefile.am
+===================================================================
+--- open-vm-tools.orig/services/plugins/dndcp/Makefile.am
++++ open-vm-tools/services/plugins/dndcp/Makefile.am
+@@ -23,6 +23,7 @@ plugin_LTLIBRARIES = libdndcp.la
+ libdndcp_la_CPPFLAGS =
+ libdndcp_la_CPPFLAGS += @GTK_CPPFLAGS@
+ libdndcp_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libdndcp_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dnd
+ libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dndGuest
+ libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/stringxx
+@@ -44,6 +45,7 @@ libdndcp_la_LIBADD += @GTK_LIBS@
+ libdndcp_la_LIBADD += @GTKMM_LIBS@
+ libdndcp_la_LIBADD += @VMTOOLS_LIBS@
+ libdndcp_la_LIBADD += @HGFS_LIBS@
++libdndcp_la_LIBADD += @LIBTIRPC_LIBS@
+ libdndcp_la_LIBADD += $(top_builddir)/lib/hgfsUri/hgfsUriPosix.lo
+ 
+ libdndcp_la_SOURCES =
+Index: open-vm-tools/services/plugins/guestInfo/Makefile.am
+===================================================================
+--- open-vm-tools.orig/services/plugins/guestInfo/Makefile.am
++++ open-vm-tools/services/plugins/guestInfo/Makefile.am
+@@ -22,6 +22,7 @@ plugin_LTLIBRARIES = libguestInfo.la
+ 
+ libguestInfo_la_CPPFLAGS =
+ libguestInfo_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libguestInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ 
+ libguestInfo_la_LDFLAGS =
+ libguestInfo_la_LDFLAGS += @PLUGIN_LDFLAGS@
+Index: open-vm-tools/services/plugins/resolutionSet/Makefile.am
+===================================================================
+--- open-vm-tools.orig/services/plugins/resolutionSet/Makefile.am
++++ open-vm-tools/services/plugins/resolutionSet/Makefile.am
+@@ -21,6 +21,7 @@ plugin_LTLIBRARIES = libresolutionSet.la
+ libresolutionSet_la_CPPFLAGS =
+ libresolutionSet_la_CPPFLAGS += @GTK_CPPFLAGS@
+ libresolutionSet_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libresolutionSet_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ libresolutionSet_la_CPPFLAGS += -DRESOLUTION_X11
+ 
+ libresolutionSet_la_LDFLAGS =
+@@ -30,6 +31,7 @@ libresolutionSet_la_LIBADD =
+ libresolutionSet_la_LIBADD += @COMMON_XLIBS@
+ libresolutionSet_la_LIBADD += @GTK_LIBS@
+ libresolutionSet_la_LIBADD += @VMTOOLS_LIBS@
++libresolutionSet_la_LIBADD += @LIBTIRPC_LIBS@
+ 
+ libresolutionSet_la_SOURCES =
+ libresolutionSet_la_SOURCES += libvmwarectrl.c
+Index: open-vm-tools/services/plugins/vix/Makefile.am
+===================================================================
+--- open-vm-tools.orig/services/plugins/vix/Makefile.am
++++ open-vm-tools/services/plugins/vix/Makefile.am
+@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvix.la
+ 
+ libvix_la_CPPFLAGS =
+ libvix_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libvix_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ libvix_la_CPPFLAGS += -I$(top_srcdir)/vgauth/public
+ 
+ libvix_la_LDFLAGS =
+@@ -29,6 +30,7 @@ libvix_la_LIBADD =
+ libvix_la_LIBADD += @VIX_LIBADD@
+ libvix_la_LIBADD += @VMTOOLS_LIBS@
+ libvix_la_LIBADD += @HGFS_LIBS@
++libvix_la_LIBADD += @LIBTIRPC_LIBS@
+ libvix_la_LIBADD += $(top_builddir)/lib/auth/libAuth.la
+ libvix_la_LIBADD += $(top_builddir)/lib/foundryMsg/libFoundryMsg.la
+ libvix_la_LIBADD += $(top_builddir)/lib/impersonate/libImpersonate.la
+Index: open-vm-tools/services/plugins/vmbackup/Makefile.am
+===================================================================
+--- open-vm-tools.orig/services/plugins/vmbackup/Makefile.am
++++ open-vm-tools/services/plugins/vmbackup/Makefile.am
+@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvmbackup.la
+ 
+ libvmbackup_la_CPPFLAGS =
+ libvmbackup_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
++libvmbackup_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ 
+ libvmbackup_la_LDFLAGS =
+ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@
+@@ -27,6 +28,7 @@ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAG
+ libvmbackup_la_LIBADD =
+ libvmbackup_la_LIBADD += @GOBJECT_LIBS@
+ libvmbackup_la_LIBADD += @VMTOOLS_LIBS@
++libvmbackup_la_LIBADD += @LIBTIRPC_LIBS@
+ 
+ libvmbackup_la_SOURCES =
+ libvmbackup_la_SOURCES += nullProvider.c
+Index: open-vm-tools/toolbox/Makefile.am
+===================================================================
+--- open-vm-tools.orig/toolbox/Makefile.am
++++ open-vm-tools/toolbox/Makefile.am
+@@ -20,9 +20,11 @@ bin_PROGRAMS = vmware-toolbox-cmd
+ vmware_toolbox_cmd_LDADD =
+ vmware_toolbox_cmd_LDADD += ../libguestlib/libguestlib.la
+ vmware_toolbox_cmd_LDADD += @VMTOOLS_LIBS@
++vmware_toolbox_cmd_LDADD += @LIBTIRPC_LIBS@
+ 
+ vmware_toolbox_cmd_CPPFLAGS =
+ vmware_toolbox_cmd_CPPFLAGS += @VMTOOLS_CPPFLAGS@
++vmware_toolbox_cmd_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
+ 
+ vmware_toolbox_cmd_SOURCES =
+ vmware_toolbox_cmd_SOURCES += toolbox-cmd.c
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
new file mode 100644
index 0000000..c9beac1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
@@ -0,0 +1,65 @@
+From 27442e2dd287d393d7b3f8bf164a887affef84df Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:27:51 +0000
+Subject: [PATCH 10/11] gnu-ucontext
+
+---
+ open-vm-tools/lib/include/sigPosixRegs.h | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+Index: open-vm-tools/lib/include/sigPosixRegs.h
+===================================================================
+--- open-vm-tools.orig/lib/include/sigPosixRegs.h
++++ open-vm-tools/lib/include/sigPosixRegs.h
+@@ -33,7 +33,7 @@
+ #include "includeCheck.h"
+ 
+ 
+-#if __linux__         // We need the REG_foo offsets in the gregset_t;
++#if defined(__GLIBC__) // We need the REG_foo offsets in the gregset_t;
+ #  define _GNU_SOURCE // _GNU_SOURCE maps to __USE_GNU
+ 
+ /* And, the REG_foo definitions conflict with our own in x86.h */
+@@ -73,7 +73,7 @@
+ #include <sys/ucontext.h>
+ #endif
+ 
+-#if __linux__
++#if defined(__GLIBC__)
+ #  if defined(__x86_64__)
+ #    undef REG_RAX
+ #    undef REG_RBX
+@@ -199,7 +199,7 @@
+ #define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.mc_esp)
+ #define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.mc_eip)
+ #endif
+-#elif defined (sun)
++#elif !defined (__GLIBC__)
+ #ifdef __x86_64__
+ #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RAX])
+ #define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBX])
+@@ -219,15 +219,15 @@
+ #define SC_R14(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R14])
+ #define SC_R15(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R15])
+ #else
+-#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EAX])
+-#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBX])
+-#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ECX])
+-#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDX])
+-#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDI])
+-#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESI])
+-#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBP])
+-#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESP])
+-#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EIP])
++#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EAX])
++#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBX])
++#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ECX])
++#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDX])
++#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDI])
++#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESI])
++#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBP])
++#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESP])
++#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EIP])
+ #endif
+ #elif defined(ANDROID_X86)
+ #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.eax)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
new file mode 100644
index 0000000..7872239
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
@@ -0,0 +1,25 @@
+From 95c6184d9ff70a47c41768850923a96de9e544aa Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:41:01 +0000
+Subject: [PATCH 11/11] Use configure test for sys/stat.h include
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/services/plugins/vix/vixTools.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: open-vm-tools/services/plugins/vix/vixTools.c
+===================================================================
+--- open-vm-tools.orig/services/plugins/vix/vixTools.c
++++ open-vm-tools/services/plugins/vix/vixTools.c
+@@ -66,7 +66,7 @@
+ #include <unistd.h>
+ #endif
+ 
+-#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__)
++#ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+ #endif
+ 
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
new file mode 100644
index 0000000..81e8e96
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
@@ -0,0 +1,103 @@
+# This recipe is modified from the recipe originally found in the Open-Switch
+# repository:
+#
+# https://github.com/open-switch/ops-build
+# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
+# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
+#
+# The recipe packaging has been relicensed under the MIT license for inclusion
+# in meta-openembedded by agreement of the author (Diego Dompe).
+#
+
+SUMMARY = "Tools to enhance VMWare guest integration and performance"
+HOMEPAGE = "https://github.com/vmware/open-vm-tools"
+SECTION = "vmware-tools"
+
+LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b66ba4cb4fc017682c95efc300410e79"
+LICENSE_modules/freebsd/vmblock = "BSD"
+LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
+LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
+LICENSE_modules/linux = "GPL-2.0"
+LICENSE_modules/solaris = "CDDL-1.0"
+
+SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
+           file://tools.conf \
+           file://vmtoolsd.service \
+           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 \
+           file://0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch \
+           file://0003-Rename-poll.h-to-vm_poll.h.patch \
+           file://0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch \
+           file://0005-Use-configure-test-for-struct-timespec.patch \
+           file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \
+           file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \
+           file://0008-use-posix-strerror_r-unless-gnu.patch \
+           file://0011-Use-configure-test-for-sys-stat.h-include.patch \
+           "
+SRC_URI_append_libc-musl = "\
+           file://0009-Add-support-for-building-with-system-libtirpc.patch \
+           file://0010-gnu-ucontext.patch \
+           "
+SRCREV = "854c0bb374612f7e633b448ca273f970f154458b"
+
+S = "${WORKDIR}/git/open-vm-tools"
+
+DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps"
+DEPENDS_append_libc-musl = " libtirpc"
+
+# open-vm-tools is supported only on x86.
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+inherit autotools pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
+
+EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
+                --disable-tests --without-gtkmm --without-xerces --without-pam \
+                --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \
+                --without-root-privileges --without-kernel-modules"
+
+NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
+X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
+PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
+
+# fuse gets implicitly detected; there is no --without-fuse option.
+PACKAGECONFIG[fuse] = ",,fuse"
+
+CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member"
+FILES_${PN} += "\
+    ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
+    ${libdir}/open-vm-tools/plugins/common/lib*.so \
+    ${sysconfdir}/vmware-tools/tools.conf \
+    "
+FILES_${PN}-locale += "${datadir}/open-vm-tools/messages"
+FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
+FILES_${PN}-dbg += "\
+    ${libdir}/open-vm-tools/plugins/common/.debug \
+    ${libdir}/open-vm-tools/plugins/vmsvc/.debug \
+    "
+
+CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
+
+RDEPENDS_${PN} = "util-linux libdnet fuse"
+
+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 -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
+}
+
+do_configure_prepend() {
+    export CUSTOM_DNET_NAME=dnet
+    export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
+}
+
+python() {
+    if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
+	'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
+        raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
+}
+
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 0f5568c..c7d7203 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
@@ -1,4 +1,5 @@
 Summanry = "Middleware framework for smart card terminals"
+HOMEPAGE = "https://github.com/OpenSC/openct/wiki"
 DESCRIPTION = " \
 OpenCT implements drivers for several smart card readers. \
 It comes as driver in ifdhandler format for PC/SC-Lite, \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
deleted file mode 100644
index 107184b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Opencv : The Open Computer Vision Library"
-HOMEPAGE = "http://opencv.willowgarage.com/wiki/"
-SECTION = "libs"
-LICENSE = "BSD"
-
-DEPENDS = "opencv"
-
-LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14 \
-"
-SRCREV = "6fae07ba8867b8fd2c53344a774aab669afa7c5e"
-SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
-          "
-PV = "2.4.3+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-do_install() {
-    cd samples/c
-    install -d ${D}/${bindir}
-    install -d ${D}/${datadir}/opencv/samples
-
-    cp * ${D}/${datadir}/opencv/samples || true
-
-    for i in *.c; do
-        echo "compiling $i"
-        ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv` || true
-        install -m 0755 `basename $i .c` ${D}/${bindir} || true
-        rm ${D}/${datadir}/opencv/samples/`basename $i .c` || true
-    done
-    for i in *.cpp; do
-        echo "compiling $i"
-        ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv` || true
-        install -m 0755 `basename $i .cpp` ${D}/${bindir} || true
-        rm ${D}/${datadir}/opencv/samples/`basename $i .cpp` || true
-    done
-}
-
-FILES_${PN}-dev += "${datadir}/opencv/samples/*.c* ${datadir}/opencv/samples/*.vcp* ${datadir}/opencv/samples/build*"
-FILES_${PN} += "${bindir} ${datadir}/opencv"
-
-PNBLACKLIST[opencv-samples] ?= "Depends on blacklisted opencv - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
index 1077d05..4d76ad4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
@@ -1,28 +1,38 @@
-From 049f931207631aa54af55a2917318d032b2ef3fa Mon Sep 17 00:00:00 2001
+From 4801a057730632225337d7f6d26b9335e6b9b078 Mon Sep 17 00:00:00 2001
 From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
 Date: Thu, 31 Mar 2016 00:20:15 +0200
 Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp
 
 Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
 ---
- 3rdparty/ippicv/downloader.cmake | 2 ++
- 1 file changed, 2 insertions(+)
+ 3rdparty/ippicv/ippicv.cmake | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
 
-diff --git a/3rdparty/ippicv/downloader.cmake b/3rdparty/ippicv/downloader.cmake
-index a6016dbe10bc..af4062c8e95e 100644
---- a/3rdparty/ippicv/downloader.cmake
-+++ b/3rdparty/ippicv/downloader.cmake
-@@ -31,8 +31,10 @@ function(_icv_downloader)
-     return() # Not supported
+diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake
+index d601da4bb..f6fc1098c 100644
+--- a/3rdparty/ippicv/ippicv.cmake
++++ b/3rdparty/ippicv/ippicv.cmake
+@@ -39,18 +39,5 @@ function(download_ippicv root_var)
    endif()
  
-+  if(NOT DEFINED OPENCV_ICV_PATH)
-   set(OPENCV_ICV_UNPACK_PATH "${CMAKE_BINARY_DIR}/3rdparty/ippicv")
-   set(OPENCV_ICV_PATH "${OPENCV_ICV_UNPACK_PATH}${OPENCV_ICV_PACKAGE_SUBDIR}")
-+  endif()
- 
-   if(DEFINED OPENCV_ICV_PACKAGE_DOWNLOADED
-        AND OPENCV_ICV_PACKAGE_DOWNLOADED STREQUAL OPENCV_ICV_PACKAGE_HASH
+   set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
+-  ocv_download(FILENAME ${OPENCV_ICV_NAME}
+-               HASH ${OPENCV_ICV_HASH}
+-               URL
+-                 "${OPENCV_IPPICV_URL}"
+-                 "$ENV{OPENCV_IPPICV_URL}"
+-                 "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
+-               DESTINATION_DIR "${THE_ROOT}"
+-               ID IPPICV
+-               STATUS res
+-               UNPACK RELATIVE_URL)
+-
+-  if(res)
+-    set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
+-  endif()
++  set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
+ endfunction()
 -- 
-2.8.0.rc3
+2.13.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
new file mode 100644
index 0000000..6dd48fc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
@@ -0,0 +1,26 @@
+From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Sep 2017 23:48:31 -0700
+Subject: [PATCH] Dont use isystem
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ cmake/OpenCVPCHSupport.cmake | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+Index: git/cmake/OpenCVPCHSupport.cmake
+===================================================================
+--- git.orig/cmake/OpenCVPCHSupport.cmake
++++ git/cmake/OpenCVPCHSupport.cmake
+@@ -17,7 +17,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
+     IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0")
+         SET(PCHSupport_FOUND TRUE)
+     ENDIF()
+-
++    SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I")
++    SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I")
+     SET(_PCH_include_prefix "-I")
+     SET(_PCH_isystem_prefix "-isystem")
+     SET(_PCH_define_prefix "-D")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Revert-cuda-fix-fp16-compilation.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Revert-cuda-fix-fp16-compilation.patch
deleted file mode 100644
index 507d796..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Revert-cuda-fix-fp16-compilation.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 69f9707678190f6a0948a547dce948251f972676 Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Wed, 26 Apr 2017 14:57:30 -0400
-Subject: [PATCH 1/2] Revert "cuda: fix fp16 compilation"
-
-This reverts commit 12e00827be40576b686ea4438a6e6ef85208743d.
----
- modules/core/include/opencv2/core/cvdef.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
-index 699b166..efc24ca 100644
---- a/modules/core/include/opencv2/core/cvdef.h
-+++ b/modules/core/include/opencv2/core/cvdef.h
-@@ -303,8 +303,7 @@ enum CpuFeatures {
- #define CV_2PI 6.283185307179586476925286766559
- #define CV_LOG2 0.69314718055994530941723212145818
- 
--#if defined __ARM_FP16_FORMAT_IEEE \
--    && !defined __CUDACC__
-+#if defined (__ARM_FP16_FORMAT_IEEE)
- #  define CV_FP16_TYPE 1
- #else
- #  define CV_FP16_TYPE 0
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-To-fix-errors-as-following.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-To-fix-errors-as-following.patch
deleted file mode 100644
index 820ab81..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-To-fix-errors-as-following.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From db1d9cc82b68f6593360d66ef40cb6b0fc377e6e Mon Sep 17 00:00:00 2001
-From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
-Date: Fri, 19 May 2017 04:27:50 +0900
-Subject: [PATCH] To fix errors as following:
-
-"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'"
-"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'"
-"test_superres.cpp:270: undefined reference to `checkIppStatus()'"
-
-Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
----
- modules/ts/include/opencv2/ts.hpp        | 4 ++--
- modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp
-index c573905..7ff6cc1 100644
---- a/modules/ts/include/opencv2/ts.hpp
-+++ b/modules/ts/include/opencv2/ts.hpp
-@@ -539,7 +539,7 @@ protected:
-     }
- };
- 
--extern uint64 param_seed;
-+CV_EXPORTS extern uint64 param_seed;
- 
- struct CV_EXPORTS DefaultRngAuto
- {
-@@ -602,7 +602,7 @@ void dumpOpenCLDevice();
- #define TEST_DUMP_OCL_INFO
- #endif
- 
--void parseCustomOptions(int argc, char **argv);
-+CV_EXPORTS void parseCustomOptions(int argc, char **argv);
- 
- #define CV_TEST_MAIN(resourcesubdir, ...) \
- int main(int argc, char **argv) \
-diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp
-index 05ccc63..8075065 100644
---- a/modules/ts/include/opencv2/ts/ts_ext.hpp
-+++ b/modules/ts/include/opencv2/ts/ts_ext.hpp
-@@ -9,7 +9,7 @@
- #define OPENCV_TS_EXT_HPP
- 
- namespace cvtest {
--void checkIppStatus();
-+CV_EXPORTS void checkIppStatus();
- }
- 
- #define CV_TEST_INIT \
--- 
-2.7.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
deleted file mode 100644
index 7f809bc..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 711f07a34ceb504e8f75e978692201efa58268ca Mon Sep 17 00:00:00 2001
-From: Dinar Valeev <dvaleev@suse.com>
-Date: Thu, 16 Jan 2014 21:53:49 +0100
-Subject: [PATCH] Use __vector instead of vector as suggests Eigen
-
-This fixes build on PowerPC where Eigen unsets vector, bool and pixel
-
-Signed-off-by: Dinar Valeev <dvaleev@suse.com>
-
-This patch is already part of OpenCV v3.0. The patch can be obtained
-from:
-
-  https://github.com/Itseez/opencv/commit/711f07a34ceb504e8f75e978692201efa58268ca.patch
-
-Upstream-Status: Backport [commit 711f07a34c, part of version 3.0]
-
-Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
----
- 3rdparty/include/opencl/1.2/CL/cl_platform.h | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/3rdparty/include/opencl/1.2/CL/cl_platform.h b/3rdparty/include/opencl/1.2/CL/cl_platform.h
-index e94949a..42c35d5 100644
---- a/3rdparty/include/opencl/1.2/CL/cl_platform.h
-+++ b/3rdparty/include/opencl/1.2/CL/cl_platform.h
-@@ -332,13 +332,13 @@ typedef unsigned int cl_GLenum;
- /* Define basic vector types */
- #if defined( __VEC__ )
-    #include <altivec.h>   /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
--   typedef vector unsigned char     __cl_uchar16;
--   typedef vector signed char       __cl_char16;
--   typedef vector unsigned short    __cl_ushort8;
--   typedef vector signed short      __cl_short8;
--   typedef vector unsigned int      __cl_uint4;
--   typedef vector signed int        __cl_int4;
--   typedef vector float             __cl_float4;
-+   typedef __vector unsigned char     __cl_uchar16;
-+   typedef __vector signed char       __cl_char16;
-+   typedef __vector unsigned short    __cl_ushort8;
-+   typedef __vector signed short      __cl_short8;
-+   typedef __vector unsigned int      __cl_uint4;
-+   typedef __vector signed int        __cl_int4;
-+   typedef __vector float             __cl_float4;
-    #define  __CL_UCHAR16__  1
-    #define  __CL_CHAR16__   1
-    #define  __CL_USHORT8__  1
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
new file mode 100644
index 0000000..0140633
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
@@ -0,0 +1,127 @@
+Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/0d854db361106dfcb055231fd0112c5b85ef2287]
+
+Fix CVEs for opencv 3.3.
+
+* CVE-2017-12597
+* CVE-2017-12598
+* CVE-2017-12599
+* CVE-2017-12600
+* CVE-2017-12601
+* CVE-2017-12602
+* CVE-2017-12603
+* CVE-2017-12604
+* CVE-2017-12605
+* CVE-2017-12606
+* CVE-2017-12862
+* CVE-2017-12863
+* CVE-2017-12864
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From 0d854db361106dfcb055231fd0112c5b85ef2287 Mon Sep 17 00:00:00 2001
+From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
+Date: Tue, 15 Aug 2017 21:45:05 +0000
+Subject: [PATCH 1/3] build: workaround GCC 7.1.1 compilation issue with
+ sanitize flags
+
+Version: gcc (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3)
+Flags: -fsanitize=address,undefined
+---
+ modules/ts/src/cuda_test.cpp | 56 ++++++++++++++++++++++++++------------------
+ 1 file changed, 33 insertions(+), 23 deletions(-)
+
+diff --git a/modules/ts/src/cuda_test.cpp b/modules/ts/src/cuda_test.cpp
+index a48e0a087..eb4cee136 100644
+--- a/modules/ts/src/cuda_test.cpp
++++ b/modules/ts/src/cuda_test.cpp
+@@ -322,16 +322,20 @@ namespace cvtest
+ 
+         if (m1.size() != m2.size())
+         {
+-            return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
+-                                      << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
+-                                      << expr2 << "\" [" << PrintToString(m2.size()) << "]";
++            std::stringstream msg;
++            msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
++                << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
++                << expr2 << "\" [" << PrintToString(m2.size()) << "]";
++            return AssertionFailure() << msg.str();
+         }
+ 
+         if (m1.type() != m2.type())
+         {
+-            return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
+-                                      << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
+-                                      << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
++            std::stringstream msg;
++            msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
++                << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
++                << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
++             return AssertionFailure() << msg.str();
+         }
+ 
+         Mat diff;
+@@ -343,12 +347,14 @@ namespace cvtest
+ 
+         if (maxVal > eps)
+         {
+-            return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
+-                                      << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
+-                                      << ", which exceeds \"" << eps_expr << "\", where \""
+-                                      << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
+-                                      << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
+-                                      << eps_expr << "\" evaluates to " << eps;
++            std::stringstream msg;
++            msg << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
++                << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
++                << ", which exceeds \"" << eps_expr << "\", where \""
++                << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
++                << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
++                << eps_expr << "\" evaluates to " << eps;
++            return AssertionFailure() << msg.str();
+         }
+ 
+         return AssertionSuccess();
+@@ -469,9 +475,11 @@ namespace cvtest
+     {
+         if (gold.size() != actual.size())
+         {
+-            return testing::AssertionFailure() << "KeyPoints size mistmach\n"
+-                                               << "\"" << gold_expr << "\" : " << gold.size() << "\n"
+-                                               << "\"" << actual_expr << "\" : " << actual.size();
++            std::stringstream msg;
++            msg << "KeyPoints size mistmach\n"
++                << "\"" << gold_expr << "\" : " << gold.size() << "\n"
++                << "\"" << actual_expr << "\" : " << actual.size();
++            return AssertionFailure() << msg.str();
+         }
+ 
+         std::sort(actual.begin(), actual.end(), KeyPointLess());
+@@ -484,14 +492,16 @@ namespace cvtest
+ 
+             if (!keyPointsEquals(p1, p2))
+             {
+-                return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n"
+-                                                   << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
+-                                                   << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
+-                                                   << "size : " << p1.size << " vs " << p2.size << "\n"
+-                                                   << "angle : " << p1.angle << " vs " << p2.angle << "\n"
+-                                                   << "response : " << p1.response << " vs " << p2.response << "\n"
+-                                                   << "octave : " << p1.octave << " vs " << p2.octave << "\n"
+-                                                   << "class_id : " << p1.class_id << " vs " << p2.class_id;
++                std::stringstream msg;
++                msg << "KeyPoints differ at " << i << "\n"
++                    << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
++                    << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
++                    << "size : " << p1.size << " vs " << p2.size << "\n"
++                    << "angle : " << p1.angle << " vs " << p2.angle << "\n"
++                    << "response : " << p1.response << " vs " << p2.response << "\n"
++                    << "octave : " << p1.octave << " vs " << p2.octave << "\n"
++                    << "class_id : " << p1.class_id << " vs " << p2.class_id;
++                return AssertionFailure() << msg.str();
+             }
+         }
+ 
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
new file mode 100644
index 0000000..a1a56e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
@@ -0,0 +1,1250 @@
+From 353fc92618ce0dc6bab4a3e8bff1c13c3b613110 Mon Sep 17 00:00:00 2001
+From: Alexander Alekhin <alexander.alekhin@intel.com>
+Date: Wed, 23 Aug 2017 17:41:23 +0300
+Subject: [PATCH 1/2] carotene: don't use __asm__ with aarch64
+
+---
+Upstream-Status: Backport
+
+ 3rdparty/carotene/src/channel_extract.cpp  |   4 +-
+ 3rdparty/carotene/src/channels_combine.cpp |   2 +-
+ 3rdparty/carotene/src/colorconvert.cpp     | 104 ++++++++++++++---------------
+ 3rdparty/carotene/src/convert.cpp          |  54 +++++++--------
+ 3rdparty/carotene/src/convert_scale.cpp    |  72 ++++++++++----------
+ 3rdparty/carotene/src/gaussian_blur.cpp    |   6 +-
+ 3rdparty/carotene/src/pyramid.cpp          |  20 +++---
+ 3rdparty/carotene/src/scharr.cpp           |   4 +-
+ 8 files changed, 133 insertions(+), 133 deletions(-)
+
+diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
+index f663bc6005..8238a3ece8 100644
+--- a/3rdparty/carotene/src/channel_extract.cpp
++++ b/3rdparty/carotene/src/channel_extract.cpp
+@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
+                  srcStride == dst2Stride && \
+                  srcStride == dst3Stride &&
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ 
+ #define SPLIT_ASM2(sgn, bits) __asm__ ( \
+                                           "vld2." #bits " {d0, d2}, [%[in0]]            \n\t" \
+@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
+     }                                                                                                   \
+ }
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ 
+ #define ALPHA_QUAD(sgn, bits) { \
+                                   internal::prefetch(src + sj); \
+diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
+index 157c8b8121..fc98fb9181 100644
+--- a/3rdparty/carotene/src/channels_combine.cpp
++++ b/3rdparty/carotene/src/channels_combine.cpp
+@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
+                  dstStride == src2Stride && \
+                  dstStride == src3Stride &&
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ 
+ #define MERGE_ASM2(sgn, bits) __asm__ ( \
+                                           "vld1." #bits " {d0-d1}, [%[in0]]             \n\t" \
+diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
+index 3037fe672a..26ae54b15c 100644
+--- a/3rdparty/carotene/src/colorconvert.cpp
++++ b/3rdparty/carotene/src/colorconvert.cpp
+@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+         for (; dj < roiw8; sj += 24, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+         for (; dj < roiw8; sj += 32, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+         for (; dj < roiw8; sj += 24, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+         for (; dj < roiw8; sj += 32, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
+         for (; sj < roiw16; sj += 16, dj += 48)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+             "vld1.8 {d0-d1}, [%[in0]]            \n\t"
+             "vmov.8 q1, q0                       \n\t"
+@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
+ 
+         if (sj < roiw8)
+         {
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+             "vld1.8 {d0}, [%[in]]                \n\t"
+             "vmov.8 d1, d0                       \n\t"
+@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register uint8x16_t vc255   asm ("q4") = vmovq_n_u8(255);
+ #else
+     uint8x16x4_t vRgba;
+@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
+         for (; sj < roiw16; sj += 16, dj += 64)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+             "vld1.8 {d0-d1}, [%[in0]]            \n\t"
+             "vmov.8 q1, q0                       \n\t"
+@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
+ 
+         if (sj < roiw8)
+         {
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+             "vld1.8 {d5}, [%[in]]                \n\t"
+             "vmov.8 d6, d5                       \n\t"
+@@ -672,7 +672,7 @@ void rgb2rgbx(const Size2D &size,
+     internal::assertSupportedConfiguration();
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+     register uint8x8_t vc255_0  asm ("d3") = vmov_n_u8(255);
+ #else
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+@@ -688,7 +688,7 @@ void rgb2rgbx(const Size2D &size,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u, j = 0u;
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+         for (; j < roiw8; sj += 24, dj += 32, j += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -742,7 +742,7 @@ void rgbx2rgb(const Size2D &size,
+     internal::assertSupportedConfiguration();
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+-#if !defined(__GNUC__) || !defined(__arm__)
++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+     union { uint8x16x4_t v4; uint8x16x3_t v3; } v_dst0;
+     union { uint8x8x4_t v4; uint8x8x3_t v3; } v_dst;
+@@ -754,7 +754,7 @@ void rgbx2rgb(const Size2D &size,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u, j = 0u;
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -805,7 +805,7 @@ void rgb2bgr(const Size2D &size,
+ {
+     internal::assertSupportedConfiguration();
+ #ifdef CAROTENE_NEON
+-#if !defined(__GNUC__) || !defined(__arm__)
++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+ #endif
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+@@ -817,7 +817,7 @@ void rgb2bgr(const Size2D &size,
+         size_t sj = 0u, dj = 0u, j = 0u;
+ 
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -874,7 +874,7 @@ void rgbx2bgrx(const Size2D &size,
+ {
+     internal::assertSupportedConfiguration();
+ #ifdef CAROTENE_NEON
+-#if !defined(__GNUC__) || !defined(__arm__)
++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+ #endif
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+@@ -885,7 +885,7 @@ void rgbx2bgrx(const Size2D &size,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u, j = 0u;
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+         for (; j < roiw8; sj += 32, dj += 32, j += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -943,7 +943,7 @@ void rgbx2bgr(const Size2D &size,
+ {
+     internal::assertSupportedConfiguration();
+ #ifdef CAROTENE_NEON
+-#if !defined(__GNUC__) || !defined(__arm__)
++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+ #endif
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+@@ -954,7 +954,7 @@ void rgbx2bgr(const Size2D &size,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u, j = 0u;
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -1010,7 +1010,7 @@ void rgb2bgrx(const Size2D &size,
+ {
+     internal::assertSupportedConfiguration();
+ #ifdef CAROTENE_NEON
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+     register uint8x8_t vc255  asm ("d3") = vmov_n_u8(255);
+ #else
+     union { uint8x16x4_t v4; uint8x16x3_t v3; } vals0;
+@@ -1019,7 +1019,7 @@ void rgb2bgrx(const Size2D &size,
+     vals8.v4.val[3] = vmov_n_u8(255);
+ #endif
+ 
+-#if !defined(__GNUC__) || !defined(__arm__)
++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+ #endif
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+@@ -1030,7 +1030,7 @@ void rgb2bgrx(const Size2D &size,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u, j = 0u;
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+         for (; j < roiw8; sj += 24, dj += 32, j += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
+               "d24","d25","d26","d27","d28","d29","d30","d31"         \
+             );
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ 
+ #define YCRCB_CONSTS                                                        \
+     register int16x4_t vcYR  asm ("d31") = vmov_n_s16(4899);                \
+@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
+ #define COEFF_G   (  8663)
+ #define COEFF_B   (-17705)
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ #define YUV420ALPHA3_CONST
+ #define YUV420ALPHA4_CONST register uint8x16_t c255  asm ("q13") = vmovq_n_u8(255);
+ #define YUV420ALPHA3_CONVERT
+@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
+ #else
+             uint8x8x3_t vRgb = vld3_u8(src + sj);
+@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
+ #else
+             uint8x8x4_t vRgb = vld4_u8(src + sj);
+@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
+ #else
+             uint8x8x3_t vRgb = vld3_u8(src + sj);
+@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
+ #else
+             uint8x8x4_t vRgb = vld4_u8(src + sj);
+@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
+         for (; j < roiw16; sj += 64, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+                 "vld4.8 {d2, d4, d6, d8}, [%[in0]]        @  q0       q1       q2       q3       q4       \n\t"
+                 "vld4.8 {d3, d5, d7, d9}, [%[in1]]        @  xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
+@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
+         for (; j < roiw16; sj += 48, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+                 "vld3.8 {d2, d4, d6}, [%[in0]]       @  q0       q1       q2       q3       q4       \n\t"
+                 "vld3.8 {d3, d5, d7}, [%[in1]]       @  xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
+@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
+         for (; j < roiw16; sj += 64, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+                 "vld4.8 {d0, d2, d4, d6}, [%[in0]]    @  q0       q1       q2       q3         \n\t"
+                 "vld4.8 {d1, d3, d5, d7}, [%[in1]]    @  rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA   \n\t"
+@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
+         for (; j < roiw16; sj += 48, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+                 "vld3.8 {d0, d2, d4}, [%[in0]]        @  q0       q1       q2       q3         \n\t"
+                 "vld3.8 {d1, d3, d5}, [%[in1]]        @  rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx   \n\t"
+@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
+ #else
+             uint8x8x3_t vRgb = vld3_u8(src + sj);
+@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
+ #else
+             uint8x8x4_t vRgba = vld4_u8(src + sj);
+@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
+ #else
+             uint8x8x3_t vBgr = vld3_u8(src + sj);
+@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
+ #else
+             uint8x8x4_t vBgra = vld4_u8(src + sj);
+@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(3, d1, d0, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(4, d1, d0, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(3, d0, d1, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(4, d0, d1, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(3, d1, d0, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(4, d1, d0, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(3, d0, d1, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             CONVERTYUV420TORGB(4, d0, d1, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
+index 403f16d86a..64b6db78ab 100644
+--- a/3rdparty/carotene/src/convert.cpp
++++ b/3rdparty/carotene/src/convert.cpp
+@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
+      }
+ })
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVT_FUNC(u8, u16, 16,
+      register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
+ {
+@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVT_FUNC(u8, s32, 16,
+      register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
+      register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
+@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(u8, f32, 16,
+ ,
+ {
+@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
+      }
+ })
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVT_FUNC(s8, u16, 16,
+      register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
+ {
+@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s8, s16, 16,
+ ,
+ {
+@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVT_FUNC(s8, s32, 16,
+ ,
+ {
+@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s8, f32, 16,
+ ,
+ {
+@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(u16, u8, 16,
+ ,
+ {
+@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(u16, s8, 16,
+     register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
+ {
+@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVT_FUNC(u16, s16, 8,
+      register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
+ {
+@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVT_FUNC(u16, s32, 8,
+      register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
+ {
+@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(u16, f32, 8,
+ ,
+ {
+@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s16, u8, 16,
+ ,
+ {
+@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s16, s8, 16,
+ ,
+ {
+@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVT_FUNC(s16, u16, 8,
+      register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
+ {
+@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s16, s32, 8,
+ ,
+ {
+@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s16, f32, 8,
+ ,
+ {
+@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s32, u8, 8,
+ ,
+ {
+@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s32, s8, 8,
+ ,
+ {
+@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s32, u16, 8,
+ ,
+ {
+@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s32, s16, 8,
+ ,
+ {
+@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(s32, f32, 8,
+ ,
+ {
+@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(f32, u8, 8,
+     register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
+     register uint32x4_t  vmask asm ("q1") = vdupq_n_u32(1<<16);,
+@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(f32, s8, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(f32, u16, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(f32, s16, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+ CVT_FUNC(f32, s32, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
+index 0a14a8035c..ae41a985c8 100644
+--- a/3rdparty/carotene/src/convert_scale.cpp
++++ b/3rdparty/carotene/src/convert_scale.cpp
+@@ -135,7 +135,7 @@ namespace CAROTENE_NS {
+ 
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC1(u8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -220,7 +220,7 @@ CVTS_FUNC1(u8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC(u8, s8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -305,7 +305,7 @@ CVTS_FUNC(u8, s8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC(u8, u16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -389,7 +389,7 @@ CVTS_FUNC(u8, u16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC(u8, s16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(u8, s32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(u8, f32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -643,7 +643,7 @@ CVTS_FUNC(u8, f32, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC(s8, u8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -728,7 +728,7 @@ CVTS_FUNC(s8, u8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC1(s8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -813,7 +813,7 @@ CVTS_FUNC1(s8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC(s8, u16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -899,7 +899,7 @@ CVTS_FUNC(s8, u16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+ CVTS_FUNC(s8, s16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s8, s32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s8, f32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(u16, u8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(u16, s8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC1(u16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(u16, s16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(u16, s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(u16, f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s16, u8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s16, s8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s16, u16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC1(s16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s16, s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s16, f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s32, u8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s32, s8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s32, u16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s32, s16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC1(s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(s32, f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(f32, u8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
+@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(f32, s8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(f32, u16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(f32, s16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC(f32, s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
+ })
+ #endif
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+ CVTS_FUNC1(f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
+index 1b5399436f..f7b5f18d79 100644
+--- a/3rdparty/carotene/src/gaussian_blur.cpp
++++ b/3rdparty/carotene/src/gaussian_blur.cpp
+@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
+                 u16* lidx1 = lane + x - 1*2;
+                 u16* lidx3 = lane + x + 1*2;
+                 u16* lidx4 = lane + x + 2*2;
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+                 __asm__ __volatile__ (
+                     "vld2.16 {d0, d2}, [%[in0]]!                              \n\t"
+                     "vld2.16 {d1, d3}, [%[in0]]                               \n\t"
+@@ -398,7 +398,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
+                 u16* lidx1 = lane + x - 1*3;
+                 u16* lidx3 = lane + x + 1*3;
+                 u16* lidx4 = lane + x + 2*3;
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ __volatile__ (
+                     "vld3.16 {d0, d2, d4}, [%[in0]]!                          \n\t"
+                     "vld3.16 {d1, d3, d5}, [%[in0]]                           \n\t"
+@@ -482,7 +482,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
+                 u16* lidx1 = lane + x - 1*4;
+                 u16* lidx3 = lane + x + 1*4;
+                 u16* lidx4 = lane + x + 2*4;
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ __volatile__ (
+                     "vld4.16 {d0, d2, d4, d6}, [%[in0]]!                      \n\t"
+                     "vld4.16 {d1, d3, d5, d7}, [%[in0]]                       \n\t"
+diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
+index 8ef1268933..232ccf3efd 100644
+--- a/3rdparty/carotene/src/pyramid.cpp
++++ b/3rdparty/carotene/src/pyramid.cpp
+@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+             for (; x < roiw8; x += 8)
+             {
+                 internal::prefetch(lane + 2 * x);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+                 __asm__ (
+                     "vld2.16 {d0-d3}, [%[in0]]                               \n\t"
+                     "vld2.16 {d4-d7}, [%[in4]]                               \n\t"
+@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+             for (; x < roiw4; x += 4)
+             {
+                 internal::prefetch(lane + 2 * x);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+                 __asm__ (
+                     "vld2.32 {d0-d3}, [%[in0]]                              \n\t"
+                     "vld2.32 {d4-d7}, [%[in4]]                              \n\t"
+@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+     std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
+     f32* lane = internal::alignPtr(&_buf[2*cn], 32);
+ 
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+     register float32x4_t vc6d4f32  asm ("q11") = vmovq_n_f32(1.5f);  // 6/4
+     register float32x4_t vc1d4f32  asm ("q12") = vmovq_n_f32(0.25f); // 1/4
+ 
+@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+             for (; x < roiw4; x += 4)
+             {
+                 internal::prefetch(lane + 2 * x);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+                 __asm__ __volatile__ (
+                     "vld2.32 {d0-d3}, [%[in0]]                              \n\t"
+                     "vld2.32 {d8-d11}, [%[in4]]                             \n\t"
+@@ -932,7 +932,7 @@ pyrUp8uHorizontalConvolution:
+             for (; x < lim; x += 8)
+             {
+                 internal::prefetch(lane + x);
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ (
+                     "vld1.16 {d0-d1}, [%[in0]]       /*q0 = v0*/            \n\t"
+                     "vld1.16 {d2-d3}, [%[in2]]       /*q1 = v2*/            \n\t"
+@@ -973,7 +973,7 @@ pyrUp8uHorizontalConvolution:
+             for (; x < lim; x += 24)
+             {
+                 internal::prefetch(lane + x);
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ (
+                     "vmov.u16 q9, #6                                           \n\t"
+                     "vld3.16 {d0, d2, d4}, [%[in0]]        /*v0*/              \n\t"
+@@ -1064,7 +1064,7 @@ pyrUp8uHorizontalConvolution:
+             for (; x < lim; x += 8)
+             {
+                 internal::prefetch(lane + x);
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ (
+                     "vld1.16 {d0-d1}, [%[in0]]       /*q0 = v0*/            \n\t"
+                     "vld1.16 {d2-d3}, [%[in2]]       /*q1 = v2*/            \n\t"
+@@ -1210,7 +1210,7 @@ pyrUp16sHorizontalConvolution:
+             for (; x < lim; x += 4)
+             {
+                 internal::prefetch(lane + x);
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ (
+                     "vld1.32 {d0-d1}, [%[in0]]       /*q0 = v0*/            \n\t"
+                     "vld1.32 {d2-d3}, [%[in2]]       /*q1 = v2*/            \n\t"
+@@ -1251,7 +1251,7 @@ pyrUp16sHorizontalConvolution:
+             for (; x < lim; x += 12)
+             {
+                 internal::prefetch(lane + x + 3);
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ (
+                     "vmov.s32 q9, #6                                           \n\t"
+                     "vld3.32 {d0, d2, d4}, [%[in0]]        /*v0*/              \n\t"
+@@ -1343,7 +1343,7 @@ pyrUp16sHorizontalConvolution:
+             for (; x < lim; x += 4)
+             {
+                 internal::prefetch(lane + x);
+-#if defined(__GNUC__) && defined(__arm__)
++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
+                 __asm__ (
+                     "vld1.32 {d0-d1}, [%[in0]]       /*q0 = v0*/            \n\t"
+                     "vld1.32 {d2-d3}, [%[in2]]       /*q1 = v2*/            \n\t"
+diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
+index 5695804fe4..8d3b6328b1 100644
+--- a/3rdparty/carotene/src/scharr.cpp
++++ b/3rdparty/carotene/src/scharr.cpp
+@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
+             internal::prefetch(srow0 + x);
+             internal::prefetch(srow1 + x);
+             internal::prefetch(srow2 + x);
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
+             __asm__ (
+                 "vld1.8 {d0}, [%[src0]]                                \n\t"
+                 "vld1.8 {d2}, [%[src2]]                                \n\t"
+@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
+         x = 0;
+         for( ; x < roiw8; x += 8 )
+         {
+-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
+             __asm__ (
+                 "vld1.16 {d4-d5}, [%[s2ptr]]                           \n\t"
+                 "vld1.16 {d8-d9}, [%[s4ptr]]                           \n\t"
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-tracking-make-opencv_dnn-dependancy-optional.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-tracking-make-opencv_dnn-dependancy-optional.patch
deleted file mode 100644
index fba43eb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-tracking-make-opencv_dnn-dependancy-optional.patch
+++ /dev/null
@@ -1,243 +0,0 @@
-From 69f86025978b9bbbefa54a7248316a859773aeaf Mon Sep 17 00:00:00 2001
-From: berak <px1704@web.de>
-Date: Sat, 4 Mar 2017 12:38:50 +0100
-Subject: [PATCH] tracking: make opencv_dnn dependancy optional
-
-Upstream-status: Backport [https://github.com/opencv/opencv_contrib/commit/43925b60d392fbd01d6b0449713f010f9babe448]
-Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
-
----
- modules/tracking/CMakeLists.txt                   |  3 +--
- modules/tracking/samples/goturnTracker.cpp        | 22 +++++++++++++++++++---
- modules/tracking/samples/multiTracker_dataset.cpp |  1 +
- modules/tracking/samples/tracker_dataset.cpp      |  1 +
- modules/tracking/src/gtrTracker.cpp               | 11 ++++++++++-
- modules/tracking/src/gtrTracker.hpp               | 12 ++++++++----
- modules/tracking/src/gtrUtils.cpp                 |  6 +++---
- modules/tracking/src/gtrUtils.hpp                 |  5 ++---
- modules/tracking/src/tracker.cpp                  |  1 +
- 9 files changed, 46 insertions(+), 16 deletions(-)
-
-diff --git a/modules/tracking/CMakeLists.txt b/modules/tracking/CMakeLists.txt
-index a8b3183..d27f999 100644
---- a/modules/tracking/CMakeLists.txt
-+++ b/modules/tracking/CMakeLists.txt
-@@ -1,2 +1 @@
--set(the_description "Tracking API")
--ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_highgui opencv_dnn opencv_plot OPTIONAL opencv_datasets WRAP python)
-\ No newline at end of file
-+ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_highgui opencv_plot OPTIONAL opencv_dnn opencv_datasets WRAP python)
-diff --git a/modules/tracking/samples/goturnTracker.cpp b/modules/tracking/samples/goturnTracker.cpp
-index 389771e..1e6632d 100644
---- a/modules/tracking/samples/goturnTracker.cpp
-+++ b/modules/tracking/samples/goturnTracker.cpp
-@@ -45,6 +45,9 @@
- //1 - Train you own GOTURN model using <https://github.com/Auron-X/GOTURN_Training_Toolkit>
- //2 - Download pretrained caffemodel from <https://github.com/opencv/opencv_extra>
- 
-+#include "opencv2/opencv_modules.hpp"
-+#if defined(HAVE_OPENCV_DNN) && defined(HAVE_OPENCV_DATASETS)
-+
- #include "opencv2/datasets/track_alov.hpp"
- #include <opencv2/core/utility.hpp>
- #include <opencv2/tracking.hpp>
-@@ -65,8 +68,8 @@ static bool startSelection = false;
- Rect2d boundingBox;
- 
- static const char* keys =
--{ "{@dataset_path     |true| Dataset path     }"
--"{@dataset_id     |1| Dataset ID     }"
-+{ "{@dataset_path     || Dataset path   }"
-+  "{@dataset_id      |1| Dataset ID     }"
- };
- 
- static void onMouse(int event, int x, int y, int, void*)
-@@ -144,9 +147,14 @@ int main(int argc, char *argv[])
-     Ptr<cv::datasets::TRACK_alov> dataset = TRACK_alov::create();
-     dataset->load(datasetRootPath);
-     dataset->initDataset(datasetID);
--
-     //Read first frame
-     dataset->getNextFrame(frame);
-+    if (frame.empty())
-+    {
-+        cout << "invalid dataset: " << datasetRootPath << endl;
-+        return -2;
-+    }
-+
-     frame.copyTo(image);
-     rectangle(image, boundingBox, Scalar(255, 0, 0), 2, 1);
-     imshow("GOTURN Tracking", image);
-@@ -215,3 +223,11 @@ int main(int argc, char *argv[])
- 
-     return 0;
- }
-+
-+#else // ! HAVE_OPENCV_DNN && HAVE_OPENCV_DATASETS
-+#include <opencv2/core.hpp>
-+int main() {
-+    CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets and opencv_dnn !");
-+    return -1;
-+}
-+#endif
-diff --git a/modules/tracking/samples/multiTracker_dataset.cpp b/modules/tracking/samples/multiTracker_dataset.cpp
-index 2826b19..b5c27da 100644
---- a/modules/tracking/samples/multiTracker_dataset.cpp
-+++ b/modules/tracking/samples/multiTracker_dataset.cpp
-@@ -234,6 +234,7 @@ int main(int argc, char *argv[])
- }
- 
- #else // ! HAVE_OPENCV_DATASETS
-+#include <opencv2/core.hpp>
- int main() {
- 	CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets !");
- 	return -1;
-diff --git a/modules/tracking/samples/tracker_dataset.cpp b/modules/tracking/samples/tracker_dataset.cpp
-index 8b7832a..6178105 100644
---- a/modules/tracking/samples/tracker_dataset.cpp
-+++ b/modules/tracking/samples/tracker_dataset.cpp
-@@ -234,6 +234,7 @@ int main(int argc, char *argv[])
- 
- 
- #else // ! HAVE_OPENCV_DATASETS
-+#include <opencv2/core.hpp>
- int main() {
- 	CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets !");
- 	return -1;
-diff --git a/modules/tracking/src/gtrTracker.cpp b/modules/tracking/src/gtrTracker.cpp
-index 58debfd..4904f47 100644
---- a/modules/tracking/src/gtrTracker.cpp
-+++ b/modules/tracking/src/gtrTracker.cpp
-@@ -38,7 +38,7 @@
- // the use of this software, even if advised of the possibility of such damage.
- //
- //M*/
--
-+#include "opencv2/opencv_modules.hpp"
- #include "gtrTracker.hpp"
- 
- 
-@@ -54,9 +54,16 @@ void TrackerGOTURN::Params::write(cv::FileStorage& /*fs*/) const {}
- 
- Ptr<TrackerGOTURN> TrackerGOTURN::createTracker(const TrackerGOTURN::Params &parameters)
- {
-+#ifdef HAVE_OPENCV_DNN
-     return Ptr<gtr::TrackerGOTURNImpl>(new gtr::TrackerGOTURNImpl(parameters));
-+#else
-+    (void)(parameters);
-+    CV_ErrorNoReturn(cv::Error::StsNotImplemented , "to use GOTURN, the tracking module needs to be built with opencv_dnn !");
-+#endif
- }
- 
-+
-+#ifdef HAVE_OPENCV_DNN
- namespace gtr
- {
- 
-@@ -183,9 +190,11 @@ bool TrackerGOTURNImpl::updateImpl(const Mat& image, Rect2d& boundingBox)
-     //Set new model image and BB from current frame
-     ((TrackerGOTURNModel*)static_cast<TrackerModel*>(model))->setImage(curFrame);
-     ((TrackerGOTURNModel*)static_cast<TrackerModel*>(model))->setBoudingBox(curBB);
-+
-     return true;
- }
- 
- }
-+#endif // OPENCV_HAVE_DNN
- 
- }
-diff --git a/modules/tracking/src/gtrTracker.hpp b/modules/tracking/src/gtrTracker.hpp
-index 34f2c48..21ae3d9 100644
---- a/modules/tracking/src/gtrTracker.hpp
-+++ b/modules/tracking/src/gtrTracker.hpp
-@@ -45,11 +45,15 @@
- 
- #include "precomp.hpp"
- #include "opencv2/video/tracking.hpp"
--#include "opencv2/dnn.hpp"
- #include "gtrUtils.hpp"
- #include "opencv2/imgproc.hpp"
--#include<algorithm>
--#include<limits.h>
-+
-+#include <algorithm>
-+#include <limits.h>
-+
-+#include "opencv2/opencv_modules.hpp"
-+#ifdef HAVE_OPENCV_DNN
-+#include "opencv2/dnn.hpp"
- 
- namespace cv
- {
-@@ -72,5 +76,5 @@ public:
- 
- }
- }
--
-+#endif
- #endif
-diff --git a/modules/tracking/src/gtrUtils.cpp b/modules/tracking/src/gtrUtils.cpp
-index 0df1197..e80dda1 100644
---- a/modules/tracking/src/gtrUtils.cpp
-+++ b/modules/tracking/src/gtrUtils.cpp
-@@ -58,7 +58,7 @@ double generateRandomLaplacian(double b, double m)
-         return m - b*log(n);
- }
- 
--Rect2f anno2rect(vector<Point2f> annoBB)
-+Rect2f anno2rect(std::vector<Point2f> annoBB)
- {
-     Rect2f rectBB;
-     rectBB.x = min(annoBB[0].x, annoBB[1].x);
-@@ -69,9 +69,9 @@ Rect2f anno2rect(vector<Point2f> annoBB)
-     return rectBB;
- }
- 
--vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB)
-+std::vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB)
- {
--    vector <TrainingSample> trainingSamples;
-+    std::vector <TrainingSample> trainingSamples;
-     Point2f currCenter, prevCenter;
-     Rect2f targetPatchRect, searchPatchRect;
-     Mat targetPatch, searchPatch;
-diff --git a/modules/tracking/src/gtrUtils.hpp b/modules/tracking/src/gtrUtils.hpp
-index 8f388be..41aad21 100644
---- a/modules/tracking/src/gtrUtils.hpp
-+++ b/modules/tracking/src/gtrUtils.hpp
-@@ -4,7 +4,6 @@
- #include "precomp.hpp"
- #include <vector>
- #include "opencv2/highgui.hpp"
--#include <opencv2/datasets/track_alov.hpp>
- 
- namespace cv
- {
-@@ -50,10 +49,10 @@ struct TrainingSample
- double generateRandomLaplacian(double b, double m);
- 
- //Convert ALOV300++ anno coordinates to Rectangle BB
--Rect2f anno2rect(vector<Point2f> annoBB);
-+Rect2f anno2rect(std::vector<Point2f> annoBB);
- 
- //Gather samples from random video frame
--vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB);
-+std::vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB);
- 
- }
- }
-diff --git a/modules/tracking/src/tracker.cpp b/modules/tracking/src/tracker.cpp
-index 8127f2a..b96aca8 100644
---- a/modules/tracking/src/tracker.cpp
-+++ b/modules/tracking/src/tracker.cpp
-@@ -112,6 +112,7 @@ Ptr<Tracker> Tracker::create( const String& trackerType )
-   BOILERPLATE_CODE("TLD",TrackerTLD);
-   BOILERPLATE_CODE("KCF",TrackerKCF);
-   BOILERPLATE_CODE("GOTURN", TrackerGOTURN);
-+
-   return Ptr<Tracker>();
- }
- 
--- 
-2.9.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
new file mode 100644
index 0000000..22e868a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
@@ -0,0 +1,993 @@
+From 333f60165b6737588eb975a5e4393d847011a1cd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 18:07:35 -0700
+Subject: [PATCH 2/2] Do not enable asm with clang
+
+clang pretends to be gcc 4.2.0 which means we will
+use inline asm for no reason, instead of builtins
+on clang when possible.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+ 3rdparty/carotene/src/channel_extract.cpp  |  4 +-
+ 3rdparty/carotene/src/channels_combine.cpp |  2 +-
+ 3rdparty/carotene/src/colorconvert.cpp     | 78 +++++++++++++++---------------
+ 3rdparty/carotene/src/convert.cpp          | 54 ++++++++++-----------
+ 3rdparty/carotene/src/convert_scale.cpp    | 56 ++++++++++-----------
+ 3rdparty/carotene/src/gaussian_blur.cpp    |  2 +-
+ 3rdparty/carotene/src/pyramid.cpp          |  8 +--
+ 3rdparty/carotene/src/scharr.cpp           |  4 +-
+ 8 files changed, 104 insertions(+), 104 deletions(-)
+
+diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
+index 8238a3ece8..ff4fb3770c 100644
+--- a/3rdparty/carotene/src/channel_extract.cpp
++++ b/3rdparty/carotene/src/channel_extract.cpp
+@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
+                  srcStride == dst2Stride && \
+                  srcStride == dst3Stride &&
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ 
+ #define SPLIT_ASM2(sgn, bits) __asm__ ( \
+                                           "vld2." #bits " {d0, d2}, [%[in0]]            \n\t" \
+@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
+     }                                                                                                   \
+ }
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ 
+ #define ALPHA_QUAD(sgn, bits) { \
+                                   internal::prefetch(src + sj); \
+diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
+index fc98fb9181..5d9251d51c 100644
+--- a/3rdparty/carotene/src/channels_combine.cpp
++++ b/3rdparty/carotene/src/channels_combine.cpp
+@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
+                  dstStride == src2Stride && \
+                  dstStride == src3Stride &&
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ 
+ #define MERGE_ASM2(sgn, bits) __asm__ ( \
+                                           "vld1." #bits " {d0-d1}, [%[in0]]             \n\t" \
+diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
+index 26ae54b15c..d3a40fe64e 100644
+--- a/3rdparty/carotene/src/colorconvert.cpp
++++ b/3rdparty/carotene/src/colorconvert.cpp
+@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+         for (; dj < roiw8; sj += 24, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+         for (; dj < roiw8; sj += 32, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+         for (; dj < roiw8; sj += 24, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
+     const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
+     const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
+     register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
+     register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
+@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
+         u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
+         size_t sj = 0u, dj = 0u;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+         for (; dj < roiw8; sj += 32, dj += 8)
+         {
+             internal::prefetch(src + sj);
+@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
+         for (; sj < roiw16; sj += 16, dj += 48)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+             "vld1.8 {d0-d1}, [%[in0]]            \n\t"
+             "vmov.8 q1, q0                       \n\t"
+@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
+ 
+         if (sj < roiw8)
+         {
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+             "vld1.8 {d0}, [%[in]]                \n\t"
+             "vmov.8 d1, d0                       \n\t"
+@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
+     size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register uint8x16_t vc255   asm ("q4") = vmovq_n_u8(255);
+ #else
+     uint8x16x4_t vRgba;
+@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
+         for (; sj < roiw16; sj += 16, dj += 64)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+             "vld1.8 {d0-d1}, [%[in0]]            \n\t"
+             "vmov.8 q1, q0                       \n\t"
+@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
+ 
+         if (sj < roiw8)
+         {
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+             "vld1.8 {d5}, [%[in]]                \n\t"
+             "vmov.8 d6, d5                       \n\t"
+@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
+               "d24","d25","d26","d27","d28","d29","d30","d31"         \
+             );
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ 
+ #define YCRCB_CONSTS                                                        \
+     register int16x4_t vcYR  asm ("d31") = vmov_n_s16(4899);                \
+@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
+ #define COEFF_G   (  8663)
+ #define COEFF_B   (-17705)
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ #define YUV420ALPHA3_CONST
+ #define YUV420ALPHA4_CONST register uint8x16_t c255  asm ("q13") = vmovq_n_u8(255);
+ #define YUV420ALPHA3_CONVERT
+@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
+ #else
+             uint8x8x3_t vRgb = vld3_u8(src + sj);
+@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
+ #else
+             uint8x8x4_t vRgb = vld4_u8(src + sj);
+@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
+ #else
+             uint8x8x3_t vRgb = vld3_u8(src + sj);
+@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
+ #ifdef CAROTENE_NEON
+     size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
+     const s32 hsv_shift = 12;
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register const f32 vsdiv_table = f32(255 << hsv_shift);
+     register f32 vhdiv_table = f32(hrange << hsv_shift);
+     register const s32 vhrange = hrange;
+@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
+ #else
+             uint8x8x4_t vRgb = vld4_u8(src + sj);
+@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
+         for (; j < roiw16; sj += 64, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+                 "vld4.8 {d2, d4, d6, d8}, [%[in0]]        @  q0       q1       q2       q3       q4       \n\t"
+                 "vld4.8 {d3, d5, d7, d9}, [%[in1]]        @  xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
+@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
+         for (; j < roiw16; sj += 48, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+                 "vld3.8 {d2, d4, d6}, [%[in0]]       @  q0       q1       q2       q3       q4       \n\t"
+                 "vld3.8 {d3, d5, d7}, [%[in1]]       @  xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
+@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
+         for (; j < roiw16; sj += 64, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+                 "vld4.8 {d0, d2, d4, d6}, [%[in0]]    @  q0       q1       q2       q3         \n\t"
+                 "vld4.8 {d1, d3, d5, d7}, [%[in1]]    @  rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA   \n\t"
+@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
+         for (; j < roiw16; sj += 48, dj += 32, j += 16)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+                 "vld3.8 {d0, d2, d4}, [%[in0]]        @  q0       q1       q2       q3         \n\t"
+                 "vld3.8 {d1, d3, d5}, [%[in1]]        @  rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx   \n\t"
+@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
+ #else
+             uint8x8x3_t vRgb = vld3_u8(src + sj);
+@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
+ #else
+             uint8x8x4_t vRgba = vld4_u8(src + sj);
+@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 24, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
+ #else
+             uint8x8x3_t vBgr = vld3_u8(src + sj);
+@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
+         for (; j < roiw8; sj += 32, dj += 24, j += 8)
+         {
+             internal::prefetch(src + sj);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
+ #else
+             uint8x8x4_t vBgra = vld4_u8(src + sj);
+@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(3, d1, d0, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(4, d1, d0, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(3, d0, d1, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(4, d0, d1, q5, q6)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(3, d1, d0, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(4, d1, d0, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(3, d0, d1, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
+             internal::prefetch(uv + j);
+             internal::prefetch(y1 + j);
+             internal::prefetch(y2 + j);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             CONVERTYUV420TORGB(4, d0, d1, q6, q5)
+ #else
+             convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
+diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
+index 64b6db78ab..f0c2d153f2 100644
+--- a/3rdparty/carotene/src/convert.cpp
++++ b/3rdparty/carotene/src/convert.cpp
+@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
+      }
+ })
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVT_FUNC(u8, u16, 16,
+      register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
+ {
+@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVT_FUNC(u8, s32, 16,
+      register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
+      register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
+@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(u8, f32, 16,
+ ,
+ {
+@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
+      }
+ })
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVT_FUNC(s8, u16, 16,
+      register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
+ {
+@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s8, s16, 16,
+ ,
+ {
+@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVT_FUNC(s8, s32, 16,
+ ,
+ {
+@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s8, f32, 16,
+ ,
+ {
+@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(u16, u8, 16,
+ ,
+ {
+@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(u16, s8, 16,
+     register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
+ {
+@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVT_FUNC(u16, s16, 8,
+      register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
+ {
+@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVT_FUNC(u16, s32, 8,
+      register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
+ {
+@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(u16, f32, 8,
+ ,
+ {
+@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s16, u8, 16,
+ ,
+ {
+@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s16, s8, 16,
+ ,
+ {
+@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVT_FUNC(s16, u16, 8,
+      register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
+ {
+@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s16, s32, 8,
+ ,
+ {
+@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s16, f32, 8,
+ ,
+ {
+@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s32, u8, 8,
+ ,
+ {
+@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s32, s8, 8,
+ ,
+ {
+@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s32, u16, 8,
+ ,
+ {
+@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s32, s16, 8,
+ ,
+ {
+@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(s32, f32, 8,
+ ,
+ {
+@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(f32, u8, 8,
+     register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
+     register uint32x4_t  vmask asm ("q1") = vdupq_n_u32(1<<16);,
+@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(f32, s8, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(f32, u16, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(f32, s16, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+ CVT_FUNC(f32, s32, 8,
+      register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
+ {
+diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
+index ae41a985c8..d599d24c1e 100644
+--- a/3rdparty/carotene/src/convert_scale.cpp
++++ b/3rdparty/carotene/src/convert_scale.cpp
+@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(u8, s32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(u8, f32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s8, s32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s8, f32, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(u16, u8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(u16, s8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC1(u16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(u16, s16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(u16, s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(u16, f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s16, u8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s16, s8, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s16, u16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC1(s16, 16,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s16, s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s16, f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s32, u8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s32, s8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s32, u16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s32, s16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC1(s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(s32, f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(f32, u8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
+@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(f32, s8, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(f32, u16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(f32, s16, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC(f32, s32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
+@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
+ })
+ #endif
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+ CVTS_FUNC1(f32, 8,
+     register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
+     register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
+diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
+index f7b5f18d79..e5aa8fc75b 100644
+--- a/3rdparty/carotene/src/gaussian_blur.cpp
++++ b/3rdparty/carotene/src/gaussian_blur.cpp
+@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
+                 u16* lidx1 = lane + x - 1*2;
+                 u16* lidx3 = lane + x + 1*2;
+                 u16* lidx4 = lane + x + 2*2;
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+                 __asm__ __volatile__ (
+                     "vld2.16 {d0, d2}, [%[in0]]!                              \n\t"
+                     "vld2.16 {d1, d3}, [%[in0]]                               \n\t"
+diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
+index 232ccf3efd..d4e32ea50f 100644
+--- a/3rdparty/carotene/src/pyramid.cpp
++++ b/3rdparty/carotene/src/pyramid.cpp
+@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+             for (; x < roiw8; x += 8)
+             {
+                 internal::prefetch(lane + 2 * x);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+                 __asm__ (
+                     "vld2.16 {d0-d3}, [%[in0]]                               \n\t"
+                     "vld2.16 {d4-d7}, [%[in4]]                               \n\t"
+@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+             for (; x < roiw4; x += 4)
+             {
+                 internal::prefetch(lane + 2 * x);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+                 __asm__ (
+                     "vld2.32 {d0-d3}, [%[in0]]                              \n\t"
+                     "vld2.32 {d4-d7}, [%[in4]]                              \n\t"
+@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+     std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
+     f32* lane = internal::alignPtr(&_buf[2*cn], 32);
+ 
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+     register float32x4_t vc6d4f32  asm ("q11") = vmovq_n_f32(1.5f);  // 6/4
+     register float32x4_t vc1d4f32  asm ("q12") = vmovq_n_f32(0.25f); // 1/4
+ 
+@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
+             for (; x < roiw4; x += 4)
+             {
+                 internal::prefetch(lane + 2 * x);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+                 __asm__ __volatile__ (
+                     "vld2.32 {d0-d3}, [%[in0]]                              \n\t"
+                     "vld2.32 {d8-d11}, [%[in4]]                             \n\t"
+diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
+index 8d3b6328b1..36f6b2276e 100644
+--- a/3rdparty/carotene/src/scharr.cpp
++++ b/3rdparty/carotene/src/scharr.cpp
+@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
+             internal::prefetch(srow0 + x);
+             internal::prefetch(srow1 + x);
+             internal::prefetch(srow2 + x);
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 7 && !defined(__clang__)
+             __asm__ (
+                 "vld1.8 {d0}, [%[src0]]                                \n\t"
+                 "vld1.8 {d2}, [%[src2]]                                \n\t"
+@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
+         x = 0;
+         for( ; x < roiw8; x += 8 )
+         {
+-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 &&  __GNUC_MINOR__ < 6 && !defined(__clang__)
+             __asm__ (
+                 "vld1.16 {d4-d5}, [%[s2ptr]]                           \n\t"
+                 "vld1.16 {d8-d9}, [%[s4ptr]]                           \n\t"
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Make-opencv-ts-create-share-library-intead-of-static.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
similarity index 65%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Make-opencv-ts-create-share-library-intead-of-static.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
index 05ec41f..a845505 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Make-opencv-ts-create-share-library-intead-of-static.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
@@ -1,7 +1,7 @@
-From 49d1f7c40a5d097f23671318045ac54bc07846cf Mon Sep 17 00:00:00 2001
+From 350525293aef65490e80104ddd99e1b21c5d54b0 Mon Sep 17 00:00:00 2001
 From: Bian Naimeng <biannm@cn.fujitsu.com>
 Date: Wed, 19 Apr 2017 03:11:37 +0900
-Subject: [PATCH] Make opencv-ts create share library intead of static.
+Subject: [PATCH 2/3] Make opencv-ts create share library intead of static.
 
 Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt
-index bb56da2..7bb4ce9 100644
+index f95bed079..ee67858df 100644
 --- a/modules/ts/CMakeLists.txt
 +++ b/modules/ts/CMakeLists.txt
-@@ -4,7 +4,7 @@ if(IOS)
+@@ -4,7 +4,7 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS)
    ocv_module_disable(ts)
  endif()
  
@@ -20,7 +20,7 @@
 +#set(OPENCV_MODULE_TYPE STATIC)
  set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
  
- ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
+ if(WINRT)
 -- 
-1.8.4.2
+2.13.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Revert-check-FP16-build-condition-correctly.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Revert-check-FP16-build-condition-correctly.patch
deleted file mode 100644
index d1950a9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Revert-check-FP16-build-condition-correctly.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-From 9108e39e5584ef9b41f80751639b4ec72b3e9538 Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Wed, 26 Apr 2017 15:00:32 -0400
-Subject: [PATCH 2/2] Revert "check FP16 build condition correctly"
-
-This reverts commit c7cb116dc08441fe56cf82d5b21f929e5b674c13.
-
-Fix up revert conflicts to take previous behaviour.
----
- cmake/OpenCVCompilerOptions.cmake         | 45 +++++++++--------------
- modules/core/include/opencv2/core/cvdef.h |  2 +-
- modules/core/src/convert.cpp              | 11 +++---
- modules/core/test/test_intrin.cpp         | 60 ++++++++++++++-----------------
- 4 files changed, 48 insertions(+), 70 deletions(-)
-
-diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake
-index 5bb0479..4b19fdb 100644
---- a/cmake/OpenCVCompilerOptions.cmake
-+++ b/cmake/OpenCVCompilerOptions.cmake
-@@ -185,7 +185,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
-     add_extra_compiler_option("-mfp16-format=ieee")
-   endif(ARM)
-   if(ENABLE_NEON)
--    add_extra_compiler_option("-mfpu=neon")
-+    add_extra_compiler_option("-mfpu=neon-fp16")
-   endif()
-   if(ENABLE_VFPV3 AND NOT ENABLE_NEON)
-     add_extra_compiler_option("-mfpu=vfpv3")
-@@ -370,34 +370,6 @@ if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_OPENCV_GCC_VERSION_NUM GREATER 399)
-   add_extra_compiler_option(-fvisibility-inlines-hidden)
- endif()
- 
--if(NOT OPENCV_FP16_DISABLE AND NOT IOS)
--  if(ARM AND ENABLE_NEON)
--    set(FP16_OPTION "-mfpu=neon-fp16")
--  elseif((X86 OR X86_64) AND NOT MSVC AND ENABLE_AVX)
--    set(FP16_OPTION "-mf16c")
--  endif()
--  try_compile(__VALID_FP16
--    "${OpenCV_BINARY_DIR}"
--    "${OpenCV_SOURCE_DIR}/cmake/checks/fp16.cpp"
--    COMPILE_DEFINITIONS "-DCHECK_FP16" "${FP16_OPTION}"
--    OUTPUT_VARIABLE TRY_OUT
--    )
--  if(NOT __VALID_FP16)
--    if((X86 OR X86_64) AND NOT MSVC AND NOT ENABLE_AVX)
--      # GCC enables AVX when mf16c is passed
--      message(STATUS "FP16: Feature disabled")
--    else()
--      message(STATUS "FP16: Compiler support is not available")
--    endif()
--  else()
--    message(STATUS "FP16: Compiler support is available")
--    set(HAVE_FP16 1)
--    if(NOT ${FP16_OPTION} STREQUAL "")
--      add_extra_compiler_option(${FP16_OPTION})
--    endif()
--  endif()
--endif()
--
- #combine all "extra" options
- set(CMAKE_C_FLAGS           "${CMAKE_C_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
- set(CMAKE_CXX_FLAGS         "${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_CXX_FLAGS}")
-@@ -450,6 +422,21 @@ if(MSVC)
-   endif()
- endif()
- 
-+if(NOT OPENCV_FP16_DISABLE)
-+  try_compile(__VALID_FP16
-+    "${OpenCV_BINARY_DIR}"
-+    "${OpenCV_SOURCE_DIR}/cmake/checks/fp16.cpp"
-+    COMPILE_DEFINITIONS "-DCHECK_FP16"
-+    OUTPUT_VARIABLE TRY_OUT
-+    )
-+  if(NOT __VALID_FP16)
-+    message(STATUS "FP16: Compiler support is not available")
-+  else()
-+    message(STATUS "FP16: Compiler support is available")
-+    set(HAVE_FP16 1)
-+  endif()
-+endif()
-+
- if(APPLE AND NOT CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{LDFLAGS} AND EXISTS "/usr/local/lib")
-   link_directories("/usr/local/lib")
- endif()
-diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
-index efc24ca..a10936b 100644
---- a/modules/core/include/opencv2/core/cvdef.h
-+++ b/modules/core/include/opencv2/core/cvdef.h
-@@ -312,7 +312,7 @@ enum CpuFeatures {
- typedef union Cv16suf
- {
-     short i;
--#if CV_FP16_TYPE
-+#if ( defined (__arm__) || defined (__aarch64__) ) && !defined (__CUDACC__) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
-     __fp16 h;
- #endif
-     struct _fp16Format
-diff --git a/modules/core/src/convert.cpp b/modules/core/src/convert.cpp
-index e04d89e..46db26f 100644
---- a/modules/core/src/convert.cpp
-+++ b/modules/core/src/convert.cpp
-@@ -44,7 +44,6 @@
- #include "precomp.hpp"
- 
- #include "opencl_kernels_core.hpp"
--#include "opencv2/core/hal/intrin.hpp"
- 
- #include "opencv2/core/openvx/ovx_defs.hpp"
- 
-@@ -4382,7 +4381,7 @@ struct Cvt_SIMD<float, int>
- 
- #endif
- 
--#if !CV_FP16_TYPE
-+#if !( ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) ) )
- // const numbers for floating points format
- const unsigned int kShiftSignificand    = 13;
- const unsigned int kMaskFp16Significand = 0x3ff;
-@@ -4390,7 +4389,7 @@ const unsigned int kBiasFp16Exponent    = 15;
- const unsigned int kBiasFp32Exponent    = 127;
- #endif
- 
--#if CV_FP16_TYPE
-+#if ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
- static float convertFp16SW(short fp16)
- {
-     // Fp16 -> Fp32
-@@ -4452,7 +4451,7 @@ static float convertFp16SW(short fp16)
- }
- #endif
- 
--#if CV_FP16_TYPE
-+#if ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
- static short convertFp16SW(float fp32)
- {
-     // Fp32 -> Fp16
-@@ -4560,7 +4559,7 @@ cvtScaleHalf_<float, short>( const float* src, size_t sstep, short* dst, size_t
-             if ( ( (intptr_t)dst & 0xf ) == 0 )
- #endif
-             {
--#if CV_FP16 && CV_SIMD128
-+#if CV_FP16
-                 for ( ; x <= size.width - 4; x += 4)
-                 {
-                     v_float32x4 v_src = v_load(src + x);
-@@ -4606,7 +4605,7 @@ cvtScaleHalf_<short, float>( const short* src, size_t sstep, float* dst, size_t
-             if ( ( (intptr_t)src & 0xf ) == 0 )
- #endif
-             {
--#if CV_FP16 && CV_SIMD128
-+#if CV_FP16
-                 for ( ; x <= size.width - 4; x += 4)
-                 {
-                     v_float16x4 v_src = v_load_f16(src + x);
-diff --git a/modules/core/test/test_intrin.cpp b/modules/core/test/test_intrin.cpp
-index 66b2083..7349d48 100644
---- a/modules/core/test/test_intrin.cpp
-+++ b/modules/core/test/test_intrin.cpp
-@@ -729,56 +729,48 @@ template<typename R> struct TheTest
-         return *this;
-     }
- 
-+#if CV_FP16
-     TheTest & test_loadstore_fp16()
-     {
--#if CV_FP16
-         AlignedData<R> data;
-         AlignedData<R> out;
- 
--        if(checkHardwareSupport(CV_CPU_FP16))
--        {
--            // check if addresses are aligned and unaligned respectively
--            EXPECT_EQ((size_t)0, (size_t)&data.a.d % 16);
--            EXPECT_NE((size_t)0, (size_t)&data.u.d % 16);
--            EXPECT_EQ((size_t)0, (size_t)&out.a.d % 16);
--            EXPECT_NE((size_t)0, (size_t)&out.u.d % 16);
--
--            // check some initialization methods
--            R r1 = data.u;
--            R r2 = v_load_f16(data.a.d);
--            R r3(r2);
--            EXPECT_EQ(data.u[0], r1.get0());
--            EXPECT_EQ(data.a[0], r2.get0());
--            EXPECT_EQ(data.a[0], r3.get0());
--
--            // check some store methods
--            out.a.clear();
--            v_store_f16(out.a.d, r1);
--            EXPECT_EQ(data.a, out.a);
--        }
-+        // check if addresses are aligned and unaligned respectively
-+        EXPECT_EQ((size_t)0, (size_t)&data.a.d % 16);
-+        EXPECT_NE((size_t)0, (size_t)&data.u.d % 16);
-+        EXPECT_EQ((size_t)0, (size_t)&out.a.d % 16);
-+        EXPECT_NE((size_t)0, (size_t)&out.u.d % 16);
-+
-+        // check some initialization methods
-+        R r1 = data.u;
-+        R r2 = v_load_f16(data.a.d);
-+        R r3(r2);
-+        EXPECT_EQ(data.u[0], r1.get0());
-+        EXPECT_EQ(data.a[0], r2.get0());
-+        EXPECT_EQ(data.a[0], r3.get0());
-+
-+        // check some store methods
-+        out.a.clear();
-+        v_store_f16(out.a.d, r1);
-+        EXPECT_EQ(data.a, out.a);
- 
-         return *this;
--#endif
-     }
- 
-     TheTest & test_float_cvt_fp16()
-     {
--#if CV_FP16
-         AlignedData<v_float32x4> data;
- 
--        if(checkHardwareSupport(CV_CPU_FP16))
--        {
--            // check conversion
--            v_float32x4 r1 = v_load(data.a.d);
--            v_float16x4 r2 = v_cvt_f16(r1);
--            v_float32x4 r3 = v_cvt_f32(r2);
--            EXPECT_EQ(0x3c00, r2.get0());
--            EXPECT_EQ(r3.get0(), r1.get0());
--        }
-+        // check conversion
-+        v_float32x4 r1 = v_load(data.a.d);
-+        v_float16x4 r2 = v_cvt_f16(r1);
-+        v_float32x4 r3 = v_cvt_f32(r2);
-+        EXPECT_EQ(0x3c00, r2.get0());
-+        EXPECT_EQ(r3.get0(), r1.get0());
- 
-         return *this;
--#endif
-     }
-+#endif
- 
- };
- 
--- 
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
new file mode 100644
index 0000000..39f33af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
@@ -0,0 +1,656 @@
+Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3]
+
+Fix CVEs for opencv 3.3:
+
+* CVE-2017-12597
+* CVE-2017-12598
+* CVE-2017-12599
+* CVE-2017-12600
+* CVE-2017-12601
+* CVE-2017-12602
+* CVE-2017-12603
+* CVE-2017-12604
+* CVE-2017-12605
+* CVE-2017-12606
+* CVE-2017-12862
+* CVE-2017-12863
+* CVE-2017-12864
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From 999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3 Mon Sep 17 00:00:00 2001
+From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
+Date: Tue, 15 Aug 2017 22:04:55 +0000
+Subject: [PATCH 2/3] imgcodecs: refactoring, improve code quality
+
+---
+ modules/imgcodecs/src/bitstrm.cpp   |   2 +
+ modules/imgcodecs/src/bitstrm.hpp   |  19 +++--
+ modules/imgcodecs/src/grfmt_bmp.cpp |  13 ++-
+ modules/imgcodecs/src/grfmt_pxm.cpp | 122 ++++++++++++++++-----------
+ modules/imgcodecs/src/loadsave.cpp  | 164 +++++++++++++++++++++++++++++-------
+ 5 files changed, 231 insertions(+), 89 deletions(-)
+
+diff --git a/modules/imgcodecs/src/bitstrm.cpp b/modules/imgcodecs/src/bitstrm.cpp
+index a7e187fa0..0a8941aec 100644
+--- a/modules/imgcodecs/src/bitstrm.cpp
++++ b/modules/imgcodecs/src/bitstrm.cpp
+@@ -209,6 +209,8 @@ int  RLByteStream::getByte()
+         current = m_current;
+     }
+ 
++    CV_Assert(current < m_end);
++
+     val = *((uchar*)current);
+     m_current = current + 1;
+     return val;
+diff --git a/modules/imgcodecs/src/bitstrm.hpp b/modules/imgcodecs/src/bitstrm.hpp
+index 465c0a847..26947971f 100644
+--- a/modules/imgcodecs/src/bitstrm.hpp
++++ b/modules/imgcodecs/src/bitstrm.hpp
+@@ -48,13 +48,20 @@
+ namespace cv
+ {
+ 
+-enum
+-{
+-    RBS_THROW_EOS=-123,  // <end of stream> exception code
+-    RBS_THROW_FORB=-124,  // <forrbidden huffman code> exception code
+-    RBS_HUFF_FORB=2047,  // forrbidden huffman code "value"
+-    RBS_BAD_HEADER=-125 // invalid header
++#define DECLARE_RBS_EXCEPTION(name) \
++class RBS_ ## name ## _Exception : public cv::Exception \
++{ \
++public: \
++    RBS_ ## name ## _Exception(int code_, const String& err_, const String& func_, const String& file_, int line_) : \
++        cv::Exception(code_, err_, func_, file_, line_) \
++    {} \
+ };
++DECLARE_RBS_EXCEPTION(THROW_EOS)
++#define RBS_THROW_EOS RBS_THROW_EOS_Exception(cv::Error::StsError, "Unexpected end of input stream", CV_Func, __FILE__, __LINE__)
++DECLARE_RBS_EXCEPTION(THROW_FORB)
++#define RBS_THROW_FORB RBS_THROW_FORB_Exception(cv::Error::StsError, "Forrbidden huffman code", CV_Func, __FILE__, __LINE__)
++DECLARE_RBS_EXCEPTION(BAD_HEADER)
++#define RBS_BAD_HEADER RBS_BAD_HEADER_Exception(cv::Error::StsError, "Invalid header", CV_Func, __FILE__, __LINE__)
+ 
+ typedef unsigned long ulong;
+ 
+diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
+index 86cacd316..257f97c2d 100644
+--- a/modules/imgcodecs/src/grfmt_bmp.cpp
++++ b/modules/imgcodecs/src/grfmt_bmp.cpp
+@@ -118,8 +118,9 @@ bool  BmpDecoder::readHeader()
+ 
+                 if( m_bpp <= 8 )
+                 {
+-                    memset( m_palette, 0, sizeof(m_palette));
+-                    m_strm.getBytes( m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
++                    CV_Assert(clrused < 256);
++                    memset(m_palette, 0, sizeof(m_palette));
++                    m_strm.getBytes(m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
+                     iscolor = IsColorPalette( m_palette, m_bpp );
+                 }
+                 else if( m_bpp == 16 && m_rle_code == BMP_BITFIELDS )
+@@ -290,7 +291,9 @@ bool  BmpDecoder::readData( Mat& img )
+                     else if( code > 2 ) // absolute mode
+                     {
+                         if( data + code*nch > line_end ) goto decode_rle4_bad;
+-                        m_strm.getBytes( src, (((code + 1)>>1) + 1) & -2 );
++                        int sz = (((code + 1)>>1) + 1) & (~1);
++                        CV_Assert((size_t)sz < _src.size());
++                        m_strm.getBytes(src, sz);
+                         if( color )
+                             data = FillColorRow4( data, src, code, m_palette );
+                         else
+@@ -379,7 +382,9 @@ decode_rle4_bad: ;
+ 
+                         if( data + code3 > line_end )
+                             goto decode_rle8_bad;
+-                        m_strm.getBytes( src, (code + 1) & -2 );
++                        int sz = (code + 1) & (~1);
++                        CV_Assert((size_t)sz < _src.size());
++                        m_strm.getBytes(src, sz);
+                         if( color )
+                             data = FillColorRow8( data, src, code, m_palette );
+                         else
+diff --git a/modules/imgcodecs/src/grfmt_pxm.cpp b/modules/imgcodecs/src/grfmt_pxm.cpp
+index 1750cb705..68bd8fd93 100644
+--- a/modules/imgcodecs/src/grfmt_pxm.cpp
++++ b/modules/imgcodecs/src/grfmt_pxm.cpp
+@@ -43,50 +43,58 @@
+ #include "precomp.hpp"
+ #include "utils.hpp"
+ #include "grfmt_pxm.hpp"
++#include <iostream>
+ 
+ namespace cv
+ {
+ 
+ ///////////////////////// P?M reader //////////////////////////////
+ 
+-static int ReadNumber( RLByteStream& strm, int maxdigits )
++static int ReadNumber(RLByteStream& strm, int maxdigits = 0)
+ {
+     int code;
+-    int val = 0;
++    int64 val = 0;
+     int digits = 0;
+ 
+     code = strm.getByte();
+ 
+-    if( !isdigit(code))
++    while (!isdigit(code))
+     {
+-        do
++        if (code == '#' )
+         {
+-            if( code == '#' )
++            do
+             {
+-                do
+-                {
+-                    code = strm.getByte();
+-                }
+-                while( code != '\n' && code != '\r' );
++                code = strm.getByte();
+             }
+-
++            while (code != '\n' && code != '\r');
+             code = strm.getByte();
+-
+-            while( isspace(code))
++        }
++        else if (isspace(code))
++        {
++            while (isspace(code))
+                 code = strm.getByte();
+         }
+-        while( !isdigit( code ));
++        else
++        {
++#if 1
++            CV_ErrorNoReturn_(Error::StsError, ("PXM: Unexpected code in ReadNumber(): 0x%x (%d)", code, code));
++#else
++            code = strm.getByte();
++#endif
++        }
+     }
+ 
+     do
+     {
+-        val = val*10 + code - '0';
+-        if( ++digits >= maxdigits ) break;
++        val = val*10 + (code - '0');
++        CV_Assert(val <= INT_MAX && "PXM: ReadNumber(): result is too large");
++        digits++;
++        if (maxdigits != 0 && digits >= maxdigits) break;
+         code = strm.getByte();
+     }
+-    while( isdigit(code));
++    while (isdigit(code));
+ 
+-    return val;
++    return (int)val;
+ }
+ 
+ 
+@@ -122,13 +130,13 @@ ImageDecoder PxMDecoder::newDecoder() const
+     return makePtr<PxMDecoder>();
+ }
+ 
+-void  PxMDecoder::close()
++void PxMDecoder::close()
+ {
+     m_strm.close();
+ }
+ 
+ 
+-bool  PxMDecoder::readHeader()
++bool PxMDecoder::readHeader()
+ {
+     bool result = false;
+ 
+@@ -158,10 +166,10 @@ bool  PxMDecoder::readHeader()
+         m_binary = code >= '4';
+         m_type = m_bpp > 8 ? CV_8UC3 : CV_8UC1;
+ 
+-        m_width = ReadNumber( m_strm, INT_MAX );
+-        m_height = ReadNumber( m_strm, INT_MAX );
++        m_width = ReadNumber(m_strm);
++        m_height = ReadNumber(m_strm);
+ 
+-        m_maxval = m_bpp == 1 ? 1 : ReadNumber( m_strm, INT_MAX );
++        m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm);
+         if( m_maxval > 65535 )
+             throw RBS_BAD_HEADER;
+ 
+@@ -175,8 +183,14 @@ bool  PxMDecoder::readHeader()
+             result = true;
+         }
+     }
+-    catch(...)
++    catch (const cv::Exception&)
++    {
++        throw;
++    }
++    catch (...)
+     {
++        std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush;
++        throw;
+     }
+ 
+     if( !result )
+@@ -189,33 +203,28 @@ bool  PxMDecoder::readHeader()
+ }
+ 
+ 
+-bool  PxMDecoder::readData( Mat& img )
++bool PxMDecoder::readData( Mat& img )
+ {
+     int color = img.channels() > 1;
+     uchar* data = img.ptr();
+     PaletteEntry palette[256];
+     bool   result = false;
+-    int  bit_depth = CV_ELEM_SIZE1(m_type)*8;
+-    int  src_pitch = (m_width*m_bpp*bit_depth/8 + 7)/8;
++    const int bit_depth = CV_ELEM_SIZE1(m_type)*8;
++    const int src_pitch = divUp(m_width*m_bpp*(bit_depth/8), 8);
+     int  nch = CV_MAT_CN(m_type);
+     int  width3 = m_width*nch;
+-    int  i, x, y;
+ 
+     if( m_offset < 0 || !m_strm.isOpened())
+         return false;
+ 
+-    AutoBuffer<uchar> _src(src_pitch + 32);
+-    uchar* src = _src;
+-    AutoBuffer<uchar> _gray_palette;
+-    uchar* gray_palette = _gray_palette;
++    uchar gray_palette[256] = {0};
+ 
+     // create LUT for converting colors
+     if( bit_depth == 8 )
+     {
+-        _gray_palette.allocate(m_maxval + 1);
+-        gray_palette = _gray_palette;
++        CV_Assert(m_maxval < 256);
+ 
+-        for( i = 0; i <= m_maxval; i++ )
++        for (int i = 0; i <= m_maxval; i++)
+             gray_palette[i] = (uchar)((i*255/m_maxval)^(m_bpp == 1 ? 255 : 0));
+ 
+         FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 );
+@@ -229,12 +238,16 @@ bool  PxMDecoder::readData( Mat& img )
+         {
+         ////////////////////////// 1 BPP /////////////////////////
+         case 1:
++            CV_Assert(CV_MAT_DEPTH(m_type) == CV_8U);
+             if( !m_binary )
+             {
+-                for( y = 0; y < m_height; y++, data += img.step )
++                AutoBuffer<uchar> _src(m_width);
++                uchar* src = _src;
++
++                for (int y = 0; y < m_height; y++, data += img.step)
+                 {
+-                    for( x = 0; x < m_width; x++ )
+-                        src[x] = ReadNumber( m_strm, 1 ) != 0;
++                    for (int x = 0; x < m_width; x++)
++                        src[x] = ReadNumber(m_strm, 1) != 0;
+ 
+                     if( color )
+                         FillColorRow8( data, src, m_width, palette );
+@@ -244,7 +257,10 @@ bool  PxMDecoder::readData( Mat& img )
+             }
+             else
+             {
+-                for( y = 0; y < m_height; y++, data += img.step )
++                AutoBuffer<uchar> _src(src_pitch);
++                uchar* src = _src;
++
++                for (int y = 0; y < m_height; y++, data += img.step)
+                 {
+                     m_strm.getBytes( src, src_pitch );
+ 
+@@ -260,13 +276,17 @@ bool  PxMDecoder::readData( Mat& img )
+         ////////////////////////// 8 BPP /////////////////////////
+         case 8:
+         case 24:
+-            for( y = 0; y < m_height; y++, data += img.step )
++        {
++            AutoBuffer<uchar> _src(std::max<size_t>(width3*2, src_pitch));
++            uchar* src = _src;
++
++            for (int y = 0; y < m_height; y++, data += img.step)
+             {
+                 if( !m_binary )
+                 {
+-                    for( x = 0; x < width3; x++ )
++                    for (int x = 0; x < width3; x++)
+                     {
+-                        int code = ReadNumber( m_strm, INT_MAX );
++                        int code = ReadNumber(m_strm);
+                         if( (unsigned)code > (unsigned)m_maxval ) code = m_maxval;
+                         if( bit_depth == 8 )
+                             src[x] = gray_palette[code];
+@@ -279,7 +299,7 @@ bool  PxMDecoder::readData( Mat& img )
+                     m_strm.getBytes( src, src_pitch );
+                     if( bit_depth == 16 && !isBigEndian() )
+                     {
+-                        for( x = 0; x < width3; x++ )
++                        for (int x = 0; x < width3; x++)
+                         {
+                             uchar v = src[x * 2];
+                             src[x * 2] = src[x * 2 + 1];
+@@ -290,7 +310,7 @@ bool  PxMDecoder::readData( Mat& img )
+ 
+                 if( img.depth() == CV_8U && bit_depth == 16 )
+                 {
+-                    for( x = 0; x < width3; x++ )
++                    for (int x = 0; x < width3; x++)
+                     {
+                         int v = ((ushort *)src)[x];
+                         src[x] = (uchar)(v >> 8);
+@@ -331,12 +351,19 @@ bool  PxMDecoder::readData( Mat& img )
+             }
+             result = true;
+             break;
++        }
+         default:
+-            assert(0);
++            CV_ErrorNoReturn(Error::StsError, "m_bpp is not supported");
+         }
+     }
+-    catch(...)
++    catch (const cv::Exception&)
++    {
++        throw;
++    }
++    catch (...)
+     {
++        std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush;
++        throw;
+     }
+ 
+     return result;
+@@ -412,8 +439,9 @@ bool  PxMEncoder::write( const Mat& img, const std::vector<int>& params )
+     char* buffer = _buffer;
+ 
+     // write header;
+-    sprintf( buffer, "P%c\n%d %d\n%d\n",
++    sprintf( buffer, "P%c\n# Generated by OpenCV %s\n%d %d\n%d\n",
+              '2' + (channels > 1 ? 1 : 0) + (isBinary ? 3 : 0),
++             CV_VERSION,
+              width, height, (1 << depth) - 1 );
+ 
+     strm.putBytes( buffer, (int)strlen(buffer) );
+diff --git a/modules/imgcodecs/src/loadsave.cpp b/modules/imgcodecs/src/loadsave.cpp
+index 3b2366217..5ee4ca354 100644
+--- a/modules/imgcodecs/src/loadsave.cpp
++++ b/modules/imgcodecs/src/loadsave.cpp
+@@ -55,6 +55,27 @@
+ /****************************************************************************************\
+ *                                      Image Codecs                                      *
+ \****************************************************************************************/
++
++namespace cv {
++
++// TODO Add runtime configuration
++#define CV_IO_MAX_IMAGE_PARAMS (50)
++#define CV_IO_MAX_IMAGE_WIDTH (1<<20)
++#define CV_IO_MAX_IMAGE_HEIGHT (1<<20)
++#define CV_IO_MAX_IMAGE_PIXELS (1<<30) // 1 Gigapixel
++
++static Size validateInputImageSize(const Size& size)
++{
++    CV_Assert(size.width > 0);
++    CV_Assert(size.width <= CV_IO_MAX_IMAGE_WIDTH);
++    CV_Assert(size.height > 0);
++    CV_Assert(size.height <= CV_IO_MAX_IMAGE_HEIGHT);
++    uint64 pixels = (uint64)size.width * (uint64)size.height;
++    CV_Assert(pixels <= CV_IO_MAX_IMAGE_PIXELS);
++    return size;
++}
++
++
+ namespace {
+ 
+ class ByteStreamBuffer: public std::streambuf
+@@ -94,9 +115,6 @@ protected:
+ 
+ }
+ 
+-namespace cv
+-{
+-
+ /**
+  * @struct ImageCodecInitializer
+  *
+@@ -408,14 +426,26 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
+     /// set the filename in the driver
+     decoder->setSource( filename );
+ 
+-   // read the header to make sure it succeeds
+-   if( !decoder->readHeader() )
++    try
++    {
++        // read the header to make sure it succeeds
++        if( !decoder->readHeader() )
++            return 0;
++    }
++    catch (const cv::Exception& e)
++    {
++        std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
+         return 0;
++    }
++    catch (...)
++    {
++        std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
++        return 0;
++    }
++
+ 
+     // established the required input image size
+-    CvSize size;
+-    size.width = decoder->width();
+-    size.height = decoder->height();
++    Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
+ 
+     // grab the decoded type
+     int type = decoder->type();
+@@ -451,7 +481,21 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
+     }
+ 
+     // read the image data
+-    if( !decoder->readData( *data ))
++    bool success = false;
++    try
++    {
++        if (decoder->readData(*data))
++            success = true;
++    }
++    catch (const cv::Exception& e)
++    {
++        std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
++    }
++    catch (...)
++    {
++        std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
++    }
++    if (!success)
+     {
+         cvReleaseImage( &image );
+         cvReleaseMat( &matrix );
+@@ -504,8 +548,22 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
+     decoder->setSource(filename);
+ 
+     // read the header to make sure it succeeds
+-    if (!decoder->readHeader())
++    try
++    {
++        // read the header to make sure it succeeds
++        if( !decoder->readHeader() )
++            return 0;
++    }
++    catch (const cv::Exception& e)
++    {
++        std::cerr << "imreadmulti_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
+         return 0;
++    }
++    catch (...)
++    {
++        std::cerr << "imreadmulti_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
++        return 0;
++    }
+ 
+     for (;;)
+     {
+@@ -523,17 +581,32 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
+                 type = CV_MAKETYPE(CV_MAT_DEPTH(type), 1);
+         }
+ 
++        // established the required input image size
++        Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
++
+         // read the image data
+-        Mat mat(decoder->height(), decoder->width(), type);
+-        if (!decoder->readData(mat))
++        Mat mat(size.height, size.width, type);
++        bool success = false;
++        try
+         {
+-            // optionally rotate the data if EXIF' orientation flag says so
+-            if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
+-            {
+-                ApplyExifOrientation(filename, mat);
+-            }
+-
++            if (decoder->readData(mat))
++                success = true;
++        }
++        catch (const cv::Exception& e)
++        {
++            std::cerr << "imreadmulti_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
++        }
++        catch (...)
++        {
++            std::cerr << "imreadmulti_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
++        }
++        if (!success)
+             break;
++
++        // optionally rotate the data if EXIF' orientation flag says so
++        if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
++        {
++            ApplyExifOrientation(filename, mat);
+         }
+ 
+         mats.push_back(mat);
+@@ -616,6 +689,7 @@ static bool imwrite_( const String& filename, const Mat& image,
+     }
+ 
+     encoder->setDestination( filename );
++    CV_Assert(params.size() <= CV_IO_MAX_IMAGE_PARAMS*2);
+     bool code = encoder->write( *pimage, params );
+ 
+     //    CV_Assert( code );
+@@ -663,22 +737,35 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
+         decoder->setSource(filename);
+     }
+ 
+-    if( !decoder->readHeader() )
++    bool success = false;
++    try
++    {
++        if (decoder->readHeader())
++            success = true;
++    }
++    catch (const cv::Exception& e)
++    {
++        std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
++    }
++    catch (...)
++    {
++        std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
++    }
++    if (!success)
+     {
+         decoder.release();
+-        if ( !filename.empty() )
++        if (!filename.empty())
+         {
+-            if ( remove(filename.c_str()) != 0 )
++            if (0 != remove(filename.c_str()))
+             {
+-                CV_Error( CV_StsError, "unable to remove temporary file" );
++                std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
+             }
+         }
+         return 0;
+     }
+ 
+-    CvSize size;
+-    size.width = decoder->width();
+-    size.height = decoder->height();
++    // established the required input image size
++    Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
+ 
+     int type = decoder->type();
+     if( (flags & IMREAD_LOAD_GDAL) != IMREAD_LOAD_GDAL && flags != IMREAD_UNCHANGED )
+@@ -712,17 +799,30 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
+         temp = cvarrToMat(image);
+     }
+ 
+-    bool code = decoder->readData( *data );
++    success = false;
++    try
++    {
++        if (decoder->readData(*data))
++            success = true;
++    }
++    catch (const cv::Exception& e)
++    {
++        std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
++    }
++    catch (...)
++    {
++        std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
++    }
+     decoder.release();
+-    if ( !filename.empty() )
++    if (!filename.empty())
+     {
+-        if ( remove(filename.c_str()) != 0 )
++        if (0 != remove(filename.c_str()))
+         {
+-            CV_Error( CV_StsError, "unable to remove temporary file" );
++            std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
+         }
+     }
+ 
+-    if( !code )
++    if (!success)
+     {
+         cvReleaseImage( &image );
+         cvReleaseMat( &matrix );
+@@ -859,7 +959,7 @@ cvSaveImage( const char* filename, const CvArr* arr, const int* _params )
+     if( _params )
+     {
+         for( ; _params[i] > 0; i += 2 )
+-            ;
++            CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
+     }
+     return cv::imwrite_(filename, cv::cvarrToMat(arr),
+         i > 0 ? std::vector<int>(_params, _params+i) : std::vector<int>(),
+@@ -890,7 +990,7 @@ cvEncodeImage( const char* ext, const CvArr* arr, const int* _params )
+     if( _params )
+     {
+         for( ; _params[i] > 0; i += 2 )
+-            ;
++            CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
+     }
+     cv::Mat img = cv::cvarrToMat(arr);
+     if( CV_IS_IMAGE(arr) && ((const IplImage*)arr)->origin == IPL_ORIGIN_BL )
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
new file mode 100644
index 0000000..a22b04a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
@@ -0,0 +1,80 @@
+From ace48a628dca34d742615598afeef42ed323a029 Mon Sep 17 00:00:00 2001
+From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
+Date: Fri, 19 May 2017 04:27:50 +0900
+Subject: [PATCH 3/3] To fix errors as following:
+
+"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'"
+"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'"
+"test_superres.cpp:270: undefined reference to `checkIppStatus()'"
+
+Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
+
+Also add the visibility changes for certain OpenCL-related functions in
+ts module.
+
+Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
+---
+ modules/ts/include/opencv2/ts.hpp          | 6 +++---
+ modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +-
+ modules/ts/include/opencv2/ts/ts_ext.hpp   | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp
+index 41a76b13e..205646140 100644
+--- a/modules/ts/include/opencv2/ts.hpp
++++ b/modules/ts/include/opencv2/ts.hpp
+@@ -555,7 +555,7 @@ protected:
+     }
+ };
+ 
+-extern uint64 param_seed;
++CV_EXPORTS extern uint64 param_seed;
+ 
+ struct CV_EXPORTS DefaultRngAuto
+ {
+@@ -611,14 +611,14 @@ CV_EXPORTS std::string findDataFile(const std::string& relative_path, bool requi
+ 
+ #ifdef HAVE_OPENCL
+ namespace ocl {
+-void dumpOpenCLDevice();
++CV_EXPORTS void dumpOpenCLDevice();
+ }
+ #define TEST_DUMP_OCL_INFO cvtest::ocl::dumpOpenCLDevice();
+ #else
+ #define TEST_DUMP_OCL_INFO
+ #endif
+ 
+-void parseCustomOptions(int argc, char **argv);
++CV_EXPORTS void parseCustomOptions(int argc, char **argv);
+ 
+ #define CV_TEST_INIT0_NOOP (void)0
+ 
+diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp
+index 54b33ece8..ef56bf9ef 100644
+--- a/modules/ts/include/opencv2/ts/ocl_test.hpp
++++ b/modules/ts/include/opencv2/ts/ocl_test.hpp
+@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src)
+     return dst;
+ }
+ 
+-extern int test_loop_times;
++CV_EXPORTS extern int test_loop_times;
+ 
+ #define MAX_VALUE 357
+ 
+diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp
+index 0bdd346dd..2cd34dfce 100644
+--- a/modules/ts/include/opencv2/ts/ts_ext.hpp
++++ b/modules/ts/include/opencv2/ts/ts_ext.hpp
+@@ -9,7 +9,7 @@
+ #define OPENCV_TS_EXT_HPP
+ 
+ namespace cvtest {
+-void checkIppStatus();
++CV_EXPORTS void checkIppStatus();
+ }
+ 
+ #define CV_TEST_INIT \
+-- 
+2.13.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
new file mode 100644
index 0000000..5f4a60c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
@@ -0,0 +1,186 @@
+Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/78a310630fb0a1f6d089576202343e672f27609d]
+
+Fix CVEs for opencv 3.3.
+
+* CVE-2017-12597
+* CVE-2017-12598
+* CVE-2017-12599
+* CVE-2017-12600
+* CVE-2017-12601
+* CVE-2017-12602
+* CVE-2017-12603
+* CVE-2017-12604
+* CVE-2017-12605
+* CVE-2017-12606
+* CVE-2017-12862
+* CVE-2017-12863
+* CVE-2017-12864
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From 78a310630fb0a1f6d089576202343e672f27609d Mon Sep 17 00:00:00 2001
+From: Alexander Alekhin <alexander.alekhin@intel.com>
+Date: Wed, 16 Aug 2017 13:53:12 +0300
+Subject: [PATCH 3/3] imgproc(test): add checks for remove() call
+
+---
+ modules/imgcodecs/test/test_grfmt.cpp      |  2 +-
+ modules/imgcodecs/test/test_jpeg.cpp       | 12 ++++++------
+ modules/imgcodecs/test/test_png.cpp        |  2 +-
+ modules/imgcodecs/test/test_read_write.cpp |  4 ++--
+ modules/imgcodecs/test/test_tiff.cpp       |  8 ++++----
+ modules/imgcodecs/test/test_webp.cpp       |  6 +++---
+ 6 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/modules/imgcodecs/test/test_grfmt.cpp b/modules/imgcodecs/test/test_grfmt.cpp
+index 64a0c1e3a..74b72c3b3 100644
+--- a/modules/imgcodecs/test/test_grfmt.cpp
++++ b/modules/imgcodecs/test/test_grfmt.cpp
+@@ -175,7 +175,7 @@ TEST_P(Imgcodecs_ExtSize, write_imageseq)
+             EXPECT_LT(n, 1.);
+             EXPECT_PRED_FORMAT2(cvtest::MatComparator(0, 0), img, img_gt);
+         }
+-        remove(filename.c_str());
++        EXPECT_EQ(0, remove(filename.c_str()));
+     }
+ }
+ 
+diff --git a/modules/imgcodecs/test/test_jpeg.cpp b/modules/imgcodecs/test/test_jpeg.cpp
+index 5546f2d91..6ddb02840 100644
+--- a/modules/imgcodecs/test/test_jpeg.cpp
++++ b/modules/imgcodecs/test/test_jpeg.cpp
+@@ -123,8 +123,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_progressive_jpeg)
+ 
+     EXPECT_EQ(0, cvtest::norm(img_jpg_progressive, img_jpg_normal, NORM_INF));
+ 
+-    remove(output_progressive.c_str());
+-    remove(output_normal.c_str());
++    EXPECT_EQ(0, remove(output_progressive.c_str()));
++    EXPECT_EQ(0, remove(output_normal.c_str()));
+ }
+ 
+ TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
+@@ -148,8 +148,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
+ 
+     EXPECT_EQ(0, cvtest::norm(img_jpg_optimized, img_jpg_normal, NORM_INF));
+ 
+-    remove(output_optimized.c_str());
+-    remove(output_normal.c_str());
++    EXPECT_EQ(0, remove(output_optimized.c_str()));
++    EXPECT_EQ(0, remove(output_normal.c_str()));
+ }
+ 
+ TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
+@@ -173,8 +173,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
+ 
+     EXPECT_EQ(0, cvtest::norm(img_jpg_rst, img_jpg_normal, NORM_INF));
+ 
+-    remove(output_rst.c_str());
+-    remove(output_normal.c_str());
++    EXPECT_EQ(0, remove(output_rst.c_str()));
++    EXPECT_EQ(0, remove(output_normal.c_str()));
+ }
+ 
+ #endif // HAVE_JPEG
+diff --git a/modules/imgcodecs/test/test_png.cpp b/modules/imgcodecs/test/test_png.cpp
+index c46f90119..4e97043e1 100644
+--- a/modules/imgcodecs/test/test_png.cpp
++++ b/modules/imgcodecs/test/test_png.cpp
+@@ -17,7 +17,7 @@ TEST(Imgcodecs_Png, write_big)
+     EXPECT_EQ(13043, img.cols);
+     EXPECT_EQ(13917, img.rows);
+     ASSERT_NO_THROW(imwrite(dst_file, img));
+-    remove(dst_file.c_str());
++    EXPECT_EQ(0, remove(dst_file.c_str()));
+ }
+ 
+ TEST(Imgcodecs_Png, encode)
+diff --git a/modules/imgcodecs/test/test_read_write.cpp b/modules/imgcodecs/test/test_read_write.cpp
+index 38f10225f..5119813bf 100644
+--- a/modules/imgcodecs/test/test_read_write.cpp
++++ b/modules/imgcodecs/test/test_read_write.cpp
+@@ -50,7 +50,7 @@ TEST(Imgcodecs_Image, read_write_bmp)
+         psnr = cvtest::PSNR(buf_loaded, image);
+         EXPECT_GT(psnr, thresDbell);
+ 
+-        remove(dst_name.c_str());
++        EXPECT_EQ(0, remove(dst_name.c_str()));
+     }
+ }
+ 
+@@ -95,7 +95,7 @@ TEST_P(Imgcodecs_Image, read_write)
+     psnr = cvtest::PSNR(buf_loaded, image);
+     EXPECT_GT(psnr, thresDbell);
+ 
+-    remove(full_name.c_str());
++    EXPECT_EQ(0, remove(full_name.c_str()));
+ }
+ 
+ const string exts[] = {
+diff --git a/modules/imgcodecs/test/test_tiff.cpp b/modules/imgcodecs/test/test_tiff.cpp
+index 0264da4cd..6ef0c1748 100644
+--- a/modules/imgcodecs/test/test_tiff.cpp
++++ b/modules/imgcodecs/test/test_tiff.cpp
+@@ -41,8 +41,8 @@ TEST(Imgcodecs_Tiff, decode_tile16384x16384)
+         // not enough memory
+     }
+ 
+-    remove(file3.c_str());
+-    remove(file4.c_str());
++    EXPECT_EQ(0, remove(file3.c_str()));
++    EXPECT_EQ(0, remove(file4.c_str()));
+ }
+ 
+ TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
+@@ -88,7 +88,7 @@ TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
+         EXPECT_EQ(0xDEAD, img.at<ushort>(0,0));
+         EXPECT_EQ(0xBEEF, img.at<ushort>(0,1));
+ 
+-        remove(filename.c_str());
++        EXPECT_EQ(0, remove(filename.c_str()));
+     }
+ }
+ 
+@@ -143,7 +143,7 @@ TEST(Imgcodecs_Tiff, decode_infinite_rowsperstrip)
+ 
+     EXPECT_NO_THROW(cv::imread(filename, IMREAD_UNCHANGED));
+ 
+-    remove(filename.c_str());
++    EXPECT_EQ(0, remove(filename.c_str()));
+ }
+ 
+ //==================================================================================================
+diff --git a/modules/imgcodecs/test/test_webp.cpp b/modules/imgcodecs/test/test_webp.cpp
+index 6d40ce21e..d82fdd289 100644
+--- a/modules/imgcodecs/test/test_webp.cpp
++++ b/modules/imgcodecs/test/test_webp.cpp
+@@ -44,7 +44,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossless_webp)
+         }
+     }
+ 
+-    remove(output.c_str());
++    EXPECT_EQ(0, remove(output.c_str()));
+ 
+     cv::Mat decode = cv::imdecode(buf, IMREAD_COLOR);
+     ASSERT_FALSE(decode.empty());
+@@ -71,7 +71,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossy_webp)
+ 
+         EXPECT_NO_THROW(cv::imwrite(output, img, params));
+         cv::Mat img_webp = cv::imread(output);
+-        remove(output.c_str());
++        EXPECT_EQ(0, remove(output.c_str()));
+         EXPECT_FALSE(img_webp.empty());
+         EXPECT_EQ(3,   img_webp.channels());
+         EXPECT_EQ(512, img_webp.cols);
+@@ -96,7 +96,7 @@ TEST(Imgcodecs_WebP, encode_decode_with_alpha_webp)
+ 
+     EXPECT_NO_THROW(cv::imwrite(output, img));
+     cv::Mat img_webp = cv::imread(output);
+-    remove(output.c_str());
++    EXPECT_EQ(0, remove(output.c_str()));
+     EXPECT_FALSE(img_webp.empty());
+     EXPECT_EQ(4,   img_webp.channels());
+     EXPECT_EQ(512, img_webp.cols);
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
new file mode 100644
index 0000000..7ad50a2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
@@ -0,0 +1,288 @@
+Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9448/commits/aacae20]
+
+Backport patch to fix CVE-2017-14136.
+
+Ref: https://github.com/opencv/opencv/issues/9443
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From aacae2065744adb05e858d327198c7bbe7f452b0 Mon Sep 17 00:00:00 2001
+From: Alexander Alekhin <alexander.alekhin@intel.com>
+Date: Wed, 23 Aug 2017 15:15:27 +0300
+Subject: [PATCH] imgcodesc: fix code problems with integer overflow / address
+ arithmetic / UB
+
+---
+ modules/imgcodecs/src/grfmt_bmp.cpp      |  8 ++---
+ modules/imgcodecs/src/grfmt_exr.cpp      | 10 +++----
+ modules/imgcodecs/src/grfmt_jpeg.cpp     |  2 +-
+ modules/imgcodecs/src/grfmt_jpeg2000.cpp |  6 ++--
+ modules/imgcodecs/src/grfmt_pam.cpp      |  2 +-
+ modules/imgcodecs/src/grfmt_sunras.cpp   |  6 ++--
+ modules/imgcodecs/src/utils.cpp          | 51 +++++++++++++++++++-------------
+ modules/imgcodecs/src/utils.hpp          |  2 ++
+ 8 files changed, 50 insertions(+), 37 deletions(-)
+
+diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
+index 257f97c2d8b..69768e276a3 100644
+--- a/modules/imgcodecs/src/grfmt_bmp.cpp
++++ b/modules/imgcodecs/src/grfmt_bmp.cpp
+@@ -193,7 +193,7 @@ bool  BmpDecoder::readHeader()
+ bool  BmpDecoder::readData( Mat& img )
+ {
+     uchar* data = img.ptr();
+-    int step = (int)img.step;
++    int step = validateToInt(img.step);
+     bool color = img.channels() > 1;
+     uchar  gray_palette[256] = {0};
+     bool   result = false;
+@@ -206,7 +206,7 @@ bool  BmpDecoder::readData( Mat& img )
+ 
+     if( m_origin == IPL_ORIGIN_BL )
+     {
+-        data += (m_height - 1)*step;
++        data += (m_height - 1)*(size_t)step;
+         step = -step;
+     }
+ 
+@@ -530,7 +530,7 @@ bool  BmpEncoder::write( const Mat& img, const std::vector<int>& )
+     int  bitmapHeaderSize = 40;
+     int  paletteSize = channels > 1 ? 0 : 1024;
+     int  headerSize = 14 /* fileheader */ + bitmapHeaderSize + paletteSize;
+-    int  fileSize = fileStep*height + headerSize;
++    size_t fileSize = (size_t)fileStep*height + headerSize;
+     PaletteEntry palette[256];
+ 
+     if( m_buf )
+@@ -540,7 +540,7 @@ bool  BmpEncoder::write( const Mat& img, const std::vector<int>& )
+     strm.putBytes( fmtSignBmp, (int)strlen(fmtSignBmp) );
+ 
+     // write file header
+-    strm.putDWord( fileSize ); // file size
++    strm.putDWord( validateToInt(fileSize) ); // file size
+     strm.putDWord( 0 );
+     strm.putDWord( headerSize );
+ 
+diff --git a/modules/imgcodecs/src/grfmt_exr.cpp b/modules/imgcodecs/src/grfmt_exr.cpp
+index 0d2ae9fa7d2..78ffe6c7668 100644
+--- a/modules/imgcodecs/src/grfmt_exr.cpp
++++ b/modules/imgcodecs/src/grfmt_exr.cpp
+@@ -195,7 +195,7 @@ bool  ExrDecoder::readData( Mat& img )
+     bool color = img.channels() > 1;
+ 
+     uchar* data = img.ptr();
+-    int step = img.step;
++    size_t step = img.step;
+     bool justcopy = m_native_depth;
+     bool chromatorgb = false;
+     bool rgbtogray = false;
+@@ -203,8 +203,8 @@ bool  ExrDecoder::readData( Mat& img )
+     FrameBuffer frame;
+     int xsample[3] = {1, 1, 1};
+     char *buffer;
+-    int xstep;
+-    int ystep;
++    size_t xstep = 0;
++    size_t ystep = 0;
+ 
+     xstep = m_native_depth ? 4 : 1;
+ 
+@@ -593,7 +593,7 @@ bool  ExrEncoder::write( const Mat& img, const std::vector<int>& )
+     bool issigned = depth == CV_8S || depth == CV_16S || depth == CV_32S;
+     bool isfloat = depth == CV_32F || depth == CV_64F;
+     depth = CV_ELEM_SIZE1(depth)*8;
+-    const int step = img.step;
++    const size_t step = img.step;
+ 
+     Header header( width, height );
+     Imf::PixelType type;
+@@ -623,7 +623,7 @@ bool  ExrEncoder::write( const Mat& img, const std::vector<int>& )
+     FrameBuffer frame;
+ 
+     char *buffer;
+-    int bufferstep;
++    size_t bufferstep;
+     int size;
+     if( type == FLOAT && depth == 32 )
+     {
+diff --git a/modules/imgcodecs/src/grfmt_jpeg.cpp b/modules/imgcodecs/src/grfmt_jpeg.cpp
+index ce942ca1995..caf768d2569 100644
+--- a/modules/imgcodecs/src/grfmt_jpeg.cpp
++++ b/modules/imgcodecs/src/grfmt_jpeg.cpp
+@@ -396,7 +396,7 @@ int my_jpeg_load_dht (struct jpeg_decompress_struct *info, unsigned char *dht,
+ bool  JpegDecoder::readData( Mat& img )
+ {
+     volatile bool result = false;
+-    int step = (int)img.step;
++    size_t step = img.step;
+     bool color = img.channels() > 1;
+ 
+     if( m_state && m_width && m_height )
+diff --git a/modules/imgcodecs/src/grfmt_jpeg2000.cpp b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
+index 950ec21375f..24dfb38bb9d 100644
+--- a/modules/imgcodecs/src/grfmt_jpeg2000.cpp
++++ b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
+@@ -156,7 +156,7 @@ bool  Jpeg2KDecoder::readData( Mat& img )
+     bool result = false;
+     int color = img.channels() > 1;
+     uchar* data = img.ptr();
+-    int step = (int)img.step;
++    size_t step = img.step;
+     jas_stream_t* stream = (jas_stream_t*)m_stream;
+     jas_image_t* image = (jas_image_t*)m_image;
+ 
+@@ -252,9 +252,9 @@ bool  Jpeg2KDecoder::readData( Mat& img )
+                         if( !jas_image_readcmpt( image, cmptlut[i], 0, 0, xend / xstep, yend / ystep, buffer ))
+                         {
+                             if( img.depth() == CV_8U )
+-                                result = readComponent8u( data + i, buffer, step, cmptlut[i], maxval, offset, ncmpts );
++                                result = readComponent8u( data + i, buffer, validateToInt(step), cmptlut[i], maxval, offset, ncmpts );
+                             else
+-                                result = readComponent16u( ((unsigned short *)data) + i, buffer, step / 2, cmptlut[i], maxval, offset, ncmpts );
++                                result = readComponent16u( ((unsigned short *)data) + i, buffer, validateToInt(step / 2), cmptlut[i], maxval, offset, ncmpts );
+                             if( !result )
+                             {
+                                 i = ncmpts;
+diff --git a/modules/imgcodecs/src/grfmt_pam.cpp b/modules/imgcodecs/src/grfmt_pam.cpp
+index 11195dc342c..8eb9e012309 100644
+--- a/modules/imgcodecs/src/grfmt_pam.cpp
++++ b/modules/imgcodecs/src/grfmt_pam.cpp
+@@ -479,7 +479,7 @@ bool  PAMDecoder::readData( Mat& img )
+ {
+     uchar* data = img.ptr();
+     int target_channels = img.channels();
+-    int imp_stride = (int)img.step;
++    size_t imp_stride = img.step;
+     int sample_depth = CV_ELEM_SIZE1(m_type);
+     int src_elems_per_row = m_width*m_channels;
+     int src_stride = src_elems_per_row*sample_depth;
+diff --git a/modules/imgcodecs/src/grfmt_sunras.cpp b/modules/imgcodecs/src/grfmt_sunras.cpp
+index aca9b369318..6d448f94ed3 100644
+--- a/modules/imgcodecs/src/grfmt_sunras.cpp
++++ b/modules/imgcodecs/src/grfmt_sunras.cpp
+@@ -160,7 +160,7 @@ bool  SunRasterDecoder::readData( Mat& img )
+ {
+     int color = img.channels() > 1;
+     uchar* data = img.ptr();
+-    int step = (int)img.step;
++    size_t step = img.step;
+     uchar  gray_palette[256] = {0};
+     bool   result = false;
+     int  src_pitch = ((m_width*m_bpp + 7)/8 + 1) & -2;
+@@ -308,11 +308,11 @@ bool  SunRasterDecoder::readData( Mat& img )
+                         code = m_strm.getByte();
+ 
+                         if( color )
+-                            data = FillUniColor( data, line_end, step, width3,
++                            data = FillUniColor( data, line_end, validateToInt(step), width3,
+                                                  y, m_height, len,
+                                                  m_palette[code] );
+                         else
+-                            data = FillUniGray( data, line_end, step, width3,
++                            data = FillUniGray( data, line_end, validateToInt(step), width3,
+                                                 y, m_height, len,
+                                                 gray_palette[code] );
+                         if( y >= m_height )
+diff --git a/modules/imgcodecs/src/utils.cpp b/modules/imgcodecs/src/utils.cpp
+index 2ee5bafc712..474dae008ca 100644
+--- a/modules/imgcodecs/src/utils.cpp
++++ b/modules/imgcodecs/src/utils.cpp
+@@ -42,6 +42,13 @@
+ #include "precomp.hpp"
+ #include "utils.hpp"
+ 
++int validateToInt(size_t sz)
++{
++    int valueInt = (int)sz;
++    CV_Assert((size_t)valueInt == sz);
++    return valueInt;
++}
++
+ #define  SCALE  14
+ #define  cR  (int)(0.299*(1 << SCALE) + 0.5)
+ #define  cG  (int)(0.587*(1 << SCALE) + 0.5)
+@@ -537,23 +544,25 @@ uchar* FillColorRow1( uchar* data, uchar* indices, int len, PaletteEntry* palett
+ {
+     uchar* end = data + len*3;
+ 
++    const PaletteEntry p0 = palette[0], p1 = palette[1];
++
+     while( (data += 24) < end )
+     {
+         int idx = *indices++;
+-        *((PaletteEntry*)(data - 24)) = palette[(idx & 128) != 0];
+-        *((PaletteEntry*)(data - 21)) = palette[(idx & 64) != 0];
+-        *((PaletteEntry*)(data - 18)) = palette[(idx & 32) != 0];
+-        *((PaletteEntry*)(data - 15)) = palette[(idx & 16) != 0];
+-        *((PaletteEntry*)(data - 12)) = palette[(idx & 8) != 0];
+-        *((PaletteEntry*)(data - 9)) = palette[(idx & 4) != 0];
+-        *((PaletteEntry*)(data - 6)) = palette[(idx & 2) != 0];
+-        *((PaletteEntry*)(data - 3)) = palette[(idx & 1) != 0];
++        *((PaletteEntry*)(data - 24)) = (idx & 128) ? p1 : p0;
++        *((PaletteEntry*)(data - 21)) = (idx & 64) ? p1 : p0;
++        *((PaletteEntry*)(data - 18)) = (idx & 32) ? p1 : p0;
++        *((PaletteEntry*)(data - 15)) = (idx & 16) ? p1 : p0;
++        *((PaletteEntry*)(data - 12)) = (idx & 8) ? p1 : p0;
++        *((PaletteEntry*)(data - 9)) = (idx & 4) ? p1 : p0;
++        *((PaletteEntry*)(data - 6)) = (idx & 2) ? p1 : p0;
++        *((PaletteEntry*)(data - 3)) = (idx & 1) ? p1 : p0;
+     }
+ 
+-    int idx = indices[0] << 24;
++    int idx = indices[0];
+     for( data -= 24; data < end; data += 3, idx += idx )
+     {
+-        PaletteEntry clr = palette[idx < 0];
++        const PaletteEntry clr = (idx & 128) ? p1 : p0;
+         WRITE_PIX( data, clr );
+     }
+ 
+@@ -565,23 +574,25 @@ uchar* FillGrayRow1( uchar* data, uchar* indices, int len, uchar* palette )
+ {
+     uchar* end = data + len;
+ 
++    const uchar p0 = palette[0], p1 = palette[1];
++
+     while( (data += 8) < end )
+     {
+         int idx = *indices++;
+-        *((uchar*)(data - 8)) = palette[(idx & 128) != 0];
+-        *((uchar*)(data - 7)) = palette[(idx & 64) != 0];
+-        *((uchar*)(data - 6)) = palette[(idx & 32) != 0];
+-        *((uchar*)(data - 5)) = palette[(idx & 16) != 0];
+-        *((uchar*)(data - 4)) = palette[(idx & 8) != 0];
+-        *((uchar*)(data - 3)) = palette[(idx & 4) != 0];
+-        *((uchar*)(data - 2)) = palette[(idx & 2) != 0];
+-        *((uchar*)(data - 1)) = palette[(idx & 1) != 0];
++        *((uchar*)(data - 8)) = (idx & 128) ? p1 : p0;
++        *((uchar*)(data - 7)) = (idx & 64) ? p1 : p0;
++        *((uchar*)(data - 6)) = (idx & 32) ? p1 : p0;
++        *((uchar*)(data - 5)) = (idx & 16) ? p1 : p0;
++        *((uchar*)(data - 4)) = (idx & 8) ? p1 : p0;
++        *((uchar*)(data - 3)) = (idx & 4) ? p1 : p0;
++        *((uchar*)(data - 2)) = (idx & 2) ? p1 : p0;
++        *((uchar*)(data - 1)) = (idx & 1) ? p1 : p0;
+     }
+ 
+-    int idx = indices[0] << 24;
++    int idx = indices[0];
+     for( data -= 8; data < end; data++, idx += idx )
+     {
+-        data[0] = palette[idx < 0];
++        data[0] = (idx & 128) ? p1 : p0;
+     }
+ 
+     return data;
+diff --git a/modules/imgcodecs/src/utils.hpp b/modules/imgcodecs/src/utils.hpp
+index cab10609db2..7af4c6174ee 100644
+--- a/modules/imgcodecs/src/utils.hpp
++++ b/modules/imgcodecs/src/utils.hpp
+@@ -42,6 +42,8 @@
+ #ifndef _UTILS_H_
+ #define _UTILS_H_
+ 
++int validateToInt(size_t step);
++
+ struct PaletteEntry
+ {
+     unsigned char b, g, r, a;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
index a2db48d..fc273a8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
@@ -1,12 +1,20 @@
 diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt
-index f295bddaed66..6086e75ec37b 100644
+index e1755595..c7009c47 100644
 --- a/modules/xfeatures2d/CMakeLists.txt
 +++ b/modules/xfeatures2d/CMakeLists.txt
-@@ -1,5 +1,5 @@
- set(the_description "Contributed/Experimental Algorithms for Salient 2D Features Detection")
- ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d opencv_shape opencv_highgui opencv_videoio opencv_ml
-                   OPTIONAL opencv_cudaarithm WRAP python java)
--include(cmake/download_vgg.cmake)
--include(cmake/download_boostdesc.cmake)
-+#include(cmake/download_vgg.cmake)
-+#include(cmake/download_boostdesc.cmake)
+@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake)
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake)
+ set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d")
+-download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
+-download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
+-if(NOT boost_status OR NOT vgg_status)
+-  ocv_module_disable(xfeatures2d)
+-endif()
++#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
++#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
++#if(NOT boost_status OR NOT vgg_status)
++#  ocv_module_disable(xfeatures2d)
++#endif()
+ 
+ ocv_module_include_directories("${DOWNLOAD_DIR}")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/useoeprotobuf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/useoeprotobuf.patch
deleted file mode 100644
index 3068bd4..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/useoeprotobuf.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
-index eb2a729cc2eb..8717736484de 100644
---- a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
-+++ b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
-@@ -24,7 +24,7 @@ if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF
-   find_package(Protobuf QUIET)
- endif()
- 
--if(PROTOBUF_FOUND)
-+if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
-   # nothing
- else()
-   include(${CMAKE_CURRENT_LIST_DIR}/download_protobuf.cmake)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb
deleted file mode 100644
index d17c640..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb
+++ /dev/null
@@ -1,106 +0,0 @@
-SUMMARY = "Opencv : The Open Computer Vision Library"
-HOMEPAGE = "http://opencv.org/"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14"
-
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-DEPENDS = "python-numpy libtool swig swig-native python bzip2 zlib glib-2.0"
-
-SRCREV = "2c9547e3147779001811d01936aed38f560929fc"
-SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
-  file://0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch"
-
-PV = "2.4.11+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-# Do an out-of-tree build
-OECMAKE_SOURCEPATH = "${S}"
-OECMAKE_BUILDPATH = "${WORKDIR}/build-${TARGET_ARCH}"
-
-EXTRA_OECMAKE = "-DPYTHON_NUMPY_INCLUDE_DIR:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include \
-                 -DBUILD_PYTHON_SUPPORT=ON \
-                 -DWITH_GSTREAMER=OFF \
-                 -DWITH_1394=OFF \
-                 -DCMAKE_SKIP_RPATH=ON \
-                 ${@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)} \
-"
-
-PACKAGECONFIG ??= "eigen jpeg png tiff v4l libv4l \
-                   ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
-                   ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
-
-PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen,"
-PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+,"
-PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
-PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
-PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
-PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
-PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
-
-inherit distutils-base pkgconfig cmake
-
-export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
-export PYTHON="${STAGING_BINDIR_NATIVE}/python"
-
-TARGET_CC_ARCH += "-I${S}/include "
-
-PACKAGES += "${PN}-apps python-opencv"
-
-python populate_packages_prepend () {
-    cv_libdir = d.expand('${libdir}')
-    cv_libdir_dbg = d.expand('${libdir}/.debug')
-    do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
-    do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
-    do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
-    do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
-
-    pn = d.getVar('PN')
-    metapkg =  pn + '-dev'
-    d.setVar('ALLOW_EMPTY_' + metapkg, "1")
-    blacklist = [ metapkg ]
-    metapkg_rdepends = [ ]
-    packages = d.getVar('PACKAGES').split()
-    for pkg in packages[1:]:
-        if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
-            metapkg_rdepends.append(pkg)
-    d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
-}
-
-PACKAGES_DYNAMIC += "^libopencv-.*"
-
-FILES_${PN} = ""
-FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
-FILES_${PN}-dbg += "${libdir}/.debug"
-FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
-FILES_${PN}-doc = "${datadir}/OpenCV/doc"
-
-ALLOW_EMPTY_${PN} = "1"
-
-SUMMARY_python-opencv = "Python bindings to opencv"
-FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-opencv = "python-core python-numpy"
-
-do_install_append() {
-    cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
-    sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
-
-    # Move Python files into correct library folder (for multilib build)
-    if [ "$libdir" != "/usr/lib" ]; then
-        mv ${D}/usr/lib/* ${D}/${libdir}/
-        rm -rf ${D}/usr/lib
-    fi
-}
-
-# http://errors.yoctoproject.org/Errors/Details/40660/
-PNBLACKLIST[opencv] ?= "Not compatible with currently used ffmpeg 3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
index 535c761..dd9e4ca 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
@@ -10,38 +10,58 @@
 
 DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
 
-SRCREV_opencv = "70bbf17b133496bd7d54d034b0f94bd869e0e810"
-SRCREV_contrib = "86342522b0eb2b16fa851c020cc4e0fef4e010b7"
-SRCREV_ipp = "81a676001ca8075ada498583e4166079e5744668"
-SRCREV_bootdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
+SRCREV_opencv = "87c27a074db9f6d9d60513f351daa903606ca370"
+SRCREV_contrib = "2a9d1b22ed76eb22fad1a5edf6faf4d05f207b13"
+SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db"
+SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
 SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
-IPP_MD5 = "808b791a6eac9ed78d32a7666804320e"
 
-SRCREV_FORMAT = "opencv"
+def ipp_filename(d):
+    import re
+    arch = d.getVar('TARGET_ARCH', True)
+    if re.match("i.86$", arch):
+        return "ippicv_2017u2_lnx_ia32_20170418.tgz"
+    else:
+        return "ippicv_2017u2_lnx_intel64_20170418.tgz"
+
+def ipp_md5sum(d):
+    import re
+    arch = d.getVar('TARGET_ARCH', True)
+    if re.match("i.86$", arch):
+        return "f2cece00d802d4dea86df52ed095257e"
+    else:
+        return "808b791a6eac9ed78d32a7666804320e"
+
+IPP_FILENAME = "${@ipp_filename(d)}"
+IPP_MD5 = "${@ipp_md5sum(d)}"
+
+SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
 SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
     git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
-    git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20151201;destsuffix=ipp;name=ipp \
-    git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=bootdesc;name=bootdesc \
+    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 \
     file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
     file://fixpkgconfig.patch \
     file://uselocalxfeatures.patch;patchdir=../contrib/ \
-    file://useoeprotobuf.patch;patchdir=../contrib/ \
-    file://0001-Revert-cuda-fix-fp16-compilation.patch \
-    file://0002-Revert-check-FP16-build-condition-correctly.patch \
-    file://0001-Make-opencv-ts-create-share-library-intead-of-static.patch \
-    file://0001-To-fix-errors-as-following.patch \
-    file://0001-tracking-make-opencv_dnn-dependancy-optional.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 \
+    file://0002-imgcodecs-refactoring-improve-code-quality.patch \
+    file://0003-imgproc-test-add-checks-for-remove-call.patch \
+    file://0001-Dont-use-isystem.patch \
+    file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \
+    file://0002-Do-not-enable-asm-with-clang.patch \
+    file://CVE-2017-14136.patch \
 "
-
-PV = "3.2+git${SRCPV}"
+PV = "3.3+git${SRCPV}"
 
 S = "${WORKDIR}/git"
 
 do_unpack_extra() {
-    tar xzf ${WORKDIR}/ipp/ippicv/ippicv_linux_20151201.tgz -C ${WORKDIR}
+    tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
     cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
-    cp ${WORKDIR}/bootdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
+    cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
 }
 addtask unpack_extra after do_unpack before do_patch
 
@@ -64,7 +84,7 @@
 
 PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
 PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
-PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DUPDATE_PROTO_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
+PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
 PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
 PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
 PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
@@ -126,13 +146,12 @@
 
     metapkg =  pn
     d.setVar('ALLOW_EMPTY_' + metapkg, "1")
-    blacklist = [ metapkg ]
+    blacklist = [ metapkg, "libopencv-ts" ]
     metapkg_rdepends = [ ]
     for pkg in packages[1:]:
         if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
             metapkg_rdepends.append(pkg)
     d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
-
 }
 
 PACKAGES_DYNAMIC += "^libopencv-.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
deleted file mode 100644
index d4e02be..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Do not install pyc and pyo for python module
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- swig/python/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/swig/python/Makefile.am b/swig/python/Makefile.am
-index da95a81..97a62bf 100644
---- a/swig/python/Makefile.am
-+++ b/swig/python/Makefile.am
-@@ -33,8 +33,6 @@ CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc
- install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo
- 	$(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR)
- 	$(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
--	$(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
--	$(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
- 	if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \
- 	    $(INSTALL) -d $(DESTDIR)$(bindir); \
- 	    $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
deleted file mode 100644
index 9a568b2..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date:   Thu Jun 7 16:00:13 2012 -0400
-
-    This patch fixes the error during the install stage when
-    creating a symbolic link for opeipmish in openipmi/cmdlang
-    
-    Upstream-Status: Pending
-    
-    Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-
-diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
-index 92d6e83..f6039f9 100644
---- a/cmdlang/Makefile.am
-+++ b/cmdlang/Makefile.am
-@@ -36,6 +36,7 @@ CLEANFILES = libOpenIPMIcmdlang.map
- # compatability.
- install-data-local:
- 	rm -f $(DESTDIR)$(bindir)/ipmish
-+	mkdir -p $(DESTDIR)$(bindir)/
- 	$(LN_S) openipmish $(DESTDIR)$(bindir)/ipmish
- 
- uninstall-local:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/include_sys_types.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/include_sys_types.patch
deleted file mode 100644
index 58ec5d8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/include_sys_types.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-include sys/types.h for u_int32_t
-
-ui.c:340:5: error: unknown type name 'u_int32_t'; did you mean 'uint32_t'?
-     u_int32_t     addr;
-     ^~~~~~~~~
-Index: OpenIPMI-2.0.22/ui/ui.c
-===================================================================
---- OpenIPMI-2.0.22.orig/ui/ui.c
-+++ OpenIPMI-2.0.22/ui/ui.c
-@@ -42,6 +42,7 @@
- #include <fcntl.h>
- #include <time.h>
- #include <sys/time.h>
-+#include <sys/types.h>
- #include <ctype.h>
- 
- #include <OpenIPMI/selector.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
deleted file mode 100644
index 51a398b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Subject: [PATCH] ipmi-init: fix the arguments
-
-The functions success/failure/warning defined in /etc/init.d/functions
-(provided by initscripts) only accepts numeric argument as return code,
-not a string.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- ipmi.init | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/ipmi.init b/ipmi.init
-index 2ebcd94..d8161c5 100644
---- a/ipmi.init
-+++ b/ipmi.init
-@@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then
- 	case "$ACTION" in
- 	    success)
- 		echo -n $*
--		success "$*"
-+		success 0
- 		echo
- 		;;
- 	    failure)
- 		echo -n $*
--		failure "$*"
-+		failure 1
- 		echo
- 		;;
- 	    warning)
- 		echo -n $*
--		warning "$*"
-+		warning 0
- 		echo
- 		;;
- 	    *)
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi.service b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi.service
deleted file mode 100644
index 6fe1378..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=IPMI Driver
-After=network.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=@LIBEXECDIR@/openipmi-helper start
-ExecStop=@LIBEXECDIR@/openipmi-helper stop-all
-
-[Install]
-WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch
deleted file mode 100644
index 271c532..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Add LDFLAGS variable to Makefile.am, make sure the extra linker flags can be passed.
-
-Upstream-Status: Pending
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
-diff --git a/swig/perl/Makefile.am b/swig/perl/Makefile.am
-index 2f9ee4c..3a18892 100644
---- a/swig/perl/Makefile.am
-+++ b/swig/perl/Makefile.am
-@@ -20,7 +20,7 @@ OpenIPMI_SRC = OpenIPMI_perl.c
- OpenIPMI_OBJ = OpenIPMI_wrap.lo OpenIPMI_perl.lo
- 
- OpenIPMI.so: $(OpenIPMI_OBJ)
--	$(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI
-+	$(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version $(LDFLAGS) -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI
- 	rm -f OpenIPMI.so
- 	mv .libs/OpenIPMI.so .
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch
deleted file mode 100644
index ee3c660..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From bbd51cf010c80322034f7094e2c6a656aa1f17a7 Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Fri, 13 Feb 2015 06:55:33 +0000
-Subject: [PATCH] openipmi: don't rm .libs
-
-Don't remove .libs after OpenIPMI.so generated, this may cause
-dummystuff.so fails to link from the second build with error:
-
-* error: .libs/dummystuff.o: No such file or directory
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
----
- swig/perl/Makefile.am | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/swig/perl/Makefile.am b/swig/perl/Makefile.am
-index 12a282c..2f9ee4c 100644
---- a/swig/perl/Makefile.am
-+++ b/swig/perl/Makefile.am
-@@ -23,7 +23,6 @@ OpenIPMI.so: $(OpenIPMI_OBJ)
- 	$(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI
- 	rm -f OpenIPMI.so
- 	mv .libs/OpenIPMI.so .
--	rm -rf .libs
- 
- dummystuff.lo: dummystuff.c
- 	$(LIBTOOL) --mode=compile $(COMPILE) -c $<
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-helper b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-helper
deleted file mode 100755
index 4cebfb9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-helper
+++ /dev/null
@@ -1,512 +0,0 @@
-#!/bin/sh
-#############################################################################
-#
-# ipmi:		OpenIPMI Driver helper script
-#
-# Authors:	Jan Safranek <jsafrane@redhat.com>
-#
-# Based on IPMI init script by:
-#               Matt Domsch <Matt_Domsch@dell.com>
-#               Chris Poblete <Chris_Poblete@dell.com>
-#
-# Status return code bits
-# no bits set = no errors
-# bit 0 set = minimum modules aren't loaded
-# bit 1 set = requested feature module isn't loaded
-# bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist
-# bit 3 set = /dev/watchdog doesn't exist
-# bit 4 set = lockfile doesn't exist
-# bit 5 set = modules are loaded even when asked to be unloaded
-
-CONFIGFILE=/etc/sysconfig/ipmi
-# source config info
-[ -r ${CONFIGFILE} ] && . ${CONFIGFILE}
-
-#############################################################################
-# GLOBALS
-#############################################################################
-MODULE_NAME="ipmi"
-INTF_NUM=0
-
-IPMI_SMB_MODULE_NAME="ipmi_smb"
-IPMI_SI_MODULE_NAME="ipmi_si"
-kernel=`uname -r | cut -d. -f1-2`
-if [ "${kernel}" == "2.4" ]; then
-    IPMI_SMB_MODULE_NAME="ipmi_smb_intf"
-    IPMI_SI_MODULE_NAME="ipmi_si_drv"
-fi
-
-MODULES_INTERFACES=""
-[ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf"
-[ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb"
-
-MODULES_FEATURES=""
-[ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog"
-[ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff"
-
-MODULES_HW=""
-[ "${IPMI_SI}"  = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}"
-[ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}"
-
-MODULES_BASE="ipmi_msghandler"
-MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}"
-
-RETVAL=0
-LOCKFILE=/var/lock/subsys/ipmi
-DEV_IPMI_TIMEOUT=150
-
-UDEV_EXISTS=0
-if [ -e /sbin/udev -o -e /sbin/udevd ]; then
-    UDEV_EXISTS=1
-fi
-
-#############################################################################
-# NOTES:
-# * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload,
-#   because SLES9 and RHEL4 kernels don't send a message for udev to delete
-#   it for us.
-# 
-#############################################################################
-
-modules_loaded_verbose()
-{
-	OnePlusLoaded=0
-	OnePlusUnloaded=0
-	for m in $@; do
-		if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
-			echo "$m module loaded."
-			OnePlusLoaded=1
-		else
-			echo "$m module not loaded."
-			OnePlusUnloaded=1
-		fi
-	done
-}
-
-modules_loaded()
-{
-	OnePlusLoaded=0
-	OnePlusUnloaded=0
-	for m in $@; do
-		if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
-			OnePlusLoaded=1
-		else
-			OnePlusUnloaded=1
-		fi
-	done
-}
-
-device_node_exists ()
-{
-	if [ -e "$1" ]; then
-		echo "$1 exists."
-		return 1
-	fi
-	echo "$1 does not exist."
-	return 0
-}
-
-minimum_modules_loaded()
-{
-        rc_base=1
-	rc_hw=1
-        modules_loaded_verbose "${MODULES_BASE}"
-	[ ${OnePlusLoaded} -eq 0 ] && rc_base=0
-	    
-	modules_loaded_verbose "${MODULES_HW}"
-	[ ${OnePlusLoaded} -eq 0 ] && rc_hw=0
-	
-	return $((rc_base && rc_hw))
-}
-
-#############################################################################
-
-load_si()
-{
-	if [ "${IPMI_SI}" = "yes" ]; then
-		modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1
-		modules_loaded ${IPMI_SI_MODULE_NAME}
-		[ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
-	fi
-}
-
-load_smb()
-{
-	if [ "${IPMI_SMB}" = "yes" ]; then
-		modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1
-		modules_loaded ${IPMI_SMB_MODULE_NAME}
-		[ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
-	fi
-}
-
-load_hw_modules()
-{
-	load_si
-	load_smb
-}
-
-start_watchdog_common()
-{
-	load_hw_modules
-	modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1
-	modules_loaded ipmi_watchdog
-	[ ${OnePlusUnloaded} -ne 0 ] &&
-		RETVAL=$((RETVAL | 2)) &&
-		echo "Watchdog startup failed: cannot load ipmi_watchdog module" &&
-		return
-	if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then
-		mknod -m 0600 /dev/watchdog c 10 130
-		[ $? -ne 0 ] &&
-			RETVAL=$((RETVAL | 8)) &&
-			echo "Watchdog startup failed: cannot create /dev/watchdog" &&
-			return
-	fi
-}
-
-start_watchdog_quiet()
-{
-	[ "${IPMI_WATCHDOG}" != "yes" ] &&
-		return
-	start_watchdog_common
-}
-
-start_watchdog()
-{
-	[ "${IPMI_WATCHDOG}" != "yes" ] &&
-		RETVAL=$((RETVAL | 2)) &&
-		echo "Watchdog not configured" &&
-		return
-	start_watchdog_common
-}
-
-stop_watchdog()
-{
-	modprobe -q -r ipmi_watchdog > /dev/null 2>&1
-	modules_loaded ipmi_watchdog
-	if [ ${OnePlusLoaded} -ne 0 ]; then
-	    RETVAL=$((RETVAL | 32))
-	    echo "Watchog shutdown failed: cannot unload ipmi_watchdog module"
-	else
-	    if [ "${IPMI_WATCHDOG}" = "yes" ]; then
-		[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
-	    fi
-	fi
-}
-
-stop_watchdog_quiet()
-{
-	modprobe -q -r ipmi_watchdog > /dev/null 2>&1
-	modules_loaded ipmi_watchdog
-	if [ ${OnePlusLoaded} -ne 0 ]; then
-	    RETVAL=$((RETVAL | 32))
-	else
-	    if [ "${IPMI_WATCHDOG}" = "yes" ]; then
-		[ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
-	    fi
-	fi
-}
-
-start_powercontrol_common()
-{
-	local poweroff_opts=""
-	load_hw_modules
-	if [ "${IPMI_POWERCYCLE}" == "yes" ]; then
-	    modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \
-		poweroff_opts="poweroff_control=2"
-	    modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \
-		poweroff_opts="poweroff_powercycle=1"
-	fi
-	modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1
-	modules_loaded ipmi_poweroff
-	[ ${OnePlusUnloaded} -ne 0 ] &&
-		RETVAL=$((RETVAL | 2)) &&
-		echo "Powercontroll startup failed: cannot load ipmi_poweroff module" &&
-		return
-}
-
-start_powercontrol_quiet()
-{
-	[ "${IPMI_POWEROFF}" != "yes" ] &&
-		return
-	start_powercontrol_common
-}
-
-start_powercontrol()
-{
-	[ "${IPMI_POWEROFF}" != "yes" ] &&
-		RETVAL=$((RETVAL | 2)) &&
-		echo "Powercontroll not configured" &&
-		return
-	start_powercontrol_common
-}
-
-stop_powercontrol()
-{
-	modprobe -q -r ipmi_poweroff > /dev/null 2>&1
-	modules_loaded ipmi_poweroff
-	if [ ${OnePlusLoaded} -ne 0 ]; then
-	    RETVAL=$((RETVAL | 32))
-	    echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module"
-	fi
-}
-
-stop_powercontrol_quiet()
-{
-	modprobe -q -r ipmi_poweroff > /dev/null 2>&1
-	modules_loaded ipmi_poweroff
-	[ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32))
-}
-
-#############################################################################
-unload_all_ipmi_modules()
-{
-	stop_watchdog_quiet
-	stop_powercontrol_quiet
-	for m in ${MODULES}; do
-		modprobe -q -r ${m} > /dev/null 2>&1
-	done
-        # delete interface node ONLY if ipmi_devintf is unloaded
-        [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
-	        rm -f "/dev/ipmi${INTF_NUM}"
-}
-
-unload_ipmi_modules_leave_features()
-{
-	for m in ${MODULES_INTERFACES}; do
-		modprobe -q -r ${m} > /dev/null 2>&1
-	done
-        # delete interface node ONLY if ipmi_devintf is unloaded
-        [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
-	        rm -f "/dev/ipmi${INTF_NUM}"
-	lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1
-	if [ "$?" -ne "0" ]; then
-		stop_watchdog_quiet
-		stop_powercontrol_quiet
-		for m in ${MODULES}; do
-			modprobe -q -r ${m} > /dev/null 2>&1
-		done
-	fi
-}
-
-#############################################################################
-load_ipmi_modules ()
-{
-	local locdelay
-	modprobe ipmi_msghandler > /dev/null 2>&1
-	modules_loaded ipmi_msghandler
-	[ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
-	load_hw_modules
-	[ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
-
-	if [ "${DEV_IPMI}" = "yes" ]; then
-		modprobe ipmi_devintf > /dev/null 2>&1
-		modules_loaded ipmi_devintf
-		RETVAL=$((RETVAL & ~2))
-		[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-		if [ ${OnePlusLoaded} -eq 1 ]; then
-			if [ ${UDEV_EXISTS} -eq 0 ]; then
-				DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
-				rm -f /dev/ipmi${INTF_NUM}
-				mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
-			fi
-
-			# udev can take several seconds to create /dev/ipmi0, 
-			# but it happens asynchronously, so delay here
-			locdelay=${DEV_IPMI_TIMEOUT}
-			while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do
-				locdelay=$((locdelay - 1))
-				sleep 0.1
-			done
-		fi
-	fi
-
-	if [ "${IPMI_IMB}" = "yes" ]; then
-		modprobe ipmi_imb > /dev/null 2>&1
-		modules_loaded ipmi_imb
-		RETVAL=$((RETVAL & ~2))
-		[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-		if [ ${OnePlusLoaded} -eq 1 ]; then
-			DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'`
-			rm -f /dev/imb
-			mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
-		fi
-	fi
-
-	# Per Corey Minyard, essentially no one uses ipmi_radisys
-	# and we don't want to encourage its further use
-	# so it won't be handled here.
-	return
-}
-
-#############################################################################
-start()
-{
-	load_ipmi_modules
-	if [ ${RETVAL} -eq 0 ]; then
-		touch ${LOCKFILE}
-	else
-		if [ $((RETVAL & 1)) -eq 1 ]; then
-			echo "Startup failed."
-		else
-			touch ${LOCKFILE} && echo "Warning!?"
-		fi
-	fi
-	start_watchdog_quiet
-	start_powercontrol_quiet
-}
-
-#############################################################################
-stop()
-{
-	unload_ipmi_modules_leave_features
-	modules_loaded ${MODULES_INTERFACES}
-	if [ ${OnePlusLoaded} -ne 0 ]; then
-		RETVAL=$((RETVAL | 32))
-		echo "Shutdown failed, something may be in use"
-	else
-		rm -f ${LOCKFILE}
-	fi
-}
-
-stop_all()
-{
-	unload_all_ipmi_modules
-	modules_loaded ${MODULES}
-	if [ ${OnePlusLoaded} -ne 0 ]; then
-		RETVAL=$((RETVAL | 32))
-		echo "Shutdown failed, something may be in use"
-	else
-		rm -f ${LOCKFILE}
-	fi
-}
-
-#############################################################################
-restart()
-{
-	stop_all
-	RETVAL=0
-	start
-}
-
-#############################################################################
-
-reload()
-{
-	stop_all
-	RETVAL=0
-	start
-}
-
-#############################################################################
-
-status_all()
-{
-	minimum_modules_loaded
-	[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-	
-	modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES}
-	[ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2))
-
-	if [ "${DEV_IPMI}" = "yes" ]; then 
-	    device_node_exists /dev/ipmi${INTF_NUM}
-	    [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
-	fi
-
-	if [ "${IPMI_IMB}" = "yes" ]; then
-	    device_node_exists /dev/imb
-	    [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
-	fi
-
-	if [ "${IPMI_WATCHDOG}" = "yes" ]; then
-	    device_node_exists /dev/watchdog
-	    [ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
-	fi
-
-	[ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16))
-}
-
-status()
-{
-	minimum_modules_loaded
-	[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-	
-	if [ "${DEV_IPMI}" = "yes" ]; then 
-	    modules_loaded_verbose ipmi_devintf
-	    [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-
-	    device_node_exists /dev/ipmi${INTF_NUM}
-	    [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
-	fi
-
-	if [ "${IPMI_IMB}" = "yes" ]; then
-	    device_node_exists /dev/imb
-	    [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
-	fi
-}
-
-status_watchdog()
-{
-	minimum_modules_loaded
-	[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-
-	modules_loaded_verbose ipmi_watchdog
-	[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-
-	device_node_exists /dev/watchdog
-	[ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
-}
-
-status_powercontrol()
-{
-	minimum_modules_loaded
-	[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-
-	modules_loaded_verbose ipmi_powercontrol
-	[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-}
-
-#############################################################################
-usage ()
-{
-	echo $"Usage: $0 {start|stop|status" 1>&2
-	echo $"          restart|condrestart|try-restart|reload|force-reload" 1>&2
-	echo $"          start-watchdog|stop-watchdog|status-watchdog" 1>&2
-	echo $"          start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2
-	echo $"          stop-all|status-all}" 1>&2
-	RETVAL=2
-}
-
-condrestart ()
-{
-	[ -e ${LOCKFILE} ] && restart
-}
-
-#############################################################################
-# MAIN
-#############################################################################
-case "$1" in
-	start) start ;;
-	stop)  stop ;;
-	restart) restart ;;
-	force-reload) reload ;;
-	reload) reload ;;
-	status)	status ;;
-	status-all) status_all ;;
-	condrestart) condrestart ;;
-	try-restart) condrestart ;;
-	start-watchdog) start_watchdog ;;
-	stop-watchdog) stop_watchdog ;;
-	status-watchdog) status_watchdog ;;
-	start-powercontrol) start_powercontrol ;;
-	stop-powercontrol) stop_powercontrol ;;
-	status-powercontrol) status_powercontrol ;;
-	stop-all) stop_all ;;
-	*) usage ;;
-esac
-
-exit ${RETVAL}
-
-#############################################################################
-# end of file
-#############################################################################
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
deleted file mode 100644
index 1fa68f9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date:   Thu Jun 7 12:28:34 2012 -0400
-
-    This patch was carried over from WRL4.3 (openipmi v2.0.16)
-    
-    It was updated for openipmi v2.0.19
-    
-    Disable making openipmigui man page since we don't need it
-    
-    Upstream-Status: Pending
-    
-    Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-    Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
-diff --git a/man/Makefile.am b/man/Makefile.am
-index 632f55b..5ce79f5 100644
---- a/man/Makefile.am
-+++ b/man/Makefile.am
-@@ -1,6 +1,6 @@
- 
- man_MANS = ipmi_ui.1 openipmicmd.1 openipmish.1 ipmi_cmdlang.7 \
--	openipmigui.1 openipmi_conparms.7 solterm.1 rmcp_ping.1 \
-+	openipmi_conparms.7 solterm.1 rmcp_ping.1 \
- 	openipmi_eventd.1
- 
- EXTRA_DIST = $(man_MANS)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
deleted file mode 100644
index 6f16234..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From aa0dc0783a6ff5fb56c914b640836223e3c192bb Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Mon, 29 Dec 2014 18:16:04 +0800
-Subject: [PATCH] remove host path from la_LDFLAGS
-
-Upstream-Status: Inappropriate [ cross compile specific ]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- cmdlang/Makefile.am |    2 +-
- glib/Makefile.am    |    4 ++--
- tcl/Makefile.am     |    2 +-
- unix/Makefile.am    |    4 ++--
- 4 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
-index 00c3d2b..0fa85d7 100644
---- a/cmdlang/Makefile.am
-+++ b/cmdlang/Makefile.am
-@@ -16,7 +16,7 @@ libOpenIPMIcmdlang_la_LIBADD = -lm \
- 	$(top_builddir)/utils/libOpenIPMIutils.la \
- 	$(top_builddir)/lib/libOpenIPMI.la
- libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
--	-Wl,-Map -Wl,libOpenIPMIcmdlang.map -L$(libdir)
-+	-Wl,-Map -Wl,libOpenIPMIcmdlang.map
- 
- bin_PROGRAMS = openipmish
- 
-diff --git a/glib/Makefile.am b/glib/Makefile.am
-index 671cae2..eff55f3 100644
---- a/glib/Makefile.am
-+++ b/glib/Makefile.am
-@@ -11,14 +11,14 @@ libOpenIPMIglib_la_SOURCES = glib_os_hnd.c
- libOpenIPMIglib_la_CFLAGS = $(GLIB_CFLAGS) $(AM_CFLAGS)
- libOpenIPMIglib_la_LIBADD = $(GDBM_LIB)
- libOpenIPMIglib_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
--	-Wl,-Map -Wl,libOpenIPMIglib.map $(GLIB_LIBS) -L$(libdir) \
-+	-Wl,-Map -Wl,libOpenIPMIglib.map $(GLIB_LIBS) \
- 	-rpath $(libdir)
- 
- libOpenIPMIglib12_la_SOURCES = glib_os_hnd.c
- libOpenIPMIglib12_la_CFLAGS = $(GLIB12_CFLAGS) $(AM_CFLAGS)
- libOpenIPMIglib12_la_LIBADD = $(GDBM_LIB)
- libOpenIPMIglib12_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
--	-Wl,-Map -Wl,libOpenIPMIglib12.map $(GLIB12_LIBS) -L$(libdir) \
-+	-Wl,-Map -Wl,libOpenIPMIglib12.map $(GLIB12_LIBS) \
- 	-rpath $(libdir)
- 
- CLEANFILES = libOpenIPMIglib.map libOpenIPMIglib12.map
-diff --git a/tcl/Makefile.am b/tcl/Makefile.am
-index b702819..282619c 100644
---- a/tcl/Makefile.am
-+++ b/tcl/Makefile.am
-@@ -11,7 +11,7 @@ libOpenIPMItcl_la_SOURCES = tcl_os_hnd.c
- libOpenIPMItcl_la_CFLAGS = $(TCL_CFLAGS) $(AM_CFLAGS)
- libOpenIPMItcl_la_LIBADD = $(GDBM_LIB)
- libOpenIPMItcl_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
--	-Wl,-Map -Wl,libOpenIPMItcl.map $(TCL_LIBS) -L$(libdir) \
-+	-Wl,-Map -Wl,libOpenIPMItcl.map $(TCL_LIBS) \
- 	-rpath $(libdir)
- 
- noinst_PROGRAMS = test_handlers
-diff --git a/unix/Makefile.am b/unix/Makefile.am
-index a792147..a108bc6 100644
---- a/unix/Makefile.am
-+++ b/unix/Makefile.am
-@@ -11,13 +11,13 @@ libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c
- libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \
- 	$(top_builddir)/utils/libOpenIPMIutils.la
- libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
--	-Wl,-Map -Wl,libOpenIPMIpthread.map -L$(libdir)
-+	-Wl,-Map -Wl,libOpenIPMIpthread.map
- 
- libOpenIPMIposix_la_SOURCES = posix_os_hnd.c selector.c
- libOpenIPMIposix_la_LIBADD = $(top_builddir)/utils/libOpenIPMIutils.la \
- 	$(GDBM_LIB)
- libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
--	-Wl,-Map -Wl,libOpenIPMIposix.map -L$(libdir)
-+	-Wl,-Map -Wl,libOpenIPMIposix.map
- 
- noinst_HEADERS = heap.h
- 
--- 
-1.7.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb
deleted file mode 100644
index 9f4b0ff..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb
+++ /dev/null
@@ -1,112 +0,0 @@
-SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
-DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
-to allow full access to all IPMI information on a server \
-and to abstract it to a level that will make it easy to use"
-
-HOMEPAGE = "http://openipmi.sourceforge.net"
-
-DEPENDS = " \
-    glib-2.0 \
-    ncurses \
-    net-snmp \
-    openssl \
-    popt \
-    python \
-    swig-native \
-    "
-
-LICENSE = "GPLv2 & LGPLv2.1 & BSD"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
-                    file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
-                    file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
-                    "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
-           file://fix-symlink-install-error-in-cmdlang.patch \
-           file://openipmi-no-openipmigui-man.patch \
-           file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
-           file://openipmi-don-t-rm-.libs.patch \
-           file://ipmi-init-fix-the-arguments.patch \
-           file://makefile-add-ldflags.patch \
-           file://do-not-install-pyc-and-pyo.patch \
-           file://include_sys_types.patch \
-           file://openipmi-helper \
-           file://ipmi.service \
-           "
-
-SRC_URI[md5sum] = "9a4e1f6bb073379c494839201ea10aee"
-SRC_URI[sha256sum] = "4988900043c35fcfa9b2bf275d6593904f6429221befb770ba6ecb5502108e55"
-
-S = "${WORKDIR}/OpenIPMI-${PV}"
-
-inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd
-
-EXTRA_OECONF = "--disable-static \
-                --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
-                --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \
-                --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
-                --with-glibver=2.0 --with-glib12=no"
-
-PACKAGECONFIG ??= "gdbm"
-PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
-
-PACKAGES += "${PN}-perl ${PN}-python"
-
-FILES_${PN}-perl = " \
-    ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
-    ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
-    "
-
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES_${PN}-dbg += " \
-    ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
-    ${PYTHON_SITEPACKAGES_DIR}/.debug \
-    "
-
-do_configure () {
-
-    # Let's perform regular configuration first then handle perl issues.
-    autotools_do_configure
-
-    perl_ver=`perl -V:version | cut -d\' -f 2`
-    
-    # Force openipmi perl bindings to be compiled using perl-native instead of
-    # the host's perl. Set the proper install directory for the resulting
-    # openipmi.pm and openipmi.so
-    for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
-        echo "SAL: i = $i"
-        echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
-        echo "SAL: libdir = $libdir"
-        sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
-        sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
-    done
-}
-
-do_install_append () {
-    echo "SAL: D = $D"
-    echo "SAL: libdir = $libdir"
-    install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
-    install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
-    install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
-    # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
-    # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
-    if [ -d ${D}${libdir}/perl5 ]
-    then
-        mv ${D}${libdir}/perl5 ${D}${libdir}/perl
-    fi
- 
-    # for systemd
-    install -d ${D}${systemd_unitdir}/system
-    install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
-    sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
-    install -d ${D}${libexecdir}
-    install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
-}
-
-INITSCRIPT_NAME = "ipmi"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "ipmi.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.44.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
similarity index 97%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.44.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
index f5c233f..82d6619 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.44.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
@@ -9,7 +9,7 @@
 # basically BSD.  opensource.org does not record this license
 # at present (so it is apparently not OSI certified).
 LICENSE = "OpenLDAP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=c933fba6d89fda89f58df1e086e3f2e7 \
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25fd3721960f39128cd15a749fd21139 \
                     file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
 "
 SECTION = "libs"
@@ -27,8 +27,8 @@
     file://openldap-CVE-2015-3276.patch \
 "
 
-SRC_URI[md5sum] = "693ac26de86231f8dcae2b4e9d768e51"
-SRC_URI[sha256sum] = "d7de6bf3c67009c95525dde3a0212cc110d0a70b92af2af8e3ee800e81b88400"
+SRC_URI[md5sum] = "00ff8301277cdfd0af728a6927042a13"
+SRC_URI[sha256sum] = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824"
 
 DEPENDS = "util-linux groff-native"
 
@@ -188,6 +188,7 @@
 
     # Installing slapd under ${sbin} is more FHS and LSB compliance
     mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+    rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
     SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
     cd ${D}/${sbindir}/
     rm -f ${SLAPTOOLS}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch
deleted file mode 100644
index 8868e80..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/configure.ac~	2009-10-27 14:10:23.000000000 -0200
-+++ b/configure.ac	2011-05-31 10:51:00.207232036 -0300
-@@ -3,12 +3,6 @@
- AC_CONFIG_SRCDIR([lib/Xm/Form.c])
- AC_PREREQ(2.52)
- AC_CONFIG_AUX_DIR(.)
--AC_CHECK_FILE(/usr/X/include/X11/X.h,
--  AC_PREFIX_DEFAULT(/usr/X),
--  AC_PREFIX_DEFAULT(/usr))
--AC_CHECK_FILE(/usr/X11R6/include/X11/X.h,
--  AC_PREFIX_DEFAULT(/usr/X11R6),
--  AC_PREFIX_DEFAULT(/usr))
- 
- dnl AM_MAINTAINER_MODE
- AC_CANONICAL_TARGET
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
deleted file mode 100644
index 35c39cb..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SECTION = "libs"
-SUMMARY = "OSM/Motif implementation"
-LICENSE = "OGPL"
-DEPENDS = "xbitmaps virtual/libx11 libxt libxft xproto"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=14f692c82491db3d52419929d2f3b343"
-
-PR = "r3"
-
-PNBLACKLIST[openmotif] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://motif.ics.com/sites/default/files/openmotif-2.3.3.tar.gz \
-           file://configure.patch;patch=1"
-
-SRC_URI[md5sum] = "fd27cd3369d6c7d5ef79eccba524f7be"
-SRC_URI[sha256sum] = "c85f5545e218fa0c59a3789192132d472fc5a33e914a221a568eee4fc10cd103"
-
-inherit autotools
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
-
-EXTRA_OECONF = "X_CFLAGS=-I${STAGING_INCDIR} --disable-printing"
-
-PACKAGES += "${PN}-bin"
-
-FILES_${PN}-bin = "${bindir}"
-
-do_compile() {
-    (
-        # HACK: build a native binaries need during the build
-        unset CC LD CXX CCLD CFLAGS
-        oe_runmake -C config/util CC="${BUILD_CC}" LD="${BUILD_LD}" CXX="${BUILD_CXX}" LIBS="" makestrs
-    )
-    if [ "$?" != "0" ]; then
-        exit 1
-    fi
-    oe_runmake -C lib
-    oe_runmake -C include
-}
-
-do_install() {
-    oe_runmake DESTDIR=${D} -C lib install
-    oe_runmake DESTDIR=${D} -C include install
-}
-
-LEAD_SONAME = "libXm.so.4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb
deleted file mode 100644
index ebf65c7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Libsyncml is an implementation of the SyncML protocol"
-HOMEPAGE = "https://libsyncml.opensync.org/"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
-
-DEPENDS = "libxml2 glib-2.0 libsoup-2.4 openobex wbxml2"
-
-# Depends on openobex
-PNBLACKLIST[libsyncml] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libsyncml/libsyncml-${PV}.tar.gz"
-SRC_URI[md5sum] = "84879ed7cb94618530fbcb801a1a4f95"
-SRC_URI[sha256sum] = "05d6513637adb1300a3a58b6e29d53ab6373c8f370807d0d925bae72b2920e53"
-
-inherit cmake pkgconfig
-
-PACKAGES += "${PN}-tools"
-
-FILES_${PN}-tools = "${bindir}"
-FILES_${PN} = "${libdir}/*.so.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
deleted file mode 100644
index e914238..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Web Based Enterprise Management (WBEM) Implementation"
-DESCRIPTION = "OpenWBEM is a set of software components that help facilitate \
-deployment of the Common Information Model (CIM) and Web-Based \
-Enterprise Management (WBEM) technologies of the Distributed Management \
-Task Force (DMTF). \
- \
-Web-Based Enterprise Management (WBEM) is a set of management and \
-Internet standard technologies developed to unify the management of \
-distributed computing environments. WBEM provides the ability for the \
-industry to deliver a well-integrated set of standards-based management \
-tools, facilitating the exchange of data across otherwise disparate \
-technologies and platforms. \
- \
-For more information about DMTF and its technologies, visit \
-http://www.dmtf.org/standards. "
-SECTION = "System/Management"
-HOMEPAGE = "http://openwbem.sourceforge.net/"
-
-inherit autotools-brokensep pkgconfig
-
-SOURCE1="novell-openwbem-root-acl.mof"
-SOURCE2="loadmof.sh"
-SOURCE3="rmmof.sh"
-SOURCE4="openwbem-owcimomd.init"
-SOURCE5="openwbem-etc_pam.d_openwbem"
-SOURCE6="openwbem-rpmlintrc"
-
-SRC_URI = " \
-   git://github.com/kkaempf/openwbem.git \
-   file://${SOURCE1} \
-   file://${SOURCE2} \
-   file://${SOURCE3} \
-   file://${SOURCE4} \
-   file://${SOURCE5} \
-   file://${SOURCE6} \
-   file://checkserverkey \
-   file://owcimomd.service \
-"
-SRCREV = "5c688eefc1f8e35a4b1c58529aae5f114c25c2a8"
-S = "${WORKDIR}/git"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM += "file://COPYING;md5=0504a2eb85e01aa92c9efd4125a34660"
-INSANE_SKIP_${PN} = "dev-so"
-DEPENDS += "openssl libpam bash"
-RDEPENDS_${PN} += "bash"
-EXTRA_OECONF = " \
-    --prefix=/usr \
-    --sysconfdir=/etc \
-    --libdir=${libdir} \
-    --localstatedir=/var/lib \
-    --libexecdir=${libdir}/openwbem/bin \
-    --mandir=/usr/share/man \
-    --enable-threads-run-as-user \
-"
-do_configure_prepend() {
-    autoreconf --force --install
-}
-
-do_install() {
-    oe_runmake DESTDIR=${D} install
-    install -d ${D}/etc/openwbem/openwbem.conf.d
-    install -d ${D}/var/adm/fillup-templates
-    install -m 644 etc/sysconfig/daemons/owcimomd ${D}/var/adm/fillup-templates/sysconfig.owcimomd
-
-    # fix up hardcoded paths
-    sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/owcimomd.service
-    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install -d ${D}/${systemd_unitdir}/system
-        install -m 644 ${WORKDIR}/owcimomd.service ${D}/${systemd_unitdir}/system
-        install -m 755 ${WORKDIR}/checkserverkey ${D}${sysconfdir}/openwbem/
-    fi
-
-    install -d ${D}/etc/init.d
-    ln -sf ../../etc/init.d/owcimomd ${D}/usr/sbin/rcowcimomd
-    install -m 755 ${WORKDIR}/${SOURCE4} ${D}/etc/init.d/owcimomd
-    install -d ${D}${sbindir}
-    install -d ${D}/usr/bin
-    install -d ${D}/etc/pam.d
-    install -d ${D}/${libdir}/openwbem/cmpiproviders
-    install -m 644 etc/pam.d/openwbem ${D}/etc/pam.d
-    install -d ${D}/${libdir}/openwbem/c++providers
-    install -d ${D}/var/lib/openwbem
-    install -m 755 ${WORKDIR}/${SOURCE2} ${D}/usr/bin/ow-loadmof.sh
-    install -m 755 ${WORKDIR}/${SOURCE3} ${D}/usr/bin/ow-rmmof.sh
-    install -m 644 ${WORKDIR}/${SOURCE5} ${D}/etc/pam.d/openwbem
-
-    MOFPATH=${D}/usr/share/mof/openwbem
-    install -d $MOFPATH
-    mv ${D}/usr/share/openwbem/* $MOFPATH/
-    rmdir ${D}/usr/share/openwbem
-    install -m 644 ${WORKDIR}/${SOURCE1} $MOFPATH/
-
-    touch ${D}/var/lib/openwbem/{classassociation,instances,instassociation,namespaces,schema}.{dat,ndx,lock}
-}
-
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
-SYSTEMD_SERVICE_${PN} = "owcimomd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-FILES_${PN} += " \
-    ${libdir} \
-    ${datadir}/mof \
-    ${systemd_unitdir} \
-"
-FILES_${PN}-dbg += " \
-    ${libdir}/openwbem/c++providers/.debug \
-    ${libdir}/openwbem/provifcs/.debug \
-    ${libdir}/openwbem/bin/openwbem/.debug \
-"
-FILES_${PN}-dev = " \
-    ${includedir} \
-    ${datadir}/aclocal/openwbem.m4 \
-"
-
-# http://errors.yoctoproject.org/Errors/Details/68630/
-PNBLACKLIST[openwbem] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch
deleted file mode 100644
index 366d461..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-diff -urNp pam_passwdqc-1.0.5-orig/pam_passwdqc.c pam_passwdqc-1.0.5/pam_passwdqc.c
---- pam_passwdqc-1.0.5-orig/pam_passwdqc.c	2008-02-12 15:11:13.000000000 -0500
-+++ pam_passwdqc-1.0.5/pam_passwdqc.c	2009-09-28 12:10:32.171696694 -0400
-@@ -70,6 +70,8 @@ typedef struct {
- 	passwdqc_params_t qc;
- 	int flags;
- 	int retry;
-+	char oldpass_prompt_file[FILE_LEN+1];
-+	char newpass_prompt_file[FILE_LEN+1];
- } params_t;
- 
- static params_t defaults = {
-@@ -79,10 +81,13 @@ static params_t defaults = {
- 		3,				/* passphrase_words */
- 		4,				/* match_length */
- 		1,				/* similar_deny */
--		42				/* random_bits */
-+		42,				/* random_bits */
-+		1				/* firstupper_lastdigit_check */
- 	},
- 	F_ENFORCE_EVERYONE,			/* flags */
--	3					/* retry */
-+	3,					/* retry */
-+	"",					/* oldpass_prompt_file */
-+	""					/* newpass_prompt_file */
- };
- 
- #define PROMPT_OLDPASS \
-@@ -361,6 +366,37 @@ static int parse(params_t *params, pam_h
- 		if (!strcmp(*argv, "use_authtok")) {
- 			params->flags |= F_USE_AUTHTOK;
- 		} else
-+		if (!strcmp(*argv, "disable_firstupper_lastdigit_check")) {
-+			params->qc.firstupper_lastdigit_check = 0;
-+		} else
-+		if (!strncmp(*argv, "oldpass_prompt_file=", 20)) {
-+			int n;
-+			FILE *fp = fopen(*argv + 20, "r");
-+			if (fp) {
-+				n=fread(params->oldpass_prompt_file, sizeof(char), FILE_LEN, fp);
-+				if (0==n || ferror(fp)!=0 ) {
-+					memset(params->oldpass_prompt_file, '\0', FILE_LEN+1);
-+				}
-+				else {
-+					feof(fp)? (params->oldpass_prompt_file[n-1]='\0'): (params->oldpass_prompt_file[n]='\0');
-+				}
-+				fclose(fp);
-+			}
-+		} else
-+		if (!strncmp(*argv, "newpass_prompt_file=", 20)) {
-+			int n;
-+			FILE *fp = fopen(*argv + 20, "r");
-+			if (fp) {
-+				n=fread(params->newpass_prompt_file, sizeof(char), FILE_LEN, fp);
-+				if (0==n || ferror(fp)!=0 ) {
-+					memset(params->newpass_prompt_file, '\0', FILE_LEN+1);
-+				}
-+				else {
-+                                        feof(fp)? (params->newpass_prompt_file[n-1]='\0'): (params->newpass_prompt_file[n]='\0');
-+				}
-+				fclose(fp);
-+			}
-+		} else
- 			break;
- 		argc--; argv++;
- 	}
-@@ -406,7 +442,7 @@ PAM_EXTERN int pam_sm_chauthtok(pam_hand
- 
- 	if (ask_oldauthtok && !am_root(pamh)) {
- 		status = converse(pamh, PAM_PROMPT_ECHO_OFF,
--		    PROMPT_OLDPASS, &resp);
-+		    strlen(params.oldpass_prompt_file) ? params.oldpass_prompt_file : PROMPT_OLDPASS, &resp);
- 
- 		if (status == PAM_SUCCESS) {
- 			if (resp && resp->resp) {
-@@ -540,8 +576,7 @@ retry:
- 		    MESSAGE_RANDOMFAILED : MESSAGE_MISCONFIGURED);
- 		return PAM_AUTHTOK_ERR;
- 	}
--
--	status = converse(pamh, PAM_PROMPT_ECHO_OFF, PROMPT_NEWPASS1, &resp);
-+	status = converse(pamh, PAM_PROMPT_ECHO_OFF, strlen(params.newpass_prompt_file) ? params.newpass_prompt_file : PROMPT_NEWPASS1, &resp);
- 	if (status == PAM_SUCCESS && (!resp || !resp->resp))
- 		status = PAM_AUTHTOK_ERR;
- 
-diff -urNp pam_passwdqc-1.0.5-orig/passwdqc_check.c pam_passwdqc-1.0.5/passwdqc_check.c
---- pam_passwdqc-1.0.5-orig/passwdqc_check.c	2008-02-12 14:31:52.000000000 -0500
-+++ pam_passwdqc-1.0.5/passwdqc_check.c	2009-09-25 22:45:16.080842425 -0400
-@@ -90,10 +90,12 @@ static int is_simple(passwdqc_params_t *
- 
- /* Upper case characters and digits used in common ways don't increase the
-  * strength of a password */
--	c = (unsigned char)newpass[0];
--	if (uppers && isascii(c) && isupper(c)) uppers--;
--	c = (unsigned char)newpass[length - 1];
--	if (digits && isascii(c) && isdigit(c)) digits--;
-+	if (params->firstupper_lastdigit_check) {
-+		c = (unsigned char)newpass[0];
-+		if (uppers && isascii(c) && isupper(c)) uppers--;
-+		c = (unsigned char)newpass[length - 1];
-+		if (digits && isascii(c) && isdigit(c)) digits--;
-+	}
- 
- /* Count the number of different character classes we've seen.  We assume
-  * that there are no non-ASCII characters for digits. */
-diff -urNp pam_passwdqc-1.0.5-orig/passwdqc.h pam_passwdqc-1.0.5/passwdqc.h
---- pam_passwdqc-1.0.5-orig/passwdqc.h	2008-02-12 14:30:00.000000000 -0500
-+++ pam_passwdqc-1.0.5/passwdqc.h	2009-09-25 14:08:56.214695858 -0400
-@@ -7,12 +7,15 @@
- 
- #include <pwd.h>
- 
-+#define FILE_LEN		4096	/* Max file len = 4096 */
-+
- typedef struct {
- 	int min[5], max;
- 	int passphrase_words;
- 	int match_length;
- 	int similar_deny;
- 	int random_bits;
-+	int firstupper_lastdigit_check;
- } passwdqc_params_t;
- 
- extern char _passwdqc_wordset_4k[0x1000][6];
-diff -urNp pam_passwdqc-1.0.5-orig/README pam_passwdqc-1.0.5/README
---- pam_passwdqc-1.0.5-orig/README	2008-02-12 14:43:33.000000000 -0500
-+++ pam_passwdqc-1.0.5/README	2009-09-28 12:12:40.251016423 -0400
-@@ -41,9 +41,12 @@ words (see the "passphrase" option below
- N3 and N4 are used for passwords consisting of characters from three
- and four character classes, respectively.
- 
-+	disable_firstupper_lastdigit_check	[]
-+
- When calculating the number of character classes, upper-case letters
- used as the first character and digits used as the last character of a
--password are not counted.
-+password are not counted. To disable this, you can specify 
-+"disable_firstupper_lastdigit_check".
- 
- In addition to being sufficiently long, passwords are required to
- contain enough different characters for the character classes and
-@@ -142,6 +145,14 @@ This disables user interaction within pa
- the only difference between "use_first_pass" and "use_authtok" is that
- the former is incompatible with "ask_oldauthtok".
- 
-+	oldpass_prompt_file=absolute-file-path	[]
-+	newpass_prompt_file=abosulte-file-path	[]
-+
-+The options "oldpass_prompt_file" and "newpass_prompt_file" can be used
-+to override prompts while requesting old password and new password, 
-+respectively. The maximum size of the prompt files can be 4096 
-+characters at present. If the file size is more than 4096 characters, the
-+output will be truncated to 4096 characters.
- -- 
- Solar Designer <solar at openwall.com>
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch
deleted file mode 100644
index 536fba1..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- pam_passwdqc-1.0.5/Makefile.orig	2012-10-02 20:53:55.443592886 +0900
-+++ pam_passwdqc-1.0.5/Makefile	2012-10-02 20:54:19.076108001 +0900
-@@ -2,7 +2,7 @@
- # Copyright (c) 2000-2003,2005 by Solar Designer.  See LICENSE.
- #
- 
--CC = gcc
-+#CC = gcc
- LD = $(CC)
- RM = rm -f
- MKDIR = mkdir -p
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb
deleted file mode 100644
index cb9aa22..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Pluggable password quality-control module."
-DESCRIPTION = "pam_passwdqc is a simple password strength checking module for \
-PAM-aware password changing programs, such as passwd(1). In addition \
-to checking regular passwords, it offers support for passphrases and \
-can provide randomly generated passwords. All features are optional \
-and can be (re-)configured without rebuilding."
-
-HOMEPAGE = "http://www.openwall.com/passwdqc/"
-SECTION = "System Environment/Base"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e284d013ef08e66d4737f446c5890550"
-
-SRC_URI = "http://www.openwall.com/pam/modules/pam_passwdqc/pam_passwdqc-1.0.5.tar.gz \
-    file://1000patch-219201.patch \
-    file://7000Makefile-fix-CC.patch \
-"
-SRC_URI[md5sum] = "cd9c014f736158b1a60384a8e2bdc28a"
-SRC_URI[sha256sum] = "32528ddf7d8219c788b6e7702361611ff16c6340b6dc0f418ff164aadc4a4a88"
-
-
-S = "${WORKDIR}/pam_passwdqc-${PV}"
-
-DEPENDS = "libpam"
-
-EXTRA_OEMAKE = "CFLAGS="${CFLAGS} -Wall -fPIC -DHAVE_SHADOW" \
-    SECUREDIR=${base_libdir}/security \
-"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
-    oe_runmake install DESTDIR=${D}
-}
-
-FILES_${PN} += "${base_libdir}/security/pam_passwdqc.so"
-FILES_${PN}-dbg += "${base_libdir}/security/.debug"
-
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-support/passwdqc/passwdqc/makefile-add-ldflags.patch
new file mode 100644
index 0000000..e902349
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch
@@ -0,0 +1,31 @@
+Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this variable.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/Makefile b/Makefile
+index 49d622d..cd17334 100644
+--- a/Makefile
++++ b/Makefile
+@@ -48,18 +48,17 @@ CFLAGS = -Wall -W -O2
+ CFLAGS_lib = $(CFLAGS) -fPIC
+ CFLAGS_bin = $(CFLAGS) -fomit-frame-pointer
+ 
+-LDFLAGS =
+ LDFLAGS_shared = --shared
+ LDFLAGS_shared_LINUX = --shared
+ LDFLAGS_shared_SUN = -G
+ LDFLAGS_shared_HP = -b
+ LDFLAGS_lib = $(LDFLAGS_shared)
+-LDFLAGS_lib_LINUX = $(LDFLAGS_shared_LINUX) \
++LDFLAGS_lib_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \
+ 	-Wl,--soname,$(SHARED_LIB),--version-script,$(MAP_LIB)
+ LDFLAGS_lib_SUN = $(LDFLAGS_shared_SUN)
+ LDFLAGS_lib_HP = $(LDFLAGS_shared_HP)
+ LDFLAGS_pam = $(LDFLAGS_shared)
+-LDFLAGS_pam_LINUX = $(LDFLAGS_shared_LINUX) \
++LDFLAGS_pam_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \
+ 	-Wl,--version-script,$(MAP_PAM)
+ LDFLAGS_pam_SUN = $(LDFLAGS_shared_SUN)
+ LDFLAGS_pam_HP = $(LDFLAGS_shared_HP)
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-support/passwdqc/passwdqc_1.3.1.bb
new file mode 100644
index 0000000..198db3c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
@@ -0,0 +1,63 @@
+SUMMARY = "A password/passphrase strength checking and enforcement toolset"
+DESCRIPTION = "\
+passwdqc is a password/passphrase strength checking and policy enforcement \
+toolset, including an optional PAM module (pam_passwdqc), command-line \
+programs (pwqcheck and pwqgen), and a library (libpasswdqc). \
+pam_passwdqc is normally invoked on password changes by programs such as \
+passwd(1).  It is capable of checking password or passphrase strength, \
+enforcing a policy, and offering randomly-generated passphrases, with \
+all of these features being optional and easily (re-)configurable. \
+\
+pwqcheck and pwqgen are standalone password/passphrase strength checking \
+and random passphrase generator programs, respectively, which are usable \
+from scripts. \
+\
+libpasswdqc is the underlying library, which may also be used from \
+third-party programs. \
+"
+
+HOMEPAGE = "http://www.openwall.com/passwdqc"
+SECTION = "System Environment/Base"
+
+DEPENDS += "libpam"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d"
+
+SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \
+           file://makefile-add-ldflags.patch \
+          "
+SRC_URI[md5sum] = "3878b57bcd3fdbcf3d4b362dbc6228b9"
+SRC_URI[sha256sum] = "d1fedeaf759e8a0f32d28b5811ef11b5a5365154849190f4b7fab670a70ffb14"
+
+# explicitly define LINUX_PAM in case DISTRO_FEATURES no pam
+# this package's pam_passwdqc.so needs pam
+CFLAGS_append += "-Wall -fPIC -DHAVE_SHADOW -DLINUX_PAM"
+
+# -e is no longer default setting in bitbake.conf
+EXTRA_OEMAKE = "-e"
+
+do_compile() {
+    # make sure sub make use environment to override variables in Makefile
+    # Linux)    $(MAKE), there is a tab between
+    sed -i -e 's/Linux)	$(MAKE) CFLAGS_lib/Linux)	$(MAKE) -e CFLAGS_lib/' ${S}/Makefile
+
+    # LD_lib and LD must be CC because of Makefile
+    oe_runmake LD="${CC}"
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D} SHARED_LIBDIR=${base_libdir} \
+           DEVEL_LIBDIR=${libdir} SECUREDIR=${base_libdir}/security \
+           INSTALL="install -p"
+}
+
+PROVIDES += "pam-${BPN}"
+PACKAGES =+ "lib${BPN} pam-${BPN}"
+
+FILES_lib${BPN} = "${base_libdir}/libpasswdqc.so.0"
+FILES_pam-${BPN} = "${base_libdir}/security/pam_passwdqc.so"
+FILES_${PN}-dbg += "${base_libdir}/security/.debug"
+
+RDEPENDS_${PN} = "lib${BPN} pam-${BPN}"
+RDEPENDS_pam-${BPN} = "lib${BPN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
index 0d2cb33..90d58b0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
@@ -8,12 +8,12 @@
 LICENSE_${PN}-dbg = "BSD & GPLv3+"
 LICENSE_${PN}-spy = "GPLv3+"
 LICENSE_${PN}-spy-dev = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bcfbd85230ac3c586fb294c8b627cf32"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29"
 DEPENDS = "udev"
 
-SRC_URI = "https://alioth.debian.org/frs/download.php/file/4126/pcsc-lite-${PV}.tar.bz2"
-SRC_URI[md5sum] = "4dcd22d20a6df8810fac5480cc320b6d"
-SRC_URI[sha256sum] = "f315047e808d63a3262c4a040f77548af2e04d1fd707e0c2759369b926fbbc3b"
+SRC_URI = "https://alioth.debian.org/frs/download.php/file/4225/pcsc-lite-${PV}.tar.bz2"
+SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17"
+SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405"
 
 
 inherit autotools systemd pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
index b786633..ecdbffb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
@@ -11,8 +11,8 @@
 --- a/toolkit/Makefile.am	2012-05-03 15:52:22.000000000 +0200
 +++ b/toolkit/Makefile.am	2014-01-13 12:12:26.030369357 +0100
 @@ -1,4 +1,4 @@
--INCLUDES = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@
-+INCLUDES = -I../src @LIBGCRYPT_CFLAGS@
+-AM_CPPFLAGS = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@
++AM_CPPFLAGS = -I../src @LIBGCRYPT_CFLAGS@
  
  noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
index f66e528..dda17a9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
@@ -9,8 +9,8 @@
 --- libotr-4.0.0.orig/toolkit/Makefile.am	2014-07-16 18:09:59.777858022 +0000
 +++ libotr-4.0.0/toolkit/Makefile.am	2014-07-17 06:28:51.359066155 +0000
 @@ -1,4 +1,4 @@
--INCLUDES = -I../src @LIBGCRYPT_CFLAGS@
-+INCLUDES = -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@
+-AM_CPPFLAGS = -I../src @LIBGCRYPT_CFLAGS@
++AM_CPPFLAGS = -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@
  
  noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h
  
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
similarity index 75%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
index dd9eeab..c701244 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
@@ -9,7 +9,7 @@
            file://sepbuild.patch \
 "
 
-SRC_URI[md5sum] = "00979dca82d70383fcd1b01f3974363c"
-SRC_URI[sha256sum] = "3f911994409898e74527730745ef35ed75c352c695a1822a677a34b2cf0293b4"
+SRC_URI[md5sum] = "dac5a8778a35f674c046ddf5d97e4d81"
+SRC_URI[sha256sum] = "8b3b182424251067a952fb4e6c7b95a21e644fbb27fbd5f8af2b2ed87ca419f5"
 
 inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch
deleted file mode 100644
index db0ad87..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-pidgin-otr: Silence no-extra-portability warnings
-
-Make it build with OE, was not building with warning turned on
-
-Upstream-Status: Pending
-
-Signed-off-by: Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
-
---- a/configure.ac	2012-09-01 17:03:19.000000000 +0200
-+++ b/configure.ac	2014-01-12 21:59:24.920300215 +0100
-@@ -4,7 +4,7 @@
- 
- AM_CONFIG_HEADER(config.h)
- 
--AM_INIT_AUTOMAKE([-Wall -Werror])
-+AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability])
- 
- AC_PROG_CC
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb
deleted file mode 100644
index 47cdc72..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
-HOMEPAGE = "http://www.cypherpunks.ca/otr/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
-DEPENDS = "libgcrypt libotr pidgin intltool-native"
-
-PNBLACKLIST[pidgin-otr] ?= "depends on blacklisted pidgin - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \
-           file://ignore_extra-portability_warnings.patch \
-"
-
-SRC_URI[md5sum] = "eadb953376acc474e56041d4c12aa2c8"
-SRC_URI[sha256sum] = "d56b3f092dbe9ee6597641c7d2dd294884dc04ba47aaf4ec571cd54977df4691"
-
-
-FILES_${PN} = "${libdir}/pidgin/*"
-FILES_${PN}-dbg = "${libdir}/pidgin/.debug"
-FILES_${PN}-dbg += "${libdir}/pidgin/.debug/pidgin-otr.so"
-FILES_${PN}-dbg += "/usr/src/debug/pidgin-otr/${PV}-${PR}/${P}/*"
-inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
new file mode 100644
index 0000000..5a21cd3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
+HOMEPAGE = "https://otr.cypherpunks.ca/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
+DEPENDS = "libgcrypt libotr pidgin gtk+ intltool-native glib-2.0 glib-2.0-native"
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://otr.cypherpunks.ca/${BP}.tar.gz \
+"
+SRC_URI[md5sum] = "7ef14e1334a4bc80e5d530f9a3cfc626"
+SRC_URI[sha256sum] = "f4b59eef4a94b1d29dbe0c106dd00cdc630e47f18619fc754e5afbf5724ebac4"
+
+FILES_${PN} = "${libdir}/pidgin/*"
+
+inherit autotools pkgconfig distro_features_check
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.11.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
similarity index 97%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.11.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
index 462e21c..088f08b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.11.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
@@ -13,8 +13,8 @@
     file://pidgin-cross-python-265.patch \
 "
 
-SRC_URI[md5sum] = "7b167474db669aab2f71fa46835fb83f"
-SRC_URI[sha256sum] = "f72613440586da3bdba6d58e718dce1b2c310adf8946de66d8077823e57b3333"
+SRC_URI[md5sum] = "8287400c4e5663e0e7844e868d5152af"
+SRC_URI[sha256sum] = "8c3d3536d6d3c971bd433ff9946678af70a0f6aa4e6969cc2a83bb357015b7f8"
 
 PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb
similarity index 97%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.8.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb
index 1b83735..ac65735 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb
@@ -12,9 +12,9 @@
 
 BBCLASSEXTEND = "native"
 
-SRCREV = "aae9c2e0f64caf019d31ba8f97635d5656b25ba5"
+SRCREV = "bfbe6a328744eaa84cb443b93ee20947aa0be91f"
 SRC_URI = " \
-    git://github.com/pocoproject/poco.git;branch=poco-${PV} \
+    git://github.com/pocoproject/poco.git;branch=master \
     file://run-ptest \
    "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.53.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.53.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb
index c1bfb31..63b77aa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.53.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb
@@ -7,15 +7,15 @@
     file://0001-add-manadatory-options-to-find-qt4-qt5-moc.patch \
     file://0002-fix-gcc-6-math-ambiguous-errors.patch \
 "
-SRC_URI[md5sum] = "943679f1030b9bc19a989f24121a282a"
-SRC_URI[sha256sum] = "592bf72960c6b5948b67657594b05e72d9a278daf7613c9f3cdff9a5b73096a8"
+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-libjpeg,--disable-libjpeg,jpeg"
+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"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb
deleted file mode 100644
index e4d2eda..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb
+++ /dev/null
@@ -1,11 +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 \
-"
-
-SRC_URI[md5sum] = "2fee03f2034034dbfcb3321a0bb0f829"
-SRC_URI[sha256sum] = "e3eb51d045c180b03d2de1f0c3af9356e10be49448e966ca01dfc2c6d1cc9d23"
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
new file mode 100644
index 0000000..eec099a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb
@@ -0,0 +1,15 @@
+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/pps-tools/pps-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
index 73c46ee..8bf9036 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
@@ -1,4 +1,5 @@
 SUMMARY = "User-space tools for LinuxPPS"
+HOMEPAGE = "http://linuxpps.org"
 
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
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-support/psqlodbc/psqlodbc_09.05.0300.bb
index 97326a2..6e1c8ab 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
@@ -12,5 +12,3 @@
 
 SRC_URI[md5sum] = "4c6e0b22187d7bb1c998ffac89e50f6b"
 SRC_URI[sha256sum] = "9521f328bf28aaaf5c8488dc89792b614f9d6271742c0baf9bb41c97537764a8"
-
-PNBLACKLIST[psqlodbc] ?= "Depends on blacklisted postgresql - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch
deleted file mode 100644
index 8ca0969..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Modernise configure to work with modern automake.
-
-RP 2014/7/14
-
-Upstream-Status: Pending
-
-Index: re2c-0.13.5/configure.in
-===================================================================
---- re2c-0.13.5.orig/configure.in	2008-05-25 14:42:34.000000000 +0000
-+++ re2c-0.13.5/configure.in	2014-07-17 14:10:40.595821292 +0000
-@@ -1,6 +1,6 @@
- AC_PREREQ([2.57])
- AC_INIT(re2c, 0.13.5, re2c-general@lists.sourceforge.net)
--AM_INIT_AUTOMAKE(re2c, $PACKAGE_VERSION)
-+AM_INIT_AUTOMAKE([foreign])
- AC_CONFIG_SRCDIR(actions.cc)
- AM_CONFIG_HEADER(config.h)
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb
deleted file mode 100644
index dcac940..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Tool for writing very fast and very flexible scanners"
-HOMEPAGE = "http://re2c.sourceforge.net/"
-AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
-SECTION = "devel"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://README;beginline=180;md5=822830a2204aef353f2c489f62e02089"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
-           file://configure.patch"
-SRC_URI[md5sum] = "4a97d8f77ed6d2c76c8bd840a43f5633"
-SRC_URI[sha256sum] = "f3a995139af475e80a30207d02728b1e0065b0caade7375e974cb1b14861668c"
-
-BBCLASSEXTEND = "native"
-
-inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
new file mode 100644
index 0000000..9e95a3f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
@@ -0,0 +1,84 @@
+From 206f334d62da17093e784094c9d9e80c853f704f Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 12 May 2017 03:03:46 -0400
+Subject: [PATCH] do not support python2
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac       | 16 ----------------
+ python/Makefile.am | 24 ------------------------
+ 2 files changed, 40 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 200a7cc..8431c51 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,22 +22,6 @@ AM_MISSING_PROG([AUTOM4TE], [autom4te])
+ # Needed by tests/atlocal.in.
+ AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`])
+ 
+-AM_PATH_PYTHON
+-AM_CONDITIONAL([HAVE_PYTHON], test -n "$PYTHON")
+-[if test -z "$PYTHON"; then]
+-    [echo "The python interpreter was not found in the search path. The Python language bindings"]
+-    [echo "will not be built.  If you want to build the Python language bindings, please ensure"]
+-    [echo "that python is installed and its directory is included in the search path."]
+-    [echo "Then run configure again before attempting to build Satyr."]
+-[fi]
+-
+-# Just PKG_CHECK_MODULES([PYTHON], [python]) works only with python2.7+
+-# Below, if python is not found, we set up for python2.6 w/o checking:
+-PKG_CHECK_MODULES([PYTHON], [python2],,[
+-    PYTHON_LIBS='-L/usr/lib64 -lpython2.6'
+-    PYTHON_CFLAGS='-I/usr/include/python2.6'
+-])
+-
+ AC_ARG_ENABLE([python-manpage],
+               [AS_HELP_STRING([--disable-python-manpage],
+                               [Disable python bindings manpage build])],
+diff --git a/python/Makefile.am b/python/Makefile.am
+index 36fc2e9..0b73f66 100644
+--- a/python/Makefile.am
++++ b/python/Makefile.am
+@@ -1,12 +1,5 @@
+ SUBDIRS = . doc
+ 
+-py2satyrdir = $(pyexecdir)/satyr
+-
+-py2satyr_PYTHON = \
+-    __init__.py
+-
+-py2satyr_LTLIBRARIES = _satyr.la
+-
+ PYEXTFILES = \
+     py_cluster.h \
+     py_cluster.c \
+@@ -75,23 +68,6 @@ PYEXTLDFLAGS = \
+     -module \
+     -avoid-version
+ 
+-_satyr_la_SOURCES = $(PYEXTFILES)
+-_satyr_la_CPPFLAGS = \
+-    $(PYEXTCPPFLAGS) \
+-    $(PYTHON_CFLAGS)
+-_satyr_la_LDFLAGS = \
+-    $(PYEXTLDFLAGS) \
+-    -export-symbols-regex init_satyr
+-
+-# Depending on the configure option, we either link libsatyr.so dynamically (as
+-# is usual), or directly include its object files (by including the
+-# convenience library).
+-if ENABLE_STATIC_PYTHON_MODULE
+-_satyr_la_LIBADD = ../lib/libsatyr_conv.la
+-else
+-_satyr_la_LIBADD = ../lib/libsatyr.la
+-endif
+-
+ if WITH_PYTHON3
+ py3satyrdir = $(py3execdir)/satyr
+ 
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
new file mode 100644
index 0000000..5827eb4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
@@ -0,0 +1,28 @@
+From 23f827ea94284656972652f61f2c6aad96092cc8 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 20 Jul 2017 23:00:29 -0400
+Subject: [PATCH] fix compile failure against musl C library
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ lib/rpm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rpm.c b/lib/rpm.c
+index 920e145..58140bf 100644
+--- a/lib/rpm.c
++++ b/lib/rpm.c
+@@ -188,7 +188,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages)
+     }
+ 
+     /* Sort the array. */
+-    qsort(array, count, sizeof(struct sr_rpm_package*), (comparison_fn_t)cmp_nevra_qsort_wrapper);
++    qsort(array, count, sizeof(struct sr_rpm_package*), cmp_nevra_qsort_wrapper);
+ 
+     /* Create a linked list from the sorted array. */
+     for (size_t loop = 0; loop < count; ++loop)
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
new file mode 100644
index 0000000..f795c37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
+failure processing, analysis, and reporting supporting kernel space, user \
+space, Python, and Java programs"
+
+HOMEPAGE = "https://github.com/abrt/satyr"
+LICENSE = "GPLv2"
+
+inherit autotools-brokensep python3native pkgconfig
+
+SRC_URI = "git://github.com/abrt/satyr.git \
+           file://0001-do-not-support-python2.patch \
+           file://0002-fix-compile-failure-against-musl-C-library.patch \
+"
+SRCREV = "4742fd4857c446b96f712d52e2e4cd0b6cfe7398"
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS += " \
+    gdb \
+"
+
+PACKAGES += "python3-${PN}"
+FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
+
+PACKAGECONFIG ??= "python3 rpm"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[pythonmanpage] = "--enable-python-manpage, --disable-python-manpage"
+PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
+
+do_configure_prepend() {
+    ${S}/gen-version
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
index 8ab2819..3299a77 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
@@ -10,6 +10,7 @@
 SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
            file://make-sysroot-work.patch \
            "
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
 
 PACKAGES =+ "${PN}-scripts"
 RDEPENDS_${PN}-scripts += "bash ${PN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch
new file mode 100644
index 0000000..7dcc67d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch
@@ -0,0 +1,29 @@
+From a0d815ad9918aba977aed9275b3bf3d750a1709b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 30 Aug 2017 19:24:40 -0700
+Subject: [PATCH] serial_forward: Disable default static linking
+
+This does not work with ssp turned on with hardening flags on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/serial_forward/src/Makefile.am | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/tools/serial_forward/src/Makefile.am b/tools/serial_forward/src/Makefile.am
+index 3f598286..bcac9bc9 100644
+--- a/tools/serial_forward/src/Makefile.am
++++ b/tools/serial_forward/src/Makefile.am
+@@ -20,9 +20,6 @@ serial_forward_SOURCES = \
+ 	cy8mrln.h \
+ 	$(NULL)
+ 
+-serial_forward_LDFLAGS = \
+-	-all-static
+-
+ pty_forward_SOURCES = \
+ 	pty_forward.c \
+ 	$(NULL)
+-- 
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
index 6494de9..0ef8298 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -3,10 +3,12 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
 SECTION = "console/devel"
-SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
+SRCREV = "07c6fdede0870edc37a8d51d033b6e7e29aa7c91"
 PV = "1.1+gitr${SRCPV}"
 
-SRC_URI = "git://github.com/freesmartphone/cornucopia.git"
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git \
+           file://0001-serial_forward-Disable-default-static-linking.patch;striplevel=3 \
+          "
 S = "${WORKDIR}/git/tools/serial_forward"
 
 inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
index a11bd77..c7de057 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
@@ -9,6 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
 
 SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz"
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
 
 SRC_URI[md5sum] = "28080de5bf2222f8b55a29093bec8aea"
 SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
new file mode 100644
index 0000000..ef6ae00
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
@@ -0,0 +1,872 @@
+From 3100e23c50e38bff0c2ec77bc30049c113c29414 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 20:44:31 -0700
+Subject: [PATCH 1/6] Use pragma once unconditionally
+
+in OE we do not worry about supporting
+gcc 3.4 anyway
+
+Upstream-Status: Inappropriate[Bumps required gcc to be > 3.4]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/efi/efi.h                     | 2 --
+ lib/engine/ahci.h                 | 2 --
+ lib/engine/ahci_cdrom.h           | 2 --
+ lib/engine/ahci_disk.h            | 2 --
+ lib/engine/ahci_multiplier.h      | 2 --
+ lib/engine/ahci_multiplier_phy.h  | 2 --
+ lib/engine/ahci_multiplier_port.h | 2 --
+ lib/engine/ahci_phy.h             | 2 --
+ lib/engine/ahci_port.h            | 2 --
+ lib/engine/ahci_raid_info.h       | 2 --
+ lib/engine/ahci_tape.h            | 2 --
+ lib/engine/array.h                | 2 --
+ lib/engine/block_device.h         | 2 --
+ lib/engine/cache.h                | 2 --
+ lib/engine/container.h            | 2 --
+ lib/engine/context_manager.h      | 2 --
+ lib/engine/controller.h           | 2 --
+ lib/engine/enclosure.h            | 2 --
+ lib/engine/end_device.h           | 2 --
+ lib/engine/event.h                | 2 --
+ lib/engine/event_manager.h        | 2 --
+ lib/engine/exception.h            | 2 --
+ lib/engine/filesystem.h           | 2 --
+ lib/engine/isci.h                 | 2 --
+ lib/engine/isci_cdrom.h           | 2 --
+ lib/engine/isci_disk.h            | 2 --
+ lib/engine/isci_expander.h        | 2 --
+ lib/engine/isci_expander_phy.h    | 2 --
+ lib/engine/isci_expander_port.h   | 2 --
+ lib/engine/isci_phy.h             | 2 --
+ lib/engine/isci_port.h            | 2 --
+ lib/engine/isci_raid_info.h       | 2 --
+ lib/engine/isci_tape.h            | 2 --
+ lib/engine/list.h                 | 2 --
+ lib/engine/mdadm_config.h         | 2 --
+ lib/engine/multimedia_device.h    | 2 --
+ lib/engine/nondisk_device.h       | 2 --
+ lib/engine/object.h               | 2 --
+ lib/engine/pci_header.h           | 2 --
+ lib/engine/phy.h                  | 2 --
+ lib/engine/port.h                 | 2 --
+ lib/engine/raid_device.h          | 2 --
+ lib/engine/raid_info.h            | 2 --
+ lib/engine/remote_port.h          | 2 --
+ lib/engine/routing_device.h       | 2 --
+ lib/engine/session.h              | 2 --
+ lib/engine/session_manager.h      | 2 --
+ lib/engine/storage_device.h       | 2 --
+ lib/engine/stream_device.h        | 2 --
+ lib/engine/string.h               | 2 --
+ lib/engine/unique_id_manager.h    | 2 --
+ lib/engine/utils.h                | 2 --
+ lib/engine/volume.h               | 2 --
+ lib/log/log.h                     | 2 --
+ lib/mpb/machine_bytes.h           | 2 --
+ lib/mpb/mpb.h                     | 2 --
+ lib/orom/orom.h                   | 2 --
+ 57 files changed, 114 deletions(-)
+
+diff --git a/lib/efi/efi.h b/lib/efi/efi.h
+index 9e7e41b..804e567 100644
+--- a/lib/efi/efi.h
++++ b/lib/efi/efi.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __EFI_H__INCLUDED__
+ #define __EFI_H__INCLUDED__
+diff --git a/lib/engine/ahci.h b/lib/engine/ahci.h
+index e883d1a..80a9699 100644
+--- a/lib/engine/ahci.h
++++ b/lib/engine/ahci.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_H__INCLUDED__
+ #define __AHCI_H__INCLUDED__
+diff --git a/lib/engine/ahci_cdrom.h b/lib/engine/ahci_cdrom.h
+index 442f301..d8ca042 100644
+--- a/lib/engine/ahci_cdrom.h
++++ b/lib/engine/ahci_cdrom.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_CDROM_H__INCLUDED__
+ #define __AHCI_CDROM_H__INCLUDED__
+diff --git a/lib/engine/ahci_disk.h b/lib/engine/ahci_disk.h
+index 7892a53..1bad9ad 100644
+--- a/lib/engine/ahci_disk.h
++++ b/lib/engine/ahci_disk.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_DISK_H__INCLUDED__
+ #define __AHCI_DISK_H__INCLUDED__
+diff --git a/lib/engine/ahci_multiplier.h b/lib/engine/ahci_multiplier.h
+index d63e9bc..1029af2 100644
+--- a/lib/engine/ahci_multiplier.h
++++ b/lib/engine/ahci_multiplier.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_MULTIPLIER_H__INCLUDED__
+ #define __AHCI_MULTIPLIER_H__INCLUDED__
+diff --git a/lib/engine/ahci_multiplier_phy.h b/lib/engine/ahci_multiplier_phy.h
+index 58ecebc..2132c23 100644
+--- a/lib/engine/ahci_multiplier_phy.h
++++ b/lib/engine/ahci_multiplier_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_MULTIPLIER_PHY_H__INCLUDED__
+ #define __AHCI_MULTIPLIER_PHY_H__INCLUDED__
+diff --git a/lib/engine/ahci_multiplier_port.h b/lib/engine/ahci_multiplier_port.h
+index 5ff4cf7..2402473 100644
+--- a/lib/engine/ahci_multiplier_port.h
++++ b/lib/engine/ahci_multiplier_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_MULTIPLIER_PORT_H__INCLUDED__
+ #define __AHCI_MULTIPLIER_PORT_H__INCLUDED__
+diff --git a/lib/engine/ahci_phy.h b/lib/engine/ahci_phy.h
+index e2254e7..a44dae0 100644
+--- a/lib/engine/ahci_phy.h
++++ b/lib/engine/ahci_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_PHY_H__INCLUDED__
+ #define __AHCI_PHY_H__INCLUDED__
+diff --git a/lib/engine/ahci_port.h b/lib/engine/ahci_port.h
+index f9e3308..03c109b 100644
+--- a/lib/engine/ahci_port.h
++++ b/lib/engine/ahci_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_PORT_H__INCLUDED__
+ #define __AHCI_PORT_H__INCLUDED__
+diff --git a/lib/engine/ahci_raid_info.h b/lib/engine/ahci_raid_info.h
+index e1c81ae..c70e63e 100644
+--- a/lib/engine/ahci_raid_info.h
++++ b/lib/engine/ahci_raid_info.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_RAID_INFO_H__INCLUDED__
+ #define __AHCI_RAID_INFO_H__INCLUDED__
+diff --git a/lib/engine/ahci_tape.h b/lib/engine/ahci_tape.h
+index cdd9f13..a91fd2c 100644
+--- a/lib/engine/ahci_tape.h
++++ b/lib/engine/ahci_tape.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __AHCI_TAPE_H__INCLUDED__
+ #define __AHCI_TAPE_H__INCLUDED__
+diff --git a/lib/engine/array.h b/lib/engine/array.h
+index 36fb4a4..0986ce3 100644
+--- a/lib/engine/array.h
++++ b/lib/engine/array.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ARRAY_H__INCLUDED__
+ #define __ARRAY_H__INCLUDED__
+diff --git a/lib/engine/block_device.h b/lib/engine/block_device.h
+index 4503914..45dd3db 100644
+--- a/lib/engine/block_device.h
++++ b/lib/engine/block_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __BLOCK_DEVICE_H__INCLUDED__
+ #define __BLOCK_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/cache.h b/lib/engine/cache.h
+index 72cf521..72da20b 100644
+--- a/lib/engine/cache.h
++++ b/lib/engine/cache.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __CACHE_H__INCLUDED__
+ #define __CACHE_H__INCLUDED__
+diff --git a/lib/engine/container.h b/lib/engine/container.h
+index 53867b0..c71180c 100644
+--- a/lib/engine/container.h
++++ b/lib/engine/container.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __CONTAINER_H__INCLUDED__
+ #define __CONTAINER_H__INCLUDED__
+diff --git a/lib/engine/context_manager.h b/lib/engine/context_manager.h
+index fe9c256..6b4a2e7 100644
+--- a/lib/engine/context_manager.h
++++ b/lib/engine/context_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __CONTEXT_H__INCLUDED__
+ #define __CONTEXT_H__INCLUDED__
+diff --git a/lib/engine/controller.h b/lib/engine/controller.h
+index a2f188a..6bd078f 100644
+--- a/lib/engine/controller.h
++++ b/lib/engine/controller.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __CONTROLLER_H__INCLUDED__
+ #define __CONTROLLER_H__INCLUDED__
+diff --git a/lib/engine/enclosure.h b/lib/engine/enclosure.h
+index 3faef0c..f4b13cc 100644
+--- a/lib/engine/enclosure.h
++++ b/lib/engine/enclosure.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ENCLOSURE_H__INCLUDED__
+ #define __ENCLOSURE_H__INCLUDED__
+diff --git a/lib/engine/end_device.h b/lib/engine/end_device.h
+index f147e41..269b236 100644
+--- a/lib/engine/end_device.h
++++ b/lib/engine/end_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __END_DEVICE_H__INCLUDED__
+ #define __END_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/event.h b/lib/engine/event.h
+index cf9bb4f..11a4926 100644
+--- a/lib/engine/event.h
++++ b/lib/engine/event.h
+@@ -12,9 +12,7 @@ Redistribution and use in source and binary forms, with or without modification,
+ 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.
+ */
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __EVENT_H__INCLUDED__
+ #define __EVENT_H__INCLUDED__
+diff --git a/lib/engine/event_manager.h b/lib/engine/event_manager.h
+index 65007b9..a7a8fc3 100644
+--- a/lib/engine/event_manager.h
++++ b/lib/engine/event_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __EVENT_MANAGER_H__INCLUDED__
+ #define __EVENT_MANAGER_H__INCLUDED__
+diff --git a/lib/engine/exception.h b/lib/engine/exception.h
+index 171e45d..183ebb5 100644
+--- a/lib/engine/exception.h
++++ b/lib/engine/exception.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __EXCEPTION_H__INCLUDED__
+ #define __EXCEPTION_H__INCLUDED__
+diff --git a/lib/engine/filesystem.h b/lib/engine/filesystem.h
+index 9c2ce39..b49df07 100644
+--- a/lib/engine/filesystem.h
++++ b/lib/engine/filesystem.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __FILESYSTEM_H__INCLUDED__
+ #define __FILESYSTEM_H__INCLUDED__
+diff --git a/lib/engine/isci.h b/lib/engine/isci.h
+index ea35cd4..0fa602a 100644
+--- a/lib/engine/isci.h
++++ b/lib/engine/isci.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_H__INCLUDED__
+ #define __ISCI_H__INCLUDED__
+diff --git a/lib/engine/isci_cdrom.h b/lib/engine/isci_cdrom.h
+index 87b7e7b..25637f9 100644
+--- a/lib/engine/isci_cdrom.h
++++ b/lib/engine/isci_cdrom.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_CDROM_H__INCLUDED__
+ #define __ISCI_CDROM_H__INCLUDED__
+diff --git a/lib/engine/isci_disk.h b/lib/engine/isci_disk.h
+index 596c3cf..8dd0dae 100644
+--- a/lib/engine/isci_disk.h
++++ b/lib/engine/isci_disk.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_DISK_H__INCLUDED__
+ #define __ISCI_DISK_H__INCLUDED__
+diff --git a/lib/engine/isci_expander.h b/lib/engine/isci_expander.h
+index ca7c2f1..7dc1920 100644
+--- a/lib/engine/isci_expander.h
++++ b/lib/engine/isci_expander.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_EXPANDER_H__INCLUDED__
+ #define __ISCI_EXPANDER_H__INCLUDED__
+diff --git a/lib/engine/isci_expander_phy.h b/lib/engine/isci_expander_phy.h
+index c9cd770..d3d2832 100644
+--- a/lib/engine/isci_expander_phy.h
++++ b/lib/engine/isci_expander_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_EXPANDER_PHY_H__INCLUDED__
+ #define __ISCI_EXPANDER_PHY_H__INCLUDED__
+diff --git a/lib/engine/isci_expander_port.h b/lib/engine/isci_expander_port.h
+index e65a124..4fc9310 100644
+--- a/lib/engine/isci_expander_port.h
++++ b/lib/engine/isci_expander_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_EXPANDER_PORT_H__INCLUDED__
+ #define __ISCI_EXPANDER_PORT_H__INCLUDED__
+diff --git a/lib/engine/isci_phy.h b/lib/engine/isci_phy.h
+index 767a5b2..105c697 100644
+--- a/lib/engine/isci_phy.h
++++ b/lib/engine/isci_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_PHY_H__INCLUDED__
+ #define __ISCI_PHY_H__INCLUDED__
+diff --git a/lib/engine/isci_port.h b/lib/engine/isci_port.h
+index b80be7f..5ccc151 100644
+--- a/lib/engine/isci_port.h
++++ b/lib/engine/isci_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_PORT_H__INCLUDED__
+ #define __ISCI_PORT_H__INCLUDED__
+diff --git a/lib/engine/isci_raid_info.h b/lib/engine/isci_raid_info.h
+index 1df6477..b0b046a 100644
+--- a/lib/engine/isci_raid_info.h
++++ b/lib/engine/isci_raid_info.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_RAID_INFO_H__INCLUDED__
+ #define __ISCI_RAID_INFO_H__INCLUDED__
+diff --git a/lib/engine/isci_tape.h b/lib/engine/isci_tape.h
+index 985f767..a2cef2d 100644
+--- a/lib/engine/isci_tape.h
++++ b/lib/engine/isci_tape.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ISCI_TAPE_H__INCLUDED__
+ #define __ISCI_TAPE_H__INCLUDED__
+diff --git a/lib/engine/list.h b/lib/engine/list.h
+index 9a7c3c3..6395830 100644
+--- a/lib/engine/list.h
++++ b/lib/engine/list.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __LIST_H__INCLUDED__
+ #define __LIST_H__INCLUDED__
+diff --git a/lib/engine/mdadm_config.h b/lib/engine/mdadm_config.h
+index c94020f..e415b4f 100644
+--- a/lib/engine/mdadm_config.h
++++ b/lib/engine/mdadm_config.h
+@@ -11,9 +11,7 @@ Redistribution and use in source and binary forms, with or without modification,
+ 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.
+ */
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __MDADM_CONFIG_H__INCLUDED__
+ #define __MDADM_CONFIG_H__INCLUDED__
+diff --git a/lib/engine/multimedia_device.h b/lib/engine/multimedia_device.h
+index 533370e..694e2a5 100644
+--- a/lib/engine/multimedia_device.h
++++ b/lib/engine/multimedia_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __MULTIMEDIA_DEVICE_H__INCLUDED__
+ #define __MULTIMEDIA_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/nondisk_device.h b/lib/engine/nondisk_device.h
+index 70ebb32..0f00e52 100644
+--- a/lib/engine/nondisk_device.h
++++ b/lib/engine/nondisk_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __CHARACTER_DEVICE_H__INCLUDED__
+ #define __CHARACTER_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/object.h b/lib/engine/object.h
+index b52d3d3..345d58c 100644
+--- a/lib/engine/object.h
++++ b/lib/engine/object.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __OBJECT_H__INCLUDED__
+ #define __OBJECT_H__INCLUDED__
+diff --git a/lib/engine/pci_header.h b/lib/engine/pci_header.h
+index 376f296..c5129a0 100644
+--- a/lib/engine/pci_header.h
++++ b/lib/engine/pci_header.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __PCI_HEADER_H__INCLUDED__
+ #define __PCI_HEADER_H__INCLUDED__
+diff --git a/lib/engine/phy.h b/lib/engine/phy.h
+index f5730a0..c59f7c8 100644
+--- a/lib/engine/phy.h
++++ b/lib/engine/phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __PHY_H__INCLUDED__
+ #define __PHY_H__INCLUDED__
+diff --git a/lib/engine/port.h b/lib/engine/port.h
+index 2f33876..cc48c7c 100644
+--- a/lib/engine/port.h
++++ b/lib/engine/port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __PORT_H__INCLUDED__
+ #define __PORT_H__INCLUDED__
+diff --git a/lib/engine/raid_device.h b/lib/engine/raid_device.h
+index 998e80c..2174162 100644
+--- a/lib/engine/raid_device.h
++++ b/lib/engine/raid_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __RAID_DEVICE_H__INCLUDED__
+ #define __RAID_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/raid_info.h b/lib/engine/raid_info.h
+index 174698a..302be9b 100644
+--- a/lib/engine/raid_info.h
++++ b/lib/engine/raid_info.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __RAID_INFO_H__INCLUDED__
+ #define __RAID_INFO_H__INCLUDED__
+diff --git a/lib/engine/remote_port.h b/lib/engine/remote_port.h
+index c086656..4ddfee3 100644
+--- a/lib/engine/remote_port.h
++++ b/lib/engine/remote_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __REMOTE_PORT_H__INCLUDED__
+ #define __REMOTE_PORT_H__INCLUDED__
+diff --git a/lib/engine/routing_device.h b/lib/engine/routing_device.h
+index 5f857a6..284621e 100644
+--- a/lib/engine/routing_device.h
++++ b/lib/engine/routing_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ROUTING_DEVICE_H__INCLUDED__
+ #define __ROUTING_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/session.h b/lib/engine/session.h
+index a901d1c..3200da1 100644
+--- a/lib/engine/session.h
++++ b/lib/engine/session.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __SESSION_H__INCLUDED__
+ #define __SESSION_H__INCLUDED__
+diff --git a/lib/engine/session_manager.h b/lib/engine/session_manager.h
+index 7177064..87e16c3 100644
+--- a/lib/engine/session_manager.h
++++ b/lib/engine/session_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __SESSION_MANAGER_H__INCLUDED__
+ #define __SESSION_MANAGER_H__INCLUDED__
+diff --git a/lib/engine/storage_device.h b/lib/engine/storage_device.h
+index ddeb66f..20bdab2 100644
+--- a/lib/engine/storage_device.h
++++ b/lib/engine/storage_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __STORAGE_DEVICE_H__INCLUDED__
+ #define __STORAGE_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/stream_device.h b/lib/engine/stream_device.h
+index 9bc111a..b29bd68 100644
+--- a/lib/engine/stream_device.h
++++ b/lib/engine/stream_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __STREAM_DEVICE_H__INCLUDED__
+ #define __STREAM_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/string.h b/lib/engine/string.h
+index 3007dc7..6f348c9 100644
+--- a/lib/engine/string.h
++++ b/lib/engine/string.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __STRING_H__INCLUDED__
+ #define __STRING_H__INCLUDED__
+diff --git a/lib/engine/unique_id_manager.h b/lib/engine/unique_id_manager.h
+index fe79eac..4a13627 100644
+--- a/lib/engine/unique_id_manager.h
++++ b/lib/engine/unique_id_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __UNIQUE_ID_MANAGER_H__INCLUDED__
+ #define __UNIQUE_ID_MANAGER_H__INCLUDED__
+diff --git a/lib/engine/utils.h b/lib/engine/utils.h
+index 86c20cf..5525303 100644
+--- a/lib/engine/utils.h
++++ b/lib/engine/utils.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __UTILS_H__INCLUDED__
+ #define __UTILS_H__INCLUDED__
+diff --git a/lib/engine/volume.h b/lib/engine/volume.h
+index 9a63cbf..3347b31 100644
+--- a/lib/engine/volume.h
++++ b/lib/engine/volume.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ // Forward declarations
+ class Array;
+diff --git a/lib/log/log.h b/lib/log/log.h
+index c0bd63e..8b5f171 100644
+--- a/lib/log/log.h
++++ b/lib/log/log.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __LOG_H__INCLUDED__
+ #define __LOG_H__INCLUDED__
+diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h
+index 7fbb0e9..800b120 100644
+--- a/lib/mpb/machine_bytes.h
++++ b/lib/mpb/machine_bytes.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __ENDIAN_H__INCLUDED__
+ #define __ENDIAN_H__INCLUDED__
+diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h
+index 01782af..c42cdfb 100644
+--- a/lib/mpb/mpb.h
++++ b/lib/mpb/mpb.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __MPB_H__INCLUDED__
+ #define __MPB_H__INCLUDED__
+diff --git a/lib/orom/orom.h b/lib/orom/orom.h
+index f76e3ee..e10311d 100644
+--- a/lib/orom/orom.h
++++ b/lib/orom/orom.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ 
+ 
+ 
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+ 
+ #ifndef __OROM_H__INCLUDED__
+ #define __OROM_H__INCLUDED__
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
new file mode 100644
index 0000000..27df9b5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
@@ -0,0 +1,39 @@
+From ea9ecf4bf305f9509d5822b3823658a40162f43c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 25 Jul 2017 19:08:21 -0700
+Subject: [PATCH] ssieventmonitor: ordered comparison between pointers and
+ zero, actually with NULL
+
+Comparing which is large or small between a pointer and NULL
+however, looks completely illogical. Ordered comparison of
+two valid pointers is legit, but no pointer will be smaller
+than NULL , so comparing if a pointer is larger than NULL
+simply means if the pointer is not NULL.
+
+Fixes errors found with clang e.g.
+
+| ssieventmonitor.cpp:339:53: error: ordered comparison between pointer and zero ('char *' and 'int')
+|                 if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
+|                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/ssieventmonitor.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
+index f04b8f0..7a00122 100644
+--- a/tools/ssieventmonitor.cpp
++++ b/tools/ssieventmonitor.cpp
+@@ -336,7 +336,7 @@ static int _read_mdstat(int fd)
+ 	if (!strncmp(line, "md", 2)) {
+ 	    if (strstr(line, INACTIVE_STR)) { /* possibly container */
+ 		char nextline[1024];
+-		if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
++		if (fgets(nextline, sizeof(nextline) - 1, mdstat) != (char *) NULL) {
+ 		    fclose(mdstat);
+ 		    return 1;
+ 		}
+-- 
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
new file mode 100644
index 0000000..351301c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
@@ -0,0 +1,123 @@
+From 1338ee4e69c465f8f381ec3bfe5058080236edba Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:08:35 -0700
+Subject: [PATCH 2/6] Convert macros into functions
+
+This helps in fixing the security format warnings
+add -fno-builtin-log
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/Makefile.am |  3 ++-
+ lib/log/Makefile.am    |  2 ++
+ lib/log/log.h          | 34 +++++++++++++++++++++-------------
+ src/Makefile.am        |  3 ++-
+ 4 files changed, 27 insertions(+), 15 deletions(-)
+
+Index: ssiapi.1.0.1/lib/engine/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/lib/engine/Makefile.am
++++ ssiapi.1.0.1/lib/engine/Makefile.am
+@@ -113,4 +113,5 @@ libengine_la_SOURCES =          \
+ libengine_la_CPPFLAGS =         \
+         -I$(top_srcdir)         \
+         -I$(top_srcdir)/include \
+-        -I$(top_srcdir)/lib
++        -I$(top_srcdir)/lib     \
++        -fno-builtin-log
+Index: ssiapi.1.0.1/lib/log/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/lib/log/Makefile.am
++++ ssiapi.1.0.1/lib/log/Makefile.am
+@@ -5,3 +5,5 @@ noinst_LTLIBRARIES = liblog.la
+ liblog_la_SOURCES =     \
+         log.c           \
+         log.h
++
++liblog_la_CPPFLAGS = -fno-builtin-log
+Index: ssiapi.1.0.1/lib/log/log.h
+===================================================================
+--- ssiapi.1.0.1.orig/lib/log/log.h
++++ ssiapi.1.0.1/lib/log/log.h
+@@ -23,7 +23,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIG
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif /* __cplusplus */
+-
++#include <stdarg.h>
+ /* */
+ enum log_level {
+     LOG_FIRST = 0,
+@@ -37,26 +37,34 @@ enum log_level {
+ };
+ 
+ /* */
+-#define log(__level, __format, ...)                             \
+-    do { if (log_get_level() >= (enum log_level)(__level))      \
+-        __log(__level, __format, ## __VA_ARGS__);               \
+-    } while (0)
+-
+-#define dlog(__format, ...)                             \
+-	log(LOG_DEBUG, __format, ## __VA_ARGS__);
++void __log(enum log_level level, const char *format, ...)
++    __attribute__((format(printf, 2, 3)));
+ 
+ /* */
+-void log_init(enum log_level level, const char *path);
++enum log_level log_get_level(void);
+ 
+ /* */
+-void log_fini(void);
+-
++static inline void log(enum log_level __level, const char* __format, ...) {
++    va_list ap;
++    va_start(ap, __format);
++    do {
++         if (log_get_level() >= (enum log_level)(__level))
++            __log(__level, __format, ap);
++    } while (0);
++    va_end(ap);
++}
++
++static inline void dlog(const char* __format, ...) {
++    va_list ap;
++    va_start(ap, __format);
++	log(LOG_DEBUG, __format, ap);
++    va_end(ap);
++}
+ /* */
+-void __log(enum log_level level, const char *format, ...)
+-    __attribute__((format(printf, 2, 3)));
++void log_init(enum log_level level, const char *path);
+ 
+ /* */
+-enum log_level log_get_level(void);
++void log_fini(void);
+ 
+ /* */
+ void log_set_level(enum log_level level);
+Index: ssiapi.1.0.1/src/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/src/Makefile.am
++++ ssiapi.1.0.1/src/Makefile.am
+@@ -7,7 +7,8 @@ lib_LTLIBRARIES = libssi.la
+ libssi_la_CPPFLAGS =                    \
+         -I$(top_srcdir)                 \
+         -I$(top_srcdir)/include         \
+-        -I$(top_srcdir)/lib
++        -I$(top_srcdir)/lib             \
++        -fno-builtin-log
+ 
+ libssi_la_LDFLAGS =                     \
+         $(SGUTILS_LDFLAGS)              \
+Index: ssiapi.1.0.1/lib/efi/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/lib/efi/Makefile.am
++++ ssiapi.1.0.1/lib/efi/Makefile.am
+@@ -5,3 +5,4 @@ noinst_LTLIBRARIES = libefi.la
+ libefi_la_SOURCES =             \
+     efi.cpp                       \
+     efi.h
++libefi_la_CPPFLAGS = -fno-builtin-log
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
new file mode 100644
index 0000000..98cd40c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
@@ -0,0 +1,33 @@
+From 781288d6307002cce70ddafb6efb200b7f60294d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:12:43 -0700
+Subject: [PATCH 3/6] Replace canonicalize_file_name with realpath() API
+
+Fixed build on musl where canonicalize_file_name is not implemented
+
+filesystem.cpp:46:15: error: 'canonicalize_file_name' was not declared in this scope
+     char *p = canonicalize_file_name(path);
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/filesystem.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp
+index b99257e..6064837 100644
+--- a/lib/engine/filesystem.cpp
++++ b/lib/engine/filesystem.cpp
+@@ -43,7 +43,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path)
+     if (path == 0) {
+         throw E_NULL_POINTER;
+     }
+-    char *p = canonicalize_file_name(path);
++    char *p = realpath(path, NULL);
+     assign(p);
+     if (p) {
+         free(p);
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
new file mode 100644
index 0000000..7dce0da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
@@ -0,0 +1,54 @@
+From 04e8b99d8195a0e39982ecd27802421610633724 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:18:31 -0700
+Subject: [PATCH 4/6] engine: Fix indentation and missing semi-colon
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/mdadm_config.cpp      | 5 +++--
+ lib/engine/unique_id_manager.cpp | 2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/lib/engine/mdadm_config.cpp b/lib/engine/mdadm_config.cpp
+index 1914ddc..e40c2c7 100644
+--- a/lib/engine/mdadm_config.cpp
++++ b/lib/engine/mdadm_config.cpp
+@@ -118,9 +118,10 @@ void check_configuration()
+         attr >> config;
+         configOk = correct_config(config);
+     } catch (Exception ex) {
+-        if (ex != E_NOT_FOUND)
++        if (ex != E_NOT_FOUND) {
+             dlog("Warning: mdadm config file cannot be read, new one will be written");
+             backup = false;
++        }
+     }
+ 
+     if (configOk && monitor_running()) {
+@@ -134,7 +135,7 @@ void check_configuration()
+             dlog("Warning: failed to update mdadm.conf");
+     }
+     if (restart_monitor() == 0)
+-        dlog("Monitor restarted successfully")
++        dlog("Monitor restarted successfully");
+     else
+         dlog("Error starting Monitor");
+ }
+diff --git a/lib/engine/unique_id_manager.cpp b/lib/engine/unique_id_manager.cpp
+index 99c153c..87d6ddc 100644
+--- a/lib/engine/unique_id_manager.cpp
++++ b/lib/engine/unique_id_manager.cpp
+@@ -185,7 +185,7 @@ void UniqueIdManager::refresh()
+         keyFile >> keyList;
+         keyList += "\n";
+     } catch (...) {
+-        dlog("ssi.keys file missing")
++        dlog("ssi.keys file missing");
+         /* no file? that's ok */
+     }
+     /* process the list to update IdCaches */
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
new file mode 100644
index 0000000..6f4dbf1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
@@ -0,0 +1,40 @@
+From a2e3a2e332c406ea3c56a8d74b61978107df68e6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:23:08 -0700
+Subject: [PATCH 5/6] engine: Define SENTINEL
+
+Fix warnings with gcc7
+test.cpp:12: warning: missing sentinel in function call
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/utils.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/engine/utils.cpp b/lib/engine/utils.cpp
+index 44579a1..8812a8c 100644
+--- a/lib/engine/utils.cpp
++++ b/lib/engine/utils.cpp
+@@ -35,7 +35,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ #include "filesystem.h"
+ #include "utils.h"
+ #include "log/log.h"
+-
++#define SENTINEL (const char *)0
+ /**
+  * @brief capture shell output as binary data
+  *
+@@ -139,7 +139,7 @@ int shell(const String &s)
+          * Before switching into new executable close all non standard
+          * file handlers.*/
+         close_parent_fds();
+-        execl("/bin/sh", "sh", "-c", cmd.get(), NULL);
++        execl("/bin/sh", "sh", "-c", cmd.get(), SENTINEL);
+         /* If we're here then execl failed*/
+         exit(-1);
+         break;
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
new file mode 100644
index 0000000..a7b70e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
@@ -0,0 +1,40 @@
+From df1d56d6b6a6b15d0137619eb8a4b623de6c9633 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:28:59 -0700
+Subject: [PATCH 6/6] tools: Add missing includes and use realpath() instead of
+ canonicalize_file_name
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/ssieventmonitor.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
+index 0553386..f04b8f0 100644
+--- a/tools/ssieventmonitor.cpp
++++ b/tools/ssieventmonitor.cpp
+@@ -18,7 +18,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ #include <unistd.h>
+ #include <dirent.h>
+ #include <errno.h>
+-#include <sys/fcntl.h>
++#include <limits.h>
++#include <fcntl.h>
++#include <libgen.h>
+ #include <sys/select.h>
+ #include <sys/wait.h>
+ #include <sys/inotify.h>
+@@ -99,7 +101,7 @@ static int _exec_ssimsg(void)
+     int status;
+     switch (pid) {
+ 	case 0: {
+-	    cp = canonicalize_file_name("/proc/self/exe");
++	    cp = realpath("/proc/self/exe", NULL);
+ 	    if (cp) {
+ 		strcpy(buffer, cp);
+ 		free(cp);
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
new file mode 100644
index 0000000..d45be59
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
@@ -0,0 +1,21 @@
+Do not override flags thereby respect the flags coming from environment,
+e.g. we need some optimization level turned on when security flags are enabled
+without this change, the build would fail
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: ssiapi.1.0.1/configure.ac
+===================================================================
+--- ssiapi.1.0.1.orig/configure.ac
++++ ssiapi.1.0.1/configure.ac
+@@ -15,11 +15,6 @@ AC_SUBST(VERSION)
+ AM_INIT_AUTOMAKE(ssi, ${VERSION})
+ AM_CONFIG_HEADER(config.h)
+ 
+-dnl Set the language we use
+-CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -D_GNU_SOURCE"
+-CFLAGS="-std=gnu99"
+-CXXFLAGS="-std=gnu++98"
+-
+ dnl Automake 1.11 - silent build rules
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
new file mode 100644
index 0000000..5eb4696
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Intel RSTe with Linux OS SSI API Library"
+
+DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \
+The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset."
+
+HOMEPAGE = "http://irstessi.sourceforge.net/"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0413ff365e0bd733c4869a6797551c6f"
+
+DEPENDS += "sg3-utils"
+
+SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \
+           file://0001-Use-pragma-once-unconditionally.patch \
+           file://0002-Convert-macros-into-functions.patch \
+           file://0003-Replace-canonicalize_file_name-with-realpath-API.patch \
+           file://0004-engine-Fix-indentation-and-missing-semi-colon.patch \
+           file://0005-engine-Define-SENTINEL.patch \
+           file://0006-tools-Add-missing-includes-and-use-realpath-instead-.patch \
+           file://configure-cflags.patch \
+           file://0001-ssieventmonitor-ordered-comparison-between-pointers-.patch \
+           "
+SRC_URI[md5sum] = "02f16d7cbd30d28034093212906591f5"
+SRC_URI[sha256sum] = "e10d283b0f211afb8ebd0bde87c097769613d30a052cdf164753e35e803264c7"
+
+S ="${WORKDIR}/${BPN}.${PV}"
+
+inherit autotools-brokensep
+CXXFLAGS="-std=gnu++98 -D_GNU_SOURCE"
+
+do_configure_prepend(){
+    ./autogen.sh
+}
+
+RDEPENDS_${PN} += "mdadm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
index 5ee4472..cc2727b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
@@ -31,6 +31,8 @@
 
     # support for buggy init.d scripts that refer to an alternative
     # explicit path to start-stop-daemon
-    mkdir -p ${D}/sbin/
-    ln -sf /usr/sbin/start-stop-daemon ${D}/sbin/start-stop-daemon
+    if [ "${base_sbindir}" != "${sbindir}" ]; then
+        mkdir -p ${D}${base_sbindir}
+        ln -sf ${sbindir}/start-stop-daemon ${D}${base_sbindir}/start-stop-daemon
+    fi
 }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
index f2063e4..68f0387 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -1,7 +1,7 @@
 SUMMARY = "Synergy - control multiple computers with one keyboard and mouse"
 HOMEPAGE = "http://synergy-project.org"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0f366945b209c5523e39889f636af00a"
-LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2ba51ca68e055566aade24662f9eb41"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
 SECTION = "x11/utils"
 
 DEPENDS = "virtual/libx11 libxtst libxinerama curl openssl"
@@ -10,11 +10,11 @@
 # depends on virtual/libx11
 REQUIRED_DISTRO_FEATURES = "x11"
 
-SRC_URI = "git://github.com/symless/synergy-core.git;protocol=https"
+SRC_URI = "git://github.com/symless/synergy.git;protocol=http"
 
-# Version 1.7.4-rc8
-SRCREV ?= "588fb4b805dd452556d05dbc03fe29ea5b4e43c0"
-PV = "1.7.3+1.7.4-rc8+${SRCPV}"
+# Version 1.8.8-stable
+SRCREV ?= "c30301e23424db1125664da17deb8c3aa6aec52d"
+PV = "1.8.8+${SRCPV}"
 
 S = "${WORKDIR}/git"
 
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 0977f7e..f1bf9b0 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
@@ -36,6 +36,7 @@
     --with-librabbitmq-client=no \
     --disable-python \
     --disable-java --disable-java-modules \
+    --with-pidfile-dir=${localstatedir}/run/${BPN} \
     ${CONFIG_TLS} \
 "
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb
deleted file mode 100644
index 0bd7af7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "xorg.conf keyboard layout callout"
-DESCRIPTION = "system-setup-keyboard is a daemon to monitor the keyboard layout configured in \
-/etc/sysconfig/keyboard and transfer this into the matching xorg.conf.d snippet."
-
-HOMEPAGE = "https://git.fedorahosted.org/git/system-setup-keyboard.git"
-SECTION = "Applications/System"
-
-SRC_URI = "https://git.fedorahosted.org/cgit/${PN}.git/snapshot/${BP}.tar.gz"
-SRC_URI[md5sum] = "399003968ccc739cddd9cc370af377a0"
-SRC_URI[sha256sum] = "1ef6ef79c3588e85d7f42e99eb80a2e459f966284cf029c2d6fc1b645abcb860"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bf57969a59612c5aca007b340c49d3a2"
-
-inherit pythonnative
-
-DEPENDS = "glib-2.0 system-config-keyboard-native"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-do_compile_prepend() {
-    ${PYTHON} -v get_layouts.py > keyboards.h
-}
-
-do_install() {
-    oe_runmake install DESTDIR=${D}
-    install -d ${D}/etc/X11/xorg.conf.d
-    touch ${D}/etc/X11/xorg.conf.d/00-system-setup-keyboard.conf
-}
-
-FILES_${PN} += "${systemd_unitdir}/system/${BPN}.service"
-
-PNBLACKLIST[system-setup-keyboard] ?= "Depends on blacklisted system-config-keyboard-native - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
index 35840fd..bad9481 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
@@ -6,18 +6,21 @@
 HOMEPAGE = "http://threadingbuildingblocks.org/"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-PRDATE = "20170118"
-PV = "${PRDATE}"
-SRC_URI = "https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb2017_${PRDATE}oss_src.tgz \
+PRDATE = "20170412"
+BRANCH = "tbb_2017"
+SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3"
+PV = "${PRDATE}+${SRCPV}"
+SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \
            file://cross-compile.patch \
-           file://tbb.pc"
-SRC_URI[md5sum] = "26baa6fbcc8f03ee45c0641b91d9588a"
-SRC_URI[sha256sum] = "48bb526287fa8b4e7d1e1b2ba9e5fb9c3e372b497772c06ef9ccd7f93f344e74"
+           file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
+           file://tbb.pc \
+"
 
-S = "${WORKDIR}/tbb2017_${PRDATE}oss/"
+S = "${WORKDIR}/git"
 
 COMPILER ?= "gcc"
 COMPILER_toolchain-clang = "clang"
+
 do_compile() {
     oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4
 }
@@ -38,3 +41,4 @@
 # | make[1]: *** [concurrent_queue.o] Error 1
 ARM_INSTRUCTION_SET = "arm"
 SECURITY_CFLAGS_append = " -fPIC"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
new file mode 100644
index 0000000..7e66945
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
@@ -0,0 +1,37 @@
+From 6b2b136caa68912d77ffe26143cd3da768b9ef80 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 3 Jun 2017 08:39:37 -0700
+Subject: [PATCH] mallinfo() is glibc specific API mark it so
+
+Helps compiling with musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/tbbmalloc/proxy.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp
+index 5ef279d..06c4872 100644
+--- a/src/tbbmalloc/proxy.cpp
++++ b/src/tbbmalloc/proxy.cpp
+@@ -185,6 +185,7 @@ int mallopt(int /*param*/, int /*value*/) __THROW
+     return 1;
+ }
+ 
++#ifdef __GLIBC__
+ struct mallinfo mallinfo() __THROW
+ {
+     struct mallinfo m;
+@@ -192,6 +193,7 @@ struct mallinfo mallinfo() __THROW
+ 
+     return m;
+ }
++#endif
+ 
+ #if __ANDROID__
+ // Android doesn't have malloc_usable_size, provide it to be compatible
+-- 
+2.13.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb
similarity index 88%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.7.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb
index c784fd2..a3efc51 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb
@@ -10,8 +10,8 @@
 SRC_URI = "http://udisks.freedesktop.org/releases/udisks-${PV}.tar.bz2 \
            file://non-gnu-libc.patch \
 "
-SRC_URI[md5sum] = "8bccd36573b75286538bd5bd2c424f45"
-SRC_URI[sha256sum] = "abae2bb3bdc691ca13c1e4c244630b8c881c4f3b35c207299f1b39b7bec83785"
+SRC_URI[md5sum] = "501d11c243bd8c6c00650474cd2afaab"
+SRC_URI[sha256sum] = "da416914812a77e5f4d82b81deb8c25799fd3228d27d52f7bf89a501b1857dda"
 
 CVE_PRODUCT = "udisks"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
index ffe2c26..e332660 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
@@ -2,7 +2,7 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273"
 
-DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native lvm2 \
+DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native \
     dbus-glib-native \
 "
 # optional dependencies: device-mapper parted
@@ -24,7 +24,8 @@
 
 inherit autotools-brokensep systemd gtk-doc
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "libdevmapper"
+PACKAGECONFIG[libdevmapper] = "--enable-devmapper,--disable-devmapper,libdevmapper"
 PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted"
 
 EXTRA_OECONF = "--disable-man-pages --libdir=${base_libdir} --sbindir=${base_sbindir}"
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 909756a..271718e 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
@@ -14,14 +14,15 @@
 SRC_URI[sha256sum] = "7b1ea803c73f3478917166f04f67cce6e45ad7ea5ab6df99b948c17eb1cb235f"
 
 DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool"
-DEPENDS_class-target += "intltool-native gtk+ gtk+3 uim-native takao-fonts"
+DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts"
 
 RDEPENDS_uim = "libuim0 libedit"
-RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0"
+RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0 glibc-utils glibc-gconv-euc-jp"
 
 LEAD_SONAME = "libuim.so.1"
 
-inherit autotools pkgconfig gettext
+inherit autotools pkgconfig gettext qemu gtk-immodules-cache
+GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3"
 
 EXTRA_OECONF += "--disable-emacs \
     --without-scim \
@@ -103,52 +104,36 @@
     ${datadir}/uim/skk*.scm \
 "
 
+PACKAGE_WRITE_DEPS += "qemu-native"
 pkg_postinst_uim-anthy() {
-    if [ -f /usr/bin/uim-module-manager ]; then
-        /usr/bin/uim-module-manager --register anthy --path /etc/uim
-    fi
-}
-
-pkg_postrm_uim-anthy() {
-    if [ -f /usr/bin/uim-module-manager ]; then
-        /usr/bin/uim-module-manager --path /etc/uim --unregister anthy
+    if test -n "$D"; then
+        ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim
+    else
+		uim-module-manager --register anthy --path ${datadir}/uim
     fi
 }
 
 pkg_prerm_uim-anthy() {
-    if [ -f /usr/bin/uim-module-manager ]; then
-        /usr/bin/uim-module-manager --register anthy --path /etc/uim
+    if test -n "$D"; then
+        ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy
+    else
+		uim-module-manager --path ${datadir}/uim --unregister anthy
     fi
 }
 
-pkg_postinst_uim-gtk2.0() {
-    gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
-}
-
 pkg_postinst_uim-skk() {
-    if [ -f /usr/bin/uim-module-manager ]; then
-        /usr/bin/uim-module-manager --register skk --path /etc/uim
+    if test -n "$D"; then
+        ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim
+    else
+		uim-module-manager --register skk --path ${datadir}/uim
     fi
 }
 
 pkg_postrm_uim-skk() {
-    if [ -f /usr/bin/uim-module-manager ]; then
-        /usr/bin/uim-module-manager --path /etc/uim --unregister skk
-    fi
-}
-
-pkg_postinst_uim-common() {
-    if [ -f /usr/bin/uim-module-manager ]; then
-        /usr/bin/uim-module-manager --path /etc/uim --register \
-            tutcode tcode hangul viqr \
-            ipa-x-sampa latin byeoru
-    fi
-}
-
-pkg_prerm_uim-common() {
-    if [ -f /usr/bin/uim-module-manager ]; then
-        /usr/bin/uim-module-manager --path /etc/uim --register \
-        tutcode tcode hangul viqr ipa-x-sampa latin byeoru
+    if test -n "$D"; then
+        ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk
+    else
+		uim-module-manager --path ${datadir}/uim --unregister skk
     fi
 }
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.4.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb
index 3651e18..9314534 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.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] = "78800e1ac7f92b24aabdf433e38f75d2"
-SRC_URI[sha256sum] = "9ca325a6ccef505529b268ebbbd9becd0ce65a65f6ac7ee31e2e5b17648037b0"
+SRC_URI[md5sum] = "ec57b4b7bf0af568f9a7a5603c921d97"
+SRC_URI[sha256sum] = "78605664d027c788f6ab63c50950be6e86c6ba5d030c4cf35a6664337d87f3b2"
 
 inherit autotools pkgconfig gettext gobject-introspection systemd
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
deleted file mode 100644
index 1219cb8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A lightweight Terminal Emulator based on libvte, written in Vala"
-SECTION = "x11/applications"
-DEPENDS = "vte9 intltool-native"
-SRCREV = "0fefa38087581f85fa0631b40500b9428369c146"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-PV = "1.3+gitr${SRCPV}"
-PE = "1"
-PR = "r1"
-
-PNBLACKLIST[vala-terminal] ?= "BROKEN: Doesn't work with B!=S, touch: cannot touch `src/.stamp': No such file or directory - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-inherit autotools perlnative vala
-
-SRC_URI = "${FREESMARTPHONE_GIT}/vala-terminal.git;branch=master"
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN} = "ttf-liberation-mono"
-RREPLACES_${PN} = "openmoko-terminal2"
-RPROVIDES_${PN} = "openmoko-terminal2"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
deleted file mode 100644
index c7bae1c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "VirtualBox Linux Guest Drivers"
-SECTION = "core"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
-
-DEPENDS = "virtual/kernel"
-
-inherit module kernel-module-split
-
-COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
-
-VBOX_NAME = "VirtualBox-${PV}"
-
-SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
-           file://Makefile.utils \
-"
-SRC_URI[md5sum] = "8635387dec6cbfd576ba453355d4dc0c"
-SRC_URI[sha256sum] = "af0776df6d03b2709cb76a69f055487bf12bdb3b4163e2a82959860300283046"
-
-S = "${WORKDIR}/vbox_module"
-
-export BUILD_TARGET_ARCH="${ARCH}"
-export BUILD_TARGET_ARCH_x86-64="amd64"
-export KERN_DIR="${STAGING_KERNEL_DIR}"
-
-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
-    tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
-
-    # add a mount utility to use shared folder from VBox Addition Source Code
-    mkdir -p "${S}/utils"
-    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
-    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
-    install ${S}/../Makefile.utils ${S}/utils/Makefile
-
-}
-
-# compile and install mount utility
-do_compile_append() {
-    oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
-    if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
-        echo "ERROR: One of vbox*.ko modules wasn't built"
-        exit 1
-    fi
-}
-
-module_do_install() {
-    MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
-    install -d $MODULE_DIR
-    install -m 644 vboxguest.ko $MODULE_DIR
-    install -m 644 vboxsf.ko $MODULE_DIR
-    install -m 644 vboxvideo.ko $MODULE_DIR
-}
-
-do_install_append() {
-    install -d ${D}${base_sbindir}
-    install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
-}
-
-PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-
-FILES_${PN} = "${base_sbindir}"
-
-# autoload if installed
-KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
-
-# http://errors.yoctoproject.org/Errors/Details/83333/
-PNBLACKLIST[vboxguestdrivers] ?= "BROKEN: not compatible with default kernel version 4.8 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
similarity index 93%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.18.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
index 4085b9f..fdefe03 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
@@ -14,8 +14,8 @@
 SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
            file://Makefile.utils \
 "
-SRC_URI[md5sum] = "1a7db64cd69ba6d39574fb333e031251"
-SRC_URI[sha256sum] = "7ed0959bbbd02826b86b3d5dc8348931ddfab267c31f8ed36ee53c12f5522cd9"
+SRC_URI[md5sum] = "d3aec8190c649d7e0d92ba374779dfe3"
+SRC_URI[sha256sum] = "b5715035e681a11ef1475f83f9503d34a00f0276b89c572eebec363dda80c8a9"
 
 S = "${WORKDIR}/vbox_module"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0427.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0427.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0427.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
similarity index 98%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0427.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
index 1f86fcd..407ce5e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0427.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
@@ -10,7 +10,7 @@
            file://disable_acl_header_check.patch;patchdir=.. \
            file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
 "
-SRCREV = "ad4187e6fc9c8e1083a172852d958a70a689a75c"
+SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228"
 
 S = "${WORKDIR}/git/src"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
deleted file mode 100644
index cfa2f6c..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.in	2014-08-18 01:25:43.911597023 -0700
-+++ b/configure.in	2014-08-18 01:26:27.763786629 -0700
-@@ -8,7 +8,7 @@
- AC_CONFIG_HEADERS([config.h])
- AC_CONFIG_SRCDIR([configure.in])
- 
--AM_INIT_AUTOMAKE([1.9 dist-bzip2 subdir-objects no-define])
-+AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 subdir-objects no-define])
- 
- AM_MAINTAINER_MODE
- AC_PROG_CC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
deleted file mode 100644
index 4394e52..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff -ur xchat-2.8.8-orig/plugins/perl/perl.c xchat-2.8.8/plugins/perl/perl.c
---- xchat-2.8.8-orig/plugins/perl/perl.c	2014-08-30 14:09:05.125116286 -0700
-+++ xchat-2.8.8/plugins/perl/perl.c	2014-08-30 14:09:45.281106532 -0700
-@@ -31,7 +31,7 @@
- #endif
- 
- #undef PACKAGE
--#include "../../config.h"		  /* for #define OLD_PERL */
-+#include <config.h>		  /* for #define OLD_PERL */
- #include "xchat-plugin.h"
- 
- static xchat_plugin *ph;		  /* plugin handle */
-diff -ur xchat-2.8.8-orig/src/common/network.c xchat-2.8.8/src/common/network.c
---- xchat-2.8.8-orig/src/common/network.c	2014-08-30 14:09:05.137116222 -0700
-+++ xchat-2.8.8/src/common/network.c	2014-08-30 14:13:52.729116323 -0700
-@@ -24,7 +24,7 @@
- #include <unistd.h>
- #include <glib.h>
- 
--#include "../../config.h"				  /* grab USE_IPV6 and LOOKUPD defines */
-+#include <config.h>				  /* grab USE_IPV6 and LOOKUPD defines */
- 
- #define WANTSOCKET
- #define WANTARPA
-diff -ur xchat-2.8.8-orig/src/common/ssl.c xchat-2.8.8/src/common/ssl.c
---- xchat-2.8.8-orig/src/common/ssl.c	2014-08-30 14:09:05.137116222 -0700
-+++ xchat-2.8.8/src/common/ssl.c	2014-08-30 14:14:08.449133899 -0700
-@@ -23,7 +23,7 @@
- #include <string.h>				  /* strncpy() */
- #include "ssl.h"					  /* struct cert_info */
- #include "inet.h"
--#include "../../config.h"		  /* HAVE_SNPRINTF */
-+#include <config.h>		  /* HAVE_SNPRINTF */
- 
- #ifndef HAVE_SNPRINTF
- #define snprintf g_snprintf
-diff -ur xchat-2.8.8-orig/src/common/util.c xchat-2.8.8/src/common/util.c
---- xchat-2.8.8-orig/src/common/util.c	2014-08-30 14:09:05.133116243 -0700
-+++ xchat-2.8.8/src/common/util.c	2014-08-30 14:10:23.633116070 -0700
-@@ -41,7 +41,7 @@
- #include "xchatc.h"
- #include <ctype.h>
- #include "util.h"
--#include "../../config.h"
-+#include <config.h>
- 
- #define WANTSOCKET
- #include "inet.h"
-diff -ur xchat-2.8.8-orig/src/common/xchat.h xchat-2.8.8/src/common/xchat.h
---- xchat-2.8.8-orig/src/common/xchat.h	2014-08-30 14:09:05.133116243 -0700
-+++ xchat-2.8.8/src/common/xchat.h	2014-08-30 14:13:42.797116472 -0700
-@@ -1,4 +1,4 @@
--#include "../../config.h"
-+#include <config.h>
- 
- #include <glib.h>
- #include <time.h>			/* need time_t */
-diff -ur xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h xchat-2.8.8/src/fe-gtk/fe-gtk.h
---- xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h	2014-08-30 14:09:05.129116272 -0700
-+++ xchat-2.8.8/src/fe-gtk/fe-gtk.h	2014-08-30 14:10:13.309115951 -0700
-@@ -1,4 +1,4 @@
--#include "../../config.h"
-+#include <config.h>
- 
- #ifdef WIN32
- /* If you're compiling this for Windows, your release is un-official
-diff -ur xchat-2.8.8-orig/src/fe-gtk/xtext.c xchat-2.8.8/src/fe-gtk/xtext.c
---- xchat-2.8.8-orig/src/fe-gtk/xtext.c	2014-08-30 14:09:05.129116272 -0700
-+++ xchat-2.8.8/src/fe-gtk/xtext.c	2014-08-30 14:10:00.313138254 -0700
-@@ -51,7 +51,7 @@
- #include <gtk/gtkwindow.h>
- 
- #ifdef XCHAT
--#include "../../config.h"			/* can define USE_XLIB here */
-+#include <config.h>			/* can define USE_XLIB here */
- #else
- #define USE_XLIB
- #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
deleted file mode 100644
index c9bce6a..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- xchat-2.8.8.orig/src/common/xchat.h	2009-08-16 11:40:16.000000000 +0200
-+++ xchat-2.8.8/src/common/xchat.h	2012-05-06 08:30:16.125755497 +0200
-@@ -1,10 +1,6 @@
- #include "../../config.h"
- 
--#include <glib/gslist.h>
--#include <glib/glist.h>
--#include <glib/gutils.h>
--#include <glib/giochannel.h>
--#include <glib/gstrfuncs.h>
-+#include <glib.h>
- #include <time.h>			/* need time_t */
- 
- #ifndef XCHAT_H
---- xchat-2.8.8.orig/src/common/servlist.c	2010-05-16 09:24:26.000000000 +0200
-+++ xchat-2.8.8/src/common/servlist.c	2012-05-06 08:30:45.681758019 +0200
-@@ -24,7 +24,6 @@
- #include <unistd.h>
- 
- #include "xchat.h"
--#include <glib/ghash.h>
- 
- #include "cfgfiles.h"
- #include "fe.h"
---- xchat-2.8.8.orig/src/common/util.c	2009-08-16 11:40:16.000000000 +0200
-+++ xchat-2.8.8/src/common/util.c	2012-05-06 08:31:10.389760122 +0200
-@@ -39,7 +39,6 @@
- #include <errno.h>
- #include "xchat.h"
- #include "xchatc.h"
--#include <glib/gmarkup.h>
- #include <ctype.h>
- #include "util.h"
- #include "../../config.h"
---- xchat-2.8.8.orig/src/common/text.c	2010-05-30 04:14:41.000000000 +0200
-+++ xchat-2.8.8/src/common/text.c	2012-05-06 08:31:22.300761137 +0200
-@@ -28,7 +28,6 @@
- #include <sys/mman.h>
- 
- #include "xchat.h"
--#include <glib/ghash.h>
- #include "cfgfiles.h"
- #include "chanopt.h"
- #include "plugin.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
deleted file mode 100644
index 408c700..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Full-featured IRC chat client with scripting support"
-LICENSE = "GPLv2+"
-HOMEPAGE = "http://www.xchat.org"
-SECTION = "x11/network"
-
-DEPENDS = "libgcrypt zlib gtk+ libsexy"
-DEPENDS += "gdk-pixbuf-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-PR = "r2"
-
-SRC_URI = "http://xchat.org/files/source/2.8/xchat-${PV}.tar.bz2 \
-    file://glib-2.32.patch \
-    file://automake-foreign.patch \
-    file://fix-includes-for-separate-build.patch \
-"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG ??= "dbus"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus-glib"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
-PACKAGECONFIG[python] = "--enable-python,--disable-python,python"
-
-EXTRA_OECONF = "\
-    --enable-maintainer-mode \
-    --disable-perl \
-    --disable-tcl \
-"
-
-RDEPENDS_${PN} += "dbus"
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dbg += "${libdir}/xchat/plugins/.debug"
-
-SRC_URI[md5sum] = "6775c44f38e84d06c06c336b32c4a452"
-SRC_URI[sha256sum] = "0d6d69437b5e1e45f3e66270fe369344943de8a1190e498fafa5296315a27db0"
-
-PNBLACKLIST[xchat] ?= "Depends on blacklisted libsexy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
similarity index 69%
rename from import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
index bf99aff..e3d52e6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
@@ -15,8 +15,8 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/xmlstar/${BP}.tar.gz \
            file://configure.ac.patch \
            file://0001-usage2c.awk-fix-wrong-basename-regexp.patch"
-SRC_URI[md5sum] = "0c6db295d0cf9ff0d439edb755b7e8f6"
-SRC_URI[sha256sum] = "47b4ed042ea2909257f2a386001af49fceb303f84da7214779ccf99fffc6bbba"
+SRC_URI[md5sum] = "f3c5dfa3b1a2ee06cd57c255cc8b70a0"
+SRC_URI[sha256sum] = "15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca"
 
 inherit autotools
 
@@ -24,10 +24,3 @@
 EXTRA_OECONF="--disable-build-docs \
   --with-libxml-prefix=${STAGING_LIBDIR}/.. \
   --with-libxslt-prefix=${STAGING_LIBDIR}/.."
-
-#Makefile:2116: recipe for target 'src/elem-usage.c' failed
-#make[1]: *** [src/elem-usage.c] Error 1
-#/bin/bash: src/escape-usage.c: No such file or directory
-#Makefile:2116: recipe for target 'src/escape-usage.c' failed
-#make[1]: *** [src/escape-usage.c] Error 1
-PARALLEL_MAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
new file mode 100644
index 0000000..192e05f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
@@ -0,0 +1,37 @@
+From 232daf5fca6fb52cced5e810f2601fe1a71b96d8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 8 Jun 2017 16:49:50 -0700
+Subject: [PATCH 1/3] Add correct printf qualifier for off_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/bios/ebda_region/ebda_region.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: git/src/bios/ebda_region/ebda_region.c
+===================================================================
+--- git.orig/src/bios/ebda_region/ebda_region.c
++++ git/src/bios/ebda_region/ebda_region.c
+@@ -83,9 +83,9 @@ static int ebda_test1(fwts_framework *fw
+ 	if ((entry != NULL) &&
+ 	    (entry->type == FWTS_MEMORY_MAP_RESERVED ||
+ 	     entry->type == FWTS_MEMORY_MAP_ACPI)) {
+-		fwts_passed(fw, "EBDA region mapped at 0x%lx and reserved as a %" PRId64
++		fwts_passed(fw, "EBDA region mapped at 0x%jdx and reserved as a %" PRId64
+ 			"K region in the %s table at 0x%" PRIx64 "..0x%" PRIx64 ".",
+-			ebda_addr,
++			(intmax_t)ebda_addr,
+ 			(entry->end_address - entry->start_address) / 1024,
+ 			memory_map_name,
+ 			entry->start_address,
+@@ -93,8 +93,8 @@ static int ebda_test1(fwts_framework *fw
+ 	} else
+ 		fwts_failed(fw, LOG_LEVEL_MEDIUM,
+ 			"EBDAMappedNotReserved",
+-			"EBDA region mapped at 0x%lx but not reserved in the %s table.",
+-			ebda_addr, memory_map_name);
++			"EBDA region mapped at 0x%jdx but not reserved in the %s table.",
++			(intmax_t)ebda_addr, memory_map_name);
+ 		
+ 	return FWTS_OK;
+ }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch
new file mode 100644
index 0000000..8ad0789
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch
@@ -0,0 +1,48 @@
+From 100a107a53d5dc9b0554252ac5dbf2c9330615e9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Jun 2017 07:25:09 -0700
+Subject: [PATCH 1/3] Include poll.h instead of deprecated sys/poll.h
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/src/fwts_ipmi.c   | 3 ++-
+ src/lib/src/fwts_pipeio.c | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/lib/src/fwts_ipmi.c b/src/lib/src/fwts_ipmi.c
+index cbb27611..70d11cfa 100644
+--- a/src/lib/src/fwts_ipmi.c
++++ b/src/lib/src/fwts_ipmi.c
+@@ -18,10 +18,11 @@
+  *
+  */
+ 
++#include <poll.h>
++
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+-#include <sys/poll.h>
+ #include <sys/ioctl.h>
+ #include <linux/ipmi.h>
+ 
+diff --git a/src/lib/src/fwts_pipeio.c b/src/lib/src/fwts_pipeio.c
+index fd719640..bdc5b2ea 100644
+--- a/src/lib/src/fwts_pipeio.c
++++ b/src/lib/src/fwts_pipeio.c
+@@ -30,9 +30,9 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <paths.h>
++#include <poll.h>
+ 
+ #include <sys/param.h>
+-#include <sys/poll.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <errno.h>
+-- 
+2.13.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch
new file mode 100644
index 0000000..35ce883
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch
@@ -0,0 +1,53 @@
+From 25f18b9ac37960dc12a3b648a5c866bd56ef2cbe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 8 Jun 2017 16:50:23 -0700
+Subject: [PATCH 2/3] Add C99 defined format for printing uint64_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/opal/reserv_mem.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/opal/reserv_mem.c b/src/opal/reserv_mem.c
+index eeec2947..f0672e05 100644
+--- a/src/opal/reserv_mem.c
++++ b/src/opal/reserv_mem.c
+@@ -185,7 +185,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
+ 		regions[j].start = (uint64_t)be64toh(ranges[2 * j]);
+ 		regions[j].len = (uint64_t)be64toh(ranges[2 * j + 1]);
+ 		fwts_log_info(fw, "Region name %80s"
+-			" start: 0x%08lx, len: 0x%08lx\n",
++			" start: 0x%08" PRIx64 ", len: 0x%08" PRIx64 "\n",
+ 			regions[j].name, regions[j].start, regions[j].len);
+ 	}
+ 
+@@ -248,7 +248,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
+ 				fwts_failed(fw, LOG_LEVEL_MEDIUM,
+ 					"ImageSizeMismatch",
+ 					"Mismatch in homer-image size, "
+-					"expected: 0x%lx, actual: 0x%lx",
++					"expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "",
+ 					configstruct.homer, regions[j].len);
+ 				ok = false;
+ 			} else
+@@ -261,7 +261,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
+ 				fwts_failed(fw, LOG_LEVEL_MEDIUM,
+ 					"ImageSizeMismatch",
+ 					"Mismatch in slw-image size, "
+-					"expected: 0x%lx, actual: 0x%lx",
++					"expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "",
+ 					configstruct.slw, regions[j].len);
+ 				ok = false;
+ 			} else
+@@ -274,7 +274,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
+ 				fwts_failed(fw, LOG_LEVEL_MEDIUM,
+ 					"ImageSizeMismatch",
+ 					"Mismatch in occ-common-area size, "
+-					"expected: 0x%lx, actual: 0x%lx",
++					"expected: 0x%" PRIx64", actual: 0x%" PRIx64"",
+ 					configstruct.occ_common,
+ 					regions[j].len);
+ 				ok = false;
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
new file mode 100644
index 0000000..3b83ca5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
@@ -0,0 +1,33 @@
+From 0e89127cd02ecd5ea4506b935cb2b59eb94107d2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Jun 2017 07:37:20 -0700
+Subject: [PATCH 2/3] Define __SWORD_TYPE if not defined by libc
+
+__SWORD_TYPE is internal to glibc, therefore
+check and define it if needed e.g. on musl
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/src/fwts_uefi.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/lib/src/fwts_uefi.c b/src/lib/src/fwts_uefi.c
+index 1f9d31fa..2d925f8d 100644
+--- a/src/lib/src/fwts_uefi.c
++++ b/src/lib/src/fwts_uefi.c
+@@ -59,6 +59,10 @@ typedef struct {
+ #define UEFI_IFACE_SYSFS		(2)	/* sysfs */
+ #define UEFI_IFACE_EFIVARS		(3)	/* efivar fs */
+ 
++#ifndef __SWORD_TYPE
++typedef __typeof__( ((struct statfs *)0)->f_type )	__SWORD_TYPE;
++#endif
++
+ /* File system magic numbers */
+ #define PSTOREFS_MAGIC          ((__SWORD_TYPE)0x6165676C)
+ #define EFIVARFS_MAGIC          ((__SWORD_TYPE)0xde5e81e4)
+-- 
+2.13.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch
new file mode 100644
index 0000000..f84fbff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch
@@ -0,0 +1,30 @@
+From 0857269d5a053b5b4c31cfa01b6501526b24035f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Jun 2017 07:39:28 -0700
+Subject: [PATCH 3/3] Undefine PAGE_SIZE
+
+musl defines PAGE_SIZE and build complains
+of multiple definitions
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/src/fwts_acpi_tables.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
+index 1d4fc705..71023ad2 100644
+--- a/src/lib/src/fwts_acpi_tables.c
++++ b/src/lib/src/fwts_acpi_tables.c
+@@ -42,6 +42,7 @@
+ #define BIOS_START	(0x000e0000)		/* Start of BIOS memory */
+ #define BIOS_END  	(0x000fffff)		/* End of BIOS memory */
+ #define BIOS_LENGTH	(BIOS_END - BIOS_START)	/* Length of BIOS memory */
++#undef PAGE_SIZE
+ #define PAGE_SIZE	(4096)
+ 
+ static fwts_acpi_table_info	tables[ACPI_MAX_TABLES];
+-- 
+2.13.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
new file mode 100644
index 0000000..3cd3fbb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
@@ -0,0 +1,76 @@
+From d0d76820efe51dd404d381fc4c46544008e757dd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 8 Jun 2017 16:50:59 -0700
+Subject: [PATCH 3/3] use intptr_t to fix pointer-to-int-cast issues
+
+uintptr_t is guaranteed to be wide enough that
+converting a void* to uintptr_t and back again
+will yield the original pointer value
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/src/fwts_acpi_tables.c | 4 ++--
+ src/lib/src/fwts_mmap.c        | 2 +-
+ src/lib/src/fwts_smbios.c      | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
+index 832f8d66..d0006529 100644
+--- a/src/lib/src/fwts_acpi_tables.c
++++ b/src/lib/src/fwts_acpi_tables.c
+@@ -150,7 +150,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr,
+ 	fwts_acpi_table_rsdp *rsdp = NULL;
+ 	*rsdp_len = 0;
+ 
+-	if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
++	if ((mem = fwts_mmap((uintptr_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
+ 		return NULL;
+ 
+ 	if (fwts_safe_memread(mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) {
+@@ -456,7 +456,7 @@ static int fwts_acpi_load_tables_from_firmware(fwts_framework *fw)
+ 	if ((rsdp = fwts_acpi_get_rsdp(fw, rsdp_addr, &rsdp_len)) == NULL)
+ 		return FWTS_ERROR;
+ 
+-	fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(off_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
++	fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(uintptr_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
+ 
+ 	/* Load any tables from XSDT if it's valid */
+ 	if (rsdp->xsdt_address) {
+diff --git a/src/lib/src/fwts_mmap.c b/src/lib/src/fwts_mmap.c
+index a09f688e..9fe6329a 100644
+--- a/src/lib/src/fwts_mmap.c
++++ b/src/lib/src/fwts_mmap.c
+@@ -81,7 +81,7 @@ int fwts_munmap(void *mem, const size_t size)
+ 	off_t offset;
+ 
+ 	page_size = fwts_page_size();
+-	offset = ((off_t)(mem)) & (page_size - 1);
++	offset = ((uintptr_t)(mem)) & (page_size - 1);
+ 
+ 	if (munmap((void *)((uint8_t *)mem - offset), size + offset) < 0)
+ 		return FWTS_ERROR;
+diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c
+index 8d0ea39b..63b4bf25 100644
+--- a/src/lib/src/fwts_smbios.c
++++ b/src/lib/src/fwts_smbios.c
+@@ -54,7 +54,7 @@ static void *fwts_smbios_find_entry_uefi(fwts_framework *fw, fwts_smbios_entry *
+ 	if ((addr = fwts_scan_efi_systab("SMBIOS")) != NULL) {
+ 		fwts_smbios_entry *mapped_entry;
+ 
+-		if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) {
++		if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) {
+ 			*entry = *mapped_entry;
+ 			(void)fwts_munmap(mapped_entry, sizeof(fwts_smbios_entry));
+ 			*type  = FWTS_SMBIOS;
+@@ -84,7 +84,7 @@ static void *fwts_smbios30_find_entry_uefi(fwts_framework *fw, fwts_smbios30_ent
+ 	if ((addr = fwts_scan_efi_systab("SMBIOS3")) != NULL) {
+ 		fwts_smbios30_entry *mapped_entry;
+ 
+-		if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) {
++		if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) {
+ 			*entry = *mapped_entry;
+ 			(void)fwts_munmap(mapped_entry, sizeof(fwts_smbios30_entry));
+ 			return addr;
+-- 
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
index 4c4ae66..87a23af 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
@@ -5,11 +5,17 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519"
 
-PV = "17.03.00"
+PV = "17.03.00+git${SRCPV}"
 
-SRCREV = "e3e9d1442b4cc70f5b30199f584cec8e25aeaad4"
+SRCREV = "0153ea51cb648b3067a1b327eee6a075b6cfa330"
 SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git \
            file://0001-ignore-constant-logical-operand-warning-with-clang.patch \
+           file://0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \
+           file://0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \
+           file://0003-Undefine-PAGE_SIZE.patch \
+           file://0001-Add-correct-printf-qualifier-for-off_t.patch \
+           file://0002-Add-C99-defined-format-for-printing-uint64_t.patch \
+           file://0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \
            "
 
 S = "${WORKDIR}/git"
@@ -17,10 +23,12 @@
 COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux"
 
 DEPENDS = "libpcre json-c glib-2.0 dtc"
+DEPENDS_append_libc-musl = " libexecinfo"
 
 inherit autotools pkgconfig
 
 CFLAGS += "-I${STAGING_INCDIR}/json-c -Wno-error=unknown-pragmas"
+LDFLAGS_append_libc-musl = " -lexecinfo"
 
 FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}"
 FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la"