diff options
author | Jean-Marc Lenoir | 2018-01-07 14:51:07 +0100 |
---|---|---|
committer | Jean-Marc Lenoir | 2018-01-07 14:51:07 +0100 |
commit | 4dcb0e93d986e34a89282b64121ae7873a9622a3 (patch) | |
tree | a4058ee2d6d4b1f43ff947e53eb363de21b3cc2b | |
parent | 4436768f8abd73099d9b75ffe521f6a555bb0592 (diff) | |
download | aur-4dcb0e93d986e34a89282b64121ae7873a9622a3.tar.gz |
Ultimate commit for VMware 12.5.8
-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 | 226 | ||||
-rw-r--r-- | vmnet.patch | 61 | ||||
-rw-r--r-- | vmware-environment.sh | 7 |
8 files changed, 249 insertions, 226 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 = 14.1.0 - pkgrel = 5 + pkgver = 12.5.8 + pkgrel = 1 url = https://www.vmware.com/products/workstation-for-linux.html install = vmware-workstation.install arch = x86_64 @@ -14,10 +14,12 @@ pkgbase = vmware-workstation depends = ncurses5-compat-libs depends = fuse2 depends = gksu - depends = gtkmm3 + depends = gtkmm 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 @@ -37,7 +39,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-14.1.0-7370693.x86_64.bundle + source = https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-12.5.8-7098237.x86_64.bundle source = bootstrap source = vmware-vix-bootstrap source = config @@ -57,19 +59,19 @@ pkgbase = vmware-workstation source = Makefile source = vmmon.patch source = vmnet.patch - 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 = 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 = unlocker.py - sha256sums = 522f368c3ce009b4cd442c25215b022fc09a520a668b4e3189af5194f50ca14a + sha256sums = 04b93507724a5d38ea154436fb5c96e85b1009955eea5bb7995c5289a5acac32 sha256sums = 12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e sha256sums = da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141 - sha256sums = d9a5f8b919d52aa2f279d8eaf0bb495780eb9fd8bbc2c58bba223cdca78cc991 + sha256sums = 55af509a4328fa88518e7008c65ff5598e6007e99ca2b4421a8f9b26126f6ff3 sha256sums = d50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7 sha256sums = 8e4d08668a66be79a900521792b39c16a026cc90659241edee80b64e701bfbcd - sha256sums = 89b3430bdcc1efc33db2eb556447569204dbb736dca8045c3841e1a55ee5bfbb - sha256sums = 9f508d5f7ce4b69d9f40f6fb0ff0fb3d5b26a3c48658da994bf63975d1b589ab + sha256sums = b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f + sha256sums = d0806b6cb99af04232585def7b8043df3104b9b17470ea70abbd5bedc1e7ca16 sha256sums = 434cd4aa440d36b75ee20e0b588aaad874bb0d796173990bc4046667c66f5099 - sha256sums = 57c7568a89e8af1914cf7aea84d8fefd6e7af4155557081292344326d652ae70 + sha256sums = 25c5aa39489d14a60f9cb30bdd7b21d36399c3355daee8bf5fbebcb62fe9f45f sha256sums = 3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88 sha256sums = f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d sha256sums = 70301aa4eff4f42d7d39b276445dc7d8f44b8a0e184775e8a9e3055bb9d8590a @@ -78,10 +80,10 @@ pkgbase = vmware-workstation sha256sums = d7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d sha256sums = 05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487 sha256sums = 6ce902b1dab8fc69be253abd8e79017011985eca850ff7acc7282f9ab668e35d - sha256sums = 773442cea744a6bd6420c4a0108749d33dae5ac7e7813c99a6fbfdf47963e9da - sha256sums = 5d69ef50ed407c4948db424549ffb38321c7d1203ba6cd153f6fb3351364aa34 - sha256sums = 70ee05c2e6098644a619fd0e1f742facd5f234e62d7095ef99186e8af8d6b882 - sha256sums = a18688c5ccbebe3822f71a357e879bec6dd9a5698833d13fd0f27ee72adab1fc + sha256sums = e7fd1d69ce4e0bce1759243204f9cd514c60a63556cee44f401c0a3cc245221a + sha256sums = 397cda34be6c023a9486565f9c648e1f39a93da32941ca82052ada80d2e8a603 + sha256sums = 48d533fcdb4d8adac11379a649a892cf9bb357bd467846bfd1aff54bedcc4d74 + sha256sums = 1c0775534cba0927a3d90d2e57b3371f30c36d61b6822be5a6d8f0703ef8d354 sha256sums = b739b0c99fb20dc44838ce137e254773b7be051f327eb67fd8cb1342a3ecf344 pkgname = vmware-workstation @@ -14,10 +14,10 @@ #PKGEXT=.pkg.tar pkgname=vmware-workstation -pkgver=14.1.0 -_buildver=7370693 +pkgver=12.5.8 +_buildver=7098237 _pkgver=${pkgver}_${_buildver} -pkgrel=5 +pkgrel=1 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,12 +37,13 @@ depends=( ncurses5-compat-libs fuse2 gksu - gtkmm3 + gtkmm libcanberra - pcsclite hicolor-icon-theme # needed to replace internal libs: - #zlib + fontconfig + freetype2 + zlib ) optdepends=( 'linux-headers: build modules against Arch kernel' @@ -90,18 +91,18 @@ source=( 'vmnet.patch' ) sha256sums=( - '522f368c3ce009b4cd442c25215b022fc09a520a668b4e3189af5194f50ca14a' + '04b93507724a5d38ea154436fb5c96e85b1009955eea5bb7995c5289a5acac32' '12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e' 'da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141' - 'd9a5f8b919d52aa2f279d8eaf0bb495780eb9fd8bbc2c58bba223cdca78cc991' + '55af509a4328fa88518e7008c65ff5598e6007e99ca2b4421a8f9b26126f6ff3' 'd50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7' '8e4d08668a66be79a900521792b39c16a026cc90659241edee80b64e701bfbcd' - '89b3430bdcc1efc33db2eb556447569204dbb736dca8045c3841e1a55ee5bfbb' + 'b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f' - '9f508d5f7ce4b69d9f40f6fb0ff0fb3d5b26a3c48658da994bf63975d1b589ab' + 'd0806b6cb99af04232585def7b8043df3104b9b17470ea70abbd5bedc1e7ca16' '434cd4aa440d36b75ee20e0b588aaad874bb0d796173990bc4046667c66f5099' - '57c7568a89e8af1914cf7aea84d8fefd6e7af4155557081292344326d652ae70' + '25c5aa39489d14a60f9cb30bdd7b21d36399c3355daee8bf5fbebcb62fe9f45f' '3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88' 'f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d' @@ -112,8 +113,8 @@ sha256sums=( '05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487' '6ce902b1dab8fc69be253abd8e79017011985eca850ff7acc7282f9ab668e35d' - '773442cea744a6bd6420c4a0108749d33dae5ac7e7813c99a6fbfdf47963e9da' - '5d69ef50ed407c4948db424549ffb38321c7d1203ba6cd153f6fb3351364aa34' + 'e7fd1d69ce4e0bce1759243204f9cd514c60a63556cee44f401c0a3cc245221a' + '397cda34be6c023a9486565f9c648e1f39a93da32941ca82052ada80d2e8a603' ) options=(!strip emptydirs) @@ -122,7 +123,7 @@ _isoimages=(freebsd linux linuxPreGlibc25 netware solaris windows winPre2k winPr if [ -n "$_enable_macOS_guests" ]; then -_vmware_fusion_ver=10.1.0_7370838 +_vmware_fusion_ver=8.5.9_7098239 # List of VMware Fusion versions: https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/ makedepends+=( @@ -137,8 +138,8 @@ source+=( 'unlocker.py' ) sha256sums+=( - '70ee05c2e6098644a619fd0e1f742facd5f234e62d7095ef99186e8af8d6b882' - 'a18688c5ccbebe3822f71a357e879bec6dd9a5698833d13fd0f27ee72adab1fc' + '48d533fcdb4d8adac11379a649a892cf9bb357bd467846bfd1aff54bedcc4d74' + '1c0775534cba0927a3d90d2e57b3371f30c36d61b6822be5a6d8f0703ef8d354' 'b739b0c99fb20dc44838ce137e254773b7be051f327eb67fd8cb1342a3ecf344' ) @@ -197,7 +198,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,lib/libvmware-vim-cmd.so},vmware-vix,vmware-ovftool,vmware-installer/"$vmware_installer_version",cups/filter,modules-load.d} \ + "$pkgdir/usr/lib"/{vmware/setup,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" @@ -223,7 +224,7 @@ package() { cp -r \ vmware-workstation/lib/* \ vmware-player-app/lib/* \ - vmware-vmx/{lib/*,roms} \ + vmware-vmx/lib/* \ vmware-vprobe/lib/* \ vmware-workstation-server/{bin,lib,hostd} \ vmware-usbarbitrator/bin \ @@ -241,7 +242,7 @@ package() { "$pkgdir/etc/vmware" cp -r \ - vmware-vix-lib-Workstation1400/lib/Workstation-14.0.0 \ + vmware-vix-lib-Workstation1200/lib/Workstation-12.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" @@ -261,9 +262,7 @@ 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" @@ -278,6 +277,7 @@ 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,16 +320,15 @@ package() { "$pkgdir/usr/bin"/* \ "$pkgdir/usr/lib/vmware/bin"/* \ "$pkgdir/usr/lib/vmware/setup"/* \ - "$pkgdir/usr/lib/vmware/lib"/libvmware-gksu.so/gksu-run-helper \ + "$pkgdir/usr/lib/vmware/lib"/{wrapper-gtk24.sh,libgksu2.so.0/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/etc/thnuclnt/.thnumod" + "$pkgdir/usr/lib/vmware-vix/setup"/* chmod -R 600 "$pkgdir/etc/vmware/ssl" chmod +s \ - "$pkgdir/usr/bin"/vmware-authd \ + "$pkgdir/usr/bin"/{vmware-authd,vmware-mount} \ "$pkgdir/usr/lib/vmware/bin"/{vmware-vmx,vmware-vmx-debug,vmware-vmx-stats} @@ -337,46 +336,37 @@ 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-vim-cmd \ + vmware-unity-helper \ vmware-vmblock-fuse \ - vmware-vprobe \ - vmware-wssc-adminTool \ - vmware-zenity \ - #vmware-unity-helper + vmware-zenity 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-vix/libvixAllProducts.so "$pkgdir/usr/lib/libvixAllProducts.so" + ln -s /usr/lib/vmware/bin/appLoader "$pkgdir/etc/thnuclnt/.thnumod" # Replace placeholder "variables" with real paths. for file in \ - gtk-3.0/gdk-pixbuf.loaders + pango/pangorc \ + pango/pango.modules \ + pango/pangox.aliases \ + gtk-2.0/gdk-pixbuf.loaders \ + gtk-2.0/gtk.immodules do sed -i 's,@@LIBCONF_DIR@@,/usr/lib/vmware/libconf,g' "$pkgdir/usr/lib/vmware/libconf/etc/$file" done @@ -434,6 +424,10 @@ 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 = "4641104763" +installerDefaults.autoSoftwareUpdateEnabled.epoch = "5971871847" vix.config.version = "1" -player.product.version = "14.0.0" -installerDefaults.dataCollectionEnabled.epoch = "7910652514" +player.product.version = "12.5.6" +installerDefaults.dataCollectionEnabled.epoch = "2097005183" installerDefaults.dataCollectionEnabled = "no" installerDefaults.transferVersion = "1" installerDefaults.autoSoftwareUpdateEnabled = "no" -product.buildNumber = "6661328" +product.buildNumber = "5528349" authd.client.port = "902" authd.proxy.nfc = "vmware-hostd:ha-nfc" -product.version = "14.0.0" -workstation.product.version = "14.0.0" +product.version = "12.5.6" +workstation.product.version = "12.5.6" product.name = "VMware Workstation" diff --git a/config.xml b/config.xml index 68f851ad72dd..b08e4b150293 100644 --- a/config.xml +++ b/config.xml @@ -45,6 +45,15 @@ <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> --> @@ -257,8 +266,7 @@ <ssl> <doVersionCheck> false </doVersionCheck> <libraryPath>/usr/lib/vmware</libraryPath> - <!-- allowed SSL/TLS protocol versions --> - <!-- <protocols>tls1.0,tls1.1,tls1.2</protocols> --> + <useCompression> true </useCompression> <!-- timeouts for the SSL handshake. the default is 20 sec. --> <!-- <handshakeTimeoutMs>60000</handshakeTimeoutMs> --> @@ -593,6 +601,22 @@ <!-- 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. --> @@ -605,6 +629,12 @@ <!-- <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> --> @@ -791,8 +821,6 @@ <cimsvc> <path>libcimsvc.so</path> <enabled>false</enabled> - <maxSelEntries>40</maxSelEntries> - <pollTime>90</pollTime> </cimsvc> <directorysvc> @@ -859,11 +887,6 @@ <enabled>false</enabled> </cbrcsvc> - <hostspecsvc> - <path>libhostspecsvc.so</path> - <enabled>false</enabled> - </hostspecsvc> - </plugins> @@ -877,4 +900,4 @@ </locale> --> -</config>
\ No newline at end of file +</config> diff --git a/environments.xml b/environments.xml index 57a099d3a52d..93a12dac54b8 100644 --- a/environments.xml +++ b/environments.xml @@ -35,12 +35,4 @@ <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 74af6f8e7893..c8e61a5ed44c 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) - obj-m += $(DRIVER).o - + 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, ) diff --git a/vmmon/include/compat_module.h b/vmmon/include/compat_module.h index 2af7372..729aedc 100644 --- a/vmmon/include/compat_module.h @@ -36,73 +36,27 @@ index 2af7372..729aedc 100644 #endif +/* -+ * Linux kernel >= 4.2.99 does not return anything from misc_deregister ++ * Linux kernel >= 4.3.0 does not return anything from misc_deregister + */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 99) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) +#define compat_misc_deregister(misc) misc_deregister(misc) +#else +#define compat_misc_deregister(misc) ({misc_deregister(misc);0;}) +#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 -@@ -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 +@@ -126,7 +126,16 @@ static struct vm_operations_struct vmuser_mops = { + #endif }; -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, @@ -113,27 +67,8 @@ index 87cf45b..5390a93 100644 static struct timer_list tscTimer; static Atomic_uint32 tsckHz; static VmTimeStart tsckHzStartTime; -@@ -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; +@@ -319,21 +328,6 @@ init_module(void) + linuxState.fastClockPriority = -20; linuxState.swapSize = VMMON_UNKNOWN_SWAP_SIZE; - /* @@ -144,6 +79,7 @@ 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; @@ -153,16 +89,7 @@ index 87cf45b..5390a93 100644 #ifdef VMX86_DEVEL devel_init_module(); linuxState.minor = 0; -@@ -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) +@@ -389,7 +383,9 @@ cleanup_module(void) #ifdef VMX86_DEVEL unregister_chrdev(linuxState.major, linuxState.deviceName); #else @@ -173,7 +100,7 @@ index 87cf45b..5390a93 100644 #endif Log("Module %s: unloaded\n", linuxState.deviceName); -@@ -977,7 +988,7 @@ LinuxDriverReadTSC(void *data, // OUT: TSC values +@@ -1287,7 +1283,7 @@ LinuxDriverReadTSC(void *data, // OUT: TSC values *----------------------------------------------------------------------------- */ @@ -186,59 +113,126 @@ 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 -@@ -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 @@ +@@ -37,6 +37,9 @@ #include <linux/vmalloc.h> #include <linux/slab.h> -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 99) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +#include <linux/sched/signal.h> +#endif #include <linux/preempt.h> #include <linux/poll.h> -@@ -51,6 +54,7 @@ +@@ -73,6 +76,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 -@@ -115,6 +149,10 @@ +@@ -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 @@ */ #define LOCKED_PAGE_SLACK 10000 -+#if LINUX_VERSION_CODE > KERNEL_VERSION(4, 7, 99) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) +#define NR_ANON_PAGES NR_ANON_MAPPED +#endif + static struct { Atomic_uint64 uptimeBase; VersionedAtomic version; -@@ -1705,7 +1714,7 @@ HostIFReadUptimeWork(unsigned long *j) // OUT: current jiffies +@@ -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. */ - 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); - } - +-#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) diff --git a/vmnet.patch b/vmnet.patch index 32ac223bd9b3..54c5f841b62e 100644 --- a/vmnet.patch +++ b/vmnet.patch @@ -24,9 +24,21 @@ index 2d8e6f6..a14166b 100644 -EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) +EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE) - EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netif_trans_update.c,-DVMW_NETIF_TRANS_UPDATE, ) + 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; - obj-m += $(DRIVER).o +- atomic_inc(&clone->users); ++ clone = skb_get(clone); + + clone->dev = dev; + clone->protocol = eth_type_trans(clone, dev); diff --git a/vmnet/driver.c b/vmnet/driver.c index 7e7ad99..5f508f6 100644 --- a/vmnet/driver.c @@ -72,21 +84,34 @@ 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", -@@ -1145,12 +1138,12 @@ VNetMulticastFilter(const uint8 *destAddr, // IN: multicast MAC - } - /* - * Do not need to further compute and check ladrf if no match -- * in exact multicast filter, since only one of them is -+ * in exact multicast filter, since only one of them is - * used at a time. - */ - return FALSE; - } -- -+ +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); - crc = 0xffffffff; /* init CRC for each address */ - for (byte = 0; byte < ETH_ALEN; byte++) { /* for each address byte */ + 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 @@ -105,12 +130,12 @@ diff --git a/vmnet/vmnetInt.h b/vmnet/vmnetInt.h index 0ee52ec..4e3b923 100644 --- a/vmnet/vmnetInt.h +++ b/vmnet/vmnetInt.h -@@ -48,7 +48,7 @@ +@@ -79,7 +79,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) - #else + #elif defined(VMW_NETDEV_HAS_NET) # 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 a6f550a61a10..b4bee50db4df 100644 --- a/vmware-environment.sh +++ b/vmware-environment.sh @@ -1,9 +1,2 @@ # 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 |