diff --git a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.6.2.bb b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.7.1.bb
similarity index 79%
rename from meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.6.2.bb
rename to meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.7.1.bb
index e62c1d3..1ed97a2 100644
--- a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.6.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.7.1.bb
@@ -2,8 +2,8 @@
 DESCRIPTION = "A command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface."
 HOMEPAGE = "https://github.com/CLIUtils/CLI11"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c271fee3ae28e11b24b97284d9f82887"
-SRCREV = "bd4dc911847d0cde7a6b41dfa626a85aab213baf"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8489f3831fc7b75264c1d5e346251a74"
+SRCREV = "49ac989a9527ee9bb496de9ded7b4872c2e0e5ca"
 PV .= "+git${SRCPV}"
 
 SRC_URI += "gitsm://github.com/CLIUtils/CLI11 \
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.13.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.13.bb
index 1b1265f..0704512 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.13.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.13.bb
@@ -17,3 +17,7 @@
 S = "${WORKDIR}/git"
 
 inherit cmake pkgconfig
+
+# Temporary until https://github.com/Microsoft/cpprestsdk/issues/1099
+# is fixed properly
+CXXFLAGS += "-Wno-error=deprecated-copy -Wno-error=redundant-move"
diff --git a/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb
deleted file mode 100644
index 620e780..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-include gsl.inc
-
-SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "494ffefd90eef4ada678c306bab4030b"
-SRC_URI[sha256sum] = "85b907e57902e2b7606ef3aef960302ffdd13bd9dc5b8fcbfa75e4f0bf340ea3"
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.5.bb b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.5.bb
new file mode 100644
index 0000000..4e85418
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_2.5.bb
@@ -0,0 +1,6 @@
+include gsl.inc
+
+SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "52fcbe147ba413d78841084cb43c95fb"
+SRC_URI[sha256sum] = "0460ad7c2542caaddc6729762952d345374784100223995eb14d614861f2258d"
diff --git a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
new file mode 100644
index 0000000..3da67d1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
@@ -0,0 +1,151 @@
+SUMMARY = "Hunspell dictionaries used by Maliit"
+
+#Provided by Titus Wormer (wooorm) https://github.com/wooorm/dictionaries
+
+LICENSE = "MIT"
+LICENSE_dictionaries/bg = "LGPL 2.1"
+LICENSE_dictionaries/br = "GPL 3.0"
+LICENSE_dictionaries/ca-valencia = "GPL 2.0 & LGPL-2.1"
+LICENSE_dictionaries/ca = "GPL 2.0 & LGPL-2.1"
+LICENSE_dictionaries/cs = "GPL-2.0"
+LICENSE_dictionaries/da = "GPL-2.0"
+LICENSE_dictionaries/de-AT = "GPL-3.0"
+LICENSE_dictionaries/de-CH = "GPL-3.0"
+LICENSE_dictionaries/de = "GPL-3.0"
+LICENSE_dictionaries/el-polyton = "GPL-2.0"
+LICENSE_dictionaries/el = "GPL-2.0"
+LICENSE_dictionaries/en-AU = "LGPL-2.0"
+LICENSE_dictionaries/en-CA = "MIT & BSD"
+LICENSE_dictionaries/en-GB = "LGPL-2.0"
+LICENSE_dictionaries/en-US = "MIT & BSD"
+LICENSE_dictionaries/en-ZA = "LGPL 2.1"
+LICENSE_dictionaries/eo = "GPL-2.0"
+LICENSE_dictionaries/es = "GPL-3.0"
+LICENSE_dictionaries/et = "LGPL-2.1"
+LICENSE_dictionaries/eu = "GPL-2.0"
+LICENSE_dictionaries/fo = "GPL-2.0"
+LICENSE_dictionaries/fr = "MPL-2.0"
+LICENSE_dictionaries/fur = "GPL-2.0"
+LICENSE_dictionaries/fy = "GPL-3.0"
+LICENSE_dictionaries/ga = "GPL-2.0"
+LICENSE_dictionaries/gd = "GPL-3.0"
+LICENSE_dictionaries/gl = "GPL-3.0"
+LICENSE_dictionaries/he = "AGPL-3.0"
+LICENSE_dictionaries/hr = "GPL-3.0"
+LICENSE_dictionaries/hu = "GPL-2.0"
+LICENSE_dictionaries/hy-arevela = "GPL-2.0"
+LICENSE_dictionaries/hy-arevmda = "GPL-2.0"
+LICENSE_dictionaries/ia = "GPL-3.0"
+LICENSE_dictionaries/ie = "Apache-2.0"
+LICENSE_dictionaries/is = "CC BY-SA 3.0 & CC BY 4.0"
+LICENSE_dictionaries/it = "GPL-3.0"
+LICENSE_dictionaries/ko = "MPL-1.1 & GPL-2.0 & LGPL-2.1"
+LICENSE_dictionaries/la = "GPL-3.0"
+LICENSE_dictionaries/lb = "EUPL-1.1"
+LICENSE_dictionaries/lt = "Other"
+LICENSE_dictionaries/ltg = "LGPL-2.1"
+LICENSE_dictionaries/lv = "LGPL-2.1"
+LICENSE_dictionaries/mk = "GPL-3.0"
+LICENSE_dictionaries/mn = "GPL-2.0"
+LICENSE_dictionaries/nb = "GPL-2.0"
+LICENSE_dictionaries/nds = "GPL-2.0"
+LICENSE_dictionaries/ne = "LGPL-2.1"
+LICENSE_dictionaries/nl = "BSD"
+LICENSE_dictionaries/nn = "GPL-2.0"
+LICENSE_dictionaries/pl = "GPL-3.0"
+LICENSE_dictionaries/pt-BR = "LGPL 2.1"
+LICENSE_dictionaries/pt = "GPL-2.0"
+LICENSE_dictionaries/ro = "GPL-2.0"
+LICENSE_dictionaries/ru = "BSD"
+LICENSE_dictionaries/rw = "GPL-3.0"
+LICENSE_dictionaries/sk = "GPL-2.0"
+LICENSE_dictionaries/sl = "GPL-2.0"
+LICENSE_dictionaries/sr-Latn = "LGPL 3.0"
+LICENSE_dictionaries/sr = "LGPL 3.0"
+LICENSE_dictionaries/sv = "LGPL 3.0"
+LICENSE_dictionaries/tr = "MIT"
+LICENSE_dictionaries/uk = "GPL 2.0"
+LICENSE_dictionaries/vi = "GPL 3.0"
+LIC_FILES_CHKSUM = " \
+    file://dictionaries/bg/license;md5=ab14e2ded1a43b84be9aba2be64b9814 \
+    file://dictionaries/br/license;md5=2e046c64edc0a4e47fb3ea614e6c82c4 \
+    file://dictionaries/ca-valencia/license;md5=da087cefab7bc3b7687203198a0042ec \
+    file://dictionaries/ca/license;md5=da087cefab7bc3b7687203198a0042ec \
+    file://dictionaries/cs/license;md5=e0496d626a53ad31addea1869c1bed53 \
+    file://dictionaries/da/license;md5=b7678b3e997999043be3503dc717d96d \
+    file://dictionaries/de-AT/license;md5=a03d823e8cd00fd71c9ba18b8ec4ccf1 \
+    file://dictionaries/de-CH/license;md5=a03d823e8cd00fd71c9ba18b8ec4ccf1 \
+    file://dictionaries/de/license;md5=a03d823e8cd00fd71c9ba18b8ec4ccf1 \
+    file://dictionaries/el-polyton/license;md5=d952bcbf1c67129920f03536197c7281 \
+    file://dictionaries/el/license;md5=90b757dd77b1ebbf473eef31037a59e8 \
+    file://dictionaries/en-AU/license;md5=dae002c846eab5e1132ba2e00692dc68 \
+    file://dictionaries/en-CA/license;md5=6c205de0cbcae4b42cf992bb355a5346 \
+    file://dictionaries/en-GB/license;md5=dd6d2bbd7b7f4519448f2b995fd99cd4 \
+    file://dictionaries/en-US/license;md5=244a909f295640bfafeb8d9e522d454b \
+    file://dictionaries/en-ZA/license;md5=56e4b4ca965de3bba6db42494cc34576 \
+    file://dictionaries/eo/license;md5=eb723b61539feef013de476e68b5c50a \
+    file://dictionaries/es/license;md5=b41cabf4e6f2a7d951684246518bea4f \
+    file://dictionaries/et/readme.md;md5=59d851f12cc280f893b245938abc1905 \
+    file://dictionaries/fo/license;md5=fa9ce505d07423c9f8e6c1073f4806c2 \
+    file://dictionaries/fr/license;md5=2346c7bffe6ab4d51730ab3116817c72 \
+    file://dictionaries/fur/license;md5=28ac8c6e75d6c44b60016a8c850036e3 \
+    file://dictionaries/fy/license;md5=c05115c38ca2a4aa95cb9c9b00ed78df \
+    file://dictionaries/ga/license;md5=ee7d601b5d3be3856a169afa71eb3376 \
+    file://dictionaries/gd/license;md5=b5f39c26d691733095323a59d0f02216 \
+    file://dictionaries/gl/license;md5=d32239bcb673463ab874e80d47fae504 \
+    file://dictionaries/he/license;md5=e627dcdf6878e7eca4454e39d1489271 \
+    file://dictionaries/hr/license;md5=4b03c9b6e41a6ef12b4e31d2fb224d46 \
+    file://dictionaries/hu/license;md5=c9755266de74fdbe69636bdb3076b603 \
+    file://dictionaries/hy-arevela/license;md5=c690b6bc807de0a6dcd62db030843ee4 \
+    file://dictionaries/hy-arevmda/license;md5=c690b6bc807de0a6dcd62db030843ee4 \
+    file://dictionaries/ia/license;md5=25c37bbb54f9ab5da9b4bcdda2e2f68e \
+    file://dictionaries/ie/license;md5=fa818a259cbed7ce8bc2a22d35a464fc \
+    file://dictionaries/is/license;md5=db5e38a312b91d717561514767c95999 \
+    file://dictionaries/it/license;md5=31d06285633a89f4d0267895ef8b7107 \
+    file://dictionaries/ko/license;md5=5ff35d5b0523cccb3049edff77c73a10 \
+    file://dictionaries/la/license;md5=9bc08ae2930eb806cee44bbae905b7ba \
+    file://dictionaries/lb/license;md5=5d6417331778645577c40c3329a3d559 \
+    file://dictionaries/lt/license;md5=3d1264d7017271c6731fefaba912a15f \
+    file://dictionaries/ltg/license;md5=72c786f9d43bb07c101766457fcf6435 \
+    file://dictionaries/lv/license;md5=957d42bd58feff079daa6ede1d215585 \
+    file://dictionaries/mk/license;md5=c05a3747d4c871f3c6378909668ec72d \
+    file://dictionaries/mn/license;md5=93a1be573a1bd039cb4e17c21ed800a7 \
+    file://dictionaries/nb/license;md5=6b50c67a5ee9ba5af1b4ab6c009b66f2 \
+    file://dictionaries/nds/license;md5=08c69ee106e67a1085d45dc723ae5396 \
+    file://dictionaries/ne/license;md5=620e39f1aec72b0bdbc922128dd08267 \
+    file://dictionaries/nl/license;md5=f9181fe437dd701ce6ae690f6e09b119 \
+    file://dictionaries/nn/license;md5=9d372c99817cb42bdd1f6c0acb7f4d11 \
+    file://dictionaries/pl/license;md5=5d0961c4eee8448d5f3738b1ff04ebe8 \
+    file://dictionaries/pt-BR/license;md5=08a7e74543d3e612e7613f2959bedab0 \
+    file://dictionaries/pt/license;md5=53d8ed71b4053ef0ccfcf6b3f89880a8 \
+    file://dictionaries/ro/license;md5=db18b1d6cfc0d4ca32371cb76900de2c \
+    file://dictionaries/ru/license;md5=a3d4108679bd3b76ec1a86520b5362cf \
+    file://dictionaries/rw/license;md5=784d7dc7357bd924e8d5642892bf1b6b \
+    file://dictionaries/sk/license;md5=7fb3956bf960db433deedec7746d33c5 \
+    file://dictionaries/sl/license;md5=4965d53062ea2045837facf483475ac7 \
+    file://dictionaries/sr-Latn/license;md5=0139a4b8ce316882cceae8924030950d \
+    file://dictionaries/sr/license;md5=0139a4b8ce316882cceae8924030950d \
+    file://dictionaries/sv/license;md5=fe5c586fe56d04fbdc44df187129ac29 \
+    file://dictionaries/tr/readme.md;md5=27c07bbfa543cfdd163f2dad491703bd \
+    file://dictionaries/uk/license;md5=7702f203b58979ebbc31bfaeb44f219c \
+    file://dictionaries/vi/license;md5=8d9ecb4e7577ce760029786aba7ecec5 \
+"
+
+RDEPENDS_${PN} = "hunspell"
+
+PV = "0.0.0+git${SRCPV}"
+SRCREV = "820a65e539e34a3a8c2a855d2450b84745c624ee"
+SRC_URI = "git://github.com/wooorm/dictionaries.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+    for LANGUAGE in `ls -d1 ${S}/dictionaries/*` ; do
+        LANGUAGE_DIR=`basename $LANGUAGE`
+        install -D -m0644 $LANGUAGE/index.dic ${D}${datadir}/hunspell/$LANGUAGE_DIR.dic
+        install -D -m0644 $LANGUAGE/index.aff ${D}${datadir}/hunspell/$LANGUAGE_DIR.aff
+        install -D -m0644 $LANGUAGE/LICENSE   ${D}${datadir}/hunspell/LICENSE-$LANGUAGE_DIR 2>/dev/null || echo "No LICENSE for language $LANGUAGE"
+    done
+}
+
+FILES_${PN} = "${datadir}/hunspell"
diff --git a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb
index 40da3b4..c2fb4fa 100644
--- a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb
@@ -6,9 +6,10 @@
     file://COPYING.LESSER;md5=c96ca6c1de8adc025adfada81d06fba5 \
 "
 
-SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz"
-SRC_URI[md5sum] = "b2399a4aa927e8b3e171d9ea6737cc02"
-SRC_URI[sha256sum] = "bb27b86eb910a8285407cf3ca33b62643a02798cf2eef468c0a74f6c3ee6bc8a"
+SRCREV = "4ddd8ed5ca6484b930b111aec50c2750a6119a0f"
+SRC_URI = "git://github.com/${BPN}/${BPN}.git"
+
+S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig gettext
 
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb
index f235db0..4ee06d7 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.8.bb
@@ -9,9 +9,9 @@
 DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool"
 
 BASE_PV := "${PV}"
-PV .= "_43"
+PV .= "_47"
 SRC_URI = "git://github.com/ImageMagick/ImageMagick.git "
-SRCREV = "723c2bd9cc716a9267a8afe08354d67bb60dabd5"
+SRCREV = "b672df7a44b0ab0219b1fa78b3673c2810ddd374"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
old mode 100644
new mode 100755
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
rename to meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
index 56a018b..fd02f4a
--- a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
@@ -43,10 +43,10 @@
 
 SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
 
-SRC_URI[md5sum] = "e79b799ae3ce149aa924c7520e993024"
-SRC_URI[sha256sum] = "c282de8d678ecbfda32ce4b5c85fc02f77c2a39a062f068bd8e774d29ddc9bf8"
+SRC_URI[md5sum] = "0220d01753469f83921f8f41ae5054c1"
+SRC_URI[sha256sum] = "14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a"
 
 do_install() {
-    oe_runmake install PREFIX=${D}
+    oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir}
 }
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
index cd77506..89679cb 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -7,9 +7,6 @@
 
 inherit autotools pkgconfig
 
-# enable tools
-PACKAGECONFIG ?= "tools"
-
 PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
 PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
index 96615eb..3ecfffd 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
@@ -1,5 +1,8 @@
 require libgpiod.inc
 
+# enable tools
+PACKAGECONFIG ?= "tools"
+
 PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
 
 SRC_URI[md5sum] = "2aa1e1a80c3c919ae142ab9a55fb59ca"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.3.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.3.bb
index e513a33..ffa2b9f 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.3.bb
@@ -5,6 +5,9 @@
 SRC_URI[md5sum] = "9f7530a5d56f070ba0af78d6ba077973"
 SRC_URI[sha256sum] = "6ec837f23e8f2196e5976dec4ac81403170830075e7f33ede1394eaf67f2e962"
 
+# enable tools and cxx bindings
+PACKAGECONFIG ?= "cxx tools"
+
 PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
 PACKAGECONFIG[tests] = "--enable-tests --enable-install-tests,--disable-tests --disable-install-tests,kmod udev"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
similarity index 79%
rename from meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
rename to meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
index 87d99c1..c72df6d 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
@@ -2,14 +2,15 @@
 DESCRIPTION = "\
 Libp11 is a library implementing a small layer on top of PKCS \
 make using PKCS"
-HOMEPAGE = "http://www.opensc-project.org/libp11"
+HOMEPAGE = "https://github.com/OpenSC/libp11"
+BUGTRACKER = "https://github.com/OpenSC/libp11/issues"
 SECTION = "Development/Libraries"
 LICENSE = "LGPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
 DEPENDS = "libtool openssl"
 
 SRC_URI = "git://github.com/OpenSC/libp11.git"
-SRCREV = "64569a391897bd29c5060b19fa4613e619e59277"
+SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb
index dfca385..1aee674 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_162.bb
@@ -32,4 +32,4 @@
     sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
 }
 
-RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject"
+RDEPENDS_${PN}-ptest += "make bash mce-inject"
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
index 4fa7960..3919f99 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
@@ -1,10 +1,7 @@
-From a805b601fcf4bb9e269566a8d25e48d9e60915c0 Mon Sep 17 00:00:00 2001
+From c3436ec8a502a40579abf62be0a479fa9d7888ad Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 11:14:24 +0800
-Subject: [PATCH] From 8bdd4481d822b6625d8bf719431ca74ed1b5e021 Mon Sep 17
- 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> Date: Mon, 16
- Jul 2018 15:56:37 +0800 Subject: [PATCH] multipath-tools: modify Makefile.inc
- for cross-compilation
+Date: Tue, 4 Jun 2019 11:39:39 +0800
+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.
@@ -27,23 +24,28 @@
 
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 
-update for version 0.7.9
+update for version 0.8.1
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- Makefile.inc | 6 ------
- 1 file changed, 6 deletions(-)
+ Makefile.inc | 11 -----------
+ 1 file changed, 11 deletions(-)
 
 diff --git a/Makefile.inc b/Makefile.inc
-index 295afb9..7136db3 100644
+index 661f141..3f9fd28 100644
 --- a/Makefile.inc
 +++ b/Makefile.inc
-@@ -38,12 +38,6 @@ ifndef RUN
+@@ -35,17 +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')
+-	ifeq ($(shell pkg-config --modversion libsystemd >/dev/null 2>&1 && echo 1), 1)
+-		SYSTEMD = $(shell pkg-config --modversion libsystemd)
+-	else
+-		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
 -endif
 -
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.0.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.0.bb
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb
index 0cff48d..55866e9 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb
@@ -46,7 +46,7 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
 
-SRCREV = "eb688e1833e9533bfd9496ddc37eecc93590defa"
+SRCREV = "e23b5d7cf67a9c543e118f2f6b902594a02a804a"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_4.1.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.2.bb
similarity index 79%
rename from meta-openembedded/meta-oe/recipes-support/nano/nano_4.1.bb
rename to meta-openembedded/meta-oe/recipes-support/nano/nano_4.2.bb
index 1fe36cd..19a8b47 100644
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.2.bb
@@ -12,8 +12,8 @@
 PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
 
 SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-SRC_URI[md5sum] = "235eaf7d27db3c3679b2054361ff6181"
-SRC_URI[sha256sum] = "86bde596a038d6fde619b49d785c0ebf0b3eaa7001a39dbe9316bd5392d221d0"
+SRC_URI[md5sum] = "9ef42650960fa71671dc5318841a27a9"
+SRC_URI[sha256sum] = "1143defce62e391b241252ffdb6e5c1ded56cfe26d46ee81b796abe0ccc45df9"
 
 inherit autotools gettext pkgconfig
 
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
index 4e8986d..f37ccde 100644
--- a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -15,13 +15,15 @@
 
 inherit cmake
 
-# Incompatible with archs other than armv7 and aarch64
+# Incompatible with archs other than armv7, armv7ve and aarch64
 COMPATIBLE_MACHINE = "(^$)"
 COMPATIBLE_MACHINE_aarch64 = "(.*)"
 COMPATIBLE_MACHINE_armv7a = "(.*)"
+COMPATIBLE_MACHINE_armv7ve = "(.*)"
 NE10_TARGET_ARCH = ""
 NE10_TARGET_ARCH_aarch64 = "aarch64"
 NE10_TARGET_ARCH_armv7a = "armv7"
+NE10_TARGET_ARCH_armv7ve = "armv7"
 
 EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"'
 
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
index b7a4058..0736572 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -1,4 +1,4 @@
-From 929150608c16644695f19cd2e0cc8a06a41cd497 Mon Sep 17 00:00:00 2001
+From fc9bf1ce9f1a21150b10736a1c968d4ca6d4eaa3 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
@@ -11,14 +11,14 @@
 
 Signed-off-by: Martin Kelly <mkelly@xevo.com>
 ---
- configure.ac | 4 ++--
+ open-vm-tools/configure.ac | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -944,7 +944,7 @@ if test "$with_dnet" = "yes"; then
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 325a39f5..713ea683 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -949,7 +949,7 @@ if test "$with_dnet" = "yes"; then
        AC_VMW_CHECK_LIB([dnet],
                         [DNET],
                         [],
@@ -27,7 +27,7 @@
                         [],
                         [dnet.h],
                         [intf_open],
-@@ -954,7 +954,7 @@ if test "$with_dnet" = "yes"; then
+@@ -959,7 +959,7 @@ if test "$with_dnet" = "yes"; then
  
     if test $have_dnet = "no"; then
  		AC_MSG_ERROR(
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
index f905601..34628ff 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
@@ -1,7 +1,7 @@
-From 5818acc8032e3247257730376e947330340a07b3 Mon Sep 17 00:00:00 2001
+From 3fa237b3afabc293e563292b8d89265a871626ad 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>
+Subject: [PATCH] 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
@@ -11,14 +11,14 @@
 
 Signed-off-by: Martin Kelly <mkelly@xevo.com>
 ---
- lib/wiper/wiperPosix.c | 3 +++
+ open-vm-tools/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 @@
+index bd542410..ccf06293 100644
+--- a/open-vm-tools/lib/wiper/wiperPosix.c
++++ b/open-vm-tools/lib/wiper/wiperPosix.c
+@@ -43,6 +43,9 @@
  #  include <libgen.h>
  # endif /* __FreeBSD_version >= 500000 */
  #endif
@@ -28,6 +28,3 @@
  #include <unistd.h>
  
  #include "vmware.h"
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Use-configure-test-for-struct-timespec.patch
similarity index 66%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Use-configure-test-for-struct-timespec.patch
index f02d00f..6d2e498 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Use-configure-test-for-struct-timespec.patch
@@ -1,7 +1,7 @@
-From bf1eafb07297711baf9320b1edcca8a3376f117d Mon Sep 17 00:00:00 2001
+From bf9292ff9bd25467a014d6c2070805d163daa4c9 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
+Subject: [PATCH] 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.
@@ -12,11 +12,11 @@
  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
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 713ea683..48ff1ef3 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -1208,6 +1208,7 @@ AC_TYPE_OFF_T
  AC_TYPE_PID_T
  AC_TYPE_SIZE_T
  AC_CHECK_MEMBERS([struct stat.st_rdev])
@@ -24,10 +24,10 @@
  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
+diff --git a/open-vm-tools/lib/include/hgfsUtil.h b/open-vm-tools/lib/include/hgfsUtil.h
+index 609f4c00..a3a022d4 100644
+--- a/open-vm-tools/lib/include/hgfsUtil.h
++++ b/open-vm-tools/lib/include/hgfsUtil.h
 @@ -53,13 +53,7 @@
  #      include <time.h>
  #   endif
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
similarity index 64%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
index d1f4eff..e107ecf 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
@@ -1,7 +1,7 @@
-From 31ae6f42458f90d4994a4ad8e2b7673691612c36 Mon Sep 17 00:00:00 2001
+From 5a795b234c617150915a607776c76377948870a6 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
+Subject: [PATCH] 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.
@@ -14,11 +14,11 @@
  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 {
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index f2b7ce67..0e6351a9 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -105,11 +105,13 @@ typedef struct DirectoryEntry {
  #endif
  
  /*
@@ -35,11 +35,11 @@
  #   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 @@
+diff --git a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+index 89133652..7e9c3a91 100644
+--- a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
++++ b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+@@ -52,7 +52,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)
@@ -48,7 +48,7 @@
  #define ACCESSPERMS           (S_IRWXU | S_IRWXG | S_IRWXO)
  #endif
  #ifdef __ANDROID__
-@@ -60,7 +60,6 @@
+@@ -61,7 +61,6 @@
   */
  #define NO_SETMNTENT
  #define NO_ENDMNTENT
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch
similarity index 77%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch
index ad19fb2..c6378b8 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch
@@ -1,7 +1,7 @@
-From 6cc1c22cc30320f56da552a76bd956db8f255b6a Mon Sep 17 00:00:00 2001
+From 719d60978f979cf2e03771a9b8a62e36c92639f9 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
+Subject: [PATCH] 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.
@@ -21,15 +21,15 @@
 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(-)
+ open-vm-tools/lib/misc/idLinux.c         | 30 +++++++++++-------------
+ open-vm-tools/lib/nicInfo/nicInfoPosix.c |  6 ++++-
+ 3 files changed, 23 insertions(+), 17 deletions(-)
 
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -892,6 +892,7 @@ AC_CHECK_FUNCS(
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 48ff1ef3..71e684bb 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -897,6 +897,7 @@ AC_CHECK_FUNCS(
  
  AC_CHECK_FUNCS([ecvt])
  AC_CHECK_FUNCS([fcvt])
@@ -37,7 +37,7 @@
  
  AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
  
-@@ -1076,10 +1077,13 @@ AC_PATH_PROG(
+@@ -1145,10 +1146,13 @@ fi
  ###
  
  AC_CHECK_HEADERS([crypt.h])
@@ -51,10 +51,10 @@
  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
+diff --git a/open-vm-tools/lib/misc/idLinux.c b/open-vm-tools/lib/misc/idLinux.c
+index b950cf84..1dcfb508 100644
+--- a/open-vm-tools/lib/misc/idLinux.c
++++ b/open-vm-tools/lib/misc/idLinux.c
 @@ -27,12 +27,9 @@
  #include <sys/syscall.h>
  #include <string.h>
@@ -114,10 +114,10 @@
  #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
+diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+index a22981d5..b4e08681 100644
+--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
++++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 @@ -34,9 +34,13 @@
  #include <sys/socket.h>
  #include <sys/stat.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Use-configure-test-for-sys-stat.h-include.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Use-configure-test-for-sys-stat.h-include.patch
new file mode 100644
index 0000000..9a227f9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Use-configure-test-for-sys-stat.h-include.patch
@@ -0,0 +1,25 @@
+From 11adcf43a1e7aa39ee4d82fa567f37e5b0c6ca81 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:41:01 +0000
+Subject: [PATCH] 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(-)
+
+diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
+index e5273786..cabc4137 100644
+--- a/open-vm-tools/services/plugins/vix/vixTools.c
++++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch
new file mode 100644
index 0000000..11be2d4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch
@@ -0,0 +1,24 @@
+From cf1284fda8fb22a2b27cb2ce7962f166166e74c3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:48:04 -0700
+Subject: [PATCH] Fix subdir objects configure error
+
+Fix build on musl while here
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 71e684bb..b76a7966 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -303,6 +303,7 @@ AC_ARG_ENABLE(
+    [],
+    [enable_resolutionkms="auto"])
+ 
++AM_INIT_AUTOMAKE([subdir-objects])
+ AM_INIT_AUTOMAKE
+ 
+ ###
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-include-poll.h-instead-of-sys-poll.h.patch
similarity index 63%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-include-poll.h-instead-of-sys-poll.h.patch
index 8820581..814b9e3 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-include-poll.h-instead-of-sys-poll.h.patch
@@ -1,4 +1,4 @@
-From 4981bb3013d7f1e40e44618076d99af3484eedea Mon Sep 17 00:00:00 2001
+From e4f0b99d90e26b15106f634caad1c3dea9e09cb8 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 13 Jun 2018 23:02:50 -0700
 Subject: [PATCH] include poll.h instead of sys/poll.h
@@ -10,10 +10,10 @@
  open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
-index 13908679..e0a68e7e 100644
---- a/lib/asyncsocket/asyncsocket.c
-+++ b/lib/asyncsocket/asyncsocket.c
+diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+index 65b07109..b41aa29d 100644
+--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
++++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
 @@ -69,8 +69,8 @@
  #else
  #include <stddef.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
similarity index 63%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
index 4d6a0fd..5c1aa7c 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
@@ -1,4 +1,4 @@
-From 92955b3a6180b4285d11ef79766df01b9ab60dbd Mon Sep 17 00:00:00 2001
+From 8793466326dd10b0d2dbb83c64beff5cc8c0fc7d Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 13 Jun 2018 23:11:58 -0700
 Subject: [PATCH] Rename poll.h to vm_poll.h
@@ -19,10 +19,10 @@
  7 files changed, 7 insertions(+), 7 deletions(-)
  rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
 
-diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
-index e0a68e7e..b9675674 100644
---- a/lib/asyncsocket/asyncsocket.c
-+++ b/lib/asyncsocket/asyncsocket.c
+diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+index b41aa29d..8691309d 100644
+--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
++++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
 @@ -86,7 +86,7 @@
  #include "random.h"
  #include "asyncsocket.h"
@@ -32,10 +32,10 @@
  #include "log.h"
  #include "err.h"
  #include "hostinfo.h"
-diff --git a/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c
-index 991a7941..ed0c09f9 100644
---- a/lib/hgfsServer/hgfsServer.c
-+++ b/lib/hgfsServer/hgfsServer.c
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
+index 7ea3b7f4..740c4fed 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
 @@ -48,7 +48,7 @@
  #include "hgfsServerOplock.h"
  #include "hgfsDirNotify.h"
@@ -45,10 +45,10 @@
  #include "mutexRankLib.h"
  #include "vm_basic_asm.h"
  #include "unicodeOperations.h"
-diff --git a/lib/include/asyncsocket.h b/lib/include/asyncsocket.h
-index 524147ea..103f944f 100644
---- a/lib/include/asyncsocket.h
-+++ b/lib/include/asyncsocket.h
+diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h
+index ec9b45aa..dc91e738 100644
+--- a/open-vm-tools/lib/include/asyncsocket.h
++++ b/open-vm-tools/lib/include/asyncsocket.h
 @@ -164,7 +164,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.
@@ -58,10 +58,10 @@
  struct IVmdbPoll;
  typedef struct AsyncSocketPollParams {
     int flags;               /* Default 0, only POLL_FLAG_NO_BULL is valid */
-diff --git a/lib/include/pollImpl.h b/lib/include/pollImpl.h
+diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h
 index 46442e55..8bc66997 100644
---- a/lib/include/pollImpl.h
-+++ b/lib/include/pollImpl.h
+--- a/open-vm-tools/lib/include/pollImpl.h
++++ b/open-vm-tools/lib/include/pollImpl.h
 @@ -44,7 +44,7 @@
  #define INCLUDE_ALLOW_USERLEVEL
  #include "includeCheck.h"
@@ -71,13 +71,13 @@
  #include "vm_basic_asm.h"
  
  #if defined(__cplusplus)
-diff --git a/lib/include/poll.h b/lib/include/vm_poll.h
+diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h
 similarity index 99%
 rename from open-vm-tools/lib/include/poll.h
 rename to open-vm-tools/lib/include/vm_poll.h
-index 988fe6d0..e9e74fb5 100644
---- a/lib/include/poll.h
-+++ b/lib/include/vm_poll.h
+index 6acd4f35..fbc88494 100644
+--- a/open-vm-tools/lib/include/poll.h
++++ b/open-vm-tools/lib/include/vm_poll.h
 @@ -60,7 +60,7 @@ extern "C" {
  #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
  #include <sys/kernel.h>
@@ -87,10 +87,10 @@
  #define HZ 100
  #endif
  #ifdef __ANDROID__
-diff --git a/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c
-index c2c51583..d6c62f10 100644
---- a/lib/rpcIn/rpcin.c
-+++ b/lib/rpcIn/rpcin.c
+diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
+index 8eea7d86..c48f5be2 100644
+--- a/open-vm-tools/lib/rpcIn/rpcin.c
++++ b/open-vm-tools/lib/rpcIn/rpcin.c
 @@ -57,7 +57,7 @@
  
  #if defined(VMTOOLS_USE_VSOCKET)
@@ -100,10 +100,10 @@
  #  include "asyncsocket.h"
  #  include "vmci_defs.h"
  #include "dataMap.h"
-diff --git a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+diff --git a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
 index 03700937..f0b49ad7 100644
---- a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-+++ b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+--- a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
++++ b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
 @@ -48,7 +48,7 @@
  #include "rpcout.h"
  #include "rabbitmqProxyConst.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch
similarity index 81%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch
index c7d34c5..784b4fc 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch
@@ -1,4 +1,4 @@
-From a2e7d9273261c5c5cbc33796900f415097f5455e Mon Sep 17 00:00:00 2001
+From e86a259e1ce19c70ecfdece69ab53a07c63a34e1 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 13 Jun 2018 23:16:53 -0700
 Subject: [PATCH] use posix strerror_r unless on gnu libc system
@@ -8,10 +8,10 @@
  open-vm-tools/lib/err/errPosix.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)
 
-diff --git a/lib/err/errPosix.c b/lib/err/errPosix.c
+diff --git a/open-vm-tools/lib/err/errPosix.c b/open-vm-tools/lib/err/errPosix.c
 index c81b4c13..7a403640 100644
---- a/lib/err/errPosix.c
-+++ b/lib/err/errPosix.c
+--- a/open-vm-tools/lib/err/errPosix.c
++++ b/open-vm-tools/lib/err/errPosix.c
 @@ -31,6 +31,7 @@
  #include <errno.h>
  #include <string.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
deleted file mode 100644
index 7872239..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-uintmax_t-for-handling-rlim_t.patch
similarity index 73%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-uintmax_t-for-handling-rlim_t.patch
index e802dca..0a1d008 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-uintmax_t-for-handling-rlim_t.patch
@@ -1,4 +1,4 @@
-From e694a122c1ff32d8b951ae55756796f9576d23ed Mon Sep 17 00:00:00 2001
+From 18eea61a7a768c6c3b57c6683c7bef7049f0f6ab Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 13 Jun 2018 23:37:09 -0700
 Subject: [PATCH] Use uintmax_t for handling rlim_t
@@ -12,10 +12,10 @@
  open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/lib/hgfsServer/hgfsServerLinux.c b/lib/hgfsServer/hgfsServerLinux.c
-index 2e73707d..a2fdb850 100644
---- a/lib/hgfsServer/hgfsServerLinux.c
-+++ b/lib/hgfsServer/hgfsServerLinux.c
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index 0e6351a9..a2ee1740 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 @@ -5294,8 +5294,8 @@ HgfsWriteCheckIORange(off_t offset,         // IN:
        goto exit;
     }
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
similarity index 77%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
index 432496f..d69b74e 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
@@ -1,4 +1,4 @@
-From 43d859f9d5eecdc0fdc1a6bf539bcde4a152e6f5 Mon Sep 17 00:00:00 2001
+From 123c690f12f560022305b0cf19499e7f81a690ae Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 27 Aug 2018 23:22:21 -0700
 Subject: [PATCH] Use off64_t instead of __off64_t
@@ -9,13 +9,13 @@
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- lib/file/fileIOPosix.c | 4 ++--
+ open-vm-tools/lib/file/fileIOPosix.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/lib/file/fileIOPosix.c b/lib/file/fileIOPosix.c
+diff --git a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
 index 23108279..bcd2ddc5 100644
---- a/lib/file/fileIOPosix.c
-+++ b/lib/file/fileIOPosix.c
+--- a/open-vm-tools/lib/file/fileIOPosix.c
++++ b/open-vm-tools/lib/file/fileIOPosix.c
 @@ -206,10 +206,10 @@ static AlignedPool alignedPool;
         * the symbols (and anyone building XOPEN<700 gets nothing).
         */
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-misc-Do-not-print-NULL-string-into-logs.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
similarity index 81%
rename from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-misc-Do-not-print-NULL-string-into-logs.patch
rename to meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
index 7af265a..88f4f69 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-misc-Do-not-print-NULL-string-into-logs.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
@@ -1,4 +1,4 @@
-From e25d00d8297cba044c3a4d2e38749e54adac66c1 Mon Sep 17 00:00:00 2001
+From cfc6839362bd96bf2f42954160f16a60bf1de377 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 22 Dec 2018 19:59:02 -0800
 Subject: [PATCH] misc: Do not print NULL string into logs
@@ -14,10 +14,10 @@
  open-vm-tools/lib/misc/util_misc.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git open-vm-tools/lib/misc/util_misc.c b/open-vm-tools/lib/misc/util_misc.c
+diff --git a/open-vm-tools/lib/misc/util_misc.c b/open-vm-tools/lib/misc/util_misc.c
 index 198c23d2..0ac0a335 100644
---- open-vm-tools/lib/misc/util_misc.c
-+++ open-vm-tools/lib/misc/util_misc.c
+--- a/open-vm-tools/lib/misc/util_misc.c
++++ b/open-vm-tools/lib/misc/util_misc.c
 @@ -719,8 +719,8 @@ Util_ExpandString(const char *fileName) // IN  file path to expand
        ASSERT(!freeChunk[i]);
        chunks[i] = expand;
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch
new file mode 100644
index 0000000..b5ccffd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch
@@ -0,0 +1,1281 @@
+From af9eca8689c97ea8e792902b458a31608286655e Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@lge.com>
+Date: Thu, 13 Jun 2019 16:01:03 +0000
+Subject: [PATCH] Fix new warnings from gcc9
+
+Imported from Fedora:
+https://src.fedoraproject.org/rpms/open-vm-tools/raw/master/f/gcc9-warnings.patch
+
+Upstream bug:
+https://github.com/vmware/open-vm-tools/issues/330
+
+Upstream-Status: Pending
+---
+ open-vm-tools/hgfsmounter/hgfsmounter.c   |  14 +-
+ open-vm-tools/lib/hgfsServer/hgfsServer.c |  24 ++-
+ open-vm-tools/vmhgfs-fuse/dir.c           | 175 ++++++++---------
+ open-vm-tools/vmhgfs-fuse/file.c          | 217 +++++++++++++---------
+ open-vm-tools/vmhgfs-fuse/filesystem.c    |  46 ++---
+ open-vm-tools/vmhgfs-fuse/fsutil.c        |  63 ++++---
+ open-vm-tools/vmhgfs-fuse/link.c          | 125 +++++++------
+ 7 files changed, 367 insertions(+), 297 deletions(-)
+
+diff --git a/open-vm-tools/hgfsmounter/hgfsmounter.c b/open-vm-tools/hgfsmounter/hgfsmounter.c
+index 0921b700..3f6798dc 100644
+--- a/open-vm-tools/hgfsmounter/hgfsmounter.c
++++ b/open-vm-tools/hgfsmounter/hgfsmounter.c
+@@ -1,5 +1,5 @@
+ /*********************************************************
+- * Copyright (C) 2006-2017 VMware, Inc. All rights reserved.
++ * Copyright (C) 2006-2019 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
+@@ -514,11 +514,13 @@ ParseFmask(const char *option,         // IN:  option string along with value
+            HgfsMountInfo *mountInfo,   // OUT: mount data
+            int *flags)                 // OUT: mount flags
+ {
++   unsigned short fmask = 0;
+    ASSERT(option);
+    ASSERT(mountInfo);
+ 
+-   if (ParseMask(option, &mountInfo->fmask)) {
+-      LOG("Setting mount fmask to %o\n", mountInfo->fmask);
++   if (ParseMask(option, &fmask)) {
++      LOG("Setting mount fmask to %o\n", fmask);
++      mountInfo->fmask = fmask;
+       return TRUE;
+    }
+ 
+@@ -548,11 +550,13 @@ ParseDmask(const char *option,         // IN:  option string along with value
+            HgfsMountInfo *mountInfo,   // OUT: mount data
+            int *flags)                 // OUT: mount flags
+ {
++   unsigned short dmask = 0;
+    ASSERT(option);
+    ASSERT(mountInfo);
+ 
+-   if (ParseMask(option, &mountInfo->dmask)) {
+-      LOG("Setting mount dmask to %o\n", mountInfo->dmask);
++   if (ParseMask(option, &dmask)) {
++      LOG("Setting mount dmask to %o\n", dmask);
++      mountInfo->dmask = dmask;
+       return TRUE;
+    }
+ 
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
+index 740c4fed..422383cd 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
+@@ -1,5 +1,5 @@
+ /*********************************************************
+- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
++ * Copyright (C) 1998-2019 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
+@@ -159,7 +159,7 @@ struct HgfsTransportSessionInfo {
+    HgfsServerChannelData channelCapabilities;
+ };
+ 
+-/* The input request paramaters object. */
++/* The input request parameters object. */
+ typedef struct HgfsInputParam {
+    const void *request;          /* Hgfs header followed by operation request */
+    size_t requestSize;           /* Size of Hgfs header and operation request */
+@@ -2682,8 +2682,8 @@ HgfsSearchHandle2Search(HgfsHandle handle,         // IN: handle
+  *    None
+  *
+  * Side effects:
+- *    If there isnt enough memory to accomodate the new names, those file nodes
+- *    that couldnt be updated are deleted.
++ *    If there isn't enough memory to accommodate the new names, those file nodes
++ *    that couldn't be updated are deleted.
+  *
+  *-----------------------------------------------------------------------------
+  */
+@@ -3399,7 +3399,7 @@ HgfsServerSessionReceive(HgfsPacket *packet,      // IN: Hgfs Packet
+ 
+    /* Send error if we fail to process the op. */
+    if (HGFS_ERROR_SUCCESS != status) {
+-      LOG(4, ("Error %d occured parsing the packet\n", (uint32)status));
++      LOG(4, ("Error %d occurred parsing the packet\n", (uint32)status));
+       HgfsServerCompleteRequest(status, 0, input);
+    }
+ }
+@@ -4131,7 +4131,7 @@ HgfsServerSetSessionCapability(HgfsOp op,                  // IN: operation code
+          result = TRUE;
+       }
+    }
+-   LOG(4, ("%s: Setting capabilitiy flags %x for op code %d %s\n",
++   LOG(4, ("%s: Setting capability flags %x for op code %d %s\n",
+            __FUNCTION__, flags, op, result ? "succeeded" : "failed"));
+ 
+    return result;
+@@ -4143,7 +4143,7 @@ HgfsServerSetSessionCapability(HgfsOp op,                  // IN: operation code
+  *
+  * HgfsServerResEnumInit --
+  *
+- *    Initialize an enumeration of all exisitng resources.
++ *    Initialize an enumeration of all existing resources.
+  *
+  * Results:
+  *    The enumeration state object.
+@@ -4239,7 +4239,7 @@ HgfsServerResEnumExit(void *enumState)           // IN/OUT: enumeration state
+  *
+  * HgfsServerEnumerateSharedFolders --
+  *
+- *    Enumerates all exisitng shared folders and registers shared folders with
++ *    Enumerates all existing shared folders and registers shared folders with
+  *    directory notification package.
+  *
+  * Results:
+@@ -6536,11 +6536,13 @@ HgfsServerRead(HgfsInputParam *input)  // IN: Input params
+             payload = &reply->payload[0];
+          }
+          if (payload) {
++            uint32 actualSize = 0;
+             status = HgfsPlatformReadFile(readFd, input->session, offset,
+                                           requiredSize, payload,
+-                                          &reply->actualSize);
++                                          &actualSize);
+             if (HGFS_ERROR_SUCCESS == status) {
+                reply->reserved = 0;
++               reply->actualSize = actualSize;
+                replyPayloadSize = sizeof *reply;
+ 
+                if (readUseDataBuffer) {
+@@ -6556,11 +6558,13 @@ HgfsServerRead(HgfsInputParam *input)  // IN: Input params
+          break;
+       }
+    case HGFS_OP_READ: {
++         uint32 actualSize = 0;
+          HgfsReplyRead *reply = replyRead;
+ 
+          status = HgfsPlatformReadFile(readFd, input->session, offset, requiredSize,
+-                                       reply->payload, &reply->actualSize);
++                                       reply->payload, &actualSize);
+          if (HGFS_ERROR_SUCCESS == status) {
++            reply->actualSize = actualSize;
+             replyPayloadSize = sizeof *reply + reply->actualSize;
+          } else {
+             LOG(4, ("%s: V1 Failed to read-> %d.\n", __FUNCTION__, status));
+diff --git a/open-vm-tools/vmhgfs-fuse/dir.c b/open-vm-tools/vmhgfs-fuse/dir.c
+index 6298a4ea..e71b7afd 100644
+--- a/open-vm-tools/vmhgfs-fuse/dir.c
++++ b/open-vm-tools/vmhgfs-fuse/dir.c
+@@ -1,5 +1,5 @@
+ /*********************************************************
+- * Copyright (C) 2013 VMware, Inc. All rights reserved.
++ * Copyright (C) 2013,2019 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
+@@ -54,38 +54,53 @@ HgfsPackDirOpenRequest(const char *path,    // IN: Path of the dir to open
+                        HgfsOp opUsed,       // IN: Op to be used
+                        HgfsReq *req)        // IN/OUT: Packet to write into
+ {
+-   char *name;
+-   unsigned int *nameLength = NULL;
+    size_t reqSize;
+-   int result;
+ 
+    ASSERT(path);
+    ASSERT(req);
+    LOG(4, ("Path = %s \n", path));
+    switch (opUsed) {
+    case HGFS_OP_SEARCH_OPEN_V3: {
++      int result;
+       HgfsRequestSearchOpenV3 *requestV3 = HgfsGetRequestPayload(req);
+ 
+-      /* We'll use these later. */
+-      name = requestV3->dirName.name;
+-      nameLength = &requestV3->dirName.length;
+       requestV3->dirName.flags = 0;
+       requestV3->dirName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+       requestV3->dirName.fid = HGFS_INVALID_HANDLE;
+       requestV3->reserved = 0;
+       reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                requestV3->dirName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed\n"));
++         return -EINVAL;
++      }
++      LOG(4, ("After conversion = %s\n", requestV3->dirName.name));
++      requestV3->dirName.length = result;
++      reqSize += result;
+       break;
+    }
+ 
+    case HGFS_OP_SEARCH_OPEN: {
++      int result;
+       HgfsRequestSearchOpen *request;
+ 
+       request = (HgfsRequestSearchOpen *)(HGFS_REQ_PAYLOAD(req));
+ 
+-      /* We'll use these later. */
+-      name = request->dirName.name;
+-      nameLength = &request->dirName.length;
+       reqSize = sizeof *request;
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                request->dirName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed\n"));
++         return -EINVAL;
++      }
++      LOG(4, ("After conversion = %s\n", request->dirName.name));
++      request->dirName.length = result;
++      reqSize += result;
+       break;
+    }
+ 
+@@ -94,21 +109,7 @@ HgfsPackDirOpenRequest(const char *path,    // IN: Path of the dir to open
+       return -EPROTO;
+    }
+ 
+-   /* Convert to CP name. */
+-
+-   LOG(4, ("After buildPath = %s\n", path));
+-   result = CPName_ConvertTo(path,
+-                             HGFS_LARGE_PACKET_MAX - (reqSize - 1),
+-                             name);
+-   if (result < 0) {
+-      LOG(4, ("CP conversion failed\n"));
+-      return -EINVAL;
+-   }
+-
+-   LOG(4, ("After conversion = %s\n", name));
+-
+-   *nameLength = (uint32) result;
+-   req->payloadSize = reqSize + result;
++   req->payloadSize = reqSize;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+    HgfsPackHeader(req, opUsed);
+@@ -149,7 +150,6 @@ HgfsDirOpen(const char* path,       // IN: Path of dir to open
+    int result;
+    HgfsOp opUsed;
+    HgfsStatus replyStatus;
+-   HgfsHandle *replySearch;
+ 
+    ASSERT(path);
+    req = HgfsGetNewRequest();
+@@ -161,16 +161,6 @@ HgfsDirOpen(const char* path,       // IN: Path of dir to open
+ 
+ retry:
+    opUsed = hgfsVersionSearchOpen;
+-   if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
+-      HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
+-
+-     replySearch = &requestV3->search;
+-
+-   } else {
+-      HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
+-
+-      replySearch = &request->search;
+-   }
+ 
+    result = HgfsPackDirOpenRequest(path, opUsed, req);
+    if (result != 0) {
+@@ -187,8 +177,14 @@ retry:
+ 
+       switch (result) {
+       case 0:
+-         *handle = *replySearch;
+-         LOG(6, ("Set handle to %u\n", *replySearch));
++         if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
++            HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
++            *handle = requestV3->search;
++         } else {
++            HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
++            *handle = request->search;
++         }
++         LOG(6, ("Set handle to %u\n", *handle));
+          break;
+       case -EPROTO:
+          /* Retry with older version(s). Set globally. */
+@@ -626,25 +622,30 @@ HgfsPackCreateDirRequest(const char *path,
+                          HgfsOp opUsed,         // IN: Op to be used.
+                          HgfsReq *req)          // IN/OUT: Packet to write into
+ {
+-   char *fileName = NULL;
+-   uint32 *fileNameLength;
+    size_t reqSize;
+-   int result;
++
+ 
+    ASSERT(req);
+ 
+    switch (opUsed) {
+    case HGFS_OP_CREATE_DIR_V3: {
++      int result;
+       HgfsRequestCreateDirV3 *requestV3 = HgfsGetRequestPayload(req);
+ 
+       reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
+-      /* We'll use these later. */
+-      fileName = requestV3->fileName.name;
+-      fileNameLength = &requestV3->fileName.length;
+       requestV3->fileName.flags = 0;
+       requestV3->fileName.fid = HGFS_INVALID_HANDLE;
+       requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+-
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                requestV3->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      requestV3->fileName.length = result;
++      reqSize += result;
+       requestV3->mask = HGFS_CREATE_DIR_MASK;
+ 
+       /* Set permissions. */
+@@ -656,15 +657,23 @@ HgfsPackCreateDirRequest(const char *path,
+       break;
+    }
+    case HGFS_OP_CREATE_DIR_V2: {
++      int result;
+       HgfsRequestCreateDirV2 *requestV2;
+ 
+       requestV2 = (HgfsRequestCreateDirV2 *)(HGFS_REQ_PAYLOAD(req));
+ 
+-      /* We'll use these later. */
+-      fileName = requestV2->fileName.name;
+-      fileNameLength = &requestV2->fileName.length;
+       reqSize = sizeof *requestV2;
+ 
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                requestV2->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      requestV2->fileName.length = result;
++      reqSize += result;
+       requestV2->mask = HGFS_CREATE_DIR_MASK;
+ 
+       /* Set permissions. */
+@@ -675,15 +684,22 @@ HgfsPackCreateDirRequest(const char *path,
+       break;
+    }
+    case HGFS_OP_CREATE_DIR: {
++      int result;
+       HgfsRequestCreateDir *request;
+ 
+       request = (HgfsRequestCreateDir *)(HGFS_REQ_PAYLOAD(req));
+ 
+-      /* We'll use these later. */
+-      fileName = request->fileName.name;
+-      fileNameLength = &request->fileName.length;
+       reqSize = sizeof *request;
+-
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                request->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      request->fileName.length = result;
++      reqSize += result;
+       /* Set permissions. */
+       request->permissions = (permsMode & S_IRWXU) >> 6;
+       break;
+@@ -693,18 +709,7 @@ HgfsPackCreateDirRequest(const char *path,
+       return -EPROTO;
+    }
+ 
+-
+-   /* Convert to CP name. */
+-   result = CPName_ConvertTo(path,
+-                             HGFS_LARGE_PACKET_MAX - (reqSize - 1),
+-                             fileName);
+-   if (result < 0) {
+-      LOG(4, ("CP conversion failed.\n"));
+-      return -EINVAL;
+-   }
+-
+-   *fileNameLength = result;
+-   req->payloadSize = reqSize + result;
++   req->payloadSize = reqSize;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+    HgfsPackHeader(req, opUsed);
+@@ -827,8 +832,6 @@ HgfsDelete(const char* path,       // IN: Path to file
+    HgfsReq *req = NULL;
+    int result = 0;
+    HgfsStatus replyStatus;
+-   char *fileName = NULL;
+-   uint32 *fileNameLength;
+    uint32 reqSize;
+    HgfsOp opUsed;
+    HgfsAttrInfo newAttr = {0};
+@@ -862,8 +865,17 @@ HgfsDelete(const char* path,       // IN: Path to file
+ 
+       reqSize = sizeof(*request) + HgfsGetRequestHeaderSize();
+       request->hints = 0;
+-      fileName = request->fileName.name;
+-      fileNameLength = &request->fileName.length;
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
++                                request->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         result = -EINVAL;
++         goto out;
++      }
++      request->fileName.length = result;
++      reqSize += result;
+       request->fileName.fid = HGFS_INVALID_HANDLE;
+       request->fileName.flags = 0;
+       request->fileName.caseType = HGFS_FILE_NAME_DEFAULT_CASE;
+@@ -874,24 +886,21 @@ HgfsDelete(const char* path,       // IN: Path to file
+ 
+       request = (HgfsRequestDelete *)(HGFS_REQ_PAYLOAD(req));
+       /* Fill out the request packet. */
+-      fileName = request->fileName.name;
+-      fileNameLength = &request->fileName.length;
+       reqSize = sizeof *request;
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
++                                request->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         result = -EINVAL;
++         goto out;
++      }
++      request->fileName.length = result;
++      reqSize += result;
+    }
+ 
+-
+-   /* Convert to CP name. */
+-   result = CPName_ConvertTo(path,
+-                             HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
+-                             fileName);
+-   if (result < 0) {
+-      LOG(4, ("CP conversion failed.\n"));
+-      result = -EINVAL;
+-      goto out;
+-   }
+-
+-   *fileNameLength = result;
+-   req->payloadSize = reqSize + result;
++   req->payloadSize = reqSize;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+    HgfsPackHeader(req, opUsed);
+diff --git a/open-vm-tools/vmhgfs-fuse/file.c b/open-vm-tools/vmhgfs-fuse/file.c
+index 389ebba8..0b6c48bc 100644
+--- a/open-vm-tools/vmhgfs-fuse/file.c
++++ b/open-vm-tools/vmhgfs-fuse/file.c
+@@ -1,5 +1,5 @@
+ /*********************************************************
+- * Copyright (C) 2013,2017 VMware, Inc. All rights reserved.
++ * Copyright (C) 2013,2018-2019 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
+@@ -66,10 +66,7 @@ HgfsPackOpenRequest(const char *path,          // IN: Path to file
+                     HgfsOp opUsed,             // IN: Op to use
+                     HgfsReq *req)              // IN/OUT: Packet to write into
+ {
+-   char *name;
+-   uint32 *nameLength;
+    size_t reqSize;
+-   int result;
+    int openMode, openFlags;
+ 
+    ASSERT(path);
+@@ -88,14 +85,22 @@ HgfsPackOpenRequest(const char *path,          // IN: Path to file
+ 
+    switch (opUsed) {
+     case HGFS_OP_OPEN_V3: {
++      int result;
+       HgfsRequestOpenV3 *requestV3 = HgfsGetRequestPayload(req);
+ 
+       reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
+ 
+-      /* We'll use these later. */
+-      name = requestV3->fileName.name;
+-      nameLength = &requestV3->fileName.length;
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                requestV3->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
+ 
++      requestV3->fileName.length = result;
++      reqSize += result;
+       /* Linux clients need case-sensitive lookups. */
+       requestV3->fileName.flags = 0;
+       requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+@@ -122,15 +127,24 @@ HgfsPackOpenRequest(const char *path,          // IN: Path to file
+    }
+ 
+    case HGFS_OP_OPEN_V2: {
++      int result;
+       HgfsRequestOpenV2 *requestV2;
+ 
+       requestV2 = (HgfsRequestOpenV2 *)(HGFS_REQ_PAYLOAD(req));
+ 
+-      /* We'll use these later. */
+-      name = requestV2->fileName.name;
+-      nameLength = &requestV2->fileName.length;
+       reqSize = sizeof *requestV2;
+ 
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                requestV2->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++
++      requestV2->fileName.length = result;
++      reqSize += result;
+       requestV2->mask = mask;
+       requestV2->mode = openMode;
+       requestV2->flags = openFlags;
+@@ -148,14 +162,23 @@ HgfsPackOpenRequest(const char *path,          // IN: Path to file
+       break;
+    }
+    case HGFS_OP_OPEN: {
++      int result;
+       HgfsRequestOpen *request;
+ 
+       request = (HgfsRequestOpen *)(HGFS_REQ_PAYLOAD(req));
+-      /* We'll use these later. */
+-      name = request->fileName.name;
+-      nameLength = &request->fileName.length;
+       reqSize = sizeof *request;
+ 
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (reqSize - 1),
++                                request->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++
++      request->fileName.length = result;
++      reqSize += result;
+       request->mode = openMode;
+       request->flags = openFlags;
+ 
+@@ -168,18 +191,7 @@ HgfsPackOpenRequest(const char *path,          // IN: Path to file
+       return -EPROTO;
+    }
+ 
+-
+-   /* Convert to CP name. */
+-   result = CPName_ConvertTo(path,
+-                             HGFS_LARGE_PACKET_MAX - (reqSize - 1),
+-                             name);
+-   if (result < 0) {
+-      LOG(4, ("CP conversion failed.\n"));
+-      return -EINVAL;
+-   }
+-
+-   *nameLength = (uint32) result;
+-   req->payloadSize = reqSize + result;
++   req->payloadSize = reqSize;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+    HgfsPackHeader(req, opUsed);
+@@ -915,10 +927,6 @@ int
+ HgfsRename(const char* from, const char* to)
+ {
+    HgfsReq *req = NULL;
+-   char *oldName;
+-   char *newName;
+-   uint32 *oldNameLength;
+-   uint32 *newNameLength;
+    int result = 0;
+    uint32 reqSize;
+    HgfsOp opUsed;
+@@ -942,33 +950,41 @@ retry:
+    if (opUsed == HGFS_OP_RENAME_V3) {
+       HgfsRequestRenameV3 *requestV3 = HgfsGetRequestPayload(req);
+ 
+-      oldName = requestV3->oldName.name;
+-      oldNameLength = &requestV3->oldName.length;
+       requestV3->hints = 0;
+       requestV3->oldName.flags = 0;
+       requestV3->oldName.fid = HGFS_INVALID_HANDLE;
+       requestV3->oldName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+       requestV3->reserved = 0;
+       reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
++      /* Convert old name to CP format. */
++      result = CPName_ConvertTo(from,
++                                HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
++                                requestV3->oldName.name);
++      if (result < 0) {
++         LOG(4, ("oldName CP conversion failed\n"));
++         result = -EINVAL;
++         goto out;
++      }
++
++      requestV3->oldName.length = result;
++      reqSize += result;
+    } else {
+       HgfsRequestRename *request = (HgfsRequestRename *)HGFS_REQ_PAYLOAD(req);
+ 
+-      oldName = request->oldName.name;
+-      oldNameLength = &request->oldName.length;
+       reqSize = sizeof *request;
+-   }
+-   /* Convert old name to CP format. */
+-   result = CPName_ConvertTo(from,
+-                             HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
+-                             oldName);
+-   if (result < 0) {
+-      LOG(4, ("oldName CP conversion failed\n"));
+-      result = -EINVAL;
+-      goto out;
+-   }
++      /* Convert old name to CP format. */
++      result = CPName_ConvertTo(from,
++                                HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
++                                request->oldName.name);
++      if (result < 0) {
++         LOG(4, ("oldName CP conversion failed\n"));
++         result = -EINVAL;
++         goto out;
++      }
+ 
+-   *oldNameLength = result;
+-   reqSize += result;
++      request->oldName.length = result;
++      reqSize += result;
++   }
+ 
+    /*
+     * Build full new name to send to server.
+@@ -983,8 +999,20 @@ retry:
+ 
+       newNameP = (HgfsFileNameV3 *)((char *)&requestV3->oldName +
+                                     sizeof requestV3->oldName + result);
+-      newName = newNameP->name;
+-      newNameLength = &newNameP->length;
++
++      LOG(6, ("New name: \"%s\"\n", newNameP->name));
++
++      /* Convert new name to CP format. */
++      result = CPName_ConvertTo(to,
++                                HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
++                                newNameP->name);
++      if (result < 0) {
++         LOG(4, ("newName CP conversion failed\n"));
++         result = -EINVAL;
++         goto out;
++      }
++      newNameP->length = result;
++      reqSize += result;
+       newNameP->flags = 0;
+       newNameP->fid = HGFS_INVALID_HANDLE;
+       newNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+@@ -993,24 +1021,22 @@ retry:
+       HgfsFileName *newNameP;
+       newNameP = (HgfsFileName *)((char *)&request->oldName +
+                                   sizeof request->oldName + result);
+-      newName = newNameP->name;
+-      newNameLength = &newNameP->length;
+-   }
+ 
+-   LOG(6, ("New name: \"%s\"\n", newName));
++      LOG(6, ("New name: \"%s\"\n", newNameP->name));
+ 
+-   /* Convert new name to CP format. */
+-   result = CPName_ConvertTo(to,
+-                             HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
+-                             newName);
+-   if (result < 0) {
+-      LOG(4, ("newName CP conversion failed\n"));
+-      result = -EINVAL;
+-      goto out;
++      /* Convert new name to CP format. */
++      result = CPName_ConvertTo(to,
++                                HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
++                                newNameP->name);
++      if (result < 0) {
++         LOG(4, ("newName CP conversion failed\n"));
++         result = -EINVAL;
++         goto out;
++      }
++      newNameP->length = result;
++      reqSize += result;
+    }
+ 
+-   *newNameLength = result;
+-   reqSize += result;
+    req->payloadSize = reqSize;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+@@ -1068,7 +1094,7 @@ retry:
+          }
+          break;
+       default:
+-         LOG(4, ("failed with result %d\n", result));
++         LOG(4, ("Server protocol result %d\n", result));
+       }
+       break;
+    default:
+@@ -1109,21 +1135,17 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+ {
+    HgfsAttrV2 *attrV2;
+    HgfsAttr *attrV1;
+-   HgfsAttrHint *hints;
+    HgfsAttrChanges *update;
+-   char *fileName = NULL;
+-   uint32 *fileNameLength = NULL;
+    size_t reqBufferSize;
+    size_t reqSize;
+-   int result = 0;
+    ASSERT(req);
+ 
+    switch (opUsed) {
+    case HGFS_OP_SETATTR_V3: {
++      int result;
+       HgfsRequestSetattrV3 *requestV3 = HgfsGetRequestPayload(req);
+ 
+       attrV2 = &requestV3->attr;
+-      hints = &requestV3->hints;
+ 
+       /*
+        * Clear attributes, mask, and hints before touching them.
+@@ -1131,7 +1153,7 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+        * make sure to zero them all here.
+        */
+       memset(attrV2, 0, sizeof *attrV2);
+-      memset(hints, 0, sizeof *hints);
++      requestV3->hints = 0;
+ 
+       /*
+        * When possible, issue a setattr using an existing handle. This will
+@@ -1143,14 +1165,21 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+        * the times also requires write permissions on Windows, so we require it
+        * here too. Otherwise, any handle will do.
+        */
+-      fileName = requestV3->fileName.name;
+-      fileNameLength = &requestV3->fileName.length;
+       requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+       requestV3->fileName.fid = HGFS_INVALID_HANDLE;
+       requestV3->fileName.flags = 0;
+       requestV3->reserved = 0;
+       reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
+       reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
++      result = CPName_ConvertTo(path,
++                                reqBufferSize,
++                                requestV3->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      requestV3->fileName.length = result;
++      reqSize += result;
+ 
+       attrV2->mask = attr->mask;
+       if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
+@@ -1173,22 +1202,22 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+       }
+       if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
+          attrV2->accessTime = attr->accessTime;
+-         *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
++         requestV3->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
+       }
+       if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
+          attrV2->writeTime = attr->writeTime;
+-         *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
++         requestV3->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
+       }
+ 
+       break;
+    }
+    case HGFS_OP_SETATTR_V2: {
++      int result;
+       HgfsRequestSetattrV2 *requestV2;
+ 
+       requestV2 = (HgfsRequestSetattrV2 *)(HGFS_REQ_PAYLOAD(req));
+ 
+       attrV2 = &requestV2->attr;
+-      hints = &requestV2->hints;
+ 
+       /*
+        * Clear attributes, mask, and hints before touching them.
+@@ -1196,13 +1225,19 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+        * make sure to zero them all here.
+        */
+       memset(attrV2, 0, sizeof *attrV2);
+-      memset(hints, 0, sizeof *hints);
+-
+-      fileName = requestV2->fileName.name;
+-      fileNameLength = &requestV2->fileName.length;
++      requestV2->hints = 0;
+ 
+       reqSize = sizeof *requestV2;
+       reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
++      result = CPName_ConvertTo(path,
++                                reqBufferSize,
++                                requestV2->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      requestV2->fileName.length = result;
++      reqSize += result;
+ 
+       if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
+                           HGFS_ATTR_VALID_OWNER_PERMS |
+@@ -1224,16 +1259,17 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+       }
+       if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
+          attrV2->accessTime = attr->accessTime;
+-         *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
++         requestV2->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
+       }
+       if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
+          attrV2->writeTime = attr->writeTime;
+-         *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
++         requestV2->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
+       }
+ 
+       break;
+    }
+    case HGFS_OP_SETATTR: {
++      int result;
+       HgfsRequestSetattr *request;
+ 
+       request = (HgfsRequestSetattr *)(HGFS_REQ_PAYLOAD(req));
+@@ -1241,11 +1277,17 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+       attrV1 = &request->attr;
+       update = &request->update;
+ 
+-      /* We'll use these later. */
+-      fileName = request->fileName.name;
+-      fileNameLength = &request->fileName.length;
+       reqSize = sizeof *request;
+       reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, request);
++      result = CPName_ConvertTo(path,
++                                reqBufferSize,
++                                request->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      request->fileName.length = result;
++      reqSize += result;
+ 
+       /*
+        * Clear attributes before touching them.
+@@ -1284,16 +1326,7 @@ HgfsPackSetattrRequest(const char *path,   // IN:  path to file
+       return -EPROTO;
+    }
+ 
+-   result = CPName_ConvertTo(path,
+-                             reqBufferSize,
+-                             fileName);
+-      if (result < 0) {
+-         LOG(4, ("CP conversion failed.\n"));
+-         return -EINVAL;
+-   }
+-
+-   *fileNameLength = result;
+-   req->payloadSize = reqSize + result;
++   req->payloadSize = reqSize;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+    HgfsPackHeader(req, opUsed);
+diff --git a/open-vm-tools/vmhgfs-fuse/filesystem.c b/open-vm-tools/vmhgfs-fuse/filesystem.c
+index fb9d547d..1931a5d2 100644
+--- a/open-vm-tools/vmhgfs-fuse/filesystem.c
++++ b/open-vm-tools/vmhgfs-fuse/filesystem.c
+@@ -1,5 +1,5 @@
+ /*********************************************************
+- * Copyright (C) 2013 VMware, Inc. All rights reserved.
++ * Copyright (C) 2013,2019 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
+@@ -123,36 +123,50 @@ HgfsPackQueryVolumeRequest(const char *path,        // IN: File pointer for this
+                            HgfsOp opUsed,           // IN: Op to be used.
+                            HgfsReq *req)            // IN/OUT: Packet to write into
+ {
+-   char *name;
+-   uint32 *nameLength;
+    size_t requestSize;
+-   int result;
++
+ 
+    ASSERT(req);
+ 
+    switch (opUsed) {
+    case HGFS_OP_QUERY_VOLUME_INFO_V3: {
++      int result;
+       HgfsRequestQueryVolumeV3 *requestV3 = HgfsGetRequestPayload(req);
+ 
+-      /* We'll use these later. */
+-      name = requestV3->fileName.name;
+-      nameLength = &requestV3->fileName.length;
+       requestV3->fileName.flags = 0;
+       requestV3->fileName.fid = HGFS_INVALID_HANDLE;
+       requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+       requestV3->reserved = 0;
+       requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (requestSize - 1),
++                                requestV3->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      requestV3->fileName.length = result;
++      requestSize += result;
+       break;
+    }
+    case HGFS_OP_QUERY_VOLUME_INFO: {
++      int result;
+       HgfsRequestQueryVolume *request;
+ 
+       request = (HgfsRequestQueryVolume *)(HGFS_REQ_PAYLOAD(req));
+ 
+-      /* We'll use these later. */
+-      name = request->fileName.name;
+-      nameLength = &request->fileName.length;
+       requestSize = sizeof *request;
++      /* Convert to CP name. */
++      result = CPName_ConvertTo(path,
++                                HGFS_LARGE_PACKET_MAX - (requestSize - 1),
++                                request->fileName.name);
++      if (result < 0) {
++         LOG(4, ("CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      request->fileName.length = result;
++      requestSize += result;
+       break;
+    }
+    default:
+@@ -160,17 +174,7 @@ HgfsPackQueryVolumeRequest(const char *path,        // IN: File pointer for this
+       return -EPROTO;
+    }
+ 
+-   /* Convert to CP name. */
+-   result = CPName_ConvertTo(path,
+-                             HGFS_LARGE_PACKET_MAX - (requestSize - 1),
+-                             name);
+-   if (result < 0) {
+-      LOG(4, ("CP conversion failed.\n"));
+-      return -EINVAL;
+-   }
+-
+-   *nameLength = (uint32) result;
+-   req->payloadSize = requestSize + result;
++   req->payloadSize = requestSize;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+    HgfsPackHeader(req, opUsed);
+diff --git a/open-vm-tools/vmhgfs-fuse/fsutil.c b/open-vm-tools/vmhgfs-fuse/fsutil.c
+index 042c223c..af85c405 100644
+--- a/open-vm-tools/vmhgfs-fuse/fsutil.c
++++ b/open-vm-tools/vmhgfs-fuse/fsutil.c
+@@ -1,5 +1,5 @@
+ /*********************************************************
+- * Copyright (C) 2013 VMware, Inc. All rights reserved.
++ * Copyright (C) 2013,2019 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
+@@ -189,8 +189,6 @@ HgfsPackGetattrRequest(HgfsReq *req,            // IN/OUT: Request buffer
+    size_t reqBufferSize;
+    size_t reqSize;
+    int result = 0;
+-   char *fileName = NULL;
+-   uint32 *fileNameLength = NULL;
+    ASSERT(attr);
+    ASSERT(req);
+    ASSERT(path);
+@@ -204,8 +202,6 @@ HgfsPackGetattrRequest(HgfsReq *req,            // IN/OUT: Request buffer
+ 
+       /* Fill out the request packet. */
+       requestV3->hints = 0;
+-      fileName = requestV3->fileName.name;
+-      fileNameLength = &requestV3->fileName.length;
+       requestV3->fileName.flags = 0;
+       requestV3->fileName.fid = HGFS_INVALID_HANDLE;
+       requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+@@ -213,6 +209,19 @@ HgfsPackGetattrRequest(HgfsReq *req,            // IN/OUT: Request buffer
+       requestV3->reserved = 0;
+       reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
+       reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
++      if (requestV3->fileName.name != NULL) {
++         /* Convert to CP name. */
++         result = CPName_ConvertTo(path,
++                                   reqBufferSize,
++                                   requestV3->fileName.name);
++         LOG(8, ("Converted path %s\n", requestV3->fileName.name));
++         if (result < 0) {
++            LOG(8, ("CP conversion failed.\n"));
++            result = -EINVAL;
++            goto out;
++         }
++         requestV3->fileName.length = result;
++      }
+       break;
+    }
+ 
+@@ -223,20 +232,42 @@ HgfsPackGetattrRequest(HgfsReq *req,            // IN/OUT: Request buffer
+ 
+       requestV2 = (HgfsRequestGetattrV2 *)(HGFS_REQ_PAYLOAD(req));
+       requestV2->hints = 0;
+-      fileName = requestV2->fileName.name;
+-      fileNameLength = &requestV2->fileName.length;
+       reqSize = sizeof *requestV2;
+       reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
++      if (requestV2->fileName.name != NULL) {
++         /* Convert to CP name. */
++         result = CPName_ConvertTo(path,
++                                   reqBufferSize,
++                                   requestV2->fileName.name);
++         LOG(8, ("Converted path %s\n", requestV2->fileName.name));
++         if (result < 0) {
++            LOG(8, ("CP conversion failed.\n"));
++            result = -EINVAL;
++            goto out;
++         }
++         requestV2->fileName.length = result;
++      }
+       break;
+    }
+ 
+    case HGFS_OP_GETATTR: {
+       HgfsRequestGetattr *requestV1;
+       requestV1 = (HgfsRequestGetattr *)(HGFS_REQ_PAYLOAD(req));
+-      fileName = requestV1->fileName.name;
+-      fileNameLength = &requestV1->fileName.length;
+       reqSize = sizeof *requestV1;
+       reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV1);
++      if (requestV1->fileName.name != NULL) {
++         /* Convert to CP name. */
++         result = CPName_ConvertTo(path,
++                                   reqBufferSize,
++                                   requestV1->fileName.name);
++         LOG(8, ("Converted path %s\n", requestV1->fileName.name));
++         if (result < 0) {
++            LOG(8, ("CP conversion failed.\n"));
++            result = -EINVAL;
++            goto out;
++         }
++         requestV1->fileName.length = result;
++      }
+       break;
+    }
+ 
+@@ -246,20 +277,6 @@ HgfsPackGetattrRequest(HgfsReq *req,            // IN/OUT: Request buffer
+       goto out;
+    }
+ 
+-   if (fileName != NULL) {
+-      /* Convert to CP name. */
+-      result = CPName_ConvertTo(path,
+-                                reqBufferSize,
+-                                fileName);
+-      LOG(8, ("Converted path %s\n", fileName));
+-      if (result < 0) {
+-         LOG(8, ("CP conversion failed.\n"));
+-         result = -EINVAL;
+-         goto out;
+-      }
+-      *fileNameLength = result;
+-   }
+-
+    req->payloadSize = reqSize + result;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
+diff --git a/open-vm-tools/vmhgfs-fuse/link.c b/open-vm-tools/vmhgfs-fuse/link.c
+index a00e8446..777eb76e 100644
+--- a/open-vm-tools/vmhgfs-fuse/link.c
++++ b/open-vm-tools/vmhgfs-fuse/link.c
+@@ -1,5 +1,5 @@
+ /*********************************************************
+- * Copyright (C) 2013 VMware, Inc. All rights reserved.
++ * Copyright (C) 2013,2019 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
+@@ -51,36 +51,81 @@ HgfsPackSymlinkCreateRequest(const char* symlink,     // IN: path of the link
+ {
+    HgfsRequestSymlinkCreateV3 *requestV3 = NULL;
+    HgfsRequestSymlinkCreate *request = NULL;
+-   char *symlinkName;
+-   uint32 *symlinkNameLength;
+-   char *targetName;
+-   uint32 *targetNameLength;
+    size_t targetNameBytes;
+-
+    size_t requestSize;
+-   int result;
++
++   targetNameBytes = strlen(symname) + 1;
+ 
+    switch (opUsed) {
+    case HGFS_OP_CREATE_SYMLINK_V3: {
++      int result;
++      HgfsFileNameV3 *fileNameP;
+       requestV3 = HgfsGetRequestPayload(req);
+ 
+-      /* We'll use these later. */
+-      symlinkName = requestV3->symlinkName.name;
+-      symlinkNameLength = &requestV3->symlinkName.length;
+       requestV3->symlinkName.flags = 0;
+       requestV3->symlinkName.fid = HGFS_INVALID_HANDLE;
+       requestV3->symlinkName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+       requestV3->reserved = 0;
+       requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
++      /* Convert symlink name to CP format. */
++      result = CPName_ConvertTo(symlink,
++                                HGFS_LARGE_PACKET_MAX - (requestSize - 1),
++                                requestV3->symlinkName.name);
++      if (result < 0) {
++         LOG(4, ("SymlinkName CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      requestV3->symlinkName.length = result;
++      requestSize += result;
++
++      /* Copy target name into request packet. */
++      if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
++         LOG(4, ("Target name is too long.\n"));
++         return -EINVAL;
++      }
++
++      fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
++                                     sizeof requestV3->symlinkName + result);
++      memcpy(fileNameP->name, symname, targetNameBytes);
++      LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
++      /* Convert target name to CPName-lite format. */
++      CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
++      fileNameP->length = targetNameBytes - 1;
++      fileNameP->flags = 0;
++      fileNameP->fid = HGFS_INVALID_HANDLE;
++      fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+       break;
+    }
+    case HGFS_OP_CREATE_SYMLINK: {
++      int result;
++      HgfsFileName *fileNameP;
+       request = (HgfsRequestSymlinkCreate *)(HGFS_REQ_PAYLOAD(req));
+ 
+-      /* We'll use these later. */
+-      symlinkName = request->symlinkName.name;
+-      symlinkNameLength = &request->symlinkName.length;
+       requestSize = sizeof *request;
++      /* Convert symlink name to CP format. */
++      result = CPName_ConvertTo(symlink,
++                                HGFS_LARGE_PACKET_MAX - (requestSize - 1),
++                                request->symlinkName.name);
++      if (result < 0) {
++         LOG(4, ("SymlinkName CP conversion failed.\n"));
++         return -EINVAL;
++      }
++      request->symlinkName.length = result;
++      requestSize += result;
++
++      /* Copy target name into request packet. */
++      if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
++         LOG(4, ("Target name is too long.\n"));
++         return -EINVAL;
++      }
++
++      fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
++                                   sizeof request->symlinkName + result);
++      memcpy(fileNameP->name, symname, targetNameBytes);
++      LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
++      /* Convert target name to CPName-lite format. */
++      CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
++      fileNameP->length = targetNameBytes - 1;
+       break;
+    }
+    default:
+@@ -88,59 +133,13 @@ HgfsPackSymlinkCreateRequest(const char* symlink,     // IN: path of the link
+       return -EPROTO;
+    }
+ 
+-
+-   /* Convert symlink name to CP format. */
+-   result = CPName_ConvertTo(symlink,
+-                             HGFS_LARGE_PACKET_MAX - (requestSize - 1),
+-                             symlinkName);
+-   if (result < 0) {
+-      LOG(4, ("SymlinkName CP conversion failed.\n"));
+-      return -EINVAL;
+-   }
+-
+-   *symlinkNameLength = result;
+-   req->payloadSize = requestSize + result;
++   req->payloadSize = requestSize;
+ 
+    /*
+-    * Note the different buffer length. This is because HgfsRequestSymlink
+-    * contains two filenames, and once we place the first into the packet we
+-    * must account for it when determining the amount of buffer available for
+-    * the second.
+-    *
+-    * Also note that targetNameBytes accounts for the NUL character. Once
+-    * we've converted it to CP name, it won't be NUL-terminated and the length
+-    * of the string in the packet itself won't account for it.
++    * targetNameBytes accounts for the NUL character. Once we've converted
++    * it to CP name, it won't be NUL-terminated and the length of the string
++    * in the packet itself won't account for it.
+     */
+-   if (opUsed == HGFS_OP_CREATE_SYMLINK_V3) {
+-      HgfsFileNameV3 *fileNameP;
+-      fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
+-                                     sizeof requestV3->symlinkName + result);
+-      targetName = fileNameP->name;
+-      targetNameLength = &fileNameP->length;
+-      fileNameP->flags = 0;
+-      fileNameP->fid = HGFS_INVALID_HANDLE;
+-      fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
+-   } else {
+-      HgfsFileName *fileNameP;
+-      fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
+-                                   sizeof request->symlinkName + result);
+-      targetName = fileNameP->name;
+-      targetNameLength = &fileNameP->length;
+-   }
+-   targetNameBytes = strlen(symname) + 1;
+-
+-   /* Copy target name into request packet. */
+-   if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
+-      LOG(4, ("Target name is too long.\n"));
+-      return -EINVAL;
+-   }
+-   memcpy(targetName, symname, targetNameBytes);
+-   LOG(6, ("Target name: \"%s\"\n", targetName));
+-
+-   /* Convert target name to CPName-lite format. */
+-   CPNameLite_ConvertTo(targetName, targetNameBytes - 1, '/');
+-
+-   *targetNameLength = targetNameBytes - 1;
+    req->payloadSize += targetNameBytes - 1;
+ 
+    /* Fill in header here as payloadSize needs to be there. */
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
deleted file mode 100644
index 1a6bfdb..0000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -303,6 +303,7 @@ AC_ARG_ENABLE(
-    [],
-    [enable_resolutionkms="auto"])
- 
-+AM_INIT_AUTOMAKE([subdir-objects])
- AM_INIT_AUTOMAKE
- 
- ###
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb
index 7ed6593..63a64fc 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb
@@ -22,23 +22,24 @@
 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://vmtoolsd.init \
-           file://0001-configure.ac-don-t-use-dnet-config.patch \
-           file://0002-add-include-sys-sysmacros.h.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://0011-Use-configure-test-for-sys-stat.h-include.patch \
-           file://fix-subdir-objects-configure-error.patch \
-           file://0001-include-poll.h-instead-of-sys-poll.h.patch \
-           file://0002-Rename-poll.h-to-vm_poll.h.patch \
-           file://0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch \
-           file://0004-Use-uintmax_t-for-handling-rlim_t.patch \
-           file://0001-Use-off64_t-instead-of-__off64_t.patch \
-           file://0001-misc-Do-not-print-NULL-string-into-logs.patch \
-           "
+    file://tools.conf \
+    file://vmtoolsd.service \
+    file://vmtoolsd.init \
+    file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
+    file://0002-add-include-sys-sysmacros.h.patch;patchdir=.. \
+    file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \
+    file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \
+    file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \
+    file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \
+    file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \
+    file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \
+    file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \
+    file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \
+    file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
+    file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
+    file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \
+    file://0014-Fix-new-warnings-from-gcc9.patch;patchdir=.. \
+"
 # stable-10.3.5
 SRCREV = "f2ff192717375b95a6b7e278fb47dbb3d3bc56d1"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb
new file mode 100644
index 0000000..3a43765
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Protocol plugin for New Yahoo (2016) for Adium, Pidgin, Miranda and Telepathy IM Framework"
+SECTION = "webos/services"
+LICENSE = "GPLv3.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+DEPENDS = "pidgin json-glib glib-2.0"
+
+inherit pkgconfig
+
+SRC_URI = "git://github.com/EionRobb/funyahoo-plusplus;branch=master;protocol=git"
+SRCREV = "fbbd9c591100aa00a0487738ec7b6acd3d924b3f"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+    oe_runmake CC="${CC}" CXX="${CXX}" EXTRA_INCLUDES="${TARGET_CFLAGS}" AR="${AR}";
+}
+
+do_install() {
+    oe_runmake DESTDIR="${D}" install;
+}
+
+FILES_${PN} += " \
+    ${libdir} \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/icyque_git.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/icyque_git.bb
new file mode 100644
index 0000000..0f32dc3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/icyque_git.bb
@@ -0,0 +1,27 @@
+SUMMARY = "WIM Protocol plugin for ICQ for Adium, Pidgin, Miranda and Telepathy IM Framework"
+SECTION = "webos/services"
+LICENSE = "GPLv3.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS = "pidgin json-glib"
+
+PV = "0.1+gitr${SRCPV}"
+
+inherit pkgconfig
+
+SRC_URI = "git://github.com/EionRobb/icyque"
+SRCREV = "513fc162d5d1a201c2b044e2b42941436d1069d5"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+    oe_runmake;
+}
+
+do_install() {
+    oe_runmake DESTDIR="${D}" install;
+}
+
+FILES_${PN} += " \
+    ${libdir} \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.24.0.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.24.0.bb
new file mode 100644
index 0000000..beae281
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.24.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Protocol plugin for Office 365/Lync/OCS for Adium, Pidgin, Miranda and Telepathy IM Framework"
+SECTION = "webos/services"
+LICENSE = "GPLv2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "pidgin intltool-native glib-2.0-native"
+
+inherit pkgconfig
+inherit autotools
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/sipe/pidgin-sipe-${PV}.tar.xz \
+"
+
+SRC_URI[md5sum] = "b91106d28c235b347a63dcb676f7b66a"
+SRC_URI[sha256sum] = "958803722b23d869131f76bd90df9da19116d4ca5a873e5253371479b7390f43"
+
+PACKAGECONFIG ??= "nss krb5"
+PACKAGECONFIG[nss] = "--enable-nss=yes,--enable-nss=no,nss"
+PACKAGECONFIG[openssl] = "--enable-openssl=yes,--enable-openssl=no,openssl"
+PACKAGECONFIG[krb5] = "--with-krb5=yes,--with-krb5=no,krb5"
+#PACKAGECONFIG[voice_and_video] = "--with-vv=yes,--with-vv=no,libnice gstreamer"
+PACKAGECONFIG[telepathy] = "--enable-telepathy=yes,--enable-telepathy=no,telepathy-glib gmime"
+#PACKAGECONFIG[gssapi_only] = "--enable-gssapi-only=yes,--enable-gssapi-only=no,krb5"
+PACKAGECONFIG[debug] = "--enable-debug=yes,--enable-debug=no,valgrind"
+
+FILES_${PN}-dev += " \
+    ${libdir}/purple-2/*.la \
+"
+
+FILES_${PN} += " \
+    ${libdir}/purple-2/libsipe.so \
+    ${datadir}/appdata \
+    ${datadir}/metainfo \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
index 9a24fbb..0a1baa9 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
@@ -7,7 +7,7 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/libpurple/protocols/irc/irc.h b/libpurple/protocols/irc/irc.h
-index fde35c4..66e52dd 100644
+index 596ddaf..b70f3a9 100644
 --- a/libpurple/protocols/irc/irc.h
 +++ b/libpurple/protocols/irc/irc.h
 @@ -40,9 +40,9 @@
@@ -20,5 +20,5 @@
 -#define IRC_DEFAULT_QUIT "Leaving."
 +#define IRC_DEFAULT_QUIT "Powered by OE: www.openembedded.org"
  
- #define IRC_INITIAL_BUFSIZE 1024
- 
+ #define IRC_BUFSIZE_INCREMENT 1024
+ #define IRC_MAX_BUFSIZE 16384
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.13.0.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
rename to meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.13.0.bb
index 148e4b6..b094ba2 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.13.0.bb
@@ -13,8 +13,8 @@
     file://pidgin-cross-python-265.patch \
 "
 
-SRC_URI[md5sum] = "8287400c4e5663e0e7844e868d5152af"
-SRC_URI[sha256sum] = "8c3d3536d6d3c971bd433ff9946678af70a0f6aa4e6969cc2a83bb357015b7f8"
+SRC_URI[md5sum] = "423403494fe1951e47cc75231f743bb0"
+SRC_URI[sha256sum] = "2747150c6f711146bddd333c496870bfd55058bab22ffb7e4eb784018ec46d8f"
 
 PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
new file mode 100644
index 0000000..092e605
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Skype protocol plug-in for libpurple"
+SECTION = "webos/services"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://skypeweb/gpl3.txt;md5=d90260d32cef39f3c8d6c0f05d3adb8e"
+
+DEPENDS = "pidgin json-glib glib-2.0 zlib"
+
+inherit pkgconfig
+
+SRC_URI = "git://github.com/EionRobb/skype4pidgin;branch=master;protocol=git"
+SRCREV = "14f1b69b6292bbdc98cca484b050ec8359394c4e"
+
+S = "${WORKDIR}/git"
+PV = "1.5+git${SRCPV}"
+
+do_compile() {
+    oe_runmake -C skypeweb;
+}
+
+do_install() {
+    oe_runmake -C skypeweb DESTDIR="${D}" install;
+}
+
+FILES_${PN} += " \
+    ${libdir} \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-Support-muslx32-build.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-Support-muslx32-build.patch
deleted file mode 100644
index 50e6894..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-Support-muslx32-build.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From a328c8bec0bf8071ae8f20fee4c7475205064ba1 Mon Sep 17 00:00:00 2001
-From: sweeaun <swee.aun.khor@intel.com>
-Date: Sun, 10 Sep 2017 00:14:15 -0700
-Subject: [PATCH] dpkg: Support muslx32 build
-
-Upstream-Status: Pending.
-Changes made on ostable and tupletable to enable muslx32 build.
-
-Signed-off-by: sweeaun <swee.aun.khor@intel.com>
----
- data/ostable    | 1 +
- data/tupletable | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/data/ostable b/data/ostable
-index be64342..87db273 100644
---- a/data/ostable
-+++ b/data/ostable
-@@ -19,6 +19,7 @@ base-uclibc-linux	linux-uclibc		linux[^-]*-uclibc
- eabihf-musl-linux	linux-musleabihf	linux[^-]*-musleabihf
- eabi-musl-linux		linux-musleabi		linux[^-]*-musleabi
- base-musl-linux		linux-musl		linux[^-]*-musl
-+x32-musl-linux		linux-muslx32		linux[^-]*-muslx32
- eabihf-gnu-linux	linux-gnueabihf		linux[^-]*-gnueabihf
- eabi-gnu-linux		linux-gnueabi		linux[^-]*-gnueabi
- abin32-gnu-linux	linux-gnuabin32		linux[^-]*-gnuabin32
-diff --git a/data/tupletable b/data/tupletable
-index 28f00bf..748ffab 100644
---- a/data/tupletable
-+++ b/data/tupletable
-@@ -10,6 +10,7 @@ base-uclibc-linux-<cpu>		uclibc-linux-<cpu>
- eabihf-musl-linux-arm		musl-linux-armhf
- eabi-musl-linux-arm		musl-linux-armel
- base-musl-linux-<cpu>		musl-linux-<cpu>
-+x32-musl-linux-amd64		x32
- ilp32-gnu-linux-arm64		arm64ilp32
- eabihf-gnu-linux-arm		armhf
- eabi-gnu-linux-arm		armel
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
deleted file mode 100644
index e988efd..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 685645a20e39cf2ab7db8d1f5e3666a4228abca8 Mon Sep 17 00:00:00 2001
-From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
-Date: Wed, 8 Jul 2015 09:44:57 +0300
-Subject: [PATCH 1/1] dpkg start-stop-daemon: Accept SIG prefixed signal names
-
----
- utils/start-stop-daemon.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/utils/start-stop-daemon.c b/utils/start-stop-daemon.c
-index 6aebe9b..e805082 100644
---- a/utils/start-stop-daemon.c
-+++ b/utils/start-stop-daemon.c
-@@ -18,6 +18,9 @@
-  *                 and Andreas Schuldei <andreas@schuldei.org>
-  *
-  * Changes by Ian Jackson: added --retry (and associated rearrangements).
-+ *
-+ * Changes by Haris Okanovic <haris.okanovic@ni.com> to support 'SIG'
-+ *     prefixed signal names placed in public domain as well.
-  */
- 
- #include <config.h>
-@@ -661,6 +664,12 @@ parse_signal(const char *sig_str, int *sig_num)
- 	if (parse_unsigned(sig_str, 10, sig_num) == 0)
- 		return 0;
- 
-+        /* Skip over optional "SIG" prefix */
-+        if (strncmp(sig_str, "SIG", 3) == 0) {
-+                warning("Using deprecated signal name %s. Drop the 'SIG' prefix.\n", sig_str);
-+                sig_str += 3;
-+        }
-+
- 	for (i = 0; i < array_count(siglist); i++) {
- 		if (strcmp(sig_str, siglist[i].name) == 0) {
- 			*sig_num = siglist[i].signal;
--- 
-2.1.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch
deleted file mode 100644
index 9fe0ca7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From b4ea54158c399874e12394ebc91afe98954695e2 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 26 Aug 2015 16:16:16 +0300
-Subject: [PATCH 2/5] Adapt to linux-wrs kernel version, which has character
- '_' inside. Remove the first-char-digit-check (as the 1.15.8.5 version does).
-
-Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- lib/dpkg/parsehelp.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/lib/dpkg/parsehelp.c b/lib/dpkg/parsehelp.c
-index 453077fd9..f42ea2882 100644
---- a/lib/dpkg/parsehelp.c
-+++ b/lib/dpkg/parsehelp.c
-@@ -243,14 +243,12 @@ parseversion(struct dpkg_version *rversion, const char *string,
-   ptr = rversion->version;
-   if (!*ptr)
-     return dpkg_put_error(err, _("version number is empty"));
--  if (*ptr && !c_isdigit(*ptr++))
--    return dpkg_put_warn(err, _("version number does not start with digit"));
-   for (; *ptr; ptr++) {
--    if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".-+~:", *ptr) == NULL)
-+    if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".-+~:_", *ptr) == NULL)
-       return dpkg_put_warn(err, _("invalid character in version number"));
-   }
-   for (ptr = rversion->revision; *ptr; ptr++) {
--    if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".+~", *ptr) == NULL)
-+    if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".-+~_", *ptr) == NULL)
-       return dpkg_put_warn(err, _("invalid character in revision number"));
-   }
- 
-
--- 
-2.11.0
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
deleted file mode 100644
index 93d8704..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 24229971492515b64c81e8c6392e5dfbdc22b44c Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 26 Aug 2015 16:25:45 +0300
-Subject: [PATCH 3/5] Our pre/postinsts expect $D to be set when running in a
- sysroot and don't expect a chroot. This matches up our system expectations
- with what dpkg does.
-
-Upstream-Status: Inappropriate [OE Specific]
-
-RP 2011/12/07
-ALIMON 2016/05/26
-ALIMON 2017/02/21
----
- src/script.c | 44 +++-----------------------------------------
- 1 file changed, 3 insertions(+), 41 deletions(-)
-
-diff --git a/src/script.c b/src/script.c
-index 2f252ae..768a9d1 100644
---- a/src/script.c
-+++ b/src/script.c
-@@ -97,48 +97,10 @@ setexecute(const char *path, struct stat *stab)
- static const char *
- maintscript_pre_exec(struct command *cmd)
- {
--	const char *admindir = dpkg_db_get_dir();
--	const char *changedir;
--	size_t instdirlen = strlen(instdir);
--
--	if (instdirlen > 0 && fc_script_chrootless)
--		changedir = instdir;
--	else
--		changedir = "/";
--
--	if (instdirlen > 0 && !fc_script_chrootless) {
--		if (strncmp(admindir, instdir, instdirlen) != 0)
--			ohshit(_("admindir must be inside instdir for dpkg to work properly"));
--		if (setenv("DPKG_ADMINDIR", admindir + instdirlen, 1) < 0)
--			ohshite(_("unable to setenv for subprocesses"));
--		if (setenv("DPKG_ROOT", "", 1) < 0)
--			ohshite(_("unable to setenv for subprocesses"));
--
--		if (chroot(instdir))
--			ohshite(_("failed to chroot to '%.250s'"), instdir);
-+	if (*instdir) {
-+		setenv("D", instdir, 1);
- 	}
--	/* Switch to a known good directory to give the maintainer script
--	 * a saner environment, also needed after the chroot(). */
--	if (chdir(changedir))
--		ohshite(_("failed to chdir to '%.255s'"), changedir);
--	if (debug_has_flag(dbg_scripts)) {
--		struct varbuf args = VARBUF_INIT;
--		const char **argv = cmd->argv;
--
--		while (*++argv) {
--			varbuf_add_char(&args, ' ');
--			varbuf_add_str(&args, *argv);
--		}
--		varbuf_end_str(&args);
--		debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename,
--		      args.buf);
--		varbuf_destroy(&args);
--	}
--	if (instdirlen == 0 || fc_script_chrootless)
--		return cmd->filename;
--
--	assert(strlen(cmd->filename) >= instdirlen);
--	return cmd->filename + instdirlen;
-+	return cmd->filename;
- }
- 
- /**
--- 
-2.1.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch
deleted file mode 100644
index 56c85c7..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From adb6bfd0feeceaf030df0debe3343d7f73e708a0 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 26 Aug 2015 16:27:45 +0300
-Subject: [PATCH 4/5] The lutimes function doesn't work properly for all
- systems.
-
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- src/archives.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/archives.c b/src/archives.c
-index bff5f14..b711013 100644
---- a/src/archives.c
-+++ b/src/archives.c
-@@ -449,8 +449,9 @@ tarobject_set_mtime(struct tar_entry *te, const char *path)
- 
-   if (te->type == TAR_FILETYPE_SYMLINK) {
- #ifdef HAVE_LUTIMES
--    if (lutimes(path, tv) && errno != ENOSYS)
-+/*    if (lutimes(path, tv) && errno != ENOSYS)
-       ohshite(_("error setting timestamps of '%.255s'"), path);
-+*/
- #endif
-   } else {
-     if (utimes(path, tv))
--- 
-2.1.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0005-dpkg-compiler.m4-remove-Wvla.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0005-dpkg-compiler.m4-remove-Wvla.patch
deleted file mode 100644
index 96e96f2..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0005-dpkg-compiler.m4-remove-Wvla.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 0ad7bba80d5b9035089ff2b2f77a774b5b201915 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 26 Aug 2015 16:28:59 +0300
-Subject: [PATCH 5/5] dpkg-compiler.m4: remove -Wvla
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Remove the -Wvla flag from the set of compiler warning flags, since gcc
-on old host systems such as CentOS 5.8 doesn't support it, and it
-causes a build error for dpkg-native.
-
-Upstream-Status: Pending
-
-Signed-off-by: Donn Seeley <donn.seeley@windriver.com>
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
----
- m4/dpkg-compiler.m4 | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/m4/dpkg-compiler.m4 b/m4/dpkg-compiler.m4
-index 682857c..23ed7d0 100644
---- a/m4/dpkg-compiler.m4
-+++ b/m4/dpkg-compiler.m4
-@@ -52,7 +52,6 @@ AC_DEFUN([DPKG_CHECK_COMPILER_WARNINGS], [
-   DPKG_CHECK_COMPILER_FLAG([-Wlogical-op])
-   DPKG_CHECK_COMPILER_FLAG([-Wlogical-not-parentheses])
-   DPKG_CHECK_COMPILER_FLAG([-Wswitch-bool])
--  DPKG_CHECK_COMPILER_FLAG([-Wvla])
-   DPKG_CHECK_COMPILER_FLAG([-Winit-self])
-   DPKG_CHECK_COMPILER_FLAG([-Wwrite-strings])
-   DPKG_CHECK_COMPILER_FLAG([-Wcast-align])
--- 
-2.1.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0006-add-musleabi-to-known-target-tripets.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0006-add-musleabi-to-known-target-tripets.patch
deleted file mode 100644
index 8797ea5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0006-add-musleabi-to-known-target-tripets.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f8910022dc3ec622272f168cd0022dbdf6dff93a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Dec 2015 23:05:41 +0000
-Subject: [PATCH] add musleabi to known target tripets
-
-helps compiling dpkg for musl/arm-softfloat
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
----
- data/ostable    | 1 +
- data/tupletable | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/data/ostable b/data/ostable
-index 99c1f889d..be6434271 100644
---- a/data/ostable
-+++ b/data/ostable
-@@ -17,6 +17,7 @@
- eabi-uclibc-linux	linux-uclibceabi	linux[^-]*-uclibceabi
- base-uclibc-linux	linux-uclibc		linux[^-]*-uclibc
- eabihf-musl-linux	linux-musleabihf	linux[^-]*-musleabihf
-+eabi-musl-linux		linux-musleabi		linux[^-]*-musleabi
- base-musl-linux		linux-musl		linux[^-]*-musl
- eabihf-gnu-linux	linux-gnueabihf		linux[^-]*-gnueabihf
- eabi-gnu-linux		linux-gnueabi		linux[^-]*-gnueabi
-diff --git a/data/tupletable b/data/tupletable
-index 5f500f6ca..28f00bfe6 100644
---- a/data/tupletable
-+++ b/data/tupletable
-@@ -8,6 +8,7 @@
- eabi-uclibc-linux-arm		uclibc-linux-armel
- base-uclibc-linux-<cpu>		uclibc-linux-<cpu>
- eabihf-musl-linux-arm		musl-linux-armhf
-+eabi-musl-linux-arm		musl-linux-armel
- base-musl-linux-<cpu>		musl-linux-<cpu>
- ilp32-gnu-linux-arm64		arm64ilp32
- eabihf-gnu-linux-arm		armhf
--- 
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch
deleted file mode 100644
index 1b985df..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 8659eeeeda74d71e12080121f0b13a88cbdda433 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Tue, 21 Feb 2017 11:23:27 -0600
-Subject: [PATCH] dpkg-deb/build.c: Remove usage of --clamp-mtime in tar
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Recently dpkg added --clamp-mtime to tar to create reproducible
-build tarballs [1].
-
-But host tools doesn't support this option because is new on tar
-so disable in our builds.
-
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
-
-Upstream-Status: Inappropriate [Configuration]
-
-[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759999#20
-[2] https://lists.gnu.org/archive/html/help-tar/2016-01/msg00000.html
----
- dpkg-deb/build.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
-index a92b58e..a3d1912 100644
---- a/dpkg-deb/build.c
-+++ b/dpkg-deb/build.c
-@@ -450,7 +450,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
- 
-     command_init(&cmd, TAR, "tar -cf");
-     command_add_args(&cmd, "tar", "-cf", "-", "--format=gnu",
--                           "--mtime", mtime, "--clamp-mtime", NULL);
-+                           "--mtime", mtime, NULL);
-     /* Mode might become a positional argument, pass it before -T. */
-     if (mode)
-       command_add_args(&cmd, "--mode", mode, NULL);
--- 
-2.11.0
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/add_armeb_triplet_entry.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/add_armeb_triplet_entry.patch
deleted file mode 100644
index d165616..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/add_armeb_triplet_entry.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Author: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com>
-Date:   Wed Apr 8 18:08:14 2015 +0530
-
-[PATCH] add armeb triplet entry into triplettable.
-
-Cross-compling dpkg application for armeb fails with below error
-during configure task,
-
-(snip)
- configure:23141: checking dpkg cpu type
- configure:23148: result: armeb
- configure:23150: WARNING: armeb not found in cputable
- configure:23162: checking dpkg operating system type
- configure:23169: result: linux-gnueabi
- configure:23171: WARNING: linux-gnueabi not found in ostable
- configure:23183: checking dpkg architecture name
- configure:23189: error: cannot determine host dpkg architecture
--- CUT --
-
-the required combination of "gnueabi-linux-armeb" was not found in
-the triplettable file thereby returning dpkg_arch as
-empty in configure script.
-
-Upstream-Status: Pending
-
-Signed-off-by: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com>
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
-
----
- data/tupletable | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/data/tupletable b/data/tupletable
-index b7802bec3..5f500f6ca 100644
---- a/data/tupletable
-+++ b/data/tupletable
-@@ -12,6 +12,7 @@ base-musl-linux-<cpu>		musl-linux-<cpu>
- ilp32-gnu-linux-arm64		arm64ilp32
- eabihf-gnu-linux-arm		armhf
- eabi-gnu-linux-arm		armel
-+eabi-gnu-linux-armeb		armeb
- abin32-gnu-linux-mips64r6el	mipsn32r6el
- abin32-gnu-linux-mips64r6	mipsn32r6
- abin32-gnu-linux-mips64el	mipsn32el
--- 
-2.11.0
-
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/arch_pm.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/arch_pm.patch
deleted file mode 100644
index 4e0d22a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/arch_pm.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-configure cannot determine the proper cpu, os, or
-architecture for mips64, and possibly other arch's
-because of faulty code added to Arch.pm in the latest
-release from upstream.  We remove that code.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
----
- scripts/Dpkg/Arch.pm | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/scripts/Dpkg/Arch.pm b/scripts/Dpkg/Arch.pm
-index 1720847b8..6345ce3b9 100644
---- a/scripts/Dpkg/Arch.pm
-+++ b/scripts/Dpkg/Arch.pm
-@@ -323,9 +323,6 @@ sub _load_tupletable()
- 		    (my $dt = $debtuple) =~ s/<cpu>/$_cpu/;
- 		    (my $da = $debarch) =~ s/<cpu>/$_cpu/;
- 
--		    next if exists $debarch_to_debtuple{$da}
--		         or exists $debtuple_to_debarch{$dt};
--
- 		    $debarch_to_debtuple{$da} = $dt;
- 		    $debtuple_to_debarch{$dt} = $da;
- 		}
--- 
-2.11.0
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/noman.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/noman.patch
deleted file mode 100644
index a7f3cb8..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/noman.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Upstream-Status: Inappropriate [disable feature]
-
----
- Makefile.am | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 0da52cb16..a1f79e0a2 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -13,8 +13,7 @@ SUBDIRS = \
- 	$(MAYBE_DSELECT) \
- 	scripts \
- 	t-func \
--	po \
--	man
-+	po
- 
- ACLOCAL_AMFLAGS = -I m4
- 
--- 
-2.11.0
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/remove-tar-no-timestamp.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/remove-tar-no-timestamp.patch
deleted file mode 100644
index 4f408ff..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/remove-tar-no-timestamp.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-busybox-1.19.4 tar utility doesn't support --warning=no-timestamp
-
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Upstream-Status: Inappropriate [configuration]
-Index: dpkg-1.17.1/dpkg-deb/extract.c
-===================================================================
---- dpkg-1.17.1.orig/dpkg-deb/extract.c
-+++ dpkg-1.17.1/dpkg-deb/extract.c
-@@ -318,7 +318,6 @@ extracthalf(const char *debar, const cha
- 
-       command_add_arg(&cmd, "-f");
-       command_add_arg(&cmd, "-");
--      command_add_arg(&cmd, "--warning=no-timestamp");
- 
-       m_dup2(p2[0],0);
-       close(p2[0]);
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.18.25.bb b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.18.25.bb
deleted file mode 100644
index b372d3c..0000000
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.18.25.bb
+++ /dev/null
@@ -1,87 +0,0 @@
-SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \
-package"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;endline=21;md5=8fbd0497a7d0b01e99820bffcb58e9ad"
-DEPENDS = "zlib bzip2 perl ncurses"
-# start-stop-daemon is usually shipped by dpkg
-RCONFLICTS_${PN} = "dpkg"
-
-SRC_URI = " \
-    ${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \
-    file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \
-    file://noman.patch \
-    file://remove-tar-no-timestamp.patch \
-    file://arch_pm.patch \
-    file://add_armeb_triplet_entry.patch \
-    file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \
-    file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \
-    file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \
-    file://0005-dpkg-compiler.m4-remove-Wvla.patch \
-    file://0006-add-musleabi-to-known-target-tripets.patch \
-    file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \
-    file://0001-dpkg-Support-muslx32-build.patch \
-"
-SRC_URI[md5sum] = "e463f58b04acb23659df23d2a7a05cff"
-SRC_URI[sha256sum] = "c49c371953aea03f543814dcae37c069e86069333fb2e24e9252e76647663492"
-
-inherit autotools gettext perlnative pkgconfig perl-version
-
-S = "${WORKDIR}/dpkg-${PV}"
-
-EXTRA_OECONF = "\
-                --disable-dselect \
-                --enable-start-stop-daemon \
-                --with-libz \
-                --with-libbz2 \
-                --without-libselinux \
-                "
-
-PACKAGECONFIG = "liblzma"
-PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz"
-
-export PERL = "${bindir}/perl"
-export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}"
-EXTRA_OECONF += "TAR=tar"
-
-EXTRA_OECONF_append_class-target = " DEB_HOST_ARCH=${DPKG_ARCH}"
-
-DPKG_ARCH ??= "${@deb_arch_map(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'))}"
-
-def deb_arch_map(arch, tune):
-    tune_features = tune.split()
-    if arch == "allarch":
-        return "all"
-    if arch in ["i586", "i686"]:
-        return "i386"
-    if arch == "x86_64":
-        if "mx32" in tune_features:
-            return "x32"
-        return "amd64"
-    if arch.startswith("mips"):
-        endian = ["el", ""]["bigendian" in tune_features]
-        if "n64" in tune_features:
-            return "mips64" + endian
-        if "n32" in tune_features:
-            return "mipsn32" + endian
-        return "mips" + endian
-    if arch == "powerpc":
-        return arch + ["", "spe"]["spe" in tune_features]
-    if arch == "aarch64":
-        return "arm64"
-    if arch == "arm":
-        return arch + ["el", "hf"]["callconvention-hard" in tune_features]
-    return arch
-
-do_install_append () {
-    # remove everything that is not related to start-stop-daemon, since there
-    # is no explicit rule for only installing ssd
-    find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \;
-    find ${D} -depth -type d -empty -exec rmdir {} \;
-
-    # support for buggy init.d scripts that refer to an alternative
-    # explicit path to 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/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index b52deff..c183f05 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -127,6 +127,7 @@
 RDEPENDS_${PN} += " ${@oe.utils.conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}"
 
 RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog"
+RCONFLICTS_${PN}-libs = "busybox-syslog sysklogd rsyslog"
 
 RPROVIDES_${PN} += "${PN}-systemd"
 RREPLACES_${PN} += "${PN}-systemd"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-tools-Install-bash_completion-script-in-etc-bash_com.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-tools-Install-bash_completion-script-in-etc-bash_com.patch
new file mode 100644
index 0000000..16dc440
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-tools-Install-bash_completion-script-in-etc-bash_com.patch
@@ -0,0 +1,33 @@
+From 7863a72c723035529d6fd8d626d7fbf9a765f162 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 May 2019 21:49:57 -0700
+Subject: [PATCH] tools: Install bash_completion script in
+ /etc/bash_completion.d
+
+In OE this is one of common locations to install bash_completion files
+and its covered for packaging automatically when bash_completion class
+is inherited
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 0aaec11..839c961 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -72,7 +72,7 @@ udisks_tcp_bridge_LDADD = $(DBUS_GLIB_LIBS)
+ 
+ CLEANFILES = $(BUILT_SOURCES)
+ 
+-profiledir = $(sysconfdir)/profile.d
++profiledir = $(sysconfdir)/bash_completion.d
+ profile_SCRIPTS = udisks-bash-completion.sh
+ 
+ EXTRA_DIST = $(profile_SCRIPTS)
+-- 
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch
new file mode 100644
index 0000000..ef7f6f9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch
@@ -0,0 +1,38 @@
+From 44953e5501e92c87611be45221338004e8032a74 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 May 2019 22:00:14 -0700
+Subject: [PATCH] udisks-helper: Use sh interpreter instead of bash
+
+These scripts do not require bash, since they do not use any bash
+specific extentions
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/helpers/udisks-helper-change-luks-password | 2 +-
+ src/helpers/udisks-helper-mdadm-expand         | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/helpers/udisks-helper-change-luks-password b/src/helpers/udisks-helper-change-luks-password
+index edcf6c9..c71fc72 100755
+--- a/src/helpers/udisks-helper-change-luks-password
++++ b/src/helpers/udisks-helper-change-luks-password
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env sh
+ set -e
+ 
+ DEVICE=$1
+diff --git a/src/helpers/udisks-helper-mdadm-expand b/src/helpers/udisks-helper-mdadm-expand
+index 8b4e23d..921f96a 100755
+--- a/src/helpers/udisks-helper-mdadm-expand
++++ b/src/helpers/udisks-helper-mdadm-expand
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env sh
+ 
+ set -e
+ 
+-- 
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
index 3ae8ecc..0918fed 100644
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
@@ -17,12 +17,14 @@
            file://udisks-1.0.5-fix-service-file.patch \
            file://0001-Make-udev-rules-directory-configurable.patch \
            file://0001-include-sys-sysmacros.h.patch \
+           file://0001-tools-Install-bash_completion-script-in-etc-bash_com.patch \
+           file://0001-udisks-helper-Use-sh-interpreter-instead-of-bash.patch \
            "
 
 SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd"
 SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71"
 
-inherit autotools-brokensep systemd gtk-doc distro_features_check
+inherit autotools-brokensep systemd gtk-doc distro_features_check bash-completion
 
 REQUIRED_DISTRO_FEATURES = "polkit"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
deleted file mode 100644
index bfcdf83..0000000
--- a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "RFC 3986 compliant URI parsing library"
-HOMEPAGE = "https://uriparser.github.io"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=72b0f9c74ae96eeab8cf1bf3efe08da2"
-
-SRC_URI := "${SOURCEFORGE_MIRROR}/project/uriparser/Sources/${PV}/uriparser-${PV}.tar.bz2"
-
-inherit autotools
-
-EXTRA_OECONF = "--disable-test --disable-doc"
-
-SRC_URI[md5sum] = "9aabdc3611546f553f4af372167de6d6"
-SRC_URI[sha256sum] = "ce7ccda4136974889231e8426a785e7578e66a6283009cfd13f1b24a5e657b23"
-
-BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
new file mode 100644
index 0000000..8c28c9d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
@@ -0,0 +1,15 @@
+SUMMARY = "RFC 3986 compliant URI parsing library"
+HOMEPAGE = "https://uriparser.github.io"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fc3bbde670fc6e95392a0e23bf57bda0"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${BP}/${BP}.tar.gz"
+SRC_URI[md5sum] = "9874b64f6f4ff656f3f69598e38f12b7"
+SRC_URI[sha256sum] = "6cef39d6eaf1a48504ee0264ce85f078758057dafb1edd0a898183b55ff76014"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb
index 7eb1383..d01a06c 100644
--- a/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb
@@ -9,15 +9,14 @@
 SECTION = "base"
 LICENSE = "BSD-1-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a2513f7d2291df840527b76b2a8f9718"
+SRCREV = "8b214aefcb81df86a7e5e0d4fa20e59a6c18bc02"
 
 SRC_URI = "\
-    https://github.com/troydhanson/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+    git://github.com/troydhanson/${BPN}.git \
     file://run-ptest \
 "
-UPSTREAM_CHECK_URI = "https://github.com/troydhanson/${BPN}/releases"
 
-SRC_URI[md5sum] = "4d0a33f6393260926032f1fad4bad39a"
-SRC_URI[sha256sum] = "152ccd8e64d0f495377232e3964d06c7ec8bb8c3fbd3217f8a5702614f9a669e"
+S = "${WORKDIR}/git"
 
 inherit ptest
 
