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:
commit
398a1dc2ae
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:06f80b220c52d2438a7ef5628fb05eb7130a2f1e758ee6399d2e96ea54bd8c52
|
||||
size 3557157
|
3
open-vm-tools-9.2.2-893683.tar.gz
Normal file
3
open-vm-tools-9.2.2-893683.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1ae795e75bf4b38185f39083b8075686d3bab4c1222f4e39c863aeccb2f5f387
|
||||
size 3561799
|
@ -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;
|
||||
|
||||
|
52
open-vm-tools-kernel-3.8.patch
Normal file
52
open-vm-tools-kernel-3.8.patch
Normal 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);
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
13
vmtoolsd
13
vmtoolsd
@ -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 || :
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user