1
0
forked from pool/virtualbox

Accepting request 507206 from Virtualization

Fix missing global for 32-bit version with gcc7. (bsc#1046571).
  Fix missing frame buffer cleanup - private communication from Oracle - adds file "fix_KMS_support.patch".

OBS-URL: https://build.opensuse.org/request/show/507206
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virtualbox?expand=0&rev=135
This commit is contained in:
Dominique Leuenberger 2017-07-04 09:54:03 +00:00 committed by Git OBS Bridge
commit f1883d7678
12 changed files with 559 additions and 46 deletions

14
fix_KMS_support.patch Normal file
View File

@ -0,0 +1,14 @@
Index: VirtualBox-5.1.22/src/VBox/Additions/linux/drm/vbox_fb.c
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Additions/linux/drm/vbox_fb.c
+++ VirtualBox-5.1.22/src/VBox/Additions/linux/drm/vbox_fb.c
@@ -409,6 +409,9 @@ static void vbox_fbdev_destroy(struct dr
LogFunc(("vboxvideo: %d\n", __LINE__));
if (fbdev->helper.fbdev) {
info = fbdev->helper.fbdev;
+#ifdef CONFIG_FB_DEFERRED_IO
+ fb_deferred_io_cleanup(info);
+#endif
unregister_framebuffer(info);
if (info->cmap.len)
fb_dealloc_cmap(&info->cmap);

7
fix_usb_rules.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/bash
# script to disable USB passthru in /etc/udev/rules.d/60-vboxdrv.rules
# if already disabled, clear the comment character
sed -i 's/#SUBSYSTEM==\"usb/SUBSYSTEM==\"usb/' /etc/udev/rules.d/60-vboxdrv.rules
# now comment the usb lines
sed -i 's/SUBSYSTEM==\"usb/#SUBSYSTEM==\"usb/' /etc/udev/rules.d/60-vboxdrv.rules

View File

@ -1,8 +1,8 @@
Index: VirtualBox-5.1.6/src/VBox/Additions/linux/drm/vbox_ttm.c Index: VirtualBox-5.1.22/src/VBox/Additions/linux/drm/vbox_ttm.c
=================================================================== ===================================================================
--- VirtualBox-5.1.6.orig/src/VBox/Additions/linux/drm/vbox_ttm.c --- VirtualBox-5.1.22.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
+++ VirtualBox-5.1.6/src/VBox/Additions/linux/drm/vbox_ttm.c +++ VirtualBox-5.1.22/src/VBox/Additions/linux/drm/vbox_ttm.c
@@ -229,7 +229,6 @@ static int vbox_bo_move(struct ttm_buffe @@ -231,7 +231,6 @@ static int vbox_bo_move(struct ttm_buffe
return r; return r;
} }
@ -10,10 +10,10 @@ Index: VirtualBox-5.1.6/src/VBox/Additions/linux/drm/vbox_ttm.c
static void vbox_ttm_backend_destroy(struct ttm_tt *tt) static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
{ {
ttm_tt_fini(tt); ttm_tt_fini(tt);
Index: VirtualBox-5.1.6/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c Index: VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
=================================================================== ===================================================================
--- VirtualBox-5.1.6.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c --- VirtualBox-5.1.22.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
+++ VirtualBox-5.1.6/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c +++ VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
#include <iprt/assert.h> #include <iprt/assert.h>
#include <iprt/err.h> #include <iprt/err.h>

View File

@ -1,10 +1,8 @@
Index: a/src/apps/Makefile.kmk Index: VirtualBox-5.1.22/src/apps/Makefile.kmk
=================================================================== ===================================================================
--- a/src/apps/Makefile.kmk (revision 58576) --- VirtualBox-5.1.22.orig/src/apps/Makefile.kmk
+++ b/src/apps/Makefile.kmk (working copy) +++ VirtualBox-5.1.22/src/apps/Makefile.kmk
@@ -34,7 +34,9 @@ @@ -31,5 +31,7 @@ endif
endif
endif
include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk
@ -12,10 +10,10 @@ Index: a/src/apps/Makefile.kmk
+ +
include $(FILE_KBUILD_SUB_FOOTER) include $(FILE_KBUILD_SUB_FOOTER)
Index: a/src/apps/VBoxUSB_DevRules/Makefile.kmk Index: VirtualBox-5.1.22/src/apps/VBoxUSB_DevRules/Makefile.kmk
=================================================================== ===================================================================
--- a/src/apps/VBoxUSB_DevRules/Makefile.kmk (revision 0) --- /dev/null
+++ b/src/apps/VBoxUSB_DevRules/Makefile.kmk (working copy) +++ VirtualBox-5.1.22/src/apps/VBoxUSB_DevRules/Makefile.kmk
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
+# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $ +# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $
+## @file +## @file
@ -50,21 +48,34 @@ Index: a/src/apps/VBoxUSB_DevRules/Makefile.kmk
+include $(KBUILD_PATH)/subfooter.kmk +include $(KBUILD_PATH)/subfooter.kmk
+ +
+ +
Index: a/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp Index: VirtualBox-5.1.22/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp
=================================================================== ===================================================================
--- a/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp (revision 0) --- /dev/null
+++ b/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp (working copy) +++ VirtualBox-5.1.22/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp
@@ -0,0 +1,13 @@ @@ -0,0 +1,26 @@
+#include <QtWidgets/QApplication> +#include <QtWidgets/QApplication>
+#include <QtWidgets/QMessageBox> +#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QPushButton>
+
+int main(int argc, char *argv[]) +int main(int argc, char *argv[])
+{ +{
+ QApplication app(argc, argv); + QApplication app(argc, argv);
+ QMessageBox msgBox; + QMessageBox msgBox;
+ msgBox.setWindowTitle(QObject::tr("USB Rules and Permissions !")); + QPushButton *myYesButton = msgBox.addButton("Enable", QMessageBox::YesRole);
+ msgBox.setText(QObject::tr("USB passthru opens a security hole. Please read \n\nhttps://bugzilla.novell.com/show_bug.cgi?id=664520\n\nto understand the problem. If you really want/need to use USB passthru and are willing to accept the security risk, then do nothing. To plug the security hole, remove all 'usb' lines from /etc/udev/rules.d/60-vboxdrv.rules.\n\nThis message will not be seen again!")); + QPushButton *myNoButton = msgBox.addButton("Disable", QMessageBox::NoRole);
+ int ret = msgBox.exec(); + msgBox.setWindowTitle(QObject::tr("USB Rules and Permissions !"));
+ msgBox.setText(QObject::tr("USB passthru opens a security hole. "
+ "Please read \nhttps://bugzilla.novell.com/show_bug.cgi?id=664520\n"
+ "to understand the problem.\n\nWe regard USB passthru to be extremely useful and worth the security risk. "
+ "thus the code defaults to enabling this feature. If you agree that the risk is acceptible, then click 'Enable'.\n"
+ "You will not be asked this question again when VB is updated. If you later change your mind, run 'rm ~/.vbox/*'\n\n"
+ "If you wish to disable USB passthru to plug the security hole, then click 'Disable'. "
+ "You will be asked for the system password, and /etc/udev/rules.d/60-vboxdrv.rules will be changed.\n"
+ "These changes cannot be preserved through VB updates, thus this screen will be displayed again at that time."));
+ msgBox.exec();
+ app.quit(); + app.quit();
+ return 0; + if (msgBox.clickedButton() == myYesButton)
+ return 0;
+ return 1;
+} +}
+ +

View File

@ -16,7 +16,7 @@ Index: VirtualBox-5.1.22/src/VBox/Additions/linux/installer/vboxadd.sh
### END INIT INFO ### END INIT INFO
## @todo This file duplicates a lot of script with vboxdrv.sh. When making ## @todo This file duplicates a lot of script with vboxdrv.sh. When making
@@ -108,7 +111,6 @@ fail() @@ -108,11 +111,10 @@ fail()
dev=/dev/vboxguest dev=/dev/vboxguest
userdev=/dev/vboxuser userdev=/dev/vboxuser
@ -24,6 +24,11 @@ Index: VirtualBox-5.1.22/src/VBox/Additions/linux/installer/vboxadd.sh
owner=vboxadd owner=vboxadd
group=1 group=1
-if test -r $config; then
+if [[ -r $config ]] ; then
. $config
else
fail "Configuration file $config not found"
@@ -162,12 +164,6 @@ do_vboxguest_non_udev() @@ -162,12 +164,6 @@ do_vboxguest_non_udev()
fail "Cannot create device $dev with major $maj and minor $min" fail "Cannot create device $dev with major $maj and minor $min"
} }

View File

@ -25,3 +25,251 @@ Index: VirtualBox-5.1.22/src/VBox/Devices/PC/ipxe/src/arch/i386/interface/pxe/px
} }
/* PXENV_START_UNDI /* PXENV_START_UNDI
Index: VirtualBox-5.1.22/src/VBox/Additions/common/VBoxGuest/linux/files_vboxguest
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Additions/common/VBoxGuest/linux/files_vboxguest
+++ VirtualBox-5.1.22/src/VBox/Additions/common/VBoxGuest/linux/files_vboxguest
@@ -54,6 +54,7 @@ FILES_VBOXGUEST_NOBIN=" \
${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
+ ${PATH_ROOT}/include/iprt/uint64.h=>include/iprt/uint64.h \
${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
${PATH_ROOT}/include/iprt/x86.h=>include/iprt/x86.h \
@@ -113,6 +114,7 @@ FILES_VBOXGUEST_NOBIN=" \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/qdivrem.c=>common/math/gcc/qdivrem.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/quad.h=>common/math/gcc/quad.h \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivdi3.c=>common/math/gcc/udivdi3.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivmoddi4.c=>common/math/gcc/udivmoddi4.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/umoddi3.c=>common/math/gcc/umoddi3.c \
${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp=>common/misc/RTAssertMsg1Weak.c \
${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp=>common/misc/RTAssertMsg2.c \
Index: VirtualBox-5.1.22/src/VBox/Additions/common/VBoxGuest/linux/Makefile
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Additions/common/VBoxGuest/linux/Makefile
+++ VirtualBox-5.1.22/src/VBox/Additions/common/VBoxGuest/linux/Makefile
@@ -100,6 +100,7 @@ MOD_OBJS += \
common/math/gcc/divdi3.o \
common/math/gcc/moddi3.o \
common/math/gcc/udivdi3.o \
+ common/math/gcc/udivmoddi4.o \
common/math/gcc/umoddi3.o \
common/math/gcc/qdivrem.o
endif
Index: VirtualBox-5.1.22/src/VBox/Additions/linux/sharedfolders/files_vboxsf
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Additions/linux/sharedfolders/files_vboxsf
+++ VirtualBox-5.1.22/src/VBox/Additions/linux/sharedfolders/files_vboxsf
@@ -38,6 +38,7 @@ FILES_VBOXSF_NOBIN=" \
${PATH_ROOT}/include/iprt/string.h=>include/iprt/string.h \
${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
+ ${PATH_ROOT}/include/iprt/uint64.h=>include/iprt/uint64.h \
${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
${PATH_ROOT}/include/VBox/cdefs.h=>include/VBox/cdefs.h \
@@ -73,6 +74,7 @@ FILES_VBOXSF_NOBIN=" \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/qdivrem.c=>qdivrem.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/quad.h=>quad.h \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivdi3.c=>udivdi3.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivmoddi4.c=>udivmoddi4.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/umoddi3.c=>umoddi3.c \
${PATH_ROOT}/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h=>r0drv/linux/the-linux-kernel.h \
${PATH_ROOT}/src/VBox/Additions/linux/sharedfolders/Makefile.module=>Makefile \
Index: VirtualBox-5.1.22/src/VBox/Additions/linux/sharedfolders/Makefile.module
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Additions/linux/sharedfolders/Makefile.module
+++ VirtualBox-5.1.22/src/VBox/Additions/linux/sharedfolders/Makefile.module
@@ -38,6 +38,7 @@ MOD_OBJS += \
divdi3.o \
moddi3.o \
udivdi3.o \
+ udivmoddi4.o \
umoddi3.o \
qdivrem.o
endif
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/Support/linux/files_vboxdrv
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/Support/linux/files_vboxdrv
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/Support/linux/files_vboxdrv
@@ -65,6 +65,7 @@ FILES_VBOXDRV_NOBIN=" \
${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
${PATH_ROOT}/include/iprt/uint128.h=>include/iprt/uint128.h \
+ ${PATH_ROOT}/include/iprt/uint64.h=>include/iprt/uint64.h \
${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
@@ -109,6 +110,7 @@ FILES_VBOXDRV_NOBIN=" \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/qdivrem.c=>math/gcc/qdivrem.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/quad.h=>math/gcc/quad.h \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivdi3.c=>math/gcc/udivdi3.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivmoddi4.c=>math/gcc/udivmoddi4.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/umoddi3.c=>math/gcc/umoddi3.c \
${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp=>common/misc/RTAssertMsg1Weak.c \
${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp=>common/misc/RTAssertMsg2.c \
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/Support/linux/Makefile
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/Support/linux/Makefile
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/Support/linux/Makefile
@@ -158,6 +158,7 @@ OBJS += math/gcc/divdi3.o \
math/gcc/moddi3.o \
math/gcc/qdivrem.o \
math/gcc/udivdi3.o \
+ math/gcc/udivmoddi4.o \
math/gcc/divdi3.o \
math/gcc/umoddi3.o
endif
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetAdp/linux/files_vboxnetadp
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/VBoxNetAdp/linux/files_vboxnetadp
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetAdp/linux/files_vboxnetadp
@@ -49,6 +49,7 @@ VBOX_VBOXNETADP_SOURCES=" \
${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
+ ${PATH_ROOT}/include/iprt/uint64.h=>include/iprt/uint64.h \
${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
@@ -70,6 +71,7 @@ VBOX_VBOXNETADP_SOURCES=" \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/qdivrem.c=>math/gcc/qdivrem.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/quad.h=>math/gcc/quad.h \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivdi3.c=>math/gcc/udivdi3.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivmoddi4.c=>math/gcc/udivmoddi4.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/umoddi3.c=>math/gcc/umoddi3.c \
${PATH_ROOT}/src/VBox/Runtime/common/string/strformat.cpp=>common/string/strformat.c \
${PATH_ROOT}/src/VBox/Runtime/common/string/strformatrt.cpp=>common/string/strformatrt.c \
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetAdp/linux/Makefile
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/VBoxNetAdp/linux/Makefile
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetAdp/linux/Makefile
@@ -68,6 +68,7 @@ OBJS += math/gcc/divdi3.o \
math/gcc/moddi3.o \
math/gcc/qdivrem.o \
math/gcc/udivdi3.o \
+ math/gcc/udivmoddi4.o \
math/gcc/divdi3.o \
math/gcc/umoddi3.o
endif
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetFlt/linux/files_vboxnetflt
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/files_vboxnetflt
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetFlt/linux/files_vboxnetflt
@@ -49,6 +49,7 @@ VBOX_VBOXNETFLT_SOURCES=" \
${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
+ ${PATH_ROOT}/include/iprt/uint64.h=>include/iprt/uint64.h \
${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
@@ -77,6 +78,7 @@ VBOX_VBOXNETFLT_SOURCES=" \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/qdivrem.c=>math/gcc/qdivrem.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/quad.h=>math/gcc/quad.h \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivdi3.c=>math/gcc/udivdi3.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivmoddi4.c=>math/gcc/udivmoddi4.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/umoddi3.c=>math/gcc/umoddi3.c \
${PATH_ROOT}/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h=>r0drv/linux/the-linux-kernel.h \
${PATH_OUT}/version-generated.h=>version-generated.h \
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetFlt/linux/Makefile
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/Makefile
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxNetFlt/linux/Makefile
@@ -72,6 +72,7 @@ OBJS += math/gcc/divdi3.o \
math/gcc/moddi3.o \
math/gcc/qdivrem.o \
math/gcc/udivdi3.o \
+ math/gcc/udivmoddi4.o \
math/gcc/divdi3.o \
math/gcc/umoddi3.o
endif
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxPci/linux/files_vboxpci
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/VBoxPci/linux/files_vboxpci
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxPci/linux/files_vboxpci
@@ -48,6 +48,7 @@ VBOX_VBOXPCI_SOURCES=" \
${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
+ ${PATH_ROOT}/include/iprt/uint64.h=>include/iprt/uint64.h \
${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
@@ -75,6 +76,7 @@ VBOX_VBOXPCI_SOURCES=" \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/qdivrem.c=>math/gcc/qdivrem.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/quad.h=>math/gcc/quad.h \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivdi3.c=>math/gcc/udivdi3.c \
+ ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/udivmoddi4.c=>math/gcc/udivmoddi4.c \
${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/umoddi3.c=>math/gcc/umoddi3.c \
${PATH_ROOT}/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h=>r0drv/linux/the-linux-kernel.h \
${PATH_OUT}/version-generated.h=>version-generated.h \
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxPci/linux/Makefile
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/VBoxPci/linux/Makefile
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/VBoxPci/linux/Makefile
@@ -72,6 +72,7 @@ OBJS += math/gcc/divdi3.o \
math/gcc/moddi3.o \
math/gcc/qdivrem.o \
math/gcc/udivdi3.o \
+ math/gcc/udivmoddi4.o \
math/gcc/divdi3.o \
math/gcc/umoddi3.o
endif
Index: VirtualBox-5.1.22/src/VBox/Runtime/common/math/gcc/udivmoddi4.c
===================================================================
--- /dev/null
+++ VirtualBox-5.1.22/src/VBox/Runtime/common/math/gcc/udivmoddi4.c
@@ -0,0 +1,51 @@
+/* $Id$ */
+/** @file
+ * IPRT - __udivmoddi4 implementation
+ */
+
+/*
+ * Copyright (C) 2006-2016 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.
+ *
+ * The contents of this file may alternatively be used under the terms
+ * of the Common Development and Distribution License Version 1.0
+ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+ * VirtualBox OSE distribution, in which case the provisions of the
+ * CDDL are applicable instead of those of the GPL.
+ *
+ * You may elect to license modified versions of this file under the
+ * terms and conditions of either the GPL or the CDDL or both.
+ */
+
+#include <iprt/stdint.h>
+#include <iprt/uint64.h>
+
+/**
+ * __udivmoddi4() implementation to satisfy external references from 32-bit
+ * code generated by gcc-7 or later.
+ *
+ * @param u64A The divident value.
+ * @param u64B The divisor value.
+ * @param pu64R A pointer to the reminder. May be NULL.
+ * @returns u64A / u64B
+ */
+uint64_t __udivmoddi4(uint64_t u64A, uint64_t u64B, uint64_t *pu64R)
+{
+ RTUINT64U Divident;
+ RTUINT64U Divisor;
+ RTUINT64U Quotient;
+ RTUINT64U Reminder;
+ Divident.u = u64A;
+ Divisor.u = u64B;
+ RTUInt64DivRem(&Quotient, &Reminder, &Divident, &Divisor);
+ if (pu64R)
+ *pu64R = Reminder.u;
+ return Quotient.u;
+}

View File

@ -0,0 +1,108 @@
Index: VirtualBox-5.1.22/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
+++ VirtualBox-5.1.22/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
@@ -1397,7 +1397,7 @@ RTDECL(int) SUPR0Printf(const char *pszF
SUPR0DECL(uint32_t) SUPR0GetKernelFeatures(void)
{
uint32_t fFlags = 0;
-#ifdef CONFIG_PAX_KERNEXEC
+#if defined(CONFIG_PAX_KERNEXEC) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
fFlags |= SUPKERNELFEATURES_GDT_READ_ONLY;
#endif
#if defined(VBOX_STRICT) || defined(VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV)
Index: VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
+++ VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
@@ -36,6 +36,9 @@
#include <iprt/err.h>
#include "r0drv/alloc-r0drv.h"
#include <linux/kmemleak.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+#include <asm/set_memory.h>
+#endif
#if (defined(RT_ARCH_AMD64) || defined(DOXYGEN_RUNNING)) && !defined(RTMEMALLOC_EXEC_HEAP)
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
Index: VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
+++ VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
@@ -899,6 +899,9 @@ static struct page *rtR0MemObjLinuxVirtT
unsigned long pfn;
struct page *pPage;
pte_t *pEntry;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+ p4d_t p4d;
+#endif
union
{
pgd_t Global;
@@ -917,9 +920,18 @@ static struct page *rtR0MemObjLinuxVirtT
u.Global = *pgd_offset(current->active_mm, ulAddr);
if (RT_UNLIKELY(pgd_none(u.Global)))
return NULL;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+ p4d = *p4d_offset(&u.Global, ulAddr);
+ if (RT_UNLIKELY(p4d_none(p4d) || p4d_large(p4d) || !p4d_present(p4d)))
+ return NULL;
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+ u.Upper = *pud_offset(&p4d, ulAddr);
+#else
u.Upper = *pud_offset(&u.Global, ulAddr);
+#endif
if (RT_UNLIKELY(pud_none(u.Upper)))
return NULL;
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
@@ -1463,13 +1475,23 @@ static int rtR0MemObjLinuxFixPte(struct
{
int rc = -ENOMEM;
pgd_t *pgd;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+ p4d_t *p4d;
+#endif
spin_lock(&mm->page_table_lock);
pgd = pgd_offset(mm, ulAddr);
if (!pgd_none(*pgd) && !pgd_bad(*pgd))
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+ p4d = p4d_offset(*pgd, ulAddr);
+ if (p4d_none(*p4d))
+ goto exit;
+ pmd_t *pmd = pmd_offset(p4d, ulAddr);
+#else
pmd_t *pmd = pmd_offset(pgd, ulAddr);
+#endif
if (!pmd_none(*pmd))
{
pte_t *ptep = pte_offset_map(pmd, ulAddr);
@@ -1487,6 +1509,9 @@ static int rtR0MemObjLinuxFixPte(struct
}
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+exit:
+#endif
spin_unlock(&mm->page_table_lock);
return rc;
}
Index: VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
===================================================================
--- VirtualBox-5.1.22.orig/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
+++ VirtualBox-5.1.22/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
@@ -320,6 +320,9 @@ DECLINLINE(unsigned long) msecs_to_jiffi
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+#include <asm/cacheflush.h>
+#endif
# define MY_SET_PAGES_EXEC(pPages, cPages) set_pages_x(pPages, cPages)
# define MY_SET_PAGES_NOEXEC(pPages, cPages) set_pages_nx(pPages, cPages)
#else

View File

@ -5,15 +5,22 @@
# #
# This script is part of the openSUSE VirtualBox package # This script is part of the openSUSE VirtualBox package
# #
SOURCE="/usr/src/kernel-modules/virtualbox" SOURCE="/usr/src/kernel-modules/virtualbox/src"
LOGFILE="/var/log/virtualbox.log" LOGFILE="/var/log/virtualbox.log"
INCLUDE="/lib/modules/`uname -r`/build/include" INCLUDE="/lib/modules/`uname -r`/build/include"
#
# Test if vboxpci module loaded. If it is, skip everything else
loaded=$(lsmod | grep vboxpci)
if [ -n "$loaded" ] ; then
echo "Kernel modules available - exiting..."
exit 0
fi
#
# Force installation of VB host sources. Zypper will install all the prerequisies # Force installation of VB host sources. Zypper will install all the prerequisies
echo "Installing all required packages..." echo "Installing all required packages..."
killproc PackageKit killproc PackageKit
zypper install -y virtualbox-host-source > /dev/null 2>&1 zypper install -y virtualbox-host-source > /dev/null 2>&1
if [ ! $? ] ; then if [ "$?" -ne 0 ] ; then
echo "Installation of required packages failed." echo "Installation of required packages failed."
echo "Use 'sudo zypper install virtualbox-host-source' to see the reason." echo "Use 'sudo zypper install virtualbox-host-source' to see the reason."
exit 1 exit 1
@ -22,7 +29,7 @@ fi
pushd $SOURCE > /dev/null 2>&1 pushd $SOURCE > /dev/null 2>&1
echo "Building kernel modules..." echo "Building kernel modules..."
make > $LOGFILE 2>&1 make > $LOGFILE 2>&1
if [ ! $? ] ; then if [ "$?" -ne 0 ] ; then
echo "" echo ""
echo "Build of VirtualBox host kernel modules failed." echo "Build of VirtualBox host kernel modules failed."
echo "Look at $LOGFILE to find reasons." echo "Look at $LOGFILE to find reasons."
@ -32,7 +39,7 @@ else
echo "Kernel modules built correctly. They will now be installed." echo "Kernel modules built correctly. They will now be installed."
fi fi
make install >> $LOGFILE 2>&1 make install >> $LOGFILE 2>&1
if [ ! $? ] ; then if [ "$?" -ne 0 ] ; then
echo "" echo ""
echo "Installation of VirtualBox host kernel modules failed." echo "Installation of VirtualBox host kernel modules failed."
echo "Look at $LOGFILE to find reasons." echo "Look at $LOGFILE to find reasons."

View File

@ -5,15 +5,21 @@
# #
# This script is part of the openSUSE VirtualBox package # This script is part of the openSUSE VirtualBox package
# #
SOURCE="/usr/src/kernel-modules/virtualbox" SOURCE="/usr/src/kernel-modules"
LOGFILE="/var/log/virtualbox.log" LOGFILE="/var/log/virtualbox.log"
INCLUDE="/lib/modules/`uname -r`/build/include" INCLUDE="/lib/modules/`uname -r`/build/include"
#
# Test if vboxsf module loaded. If it is, skip everything else
loaded=$(lsmod | grep vboxsf)
if [ -n "$loaded" ] ; then
echo "Kernel modules available - exiting..."
exit 0
fi
# Force installation of VB guest sources. Zypper will install all the prerequisies # Force installation of VB guest sources. Zypper will install all the prerequisies
echo "Installing all required packages..." echo "Installing all required packages..."
killproc PackageKit killproc PackageKit
zypper install -y virtualbox-guest-source > /dev/null 2>&1 zypper install -y virtualbox-guest-source > /dev/null 2>&1
if [ ! $? ] ; then if [ "$?" -ne 0 ] ; then
echo "Installation of required packages failed." echo "Installation of required packages failed."
echo "Use 'sudo zypper install virtualbox-guest-source' to see the reason." echo "Use 'sudo zypper install virtualbox-guest-source' to see the reason."
exit 1 exit 1
@ -21,10 +27,10 @@ fi
# Prerequisites are available, start build # Prerequisites are available, start build
pushd $SOURCE > /dev/null 2>&1 pushd $SOURCE > /dev/null 2>&1
echo "Building kernel modules..." echo "Building kernel modules..."
tar jxf guest_src.tar.bz2 > /dev/null 2>&1 tar jxf addition/guest_src.tar.bz2 > /dev/null 2>&1
cd additions/src cd additions/src
make > $LOGFILE 2>&1 make > $LOGFILE 2>&1
if [ ! $? ] ; then if [ "$?" -ne 0 ] ; then
echo "" echo ""
echo "Build of VirtualBox guest kernel modules failed." echo "Build of VirtualBox guest kernel modules failed."
echo "Look at $LOGFILE to find reasons." echo "Look at $LOGFILE to find reasons."
@ -34,7 +40,7 @@ else
echo "Kernel modules built correctly. They will now be installed." echo "Kernel modules built correctly. They will now be installed."
fi fi
make install >> $LOGFILE 2>&1 make install >> $LOGFILE 2>&1
if [ ! $? ] ; then if [ "$?" -ne 0 ] ; then
echo "" echo ""
echo "Installation of VirtualBox guest kernel modules failed." echo "Installation of VirtualBox guest kernel modules failed."
echo "Look at $LOGFILE to find reasons." echo "Look at $LOGFILE to find reasons."

View File

@ -1,9 +1,58 @@
#!/bin/bash #!/bin/bash
export QT_NO_KDE_INTEGRATION=1 export QT_NO_KDE_INTEGRATION=1
# make certain that the user/group combination is valid
/usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit /usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit
if [ ! -f ~/.vbox/message_out ] ; then #
# Handle the issue regarding USB passthru
# The following conditions apply:
# 1. If ~/.vbox/enable exists, the user accepts the security risk.
# 2. If ~/.vbox/disable exists, the user does not accept the risk. That file will contain the inode of /etc/udev/rules.d/60-vboxdrv.rules.
# When that changes, the VBoxUSB_DevRules will again be displayed as that means that VB has been reloaded.
#
devrules()
{
/usr/lib/virtualbox/VBoxUSB_DevRules /usr/lib/virtualbox/VBoxUSB_DevRules
mkdir -p ~/.vbox/ if [ $? -eq 0 ] ; then
touch ~/.vbox/message_out # User accepts the risk
touch ~/.vbox/enable
rm -f ~/.vbox/disable
else
# User declines the risk - save the inode
echo "" > ~/.vbox/disable
rm -f ~/.vbox/enable
fi
}
# Start of main routine
#
# Ensure that ~/.vbox exists
mkdir -p ~/.vbox/
# Get the inode for /etc/udev/rules.d/60-vboxdrv.rules
INODE=$(stat /etc/udev/rules.d/60-vboxdrv.rules | grep Inode | cut -d' ' -f3)
if [ ! -f ~/.vbox/enable ] && [ ! -f ~/.vbox/disable ] ; then
# Neither file exists - find what the user wants
devrules
fi fi
# Get the original Inode if it exists
if [ -f ~/.vbox/disable ] ; then
read LINE < ~/.vbox/disable
else
LINE=" "
fi
# If user originally declined, make certain that /etc/udev/rules.d/60-vboxdrv.rules has not been changed
if [ -f ~/.vbox/disable ] && [ "$LINE" != "$INODE" ] && [ "$LINE" != "" ] ; then
# disable is selected and the Inode has changed - ask again
devrules
fi
if [ -f ~/.vbox/disable ] ; then
echo $INODE > ~/.vbox/disable
if [ "$LINE" != "$INODE" ] ; then
if [ -f /usr/bin/kdesu ] ; then
kdesu /sbin/vbox-fix-usb-rules.sh
fi
if [ -f /usr/bin/gnomesu ] ; then
gnomesu /sbin/vbox-fix-usb-rules.sh
fi
fi
fi
# Now run the VB GUI
LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox $@ LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox $@

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Fri Jun 30 00:50:42 UTC 2017 - Larry.Finger@lwfinger.net
- Fix missing global for 32-bit version with gcc7. (bsc#1046571).
Fix missing frame buffer cleanup - private communication from Oracle - adds file "fix_KMS_support.patch".
-------------------------------------------------------------------
Sun Jun 25 17:09:01 UTC 2017 - Larry.Finger@lwfinger.net
- Fix logic error in scripts to build kernel modules locally - see bnc#1042726.
Fix "requires" for net-tools-deprecated so that Leap 42.3 will build.
Fix missing /media for Leap 42.3.
Fix typo in above changes.
-------------------------------------------------------------------
Sun Jun 25 00:20:08 UTC 2017 - Larry.Finger@lwfinger.net
- Fix some typos in the various service files as noted in boo#1044931.
With these fixes, TW guests start correctly. In addition, the /sbin/vboxconfig (for hosts) and the
/sbin/vboxguestconfig (for guests) work correctly.
-------------------------------------------------------------------
Wed Jun 21 16:46:48 UTC 2017 - Larry.Finger@lwfinger.net
- Now that kernel:HEAD:standard has changed to version 4.12.0-rcX, the VB drivers need some changes for new API's.
File "vbox_fix_for_kernel_4.12.patch" is added.
The added installation of "net-tools-deprecated" broke builds for Leap 42.3. That change is now conditional on building for Factory.
-------------------------------------------------------------------
Sat Jun 10 13:19:05 UTC 2017 - Larry.Finger@lwfinger.net
- Add installation of package "net-tools-deprecated" as requested in boo#1027742.
-------------------------------------------------------------------
Thu Jun 8 17:37:35 UTC 2017 - Larry.Finger@lwfinger.net
- Revise warning screen concerning USB passthru - fixes bnc#1041137.
USB passthru opens a security hole, yet it is so valuable that many users want the feature, thus it is our default.
Previously, a user needed to edit a udev rule to disable passthru. The bad part was that an update of VB changed the
rule back to allow passthru without any notification. These changes modify the popup to allow the user to accept or decline
passthru. If the user declines, then the root password is requested and the udev rule is modified. As these modifications will be
lost with the next VB update, the inode of the udev rule is kept. If the user has previously declined and the inode has changed,
the popup will show the next time VB is started. File "fix_usb_rules.sh" is added.
------------------------------------------------------------------- -------------------------------------------------------------------
Sun May 21 13:28:15 UTC 2017 - hpj@urpla.net Sun May 21 13:28:15 UTC 2017 - hpj@urpla.net

View File

@ -51,6 +51,7 @@ Source14: vboxdrv.service
Source15: vboxadd-service.service Source15: vboxadd-service.service
Source16: vboxconfig.sh Source16: vboxconfig.sh
Source17: vboxguestconfig.sh Source17: vboxguestconfig.sh
Source18: fix_usb_rules.sh
Source98: %{name}-rpmlintrc Source98: %{name}-rpmlintrc
Source99: %{name}-patch-source.sh Source99: %{name}-patch-source.sh
#rework init scripts to fit suse needs #rework init scripts to fit suse needs
@ -100,6 +101,10 @@ Patch114: vbox_fix_42.3_api.patch
Patch115: vbox_fix_for_gcc7.patch Patch115: vbox_fix_for_gcc7.patch
# Fix for missing include needed for server 1.19 # Fix for missing include needed for server 1.19
Patch116: Fix_for_server_1.19.patch Patch116: Fix_for_server_1.19.patch
# Fix for kernel 4.12 API changes
Patch117: vbox_fix_for_kernel_4.12.patch
# Fix for missing cleanup in KMS support
Patch118: fix_KMS_support.patch
# #
BuildRequires: LibVNCServer-devel BuildRequires: LibVNCServer-devel
BuildRequires: SDL-devel BuildRequires: SDL-devel
@ -172,6 +177,9 @@ BuildRequires: pkgconfig(xrandr)
Requires: %{name}-host-kmp = %{version} Requires: %{name}-host-kmp = %{version}
Requires(post): sysvinit(syslog) Requires(post): sysvinit(syslog)
Requires(pre): permissions Requires(pre): permissions
%if ! 0%{?suse_version} > 1325
Requires(pre): net-tools-deprecated
%endif
Requires(pre): pwdutils Requires(pre): pwdutils
Requires(pre): %insserv_prereq Requires(pre): %insserv_prereq
Requires(pre): %fillup_prereq Requires(pre): %fillup_prereq
@ -268,6 +276,9 @@ Supplements: modalias(pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
Provides: %{name}-ose-guest-tools = %{version} Provides: %{name}-ose-guest-tools = %{version}
Obsoletes: %{name}-ose-guest-tools < %{version} Obsoletes: %{name}-ose-guest-tools < %{version}
Requires(pre): %insserv_prereq Requires(pre): %insserv_prereq
%if ! 0%{?suse_version} > 1325
Requires(pre): net-tools-deprecated
%endif
%description guest-tools %description guest-tools
VirtualBox guest addition tools. VirtualBox guest addition tools.
@ -374,6 +385,8 @@ as an "extpack" for VirtualBox. The implementation is licensed under GPL.
%endif %endif
%patch115 -p1 %patch115 -p1
%patch116 -p1 %patch116 -p1
%patch117 -p1
%patch118 -p1
#copy user manual #copy user manual
cp %{SOURCE1} UserManual.pdf cp %{SOURCE1} UserManual.pdf
@ -540,7 +553,7 @@ ln -s %{_sysconfdir}/init.d/vboxadd-service %{buildroot}%{_sbindir}/rcvboxadd-se
# udev rule for guest (virtualbox-guest-tools) # udev rule for guest (virtualbox-guest-tools)
install -m 644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/60-vboxguest.rules install -m 644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/60-vboxguest.rules
# /media is used for auto-mounting of shared folders # /media is used for auto-mounting of shared folders
%if 0%{?suse_version} > 1310 %if 0%{?suse_version} > 1320 || 0%{?sle_version} == 120300
install -d -m 755 %{buildroot}/media install -d -m 755 %{buildroot}/media
%endif %endif
# #
@ -620,7 +633,6 @@ install -m 644 out/linux.*/release/bin/VBox.png %{buildroot}%{_datadir}/pixmaps/
install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/default/virtualbox install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/default/virtualbox
#install wrapper script #install wrapper script
install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
# modify and install the vboxdrv init script # modify and install the vboxdrv init script
sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \ sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \
src/VBox/Installer/linux/vboxdrv.sh src/VBox/Installer/linux/vboxdrv.sh
@ -628,14 +640,15 @@ install -m 744 src/VBox/Installer/linux/vboxdrv.sh %{buildroot}%{_sysconfdir}/in
ln -s %{_sysconfdir}/init.d/vboxdrv %{buildroot}%{_sbindir}/rcvboxdrv ln -s %{_sysconfdir}/init.d/vboxdrv %{buildroot}%{_sbindir}/rcvboxdrv
# Service files to load kernel modules on boot # Service files to load kernel modules on boot
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service install -m 0755 %{SOURCE16} %{buildroot}/sbin/vboxconfig
install -m 0644 %{SOURCE16} %{buildroot}/sbin/vboxconfig install -m 0755 %{SOURCE17} %{buildroot}/sbin/vboxguestconfig
install -m 0644 %{SOURCE17} %{buildroot}/sbin/vboxguestconfig install -m 0755 %{SOURCE18} %{buildroot}/sbin/vbox-fix-usb-rules.sh
# Init script to start virtual boxes during boot # Init script to start virtual boxes during boot
install -m 755 %{SOURCE12} %{buildroot}%{_sysconfdir}/init.d/vboxes install -m 755 %{SOURCE12} %{buildroot}%{_sysconfdir}/init.d/vboxes
ln -s %{_sysconfdir}/init.d/vboxes %{buildroot}%{_sbindir}/rcvboxes ln -s %{_sysconfdir}/init.d/vboxes %{buildroot}%{_sbindir}/rcvboxes
ln -sf %{_unitdir}/vboxdrv.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service
ln -sf %{_unitdir}/vboxadd-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service
# sysconfig file intended for vboxes script # sysconfig file intended for vboxes script
install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates
install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox
@ -881,6 +894,8 @@ export DISABLE_RESTART_ON_UPDATE=yes
%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VirtualBox %verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VirtualBox
#wrapper script is in bindir #wrapper script is in bindir
%attr(0755,root,root) %{_bindir}/VirtualBox %attr(0755,root,root) %{_bindir}/VirtualBox
#rules fixing script is in /sbin
%attr(0755,root,root) /sbin/vbox-fix-usb-rules.sh
#ldd shows libQt* dependency #ldd shows libQt* dependency
%{_vbox_instdir}/VBoxTestOGL %{_vbox_instdir}/VBoxTestOGL
#qm's translations #qm's translations
@ -915,7 +930,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_unitdir}/multi-user.target.wants/vboxadd-service.service %{_unitdir}/multi-user.target.wants/vboxadd-service.service
%{_sbindir}/rcvboxadd %{_sbindir}/rcvboxadd
%{_sbindir}/rcvboxadd-service %{_sbindir}/rcvboxadd-service
%if 0%{?suse_version} > 1310 %if 0%{?suse_version} > 1320 || 0%{?sle_version} == 120300
%dir /media %dir /media
%endif %endif