From 229678055767ec7ae69c19db1791f4c12da53fff4a66736f5eef1463fdf88e3c Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Tue, 30 Apr 2019 00:56:27 +0000 Subject: [PATCH] Accepting request 696073 from home:lwfinger:branches:openSUSE:Factory - Updated file "Fixes_for_Leap15.1.patch" to handle one addition problem due to backporting of kernel APIa. Remove "BuildRequires: quilt" - that package is not needed. VirtualBox 6.0.6 fixes the following: CVE-2019-2656, CVE-2019-2680, CVE-2019-2696, CVE-2019-2703, CVE-2019-2721, CVE-2019-2722, CVE-2019-2723, CVE-2019-2657, CVE-2019-2690, CVE-2019-2679, CVE-2019-2678, and CVE-2019-2574 boo#1132827. - Version bump to 6.0.6 (released April 17 2019 by Oracle) The following files in the openSUSE implemetation are removed: "fix_32_bit_builds.patch", "fixes_for_5.0.patch", and "fixes_for_5.1.patch". These issues are fixed upstream. OBS-URL: https://build.opensuse.org/request/show/696073 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=486 --- UserManual.pdf | 4 +- VirtualBox-6.0.4-patched.tar.bz2 | 3 - VirtualBox-6.0.6-patched.tar.bz2 | 3 + fix_32_bit_builds.patch | 20 ---- fixes_for_5.0.patch | 15 --- fixes_for_5.1.patch | 42 -------- fixes_for_Leap15.1.patch | 159 +++++++++++++++++++++++++++- security_fixes.patch | 25 +++-- vbox-suid-warning.diff | 70 ++++++++++++ vbox-vboxadd-init-script.diff | 176 ++++++++++++++----------------- virtualbox-guest-kmp-files | 3 + virtualbox-wrapper.sh | 8 ++ virtualbox.changes | 75 +++++++++++++ virtualbox.spec | 30 ++++-- 14 files changed, 432 insertions(+), 201 deletions(-) delete mode 100644 VirtualBox-6.0.4-patched.tar.bz2 create mode 100644 VirtualBox-6.0.6-patched.tar.bz2 delete mode 100644 fix_32_bit_builds.patch delete mode 100644 fixes_for_5.0.patch delete mode 100644 fixes_for_5.1.patch create mode 100644 vbox-suid-warning.diff diff --git a/UserManual.pdf b/UserManual.pdf index 60caf08..139dd60 100644 --- a/UserManual.pdf +++ b/UserManual.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3bc1ef7d3f3a88260f9adc789d908749d8e0f41ef0a4150b71e3b84261717a19 -size 4326192 +oid sha256:f4050a3fd73d8c25d7f02cdaf8c0ad3e3ef10100f4d9d2d5ef1203498d8b7f33 +size 4330514 diff --git a/VirtualBox-6.0.4-patched.tar.bz2 b/VirtualBox-6.0.4-patched.tar.bz2 deleted file mode 100644 index a2538b9..0000000 --- a/VirtualBox-6.0.4-patched.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:94903b78356081bc55d7a0689a31eb165e5b00e9de6a2663676240a24dadb673 -size 118626165 diff --git a/VirtualBox-6.0.6-patched.tar.bz2 b/VirtualBox-6.0.6-patched.tar.bz2 new file mode 100644 index 0000000..169f6df --- /dev/null +++ b/VirtualBox-6.0.6-patched.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6816256900ca78222c6f103efa231dc0c2ca8f8670720b4da50bb4e7493c50c9 +size 118577509 diff --git a/fix_32_bit_builds.patch b/fix_32_bit_builds.patch deleted file mode 100644 index f1ec13f..0000000 --- a/fix_32_bit_builds.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: VirtualBox-6.0.2/src/VBox/Additions/linux/sharedfolders/utils.c -=================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/Additions/linux/sharedfolders/utils.c -+++ VirtualBox-6.0.2/src/VBox/Additions/linux/sharedfolders/utils.c -@@ -63,11 +63,11 @@ static void sf_timespec_from_ftime(RTTIM - int64_t t = 1000000000 * *time; - RTTimeSpecSetNano(ts, t); - } --#else /* >= 2.6.0 */ --#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0) --static void sf_ftime_from_timespec(struct timespec *tv, RTTIMESPEC *ts) --#else -+#else /* >= 2.6.0 */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) - static void sf_ftime_from_timespec(struct timespec64 *tv, RTTIMESPEC *ts) -+#else -+static void sf_ftime_from_timespec(struct timespec *tv, RTTIMESPEC *ts) - #endif - { - int64_t t = RTTimeSpecGetNano(ts); diff --git a/fixes_for_5.0.patch b/fixes_for_5.0.patch deleted file mode 100644 index f331962..0000000 --- a/fixes_for_5.0.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: VirtualBox-5.2.24/src/VBox/Additions/linux/sharedfolders/vfsmod.c -=================================================================== ---- VirtualBox-5.2.24.orig/src/VBox/Additions/linux/sharedfolders/vfsmod.c -+++ VirtualBox-5.2.24/src/VBox/Additions/linux/sharedfolders/vfsmod.c -@@ -37,6 +37,9 @@ - # include - #endif - #include -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) -+#include -+#endif - - MODULE_DESCRIPTION(VBOX_PRODUCT " VFS Module for Host File System Access"); - MODULE_AUTHOR(VBOX_VENDOR); - diff --git a/fixes_for_5.1.patch b/fixes_for_5.1.patch deleted file mode 100644 index d15034d..0000000 --- a/fixes_for_5.1.patch +++ /dev/null @@ -1,42 +0,0 @@ -Index: VirtualBox-6.0.4/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -=================================================================== ---- VirtualBox-6.0.4.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -+++ VirtualBox-6.0.4/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -@@ -38,6 +38,9 @@ - #include - #include - #include "internal/memobj.h" -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) -+#include -+#endif - - - /********************************************************************************************************************************* -Index: VirtualBox-6.0.4/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c -=================================================================== ---- VirtualBox-6.0.4.orig/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c -+++ VirtualBox-6.0.4/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c -@@ -372,7 +372,7 @@ static int vboxPciFileWrite(struct file* - mm_segment_t fs_save; - - fs_save = get_fs(); -- set_fs(get_ds()); -+ set_fs(KERNEL_DS); - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) - ret = kernel_write(file, data, size, &offset); - #else -Index: VirtualBox-6.0.4/src/VBox/Additions/linux/sharedfolders/regops.c -=================================================================== ---- VirtualBox-6.0.4.orig/src/VBox/Additions/linux/sharedfolders/regops.c -+++ VirtualBox-6.0.4/src/VBox/Additions/linux/sharedfolders/regops.c -@@ -588,7 +588,9 @@ static int sf_reg_release(struct inode * - return 0; - } - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) -+static vm_fault_t sf_reg_fault(struct vm_fault *vmf) -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) - static int sf_reg_fault(struct vm_fault *vmf) - #elif LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25) - static int sf_reg_fault(struct vm_area_struct *vma, struct vm_fault *vmf) diff --git a/fixes_for_Leap15.1.patch b/fixes_for_Leap15.1.patch index 239f416..171da05 100644 --- a/fixes_for_Leap15.1.patch +++ b/fixes_for_Leap15.1.patch @@ -1,8 +1,8 @@ -Index: VirtualBox-5.2.24/src/VBox/Additions/linux/drm/vbox_drv.c +Index: VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_drv.c =================================================================== ---- VirtualBox-5.2.24.orig/src/VBox/Additions/linux/drm/vbox_drv.c -+++ VirtualBox-5.2.24/src/VBox/Additions/linux/drm/vbox_drv.c -@@ -264,12 +264,6 @@ static struct drm_driver driver = { +--- VirtualBox-6.0.6.orig/src/VBox/Additions/linux/drm/vbox_drv.c ++++ VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_drv.c +@@ -283,12 +283,6 @@ static struct drm_driver driver = { .lastclose = vbox_driver_lastclose, .master_set = vbox_master_set, .master_drop = vbox_master_drop, @@ -15,3 +15,154 @@ Index: VirtualBox-5.2.24/src/VBox/Additions/linux/drm/vbox_drv.c .fops = &vbox_fops, .irq_handler = vbox_irq_handler, .name = DRIVER_NAME, +Index: VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_mode.c +=================================================================== +--- VirtualBox-6.0.6.orig/src/VBox/Additions/linux/drm/vbox_mode.c ++++ VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_mode.c +@@ -498,7 +498,8 @@ static void vbox_set_edid(struct drm_con + for (i = 0; i < EDID_SIZE - 1; ++i) + sum += edid[i]; + edid[EDID_SIZE - 1] = (0x100 - (sum & 0xFF)) & 0xFF; +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || \ ++ defined(CONFIG_SUSE_VERSION) + drm_connector_update_edid_property(connector, (struct edid *)edid); + #else + drm_mode_connector_update_edid_property(connector, (struct edid *)edid); +@@ -669,7 +670,8 @@ static int vbox_connector_init(struct dr + drm_connector_register(connector); + #endif + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || \ ++ defined(CONFIG_SUSE_VERSION) + drm_connector_attach_encoder(connector, encoder); + #else + drm_mode_connector_attach_encoder(connector, encoder); +Index: VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_ttm.c +=================================================================== +--- VirtualBox-6.0.6.orig/src/VBox/Additions/linux/drm/vbox_ttm.c ++++ VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_ttm.c +@@ -210,7 +210,8 @@ static struct ttm_backend_func vbox_tt_b + .destroy = &vbox_ttm_backend_destroy, + }; + +-#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) && !defined(RHEL_76) ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev, + unsigned long size, + u32 page_flags, +@@ -227,7 +228,8 @@ static struct ttm_tt *vbox_ttm_tt_create + return NULL; + + tt->func = &vbox_tt_backend_func; +-#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) && !defined(RHEL_76) ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { + #else + if (ttm_tt_init(tt, bo, page_flags)) { +@@ -240,7 +242,8 @@ static struct ttm_tt *vbox_ttm_tt_create + } + + #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) +-# if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) ++# if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + static int vbox_ttm_tt_populate(struct ttm_tt *ttm) + { + return ttm_pool_populate(ttm); +@@ -274,7 +277,8 @@ 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 LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) || defined(RHEL_75) +-# if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) ++# if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + .io_mem_pfn = ttm_bo_default_io_mem_pfn, + # endif + #endif +@@ -420,7 +424,8 @@ int vbox_bo_create(struct drm_device *de + + ret = ttm_bo_init(&vbox->ttm.bdev, &vboxbo->bo, size, + ttm_bo_type_device, &vboxbo->placement, +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) && !defined(RHEL_76) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + align >> PAGE_SHIFT, false, NULL, acc_size, + #else + align >> PAGE_SHIFT, false, acc_size, +@@ -449,7 +454,8 @@ static inline u64 vbox_bo_gpu_offset(str + + int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr) + { +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) || \ ++ defined(CONFIG_SUSE_VERSION) + struct ttm_operation_ctx ctx = { false, false }; + #endif + int i, ret; +@@ -467,7 +473,8 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 + for (i = 0; i < bo->placement.num_placement; i++) + PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT; + +-#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); + #else + ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx); +@@ -485,7 +492,8 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 + + int vbox_bo_unpin(struct vbox_bo *bo) + { +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) || \ ++ defined(CONFIG_SUSE_VERSION) + struct ttm_operation_ctx ctx = { false, false }; + #endif + int i, ret; +@@ -501,7 +509,8 @@ int vbox_bo_unpin(struct vbox_bo *bo) + for (i = 0; i < bo->placement.num_placement; i++) + PLACEMENT_FLAGS(bo->placements[i]) &= ~TTM_PL_FLAG_NO_EVICT; + +-#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); + #else + ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx); +@@ -519,7 +528,8 @@ int vbox_bo_unpin(struct vbox_bo *bo) + */ + int vbox_bo_push_sysram(struct vbox_bo *bo) + { +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) || \ ++ defined(CONFIG_SUSE_VERSION) + struct ttm_operation_ctx ctx = { false, false }; + #endif + int i, ret; +@@ -540,7 +550,8 @@ 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 (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) && \ ++ !defined(CONFIG_SUSE_VERSION) + ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); + #else + ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx); +Index: VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_main.c +=================================================================== +--- VirtualBox-6.0.6.orig/src/VBox/Additions/linux/drm/vbox_main.c ++++ VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_main.c +@@ -600,7 +600,7 @@ int vbox_dumb_destroy(struct drm_file *f + } + #endif + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) && !defined(CONFIG_SUSE_VERSION) + static void ttm_bo_put(struct ttm_buffer_object *bo) + { + ttm_bo_unref(&bo); diff --git a/security_fixes.patch b/security_fixes.patch index c76cf62..776c151 100644 --- a/security_fixes.patch +++ b/security_fixes.patch @@ -5,24 +5,29 @@ # # January 31, 2019 - Larry Finger # -Index: VirtualBox-6.0.4/src/VBox/Additions/linux/installer/vboxadd.sh +Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh =================================================================== ---- VirtualBox-6.0.4.orig/src/VBox/Additions/linux/installer/vboxadd.sh -+++ VirtualBox-6.0.4/src/VBox/Additions/linux/installer/vboxadd.sh -@@ -560,6 +560,9 @@ dmnstatus() +--- VirtualBox-6.0.6.orig/src/VBox/Additions/linux/installer/vboxadd.sh ++++ VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh +@@ -489,9 +489,11 @@ dmnstatus() fi } +-for i; do +- case "$i" in quiet) QUIET=yes;; esac +-done +echo "This script has insecurities. It must never be used in openSUSE without consultine Security." +exit 1 + - case "$2" in quiet) - QUIET=yes;; - esac -Index: VirtualBox-6.0.4/src/VBox/Installer/linux/vboxdrv.sh ++case "$2" in quiet) ++ QUIET=yes;; + case "$1" in + # Does setup without clean-up first and marks all kernels currently found on the + # system so that we can see later if any were added. +Index: VirtualBox-6.0.6/src/VBox/Installer/linux/vboxdrv.sh =================================================================== ---- VirtualBox-6.0.4.orig/src/VBox/Installer/linux/vboxdrv.sh -+++ VirtualBox-6.0.4/src/VBox/Installer/linux/vboxdrv.sh +--- VirtualBox-6.0.6.orig/src/VBox/Installer/linux/vboxdrv.sh ++++ VirtualBox-6.0.6/src/VBox/Installer/linux/vboxdrv.sh @@ -37,6 +37,9 @@ DEVICE=/dev/vboxdrv MODPROBE=/sbin/modprobe SCRIPTNAME=vboxdrv.sh diff --git a/vbox-suid-warning.diff b/vbox-suid-warning.diff new file mode 100644 index 0000000..a582849 --- /dev/null +++ b/vbox-suid-warning.diff @@ -0,0 +1,70 @@ +Index: VirtualBox-6.0.4/src/apps/Makefile.kmk +=================================================================== +--- VirtualBox-6.0.4.orig/src/apps/Makefile.kmk ++++ VirtualBox-6.0.4/src/apps/Makefile.kmk +@@ -33,5 +33,7 @@ include $(PATH_SUB_CURRENT)/VBoxPermissi + + include $(PATH_SUB_CURRENT)/VBoxUSB_DevRules/Makefile.kmk + ++include $(PATH_SUB_CURRENT)/VBoxSUIDMessage/Makefile.kmk ++ + include $(FILE_KBUILD_SUB_FOOTER) + +Index: VirtualBox-6.0.4/src/apps/VBoxSUIDMessage/Makefile.kmk +=================================================================== +--- /dev/null ++++ VirtualBox-6.0.4/src/apps/VBoxSUIDMessage/Makefile.kmk +@@ -0,0 +1,33 @@ ++# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $ ++## @file ++# ++# VBoxSUIDMessage is wrapper for suse users ++# ++# ++# Copyright (C) 2009 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. ++# ++ ++ ++SUB_DEPTH = ../../.. ++include $(KBUILD_PATH)/subheader.kmk ++ ++PROGRAMS += VBoxSUIDMessage ++ ++VBoxSUIDMessage_TEMPLATE = VBOXQTGUIEXE ++VBoxSUIDMessage_SOURCES = VBoxSUIDMessage.cpp ++VBoxSUIDMessage_QT_MODULES = Core Gui ++VBoxSUIDMessage_QT_MODULES += Widgets ++ ++#INSTALLS += VBoxSUIDMessage ++ ++include $(KBUILD_PATH)/subfooter.kmk ++ ++ +Index: VirtualBox-6.0.4/src/apps/VBoxSUIDMessage/VBoxSUIDMessage.cpp +=================================================================== +--- /dev/null ++++ VirtualBox-6.0.4/src/apps/VBoxSUIDMessage/VBoxSUIDMessage.cpp +@@ -0,0 +1,15 @@ ++#include ++#include ++int main(int argc, char *argv[]) ++{ ++ QApplication app(argc, argv); ++ QMessageBox msgBox; ++ msgBox.setWindowTitle(QObject::tr("File Permissions problem !")); ++ msgBox.setText(QObject::tr("File VirtualBoxVM must be SUID, but the file permissions are wrong.\n\n" ++ "To fix this problem, please run\n" ++ "sudo chmod 4711 /usr/lib/virtualbox/VirtualBoxVM\n\n" ++ "Until this is done, Virtual Machines cannot run.")); ++ msgBox.exec(); ++ app.quit(); ++ return 0; ++} diff --git a/vbox-vboxadd-init-script.diff b/vbox-vboxadd-init-script.diff index 7a0fa85..543524e 100644 --- a/vbox-vboxadd-init-script.diff +++ b/vbox-vboxadd-init-script.diff @@ -1,7 +1,7 @@ -Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh +Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/Additions/linux/installer/vboxadd.sh -+++ VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh +--- VirtualBox-6.0.6.orig/src/VBox/Additions/linux/installer/vboxadd.sh ++++ VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh @@ -26,11 +26,14 @@ # Provides: vboxadd # Required-Start: @@ -18,7 +18,7 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh ### END INIT INFO ## @todo This file duplicates a lot of script with vboxdrv.sh. When making -@@ -141,18 +144,9 @@ module_build_log() +@@ -121,20 +124,11 @@ module_build_log() dev=/dev/vboxguest userdev=/dev/vboxuser @@ -33,11 +33,13 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh -fi -test -n "$INSTALL_DIR" -a -n "$INSTALL_VER" || - fail "Configuration file $config not complete" + MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER" + BUILDINTMP="$MODULE_SRC/build_in_tmp" - running_vboxguest() { lsmod | grep -q "vboxguest[^_-]" -@@ -195,12 +189,6 @@ do_vboxguest_non_udev() +@@ -177,12 +171,6 @@ do_vboxguest_non_udev() fail "Cannot create device $dev with major $maj and minor $min" } fi @@ -50,7 +52,7 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh if [ ! -c $userdev ]; then maj=10 -@@ -211,12 +199,6 @@ do_vboxguest_non_udev() +@@ -193,12 +181,6 @@ do_vboxguest_non_udev() rmmod vboxguest 2>/dev/null fail "Cannot create device $userdev with major $maj and minor $min" } @@ -63,29 +65,16 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh fi fi } -@@ -224,10 +206,9 @@ do_vboxguest_non_udev() - start() - { - begin "Starting." -- if test -z "${INSTALL_NO_MODULE_BUILDS}"; then -- setup --quick -+ setup --quick - test -d /sys && -- ps -A -o comm | grep -q '/*udevd$' 2>/dev/null || -+ ps -A -o comm | grep -q '/*udevd$' 2>/dev/null || - no_udev=1 - running_vboxguest || { - rm -f $dev || { -@@ -236,7 +217,7 @@ start() - rm -f $userdev || { - fail "Cannot remove $userdev" - } -- $MODPROBE vboxguest >/dev/null 2>&1 || -+ $MODPROBE vboxguest >/dev/null 2>&1 || { - fail "modprobe vboxguest failed" - case "$no_udev" in 1) - sleep .5;; -@@ -434,9 +415,9 @@ create_udev_rule() +@@ -260,7 +242,7 @@ cleanup_modules() + done + if test -z "${keep}"; then + rm -rf /lib/modules/"${KERN_VER}" +- rm -f /boot/initrd.img-"${KERN_VER}" ++ rm -f /boot/initrd.img-"${KERN_VER}" + fi + done + for i in ${OLDMODULES}; do +@@ -356,9 +338,9 @@ create_udev_rule() echo "KERNEL=${udev_fix}\"vboxuser\", NAME=\"vboxuser\", OWNER=\"vboxadd\", MODE=\"0666\"" >> /etc/udev/rules.d/60-vboxadd.rules fi } @@ -98,54 +87,44 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh # And a post-installation script for rebuilding modules when a new kernel # is installed. mkdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d -@@ -467,20 +448,13 @@ shared_folder_setup() - ## @todo It would be nicer if the kernel module just parsed parameters - # itself instead of needing a separate binary to do that. - ln -sf "${INSTALL_DIR}/other/mount.vboxsf" /sbin -- # SELinux security context for the mount helper. -- if test -e /etc/selinux/config; then -- # This is correct. semanage maps this to the real path, and it aborts -- # with an error, telling you what you should have typed, if you specify -- # the real path. The "chcon" is there as a back-up for old guests. -- command -v semanage > /dev/null && -- semanage fcontext -a -t mount_exec_t "${INSTALL_DIR}/other/mount.vboxsf" -- chcon -t mount_exec_t "${INSTALL_DIR}/other/mount.vboxsf" -- fi -+ succ_msg - } - +@@ -403,47 +385,15 @@ shared_folder_setup() # setup_script setup() { -+<<<<<<< found - export BUILD_TYPE - export USERNAME - -@@ -517,16 +491,33 @@ setup() - shared_folder_setup - if running_vboxguest || running_vboxadd; then - info "Running kernel modules will not be replaced until the system is restarted" +- # chcon is needed on old Fedora/Redhat systems. No one remembers which. +- test ! -e /etc/selinux/config || +- chcon -t bin_t "$BUILDINTMP" 2>/dev/null +- +- if test -z "$INSTALL_NO_MODULE_BUILDS"; then +- info "Building the VirtualBox Guest Additions kernel modules. This may take a while." +- info "To build modules for other installed kernels, run" +- info " /sbin/rcvboxadd quicksetup " +- info "or" +- info " /sbin/rcvboxadd quicksetup all" +- if test -d /lib/modules/"$TARGET_VER"/build; then +- setup_modules "$TARGET_VER" +- depmod +- else +- info "Kernel headers not found for target kernel $TARGET_VER. \ +-Please install them and execute +- /sbin/rcvboxadd setup" +- fi - fi +- create_vbox_user +- create_udev_rule +- test -n "${INSTALL_NO_MODULE_BUILDS}" || create_module_rebuild_script +- shared_folder_setup +- if running_vboxguest || running_vboxadd; then +- info "Running kernel modules will not be replaced until the system is restarted" +- fi +- +- # Put the X.Org driver in place. This is harmless if it is not needed. +- # Also set up the OpenGL library. +- myerr=`"${INSTALL_DIR}/init/vboxadd-x11" setup 2>&1` +- test -z "${myerr}" || log "${myerr}" +- - return 0 -+||||||| expected -+ export BUILD_TYPE -+ export USERNAME -+ -+ MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER" -+ BUILDINTMP="$MODULE_SRC/build_in_tmp" -+ chcon -t bin_t "$BUILDINTMP" > /dev/null 2>&1 -+ -+ test -z "${INSTALL_NO_MODULE_BUILDS}" && setup_modules -+ create_vbox_user -+ create_udev_rule -+ test -z "${INSTALL_NO_MODULE_BUILDS}" && create_module_rebuild_script -+ test -n "${QUICKSETUP}" && return 0 -+ shared_folder_setup -+ if running_vboxguest || running_vboxadd; then -+ info "Running kernel modules will not be replaced until the system is restarted" -+======= + begin "Recompiling VirtualBox kernel module, NOT. It has been packaged." -+>>>>>>> replacement + succ_msg } @@ -160,7 +139,7 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh depmod # Remove old module sources -@@ -536,12 +527,13 @@ cleanup() +@@ -453,12 +403,13 @@ cleanup() fi # Clean-up X11-related bits @@ -170,18 +149,27 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd.sh # Remove other files - if test -z "${INSTALL_NO_MODULE_BUILDS}"; then - rm -f /etc/kernel/postinst.d/vboxadd /etc/kernel/prerm.d/vboxadd -- rmdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d 2>/dev/null +- rmdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d 2>/dev/null || true + rm /sbin/rcvboxadd 2>/dev/null + #rm /sbin/rcvboxadd-x11 2>/dev/null + rm -f /etc/kernel/postinst.d/vboxadd /etc/kernel/prerm.d/vboxadd -+ rmdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d 2>/dev/null ++ rmdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d 2>/dev/null || true fi - rm /sbin/mount.vboxsf 2>/dev/null - rm /etc/udev/rules.d/60-vboxadd.rules 2>/dev/null -Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd-service.sh + rm -f /sbin/mount.vboxsf 2>/dev/null + rm -f /etc/udev/rules.d/60-vboxadd.rules 2>/dev/null +@@ -489,7 +440,7 @@ start() + rm -f $userdev || { + fail "Cannot remove $userdev" + } +- $MODPROBE vboxguest >/dev/null 2>&1 || ++ $MODPROBE vboxguest >/dev/null 2>&1 || { + fail "modprobe vboxguest failed" + case "$no_udev" in 1) + sleep .5;; +Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd-service.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/Additions/linux/installer/vboxadd-service.sh -+++ VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd-service.sh +--- VirtualBox-6.0.6.orig/src/VBox/Additions/linux/installer/vboxadd-service.sh ++++ VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd-service.sh @@ -26,7 +26,7 @@ # Provides: vboxadd-service # Required-Start: vboxadd @@ -191,10 +179,10 @@ Index: VirtualBox-6.0.0/src/VBox/Additions/linux/installer/vboxadd-service.sh # Default-Stop: 0 1 6 # X-Conflicts-With: systemd-timesyncd.service # Description: VirtualBox Additions Service -Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxautostart-service.sh +Index: VirtualBox-6.0.6/src/VBox/Installer/linux/vboxautostart-service.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/Installer/linux/vboxautostart-service.sh -+++ VirtualBox-6.0.0/src/VBox/Installer/linux/vboxautostart-service.sh +--- VirtualBox-6.0.6.orig/src/VBox/Installer/linux/vboxautostart-service.sh ++++ VirtualBox-6.0.6/src/VBox/Installer/linux/vboxautostart-service.sh @@ -23,7 +23,7 @@ # Provides: vboxautostart-service # Required-Start: vboxdrv @@ -204,10 +192,10 @@ Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxautostart-service.sh # Default-Stop: 0 1 6 # Description: VirtualBox autostart service ### END INIT INFO -Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxballoonctrl-service.sh +Index: VirtualBox-6.0.6/src/VBox/Installer/linux/vboxballoonctrl-service.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/Installer/linux/vboxballoonctrl-service.sh -+++ VirtualBox-6.0.0/src/VBox/Installer/linux/vboxballoonctrl-service.sh +--- VirtualBox-6.0.6.orig/src/VBox/Installer/linux/vboxballoonctrl-service.sh ++++ VirtualBox-6.0.6/src/VBox/Installer/linux/vboxballoonctrl-service.sh @@ -23,7 +23,7 @@ # Provides: vboxballoonctrl-service # Required-Start: vboxdrv @@ -217,10 +205,10 @@ Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxballoonctrl-service.sh # Default-Stop: 0 1 6 # Description: VirtualBox watchdog daemon ### END INIT INFO -Index: VirtualBox-6.0.0/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh +Index: VirtualBox-6.0.6/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh -+++ VirtualBox-6.0.0/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh +--- VirtualBox-6.0.6.orig/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh ++++ VirtualBox-6.0.6/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh @@ -31,7 +31,7 @@ # Provides: testboxscript-service # Required-Start: $network @@ -230,10 +218,10 @@ Index: VirtualBox-6.0.0/src/VBox/ValidationKit/testboxscript/linux/testboxscript # Default-Stop: 0 1 6 # Description: TestBoxScript service ### END INIT INFO -Index: VirtualBox-6.0.0/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh +Index: VirtualBox-6.0.6/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh -+++ VirtualBox-6.0.0/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh +--- VirtualBox-6.0.6.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh ++++ VirtualBox-6.0.6/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh @@ -31,7 +31,7 @@ # Provides: vboxtxs # Required-Start: $network @@ -243,10 +231,10 @@ Index: VirtualBox-6.0.0/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs- # Default-Stop: 0 1 6 # Description: VirtualBox Test Execution Service ### END INIT INFO -Index: VirtualBox-6.0.0/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh +Index: VirtualBox-6.0.6/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh -+++ VirtualBox-6.0.0/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh +--- VirtualBox-6.0.6.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh ++++ VirtualBox-6.0.6/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh @@ -31,7 +31,7 @@ # Provides: vboxtxs # Required-Start: $network diff --git a/virtualbox-guest-kmp-files b/virtualbox-guest-kmp-files index 2bfe28d..8bfb885 100644 --- a/virtualbox-guest-kmp-files +++ b/virtualbox-guest-kmp-files @@ -3,3 +3,6 @@ %dir /lib/modules/%2-%1/extra /lib/modules/%2-%1/extra/vboxsf.ko /lib/modules/%2-%1/extra/vboxguest.ko +%if 0%{?suse_version} == 1500 +/lib/modules/%2-%1/extra/vboxvideo.ko +%endif diff --git a/virtualbox-wrapper.sh b/virtualbox-wrapper.sh index 2e4ce1f..327867f 100644 --- a/virtualbox-wrapper.sh +++ b/virtualbox-wrapper.sh @@ -54,5 +54,13 @@ if [ -f ~/.vbox/disable ] ; then fi fi fi +# Check that /usr/lib/virtualbox/VirtualBoxVM has SUID permissions +PERM=$(ls -l /usr/lib/virtualbox/VirtualBoxVM | grep rwsr) +if [ -z "$PERM" ] +then + logger -s "Wrong permissions for VirtualBoxVM - use 'sudo chmod 4711 /usr/lib/virtualbox/VirtualBoxVM' to fix" + /usr/lib/virtualbox/VBoxSUIDMessage + exit 1 +fi # Now run the VB GUI LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox6 $@ diff --git a/virtualbox.changes b/virtualbox.changes index ccdc74d..b97a82b 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -8,6 +8,81 @@ Wed Apr 24 17:44:06 UTC 2019 - Martin Liška - Disable LTO (boo#1133289). +------------------------------------------------------------------- +Fri Apr 19 15:45:46 UTC 2019 - Larry Finger + +- Updated file "Fixes_for_Leap15.1.patch" to handle one addition problem due to backporting of kernel APIa. + Remove "BuildRequires: quilt" - that package is not needed. + + VirtualBox 6.0.6 fixes the following: CVE-2019-2656, CVE-2019-2680, CVE-2019-2696, CVE-2019-2703, CVE-2019-2721, + CVE-2019-2722, CVE-2019-2723, CVE-2019-2657, CVE-2019-2690, CVE-2019-2679, + CVE-2019-2678, and CVE-2019-2574 boo#1132827. + +------------------------------------------------------------------- +Thu Apr 18 15:40:18 UTC 2019 - Larry Finger + +- Version bump to 6.0.6 (released April 17 2019 by Oracle) + +The following files in the openSUSE implemetation are removed: "fix_32_bit_builds.patch", "fixes_for_5.0.patch", and +"fixes_for_5.1.patch". These issues are fixed upstream. + +This is a maintenance release. The following items were fixed and/or added by Oracle: + +Virtualization core: nested AMD virtualization fixes +User interface: fixed copying directories in file manager +User interface: fixed operation progress in file manager when copying content +User interface: fixed operation progress when deleting snapshots +User interface: fixed unattended installation of recent Ubuntu guests +User interface: various additional improvements +Storage: fixed loading saved states for LsiLogic devices (6.0.0 regression; bug #18263) +Storage: fixed fixed reading certain QCOW2 images and support version 3 of the format readonly +Storage: Improved IDE PCI emulation to allow NetWare IDE drivers to use bus-mastering +Graphics: Improved VMSVGA support to work with old X servers which previously showed only a badly scrambled screen +Graphics: fixed invisible mouse cursor with VMSVGA emulation and without mouse integration (bug #18239) +Graphics: make EFI work with VMSVGA emulation (bug #18282) +Graphics: remember last guest screen size VMSVGA emulation +Graphics: fix RDP to guests using VMSVGA emulation +Graphics: various additional VMSVGA emulation fixes +Audio: implemented audio device enumeration for the DirectSound backend +Network: fixed unwanted padding bytes in Windows host adaptor network packets (bug #18202 and bug #18355) +Serial: fixed possible crash on Windows when using a host device (6.0.0 regression; bug #18319) +Serial: fixed loopback handling in the emulation causing garbage to be sent during boot with Linux guests (6.0.0 regression; bug #18319) +Shared folders: fixed duplicate folders after restoring a saved state (bug #18373 and other) +Drag and drop: fixed copying files from guest host (bug #18305) +Recording: fixed modifying settings via VBoxManage (bug #18494) +VBoxManage: crash fix (bug #18341) +Fixed hangs during failed virtual machine start-up +Linux host and guest: support Linux 5.0 and 5.1, thank you Valdis Kletnieks (see also bug #18515) +Linux host: support kernel 4.4.169 (bug #18315) +Linux host: fix logging when building Linux kernel modules (bug #18226) +Linux host: clarified building Linux host drivers with secure boot (bug #18312) +Installers: reduced size of packages +Web services: work with Java 11 +LibreSSL compilation fix, thank you Stefan Strogin +Windows guests: fixed running applications which use complex display topologies with WDDM driver, fixed Skype for Business hangs (bug #17092) +Windows guests: fixed an occasional guest crash with WDDM driver and VBoxSVGA adapter (bug #18369) +Windows guests: shared folder file creation detection issue (bug #9276) +Linux guests: shared folder performance and reliability improvements and missing features (bugs #17360, #819) +OS/2 guests: shared folder fixes (bug #18376 and bug #18379) + +------------------------------------------------------------------- +Wed Apr 17 12:42:15 UTC 2019 - Larry Finger + +- The VirtualBox packages for both Tumbleweed and Leap 15.1 are now derived from the sources in Factory; + however, the underlying kernels are very different in that vboxvideo.ko is built-into the TW kernel, + thus the package did not try to build that module. The result is that Leap 15.1 guests have only 640x480 + resolution (boo#1132439). These changes conditionally turn building of the kernel module back on. As TW + does not need the module, it is only built for Leap 15.1. + +------------------------------------------------------------------- +Sun Apr 14 16:32:29 UTC 2019 - Larry Finger + +- An instance of /usr/lib/virtualbox/VirtualBoxVM being installed without SUID privilege + has been reported as boo#1132379. Unfortunately, the error message thrown by VB in this + case is rather opaque. To help the user recover, the wrapper /usr/bin/VirtualBox has + been modified to check the permissions and pop up a warning describing the problem and + showing the command needed to fix the problem. File "vbox-suid-warning.diff" is added. + ------------------------------------------------------------------- Fri Apr 5 22:11:52 UTC 2019 - Larry Finger diff --git a/virtualbox.spec b/virtualbox.spec index 83e011e..e92e109 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -42,7 +42,7 @@ python3 -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile %define _udevrulesdir /usr/lib/udev/rules.d Name: virtualbox # ********* If the VB version exceeds 6.0.x, notify the libvirt maintainer!! -Version: 6.0.4 +Version: 6.0.6 Release: 0 Summary: VirtualBox is an Emulator License: GPL-2.0-or-later @@ -110,6 +110,8 @@ Patch107: virtualbox-sed-params.patch Patch108: virtualbox-snpritnf-buffer-overflow.patch # Patch to add code to explain USB Passthru Patch109: vbox-usb-warning.diff +# Patch to ensure that VirtualBoxVM is SUID +Patch110: vbox-suid-warning.diff # Fix change in kernel API for ttm_bo_move_memcpy() Patch112: modify_for_4_8_bo_move.patch # Remove all mention of _smp_mflags @@ -126,17 +128,12 @@ Patch120: fixes_for_python.patch Patch122: fixes_for_Qt5.11.patch # Switch to Python 3.4+ Patch123: switch_to_python3.4+.patch -Patch124: fix_32_bit_builds.patch # Use build parameters to control video driver problems Patch125: remove_vbox_video_build.patch -# Fix for API changes in late v5.0 -Patch126: fixes_for_5.0.patch # fix library search Patch128: fix_lib_search.patch # Fixes for modified kernel in Leap 15.1 Patch129: fixes_for_Leap15.1.patch -# Fixes for kernel 5.1 -Patch130: fixes_for_5.1.patch # Fixes for Qt5.13 Patch131: fixes_for_qt5.13.patch #endif @@ -183,7 +180,6 @@ BuildRequires: module-init-tools BuildRequires: pam-devel BuildRequires: pulseaudio-devel BuildRequires: python3-devel -BuildRequires: quilt BuildRequires: sed BuildRequires: update-desktop-files BuildRequires: which @@ -429,6 +425,7 @@ as an "extpack" for VirtualBox. The implementation is licensed under GPL. %patch107 -p1 %patch108 -p1 %patch109 -p1 +%patch110 -p1 %patch112 -p1 %patch113 -p1 %patch115 -p1 @@ -437,12 +434,9 @@ as an "extpack" for VirtualBox. The implementation is licensed under GPL. %patch120 -p1 %patch122 -p1 %patch123 -p1 -%patch124 -p1 %patch125 -p1 -%patch126 -p1 %patch128 -p1 %patch129 -p1 -%patch130 -p1 %if %{qt5ver} >= 51300 %patch131 -p1 @@ -524,10 +518,15 @@ install -D -m 644 "COPYING" "%{buildroot}%{_datadir}/licenses/LICENSE.vnc" # # build kernel modules for guest and host (check novel-kmp package as example) # host modules : vboxdrv,vboxnetflt,vboxnetadp,vboxpci -# guest modules : vboxguest,vboxsf +# guest modules : vboxguest,vboxsf vboxvideo (for Leap 15.1) echo "build kernel modules" +%if 0%{?suse_version} == 1500 +for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp,pci} \ + out/linux.*/release/bin/additions/src/vbox{guest,sf,video}; do +%else for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp,pci} \ out/linux.*/release/bin/additions/src/vbox{guest,sf}; do +%endif #get the module name from path module_name=$(basename "$vbox_module") @@ -593,7 +592,11 @@ export INSTALL_MOD_DIR=extra export INITRD_IN_POSTTRANS=1 export KMP_NEEDS_MKINITRD=0 #to install modules we use here similar steps like in build phase, go through all the modules : +%if 0%{?suse_version} == 1500 +for module_name in vbox{drv,netflt,pci,netadp,guest,sf,video} +%else for module_name in vbox{drv,netflt,pci,netadp,guest,sf} +%endif do #and through the all flavors for flavor in %{flavors_to_build}; do @@ -659,6 +662,7 @@ install -m 755 VBoxXPCOMIPCD %{buildroot}%{_vbox_instdir} install -m 755 VBoxExtPackHelperApp %{buildroot}%{_vbox_instdir} install -m 755 VBoxTestOGL %{buildroot}%{_vbox_instdir} install -m 755 VBoxPermissionMessage %{buildroot}%{_vbox_instdir} +install -m 755 VBoxSUIDMessage %{buildroot}%{_vbox_instdir} install -m 755 VBoxUSB_DevRules %{buildroot}%{_vbox_instdir} install -m 755 VBoxNetDHCP %{buildroot}%{_vbox_instdir} install -m 755 VBoxNetAdpCtl %{buildroot}%{_vbox_instdir} @@ -787,6 +791,9 @@ getent group vboxusers >/dev/null || groupadd -r vboxusers # Add groups for seamless mode and shared folders: getent group vboxguest >/dev/null || groupadd -r vboxguest getent group vboxsf >/dev/null || groupadd -r vboxsf +%if 0%{?suse_version} == 1500 +getent group vboxvideo >/dev/null || groupadd -r vboxvideo +%endif %service_add_pre vboxadd-service.service %pre websrv @@ -957,6 +964,7 @@ export DISABLE_RESTART_ON_UPDATE=yes %files qt %defattr(-, root, root) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxPermissionMessage +%attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxSUIDMessage %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxUSB_DevRules %attr(0755,root,vboxusers) %{_vbox_instdir}/VirtualBox6 %verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VirtualBoxVM