diff options
Diffstat (limited to 'community/open-vm-tools-modules')
4 files changed, 101 insertions, 31 deletions
diff --git a/community/open-vm-tools-modules/PKGBUILD b/community/open-vm-tools-modules/PKGBUILD index 082df1943..df6d75ea6 100644 --- a/community/open-vm-tools-modules/PKGBUILD +++ b/community/open-vm-tools-modules/PKGBUILD @@ -1,10 +1,11 @@ -# $Id: PKGBUILD 72483 2012-06-15 13:20:41Z spupykin $ +# $Id: PKGBUILD 80262 2012-11-18 19:27:05Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Krzysztof Raczkowski <raczkow@gmail.com> pkgname=open-vm-tools-modules -pkgver=2012.05.21 -_pkgsubver=724730 +epoch=1 +pkgver=9.2.2 +_pkgsubver=893683 pkgrel=1 pkgdesc="kernel modules for the open source implementation of VMware Tools" arch=('i686' 'x86_64') @@ -13,38 +14,45 @@ license=('GPL') makedepends=('libdnet' 'icu' 'uriparser' 'linux-headers') depends=("linux") install=$pkgname.install -options=('!strip') +options=('!strip' '!makeflags') source=("http://downloads.sourceforge.net/open-vm-tools/open-vm-tools-$pkgver-${_pkgsubver}.tar.gz" - "modprobe.conf") -md5sums=('91affb5b23db8abceff930613845f434' - 'ac9b8e3cb798f5056ca92767ec705117') + "modprobe.conf" + "linux-3.6-build-fix.patch") +md5sums=('7af505681d736d4c9ee6493b1166689f' + 'bc5518489077e91655489bd04b868584' + 'd9ffaf628837ea6a216b96dac69705e6') build() { - _kernver=`pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -` - KERNEL_RELEASE=`cat /lib/modules/extramodules-3.${_kernver}-ARCH/version` + _kernver=$(pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -) + KERNEL_RELEASE=$(cat /usr/lib/modules/extramodules-3.${_kernver}-ARCH/version) cd "$srcdir/open-vm-tools-${pkgver}-${_pkgsubver}" + sed -i 's|proc-3.2.8|procps|g' configure - [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr \ - --without-x --with-kernel-release=$KERNEL_RELEASE +# patch -p1 <$srcdir/linux-3.6-build-fix.patch + + [ $NOEXTRACT -eq 1 ] || ./configure \ + --prefix=/usr \ + --without-x \ + --with-linuxdir=/usr/lib/modules/$KERNEL_RELEASE - cd modules - make modules -j1 + make -C modules modules } package() { - _kernver=`pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -` - depends=("linux>=3.${_kernver}" "linux<3.`expr ${_kernver} + 1`") - KERNEL_VERSION=`cat /lib/modules/extramodules-3.${_kernver}-ARCH/version` + _kernver=$(pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -) + depends=("linux>=3.${_kernver}" "linux<3.$(expr ${_kernver} + 1)") + KERNEL_VERSION=$(cat /usr/lib/modules/extramodules-3.${_kernver}-ARCH/version) msg "Kernel = $KERNEL_VERSION" cd "$srcdir/open-vm-tools-${pkgver}-${_pkgsubver}" - mkdir -p $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/ - for MOD in `find -type f -name '*.ko'`; do - install -Dm644 $MOD $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/ - done - gzip $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/*.ko + mkdir -p $pkgdir/usr/lib/modules/extramodules-3.${_kernver}-ARCH/ + + find -type f -name '*.ko' \ + -exec install -t "$pkgdir/usr/lib/modules/extramodules-3.$_kernver-ARCH" {} + + + gzip "$pkgdir/usr/lib/modules/extramodules-3.$_kernver-ARCH"/*.ko - install -D -m 644 ${srcdir}/modprobe.conf ${pkgdir}/etc/modprobe.d/${pkgname}.conf + install -D -m 644 ${srcdir}/modprobe.conf ${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf sed -i "s|extramodules-.*-ARCH|extramodules-3.${_kernver}-ARCH|" $startdir/$pkgname.install } diff --git a/community/open-vm-tools-modules/linux-3.6-build-fix.patch b/community/open-vm-tools-modules/linux-3.6-build-fix.patch new file mode 100644 index 000000000..f012a3ff1 --- /dev/null +++ b/community/open-vm-tools-modules/linux-3.6-build-fix.patch @@ -0,0 +1,63 @@ +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 @@ + cancel_delayed_work(&state->thawTask); + list_for_each_safe(cur, tmp, &state->devices) { + dev = list_entry(cur, VmSyncBlockDevice, list); +- if (dev->sb != NULL && dev->sb->s_frozen != SB_UNFROZEN) { ++ if (dev->sb != NULL && dev->sb->s_writers.frozen != SB_UNFROZEN) { + thaw_bdev(dev->bdev, dev->sb); + atomic_dec(&gFreezeCount); + } +@@ -237,7 +237,7 @@ + * the superblock is already frozen. + */ + if (inode->i_sb->s_bdev == NULL || +- inode->i_sb->s_frozen != SB_UNFROZEN) { ++ inode->i_sb->s_writers.frozen != SB_UNFROZEN) { + result = (inode->i_sb->s_bdev == NULL) ? -EINVAL : -EALREADY; + compat_path_release(&nd); + goto exit; diff --git a/community/open-vm-tools-modules/modprobe.conf b/community/open-vm-tools-modules/modprobe.conf index b72fcc61a..6a1a9ca53 100644 --- a/community/open-vm-tools-modules/modprobe.conf +++ b/community/open-vm-tools-modules/modprobe.conf @@ -1,2 +1 @@ -#VMware net driver -install pcnet32 /sbin/modprobe -q --ignore-install vmxnet; /sbin/modprobe -q --ignore-install pcnet32 ; /bin/true; +softdep pcnet32 pre: vmxnet diff --git a/community/open-vm-tools-modules/open-vm-tools-modules.install b/community/open-vm-tools-modules/open-vm-tools-modules.install index b8f6dd618..e8ad0e85d 100644 --- a/community/open-vm-tools-modules/open-vm-tools-modules.install +++ b/community/open-vm-tools-modules/open-vm-tools-modules.install @@ -1,7 +1,7 @@ post_install() { - EXTRAMODULES='extramodules-3.3-ARCH' - depmod $(cat /lib/modules/$EXTRAMODULES/version) - echo ">>> Enabling vmxnet driver in /etc/modprobe.d/open-vm-tools-modules.conf" + EXTRAMODULES='extramodules-3.6-ARCH' + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) + echo ">>> Enabling vmxnet driver in /usr/lib/modprobe.d/open-vm-tools-modules.conf" echo ">>> (this will disable pcnet32 driver)" echo ">>>" echo ">>> If vmxnet driver doesn't handle your NIC, you have to manually" @@ -10,13 +10,13 @@ post_install() { } post_upgrade() { - EXTRAMODULES='extramodules-3.3-ARCH' - depmod $(cat /lib/modules/$EXTRAMODULES/version) + EXTRAMODULES='extramodules-3.6-ARCH' + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) } post_remove() { - EXTRAMODULES='extramodules-3.3-ARCH' - depmod $(cat /lib/modules/$EXTRAMODULES/version) + EXTRAMODULES='extramodules-3.6-ARCH' + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) echo ">>>" echo ">>> Remember to un-blacklist pcnet32 driver" echo ">>>" |