summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Marc Lenoir2020-09-18 22:44:35 +0200
committerJean-Marc Lenoir2020-09-18 22:44:35 +0200
commite8ae6b7bb3fb15afba4cbedd04533624d7caf2c4 (patch)
tree1871c4119631fc3280984ec3cf3322007b438a11
downloadaur-e8ae6b7bb3fb15afba4cbedd04533624d7caf2c4.tar.gz
Initial commit.
-rw-r--r--.SRCINFO87
-rw-r--r--Makefile21
-rw-r--r--PKGBUILD481
-rw-r--r--config26
-rw-r--r--config.xml845
-rwxr-xr-xconfigure-initscript.sh97
-rw-r--r--datastores.xml16
-rw-r--r--dkms.conf.in15
-rw-r--r--efi-unlocker-patch-1.0.0.txt25
-rw-r--r--environments.xml62
-rw-r--r--pam.d-vmware-authd5
-rw-r--r--proxy.xml50
-rw-r--r--vmAutoStart.xml9
-rw-r--r--vmmon.patch99
-rw-r--r--vmnet.patch22
-rw-r--r--vmware-authd.service9
-rw-r--r--vmware-bootstrap11
-rw-r--r--vmware-environment.sh2
-rw-r--r--vmware-hostd-certificates.service11
-rw-r--r--vmware-hostd.service11
-rw-r--r--vmware-networks-configuration.service9
-rw-r--r--vmware-networks.service13
-rw-r--r--vmware-usbarbitrator.service8
-rw-r--r--vmware-vix-bootstrap2
-rw-r--r--vmware-workstation.install19
25 files changed, 1955 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..fc24986c18c1
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,87 @@
+pkgbase = vmware-workstation15
+ pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC.
+ pkgver = 15.5.6
+ pkgrel = 1
+ url = https://www.vmware.com/products/workstation-for-linux.html
+ install = vmware-workstation.install
+ arch = x86_64
+ license = custom
+ makedepends = sqlite
+ depends = dkms
+ depends = fuse2
+ depends = gtkmm3
+ depends = libcanberra
+ depends = libaio
+ depends = pcsclite
+ depends = hicolor-icon-theme
+ depends = gtk3
+ depends = gcr
+ depends = vmware-keymaps
+ optdepends = linux-headers: build modules against Arch kernel
+ provides = vmware-workstation=15.5.6
+ provides = vmware-ovftool
+ conflicts = vmware-workstation
+ conflicts = vmware-modules-dkms
+ conflicts = vmware-ovftool
+ conflicts = vmware-patch
+ conflicts = vmware-systemd-services
+ options = !strip
+ options = emptydirs
+ backup = etc/vmware/config
+ backup = etc/vmware/hostd/authorization.xml
+ backup = etc/vmware/hostd/config.xml
+ backup = etc/vmware/hostd/datastores.xml
+ backup = etc/vmware/hostd/dispatcher.xml
+ backup = etc/vmware/hostd/proxy.xml
+ backup = etc/vmware/hostd/tagExtractor.xml
+ backup = etc/vmware/netmap.conf
+ 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-15.5.6-16341506.x86_64.bundle
+ source = vmware-bootstrap
+ source = vmware-vix-bootstrap
+ source = config
+ source = pam.d-vmware-authd
+ source = configure-initscript.sh
+ source = vmware-environment.sh
+ source = config.xml
+ source = datastores.xml
+ source = environments.xml
+ source = proxy.xml
+ source = vmAutoStart.xml
+ source = vmware-hostd-certificates.service
+ source = vmware-hostd.service
+ source = vmware-authd.service
+ source = vmware-networks-configuration.service
+ source = vmware-networks.service
+ source = vmware-usbarbitrator.service
+ source = dkms.conf.in
+ source = Makefile
+ source = vmmon.patch
+ source = vmnet.patch
+ sha256sums = a62d89bfb29aefd0e3d4d60f31b3734aa7ba3adc48cbc612cfc032593d3c7593
+ sha256sums = 12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e
+ sha256sums = da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141
+ sha256sums = 7c7d8789fa524b74155fc8b43d41eeff1d8a17ec89d51065d246e83b5f58e8fc
+ sha256sums = d50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7
+ sha256sums = 8e4d08668a66be79a900521792b39c16a026cc90659241edee80b64e701bfbcd
+ sha256sums = b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f
+ sha256sums = a28b0c14407a2f2bb33aba0e28a535431a0ccf5f5734f5112607c2bdd18d08ec
+ sha256sums = 434cd4aa440d36b75ee20e0b588aaad874bb0d796173990bc4046667c66f5099
+ sha256sums = 92337a4c0a2439863293a8f5e39c37c821d69abb70013805b672e135a73acda1
+ sha256sums = 3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88
+ sha256sums = ad522a8cbc6103134ce5e677a01b503cd21875cbceb37bd13fd870ebd9ad0e6d
+ sha256sums = f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d
+ sha256sums = 42594b60085d0bbef01ab07b9f8b0d18640001107ce61cc0ddf02d0ab415140f
+ sha256sums = e4c2e97acf07c52de570dd4333d67acfb593db719937a563c6075ab773dcce33
+ sha256sums = 9b4fbe0ba83f761a2eb9ecd05d48428f8b0a5b3abd8404ccbd928408e682f02b
+ sha256sums = c0a5aea785db06921fb350d36d5e0fd9a14f5eee0c835686ec6fea1af8c92245
+ sha256sums = d7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d
+ sha256sums = 10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e
+ sha256sums = 273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac
+ sha256sums = 3a3470f565c9697ea83ebe6170c43240727535aafcb7c828e1c034c3cdbe3882
+ sha256sums = b0673f47bd1da097b92c3f73e4ad1e01f12b7506103abac532c0b4e0ca0a0fd7
+
+pkgname = vmware-workstation15
+
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000000..f025addbd4b1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,21 @@
+#!/usr/bin/make -f
+
+MODULES = \
+ vmmon \
+ vmnet
+
+all: $(foreach m, $(MODULES), $m.ko)
+
+%.ko: %
+ $(MAKE) KVERSION=$(KVERSION) VM_KBUILD=yes -C $*-only
+
+$(MODULES): %:
+ cp -r $(SRCDIR)/$*-only $*-only
+
+vsock.ko: vmci.ko
+
+clean:
+ rm -rf $(MODULES)
+ rm -rf $(foreach m, $(MODULES), $m-only)
+ rm -f $(foreach m, $(MODULES), $m.ko)
+ rm -f $(foreach m, $(MODULES), $m.o)
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..5657603b6137
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,481 @@
+# Maintainer: Jean-Marc Lenoir <archlinux "at" jihemel "dot" com>
+
+# To enable macOS guests support, uncomment the line below:
+#_enable_macOS_guests=y
+# CAUTION: Running macOS on VMware Workstation on non Apple computer is forbidden by
+# Apple and VMware EULAs.
+
+# vmware-keymaps dependency is needed to avoid some conflicts when you install
+# this package with vmware-horizon-client. If you don't plan to install
+# vmware-horizon-client and don't want to add this dependency, you can
+# uncomment the line below:
+#_remove_vmware_keymaps_dependency=y
+
+#PKGEXT=.pkg.tar
+pkgname=vmware-workstation15
+pkgver=15.5.6
+_buildver=16341506
+_pkgver=${pkgver}_${_buildver}
+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'
+license=(custom)
+install="vmware-workstation.install"
+conflicts=(
+ vmware-workstation
+ vmware-modules-dkms
+ vmware-ovftool
+ vmware-patch
+ vmware-systemd-services
+)
+provides=(
+ vmware-workstation=$pkgver
+ vmware-ovftool
+)
+depends=(
+ dkms
+ fuse2
+ gtkmm3
+ libcanberra
+ libaio
+ pcsclite
+ hicolor-icon-theme
+ # needed to use Arch GTK3 library (for theme integration)
+ gtk3
+ gcr
+)
+optdepends=(
+ 'linux-headers: build modules against Arch kernel'
+)
+makedepends=(
+ sqlite
+)
+backup=(
+ 'etc/vmware/config'
+ 'etc/vmware/hostd/authorization.xml'
+ 'etc/vmware/hostd/config.xml'
+ 'etc/vmware/hostd/datastores.xml'
+ 'etc/vmware/hostd/dispatcher.xml'
+ 'etc/vmware/hostd/proxy.xml'
+ 'etc/vmware/hostd/tagExtractor.xml'
+ 'etc/vmware/netmap.conf'
+ 'etc/vmware/ssl/hostd.ssl.config'
+ 'etc/pam.d/vmware-authd'
+ 'etc/conf.d/vmware'
+)
+source=(
+ "https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-${_pkgver/_/-}.${CARCH}.bundle"
+
+ 'vmware-bootstrap'
+ 'vmware-vix-bootstrap'
+ 'config'
+ 'pam.d-vmware-authd'
+ 'configure-initscript.sh'
+ 'vmware-environment.sh'
+
+ 'config.xml'
+ 'datastores.xml'
+ 'environments.xml'
+ 'proxy.xml'
+ 'vmAutoStart.xml'
+
+ 'vmware-hostd-certificates.service'
+ 'vmware-hostd.service'
+ 'vmware-authd.service'
+ 'vmware-networks-configuration.service'
+ 'vmware-networks.service'
+ 'vmware-usbarbitrator.service'
+
+ 'dkms.conf.in'
+ 'Makefile'
+ 'vmmon.patch'
+ 'vmnet.patch'
+)
+sha256sums=(
+ 'a62d89bfb29aefd0e3d4d60f31b3734aa7ba3adc48cbc612cfc032593d3c7593'
+
+ '12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e'
+ 'da1698bf4e73ae466c1c7fc93891eba4b9c4581856649635e6532275dbfea141'
+ '7c7d8789fa524b74155fc8b43d41eeff1d8a17ec89d51065d246e83b5f58e8fc'
+ 'd50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7'
+ '8e4d08668a66be79a900521792b39c16a026cc90659241edee80b64e701bfbcd'
+ 'b94959a11b28e51b541321be0588190eb10825e9ff55cbd16eb01483a839a69f'
+
+ 'a28b0c14407a2f2bb33aba0e28a535431a0ccf5f5734f5112607c2bdd18d08ec'
+ '434cd4aa440d36b75ee20e0b588aaad874bb0d796173990bc4046667c66f5099'
+ '92337a4c0a2439863293a8f5e39c37c821d69abb70013805b672e135a73acda1'
+ '3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88'
+ 'ad522a8cbc6103134ce5e677a01b503cd21875cbceb37bd13fd870ebd9ad0e6d'
+
+ 'f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d'
+ '42594b60085d0bbef01ab07b9f8b0d18640001107ce61cc0ddf02d0ab415140f'
+ 'e4c2e97acf07c52de570dd4333d67acfb593db719937a563c6075ab773dcce33'
+ '9b4fbe0ba83f761a2eb9ecd05d48428f8b0a5b3abd8404ccbd928408e682f02b'
+ 'c0a5aea785db06921fb350d36d5e0fd9a14f5eee0c835686ec6fea1af8c92245'
+ 'd7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d'
+
+ '10562d11d50edab9abc2b29c8948714edcb9b084f99b3766d07ddd21259e372e'
+ '273d4357599a3e54259c78cc49054fef8ecfd2c2eda35cbcde3a53a62777a5ac'
+ '3a3470f565c9697ea83ebe6170c43240727535aafcb7c828e1c034c3cdbe3882'
+ 'b0673f47bd1da097b92c3f73e4ad1e01f12b7506103abac532c0b4e0ca0a0fd7'
+)
+options=(!strip emptydirs)
+
+if [ -z "$_remove_vmware_keymaps_dependency" ]; then
+depends+=(
+ vmware-keymaps
+)
+fi
+
+
+_isoimages=(linux linuxPreGlibc25 netware solaris windows winPre2k winPreVista)
+_isovirtualprinterimages=(Linux Windows)
+
+if [ -n "$_enable_macOS_guests" ]; then
+
+_vmware_fusion_ver=11.5.6_16696540
+# List of VMware Fusion versions: https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/
+
+_unlocker_ver=3.0.3
+_efi_unlocker_ver=1.0.0
+
+makedepends+=(
+ python
+ unzip
+ uefitool-git
+)
+
+source+=(
+ "VMware-Fusion-${_vmware_fusion_ver/_/-}.zip.tar::https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/${_vmware_fusion_ver/_//}/core/com.vmware.fusion.zip.tar"
+ "unlocker-${_unlocker_ver}.py::https://raw.githubusercontent.com/paolo-projects/unlocker/${_unlocker_ver}/unlocker.py"
+ "efi-unlocker-patch-${_efi_unlocker_ver}.txt"
+)
+sha256sums+=(
+ '8205f598be56ebbe5ddf23e2484ff067fd4a0a8543cd5408c390ea6bb1ae0364'
+ '1c27547dcf6fb2f436c96ee62ae8c7f5cfd14b40d8bbd35dc385e247c4fb7e0f'
+ '392c1effcdec516000e9f8ffc97f2586524d8953d3e7d6f2c5f93f2acd809d91'
+)
+
+_fusion_isoimages=(darwin darwinPre15)
+fi
+
+
+_create_database_file() {
+ # Create a database which contains the list of guest tools (necessary to avoid that vmware try to download them)
+ local database_filename="$pkgdir/etc/vmware-installer/database"
+ echo -n "" > "$database_filename"
+
+ sqlite3 "$database_filename" "CREATE TABLE settings(key VARCHAR PRIMARY KEY, value VARCHAR NOT NULL, component_name VARCHAR NOT NULL);"
+ sqlite3 "$database_filename" "INSERT INTO settings(key,value,component_name) VALUES('db.schemaVersion','2','vmware-installer');"
+ sqlite3 "$database_filename" "CREATE TABLE components(id INTEGER PRIMARY KEY, name VARCHAR NOT NULL, version VARCHAR NOT NULL, buildNumber INTEGER NOT NULL, component_core_id INTEGER NOT NULL, longName VARCHAR NOT NULL, description VARCHAR, type INTEGER NOT NULL);"
+
+ for isoimage in ${_isoimages[@]}
+ do
+ local version=$(cat "$srcdir/extracted/vmware-tools-$isoimage/manifest.xml" | grep -oPm1 "(?<=<version>)[^<]+")
+ sqlite3 "$database_filename" "INSERT INTO components(name,version,buildNumber,component_core_id,longName,description,type) VALUES(\"vmware-tools-$isoimage\",\"$version\",\"${_pkgver#*_}\",1,\"$isoimage\",\"$isoimage\",1);"
+ done
+
+if [ -n "$_enable_macOS_guests" ]; then
+ for isoimage in ${_fusion_isoimages[@]}
+ do
+ sqlite3 "$database_filename" "INSERT INTO components(name,version,buildNumber,component_core_id,longName,description,type) VALUES(\"vmware-tools-$isoimage\",\"1\",\"${_vmware_fusion_ver#*_}\",1,\"$isoimage\",\"$isoimage\",1);"
+ done
+fi
+}
+
+prepare() {
+ extracted_dir="$srcdir/extracted"
+ [[ -d "$extracted_dir" ]] && rm -r "$extracted_dir"
+
+ bash \
+ "$(readlink -f "$srcdir/VMware-Workstation-Full-${_pkgver/_/-}.${CARCH}.bundle")" \
+ --extract "$extracted_dir"
+
+if [ -n "$_enable_macOS_guests" ]; then
+ unzip -q com.vmware.fusion.zip
+ for isoimage in ${_fusion_isoimages[@]}
+ do
+ install -Dm 644 "$srcdir/payload/VMware Fusion.app/Contents/Library/isoimages/$isoimage.iso" "$srcdir/fusion-isoimages/$isoimage.iso"
+ done
+ rm -rf __MACOSX payload manifest.plist preflight postflight
+
+ sed -i -e "s|/usr/lib/vmware/|${pkgdir}/usr/lib/vmware/|" "$srcdir/unlocker-${_unlocker_ver}.py"
+fi
+}
+
+package() {
+ local vmware_installer_version=$(cat "$srcdir/extracted/vmware-installer/manifest.xml" | grep -oPm1 "(?<=<version>)[^<]+")
+
+ # Make directories and copy files.
+
+ mkdir -p \
+ "$pkgdir/etc"/{cups,pam.d,modprobe.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/share"/{doc/vmware-vix,licenses/"$pkgname"} \
+ "$pkgdir/var/lib/vmware/Shared VMs"
+
+ cd "$srcdir/extracted"
+
+ cp -r \
+ vmware-workstation/share/* \
+ vmware-workstation/man \
+ vmware-network-editor-ui/share/* \
+ vmware-player-app/share/* \
+ "$pkgdir/usr/share"
+
+ cp -r \
+ vmware-workstation/bin/* \
+ vmware-vmx/{,s}bin/* \
+ vmware-vix-core/bin/* \
+ vmware-vprobe/bin/* \
+ vmware-workstation-server/{vmware-hostd,vmware-vim-cmd,vmware-wssc-adminTool} \
+ vmware-player-app/bin/* \
+ "$pkgdir/usr/bin"
+
+ cp -r \
+ vmware-workstation/lib/* \
+ vmware-player-app/lib/* \
+ vmware-vmx/{lib/*,roms} \
+ vmware-vprobe/lib/* \
+ vmware-workstation-server/{bin,lib,hostd} \
+ vmware-usbarbitrator/bin \
+ vmware-network-editor/lib \
+ "$pkgdir/usr/lib/vmware"
+
+ cp -r \
+ vmware-player-setup/vmware-config \
+ "$pkgdir/usr/lib/vmware/setup"
+
+ cp -rL \
+ vmware-workstation-server/config/etc/vmware/* \
+ vmware-workstation-server/etc/vmware/* \
+ "$pkgdir/etc/vmware"
+
+ cp -r \
+ vmware-vix-lib-Workstation1500/lib/Workstation-15.0.0 \
+ vmware-vix-core/{lib/*,vixwrapper-config.txt} \
+ "$pkgdir/usr/lib/vmware-vix"
+
+ cp -r \
+ vmware-vix-core/doc/* \
+ "$pkgdir/usr/share/doc/vmware-vix"
+
+ cp -r \
+ vmware-ovftool/* \
+ "$pkgdir/usr/lib/vmware-ovftool"
+
+ cp -r \
+ vmware-installer/{python,sopython,vmis,vmis-launcher,vmware-installer,vmware-installer.py} \
+ "$pkgdir/usr/lib/vmware-installer/$vmware_installer_version"
+
+ 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"
+
+ cp -r \
+ vmware-vix-core/include/* \
+ "$pkgdir/usr/include/vmware-vix"
+
+ for isoimage in ${_isoimages[@]}
+ do
+ install -Dm 644 "vmware-tools-$isoimage/$isoimage.iso" "$pkgdir/usr/lib/vmware/isoimages/$isoimage.iso"
+ done
+
+ for isoimage in ${_isovirtualprinterimages[@]}
+ do
+ install -Dm 644 "vmware-virtual-printer/VirtualPrinter-$isoimage.iso" "$pkgdir/usr/lib/vmware/isoimages/VirtualPrinter-$isoimage.iso"
+ done
+
+ install -Dm 644 "vmware-workstation/doc/EULA" "$pkgdir/usr/share/doc/vmware-workstation/EULA"
+ ln -s "/usr/share/doc/vmware-workstation/EULA" "$pkgdir/usr/share/licenses/$pkgname/VMware Workstation - EULA.txt"
+ ln -s "/usr/lib/vmware-ovftool/vmware.eula" "$pkgdir/usr/share/licenses/$pkgname/VMware OVF Tool - EULA.txt"
+ install -Dm 644 "vmware-workstation/doc"/open_source_licenses.txt "$pkgdir/usr/share/licenses/$pkgname/VMware Workstation open source license.txt"
+ install -Dm 644 "vmware-workstation/doc"/ovftool_open_source_licenses.txt "$pkgdir/usr/share/licenses/$pkgname/VMware OVF Tool open source license.txt"
+ install -Dm 644 "vmware-vix-core"/open_source_licenses.txt "$pkgdir/usr/share/licenses/$pkgname/VMware VIX open source license.txt"
+ rm "$pkgdir/usr/lib/vmware-ovftool"/{vmware-eula.rtf,open_source_licenses.txt,manifest.xml}
+
+ install -d -m 755 "$pkgdir/usr/lib/vmware-installer/$vmware_installer_version"/{lib/lib,artwork}
+ install -Dm 755 "$srcdir/configure-initscript.sh" "$pkgdir/usr/lib/vmware-installer/$vmware_installer_version/bin/configure-initscript.sh"
+
+ install -Dm 644 "vmware-vmx/etc/modprobe.d/modprobe-vmware-fuse.conf" "$pkgdir/etc/modprobe.d/vmware-fuse.conf"
+
+ install -Dm 644 vmware-vmx/extra/modules.xml "$pkgdir"/usr/lib/vmware/modules/modules.xml
+ install -Dm 644 vmware-installer/bootstrap "$pkgdir"/etc/vmware-installer/bootstrap
+ install -Dm 644 "$srcdir"/vmware-vix-bootstrap "$pkgdir"/etc/vmware-vix/bootstrap
+ install -Dm 644 "$srcdir"/vmware-bootstrap "$pkgdir"/etc/vmware/bootstrap
+ install -Dm 644 "$srcdir"/config "$pkgdir"/etc/vmware/config
+
+if [ -z "$_remove_vmware_keymaps_dependency" ]; then
+ rm -r "$pkgdir/usr/lib/vmware/xkeymap" # these files are provided by vmware-keymaps package
+fi
+
+ for hostd_file in config datastores environments proxy vmAutoStart; do
+ install -Dm 644 "$srcdir/$hostd_file.xml" "$pkgdir/etc/vmware/hostd/$hostd_file.xml"
+ done
+
+ install -Dm 644 "$srcdir/pam.d-vmware-authd" "$pkgdir/etc/pam.d/vmware-authd"
+
+ echo -e "vmw_vmci\nvmmon" > "$pkgdir/usr/lib/modules-load.d/vmware.conf"
+
+ for service_file in \
+ vmware-hostd-certificates.service \
+ vmware-hostd.service \
+ vmware-authd.service \
+ vmware-networks-configuration.service \
+ vmware-networks.service \
+ vmware-usbarbitrator.service
+ do
+ install -Dm 644 \
+ "$srcdir/$service_file" \
+ "$pkgdir/usr/lib/systemd/system/$service_file"
+ done
+
+
+ # Apply permissions where necessary.
+
+ chmod +x \
+ "$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-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"
+
+ chmod -R 600 "$pkgdir/etc/vmware/ssl"
+ chmod +s \
+ "$pkgdir/usr/bin"/vmware-authd \
+ "$pkgdir/usr/lib/vmware/bin"/{vmware-vmx,vmware-vmx-debug,vmware-vmx-stats}
+
+
+ # Add symlinks the installer would create.
+
+ for link in \
+ licenseTool \
+ vmplayer \
+ vmware \
+ vmware-app-control \
+ vmware-enter-serial \
+ vmware-fuseUI \
+ vmware-gksu \
+ vmware-hostd \
+ vmware-modconfig \
+ vmware-modconfig-console \
+ vmware-mount \
+ vmware-netcfg \
+ vmware-setup-helper \
+ vmware-tray \
+ vmware-vim-cmd \
+ vmware-vmblock-fuse \
+ vmware-vprobe \
+ vmware-wssc-adminTool \
+ vmware-zenity
+ do
+ ln -s /usr/lib/vmware/bin/appLoader "$pkgdir/usr/lib/vmware/bin/$link"
+ done
+
+ for link in \
+ vmrest
+ do
+ ln -s /usr/lib/vmware/bin/appLoader "$pkgdir/usr/bin/$link"
+ done
+
+ for link in \
+ vmware-fuseUI \
+ vmware-mount \
+ vmware-netcfg \
+ 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"
+
+
+ # Replace placeholder "variables" with real paths.
+
+ for file in \
+ 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
+
+ sed -i 's,@@BINARY@@,/usr/bin/vmware,' "$pkgdir/usr/share/applications/vmware-workstation.desktop"
+ sed -i 's,@@BINARY@@,/usr/bin/vmplayer,' "$pkgdir/usr/share/applications/vmware-player.desktop"
+ sed -i 's,@@BINARY@@,/usr/bin/vmware-netcfg,' "$pkgdir/usr/share/applications/vmware-netcfg.desktop"
+
+ sed -i 's,@@AUTHD_PORT@@,902,' "$pkgdir/usr/lib/vmware/hostd/docroot/client/clients.xml"
+
+ sed \
+ -e "s/@@VERSION@@/$vmware_installer_version/" \
+ -e "s,@@VMWARE_INSTALLER@@,/usr/lib/vmware-installer/$vmware_installer_version," \
+ -i "$pkgdir/etc/vmware-installer/bootstrap"
+
+
+ # Patch up the VMware kernel sources and configure DKMS.
+
+ dkms_dir="$pkgdir/usr/src/$pkgname-$_pkgver"
+
+ install -Dm 644 "$srcdir/Makefile" "$dkms_dir/Makefile"
+ install -Dm 644 "$srcdir/dkms.conf.in" "$dkms_dir/dkms.conf"
+
+ sed \
+ -e "s/@PKGNAME@/$pkgname/g" \
+ -e "s/@PKGVER@/$_pkgver/g" \
+ -i "$dkms_dir/dkms.conf"
+
+ for module in vmmon vmnet; do # vmblock vmci vsock
+ tar -xf "vmware-vmx/lib/modules/source/$module.tar" -C "$dkms_dir"
+ msg "Patching $module module for DKMS"
+ patch -p2 --read-only=ignore --directory="$dkms_dir/$module-only" < "$srcdir/$module.patch"
+ done
+
+ rm -r "$pkgdir/usr/lib/vmware/modules/source"
+
+if [ -n "$_enable_macOS_guests" ]; then
+ msg "Patching VMware to enable macOS guest support"
+ python "$srcdir/unlocker-${_unlocker_ver}.py" > /dev/null
+
+ for isoimage in ${_fusion_isoimages[@]}
+ do
+ install -Dm 644 "$srcdir/fusion-isoimages/$isoimage.iso" "$pkgdir/usr/lib/vmware/isoimages/$isoimage.iso"
+ done
+
+ msg "Patching EFI firmwares to disable macOS server checking"
+ _efi_arch=(32 64)
+ for arch in ${_efi_arch[@]}
+ do
+ uefipatch "$pkgdir/usr/lib/vmware/roms/EFI${arch}.ROM" "$srcdir/efi-unlocker-patch-${_efi_unlocker_ver}.txt" -o "$pkgdir/usr/lib/vmware/roms/EFI${arch}.ROM" > /dev/null
+ done
+fi
+
+ _create_database_file
+
+ # Define some environment variables for VMware and remove the tests about kernel modules
+ install -Dm 644 "$srcdir/vmware-environment.sh" "$pkgdir/etc/conf.d/vmware"
+ for program in vmware vmplayer vmware-tray; do
+ sed -e '/export PRODUCT_NAME/asource /etc/conf.d/vmware' \
+ -e 's/if "$BINDIR"\/vmware-modconfig --appname=.*/if true ||/' \
+ -i "$pkgdir/usr/bin/$program"
+ done
+
+ # Add StartupWMClass attribute to desktop files
+ sed -i '/^StartupNotify=.*/a StartupWMClass=vmware' "$pkgdir/usr/share/applications/vmware-workstation.desktop"
+ sed -i '/^StartupNotify=.*/a StartupWMClass=vmplayer' "$pkgdir/usr/share/applications/vmware-player.desktop"
+ sed -i '/^StartupNotify=.*/a StartupWMClass=vmware-netcfg' "$pkgdir/usr/share/applications/vmware-netcfg.desktop"
+}
diff --git a/config b/config
new file mode 100644
index 000000000000..12cfc20b4947
--- /dev/null
+++ b/config
@@ -0,0 +1,26 @@
+.encoding = "UTF-8"
+product.name = "VMware Player"
+product.version = "15.5.6"
+product.buildNumber = "16341506"
+workstation.product.version = "15.5.6"
+player.product.version = "15.5.6"
+vix.config.version = "1"
+bindir = "/usr/bin"
+libdir = "/usr/lib/vmware"
+vix.libdir = "/usr/lib/vmware-vix"
+initscriptdir = "/usr/lib/systemd/scripts"
+vmware.fullpath = "/usr/bin/vmware"
+authd.fullpath = "/usr/bin/vmware-authd"
+gksu.rootMethod = "su"
+NETWORKING = "yes"
+VMBLOCK_CONFED = "no"
+VMCI_CONFED = "no"
+VSOCK_CONFED = "no"
+installerDefaults.autoSoftwareUpdateEnabled = "no"
+installerDefaults.dataCollectionEnabled = "no"
+installerDefaults.componentDownloadEnabled = "no"
+installerDefaults.transferVersion = "1"
+acceptOVFEULA = "yes"
+acceptEULA = "yes"
+authd.client.port = "902"
+authd.proxy.nfc = "vmware-hostd:ha-nfc"
diff --git a/config.xml b/config.xml
new file mode 100644
index 000000000000..76b60c753e8a
--- /dev/null
+++ b/config.xml
@@ -0,0 +1,845 @@
+<!-- VMware Host Agent configuration file -->
+
+<config>
+ <!-- current working directory -->
+ <workingDir>./</workingDir>
+
+ <!-- location to examine for configuration files that are needed -->
+ <defaultConfigPath> /etc/vmware/ </defaultConfigPath>
+
+ <!-- location for docroot, plugins, libraries, etc. -->
+ <defaultInstallPath> /usr/lib/vmware </defaultInstallPath>
+
+ <!-- stdout for hostd process -->
+ <!-- <stdoutFile>/var/log/vmware/hostd-stdout.txt</stdoutFile> -->
+
+ <!-- stderr for hostd process -->
+ <!-- <stderrFile>/var/log/vmware/hostd-stderr.txt</stderrFile> -->
+
+ <!-- Memory death point for hostd -->
+ <!-- <hostdStopMemInMB> 250 </hostdStopMemInMB> -->
+ <!-- <hostdStopMemInPercent> 80 </hostdStopMemInPercent> -->
+
+ <!-- Memory watermark for hostd -->
+ <!-- <hostdWarnMemInMB> 180 </hostdWarnMemInMB> -->
+ <!-- <hostdWarnMemInPercent> 60 </hostdWarnMemInPercent> -->
+
+ <!-- hostd min num of fds -->
+ <!-- Override by vmacore/threadPool/MaxFdsPerThread -->
+ <!-- hostdMinFds> 2048 </hostdMinFds -->
+
+ <!-- hostd absolute max num of fds -->
+ <!-- hostdMaxFds> 4096 </hostdMaxFds -->
+
+ <!-- hostd mmap threshold in kilo bytes -->
+ <hostdMmapThreshold> 32 </hostdMmapThreshold>
+
+ <!-- Mode in which hostd runs: defines product type -->
+ <hostdMode> ws </hostdMode>
+
+ <!-- True if hostd is running in simulator mode -->
+ <mockup>
+ <enabled> false </enabled>
+ <!-- Bump the count if hostd runs out of memory in simulator mode when
+ you create more VMs -->
+ <supportedVMs> 128 </supportedVMs>
+ </mockup>
+
+ <!-- Frequency of memory checker -->
+ <!-- <memoryCheckerTimeInSecs> 30 </memoryCheckerTimeInSecs> -->
+
+ <log>
+ <!-- controls where rolling log files are stored
+ If directory is changed from default, may also want to
+ pass '-l some-dir' to hostd program at startup.
+ -->
+
+ <directory>/var/log/vmware/</directory>
+
+ <!-- name of log file -->
+ <name>hostd</name>
+
+ <!-- If true, redirect stderr to stdout. stdout inherits from
+ parent process. Log() (limited to default log level (see below))
+ will then be written to stdout. If false, stderr and stdout
+ are redirected to /dev/null on linux. On win32 this option is
+ not used.
+ At runtime, see vimsh internalsvc/redirect_stdout|err
+ -->
+ <outputToConsole>true</outputToConsole>
+
+ <!-- If true, logs to syslog -->
+ <outputToSyslog>false</outputToSyslog>
+
+ <!-- If true, log to files on disk -->
+ <!-- <outputToFiles>true</outputToFiles> -->
+
+ <!-- syslog configuration. Only used if outputToSyslog is true. -->
+ <syslog>
+ <!-- syslog identifier to use when logging -->
+ <ident>Hostd</ident>
+
+ <!-- syslog facility to use when logging -->
+ <facility>local4</facility>
+
+ <!-- The section header contents are placed in this file at startup.
+ When vmsyslogd rotates the hostd log file, it logs the content of this
+ file to syslog. This is being done so that we don't lose context on log
+ rotations.
+ IMPORTANT: Value needs to match that in onrotate entry in
+ vmsyslog.d/hostd.conf
+ -->
+ <logHeaderFile>/var/run/vmware/hostdLogHeader.txt</logHeaderFile>
+
+ </syslog>
+
+ <!-- default size(in bytes) of each log file before rolling over to next -->
+ <!-- <maxFileSize>10485760</maxFileSize> -->
+
+ <!-- default number of log files to rotate amongst -->
+ <!-- <maxFileNum>10</maxFileNum> -->
+
+ <!-- default log level -->
+ <level>verbose</level>
+
+ <!-- if false disable logging to memory buffer -->
+ <!-- <outputToMemory>true</outputToMemory> -->
+
+ <!-- default memory log level -->
+ <!-- <memoryLevel>verbose</memoryLevel> -->
+
+ <!-- memory log buffer size in KB -->
+ <!-- <memoryLogSizeK>64</memoryLogSizeK> -->
+ </log>
+
+ <!-- Log level configuration (Rules are applied in order)
+ <level id = "0">
+ <logName> App </logName>
+ <logLevel> info </logLevel>
+ <memoryLevel>verbose</memoryLevel>
+ <prefix> true </prefix>
+ </level>
+ <level id = "1">
+ <logName> BaseLibs </logName>
+ <logLevel> quiet </logLevel>
+ <memoryLevel>verbose</memoryLevel>
+ <prefix> false </prefix>
+ </level>
+ <level id = "2">
+ <logName> Vmsvc </logName>
+ <logLevel> info </logLevel>
+ <memoryLevel>verbose</memoryLevel>
+ <prefix> true </prefix>
+ </level>
+ <level id = "3">
+ <logName> /vmfs/volumes/foo/foo.vmx </logName>
+ <logLevel> trivia </logLevel>
+ <memoryLevel>verbose</memoryLevel>
+ <prefix> false </prefix>
+ </level>
+ <level id = "Vigor">
+ <logName> Vigor </logName>
+ <logLevel> info </logLevel>
+ <memoryLevel>verbose</memoryLevel>
+ <prefix> true </prefix>
+ </level>
+ -->
+ <level id = "4">
+ <logName> SoapAdapter.HTTPService </logName>
+ <logLevel> info </logLevel>
+ <prefix> false </prefix>
+ </level>
+
+ <level id="TCP">
+ <logName>TCP</logName>
+ <logLevel>error</logLevel>
+ <prefix>false</prefix>
+ </level>
+
+ <!--
+ <level id="IO">
+ <logName>IO</logName>
+ <logLevel>error</logLevel>
+ <prefix>false</prefix>
+ </level>
+ -->
+
+ <!--
+ Logger for the data passed through the proxy
+ Uncomment the following block to enable it.
+
+ WARNING: this data may contain sensitive informatino, such as
+ passwords, session IDs, etc.
+ -->
+ <!--
+ <level id="ProxyReqData">
+ <logName>Proxy Req Data</logName>
+ <logLevel>trivia</logLevel>
+ <prefix>true</prefix>
+ </level>
+ -->
+
+ <!-- Remove the following node to disable SSL -->
+ <ssl>
+ <!-- The server private key file -->
+ <privateKey>/etc/vmware/ssl/rui.key</privateKey>
+
+ <!-- The server side certificate file -->
+ <certificate>/etc/vmware/ssl/rui.crt</certificate>
+
+ <!-- The SSL version to use -->
+ <!-- <sslVersion>all</sslVersion> -->
+ </ssl>
+
+ <!-- Directory on the Console OS accessible to the DatastoreBrowser -->
+ <browsableConsoleDir>/vmimages</browsableConsoleDir>
+
+ <!-- Location of vm inventory file on legacy host -->
+ <!-- <legacyVmInventory>/etc/vmware/vm-list</legacyVmInventory> -->
+
+ <!-- VMOMI configuration -->
+ <vmomi>
+ <!-- MOB configuration -->
+ <mob>
+ <!-- Max size of POST requests in KB -->
+ <!-- <maxPostRequestSizeKB>1024</maxPostRequestSizeKB> -->
+ </mob>
+ <!-- VMOMI validator configuration -->
+ <validation>
+ <!-- The validation is enabled by default -->
+ <!-- <enabled>true</enabled> -->
+ </validation>
+ </vmomi>
+
+ <vmacore>
+ <pluginBaseDir>./</pluginBaseDir>
+ <!-- default thread pool configuration for Posix impl -->
+ <threadPool>
+ <IoMin>2</IoMin>
+ <IoMax>32</IoMax>
+ <TaskMin>2</TaskMin>
+ <TaskMax>12</TaskMax>
+ <MaxFdsPerThread> 2048 </MaxFdsPerThread>
+ <NumKeepAlive>8</NumKeepAlive>
+ <ThreadCheckTimeSecs>600</ThreadCheckTimeSecs>
+ <ThreadStackSizeKb>256</ThreadStackSizeKb>
+ <threadNamePrefix>hostd</threadNamePrefix>
+ <!-- <threadCountWarningThreshold>2</threadCountWarningThreshold> -->
+
+ <!-- Use fair work queues thread pool. -->
+ <!-- <fairThreadPool>true</fairThreadPool> -->
+
+ <!-- defaults to 14, Max number of threads used for FWQ items -->
+ <!-- <maxThreads>14</maxThreads> -->
+
+ <!-- defaults to 5, Initial number of threads used for FWQ items -->
+ <!-- <minThreads>5</minThreads> -->
+
+ <!-- defaults to 2, number of IO threads used by the FWQ thread pool -->
+ <!-- These threads perform the asynchronous IO and provide timer services.
+ Generally small number should be enough as no blocking operations
+ are executed within IO threads.
+ A CPU intensive operation performed in these threads is SSL handling,
+ so on multi-CPU machine with high volume of SSL traffic it may be
+ beneficial increasing this number.
+ -->
+ <!-- <ioThreads>2</ioThreads> -->
+
+ <!-- defaults to 3, Ratio between the number of concurrent items in a
+ priority and threads reserved for higher priority queues.
+ One thread is reserver for every N concurrent items. -->
+ <!-- <reservationRatio>3</reservationRatio> -->
+
+ </threadPool>
+ <ssl>
+ <doVersionCheck> false </doVersionCheck>
+ <libraryPath>/usr/lib/vmware</libraryPath>
+ <!-- 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> -->
+ </ssl>
+
+ <http>
+ <!-- timeouts for HTTP connections. the defaults are infinite. -->
+ <!-- <readTimeoutMs>60000</readTimeoutMs> -->
+ <!-- <writeTimeoutMs>60000</writeTimeoutMs> -->
+
+ <!-- Num of max proxy connections -->
+ <!-- PR 604415: Temporary lower the connections limit to 128 -->
+ <maxConnections> 128 </maxConnections>
+ </http>
+
+ <!-- enable plugin loading -->
+ <loadPlugins> true </loadPlugins>
+
+ <!-- enable/disable the dynamic loading of plugins -->
+ <loadDynamicPlugins> false </loadDynamicPlugins>
+
+ <!-- Enable/disable the stack tracer -->
+ <!-- <useStackTracer>false</useStackTracer> -->
+
+ <xml>
+ <doc>
+ <!-- maximum size of each XML message. -->
+ <maxChars>104857600</maxChars>
+ <!-- maximum nodes in of each XML message. -->
+ <maxNodes>524288</maxNodes>
+ <!-- maximum node depth of each XML message. -->
+ <maxDepth>1000</maxDepth>
+ </doc>
+ </xml>
+ </vmacore>
+
+ <dispatcher>
+ <!-- turns dispatcher on/off -->
+ <!-- <enabled>true</enabled> -->
+
+ <!-- Enables debugging output -->
+ <!-- <debug>false</debug> -->
+
+ <!-- Debug flags -->
+ <!-- <flags>0</flags> -->
+
+ <!-- The file containing dispatcher policies -->
+ <dispatcherConfig>/etc/vmware/hostd/dispatcher.xml</dispatcherConfig>
+
+ <!-- The file containing tag extraction rules -->
+ <tagExtractorConfig>/etc/vmware/hostd/tagExtractor.xml</tagExtractorConfig>
+ </dispatcher>
+
+ <plugins>
+ <vimsvc>
+ <path>libvimsvc.so</path>
+
+ <!-- default administrator principal -->
+ <!-- <defaultPrincipal>root</defaultPrincipal> -->
+
+ <!-- default file used to persist ACL data -->
+ <!-- <authorization>/etc/vmware/hostd/authorization.xml</authorization> -->
+
+ <!-- default file used to supply required privileges for dynamic methods -->
+ <!-- <dynMethodPrivConfig>/etc/vmware/hostd/dynMethodPriv.xml</dynMethodPrivConfig> -->
+
+ <!-- default setting for where vmware-hostd-ticket directory is created -->
+ <!-- <localTicketParentDir>/var/run</localTicketParentDir> -->
+
+ <!-- default setting for life time of a local ticket -->
+ <!-- <localTicketLifeSecs>10</localTicketLifeSecs> -->
+
+ <!-- default setting for maximum number of times a ticket can be used -->
+ <!-- <localTicketMaxUse>1</localTicketMaxUse> -->
+
+ <!-- time to retain tasks after they complete -->
+ <!-- <taskRetentionInMins> 10 </taskRetentionInMins> -->
+
+ <!-- cleanup interval time between task reaping -->
+ <!-- <taskCleanupIntervalInMins> 1 </taskCleanupIntervalInMins> -->
+
+ <!-- maximum number of events to store -->
+ <!-- <maxEvents>1000</maxEvents> -->
+
+ <!-- development build default setting for license mockup -->
+ <licenseMockup>false</licenseMockup>
+
+ <!-- Disable i18nFilter -->
+ <!-- <i18nFilterDisabled> false </i18nFilterDisabled> -->
+ <!-- cloning of objects by i18nFilter -->
+ <!-- <i18nCloneDisabled> true </i18nCloneDisabled> -->
+ <license>
+ <!-- location of the read-write flexlm configuration file -->
+ <!-- <config> /etc/vmware/license.cfg </config> -->
+ </license>
+
+ <!-- VC API lockdown mode (MN) - true to enable handling it -->
+ <apiLockdown>true</apiLockdown>
+
+ <requires>hostsvc solo</requires>
+
+ </vimsvc>
+ <hostsvc>
+ <path>libhostsvc.so</path>
+
+ <vflash>
+ <defaultVFlashModule>vfc</defaultVFlashModule>
+ <vffsUuid>0</vffsUuid>
+ <refreshVffsInterval>30</refreshVffsInterval>
+ </vflash>
+
+ <datastore>
+ <!-- default datastore inventory-->
+ <!-- <inventory>/etc/vmware/hostd/datastores.xml</inventory> -->
+
+ <!-- default datastore refresh interval in minutes -->
+ <!-- use 0 to disable the auto refresh -->
+ <!-- <refreshInterval>0</refreshInterval> -->
+
+ <!-- default refresh interval for datastore-freespace when provisioning virtual disks -->
+ <!-- <refreshVdiskInterval>30</refreshVdiskInterval> -->
+ </datastore>
+
+ <mockup>
+ <!-- turns mockup impl on/off -->
+ <enabled>false</enabled>
+
+ <!-- default filepath for host info -->
+ <filepath>/etc/vmware/hostd/mockup-host-config.xml</filepath>
+ </mockup>
+ <vmResources>/etc/vmware/hostd/vmResources.xml</vmResources>
+
+ <!-- default location of the hostsvc config file -->
+ <!-- <config>/etc/vmware/hostd/hostsvc.xml</config> -->
+
+ <!-- default location of the resource pool config file -->
+ <!-- <pools>/etc/vmware/hostd/pools.xml</pools> -->
+
+ <!-- default location of the host service list -->
+ <services>/etc/vmware/service/</services>
+
+ <storage>
+ <!-- storage data synchronization policy-->
+
+ <!-- policy: invalidate on configuration change (default) -->
+ <!-- <syncpolicy>invalid_change</syncpolicy> -->
+
+ <!-- policy: always fetch data when queried -->
+ <!-- <syncpolicy>fetch_always</syncpolicy> -->
+
+ <!-- policy: fetch data on configuration change -->
+ <!-- <syncpolicy>fetch_change</syncpolicy> -->
+
+ <!-- default storage inventory refetch interval, after getting multiple Path-state change events, in seconds -->
+ <refetchStorageInterval>120</refetchStorageInterval>
+ </storage>
+
+ <rsrc>
+ <!-- Refresh interval (in seconds) for root resource pool capacity -->
+ <!-- <refreshInterval>60</refreshInterval> -->
+ </rsrc>
+
+ <!-- Controls to enable/disable expressions in the datastore filter -->
+ <!-- <datastoresystem> -->
+ <!-- <diskfilter> -->
+ <!-- <NoUsbDisks>true</NoUsbDisks> -->
+ <!-- <UsedAsVmRdm>true</UsedAsVmRdm> -->
+ <!-- </diskfilter> -->
+ <!-- </datastoresystem> -->
+
+ <!-- Controls to enable/disable expressions in the SCSI LUN filter -->
+ <!-- <scsilunfilter> -->
+ <!-- <NoUsbDisks>true</NoUsbDisks> -->
+ <!-- </scsilunfilter> -->
+
+ <!-- Controls to enable/disable expressions in the RDM filter -->
+ <!-- <rdmfilter> -->
+ <!-- <RdmCapable>true</RdmCapable> -->
+ <!-- </rdmfilter> -->
+ <!-- <maxVms> 512 </maxVms> -->
+ <NetmapFile> /etc/vmware/netmap.conf </NetmapFile>
+
+
+ <!-- Storage I/O Resource Manager settings -->
+ <storageiorm>
+ <enabled>false</enabled>
+ <congestionThreshold.min>5</congestionThreshold.min>
+ <congestionThreshold.max>100</congestionThreshold.max>
+ <congestionThreshold.default>30</congestionThreshold.default>
+ </storageiorm>
+ </hostsvc>
+ <vmsvc>
+ <path>libvmsvc.so</path>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+ <enableMockup>false</enableMockup>
+
+ <!-- <maxSnapshotDepth> 32 </maxSnapshotDepth> -->
+
+ <!-- Configuration options for quiesced snapshots -->
+ <quiescedSnap>
+ <!-- Seconds that quiesce requests will queue before continuing. -->
+ <!-- <serializeTimeout> 120 </serializeTimeout> -->
+ </quiescedSnap>
+
+ <!-- The maximum number of virtual disks allowed on this host -->
+ <!-- <maxDisksPerVirtualMachine> 120 </maxDisksPerVirtualMachine> -->
+
+ <!-- The timer interval for task updates in microseconds -->
+ <!-- <taskTimerInterval> 1000000 </taskTimerInterval> -->
+
+ <!-- Default user context to use to perform VM operations -->
+ <!-- <datastorePrincipal>root</datastorePrincipal> -->
+
+ <!-- Virtual machine VMotion parameters -->
+ <vmotion>
+ <!-- Timeout for VMotion prepare operation (milliseconds) -->
+ <!-- <prepareTimeout> 30000 </prepareTimeout> -->
+
+ <!-- Timeout for VMotion source initiate operation (milliseconds) -->
+ <!-- <srcInitiateTimeout> 30000 </srcInitiateTimeout> -->
+
+ <!-- Timeout for VMotion destination ID population (milliseconds) -->
+ <!-- <dstIdTimeout> 120000 </dstIdTimeout> -->
+ </vmotion>
+ <!-- <defaultPowerOffType> soft </defaultPowerOffType> -->
+ <!-- <defaultSuspendType> hard </defaultSuspendType> -->
+ <!-- <defaultResetType> hard </defaultResetType> -->
+ <!-- <validateVMId> false </validateVMId> -->
+ <!-- <heartbeatCheckTimeInSecs> 30 </heartbeatCheckTimeInSecs> -->
+ <!-- <heartbeatRedAlert> 0.40 </heartbeatRedAlert> -->
+ <!-- <heartbeatYellowAlert> 0.80 </heartbeatYellowAlert> -->
+
+ <!-- Setting to enable/disable activation of change tracking -->
+ <!-- when upgrading a virtual machine's HW version to HW7 or newer -->
+ <!-- or when adding a new disk to a HW7 or newer VM. -->
+ <!-- <useChangeTracking> true </useChangeTracking> -->
+
+ <requires>vimsvc</requires>
+ </vmsvc>
+ <vcsvc>
+ <path>libvcsvc.so</path>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+ <!-- VMotion parameters -->
+ <vmotion>
+ <!-- Location of the VMotion journal; either an absolute -->
+ <!-- path or relative to the default log path -->
+ <!-- <journalDir> journal </journalDir> -->
+
+ <!-- Source-side VMotion timeout (milliseconds) -->
+ <!-- <srcBeginTimeout> 240000 </srcBeginTimeout> -->
+
+ <!-- Destination-side VMotion timeout (milliseconds) -->
+ <!-- <dstBeginTimeout> 60000 </dstBeginTimeout> -->
+ </vmotion>
+
+ <!-- AgentManager parameters -->
+ <agentMgr>
+ <!-- Timeout (in seconds) for the upgrade command -->
+ <!-- <timeout> 360 </timeout> -->
+
+ <!-- Name of the upgrade directory (relative to a provided tmpdir) -->
+ <!-- <upgradeDir> ha-agentmgr </upgradeDir> -->
+
+ <!-- upgradeCerts is a path to a file containing accepted signer certificates -->
+ <!-- <upgradeCerts>/usr/share/certs/vmware.cert</upgradeCerts> -->
+
+ <!-- Path to shell -->
+ <!-- <shellPath>/bin/sh</shellPath> -->
+
+ </agentMgr>
+
+ <requires>hostsvc</requires>
+
+ </vcsvc>
+ <solo>
+ <path>libsolo.so</path>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+
+ <!-- The file containing the list of environment description files -->
+ <environments>/etc/vmware/hostd/environments.xml</environments>
+
+ <!-- The file containing the virtual machine inventory -->
+ <vmInventory>/etc/vmware/hostd/vmInventory.xml</vmInventory>
+
+ <!-- The file containing the AutoStart settings -->
+ <!-- <vmAutoStart>/etc/vmware/hostd/vmAutoStart.xml</vmAutoStart> -->
+
+ <!-- The file containing the resource pool and VM resource settings -->
+ <!-- <resources>/etc/vmware/hostd/resources.xml</resources> -->
+
+ <!-- The file containing the provisoning policies -->
+ <provisioningPolicy>/etc/vmware/hostd/env/provisioningPolicy.xml</provisioningPolicy>
+
+ <!-- The file containing the hardware info mockup -->
+ <hwInfo>/etc/vmware/hostd/hwInfo.xml</hwInfo>
+
+ <!-- Controls to enable/disable expressions in the RDM filter -->
+ <!-- <rdmfilter> -->
+ <!-- Only show disks that are attached to shared storage. -->
+ <!-- <HbaIsShared>true</HbaIsShared> -->
+
+ <!-- Only show disks that are not an extent of a VMFS volume. -->
+ <!-- <UsedByVmfs>true</UsedByVmfs> -->
+
+ <!-- Only show disks that are not already used as an RDM target. -->
+ <!-- <UsedAsVmRdm>true</UsedAsVmRdm> -->
+ <!-- </rdmfilter> -->
+
+ <!-- Disable Resource Pool Initialization -->
+ <!-- <disableResourcePoolInit> false </disableResourcePoolInit> -->
+
+ <!-- Soap port. Also turns on proxy forwarding to a TCP port -->
+ <soapPort> 8307 </soapPort>
+
+ <!-- Secure Soap port for accecpting SSL tunneling from proxy -->
+ <!-- If disabled, SSL tunneling is done over a named pipe. -->
+ <!-- <secureSoapPort> 8306 </secureSoapPort> -->
+
+ <!-- Whether to enable secure Soap adapter -->
+ <enableSecureSoap> false </enableSecureSoap>
+
+ <!-- 64 bit support -->
+ <!-- <support64bit> true </support64bit> -->
+
+ <!-- Enable Vmomi tracing -->
+ <!-- <traceVmomi> true </traceVmomi> -->
+
+ <!-- The log level at which to output vmomi tracing -->
+ <traceAt> verbose </traceAt>
+
+ <!-- Whether to only trace faults in the return -->
+ <!-- <traceFaultsOnly> true </traceFaultsOnly> -->
+
+ <!-- Cause segv -->
+ <!-- <causeSegv> false </causeSegv> -->
+
+ <!-- Cause exception -->
+ <!-- <causeException> false </causeException> -->
+
+ <loglevels>
+ <module>
+ <name> disklib </name>
+ <level> 0 </level>
+ </module>
+ <!-- <module> -->
+ <!-- <name> baz </name> -->
+ <!-- <level> 2 </level> -->
+ <!-- <extension> bar </extension> -->
+ <!-- </module> -->
+ </loglevels>
+
+ <!-- web server settings -->
+ <webServer>
+
+ <docRoot> /usr/lib/vmware/hostd/docroot/</docRoot>
+ <cgiBinPath> /usr/lib/vmware/hostd/cgi-bin/</cgiBinPath>
+ </webServer>
+
+ <!-- Enable managed object browser -->
+ <!-- <enableMob>true</enableMob> -->
+
+ <!-- periodic keep alive logging -->
+ <!-- <runTimerTest> false </runTimerTest> -->
+ <!-- <runTimerIntervalInSecs> 3 </runTimerIntervalInSecs> -->
+
+ <dynamo>
+ <enabled> false </enabled>
+
+ <manager id="0">
+ <enabled> true </enabled>
+ <moId>ha-dynamic-type-manager-python</moId>
+ <type>soap-stdio</type>
+ <soap-stdio>
+ <command>/usr/bin/sh</command>
+ <arg id="0">-l</arg>
+ <arg id="1">-c</arg>
+ <arg id="2">/usr/bin/python -m PyVmomiServer -g --loglevel info -s PyVmomiServer</arg>
+ </soap-stdio>
+ </manager>
+
+ <manager id="1">
+ <enabled> false </enabled>
+ <moId>ha-dynamic-type-manager-vapi</moId>
+ <type>soap-http</type>
+ <soap-http>
+ <port>8088</port>
+ <command>/usr/bin/sh</command>
+ <arg id="0">-l</arg>
+ <arg id="1">-c</arg>
+ <arg id="2">/sbin/vapid -s vapid</arg>
+ </soap-http>
+ </manager>
+
+ <manager id="2">
+ <enabled> true </enabled>
+ <moId>ha-dynamic-type-manager-local-cli</moId>
+ <type>vmware-cli</type>
+ <vmware-cli>
+ <path>/usr/lib/vmware/esxcli</path>
+ </vmware-cli>
+ </manager>
+ </dynamo>
+
+ <!-- Managed method executer -->
+ <!-- <mme> -->
+ <!-- <enabled> true </enabled> -->
+ <!-- </mme> -->
+
+ <requires>hostsvc</requires>
+ </solo>
+
+ <!-- Reverse HTTP Proxy service -->
+ <proxysvc>
+ <path>libproxysvc.so</path>
+
+ <!-- default location of the proxy config file for hosted products-->
+ <config>/etc/vmware/hostd/proxy.xml</config>
+ <!-- default location of proxy config file for ESX-->
+ <endpoints>/etc/vmware/rhttpproxy/endpoints.conf</endpoints>
+ <requires>hostsvc</requires>
+
+ </proxysvc>
+
+ <statssvc>
+ <path>libstatssvc.so</path>
+ <enabled>false</enabled>
+ <mockup>
+ <!-- turns mockup impl on/off -->
+ <enabled>false</enabled>
+ </mockup>
+
+ <!-- Directory to store stats related files in -->
+ <!-- <depotDir> /var/lib/vmware/hostd/stats/ </depotDir> -->
+
+ <!-- Name of the StatsDepot -->
+ <!-- <depotName> hostAgentStats </depotName> -->
+
+ <!-- Max number of stats to purge in one shot -->
+ <!-- <maxStatsPurged> 1000 </maxStatsPurged> -->
+
+ <!-- Real time stats collection interval -->
+ <!-- <collectionInterval> 20 </collectionInterval> -->
+
+ <!-- Enable historical stats collection -->
+ <!-- <historicalStatsEnabled> true </historicalStatsEnabled> -->
+ <!-- Enable collection of virtual disk stats -->
+ <!-- <collectVdiskStats> true </collectVdiskStats> -->
+ <!-- Enable collection of Host Datastore stats -->
+ <!-- <collectHostDsStats> true </collectHostDsStats> -->
+ <!-- Enable collection of Storage Path and Adapter stats -->
+ <!-- <collectPathAdapterStats> true </collectPathAdapterStats> -->
+ <!-- Enable collection of VM Datastore stats -->
+ <!-- <collectVmDsStats>true </collectVmDsStats> -->
+ <!-- Enable collection of VFlash Module stats -->
+ <!-- <collectVFlashModuleStats> true </collectVFlashModuleStats> -->
+ <!-- Enable collection of VSAN DOM stats -->
+ <!-- <collectVSanDomStats> false </collectVSanDomStats> -->
+
+ </statssvc>
+
+ <partitionsvc>
+ <path>libpartitionsvc.so</path>
+ <enabled>false</enabled>
+ </partitionsvc>
+
+ <internalsvc>
+ <path>libinternalsvc.so</path>
+ <requires>hostsvc</requires>
+ </internalsvc>
+
+ <!-- The nfc service -->
+ <nfcsvc>
+ <path>libnfcsvc.so</path>
+ <enabled>true</enabled>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+ </nfcsvc>
+
+ <snmpsvc>
+ <enabled>false</enabled>
+ <path>libsnmpsvc.so</path>
+ </snmpsvc>
+
+ <blklistsvc>
+ <path>libblklistsvc.so</path>
+ <enabled>false</enabled>
+ <!-- <leaseTimeoutSecs> 150 </leaseTimeoutSecs> -->
+ <!-- <wblEnabled> true </wblEnabled> -->
+ </blklistsvc>
+
+ <cimsvc>
+ <path>libcimsvc.so</path>
+ <enabled>false</enabled>
+ <maxSelEntries>40</maxSelEntries>
+ <pollTime>90</pollTime>
+ </cimsvc>
+
+ <directorysvc>
+ <path>libdirectorysvc.so</path>
+ <enabled>false</enabled>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+ </directorysvc>
+
+ <vdisksvc>
+ <path>libvdisksvc.so</path>
+ <enabled>false</enabled>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+ </vdisksvc>
+
+ <vslmsvc>
+ <path>libvslmsvc.so</path>
+ <enabled>false</enabled>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+ </vslmsvc>
+
+ <httpnfcsvc>
+ <path>libhttpnfcsvc.so</path>
+ <enabled>false</enabled>
+ <mockup>
+ <enabled>false</enabled>
+ </mockup>
+ <requires>proxysvc</requires>
+ </httpnfcsvc>
+
+ <ovfmgrsvc>
+ <path>libovfmgrsvc.so</path>
+ <enabled>true</enabled>
+ </ovfmgrsvc>
+
+ <dynsvc>
+ <path>libdynsvc.so</path>
+ <enabled>false</enabled>
+ <dynamic>true</dynamic>
+ </dynsvc>
+
+ <guestsvc>
+ <path>libguestsvc.so</path>
+ <enabled>false</enabled>
+ </guestsvc>
+
+ <hbrsvc>
+ <path>libhbrsvc.so</path>
+ <enabled>false</enabled>
+ <mockup>
+ <!-- Mock HBR is on if running in the the simulator -->
+ <enabled>false</enabled>
+ </mockup>
+ <requires>vmsvc</requires>
+ </hbrsvc>
+
+ <cbrcsvc>
+ <path>libcbrcsvc.so</path>
+ <enabled>false</enabled>
+ </cbrcsvc>
+
+ <hostspecsvc>
+ <path>libhostspecsvc.so</path>
+ <enabled>false</enabled>
+ </hostspecsvc>
+
+
+ </plugins>
+
+ <!--Locale preferences-->
+ <!--DefaultLocale - this is the preferred default locale -->
+ <!--InstallPath - this is the location of the locale files-->
+ <!--
+ <locale>
+ <DefaultLocale>en_US</DefaultLocale>
+ <InstallPath>./locale/</InstallPath>
+ </locale>
+ -->
+
+</config>
diff --git a/configure-initscript.sh b/configure-initscript.sh
new file mode 100755
index 000000000000..95d9e9cc5bb8
--- /dev/null
+++ b/configure-initscript.sh
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+action="$1" # add, remove, or status
+serviceName="$2"
+startLevel="$3"
+stopLevel="$4"
+
+# Notes:
+# This package does not need a vmware service to make VMware usable, so this script says that vmware service is always started.
+# vmware-workstation-server service is named vmware-hostd in this package.
+
+case "$serviceName" in
+ vmware-workstation-server)
+ serviceName="vmware-hostd"
+ ;;
+esac
+
+#echo $serviceName && exit # DEBUG
+
+addService() {
+ if [ "$serviceName" != "vmware" ]; then
+ systemctl start $serviceName.service
+ systemctl enable $serviceName.service
+ fi
+}
+
+removeService() {
+ if [ "$serviceName" != "vmware" ]; then
+ systemctl stop $serviceName.service
+ systemctl disable $serviceName.service
+ fi
+}
+
+# Check to see whether a program is set to start on boot.
+checkService() {
+ if [ "$serviceName" = "vmware" ]; then
+ retval=0
+ else
+ systemctl is-active $serviceName.service > /dev/null
+ retval=$?
+ fi
+
+ if [ "$retval" = "0" ]; then
+ echo 'on'
+ exit 5
+ else
+ echo 'off'
+ exit 6
+ fi
+}
+
+usage() {
+ echo "Syntax for this script is as follows:"
+ echo ""
+ echo " $0 <action> <serviceName>"
+ echo ""
+ echo " action - add or remove"
+ echo " serviceName - The name of the service"
+ echo ""
+ echo ""
+ echo " $0 status <serviceName>"
+ echo " serviceName - The name of the service"
+ echo ""
+}
+
+
+
+case $action in
+ add)
+ # Don't allow any empty arguments for add
+ if [ "$1" = "" ] || [ "$2" = "" ] || [ "$3" = "" ] || [ "$4" = "" ]; then
+ usage
+ exit 1
+ fi
+ addService
+ ;;
+ remove)
+ # Don't allow any empty arguments for remove
+ if [ "$1" = "" ] || [ "$2" = "" ] || [ "$3" = "" ] || [ "$4" = "" ]; then
+ usage
+ exit 1
+ fi
+ removeService
+ ;;
+ status)
+ # We only need the serviceName to check status
+ if [ "$1" = "" ] || [ "$2" = "" ]; then
+ usage
+ exit 1
+ fi
+ checkService
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+esac
diff --git a/datastores.xml b/datastores.xml
new file mode 100644
index 000000000000..a457a95241fc
--- /dev/null
+++ b/datastores.xml
@@ -0,0 +1,16 @@
+<ConfigRoot>
+ <LocalDatastores>
+ <_length>1</_length>
+ <_type>hostd.host.LocalDatastoreEntry[]</_type>
+ <e id="0">
+ <_type>hostd.host.LocalDatastoreEntry</_type>
+ <id>1</id>
+ <name>standard</name>
+ <path>/var/lib/vmware/Shared VMs</path>
+ </e>
+ </LocalDatastores>
+ <NasVolumes>
+ <_length>0</_length>
+ <_type>hostd.host.NasDatastoreEntry[]</_type>
+ </NasVolumes>
+</ConfigRoot> \ No newline at end of file
diff --git a/dkms.conf.in b/dkms.conf.in
new file mode 100644
index 000000000000..5c7adc58ecde
--- /dev/null
+++ b/dkms.conf.in
@@ -0,0 +1,15 @@
+# Linux DKMS config script for the VMware guest kernel modules
+
+PACKAGE_NAME="@PKGNAME@"
+PACKAGE_VERSION="@PKGVER@"
+MAKE="make KVERSION=$kernelver SRCDIR=/usr/src/$PACKAGE_NAME-$PACKAGE_VERSION"
+CLEAN="make clean"
+AUTOINSTALL="YES"
+
+BUILT_MODULE_NAME[0]="vmmon"
+BUILT_MODULE_LOCATION[0]='vmmon-only'
+DEST_MODULE_LOCATION[0]="/kernel/drivers/misc"
+
+BUILT_MODULE_NAME[1]="vmnet"
+BUILT_MODULE_LOCATION[1]='vmnet-only'
+DEST_MODULE_LOCATION[1]="/kernel/drivers/net"
diff --git a/efi-unlocker-patch-1.0.0.txt b/efi-unlocker-patch-1.0.0.txt
new file mode 100644
index 000000000000..6451d1db0315
--- /dev/null
+++ b/efi-unlocker-patch-1.0.0.txt
@@ -0,0 +1,25 @@
+# Patch string format
+# FileGuid SectionType PatchType:FindPatternOrOffset:ReplacePattern
+# Please ensure that the latest symbol in patch string is space
+
+# Possible section types:
+# PE32 image 10
+# Position-independent code 11
+# TE Image 12
+# DXE Dependency 13
+# Version information 14
+# User interface string 15
+# 16-bit code 16
+# Guided freeform 18
+# Raw data 19
+# PEI Dependency 1B
+# SMM Dependency 1C
+# Please do not try another section types, it can make the resulting image broken
+
+# Possible patch types:
+# P - pattern-based, first parameter is a pattern to find, second - a pattern to replace
+# O - offset-based, first parameter is hexadecimal offset, second - a pattern to replace
+# Patterns can have . as "any possible value" symbol
+
+# VMware remove macOS Server check ServerVersion.plist -> SystemVersion.plist
+961578FE-B6B7-44C3-AF35-6BC705CD3B3F 10 P:530065007200760065007200560065007200730069006F006E002E0070006C00690073007400:530079007300740065006D00560065007200730069006F006E002E0070006C00690073007400
diff --git a/environments.xml b/environments.xml
new file mode 100644
index 000000000000..e044a450f3a8
--- /dev/null
+++ b/environments.xml
@@ -0,0 +1,62 @@
+<Environment>
+ <Cfg id="0">
+ <Descriptor>env/ws-hw3.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw3.xml</Options>
+ </Cfg>
+ <Cfg id="1">
+ <Descriptor>env/ws-hw4.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw4.xml</Options>
+ </Cfg>
+ <Cfg id="2">
+ <Descriptor>env/ws-hw6.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw6.xml</Options>
+ </Cfg>
+ <Cfg id="3">
+ <Descriptor>env/ws-hw7.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw7.xml</Options>
+ </Cfg>
+ <Cfg id="4">
+ <Descriptor>env/ws-hw8.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw8.xml</Options>
+ </Cfg>
+ <Cfg id="5">
+ <Descriptor>env/ws-hw9.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw9.xml</Options>
+ </Cfg>
+ <Cfg id="6">
+ <Descriptor>env/ws-hw10.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw10.xml</Options>
+ </Cfg>
+ <Cfg id="7">
+ <Descriptor>env/ws-hw11.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw11.xml</Options>
+ </Cfg>
+ <Cfg id="8">
+ <Descriptor>env/ws-hw12.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw12.xml</Options>
+ </Cfg>
+ <Cfg id="9">
+ <Descriptor>env/ws-hw13.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw13.xml</Options>
+ </Cfg>
+ <Cfg id="10">
+ <Descriptor>env/ws-hw14.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw14.xml</Options>
+ </Cfg>
+ <Cfg id="11">
+ <Descriptor>env/ws-hw15.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw15.xml</Options>
+ </Cfg>
+ <Cfg id="12">
+ <Descriptor>env/ws-hw16.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw16.xml</Options>
+ </Cfg>
+ <Cfg id="13">
+ <Descriptor>env/ws-hw17.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw17.xml</Options>
+ </Cfg>
+ <Cfg id="14">
+ <Descriptor>env/ws-hw18.xml</Descriptor>
+ <Options>env/vmconfigoption-ws-hw18.xml</Options>
+ </Cfg>
+</Environment>
diff --git a/pam.d-vmware-authd b/pam.d-vmware-authd
new file mode 100644
index 000000000000..44391264ebf9
--- /dev/null
+++ b/pam.d-vmware-authd
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth required pam_unix.so
+account required pam_unix.so
+password required pam_permit.so
+session required pam_unix.so
diff --git a/proxy.xml b/proxy.xml
new file mode 100644
index 000000000000..d9ab5039838c
--- /dev/null
+++ b/proxy.xml
@@ -0,0 +1,50 @@
+<ConfigRoot>
+ <httpPort>-1</httpPort>
+ <httpsPort>443</httpsPort>
+ <EndpointList>
+ <_length>7</_length>
+ <_type>vim.ProxyService.EndpointSpec[]</_type>
+ <e id="0">
+ <_type>vim.ProxyService.NamedPipeServiceSpec</_type>
+ <accessMode>httpAndHttps</accessMode>
+ <pipeName>/var/run/vmware/proxy-webserver</pipeName>
+ <serverNamespace>/</serverNamespace>
+ </e>
+ <e id="1">
+ <_type>vim.ProxyService.LocalServiceSpec</_type>
+ <accessMode>httpsWithRedirect</accessMode>
+ <port>8307</port>
+ <serverNamespace>/sdk</serverNamespace>
+ </e>
+ <e id="2">
+ <_type>vim.ProxyService.LocalServiceSpec</_type>
+ <accessMode>httpsWithRedirect</accessMode>
+ <port>8308</port>
+ <serverNamespace>/ui</serverNamespace>
+ </e>
+ <e id="3">
+ <_type>vim.ProxyService.NamedPipeServiceSpec</_type>
+ <accessMode>httpsOnly</accessMode>
+ <pipeName>/var/run/vmware/proxy-vpxa</pipeName>
+ <serverNamespace>/vpxa</serverNamespace>
+ </e>
+ <e id="4">
+ <_type>vim.ProxyService.NamedPipeServiceSpec</_type>
+ <accessMode>httpsWithRedirect</accessMode>
+ <pipeName>/var/run/vmware/proxy-mob</pipeName>
+ <serverNamespace>/mob</serverNamespace>
+ </e>
+ <e id="5">
+ <_type>vim.ProxyService.LocalServiceSpec</_type>
+ <accessMode>httpAndHttps</accessMode>
+ <port>12001</port>
+ <serverNamespace>/ha-nfc</serverNamespace>
+ </e>
+ <e id="6">
+ <_type>vim.ProxyService.LocalServiceSpec</_type>
+ <accessMode>httpAndHttps</accessMode>
+ <port>12000</port>
+ <serverNamespace>/nfc</serverNamespace>
+ </e>
+ </EndpointList>
+</ConfigRoot>
diff --git a/vmAutoStart.xml b/vmAutoStart.xml
new file mode 100644
index 000000000000..422da117572b
--- /dev/null
+++ b/vmAutoStart.xml
@@ -0,0 +1,9 @@
+<ConfigRoot>
+ <SystemDefaults>
+ <_type>vim.host.AutoStartManager.SystemDefaults</_type>
+ <startDelay>120</startDelay>
+ <stopAction>PowerOff</stopAction>
+ <stopDelay>120</stopDelay>
+ <waitForHeartbeat>false</waitForHeartbeat>
+ </SystemDefaults>
+</ConfigRoot> \ No newline at end of file
diff --git a/vmmon.patch b/vmmon.patch
new file mode 100644
index 000000000000..eb8ce8ed830c
--- /dev/null
+++ b/vmmon.patch
@@ -0,0 +1,99 @@
+--- a/vmmon/Makefile
++++ b/vmmon/Makefile
+@@ -43,7 +43,11 @@ INCLUDE += -I$(SRCROOT)/shared
+ endif
+
+
++ifdef KVERSION
++VM_UNAME = $(KVERSION)
++else
+ VM_UNAME = $(shell uname -r)
++endif
+
+ # Header directory for the running kernel
+ ifdef LINUXINCLUDE
+@@ -137,7 +137,6 @@
+ endif
+
+ # Add Spectre options when available
+-CC_OPTS += $(call vm_check_gcc,-mindirect-branch=thunk -mindirect-branch-register,)
+
+ include $(SRCROOT)/Makefile.kernel
+
+--- a/vmmon/linux/hostif.c
++++ b/vmmon/linux/hostif.c
+@@ -47,6 +47,8 @@
+ #include <asm/asm.h>
+ #include <asm/io.h>
+ #include <asm/page.h>
++#include <asm/tlbflush.h>
++#include <asm/irq_vectors.h>
+ #include <asm/uaccess.h>
+ #include <linux/capability.h>
+ #include <linux/kthread.h>
+@@ -634,7 +635,24 @@ HostIF_FastClockUnlock(int callerID) // IN
+ static void *
+ MapCrossPage(struct page *p) // IN:
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
+ return vmap(&p, 1, VM_MAP, VM_PAGE_KERNEL_EXEC);
++#else
++ /* Starting with 5.8, vmap() always sets the NX bit, but the cross
++ * page needs to be executable. */
++ pte_t *ptes[1];
++ struct vm_struct *area = alloc_vm_area(1UL << PAGE_SHIFT, ptes);
++ if (area == NULL)
++ return NULL;
++
++ set_pte(ptes[0], mk_pte(p, VM_PAGE_KERNEL_EXEC));
++
++ preempt_disable();
++ __flush_tlb_all();
++ preempt_enable();
++
++ return area->addr;
++#endif
+ }
+
+
+@@ -1739,7 +1758,10 @@ HostIF_EstimateLockedPageLimit(const VMDriver* vm, // IN
+ lockedPages += global_page_state(NR_PAGETABLE);
+ #endif
+ /* NR_SLAB_* moved from zone to node in 4.13. */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
++ lockedPages += global_node_page_state_pages(NR_SLAB_UNRECLAIMABLE_B);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
+ lockedPages += global_node_page_state(NR_SLAB_UNRECLAIMABLE);
+ #else
+ lockedPages += global_page_state(NR_SLAB_UNRECLAIMABLE);
+@@ -2590,9 +2612,11 @@ HostIF_SemaphoreWait(VMDriver *vm, // IN:
+ * the code to happily deal with a pipe or an eventfd. We only care about
+ * reading no bytes (EAGAIN - non blocking fd) or sizeof(uint64).
+ */
+-
+- res = file->f_op->read(file, (char *) &value, sizeof value, &file->f_pos);
+-
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
++ res = kernel_read(file, file->f_pos, (char *)&value, sizeof value);
++#else
++ res = kernel_read(file, &value, sizeof value, &file->f_pos);
++#endif
+ if (res == sizeof value) {
+ res = MX_WAITNORMAL;
+ } else {
+@@ -2707,8 +2731,11 @@ HostIF_SemaphoreSignal(uint64 *args) // IN:
+ * pipes. The data written is formatted to make an eventfd happy should
+ * it be present.
+ */
+-
+- res = file->f_op->write(file, (char *) &value, sizeof value, &file->f_pos);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
++ res = kernel_write(file, (char *)&value, sizeof value, file->f_pos);
++#else
++ res = kernel_write(file, &value, sizeof value, &file->f_pos);
++#endif
+
+ if (res == sizeof value) {
+ res = MX_WAITNORMAL;
diff --git a/vmnet.patch b/vmnet.patch
new file mode 100644
index 000000000000..b5a50b53fb2c
--- /dev/null
+++ b/vmnet.patch
@@ -0,0 +1,22 @@
+--- a/vmnet/Makefile
++++ b/vmnet/Makefile
+@@ -43,7 +43,11 @@ INCLUDE += -I$(SRCROOT)/shared
+ endif
+
+
++ifdef KVERSION
++VM_UNAME = $(KVERSION)
++else
+ VM_UNAME = $(shell uname -r)
++endif
+
+ # Header directory for the running kernel
+ ifdef LINUXINCLUDE
+@@ -137,7 +137,6 @@
+ endif
+
+ # Add Spectre options when available
+-CC_OPTS += $(call vm_check_gcc,-mindirect-branch=thunk -mindirect-branch-register,)
+
+ include $(SRCROOT)/Makefile.kernel
+
diff --git a/vmware-authd.service b/vmware-authd.service
new file mode 100644
index 000000000000..53d3fbf8314d
--- /dev/null
+++ b/vmware-authd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=VMware Authentication Daemon
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/vmware-authdlauncher
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vmware-bootstrap b/vmware-bootstrap
new file mode 100644
index 000000000000..981b82191cca
--- /dev/null
+++ b/vmware-bootstrap
@@ -0,0 +1,11 @@
+PREFIX="/usr"
+BINDIR="/usr/bin"
+SBINDIR="/usr/sbin"
+LIBDIR="/usr/lib"
+DATADIR="/usr/share"
+SYSCONFDIR="/etc"
+DOCDIR="/usr/share/doc"
+MANDIR="/usr/share/man"
+INCLUDEDIR="/usr/include"
+INITDIR=""
+INITSCRIPTDIR="/usr/lib/systemd/scripts"
diff --git a/vmware-environment.sh b/vmware-environment.sh
new file mode 100644
index 000000000000..b4bee50db4df
--- /dev/null
+++ b/vmware-environment.sh
@@ -0,0 +1,2 @@
+# Uncomment the line below if you have a problem of incompatible libraries
+#export VMWARE_USE_SHIPPED_LIBS=yes
diff --git a/vmware-hostd-certificates.service b/vmware-hostd-certificates.service
new file mode 100644
index 000000000000..8891ebe775ef
--- /dev/null
+++ b/vmware-hostd-certificates.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=VMware Host Daemon Certificates Generation
+ConditionPathExists=|!/etc/vmware/ssl/rui.key
+ConditionPathExists=|!/etc/vmware/ssl/rui.crt
+
+[Service]
+UMask=0077
+Environment=LD_LIBRARY_PATH=/usr/lib/vmware/lib/libssl.so.1.0.1:/usr/lib/vmware/lib/libcrypto.so.1.0.1
+ExecStart=/usr/lib/vmware/bin/openssl req -x509 -days 365 -newkey rsa:2048 -sha256 -keyout /etc/vmware/ssl/rui.key -out /etc/vmware/ssl/rui.crt -config /etc/vmware/ssl/hostd.ssl.config
+Type=oneshot
+RemainAfterExit=yes
diff --git a/vmware-hostd.service b/vmware-hostd.service
new file mode 100644
index 000000000000..2462d94e33ae
--- /dev/null
+++ b/vmware-hostd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=VMware Host Daemon
+Wants=vmware-hostd-certificates.service vmware-authd.service
+After=vmware-hostd-certificates.service vmware-authd.service
+
+[Service]
+ExecStartPre=/usr/bin/mkdir -p /var/run/vmware
+ExecStart=/usr/bin/vmware-hostd -a /etc/vmware/hostd/config.xml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vmware-networks-configuration.service b/vmware-networks-configuration.service
new file mode 100644
index 000000000000..0d86867f955e
--- /dev/null
+++ b/vmware-networks-configuration.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=VMware Networks Configuration Generation
+ConditionPathExists=!/etc/vmware/networking
+
+[Service]
+UMask=0077
+ExecStart=/usr/bin/vmware-networks --postinstall vmware-player,0,1
+Type=oneshot
+RemainAfterExit=yes
diff --git a/vmware-networks.service b/vmware-networks.service
new file mode 100644
index 000000000000..7d520a28a88d
--- /dev/null
+++ b/vmware-networks.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=VMware Networks
+Wants=vmware-networks-configuration.service
+After=vmware-networks-configuration.service
+
+[Service]
+Type=forking
+ExecStartPre=-/sbin/modprobe vmnet
+ExecStart=/usr/bin/vmware-networks --start
+ExecStop=/usr/bin/vmware-networks --stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vmware-usbarbitrator.service b/vmware-usbarbitrator.service
new file mode 100644
index 000000000000..fd1d9cac8034
--- /dev/null
+++ b/vmware-usbarbitrator.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=VMware USB Arbitrator
+
+[Service]
+ExecStart=/usr/lib/vmware/bin/vmware-usbarbitrator -f
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vmware-vix-bootstrap b/vmware-vix-bootstrap
new file mode 100644
index 000000000000..425074de832d
--- /dev/null
+++ b/vmware-vix-bootstrap
@@ -0,0 +1,2 @@
+BINDIR="/usr/bin"
+
diff --git a/vmware-workstation.install b/vmware-workstation.install
new file mode 100644
index 000000000000..36f5a3505e48
--- /dev/null
+++ b/vmware-workstation.install
@@ -0,0 +1,19 @@
+post_install() {
+ cat << EOF
+
+==> Before using VMware, you need to reboot or load vmw_vmci and vmmon kernel modules (in a terminal on root: modprobe -a vmw_vmci vmmon)
+==> You may also need to enable some of these services:
+- vmware-networks.service: to have network access inside VMs
+- vmware-usbarbitrator.service: to connect USB devices inside VMs
+- vmware-hostd.service: to share VMs on the network
+
+EOF
+}
+
+post_remove() {
+ cat << EOF
+
+==> To remove VMware settings, delete /etc/vmware and /etc/vmware-installer directories.
+
+EOF
+}