From 9c5c5083fa0fcd9618decad84cf8082c17b4c1e4835b8c5f3ebbfffdd2a99d04 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Fri, 19 Jul 2019 19:54:30 +0000 Subject: [PATCH 1/3] Accepting request 716635 from home:lwfinger:branches:Virtualization - Version update to 6.0.10 (released July 16 2019 by Oracle) This is a maintenance release. The following items were fixed and/or added: Various vulnerabilities are fixed (bsc#1141801) inclding CVE-2019-2859 CVE-2019-2867 CVE-2019-2866 CVE-2019-2864 CVE-2019-2865 CVE-2019-1543 CVE-2019-2863 CVE-2019-2848 CVE-2019-2877 CVE-2019-2873 CVE-2019-2874 CVE-2019-2875 CVE-2019-2876 CVE-2019-2850 User interface: fix issue inputing controller names (bug #11579) User interface: fix resize problems with recent Linux hosts (bug #18677) Serial: fixed guru meditation when raw mode is enabled (bug #18632) Serial: fixed possible VM crash under certain circumstances USB: Fixed "unrecoverable error" problems in OHCI emulation (bug #18593, 6.0.6 regression) USB: improve captured device identification VBoxManage: fix reversed reporting of audio input and output (thank you Socratis Kalogrianitis) VBoxManage: fix controlling recording for running machine (bug #18723) Guest control service: various fixes Linux hosts: kernel module build fixes for various kernels (bug #18316) Linux hosts: support UEFI secure boot driver signing on Ubuntu and Debian hosts (bug #11577) Linux hosts: fix focus grabbing problems with recent Qt versions (builds from source only; thank you Fabian Vogt (SUSE) and Larry Finger; bug #18745) Windows guests: many shared folders fixes Windows guests: fix other services failing if seamless mode was not available Linux guests: kernel module build fixes for various kernels (bugs #18677 and #18697; fixes by Larry Finger and Gianfranco Costamagna) Linux guests: do not try to load old versions of libcrypt on recent guests in Guest Additions tools (bug #18682) Linux guests: udev rules for guest kernel modules did not always take effect in time Linux guests/VMSVGA: do not forget the guest screen size after a guest reboot OS/2 guests: various shared folder fixes Revise instructions for case when VirtualBoxVM has the wrong privilege. File "fixes_for_5.2.patch" is deleted - fixed upstream. File "fixes_for_5.3.patch" is added to handle API changes in kernel 5.3. File "fixes_for_SLE15.patch" deleted. OBS-URL: https://build.opensuse.org/request/show/716635 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=497 --- UserManual.pdf | 4 +- VirtualBox-6.0.10-patched.tar.bz2 | 3 + VirtualBox-6.0.8-patched.tar.bz2 | 3 - fixes_focus_steal.patch | 22 ---- fixes_for_5.2.patch | 54 ---------- fixes_for_5.3.patch | 81 ++++++++++++++ fixes_for_Leap15.1.patch | 168 ------------------------------ fixes_for_SLE15.patch | 34 ------ fixes_for_qt5.13.patch | 1 + vbox-suid-warning.diff | 2 +- vbox-vboxadd-init-script.diff | 52 ++++----- vbox-vboxdrv-init-script.diff | 16 +-- virtualbox.changes | 40 ++++++- virtualbox.spec | 39 ++----- 14 files changed, 169 insertions(+), 350 deletions(-) create mode 100644 VirtualBox-6.0.10-patched.tar.bz2 delete mode 100644 VirtualBox-6.0.8-patched.tar.bz2 delete mode 100644 fixes_focus_steal.patch delete mode 100644 fixes_for_5.2.patch create mode 100644 fixes_for_5.3.patch delete mode 100644 fixes_for_Leap15.1.patch delete mode 100644 fixes_for_SLE15.patch diff --git a/UserManual.pdf b/UserManual.pdf index cec9df6..8fecdbd 100644 --- a/UserManual.pdf +++ b/UserManual.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30c3e77c5148d46f9f5c8b281ba3322f2348aed35a0db354802ba60ca2f26b24 -size 4335316 +oid sha256:d5b7320c38db8c3c8d5374eaab50b0386032752c0c7c3c3470426d02786b33f0 +size 4338221 diff --git a/VirtualBox-6.0.10-patched.tar.bz2 b/VirtualBox-6.0.10-patched.tar.bz2 new file mode 100644 index 0000000..171fc0b --- /dev/null +++ b/VirtualBox-6.0.10-patched.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22318cca4a8034f78f16ebc4dab06ccecec6992bf81ce29f90a519574c6132f5 +size 117465621 diff --git a/VirtualBox-6.0.8-patched.tar.bz2 b/VirtualBox-6.0.8-patched.tar.bz2 deleted file mode 100644 index 52192ad..0000000 --- a/VirtualBox-6.0.8-patched.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fdba6c705fdca590b213d2bc456f8876280022ec82a3280ee49e4c553a9eb381 -size 118703619 diff --git a/fixes_focus_steal.patch b/fixes_focus_steal.patch deleted file mode 100644 index 143834f..0000000 --- a/fixes_focus_steal.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: a/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp -=================================================================== ---- a/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp (revision 131843) -+++ b/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp -(working copy) -@@ -269,6 +269,14 @@ - * the keyboard before the target window sees the click. (GNOME Shell's hot corner has - * the same problem. At present we just let that problem be.) */ - -+ /* Make sure we really do still have the focus: */ -+ xcb_get_input_focus_cookie_t xcbFocusCookie = xcb_get_input_focus(QX11Info::connection()); -+ xcb_get_input_focus_reply_t *pFocusReply = xcb_get_input_focus_reply(QX11Info::connection(), xcbFocusCookie, 0); -+ xcb_window_t xcbFocusWindow = pFocusReply->focus; -+ free(pFocusReply); -+ if (xcbFocusWindow != m_windows[m_iKeyboardCaptureViewIndex]->winId()) -+ return true; -+ - /* Grab the mouse button. - * We do not check for failure as we do not currently implement a back-up plan. */ - /* If any previous grab is still in process, release it. */ - - diff --git a/fixes_for_5.2.patch b/fixes_for_5.2.patch deleted file mode 100644 index a103ecc..0000000 --- a/fixes_for_5.2.patch +++ /dev/null @@ -1,54 +0,0 @@ -There are two kernel 5.2 API changes that affect VirtualBox: - -1. drm_fb_helper_fill_fix() and drm_fb_helper_fill_var() are replaced - by drm_fb_helper_fill_info(). -2. The arguments for ttm_bo_device_init() are changed. - - -Index: VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_fb.c -=================================================================== ---- VirtualBox-6.0.8.orig/src/VBox/Additions/linux/drm/vbox_fb.c -+++ VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_fb.c -@@ -335,13 +335,17 @@ static int vboxfb_create(struct drm_fb_h - info->apertures->ranges[0].base = pci_resource_start(dev->pdev, 0); - info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 0); - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0) -+ drm_fb_helper_fill_info(info, &fbdev->helper, sizes); -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75) - drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth); - #else - drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth); - #endif -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0) - drm_fb_helper_fill_var(info, &fbdev->helper, sizes->fb_width, - sizes->fb_height); -+#endif - - info->screen_base = bo->kmap.virtual; - info->screen_size = size; -Index: VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_ttm.c -=================================================================== ---- VirtualBox-6.0.8.orig/src/VBox/Additions/linux/drm/vbox_ttm.c -+++ VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_ttm.c -@@ -298,7 +298,6 @@ int vbox_mm_init(struct vbox_private *vb - if (ret) - return ret; - #endif -- - ret = ttm_bo_device_init(&vbox->ttm.bdev, - #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) - vbox->ttm.bo_global_ref.ref.object, -@@ -307,7 +306,11 @@ int vbox_mm_init(struct vbox_private *vb - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0) || defined(RHEL_71) - dev->anon_inode->i_mapping, - #endif -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0) - DRM_FILE_PAGE_OFFSET, true); -+#else -+ true); -+#endif - if (ret) { - DRM_ERROR("Error initialising bo driver; %d\n", ret); - #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) diff --git a/fixes_for_5.3.patch b/fixes_for_5.3.patch new file mode 100644 index 0000000..d79ca2c --- /dev/null +++ b/fixes_for_5.3.patch @@ -0,0 +1,81 @@ +Index: VirtualBox-6.0.10/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c +=================================================================== +--- VirtualBox-6.0.10.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c ++++ VirtualBox-6.0.10/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c +@@ -2123,7 +2123,10 @@ static int vboxNetFltLinuxEnumeratorCall + #endif + if (in_dev != NULL) + { +- for_ifa(in_dev) { ++ /* macros for_ifa() and endfor_ifs() disappear for kernel 5.3 ++ * Code them directly */ ++ struct in_ifaddr *ifa; ++ for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) { + if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address)) + return NOTIFY_OK; + +@@ -2137,7 +2140,7 @@ static int vboxNetFltLinuxEnumeratorCall + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address); +- } endfor_ifa(in_dev); ++ } + } + + /* +Index: VirtualBox-6.0.10/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c +=================================================================== +--- VirtualBox-6.0.10.orig/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c ++++ VirtualBox-6.0.10/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c +@@ -283,12 +283,16 @@ RTDECL(int) RTMpOnAll(PFNRTMPWORKER pfnW + if (RTCpuSetCount(&OnlineSet) > 1) + { + /* Fire the function on all other CPUs without waiting for completion. */ +-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) ++ smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) + int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */); +-# else ++#else + int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */); +-# endif ++#endif ++# if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) + Assert(!rc); NOREF(rc); ++#endif + } + #endif + +@@ -326,7 +330,9 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER p + { + #ifdef CONFIG_SMP + IPRT_LINUX_SAVE_EFL_AC(); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) + int rc; ++#endif + RTMPARGS Args; + + RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER; +@@ -337,14 +343,18 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER p + Args.cHits = 0; + + RTThreadPreemptDisable(&PreemptState); +-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) ++ smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) + rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); +-# else /* older kernels */ ++#else /* older kernels */ + rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */); +-# endif /* older kernels */ ++#endif /* older kernels */ + RTThreadPreemptRestore(&PreemptState); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) + Assert(rc == 0); NOREF(rc); ++#endif + IPRT_LINUX_RESTORE_EFL_AC(); + #else + RT_NOREF(pfnWorker, pvUser1, pvUser2); diff --git a/fixes_for_Leap15.1.patch b/fixes_for_Leap15.1.patch deleted file mode 100644 index 171da05..0000000 --- a/fixes_for_Leap15.1.patch +++ /dev/null @@ -1,168 +0,0 @@ -Index: VirtualBox-6.0.6/src/VBox/Additions/linux/drm/vbox_drv.c -=================================================================== ---- 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, --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) || defined(RHEL_73) --# if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) && !defined(RHEL_75) -- .set_busid = drm_pci_set_busid, --# endif --#endif -- - .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/fixes_for_SLE15.patch b/fixes_for_SLE15.patch deleted file mode 100644 index 295a773..0000000 --- a/fixes_for_SLE15.patch +++ /dev/null @@ -1,34 +0,0 @@ -Index: VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_drv.c -=================================================================== ---- VirtualBox-6.0.8.orig/src/VBox/Additions/linux/drm/vbox_drv.c -+++ VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_drv.c -@@ -283,11 +283,6 @@ static struct drm_driver driver = { - .lastclose = vbox_driver_lastclose, - .master_set = vbox_master_set, - .master_drop = vbox_master_drop, --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) || defined(RHEL_73) --# if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) && !defined(RHEL_75) -- .set_busid = drm_pci_set_busid, --# endif --#endif - - .fops = &vbox_fops, - .irq_handler = vbox_irq_handler, -Index: VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_main.c -=================================================================== ---- VirtualBox-6.0.8.orig/src/VBox/Additions/linux/drm/vbox_main.c -+++ VirtualBox-6.0.8/src/VBox/Additions/linux/drm/vbox_main.c -@@ -600,13 +600,6 @@ int vbox_dumb_destroy(struct drm_file *f - } - #endif - --#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) --static void ttm_bo_put(struct ttm_buffer_object *bo) --{ -- ttm_bo_unref(&bo); --} --#endif -- - void vbox_gem_free_object(struct drm_gem_object *obj) - { - struct vbox_bo *vbox_bo = gem_to_vbox_bo(obj); diff --git a/fixes_for_qt5.13.patch b/fixes_for_qt5.13.patch index 6fa5eaa..717f699 100644 --- a/fixes_for_qt5.13.patch +++ b/fixes_for_qt5.13.patch @@ -139,3 +139,4 @@ Index: VirtualBox-6.0.6/src/VBox/GuestHost/OpenGL/include/chromium.h /* prototype these functions for opengl_stub/getprocaddress.c */ extern void APIENTRY glGenQueries(GLsizei n, GLuint *ids); + diff --git a/vbox-suid-warning.diff b/vbox-suid-warning.diff index a582849..683e8be 100644 --- a/vbox-suid-warning.diff +++ b/vbox-suid-warning.diff @@ -62,7 +62,7 @@ Index: VirtualBox-6.0.4/src/apps/VBoxSUIDMessage/VBoxSUIDMessage.cpp + 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" ++ "sudo chmod 4750 /usr/lib/virtualbox/VirtualBoxVM\n\n" + "Until this is done, Virtual Machines cannot run.")); + msgBox.exec(); + app.quit(); diff --git a/vbox-vboxadd-init-script.diff b/vbox-vboxadd-init-script.diff index 543524e..dba9135 100644 --- a/vbox-vboxadd-init-script.diff +++ b/vbox-vboxadd-init-script.diff @@ -1,7 +1,7 @@ -Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh +Index: VirtualBox-6.0.10/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 +--- VirtualBox-6.0.10.orig/src/VBox/Additions/linux/installer/vboxadd.sh ++++ VirtualBox-6.0.10/src/VBox/Additions/linux/installer/vboxadd.sh @@ -26,11 +26,14 @@ # Provides: vboxadd # Required-Start: @@ -74,8 +74,8 @@ Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh 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 +@@ -359,9 +341,9 @@ create_udev_rule() + udevcontrol reload_rules >/dev/null 2>&1 || true fi } - @@ -87,7 +87,7 @@ Index: VirtualBox-6.0.6/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 -@@ -403,47 +385,15 @@ shared_folder_setup() +@@ -406,47 +388,15 @@ shared_folder_setup() # setup_script setup() { @@ -139,7 +139,7 @@ Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh depmod # Remove old module sources -@@ -453,12 +403,13 @@ cleanup() +@@ -456,12 +406,13 @@ cleanup() fi # Clean-up X11-related bits @@ -157,7 +157,7 @@ Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh fi 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() +@@ -494,7 +445,7 @@ start() rm -f $userdev || { fail "Cannot remove $userdev" } @@ -166,10 +166,10 @@ Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd.sh fail "modprobe vboxguest failed" case "$no_udev" in 1) sleep .5;; -Index: VirtualBox-6.0.6/src/VBox/Additions/linux/installer/vboxadd-service.sh +Index: VirtualBox-6.0.10/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 +--- VirtualBox-6.0.10.orig/src/VBox/Additions/linux/installer/vboxadd-service.sh ++++ VirtualBox-6.0.10/src/VBox/Additions/linux/installer/vboxadd-service.sh @@ -26,7 +26,7 @@ # Provides: vboxadd-service # Required-Start: vboxadd @@ -179,10 +179,10 @@ Index: VirtualBox-6.0.6/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.6/src/VBox/Installer/linux/vboxautostart-service.sh +Index: VirtualBox-6.0.10/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 +--- VirtualBox-6.0.10.orig/src/VBox/Installer/linux/vboxautostart-service.sh ++++ VirtualBox-6.0.10/src/VBox/Installer/linux/vboxautostart-service.sh @@ -23,7 +23,7 @@ # Provides: vboxautostart-service # Required-Start: vboxdrv @@ -192,10 +192,10 @@ Index: VirtualBox-6.0.6/src/VBox/Installer/linux/vboxautostart-service.sh # Default-Stop: 0 1 6 # Description: VirtualBox autostart service ### END INIT INFO -Index: VirtualBox-6.0.6/src/VBox/Installer/linux/vboxballoonctrl-service.sh +Index: VirtualBox-6.0.10/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 +--- VirtualBox-6.0.10.orig/src/VBox/Installer/linux/vboxballoonctrl-service.sh ++++ VirtualBox-6.0.10/src/VBox/Installer/linux/vboxballoonctrl-service.sh @@ -23,7 +23,7 @@ # Provides: vboxballoonctrl-service # Required-Start: vboxdrv @@ -205,10 +205,10 @@ Index: VirtualBox-6.0.6/src/VBox/Installer/linux/vboxballoonctrl-service.sh # Default-Stop: 0 1 6 # Description: VirtualBox watchdog daemon ### END INIT INFO -Index: VirtualBox-6.0.6/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh +Index: VirtualBox-6.0.10/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 +--- VirtualBox-6.0.10.orig/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh ++++ VirtualBox-6.0.10/src/VBox/ValidationKit/testboxscript/linux/testboxscript-service.sh @@ -31,7 +31,7 @@ # Provides: testboxscript-service # Required-Start: $network @@ -218,10 +218,10 @@ Index: VirtualBox-6.0.6/src/VBox/ValidationKit/testboxscript/linux/testboxscript # Default-Stop: 0 1 6 # Description: TestBoxScript service ### END INIT INFO -Index: VirtualBox-6.0.6/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh +Index: VirtualBox-6.0.10/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 +--- VirtualBox-6.0.10.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh ++++ VirtualBox-6.0.10/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs-nat.sh @@ -31,7 +31,7 @@ # Provides: vboxtxs # Required-Start: $network @@ -231,10 +231,10 @@ Index: VirtualBox-6.0.6/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs- # Default-Stop: 0 1 6 # Description: VirtualBox Test Execution Service ### END INIT INFO -Index: VirtualBox-6.0.6/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh +Index: VirtualBox-6.0.10/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 +--- VirtualBox-6.0.10.orig/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh ++++ VirtualBox-6.0.10/src/VBox/ValidationKit/utils/TestExecServ/linux/vboxtxs.sh @@ -31,7 +31,7 @@ # Provides: vboxtxs # Required-Start: $network diff --git a/vbox-vboxdrv-init-script.diff b/vbox-vboxdrv-init-script.diff index 19d3a34..294f1c6 100644 --- a/vbox-vboxdrv-init-script.diff +++ b/vbox-vboxdrv-init-script.diff @@ -1,7 +1,7 @@ -Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxdrv.sh +Index: VirtualBox-6.0.10/src/VBox/Installer/linux/vboxdrv.sh =================================================================== ---- VirtualBox-6.0.0.orig/src/VBox/Installer/linux/vboxdrv.sh -+++ VirtualBox-6.0.0/src/VBox/Installer/linux/vboxdrv.sh +--- VirtualBox-6.0.10.orig/src/VBox/Installer/linux/vboxdrv.sh ++++ VirtualBox-6.0.10/src/VBox/Installer/linux/vboxdrv.sh @@ -19,11 +19,12 @@ # ### BEGIN INIT INFO @@ -19,7 +19,7 @@ Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxdrv.sh ### END INIT INFO ## @todo This file duplicates a lot of script with vboxadd.sh. When making -@@ -285,13 +286,6 @@ start() +@@ -312,13 +313,6 @@ See the documenatation for your Linux di fi fi # ensure permissions @@ -33,7 +33,7 @@ Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxdrv.sh if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why" fi -@@ -421,48 +415,8 @@ cleanup() +@@ -448,48 +442,8 @@ cleanup() # setup_script setup() { @@ -81,6 +81,6 @@ Index: VirtualBox-6.0.0/src/VBox/Installer/linux/vboxdrv.sh - succ_msg "VirtualBox kernel modules built" +# Try to build the host kernel modules in case prepackaging has failed + /sbin/vboxconfig - } - - dmnstatus() + # Secure boot on Ubuntu and Debian. + if test -n "$HAVE_SEC_BOOT" && + type update-secureboot-policy >/dev/null 2>&1; then diff --git a/virtualbox.changes b/virtualbox.changes index 5ae425c..3cef1dc 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,12 +1,44 @@ ------------------------------------------------------------------- -Sat Jul 6 17:06:28 UTC 2019 - Larry Finger +Thu Jul 18 11:48:00 UTC 2019 - Larry Finger -- Correct the logic for SLE15_SP1. +- Version update to 6.0.10 (released July 16 2019 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + +Various vulnerabilities are fixed (bsc#1141801) inclding +CVE-2019-2859 CVE-2019-2867 CVE-2019-2866 CVE-2019-2864 CVE-2019-2865 CVE-2019-1543 CVE-2019-2863 +CVE-2019-2848 CVE-2019-2877 CVE-2019-2873 CVE-2019-2874 CVE-2019-2875 CVE-2019-2876 CVE-2019-2850 + +User interface: fix issue inputing controller names (bug #11579) +User interface: fix resize problems with recent Linux hosts (bug #18677) +Serial: fixed guru meditation when raw mode is enabled (bug #18632) +Serial: fixed possible VM crash under certain circumstances +USB: Fixed "unrecoverable error" problems in OHCI emulation (bug #18593, 6.0.6 regression) +USB: improve captured device identification +VBoxManage: fix reversed reporting of audio input and output (thank you Socratis Kalogrianitis) +VBoxManage: fix controlling recording for running machine (bug #18723) +Guest control service: various fixes +Linux hosts: kernel module build fixes for various kernels (bug #18316) +Linux hosts: support UEFI secure boot driver signing on Ubuntu and Debian hosts (bug #11577) +Linux hosts: fix focus grabbing problems with recent Qt versions (builds from source only; thank you Fabian Vogt (SUSE) and Larry Finger; bug #18745) +Windows guests: many shared folders fixes +Windows guests: fix other services failing if seamless mode was not available +Linux guests: kernel module build fixes for various kernels (bugs #18677 and #18697; fixes by Larry Finger and Gianfranco Costamagna) +Linux guests: do not try to load old versions of libcrypt on recent guests in Guest Additions tools (bug #18682) +Linux guests: udev rules for guest kernel modules did not always take effect in time +Linux guests/VMSVGA: do not forget the guest screen size after a guest reboot +OS/2 guests: various shared folder fixes + +File "fixes_for_5.2.patch" is deleted - fixed upstream. +File "fixes_for_5.3.patch" is added to handle API changes in kernel 5.3. +File "fixes_for_Leap15.1.patch" is deleted - fixed upstream. ------------------------------------------------------------------- -Sat Jul 6 02:30:18 UTC 2019 - Larry Finger +Mon Jul 15 19:31:05 UTC 2019 - Larry Finger -- Update the patch for SLE15 to handle the changes in SP1. +- Revise instructions for case when VirtualBoxVM has the wrong privilege. + Rework conditional code when applying patch for SLE15_SP1. + File "fixes_for_SLE15.patch" deleted. ------------------------------------------------------------------- Sat Jul 6 02:24:37 UTC 2019 - Larry Finger diff --git a/virtualbox.spec b/virtualbox.spec index 8f50e51..acb359e 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -47,7 +47,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.8 +Version: 6.0.10 Release: 0 Summary: VirtualBox is an Emulator License: GPL-2.0-or-later @@ -139,18 +139,12 @@ Patch123: switch_to_python3.4+.patch Patch125: remove_vbox_video_build.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 modified kernel in Leap 42.3 Patch130: fixes_for_Leap42.3.patch -# Fixes for Qt5.13 -Patch131: fixes_for_qt5.13.patch -# Fixes for kernel 5.2 -Patch132: fixes_for_5.2.patch -# Fixes for SLE15 -Patch133: fixes_for_SLE15.patch -# Fixes for VB stealing focus under Qt 5.13 -Patch134: fixes_focus_steal.patch +# Fixes for API changes in kernel 5.3 +Patch131: fixes_for_5.3.patch +# Fixes for Qt5.13 on 32-bit systems +Patch132: fixes_for_qt5.13.patch #endif Patch999: virtualbox-fix-ui-background-color.patch # @@ -451,25 +445,17 @@ as an "extpack" for VirtualBox. The implementation is licensed under GPL. %patch123 -p1 %patch125 -p1 %patch128 -p1 -# Tumbleweed, Leap 15.1 and above drm adjustments -%if 0%{?suse_version} > 1500 || (0%{?sle_version} >= 150100 && 0%{?is_opensuse}) -%patch129 -p1 -%else -%if (0%{?sle_version} == 150100) -# Patch only for SLE15.1 -%patch133 -p1 -%endif -%endif -# Leap 42.3 adjustments +# Adjustments that are version dependent %if 0%{?sle_version} == 120300 && 0%{?is_opensuse} +# Patch for Leap 42.3 %patch130 -p1 %endif -# Qt5.13 adjustments -%if %{qt5ver} >= 51300 %patch131 -p1 -%endif +# Handle the 32-bit changes needed for Qt 5.13 +%ifarch %ix86 && 0%{?qt5ver} >= 51300 %patch132 -p1 -%patch134 -p1 +%endif + # make VB UI background colors look sane again %patch999 -p1 @@ -957,8 +943,6 @@ export DISABLE_RESTART_ON_UPDATE=yes %{_vbox_instdir}/VBoxHeadless.so %{_vbox_instdir}/VBoxNetDHCP.so %{_vbox_instdir}/VBoxNetNAT.so -%{_vbox_instdir}/VBoxOGLhostcrutil.so -%{_vbox_instdir}/VBoxOGLhosterrorspu.so %{_vbox_instdir}/VBoxREM*.so %{_vbox_instdir}/VBoxRT.so %{_vbox_instdir}/VBoxSharedFolders.so @@ -1034,7 +1018,6 @@ export DISABLE_RESTART_ON_UPDATE=yes %{_vbox_instdir}/VBoxSDL.so %{_vbox_instdir}/VBoxSharedCrOpenGL.so %{_vbox_instdir}/VBoxKeyboard.so -%{_vbox_instdir}/VBoxOGLrenderspu.so %{_vbox_instdir}/VBoxSharedClipboard.so %{_datadir}/pixmaps/virtualbox.png %{_datadir}/applications/%{name}.desktop From 06c8f73ab17e721860fc0618eeeeb3efb054ced3934d7061dda03f466088914b Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Tue, 30 Jul 2019 19:54:24 +0000 Subject: [PATCH 2/3] Accepting request 719647 from home:lwfinger:branches:Virtualization - Merge host kmp and guest kmp into a single kmp. The existence of two different kernel module packages is believed to be the reason that it is possible for a new kernel not to include the necessary kernel modules (boo#1142955). Files "virtualbox-host-kmp-files" and "virtualbox-guest-kmp-files" are deleted. File "virtualbox-kmp-files" is added. Files "virtualbox-host-preamble" and virtualbox-guest-preamble" are deleted. File "virtualbox-kmp-preamble" is added. File "fix_conflict_between_host_and_guest.patch" is added. - Script vboxdrv.sh, which is called from the systemd service file, incorrectly called a routine that does not exist when the kernel modules were not available. This call is changed to /sbin/vboxconfig that will build the modules if the requisite packages are available. If that is not true, the systemctl status vboxdrv will list the command needed to load the missing packages. This change address part of boo#1142995. OBS-URL: https://build.opensuse.org/request/show/719647 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=498 --- fix_conflict_between_host_and_guest.patch | 13 ++++ vboxdrv.sh | 2 +- vboxguestconfig.sh | 8 +-- virtualbox-guest-kmp-files | 8 --- virtualbox-guest-preamble | 8 --- virtualbox-host-preamble | 8 --- ...box-host-kmp-files => virtualbox-kmp-files | 3 + virtualbox-kmp-preamble | 3 + virtualbox.changes | 21 ++++++ virtualbox.spec | 67 ++++++++----------- 10 files changed, 74 insertions(+), 67 deletions(-) create mode 100644 fix_conflict_between_host_and_guest.patch delete mode 100644 virtualbox-guest-kmp-files delete mode 100644 virtualbox-guest-preamble delete mode 100644 virtualbox-host-preamble rename virtualbox-host-kmp-files => virtualbox-kmp-files (67%) create mode 100644 virtualbox-kmp-preamble diff --git a/fix_conflict_between_host_and_guest.patch b/fix_conflict_between_host_and_guest.patch new file mode 100644 index 0000000..78daf05 --- /dev/null +++ b/fix_conflict_between_host_and_guest.patch @@ -0,0 +1,13 @@ +Index: VirtualBox-6.0.10/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c +=================================================================== +--- VirtualBox-6.0.10.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c ++++ VirtualBox-6.0.10/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c +@@ -130,7 +130,7 @@ static struct vboxguest_module_info g_VB + RTMemAllocExTag, + RTMemContAlloc, + RTMemContFree, +- RTMemFreeEx, ++ RTMemFreeExG, + RTMpIsCpuPossible, + RTMpNotificationDeregister, + RTMpNotificationRegister, diff --git a/vboxdrv.sh b/vboxdrv.sh index b47e78f..535e6e4 100644 --- a/vboxdrv.sh +++ b/vboxdrv.sh @@ -210,7 +210,7 @@ start_drv() failure "Cannot remove $DEVICE" fi if ! $MODPROBE vboxdrv > /dev/null 2>&1; then - setup + /sbin/vboxconfig if ! $MODPROBE vboxdrv > /dev/null 2>&1; then failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why" fi diff --git a/vboxguestconfig.sh b/vboxguestconfig.sh index 959f9fc..db91e41 100644 --- a/vboxguestconfig.sh +++ b/vboxguestconfig.sh @@ -9,8 +9,8 @@ SOURCE="/usr/src/kernel-modules/" LOGFILE="/var/log/virtualbox.log" INCLUDE="/lib/modules/`uname -r`/build/include" # -# Test if vboxsf module loaded. If it is, skip everything else -loaded=$(lsmod | grep vboxsf) +# Test if vboxguest module loaded. If it is, skip everything else +loaded=$(lsmod | grep vboxguest) if [ -n "$loaded" ] ; then echo "Kernel modules available. but we will continue..." fi @@ -28,7 +28,7 @@ popd > /dev/null 2>&1 # # Check if virtualbox-guest-source version matches virtualbox version if [ "$(rpm -q virtualbox virtualbox-guest-source --queryformat='%{version}-%{release}\n' 2>/dev/null | sort -u | wc -l)" -ne "1" ] ; then - echo "virtualbox-host-source package version doesn't match the version of virtualbox package." + echo "virtualbox-guest-source package version doesn't match the version of virtualbox package." echo "This situation is probably not fatal, thus we will try to continue .." fi # Prerequisites are available, start build @@ -53,7 +53,7 @@ if [ "$?" -ne 0 ] ; then exit 1 fi depmod -a -modprobe -av vboxguest vboxvideo vboxsf +modprobe -av vboxsf vboxguest vboxvideo cd ../.. rm -rf additions popd > /dev/null 2>&1 diff --git a/virtualbox-guest-kmp-files b/virtualbox-guest-kmp-files deleted file mode 100644 index b5ac415..0000000 --- a/virtualbox-guest-kmp-files +++ /dev/null @@ -1,8 +0,0 @@ -%defattr (-,root,root) -%dir /lib/modules/%2-%1/ -%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-guest-preamble b/virtualbox-guest-preamble deleted file mode 100644 index dc1b5c3..0000000 --- a/virtualbox-guest-preamble +++ /dev/null @@ -1,8 +0,0 @@ -Requires: kernel-%1 -Provides: virtualbox-guest-kmp = %version -#rename from ose version: -Provides: virtualbox-ose-guest-kmp-%1 = %version -Obsoletes: virtualbox-ose-guest-kmp-%1 < %version -#host (vboxdrv) and guest (vboxguest) kmp exports the same symbol (RTMemFreeEx) -#which break loading modules using modprobe (bnc#661740) -Conflicts: virtualbox-host-kmp diff --git a/virtualbox-host-preamble b/virtualbox-host-preamble deleted file mode 100644 index 35ddcbb..0000000 --- a/virtualbox-host-preamble +++ /dev/null @@ -1,8 +0,0 @@ -Requires: kernel-%1 -Provides: virtualbox-host-kmp = %version -#rename from ose version: -Provides: virtualbox-ose-host-kmp-%1 = %version -Obsoletes: virtualbox-ose-host-kmp-%1 < %version -#host (vboxdrv) and guest (vboxguest) kmp exports the same symbol (RTMemFreeEx) -#which break loading modules using modprobe (bnc#661740) -Conflicts: virtualbox-guest-kmp diff --git a/virtualbox-host-kmp-files b/virtualbox-kmp-files similarity index 67% rename from virtualbox-host-kmp-files rename to virtualbox-kmp-files index 21f6599..c327efd 100644 --- a/virtualbox-host-kmp-files +++ b/virtualbox-kmp-files @@ -5,3 +5,6 @@ /lib/modules/%2-%1/extra/vboxnetadp.ko /lib/modules/%2-%1/extra/vboxnetflt.ko /lib/modules/%2-%1/extra/vboxpci.ko +/lib/modules/%2-%1/extra/vboxsf.ko +/lib/modules/%2-%1/extra/vboxvideo.ko +/lib/modules/%2-%1/extra/vboxguest.ko diff --git a/virtualbox-kmp-preamble b/virtualbox-kmp-preamble new file mode 100644 index 0000000..79ed2ff --- /dev/null +++ b/virtualbox-kmp-preamble @@ -0,0 +1,3 @@ +Requires: kernel-%1 +Provides: virtualbox-kmp = %version + diff --git a/virtualbox.changes b/virtualbox.changes index 3cef1dc..c844e03 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Mon Jul 29 06:40:41 UTC 2019 - Larry Finger + +- Merge host kmp and guest kmp into a single kmp. The existence of two different kernel module + packages is believed to be the reason that it is possible for a new kernel not to include + the necessary kernel modules (boo#1142955). + Files "virtualbox-host-kmp-files" and "virtualbox-guest-kmp-files" are deleted. + File "virtualbox-kmp-files" is added. + Files "virtualbox-host-preamble" and virtualbox-guest-preamble" are deleted. + File "virtualbox-kmp-preamble" is added. + File "fix_conflict_between_host_and_guest.patch" is added. + +------------------------------------------------------------------- +Sat Jul 27 01:53:12 UTC 2019 - Larry Finger + +- Script vboxdrv.sh, which is called from the systemd service file, incorrectly called a routine + that does not exist when the kernel modules were not available. This call is changed to /sbin/vboxconfig + that will build the modules if the requisite packages are available. If that is not true, the + systemctl status vboxdrv will list the command needed to load the missing packages. This change + address part of boo#1142995. + ------------------------------------------------------------------- Thu Jul 18 11:48:00 UTC 2019 - Larry Finger diff --git a/virtualbox.spec b/virtualbox.spec index acb359e..0504d1d 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -62,10 +62,8 @@ Source0: VirtualBox-%{version}-patched.tar.bz2 Source1: UserManual.pdf Source3: %{name}-60-vboxguest.rules Source4: %{name}-default.virtualbox -Source5: %{name}-host-kmp-files -Source6: %{name}-guest-kmp-files -Source7: %{name}-host-preamble -Source8: %{name}-guest-preamble +Source5: %{name}-kmp-files +Source7: %{name}-kmp-preamble Source9: %{name}-wrapper.sh Source10: %{name}-LocalConfig.kmk Source11: %{name}-60-vboxdrv.rules @@ -119,6 +117,8 @@ Patch108: virtualbox-snpritnf-buffer-overflow.patch Patch109: vbox-usb-warning.diff # Patch to ensure that VirtualBoxVM is SUID Patch110: vbox-suid-warning.diff +# Fix symbol conflict between host and guest kmp +Patch111: fix_conflict_between_host_and_guest.patch # Fix change in kernel API for ttm_bo_move_memcpy() Patch112: modify_for_4_8_bo_move.patch # Remove all mention of _smp_mflags @@ -218,7 +218,7 @@ BuildRequires: pkgconfig(xineramaproto) BuildRequires: pkgconfig(xmu) BuildRequires: pkgconfig(xproto) BuildRequires: pkgconfig(xrandr) -Requires: %{name}-host-kmp = %{version} +Requires: %{name}-kmp = %{version} Requires(post): sysvinit(syslog) Requires(pre): permissions %if ! 0%{?suse_version} > 1325 @@ -283,30 +283,22 @@ Obsoletes: %{name}-vboxwebsrv The VirtualBox web server is used to control headless VMs using a browser. ######################################### -%package host-KMP -Summary: Host kernel module for VirtualBox +%package kmp +Summary: Kernel modules for VirtualBox Group: System/Emulators/PC -%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE7} -n %{name}-host -f %{SOURCE5} -x kdump um xen pae xenpae pv +%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE7} -n %{name} -f %{SOURCE5} -x kdump um xen pae xenpae pv Requires: %{kernel_module_package_buildreqs} +Obsoletes: %{name}-guest-kmp +Obsoletes: %{name}-host-kmp -%description host-KMP -This package contains the kernel-modules that VirtualBox uses to create virtual machines. -########################################## - -%package guest-KMP -Summary: Guest kernel modules for VirtualBox -Group: System/Emulators/PC -%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE8} -n %{name}-guest -f %{SOURCE6} -x kdump um xen pae xenpae pv -Requires: %{kernel_module_package_buildreqs} - -%description guest-KMP -This package contains the VB kernel-modules for Linux guest virtual machines. +%description kmp +This package contains the kernel-modules that VirtualBox uses to create or run virtual machines. ########################################## %package guest-x11 Summary: VirtualBox X11 drivers for mouse and video Group: System/X11/Servers/XF86_4 -Requires: %{name}-guest-kmp = %{version} +Requires: %{name}-kmp = %{version} Supplements: modalias(xorg-x11-server:pci:v000080EEd0000BEEFsv*sd*bc*sc*i*) #rename from xorg-x11-driver-virtualbox-ose: Provides: xorg-x11-driver-virtualbox-ose = %{version} @@ -319,7 +311,7 @@ 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}-guest-kmp = %{version} +Requires: %{name}-kmp = %{version} Supplements: modalias(pci:v000080EEd0000BEEFsv*sd*bc*sc*i*) #rename from "ose" version: Provides: %{name}-ose-guest-tools = %{version} @@ -390,7 +382,7 @@ BuildArch: noarch %description guest-source Source files for %{name} guest kernel modules These can be built for custom kernels using -cd %{_prefix}/src/kernel-modules/virtualbox/guest ; make ; make install +sudo /sbin/vboxguestconfig ########################################### %package guest-desktop-icons @@ -435,6 +427,7 @@ as an "extpack" for VirtualBox. The implementation is licensed under GPL. %patch108 -p1 %patch109 -p1 %patch110 -p1 +%patch111 -p1 %patch112 -p1 %patch113 -p1 %patch115 -p1 @@ -536,15 +529,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 vboxvideo (for Leap 15.1) +# guest modules : vboxguest,vboxsf vboxvideo (for Leap 15.1 and older) echo "build kernel modules" -%if 0%{?suse_version} >= 1500 +#%if 0%{?suse_version} < 1550 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 +#%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") @@ -568,7 +561,7 @@ for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp,pci} \ fi # copy vboxguest (for guest) module symbols which are used by vboxsf and vboxvideo km's: if [ "$module_name" = "vboxsf" -o \ - "$module_name" = "vboxvideo" ] ; then + "$module_name" = "vboxvideo" ] ; then cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \ $PWD/modules_build_dir/$flavor/$module_name fi @@ -603,7 +596,7 @@ install -d -m 755 %{buildroot}%{_udevrulesdir} install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d #################################################################################### -echo "entering virtualbox-kmp-guest and virtualbox-kmp-host install section" +echo "entering virtualbox-kmp install section" #################################################################################### export INSTALL_MOD_PATH=%{buildroot} export INSTALL_MOD_DIR=extra @@ -611,11 +604,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 +#%if 0%{?suse_version} < 1550 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 +#%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 @@ -816,7 +809,7 @@ 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 +%if 0%{?suse_version} <= 1500 getent group vboxvideo >/dev/null || groupadd -r vboxvideo %endif %service_add_pre vboxadd-service.service @@ -1031,8 +1024,6 @@ export DISABLE_RESTART_ON_UPDATE=yes %{_bindir}/VBoxClient %{_libdir}/VBoxOGL*.so %{_libdir}/VBoxEGL*.so -#%%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so -#%%{_libdir}/dri/vboxvideo_dri.so %{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh %files guest-tools From 64d73e217a0424b0aececb38f14087f6b2db3a0bdcfd36db64a85546d3c41d8f Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Thu, 1 Aug 2019 16:50:24 +0000 Subject: [PATCH 3/3] Accepting request 720261 from home:lwfinger:branches:Virtualization File "fixes_focus_steal.patch" is deleted - fixed upstream. OBS-URL: https://build.opensuse.org/request/show/720261 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=500 --- virtualbox.changes | 1 + 1 file changed, 1 insertion(+) diff --git a/virtualbox.changes b/virtualbox.changes index c844e03..6ce47db 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -53,6 +53,7 @@ OS/2 guests: various shared folder fixes File "fixes_for_5.2.patch" is deleted - fixed upstream. File "fixes_for_5.3.patch" is added to handle API changes in kernel 5.3. File "fixes_for_Leap15.1.patch" is deleted - fixed upstream. +File "fixes_focus_steal.patch" is deleted - fixed upstream. ------------------------------------------------------------------- Mon Jul 15 19:31:05 UTC 2019 - Larry Finger