diff options
-rw-r--r-- | .SRCINFO | 34 | ||||
-rw-r--r-- | PKGBUILD | 84 | ||||
-rw-r--r-- | config | 12 | ||||
-rw-r--r-- | config.xml | 43 | ||||
-rw-r--r-- | environments.xml | 8 | ||||
-rw-r--r-- | vmmon.patch | 220 | ||||
-rw-r--r-- | vmnet.patch | 48 | ||||
-rw-r--r-- | vmware-environment.sh | 7 |
8 files changed, 209 insertions, 247 deletions
@@ -1,7 +1,7 @@ pkgbase = vmware-workstation pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC. - pkgver = 12.5.8 - pkgrel = 1 + pkgver = 14.1.0 + pkgrel = 5 url = https://www.vmware.com/products/workstation-for-linux.html install = vmware-workstation.install arch = x86_64 @@ -14,12 +14,10 @@ pkgbase = vmware-workstation depends = ncurses5-compat-libs depends = fuse2 depends = gksu - depends = gtkmm + depends = gtkmm3 depends = libcanberra + depends = pcsclite depends = hicolor-icon-theme - depends = fontconfig - depends = freetype2 - depends = zlib optdepends = linux-headers: build modules against Arch kernel provides = vmware-ovftool conflicts = vmware-modules-dkms @@ -39,7 +37,7 @@ pkgbase = vmware-workstation backup = etc/vmware/ssl/hostd.ssl.config backup = etc/pam.d/vmware-authd backup = etc/conf.d/vmware - source = https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-12.5.8-7098237.x86_64.bundle + source = https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-14.1.0-7370693.x86_64.bundle source = bootstrap source = vmware-vix-bootstrap source = config @@ -59,19 +57,19 @@ pkgbase = vmware-workstation source = Makefile source = vmmon.patch source = vmnet.patch - source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/8.5.9/7098239/packages/com.vmware.fusion.tools.darwinPre15.zip.tar - source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/8.5.9/7098239/packages/com.vmware.fusion.tools.darwin.zip.tar + source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/10.1.0/7370838/packages/com.vmware.fusion.tools.darwinPre15.zip.tar + source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/10.1.0/7370838/packages/com.vmware.fusion.tools.darwin.zip.tar source = unlocker.py - sha256sums = 04b93507724a5d38ea154436fb5c96e85b1009955eea5bb7995c5289a5acac32 + sha256sums = 522f368c3ce009b4cd442c25215b022fc09a520a668b4e3189af5194f50ca14a sha256sums = 12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e sha256sums = da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141 - sha256sums = 55af509a4328fa88518e7008c65ff5598e6007e99ca2b4421a8f9b26126f6ff3 + sha256sums = d9a5f8b919d52aa2f279d8eaf0bb495780eb9fd8bbc2c58bba223cdca78cc991 sha256sums = d50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7 sha256sums = 8e4d08668a66be79a900521792b39c16a026cc90659241edee80b64e701bfbcd - sha256sums = b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f - sha256sums = d0806b6cb99af04232585def7b8043df3104b9b17470ea70abbd5bedc1e7ca16 + sha256sums = 89b3430bdcc1efc33db2eb556447569204dbb736dca8045c3841e1a55ee5bfbb + sha256sums = 9f508d5f7ce4b69d9f40f6fb0ff0fb3d5b26a3c48658da994bf63975d1b589ab sha256sums = 434cd4aa440d36b75ee20e0b588aaad874bb0d796173990bc4046667c66f5099 - sha256sums = 25c5aa39489d14a60f9cb30bdd7b21d36399c3355daee8bf5fbebcb62fe9f45f + sha256sums = 57c7568a89e8af1914cf7aea84d8fefd6e7af4155557081292344326d652ae70 sha256sums = 3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88 sha256sums = f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d sha256sums = 70301aa4eff4f42d7d39b276445dc7d8f44b8a0e184775e8a9e3055bb9d8590a @@ -80,10 +78,10 @@ pkgbase = vmware-workstation sha256sums = d7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d sha256sums = 05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487 sha256sums = 6ce902b1dab8fc69be253abd8e79017011985eca850ff7acc7282f9ab668e35d - sha256sums = e7fd1d69ce4e0bce1759243204f9cd514c60a63556cee44f401c0a3cc245221a - sha256sums = 397cda34be6c023a9486565f9c648e1f39a93da32941ca82052ada80d2e8a603 - sha256sums = 48d533fcdb4d8adac11379a649a892cf9bb357bd467846bfd1aff54bedcc4d74 - sha256sums = 1c0775534cba0927a3d90d2e57b3371f30c36d61b6822be5a6d8f0703ef8d354 + sha256sums = 4e7a3393d8bae5e3ec6100a5c4a8798c39491869be20c584ae3f75e2fad05168 + sha256sums = 11304179df067e1e75f8268dd218f27db5a502f52b79b642f64f464d06bc3f7b + sha256sums = 70ee05c2e6098644a619fd0e1f742facd5f234e62d7095ef99186e8af8d6b882 + sha256sums = a18688c5ccbebe3822f71a357e879bec6dd9a5698833d13fd0f27ee72adab1fc sha256sums = b739b0c99fb20dc44838ce137e254773b7be051f327eb67fd8cb1342a3ecf344 pkgname = vmware-workstation @@ -14,10 +14,10 @@ #PKGEXT=.pkg.tar pkgname=vmware-workstation -pkgver=12.5.8 -_buildver=7098237 +pkgver=14.1.0 +_buildver=7370693 _pkgver=${pkgver}_${_buildver} -pkgrel=1 +pkgrel=5 pkgdesc='The industry standard for running multiple operating systems as virtual machines on a single Linux PC.' arch=(x86_64) url='https://www.vmware.com/products/workstation-for-linux.html' @@ -37,13 +37,12 @@ depends=( ncurses5-compat-libs fuse2 gksu - gtkmm + gtkmm3 libcanberra + pcsclite hicolor-icon-theme # needed to replace internal libs: - fontconfig - freetype2 - zlib + #zlib ) optdepends=( 'linux-headers: build modules against Arch kernel' @@ -91,18 +90,18 @@ source=( 'vmnet.patch' ) sha256sums=( - '04b93507724a5d38ea154436fb5c96e85b1009955eea5bb7995c5289a5acac32' + '522f368c3ce009b4cd442c25215b022fc09a520a668b4e3189af5194f50ca14a' '12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e' 'da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141' - '55af509a4328fa88518e7008c65ff5598e6007e99ca2b4421a8f9b26126f6ff3' + 'd9a5f8b919d52aa2f279d8eaf0bb495780eb9fd8bbc2c58bba223cdca78cc991' 'd50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7' '8e4d08668a66be79a900521792b39c16a026cc90659241edee80b64e701bfbcd' - 'b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f' + '89b3430bdcc1efc33db2eb556447569204dbb736dca8045c3841e1a55ee5bfbb' - 'd0806b6cb99af04232585def7b8043df3104b9b17470ea70abbd5bedc1e7ca16' + '9f508d5f7ce4b69d9f40f6fb0ff0fb3d5b26a3c48658da994bf63975d1b589ab' '434cd4aa440d36b75ee20e0b588aaad874bb0d796173990bc4046667c66f5099' - '25c5aa39489d14a60f9cb30bdd7b21d36399c3355daee8bf5fbebcb62fe9f45f' + '57c7568a89e8af1914cf7aea84d8fefd6e7af4155557081292344326d652ae70' '3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88' 'f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d' @@ -113,8 +112,8 @@ sha256sums=( '05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487' '6ce902b1dab8fc69be253abd8e79017011985eca850ff7acc7282f9ab668e35d' - 'e7fd1d69ce4e0bce1759243204f9cd514c60a63556cee44f401c0a3cc245221a' - '397cda34be6c023a9486565f9c648e1f39a93da32941ca82052ada80d2e8a603' + '4e7a3393d8bae5e3ec6100a5c4a8798c39491869be20c584ae3f75e2fad05168' + '11304179df067e1e75f8268dd218f27db5a502f52b79b642f64f464d06bc3f7b' ) options=(!strip emptydirs) @@ -123,7 +122,7 @@ _isoimages=(freebsd linux linuxPreGlibc25 netware solaris windows winPre2k winPr if [ -n "$_enable_macOS_guests" ]; then -_vmware_fusion_ver=8.5.9_7098239 +_vmware_fusion_ver=10.1.0_7370838 # List of VMware Fusion versions: https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/ makedepends+=( @@ -138,8 +137,8 @@ source+=( 'unlocker.py' ) sha256sums+=( - '48d533fcdb4d8adac11379a649a892cf9bb357bd467846bfd1aff54bedcc4d74' - '1c0775534cba0927a3d90d2e57b3371f30c36d61b6822be5a6d8f0703ef8d354' + '70ee05c2e6098644a619fd0e1f742facd5f234e62d7095ef99186e8af8d6b882' + 'a18688c5ccbebe3822f71a357e879bec6dd9a5698833d13fd0f27ee72adab1fc' 'b739b0c99fb20dc44838ce137e254773b7be051f327eb67fd8cb1342a3ecf344' ) @@ -198,7 +197,7 @@ package() { "$pkgdir/etc"/{cups,pam.d,modprobe.d,profile.d,thnuclnt,vmware} \ "$pkgdir/usr"/{share,bin} \ "$pkgdir/usr/include/vmware-vix" \ - "$pkgdir/usr/lib"/{vmware/setup,vmware-vix,vmware-ovftool,vmware-installer/"$vmware_installer_version",cups/filter,modules-load.d} \ + "$pkgdir/usr/lib"/{vmware/{setup,lib/libvmware-vim-cmd.so},vmware-vix,vmware-ovftool,vmware-installer/"$vmware_installer_version",cups/filter,modules-load.d} \ "$pkgdir/usr/share"/{doc/vmware-vix,licenses/"$pkgname"} \ "$pkgdir/var/lib/vmware/Shared VMs" @@ -224,7 +223,7 @@ package() { cp -r \ vmware-workstation/lib/* \ vmware-player-app/lib/* \ - vmware-vmx/lib/* \ + vmware-vmx/{lib/*,roms} \ vmware-vprobe/lib/* \ vmware-workstation-server/{bin,lib,hostd} \ vmware-usbarbitrator/bin \ @@ -242,7 +241,7 @@ package() { "$pkgdir/etc/vmware" cp -r \ - vmware-vix-lib-Workstation1200/lib/Workstation-12.0.0 \ + vmware-vix-lib-Workstation1400/lib/Workstation-14.0.0 \ vmware-vix-core/{lib/*,vixwrapper-config.txt} \ "$pkgdir/usr/lib/vmware-vix" cp vmware-vix-core/vix-perl.tar.nogz "$pkgdir/usr/lib/vmware-vix/vix-perl.tar.gz" @@ -262,7 +261,9 @@ package() { cp -r \ vmware-player-app/etc/cups/* \ "$pkgdir/etc/cups" - + cp -r \ + vmware-player-app/extras/.thnumod \ + "$pkgdir/etc/thnuclnt" cp -r \ vmware-player-app/extras/thnucups \ "$pkgdir/usr/lib/cups/filter" @@ -277,7 +278,6 @@ package() { install -Dm 644 "vmware-tools-$isoimage/$isoimage.iso.sig" "$pkgdir/usr/lib/vmware/isoimages/$isoimage.iso.sig" done - install -Dm 644 "vmware-player-app/doc/LearnMore.txt" "$pkgdir/usr/share/licenses/$pkgname/Privacy.txt" install -Dm 644 "vmware-workstation/doc/EULA" "$pkgdir/usr/share/licenses/$pkgname/VMware Workstation - EULA.txt" install -Dm 644 "vmware-workstation/doc"/*open_source_licenses.txt "$pkgdir/usr/share/licenses/$pkgname" mv "$pkgdir/usr/lib/vmware-ovftool/vmware.eula" "$pkgdir/usr/share/licenses/$pkgname/VMware OVF Tool component for Linux - EULA.txt" @@ -320,15 +320,16 @@ package() { "$pkgdir/usr/bin"/* \ "$pkgdir/usr/lib/vmware/bin"/* \ "$pkgdir/usr/lib/vmware/setup"/* \ - "$pkgdir/usr/lib/vmware/lib"/{wrapper-gtk24.sh,libgksu2.so.0/gksu-run-helper} \ + "$pkgdir/usr/lib/vmware/lib"/libvmware-gksu.so/gksu-run-helper \ "$pkgdir/usr/lib/vmware-ovftool"/{ovftool,ovftool.bin} \ "$pkgdir/usr/lib/vmware-installer/$vmware_installer_version"/{vmware-installer,vmis-launcher} \ "$pkgdir/usr/lib/cups/filter"/* \ - "$pkgdir/usr/lib/vmware-vix/setup"/* + "$pkgdir/usr/lib/vmware-vix/setup"/* \ + "$pkgdir/etc/thnuclnt/.thnumod" chmod -R 600 "$pkgdir/etc/vmware/ssl" chmod +s \ - "$pkgdir/usr/bin"/{vmware-authd,vmware-mount} \ + "$pkgdir/usr/bin"/vmware-authd \ "$pkgdir/usr/lib/vmware/bin"/{vmware-vmx,vmware-vmx-debug,vmware-vmx-stats} @@ -336,37 +337,46 @@ package() { for link in \ licenseTool \ - thnuclnt \ vmplayer \ vmware \ vmware-app-control \ vmware-enter-serial \ vmware-fuseUI \ vmware-gksu \ + vmware-hostd \ vmware-modconfig \ vmware-modconfig-console \ + vmware-mount \ vmware-netcfg \ vmware-tray \ - vmware-unity-helper \ + vmware-vim-cmd \ vmware-vmblock-fuse \ - vmware-zenity + vmware-vprobe \ + vmware-wssc-adminTool \ + vmware-zenity \ + #vmware-unity-helper do ln -s /usr/lib/vmware/bin/appLoader "$pkgdir/usr/lib/vmware/bin/$link" done + for link in \ + vmware-mount \ + vmware-usbarbitrator + do + ln -s /usr/lib/vmware/bin/$link "$pkgdir/usr/bin/$link" + done + ln -s /usr/lib/vmware/icu "$pkgdir/etc/vmware/icu" + ln -s /usr/lib/vmware/lib/diskLibWrapper.so/diskLibWrapper.so "$pkgdir/usr/lib/diskLibWrapper.so" + ln -s /usr/lib/vmware/lib/libvmware-hostd.so/libvmware-hostd.so "$pkgdir/usr/lib/vmware/lib/libvmware-vim-cmd.so/libvmware-vim-cmd.so" ln -s /usr/lib/vmware-ovftool/ovftool "$pkgdir/usr/bin/ovftool" - ln -s /usr/lib/vmware/bin/appLoader "$pkgdir/etc/thnuclnt/.thnumod" + ln -s /usr/lib/vmware-vix/libvixAllProducts.so "$pkgdir/usr/lib/libvixAllProducts.so" # Replace placeholder "variables" with real paths. for file in \ - pango/pangorc \ - pango/pango.modules \ - pango/pangox.aliases \ - gtk-2.0/gdk-pixbuf.loaders \ - gtk-2.0/gtk.immodules + gtk-3.0/gdk-pixbuf.loaders do sed -i 's,@@LIBCONF_DIR@@,/usr/lib/vmware/libconf,g' "$pkgdir/usr/lib/vmware/libconf/etc/$file" done @@ -424,10 +434,6 @@ fi -i "$pkgdir/usr/bin/$program" done - # use system font rendering - ln -sf /usr/lib/libfreetype.so.6 "$pkgdir/usr/lib/vmware/lib/libfreetype.so.6/" - ln -sf /usr/lib/libfontconfig.so.1 "$pkgdir/usr/lib/vmware/lib/libfontconfig.so.1/" # avoid a conflict with fontconfig when VMWARE_USE_SHIPPED_LIBS is defined - # to solve bugs with incompatibles library versions: - ln -sf /usr/lib/libz.so.1 "$pkgdir/usr/lib/vmware/lib/libz.so.1/" + #ln -sf /usr/lib/libz.so.1 "$pkgdir/usr/lib/vmware/lib/libz.so.1/" } @@ -11,16 +11,16 @@ bindir = "/usr/bin" vmware.fullpath = "/usr/bin/vmware" vix.libdir = "/usr/lib/vmware-vix" installerDefaults.componentDownloadEnabled = "no" -installerDefaults.autoSoftwareUpdateEnabled.epoch = "5971871847" +installerDefaults.autoSoftwareUpdateEnabled.epoch = "4641104763" vix.config.version = "1" -player.product.version = "12.5.6" -installerDefaults.dataCollectionEnabled.epoch = "2097005183" +player.product.version = "14.0.0" +installerDefaults.dataCollectionEnabled.epoch = "7910652514" installerDefaults.dataCollectionEnabled = "no" installerDefaults.transferVersion = "1" installerDefaults.autoSoftwareUpdateEnabled = "no" -product.buildNumber = "5528349" +product.buildNumber = "6661328" authd.client.port = "902" authd.proxy.nfc = "vmware-hostd:ha-nfc" -product.version = "12.5.6" -workstation.product.version = "12.5.6" +product.version = "14.0.0" +workstation.product.version = "14.0.0" product.name = "VMware Workstation" diff --git a/config.xml b/config.xml index b08e4b150293..68f851ad72dd 100644 --- a/config.xml +++ b/config.xml @@ -45,15 +45,6 @@ <supportedVMs> 128 </supportedVMs> </mockup> - <!-- Procoproxy update forwarding configuration settings - <updateForwarding> - <enabled>false</enabled> - <hostName>localhost</hostName> - <port>5002</port> - <useSsl>false</useSsl> - </updateForwarding> - --> - <!-- Frequency of memory checker --> <!-- <memoryCheckerTimeInSecs> 30 </memoryCheckerTimeInSecs> --> @@ -266,7 +257,8 @@ <ssl> <doVersionCheck> false </doVersionCheck> <libraryPath>/usr/lib/vmware</libraryPath> - <useCompression> true </useCompression> + <!-- allowed SSL/TLS protocol versions --> + <!-- <protocols>tls1.0,tls1.1,tls1.2</protocols> --> <!-- timeouts for the SSL handshake. the default is 20 sec. --> <!-- <handshakeTimeoutMs>60000</handshakeTimeoutMs> --> @@ -601,22 +593,6 @@ <!-- The file containing the hardware info mockup --> <hwInfo>/etc/vmware/hostd/hwInfo.xml</hwInfo> - <!-- Whether to use the real network list or just use mockups --> - <!-- <loadRealNetworks> true </loadRealNetworks> --> - - <!-- Whether to use the real pciPassthru list or just use mockups --> - <!-- <loadRealPciPassthru> true </loadRealPciPassthru> --> - - <!-- Whether to use the real datastore list or just use mockups --> - <!-- <loadRealDatastores> true </loadRealDatastores> --> - - <!-- Whether to use the real rdm list or the mockup list. --> - <!-- <loadRealRdmInfo> true </loadRealRdmInfo> --> - - <!-- Whether to use the real device (cd,flp,serial,||,sound) --> - <!-- list or the mockup. --> - <!-- <loadRealHwInfo> true </loadRealHwInfo> --> - <!-- Controls to enable/disable expressions in the RDM filter --> <!-- <rdmfilter> --> <!-- Only show disks that are attached to shared storage. --> @@ -629,12 +605,6 @@ <!-- <UsedAsVmRdm>true</UsedAsVmRdm> --> <!-- </rdmfilter> --> - <!-- Whether to use the real rdm list or the mockup list. --> - <!-- <loadRealPassthroughInfo> true </loadRealPassthroughInfo> --> - - <!-- Whether to populate usb info from the mockup list. --> - <!-- <loadRealUsbInfo> true </loadRealUsbInfo> --> - <!-- Disable Resource Pool Initialization --> <!-- <disableResourcePoolInit> false </disableResourcePoolInit> --> @@ -821,6 +791,8 @@ <cimsvc> <path>libcimsvc.so</path> <enabled>false</enabled> + <maxSelEntries>40</maxSelEntries> + <pollTime>90</pollTime> </cimsvc> <directorysvc> @@ -887,6 +859,11 @@ <enabled>false</enabled> </cbrcsvc> + <hostspecsvc> + <path>libhostspecsvc.so</path> + <enabled>false</enabled> + </hostspecsvc> + </plugins> @@ -900,4 +877,4 @@ </locale> --> -</config> +</config>
\ No newline at end of file diff --git a/environments.xml b/environments.xml index 93a12dac54b8..57a099d3a52d 100644 --- a/environments.xml +++ b/environments.xml @@ -35,4 +35,12 @@ <Descriptor> /etc/vmware/hostd/env/ws-hw12.xml </Descriptor> <Options> /etc/vmware/hostd/env/vmconfigoption-ws-hw12.xml</Options> </Cfg> + <Cfg id = "10"> + <Descriptor> /etc/vmware/hostd/env/ws-hw13.xml </Descriptor> + <Options> /etc/vmware/hostd/env/vmconfigoption-ws-hw13.xml</Options> + </Cfg> + <Cfg id = "11"> + <Descriptor> /etc/vmware/hostd/env/ws-hw14.xml </Descriptor> + <Options> /etc/vmware/hostd/env/vmconfigoption-ws-hw14.xml</Options> + </Cfg> </Environment> diff --git a/vmmon.patch b/vmmon.patch index c8e61a5ed44c..1b812a0ab760 100644 --- a/vmmon.patch +++ b/vmmon.patch @@ -25,8 +25,8 @@ index bf805e0..9aac585 100644 -EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) +EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE) - EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/smpcall.c, -DVMW_HAVE_SMP_CALL_3ARG, ) - EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/tsc_khz.c, -DVMW_HAVE_TSC_KHZ, ) + obj-m += $(DRIVER).o + diff --git a/vmmon/include/compat_module.h b/vmmon/include/compat_module.h index 2af7372..729aedc 100644 --- a/vmmon/include/compat_module.h @@ -45,18 +45,64 @@ index 2af7372..729aedc 100644 +#endif + #endif /* __COMPAT_MODULE_H__ */ +diff --git a/vmmon-only/include/compat_timer.h b/vmmon-only/include/compat_timer.h +new file mode 100644 +index 0000000..b68d9b2 +--- /dev/null ++++ b/vmmon-only/include/compat_timer.h +@@ -0,0 +1,33 @@ ++#ifndef __COMPAT_TIMER_H__ ++#define __COMPAT_TIMER_H__ ++ ++#include <linux/timer.h> ++ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)) && !defined(timer_setup) ++ ++typedef unsigned long compat_timer_arg_t; ++ ++static inline void compat_timer_setup(struct timer_list *timer, ++ void (*func)(compat_timer_arg_t), ++ unsigned int flags) ++{ ++ init_timer(timer); ++ timer->function = func; ++ timer->data = 0; ++ timer->flags = flags; ++} ++ ++#else /* new timer interface since 4.15 */ ++ ++typedef struct timer_list *compat_timer_arg_t; ++ ++static inline void compat_timer_setup(struct timer_list *timer, ++ void (*func)(compat_timer_arg_t), ++ unsigned int flags) ++{ ++ timer_setup(timer, func, flags); ++} ++ ++#endif /* new timer interface since 4.15 */ ++ ++#endif /* __COMPAT_TIMER_H__ */ diff --git a/vmmon/linux/driver.c b/vmmon/linux/driver.c index 87cf45b..5390a93 100644 --- a/vmmon/linux/driver.c +++ b/vmmon/linux/driver.c -@@ -126,7 +126,16 @@ static struct vm_operations_struct vmuser_mops = { - #endif +@@ -21,6 +21,7 @@ + + #define EXPORT_SYMTAB + ++#include "compat_timer.h" + #include <linux/file.h> + #include <linux/highmem.h> + #include <linux/mm.h> +@@ -109,7 +109,15 @@ static struct vm_operations_struct vmuser_mops = { + .fault = LinuxDriverFault }; -static struct file_operations vmuser_fops; +static struct file_operations vmuser_fops = { + .owner = THIS_MODULE, -+ .poll = LinuxDriverPoll, + .unlocked_ioctl = LinuxDriver_Ioctl, + .compat_ioctl = LinuxDriver_Ioctl, + .open = LinuxDriver_Open, @@ -67,8 +113,27 @@ index 87cf45b..5390a93 100644 static struct timer_list tscTimer; static Atomic_uint32 tsckHz; static VmTimeStart tsckHzStartTime; -@@ -319,21 +328,6 @@ init_module(void) - linuxState.fastClockPriority = -20; +@@ -216,7 +217,7 @@ LinuxDriverEstimateTSCkHz(void) + *---------------------------------------------------------------------- + */ + static void +-LinuxDriverEstimateTSCkHzDeferred(unsigned long data) ++LinuxDriverEstimateTSCkHzDeferred(compat_timer_arg_t unused) + { + LinuxDriverEstimateTSCkHz(); + } +@@ -251,9 +252,7 @@ LinuxDriverInitTSCkHz(void) + } + + LinuxDriverReadTSCAndUptime(&tsckHzStartTime); +- tscTimer.function = LinuxDriverEstimateTSCkHzDeferred; + tscTimer.expires = jiffies + 4 * HZ; +- tscTimer.data = 0; + add_timer(&tscTimer); + } + +@@ -295,20 +304,6 @@ init_module(void) + linuxState.fastClockRate = 0; linuxState.swapSize = VMMON_UNKNOWN_SWAP_SIZE; - /* @@ -79,7 +144,6 @@ index 87cf45b..5390a93 100644 - - memset(&vmuser_fops, 0, sizeof vmuser_fops); - vmuser_fops.owner = THIS_MODULE; -- vmuser_fops.poll = LinuxDriverPoll; - vmuser_fops.unlocked_ioctl = LinuxDriver_Ioctl; - vmuser_fops.compat_ioctl = LinuxDriver_Ioctl; - vmuser_fops.open = LinuxDriver_Open; @@ -89,7 +153,16 @@ index 87cf45b..5390a93 100644 #ifdef VMX86_DEVEL devel_init_module(); linuxState.minor = 0; -@@ -389,7 +383,9 @@ cleanup_module(void) +@@ -335,7 +334,7 @@ init_module(void) + linuxState.deviceName, linuxState.major, linuxState.minor); + + HostIF_InitUptime(); +- init_timer(&tscTimer); ++ compat_timer_setup(&tscTimer, LinuxDriverEstimateTSCkHzDeferred, 0); + LinuxDriverInitTSCkHz(); + Vmx86_InitIDList(); + +@@ -364,7 +373,9 @@ cleanup_module(void) #ifdef VMX86_DEVEL unregister_chrdev(linuxState.major, linuxState.deviceName); #else @@ -100,7 +173,7 @@ index 87cf45b..5390a93 100644 #endif Log("Module %s: unloaded\n", linuxState.deviceName); -@@ -1287,7 +1283,7 @@ LinuxDriverReadTSC(void *data, // OUT: TSC values +@@ -977,7 +988,7 @@ LinuxDriverReadTSC(void *data, // OUT: TSC values *----------------------------------------------------------------------------- */ @@ -113,7 +186,15 @@ diff --git a/vmmon/linux/hostif.c b/vmmon/linux/hostif.c index fd32013..583d6da 100644 --- a/vmmon/linux/hostif.c +++ b/vmmon/linux/hostif.c -@@ -37,6 +37,9 @@ +@@ -29,6 +29,7 @@ + #include "driver-config.h" + + /* Must come before vmware.h --hpreg */ ++#include "compat_timer.h" + #include <linux/binfmts.h> + #include <linux/delay.h> + #include <linux/file.h> +@@ -36,6 +36,9 @@ #include <linux/vmalloc.h> #include <linux/slab.h> @@ -123,116 +204,41 @@ index fd32013..583d6da 100644 #include <linux/preempt.h> #include <linux/poll.h> -@@ -73,6 +76,7 @@ +@@ -51,6 +54,7 @@ #include <linux/capability.h> #include <linux/kthread.h> #include <linux/wait.h> +#include <asm/apic.h> + #include <linux/hrtimer.h> #include <linux/signal.h> - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) #include <linux/taskstats_kern.h> // For linux/sched/signal.h without version check -@@ -99,6 +99,37 @@ - #include "vmmonInt.h" - #include "versioned_atomic.h" - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) -+# define global_zone_page_state global_page_state -+#endif -+ -+static unsigned long get_nr_slab_unreclaimable(void) -+{ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) -+ return global_node_page_state(NR_SLAB_UNRECLAIMABLE); -+#else -+ return global_page_state(NR_SLAB_UNRECLAIMABLE); -+#endif -+} -+ -+static unsigned long get_nr_unevictable(void) -+{ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ return global_node_page_state(NR_UNEVICTABLE); -+#else -+ return global_page_state(NR_UNEVICTABLE); -+#endif -+} -+ -+static unsigned long get_nr_anon_mapped(void) -+{ -+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ return global_node_page_state(NR_ANON_MAPPED); -+ #else -+ return global_page_state(NR_ANON_PAGES); -+ #endif -+} -+ - /* - * Determine if we can use high resolution timers. - */ -@@ -142,6 +146,10 @@ +@@ -115,6 +149,10 @@ */ #define LOCKED_PAGE_SLACK 10000 -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++#if LINUX_VERSION_CODE > KERNEL_VERSION(4, 8, 0) +#define NR_ANON_PAGES NR_ANON_MAPPED +#endif + static struct { Atomic_uint64 uptimeBase; VersionedAtomic version; -@@ -1165,14 +1173,16 @@ - int retval; - - down_read(¤t->mm->mmap_sem); --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) -- retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL); --#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -- retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -+ retval = get_user_pages((unsigned long)uvAddr, - #else - retval = get_user_pages(current, current->mm, (unsigned long)uvAddr, -- numPages, 0, 0, ppages, NULL); - #endif -+ numPages, 0, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) -+ 0, -+#endif -+ ppages, NULL); - up_read(¤t->mm->mmap_sem); - - return retval != numPages; -@@ -1594,16 +1625,11 @@ HostIF_EstimateLockedPageLimit(const VMDriver* vm, // IN - unsigned int reservedPages = MEMDEFAULTS_MIN_HOST_PAGES; - unsigned int hugePages = (vm == NULL) ? 0 : - BYTES_2_PAGES(vm->memInfo.hugePageBytes); -- unsigned int lockedPages = global_page_state(NR_PAGETABLE) + -- global_page_state(NR_SLAB_UNRECLAIMABLE) + -- global_page_state(NR_UNEVICTABLE) + -+ unsigned int lockedPages = global_zone_page_state(NR_PAGETABLE) + -+ get_nr_slab_unreclaimable() + -+ get_nr_unevictable() + - hugePages + reservedPages; -- unsigned int anonPages = --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -- global_page_state(NR_ANON_MAPPED); --#else -- global_page_state(NR_ANON_PAGES); --#endif -+ unsigned int anonPages = get_nr_anon_mapped(); - unsigned int swapPages = BYTES_2_PAGES(linuxState.swapSize); - - if (anonPages > swapPages) { -diff --git a/vmmon/linux/vmmonInt.h b/vmmon/linux/vmmonInt.h -index 4dc04e9..993212d 100644 ---- a/vmmon/linux/vmmonInt.h -+++ b/vmmon/linux/vmmonInt.h -@@ -28,7 +28,7 @@ - * Hide all kernel compatibility stuff in these macros and functions. +@@ -1705,7 +1714,7 @@ HostIFReadUptimeWork(unsigned long *j) // OUT: current jiffies */ --#ifdef VMW_HAVE_SMP_CALL_3ARG -+#if defined (VMW_HAVE_SMP_CALL_3ARG) || LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0) - #define compat_smp_call_function(fn, info, wait) smp_call_function(fn, info, wait) - #else - #define compat_smp_call_function(fn, info, wait) smp_call_function(fn, info, 1, wait) + static void +-HostIFUptimeResyncMono(unsigned long data) // IN: ignored ++HostIFUptimeResyncMono(compat_timer_arg_t unused) // IN: ignored + { + unsigned long jifs; + uintptr_t flags; +@@ -1767,8 +1776,7 @@ HostIF_InitUptime(void) + -(tv.tv_usec * (UPTIME_FREQ / 1000000) + + tv.tv_sec * UPTIME_FREQ)); + +- init_timer(&uptimeState.timer); +- uptimeState.timer.function = HostIFUptimeResyncMono; ++ compat_timer_setup(&uptimeState.timer, HostIFUptimeResyncMono, 0); + mod_timer(&uptimeState.timer, jiffies + HZ); + } + diff --git a/vmnet.patch b/vmnet.patch index 54c5f841b62e..906dfc87d8c4 100644 --- a/vmnet.patch +++ b/vmnet.patch @@ -24,21 +24,9 @@ index 2d8e6f6..a14166b 100644 -EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) +EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE) - EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_net.c,-DVMW_NETDEV_HAS_NET, ) - EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_dev_net.c,-DVMW_NETDEV_HAS_DEV_NET, ) - EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/nfhook_uses_skb.c,-DVMW_NFHOOK_USES_SKB, ) -diff --git a/vmnet/bridge.c b/vmnet/bridge.c ---- a/vmnet/bridge.c -+++ b/vmnet/bridge.c -@@ -636,7 +636,7 @@ - unsigned long flags; - int i; + EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netif_trans_update.c,-DVMW_NETIF_TRANS_UPDATE, ) -- atomic_inc(&clone->users); -+ clone = skb_get(clone); - - clone->dev = dev; - clone->protocol = eth_type_trans(clone, dev); + obj-m += $(DRIVER).o diff --git a/vmnet/driver.c b/vmnet/driver.c index 7e7ad99..5f508f6 100644 --- a/vmnet/driver.c @@ -84,34 +72,6 @@ index 7e7ad99..5f508f6 100644 retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps); if (retval) { LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n", -diff --git a/vmnet/userif.c b/vmnet/userif.c -index 94146f6..5298406 100644 ---- a/vmnet/userif.c -+++ b/vmnet/userif.c -@@ -116,14 +116,18 @@ - int retval; - - down_read(¤t->mm->mmap_sem); --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) -- retval = get_user_pages(addr, 1, FOLL_WRITE, &page, NULL); --#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -- retval = get_user_pages(addr, 1, 1, 0, &page, NULL); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -+ retval = get_user_pages(addr, - #else - retval = get_user_pages(current, current->mm, addr, -- 1, 1, 0, &page, NULL); - #endif -+ 1, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) -+ 1, 0, -+#else -+ FOLL_WRITE, -+#endif -+ &page, NULL); - up_read(¤t->mm->mmap_sem); - - if (retval != 1) { diff --git a/vmnet/vm_device_version.h b/vmnet/vm_device_version.h index e2cb477..3dd7097 100644 --- a/vmnet/vm_device_version.h @@ -130,12 +90,12 @@ diff --git a/vmnet/vmnetInt.h b/vmnet/vmnetInt.h index 0ee52ec..4e3b923 100644 --- a/vmnet/vmnetInt.h +++ b/vmnet/vmnetInt.h -@@ -79,7 +79,7 @@ +@@ -48,7 +48,7 @@ extern struct proto vmnet_proto; #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) || defined(sk_net_refcnt) # define compat_sk_alloc(_bri, _pri) sk_alloc(&init_net, \ - PF_NETLINK, _pri, &vmnet_proto, 1) + PF_NETLINK, _pri, &vmnet_proto, 0) - #elif defined(VMW_NETDEV_HAS_NET) + #else # define compat_sk_alloc(_bri, _pri) sk_alloc(&init_net, \ PF_NETLINK, _pri, &vmnet_proto) diff --git a/vmware-environment.sh b/vmware-environment.sh index b4bee50db4df..a6f550a61a10 100644 --- a/vmware-environment.sh +++ b/vmware-environment.sh @@ -1,2 +1,9 @@ # Uncomment the line below if you have a problem of incompatible libraries #export VMWARE_USE_SHIPPED_LIBS=yes + +# Uncomment and fill the line below to change GTK theme +#export GTK_THEME="" + + +# Avoid an issue with some keyboard layouts using iBus +export GTK_IM_MODULE_FILE=/dev/null |