1
0
forked from pool/virtualbox

Accepting request 888128 from home:lwfinger:branches:Virtualization

- Version bump to (released April 20 2021 by Oracle)
  This is a maintenance release. The following items were fixed and/or added:
  VMM: Fixed extremely poor VM performance depending on the timing of various actions (regression in 6.1.0)
  VMM: Fixed guest OS hanging under certain circumstances when Hyper-V is present (bug #20141)
  VMM: Fixed Guru Meditation error when using a nested hypervisor under certain circumstances (bug #20175)
  VMM: Fixed a SMAP related host panic affecting Solaris 11.4 systems with Intel Haswell CPUs or later (bug #16068)
  OCI: Add cloud-init support for export to OCI and for OCI instance creation
  GUI: Fixed "Delete all files" leaving behind Logs/VBoxUI.log (bug #20235)
  Audio: Multiple fixes and enhancements
  Audio: Fixed detection of duplex audio devices on macOS (5.0 regression; bug #20171)
  Network: Fixed link status reporting for "not attached" adapters
  Network: Fixed connectivity issues with e1000 in OS/2 guests (6.1.18 regression; bug #20148)
  Network: Fixed VxWorks e1000 driver compatibility issue (bug #20182)
  Network: Fixed GUI checks for port forwarding rules rejecting IPv6 with "Nat Network" (bug #14847)
  DHCP: Don't crash in the presence of fixed address assignments (bug #20128)
  Serial: Fixed possible VM hang when using the a serial port in disconnected mode (bug #19854)
  Webcam: Fixed interoperability with v4l2loopback and fixed a crash under certain circumstances (bug #20176)
  NVMe: Fixed sporadic Windows VM hang or reboot on high CPU load
  VBoxManage: Allow changing network adapter attachment of a saved VM with "modifyvm"
  vboximg-mount: Fix for argument processing to honor the '--root' option (6.0 regression; bug #20073)
  Linux host and guest: Support kernel versions 5.11 (bug #20198) and 5.12
  Linux host: Maximum MTU size increased to 16110 for host-only adapters on Linux kernels 4.10+ (bug #19122)
  Linux Guest Additions: Fix vboxvideo module compilation for kernel version 5.10.x
  Linux Guest Additions: Fixed kernel module build for RHEL 8.4 beta and CentOS Stream (bug #20289)
  File "fixes-for-5.11.patch" is deleted. The issue is fixed upstream.
  File "vboxautostart.sh" is replaced by "vboxautostart-service.sh"
  File "vboxautostart.service" is replaced by "vboxautostart-service.service"
  Fixes boo#1183329 "virtualbox 6.1.18 crashes when it runs nested VM"
  Fixes boo#1183125 "Leap 15.3 installation in Virtualbox without VBox integration"
  Fixes CVE-2021-2264 and boo#1184542. The directory for the <user>.start files for
    autostarting VMs is moved from /etc/vbox to /etc/vbox/autostart.d. In addition, the autostart
    service is hardened (by Oracle).

OBS-URL: https://build.opensuse.org/request/show/888128
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=597
This commit is contained in:
Larry Finger 2021-04-24 13:48:44 +00:00 committed by Git OBS Bridge
parent ebaeb4f44b
commit 221b12cb3b
14 changed files with 497 additions and 321 deletions

View File

@ -20,17 +20,20 @@ Users work
==========
The *first* time a user configures autostart, the command:
VBoxManage setproperty autostartdbpath /etc/vbox
VBoxManage setproperty autostartdbpath /etc/vbox/autostart.d
needs to be run.
Note: The autostart options are stored in the /etc/vbox file, and in the
VM itself. If moving a VM, these options may need to be set again.
Prepare a VM to start automatically:
VBoxManage modifyvm <uuid|vmname> --autostart-enabled <on|off>
VBoxManage modifyvm <uuid|vmname> --autostart-enabled on
Choose a shut down mode:
VBoxManage modifyvm <uuid|vmname> --autostop-type <disabled|savestate|poweroff|acpishutdown>
Restart the vboxdrv service to start the VMs in question
sudo service vboxdrv restart
To turn off autostart for a VM
VBoxManage modifyvm <uuid|vmname> --autostart-enabled off

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:50cf78dc97e9ce7227f6aa1966b5478ff50abad85485626dc603bb5e98808664
size 4969463
oid sha256:66b7dd9f1d5b53b6273d883e16b3776d9a168279383bfba5db479f99effa89b4
size 4972709

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:81573e1d8cf8b1a8dbd3c643d34bfe42e26105acf5316591a8bd365a3dfebb31
size 120586588

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:604c082b4aa2637fe4c73bab19c23d64bc66e7299c145673b16629bc8fec98bb
size 120659635

View File

@ -1,14 +0,0 @@
Index: VirtualBox-6.1.16/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
===================================================================
--- VirtualBox-6.1.16.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+++ VirtualBox-6.1.16/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
@@ -342,6 +342,9 @@ typedef struct ethtool_ops OVR_OPSTYPE;
# else /* RTLNX_VER_MIN(2,6,29) */
+#if RTLNX_VER_MIN(5,11,0)
+# include <linux/ethtool.h>
+#endif
typedef struct net_device_ops OVR_OPSTYPE;
# define OVR_OPS netdev_ops
# define OVR_XMIT pOrgOps->ndo_start_xmit

View File

@ -1,8 +1,8 @@
Index: VirtualBox-6.1.16/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
Index: VirtualBox-6.1.20/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
===================================================================
--- VirtualBox-6.1.16.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+++ VirtualBox-6.1.16/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
@@ -73,6 +73,10 @@
--- VirtualBox-6.1.20.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+++ VirtualBox-6.1.20/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
@@ -76,6 +76,10 @@
#define VBOXNETFLT_OS_SPECFIC 1
#include "../VBoxNetFltInternal.h"
@ -13,10 +13,10 @@ Index: VirtualBox-6.1.16/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.
typedef struct VBOXNETFLTNOTIFIER {
struct notifier_block Notifier;
PVBOXNETFLTINS pThis;
Index: VirtualBox-6.1.16/src/VBox/Additions/linux/drm/vbox_drv.c
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.c
===================================================================
--- VirtualBox-6.1.16.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-6.1.16/src/VBox/Additions/linux/drm/vbox_drv.c
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -310,12 +310,15 @@ static void vbox_master_drop(struct drm_
}
@ -36,11 +36,11 @@ Index: VirtualBox-6.1.16/src/VBox/Additions/linux/drm/vbox_drv.c
#else /* >= 5.4.0 && RHEL >= 8.3 */
.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ,
#endif /* < 5.4.0 */
Index: VirtualBox-6.1.16/src/VBox/Additions/linux/drm/vbox_main.c
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- VirtualBox-6.1.16.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-6.1.16/src/VBox/Additions/linux/drm/vbox_main.c
@@ -638,8 +638,12 @@ static inline u64 vbox_bo_mmap_offset(st
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_main.c
@@ -640,8 +640,12 @@ static inline u64 vbox_bo_mmap_offset(st
#elif RTLNX_VER_MAX(3,12,0) && !RTLNX_RHEL_MAJ_PREREQ(7,0)
return bo->bo.addr_space_offset;
#else
@ -53,10 +53,10 @@ Index: VirtualBox-6.1.16/src/VBox/Additions/linux/drm/vbox_main.c
}
int
Index: VirtualBox-6.1.16/include/iprt/cdefs.h
Index: VirtualBox-6.1.20/include/iprt/cdefs.h
===================================================================
--- VirtualBox-6.1.16.orig/include/iprt/cdefs.h
+++ VirtualBox-6.1.16/include/iprt/cdefs.h
--- VirtualBox-6.1.20.orig/include/iprt/cdefs.h
+++ VirtualBox-6.1.20/include/iprt/cdefs.h
@@ -1173,14 +1173,15 @@
* Tell the compiler that we're falling through to the next case in a switch.
* @sa RT_FALL_THRU */

View File

@ -1,8 +1,8 @@
Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_drv.c
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.c
===================================================================
--- VirtualBox-6.1.18.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -331,7 +331,9 @@ static struct drm_driver driver = {
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -330,7 +330,9 @@ static struct drm_driver driver = {
.master_drop = vbox_master_drop,
#if RTLNX_VER_MIN(3,18,0) || RTLNX_RHEL_MAJ_PREREQ(7,2)
# if RTLNX_VER_MAX(4,14,0) && !RTLNX_RHEL_MAJ_PREREQ(7,5) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
@ -12,10 +12,10 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_drv.c
# endif
#endif
Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_main.c
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- VirtualBox-6.1.18.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_main.c
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_main.c
@@ -618,11 +618,13 @@ int vbox_dumb_destroy(struct drm_file *f
#endif
@ -30,11 +30,11 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_main.c
void vbox_gem_free_object(struct drm_gem_object *obj)
{
Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_ttm.c
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_ttm.c
===================================================================
--- VirtualBox-6.1.18.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
+++ VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_ttm.c
@@ -256,7 +256,7 @@ static struct ttm_backend_func vbox_tt_b
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_ttm.c
@@ -271,7 +271,7 @@ static struct ttm_backend_func vbox_tt_b
};
#endif
@ -43,16 +43,16 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_ttm.c
static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
unsigned long size,
u32 page_flags,
@@ -275,7 +275,7 @@ static struct ttm_tt *vbox_ttm_tt_create
@@ -290,7 +290,7 @@ static struct ttm_tt *vbox_ttm_tt_create
#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 RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
#else
#elif RTLNX_VER_MAX(5,11,0)
if (ttm_tt_init(tt, bo, page_flags)) {
@@ -288,7 +288,7 @@ static struct ttm_tt *vbox_ttm_tt_create
@@ -305,7 +305,7 @@ static struct ttm_tt *vbox_ttm_tt_create
}
#if RTLNX_VER_MAX(4,17,0)
@ -61,7 +61,7 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_ttm.c
static int vbox_ttm_tt_populate(struct ttm_tt *ttm)
{
return ttm_pool_populate(ttm);
@@ -327,7 +327,7 @@ static struct ttm_bo_driver vbox_bo_driv
@@ -353,7 +353,7 @@ static struct ttm_bo_driver vbox_bo_driv
.io_mem_reserve = &vbox_ttm_io_mem_reserve,
.io_mem_free = &vbox_ttm_io_mem_free,
#if RTLNX_VER_MIN(4,12,0) || RTLNX_RHEL_MAJ_PREREQ(7,5)
@ -70,7 +70,7 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_ttm.c
.io_mem_pfn = ttm_bo_default_io_mem_pfn,
# endif
#endif
@@ -500,7 +500,7 @@ int vbox_bo_create(struct drm_device *de
@@ -556,7 +556,7 @@ int vbox_bo_create(struct drm_device *de
ret = ttm_bo_init(&vbox->ttm.bdev, &vboxbo->bo, size,
ttm_bo_type_device, &vboxbo->placement,
@ -79,7 +79,7 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_ttm.c
align >> PAGE_SHIFT, false, NULL, acc_size,
#else
align >> PAGE_SHIFT, false, acc_size,
@@ -533,7 +533,7 @@ static inline u64 vbox_bo_gpu_offset(str
@@ -589,7 +589,7 @@ static inline u64 vbox_bo_gpu_offset(str
int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr)
{
@ -87,56 +87,56 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_ttm.c
+#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) || defined(SUSE_SLE12)
struct ttm_operation_ctx ctx = { false, false };
#endif
int i, ret;
@@ -551,7 +551,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32
for (i = 0; i < bo->placement.num_placement; i++)
int ret;
@@ -612,7 +612,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32
PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
#endif
-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
#else
ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx);
@@ -569,7 +569,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32
@@ -634,7 +634,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32
int vbox_bo_unpin(struct vbox_bo *bo)
{
-#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)
+#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) || defined(SUSE_SLE12)
# if RTLNX_VER_MAX(5,11,0)
struct ttm_operation_ctx ctx = { false, false };
#endif
int i, ret;
@@ -585,7 +585,7 @@ int vbox_bo_unpin(struct vbox_bo *bo)
for (i = 0; i < bo->placement.num_placement; i++)
# endif
@@ -657,7 +657,7 @@ int vbox_bo_unpin(struct vbox_bo *bo)
PLACEMENT_FLAGS(bo->placements[i]) &= ~TTM_PL_FLAG_NO_EVICT;
#endif
-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
#else
#elif RTLNX_VER_MAX(5,11,0)
ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx);
@@ -603,7 +603,7 @@ int vbox_bo_unpin(struct vbox_bo *bo)
@@ -680,7 +680,7 @@ int vbox_bo_unpin(struct vbox_bo *bo)
*/
int vbox_bo_push_sysram(struct vbox_bo *bo)
{
-#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)
+#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) || defined(SUSE_SLE12)
-# 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)
+# 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) || defined(SUSE_SLE12)
struct ttm_operation_ctx ctx = { false, false };
#endif
# endif
int i, ret;
@@ -624,7 +624,7 @@ int vbox_bo_push_sysram(struct vbox_bo *
@@ -701,7 +701,7 @@ int vbox_bo_push_sysram(struct vbox_bo *
for (i = 0; i < bo->placement.num_placement; i++)
PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
-# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
#else
# else
ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx);
Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_drv.h
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.h
===================================================================
--- VirtualBox-6.1.18.orig/src/VBox/Additions/linux/drm/vbox_drv.h
+++ VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_drv.h
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_drv.h
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.h
@@ -87,6 +87,9 @@
#else
# define RTLNX_RHEL_MAX(a_iMajor, a_iMinor) (0)
@ -147,10 +147,10 @@ Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_drv.h
/** @def RTLNX_RHEL_RANGE
* Check that it's a RedHat kernel in the given version range.
Index: VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_mode.c
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_mode.c
===================================================================
--- VirtualBox-6.1.18.orig/src/VBox/Additions/linux/drm/vbox_mode.c
+++ VirtualBox-6.1.18/src/VBox/Additions/linux/drm/vbox_mode.c
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_mode.c
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_mode.c
@@ -544,7 +544,8 @@ static void vbox_set_edid(struct drm_con
for (i = 0; i < EDID_SIZE - 1; ++i)
sum += edid[i];

View File

@ -1,7 +1,7 @@
Index: VirtualBox-6.1.14/src/bldprogs/scm.cpp
Index: VirtualBox-6.1.20/src/bldprogs/scm.cpp
===================================================================
--- VirtualBox-6.1.14.orig/src/bldprogs/scm.cpp
+++ VirtualBox-6.1.14/src/bldprogs/scm.cpp
--- VirtualBox-6.1.20.orig/src/bldprogs/scm.cpp
+++ VirtualBox-6.1.20/src/bldprogs/scm.cpp
@@ -2206,7 +2206,7 @@ static int scmProcessFileInner(PSCMRWSTA
pszTreatAs = "shell";
else if ( (cchFirst >= 15 && strncmp(pchFirst, "/usr/bin/python", 15) == 0)
@ -11,10 +11,10 @@ Index: VirtualBox-6.1.14/src/bldprogs/scm.cpp
else if ( (cchFirst >= 13 && strncmp(pchFirst, "/usr/bin/perl", 13) == 0)
|| (cchFirst >= 17 && strncmp(pchFirst, "/usr/bin/env perl", 17) == 0) )
pszTreatAs = "perl";
Index: VirtualBox-6.1.14/src/libs/libxml2-2.9.4/configure
Index: VirtualBox-6.1.20/src/libs/libxml2-2.9.4/configure
===================================================================
--- VirtualBox-6.1.14.orig/src/libs/libxml2-2.9.4/configure
+++ VirtualBox-6.1.14/src/libs/libxml2-2.9.4/configure
--- VirtualBox-6.1.20.orig/src/libs/libxml2-2.9.4/configure
+++ VirtualBox-6.1.20/src/libs/libxml2-2.9.4/configure
@@ -15153,10 +15153,10 @@ PYTHON_SITE_PACKAGES=
PYTHON_TESTS=
pythondir=
@ -39,10 +39,10 @@ Index: VirtualBox-6.1.14/src/libs/libxml2-2.9.4/configure
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PYTHON+:} false; then :
Index: VirtualBox-6.1.14/src/VBox/ValidationKit/testboxscript/setup.sh
Index: VirtualBox-6.1.20/src/VBox/ValidationKit/testboxscript/setup.sh
===================================================================
--- VirtualBox-6.1.14.orig/src/VBox/ValidationKit/testboxscript/setup.sh
+++ VirtualBox-6.1.14/src/VBox/ValidationKit/testboxscript/setup.sh
--- VirtualBox-6.1.20.orig/src/VBox/ValidationKit/testboxscript/setup.sh
+++ VirtualBox-6.1.20/src/VBox/ValidationKit/testboxscript/setup.sh
@@ -652,7 +652,7 @@ import sys;\
x = sys.version_info[0] == 2 and (sys.version_info[1] >= 6 or (sys.version_info[1] == 5 and sys.version_info[2] >= 1));\
sys.exit(not x);\
@ -52,14 +52,14 @@ Index: VirtualBox-6.1.14/src/VBox/ValidationKit/testboxscript/setup.sh
do
python=`which ${python} 2> /dev/null`
if [ -n "${python}" -a -x "${python}" ]; then
Index: VirtualBox-6.1.14/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
Index: VirtualBox-6.1.20/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
===================================================================
--- VirtualBox-6.1.14.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
+++ VirtualBox-6.1.14/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
--- VirtualBox-6.1.20.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
+++ VirtualBox-6.1.20/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
@@ -20,7 +20,7 @@
%define %PYTHON% 1
%define VBOXDOCDIR %{_defaultdocdir}/%NAME%
%global __requires_exclude_from ^/usr/lib/virtualbox/VBoxPython.*$
%global __requires_exclude_from ^/usr/lib/virtualbox/VBoxPython.*$|^/usr/lib/python.*$|^.*\\.py$
-%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
+%{!?python_sitelib: %define python_sitelib python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
@ -74,10 +74,10 @@ Index: VirtualBox-6.1.14/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
%endif
rm -rf sdk/installer
mv nls $RPM_BUILD_ROOT/usr/share/virtualbox
Index: VirtualBox-6.1.14/src/libs/libxml2-2.9.4/libxml.spec.in
Index: VirtualBox-6.1.20/src/libs/libxml2-2.9.4/libxml.spec.in
===================================================================
--- VirtualBox-6.1.14.orig/src/libs/libxml2-2.9.4/libxml.spec.in
+++ VirtualBox-6.1.14/src/libs/libxml2-2.9.4/libxml.spec.in
--- VirtualBox-6.1.20.orig/src/libs/libxml2-2.9.4/libxml.spec.in
+++ VirtualBox-6.1.20/src/libs/libxml2-2.9.4/libxml.spec.in
@@ -101,11 +101,11 @@ rm -fr %{buildroot}
make install DESTDIR=%{buildroot}
@ -93,10 +93,10 @@ Index: VirtualBox-6.1.14/src/libs/libxml2-2.9.4/libxml.spec.in
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
Index: VirtualBox-6.1.14/src/libs/libxml2-2.9.4/libxml2.spec
Index: VirtualBox-6.1.20/src/libs/libxml2-2.9.4/libxml2.spec
===================================================================
--- VirtualBox-6.1.14.orig/src/libs/libxml2-2.9.4/libxml2.spec
+++ VirtualBox-6.1.14/src/libs/libxml2-2.9.4/libxml2.spec
--- VirtualBox-6.1.20.orig/src/libs/libxml2-2.9.4/libxml2.spec
+++ VirtualBox-6.1.20/src/libs/libxml2-2.9.4/libxml2.spec
@@ -103,7 +103,7 @@ make install DESTDIR=%{buildroot}
%if 0%{?with_python3}
@ -106,10 +106,10 @@ Index: VirtualBox-6.1.14/src/libs/libxml2-2.9.4/libxml2.spec
make install DESTDIR=%{buildroot}
%endif # with_python3
Index: VirtualBox-6.1.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
Index: VirtualBox-6.1.20/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
===================================================================
--- VirtualBox-6.1.14.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
+++ VirtualBox-6.1.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
+++ VirtualBox-6.1.20/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
@@ -439,6 +439,8 @@ char *PyTraceback_AsString(PyObject *exc
{ // a temp scope so I can use temp locals.
#if PY_MAJOR_VERSION <= 2
@ -119,10 +119,10 @@ Index: VirtualBox-6.1.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
#else
/* PyUnicode_AsUTF8() is const char * as of Python 3.7, char * earlier. */
const char *tempResult = (const char *)PyUnicode_AsUTF8(obResult);
Index: VirtualBox-6.1.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
Index: VirtualBox-6.1.20/src/libs/xpcom18a4/python/src/PyGBase.cpp
===================================================================
--- VirtualBox-6.1.14.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
+++ VirtualBox-6.1.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
+++ VirtualBox-6.1.20/src/libs/xpcom18a4/python/src/PyGBase.cpp
@@ -183,7 +183,11 @@ PyG_Base::~PyG_Base()
// Get the correct interface pointer for this object given the IID.
void *PyG_Base::ThisAsIID( const nsIID &iid )
@ -136,11 +136,11 @@ Index: VirtualBox-6.1.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
if (iid.Equals(NS_GET_IID(nsISupports)))
return (nsISupports *)(nsIInternalPython *)this;
if (iid.Equals(NS_GET_IID(nsISupportsWeakReference)))
Index: VirtualBox-6.1.14/src/libs/xpcom18a4/python/Makefile.kmk
Index: VirtualBox-6.1.20/src/libs/xpcom18a4/python/Makefile.kmk
===================================================================
--- VirtualBox-6.1.14.orig/src/libs/xpcom18a4/python/Makefile.kmk
+++ VirtualBox-6.1.14/src/libs/xpcom18a4/python/Makefile.kmk
@@ -533,6 +533,52 @@ VBoxPython3_8m_x86_LIBS = $(VBOX_P
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/Makefile.kmk
+++ VirtualBox-6.1.20/src/libs/xpcom18a4/python/Makefile.kmk
@@ -579,6 +579,52 @@ VBoxPython3_9m_x86_LIBS = $(VBOX_P
endif
endif
@ -193,16 +193,16 @@ Index: VirtualBox-6.1.14/src/libs/xpcom18a4/python/Makefile.kmk
ifdef VBOX_PYTHONDEF_INC
#
# Python without versioning
Index: VirtualBox-6.1.14/src/libs/xpcom18a4/python/gen_python_deps.py
Index: VirtualBox-6.1.20/src/libs/xpcom18a4/python/gen_python_deps.py
===================================================================
--- VirtualBox-6.1.14.orig/src/libs/xpcom18a4/python/gen_python_deps.py
+++ VirtualBox-6.1.14/src/libs/xpcom18a4/python/gen_python_deps.py
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/gen_python_deps.py
+++ VirtualBox-6.1.20/src/libs/xpcom18a4/python/gen_python_deps.py
@@ -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.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" ]
+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.8", "3.8m", "3.9", "3.9m" ]
prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
known = {}

View File

@ -0,0 +1,20 @@
[Unit]
SourcePath=/usr/lib/virtualbox/vboxautostart-service.sh
Description=
Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
After=vboxdrv.service
Conflicts=shutdown.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/usr/lib/virtualbox/vboxautostart-service.sh start
ExecStop=/usr/lib/virtualbox/vboxautostart-service.sh stop
[Install]
WantedBy=multi-user.target

174
vboxautostart-service.sh Normal file
View File

@ -0,0 +1,174 @@
#!/bin/sh
# $Id: vboxautostart-service.sh 143795 2021-04-15 11:42:37Z vgalitsy $
## @file
# VirtualBox autostart service init script.
#
#
# Copyright (C) 2012-2020 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.
#
# chkconfig: 345 35 65
# description: VirtualBox autostart service
#
### BEGIN INIT INFO
# Provides: vboxautostart-service
# Required-Start: vboxdrv
# Required-Stop: vboxdrv
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: VirtualBox autostart service
### END INIT INFO
PATH=$PATH:/bin:/sbin:/usr/sbin
SCRIPTNAME=vboxautostart-service.sh
[ -f /etc/debian_release -a -f /lib/lsb/init-functions ] || NOLSB=yes
[ -f /etc/vbox/vbox.cfg ] && . /etc/vbox/vbox.cfg
if [ -n "$INSTALL_DIR" ]; then
binary="$INSTALL_DIR/VBoxAutostart"
else
binary="/usr/lib/virtualbox/VBoxAutostart"
fi
# silently exit if the package was uninstalled but not purged,
# applies to Debian packages only (but shouldn't hurt elsewhere)
[ ! -f /etc/debian_release -o -x $binary ] || exit 0
[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
# Preamble for Gentoo
if [ "`which $0`" = "/sbin/rc" ]; then
shift
fi
begin_msg()
{
test -n "${2}" && echo "${SCRIPTNAME}: ${1}."
logger -t "${SCRIPTNAME}" "${1}."
}
succ_msg()
{
logger -t "${SCRIPTNAME}" "${1}."
}
fail_msg()
{
echo "${SCRIPTNAME}: failed: ${1}." >&2
logger -t "${SCRIPTNAME}" "failed: ${1}."
}
start_daemon() {
usr="$1"
shift
su - $usr -c "$*"
}
if which start-stop-daemon >/dev/null 2>&1; then
start_daemon() {
usr="$1"
shift
bin="$1"
shift
start-stop-daemon --chuid $usr --start --exec $bin -- $@
}
fi
vboxdrvrunning() {
lsmod | grep -q "vboxdrv[^_-]"
}
valid_db_entry() {
entry="$1"
[ -z "$entry" ] && return 1
user="$2"
[ -z "$user" ] && return 1
user_name=$(id -n -u "$user" 2>/dev/null)
[ -z "$user_name" ] && return 1
user_id=$(id -u "$user" 2>/dev/null)
# Verify that @user identifies a user *by name* (i.e. not a numeric id).
# Careful, all numeric user names are legal.
if [ "$user_id" = "$user" ] && [ "$user_name" != "$user" ]; then
return 1
fi
# Verify whether file name is the same as file owner name.
[ -z "$(find "$entry" -user "$user" -type f 2>/dev/null)" ] && return 1
return 0
}
start() {
[ -z "$VBOXAUTOSTART_DB" ] && exit 0
[ -z "$VBOXAUTOSTART_CONFIG" ] && exit 0
begin_msg "Starting VirtualBox VMs configured for autostart" console;
vboxdrvrunning || {
fail_msg "VirtualBox kernel module not loaded!"
exit 0
}
PARAMS="--background --start --config $VBOXAUTOSTART_CONFIG"
# prevent inheriting this setting to VBoxSVC
unset VBOX_RELEASE_LOG_DEST
for entry in "$VBOXAUTOSTART_DB"/*.start
do
user=$(basename "$entry" .start)
[ "$user" = "*" ] && break
valid_db_entry "$entry" "$user" || continue
start_daemon "$user" "$binary" $PARAMS > /dev/null 2>&1
done
return $RETVAL
}
stop() {
[ -z "$VBOXAUTOSTART_DB" ] && exit 0
[ -z "$VBOXAUTOSTART_CONFIG" ] && exit 0
PARAMS="--stop --config $VBOXAUTOSTART_CONFIG"
# prevent inheriting this setting to VBoxSVC
unset VBOX_RELEASE_LOG_DEST
for entry in "$VBOXAUTOSTART_DB"/*.stop
do
user=$(basename "$entry" .stop)
[ "$user" = "*" ] && break
valid_db_entry "$entry" "$user" || continue
start_daemon "$user" "$binary" $PARAMS > /dev/null 2>&1
done
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit $RETVAL

View File

@ -1,18 +0,0 @@
[Unit]
SourcePath=/usr/lib/virtualbox/vboxautostart.sh
Description=VirtualBox Linux autostart module
Requires=vboxdrv.service
After=vboxdrv.service
After=network.target
After=time-sync.target
After=nss-user-lookup.target
[Service]
ExecStart=/usr/lib/virtualbox/vboxautostart.sh start
ExecStop=/usr/lib/virtualbox/vboxautostart.sh stop
Type=oneshot
RemainAfterExit=yes
TimeoutStopSec=0
[Install]
WantedBy=multi-user.target

View File

@ -1,126 +0,0 @@
#!/bin/sh
# VirtualBox autostart service init script.
#
# Copyright (C) 2012-2019 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.
#
# chkconfig: 345 35 65
# description: VirtualBox autostart service
#
### BEGIN INIT INFO
# Provides: vboxautostart-service
# Required-Start: vboxdrv
# Required-Stop: vboxdrv
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: VirtualBox autostart service
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH
SCRIPTNAME=vboxautostart.sh
# read vbox config
[ -f /etc/vbox/vbox.cfg ] && . /etc/vbox/vbox.cfg
# read autostart config
[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
begin_msg()
{
test -n "${2}" && echo "${SCRIPTNAME}: ${1}."
logger -t "${SCRIPTNAME}" "${1}."
}
succ_msg()
{
logger -t "${SCRIPTNAME}" "${1}."
}
fail_msg()
{
echo "${SCRIPTNAME}: failed: ${1}." >&2
logger -t "${SCRIPTNAME}" "failed: ${1}."
}
vboxdrvrunning() {
lsmod | grep -q "vboxdrv[^_-]"
}
start_vms()
{
OLD_IFS=$IFS
IFS=$'\n'
[ -z "$VBOXAUTOSTART_DB" ] && return
[ -z "$VBOXAUTOSTART_CONFIG" ] && return
begin_msg "Starting VirtualBox VMs configured for autostart" console;
vboxdrvrunning || {
fail_msg "VirtualBox kernel module not loaded!"
exit 0
}
# read autostart config file
if [ -r $VBOXAUTOSTART_CONFIG ]; then
# prevent inheriting this setting to VBoxSVC
unset VBOX_RELEASE_LOG_DEST
# find all the files of type username.start
var=$(ls $VBOXAUTOSTART_DB | grep start | grep -v auto)
# process each file of that type
for i in $var; do
# Extract the user name - the first word on the line
user=$(echo $i | head -n1 | cut -d "." -f1)
# autostart the VMs for that user
begin_msg "Starting VMs for user $user" console
su - $user -c "/usr/lib/virtualbox/VBoxAutostart --start --config $VBOXAUTOSTART_CONFIG"
succ_msg "VMs for user $user started"
done
fi
IFS=$OLD_IFS
}
stop_vms()
{
OLD_IFS=$IFS
IFS=$'\n'
[ -z "$VBOXAUTOSTART_DB" ] && return
[ -z "$VBOXAUTOSTART_CONFIG" ] && return
# read autostart config file
if [ -r $VBOXAUTOSTART_CONFIG ]; then
# prevent inheriting this setting to VBoxSVC
unset VBOX_RELEASE_LOG_DEST
# find all the files of type username.stop
var=$(ls $VBOXAUTOSTART_DB | grep stop | grep -v auto)
# process each file of that type
for i in $var; do
# Extract the user name - the first word on the line
user=$(echo $i | head -n1 | cut -d "." -f1)
# autostop the VMs for that user
begin_msg "Stopping VMs for user $user" console
su - $user -c "/usr/lib/virtualbox/VBoxAutostart --stop --config $VBOXAUTOSTART_CONFIG"
succ_msg "VMs for user $user stopped"
done
fi
IFS=$OLD_IFS
}
case "$1" in
start)
start_vms
;;
stop)
stop_vms
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0

View File

@ -1,3 +1,47 @@
-------------------------------------------------------------------
Tue Apr 20 19:27:40 UTC 2021 - Larry Finger <Larry.Finger@gmail.com>
- Version bump to (released April 20 2021 by Oracle)
This is a maintenance release. The following items were fixed and/or added:
VMM: Fixed extremely poor VM performance depending on the timing of various actions (regression in 6.1.0)
VMM: Fixed guest OS hanging under certain circumstances when Hyper-V is present (bug #20141)
VMM: Fixed Guru Meditation error when using a nested hypervisor under certain circumstances (bug #20175)
VMM: Fixed a SMAP related host panic affecting Solaris 11.4 systems with Intel Haswell CPUs or later (bug #16068)
OCI: Add cloud-init support for export to OCI and for OCI instance creation
GUI: Fixed "Delete all files" leaving behind Logs/VBoxUI.log (bug #20235)
Audio: Multiple fixes and enhancements
Audio: Fixed detection of duplex audio devices on macOS (5.0 regression; bug #20171)
Network: Fixed link status reporting for "not attached" adapters
Network: Fixed connectivity issues with e1000 in OS/2 guests (6.1.18 regression; bug #20148)
Network: Fixed VxWorks e1000 driver compatibility issue (bug #20182)
Network: Fixed GUI checks for port forwarding rules rejecting IPv6 with "Nat Network" (bug #14847)
DHCP: Don't crash in the presence of fixed address assignments (bug #20128)
Serial: Fixed possible VM hang when using the a serial port in disconnected mode (bug #19854)
Webcam: Fixed interoperability with v4l2loopback and fixed a crash under certain circumstances (bug #20176)
NVMe: Fixed sporadic Windows VM hang or reboot on high CPU load
VBoxManage: Allow changing network adapter attachment of a saved VM with "modifyvm"
vboximg-mount: Fix for argument processing to honor the '--root' option (6.0 regression; bug #20073)
Linux host and guest: Support kernel versions 5.11 (bug #20198) and 5.12
Linux host: Maximum MTU size increased to 16110 for host-only adapters on Linux kernels 4.10+ (bug #19122)
Linux Guest Additions: Fix vboxvideo module compilation for kernel version 5.10.x
Linux Guest Additions: Fixed kernel module build for RHEL 8.4 beta and CentOS Stream (bug #20289)
File "fixes-for-5.11.patch" is deleted. The issue is fixed upstream.
File "vboxautostart.sh" is replaced by "vboxautostart-service.sh"
File "vboxautostart.service" is replaced by "vboxautostart-service.service"
Fixes boo#1183329 "virtualbox 6.1.18 crashes when it runs nested VM"
Fixes boo#1183125 "Leap 15.3 installation in Virtualbox without VBox integration"
Fixes CVE-2021-2264 and boo#1184542. The directory for the <user>.start files for
autostarting VMs is moved from /etc/vbox to /etc/vbox/autostart.d. In addition, the autostart
service is hardened (by Oracle).
-------------------------------------------------------------------
Wed Apr 7 16:21:58 UTC 2021 - Larry Finger <Larry.Finger@gmail.com>
- Improve autostart security boo#1182918.
-------------------------------------------------------------------
Thu Apr 1 09:43:50 UTC 2021 - Richard Brown <rbrown@suse.com>

View File

@ -16,17 +16,6 @@
#
#create a variable that indicates we are building for Leap 15.{2,3}. These versions
#need to have the guest modules build. Tumbleweed does not.
#
%define for_leap 0
%if 0%{?sle_version == 150200}
%define for_leap 1
%endif
%if 0%{?sle_version == 150300}
%define for_leap 1
%endif
%if "@BUILD_FLAVOR@" == "kmp"
### macros for virtualbox-kmp ###
%define main_package 0
@ -77,7 +66,7 @@ python3 -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile
# ********* If the VB version exceeds 6.1.x, notify the libvirt maintainer!!
Name: virtualbox%{?dash}%{?name_suffix}
Version: 6.1.18
Version: 6.1.20
Release: 0
Summary: %{package_summary}
License: GPL-2.0-or-later
@ -95,11 +84,7 @@ Source2: VirtualBox.appdata.xml
%endif
Source3: virtualbox-60-vboxguest.rules
Source4: virtualbox-default.virtualbox
%if %{for_leap}
Source5: virtualbox-kmp-files-leap
%else
Source5: virtualbox-kmp-files
%endif
Source7: virtualbox-kmp-preamble
Source8: update-extpack.sh
Source9: virtualbox-wrapper.sh
@ -108,16 +93,14 @@ Source11: virtualbox-60-vboxdrv.rules
Source14: vboxdrv.service
Source15: vboxadd-service.service
Source16: vboxconfig.sh
%if %{for_leap}
Source17: vboxguestconfig.sh
%endif
Source18: fix_usb_rules.sh
Source19: vboxdrv.sh
Source20: README.autostart
Source21: vboxweb-service.service
Source22: vboxweb-service.sh
Source23: vboxautostart.service
Source24: vboxautostart.sh
Source23: vboxautostart-service.service
Source24: vboxautostart-service.sh
Source97: README.build
Source98: virtualbox-rpmlintrc
Source99: virtualbox-patch-source.sh
@ -196,7 +179,6 @@ Patch135: fix-missing-includes-with-qt-5.15.patch
Patch136: fixes_for_gcc10.patch
# Fix for changes in GSOAP 2.8.103
Patch137: handle_gsoap_208103.patch
Patch138: fixes-for-5.11.patch
# Fix for struct file_operations backport in 15.3
Patch139: fixes_for_leap15.3.patch
Patch141: vb-6.1.16-modal-dialog-parent.patch
@ -326,6 +308,22 @@ and others, and limited virtualization of macOS guests on Apple
hardware. VirtualBox is freely available as Open Source Software under
the terms of the GNU Public License (GPL).
##########################################
%package qt
Summary: Qt GUI part for %{name}
@ -343,6 +341,22 @@ Obsoletes: %{name}-ose-qt < %{version}
%description qt
This package contains the code for the GUI used to control VMs.
#########################################
%package websrv
Summary: WebService GUI part for %{name}
@ -354,12 +368,28 @@ Obsoletes: %{name}-vboxwebsrv
%description websrv
The VirtualBox web server is used to control headless VMs using a browser.
#########################################
%package guest-x11
Summary: VirtualBox X11 drivers for mouse and video
Group: System/X11/Servers/XF86_4
Requires: %{name}-kmp = %{version}
Supplements: modalias(xorg-x11-server:pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
Supplements: modalias(xorg-x11-server:pci:v000080EEd0000CAFEsv*sd*bc*sc*i*)
#rename from xorg-x11-driver-virtualbox-ose:
Provides: xorg-x11-driver-virtualbox-ose = %{version}
Obsoletes: xorg-x11-driver-virtualbox-ose < %{version}
@ -367,12 +397,28 @@ Obsoletes: xorg-x11-driver-virtualbox-ose < %{version}
%description guest-x11
This package contains X11 guest utilities and X11 guest mouse and video drivers
###########################################
%package guest-tools
Summary: VirtualBox guest tools
Group: System/Emulators/PC
Requires: %{name}-kmp = %{version}
Supplements: modalias(pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
Supplements: modalias(pci:v000080EEd0000CAFEsv*sd*bc*sc*i*)
#rename from "ose" version:
Provides: %{name}-ose-guest-tools = %{version}
Obsoletes: %{name}-ose-guest-tools < %{version}
@ -383,6 +429,22 @@ Requires(pre): net-tools-deprecated
%description guest-tools
VirtualBox guest addition tools.
###########################################
%package -n python3-%{name}
Summary: Python bindings for %{name}
@ -401,6 +463,22 @@ Obsoletes: python3-%{name}-ose < %{version}
%description -n python3-%{name}
Python XPCOM bindings to %{name}. Used e.g. by vboxgtk package.
###########################################
%package devel
Summary: Devel files for %{name}
@ -414,6 +492,22 @@ Obsoletes: %{name}-ose-devel < %{version}
%description devel
Development file for %{name}
###########################################
%package host-source
Summary: Source files for %{name} host kernel modules
@ -430,7 +524,6 @@ Source files for %{name} host kernel modules
These can be built for custom kernels using
sudo /sbin/vboxconfig
%if %{for_leap}
%package guest-source
Summary: Source files for %{name} guest kernel modules
Group: Development/Sources
@ -444,7 +537,7 @@ BuildArch: noarch
Source files for %{name} guest kernel modules
These can be built for custom kernels using
sudo /sbin/vboxguestconfig
%endif
###########################################
%package guest-desktop-icons
@ -457,6 +550,22 @@ BuildArch: noarch
%description guest-desktop-icons
This package contains icons for guest desktop files that were created on the desktop.
###########################################
%package vnc
Summary: VNC desktop sharing
@ -524,7 +633,6 @@ This package contains the kernel-modules that VirtualBox uses to create or run v
%patch135 -p1
%patch136 -p1
%patch137 -p1
%patch138 -p1
%if 0%{?sle_version} == 150300 && 0%{?is_opensuse}
# Patch for Leap 15.3
%patch139 -p1
@ -632,6 +740,7 @@ install -d -m 755 %{buildroot}%{_sysconfdir}/init.d
install -d %{buildroot}%{_unitdir}
install -d %{buildroot}%{_unitdir}/multi-user.target.wants
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox/autostart.d
install -d -m 755 %{buildroot}%{_udevrulesdir}
install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d
@ -717,9 +826,7 @@ install -m 644 nls/* %{buildroot}%{_datadir}/virtualbox/nls/
# install kmp src
mkdir -p %{buildroot}%{_usrsrc}/kernel-modules/virtualbox
mkdir -p %{buildroot}%{_usrsrc}/kernel-modules/additions
%if %{for_leap}
tar jcf %{buildroot}%{_usrsrc}/kernel-modules/additions/guest_src.tar.bz2 additions/src
%endif
cp -a src %{buildroot}%{_usrsrc}/kernel-modules/virtualbox
install -m 644 %{SOURCE11} %{buildroot}%{_udevrulesdir}/60-vboxdrv.rules
popd
@ -746,23 +853,22 @@ install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service
install -m 0755 %{SOURCE16} %{buildroot}/sbin/vboxconfig
%if %{for_leap}
install -m 0755 %{SOURCE17} %{buildroot}/sbin/vboxguestconfig
%endif
install -m 0755 %{SOURCE18} %{buildroot}/sbin/vbox-fix-usb-rules.sh
install -m 0755 %{SOURCE19} %{buildroot}%{_vbox_instdir}/vboxdrv.sh
install -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}/vboxweb-service.service
install -m 0755 %{SOURCE22} %{buildroot}%{_vbox_instdir}/vboxweb-service.sh
install -m 0644 %{SOURCE23} %{buildroot}%{_unitdir}/vboxautostart.service
install -m 0644 %{SOURCE23} %{buildroot}%{_unitdir}/vboxautostart-service.service
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxautostart
install -m 0755 %{SOURCE24} %{buildroot}%{_vbox_instdir}/vboxautostart.sh
install -m 0755 %{SOURCE24} %{buildroot}%{_vbox_instdir}/vboxautostart-service.sh
# Init scripts to start virtualbox during boot
ln -sf %{_unitdir}/vboxdrv.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service
ln -sf %{_unitdir}/vboxadd-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service
ln -sf %{_unitdir}/vboxautostart.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxautostart.service
ln -sf %{_unitdir}/vboxautostart-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxautostart-service.service
# config file for vboxdrv and vboxweb
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
install -d -m 775 %{buildroot}%{_sysconfdir}/vbox/autostart.d
echo -e "#settings for vboxwebsrn\nVBOXWEB_USER=root" > %{buildroot}%{_sysconfdir}/vbox/vbox.cfg
# config file for vboxautostart
cat > %{buildroot}%{_sysconfdir}/vbox/autostart.cfg << EOF
@ -837,7 +943,7 @@ popd
%pre
getent group vboxusers >/dev/null || groupadd -r vboxusers
%service_add_pre vboxdrv.service
%service_add_pre vboxautostart.service
%service_add_pre vboxautostart-service.service
%pre guest-tools
# Add groups for seamless mode and shared folders:
@ -863,7 +969,7 @@ getent group vboxvideo >/dev/null || groupadd -r vboxvideo
%set_permissions %{_vbox_instdir}/VBoxNetAdpCtl
%set_permissions %{_vbox_instdir}/VBoxHeadless
%service_add_post vboxdrv.service
%service_add_post vboxautostart.service
%service_add_post vboxautostart-service.service
# add new autostart stuff to the existing default config, if missing
grep -q VBOXAUTOSTART /etc/default/virtualbox || {
cat >> /etc/default/virtualbox << EOF
@ -871,11 +977,17 @@ grep -q VBOXAUTOSTART /etc/default/virtualbox || {
# -------------------------------------------------------------------------------------------------
# Autostart
# -------------------------------------------------------------------------------------------------
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_DB=/etc/vbox/autostart.d
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
EOF
}
for entry in /etc/vbox/*.start
do
user=$(basename "$entry" .start)
[ "$user" = "*" ] && break
mv /etc/vbox/user.start /etc/vbox/autostart.d/.
done
%post qt
%set_permissions %{_vbox_instdir}/VirtualBoxVM
@ -907,9 +1019,9 @@ VBoxManage extpack install --replace "${EXTPACK}" --accept-license="${ACCEPT}" >
#######################################################
%preun
%stop_on_removal vboxautostart
%stop_on_removal vboxautostart-service
%stop_on_removal vboxdrv
%service_del_preun vboxautostart.service
%service_del_preun vboxautostart-service.service
%service_del_preun vboxdrv.service
exit 0
@ -931,14 +1043,14 @@ exit 0
%postun
/sbin/ldconfig
%restart_on_update vboxdrv
%restart_on_update vboxautostart
%restart_on_update vboxautostart-service
# immediately restarting virtualbox may not work. As such wait for the next reboot to restart
%if ! %{defined service_del_postun_without_restart}
export DISABLE_RESTART_ON_UPDATE=yes
%service_del_postun vboxautostart.service
%service_del_postun vboxautostart-service.service
%service_del_postun vboxdrv.service
%else
%service_del_postun_without_restart vboxautostart.service
%service_del_postun_without_restart vboxautostart-service.service
%service_del_postun_without_restart vboxdrv.service
%endif
@ -1005,11 +1117,11 @@ export DISABLE_RESTART_ON_UPDATE=yes
%dir %{_unitdir}
%dir %{_unitdir}/multi-user.target.wants
/usr/lib/virtualbox/vboxdrv.sh
/usr/lib/virtualbox/vboxautostart.sh
/usr/lib/virtualbox/vboxautostart-service.sh
%{_unitdir}/vboxdrv.service
%{_unitdir}/vboxautostart.service
%{_unitdir}/vboxautostart-service.service
%{_unitdir}/multi-user.target.wants/vboxdrv.service
%{_unitdir}/multi-user.target.wants/vboxautostart.service
%{_unitdir}/multi-user.target.wants/vboxautostart-service.service
%{_sbindir}/rcvboxdrv
%{_sbindir}/rcvboxautostart
/sbin/vboxconfig
@ -1019,7 +1131,9 @@ export DISABLE_RESTART_ON_UPDATE=yes
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxNetAdpCtl
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxHeadless
%dir %{_sysconfdir}/vbox
%attr(1775,root,vboxusers) %{_sysconfdir}/vbox
%dir %{_sysconfdir}/vbox/autostart.d
%attr(755,root,root) %{_sysconfdir}/vbox
%attr(1770,root,vboxusers) %{_sysconfdir}/vbox/autostart.d
%config %attr(644,root,vboxusers) %{_sysconfdir}/vbox/vbox.cfg
%config %attr(644,root,vboxusers) %{_sysconfdir}/vbox/autostart.cfg
@ -1069,9 +1183,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%defattr(-, root, root)
%{_bindir}/VBoxControl
%{_sbindir}/VBoxService
%if %{for_leap}
/sbin/vboxguestconfig
%endif
/sbin/mount.vboxsf
%{_udevrulesdir}/60-vboxguest.rules
%{_vbox_instdir}/vboxadd-service
@ -1107,13 +1219,11 @@ export DISABLE_RESTART_ON_UPDATE=yes
%dir %{_usrsrc}/kernel-modules
%{_usrsrc}/kernel-modules/virtualbox
%if %{for_leap}
%files guest-source
%defattr(-,root, root)
%dir %{_usrsrc}/kernel-modules
%dir %{_usrsrc}/kernel-modules/additions
%{_usrsrc}/kernel-modules/additions/guest_src.tar.bz2
%endif
%files websrv
%defattr(-,root, root)
@ -1210,20 +1320,13 @@ COMMON_KMK_FLAGS+="
# host kernel modules to out/linux.*/release/bin/src/
%{_bindir}/kmk %_smp_mflags -C src/VBox/HostDrivers/ \
${COMMON_KMK_FLAGS}
%if %{for_leap}
#
# build kernel modules for guest and host (check novel-kmp package as example)
# host modules : vboxdrv,vboxnetflt,vboxnetadp
# guest modules : vboxguest,vboxsf vboxvideo (for Leap 15.2 and older)
# guest modules : vboxguest,vboxsf vboxvideo
echo "build kernel modules"
for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} \
out/linux.*/release/bin/additions/src/vbox{guest,sf,video}; do
%else
# build kernel modules for host (check novel-kmp package as example)
# host modules : vboxdrv,vboxnetflt,vboxnetadp
echo "build kernel modules"
for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} ; do
%endif
#get the module name from path
module_name=$(basename "$vbox_module")
@ -1232,12 +1335,8 @@ for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} ; do
# delete old build dir for sure
rm -rf modules_build_dir/${module_name}_${flavor}
%if %{for_leap}
if [ "$module_name" = "vboxdrv" -o \
"$module_name" = "vboxguest" ] ; then
%else
if [ "$module_name" = "vboxdrv" ] ; then
%endif
SYMBOLS=""
fi
# create build directory for specific flavor
@ -1253,7 +1352,6 @@ for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} ; do
$PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers"
fi
%if %{for_leap}
# copy vboxguest (for guest) module symbols which are used by vboxsf km:
if [ "$module_name" = "vboxsf" -o \
"$module_name" = "vboxvideo" ] ; then
@ -1261,7 +1359,6 @@ for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} ; do
$PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxguest/Module.symvers"
fi
%endif
# build the module for the specific flavor
make -j2 -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor %{?linux_make_arch} modules \
M=$PWD/modules_build_dir/$flavor/$module_name KBUILD_EXTRA_SYMBOLS="$SYMBOLS" V=1
@ -1272,11 +1369,7 @@ done
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=extra
#to install modules we use here similar steps like in build phase, go through all the modules :
%if %{for_leap}
for module_name in vbox{drv,netflt,netadp,guest,sf,video}
%else
for module_name in vbox{drv,netflt,netadp}
%endif
do
#and through the all flavors
for flavor in %{flavors_to_build}; do