summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Solano Gómez <gentoo@sattvik.com>2019-03-14 16:16:11 -0500
committerDaniel Solano Gómez <gentoo@sattvik.com>2019-03-14 16:16:11 -0500
commitfbccbf2a4ea3a92e761fa9bd00138a1ecb76d7c5 (patch)
treee2ee6addda9d196557ed5f429d1f971a5f6241c2 /app-emulation
parentAdd leiningen-bin-2.9.1 (diff)
downloadsattvik-fbccbf2a4ea3a92e761fa9bd00138a1ecb76d7c5.tar.gz
sattvik-fbccbf2a4ea3a92e761fa9bd00138a1ecb76d7c5.tar.bz2
sattvik-fbccbf2a4ea3a92e761fa9bd00138a1ecb76d7c5.zip
Import latest vmware-{modules,workstation} from stefantalpalaru-overlay
Signed-off-by: Daniel Solano <gentoo@sattvik.com>
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/vmware-modules/Manifest12
-rw-r--r--app-emulation/vmware-modules/files/329-04-modules-replace-SUBDIRS-with-M.patch43
-rw-r--r--app-emulation/vmware-modules/files/329-05-vmmon-totalram_pages-is-a-function-since-5.0.patch51
-rw-r--r--app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch46
-rw-r--r--app-emulation/vmware-modules/files/329-07-modules-handle-access_ok-with-two-arguments.patch70
-rw-r--r--app-emulation/vmware-modules/files/329-4.14-00-vsock-gcc-plugins-randstruct.patch84
-rw-r--r--app-emulation/vmware-modules/files/329-vmblock.patch461
-rw-r--r--app-emulation/vmware-modules/files/329-vmci.patch294
-rw-r--r--app-emulation/vmware-modules/files/329-vsock.patch266
-rw-r--r--app-emulation/vmware-modules/vmware-modules-329.1.5-r1.ebuild (renamed from app-emulation/vmware-modules/vmware-modules-329.1.5.ebuild)8
-rw-r--r--app-emulation/vmware-modules/vmware-modules-330.0.2-r1.ebuild (renamed from app-emulation/vmware-modules/vmware-modules-330.0.2.ebuild)8
-rw-r--r--app-emulation/vmware-workstation/Manifest4
-rw-r--r--app-emulation/vmware-workstation/contrib/vmware-workstation-0-various-automation-hacks.patch95
-rw-r--r--app-emulation/vmware-workstation/contrib/vmware-workstation-1-wierd-symlinks.patch32
-rw-r--r--app-emulation/vmware-workstation/contrib/vmware-workstation-2-more-symlinks.patch27
-rw-r--r--app-emulation/vmware-workstation/vmware-workstation-14.1.5.10950780-r3.ebuild (renamed from app-emulation/vmware-workstation/vmware-workstation-14.1.5.10950780.ebuild)10
-rw-r--r--app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r3.ebuild (renamed from app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284.ebuild)10
17 files changed, 400 insertions, 1121 deletions
diff --git a/app-emulation/vmware-modules/Manifest b/app-emulation/vmware-modules/Manifest
index 79428df..c09042d 100644
--- a/app-emulation/vmware-modules/Manifest
+++ b/app-emulation/vmware-modules/Manifest
@@ -2,15 +2,15 @@ AUX 329-00-vmmon-quick-workaround-for-objtool-warnings.patch 1555 BLAKE2B dd4a58
AUX 329-01-vmmon-fix-always_inline-attribute-usage.patch 1204 BLAKE2B faa201beb42ac4a04f660aa99d9cad76c12f47048b49f3c48f6932ec367ffebb9e94c5f06fd0957fb8451c183e6bf21954ce88c04910969f80370c2c85e1024b SHA512 b3ab5a62936bc1bed997f84401df998097062ca2b7425dcc2d01191c9b49ddafcee36e859b1bcd60de0d532c1c597aba2b406d6f90062674d5fe54c1534e3235
AUX 329-02-vmmon-fix-indirect-call-with-retpoline-build.patch 1829 BLAKE2B 6b2efbd868cd3ecf9bbd5e9781d9e85fa733b5919b66040e9c6cdf9f65bf5c5aabb43e52af9cd224481fc60943df546b2812ae17a65bbb476651ec399194ac4f SHA512 6ea044d1b9096b48fa3825f474a758aa67698753646e62dd83d427bfbf8ebd2168c9d0130a35b4ee81391c3ce4d4459cee39f0354469d0485d30118b50f3463c
AUX 329-03-vmmon-check-presence-of-file_operations-poll.patch 2755 BLAKE2B 9a03511a0068d76574ccc7f5dd32c016477a7ede3c319c31cc4212960258aa3ba28edde655101ee39e441322e5a13dce1d6360c22c21f1ead29666f821f0445f SHA512 7dd424858cff634987323052ed331652e6399911c0389c8077109a91407fd549a47ebb222ffc449d42f4f816a54d682778863fe3488dd47b3bfcbfef1064f876
+AUX 329-04-modules-replace-SUBDIRS-with-M.patch 1513 BLAKE2B 6a9ee2fbfec63d669428049fec651dd5d4b5d4ba3043d13f69becb38be85e291fd4634193bcc35e1baf1a2935c5d565dd4396ab2a18e1d79f7e4fafa4b93c0f6 SHA512 d6c913be232d0e6758ade413e809a817b5ce906cb927539e9f6c08accb4c5de968815c1013d0e787483ef94a7a4d866d182b400ceb6fbe778fe9bfc48f690892
+AUX 329-05-vmmon-totalram_pages-is-a-function-since-5.0.patch 1614 BLAKE2B 72bccaf64551fb6e00397fe5b906ffaa4d865b1b97dab6b58064a3063611e6bff0d7e7085da8b4b07ee70e7d7dee1390e5fd2be75a4ee3daf69dce6c4d1bf341 SHA512 5ac103535292bc32d32daffd1669607f1d4c103b1a9243900df136fa19b6abdf10dbbf42f271f4a985e741206bfcb62eefe6457f568400e017b7307bf0d5fd94
+AUX 329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch 1593 BLAKE2B c37009ba5147d4554846c9cddbf01a359c40d1b970d4261d5a98503ea93032b20263e9b9ddbe201d018ad5b9d69f00149838a2f68d99ada9f5043d7a4622f029 SHA512 ff049665bf29a4a76d8d16c60647859509b118c18ba3d5f56368ae4801c18a3a41149646c6277431e42baec620a354462245dfe7f069f39cb0a722d3dbd2e1a6
+AUX 329-07-modules-handle-access_ok-with-two-arguments.patch 2558 BLAKE2B db24524060d263ff295d9eff1f05f17ef5c3c495f7f46389b83190a7d693e33fdded23e215afffa0d3146649ff86b47e647f66d99dc6f3aed6a6bbd907e9caef SHA512 434654ac8eac96eb78e725161895d044c2d933045e3c9e74f4e067f4a0558998d7af9d72293337c39b76a363c8d511911d118115daa339be777751af483ea408
AUX 329-4.09-00-vmnet-use-standard-definition-of-PCI_VENDOR_ID_VMWAR.patch 1169 BLAKE2B 4e5a74961ff512748375bd1d90a6670fc519c2c4c0be94f89d14fdf39e4922b057ae2baa38d07d34aca9ec897b012c4b9326dfd51a44235418919708b789895e SHA512 727fb97a63399d7c19238ae864a38cf2297adccb466fc2deba2a72f0592eb655f653d3c8e45dac06bbd0e09fc71a59a8bfea491b7580b37d41d0729f6adc023d
AUX 329-4.10-00-vmnet-use-standard-definition-of-PCI_VENDOR_ID_VMWAR.patch 1131 BLAKE2B 1e07b4a15ff1180349348d84efb606c223f5cfa4accdcc0e1a41c8a0de52fb186bddd3c6cd3f5f48041c52ad2c29110726197f1d9352bd87caf4e646c4c4c001 SHA512 192d6a9a14757706f1c9345ff45592a559729619627a32c9f0a1d7203e60881312a4d0fc92ff750c8ff5b5350cf1a2b55238c16973e9c7eb4c2cfe2966abe7d1
AUX 329-4.12-00-vmmon-use-standard-definition-of-MSR_MISC_FEATURES_E.patch 1603 BLAKE2B 4eea61a743cb443e4a4c22a02a03410adbae66339ac7ed1c1aafe54e447135c1ed976ce3c97f22db9984926de9b9a09b1820e253978f457c0c2b9d22f8e4c59b SHA512 4413cd5e791dd19c4b47ba2178e386160912882b0e1a549151eafcceae484b5e48f527ee45b14584c98e06c11e28ee5bfef34b318e46b45704fbcf93a7b52b56
AUX 329-4.13-00-vmmon-use-standard-definition-of-CR3_PCID_MASK-if-av.patch 1167 BLAKE2B b5c1c4d98d2aed5bb473270ea9b5737da05bab45748aa84b0a83c26abf8d826960ff3251132ae2770bf87168bfb9c01ab7c81ec99036af576ca3fa0eb08b36e2 SHA512 1cf13f9c745bcfcf24ac1e8f762d057f1afde46ec1de4e651a07e63e08d9073eca9bdbaa53c5a1ced556ec83da3bfd80d3c65c979fb91566cf3c7ddae38eaeac
-AUX 329-4.14-00-vsock-gcc-plugins-randstruct.patch 3477 BLAKE2B 9d454174bd3cf888d92a5644a2f8078f9368e5db0ee1c1f0ca7f43a897efa69d9d28c3cd89af3e38a790a23c442898364bc9d189f7920cf0dea54ca20af6ece4 SHA512 a3b68de2664807715dff9648744bd345cdf007a7c1d173fc5c1f410baa65e3a8ef3063543fd369e969a60d2f2ec9cda6127b22b09c5e17aefe288de104d58871
AUX 329-4.16-00-vmmon-use-standard-definition-of-MSR_K7_HWCR_SMMLOCK.patch 1097 BLAKE2B edf94d85be2caa69ca8b7856e636dd1fc41d60b43e56e08e913b9decca7f1f3a2a39d98681366a4c2f948a60acdce513f873b1c080d7329720abd0f235ee739a SHA512 f2e359183999f0396406724a8e0a80ceb3551772958a8a1e31eec0af8a746191bf5c7b7a5282d0f59d5a7cdd14744e1b775ad5af45bc5ee030434bcbb686d50c
-AUX 329-vmblock.patch 15016 BLAKE2B 887159b5c526eea4fcc7d49664a4c7233ab9c73440bef9e8f4ceb2b9694a72cd9c4dcff131f9a74dabe5a0ec3a4e0437db405f6c74f9cfd49ef590b19a658ab8 SHA512 6cb922537009fe39e2e58e19ba9c8fda6a5ea484f3d28a94793de0fbd63d8d564822f2c83447d135f1c5e7f5da6734af218f86e31c20d322cbf00b675297c712
-AUX 329-vmci.patch 9474 BLAKE2B 9e833fcafc39c4279a9d86c96c0d4b012d6f653d42a76ba7d7d65355876da469c0dcb746a6eab4be795c5c29f1d11ace5cbf705e066d12fff20df758b8ade901 SHA512 b8b46a3df7ee2f906dd474add6c0ec3d76566f1c643278e3a7faeb68c829c78926351359bd78e12ad744bb946a31324ee347bb67413c4d670e7a091379160e2e
-AUX 329-vsock.patch 10068 BLAKE2B d84f22a1623e2303c6aa2ea3624857fb2cf2dbb31b4747582285fc506ae208c1fb4b2a5925b02e6473b43ba178d871276584800d06cd2cdfb06273743814cc24 SHA512 73df6466b1df7be6ae40751596834d967b46d48218267afe5244abcdcacf5e263a78ed3bd3c4e6f2a5d81dd9c0c9e9042fc52fa9f1d4d000098ad20f19509001
-EBUILD vmware-modules-329.1.5.ebuild 3330 BLAKE2B 335b3971c52dbae4f9d309aad8e17411d1fcabb8cbbb535781ec0f38f202da4b2ebe939359a93366ef9ec33d00abd624fce3f4191fcba509b96367ccdc8ca4b5 SHA512 c91ad321786ebce6126649eb279770ffd60b3260bb58f2a089ebb4439287e83cb273edc7cf38fb073ef76e11297d98687b3a541f64ff97e5b6f0d60fe0b63fb7
-EBUILD vmware-modules-330.0.2.ebuild 3330 BLAKE2B f43fa5d255ab0349d874fb28074992032ded368c926f87aafafef423f84459cd550db92c588ca67ed2a0cc9db928c20c8fe8a254afbe316d07c08f59d67610bb SHA512 92d53fd22a40fb9520e52e0073e5e326aaa332797b06d8dcf19987444ba456bb06a8dc1fc4f0c70cb97fb13932db82db1cc0be5b1ad52bc727fce836df6de21a
+EBUILD vmware-modules-329.1.5-r1.ebuild 3631 BLAKE2B 5e024ddeed02e0dddf1e31f12a97175fd8fb81df60c95d6c612989fa751fd96006600849292e5f6e552d01ab77bec8109bb92c89b930aaffa5a0ddf120377599 SHA512 f592d32e78701ff7490cad53f32158d8bfbea9327e0982fd2cd447329c9404fe549e62e775800e5667f26ad4bb451c852dfe8fc36a8de88899b91890278a3b13
+EBUILD vmware-modules-330.0.2-r1.ebuild 3631 BLAKE2B 5f7c55369f46e3e8c5ed62206fa1b53a6f207c63ed9cf49dcd2987b36827877cde8086a7cf1340e1ba0eb12532bf58299a3ba8d81751e5da3fff32d368132cf7 SHA512 18da5531a1003bf2cf082c4bb31c7b4a57f3ea94c199c2f3c0e81a13e6d41c7d2565b042dc96aacc1ef2a085a9b3bfc033176ec13cf2ae825d882935b3d0a9c0
MISC metadata.xml 322 BLAKE2B 178d5a7e0f6a26281fdeb655994b728e1b2e831a9bd7e07d6ed7c5ad2edb04d30bb8543ee5a1440f06e3a9eb1af20810a3e93800291f5feda877a644aacad14a SHA512 8ed1935f376c38b57fdcd973dab5a8dd714b2fbb74108228f3aab19cec95340c93f6ecff03b10fcafd261896efa711f47ef8c301f35fa0fc4490a4fb45f2fd55
diff --git a/app-emulation/vmware-modules/files/329-04-modules-replace-SUBDIRS-with-M.patch b/app-emulation/vmware-modules/files/329-04-modules-replace-SUBDIRS-with-M.patch
new file mode 100644
index 0000000..2663cb4
--- /dev/null
+++ b/app-emulation/vmware-modules/files/329-04-modules-replace-SUBDIRS-with-M.patch
@@ -0,0 +1,43 @@
+From 8ba37a5023f939ba8d2e0d91b916ff442b1c18dd Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 31 Dec 2018 00:05:42 +0100
+Subject: [PATCH 2/5] modules: replace SUBDIRS with M
+
+Since commit 0126be38d988 ("kbuild: announce removal of SUBDIRS if used")
+in v5.0-rc1, using SUBDIRS when building out of tree modules produces
+a deprecation warning. As M used to work since pretty much ever, use it
+unconditionally.
+---
+ vmmon-only/Makefile | 2 +-
+ vmnet-only/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vmmon-only/Makefile b/vmmon-only/Makefile
+index ccdd295..b4b71fb 100644
+--- a/vmmon-only/Makefile
++++ b/vmmon-only/Makefile
+@@ -107,7 +107,7 @@ prebuild:: ;
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) M=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile
+index caab6b9..c2fc51f 100644
+--- a/vmnet-only/Makefile
++++ b/vmnet-only/Makefile
+@@ -107,7 +107,7 @@ prebuild:: ;
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) M=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+--
+2.21.0
+
diff --git a/app-emulation/vmware-modules/files/329-05-vmmon-totalram_pages-is-a-function-since-5.0.patch b/app-emulation/vmware-modules/files/329-05-vmmon-totalram_pages-is-a-function-since-5.0.patch
new file mode 100644
index 0000000..8b28310
--- /dev/null
+++ b/app-emulation/vmware-modules/files/329-05-vmmon-totalram_pages-is-a-function-since-5.0.patch
@@ -0,0 +1,51 @@
+From ca44ce7215b91f82ff500843784b4e86a720fffe Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 31 Dec 2018 00:11:35 +0100
+Subject: [PATCH 3/5] vmmon: totalram_pages is a function since 5.0
+
+Since commit ca79b0c211af ("mm: convert totalram_pages and totalhigh_pages
+variables to atomic") in v5.0-rc1, totalram_pages() is an accessor function
+and the actual variable is an atomic.
+---
+ vmmon-only/linux/hostif.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index af4b1d9..d32653c 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -183,6 +183,15 @@ static void UnlockEntry(void *clientData, MemTrackEntry *entryPtr);
+ uint8 monitorIPIVector;
+ uint8 hvIPIVector;
+
++static unsigned long compat_totalram_pages(void)
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)
++ return totalram_pages;
++#else
++ return totalram_pages();
++#endif
++}
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+@@ -1634,14 +1643,7 @@ unsigned int
+ HostIF_EstimateLockedPageLimit(const VMDriver* vm, // IN
+ unsigned int currentlyLockedPages) // IN
+ {
+- /*
+- * This variable is available and exported to modules,
+- * since at least 2.6.0.
+- */
+-
+- extern unsigned long totalram_pages;
+-
+- unsigned int totalPhysicalPages = totalram_pages;
++ unsigned int totalPhysicalPages = compat_totalram_pages();
+
+ /*
+ * Use the memory information linux exports as of late for a more
+--
+2.21.0
+
diff --git a/app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch b/app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch
new file mode 100644
index 0000000..a16982c
--- /dev/null
+++ b/app-emulation/vmware-modules/files/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch
@@ -0,0 +1,46 @@
+From 97d03d41984a0ade064fa6ac0400eb61de7929ff Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Mon, 31 Dec 2018 00:15:11 +0100
+Subject: [PATCH 4/5] vmmon: bring back the do_gettimeofday() helper
+
+The do_gettimeofday() helper was removed by commit e4b92b108c6c
+("timekeeping: remove obsolete time accessors") in v5.0-rc1. Bring it back
+for users in vmmon-only/linux/hostif.c.
+
+This feels like a quick and clumsy band aid to allow build with post-4.20
+kernels. On a closer look, the whole gymnastics around uptimeState and
+HostIFReadUptimeWork() with jiffies and wall time checking and correcting
+each other seems to be a workaround for an absence of high resolution
+monotonic time. Considering ktime_get_ts64() is available since 3.17 and
+before that, ktime_get_ts() since 2.6.17, perhaps the time has come to
+clean all this machinery up. But something like this would be beyond the
+scope of this repository.
+---
+ vmmon-only/linux/hostif.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index d32653c..cf4197b 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -192,6 +192,17 @@ static unsigned long compat_totalram_pages(void)
+ #endif
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
++static void do_gettimeofday(struct timeval *tv)
++{
++ struct timespec64 now;
++
++ ktime_get_real_ts64(&now);
++ tv->tv_sec = now.tv_sec;
++ tv->tv_usec = now.tv_nsec / 1000;
++}
++#endif
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+--
+2.21.0
+
diff --git a/app-emulation/vmware-modules/files/329-07-modules-handle-access_ok-with-two-arguments.patch b/app-emulation/vmware-modules/files/329-07-modules-handle-access_ok-with-two-arguments.patch
new file mode 100644
index 0000000..87c496b
--- /dev/null
+++ b/app-emulation/vmware-modules/files/329-07-modules-handle-access_ok-with-two-arguments.patch
@@ -0,0 +1,70 @@
+From 92b90ac11baf215ba73cb94e5aebf0576f1966a0 Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Sat, 5 Jan 2019 01:54:57 +0100
+Subject: [PATCH 5/5] modules: handle access_ok() with two arguments
+
+Since commit 96d4f267e40f ("Remove 'type' argument from access_ok()
+function") in v5.0-rc1, the type argument of access_ok() was dropped.
+The same commit also dropped macros VERIFY_READ and VERIFY_WRITE so check
+for their existence on pre-5.0 kernels to allow build against kernels with
+this change backported.
+---
+ vmmon-only/linux/hostif.c | 8 +++++++-
+ vmnet-only/userif.c | 8 +++++++-
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index cf4197b..ef88a22 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -203,6 +203,12 @@ static void do_gettimeofday(struct timeval *tv)
+ }
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) && defined(VERIFY_WRITE)
++ #define write_access_ok(addr, size) access_ok(VERIFY_WRITE, addr, size)
++#else
++ #define write_access_ok(addr, size) access_ok(addr, size)
++#endif
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+@@ -3419,7 +3425,7 @@ HostIF_MapUserMem(VA addr, // IN: User memory virtual address
+
+ ASSERT(handle);
+
+- if (!access_ok(VERIFY_WRITE, p, size)) {
++ if (!write_access_ok(p, size)) {
+ printk(KERN_ERR "%s: Couldn't verify write to uva 0x%p with size %"
+ FMTSZ"u\n", __func__, p, size);
+
+diff --git a/vmnet-only/userif.c b/vmnet-only/userif.c
+index acc6ca6..5d935ee 100644
+--- a/vmnet-only/userif.c
++++ b/vmnet-only/userif.c
+@@ -85,6 +85,12 @@ extern unsigned int vnet_max_qlen;
+ # define compat_kunmap(page) kunmap((page).p)
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) && defined(VERIFY_WRITE)
++ #define write_access_ok(addr, size) access_ok(VERIFY_WRITE, addr, size)
++#else
++ #define write_access_ok(addr, size) access_ok(addr, size)
++#endif
++
+ /*
+ *-----------------------------------------------------------------------------
+ *
+@@ -142,7 +148,7 @@ VNetUserIfMapPtr(VA uAddr, // IN: pointer to user memory
+ struct page **p, // OUT: locked page
+ void **ptr) // OUT: kernel mapped pointer
+ {
+- if (!access_ok(VERIFY_WRITE, (void *)uAddr, size) ||
++ if (!write_access_ok((void *)uAddr, size) ||
+ (((uAddr + size - 1) & ~(PAGE_SIZE - 1)) !=
+ (uAddr & ~(PAGE_SIZE - 1)))) {
+ return -EINVAL;
+--
+2.21.0
+
diff --git a/app-emulation/vmware-modules/files/329-4.14-00-vsock-gcc-plugins-randstruct.patch b/app-emulation/vmware-modules/files/329-4.14-00-vsock-gcc-plugins-randstruct.patch
deleted file mode 100644
index 66ef8b9..0000000
--- a/app-emulation/vmware-modules/files/329-4.14-00-vsock-gcc-plugins-randstruct.patch
+++ /dev/null
@@ -1,84 +0,0 @@
---- a/vsock-only/linux/notify.c 2017-10-03 06:52:10.953893050 +0300
-+++ b/vsock-only/linux/notify.c 2017-10-03 05:42:48.642701836 +0300
-@@ -1193,20 +1193,20 @@ VSockVmciNotifyPktProcessNegotiate(struc
-
-
- /* Socket control packet based operations. */
--VSockVmciNotifyOps vSockVmciNotifyPktOps = {
-- VSockVmciNotifyPktSocketInit,
-- VSockVmciNotifyPktSocketDestruct,
-- VSockVmciNotifyPktPollIn,
-- VSockVmciNotifyPktPollOut,
-- VSockVmciNotifyPktHandlePkt,
-- VSockVmciNotifyPktRecvInit,
-- VSockVmciNotifyPktRecvPreBlock,
-- VSockVmciNotifyPktRecvPreDequeue,
-- VSockVmciNotifyPktRecvPostDequeue,
-- VSockVmciNotifyPktSendInit,
-- VSockVmciNotifyPktSendPreBlock,
-- VSockVmciNotifyPktSendPreEnqueue,
-- VSockVmciNotifyPktSendPostEnqueue,
-- VSockVmciNotifyPktProcessRequest,
-- VSockVmciNotifyPktProcessNegotiate,
-+VSockVmciNotifyOps vSockVmciNotifyPktOps __refdata = {
-+ .socketInit = VSockVmciNotifyPktSocketInit,
-+ .socketDestruct = VSockVmciNotifyPktSocketDestruct,
-+ .pollIn = VSockVmciNotifyPktPollIn,
-+ .pollOut = VSockVmciNotifyPktPollOut,
-+ .handleNotifyPkt = VSockVmciNotifyPktHandlePkt,
-+ .recvInit = VSockVmciNotifyPktRecvInit,
-+ .recvPreBlock = VSockVmciNotifyPktRecvPreBlock,
-+ .recvPreDequeue = VSockVmciNotifyPktRecvPreDequeue,
-+ .recvPostDequeue = VSockVmciNotifyPktRecvPostDequeue,
-+ .sendInit = VSockVmciNotifyPktSendInit,
-+ .sendPreBlock = VSockVmciNotifyPktSendPreBlock,
-+ .sendPreEnqueue = VSockVmciNotifyPktSendPreEnqueue,
-+ .sendPostEnqueue = VSockVmciNotifyPktSendPostEnqueue,
-+ .processRequest = VSockVmciNotifyPktProcessRequest,
-+ .processNegotiate = VSockVmciNotifyPktProcessNegotiate,
- };
-diff -urp a/vsock-only/linux/notifyQState.c b/vsock-only/linux/notifyQState.c
---- a/vsock-only/linux/notifyQState.c 2017-10-03 06:52:10.952893329 +0300
-+++ b/vsock-only/linux/notifyQState.c 2017-10-03 05:43:02.950697125 +0300
-@@ -771,21 +770,24 @@ VSockVmciNotifyPktProcessNegotiate(struc
- }
-
-
--/* Socket always on control packet based operations. */
--VSockVmciNotifyOps vSockVmciNotifyPktQStateOps = {
-- VSockVmciNotifyPktSocketInit,
-- VSockVmciNotifyPktSocketDestruct,
-- VSockVmciNotifyPktPollIn,
-- VSockVmciNotifyPktPollOut,
-- VSockVmciNotifyPktHandlePkt,
-- VSockVmciNotifyPktRecvInit,
-- VSockVmciNotifyPktRecvPreBlock,
-- NULL, /* recvPreDequeue */
-- VSockVmciNotifyPktRecvPostDequeue,
-- VSockVmciNotifyPktSendInit,
-- NULL, /* sendPreBlock */
-- NULL, /* sendPreEnqueue */
-- VSockVmciNotifyPktSendPostEnqueue,
-- VSockVmciNotifyPktProcessRequest,
-- VSockVmciNotifyPktProcessNegotiate,
-+
-+
-+// Socket always on control packet based operations.
-+VSockVmciNotifyOps vSockVmciNotifyPktQStateOps __refdata = {
-+ .socketInit = VSockVmciNotifyPktSocketInit,
-+ .socketDestruct = VSockVmciNotifyPktSocketDestruct,
-+ .pollIn = VSockVmciNotifyPktPollIn,
-+ .pollOut = VSockVmciNotifyPktPollOut,
-+ .handleNotifyPkt = VSockVmciNotifyPktHandlePkt,
-+ .recvInit = VSockVmciNotifyPktRecvInit,
-+ .recvPreBlock = VSockVmciNotifyPktRecvPreBlock,
-+ .recvPreDequeue = NULL,
-+ .recvPostDequeue = VSockVmciNotifyPktRecvPostDequeue,
-+ .sendInit = VSockVmciNotifyPktSendInit,
-+ .sendPreBlock = NULL,
-+ .sendPreEnqueue = NULL,
-+ .sendPostEnqueue = VSockVmciNotifyPktSendPostEnqueue,
-+ .processRequest = VSockVmciNotifyPktProcessRequest,
-+ .processNegotiate = VSockVmciNotifyPktProcessNegotiate,
-+
- };
diff --git a/app-emulation/vmware-modules/files/329-vmblock.patch b/app-emulation/vmware-modules/files/329-vmblock.patch
deleted file mode 100644
index bddb978..0000000
--- a/app-emulation/vmware-modules/files/329-vmblock.patch
+++ /dev/null
@@ -1,461 +0,0 @@
-diff --git a/vmblock-only/Makefile b/vmblock-only/Makefile
-index bbfe225..8ec1a86 100644
---- a/vmblock-only/Makefile
-+++ b/vmblock-only/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
-diff --git a/vmblock-only/Makefile.kernel b/vmblock-only/Makefile.kernel
-index ab7a727..e3ec9d2 100644
---- a/vmblock-only/Makefile.kernel
-+++ b/vmblock-only/Makefile.kernel
-@@ -19,7 +19,7 @@
-
- INCLUDE += -I$(SRCROOT)/include
-
--EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
-+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
-
- EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
- EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachector.c, -DVMW_KMEMCR_CTOR_HAS_3_ARGS, )
-diff --git a/vmblock-only/linux/control.c b/vmblock-only/linux/control.c
-index 79716bd..5b6acb2 100644
---- a/vmblock-only/linux/control.c
-+++ b/vmblock-only/linux/control.c
-@@ -29,7 +29,7 @@
- #include <linux/stat.h>
- #include <linux/fs.h>
-
--#include <asm/uaccess.h>
-+#include <linux/uaccess.h>
-
- #include "vmblockInt.h"
- #include "block.h"
-@@ -208,9 +208,17 @@ SetupProcDevice(void)
- VMBlockSetProcEntryOwner(controlProcMountpoint);
-
- /* Create /proc/fs/vmblock/dev */
-+ // create_proc_entry deprecated in 3.10
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
-+ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME,
-+ VMBLOCK_CONTROL_MODE,
-+ controlProcDirEntry,
-+ &ControlFileOps);
-+#else
- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
- VMBLOCK_CONTROL_MODE,
- controlProcDirEntry);
-+#endif
- if (!controlProcEntry) {
- Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
- remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
-@@ -218,7 +226,9 @@ SetupProcDevice(void)
- return -EINVAL;
- }
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) //Maybe 3.14? 3.13?
- controlProcEntry->proc_fops = &ControlFileOps;
-+#endif
- return 0;
- }
-
-@@ -272,17 +282,50 @@ CleanupProcDevice(void)
- *----------------------------------------------------------------------------
- */
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
-+/* copy-paste from Lustre FS by pavlinux */
-+static inline char *ll_getname(const char __user *filename)
-+{
-+ int ret = 0, len;
-+ char *tmp = __getname();
-+
-+ if (!tmp)
-+ return ERR_PTR(-ENOMEM);
-+
-+ len = strncpy_from_user(tmp, filename, PATH_MAX);
-+ if (len == 0)
-+ ret = -ENOENT;
-+ else if (len > PATH_MAX)
-+ ret = -ENAMETOOLONG;
-+
-+ if (ret) {
-+ __putname(tmp);
-+ tmp = ERR_PTR(ret);
-+ }
-+ return tmp;
-+};
-+#endif
-+
- static int
- ExecuteBlockOp(const char __user *buf, // IN: buffer with name
- const os_blocker_id_t blocker, // IN: blocker ID (file)
- int (*blockOp)(const char *filename, // IN: block operation
- const os_blocker_id_t blocker))
- {
-- char *name;
-+ struct filename *fn = NULL;
-+ char *name = (char *)fn->name;
- int i;
- int retval;
-
-- name = getname(buf);
-+ // Not sure what changed in 3.13 to neccessitate this.
-+ // Gentoo uses __getname(), though.
-+ // https://github.com/gentoo/vmware/blob/master/app-emulation/vmware-modules/files/308-3.10-02-control.patch#L36
-+ // ~MK
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
-+ name = (char *)getname(buf);
-+#else
-+ name = (char *)ll_getname(buf);
-+#endif
- if (IS_ERR(name)) {
- return PTR_ERR(name);
- }
-@@ -293,7 +336,13 @@ ExecuteBlockOp(const char __user *buf, // IN: buffer with name
-
- retval = i < 0 ? -EINVAL : blockOp(name, blocker);
-
-- putname(name);
-+ // I'm not sure what this does, but you seem to know what you're doing ~MK
-+ if (fn->name != fn->iname) { /* add by pavlinux */
-+ __putname(fn->name);
-+ kvfree(fn);
-+ } else {
-+ __putname(fn);
-+ }
-
- return retval;
- }
-diff --git a/vmblock-only/linux/dentry.c b/vmblock-only/linux/dentry.c
-index 05ea95a..1245358 100644
---- a/vmblock-only/linux/dentry.c
-+++ b/vmblock-only/linux/dentry.c
-@@ -32,7 +32,13 @@
- #include "block.h"
-
-
--static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd);
-+// From what I can tell, this should've always been an unsigned int?
-+static int DentryOpRevalidate(struct dentry *dentry,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) // Maybe 3.14 or 3.13?
-+ struct nameidata *nd);
-+#else
-+ unsigned int flags);
-+#endif
-
- struct dentry_operations LinkDentryOps = {
- .d_revalidate = DentryOpRevalidate,
-@@ -60,7 +66,11 @@ struct dentry_operations LinkDentryOps = {
-
- static int
- DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
- struct nameidata *nd) // IN: lookup flags & intent
-+#else
-+ unsigned int flags) // IN: lookup flags & intent
-+#endif
- {
- VMBlockInodeInfo *iinfo;
- struct nameidata actualNd;
-@@ -101,7 +111,11 @@ DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
- if (actualDentry &&
- actualDentry->d_op &&
- actualDentry->d_op->d_revalidate) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
-+ return actualDentry->d_op->d_revalidate(actualDentry, flags);
-+#else
- return actualDentry->d_op->d_revalidate(actualDentry, nd);
-+#endif
- }
-
- if (compat_path_lookup(iinfo->name, 0, &actualNd)) {
-diff --git a/vmblock-only/linux/file.c b/vmblock-only/linux/file.c
-index d7ac1f6..c5e6604 100644
---- a/vmblock-only/linux/file.c
-+++ b/vmblock-only/linux/file.c
-@@ -39,6 +39,7 @@ typedef ino_t inode_num_t;
- #endif
-
- /* Specifically for our filldir_t callback */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
- typedef struct FilldirInfo {
- filldir_t filldir;
- void *dirent;
-@@ -76,6 +77,7 @@ Filldir(void *buf, // IN: Dirent buffer passed from FileOpReaddir
- /* Specify DT_LNK regardless */
- return info->filldir(info->dirent, name, namelen, offset, ino, DT_LNK);
- }
-+#endif
-
-
- /* File operations */
-@@ -132,7 +134,12 @@ FileOpOpen(struct inode *inode, // IN
- * and that would try to acquire the inode's semaphore; if the two inodes
- * are the same we'll deadlock.
- */
-+ // f_dentry is defined as f_path.dentry until 3.19
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)
- if (actualFile->f_dentry && inode == actualFile->f_dentry->d_inode) {
-+#else
-+ if (actualFile->f_path.dentry && inode == actualFile->f_path.dentry->d_inode) {
-+#endif
- Warning("FileOpOpen: identical inode encountered, open cannot succeed.\n");
- if (filp_close(actualFile, current->files) < 0) {
- Warning("FileOpOpen: unable to close opened file.\n");
-@@ -164,13 +171,20 @@ FileOpOpen(struct inode *inode, // IN
- *----------------------------------------------------------------------------
- */
-
-+// pavlinux's patch completely removes this bit for kernels older than 3.13
- static int
- FileOpReaddir(struct file *file, // IN
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
- void *dirent, // IN
- filldir_t filldir) // IN
-+#else
-+ struct dir_context* ctx) //IN
-+#endif
- {
- int ret;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
- FilldirInfo info;
-+#endif
- struct file *actualFile;
-
- if (!file) {
-@@ -184,12 +198,20 @@ FileOpReaddir(struct file *file, // IN
- return -EINVAL;
- }
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
- info.filldir = filldir;
- info.dirent = dirent;
-
- actualFile->f_pos = file->f_pos;
- ret = vfs_readdir(actualFile, Filldir, &info);
- file->f_pos = actualFile->f_pos;
-+#else
-+ /* Ricky Wong Yung Fei:
-+ * Manipulation of pos is now handled internally by iterate_dir().
-+ */
-+ ret = iterate_dir(actualFile, ctx);
-+ file->f_pos = actualFile->f_pos;
-+#endif
-
- return ret;
- }
-@@ -236,8 +258,15 @@ FileOpRelease(struct inode *inode, // IN
- }
-
-
-+// pavlinux's patch drops FileOpReaddr for < 3.13
-+// pavlinux's patch sets .owner = THIS_MODULE and .llseek = no_llseek
- struct file_operations RootFileOps = {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
- .readdir = FileOpReaddir,
-+#else
-+ .iterate = FileOpReaddir,
-+#endif
-+ .owner = THIS_MODULE,
- .open = FileOpOpen,
- .release = FileOpRelease,
- };
-diff --git a/vmblock-only/linux/inode.c b/vmblock-only/linux/inode.c
-index 098c94c..7aed6e7 100644
---- a/vmblock-only/linux/inode.c
-+++ b/vmblock-only/linux/inode.c
-@@ -28,20 +28,32 @@
- #include <linux/fs.h>
- #include <linux/time.h>
- #include <linux/namei.h>
-+#include <linux/cred.h>
-
- #include "vmblockInt.h"
- #include "filesystem.h"
- #include "block.h"
-
-
- /* Inode operations */
-+// Again, it looks like last arg should've always been unsigned int ~MK
- static struct dentry *InodeOpLookup(struct inode *dir,
-- struct dentry *dentry, struct nameidata *nd);
--static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
--static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
-+ struct dentry *dentry,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) // Maybe 3.12 or 3.13?
-+ struct nameidata *nd);
- #else
-+ unsigned int flags);
-+#endif
-+static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 13)
- static int InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
-+static const char *InodeOpGetLink(struct dentry *dentry, struct inode *inode,
-+ struct delayed_call *done);
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
-+static const char *InodeOpFollowlink(struct dentry *dentry, void **cookie);
-+#else
-+static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
- #endif
-
-
-@@ -49,9 +60,13 @@ struct inode_operations RootInodeOps = {
- .lookup = InodeOpLookup,
- };
-
--static struct inode_operations LinkInodeOps = {
-+struct inode_operations LinkInodeOps = {
- .readlink = InodeOpReadlink,
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
-+ .get_link = InodeOpGetLink,
-+#else
- .follow_link = InodeOpFollowlink,
-+#endif
- };
-
-
-@@ -75,7 +90,11 @@ static struct inode_operations LinkInodeOps = {
- static struct dentry *
- InodeOpLookup(struct inode *dir, // IN: parent directory's inode
- struct dentry *dentry, // IN: dentry to lookup
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
- struct nameidata *nd) // IN: lookup intent and information
-+#else
-+ unsigned int flags) // IN: lookup intent and information
-+#endif
- {
- char *filename;
- struct inode *inode;
-@@ -135,7 +154,16 @@ InodeOpLookup(struct inode *dir, // IN: parent directory's inode
- inode->i_size = INODE_TO_IINFO(inode)->nameLen;
- inode->i_version = 1;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)
- inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
-+#else
-+ inode->i_atime = inode->i_mtime = inode->i_ctime = current_kernel_time();
-+#endif
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
- inode->i_uid = inode->i_gid = 0;
-+#else
-+ inode->i_gid = make_kgid(current_user_ns(), 0);
-+ inode->i_uid = make_kuid(current_user_ns(), 0);
-+#endif
- inode->i_op = &LinkInodeOps;
-
- d_add(dentry, inode);
-@@ -176,8 +200,15 @@ InodeOpReadlink(struct dentry *dentry, // IN : dentry of symlink
- if (!iinfo) {
- return -EINVAL;
- }
--
-+#if LINUX_VERSION_CODE <= KERNEL_VERSION(3, 14, 99)
- return vfs_readlink(dentry, buffer, buflen, iinfo->name);
-+#elif LINUX_VERSION_CODE <= KERNEL_VERSION(4, 6, 99)
-+ return readlink_copy(buffer, buflen, iinfo->name);
-+#elif LINUX_VERSION_CODE <= KERNEL_VERSION(4, 9, 99)
-+ return generic_readlink(dentry, buffer, buflen);
-+#else
-+ return vfs_readlink(dentry, buffer, buflen);
-+#endif
- }
-
-
-@@ -198,30 +229,58 @@ InodeOpReadlink(struct dentry *dentry, // IN : dentry of symlink
- *----------------------------------------------------------------------------
- */
-
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
--static void *
-+static
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 13)
-+int
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
-+const char *
- #else
--static int
-+void *
- #endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
-+InodeOpGetLink(struct dentry *dentry, struct inode *inode,
-+ struct delayed_call *done)
-+#else
- InodeOpFollowlink(struct dentry *dentry, // IN : dentry of symlink
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
-+ void **cookie)
-+#else
- struct nameidata *nd) // OUT: stores result
-+#endif
-+#endif
- {
- int ret;
- VMBlockInodeInfo *iinfo;
-
- if (!dentry) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
-+ ret = -ECHILD;
-+#else
- Warning("InodeOpReadlink: invalid args from kernel\n");
- ret = -EINVAL;
-+#endif
- goto out;
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
-+ iinfo = INODE_TO_IINFO(inode);
-+#else
- iinfo = INODE_TO_IINFO(dentry->d_inode);
-+#endif
- if (!iinfo) {
- ret = -EINVAL;
- goto out;
- }
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 12, 0)
- ret = vfs_follow_link(nd, iinfo->name);
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
-+ return (char *)(iinfo->name);
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
-+ return *cookie = (char *)(iinfo->name);
-+#else
-+ nd_set_link(nd, iinfo->name);
-+#endif
-
- out:
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
-diff --git a/vmblock-only/shared/compat_namei.h b/vmblock-only/shared/compat_namei.h
-index f82dd49..426d40b 100644
---- a/vmblock-only/shared/compat_namei.h
-+++ b/vmblock-only/shared/compat_namei.h
-@@ -45,4 +45,20 @@
- #define compat_path_lookup(name, flags, nd) path_lookup(name, flags, nd)
- #endif
-
-+/* nameidata struct for 4.2+ */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)
-+struct nameidata {
-+ struct path path;
-+ struct qstr last;
-+ struct path root;
-+ struct inode *inode; /* path.dentry.d_inode */
-+ unsigned int flags;
-+ unsigned seq, m_seq;
-+ int last_type;
-+ unsigned depth;
-+ struct file *base;
-+ char *saved_names[MAX_NESTED_LINKS + 1];
-+};
-+#endif
-+
- #endif /* __COMPAT_NAMEI_H__ */
diff --git a/app-emulation/vmware-modules/files/329-vmci.patch b/app-emulation/vmware-modules/files/329-vmci.patch
deleted file mode 100644
index 764f858..0000000
--- a/app-emulation/vmware-modules/files/329-vmci.patch
+++ /dev/null
@@ -1,294 +0,0 @@
-diff --git a/vmci-only/Makefile b/vmci-only/Makefile
-index c630705..18357e5 100644
---- a/vmci-only/Makefile
-+++ b/vmci-only/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
-diff --git a/vmci-only/Makefile.kernel b/vmci-only/Makefile.kernel
-index 8e6e7d0..28eb503 100644
---- a/vmci-only/Makefile.kernel
-+++ b/vmci-only/Makefile.kernel
-@@ -21,7 +21,7 @@ CC_OPTS += -DVMCI
-
- INCLUDE += -I$(SRCROOT)/shared -I$(SRCROOT)/common -I$(SRCROOT)/linux
-
--EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
-+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
-
- obj-m += $(DRIVER).o
-
-diff --git a/vmci-only/linux/driver.c b/vmci-only/linux/driver.c
-index f676166..9e42f3f 100644
---- a/vmci-only/linux/driver.c
-+++ b/vmci-only/linux/driver.c
-@@ -26,6 +26,7 @@
-
- #include <linux/file.h>
- #include <linux/fs.h>
-+#include <linux/vmalloc.h>
- #include <linux/init.h>
- #if defined(__x86_64__) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
- # include <linux/ioctl32.h>
-@@ -1466,12 +1467,19 @@ VMCIUserVALockPage(VA addr) // IN:
- int retval;
-
- down_read(&current->mm->mmap_sem);
--#if 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, 5, 99)
-+ 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(&current->mm->mmap_sem);
-
- if (retval != 1) {
-@@ -1686,7 +1694,11 @@ vmci_guest_init(void)
- /* This should be last to make sure we are done initializing. */
- retval = pci_register_driver(&vmci_driver);
- if (retval < 0) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
- vfree(data_buffer);
-+#else
-+ kvfree(data_buffer);
-+#endif
- data_buffer = NULL;
- return retval;
- }
-@@ -1722,12 +1734,25 @@
- vmci_dev.msix_entries[i].vector = i;
- }
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)
- result = pci_enable_msix(pdev, vmci_dev.msix_entries, VMCI_MAX_INTRS);
- if (!result) {
- vmci_dev.exclusive_vectors = TRUE;
- } else if (result > 0) {
- result = pci_enable_msix(pdev, vmci_dev.msix_entries, 1);
- }
-+#else
-+ result = pci_enable_msix_range(pdev, vmci_dev.msix_entries, VMCI_MAX_INTRS,
-+ VMCI_MAX_INTRS);
-+ if (result > 0) {
-+ vmci_dev.exclusive_vectors = TRUE;
-+ } else if (result == -ENOSPC) {
-+ result = pci_enable_msix_range(pdev, vmci_dev.msix_entries, 1, 1);
-+ }
-+
-+ if (result > 0)
-+ result = 0;
-+#endif
- return result;
- }
-
-@@ -2480,7 +2505,11 @@ vmci_exit(void)
-
- if (guestDeviceInit) {
- pci_unregister_driver(&vmci_driver);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
- vfree(data_buffer);
-+#else
-+ kvfree(data_buffer);
-+#endif
- data_buffer = NULL;
- guestDeviceInit = FALSE;
- }
-@@ -2490,7 +2519,7 @@ vmci_exit(void)
-
- VMCI_HostCleanup();
-
-- retval = misc_deregister(&linuxState.misc);
-+ retval = compat_misc_deregister(&linuxState.misc);
- if (retval) {
- Warning(LGPFX "Module %s: error unregistering\n", VMCI_MODULE_NAME);
- } else {
-diff --git a/vmci-only/linux/vmciKernelIf.c b/vmci-only/linux/vmciKernelIf.c
-index 3fba8b6..1836442 100644
---- a/vmci-only/linux/vmciKernelIf.c
-+++ b/vmci-only/linux/vmciKernelIf.c
-@@ -40,6 +40,10 @@
- #include <linux/socket.h> /* For memcpy_{to,from}iovec(). */
- #include <linux/vmalloc.h>
- #include <linux/wait.h>
-+#include <linux/skbuff.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 99)
-+#include <linux/sched/signal.h>
-+#endif
-
- #include "compat_highmem.h"
- #include "compat_interrupt.h"
-@@ -1198,16 +1199,29 @@ __VMCIMemcpyToQueue(VMCIQueue *queue, // OUT:
- }
-
- if (isIovec) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- struct iovec *iov = (struct iovec *)src;
-+#else
-+ struct msghdr *msg = (struct msghdr *)src;
-+#endif
- int err;
-
- /* The iovec will track bytesCopied internally. */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- err = memcpy_fromiovec((uint8 *)va + pageOffset, iov, toCopy);
-+#else
-+ err = memcpy_from_msg((uint8 *)va + pageOffset, msg, toCopy);
-+#endif
- if (err != 0) {
- if (kernelIf->host) {
- kunmap(kernelIf->u.h.page[pageIndex]);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- }
- return VMCI_ERROR_INVALID_ARGS;
-+#else
-+ return VMCI_ERROR_INVALID_ARGS;
-+ }
-+#endif
- }
- } else {
- memcpy((uint8 *)va + pageOffset, (uint8 *)src + bytesCopied, toCopy);
-@@ -1273,11 +1287,19 @@ __VMCIMemcpyFromQueue(void *dest, // OUT:
- }
-
- if (isIovec) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- struct iovec *iov = (struct iovec *)dest;
-+#else
-+ struct msghdr *msg = (struct msghdr *)dest;
-+#endif
- int err;
-
- /* The iovec will track bytesCopied internally. */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- err = memcpy_toiovec(iov, (uint8 *)va + pageOffset, toCopy);
-+#else
-+ err = memcpy_to_msg(msg, (uint8 *)va + pageOffset, toCopy);
-+#endif
- if (err != 0) {
- if (kernelIf->host) {
- kunmap(kernelIf->u.h.page[pageIndex]);
-@@ -1834,7 +1856,11 @@ VMCIReleasePages(struct page **pages, // IN
- if (dirty) {
- set_page_dirty(pages[i]);
- }
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
-+ put_page(pages[i]);
-+#else
- page_cache_release(pages[i]);
-+#endif
- pages[i] = NULL;
- }
- }
-@@ -2048,21 +2074,22 @@ VMCIHost_GetUserMemory(VA64 produceUVA, // IN
- int err = VMCI_SUCCESS;
-
- down_write(&current->mm->mmap_sem);
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
- retval = get_user_pages((VA)produceUVA,
-- produceQ->kernelIf->numPages,
-- 1, 0,
-- produceQ->kernelIf->u.h.headerPage,
-- NULL);
- #else
- retval = get_user_pages(current,
- current->mm,
- (VA)produceUVA,
-+#endif
- produceQ->kernelIf->numPages,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0)
- 1, 0,
-+#else
-+ FOLL_WRITE,
-+#endif
- produceQ->kernelIf->u.h.headerPage,
- NULL);
--#endif
-+
- if (retval < produceQ->kernelIf->numPages) {
- Log("get_user_pages(produce) failed (retval=%d)\n", retval);
- VMCIReleasePages(produceQ->kernelIf->u.h.headerPage, retval, FALSE);
-@@ -2070,11 +2097,19 @@ VMCIHost_GetUserMemory(VA64 produceUVA, // IN
- goto out;
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
-+ retval = get_user_pages((VA)consumeUVA,
-+#else
- retval = get_user_pages(current,
- current->mm,
- (VA)consumeUVA,
-+#endif
- consumeQ->kernelIf->numPages,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0)
- 1, 0,
-+#else
-+ FOLL_WRITE,
-+#endif
- consumeQ->kernelIf->u.h.headerPage,
- NULL);
- if (retval < consumeQ->kernelIf->numPages) {
-diff --git a/vmci-only/shared/compat_module.h b/vmci-only/shared/compat_module.h
-index 2af7372..729aedc 100644
---- a/vmci-only/shared/compat_module.h
-+++ b/vmci-only/shared/compat_module.h
-@@ -80,4 +80,13 @@ static const char __module_cat(tag, __LINE__)[] \
- typedef int compat_mod_param_bool;
- #endif
-
-+/*
-+ * Linux kernel >= 4.2.99 does not return anything from misc_deregister
-+ */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 99)
-+#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/vmci-only/shared/vm_device_version.h b/vmci-only/shared/vm_device_version.h
-index e2cb477..3dd7097 100644
---- a/vmci-only/shared/vm_device_version.h
-+++ b/vmci-only/shared/vm_device_version.h
-@@ -53,7 +53,9 @@
- * VMware HD Audio codec
- * VMware HD Audio controller
- */
-+#ifndef PCI_VENDOR_ID_VMWARE
- #define PCI_VENDOR_ID_VMWARE 0x15AD
-+#endif
- #define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
- #define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
- #define PCI_DEVICE_ID_VMWARE_VGA 0x0711
-diff --git a/vmci-only/shared/vmci_kernel_if.h b/vmci-only/shared/vmci_kernel_if.h
-index 9def671..082fe59 100644
---- a/vmci-only/shared/vmci_kernel_if.h
-+++ b/vmci-only/shared/vmci_kernel_if.h
-@@ -100,7 +100,7 @@
- typedef Semaphore VMCIEvent;
- typedef Semaphore VMCIMutex;
- typedef World_ID VMCIHostVmID;
-- typedef uint32 VMCIHostUser;
-+ typedef uint32_t VMCIHostUser;
- typedef PPN *VMCIQPGuestMem;
- #elif defined(__linux__)
- typedef spinlock_t VMCILock;
diff --git a/app-emulation/vmware-modules/files/329-vsock.patch b/app-emulation/vmware-modules/files/329-vsock.patch
deleted file mode 100644
index d77402a..0000000
--- a/app-emulation/vmware-modules/files/329-vsock.patch
+++ /dev/null
@@ -1,266 +0,0 @@
-diff --git a/vsock-only/Makefile b/vsock-only/Makefile
-index 5d92e9b..7d315e8 100644
---- a/vsock-only/Makefile
-+++ b/vsock-only/Makefile
-@@ -42,8 +42,11 @@ AUTOCONF_DIR := $(SRCROOT)/shared/autoconf
- 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
-diff --git a/vsock-only/Makefile.kernel b/vsock-only/Makefile.kernel
-index 5218df2..374cc1f 100644
---- a/vsock-only/Makefile.kernel
-+++ b/vsock-only/Makefile.kernel
-@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
- INCLUDE += -I$(SRCROOT)/linux
- INCLUDE += -I$(SRCROOT)/common
-
--EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
-+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
- EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )
-
-
-diff --git a/vsock-only/linux/af_vsock.c b/vsock-only/linux/af_vsock.c
-index bde1497..9f8f843 100644
---- a/vsock-only/linux/af_vsock.c
-+++ b/vsock-only/linux/af_vsock.c
-@@ -113,6 +113,9 @@
- asmlinkage __attribute__((weak)) long
- sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
- #endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 99)
-+#include <linux/sched/signal.h>
-+#endif
-
- #include "compat_cred.h"
- #include "compat_module.h"
-@@ -213,7 +216,11 @@
- struct sockaddr *addr, int addrLen, int flags);
- static int VSockVmciStreamConnect(struct socket *sock,
- struct sockaddr *addr, int addrLen, int flags);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
- static int VSockVmciAccept(struct socket *sock, struct socket *newsock, int flags);
-+#else
-+static int VSockVmciAccept(struct socket *sock, struct socket *newsock, int flags, bool kern);
-+#endif
- static int VSockVmciGetname(struct socket *sock,
- struct sockaddr *addr, int *addrLen, int peer);
- static unsigned int VSockVmciPoll(struct file *file,
-@@ -233,13 +240,29 @@ static int VSockVmciStreamSetsockopt(struct socket *sock, int level, int optname
- static int VSockVmciStreamGetsockopt(struct socket *sock, int level, int optname,
- char __user *optval, int __user * optlen);
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- static int VSockVmciDgramSendmsg(struct kiocb *kiocb,
-+#else
-+static int VSockVmciDgramSendmsg(
-+#endif
- struct socket *sock, struct msghdr *msg, size_t len);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- static int VSockVmciDgramRecvmsg(struct kiocb *kiocb, struct socket *sock,
-+#else
-+static int VSockVmciDgramRecvmsg(struct socket *sock,
-+#endif
- struct msghdr *msg, size_t len, int flags);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- static int VSockVmciStreamSendmsg(struct kiocb *kiocb,
-+#else
-+static int VSockVmciStreamSendmsg(
-+#endif
- struct socket *sock, struct msghdr *msg, size_t len);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- static int VSockVmciStreamRecvmsg(struct kiocb *kiocb, struct socket *sock,
-+#else
-+static int VSockVmciStreamRecvmsg(struct socket *sock,
-+#endif
- struct msghdr *msg, size_t len, int flags);
-
- static int VSockVmciCreate(
-@@ -2872,11 +2895,18 @@ __VSockVmciCreate(struct net *net, // IN: Network namespace
- * From 2.6.9 to until 2.6.12 sk_alloc() used a cache in
- * the protocol structure, but you still had to specify the size and cache
- * yourself.
-- * Most recently (in 2.6.24), sk_alloc() was changed to expect the
-+ * In 2.6.24, sk_alloc() was changed to expect the
- * network namespace, and the option to zero the sock was dropped.
- *
-+ * In 4.2, another parameter was added to sk_alloc() allowing you to specify
-+ * whether or not the socket is to be a kernel socket. Previously, we passed
-+ * 1 to this new parameter, but following Gentoo's lead
-+ * ( https://github.com/gentoo/vmware/blob/master/app-emulation/vmware-modules/files/308-4.02-01-sk_alloc.patch#L19 )
-+ * we have switched to passing 0.
- */
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
-+ sk = sk_alloc(net, vsockVmciFamilyOps.family, priority, &vsockVmciProto, 0);
-+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
- sk = sk_alloc(vsockVmciFamilyOps.family, priority,
- vsockVmciProto.slab_obj_size, vsockVmciProto.slab);
- #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
-@@ -3825,7 +3855,12 @@
- static int
- VSockVmciAccept(struct socket *sock, // IN
- struct socket *newsock, // IN/OUT
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
- int flags) // IN
-+#else
-+ int flags, // IN
-+ bool kern)
-+#endif
- {
- struct sock *listener;
- int err;
-@@ -4260,7 +4295,11 @@ VSockVmciShutdown(struct socket *sock, // IN
- */
-
- static int
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- VSockVmciDgramSendmsg(struct kiocb *kiocb, // UNUSED
-+#else
-+VSockVmciDgramSendmsg(
-+#endif
- struct socket *sock, // IN: socket to send on
- struct msghdr *msg, // IN: message to send
- size_t len) // IN: length of message
-@@ -4352,7 +4391,11 @@ VSockVmciDgramSendmsg(struct kiocb *kiocb, // UNUSED
- goto out;
- }
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- memcpy_fromiovec(VMCI_DG_PAYLOAD(dg), msg->msg_iov, len);
-+#else
-+ memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len);
-+#endif
-
- dg->dst = VMCI_MAKE_HANDLE(remoteAddr->svm_cid, remoteAddr->svm_port);
- dg->src = VMCI_MAKE_HANDLE(vsk->localAddr.svm_cid, vsk->localAddr.svm_port);
-@@ -4590,7 +4633,11 @@ VSockVmciStreamGetsockopt(struct socket *sock, // IN
- */
-
- static int
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- VSockVmciStreamSendmsg(struct kiocb *kiocb, // UNUSED
-+#else
-+VSockVmciStreamSendmsg(
-+#endif
- struct socket *sock, // IN: socket to send on
- struct msghdr *msg, // IN: message to send
- size_t len) // IN: length of message
-@@ -4712,7 +4759,11 @@ VSockVmciStreamSendmsg(struct kiocb *kiocb, // UNUSED
- * able to send.
- */
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- written = vmci_qpair_enquev(vsk->qpair, msg->msg_iov,
-+#else
-+ written = vmci_qpair_enquev(vsk->qpair, &msg->msg_iter.iov,
-+#endif
- len - totalWritten, 0);
- if (written < 0) {
- err = -ENOMEM;
-@@ -4759,7 +4810,11 @@ out:
- */
-
- static int
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- VSockVmciDgramRecvmsg(struct kiocb *kiocb, // UNUSED
-+#else
-+VSockVmciDgramRecvmsg(
-+#endif
- struct socket *sock, // IN: socket to receive from
- struct msghdr *msg, // IN/OUT: message to receive into
- size_t len, // IN: length of receive buffer
-@@ -4809,7 +4864,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kiocb, // UNUSED
- }
-
- /* Place the datagram payload in the user's iovec. */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iov, payloadLen);
-+#else
-+ err = skb_copy_datagram_iter(skb, sizeof *dg, &msg->msg_iter, payloadLen);
-+#endif
- if (err) {
- goto out;
- }
-@@ -4850,7 +4909,11 @@ out:
- */
-
- static int
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
- VSockVmciStreamRecvmsg(struct kiocb *kiocb, // UNUSED
-+#else
-+VSockVmciStreamRecvmsg(
-+#endif
- struct socket *sock, // IN: socket to receive from
- struct msghdr *msg, // IN/OUT: message to receive into
- size_t len, // IN: length of receive buffer
-@@ -4955,9 +5018,17 @@ VSockVmciStreamRecvmsg(struct kiocb *kiocb, // UNUSED
- }
-
- if (flags & MSG_PEEK) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- read = vmci_qpair_peekv(vsk->qpair, msg->msg_iov, len - copied, 0);
-+#else
-+ read = vmci_qpair_peekv(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
-+#endif
- } else {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- read = vmci_qpair_dequev(vsk->qpair, msg->msg_iov, len - copied, 0);
-+#else
-+ read = vmci_qpair_dequev(vsk->qpair, &msg->msg_iter.iov, len - copied, 0);
-+#endif
- }
-
- if (read < 0) {
-diff --git a/vsock-only/linux/notify.c b/vsock-only/linux/notify.c
-index 5b1e134..82d8738 100644
---- a/vsock-only/linux/notify.c
-+++ b/vsock-only/linux/notify.c
-@@ -516,7 +516,11 @@ VSockVmciHandleWrote(struct sock *sk, // IN
- PKT_FIELD(vsk, sentWaitingRead) = FALSE;
- #endif
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
- sk->sk_data_ready(sk, 0);
-+#else
-+ sk->sk_data_ready(sk);
-+#endif
- }
-
-
-diff --git a/vsock-only/linux/notifyQState.c b/vsock-only/linux/notifyQState.c
-index 464454b..7933be7 100644
---- a/vsock-only/linux/notifyQState.c
-+++ b/vsock-only/linux/notifyQState.c
-@@ -164,7 +164,11 @@ VSockVmciHandleWrote(struct sock *sk, // IN
- struct sockaddr_vm *dst, // IN: unused
- struct sockaddr_vm *src) // IN: unused
- {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
- sk->sk_data_ready(sk, 0);
-+#else
-+ sk->sk_data_ready(sk);
-+#endif
- }
-
-
-@@ -566,7 +570,11 @@ VSockVmciNotifyPktRecvPostDequeue(struct sock *sk, // IN
- }
-
- /* See the comment in VSockVmciNotifyPktSendPostEnqueue */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
- sk->sk_data_ready(sk, 0);
-+#else
-+ sk->sk_data_ready(sk);
-+#endif
- }
-
- return err;
diff --git a/app-emulation/vmware-modules/vmware-modules-329.1.5.ebuild b/app-emulation/vmware-modules/vmware-modules-329.1.5-r1.ebuild
index 6329818..41c32e9 100644
--- a/app-emulation/vmware-modules/vmware-modules-329.1.5.ebuild
+++ b/app-emulation/vmware-modules/vmware-modules-329.1.5-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -58,7 +58,7 @@ src_unpack() {
}
src_prepare() {
- # from https://github.com/mkubecek/vmware-host-modules/tree/workstation-14.1.1
+ # from https://github.com/mkubecek/vmware-host-modules/tree/workstation-14.1.5
kernel_is ge 4 9 0 && epatch "${FILESDIR}/329-4.09-00-vmnet-use-standard-definition-of-PCI_VENDOR_ID_VMWAR.patch"
kernel_is ge 4 10 0 && epatch "${FILESDIR}/329-4.10-00-vmnet-use-standard-definition-of-PCI_VENDOR_ID_VMWAR.patch"
kernel_is ge 4 12 0 && epatch "${FILESDIR}/329-4.12-00-vmmon-use-standard-definition-of-MSR_MISC_FEATURES_E.patch"
@@ -68,6 +68,10 @@ src_prepare() {
epatch "${FILESDIR}/329-01-vmmon-fix-always_inline-attribute-usage.patch"
epatch "${FILESDIR}/329-02-vmmon-fix-indirect-call-with-retpoline-build.patch"
epatch "${FILESDIR}/329-03-vmmon-check-presence-of-file_operations-poll.patch"
+ epatch "${FILESDIR}/329-04-modules-replace-SUBDIRS-with-M.patch"
+ epatch "${FILESDIR}/329-05-vmmon-totalram_pages-is-a-function-since-5.0.patch"
+ epatch "${FILESDIR}/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch"
+ epatch "${FILESDIR}/329-07-modules-handle-access_ok-with-two-arguments.patch"
# decouple the kernel include dir from the running kernel version: https://github.com/stefantalpalaru/gentoo-overlay/issues/17
sed -i -e "s%HEADER_DIR = /lib/modules/\$(VM_UNAME)/build/include%HEADER_DIR = ${KERNEL_DIR}/include%" */Makefile || die "sed failed"
diff --git a/app-emulation/vmware-modules/vmware-modules-330.0.2.ebuild b/app-emulation/vmware-modules/vmware-modules-330.0.2-r1.ebuild
index 3bdd988..ade9af8 100644
--- a/app-emulation/vmware-modules/vmware-modules-330.0.2.ebuild
+++ b/app-emulation/vmware-modules/vmware-modules-330.0.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -58,7 +58,7 @@ src_unpack() {
}
src_prepare() {
- # from https://github.com/mkubecek/vmware-host-modules/tree/workstation-14.1.1
+ # from https://github.com/mkubecek/vmware-host-modules/tree/workstation-15.0.2
kernel_is ge 4 9 0 && epatch "${FILESDIR}/329-4.09-00-vmnet-use-standard-definition-of-PCI_VENDOR_ID_VMWAR.patch"
kernel_is ge 4 10 0 && epatch "${FILESDIR}/329-4.10-00-vmnet-use-standard-definition-of-PCI_VENDOR_ID_VMWAR.patch"
kernel_is ge 4 12 0 && epatch "${FILESDIR}/329-4.12-00-vmmon-use-standard-definition-of-MSR_MISC_FEATURES_E.patch"
@@ -68,6 +68,10 @@ src_prepare() {
epatch "${FILESDIR}/329-01-vmmon-fix-always_inline-attribute-usage.patch"
epatch "${FILESDIR}/329-02-vmmon-fix-indirect-call-with-retpoline-build.patch"
epatch "${FILESDIR}/329-03-vmmon-check-presence-of-file_operations-poll.patch"
+ epatch "${FILESDIR}/329-04-modules-replace-SUBDIRS-with-M.patch"
+ epatch "${FILESDIR}/329-05-vmmon-totalram_pages-is-a-function-since-5.0.patch"
+ epatch "${FILESDIR}/329-06-vmmon-bring-back-the-do_gettimeofday-helper.patch"
+ epatch "${FILESDIR}/329-07-modules-handle-access_ok-with-two-arguments.patch"
# decouple the kernel include dir from the running kernel version: https://github.com/stefantalpalaru/gentoo-overlay/issues/17
sed -i -e "s%HEADER_DIR = /lib/modules/\$(VM_UNAME)/build/include%HEADER_DIR = ${KERNEL_DIR}/include%" */Makefile || die "sed failed"
diff --git a/app-emulation/vmware-workstation/Manifest b/app-emulation/vmware-workstation/Manifest
index f757b9f..aec8b36 100644
--- a/app-emulation/vmware-workstation/Manifest
+++ b/app-emulation/vmware-workstation/Manifest
@@ -11,6 +11,6 @@ DIST com.vmware.fusion.tools.darwinPre15-14.1.5.10950780.zip.tar 2478080 BLAKE2B
DIST com.vmware.fusion.tools.darwinPre15-15.0.2.10952284.zip.tar 2478080 BLAKE2B 661a53816a33de87305a9d61040ba742c97ff3885b2004ea05f9d7b5a7d5862185e82e1cefe6aa505c89ac3d487574514258719148c4d9f58d172c40f47c9cd7 SHA512 b7132b9ed302de2ce3b39d63b8eaea7d82f7e1a8cb66f618fa0247119746000986b7014bfd1772e27df2e6941e1000fd6143fcf9fdd2bd9b7164b01a9bd2e8a0
DIST unlocker-3.0.2.tar.gz 15984801 BLAKE2B e157ed24ad6cea1ab16dd5fc11935b7cdbb3fb0a1e0a9c059eb100f0c57508b749884111b93a9f272ad2c5a9ecd4fadb177ccac47d7688665c5fa8f100fcd2b1 SHA512 83a390562761791531574c05d2a5caacd936b45b32f26a1e5ba953ce32e27af29cb3ac0984c552c2eb9cfdf033d4b95fae1c33a70f2b169563d74d1ea188dacf
DIST vmware-systemd-gentoo-02.tgz 14064 BLAKE2B 24ac2c2f295130f4aadad867ec88d652bd292cc60e6b471bb2e01069fe01d84dac3d8b0ca7690ebf218d663adfe0c1dc889d3f4f53cf3178b68291461260748b SHA512 3a382bfd5f1eb2b218d8012588ea55c1f22786dba35a1fc0fdfdb4e40b05e0e735ed09c6961684f6442e863c3ed72024ce01f19113bbd9ca47c32e3f43c55f42
-EBUILD vmware-workstation-14.1.5.10950780.ebuild 21229 BLAKE2B 91a655b414a893d78cb94308d714c30c21773d1e9ecc85049c15d3bf0968c658e47dfa55aa52b3a1834c9bece1340be482e73a37342ae89814a67180e2ac62be SHA512 a5ab74213cc505f4676d419bf6a8eefc242445f834e4c9c4eeced1fb94bac54ccd23ed177f4cdea2b62648983f0cef007cfe9c416d45e2ebb12e86fbc302f36a
-EBUILD vmware-workstation-15.0.2.10952284.ebuild 21229 BLAKE2B 883e4c67e3c75f3777830fcb28ccfde4f6a4cfc5e5219baa7cc5031775575cdf47631d5fab3f16200a8283fb502268ba863da4019a51154243cb3d95a1f0059e SHA512 fab45e76e929d23115a5f177e91964c076015868ed68d4ed804087480db259645cc4a041e94285db8967a675e251e66a8fa67c1a5ef92ffbe9c8da6e3c6bbbc2
+EBUILD vmware-workstation-14.1.5.10950780-r3.ebuild 21438 BLAKE2B df7f0bcc200bbca4741182ff6b4965c377cc977b23a35fc4ac9968c9eafb9e2f1f063b764c8cc14fee3866d15dfd81171867b09d56aa953b2c25a8d4053268a8 SHA512 b631f5a694e649771be1b704bb2e4138f96e2e05510f47783b8cf4118a569943586aaca145993528f0194004342af0130ab546e4d128cb7b3a1a81fecb3ff49e
+EBUILD vmware-workstation-15.0.2.10952284-r3.ebuild 21438 BLAKE2B 2f5ae1961568266cba5fd356fd43ac34e99c1fa21c23a3b914061409ef1da6fe36c43ae2376d3d19e30a41bf0feaf6780947de35bc846fdf1af4ba8d68f7b565 SHA512 7774b3a0f382279364be34f17a7bb821ef9fcfa82a4141c43a80708d4e57bada98866b68268c849091025956a8b617bd11b631ca06596ad4af9051c73609086d
MISC metadata.xml 2031 BLAKE2B 00e17d5cc895b1d1c12263653b9824fb3340e4a8ea7bfb44f878ab7c3b59db2238d71a8b4daedd2b7307206c6aba9dbf7ab7410f845cb9a6362fda41b11c06fd SHA512 1c1ed18e2cd0c2112c2e6dfeded9a3bc9c9d554d926e411c2c49d90c36c17941996c9d0ff62a3ab6f8df8ad0cd22b6a72d1889a4017dffae8a27f974ac8a7212
diff --git a/app-emulation/vmware-workstation/contrib/vmware-workstation-0-various-automation-hacks.patch b/app-emulation/vmware-workstation/contrib/vmware-workstation-0-various-automation-hacks.patch
new file mode 100644
index 0000000..6aad943
--- /dev/null
+++ b/app-emulation/vmware-workstation/contrib/vmware-workstation-0-various-automation-hacks.patch
@@ -0,0 +1,95 @@
+Date: Tue Jan 1 04:50:30 2019 -0800
+
+ vmware-workstation: crude vmware-installer fixing attempt
+
+ Just enough to get the various automation things to actually
+ work in the client, on my box. No idea if this is maintainable
+ or what... feels gross since I have no idea how any of this crap
+ actually works.
+ from Arch.
+
+ Probably totally broken without vendored libs. Not upstream ready.
+
+ also, needs bin/vmrun first in ${PATH}:
+
+ #!/bin/bash
+ tree=/opt/vmware
+ stutter=vmware/lib
+ libstutter() {
+ echo "lib${1}.so.1.0.2"
+ }
+ libpath() {
+ echo "${tree}/${stutter}/${stutter}/$(libstutter "${1}")"
+ }
+ export LD_LIBRARY_PATH="$(libpath ssl):$(libpath crypto)${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
+ exec /opt/vmware/bin/vmrun "$@"
+
+ Maybe something like that needs to go in place of /opt/vmware/bin/vmrun?
+
+---
+ .../vmware-workstation/files/vmware-server-15.0.rc | 6 +++++-
+ .../vmware-workstation-15.0.2.10952284-r2.ebuild | 19 ++++++++++++++++---
+ 2 files changed, 21 insertions(+), 4 deletions(-)
+
+diff --git a/app-emulation/vmware-workstation/files/vmware-server-15.0.rc b/app-emulation/vmware-workstation/files/vmware-server-15.0.rc
+index 8f9b7dd..20b6b80 100644
+--- a/app-emulation/vmware-workstation/files/vmware-server-15.0.rc
++++ b/app-emulation/vmware-workstation/files/vmware-server-15.0.rc
+@@ -47,6 +47,10 @@ stop() {
+ --pidfile /var/run/vmware/vmware-hostd.PID
+ eend $?
+ ebegin Stopping VMware Authentication Daemon
+- killall --wait vmware-authdlauncher
++ local needkill=1
++ killall -0 vmware-authdlauncher &>/dev/null || needkill=0
++ if [[ needkill -eq 1 ]]; then
++ kill -HUP --wait $(pidof vmware-authdlauncher)
++ fi
+ eend $?
+ }
+diff --git a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
+index c279020..ceb328b 100644
+--- a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
++++ b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
+@@ -346,10 +346,22 @@ src_install() {
+ rm -rf "${D}${VM_INSTALL_DIR}"/lib/vmware/*.so
+
+ # install the installer
+- insinto "${VM_INSTALL_DIR}"/lib/vmware-installer/$vmware_installer_version
+- doins vmware-installer/{vmis,vmis-launcher,vmware-installer,vmware-installer.py}
+ insinto /etc/vmware-installer
+ doins vmware-installer/bootstrap
++ sed -e "s|@@VERSION@@|${vmware_installer_version}|" \
++ -e "s|@@VMWARE_INSTALLER@@|/opt/vmware/lib/vmware-installer/${vmware_installer_version}|" \
++ -i "${D%/}"/etc/vmware-installer/bootstrap || die
++
++ exeinto "${VM_INSTALL_DIR}"/lib/vmware-installer/${vmware_installer_version}
++ doexe vmware-installer/{vmware-installer,vmis-launcher}
++
++ insinto "${VM_INSTALL_DIR}"/lib/vmware-installer/${vmware_installer_version}
++ doins vmware-installer/vmware-installer.py
++ doins -r vmware-installer/{artwork,.installer,vmis}
++ if use bundled-libs ; then
++ doins -r vmware-installer/{python,sopython}
++ doins -r vmware-installer/lib
++ fi
+
+ # workaround for hardcoded search paths needed during shared objects loading
+ if ! use bundled-libs ; then
+@@ -382,7 +394,7 @@ src_install() {
+ doexe */vmware-config
+
+ # pam
+- pamd_mimic_system vmware-authd auth account
++ pamd_mimic_system vmware-authd auth account password session
+
+ # fuse
+ insinto /etc/modprobe.d
+@@ -471,6 +483,7 @@ src_install() {
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware "${VM_INSTALL_DIR}"/bin/vmware
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
++ dosym "${VM_INSTALL_DIR}"/lib/vmware-installer/${vmware_installer_version}/vmware-installer "${VM_INSTALL_DIR}"/bin/vmware-installer
+
+ # fix permissions
+ fperms 0755 "${VM_INSTALL_DIR}"/lib/vmware/bin/{appLoader,fusermount,mkisofs,vmware-remotemks}
diff --git a/app-emulation/vmware-workstation/contrib/vmware-workstation-1-wierd-symlinks.patch b/app-emulation/vmware-workstation/contrib/vmware-workstation-1-wierd-symlinks.patch
new file mode 100644
index 0000000..b5c2958
--- /dev/null
+++ b/app-emulation/vmware-workstation/contrib/vmware-workstation-1-wierd-symlinks.patch
@@ -0,0 +1,32 @@
+Date: Wed Jan 2 15:11:27 2019 -0800
+
+ add wierd bin/vmware-netcfg & lib/libcrypto.so.1.0.2-x86-64 symlinks
+---
+ .../vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
+index ceb328b..89c24b1 100644
+--- a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
++++ b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
+@@ -345,6 +345,11 @@ src_install() {
+ doins -r */lib/* vmware-vmx/roms
+ rm -rf "${D}${VM_INSTALL_DIR}"/lib/vmware/*.so
+
++ # it wants this for whatever reason... fine, but what if ! use bundled-libs, still needed?
++ if use bundled-libs; then
++ dosym "libcrypto.so.1.0.2" "${VM_INSTALL_DIR}"/lib/vmware/lib/libcrypto.so.1.0.2-x86-64
++ fi
++
+ # install the installer
+ insinto /etc/vmware-installer
+ doins vmware-installer/bootstrap
+@@ -482,6 +487,7 @@ src_install() {
+ done
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware "${VM_INSTALL_DIR}"/bin/vmware
++ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-netcfg "${VM_INSTALL_DIR}"/bin/vmware-netcfg
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
+ dosym "${VM_INSTALL_DIR}"/lib/vmware-installer/${vmware_installer_version}/vmware-installer "${VM_INSTALL_DIR}"/bin/vmware-installer
+
+
diff --git a/app-emulation/vmware-workstation/contrib/vmware-workstation-2-more-symlinks.patch b/app-emulation/vmware-workstation/contrib/vmware-workstation-2-more-symlinks.patch
new file mode 100644
index 0000000..8798d3e
--- /dev/null
+++ b/app-emulation/vmware-workstation/contrib/vmware-workstation-2-more-symlinks.patch
@@ -0,0 +1,27 @@
+Date: Fri Jan 4 04:07:29 2019 -0800
+
+ Add a couple more symlinks and stuff for block-device mounting
+---
+ .../vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
+index 89c24b1..5e83794 100644
+--- a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
++++ b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r2.ebuild
+@@ -482,12 +482,13 @@ src_install() {
+
+ # create symlinks for the various tools
+ local tool ; for tool in thnuclnt vmware vmplayer{,-daemon} licenseTool vmamqpd \
+- vmware-{app-control,enter-serial,gksu,fuseUI,hostd,modconfig{,-console},netcfg,tray,unity-helper,vim-cmd,vmblock-fuse,vprobe,wssc-adminTool,zenity} ; do
++ vmware-{app-control,enter-serial,gksu,fuseUI,hostd,modconfig{,-console},netcfg,tray,unity-helper,vim-cmd,vmblock-fuse,vmware-fuseUI,vprobe,wssc-adminTool,zenity} ; do
+ dosym appLoader "${VM_INSTALL_DIR}"/lib/vmware/bin/"${tool}"
+ done
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmplayer "${VM_INSTALL_DIR}"/bin/vmplayer
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware "${VM_INSTALL_DIR}"/bin/vmware
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-netcfg "${VM_INSTALL_DIR}"/bin/vmware-netcfg
++ dosym "${VM_INSTALL_DIR}"/lib/vmware/bin/vmware-fuseUI "${VM_INSTALL_DIR}"/bin/vmware-fuseUI
+ dosym "${VM_INSTALL_DIR}"/lib/vmware/icu /etc/vmware/icu
+ dosym "${VM_INSTALL_DIR}"/lib/vmware-installer/${vmware_installer_version}/vmware-installer "${VM_INSTALL_DIR}"/bin/vmware-installer
+
+
diff --git a/app-emulation/vmware-workstation/vmware-workstation-14.1.5.10950780.ebuild b/app-emulation/vmware-workstation/vmware-workstation-14.1.5.10950780-r3.ebuild
index 5c510df..8a05848 100644
--- a/app-emulation/vmware-workstation/vmware-workstation-14.1.5.10950780.ebuild
+++ b/app-emulation/vmware-workstation/vmware-workstation-14.1.5.10950780-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -39,7 +39,7 @@ REQUIRED_USE="
vmware-tools-darwin? ( macos-guests )
vmware-tools-darwinPre15? ( macos-guests )
"
-RESTRICT="mirror strip"
+RESTRICT="mirror preserve-libs strip"
BUNDLED_LIBS_DIR=/opt/vmware/lib/vmware/lib
@@ -180,6 +180,7 @@ RDEPEND="
dev-libs/icu
dev-libs/json-c
dev-libs/nettle:0/6.2
+ <gnome-base/dconf-0.30.1
gnome-base/gconf
gnome-base/libgnome-keyring
media-gfx/graphite2
@@ -226,6 +227,11 @@ QA_WX_LOAD="opt/vmware/lib/vmware/tools-upgraders/vmware-tools-upgrader-32 opt/v
# adding "opt/vmware/lib/vmware/lib/libvmware-gksu.so/libvmware-gksu.so" to QA_WX_LOAD doesn't work
src_unpack() {
+ if has usersandbox $FEATURES ; then
+ ewarn "You are emerging ${P} with 'usersandbox' enabled." \
+ "If unpacking fails, try emerging with 'FEATURES=-usersandbox'!"
+ fi
+
for a in ${A}; do
if [ ${a##*.} == 'bundle' ]; then
cp "${DISTDIR}/${a}" "${WORKDIR}"
diff --git a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284.ebuild b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r3.ebuild
index 6352b01..9ebe259 100644
--- a/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284.ebuild
+++ b/app-emulation/vmware-workstation/vmware-workstation-15.0.2.10952284-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -39,7 +39,7 @@ REQUIRED_USE="
vmware-tools-darwin? ( macos-guests )
vmware-tools-darwinPre15? ( macos-guests )
"
-RESTRICT="mirror strip"
+RESTRICT="mirror preserve-libs strip"
BUNDLED_LIBS_DIR=/opt/vmware/lib/vmware/lib
@@ -180,6 +180,7 @@ RDEPEND="
dev-libs/icu
dev-libs/json-c
dev-libs/nettle:0/6.2
+ <gnome-base/dconf-0.30.1
gnome-base/gconf
gnome-base/libgnome-keyring
media-gfx/graphite2
@@ -226,6 +227,11 @@ QA_WX_LOAD="opt/vmware/lib/vmware/tools-upgraders/vmware-tools-upgrader-32 opt/v
# adding "opt/vmware/lib/vmware/lib/libvmware-gksu.so/libvmware-gksu.so" to QA_WX_LOAD doesn't work
src_unpack() {
+ if has usersandbox $FEATURES ; then
+ ewarn "You are emerging ${P} with 'usersandbox' enabled." \
+ "If unpacking fails, try emerging with 'FEATURES=-usersandbox'!"
+ fi
+
for a in ${A}; do
if [ ${a##*.} == 'bundle' ]; then
cp "${DISTDIR}/${a}" "${WORKDIR}"