From 221b12cb3b32651958fecd582a26cdfb3b1affae1abbad8a60b2226a11b309fe Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sat, 24 Apr 2021 13:48:44 +0000 Subject: [PATCH 1/3] 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 .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 --- README.autostart | 7 +- UserManual.pdf | 4 +- VirtualBox-6.1.18-patched.tar.bz2 | 3 - VirtualBox-6.1.20-patched.tar.bz2 | 3 + fixes-for-5.11.patch | 14 -- fixes_for_leap15.2.patch | 30 ++-- fixes_for_sle12.patch | 80 +++++------ switch_to_python3.4+.patch | 68 ++++----- vboxautostart-service.service | 20 +++ vboxautostart-service.sh | 174 +++++++++++++++++++++++ vboxautostart.service | 18 --- vboxautostart.sh | 126 ----------------- virtualbox.changes | 44 ++++++ virtualbox.spec | 227 +++++++++++++++++++++--------- 14 files changed, 497 insertions(+), 321 deletions(-) delete mode 100644 VirtualBox-6.1.18-patched.tar.bz2 create mode 100644 VirtualBox-6.1.20-patched.tar.bz2 delete mode 100644 fixes-for-5.11.patch create mode 100644 vboxautostart-service.service create mode 100644 vboxautostart-service.sh delete mode 100644 vboxautostart.service delete mode 100644 vboxautostart.sh diff --git a/README.autostart b/README.autostart index 2b4f3b2..5188bdb 100644 --- a/README.autostart +++ b/README.autostart @@ -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 --autostart-enabled +VBoxManage modifyvm --autostart-enabled on Choose a shut down mode: VBoxManage modifyvm --autostop-type Restart the vboxdrv service to start the VMs in question sudo service vboxdrv restart + +To turn off autostart for a VM +VBoxManage modifyvm --autostart-enabled off diff --git a/UserManual.pdf b/UserManual.pdf index 4558d28..a0a4d48 100644 --- a/UserManual.pdf +++ b/UserManual.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:50cf78dc97e9ce7227f6aa1966b5478ff50abad85485626dc603bb5e98808664 -size 4969463 +oid sha256:66b7dd9f1d5b53b6273d883e16b3776d9a168279383bfba5db479f99effa89b4 +size 4972709 diff --git a/VirtualBox-6.1.18-patched.tar.bz2 b/VirtualBox-6.1.18-patched.tar.bz2 deleted file mode 100644 index 2b007dc..0000000 --- a/VirtualBox-6.1.18-patched.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81573e1d8cf8b1a8dbd3c643d34bfe42e26105acf5316591a8bd365a3dfebb31 -size 120586588 diff --git a/VirtualBox-6.1.20-patched.tar.bz2 b/VirtualBox-6.1.20-patched.tar.bz2 new file mode 100644 index 0000000..a130941 --- /dev/null +++ b/VirtualBox-6.1.20-patched.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:604c082b4aa2637fe4c73bab19c23d64bc66e7299c145673b16629bc8fec98bb +size 120659635 diff --git a/fixes-for-5.11.patch b/fixes-for-5.11.patch deleted file mode 100644 index f1c7a29..0000000 --- a/fixes-for-5.11.patch +++ /dev/null @@ -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 -+#endif - typedef struct net_device_ops OVR_OPSTYPE; - # define OVR_OPS netdev_ops - # define OVR_XMIT pOrgOps->ndo_start_xmit diff --git a/fixes_for_leap15.2.patch b/fixes_for_leap15.2.patch index a9a0b2f..3d09f2a 100644 --- a/fixes_for_leap15.2.patch +++ b/fixes_for_leap15.2.patch @@ -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_ } @@ -34,13 +34,13 @@ Index: VirtualBox-6.1.16/src/VBox/Additions/linux/drm/vbox_drv.c - DRIVER_PRIME, + DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ, #else /* >= 5.4.0 && RHEL >= 8.3 */ - .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ, + .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 */ diff --git a/fixes_for_sle12.patch b/fixes_for_sle12.patch index ae02478..6ff2d70 100644 --- a/fixes_for_sle12.patch +++ b/fixes_for_sle12.patch @@ -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]; diff --git a/switch_to_python3.4+.patch b/switch_to_python3.4+.patch index 7aad7ba..28f1fb6 100644 --- a/switch_to_python3.4+.patch +++ b/switch_to_python3.4+.patch @@ -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 = {} diff --git a/vboxautostart-service.service b/vboxautostart-service.service new file mode 100644 index 0000000..72e8bc3 --- /dev/null +++ b/vboxautostart-service.service @@ -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 diff --git a/vboxautostart-service.sh b/vboxautostart-service.sh new file mode 100644 index 0000000..b035d5f --- /dev/null +++ b/vboxautostart-service.sh @@ -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 diff --git a/vboxautostart.service b/vboxautostart.service deleted file mode 100644 index ef98c3e..0000000 --- a/vboxautostart.service +++ /dev/null @@ -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 diff --git a/vboxautostart.sh b/vboxautostart.sh deleted file mode 100644 index 4079cfb..0000000 --- a/vboxautostart.sh +++ /dev/null @@ -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 diff --git a/virtualbox.changes b/virtualbox.changes index 55d9b5c..65f653e 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Tue Apr 20 19:27:40 UTC 2021 - Larry Finger + +- 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 .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 + +- Improve autostart security boo#1182918. + ------------------------------------------------------------------- Thu Apr 1 09:43:50 UTC 2021 - Richard Brown diff --git a/virtualbox.spec b/virtualbox.spec index 8354cf3..6fd9ad7 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -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 From 669b3a9807c3901310eb75bb54d8a01e9b814e9902db2dca7736128a2fa83ee9 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sat, 24 Apr 2021 16:51:36 +0000 Subject: [PATCH 2/3] Accepting request 888237 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 .start files for autostarting VMs is moved from /etc/vbox to /etc/vbox/autostart.d. In addition, the autostart service is hardened (by Oracle). File "virtualbox-kmp-files-leap" is deleted. OBS-URL: https://build.opensuse.org/request/show/888237 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=598 --- virtualbox-kmp-files | 4 ++++ virtualbox-kmp-files-leap | 10 ---------- virtualbox.changes | 3 ++- virtualbox.spec | 11 ++++++++++- 4 files changed, 16 insertions(+), 12 deletions(-) delete mode 100644 virtualbox-kmp-files-leap diff --git a/virtualbox-kmp-files b/virtualbox-kmp-files index 7e9bb85..82efcaf 100644 --- a/virtualbox-kmp-files +++ b/virtualbox-kmp-files @@ -4,3 +4,7 @@ /lib/modules/%2-%1/extra/vboxdrv.ko /lib/modules/%2-%1/extra/vboxnetadp.ko /lib/modules/%2-%1/extra/vboxnetflt.ko +/lib/modules/%2-%1/extra/vboxsf.ko +/lib/modules/%2-%1/extra/vboxguest.ko +/lib/modules/%2-%1/extra/vboxvideo.ko + diff --git a/virtualbox-kmp-files-leap b/virtualbox-kmp-files-leap deleted file mode 100644 index 82efcaf..0000000 --- a/virtualbox-kmp-files-leap +++ /dev/null @@ -1,10 +0,0 @@ -%defattr (-,root,root) -%dir /lib/modules/%2-%1/ -%dir /lib/modules/%2-%1/extra -/lib/modules/%2-%1/extra/vboxdrv.ko -/lib/modules/%2-%1/extra/vboxnetadp.ko -/lib/modules/%2-%1/extra/vboxnetflt.ko -/lib/modules/%2-%1/extra/vboxsf.ko -/lib/modules/%2-%1/extra/vboxguest.ko -/lib/modules/%2-%1/extra/vboxvideo.ko - diff --git a/virtualbox.changes b/virtualbox.changes index 65f653e..6b3e909 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -Tue Apr 20 19:27:40 UTC 2021 - Larry Finger +Sat Apr 24 15:02:12 UTC 2021 - Larry Finger - Version bump to (released April 20 2021 by Oracle) @@ -36,6 +36,7 @@ Tue Apr 20 19:27:40 UTC 2021 - Larry Finger Fixes CVE-2021-2264 and boo#1184542. The directory for the .start files for autostarting VMs is moved from /etc/vbox to /etc/vbox/autostart.d. In addition, the autostart service is hardened (by Oracle). + File "virtualbox-kmp-files-leap" is deleted. ------------------------------------------------------------------- Wed Apr 7 16:21:58 UTC 2021 - Larry Finger diff --git a/virtualbox.spec b/virtualbox.spec index 6fd9ad7..2cf6a0d 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -84,7 +84,7 @@ Source2: VirtualBox.appdata.xml %endif Source3: virtualbox-60-vboxguest.rules Source4: virtualbox-default.virtualbox -Source5: virtualbox-kmp-files-leap +Source5: virtualbox-kmp-files Source7: virtualbox-kmp-preamble Source8: update-extpack.sh Source9: virtualbox-wrapper.sh @@ -324,6 +324,7 @@ the terms of the GNU Public License (GPL). + ########################################## %package qt Summary: Qt GUI part for %{name} @@ -357,6 +358,7 @@ This package contains the code for the GUI used to control VMs. + ######################################### %package websrv Summary: WebService GUI part for %{name} @@ -384,6 +386,7 @@ The VirtualBox web server is used to control headless VMs using a browser. + ######################################### %package guest-x11 Summary: VirtualBox X11 drivers for mouse and video @@ -413,6 +416,7 @@ This package contains X11 guest utilities and X11 guest mouse and video drivers + ########################################### %package guest-tools Summary: VirtualBox guest tools @@ -445,6 +449,7 @@ VirtualBox guest addition tools. + ########################################### %package -n python3-%{name} Summary: Python bindings for %{name} @@ -479,6 +484,7 @@ Python XPCOM bindings to %{name}. Used e.g. by vboxgtk package. + ########################################### %package devel Summary: Devel files for %{name} @@ -508,6 +514,7 @@ Development file for %{name} + ########################################### %package host-source Summary: Source files for %{name} host kernel modules @@ -539,6 +546,7 @@ These can be built for custom kernels using sudo /sbin/vboxguestconfig + ########################################### %package guest-desktop-icons Summary: Icons for guest desktop files @@ -566,6 +574,7 @@ This package contains icons for guest desktop files that were created on the des + ########################################### %package vnc Summary: VNC desktop sharing From ec54e74d1c4d76e745e2e12847fe4ba5501a0842ff7840e1fa1cca0769efcd1e Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sat, 24 Apr 2021 16:53:46 +0000 Subject: [PATCH 3/3] Accepting request 888204 from home:gmbr3:Active - Use distconfdir for xinitrc.d files on TW OBS-URL: https://build.opensuse.org/request/show/888204 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=599 --- virtualbox.changes | 44 ++++++++++++++++++++++++++++++++++++++++++++ virtualbox.spec | 12 +++++++----- 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/virtualbox.changes b/virtualbox.changes index 6b3e909..3d97472 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -38,6 +38,50 @@ Sat Apr 24 15:02:12 UTC 2021 - Larry Finger service is hardened (by Oracle). File "virtualbox-kmp-files-leap" is deleted. +------------------------------------------------------------------- +Sat Apr 24 13:53:30 UTC 2021 - Callum Farmer + +- Use distconfdir for xinitrc.d files on TW + +------------------------------------------------------------------- +Tue Apr 20 19:27:40 UTC 2021 - Larry Finger + +- 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 .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 diff --git a/virtualbox.spec b/virtualbox.spec index 2cf6a0d..1121423 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -40,6 +40,10 @@ %define _fillupdir /var/adm/fillup-templates %endif +%if ! %{defined _distconfdir} +%define _distconfdir %{_sysconfdir} +%endif + # Use Python3 rather than Python2 by default %define __python /usr/bin/python3 @@ -751,7 +755,7 @@ 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 +install -d -m 755 %{buildroot}%{_distconfdir}/X11/xinit/xinitrc.d ########################################### echo "entering guest-tools install section" @@ -785,7 +789,7 @@ pushd out/linux.*/release/bin/additions/ install -m 755 VBoxClient %{buildroot}%{_bindir} popd # install init script which start VBoxClient daemon (support for clipboard,autoresize,seamless windows) -install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh +install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %{buildroot}%{_distconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh ############################################## echo "entering virtualbox(-qt) install section" @@ -1184,9 +1188,7 @@ export DISABLE_RESTART_ON_UPDATE=yes %dir %{_libdir}/xorg/modules/input %dir %{_libdir}/dri/ %{_bindir}/VBoxClient -%dir %{_sysconfdir}/X11/xinit -%dir %{_sysconfdir}/X11/xinit/xinitrc.d -%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh +%{_distconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh %files guest-tools %defattr(-, root, root)