[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