diff --git a/.gitignore b/.gitignore index 7ba8ef1..d51f905 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /open-vm-tools-9.10.2-2822639.tar.gz /open-vm-tools-10.0.0-3000743.tar.gz /open-vm-tools-10.0.5-3227872.tar.gz +/open-vm-tools-10.1.0-4449150.tar.gz diff --git a/99-vmware-scsi-udev.rules b/99-vmware-scsi-udev.rules deleted file mode 100644 index 8963542..0000000 --- a/99-vmware-scsi-udev.rules +++ /dev/null @@ -1,3 +0,0 @@ -ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*" , ATTRS{model}=="Virtual disk*", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'" -ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*" , ATTRS{model}=="VMware Virtual S", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'" - diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 68fbc3e..0000000 --- a/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -################################################################################ -### Copyright (C) 2016 VMware, Inc. All rights reserved. -### -### This program is free software; you can redistribute it and/or modify -### it under the terms of version 2 of the GNU General Public License as -### published by the Free Software Foundation. -### -### 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 -### GNU General Public License for more details. -### -### You should have received a copy of the GNU General Public License -### along with this program; if not, write to the Free Software -### Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -################################################################################ - -install-data-local: - $(INSTALL) -d $(DESTDIR)$(UDEVRULESDIR) - $(INSTALL) $(srcdir)/99-vmware-scsi-udev.rules $(DESTDIR)$(UDEVRULESDIR) - diff --git a/hgfs-cache.patch b/hgfs-cache.patch deleted file mode 100644 index 2fdf496..0000000 --- a/hgfs-cache.patch +++ /dev/null @@ -1,112 +0,0 @@ ---- vmhgfs-fuse/main.c.orig 2016-09-13 17:42:20.000238000 -0700 -+++ vmhgfs-fuse/main.c 2016-09-13 17:51:04.001947000 -0700 -@@ -495,7 +495,9 @@ - } - - res = HgfsDelete(abspath, HGFS_OP_DELETE_FILE); -- HgfsInvalidateAttrCache(abspath); -+ if (res == 0) { -+ HgfsInvalidateAttrCache(abspath); -+ } - - exit: - LOG(4, ("Exit(%d)\n", res)); -@@ -533,7 +535,9 @@ - } - - res = HgfsDelete(abspath, HGFS_OP_DELETE_DIR); -- HgfsInvalidateAttrCache(abspath); -+ if (res == 0) { -+ HgfsInvalidateAttrCache(abspath); -+ } - - exit: - LOG(4, ("Exit(%d)\n", res)); -@@ -621,7 +625,10 @@ - } - - res = HgfsRename(absfrom, absto); -- HgfsInvalidateAttrCache(absfrom); -+ if (res == 0) { -+ HgfsInvalidateAttrCache(absfrom); -+ HgfsInvalidateAttrCache(absto); -+ } - - exit: - LOG(4, ("Exit(%d)\n", res)); -@@ -1136,7 +1143,14 @@ - } - - res = HgfsWrite(fi, buf, size, offset); -- HgfsInvalidateAttrCache(abspath); -+ if (res >= 0) { -+ /* -+ * Positive result indicates the number of bytes written. -+ * For zero bytes and no error, we still purge the cache -+ * this could effect the attributes. -+ */ -+ HgfsInvalidateAttrCache(abspath); -+ } - - exit: - LOG(4, ("Exit(%d)\n", res)); ---- vmhgfs-fuse/cache.c.orig 2016-09-13 17:43:28.000010000 -0700 -+++ vmhgfs-fuse/cache.c 2016-09-13 17:45:56.000322000 -0700 -@@ -25,7 +25,13 @@ - #if !defined(__FreeBSD__) && !defined(__SOLARIS__) - #include - #endif --#define CACHE_TIMEOUT 5 -+ -+/* -+ * We make the default attribute cache timeout 1 second which is the same -+ * as the FUSE driver. -+ * This can be overridden with the mount option attr_timeout=T -+ */ -+#define CACHE_TIMEOUT HGFS_DEFAULT_TTL - #define CACHE_PURGE_TIME 10 - #define CACHE_PURGE_SLEEP_TIME 30 - #define HASH_THRESHOLD_SIZE (2046 * 4) ---- vmhgfs-fuse/module.h.orig 2016-09-13 17:49:17.000083000 -0700 -+++ vmhgfs-fuse/module.h 2016-09-13 17:49:44.000108000 -0700 -@@ -34,7 +34,7 @@ - #include "vm_assert.h" - #include "cpName.h" - #include "cpNameLite.h" --#include "hgfsUtil.h" -+#include "hgfsDevLinux.h" - #include "request.h" - #include "fsutil.h" - #include "filesystem.h" ---- vmhgfs-fuse/file.c.orig 2016-09-13 17:51:36.003169000 -0700 -+++ vmhgfs-fuse/file.c 2016-09-13 17:53:21.000104000 -0700 -@@ -859,6 +859,7 @@ - const char *buffer = buf; - loff_t curOffset = offset; - size_t nextCount, remainingCount = count; -+ ssize_t bytesWritten = 0; - - ASSERT(NULL != buf); - ASSERT(NULL != fi); -@@ -875,6 +876,7 @@ - - result = HgfsDoWrite(fi->fh, buffer, nextCount, curOffset); - if (result < 0) { -+ bytesWritten = result; - LOG(4, ("Error: DoWrite -> %d\n", result)); - goto out; - } -@@ -884,9 +886,11 @@ - - } while ((result > 0) && (remainingCount > 0)); - -+ bytesWritten = count - remainingCount; -+ - out: -- LOG(6, ("Exit(0x%"FMTSZ"x)\n", count - remainingCount)); -- return (count - remainingCount); -+ LOG(6, ("Exit(0x%"FMTSZ"x)\n", bytesWritten)); -+ return bytesWritten; - } - - diff --git a/no-unused-const.patch b/no-unused-const.patch deleted file mode 100644 index f11a7f5..0000000 --- a/no-unused-const.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- configure.ac.old 2016-05-24 23:43:41.265711304 -0700 -+++ configure.ac 2016-05-25 00:03:39.128437427 -0700 -@@ -942,7 +942,8 @@ - # Glib2 keep changing mutex APIs so we also need to disable 'deprecated' - # warnings for now (-Wno-deprecated-declarations). - for TEST_CFLAG in -Wno-pointer-sign -Wno-unused-value -fno-strict-aliasing \ -- -Wno-unknown-pragmas -Wno-uninitialized -Wno-deprecated-declarations; do -+ -Wno-unknown-pragmas -Wno-uninitialized -Wno-deprecated-declarations \ -+ -Wno-unused-const-variable; do - AC_MSG_CHECKING([for GCC flag $TEST_CFLAG]) - ORIGINAL_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $TEST_CFLAG" diff --git a/open-vm-tools.spec b/open-vm-tools.spec index f68fbaa..307c26e 100644 --- a/open-vm-tools.spec +++ b/open-vm-tools.spec @@ -19,37 +19,31 @@ ################################################################################ %global _hardened_build 1 -%global majorversion 10.0 -%global minorversion 5 -%global toolsbuild 3227872 +%global majorversion 10.1 +%global minorversion 0 +%global toolsbuild 4449150 +%global downloadid 784682 %global toolsversion %{majorversion}.%{minorversion} %global toolsdaemon vmtoolsd %global vgauthdaemon vgauthd Name: open-vm-tools Version: %{toolsversion} -Release: 10%{?dist} +Release: 1%{?dist} Summary: Open Virtual Machine Tools for virtual machines hosted on VMware Group: Applications/System License: GPLv2 -URL: http://%{name}.sourceforge.net/ -Source0: http://sourceforge.net/projects/%{name}/files/%{name}/stable-%{majorversion}.x/%{name}-%{version}-%{toolsbuild}.tar.gz +URL: http://github.com/vmware/%{name} +Source0: http://github.com/vmware/%{name}/files/%{downloadid}/%{name}-%{version}-%{toolsbuild}.tar.gz Source1: %{toolsdaemon}.service Source2: %{vgauthdaemon}.service -Source3: Makefile.am -Source4: 99-vmware-scsi-udev.rules %if 0%{?rhel} >= 7 ExclusiveArch: x86_64 %else ExclusiveArch: %{ix86} x86_64 %endif -Patch1: no-unused-const.patch -Patch2: vmw-bitmask-gcc6.patch -Patch3: hgfs-cache.patch -Patch4: udev-rules.patch -Patch5: glibc-sysmacros.patch -Patch6: openssl-vgauth.patch +Patch1: glibc-sysmacros.patch BuildRequires: autoconf BuildRequires: automake @@ -72,6 +66,9 @@ BuildRequires: gtkmm24-devel BuildRequires: libdnet-devel BuildRequires: libicu-devel BuildRequires: libmspack-devel +# Unfortunately, xmlsec1-openssl does not add libtool-ltdl +# dependency, so we need to add it ourselves. +BuildRequires: libtool-ltdl-devel BuildRequires: libX11-devel BuildRequires: libXext-devel BuildRequires: libXi-devel @@ -83,8 +80,7 @@ BuildRequires: openssl-devel BuildRequires: pam-devel BuildRequires: procps-devel BuildRequires: systemd -BuildRequires: xerces-c-devel -BuildRequires: xml-security-c-devel +BuildRequires: xmlsec1-openssl-devel Requires: coreutils Requires: fuse @@ -130,35 +126,17 @@ VMware virtual machines. %prep %setup -q -n %{name}-%{version}-%{toolsbuild} - %patch1 -p0 -%patch2 -p0 -%patch3 -p0 -%patch4 -p0 -%patch5 -p0 -%patch6 -p0 %build -mkdir -p udev -cp %{SOURCE3} udev -cp %{SOURCE4} udev - -# Fedora 23 uses libsigc++-2.0 version 2.6.1. -# libsigc++-2.0 >= 2.5.1 requires C++11. Using -# -std=c++11 does not provide "linux" definition -# therefore, we need to use -std=gnu++11 -%if 0%{?fedora} >= 23 -export CXXFLAGS="$RPM_OPT_FLAGS -std=gnu++11" -%endif # Required for regenerating configure script when # configure.ac get modified autoreconf -i autoconf -# configure from open-vm-tools 9.10.2 is missing 'x' bit -chmod a+x configure %configure \ --without-kernel-modules \ + --enable-xmlsec1 \ --disable-static sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool make %{?_smp_mflags} @@ -264,6 +242,7 @@ fi %dir %{_sysconfdir}/vmware-tools/vgauth %dir %{_sysconfdir}/vmware-tools/vgauth/schemas %config(noreplace) %{_sysconfdir}/vmware-tools/*.conf +# Don't expect users to modify VGAuth schema files %config %{_sysconfdir}/vmware-tools/vgauth/schemas/* %{_sysconfdir}/vmware-tools/*-vm-default %{_sysconfdir}/vmware-tools/scripts @@ -275,6 +254,7 @@ fi %{_bindir}/vmware-checkvm %{_bindir}/vmware-guestproxycerttool %{_bindir}/vmware-hgfsclient +%{_bindir}/vmware-namespace-cmd %{_bindir}/vmware-rpctool %{_bindir}/vmware-toolbox-cmd %{_bindir}/vmware-vgauth-cmd @@ -290,8 +270,8 @@ fi %{_libdir}/%{name}/plugins/common/*.so %dir %{_libdir}/%{name}/plugins/vmsvc %{_libdir}/%{name}/plugins/vmsvc/*.so -%{_prefix}/lib/udev/rules.d/99-vmware-scsi-udev.rules %{_datadir}/%{name}/ +%{_udevrulesdir}/99-vmware-scsi-udev.rules %{_unitdir}/%{toolsdaemon}.service %{_unitdir}/%{vgauthdaemon}.service @@ -313,6 +293,12 @@ fi %{_libdir}/libvmtools.so %changelog +* Fri Feb 17 2017 Ravindra Kumar - 10.1.0-1 +- Package new upstream version open-vm-tools-10.1.0-4449150 (RHBZ#1408959). +- Remove patches that are no longer needed. +- Build with --enable-xmlsec1 to avoid dependency on xerces-c and xml-security-c. +- Replace _prefix/lib/udev/rules.d/ with _udevrulesdir macro. + * Thu Feb 16 2017 Ravindra Kumar - 10.0.5-10 - sysmacros patch for glibc-2.25 (RHBZ#1411807). - vgauth patch for openssl-1.1.0. diff --git a/openssl-vgauth.patch b/openssl-vgauth.patch deleted file mode 100644 index fa12ccd..0000000 --- a/openssl-vgauth.patch +++ /dev/null @@ -1,77 +0,0 @@ ---- vgauth/common/certverify.c.orig 2017-02-16 19:08:36.509896717 -0800 -+++ vgauth/common/certverify.c 2017-02-16 19:15:02.716084270 -0800 -@@ -827,11 +827,15 @@ - const unsigned char *signature) - { - VGAuthError err = VGAUTH_E_FAIL; -- EVP_MD_CTX mdCtx; -+ EVP_MD_CTX *mdCtx = NULL; - const EVP_MD *hashAlg; - int ret; - -- EVP_MD_CTX_init(&mdCtx); -+ mdCtx = EVP_MD_CTX_new(); -+ if (mdCtx == NULL) { -+ g_warning("%s: unable to allocate a message digest.\n", __FUNCTION__); -+ return(VGAUTH_E_OUT_OF_MEMORY); -+ } - - switch (hash) { - case VGAUTH_HASH_ALG_SHA256: -@@ -843,7 +847,7 @@ - goto done; - } - -- ret = EVP_VerifyInit(&mdCtx, hashAlg); -+ ret = EVP_VerifyInit(mdCtx, hashAlg); - if (ret <= 0) { - VerifyDumpSSLErrors(); - g_warning("%s: unable to initialize verificatation context (ret = %d)\n", -@@ -856,7 +860,7 @@ - * one shot. We probably should put some upper bound on the size of the - * data. - */ -- ret = EVP_VerifyUpdate(&mdCtx, data, dataLen); -+ ret = EVP_VerifyUpdate(mdCtx, data, dataLen); - if (ret <= 0) { - VerifyDumpSSLErrors(); - g_warning("%s: unable to update verificatation context (ret = %d)\n", -@@ -864,7 +868,7 @@ - goto done; - } - -- ret = EVP_VerifyFinal(&mdCtx, signature, (unsigned int) signatureLen, publicKey); -+ ret = EVP_VerifyFinal(mdCtx, signature, (unsigned int) signatureLen, publicKey); - if (0 == ret) { - g_debug("%s: verification failed!\n", __FUNCTION__); - err = VGAUTH_E_AUTHENTICATION_DENIED; -@@ -879,7 +883,7 @@ - err = VGAUTH_E_OK; - - done: -- EVP_MD_CTX_cleanup(&mdCtx); -+ EVP_MD_CTX_free(mdCtx); - - return err; - } ---- vgauth/common/certverify.h.orig 2017-02-16 19:08:43.843033377 -0800 -+++ vgauth/common/certverify.h 2017-02-16 19:22:38.248130476 -0800 -@@ -28,6 +28,18 @@ - #include - #include "VGAuthAuthentication.h" - -+/* new API from OpenSSL 1.1.0 -+ * https://www.openssl.org/docs/manmaster/crypto/EVP_DigestInit.html -+ * -+ * EVP_MD_CTX_create() and EVP_MD_CTX_destroy() were renamed to -+ * EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1. -+ */ -+#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#define EVP_MD_CTX_new() EVP_MD_CTX_create() -+#define EVP_MD_CTX_free(x) EVP_MD_CTX_destroy((x)) -+#endif /* OpenSSL version < 1.1.0 */ -+ -+ - /* - * XXX Do we still need this? What other algorithms do SAML tokens use? - */ diff --git a/sources b/sources index cff1025..613e97f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -734eccf6e9e007cb37dc4eb3ed6707b5 open-vm-tools-10.0.5-3227872.tar.gz +SHA512 (open-vm-tools-10.1.0-4449150.tar.gz) = 268292a732bc9d1ed0ddc7610aed18218a2469b2989c6f8381efaf4bb413c3a66a28c30ffb9b318fe05d0c64ed4f95c868c2511142959c03218d573a48a5c5b1 diff --git a/udev-rules.patch b/udev-rules.patch deleted file mode 100644 index 89c9753..0000000 --- a/udev-rules.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- configure.ac.orig 2016-09-20 15:43:37.000488000 -0700 -+++ configure.ac 2016-09-20 16:12:30.000350000 -0700 -@@ -1129,6 +1129,26 @@ - fi - fi - -+if test "$os" = "linux"; then -+ have_udev="yes" -+ AC_ARG_WITH([udev-rules-dir], -+ [AS_HELP_STRING([--with-udev-rules-dir=DIR], -+ [where to install udev rules])], -+ [UDEVRULESDIR="$withval"], -+ [ -+ UDEVRULESDIR="/lib/udev/rules.d" -+ if test $HAVE_PKG_CONFIG = "yes"; then -+ udevdir=$(pkg-config udev --variable=udevdir) -+ if test "x$udevdir" != "x"; then -+ UDEVRULESDIR="$udevdir/rules.d" -+ fi -+ fi -+ ]) -+else -+ have_udev="no" -+ UDEVRULESDIR="" -+fi -+ - AM_CONDITIONAL(BUILD_HGFSMOUNTER, test "$buildHgfsmounter" = "yes") - AM_CONDITIONAL(LINUX, test "$os" = "linux") - AM_CONDITIONAL(SOLARIS, test "$os" = "solaris") -@@ -1155,6 +1175,7 @@ - AM_CONDITIONAL(ENABLE_GRABBITMQPROXY, test "$enable_grabbitmqproxy" = "yes") - AM_CONDITIONAL(ENABLE_VGAUTH, test "$enable_vgauth" = "yes") - AM_CONDITIONAL(HAVE_VSOCK, test "$os" = "linux") -+AM_CONDITIONAL(HAVE_UDEV, test "$have_udev" = "yes") - - if test "$have_xsm" != "yes"; then - AC_DEFINE([NO_XSM], 1, []) -@@ -1258,6 +1279,8 @@ - AC_SUBST([VIX_LIBADD]) - AC_SUBST([VGAUTH_LIBADD]) - -+AC_SUBST([UDEVRULESDIR]) -+ - ### - ### Create the Makefiles - ### -@@ -1357,6 +1380,7 @@ - docs/api/Makefile \ - scripts/Makefile \ - scripts/build/rpcgen_wrapper.sh \ -+ udev/Makefile \ - ]) - - ### ---- Makefile.am.orig 2016-09-20 15:43:16.000191000 -0700 -+++ Makefile.am 2016-09-20 15:58:00.001125000 -0700 -@@ -64,3 +64,6 @@ - endif - SUBDIRS += docs - -+if HAVE_UDEV -+ SUBDIRS += udev -+endif diff --git a/vmw-bitmask-gcc6.patch b/vmw-bitmask-gcc6.patch deleted file mode 100644 index e5d802c..0000000 --- a/vmw-bitmask-gcc6.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- lib/include/x86cpuid.h.old 2016-05-24 23:23:20.747118224 -0700 -+++ lib/include/x86cpuid.h 2016-05-24 23:28:35.829547406 -0700 -@@ -905,11 +905,9 @@ - * - * e.g. - CPUID_VIRT_BITS_MASK = 0xff00 - * - CPUID_VIRT_BITS_SHIFT = 8 -- * -- * Note: The MASK definitions must use some gymnastics to get -- * around a warning when shifting left by 32. - */ --#define VMW_BIT_MASK(shift) (((1 << (shift - 1)) << 1) - 1) -+#define VMW_BIT_MASK(shift) (0xffffffffu >> (32 - shift)) -+ - - #define FIELD(lvl, ecxIn, reg, bitpos, size, name, s, c3) \ - CPUID_##name##_SHIFT = bitpos, \