diff options
Diffstat (limited to 'meta-openembedded/meta-oe')
49 files changed, 1077 insertions, 2022 deletions
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb index d5296d7331..98d2faabfd 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb @@ -8,7 +8,7 @@ HOMEPAGE = "http://software.es.net/iperf/" SECTION = "console/network" BUGTRACKER = "https://github.com/esnet/iperf/issues" AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=f9088fe7ffdccd042f7645f1012d7f70" DEPENDS = "openssl" diff --git a/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb index 8c49b4674f..71483d88be 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb @@ -2,8 +2,8 @@ SUMMARY = "Small collection of benchmarks for storage I/O" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b529aaa6a0c50f15d29f89609b5c22f3" -SRCREV = "3b9eef2259a70f412ab02fbe6b3a4d313d09c38a" -PV = "3.5" +SRCREV = "f97f1ae321d1fb8111a2c638075702ed2512ff07" +PV = "3.6" SRC_URI = "git://github.com/Algodev-github/S.git;protocol=https;branch=master" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb b/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb index c9913444d6..785abf66d6 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb @@ -2,7 +2,7 @@ SUMMARY = "A packet dissection and creation library" # libnet at packetfactory.net is dead HOMEPAGE = "https://github.com/sam-github/libnet" SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://doc/COPYING;md5=3ec839e00408b484d33b472a86b7c266" DEPENDS = "libpcap" # There are major API changes beween libnet v1.0 and libnet v1.1 diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb b/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb index 3e644760ce..5c19e65b0e 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb @@ -1,7 +1,7 @@ SUMMARY = "Radio enable/disable command line utility" HOMEPAGE = "http://linuxwireless.org/en/users/Documentation/rfkill" SECTION = "base" -LICENSE = "BSD" +LICENSE = "BSD-0-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=c6036d0eb7edbfced28c4160e5d3fa94" SRC_URI = "http://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.bz2 \ diff --git a/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb new file mode 100644 index 0000000000..e3853a201c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb @@ -0,0 +1,22 @@ +SUMMARY = "A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input" +HOMEPAGE = "https://www.glfw.org/" +DESCRIPTION = "GLFW is an Open Source, multi-platform library for OpenGL, \ +OpenGL ES and Vulkan application development. It provides a simple, \ +platform-independent API for creating windows, contexts and surfaces, reading \ +input, handling events, etc." +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=98d93d1ddc537f9b9ea6def64e046b5f" +SECTION = "lib" + +inherit pkgconfig cmake + +S = "${WORKDIR}/git" +SRC_URI = "git://github.com/glfw/glfw.git" +SRCREV = "d25248343e248337284dfbe5ecd1eddbd37ae66d" + +EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON" + +DEPENDS = "libpng libglu zlib libxrandr libxinerama libxi libxcursor" +REQUIRED_DISTRO_FEATURES = "x11" + +COMPATIBLE_HOST_libc-musl = "null" diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.60.0.bb b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.62.0.bb index 7163212b55..75eea4e589 100644 --- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.60.0.bb +++ b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.62.0.bb @@ -13,8 +13,8 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI += " \ file://remove-examples.patch \ " -SRC_URI[archive.md5sum] = "0f6180d185c067bdb2aa30d035f9b867" -SRC_URI[archive.sha256sum] = "a3a1b1c9805479a16c0018acd84b3bfff23a122aee9e3c5013bb81231aeef2bc" +SRC_URI[archive.md5sum] = "7da228e3f0c6a10024b9a7708c53691e" +SRC_URI[archive.sha256sum] = "36659f13cc73282392d1305858f3bbca46fbd1ce2f078cc9db8b9f79b2e93cfe" do_install_append() { install -d ${D}${datadir}/glibmm-2.4 diff --git a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.0.bb b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.0.bb new file mode 100644 index 0000000000..3c0330f503 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.0.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "A library for loose coupling of C++ method calls" +SECTION = "libs" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=959bffe2993816eb32ec4bc1ec1d5875" + +DEPENDS = "mm-common" + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/3.0/libsigc++-${PV}.tar.xz" +SRC_URI[md5sum] = "6ffe924f1d8624b5716468cde67dc03f" +SRC_URI[sha256sum] = "50a0855c1eb26e6044ffe888dbe061938ab4241f96d8f3754ea7ead38ab8ed06" + +S = "${WORKDIR}/libsigc++-${PV}" + +inherit autotools + +FILES_${PN}-dev += "${libdir}/sigc++-*/" +FILES_${PN}-doc += "${datadir}/devhelp" + +BBCLASSEXTEND = "native" +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc index 0fe5d58e1c..91d0275b3b 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc +++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc @@ -18,7 +18,7 @@ DESCRIPTION = "\ this package if you're installing the postgresql-server package. \ " HOMEPAGE = "http://www.postgresql.com" -LICENSE = "BSD" +LICENSE = "BSD-0-Clause" DEPENDS = "libnsl2 zlib readline tzcode-native" ARM_INSTRUCTION_SET = "arm" diff --git a/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb b/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb index 8aa5947d0d..199c31e154 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb @@ -11,7 +11,7 @@ DESCRIPTION = "Cscope is a developer's tool for browsing source code. \ HOMEPAGE = "http://cscope.sourceforge.net/" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=d4667b67b483823043fcffa489ea343b" inherit autotools diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.36.bb index 84adc7abe4..f768998450 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.36.bb @@ -29,11 +29,11 @@ inherit distro_features_check autotools pkgconfig gtk-icon-cache REQUIRED_DISTRO_FEATURES = "x11" SRC_URI = " \ - http://plugins.geany.org/${BPN}/${BP}.tar.bz2 \ + https://plugins.geany.org/${BPN}/${BP}.tar.bz2 \ file://0001-Use-pkg-config-to-find-gpgme.patch \ " -SRC_URI[md5sum] = "bf5fdd50727ad8bbbfe00027ccf2dac5" -SRC_URI[sha256sum] = "244417c681636e82a63cf6f9901b5b7f3889168f7d9b5ba9b45601767a589c3b" +SRC_URI[md5sum] = "91fb4634953702f914d9105da7048a33" +SRC_URI[sha256sum] = "ebe18dd699292174622e8cb8745b020ada8a5be3b604ab980af36e8518df7ce6" do_configure_prepend() { rm -f ${S}/build/cache/glib-gettext.m4 diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.34.1.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb index aab535d85b..193c198a18 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.34.1.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb @@ -9,9 +9,9 @@ inherit distro_features_check autotools pkgconfig perlnative pythonnative gettex REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI = "http://download.geany.org/${BP}.tar.bz2" -SRC_URI[md5sum] = "87220f4a0e03623ab9d86820f6be7b5d" -SRC_URI[sha256sum] = "e765efd89e759defe3fd797d8a2052afbb4b23522efbcc72e3a72b7f1093ec11" +SRC_URI = "https://download.geany.org/${BP}.tar.bz2" +SRC_URI[md5sum] = "53216a43345e2b6dbefa02ac24885753" +SRC_URI[sha256sum] = "9184dd3dd40b7b84fca70083284bb9dbf2ee8022bf2be066bdc36592d909d53e" FILES_${PN} += "${datadir}/icons" diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch new file mode 100644 index 0000000000..98cc9ba907 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch @@ -0,0 +1,42 @@ +From 5226333bddb755dbefd780d31450e0238dd5d3bd Mon Sep 17 00:00:00 2001 +From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com> +Date: Wed, 16 Oct 2019 08:24:23 +0900 +Subject: [PATCH] Bug fix for data type length judgment. + +... +if (byte_size == sizeof(long)) { + + *type = is_signed ? ARGTYPE_LONG : ARGTYPE_ULONG; + + return true; + +} +... + +If ltrace's target command has a dbg package, ltrace will look for the debug file and analyze its contents. +Ltrace determines the type of analysis result variable. The type of the variable is longlong. +On 32-bit systems, longlong is 8 and long is 4 (same as in). +An error occurred because the ltrace code did not process a variable of length 8. + +Upstream-Status: Pending +Signed-off-by: Wang Mingyu <wangmy.fnst@cn.fujitsu.com> +--- + dwarf_prototypes.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dwarf_prototypes.c b/dwarf_prototypes.c +index bfac177..9887d4b 100644 +--- a/dwarf_prototypes.c ++++ b/dwarf_prototypes.c +@@ -190,7 +190,7 @@ static bool get_integer_base_type(enum arg_type *type, int byte_size, + return true; + } + +- if (byte_size == sizeof(long)) { ++ if (byte_size == sizeof(long long)) { + *type = is_signed ? ARGTYPE_LONG : ARGTYPE_ULONG; + return true; + } +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb index ead637cb7e..5c4e7c5b85 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb @@ -28,6 +28,7 @@ SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \ file://0001-hook-Do-not-append-int-to-std-string.patch \ file://include_unistd_nr.patch \ + file://0001-Bug-fix-for-data-type-length-judgment.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb b/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb index a7163a35a8..b5ca495663 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb @@ -1,6 +1,6 @@ SUMMARY = "MCPP is a portable C/C++ preprocessor" HOMEPAGE = "http://mcpp.sourceforge.net/" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=5ca370b75ec890321888a00cea9bc1d5" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb index 65e49bc95b..4399edaab1 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_git.bb @@ -2,13 +2,13 @@ SUMMARY = "JSON for modern C++" HOMEPAGE = "https://nlohmann.github.io/json/" SECTION = "libs" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=9a8ae1c2d606c432a2aa2e2de15be22a" +LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=f5f7c71504da070bcf4f090205ce1080" SRC_URI = "git://github.com/nlohmann/json.git" -PV = "3.3.0+git${SRCPV}" +PV = "3.7.0+git${SRCPV}" -SRCREV = "aafad2be1f3cd259a1e79d2f6fcf267d1ede9ec7" +SRCREV = "ea60d40f4a60a47d3be9560d8f7bc37c163fe47b" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb index b20d4c05ca..dc4fbf7f57 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb @@ -1,5 +1,5 @@ SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes" -LICENSE = "BSD" +LICENSE = "MIT" HOMEPAGE = "http://www.tortall.net/projects/yasm/" LIC_FILES_CHKSUM = "file://COPYING;md5=a12d8903508fb6bfd49d8d82c6170dd9" diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch index 3bc0db96e6..24864ea606 100644 --- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch +++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch @@ -10,16 +10,18 @@ Upstream-Status: Inappropriate [OE Specific] Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +Update for 20190617. +Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> --- aclocal.m4 | 1 - - configure | 140 ------------------------------------------------------------- - 2 files changed, 141 deletions(-) + configure | 259 ------------------------------------------------------------- + 2 files changed, 260 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 -index 0d14f26..0cefa08 100644 +index 338465f..3311057 100644 --- a/aclocal.m4 +++ b/aclocal.m4 -@@ -1038,7 +1038,6 @@ CF_GCC_VERSION +@@ -1231,7 +1231,6 @@ CF_GCC_VERSION CF_ACVERSION_CHECK(2.52, [AC_PROG_CC_STDC], [CF_ANSI_CC_REQD]) @@ -28,21 +30,140 @@ index 0d14f26..0cefa08 100644 dnl --------------------------------------------------------------------------- dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19 diff --git a/configure b/configure -index d27ae31..077c648 100755 +index ebb1f0f..a56cb17 100755 --- a/configure +++ b/configure -@@ -1946,146 +1946,6 @@ esac +@@ -1957,265 +1957,6 @@ esac # This should have been defined by AC_PROG_CC : ${CC:=cc} --echo "$as_me:1949: checking \$CC variable" >&5 +-echo "$as_me:1960: checking \$CFLAGS variable" >&5 +-echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6 +-case "x$CFLAGS" in +-(*-[IUD]*) +- echo "$as_me:1964: result: broken" >&5 +-echo "${ECHO_T}broken" >&6 +- { echo "$as_me:1966: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5 +-echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;} +- cf_flags="$CFLAGS" +- CFLAGS= +- for cf_arg in $cf_flags +- do +- +-cf_fix_cppflags=no +-cf_new_cflags= +-cf_new_cppflags= +-cf_new_extra_cppflags= +- +-for cf_add_cflags in $cf_arg +-do +-case $cf_fix_cppflags in +-(no) +- case $cf_add_cflags in +- (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) +- case $cf_add_cflags in +- (-D*) +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` +- +- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=yes +- +- if test $cf_fix_cppflags = yes ; then +- +- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " +- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" +- +- continue +- elif test "${cf_tst_cflags}" = "\"'" ; then +- +- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " +- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" +- +- continue +- fi +- ;; +- esac +- case "$CPPFLAGS" in +- (*$cf_add_cflags) +- ;; +- (*) +- case $cf_add_cflags in +- (-D*) +- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` +- +-CPPFLAGS=`echo "$CPPFLAGS" | \ +- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ +- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` +- +- ;; +- esac +- +- test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " +- cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" +- +- ;; +- esac +- ;; +- (*) +- +- test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " +- cf_new_cflags="${cf_new_cflags}$cf_add_cflags" +- +- ;; +- esac +- ;; +-(yes) +- +- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " +- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" +- +- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` +- +- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ +- && test -z "${cf_tst_cflags}" \ +- && cf_fix_cppflags=no +- ;; +-esac +-done +- +-if test -n "$cf_new_cflags" ; then +- +- test -n "$CFLAGS" && CFLAGS="$CFLAGS " +- CFLAGS="${CFLAGS}$cf_new_cflags" +- +-fi +- +-if test -n "$cf_new_cppflags" ; then +- +- test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " +- CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" +- +-fi +- +-if test -n "$cf_new_extra_cppflags" ; then +- +- test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " +- EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" +- +-fi +- +- done +- ;; +-(*) +- echo "$as_me:2074: result: ok" >&5 +-echo "${ECHO_T}ok" >&6 +- ;; +-esac +- +-echo "$as_me:2079: checking \$CC variable" >&5 -echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 -case "$CC" in -(*[\ \ ]-*) -- echo "$as_me:1953: result: broken" >&5 +- echo "$as_me:2083: result: broken" >&5 -echo "${ECHO_T}broken" >&6 -- { echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 --echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} +- { echo "$as_me:2085: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 +-echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} - # humor him... - cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'` - cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'` @@ -158,24 +279,24 @@ index d27ae31..077c648 100755 - done - test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6 - --echo "${as_me:-configure}:2072: testing resulting CC: '$CC' ..." 1>&5 +-echo "${as_me:-configure}:2202: testing resulting CC: '$CC' ..." 1>&5 - - test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6 - --echo "${as_me:-configure}:2076: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5 +-echo "${as_me:-configure}:2206: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5 - - test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6 - --echo "${as_me:-configure}:2080: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5 +-echo "${as_me:-configure}:2210: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5 - - ;; -(*) -- echo "$as_me:2084: result: ok" >&5 +- echo "$as_me:2214: result: ok" >&5 -echo "${ECHO_T}ok" >&6 - ;; -esac - - echo "$as_me:2089: checking whether ${MAKE-make} sets \${MAKE}" >&5 + echo "$as_me:2219: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -- diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20190617.bb index f30c426409..2834b7c5e4 100644 --- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20180510.bb +++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc_20190617.bb @@ -4,9 +4,9 @@ # Setting to PD as this is what the upstream has it as. LICENSE = "PD" -LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=8b2933503c0443e041d3168dc0c65640" +LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=3eb7c635434fafe23ef30fc263e63b2f" require byacc.inc -SRC_URI[md5sum] = "97fdc0745e0ff0cef5c09d57d0c6752d" -SRC_URI[sha256sum] = "d0940dbffbc7e9c9dd4985c25349c390beede84ae1d9fe86b71c0aa659a6d693" +SRC_URI[md5sum] = "17b3f7e7ed570d785b145064d99df615" +SRC_URI[sha256sum] = "f87868167b920bf2cb30fc32b62f63ae15671181ef329226d1063100be02518d" diff --git a/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb b/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb index 987c09fe52..251c5d0f5a 100644 --- a/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb +++ b/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb @@ -1,7 +1,7 @@ SUMMARY = "Adapter to write and run CMPI-type CIM providers" DESCRIPTION = "CMPI-compliant provider interface for various languages via SWIG" HOMEPAGE = "http://github.com/kkaempf/cmpi-bindings" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=b19ee058d2d5f69af45da98051d91064" SECTION = "Development/Libraries" DEPENDS = "swig-native python3 sblim-cmpi-devel" diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb index 7231484fe9..2b0dfe4ea5 100644 --- a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb +++ b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb @@ -4,7 +4,7 @@ DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \ architectures." HOMEPAGE = "https://www.open-mpi.org/software/hwloc/" SECTION = "base" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b" SRC_URI = "https://www.open-mpi.org/software/${BPN}/v1.11/downloads/${BP}.tar.bz2" diff --git a/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb b/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb index bb59845196..5c1c151591 100644 --- a/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb +++ b/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb @@ -8,7 +8,7 @@ sophisticated "behind the scenes" with better support for multiple threads \ and flexibility for different log destinations (e.g. syslog and systemd \ journal)." SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=63fe03535d83726f5655072502bef1bc" SRC_URI = "http://download.rsyslog.com/${BPN}/${BPN}-${PV}.tar.gz" diff --git a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb index 17ca262734..6d42c67719 100644 --- a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb +++ b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb @@ -22,6 +22,8 @@ DEPENDS += "json-c" EXTRA_OECMAKE_append = " -DINSTALLTOOLS:BOOL=ON -DFIRMATA=ON -DCMAKE_SKIP_RPATH=ON \ -DPYTHON3_PACKAGES_PATH:PATH=${baselib}/python${PYTHON_BASEVERSION}/site-packages \ + -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \ + -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \ " # Prepend mraa-utils to make sure bindir ends up in there diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb index e5bb0765f6..f9292790cc 100644 --- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb +++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb @@ -26,7 +26,7 @@ SRC_URI = "git://github.com/Openwsman/openwsman.git \ S = "${WORKDIR}/git" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba" inherit systemd cmake pkgconfig python3native perlnative diff --git a/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb index 96da266e65..f5066da0d8 100644 --- a/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb +++ b/meta-openembedded/meta-oe/recipes-extended/pmdk/pmdk_1.7.bb @@ -2,7 +2,7 @@ SUMMARY = "Persistent Memory Development Kit" DESCRIPTION = "Persistent Memory Development Kit" HOMEPAGE = "http://pmem.io" SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=7db1106255a1baa80391fd2e21eebab7" DEPENDS = "ndctl" diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb index 45ea29b702..7dc6f97115 100644 --- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb +++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.14.bb @@ -2,7 +2,7 @@ SUMMARY = "Redis key-value store" DESCRIPTION = "Redis is an open source, advanced key-value store." HOMEPAGE = "http://redis.io" SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=3c01b49fed4df1a79843688fa3f7b9d6" DEPENDS = "readline lua ncurses" diff --git a/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb b/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb index b922bb1f15..2b7571e232 100644 --- a/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb +++ b/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb @@ -5,7 +5,7 @@ DESCRIPTION = "scsirastools were designed to add to the Serviceability of \ maintenance or service functions. It handles SCSI, \ Linux SW RAID, SAS, SATA, and USB devices via SCSI emulation." HOMEPAGE = "http://scsirastools.sourceforge.net/" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=687ea108478d26152ae46eb29d9d1545" DEPENDS += "groff-native" diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb index a6b379ec36..fb22e83359 100644 --- a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb +++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb @@ -36,7 +36,7 @@ BINDINGS_armv5 ??= "python" PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \ ${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}" -PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN}," +PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN}," PACKAGECONFIG[nodejs] = "-DBUILDSWIGNODE=ON, -DBUILDSWIGNODE=OFF, swig-native nodejs-native," FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}" diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.1.bb b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.2.bb index 6dd0513376..4ded679012 100644 --- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.1.bb +++ b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.2.bb @@ -14,8 +14,8 @@ inherit gnomebase distro_features_check REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI[archive.md5sum] = "9524ed4e5c821d13eeda49ba2a78f024" -SRC_URI[archive.sha256sum] = "ddfe42ed2458a20a34de252854bcf4b52d3f0c671c045f56b42aa27c7542d2fd" +SRC_URI[archive.md5sum] = "e311db484ca9c53f1689d35f5f58a06b" +SRC_URI[archive.sha256sum] = "6d71091bcd1863133460d4188d04102810e9123de19706fb656b7bb915b4adc3" SRC_URI += "file://0001-do-not-build-demos.patch" EXTRA_OECONF = " --disable-documentation " diff --git a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb index c7e872409f..684a204ead 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.4.bb @@ -16,7 +16,7 @@ RDEPENDS_${PN} = "libxcb xcb-util-keysyms" inherit cmake python3native distro_features_check -REQUIRED_DISTRO_FEATURES = "x11" +REQUIRED_DISTRO_FEATURES = "x11 opengl" python __anonymous () { # only works on glibc systems diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb new file mode 100644 index 0000000000..521caff74f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb @@ -0,0 +1,14 @@ +require ttf.inc + +SUMMARY = "Roboto fonts" +HOMEPAGE = "https://fonts.google.com/specimen/Roboto" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +SRC_URI = "https://github.com/google/roboto/releases/download/v${PV}/roboto-android.zip" +SRC_URI[md5sum] = "3b43a5cb33196ec25e44d5fcb40219e1" +SRC_URI[sha256sum] = "c825453253f590cfe62557733e7173f9a421fff103b00f57d33c4ad28ae53baf" + +S = "${WORKDIR}" + +FILES_${PN} = "${datadir}/fonts/truetype/*.ttf" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb index 19ec12c88d..29ef2fa448 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb @@ -5,7 +5,7 @@ designed by the IETF Codec Working Group and incorporates \ technology from Skype's SILK codec and Xiph.Org's CELT codec." HOMEPAGE = "http://www.opus-codec.org/" SECTION = "libs/multimedia" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3" SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb b/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb index ff63111475..a84f2bf078 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb @@ -1,7 +1,7 @@ SUMMARY = "Opus Audio Tools" HOMEPAGE = "http://www.opus-codec.org/" -LICENSE = "BSD" +LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=843a066da9f1facfcc6ea6f616ffecb1" SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch deleted file mode 100644 index 97ec37d4c9..0000000000 --- a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch +++ /dev/null @@ -1,624 +0,0 @@ -From ccb3eb7b4ff65414a56e2294080885b8966da52b Mon Sep 17 00:00:00 2001 -From: Arun Raghavan <git@arunraghavan.net> -Date: Tue, 2 Feb 2016 17:01:47 +0530 -Subject: [PATCH 2/2] build-sys: Add m4 file for AX_CXX_COMPILE_STDCXX_11 - ---- - m4/ax_cxx_compile_stdcxx.m4 | 558 +++++++++++++++++++++++++++++++++++++++++ - m4/ax_cxx_compile_stdcxx_11.m4 | 39 +++ - 2 files changed, 597 insertions(+) - create mode 100644 m4/ax_cxx_compile_stdcxx.m4 - create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4 - -diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 -new file mode 100644 -index 0000000..079e17d ---- /dev/null -+++ b/m4/ax_cxx_compile_stdcxx.m4 -@@ -0,0 +1,558 @@ -+# =========================================================================== -+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html -+# =========================================================================== -+# -+# SYNOPSIS -+# -+# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) -+# -+# DESCRIPTION -+# -+# Check for baseline language coverage in the compiler for the specified -+# version of the C++ standard. If necessary, add switches to CXXFLAGS to -+# enable support. VERSION may be '11' (for the C++11 standard) or '14' -+# (for the C++14 standard). -+# -+# The second argument, if specified, indicates whether you insist on an -+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -+# -std=c++11). If neither is specified, you get whatever works, with -+# preference for an extended mode. -+# -+# The third argument, if specified 'mandatory' or if left unspecified, -+# indicates that baseline support for the specified C++ standard is -+# required and that the macro should error out if no mode with that -+# support is found. If specified 'optional', then configuration proceeds -+# regardless, after defining HAVE_CXX${VERSION} if and only if a -+# supporting mode is found. -+# -+# LICENSE -+# -+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com> -+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com> -+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu> -+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com> -+# Copyright (c) 2015 Paul Norman <penorman@mac.com> -+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 1 -+ -+dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro -+dnl (serial version number 13). -+ -+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl -+ m4_if([$1], [11], [], -+ [$1], [14], [], -+ [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])], -+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl -+ m4_if([$2], [], [], -+ [$2], [ext], [], -+ [$2], [noext], [], -+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl -+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], -+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], -+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false], -+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) -+ AC_LANG_PUSH([C++])dnl -+ ac_success=no -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, -+ ax_cv_cxx_compile_cxx$1, -+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [ax_cv_cxx_compile_cxx$1=yes], -+ [ax_cv_cxx_compile_cxx$1=no])]) -+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then -+ ac_success=yes -+ fi -+ -+ m4_if([$2], [noext], [], [dnl -+ if test x$ac_success = xno; then -+ for switch in -std=gnu++$1 -std=gnu++0x; do -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, -+ $cachevar, -+ [ac_save_CXXFLAGS="$CXXFLAGS" -+ CXXFLAGS="$CXXFLAGS $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXXFLAGS="$ac_save_CXXFLAGS"]) -+ if eval test x\$$cachevar = xyes; then -+ CXXFLAGS="$CXXFLAGS $switch" -+ ac_success=yes -+ break -+ fi -+ done -+ fi]) -+ -+ m4_if([$2], [ext], [], [dnl -+ if test x$ac_success = xno; then -+ dnl HP's aCC needs +std=c++11 according to: -+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf -+ dnl Cray's crayCC needs "-h std=c++11" -+ for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, -+ $cachevar, -+ [ac_save_CXXFLAGS="$CXXFLAGS" -+ CXXFLAGS="$CXXFLAGS $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXXFLAGS="$ac_save_CXXFLAGS"]) -+ if eval test x\$$cachevar = xyes; then -+ CXXFLAGS="$CXXFLAGS $switch" -+ ac_success=yes -+ break -+ fi -+ done -+ fi]) -+ AC_LANG_POP([C++]) -+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then -+ if test x$ac_success = xno; then -+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) -+ fi -+ else -+ if test x$ac_success = xno; then -+ HAVE_CXX$1=0 -+ AC_MSG_NOTICE([No compiler with C++$1 support was found]) -+ else -+ HAVE_CXX$1=1 -+ AC_DEFINE(HAVE_CXX$1,1, -+ [define if the compiler supports basic C++$1 syntax]) -+ fi -+ -+ AC_SUBST(HAVE_CXX$1) -+ fi -+]) -+ -+ -+dnl Test body for checking C++11 support -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -+) -+ -+ -+dnl Test body for checking C++14 support -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 -+) -+ -+ -+dnl Tests for new features in C++11 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ -+ -+// If the compiler admits that it is not ready for C++11, why torture it? -+// Hopefully, this will speed up the test. -+ -+#ifndef __cplusplus -+ -+#error "This is not a C++ compiler" -+ -+#elif __cplusplus < 201103L -+ -+#error "This is not a C++11 compiler" -+ -+#else -+ -+namespace cxx11 -+{ -+ -+ namespace test_static_assert -+ { -+ -+ template <typename T> -+ struct check -+ { -+ static_assert(sizeof(int) <= sizeof(T), "not big enough"); -+ }; -+ -+ } -+ -+ namespace test_final_override -+ { -+ -+ struct Base -+ { -+ virtual void f() {} -+ }; -+ -+ struct Derived : public Base -+ { -+ virtual void f() override {} -+ }; -+ -+ } -+ -+ namespace test_double_right_angle_brackets -+ { -+ -+ template < typename T > -+ struct check {}; -+ -+ typedef check<void> single_type; -+ typedef check<check<void>> double_type; -+ typedef check<check<check<void>>> triple_type; -+ typedef check<check<check<check<void>>>> quadruple_type; -+ -+ } -+ -+ namespace test_decltype -+ { -+ -+ int -+ f() -+ { -+ int a = 1; -+ decltype(a) b = 2; -+ return a + b; -+ } -+ -+ } -+ -+ namespace test_type_deduction -+ { -+ -+ template < typename T1, typename T2 > -+ struct is_same -+ { -+ static const bool value = false; -+ }; -+ -+ template < typename T > -+ struct is_same<T, T> -+ { -+ static const bool value = true; -+ }; -+ -+ template < typename T1, typename T2 > -+ auto -+ add(T1 a1, T2 a2) -> decltype(a1 + a2) -+ { -+ return a1 + a2; -+ } -+ -+ int -+ test(const int c, volatile int v) -+ { -+ static_assert(is_same<int, decltype(0)>::value == true, ""); -+ static_assert(is_same<int, decltype(c)>::value == false, ""); -+ static_assert(is_same<int, decltype(v)>::value == false, ""); -+ auto ac = c; -+ auto av = v; -+ auto sumi = ac + av + 'x'; -+ auto sumf = ac + av + 1.0; -+ static_assert(is_same<int, decltype(ac)>::value == true, ""); -+ static_assert(is_same<int, decltype(av)>::value == true, ""); -+ static_assert(is_same<int, decltype(sumi)>::value == true, ""); -+ static_assert(is_same<int, decltype(sumf)>::value == false, ""); -+ static_assert(is_same<int, decltype(add(c, v))>::value == true, ""); -+ return (sumf > 0.0) ? sumi : add(c, v); -+ } -+ -+ } -+ -+ namespace test_noexcept -+ { -+ -+ int f() { return 0; } -+ int g() noexcept { return 0; } -+ -+ static_assert(noexcept(f()) == false, ""); -+ static_assert(noexcept(g()) == true, ""); -+ -+ } -+ -+ namespace test_constexpr -+ { -+ -+ template < typename CharT > -+ unsigned long constexpr -+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept -+ { -+ return *s ? strlen_c_r(s + 1, acc + 1) : acc; -+ } -+ -+ template < typename CharT > -+ unsigned long constexpr -+ strlen_c(const CharT *const s) noexcept -+ { -+ return strlen_c_r(s, 0UL); -+ } -+ -+ static_assert(strlen_c("") == 0UL, ""); -+ static_assert(strlen_c("1") == 1UL, ""); -+ static_assert(strlen_c("example") == 7UL, ""); -+ static_assert(strlen_c("another\0example") == 7UL, ""); -+ -+ } -+ -+ namespace test_rvalue_references -+ { -+ -+ template < int N > -+ struct answer -+ { -+ static constexpr int value = N; -+ }; -+ -+ answer<1> f(int&) { return answer<1>(); } -+ answer<2> f(const int&) { return answer<2>(); } -+ answer<3> f(int&&) { return answer<3>(); } -+ -+ void -+ test() -+ { -+ int i = 0; -+ const int c = 0; -+ static_assert(decltype(f(i))::value == 1, ""); -+ static_assert(decltype(f(c))::value == 2, ""); -+ static_assert(decltype(f(0))::value == 3, ""); -+ } -+ -+ } -+ -+ namespace test_uniform_initialization -+ { -+ -+ struct test -+ { -+ static const int zero {}; -+ static const int one {1}; -+ }; -+ -+ static_assert(test::zero == 0, ""); -+ static_assert(test::one == 1, ""); -+ -+ } -+ -+ namespace test_lambdas -+ { -+ -+ void -+ test1() -+ { -+ auto lambda1 = [](){}; -+ auto lambda2 = lambda1; -+ lambda1(); -+ lambda2(); -+ } -+ -+ int -+ test2() -+ { -+ auto a = [](int i, int j){ return i + j; }(1, 2); -+ auto b = []() -> int { return '0'; }(); -+ auto c = [=](){ return a + b; }(); -+ auto d = [&](){ return c; }(); -+ auto e = [a, &b](int x) mutable { -+ const auto identity = [](int y){ return y; }; -+ for (auto i = 0; i < a; ++i) -+ a += b--; -+ return x + identity(a + b); -+ }(0); -+ return a + b + c + d + e; -+ } -+ -+ int -+ test3() -+ { -+ const auto nullary = [](){ return 0; }; -+ const auto unary = [](int x){ return x; }; -+ using nullary_t = decltype(nullary); -+ using unary_t = decltype(unary); -+ const auto higher1st = [](nullary_t f){ return f(); }; -+ const auto higher2nd = [unary](nullary_t f1){ -+ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; -+ }; -+ return higher1st(nullary) + higher2nd(nullary)(unary); -+ } -+ -+ } -+ -+ namespace test_variadic_templates -+ { -+ -+ template <int...> -+ struct sum; -+ -+ template <int N0, int... N1toN> -+ struct sum<N0, N1toN...> -+ { -+ static constexpr auto value = N0 + sum<N1toN...>::value; -+ }; -+ -+ template <> -+ struct sum<> -+ { -+ static constexpr auto value = 0; -+ }; -+ -+ static_assert(sum<>::value == 0, ""); -+ static_assert(sum<1>::value == 1, ""); -+ static_assert(sum<23>::value == 23, ""); -+ static_assert(sum<1, 2>::value == 3, ""); -+ static_assert(sum<5, 5, 11>::value == 21, ""); -+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); -+ -+ } -+ -+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae -+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function -+ // because of this. -+ namespace test_template_alias_sfinae -+ { -+ -+ struct foo {}; -+ -+ template<typename T> -+ using member = typename T::member_type; -+ -+ template<typename T> -+ void func(...) {} -+ -+ template<typename T> -+ void func(member<T>*) {} -+ -+ void test(); -+ -+ void test() { func<foo>(0); } -+ -+ } -+ -+} // namespace cxx11 -+ -+#endif // __cplusplus >= 201103L -+ -+]]) -+ -+ -+dnl Tests for new features in C++14 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ -+ -+// If the compiler admits that it is not ready for C++14, why torture it? -+// Hopefully, this will speed up the test. -+ -+#ifndef __cplusplus -+ -+#error "This is not a C++ compiler" -+ -+#elif __cplusplus < 201402L -+ -+#error "This is not a C++14 compiler" -+ -+#else -+ -+namespace cxx14 -+{ -+ -+ namespace test_polymorphic_lambdas -+ { -+ -+ int -+ test() -+ { -+ const auto lambda = [](auto&&... args){ -+ const auto istiny = [](auto x){ -+ return (sizeof(x) == 1UL) ? 1 : 0; -+ }; -+ const int aretiny[] = { istiny(args)... }; -+ return aretiny[0]; -+ }; -+ return lambda(1, 1L, 1.0f, '1'); -+ } -+ -+ } -+ -+ namespace test_binary_literals -+ { -+ -+ constexpr auto ivii = 0b0000000000101010; -+ static_assert(ivii == 42, "wrong value"); -+ -+ } -+ -+ namespace test_generalized_constexpr -+ { -+ -+ template < typename CharT > -+ constexpr unsigned long -+ strlen_c(const CharT *const s) noexcept -+ { -+ auto length = 0UL; -+ for (auto p = s; *p; ++p) -+ ++length; -+ return length; -+ } -+ -+ static_assert(strlen_c("") == 0UL, ""); -+ static_assert(strlen_c("x") == 1UL, ""); -+ static_assert(strlen_c("test") == 4UL, ""); -+ static_assert(strlen_c("another\0test") == 7UL, ""); -+ -+ } -+ -+ namespace test_lambda_init_capture -+ { -+ -+ int -+ test() -+ { -+ auto x = 0; -+ const auto lambda1 = [a = x](int b){ return a + b; }; -+ const auto lambda2 = [a = lambda1(x)](){ return a; }; -+ return lambda2(); -+ } -+ -+ } -+ -+ namespace test_digit_seperators -+ { -+ -+ constexpr auto ten_million = 100'000'000; -+ static_assert(ten_million == 100000000, ""); -+ -+ } -+ -+ namespace test_return_type_deduction -+ { -+ -+ auto f(int& x) { return x; } -+ decltype(auto) g(int& x) { return x; } -+ -+ template < typename T1, typename T2 > -+ struct is_same -+ { -+ static constexpr auto value = false; -+ }; -+ -+ template < typename T > -+ struct is_same<T, T> -+ { -+ static constexpr auto value = true; -+ }; -+ -+ int -+ test() -+ { -+ auto x = 0; -+ static_assert(is_same<int, decltype(f(x))>::value, ""); -+ static_assert(is_same<int&, decltype(g(x))>::value, ""); -+ return x; -+ } -+ -+ } -+ -+} // namespace cxx14 -+ -+#endif // __cplusplus >= 201402L -+ -+]]) -diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4 -new file mode 100644 -index 0000000..09db383 ---- /dev/null -+++ b/m4/ax_cxx_compile_stdcxx_11.m4 -@@ -0,0 +1,39 @@ -+# ============================================================================ -+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html -+# ============================================================================ -+# -+# SYNOPSIS -+# -+# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional]) -+# -+# DESCRIPTION -+# -+# Check for baseline language coverage in the compiler for the C++11 -+# standard; if necessary, add switches to CXXFLAGS to enable support. -+# -+# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX -+# macro with the version set to C++11. The two optional arguments are -+# forwarded literally as the second and third argument respectively. -+# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for -+# more information. If you want to use this macro, you also need to -+# download the ax_cxx_compile_stdcxx.m4 file. -+# -+# LICENSE -+# -+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com> -+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com> -+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu> -+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com> -+# Copyright (c) 2015 Paul Norman <penorman@mac.com> -+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 14 -+ -+include([ax_cxx_compile_stdcxx.m4]) -+ -+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])]) --- -2.12.1 - diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb index 421ea9d5c6..3588ce7233 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_4.0.bb @@ -1,10 +1,16 @@ DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server." -LICENSE = "GPLv2" +HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/" +SECTION = "x11/multimedia" +LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "intltool-native gtk+3-native gtkmm3 libcanberra pulseaudio" +# glib-2.0-native is required for glib-gettextize, which is used by the +# AM_GLIB_GNU_GETTEXT macro in configure.ac. That macro is deprecated, so the +# glib-2.0-native dependency may go away at some point (something to keep in +# mind when doing version upgrades). +DEPENDS = "intltool-native glib-2.0-native gtkmm3 libcanberra pulseaudio" -inherit gnomebase distro_features_check +inherit autotools distro_features_check REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb index cc5b84489c..021496bd43 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb @@ -1,5 +1,5 @@ DESCRIPTION = "WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode." -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://license.txt;md5=f596650807588c61fcab60bec8242df8" SRC_URI = "http://wavpack.com/wavpack-${PV}.tar.bz2" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb index 70278ecca7..006e73af46 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.8.1.bb @@ -3,7 +3,7 @@ DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and HOMEPAGE = "http://www.webmproject.org/code/" BUGTRACKER = "http://code.google.com/p/webm/issues/list" SECTION = "libs/multimedia" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" diff --git a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb index 8fc0b35912..ed90352fc1 100644 --- a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb +++ b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb @@ -24,7 +24,7 @@ DEPENDS += "libpam" inherit distro_features_check REQUIRED_DISTRO_FEATURES = "pam" -LICENSE = "BSD" +LICENSE = "BSD-1-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d" SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \ diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb index e66102064d..cd21950ff5 100644 --- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb +++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb @@ -5,8 +5,8 @@ SECTION = "System/Base" LICENSE = "GPL-2.0+" LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57" -PV = "0.327" -SRCREV = "874f7831c64de7ea2203cfcd1b3fc336bc27e468" +PV = "0.328" +SRCREV = "9f3125deb78a2e275b1285f935235d34ceda641d" SRC_URI = "git://github.com/vcrhonek/${BPN}.git" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb index 4fc6eb0907..c33c791110 100644 --- a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb +++ b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM= "\ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ " -DEPENDS = "libusb1" +DEPENDS = "libusb1 python3" SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2" SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2" @@ -17,11 +17,17 @@ SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681c S = "${WORKDIR}/${BPN}1-${PV}" -inherit cmake binconfig pkgconfig +inherit cmake binconfig pkgconfig python3native PACKAGECONFIG ??= "" PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost" -EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" +EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ + -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \ + -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}" BBCLASSEXTEND = "native nativesdk" + +PACKAGES += "${PN}-python" + +FILES_${PN}-python = "${libdir}/${PYTHON_DIR}/site-packages/" diff --git a/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb new file mode 100644 index 0000000000..e3c0bdd15e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_git.bb @@ -0,0 +1,12 @@ +SUMMARY = "GUsb is a GObject wrapper for libusb1" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +DEPENDS = "glib-2.0 libusb" + +inherit meson gobject-introspection gtk-doc gettext vala + +SRC_URI = "git://github.com/hughsie/libgusb.git" +SRCREV = "636efc0624aa2a88174220fcabc9764c13d7febf" +PV = "0.3.0+git${SRCPV}" +S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb index 4e57d5b77b..e6e0eaef8b 100644 --- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb +++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb @@ -12,7 +12,7 @@ SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https" S = "${WORKDIR}/git" -inherit cmake python3native systemd +inherit cmake python3native systemd distutils3-base DEPENDS = " \ flex-native bison-native libaio \ diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb index 06e78c78cb..358f0cb60b 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.3.bb @@ -47,7 +47,7 @@ SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" -SRCREV = "8a7e9b6648898f2c2d2bbd2d22871f79612e716e" +SRCREV = "6c3bd369b23e959700527e0e2e6d5b2a1bd36294" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch new file mode 100644 index 0000000000..6cb5dfcccb --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch @@ -0,0 +1,94 @@ +From 6fb28085e867d7c3ef46577d9ff193a185693bcb Mon Sep 17 00:00:00 2001 +From: Oliver Kurth <okurth@vmware.com> +Date: Mon, 30 Sep 2019 16:24:27 -0700 +Subject: [PATCH] GitHub Issue #367. Remove references to deprecated G_INLINE_FUNC. + +G_INLINE_FUNC was a work-around for compilers that didn't support +static inline. Change uses of it to static inline. + +Upstream-Status: Backport +[https://github.com/vmware/open-vm-tools/commit/89c0d444567eb525e8d083fb564c46d68e96660c] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + open-vm-tools/lib/include/vmware/tools/plugin.h | 2 +- + open-vm-tools/lib/include/vmware/tools/threadPool.h | 8 ++++---- + open-vm-tools/lib/include/vmware/tools/utils.h | 9 --------- + 3 files changed, 5 insertions(+), 14 deletions(-) + +diff --git a/open-vm-tools/lib/include/vmware/tools/plugin.h b/open-vm-tools/lib/include/vmware/tools/plugin.h +index f9acc6a2..deefd1f3 100644 +--- a/open-vm-tools/lib/include/vmware/tools/plugin.h ++++ b/open-vm-tools/lib/include/vmware/tools/plugin.h +@@ -290,7 +290,7 @@ typedef struct ToolsAppCtx { + * + * @return TRUE if COM is initialized when the function returns. + */ +-G_INLINE_FUNC gboolean ++static inline gboolean + ToolsCore_InitializeCOM(ToolsAppCtx *ctx) + { + if (!ctx->comInitialized) { +diff --git a/open-vm-tools/lib/include/vmware/tools/threadPool.h b/open-vm-tools/lib/include/vmware/tools/threadPool.h +index 3f2082b3..5880fbcf 100644 +--- a/open-vm-tools/lib/include/vmware/tools/threadPool.h ++++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h +@@ -91,7 +91,7 @@ typedef struct ToolsCorePool { + ******************************************************************************* + */ + +-G_INLINE_FUNC ToolsCorePool * ++static inline ToolsCorePool * + ToolsCorePool_GetPool(ToolsAppCtx *ctx) + { + ToolsCorePool *pool = NULL; +@@ -123,7 +123,7 @@ ToolsCorePool_GetPool(ToolsAppCtx *ctx) + ******************************************************************************* + */ + +-G_INLINE_FUNC guint ++static inline guint + ToolsCorePool_SubmitTask(ToolsAppCtx *ctx, + ToolsCorePoolCb cb, + gpointer data, +@@ -153,7 +153,7 @@ ToolsCorePool_SubmitTask(ToolsAppCtx *ctx, + ******************************************************************************* + */ + +-G_INLINE_FUNC void ++static inline void + ToolsCorePool_CancelTask(ToolsAppCtx *ctx, + guint taskId) + { +@@ -197,7 +197,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ctx, + ******************************************************************************* + */ + +-G_INLINE_FUNC gboolean ++static inline gboolean + ToolsCorePool_StartThread(ToolsAppCtx *ctx, + const gchar *threadName, + ToolsCorePoolCb cb, +diff --git a/open-vm-tools/lib/include/vmware/tools/utils.h b/open-vm-tools/lib/include/vmware/tools/utils.h +index f6574590..a3292d5c 100644 +--- a/open-vm-tools/lib/include/vmware/tools/utils.h ++++ b/open-vm-tools/lib/include/vmware/tools/utils.h +@@ -51,15 +51,6 @@ + # include <sys/time.h> + #endif + +- +-/* Work around a glib limitation: it doesn't set G_INLINE_FUNC on Win32. */ +-#if defined(G_PLATFORM_WIN32) +-# if defined(G_INLINE_FUNC) +-# undef G_INLINE_FUNC +-# endif +-# define G_INLINE_FUNC static __inline +-#endif +- + #ifndef ABS + # define ABS(x) (((x) >= 0) ? (x) : -(x)) + #endif +-- +2.23.0 + 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 0736572b3e..a711f5e5d2 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 @@ -14,11 +14,9 @@ Signed-off-by: Martin Kelly <mkelly@xevo.com> open-vm-tools/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -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 +@@ -937,7 +937,7 @@ if test "$with_dnet" = "yes"; then AC_VMW_CHECK_LIB([dnet], [DNET], [], @@ -27,11 +25,11 @@ index 325a39f5..713ea683 100644 [], [dnet.h], [intf_open], -@@ -959,7 +959,7 @@ if test "$with_dnet" = "yes"; then +@@ -947,7 +947,7 @@ if test "$with_dnet" = "yes"; then if test $have_dnet = "no"; then AC_MSG_ERROR( -- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) +- [dnet-config was not found on your PATH. Please configure without dnet or install dnet - http://libdnet.sourceforge.net]) + [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) fi fi diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-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 index 5c1aa7c40f..9cf54f6f44 100644 --- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-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 @@ -19,8 +19,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 7 files changed, 7 insertions(+), 7 deletions(-) rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%) -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 @@ @@ -32,8 +30,6 @@ index b41aa29d..8691309d 100644 #include "log.h" #include "err.h" #include "hostinfo.h" -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 @@ @@ -45,8 +41,6 @@ index 7ea3b7f4..740c4fed 100644 #include "mutexRankLib.h" #include "vm_basic_asm.h" #include "unicodeOperations.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; @@ -58,8 +52,6 @@ index ec9b45aa..dc91e738 100644 struct IVmdbPoll; typedef struct AsyncSocketPollParams { int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ -diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h -index 46442e55..8bc66997 100644 --- a/open-vm-tools/lib/include/pollImpl.h +++ b/open-vm-tools/lib/include/pollImpl.h @@ -44,7 +44,7 @@ @@ -71,24 +63,672 @@ index 46442e55..8bc66997 100644 #include "vm_basic_asm.h" #if defined(__cplusplus) -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 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> - #endif ++++ /dev/null +@@ -1,330 +0,0 @@ +-/********************************************************* +- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved. +- * +- * This program is free software; you can redistribute it and/or modify it +- * under the terms of the GNU Lesser General Public License as published +- * by the Free Software Foundation version 2.1 and no later version. +- * +- * This program is distributed in the hope that it will be useful, but +- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +- * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public +- * License for more details. +- * +- * You should have received a copy of the GNU Lesser General Public License +- * along with this program; if not, write to the Free Software Foundation, Inc., +- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- *********************************************************/ +- +-/********************************************************* +- * The contents of this file are subject to the terms of the Common +- * Development and Distribution License (the "License") version 1.0 +- * and no later version. You may not use this file except in +- * compliance with the License. +- * +- * You can obtain a copy of the License at +- * http://www.opensource.org/licenses/cddl1.php +- * +- * See the License for the specific language governing permissions +- * and limitations under the License. +- * +- *********************************************************/ +- +- +-#ifndef _POLL_H_ +-#define _POLL_H_ +- +-#define INCLUDE_ALLOW_USERLEVEL +-#define INCLUDE_ALLOW_VMCORE +-#include "includeCheck.h" +- +-#include "vm_basic_types.h" +-#include "vm_basic_defs.h" +-#include "vmware.h" +-#include "userlock.h" +- +-#if defined(__cplusplus) +-extern "C" { +-#endif +- +-#ifdef _WIN32 +-#define HZ 100 +-#elif defined linux +-#include <asm/param.h> +-#elif __APPLE__ +-#include <TargetConditionals.h> +-/* +- * Old SDKs don't define TARGET_OS_IPHONE at all. +- * New ones define it to 0 on Mac OS X, 1 on iOS. +- */ +-#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 +-#include <sys/kernel.h> +-#endif -#include <sys/poll.h> +-#define HZ 100 +-#endif +-#ifdef __ANDROID__ +-/* +- * <poll.h> of android should be included, but its name is same +- * with this file. So its content is put here to avoid conflict. +- */ +-#include <asm/poll.h> +-#define HZ 100 +-typedef unsigned int nfds_t; +-int poll(struct pollfd *, nfds_t, long); +-#endif +- +- +-/* +- * Poll event types: each type has a different reason for firing, +- * or condition that must be met before firing. +- */ +- +-typedef enum { +- /* +- * Actual Poll queue types against which you can register callbacks. +- */ +- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ +- POLL_VTIME = 0, +- POLL_REALTIME, +- POLL_DEVICE, +- POLL_MAIN_LOOP, +- POLL_NUM_QUEUES +-} PollEventType; +- +- +-/* +- * Classes of events +- * +- * These are the predefined classes. More can be declared +- * with Poll_AllocClass(). +- */ +- +-typedef enum PollClass { +- POLL_CLASS_MAIN, +- POLL_CLASS_PAUSE, +- POLL_CLASS_IPC, +- POLL_CLASS_CPT, +- POLL_CLASS_MKS, +- POLL_FIXED_CLASSES, +- POLL_DEFAULT_FIXED_CLASSES, +- /* Size enum to maximum */ +- POLL_MAX_CLASSES = 31, +-} PollClass; +- +-/* +- * Do not use; Special pseudo private poll class supported by +- * PollDefault only +- */ +-#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES +-#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) +- +-/* +- * Each callback is registered in a set of classes +- */ +- +-typedef struct PollClassSet { +- uintptr_t bits; +-} PollClassSet; +- +-/* An empty PollClassSet. */ +-static INLINE PollClassSet +-PollClassSet_Empty(void) +-{ +- PollClassSet set = { 0 }; +- return set; +-} +- +-/* A PollClassSet with the single member. */ +-static INLINE PollClassSet +-PollClassSet_Singleton(PollClass c) +-{ +- PollClassSet s = PollClassSet_Empty(); +- +- ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); +- ASSERT(c < POLL_MAX_CLASSES); +- +- s.bits = CONST3264U(1) << c; +- return s; +-} +- +-/* Combine two PollClassSets. */ +-static INLINE PollClassSet +-PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) +-{ +- PollClassSet set; +- set.bits = lhs.bits | rhs.bits; +- return set; +-} +- +-/* Add single class to PollClassSet. */ +-static INLINE PollClassSet +-PollClassSet_Include(PollClassSet set, PollClass c) +-{ +- return PollClassSet_Union(set, PollClassSet_Singleton(c)); +-} +- +- +-#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) +-#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ +- PollClassSet_Singleton(POLL_CLASS_PAUSE)) +-#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ +- PollClassSet_Singleton(POLL_CLASS_CPT)) +-#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ +- PollClassSet_Singleton(POLL_CLASS_IPC)) +-#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ +-#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) +-/* +- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. +- */ +-#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) +- +-/* +- * Poll class-set taxonomy: +- * POLL_CS_MAIN +- * - Unless you NEED another class, use POLL_CS_MAIN. +- * POLL_CS_PAUSE +- * - For callbacks that must occur even if the guest is paused. +- * Most VMDB or Foundry commands are in this category. +- * POLL_CS_CPT +- * - Only for callbacks which can trigger intermediate Checkpoint +- * transitions. +- * The ONLY such callback is Migrate. +- * POLL_CS_IPC +- * - Only for callbacks which can contain Msg_(Post|Hint|Question) +- * responses, and for signal handlers (why)? +- * Vigor, VMDB, and Foundry can contain Msg_* responses. +- * POLL_CS_MKS +- * - Callback runs in MKS thread. +- * POLL_CS_ALWAYS +- * - Only for events that must be processed immediately. +- * The ONLY such callback is OvhdMemVmxSizeCheck. +- */ +- +- +-/* +- * Poll_Callback flags +- */ +- +-#define POLL_FLAG_PERIODIC 0x01 // keep after firing +-#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory +-#define POLL_FLAG_READ 0x04 // device is ready for reading +-#define POLL_FLAG_WRITE 0x08 // device is ready for writing +-#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket +-#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking +-#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events +-#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. +-#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl +-#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop +- +- +-typedef void (*PollerFunction)(void *clientData); +-typedef void (*PollerFireWrapper)(PollerFunction func, +- void *funcData, +- void *wrapperData); +-typedef Bool (*PollerErrorFn)(const char *errorStr); +- +-/* +- * Initialisers: +- * +- * For the sake of convenience, we declare the initialisers +- * for custom implmentations here, even though the actual +- * implementations are distinct from the core poll code. +- */ +- +-typedef struct PollOptions { +- Bool locked; // Use internal MXUser for locking +- Bool allowFullQueue; // Don't assert when device event queue is full. +- VThreadID windowsMsgThread; // thread that processes Windows messages +- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats +- void *fireWrapperData; // optional +- PollerErrorFn errorFn; // optional; called upon unrecoverable error +-} PollOptions; +- +- +-void Poll_InitDefault(void); +-void Poll_InitDefaultEx(const PollOptions *opts); +-void Poll_InitGtk(void); // On top of glib for Linux +-void Poll_InitCF(void); // On top of CoreFoundation for OSX +- +- +-/* +- * Functions +- */ +-int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); +-void Poll_Loop(Bool loop, Bool *exit, PollClass c); +-void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); +-Bool Poll_LockingEnabled(void); +-void Poll_Exit(void); +- +- +-/* +- * Poll_Callback adds a callback regardless of whether an identical one exists. +- * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of +- * one read and one write callback per fd. +- * +- * Poll_CallbackRemove removes one callback. If there are multiple identical +- * callbacks, which one is removed is an implementation detail. Note that in +- * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to +- * create the callback is not specified when removing, so all callbacks +- * of those types with the same flags, function, and clientData are considered +- * "identical" even if their fd/delay differed. +- */ +- +-VMwareStatus Poll_Callback(PollClassSet classSet, +- int flags, +- PollerFunction f, +- void *clientData, +- PollEventType type, +- PollDevHandle info, // fd/microsec delay +- MXUserRecLock *lck); +-Bool Poll_CallbackRemove(PollClassSet classSet, +- int flags, +- PollerFunction f, +- void *clientData, +- PollEventType type); +-Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, +- int flags, +- PollerFunction f, +- PollEventType type, +- void **clientData); +- +-void Poll_NotifyChange(PollClassSet classSet); +- +-/* +- * Wrappers for Poll_Callback and Poll_CallbackRemove that present +- * simpler subsets of those interfaces. +- */ +- +-VMwareStatus Poll_CB_Device(PollerFunction f, +- void *clientData, +- PollDevHandle device, +- Bool periodic); +- +-Bool Poll_CB_DeviceRemove(PollerFunction f, +- void *clientData, +- Bool periodic); +- +- +-VMwareStatus Poll_CB_RTime(PollerFunction f, +- void *clientData, +- int64 delay, // microseconds +- Bool periodic, +- MXUserRecLock *lock); +- +-Bool Poll_CB_RTimeRemove(PollerFunction f, +- void *clientData, +- Bool periodic); +- +- +-#ifdef _WIN32 +-void Poll_SetPumpsWindowsMessages(Bool pumps); +-void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); +-Bool Poll_FireWndCallback(void *lparam); +-#endif +- +-#if defined(__cplusplus) +-} // extern "C" +-#endif +- +-#endif // _POLL_H_ +--- /dev/null ++++ b/open-vm-tools/lib/include/vm_poll.h +@@ -0,0 +1,330 @@ ++/********************************************************* ++ * Copyright (C) 1998-2018 VMware, Inc. All rights reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published ++ * by the Free Software Foundation version 2.1 and no later version. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public ++ * License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ *********************************************************/ ++ ++/********************************************************* ++ * The contents of this file are subject to the terms of the Common ++ * Development and Distribution License (the "License") version 1.0 ++ * and no later version. You may not use this file except in ++ * compliance with the License. ++ * ++ * You can obtain a copy of the License at ++ * http://www.opensource.org/licenses/cddl1.php ++ * ++ * See the License for the specific language governing permissions ++ * and limitations under the License. ++ * ++ *********************************************************/ ++ ++ ++#ifndef _POLL_H_ ++#define _POLL_H_ ++ ++#define INCLUDE_ALLOW_USERLEVEL ++#define INCLUDE_ALLOW_VMCORE ++#include "includeCheck.h" ++ ++#include "vm_basic_types.h" ++#include "vm_basic_defs.h" ++#include "vmware.h" ++#include "userlock.h" ++ ++#if defined(__cplusplus) ++extern "C" { ++#endif ++ ++#ifdef _WIN32 ++#define HZ 100 ++#elif defined linux ++#include <asm/param.h> ++#elif __APPLE__ ++#include <TargetConditionals.h> ++/* ++ * Old SDKs don't define TARGET_OS_IPHONE at all. ++ * New ones define it to 0 on Mac OS X, 1 on iOS. ++ */ ++#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 ++#include <sys/kernel.h> ++#endif +#include <poll.h> - #define HZ 100 - #endif - #ifdef __ANDROID__ -diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c -index 8eea7d86..c48f5be2 100644 ++#define HZ 100 ++#endif ++#ifdef __ANDROID__ ++/* ++ * <poll.h> of android should be included, but its name is same ++ * with this file. So its content is put here to avoid conflict. ++ */ ++#include <asm/poll.h> ++#define HZ 100 ++typedef unsigned int nfds_t; ++int poll(struct pollfd *, nfds_t, long); ++#endif ++ ++ ++/* ++ * Poll event types: each type has a different reason for firing, ++ * or condition that must be met before firing. ++ */ ++ ++typedef enum { ++ /* ++ * Actual Poll queue types against which you can register callbacks. ++ */ ++ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ ++ POLL_VTIME = 0, ++ POLL_REALTIME, ++ POLL_DEVICE, ++ POLL_MAIN_LOOP, ++ POLL_NUM_QUEUES ++} PollEventType; ++ ++ ++/* ++ * Classes of events ++ * ++ * These are the predefined classes. More can be declared ++ * with Poll_AllocClass(). ++ */ ++ ++typedef enum PollClass { ++ POLL_CLASS_MAIN, ++ POLL_CLASS_PAUSE, ++ POLL_CLASS_IPC, ++ POLL_CLASS_CPT, ++ POLL_CLASS_MKS, ++ POLL_FIXED_CLASSES, ++ POLL_DEFAULT_FIXED_CLASSES, ++ /* Size enum to maximum */ ++ POLL_MAX_CLASSES = 31, ++} PollClass; ++ ++/* ++ * Do not use; Special pseudo private poll class supported by ++ * PollDefault only ++ */ ++#define POLL_DEFAULT_CLASS_NET POLL_FIXED_CLASSES ++#define POLL_DEFAULT_CS_NET PollClassSet_Singleton(POLL_DEFAULT_CLASS_NET) ++ ++/* ++ * Each callback is registered in a set of classes ++ */ ++ ++typedef struct PollClassSet { ++ uintptr_t bits; ++} PollClassSet; ++ ++/* An empty PollClassSet. */ ++static INLINE PollClassSet ++PollClassSet_Empty(void) ++{ ++ PollClassSet set = { 0 }; ++ return set; ++} ++ ++/* A PollClassSet with the single member. */ ++static INLINE PollClassSet ++PollClassSet_Singleton(PollClass c) ++{ ++ PollClassSet s = PollClassSet_Empty(); ++ ++ ASSERT_ON_COMPILE(POLL_MAX_CLASSES < sizeof s.bits * 8); ++ ASSERT(c < POLL_MAX_CLASSES); ++ ++ s.bits = CONST3264U(1) << c; ++ return s; ++} ++ ++/* Combine two PollClassSets. */ ++static INLINE PollClassSet ++PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) ++{ ++ PollClassSet set; ++ set.bits = lhs.bits | rhs.bits; ++ return set; ++} ++ ++/* Add single class to PollClassSet. */ ++static INLINE PollClassSet ++PollClassSet_Include(PollClassSet set, PollClass c) ++{ ++ return PollClassSet_Union(set, PollClassSet_Singleton(c)); ++} ++ ++ ++#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) ++#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ ++ PollClassSet_Singleton(POLL_CLASS_PAUSE)) ++#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ ++ PollClassSet_Singleton(POLL_CLASS_CPT)) ++#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ ++ PollClassSet_Singleton(POLL_CLASS_IPC)) ++#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ ++#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) ++/* ++ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. ++ */ ++#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) ++ ++/* ++ * Poll class-set taxonomy: ++ * POLL_CS_MAIN ++ * - Unless you NEED another class, use POLL_CS_MAIN. ++ * POLL_CS_PAUSE ++ * - For callbacks that must occur even if the guest is paused. ++ * Most VMDB or Foundry commands are in this category. ++ * POLL_CS_CPT ++ * - Only for callbacks which can trigger intermediate Checkpoint ++ * transitions. ++ * The ONLY such callback is Migrate. ++ * POLL_CS_IPC ++ * - Only for callbacks which can contain Msg_(Post|Hint|Question) ++ * responses, and for signal handlers (why)? ++ * Vigor, VMDB, and Foundry can contain Msg_* responses. ++ * POLL_CS_MKS ++ * - Callback runs in MKS thread. ++ * POLL_CS_ALWAYS ++ * - Only for events that must be processed immediately. ++ * The ONLY such callback is OvhdMemVmxSizeCheck. ++ */ ++ ++ ++/* ++ * Poll_Callback flags ++ */ ++ ++#define POLL_FLAG_PERIODIC 0x01 // keep after firing ++#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory ++#define POLL_FLAG_READ 0x04 // device is ready for reading ++#define POLL_FLAG_WRITE 0x08 // device is ready for writing ++#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket ++#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking ++#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events ++#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. ++#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl ++#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop ++ ++ ++typedef void (*PollerFunction)(void *clientData); ++typedef void (*PollerFireWrapper)(PollerFunction func, ++ void *funcData, ++ void *wrapperData); ++typedef Bool (*PollerErrorFn)(const char *errorStr); ++ ++/* ++ * Initialisers: ++ * ++ * For the sake of convenience, we declare the initialisers ++ * for custom implmentations here, even though the actual ++ * implementations are distinct from the core poll code. ++ */ ++ ++typedef struct PollOptions { ++ Bool locked; // Use internal MXUser for locking ++ Bool allowFullQueue; // Don't assert when device event queue is full. ++ VThreadID windowsMsgThread; // thread that processes Windows messages ++ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats ++ void *fireWrapperData; // optional ++ PollerErrorFn errorFn; // optional; called upon unrecoverable error ++} PollOptions; ++ ++ ++void Poll_InitDefault(void); ++void Poll_InitDefaultEx(const PollOptions *opts); ++void Poll_InitGtk(void); // On top of glib for Linux ++void Poll_InitCF(void); // On top of CoreFoundation for OSX ++ ++ ++/* ++ * Functions ++ */ ++int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); ++void Poll_Loop(Bool loop, Bool *exit, PollClass c); ++void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); ++Bool Poll_LockingEnabled(void); ++void Poll_Exit(void); ++ ++ ++/* ++ * Poll_Callback adds a callback regardless of whether an identical one exists. ++ * The exception to this rule is POLL_DEVICE callbacks: there is a maximum of ++ * one read and one write callback per fd. ++ * ++ * Poll_CallbackRemove removes one callback. If there are multiple identical ++ * callbacks, which one is removed is an implementation detail. Note that in ++ * the case of POLL_DEVICE and POLL_REALTIME callbacks, the fd/delay used to ++ * create the callback is not specified when removing, so all callbacks ++ * of those types with the same flags, function, and clientData are considered ++ * "identical" even if their fd/delay differed. ++ */ ++ ++VMwareStatus Poll_Callback(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ void *clientData, ++ PollEventType type, ++ PollDevHandle info, // fd/microsec delay ++ MXUserRecLock *lck); ++Bool Poll_CallbackRemove(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ void *clientData, ++ PollEventType type); ++Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ PollEventType type, ++ void **clientData); ++ ++void Poll_NotifyChange(PollClassSet classSet); ++ ++/* ++ * Wrappers for Poll_Callback and Poll_CallbackRemove that present ++ * simpler subsets of those interfaces. ++ */ ++ ++VMwareStatus Poll_CB_Device(PollerFunction f, ++ void *clientData, ++ PollDevHandle device, ++ Bool periodic); ++ ++Bool Poll_CB_DeviceRemove(PollerFunction f, ++ void *clientData, ++ Bool periodic); ++ ++ ++VMwareStatus Poll_CB_RTime(PollerFunction f, ++ void *clientData, ++ int64 delay, // microseconds ++ Bool periodic, ++ MXUserRecLock *lock); ++ ++Bool Poll_CB_RTimeRemove(PollerFunction f, ++ void *clientData, ++ Bool periodic); ++ ++ ++#ifdef _WIN32 ++void Poll_SetPumpsWindowsMessages(Bool pumps); ++void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); ++Bool Poll_FireWndCallback(void *lparam); ++#endif ++ ++#if defined(__cplusplus) ++} // extern "C" ++#endif ++ ++#endif // _POLL_H_ --- a/open-vm-tools/lib/rpcIn/rpcin.c +++ b/open-vm-tools/lib/rpcIn/rpcin.c @@ -57,7 +57,7 @@ @@ -100,16 +740,3 @@ index 8eea7d86..c48f5be2 100644 # include "asyncsocket.h" # include "vmci_defs.h" #include "dataMap.h" -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/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" - #include "vm_basic_types.h" --#include "poll.h" -+#include "vm_poll.h" - #ifdef OPEN_VM_TOOLS - #include "vmci_sockets.h" - #include "sslDirect.h" diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-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 index 88f4f694c9..3e4753b2a6 100644 --- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0013-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 @@ -14,18 +14,14 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> open-vm-tools/lib/misc/util_misc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/open-vm-tools/lib/misc/util_misc.c b/open-vm-tools/lib/misc/util_misc.c -index 198c23d2..0ac0a335 100644 --- 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 +@@ -719,7 +719,7 @@ Util_ExpandString(const char *fileName) ASSERT(!freeChunk[i]); chunks[i] = expand; if (chunks[i] == NULL) { -- Log("%s: Cannot allocate memory to expand \"%s\" in \"%s\".\n", -- __FUNCTION__, expand, fileName); +- Log("%s: Cannot allocate memory to expand $ in \"%s\".\n", + Log("%s: Cannot allocate memory to expand in \"%s\".\n", -+ __FUNCTION__, fileName); + __FUNCTION__, fileName); goto out; } - chunkSize[i] = strlen(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 deleted file mode 100644 index b5ccffd141..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0014-Fix-new-warnings-from-gcc9.patch +++ /dev/null @@ -1,1281 +0,0 @@ -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_10.3.5.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_11.0.1.bb index 63a64fc712..e43a39b613 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_11.0.1.bb @@ -38,10 +38,9 @@ SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \ 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=.. \ + file://0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch;patchdir=.. \ " -# stable-10.3.5 -SRCREV = "f2ff192717375b95a6b7e278fb47dbb3d3bc56d1" +SRCREV = "d3edfd142a81096f9f58aff17d84219b457f4987" S = "${WORKDIR}/git/open-vm-tools" @@ -56,7 +55,7 @@ SYSTEMD_SERVICE_${PN} = "vmtoolsd.service" EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \ --disable-tests --without-gtkmm --without-xerces --without-pam \ - --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \ + --disable-vgauth --disable-deploypkg \ --without-root-privileges --without-kernel-modules" NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3" diff --git a/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb b/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb index 28e9677625..ace376ef27 100644 --- a/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb +++ b/meta-openembedded/meta-oe/recipes-test/testfloat/testfloat_3a.bb @@ -4,7 +4,7 @@ DESCRIPTION = "Berkeley TestFloat is a small collection of programs for \ HOMEPAGE = "http://www.jhauser.us/arithmetic/TestFloat.html" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://TestFloat-${PV}/COPYING.txt;md5=e45c175a323b5727777fb6bd4b26eafc" SRC_URI = "\ |