forked from pool/virtualbox
Accepting request 1045400 from home:lwfinger:branches:Virtualization
To eliminate some VM failures while using the kernel version of vboxvideo.ko for Leap 15.4, the build of this module is turned on again. Fixes boo#1206651 - Leap 15.4 guests running VirtualBox 7.0.4 crash when run on hosts with certain Intel graphics cards File "fixes_for_leap15.5.patch" added to fix chanes needed for backports to the Leap 15.5 kernel OBS-URL: https://build.opensuse.org/request/show/1045400 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=670
This commit is contained in:
parent
b4a9166761
commit
d4f0dc43fc
2390
fix_kmp_build.patch
2390
fix_kmp_build.patch
File diff suppressed because it is too large
Load Diff
83
fixes_for_leap15.5.patch
Normal file
83
fixes_for_leap15.5.patch
Normal file
@ -0,0 +1,83 @@
|
||||
Index: VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_drv.h
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.4.orig/src/VBox/Additions/linux/drm/vbox_drv.h
|
||||
+++ VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_drv.h
|
||||
@@ -166,9 +166,9 @@
|
||||
# include <drm/drm_device.h>
|
||||
# include <drm/drm_ioctl.h>
|
||||
# include <drm/drm_fourcc.h>
|
||||
-# if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_RANGE(8,7, 8,99) && !RTLNX_RHEL_MAJ_PREREQ(9,1)
|
||||
-# include <drm/drm_irq.h>
|
||||
-# endif
|
||||
+//# if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_RANGE(8,7, 8,99) && !RTLNX_RHEL_MAJ_PREREQ(9,1)
|
||||
+//# include <drm/drm_irq.h>
|
||||
+//# endif
|
||||
# include <drm/drm_vblank.h>
|
||||
#else /* < 5.5.0 || RHEL < 8.3 || SLES < 15-SP3 */
|
||||
# include <drm/drmP.h>
|
||||
Index: VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_drv.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.4.orig/src/VBox/Additions/linux/drm/vbox_drv.c
|
||||
+++ VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_drv.c
|
||||
@@ -52,13 +52,7 @@
|
||||
|
||||
/** Detect whether kernel mode setting is OFF. */
|
||||
#if defined(CONFIG_VGA_CONSOLE)
|
||||
-# if RTLNX_VER_MIN(5,17,0)
|
||||
# define VBOX_VIDEO_NOMODESET() drm_firmware_drivers_only() && vbox_modeset == -1
|
||||
-# elif RTLNX_VER_MIN(4,7,0)
|
||||
-# define VBOX_VIDEO_NOMODESET() vgacon_text_force() && vbox_modeset == -1
|
||||
-# else /* < 4.7.0 */
|
||||
-# define VBOX_VIDEO_NOMODESET() 0
|
||||
-# endif /* < 4.7.0 */
|
||||
#else /* !CONFIG_VGA_CONSOLE */
|
||||
# define VBOX_VIDEO_NOMODESET() 0
|
||||
#endif /* !CONFIG_VGA_CONSOLE */
|
||||
@@ -372,7 +366,7 @@ static struct drm_driver driver = {
|
||||
#endif
|
||||
|
||||
.fops = &vbox_fops,
|
||||
-#if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_RANGE(8,7, 8,99) && !RTLNX_RHEL_MAJ_PREREQ(9,1)
|
||||
+#if RTLNX_VER_MIN(5,15,0)
|
||||
.irq_handler = vbox_irq_handler,
|
||||
#endif
|
||||
.name = DRIVER_NAME,
|
||||
Index: VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_irq.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.4.orig/src/VBox/Additions/linux/drm/vbox_irq.c
|
||||
+++ VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_irq.c
|
||||
@@ -205,21 +205,11 @@ int vbox_irq_init(struct vbox_private *v
|
||||
{
|
||||
INIT_WORK(&vbox->hotplug_work, vbox_hotplug_worker);
|
||||
vbox_update_mode_hints(vbox);
|
||||
-#if RTLNX_VER_MIN(5,15,0) || RTLNX_RHEL_RANGE(8,7, 8,99) || RTLNX_RHEL_MAJ_PREREQ(9,1)
|
||||
return request_irq(VBOX_DRM_TO_PCI_DEV(vbox->dev)->irq, vbox_irq_handler, IRQF_SHARED, vbox->dev->driver->name, vbox->dev);
|
||||
-#elif RTLNX_VER_MIN(3,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,1)
|
||||
- return drm_irq_install(vbox->dev, VBOX_DRM_TO_PCI_DEV(vbox->dev)->irq);
|
||||
-#else
|
||||
- return drm_irq_install(vbox->dev);
|
||||
-#endif
|
||||
}
|
||||
|
||||
void vbox_irq_fini(struct vbox_private *vbox)
|
||||
{
|
||||
-#if RTLNX_VER_MIN(5,15,0) || RTLNX_RHEL_RANGE(8,7, 8,99) || RTLNX_RHEL_MAJ_PREREQ(9,1)
|
||||
free_irq(VBOX_DRM_TO_PCI_DEV(vbox->dev)->irq, vbox->dev);
|
||||
-#else
|
||||
- drm_irq_uninstall(vbox->dev);
|
||||
-#endif
|
||||
flush_work(&vbox->hotplug_work);
|
||||
}
|
||||
Index: VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_ttm.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.4.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
|
||||
+++ VirtualBox-7.0.4/src/VBox/Additions/linux/drm/vbox_ttm.c
|
||||
@@ -320,7 +320,7 @@ static struct ttm_tt *vbox_ttm_tt_create
|
||||
if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
|
||||
#elif RTLNX_VER_MAX(5,11,0) && !RTLNX_RHEL_RANGE(8,5, 8,99)
|
||||
if (ttm_tt_init(tt, bo, page_flags)) {
|
||||
-#elif RTLNX_VER_MAX(5,19,0)
|
||||
+#elif RTLNX_VER_MAX(5,14,0)
|
||||
if (ttm_tt_init(tt, bo, page_flags, ttm_write_combined)) {
|
||||
#else
|
||||
if (ttm_tt_init(tt, bo, page_flags, ttm_write_combined, 0)) {
|
@ -11,7 +11,7 @@ Index: VirtualBox-7.0.4/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDia
|
||||
#endif
|
||||
|
||||
/* Language page: */
|
||||
@@ -224,17 +222,7 @@ void UISettingsDialogGlobal::prepare()
|
||||
@@ -224,17 +222,6 @@ void UISettingsDialogGlobal::prepare()
|
||||
addPageHelpKeyword(iPageIndex, "preferences");
|
||||
break;
|
||||
}
|
||||
@ -22,7 +22,7 @@ Index: VirtualBox-7.0.4/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDia
|
||||
- pSettingsPage = new UIGlobalSettingsUpdate;
|
||||
- addItem(":/refresh_32px.png", ":/refresh_24px.png", ":/refresh_16px.png",
|
||||
- iPageIndex, "#update", pSettingsPage);
|
||||
addPageHelpKeyword(iPageIndex, "preferences");
|
||||
- addPageHelpKeyword(iPageIndex, "preferences");
|
||||
- break;
|
||||
- }
|
||||
-#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
|
||||
|
@ -2,7 +2,7 @@ Index: VirtualBox-7.0.4/Config.kmk
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.4.orig/Config.kmk
|
||||
+++ VirtualBox-7.0.4/Config.kmk
|
||||
@@ -6622,6 +6622,9 @@ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.darwi
|
||||
@@ -6674,6 +6674,9 @@ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.darwi
|
||||
ifeq ($(KBUILD_TARGET),linux)
|
||||
# not necessary except USE_LIB_PCAP is defined in SUPR3HardenedMain.cpp
|
||||
# TEMPLATE_VBOXR3HARDENEDEXE_LIBS += cap
|
||||
@ -12,7 +12,7 @@ Index: VirtualBox-7.0.4/Config.kmk
|
||||
endif
|
||||
ifeq ($(KBUILD_TARGET),win) # No CRT!
|
||||
TEMPLATE_VBOXR3HARDENEDEXE_SDKS = VBOX_NTDLL $(TEMPLATE_VBOXR3EXE_SDKS)
|
||||
@@ -6654,8 +6657,8 @@ ifeq ($(KBUILD_TARGET),win) # No CRT!
|
||||
@@ -6706,8 +6709,8 @@ ifeq ($(KBUILD_TARGET),win) # No CRT!
|
||||
TEMPLATE_VBOXR3HARDENEDEXE_VBOX_IMPORT_CHECKER.win = noimports
|
||||
else ifn1of ($(KBUILD_TARGET), os2)
|
||||
ifneq ($(KBUILD_TYPE),asan) # Keep RPATH in asan builds so we can find libasan.so.X and libubsan.so.Y.
|
||||
|
@ -1,13 +0,0 @@
|
||||
Index: VirtualBox-7.0.4/src/libs/libxml2-2.9.14/libxml.spec.in
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.4.orig/src/libs/libxml2-2.9.14/libxml.spec.in
|
||||
+++ VirtualBox-7.0.4/src/libs/libxml2-2.9.14/libxml.spec.in
|
||||
@@ -103,7 +103,7 @@ sed -i 's|#!/usr/bin/python |#!%{__pytho
|
||||
|
||||
%build
|
||||
%configure
|
||||
-make %{_smp_mflags}
|
||||
+make
|
||||
|
||||
find doc -type f -exec chmod 0644 \{\} \;
|
||||
|
@ -6,4 +6,4 @@
|
||||
%{kernel_module_directory}/%2-%1/extra/vboxnetflt.ko
|
||||
%{kernel_module_directory}/%2-%1/extra/vboxsf.ko
|
||||
%{kernel_module_directory}/%2-%1/extra/vboxguest.ko
|
||||
#%{kernel_module_directory}/%2-%1/extra/vboxvideo.ko
|
||||
%{kernel_module_directory}/%2-%1/extra/vboxvideo.ko
|
||||
|
@ -1,12 +0,0 @@
|
||||
Index: VirtualBox-7.0.4/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_subr.c
|
||||
===================================================================
|
||||
--- VirtualBox-7.0.4.orig/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_subr.c
|
||||
+++ VirtualBox-7.0.4/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_subr.c
|
||||
@@ -833,6 +833,7 @@ dt_gmatch(const char *s, const char *p)
|
||||
#else
|
||||
return (p == NULL || *p == '\0' || RTStrSimplePatternMatch(p, s)); /** @todo implement gmatch. */
|
||||
#endif
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
char *
|
@ -1,4 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 23 23:24:21 UTC 2022 - Larry Finger <Larry.Finger@gmail.com>
|
||||
|
||||
To eliminate some VM failures while using the kernel version of vboxvideo.ko for Leap 15.4,
|
||||
the build of this module is turned on again. Fixes boo#1206651 - Leap 15.4 guests running
|
||||
VirtualBox 7.0.4 crash when run on hosts with certain Intel graphics cards
|
||||
|
||||
File "virtualbox-snpritnf-buffer-overflow.patch" deleted.
|
||||
File "vbox_remove_smp_mflags.patch" deleted.
|
||||
File "fixes_for_leap15.5.patch" added to fix chanes needed for backports to the Leap 15.5 kernel
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 30 17:22:42 UTC 2022 - Larry Finger <Larry.Finger@gmail.com>
|
||||
|
||||
Fixes boo#1205868 - VirtualBox 7.0.4 crashes when machine log is requested from GUI
|
||||
|
174
virtualbox.spec
174
virtualbox.spec
@ -120,8 +120,6 @@ Patch12: smap.diff
|
||||
Patch13: gcc5-real-support.patch
|
||||
# Patch to build with gnu sed correctly
|
||||
Patch14: virtualbox-sed-params.patch
|
||||
# Patch to use snprintf correcty and not overflow dst buffer
|
||||
Patch15: virtualbox-snpritnf-buffer-overflow.patch
|
||||
# Patch to add code to explain USB Passthru
|
||||
Patch16: vbox-usb-warning.diff
|
||||
# Patch to ensure that VirtualBoxVM is SUID
|
||||
@ -130,8 +128,6 @@ Patch17: vbox-suid-warning.diff
|
||||
Patch18: fix_conflict_between_host_and_guest.patch
|
||||
# Fix change in kernel API for ttm_bo_move_memcpy()
|
||||
Patch19: modify_for_4_8_bo_move.patch
|
||||
# Remove all mention of _smp_mflags
|
||||
Patch20: vbox_remove_smp_mflags.patch
|
||||
# Disable experimental and incomplete CLOUD_NET
|
||||
Patch21: turn_off_cloud_net.patch
|
||||
# Fix rpmlint error for script /lib/usr/virtualbox/vboxshell.py
|
||||
@ -141,7 +137,6 @@ Patch23: vbox-python-py310.patch
|
||||
# fix build of Python and dev package on openSUSE 11.3 (was vbox-detection.diff)
|
||||
# use plain python3 interpreter of the distro (part of former switch_to_pyton3.4+.patch),
|
||||
Patch24: vbox-python-selection.patch
|
||||
# Use build parameters to control video driver problems
|
||||
Patch25: remove_vbox_video_build.patch
|
||||
# Fixes for modified kernel in Leap 42.3
|
||||
Patch26: VirtualBox-5.2.10-xclient.patch
|
||||
@ -160,6 +155,8 @@ Patch32: handle_gsoap_208103.patch
|
||||
# Fix for struct file_operations backport in 15.3
|
||||
Patch33: fixes_for_leap15.3.patch
|
||||
Patch34: fix_kmp_build.patch
|
||||
# Fix for backports to 15.5
|
||||
Patch35: fixes_for_leap15.5.patch
|
||||
#
|
||||
# Common BuildRequires for both virtualbox and virtualbox-kmp
|
||||
BuildRequires: %{kernel_module_package_buildreqs}
|
||||
@ -298,6 +295,25 @@ and others, and limited virtualization of macOS guests on Apple
|
||||
hardware. VirtualBox is freely available as Open Source Software under
|
||||
the terms of the GNU Public License (GPL).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################
|
||||
@ -318,6 +334,25 @@ Obsoletes: %{name}-ose-qt < %{version}
|
||||
%description qt
|
||||
This package contains the code for the GUI used to control VMs.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#########################################
|
||||
@ -334,6 +369,25 @@ Obsoletes: %{name}-vboxwebsrv < %{version}
|
||||
The VirtualBox web server is used to control headless VMs using a browser.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################
|
||||
@ -357,6 +411,25 @@ Requires(pre): net-tools-deprecated
|
||||
%description guest-tools
|
||||
VirtualBox guest addition tools.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################
|
||||
@ -378,6 +451,25 @@ Obsoletes: python3-%{name}-ose < %{version}
|
||||
%description -n python3-%{name}
|
||||
Python XPCOM bindings to %{name}. Used e.g. by vboxgtk package.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################
|
||||
@ -394,6 +486,25 @@ Obsoletes: %{name}-ose-devel < %{version}
|
||||
%description devel
|
||||
Development file for %{name}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################
|
||||
@ -427,6 +538,25 @@ Source files for %{name} guest kernel modules
|
||||
These can be built for custom kernels using
|
||||
sudo %{_sbindir}/vboxguestconfig
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################
|
||||
@ -441,6 +571,25 @@ BuildArch: noarch
|
||||
%description guest-desktop-icons
|
||||
This package contains icons for guest desktop files that were created on the desktop.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################
|
||||
@ -481,12 +630,10 @@ This package contains the kernel-modules that VirtualBox uses to create or run v
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
@ -508,6 +655,9 @@ This package contains the kernel-modules that VirtualBox uses to create or run v
|
||||
%patch33 -p1
|
||||
%endif
|
||||
%patch34 -p1
|
||||
%if 0%{?sle_version} == 150500 && 0%{?is_opensuse}
|
||||
%patch35 -p1
|
||||
%endif
|
||||
|
||||
### Documents for virtualbox main package ###
|
||||
%if %{main_package}
|
||||
@ -1182,10 +1332,10 @@ COMMON_KMK_FLAGS="
|
||||
#
|
||||
# build kernel modules for guest and host (check novel-kmp package as example)
|
||||
# host modules : vboxdrv,vboxnetflt,vboxnetadp
|
||||
# guest modules : vboxguest,vboxsf
|
||||
# guest modules : vboxguest,vboxsf,vboxvideo
|
||||
echo "build kernel modules"
|
||||
for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} \
|
||||
out/linux.*/release/bin/additions/src/vbox{guest,sf}; do
|
||||
out/linux.*/release/bin/additions/src/vbox{guest,sf,video}; do
|
||||
#get the module name from path
|
||||
module_name=$(basename "$vbox_module")
|
||||
|
||||
@ -1211,7 +1361,7 @@ for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} \
|
||||
$PWD/modules_build_dir/$flavor/$module_name
|
||||
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers"
|
||||
fi
|
||||
# copy vboxguest (for guest) module symbols which are used by vboxsf km:
|
||||
# copy vboxguest (for guest) module symbols which are used by vboxsf and vboxvideo km's:
|
||||
if [ "$module_name" = "vboxsf" -o \
|
||||
"$module_name" = "vboxvideo" ] ; then
|
||||
cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \
|
||||
@ -1228,9 +1378,9 @@ done
|
||||
export INSTALL_MOD_PATH=%{buildroot}
|
||||
export INSTALL_MOD_DIR=extra
|
||||
#to install modules we use here similar steps like in build phase, go through all the modules :
|
||||
for module_name in vbox{drv,netflt,netadp,guest,sf}
|
||||
for module_name in vbox{drv,netflt,netadp,guest,sf,video}
|
||||
do
|
||||
#and through the all flavors
|
||||
#and through all flavors
|
||||
for flavor in %{flavors_to_build}; do
|
||||
make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user