Accepting request 173303 from Virtualization:VMware

- Add open-vm-tools-kernel-3.8.patch: Fix build with kernel 3.8.x.

- Update to version 9.2.0:
  + Fixes for HGFS driver to compile on newer kernels (3.6).
  + vmsync driver is disabled on kernels 3.0+ as vmbackup plugin
    uses FIFREEZE/FITHAW standard ioctls.
  + Fixes for Copy/Paste (and C&P is temporarily disabled on
    Solaris due to C++ library issues).
- Rebase open-vm-tools-kernel-3.6.patch: mostly fixed upstream.
- No longer build vmblock.ko: it's been obsoleted in favor of
  vmblock-fuse.
- Change vmtoolsd to use vmware-vmblock-fuse instead of vmblock.ko,
  using the new mount point /var/run/vmblock-fuse.
- Add fuse Requires, as we now use vmblock-fuse.
* Fixes bnc#803157.

OBS-URL: https://build.opensuse.org/request/show/173303
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/open-vm-tools?expand=0&rev=46
This commit is contained in:
Stephan Kulow 2013-04-26 05:42:20 +00:00 committed by Git OBS Bridge
commit 398a1dc2ae
8 changed files with 99 additions and 60 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:06f80b220c52d2438a7ef5628fb05eb7130a2f1e758ee6399d2e96ea54bd8c52
size 3557157

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1ae795e75bf4b38185f39083b8075686d3bab4c1222f4e39c863aeccb2f5f387
size 3561799

View File

@ -1,49 +1,8 @@
diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/inode.c open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/inode.c
--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/inode.c 2012-05-23 00:12:52.000000000 +0400
+++ open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/inode.c 2012-10-02 15:39:47.000000000 +0400
@@ -1801,7 +1802,7 @@
#else
if (mask & MAY_ACCESS) { /* For sys_access. */
#endif
- struct list_head *pos;
+ struct hlist_node *pos;
int dcount = 0;
struct dentry *dentry = NULL;
@@ -1817,7 +1818,7 @@
#endif
/* Find a dentry with valid d_count. Refer bug 587789. */
- list_for_each(pos, &inode->i_dentry) {
+ list_for_each(pos, inode->i_dentry.first) {
dentry = list_entry(pos, struct dentry, d_alias);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 38)
dcount = atomic_read(&dentry->d_count);
diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/page.c open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/page.c
--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/page.c 2012-05-23 00:12:52.000000000 +0400
+++ open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/page.c 2012-10-02 15:41:38.000000000 +0400
@@ -893,7 +893,7 @@
*/
if ((offset >= currentFileSize) ||
((pageFrom == 0) && (offset + pageTo) >= currentFileSize)) {
- void *kaddr = kmap_atomic(page, KM_USER0);
+ void *kaddr = kmap_atomic(page);
if (pageFrom) {
memset(kaddr, 0, pageFrom);
@@ -901,7 +901,7 @@
if (pageTo < PAGE_CACHE_SIZE) {
memset(kaddr + pageTo, 0, PAGE_CACHE_SIZE - pageTo);
}
- kunmap_atomic(kaddr, KM_USER0);
+ kunmap_atomic(kaddr);
flush_dcache_page(page);
}
}
diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c open-vm-tools-2012.05.21-724730/modules/linux/vmsync/sync.c
--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c 2012-05-23 00:12:52.000000000 +0400
+++ open-vm-tools-2012.05.21-724730/modules/linux/vmsync/sync.c 2012-10-02 15:23:56.000000000 +0400
@@ -162,7 +162,7 @@
Index: open-vm-tools-9.2.2-893683/modules/linux/vmsync/sync.c
===================================================================
--- open-vm-tools-9.2.2-893683.orig/modules/linux/vmsync/sync.c
+++ open-vm-tools-9.2.2-893683/modules/linux/vmsync/sync.c
@@ -162,7 +162,7 @@ VmSyncThawDevices(void *_state) // IN
cancel_delayed_work(&state->thawTask);
list_for_each_safe(cur, tmp, &state->devices) {
dev = list_entry(cur, VmSyncBlockDevice, list);
@ -52,7 +11,7 @@ diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c open
thaw_bdev(dev->bdev, dev->sb);
atomic_dec(&gFreezeCount);
}
@@ -237,7 +237,7 @@
@@ -237,7 +237,7 @@ VmSyncAddPath(const VmSyncState *state,
* the superblock is already frozen.
*/
if (inode->i_sb->s_bdev == NULL ||
@ -61,4 +20,3 @@ diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c open
result = (inode->i_sb->s_bdev == NULL) ? -EINVAL : -EALREADY;
compat_path_release(&nd);
goto exit;

View File

@ -0,0 +1,52 @@
--- a/modules/linux/shared/compat_mm.h
+++ b/modules/linux/shared/compat_mm.h
@@ -99,8 +99,18 @@ static inline struct page * alloc_pages(
vmtruncate(inode, size); \
result; \
})
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
#define compat_vmtruncate(inode, size) vmtruncate(inode, size)
+#else
+#define compat_vmtruncate(inode, size) \
+({ \
+ result = inode_newsize_ok(inode, size); \
+ if (!result) \
+ { \
+ truncate_setsize(inode, size); \
+ } \
+ result; \
+})
#endif
--- a/modules/linux/vmci/linux/driver.c
+++ b/modules/linux/vmci/linux/driver.c
@@ -124,7 +124,7 @@ static struct pci_driver vmci_driver = {
.name = "vmci",
.id_table = vmci_ids,
.probe = vmci_probe_device,
- .remove = __devexit_p(vmci_remove_device),
+ .remove = vmci_remove_device,
};
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
@@ -1750,7 +1750,7 @@ vmci_enable_msix(struct pci_dev *pdev) /
*-----------------------------------------------------------------------------
*/
-static int __devinit
+static int
vmci_probe_device(struct pci_dev *pdev, // IN: vmci PCI device
const struct pci_device_id *id) // IN: matching device ID
{
@@ -1978,7 +1978,7 @@ vmci_probe_device(struct pci_dev *pdev,
*-----------------------------------------------------------------------------
*/
-static void __devexit
+static void
vmci_remove_device(struct pci_dev* pdev)
{
struct vmci_device *dev = pci_get_drvdata(pdev);

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Wed Apr 24 19:57:20 UTC 2013 - dimstar@opensuse.org
- Add open-vm-tools-kernel-3.8.patch: Fix build with kernel 3.8.x.
-------------------------------------------------------------------
Wed Apr 3 18:26:54 UTC 2013 - dimstar@opensuse.org
- Update to version 9.2.0:
+ Fixes for HGFS driver to compile on newer kernels (3.6).
+ vmsync driver is disabled on kernels 3.0+ as vmbackup plugin
uses FIFREEZE/FITHAW standard ioctls.
+ Fixes for Copy/Paste (and C&P is temporarily disabled on
Solaris due to C++ library issues).
- Rebase open-vm-tools-kernel-3.6.patch: mostly fixed upstream.
- No longer build vmblock.ko: it's been obsoleted in favor of
vmblock-fuse.
- Change vmtoolsd to use vmware-vmblock-fuse instead of vmblock.ko,
using the new mount point /var/run/vmblock-fuse.
- Add fuse Requires, as we now use vmblock-fuse.
* Fixes bnc#803157.
-------------------------------------------------------------------
Sat Mar 2 08:16:26 UTC 2013 - coolo@suse.com

View File

@ -26,15 +26,15 @@
%endif
# Modules that have to be build up to version 12.2 (Last checked on 2012-02-05 with kernel 3.2.0)
%define vm_modules vmci vmblock vmhgfs vmsync vsock %{?vm_modules1210}
%define vm_modules vmci vmhgfs vmsync vsock %{?vm_modules1210}
# X modules are lower prio upstream and once in a while fail. Offer an easy way to enable/disable them.
%define with_X 1
Name: open-vm-tools
Version: 9.2.0
Version: 9.2.2
Release: 0
%define svn_rev 799703
%define svn_rev 893683
Summary: Open Virtual Machine Tools
License: BSD-3-Clause and GPL-2.0 and LGPL-2.1
Group: System/Emulators/PC
@ -48,6 +48,7 @@ Source6: open-vm-tools-modprobe.conf
Source7: tools.conf
Source98: preamble
Patch0: open-vm-tools-kernel-3.6.patch
Patch1: open-vm-tools-kernel-3.8.patch
BuildRequires: gcc-c++
# don't use pkgconfig(gtk+-2.0) so we can build on SLE
BuildRequires: gtk2-devel
@ -68,6 +69,8 @@ BuildRequires: liburiparser-devel
%endif
BuildRequires: pam-devel
Requires: vmware-guest-kmp
# In order to have access to vmblock-fuse, we do require fuse
Requires: fuse
Supplements: modalias(pci:v000015ADd*sv*sd*bc*sc*i*)
Requires(pre): %fillup_prereq
Requires(pre): %insserv_prereq
@ -162,6 +165,7 @@ if you intend to create own plugins for vmtoolsd.
%setup -q -n %{name}-%{version}-%{svn_rev}
%if 0%{?suse_version} > 1220
%patch0 -p1
%patch1 -p1
%endif
chmod -x AUTHORS COPYING ChangeLog NEWS README
# fix for an rpmlint warning regarding wrong line feeds

View File

@ -81,8 +81,12 @@ case "$1" in
if [ ! -d /tmp/VMwareDnD ]; then
mkdir -m 1777 /tmp/VMwareDnD
fi
modprobe vmblock
mount -t vmblock none /proc/fs/vmblock/mountPoint
if [ ! -d /var/run/vmblock-fuse ]; then
mkdir -m 555 /var/run/vmblock-fuse
fi
/usr/bin/vmware-vmblock-fuse \
-o subtype=vmware-vmblock,default_permissions,allow_other \
/var/run/vmblock-fuse
modprobe $VMBALLOON
modprobe vmsync
## Start daemon with startproc(8). If this fails
@ -98,14 +102,13 @@ case "$1" in
## killproc sets the return value according to LSB.
# We need to inform the User process that we're going down.
# Otherwise it keeps references on /proc/fs/vmblock/* and
# Otherwise it keeps references on /var/run/vmblock-fuse/* and
# causes issues when reloading vmblock module.
if [ -f "$VMTOOLSUSER_BIN" ]; then
/sbin/killproc -SIGUSR1 $VMTOOLSUSER_BIN
fi
/sbin/killproc -TERM $VMTOOLSD_BIN
umount /proc/fs/vmblock/mountPoint || :
modprobe -r vmblock || :
umount /var/run/vmblock-fuse || :
modprobe -r vmsync || :
modprobe -r $VMBALLOON || :

View File

@ -7,7 +7,7 @@ unset SESSION_MANAGER
while [ $RETRY -lt $MAX_RETRY ]; do
if [ -f /proc/fs/vmblock/dev ]; then
if [ -f /var/run/vmblock-fuse/dev ]; then
/usr/bin/vmware-user-suid-wrapper
exit 0
else