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.
This commit is contained in:
Ravindra Kumar 2017-02-17 20:11:15 -08:00
parent 5ecc079e0d
commit b0d2ee9dc2
10 changed files with 24 additions and 341 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -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'"

View File

@ -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)

View File

@ -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 <glib.h>
#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;
}

View File

@ -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"

View File

@ -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 <ravindrakumar@vmware.com> - 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 <ravindrakumar@vmware.com> - 10.0.5-10
- sysmacros patch for glibc-2.25 (RHBZ#1411807).
- vgauth patch for openssl-1.1.0.

View File

@ -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 <glib.h>
#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?
*/

View File

@ -1 +1 @@
734eccf6e9e007cb37dc4eb3ed6707b5 open-vm-tools-10.0.5-3227872.tar.gz
SHA512 (open-vm-tools-10.1.0-4449150.tar.gz) = 268292a732bc9d1ed0ddc7610aed18218a2469b2989c6f8381efaf4bb413c3a66a28c30ffb9b318fe05d0c64ed4f95c868c2511142959c03218d573a48a5c5b1

View File

@ -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

View File

@ -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, \