[arch-commits] Commit in virtualbox/repos (31 files)
Christian Hesse
eworm at archlinux.org
Tue Dec 15 22:27:21 UTC 2020
Date: Tuesday, December 15, 2020 @ 22:27:20
Author: eworm
Revision: 776272
archrelease: copy trunk to community-testing-x86_64
Added:
virtualbox/repos/community-testing-x86_64/
virtualbox/repos/community-testing-x86_64/001-disable-update.patch
(from rev 776271, virtualbox/trunk/001-disable-update.patch)
virtualbox/repos/community-testing-x86_64/005-gsoap-build.patch
(from rev 776271, virtualbox/trunk/005-gsoap-build.patch)
virtualbox/repos/community-testing-x86_64/006-rdesktop-vrdp-keymap-path.patch
(from rev 776271, virtualbox/trunk/006-rdesktop-vrdp-keymap-path.patch)
virtualbox/repos/community-testing-x86_64/008-no-vboxvideo.patch
(from rev 776271, virtualbox/trunk/008-no-vboxvideo.patch)
virtualbox/repos/community-testing-x86_64/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch
(from rev 776271, virtualbox/trunk/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch)
virtualbox/repos/community-testing-x86_64/013-Makefile.patch
(from rev 776271, virtualbox/trunk/013-Makefile.patch)
virtualbox/repos/community-testing-x86_64/016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch
(from rev 776271, virtualbox/trunk/016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch)
virtualbox/repos/community-testing-x86_64/017-fix-narrowing-conversion.patch
(from rev 776271, virtualbox/trunk/017-fix-narrowing-conversion.patch)
virtualbox/repos/community-testing-x86_64/018-xclient.patch
(from rev 776271, virtualbox/trunk/018-xclient.patch)
virtualbox/repos/community-testing-x86_64/019-python3.9.patch
(from rev 776271, virtualbox/trunk/019-python3.9.patch)
virtualbox/repos/community-testing-x86_64/020-linux-5-10.patch
(from rev 776271, virtualbox/trunk/020-linux-5-10.patch)
virtualbox/repos/community-testing-x86_64/60-vboxdrv.rules
(from rev 776271, virtualbox/trunk/60-vboxdrv.rules)
virtualbox/repos/community-testing-x86_64/60-vboxguest.rules
(from rev 776271, virtualbox/trunk/60-vboxguest.rules)
virtualbox/repos/community-testing-x86_64/LocalConfig.kmk
(from rev 776271, virtualbox/trunk/LocalConfig.kmk)
virtualbox/repos/community-testing-x86_64/PKGBUILD
(from rev 776271, virtualbox/trunk/PKGBUILD)
virtualbox/repos/community-testing-x86_64/build.sh
(from rev 776271, virtualbox/trunk/build.sh)
virtualbox/repos/community-testing-x86_64/vboxdrmclient.path
(from rev 776271, virtualbox/trunk/vboxdrmclient.path)
virtualbox/repos/community-testing-x86_64/vboxdrmclient.service
(from rev 776271, virtualbox/trunk/vboxdrmclient.service)
virtualbox/repos/community-testing-x86_64/vboxreload
(from rev 776271, virtualbox/trunk/vboxreload)
virtualbox/repos/community-testing-x86_64/vboxservice-nox.service
(from rev 776271, virtualbox/trunk/vboxservice-nox.service)
virtualbox/repos/community-testing-x86_64/vboxservice.service
(from rev 776271, virtualbox/trunk/vboxservice.service)
virtualbox/repos/community-testing-x86_64/vboxweb.service
(from rev 776271, virtualbox/trunk/vboxweb.service)
virtualbox/repos/community-testing-x86_64/virtualbox-ext-vnc.install
(from rev 776271, virtualbox/trunk/virtualbox-ext-vnc.install)
virtualbox/repos/community-testing-x86_64/virtualbox-guest-dkms.install
(from rev 776271, virtualbox/trunk/virtualbox-guest-dkms.install)
virtualbox/repos/community-testing-x86_64/virtualbox-guest-utils.sysusers
(from rev 776271, virtualbox/trunk/virtualbox-guest-utils.sysusers)
virtualbox/repos/community-testing-x86_64/virtualbox-host-dkms.conf
(from rev 776271, virtualbox/trunk/virtualbox-host-dkms.conf)
virtualbox/repos/community-testing-x86_64/virtualbox-host-dkms.install
(from rev 776271, virtualbox/trunk/virtualbox-host-dkms.install)
virtualbox/repos/community-testing-x86_64/virtualbox-vboxsf-dkms.conf
(from rev 776271, virtualbox/trunk/virtualbox-vboxsf-dkms.conf)
virtualbox/repos/community-testing-x86_64/virtualbox.install
(from rev 776271, virtualbox/trunk/virtualbox.install)
virtualbox/repos/community-testing-x86_64/virtualbox.sysusers
(from rev 776271, virtualbox/trunk/virtualbox.sysusers)
----------------------------------------------------------------+
001-disable-update.patch | 13
005-gsoap-build.patch | 11
006-rdesktop-vrdp-keymap-path.patch | 12
008-no-vboxvideo.patch | 12
012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch | 14
013-Makefile.patch | 44 +
016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch | 189 ++++
017-fix-narrowing-conversion.patch | 37
018-xclient.patch | 24
019-python3.9.patch | 101 ++
020-linux-5-10.patch | 440 ++++++++++
60-vboxdrv.rules | 8
60-vboxguest.rules | 2
LocalConfig.kmk | 39
PKGBUILD | 394 ++++++++
build.sh | 3
vboxdrmclient.path | 6
vboxdrmclient.service | 7
vboxreload | 37
vboxservice-nox.service | 11
vboxservice.service | 13
vboxweb.service | 11
virtualbox-ext-vnc.install | 27
virtualbox-guest-dkms.install | 12
virtualbox-guest-utils.sysusers | 1
virtualbox-host-dkms.conf | 31
virtualbox-host-dkms.install | 12
virtualbox-vboxsf-dkms.conf | 10
virtualbox.install | 12
virtualbox.sysusers | 1
30 files changed, 1534 insertions(+)
Copied: virtualbox/repos/community-testing-x86_64/001-disable-update.patch (from rev 776271, virtualbox/trunk/001-disable-update.patch)
===================================================================
--- community-testing-x86_64/001-disable-update.patch (rev 0)
+++ community-testing-x86_64/001-disable-update.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,13 @@
+diff --git a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
+index da373c92..18fb69a7 100644
+--- a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
++++ b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
+@@ -2349,7 +2349,7 @@ QString UIExtraDataManager::preventBetaBuildWarningForVersion()
+ bool UIExtraDataManager::applicationUpdateEnabled()
+ {
+ /* 'True' unless 'restriction' feature allowed: */
+- return !isFeatureAllowed(GUI_PreventApplicationUpdate);
++ return false;
+ }
+
+ QString UIExtraDataManager::applicationUpdateData()
Copied: virtualbox/repos/community-testing-x86_64/005-gsoap-build.patch (from rev 776271, virtualbox/trunk/005-gsoap-build.patch)
===================================================================
--- community-testing-x86_64/005-gsoap-build.patch (rev 0)
+++ community-testing-x86_64/005-gsoap-build.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,11 @@
+--- a/src/VBox/Main/webservice/Makefile.kmk 2013-11-21 19:00:46.812761628 +0100
++++ b/src/VBox/Main/webservice/Makefile.kmk 2016-08-18 15:16:05.803599026 +0100
+@@ -724,7 +724,7 @@ $(VBOXWEB_OUT_DIR)/gsoap_generate_all_ts \
+ $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
+ $(call MSG_GENERATE,,lots of files,$(GSOAPH_RELEVANT))
+ $(RM) -f $@
+- $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
++ $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -z1 -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
+ ifeq ($(KBUILD_TARGET),win) # MSC -Wall workaround.
+ $(CP) -f "$(VBOXWEB_SOAP_CLIENT_H)" "$(VBOXWEB_SOAP_CLIENT_H).tmp"
+ $(SED) -f $(VBOX_PATH_WEBSERVICE)/stdsoap2.sed --output "$(VBOXWEB_SOAP_CLIENT_H)" "$(VBOXWEB_SOAP_CLIENT_H).tmp"
Copied: virtualbox/repos/community-testing-x86_64/006-rdesktop-vrdp-keymap-path.patch (from rev 776271, virtualbox/trunk/006-rdesktop-vrdp-keymap-path.patch)
===================================================================
--- community-testing-x86_64/006-rdesktop-vrdp-keymap-path.patch (rev 0)
+++ community-testing-x86_64/006-rdesktop-vrdp-keymap-path.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,12 @@
+# 2015 © Sébastien Luttringer
+--- a/src/VBox/RDP/client-1.8.4/Makefile.kmk
++++ b/src/VBox/RDP/client-1.8.4/Makefile.kmk
+@@ -41,7 +41,7 @@
+ EGD_SOCKET=\"/var/run/egd-pool\" WITH_RDPSND=1 HAVE_DIRENT_H=1 \
+ HAVE_ICONV=1 HAVE_SYS_STATVFS_H=1 \
+ HAVE_SYS_PARAM_H=1 HAVE_SYS_MOUNT_H=1 HAVE_STRUCT_STATVFS_F_NAMEMAX=1 \
+- KEYMAP_PATH=$(if $(findstring RTPATH_APP_PRIVATE,$(CDEFS)),RTPATH_APP_PRIVATE,\"/opt/VirtualBox\")\"/rdesktop-vrdp-keymaps\" \
++ KEYMAP_PATH=$(if $(findstring RTPATH_APP_PRIVATE,$(CDEFS)),RTPATH_APP_PRIVATE,\"/usr/share/virtualbox\")\"/rdesktop-vrdp-keymaps\" \
+ RDESKTOP=1
+ ifdef WITH_BIRD_VD_HACKS
+ rdesktop-vrdp_DEFS += WITH_BIRD_VD_HACKS
Copied: virtualbox/repos/community-testing-x86_64/008-no-vboxvideo.patch (from rev 776271, virtualbox/trunk/008-no-vboxvideo.patch)
===================================================================
--- community-testing-x86_64/008-no-vboxvideo.patch (rev 0)
+++ community-testing-x86_64/008-no-vboxvideo.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,12 @@
+Fix FTBFS by not compile X.org-1.19 drv, we don't use it, just need in el <= 7
+--- ./src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2016-10-11 02:49:23.184986182 +0100
++++ ./src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2016-10-11 02:49:39.879176964 +0100
+@@ -376,7 +376,7 @@ vboxvideo_drv_118_SOURCES := $(vboxvideo
+
+ ifdef VBOX_USE_SYSTEM_XORG_HEADERS
+ # Build using local X.Org headers. We assume X.Org Server 1.7 or later.
+- DLLS := $(filter-out vboxvideo_drv_%,$(DLLS)) vboxvideo_drv_system
++ DLLS := $(filter-out vboxvideo_drv_%,$(DLLS))
+ SYSMODS := $(filter-out vboxvideo_drv%,$(SYSMODS))
+ vboxvideo_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_system_CFLAGS := \
Copied: virtualbox/repos/community-testing-x86_64/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch (from rev 776271, virtualbox/trunk/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch)
===================================================================
--- community-testing-x86_64/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch (rev 0)
+++ community-testing-x86_64/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,14 @@
+diff --git a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
+index 6ad7df3e..2f12c277 100644
+--- a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
++++ b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
+@@ -162,6 +162,9 @@ static int vbglR3GuestCtrlMsgWaitFor(uint32_t idClient, uint32_t *pidMsg, uint32
+ */
+ DECL_NO_INLINE(static, bool) vbglR3GuestCtrlDetectPeekGetCancelSupport(uint32_t idClient)
+ {
++
++ return false;
++
+ /*
+ * Seems we get VINF_SUCCESS back from the host if we try unsupported
+ * guest control functions, so we need to supply some random message
Copied: virtualbox/repos/community-testing-x86_64/013-Makefile.patch (from rev 776271, virtualbox/trunk/013-Makefile.patch)
===================================================================
--- community-testing-x86_64/013-Makefile.patch (rev 0)
+++ community-testing-x86_64/013-Makefile.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,44 @@
+diff --git a/src/VBox/HostDrivers/linux/Makefile b/src/VBox/HostDrivers/linux/Makefile
+index 18466b48..7c7de4e5 100644
+--- a/src/VBox/HostDrivers/linux/Makefile
++++ b/src/VBox/HostDrivers/linux/Makefile
+@@ -23,25 +23,25 @@
+ # terms and conditions of either the GPL or the CDDL or both.
+ #
+
+-ifneq ($(KERNELRELEASE),)
++ifneq ($(KBUILD_EXTMOD),)
+
+-# Building from kBuild (make -C <kernel_directory> M=`pwd`),
+-# or inside a kernel source tree.
++# Building from kBuild (make -C <kernel_directory> M=`pwd`).
++# KBUILD_EXTMOD is set to $(M) in this case.
+
+ obj-m = vboxdrv/
+-ifneq ($(wildcard $(CURDIR)/vboxnetflt/Makefile),)
++ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxnetflt/Makefile),)
+ obj-m += vboxnetflt/
+ endif
+-ifneq ($(wildcard $(CURDIR)/vboxnetadp/Makefile),)
++ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxnetadp/Makefile),)
+ obj-m += vboxnetadp/
+ endif
+-ifneq ($(wildcard $(CURDIR)/vboxpci/Makefile),)
++ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxpci/Makefile),)
+ obj-m += vboxpci/
+ endif
+
+-else # ! KERNELRELEASE
++else # ! KBUILD_EXTMOD
+
+-# convenience Makefile without KERNELRELEASE
++# convenience Makefile without KBUILD_EXTMOD
+
+ KBUILD_VERBOSE ?=
+ KERN_VER ?= $(shell uname -r)
+@@ -146,4 +146,4 @@ load: unload
+ fi; \
+ done
+
+-endif # ! KERNELRELEASE
++endif # ! KBUILD_EXTMOD
Copied: virtualbox/repos/community-testing-x86_64/016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch (from rev 776271, virtualbox/trunk/016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch)
===================================================================
--- community-testing-x86_64/016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch (rev 0)
+++ community-testing-x86_64/016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,189 @@
+From 369dd2ee3c82c4417fee04aeec933c74fd198e78 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Tue, 23 Jan 2018 15:09:20 +0100
+Subject: [PATCH resend] VBoxServiceAutoMount: Change Linux mount code to use
+ an options string
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+---
+ .../common/VBoxService/VBoxServiceAutoMount.cpp | 62 +++-------------------
+ 1 file changed, 8 insertions(+), 54 deletions(-)
+
+diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp
+--- ./src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp.orig 2019-04-16 11:09:11.000000000 +0100
++++ ./src/VBox/Additions/common/VBoxService/VBoxServiceAutoMount.cpp 2019-04-26 17:10:47.178485356 +0100
+@@ -40,6 +40,7 @@
+ #include <iprt/ctype.h>
+ #include <iprt/dir.h>
+ #include <iprt/mem.h>
++#include <iprt/param.h>
+ #include <iprt/path.h>
+ #include <iprt/semaphore.h>
+ #include <iprt/sort.h>
+@@ -114,6 +115,9 @@ RT_C_DECLS_END
+ # define VBOXSERVICE_AUTOMOUNT_MIQF SHFL_MIQF_PATH
+ #endif
+
++#ifndef MAX_MNTOPT_STR
++#define MAX_MNTOPT_STR PAGE_SIZE
++#endif
+
+ /*********************************************************************************************************************************
+ * Structures and Typedefs *
+@@ -400,13 +399,13 @@ static int vbsvcAutoMountSharedFolderOld
+ int rc = vbsvcAutoMountPrepareMountPointOld(pszMountPoint, pszShareName, &Opts);
+ if (RT_SUCCESS(rc))
+ {
++ char szOptBuf[MAX_MNTOPT_STR] = { '\0', };
++ RTStrPrintf(szOptBuf, sizeof(szOptBuf), "uid=%d,gid=%d,dmode=%0o,fmode=%0o,dmask=%0o,fmask=%0o",
++ Opts.uid, Opts.gid, Opts.dmode, Opts.fmode, Opts.dmask, Opts.fmask);
+ # ifdef RT_OS_SOLARIS
+ int fFlags = 0;
+ if (Opts.ronly)
+ fFlags |= MS_RDONLY;
+- char szOptBuf[MAX_MNTOPT_STR] = { '\0', };
+- RTStrPrintf(szOptBuf, sizeof(szOptBuf), "uid=%d,gid=%d,dmode=%0o,fmode=%0o,dmask=%0o,fmask=%0o",
+- Opts.uid, Opts.gid, Opts.dmode, Opts.fmode, Opts.dmask, Opts.fmask);
+ int r = mount(pszShareName,
+ pszMountPoint,
+ fFlags | MS_OPTIONSTR,
+@@ -423,35 +422,11 @@ static int vbsvcAutoMountSharedFolderOld
+
+ # else /* RT_OS_LINUX */
+ unsigned long fFlags = MS_NODEV;
+-
+- /*const char *szOptions = { "rw" }; - ??? */
+- struct vbsf_mount_info_new mntinf;
+- RT_ZERO(mntinf);
+-
+- mntinf.nullchar = '\0';
+- mntinf.signature[0] = VBSF_MOUNT_SIGNATURE_BYTE_0;
+- mntinf.signature[1] = VBSF_MOUNT_SIGNATURE_BYTE_1;
+- mntinf.signature[2] = VBSF_MOUNT_SIGNATURE_BYTE_2;
+- mntinf.length = sizeof(mntinf);
+-
+- mntinf.uid = Opts.uid;
+- mntinf.gid = Opts.gid;
+- mntinf.ttl = Opts.ttl;
+- mntinf.dmode = Opts.dmode;
+- mntinf.fmode = Opts.fmode;
+- mntinf.dmask = Opts.dmask;
+- mntinf.fmask = Opts.fmask;
+- mntinf.cMaxIoPages = Opts.cMaxIoPages;
+- mntinf.szTag[0] = '\0';
+-
+- strcpy(mntinf.name, pszShareName);
+- strcpy(mntinf.nls_name, "\0");
+-
+ int r = mount(pszShareName,
+ pszMountPoint,
+ "vboxsf",
+ fFlags,
+- &mntinf);
++ szOptBuf);
+ if (r == 0)
+ {
+ VGSvcVerbose(0, "vbsvcAutoMountWorker: Shared folder '%s' was mounted to '%s'\n", pszShareName, pszMountPoint);
+@@ -484,34 +459,6 @@ static int vbsvcAutoMountSharedFolderOld
+ }
+ else /* r == -1, we got some error in errno. */
+ {
+- if (errno == EPROTO)
+- {
+- VGSvcVerbose(3, "vbsvcAutoMountWorker: Messed up share name, re-trying ...\n");
+-
+- /** @todo r=bird: What on earth is going on here????? Why can't you
+- * strcpy(mntinf.name, pszShareName) to fix it again? */
+-
+- /* Sometimes the mount utility messes up the share name. Try to
+- * un-mangle it again. */
+- char szCWD[RTPATH_MAX];
+- size_t cchCWD;
+- if (!getcwd(szCWD, sizeof(szCWD)))
+- {
+- VGSvcError("vbsvcAutoMountWorker: Failed to get the current working directory\n");
+- szCWD[0] = '\0';
+- }
+- cchCWD = strlen(szCWD);
+- if (!strncmp(pszMountPoint, szCWD, cchCWD))
+- {
+- while (pszMountPoint[cchCWD] == '/')
+- ++cchCWD;
+- /* We checked before that we have enough space */
+- strcpy(mntinf.name, pszMountPoint + cchCWD);
+- }
+- r = mount(mntinf.name, pszMountPoint, "vboxsf", fFlags, &mntinf);
+- }
+- if (r == -1) /* Was there some error from one of the tries above? */
+- {
+ switch (errno)
+ {
+ /* If we get EINVAL here, the system already has mounted the Shared Folder to another
+@@ -530,7 +477,6 @@ static int vbsvcAutoMountSharedFolderOld
+ rc = RTErrConvertFromErrno(errno);
+ break;
+ }
+- }
+ }
+ # endif
+ }
+@@ -1464,51 +1410,21 @@ static int vbsvcAutomounterMountIt(PVBSV
+ }
+
+ # if defined(RT_OS_LINUX)
+- /*
+- * Linux a bit more work...
+- */
+- struct vbsf_mount_info_new MntInfo;
+- RT_ZERO(MntInfo);
+- struct vbsf_mount_opts MntOpts;
+- RT_ZERO(MntOpts);
+- MntInfo.nullchar = '\0';
+- MntInfo.signature[0] = VBSF_MOUNT_SIGNATURE_BYTE_0;
+- MntInfo.signature[1] = VBSF_MOUNT_SIGNATURE_BYTE_1;
+- MntInfo.signature[2] = VBSF_MOUNT_SIGNATURE_BYTE_2;
+- MntInfo.length = sizeof(MntInfo);
+- MntInfo.ttl = MntOpts.ttl = -1 /*default*/;
+- MntInfo.msDirCacheTTL= MntOpts.msDirCacheTTL = -1 /*default*/;
+- MntInfo.msInodeTTL = MntOpts.msInodeTTL = -1 /*default*/;
+- MntInfo.cMaxIoPages = MntOpts.cMaxIoPages = 0 /*default*/;
+- MntInfo.cbDirBuf = MntOpts.cbDirBuf = 0 /*default*/;
+- MntInfo.enmCacheMode = MntOpts.enmCacheMode = kVbsfCacheMode_Default;
+- MntInfo.uid = MntOpts.uid = 0;
+- MntInfo.gid = MntOpts.gid = gidMount;
+- MntInfo.dmode = MntOpts.dmode = 0770;
+- MntInfo.fmode = MntOpts.fmode = 0770;
+- MntInfo.dmask = MntOpts.dmask = 0000;
+- MntInfo.fmask = MntOpts.fmask = 0000;
+- memcpy(MntInfo.szTag, g_szTag, sizeof(g_szTag)); AssertCompile(sizeof(MntInfo.szTag) >= sizeof(g_szTag));
+- rc = RTStrCopy(MntInfo.name, sizeof(MntInfo.name), pEntry->pszName);
+- if (RT_FAILURE(rc))
++ unsigned long fFlags = MS_NODEV;
++ char szOpts[MAX_MNTOPT_STR] = { '\0', };
++ ssize_t cchOpts = RTStrPrintf2(szOpts, sizeof(szOpts),
++ "uid=0,gid=%d,dmode=0770,fmode=0770,dmask=0000,fmask=0000", gidMount);
++ if (cchOpts <= 0)
+ {
+- VGSvcError("vbsvcAutomounterMountIt: Share name '%s' is too long for the MntInfo.name field!\n", pEntry->pszName);
+- return rc;
++ VGSvcError("vbsvcAutomounterMountIt: szOpts overflow! %zd\n", cchOpts);
++ return VERR_BUFFER_OVERFLOW;
+ }
+
+- errno = 0;
+- unsigned long fFlags = MS_NODEV;
+- rc = mount(pEntry->pszName, pEntry->pszActualMountPoint, "vboxsf", fFlags, &MntInfo);
++ rc = mount(pEntry->pszName, pEntry->pszActualMountPoint, "vboxsf", fFlags, szOpts);
+ if (rc == 0)
+ {
+ VGSvcVerbose(0, "vbsvcAutomounterMountIt: Successfully mounted '%s' on '%s'\n",
+ pEntry->pszName, pEntry->pszActualMountPoint);
+-
+- errno = 0;
+- rc = vbsfmount_complete(pEntry->pszName, pEntry->pszActualMountPoint, fFlags, &MntOpts);
+- if (rc != 0) /* Ignorable. /etc/mtab is probably a link to /proc/mounts. */
+- VGSvcVerbose(1, "vbsvcAutomounterMountIt: vbsfmount_complete failed: %s (%d/%d)\n",
+- rc == 1 ? "open_memstream" : rc == 2 ? "setmntent" : rc == 3 ? "addmntent" : "unknown", rc, errno);
+ return VINF_SUCCESS;
+ }
+ else if (errno == EINVAL)
Copied: virtualbox/repos/community-testing-x86_64/017-fix-narrowing-conversion.patch (from rev 776271, virtualbox/trunk/017-fix-narrowing-conversion.patch)
===================================================================
--- community-testing-x86_64/017-fix-narrowing-conversion.patch (rev 0)
+++ community-testing-x86_64/017-fix-narrowing-conversion.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,37 @@
+From ee6ae088673d14c407d4773855dbda821024653c Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail at eworm.de>
+Date: Sun, 17 May 2020 00:40:18 +0200
+Subject: [PATCH 1/1] fix narrowing conversion
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Building fails with:
+
+/build/virtualbox/src/VirtualBox-6.1.8/src/VBox/Debugger/DBGCDumpImage.cpp: In function ‘const char* dbgcMachoCpuType(uint32_t, uint32_t)’:
+/build/virtualbox/src/VirtualBox-6.1.8/include/iprt/formats/mach-o.h:41:46: error: narrowing conversion of ‘-1’ from ‘int’ to ‘unsigned int’ [-Wnarrowing]
+ 41 | #define CPU_TYPE_ANY INT32_C(-1)
+ | ^
+/build/virtualbox/src/VirtualBox-6.1.8/src/VBox/Debugger/DBGCDumpImage.cpp:471:14: note: in expansion of macro ‘CPU_TYPE_ANY’
+ 471 | case CPU_TYPE_ANY: return "CPU_TYPE_ANY";
+ | ^~~~~~~~~~~~
+
+As uType is unsigned it can never match CPU_TYPE_ANY, which is -1.
+
+Signed-off-by: Christian Hesse <mail at eworm.de>
+---
+ src/VBox/Debugger/DBGCDumpImage.cpp | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/VBox/Debugger/DBGCDumpImage.cpp b/src/VBox/Debugger/DBGCDumpImage.cpp
+index 02ba3158..d906c37c 100644
+--- a/src/VBox/Debugger/DBGCDumpImage.cpp
++++ b/src/VBox/Debugger/DBGCDumpImage.cpp
+@@ -468,7 +468,6 @@ static const char *dbgcMachoCpuType(uint32_t uType, uint32_t uSubType)
+ {
+ switch (uType)
+ {
+- case CPU_TYPE_ANY: return "CPU_TYPE_ANY";
+ case CPU_TYPE_VAX: return "VAX";
+ case CPU_TYPE_MC680x0: return "MC680x0";
+ case CPU_TYPE_X86: return "X86";
Copied: virtualbox/repos/community-testing-x86_64/018-xclient.patch (from rev 776271, virtualbox/trunk/018-xclient.patch)
===================================================================
--- community-testing-x86_64/018-xclient.patch (rev 0)
+++ community-testing-x86_64/018-xclient.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,24 @@
+--- a/src/VBox/Additions/x11/Installer/98vboxadd-xclient
++++ b/src/VBox/Additions/x11/Installer/98vboxadd-xclient
+@@ -21,18 +21,11 @@ for i in $HOME/.vboxclient-*.pid; do
+ test -w $i || rm -f $i
+ done
+
+-if ! test -c /dev/vboxguest 2>/dev/null; then
+- # Do not start if the kernel module is not present.
+- # Execute notify-send in the back-ground to avoid racing with sddm,
+- # as notify-send may wait for sddm to start while it waits for us to exit.
+- notify-send "VBoxClient: the VirtualBox kernel service is not running. Exiting." &
+-elif test -z "${SSH_CONNECTION}"; then
+- # This script can also be triggered by a connection over SSH, which is not
+- # what we had in mind, so we do not start VBoxClient in that case. We do
+- # not use "exit" here as this script is "source"d, not executed.
++# Do not start if the kernel module is not present; or if this script is
++# triggered by a connection over SSH.
++if [ -c /dev/vboxguest -a -z "${SSH_CONNECTION}" ]; then
+ /usr/bin/VBoxClient --clipboard
+ /usr/bin/VBoxClient --checkhostversion
+ /usr/bin/VBoxClient --seamless
+ /usr/bin/VBoxClient --draganddrop
+- /usr/bin/VBoxClient --vmsvga # In case VMSVGA emulation is enabled
+ fi
Copied: virtualbox/repos/community-testing-x86_64/019-python3.9.patch (from rev 776271, virtualbox/trunk/019-python3.9.patch)
===================================================================
--- community-testing-x86_64/019-python3.9.patch (rev 0)
+++ community-testing-x86_64/019-python3.9.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,101 @@
+--- ./src/libs/xpcom18a4/python/gen_python_deps.py.orig 2020-06-01 05:15:00.905907651 +0100
++++ ./src/libs/xpcom18a4/python/gen_python_deps.py 2020-06-01 05:15:48.161226499 +0100
+@@ -16,7 +16,7 @@ from __future__ import print_function
+ import os,sys
+ from distutils.version import StrictVersion
+
+-versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.8m" ]
++versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.8m", "3.9", "3.9m" ]
+ prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
+ known = {}
+
+--- ./configure.orig 2020-06-01 01:15:53.880747364 +0100
++++ ./configure 2020-06-01 01:17:42.231478707 +0100
+@@ -1992,7 +1992,7 @@ extern "C" int main(void)
+ }
+ EOF
+ found=
+- SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m"
++ SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m python3.9 python3.9m"
+ for p in $PYTHONDIR; do
+ for d in $SUPPYTHONLIBS; do
+ for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do
+--- ./src/libs/xpcom18a4/python/Makefile.kmk.orig 2020-06-01 05:16:07.610357728 +0100
++++ ./src/libs/xpcom18a4/python/Makefile.kmk 2020-06-01 05:22:44.735037239 +0100
+@@ -26,7 +26,7 @@ endif
+
+ #
+ # List of supported Python versions, defining a number of
+-# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|DEF]_[INC|LIB] variables
++# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|DEF]_[INC|LIB] variables
+ # which get picked up below.
+ #
+ ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
+@@ -532,6 +532,52 @@ VBoxPython3_8m_x86_LIBS = $(VBOX_P
+ endif
+ endif
+ endif
++
++ifdef VBOX_PYTHON39_INC
++#
++# Python 3.9 version
++#
++DLLS += VBoxPython3_9
++VBoxPython3_9_EXTENDS = VBoxPythonBase
++VBoxPython3_9_EXTENDS_BY = appending
++VBoxPython3_9_TEMPLATE = XPCOM
++VBoxPython3_9_INCS = $(VBOX_PYTHON39_INC)
++VBoxPython3_9_LIBS = $(VBOX_PYTHON39_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON39_LIB_X86
++DLLS += VBoxPython3_9_x86
++VBoxPython3_9_x86_EXTENDS = VBoxPythonBase_x86
++VBoxPython3_9_x86_EXTENDS_BY = appending
++VBoxPython3_9_x86_TEMPLATE = XPCOM
++VBoxPython3_9_x86_INCS = $(VBOX_PYTHON39_INC)
++VBoxPython3_9_x86_LIBS = $(VBOX_PYTHON39_LIB_X86)
++ endif
++ endif
++endif
++
++ifdef VBOX_PYTHON39M_INC
++#
++# Python 3.9 version with pymalloc
++#
++DLLS += VBoxPython3_9m
++VBoxPython3_9m_EXTENDS = VBoxPythonBase_m
++VBoxPython3_9m_EXTENDS_BY = appending
++VBoxPython3_9m_TEMPLATE = XPCOM
++VBoxPython3_9m_INCS = $(VBOX_PYTHON39M_INC)
++VBoxPython3_9m_LIBS = $(VBOX_PYTHON39M_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON39M_LIB_X86
++DLLS += VBoxPython3_9m_x86
++VBoxPython3_9m_x86_EXTENDS = VBoxPythonBase_x86_m
++VBoxPython3_9m_x86_EXTENDS_BY = appending
++VBoxPython3_9m_x86_TEMPLATE_ = XPCOM
++VBoxPython3_9m_x86_INCS = $(VBOX_PYTHON39M_INC)
++VBoxPython3_9m_x86_LIBS = $(VBOX_PYTHON39M_LIB_X86)
++ endif
++ endif
++endif
+
+ ifdef VBOX_PYTHONDEF_INC
+ #
+--- ./src/libs/xpcom18a4/python/src/module/_xpcom.cpp.orig 2020-06-01 06:01:12.923522302 +0100
++++ ./src/libs/xpcom18a4/python/src/module/_xpcom.cpp 2020-06-01 06:02:25.704013030 +0100
+@@ -84,7 +84,11 @@ extern PYXPCOM_EXPORT void PyXPCOM_Inter
+ # define MANGLE_MODULE_INIT(a_Name) RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
+ # endif
+ # ifdef VBOX_PYXPCOM_VERSIONED
+-# if PY_VERSION_HEX >= 0x03080000 && PY_VERSION_HEX < 0x03090000
++# if PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x03100000
++# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_9")
++# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_9)
++
++# elif PY_VERSION_HEX >= 0x03080000 && PY_VERSION_HEX < 0x03090000
+ # define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_8")
+ # define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_8)
+
Copied: virtualbox/repos/community-testing-x86_64/020-linux-5-10.patch (from rev 776271, virtualbox/trunk/020-linux-5-10.patch)
===================================================================
--- community-testing-x86_64/020-linux-5-10.patch (rev 0)
+++ community-testing-x86_64/020-linux-5-10.patch 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,440 @@
+From df0ee1389b64bdfd5afa91d6377f5dd2bd9dfc3b Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail at eworm.de>
+Date: Tue, 15 Dec 2020 23:07:27 +0100
+Subject: [PATCH 1/3] linux-5.10-r0drv-memobj-fix-r0.patch
+---
+ .../Runtime/r0drv/linux/memobj-r0drv-linux.c | 61 ++++++++++++++++++-
+ 1 file changed, 60 insertions(+), 1 deletion(-)
+
+diff --git a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
+index c771c1ba..a34eb149 100644
+--- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
++++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
+@@ -56,9 +56,12 @@
+ * Whether we use alloc_vm_area (3.2+) for executable memory.
+ * This is a must for 5.8+, but we enable it all the way back to 3.2.x for
+ * better W^R compliance (fExecutable flag). */
+-#if RTLNX_VER_MIN(3,2,0) || defined(DOXYGEN_RUNNING)
++#if RTLNX_VER_RANGE(3,2,0, 5,10,0) || defined(DOXYGEN_RUNNING)
+ # define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
+ #endif
++#if RTLNX_VER_MIN(5,10,0) || defined(DOXYGEN_RUNNING)
++# define IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
++#endif
+
+ /*
+ * 2.6.29+ kernels don't work with remap_pfn_range() anymore because
+@@ -502,6 +505,42 @@ static void rtR0MemObjLinuxFreePages(PRTR0MEMOBJLNX pMemLnx)
+ }
+
+
++#ifdef IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
++/**
++ * User data passed to the apply_to_page_range() callback.
++ */
++typedef struct LNXAPPLYPGRANGE
++{
++ /** Pointer to the memory object. */
++ PRTR0MEMOBJLNX pMemLnx;
++ /** The page protection flags to apply. */
++ pgprot_t fPg;
++} LNXAPPLYPGRANGE;
++/** Pointer to the user data. */
++typedef LNXAPPLYPGRANGE *PLNXAPPLYPGRANGE;
++/** Pointer to the const user data. */
++typedef const LNXAPPLYPGRANGE *PCLNXAPPLYPGRANGE;
++
++/**
++ * Callback called in apply_to_page_range().
++ *
++ * @returns Linux status code.
++ * @param pPte Pointer to the page table entry for the given address.
++ * @param uAddr The address to apply the new protection to.
++ * @param pvUser The opaque user data.
++ */
++static DECLCALLBACK(int) rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
++{
++ PCLNXAPPLYPGRANGE pArgs = (PCLNXAPPLYPGRANGE)pvUser;
++ PRTR0MEMOBJLNX pMemLnx = pArgs->pMemLnx;
++ uint32_t idxPg = (uAddr - (unsigned long)pMemLnx->Core.pv) >> PAGE_SHIFT;
++
++ set_pte(pPte, mk_pte(pMemLnx->apPages[idxPg], pArgs->fPg));
++ return 0;
++}
++#endif
++
++
+ /**
+ * Maps the allocation into ring-0.
+ *
+@@ -584,6 +623,11 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMOBJLNX pMemLnx, bool fExecutable)
+ else
+ # endif
+ {
++# if defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
++ if (fExecutable)
++ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */
++# endif
++
+ # ifdef VM_MAP
+ pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg);
+ # else
+@@ -1851,6 +1895,21 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub,
+ preempt_enable();
+ return VINF_SUCCESS;
+ }
++# elif defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
++ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem;
++ if ( pMemLnx->fExecutable
++ && pMemLnx->fMappedToRing0)
++ {
++ LNXAPPLYPGRANGE Args;
++ Args.pMemLnx = pMemLnx;
++ Args.fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/);
++ int rcLnx = apply_to_page_range(current->active_mm, (unsigned long)pMemLnx->Core.pv + offSub, cbSub,
++ rtR0MemObjLinuxApplyPageRange, (void *)&Args);
++ if (rcLnx)
++ return VERR_NOT_SUPPORTED;
++
++ return VINF_SUCCESS;
++ }
+ # endif
+
+ NOREF(pMem);
+
+From 3735d45f5ac89f436b7024de5558f5db6aa332b8 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail at eworm.de>
+Date: Tue, 15 Dec 2020 23:09:24 +0100
+Subject: [PATCH 2/3] linux-5.10-address-space-fixes.patch
+---
+ src/VBox/Additions/linux/sharedfolders/regops.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c
+index 3ad9c566..ec298a1b 100644
+--- a/src/VBox/Additions/linux/sharedfolders/regops.c
++++ b/src/VBox/Additions/linux/sharedfolders/regops.c
+@@ -1401,7 +1401,10 @@ static int vbsf_lock_user_pages_failed_check_kernel(uintptr_t uPtrFrom, size_t c
+ /*
+ * Check that this is valid user memory that is actually in the kernel range.
+ */
+-#if RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
++#if RTLNX_VER_MIN(5,10,0)
++ if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
++ && uPtrFrom >= TASK_SIZE_MAX)
++#elif RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
+ if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
+ && uPtrFrom >= USER_DS.seg)
+ #else
+
+From f8b4225c8deaac3d7528e0d8433c8360f792b4cc Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail at eworm.de>
+Date: Tue, 15 Dec 2020 23:12:38 +0100
+Subject: [PATCH 3/3] linux-5.10-framebuffer-fixes.patch
+---
+ src/VBox/Additions/linux/drm/vbox_drv.h | 10 ++-
+ src/VBox/Additions/linux/drm/vbox_fb.c | 2 +-
+ src/VBox/Additions/linux/drm/vbox_mode.c | 2 +-
+ src/VBox/Additions/linux/drm/vbox_ttm.c | 99 +++++++++++++++++++++---
+ 4 files changed, 99 insertions(+), 14 deletions(-)
+
+diff --git a/src/VBox/Additions/linux/drm/vbox_drv.h b/src/VBox/Additions/linux/drm/vbox_drv.h
+index c680f3b4..d21d023c 100644
+--- a/src/VBox/Additions/linux/drm/vbox_drv.h
++++ b/src/VBox/Additions/linux/drm/vbox_drv.h
+@@ -175,6 +175,9 @@
+ #include <drm/ttm/ttm_placement.h>
+ #include <drm/ttm/ttm_memory.h>
+ #include <drm/ttm/ttm_module.h>
++#if RTLNX_VER_MIN(5,10,0)
++# include <drm/ttm/ttm_resource.h>
++#endif
+
+ #include "vboxvideo_guest.h"
+ #include "vboxvideo_vbe.h"
+@@ -444,7 +447,10 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
+ int vbox_gem_create(struct drm_device *dev,
+ u32 size, bool iskernel, struct drm_gem_object **obj);
+
+-int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr);
++#define VBOX_MEM_TYPE_VRAM 0x1
++#define VBOX_MEM_TYPE_SYSTEM 0x2
++
++int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr);
+ int vbox_bo_unpin(struct vbox_bo *bo);
+
+ static inline int vbox_bo_reserve(struct vbox_bo *bo, bool no_wait)
+@@ -469,7 +475,7 @@ static inline void vbox_bo_unreserve(struct vbox_bo *bo)
+ ttm_bo_unreserve(&bo->bo);
+ }
+
+-void vbox_ttm_placement(struct vbox_bo *bo, int domain);
++void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type);
+ int vbox_bo_push_sysram(struct vbox_bo *bo);
+ int vbox_mmap(struct file *filp, struct vm_area_struct *vma);
+
+diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c b/src/VBox/Additions/linux/drm/vbox_fb.c
+index 811d0040..44b1ef52 100644
+--- a/src/VBox/Additions/linux/drm/vbox_fb.c
++++ b/src/VBox/Additions/linux/drm/vbox_fb.c
+@@ -295,7 +295,7 @@ static int vboxfb_create(struct drm_fb_helper *helper,
+ if (ret)
+ return ret;
+
+- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, NULL);
++ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, NULL);
+ if (ret) {
+ vbox_bo_unreserve(bo);
+ return ret;
+diff --git a/src/VBox/Additions/linux/drm/vbox_mode.c b/src/VBox/Additions/linux/drm/vbox_mode.c
+index 1e2691fd..52fd10fd 100644
+--- a/src/VBox/Additions/linux/drm/vbox_mode.c
++++ b/src/VBox/Additions/linux/drm/vbox_mode.c
+@@ -227,7 +227,7 @@ static int vbox_crtc_set_base(struct drm_crtc *crtc,
+ if (ret)
+ return ret;
+
+- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, &gpu_addr);
++ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, &gpu_addr);
+ vbox_bo_unreserve(bo);
+ if (ret)
+ return ret;
+diff --git a/src/VBox/Additions/linux/drm/vbox_ttm.c b/src/VBox/Additions/linux/drm/vbox_ttm.c
+index 4e990843..ee2da4aa 100644
+--- a/src/VBox/Additions/linux/drm/vbox_ttm.c
++++ b/src/VBox/Additions/linux/drm/vbox_ttm.c
+@@ -41,6 +41,7 @@
+ #define PLACEMENT_FLAGS(placement) ((placement).flags)
+ #endif
+
++
+ static inline struct vbox_private *vbox_bdev(struct ttm_bo_device *bd)
+ {
+ return container_of(bd, struct vbox_private, ttm.bdev);
+@@ -125,6 +126,7 @@ static bool vbox_ttm_bo_is_vbox_bo(struct ttm_buffer_object *bo)
+ return false;
+ }
+
++#if RTLNX_VER_MAX(5,10,0)
+ static int
+ vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
+ struct ttm_mem_type_manager *man)
+@@ -148,6 +150,7 @@ vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
+
+ return 0;
+ }
++#endif
+
+ static void
+ vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
+@@ -157,7 +160,7 @@ vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
+ if (!vbox_ttm_bo_is_vbox_bo(bo))
+ return;
+
+- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_SYSTEM);
++ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_SYSTEM);
+ *pl = vboxbo->placement;
+ }
+
+@@ -167,11 +170,12 @@ static int vbox_bo_verify_access(struct ttm_buffer_object *bo,
+ return 0;
+ }
+
++#if RTLNX_VER_MAX(5,10,0)
+ static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
+ struct ttm_mem_reg *mem)
+ {
+- struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
+ struct vbox_private *vbox = vbox_bdev(bdev);
++ struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
+
+ mem->bus.addr = NULL;
+ mem->bus.offset = 0;
+@@ -194,12 +198,53 @@ static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
+ }
+ return 0;
+ }
++#else
++static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
++ struct ttm_resource *mem)
++{
++ struct vbox_private *vbox = vbox_bdev(bdev);
++ mem->bus.addr = NULL;
++ mem->bus.offset = 0;
++ mem->size = mem->num_pages << PAGE_SHIFT;
++ mem->start = 0;
++ mem->bus.is_iomem = false;
++ switch (mem->mem_type) {
++ case TTM_PL_SYSTEM:
++ /* system memory */
++ return 0;
++ case TTM_PL_VRAM:
++ mem->bus.offset = mem->start << PAGE_SHIFT;
++ mem->start = pci_resource_start(vbox->dev->pdev, 0);
++ mem->bus.is_iomem = true;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++#endif
+
++
++
++#if RTLNX_VER_MIN(5,10,0)
++static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
++ struct ttm_resource *mem)
++{
++}
++#else
+ static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
+ struct ttm_mem_reg *mem)
+ {
+ }
++#endif
+
++#if RTLNX_VER_MIN(5,10,0)
++static void vbox_ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *tt)
++{
++ ttm_tt_fini(tt);
++ kfree(tt);
++}
++#else
+ static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
+ {
+ ttm_tt_fini(tt);
+@@ -209,6 +254,7 @@ static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
+ static struct ttm_backend_func vbox_tt_backend_func = {
+ .destroy = &vbox_ttm_backend_destroy,
+ };
++#endif
+
+ #if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+ static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
+@@ -226,7 +272,9 @@ static struct ttm_tt *vbox_ttm_tt_create(struct ttm_buffer_object *bo,
+ if (!tt)
+ return NULL;
+
++#if RTLNX_VER_MAX(5,10,0)
+ tt->func = &vbox_tt_backend_func;
++#endif
+ #if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+ if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
+ #else
+@@ -261,11 +309,16 @@ static void vbox_ttm_tt_unpopulate(struct ttm_tt *ttm)
+
+ static struct ttm_bo_driver vbox_bo_driver = {
+ .ttm_tt_create = vbox_ttm_tt_create,
++#if RTLNX_VER_MIN(5,10,0)
++ .ttm_tt_destroy = vbox_ttm_tt_destroy,
++#endif
+ #if RTLNX_VER_MAX(4,17,0)
+ .ttm_tt_populate = vbox_ttm_tt_populate,
+ .ttm_tt_unpopulate = vbox_ttm_tt_unpopulate,
+ #endif
++#if RTLNX_VER_MAX(5,10,0)
+ .init_mem_type = vbox_bo_init_mem_type,
++#endif
+ #if RTLNX_VER_MIN(4,10,0) || RTLNX_RHEL_MAJ_PREREQ(7,4)
+ .eviction_valuable = ttm_bo_eviction_valuable,
+ #endif
+@@ -318,8 +371,13 @@ int vbox_mm_init(struct vbox_private *vbox)
+ #endif
+ }
+
++#if RTLNX_VER_MIN(5,10,0)
++ ret = ttm_range_man_init(bdev, TTM_PL_VRAM, false,
++ vbox->available_vram_size >> PAGE_SHIFT);
++#else
+ ret = ttm_bo_init_mm(bdev, TTM_PL_VRAM,
+ vbox->available_vram_size >> PAGE_SHIFT);
++#endif
+ if (ret) {
+ DRM_ERROR("Failed ttm VRAM init: %d\n", ret);
+ goto err_device_release;
+@@ -359,7 +417,7 @@ void vbox_mm_fini(struct vbox_private *vbox)
+ #endif
+ }
+
+-void vbox_ttm_placement(struct vbox_bo *bo, int domain)
++void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type)
+ {
+ u32 c = 0;
+ #if RTLNX_VER_MAX(3,18,0) && !RTLNX_RHEL_MAJ_PREREQ(7,2)
+@@ -372,15 +430,36 @@ void vbox_ttm_placement(struct vbox_bo *bo, int domain)
+ bo->placement.placement = bo->placements;
+ bo->placement.busy_placement = bo->placements;
+
+- if (domain & TTM_PL_FLAG_VRAM)
++ if (mem_type & VBOX_MEM_TYPE_VRAM) {
++#if RTLNX_VER_MIN(5,10,0)
++ bo->placements[c].mem_type = TTM_PL_VRAM;
++ PLACEMENT_FLAGS(bo->placements[c++]) =
++ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
++#else
+ PLACEMENT_FLAGS(bo->placements[c++]) =
+ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM;
+- if (domain & TTM_PL_FLAG_SYSTEM)
++#endif
++ }
++ if (mem_type & VBOX_MEM_TYPE_SYSTEM) {
++#if RTLNX_VER_MIN(5,10,0)
++ bo->placements[c].mem_type = TTM_PL_SYSTEM;
++ PLACEMENT_FLAGS(bo->placements[c++]) =
++ TTM_PL_MASK_CACHING;
++#else
+ PLACEMENT_FLAGS(bo->placements[c++]) =
+ TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
+- if (!c)
++#endif
++ }
++ if (!c) {
++#if RTLNX_VER_MIN(5,10,0)
++ bo->placements[c].mem_type = TTM_PL_SYSTEM;
++ PLACEMENT_FLAGS(bo->placements[c++]) =
++ TTM_PL_MASK_CACHING;
++#else
+ PLACEMENT_FLAGS(bo->placements[c++]) =
+ TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
++#endif
++ }
+
+ bo->placement.num_placement = c;
+ bo->placement.num_busy_placement = c;
+@@ -414,7 +493,7 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
+ vboxbo->bo.bdev->dev_mapping = dev->dev_mapping;
+ #endif
+
+- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);
++ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_VRAM | VBOX_MEM_TYPE_SYSTEM);
+
+ acc_size = ttm_bo_dma_acc_size(&vbox->ttm.bdev, size,
+ sizeof(struct vbox_bo));
+@@ -452,7 +531,7 @@ static inline u64 vbox_bo_gpu_offset(struct vbox_bo *bo)
+ #endif
+ }
+
+-int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
++int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr)
+ {
+ #if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
+ struct ttm_operation_ctx ctx = { false, false };
+@@ -467,7 +546,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
+ return 0;
+ }
+
+- vbox_ttm_placement(bo, pl_flag);
++ vbox_ttm_placement(bo, mem_type);
+
+ for (i = 0; i < bo->placement.num_placement; i++)
+ PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
+@@ -540,7 +619,7 @@ int vbox_bo_push_sysram(struct vbox_bo *bo)
+ if (bo->kmap.virtual)
+ ttm_bo_kunmap(&bo->kmap);
+
+- vbox_ttm_placement(bo, TTM_PL_FLAG_SYSTEM);
++ vbox_ttm_placement(bo, VBOX_MEM_TYPE_SYSTEM);
+
+ for (i = 0; i < bo->placement.num_placement; i++)
+ PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
Copied: virtualbox/repos/community-testing-x86_64/60-vboxdrv.rules (from rev 776271, virtualbox/trunk/60-vboxdrv.rules)
===================================================================
--- community-testing-x86_64/60-vboxdrv.rules (rev 0)
+++ community-testing-x86_64/60-vboxdrv.rules 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,8 @@
+KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
+KERNEL=="vboxdrvu", NAME="vboxdrvu", OWNER="root", GROUP="root", MODE="0666"
+KERNEL=="vboxnetctl", NAME="vboxnetctl", OWNER="root", GROUP="root", MODE="0600"
+
+SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
Copied: virtualbox/repos/community-testing-x86_64/60-vboxguest.rules (from rev 776271, virtualbox/trunk/60-vboxguest.rules)
===================================================================
--- community-testing-x86_64/60-vboxguest.rules (rev 0)
+++ community-testing-x86_64/60-vboxguest.rules 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
+ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
Copied: virtualbox/repos/community-testing-x86_64/LocalConfig.kmk (from rev 776271, virtualbox/trunk/LocalConfig.kmk)
===================================================================
--- community-testing-x86_64/LocalConfig.kmk (rev 0)
+++ community-testing-x86_64/LocalConfig.kmk 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,39 @@
+# do not build test cases
+VBOX_WITH_TESTCASES :=
+VBOX_WITH_TESTSUITE :=
+VBOX_WITH_VALIDATIONKIT :=
+
+# no legacy X.org - use KMS
+VBOX_USE_SYSTEM_XORG_HEADERS = 1
+VBOX_NO_LEGACY_XORG_X11 = 1
+
+# archlinux path
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS := /usr/share/doc/virtualbox
+VBOX_PATH_PACKAGE_DOCS := $(VBOX_PATH_APP_DOCS)
+VBOX_BLD_PYTHON = python
+VBOX_JAVA_HOME = /usr/lib/jvm/java-7-openjdk
+
+# do not fail on warning
+VBOX_GCC_WERR =
+VBOX_GCC_WARN =
+
+# fix gsoap missing zlib include and produce errors with --as-needed
+VBOX_GSOAP_CXX_LIBS := gsoapssl++ z
+
+# use system xorg and gl headers
+VBOX_USE_SYSTEM_XORG_HEADERS = 1
+VBOX_USE_SYSTEM_GL_HEADERS = 1
+
+# no update request. update are handled via pacman
+VBOX_WITH_UPDATE_REQUEST := 0
+
+# build shared library
+VBOX_GUI_WITH_SHARED_LIBRARY = 1
+
+# disable experimental cloud infrastructure integration
+VBOX_WITH_CLOUD_NET :=
Copied: virtualbox/repos/community-testing-x86_64/PKGBUILD (from rev 776271, virtualbox/trunk/PKGBUILD)
===================================================================
--- community-testing-x86_64/PKGBUILD (rev 0)
+++ community-testing-x86_64/PKGBUILD 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,394 @@
+# Maintainer: Sébastien "Seblu" Luttringer
+# Contributor: Ionut Biru <ibiru at archlinux.org>
+
+pkgbase=virtualbox
+pkgname=('virtualbox'
+ 'virtualbox-host-dkms'
+ 'virtualbox-guest-dkms'
+ 'virtualbox-sdk'
+ 'virtualbox-guest-utils'
+ 'virtualbox-guest-utils-nox'
+ 'virtualbox-ext-vnc')
+pkgver=6.1.16
+_tarver=${pkgver}
+pkgrel=4
+_vboxsf_commit='5aba938bcabd978e4615186ad7d8617d633e6f30'
+arch=('x86_64')
+url='https://virtualbox.org/'
+license=('GPL' 'custom')
+makedepends=('alsa-lib'
+ 'bin86'
+ 'cdrkit'
+ 'curl'
+ 'dev86'
+ 'device-mapper'
+ 'git'
+ 'glu'
+ 'gsoap'
+ 'iasl'
+ 'jdk7-openjdk'
+ 'libidl2'
+ 'libpulse'
+ 'libstdc++5'
+ 'libvncserver'
+ 'libvpx'
+ 'libxcomposite'
+ 'libxcursor'
+ 'libxinerama'
+ 'libxml2'
+ 'libxmu'
+ 'libxrandr'
+ 'libxslt'
+ 'libxtst'
+ 'linux-headers'
+ 'mesa'
+ 'opus'
+ 'python'
+ 'qt5-base'
+ 'qt5-x11extras'
+ 'qt5-tools'
+ 'sdl'
+ 'sdl_ttf'
+ 'vde2'
+ 'xalan-c'
+ 'xorgproto'
+ 'xorg-server-devel')
+source=("https://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${_tarver}.tar.bz2"
+ # We need to build a modified version of vboxsf for Linux 4.16
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1481630#c65
+ "git+https://github.com/jwrdegoede/vboxsf#commit=$_vboxsf_commit"
+ 'virtualbox-host-dkms.conf'
+ 'virtualbox-vboxsf-dkms.conf'
+ 'virtualbox.sysusers'
+ 'virtualbox-guest-utils.sysusers'
+ '60-vboxdrv.rules'
+ '60-vboxguest.rules'
+ 'LocalConfig.kmk'
+ 'vboxservice.service'
+ 'vboxservice-nox.service'
+ 'vboxdrmclient.path'
+ 'vboxdrmclient.service'
+ 'vboxweb.service'
+ 'vboxreload'
+ '001-disable-update.patch'
+ '005-gsoap-build.patch'
+ '006-rdesktop-vrdp-keymap-path.patch'
+ '008-no-vboxvideo.patch'
+ '012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch'
+ '013-Makefile.patch'
+ '016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch'
+ '017-fix-narrowing-conversion.patch'
+ '018-xclient.patch'
+ '019-python3.9.patch'
+ '020-linux-5-10.patch')
+sha256sums=('49c1990da16d8a3d5bda8cdb961ec8195a901e67e4c79aea44c1521a5fc2f9f1'
+ 'SKIP'
+ '76d98ea062fcad9e5e3fa981d046a6eb12a3e718a296544a68b66f4b65cb56db'
+ 'c1ccfaa3a37d6b227cd65de944df2d68cbf178a857b6ab15c04b8fa05693f252'
+ '2101ebb58233bbfadf3aa74381f22f7e7e508559d2b46387114bc2d8e308554c'
+ 'da4c49f6ca94e047e196cdbcba2c321199f4760056ea66e0fbc659353e128c9e'
+ '9c5238183019f9ebc7d92a8582cad232f471eab9d3278786225abc1a1c7bf66e'
+ '033c597e0f5285d2ddb0490868e5b6f945f45c7b1b1152a02a9e6fea438b2c95'
+ '240ddf9c532b34380dd9bdd56c6302f323ded9ca95ccf5c50b6e44a5cb533cc9'
+ 'c41a801fe344a4471a7b61a4764d1d857c403e4fb96e2ba6bc89c77a35f2be7a'
+ '01dbb921bd57a852919cc78be5b73580a564f28ebab2fe8d6c9b8301265cbfce'
+ '83d8f24bff25bb925083cf39b3195236c6136105e62417712cc3f25b92e14b47'
+ '2beab8de525220fa418c9873f9e0d657ddbad4ff9e4a46d7053e6cd9bc4ce95e'
+ 'e6e875ef186578b53106d7f6af48e426cdaf1b4e86834f01696b8ef1c685787f'
+ '4001b5927348fe669a541e80526d4f9ea91b883805f102f7d571edbb482a9b9d'
+ '9ee947c9b5ec5b25f52d3e72340fc3a57ca6e65a604e15b669ac582a3fb0dc1b'
+ '7d2da8fe10a90f76bbfc80ad1f55df4414f118cd10e10abfb76070326abebd46'
+ '13c6ca9be0f91582445fd2a14a8c58a0625a15d9cb98cb6e8c2736d77ea976ab'
+ '053bfeee8863f3ffdf2f0e3f9f0d77dc61dd32764700a97a7635fd8611e20491'
+ '81900e13d36630488accd8c0bfd2ceb69563fb2c4f0f171caba1cca59d438024'
+ 'da7e58ed37dc23c6202aab3017864579a99e78417f3421ddcc98a198198fe2c9'
+ '100c9e14e9cfb12ae65364e830153d2481cf272ceeb39d11c6b203bc6e35bf0c'
+ '5aac692909a0a0ec56b08bdece9e42cf7463abdca9da2f990d441ff463be6a99'
+ 'cac5a573e9ed5aafb2f469c2e6fffb8cd4f389bbadba5a968c9f65be7a72fee3'
+ '039c7b520ae589bc52dc6c0e658f7ec28ca8defb12ccbc32ad9834361d23162c'
+ 'd0308e7dc4ec81274a41c79e13aa460360f63bf19cf31938e665685c5b276b9c')
+
+prepare() {
+ cd "VirtualBox-$pkgver"
+
+ # apply patch from the source array (should be a pacman feature)
+ local filename
+ for filename in "${source[@]}"; do
+ if [[ "$filename" =~ \.patch$ ]]; then
+ echo "Applying patch ${filename##*/}"
+ patch -p1 -N -i "$srcdir/${filename##*/}"
+ fi
+ done
+
+ echo 'Applying local config'
+ cp "$srcdir/LocalConfig.kmk" .
+
+ echo 'Use our CFLAGS'
+ echo "VBOX_GCC_OPT=$CXXFLAGS" >> LocalConfig.kmk
+}
+
+build() {
+ cd "VirtualBox-$pkgver"
+
+ echo 'Build virtualbox'
+ ./configure \
+ --disable-docs \
+ --disable-kmods \
+ --disable-vmmraw \
+ --enable-vde \
+ --enable-vnc \
+ --enable-webservice \
+ --with-makeself=/usr/bin/echo
+ # fake makeself binary to compile without nofatal
+ # makeself is used by linux installer. we don't need it.
+ source ./env.sh
+ kmk
+
+ echo 'Build rdesktop-vrdp'
+ kmk -C src/VBox/RDP/client-1.8.4
+
+ echo 'Build VNC extension pack'
+ kmk -C src/VBox/ExtPacks/VNC packing
+
+ echo 'Build vboximg-mount'
+ kmk -C src/VBox/ImageMounter/vboximg-mount
+}
+
+package_virtualbox() {
+ pkgdesc='Powerful x86 virtualization for enterprise as well as home use'
+ depends=('glibc' 'openssl' 'curl' 'gcc-libs' 'libpng' 'python' 'sdl'
+ 'libvpx' 'libxml2' 'procps-ng' 'shared-mime-info' 'zlib'
+ 'libxcursor' 'libxinerama' 'libx11' 'libxext' 'libxmu' 'libxt'
+ 'opus' 'qt5-base' 'qt5-x11extras' 'VIRTUALBOX-HOST-MODULES')
+ optdepends=('vde2: Virtual Distributed Ethernet support'
+ 'virtualbox-guest-iso: Guest Additions CD image'
+ 'virtualbox-ext-vnc: VNC server support'
+ 'virtualbox-sdk: Developer kit')
+ backup=('etc/vbox/vbox.cfg')
+ replaces=('virtualbox-ose')
+ conflicts=('virtualbox-ose')
+ install=virtualbox.install
+
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ # binaries
+ install -dm0755 "$pkgdir/usr/bin"
+ install -m0755 VBox.sh "$pkgdir/usr/bin/VBox"
+ for i in VBoxHeadless VBoxManage VBoxSDL VirtualBox vboxwebsrv VBoxBalloonCtrl; do
+ ln -sf VBox "$pkgdir/usr/bin/$i"
+ ln -sf VBox "$pkgdir/usr/bin/${i,,}"
+ done
+ install -m0755 VBoxTunctl "$pkgdir/usr/bin"
+ install -m0755 rdesktop-vrdp "$pkgdir/usr/bin"
+ install -m0755 vboximg-mount "$pkgdir/usr/bin"
+
+ # libraries
+ install -dm0755 "$pkgdir/usr/lib/virtualbox"
+ install -m0755 *.so "$pkgdir/usr/lib/virtualbox"
+ install -m0644 *.r0 VBoxEFI*.fd "$pkgdir/usr/lib/virtualbox"
+ ## setuid root binaries
+ install -m4755 VBoxSDL VirtualBoxVM VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl VBoxNetNAT -t "$pkgdir/usr/lib/virtualbox"
+ ## other binaries
+ install -m0755 VirtualBox VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL VBoxBalloonCtrl vboxwebsrv webtest -t "$pkgdir/usr/lib/virtualbox"
+
+ # components
+ install -dm0755 "$pkgdir/usr/lib/virtualbox/components"
+ rm components/VBoxREM.so # TODO: remove when dead link is fixed
+ install -m0755 components/* -t "$pkgdir/usr/lib/virtualbox/components"
+
+ # extensions packs
+ ## as virtualbox install itself stuff in this directory, move it to /var and
+ ## trick it with a symlink
+ ## FIXME: trick is disabled for now
+ #install -dm0755 "$pkgdir/var/lib/virtualbox/extensions"
+ #install -dm0755 "$pkgdir/usr/share/virtualbox/extensions"
+ #ln -s ../../../var/lib/virtualbox/extensions "$pkgdir/usr/lib/virtualbox/ExtensionPacks"
+ install -dm0755 "$pkgdir/usr/lib/virtualbox/ExtensionPacks"
+
+ # languages
+ install -dm0755 "$pkgdir/usr/share/virtualbox/nls"
+ install -m0755 nls/*.qm -t "$pkgdir/usr/share/virtualbox/nls"
+
+ # rdesktop keymaps
+ install -dm0755 "$pkgdir/usr/share/virtualbox/rdesktop-vrdp-keymaps"
+ install -m0644 rdesktop-vrdp-keymaps/* "$pkgdir/usr/share/virtualbox/rdesktop-vrdp-keymaps"
+
+ # useless scripts
+ install -m0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh -t "$pkgdir/usr/share/virtualbox"
+
+ # icons
+ install -Dm0644 VBox.png "$pkgdir/usr/share/pixmaps/VBox.png"
+
+ pushd icons >/dev/null
+ for i in *; do
+ install -d "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ cp $i/* "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ done
+ popd >/dev/null
+
+ #desktop
+ install -Dm0644 virtualbox.desktop "$pkgdir/usr/share/applications/virtualbox.desktop"
+ install -Dm0644 virtualbox.xml "$pkgdir/usr/share/mime/packages/virtualbox.xml"
+
+ #install configuration
+ install -dm0755 "$pkgdir/etc/vbox"
+ echo 'INSTALL_DIR=/usr/lib/virtualbox' > "$pkgdir/etc/vbox/vbox.cfg"
+
+ # back to srcdir
+ cd "$srcdir"
+
+ #licence
+ install -Dm0644 VirtualBox-$pkgver/COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ # install systemd stuff
+ install -Dm0644 60-vboxdrv.rules "$pkgdir/usr/lib/udev/rules.d/60-vboxdrv.rules"
+ install -Dm0644 vboxweb.service "$pkgdir/usr/lib/systemd/system/vboxweb.service"
+ install -Dm0644 virtualbox.sysusers "$pkgdir/usr/lib/sysusers.d/virtualbox.conf"
+
+ # install module reloading shortcut (with a symlink with default helper)
+ install -Dm0755 vboxreload "$pkgdir/usr/bin"
+ ln -s vboxreload "$pkgdir/usr/bin/rcvboxdrv"
+}
+
+package_virtualbox-sdk() {
+ pkgdesc='VirtualBox Software Developer Kit (SDK)'
+ depends=('python')
+
+ install -dm0755 "$pkgdir/usr/lib/virtualbox"
+
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ install -Dm0755 vboxshell.py "$pkgdir/usr/lib/virtualbox/vboxshell.py"
+ # python sdk
+ pushd sdk/installer
+ VBOX_INSTALL_PATH="/usr/lib/virtualbox" python vboxapisetup.py install --root "$pkgdir"
+ popd
+ cp -r sdk "$pkgdir/usr/lib/virtualbox"
+ rm -r "$pkgdir/usr/lib/virtualbox/sdk/installer"
+ # licence
+ install -Dm0644 "$srcdir/VirtualBox-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+package_virtualbox-host-dkms() {
+ pkgdesc='VirtualBox Host kernel modules sources'
+ depends=('dkms' 'gcc' 'make')
+ replaces=('virtualbox-source'
+ 'virtualbox-host-source'
+ 'virtualbox-host-modules-lts')
+ conflicts=('virtualbox-source' 'virtualbox-host-source')
+ provides=('VIRTUALBOX-HOST-MODULES')
+ install=virtualbox-host-dkms.install
+
+ install -dm0755 "$pkgdir/usr/src"
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ cp -r src "$pkgdir/usr/src/vboxhost-${pkgver}_OSE"
+ # licence
+ install -Dm0644 "$srcdir/VirtualBox-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ # module loading
+ local _p="$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
+ install -Dm0644 /dev/null "$_p"
+ printf "vboxdrv\nvboxnetadp\nvboxnetflt\n" > "$_p"
+ # starting vbox 5.1, dkms.conf file was dropped
+ local _p="$pkgdir/usr/src/vboxhost-${pkgver}_OSE/dkms.conf"
+ install -Dm0644 "$srcdir/$pkgname.conf" "$_p"
+ sed -i "s, at VERSION@,$pkgver," "$_p"
+}
+
+package_virtualbox-guest-dkms() {
+ pkgdesc='VirtualBox Guest kernel modules sources'
+ depends=('dkms' 'gcc' 'make')
+ replaces=('virtualbox-archlinux-source'
+ 'virtualbox-guest-source'
+ 'virtualbox-guest-modules-lts')
+ provides=('VIRTUALBOX-GUEST-MODULES')
+ conflicts=('virtualbox-archlinux-source' 'virtualbox-guest-source')
+ install=virtualbox-guest-dkms.install
+
+ install -dm0755 "$pkgdir/usr/src"
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+
+ # licence
+ install -Dm0644 "$srcdir/VirtualBox-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ # module loading
+ local _p="$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
+ install -Dm0644 /dev/null "$_p"
+ printf "vboxguest\nvboxsf\nvboxvideo\n" > "$_p"
+
+ # vboxsf module for Linux 4.16 to Linux 5.5
+ install -d "$pkgdir/usr/src/vboxsf-${pkgver}_OSE"
+ cp -rT "$srcdir/vboxsf" "$pkgdir/usr/src/vboxsf-${pkgver}_OSE/vboxsf"
+ rm -rf "$pkgdir/usr/src/vboxsf-${pkgver}_OSE/vboxsf/.git"
+ echo "obj-m = vboxsf/" >"$pkgdir/usr/src/vboxsf-${pkgver}_OSE/Makefile"
+ local _p="$pkgdir/usr/src/vboxsf-${pkgver}_OSE/dkms.conf"
+ install -Dm0644 "$srcdir/virtualbox-vboxsf-dkms.conf" "$_p"
+ sed -i "s, at VERSION@,$pkgver," "$_p"
+}
+
+package_virtualbox-guest-utils() {
+ pkgdesc='VirtualBox Guest userspace utilities'
+ depends=('glibc' 'pam' 'libx11' 'libxcomposite' 'libxdamage' 'libxext'
+ 'libxfixes' 'libxmu' 'libxt' 'xorg-xrandr' 'xf86-video-vmware'
+ 'VIRTUALBOX-GUEST-MODULES')
+ replaces=('virtualbox-archlinux-additions' 'virtualbox-guest-additions')
+ conflicts=('virtualbox-archlinux-additions' 'virtualbox-guest-additions' 'virtualbox-guest-utils-nox')
+
+ source "VirtualBox-$pkgver/env.sh"
+ pushd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+ install -d "$pkgdir/usr/bin"
+ install -m0755 VBoxClient VBoxControl VBoxDRMClient VBoxService "$pkgdir/usr/bin"
+ install -m0755 -D "$srcdir"/VirtualBox-$pkgver/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ "$pkgdir"/usr/bin/VBoxClient-all
+ install -m0644 -D "$srcdir"/VirtualBox-$pkgver/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ "$pkgdir"/etc/xdg/autostart/vboxclient.desktop
+ install -m0755 -D pam_vbox.so "$pkgdir/usr/lib/security/pam_vbox.so"
+ popd
+ # systemd stuff
+ install -Dm0644 60-vboxguest.rules "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
+ install -Dm0644 vboxdrmclient.path "$pkgdir/usr/lib/systemd/system/vboxdrmclient.path"
+ install -Dm0644 vboxdrmclient.service "$pkgdir/usr/lib/systemd/system/vboxdrmclient.service"
+ install -Dm0644 vboxservice.service "$pkgdir/usr/lib/systemd/system/vboxservice.service"
+ install -Dm0644 virtualbox-guest-utils.sysusers "$pkgdir/usr/lib/sysusers.d/virtualbox-guest-utils.conf"
+ # licence
+ install -Dm0644 VirtualBox-$pkgver/COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+package_virtualbox-guest-utils-nox() {
+ pkgdesc='VirtualBox Guest userspace utilities without X support'
+ depends=('glibc' 'pam' 'VIRTUALBOX-GUEST-MODULES')
+ conflicts=('virtualbox-guest-utils')
+
+ source "VirtualBox-$pkgver/env.sh"
+ pushd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+ install -d "$pkgdir/usr/bin"
+ install -m0755 VBoxControl VBoxService "$pkgdir/usr/bin"
+ install -m0755 -D pam_vbox.so "$pkgdir/usr/lib/security/pam_vbox.so"
+ popd
+ # systemd stuff
+ install -Dm0644 60-vboxguest.rules "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
+ install -Dm0644 vboxservice-nox.service "$pkgdir/usr/lib/systemd/system/vboxservice.service"
+ install -Dm0644 virtualbox-guest-utils.sysusers "$pkgdir/usr/lib/sysusers.d/virtualbox-guest-utils.conf"
+ # licence
+ install -Dm0644 "$srcdir/VirtualBox-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+package_virtualbox-ext-vnc() {
+ pkgdesc='VirtualBox VNC extension pack'
+ depends=('virtualbox' 'libvncserver')
+ optdepends=('tigervnc: vnc client')
+ install=virtualbox-ext-vnc.install
+
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/packages"
+ install -Dm0644 VNC-*.vbox-extpack "$pkgdir/usr/share/virtualbox/extensions/VNC-${pkgver}.vbox-extpack"
+ # licence
+ install -Dm0644 "$srcdir/VirtualBox-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
Copied: virtualbox/repos/community-testing-x86_64/build.sh (from rev 776271, virtualbox/trunk/build.sh)
===================================================================
--- community-testing-x86_64/build.sh (rev 0)
+++ community-testing-x86_64/build.sh 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+multilib-build "$@" && extra-i686-build "$@"
Copied: virtualbox/repos/community-testing-x86_64/vboxdrmclient.path (from rev 776271, virtualbox/trunk/vboxdrmclient.path)
===================================================================
--- community-testing-x86_64/vboxdrmclient.path (rev 0)
+++ community-testing-x86_64/vboxdrmclient.path 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,6 @@
+[Unit]
+Description=VirtualBox Guest VMSVGA resize client
+ConditionVirtualization=oracle
+
+[Path]
+PathExistsGlob=/dev/dri/renderD*
Copied: virtualbox/repos/community-testing-x86_64/vboxdrmclient.service (from rev 776271, virtualbox/trunk/vboxdrmclient.service)
===================================================================
--- community-testing-x86_64/vboxdrmclient.service (rev 0)
+++ community-testing-x86_64/vboxdrmclient.service 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,7 @@
+[Unit]
+Description=VirtualBox Guest VMSVGA resize client
+ConditionVirtualization=oracle
+ConditionPathExistsGlob=/dev/dri/renderD*
+
+[Service]
+ExecStart=/usr/bin/VBoxDRMClient
Copied: virtualbox/repos/community-testing-x86_64/vboxreload (from rev 776271, virtualbox/trunk/vboxreload)
===================================================================
--- community-testing-x86_64/vboxreload (rev 0)
+++ community-testing-x86_64/vboxreload 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# vboxreload: shortcut to reload virtualbox host modules
+#
+# Copyright © 2016 Sébastien Luttringer
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+(( UID > 0 )) && { echo 'You must be root' >&2; exit 1; }
+
+modules=(vboxnetadp vboxnetflt vboxdrv)
+
+echo -n 'Unloading modules: '
+for _m in "${modules[@]}"; do
+ lsmod|grep -q "$_m" && rmmod "$_m" && echo -n "$_m "
+done
+echo
+
+echo -n 'Loading modules: '
+for _m in "${modules[@]}"; do
+ modprobe "$_m" && echo -n "$_m "
+done
+echo
+
+# vim:set ts=2 sw=2 ai et:
Copied: virtualbox/repos/community-testing-x86_64/vboxservice-nox.service (from rev 776271, virtualbox/trunk/vboxservice-nox.service)
===================================================================
--- community-testing-x86_64/vboxservice-nox.service (rev 0)
+++ community-testing-x86_64/vboxservice-nox.service 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,11 @@
+[Unit]
+Description=VirtualBox Guest Service
+ConditionVirtualization=oracle
+
+[Service]
+ExecStartPre=-/usr/bin/modprobe vboxguest
+ExecStartPre=-/usr/bin/modprobe vboxsf
+ExecStart=/usr/bin/VBoxService -f
+
+[Install]
+WantedBy=multi-user.target
Copied: virtualbox/repos/community-testing-x86_64/vboxservice.service (from rev 776271, virtualbox/trunk/vboxservice.service)
===================================================================
--- community-testing-x86_64/vboxservice.service (rev 0)
+++ community-testing-x86_64/vboxservice.service 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,13 @@
+[Unit]
+Description=VirtualBox Guest Service
+ConditionVirtualization=oracle
+Wants=vboxdrmclient.path
+
+[Service]
+ExecStartPre=-/usr/bin/modprobe vboxguest
+ExecStartPre=-/usr/bin/modprobe vboxvideo
+ExecStartPre=-/usr/bin/modprobe vboxsf
+ExecStart=/usr/bin/VBoxService -f
+
+[Install]
+WantedBy=multi-user.target
Copied: virtualbox/repos/community-testing-x86_64/vboxweb.service (from rev 776271, virtualbox/trunk/vboxweb.service)
===================================================================
--- community-testing-x86_64/vboxweb.service (rev 0)
+++ community-testing-x86_64/vboxweb.service 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,11 @@
+[Unit]
+Description=VirtualBox Web Service
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/vboxweb.pid
+ExecStart=/usr/bin/vboxwebsrv --pidfile /run/vboxweb.pid --background
+
+[Install]
+WantedBy=multi-user.target
Copied: virtualbox/repos/community-testing-x86_64/virtualbox-ext-vnc.install (from rev 776271, virtualbox/trunk/virtualbox-ext-vnc.install)
===================================================================
--- community-testing-x86_64/virtualbox-ext-vnc.install (rev 0)
+++ community-testing-x86_64/virtualbox-ext-vnc.install 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# arg 1: the new package version
+post_install() {
+ EXTPACK="/usr/share/virtualbox/extensions/VNC-${1%%-*}.vbox-extpack"
+ ACCEPT="$(bsdtar --to-stdout -xf "${EXTPACK}" ./ExtPack-license.txt | sha256sum | head --bytes=64)"
+ VBoxManage extpack install "${EXTPACK}" --accept-license="${ACCEPT}" >/dev/null
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ pre_remove "$2"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install "$1"
+}
+
+# arg 1: the old package version
+pre_remove() {
+ VBoxManage extpack uninstall 'VNC' >/dev/null
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
Copied: virtualbox/repos/community-testing-x86_64/virtualbox-guest-dkms.install (from rev 776271, virtualbox/trunk/virtualbox-guest-dkms.install)
===================================================================
--- community-testing-x86_64/virtualbox-guest-dkms.install (rev 0)
+++ community-testing-x86_64/virtualbox-guest-dkms.install 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if (( $(vercmp $2 5.0.16-3) < 0 )); then
+ echo '==> Since version 5.0.16-2 kernel modules are loaded at boot by systemd-modules-load.'
+ echo '==> Read modules-load.d man page to disable them.'
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
Copied: virtualbox/repos/community-testing-x86_64/virtualbox-guest-utils.sysusers (from rev 776271, virtualbox/trunk/virtualbox-guest-utils.sysusers)
===================================================================
--- community-testing-x86_64/virtualbox-guest-utils.sysusers (rev 0)
+++ community-testing-x86_64/virtualbox-guest-utils.sysusers 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1 @@
+g vboxsf 109 -
Copied: virtualbox/repos/community-testing-x86_64/virtualbox-host-dkms.conf (from rev 776271, virtualbox/trunk/virtualbox-host-dkms.conf)
===================================================================
--- community-testing-x86_64/virtualbox-host-dkms.conf (rev 0)
+++ community-testing-x86_64/virtualbox-host-dkms.conf 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,31 @@
+## @file
+# Linux DKMS config script for the VirtualBox guest kernel modules
+#
+
+#
+# Copyright (C) 2006-2015 Oracle Corporation
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL) as published by the Free Software
+# Foundation, in version 2 as it comes in the "COPYING" file of the
+# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+PACKAGE_NAME="vboxhost"
+PACKAGE_VERSION=@VERSION at _OSE
+AUTOINSTALL=yes
+
+BUILT_MODULE_NAME[0]="vboxdrv"
+BUILT_MODULE_LOCATION[0]="vboxdrv"
+DEST_MODULE_LOCATION[0]="/kernel/misc"
+
+BUILT_MODULE_NAME[1]="vboxnetflt"
+BUILT_MODULE_LOCATION[1]="vboxnetflt"
+DEST_MODULE_LOCATION[1]="/kernel/misc"
+
+BUILT_MODULE_NAME[2]="vboxnetadp"
+BUILT_MODULE_LOCATION[2]="vboxnetadp"
+DEST_MODULE_LOCATION[2]="/kernel/misc"
Copied: virtualbox/repos/community-testing-x86_64/virtualbox-host-dkms.install (from rev 776271, virtualbox/trunk/virtualbox-host-dkms.install)
===================================================================
--- community-testing-x86_64/virtualbox-host-dkms.install (rev 0)
+++ community-testing-x86_64/virtualbox-host-dkms.install 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if (( $(vercmp $2 5.0.16-3) < 0 )); then
+ echo '==> Since version 5.0.16-2 kernel modules are loaded at boot by systemd-modules-load.'
+ echo '==> Read modules-load.d man page to disable them.'
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
Copied: virtualbox/repos/community-testing-x86_64/virtualbox-vboxsf-dkms.conf (from rev 776271, virtualbox/trunk/virtualbox-vboxsf-dkms.conf)
===================================================================
--- community-testing-x86_64/virtualbox-vboxsf-dkms.conf (rev 0)
+++ community-testing-x86_64/virtualbox-vboxsf-dkms.conf 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,10 @@
+PACKAGE_NAME="vboxsf"
+PACKAGE_VERSION=@VERSION at _OSE
+AUTOINSTALL=yes
+
+# Build only for Linux 4.16 and later (until it gets upstreamed...)
+BUILD_EXCLUSIVE_KERNEL="^(4\.(1[6-9]|2[0-9])\..*|5\.[0-5]\..*)"
+
+BUILT_MODULE_NAME[0]="vboxsf"
+BUILT_MODULE_LOCATION[0]="vboxsf"
+DEST_MODULE_LOCATION[0]="/kernel/misc"
Copied: virtualbox/repos/community-testing-x86_64/virtualbox.install (from rev 776271, virtualbox/trunk/virtualbox.install)
===================================================================
--- community-testing-x86_64/virtualbox.install (rev 0)
+++ community-testing-x86_64/virtualbox.install 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if (( $(vercmp $2 5.0.16-1) < 0 )); then
+ echo '==> Since version 5.0.14-2 kernel modules are provided via dkms'
+ echo '==> Check you have the headers matching your kernel installed'
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
Copied: virtualbox/repos/community-testing-x86_64/virtualbox.sysusers (from rev 776271, virtualbox/trunk/virtualbox.sysusers)
===================================================================
--- community-testing-x86_64/virtualbox.sysusers (rev 0)
+++ community-testing-x86_64/virtualbox.sysusers 2020-12-15 22:27:20 UTC (rev 776272)
@@ -0,0 +1 @@
+g vboxusers 108 -
More information about the arch-commits
mailing list