1
0
forked from jengelh/virtualbox

23 Commits

Author SHA256 Message Date
1c99f0ba17 virtualbox 7.2.4 2025-10-22 16:42:32 +02:00
f3a90f09e1 Whitespace managemenet
Consistently use tab for logical levels.
2025-09-30 11:43:01 +02:00
fc076a0e5d Make build recipe sh-compatible
pushd is a bash-ism, out with it.
2025-09-30 11:43:00 +02:00
20d3164f42 Drop old distro logic 2025-09-30 11:43:00 +02:00
b5ad9bc3c6 Add curl-8.16.patch 2025-09-11 17:03:51 +02:00
e94f7a20d6 Disable python bindings for Leap 16.0
python3.13 is not supported by the current virtualbox version so we
can't build the bindings.
2025-08-26 12:29:17 +02:00
abbfbbe45c virtualbox 7.2.0 2025-08-15 16:48:07 +02:00
070bdf0829 virtualbox 7.1.12 2025-07-25 11:16:45 +02:00
Jiri Slaby
c76e78822d fix 6.16 2025-06-11 09:18:48 +02:00
652f6fa07d virtualbox 7.1.10 2025-06-04 23:40:18 +02:00
Martin Jambor
7e94d2ce18 - Adjust gentoo-C23.patch to fix building the kmp flavor which was
broken by the previous patch by keeping the bool typedef when
  building a kmp. [boo#1242085]
2025-06-03 18:37:28 +02:00
Martin Jambor
55b005b5e1 Fix building with GCC 15 [boo#1242085] 2025-05-27 17:24:09 +02:00
1884bc52cd virtualbox 7.1.8 2025-04-16 16:10:12 +02:00
Jiri Slaby
2fd8480f9b build against kernel 6.15 2025-04-10 08:24:39 +02:00
Jiri Slaby
d15b82c929 add tpxz to LFS files too 2025-04-09 09:30:02 +02:00
99680a1c79 Add logic to do a Python-less build 2025-03-31 13:09:47 +02:00
324117a110 Delete kernel-6-13.patch 2025-03-31 12:44:49 +02:00
1738776d98 virtualbox 7.1.6a 2025-03-28 11:07:32 +01:00
6f94c78476 virtualbox 7.1.6 2025-03-28 10:47:34 +01:00
fad76b07e8 Set +x bit on .sh 2025-03-28 10:45:59 +01:00
Jiri Slaby
4b46adddab Fix for kernel 6.14 2025-03-28 07:47:54 +01:00
c69449fd8a Use specific python version, not python3 2025-02-24 11:53:00 +01:00
26a839baae Update findings for newer-pythons.patch 2025-02-24 11:52:47 +01:00
19 changed files with 392 additions and 178 deletions

1
.gitattributes vendored
View File

@@ -15,6 +15,7 @@
*.tbz filter=lfs diff=lfs merge=lfs -text *.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text *.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text *.tgz filter=lfs diff=lfs merge=lfs -text
*.tpxz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text *.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text *.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text *.whl filter=lfs diff=lfs merge=lfs -text

Binary file not shown.

BIN
VirtualBox-7.2.4-patched.tpxz LFS Normal file

Binary file not shown.

59
curl-8.16.patch Normal file
View File

@@ -0,0 +1,59 @@
References: https://bugzilla.suse.com/1249448
From: Gianfranco Costamagna <locutusofborg@debian.org>
From: Jan Engelhardt <ej@inai.de>
Date: 2025-09-09 12:22:00 +0200
Subject: [PATCH] Fix build with new curl version
References: https://github.com/curl/curl/pull/18054
References: https://bugs.debian.org/1114436
References: https://salsa.debian.org/pkg-virtualbox-team/virtualbox/-/commit/dbf9a6ef75380ebd2705df0198c6ac8073d0b4cb#f28811e0ca565091f1d341d90b8ba208319492f5
References: https://bugzilla.suse.com/1249448
curl 8.16 changed CURLPROXY_* definitions from enum{int} to long.
C++ has more rules than C, preventing some implicit conversions
involving enums. Debian patch changed to instead use an explicit
conversion. [-jengelh]
http-curl.cpp: In function int rtHttpUpdateAutomaticProxyDisable(PRTHTTPINTERNAL):
http-curl.cpp:702:27: error: invalid conversion from long int to curl_proxytype [-fpermissive]
702 | pThis->enmProxyType = CURLPROXY_HTTP;
diff --git a/src/VBox/Runtime/generic/http-curl.cpp b/src/VBox/Runtime/generic/http-curl.cpp
index 4cf51049d..a76bf14f8 100644
--- a/src/VBox/Runtime/generic/http-curl.cpp
+++ b/src/VBox/Runtime/generic/http-curl.cpp
@@ -188,7 +188,7 @@ typedef struct RTHTTPINTERNAL
/** Proxy port number (UINT32_MAX if not specified). */
uint32_t uProxyPort;
/** The proxy type (CURLPROXY_HTTP, CURLPROXY_SOCKS5, ++). */
- curl_proxytype enmProxyType;
+ long enmProxyType;
/** Proxy username (RTStrFree). */
char *pszProxyUsername;
/** Proxy password (RTStrFree). */
@@ -591,7 +591,7 @@ RTR3DECL(int) RTHttpUseSystemProxySettings(RTHTTP hHttp)
* @param pszUsername The proxy username, or NULL if none.
* @param pszPassword The proxy password, or NULL if none.
*/
-static int rtHttpUpdateProxyConfig(PRTHTTPINTERNAL pThis, curl_proxytype enmProxyType, const char *pszHost,
+static int rtHttpUpdateProxyConfig(PRTHTTPINTERNAL pThis, long enmProxyType, const char *pszHost,
uint32_t uPort, const char *pszUsername, const char *pszPassword)
{
CURLcode rcCurl;
@@ -871,7 +871,7 @@ static int rtHttpConfigureProxyFromUrl(PRTHTTPINTERNAL pThis, const char *pszPro
char *pszPassword = RTUriParsedAuthorityPassword(pszProxyUrl, &Parsed);
uint32_t uProxyPort = RTUriParsedAuthorityPort(pszProxyUrl, &Parsed);
bool fUnknownProxyType = false;
- curl_proxytype enmProxyType;
+ long enmProxyType;
if (RTUriIsSchemeMatch(pszProxyUrl, "http"))
{
enmProxyType = CURLPROXY_HTTP;
@@ -1352,7 +1352,7 @@ static int rtHttpDarwinTryConfigProxy(PRTHTTPINTERNAL pThis, CFDictionaryRef hDi
* Determine the proxy type (not entirely sure about type == proxy type and
* not scheme/protocol)...
*/
- curl_proxytype enmProxyType = CURLPROXY_HTTP;
+ long enmProxyType = (long)CURLPROXY_HTTP;
uint32_t uDefaultProxyPort = 8080;
if ( CFEqual(hStrProxyType, kCFProxyTypeHTTP)
|| CFEqual(hStrProxyType, kCFProxyTypeHTTPS))

View File

@@ -1,8 +1,13 @@
Index: VirtualBox-7.0.20/configure ---
configure | 17 ++++++-----------
src/VBox/Frontends/VBoxSDL/Makefile.kmk | 8 ++++----
2 files changed, 10 insertions(+), 15 deletions(-)
Index: VirtualBox-7.2.0/configure
=================================================================== ===================================================================
--- VirtualBox-7.0.20.orig/configure --- VirtualBox-7.2.0.orig/configure
+++ VirtualBox-7.0.20/configure +++ VirtualBox-7.2.0/configure
@@ -1186,21 +1186,19 @@ check_sdl() @@ -1150,21 +1150,19 @@ check_sdl()
fail fail
fi fi
else else
@@ -27,7 +32,7 @@ Index: VirtualBox-7.0.20/configure
#undef main #undef main
extern "C" int main(int argc, char** argv) extern "C" int main(int argc, char** argv)
{ {
@@ -1216,7 +1214,7 @@ extern "C" int main(int argc, char** arg @@ -1180,7 +1178,7 @@ extern "C" int main(int argc, char** arg
} }
EOF EOF
[ -n "$INCSDL" ] && I_INCSDL=`prefix_I "$INCSDL"` [ -n "$INCSDL" ] && I_INCSDL=`prefix_I "$INCSDL"`
@@ -36,7 +41,7 @@ Index: VirtualBox-7.0.20/configure
if test_execute; then if test_execute; then
cnf_append "LIB_SDK_LIBSDL_SDL" "`strip_l "$LIBSDL"`" cnf_append "LIB_SDK_LIBSDL_SDL" "`strip_l "$LIBSDL"`"
cnf_append "SDK_LIBSDL_LIBPATH" "`strip_L "$LIBSDL"`" cnf_append "SDK_LIBSDL_LIBPATH" "`strip_L "$LIBSDL"`"
@@ -3010,11 +3008,8 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then @@ -2960,11 +2958,8 @@ if [ $ONLY_ADDITIONS -eq 0 ]; then
[ $WITH_LIBLZMA -eq 1 ] && check_liblzma [ $WITH_LIBLZMA -eq 1 ] && check_liblzma
[ "$OS" != "darwin" ] && check_png [ "$OS" != "darwin" ] && check_png
[ $OSE -eq 0 -a "$OS" = "linux" ] && check_pam [ $OSE -eq 0 -a "$OS" = "linux" ] && check_pam
@@ -50,20 +55,20 @@ Index: VirtualBox-7.0.20/configure
[ $WITH_SDL_TTF -eq 1 -a $OSE -eq 0 ] && check_sdl_ttf [ $WITH_SDL_TTF -eq 1 -a $OSE -eq 0 ] && check_sdl_ttf
[ $WITH_X11 -eq 1 ] && check_x [ $WITH_X11 -eq 1 ] && check_x
# TODO check for xcomposite-dev (X11/extensions/Xcomposite.h, additions only) # TODO check for xcomposite-dev (X11/extensions/Xcomposite.h, additions only)
Index: VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/Makefile.kmk Index: VirtualBox-7.2.0/src/VBox/Frontends/VBoxSDL/Makefile.kmk
=================================================================== ===================================================================
--- VirtualBox-7.0.20.orig/src/VBox/Frontends/VBoxSDL/Makefile.kmk --- VirtualBox-7.2.0.orig/src/VBox/Frontends/VBoxSDL/Makefile.kmk
+++ VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/Makefile.kmk +++ VirtualBox-7.2.0/src/VBox/Frontends/VBoxSDL/Makefile.kmk
@@ -51,7 +51,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K @@ -51,7 +51,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
PROGRAMS += VBoxSDL PROGRAMS += VBoxSDL
endif endif
VBoxSDL_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBoxMainClientDll,VBoxMainClientExe) VBoxSDL_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBoxMainClientDll,VBoxMainClientSignedExe)
- VBoxSDL_SDKS = LIBSDL2 - VBoxSDL_SDKS = LIBSDL2
+ VBoxSDL_SDKS = LIBSDL + VBoxSDL_SDKS = LIBSDL
VBoxSDL_SOURCES = \ VBoxSDL_SOURCES = \
VBoxSDL.cpp \ VBoxSDL.cpp \
Framebuffer.cpp \ Framebuffer.cpp \
@@ -81,7 +81,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K @@ -78,7 +78,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
endif endif
ifn1of ($(KBUILD_TARGET), solaris) # Probably wrong with SDL2 ifn1of ($(KBUILD_TARGET), solaris) # Probably wrong with SDL2
VBoxSDL_LIBS = \ VBoxSDL_LIBS = \
@@ -72,7 +77,7 @@ Index: VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/Makefile.kmk
endif endif
if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11 if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
VBoxSDL_LIBS += \ VBoxSDL_LIBS += \
@@ -121,7 +121,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K @@ -116,7 +116,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
if 0 if 0
PROGRAMS += tstSDL PROGRAMS += tstSDL
tstSDL_TEMPLATE = VBoxR3TstExe tstSDL_TEMPLATE = VBoxR3TstExe
@@ -81,7 +86,7 @@ Index: VirtualBox-7.0.20/src/VBox/Frontends/VBoxSDL/Makefile.kmk
tstSDL_INST = $(INST_TESTCASE) tstSDL_INST = $(INST_TESTCASE)
tstSDL_SOURCES = \ tstSDL_SOURCES = \
VBoxSDLTest.cpp VBoxSDLTest.cpp
@@ -138,7 +138,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K @@ -131,7 +131,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(K
$(LIB_RUNTIME) $(LIB_RUNTIME)
ifn1of ($(KBUILD_TARGET), solaris) ifn1of ($(KBUILD_TARGET), solaris)
tstSDL_LIBS += \ tstSDL_LIBS += \

0
fix_usb_rules.sh Normal file → Executable file
View File

16
gentoo-C23.patch Normal file
View File

@@ -0,0 +1,16 @@
https://bugs.gentoo.org/946955
--- a/include/iprt/types.h
+++ b/include/iprt/types.h
@@ -282,7 +282,10 @@
# endif
# else
-# undef bool /* see above netbsd explanation */
+# if defined (__KERNEL__)
typedef _Bool bool;
+# else
+# include <stdbool.h>
+# endif
# endif
# else
# if RT_MSC_PREREQ(RT_MSC_VER_VC120)

View File

@@ -1,32 +0,0 @@
From: Jiri Slaby <jslaby@suse.cz>
Subject: fix for kernel 6.13 build
References: bsc#1235146
---
src/VBox/Additions/linux/drm/vbox_drv.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/src/VBox/Additions/linux/drm/vbox_drv.c
+++ b/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -43,7 +43,9 @@
# include <drm/drm_probe_helper.h>
#endif
-#if RTLNX_VER_MIN(5,14,0) || RTLNX_RHEL_RANGE(8,6, 8,99)
+#if RTLNX_VER_MIN(6,13,0)
+# include <linux/aperture.h>
+#elif RTLNX_VER_MIN(5,14,0) || RTLNX_RHEL_RANGE(8,6, 8,99)
# include <drm/drm_aperture.h>
#endif
@@ -85,7 +87,9 @@ static int vbox_pci_probe(struct pci_dev
int ret = 0;
# if RTLNX_VER_MIN(5,14,0) || RTLNX_RHEL_RANGE(8,6, 8,99)
-# if RTLNX_VER_MIN(5,15,0) || RTLNX_RHEL_RANGE(8,7, 8,99) || RTLNX_RHEL_MIN(9,1) || RTLNX_SUSE_MAJ_PREREQ(15,4)
+# if RTLNX_VER_MIN(6,13,0)
+ ret = aperture_remove_conflicting_pci_devices(pdev, driver.name);
+# elif RTLNX_VER_MIN(5,15,0) || RTLNX_RHEL_RANGE(8,7, 8,99) || RTLNX_RHEL_MIN(9,1) || RTLNX_SUSE_MAJ_PREREQ(15,4)
ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver);
# else
ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, "vboxvideofb");

0
update-extpack.sh Normal file → Executable file
View File

View File

@@ -1,19 +1,25 @@
Index: VirtualBox-7.0.20/src/apps/Makefile.kmk ---
src/apps/Makefile.kmk | 2
src/apps/VBoxPermissionMessage/Makefile.kmk | 32 +++++++++++++++
src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp | 12 +++++
3 files changed, 46 insertions(+)
Index: VirtualBox-7.2.0/src/apps/Makefile.kmk
=================================================================== ===================================================================
--- VirtualBox-7.0.20.orig/src/apps/Makefile.kmk --- VirtualBox-7.2.0.orig/src/apps/Makefile.kmk
+++ VirtualBox-7.0.20/src/apps/Makefile.kmk +++ VirtualBox-7.2.0/src/apps/Makefile.kmk
@@ -28,5 +28,7 @@ @@ -33,5 +33,7 @@ ifneq ($(KBUILD_TARGET),win)
SUB_DEPTH = ../.. include $(PATH_SUB_CURRENT)/svn2git-vbox/Makefile.kmk
include $(KBUILD_PATH)/subheader.kmk endif
+include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk +include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk
+ +
include $(FILE_KBUILD_SUB_FOOTER) include $(FILE_KBUILD_SUB_FOOTER)
Index: VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/Makefile.kmk Index: VirtualBox-7.2.0/src/apps/VBoxPermissionMessage/Makefile.kmk
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/Makefile.kmk +++ VirtualBox-7.2.0/src/apps/VBoxPermissionMessage/Makefile.kmk
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
+# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $ +# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $
+## @file +## @file
@@ -47,10 +53,10 @@ Index: VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/Makefile.kmk
+ +
+include $(KBUILD_PATH)/subfooter.kmk +include $(KBUILD_PATH)/subfooter.kmk
+ +
Index: VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp Index: VirtualBox-7.2.0/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ VirtualBox-7.0.20/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp +++ VirtualBox-7.2.0/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
+#include <QtWidgets/QApplication> +#include <QtWidgets/QApplication>
+#include <QtWidgets/QMessageBox> +#include <QtWidgets/QMessageBox>

0
vboxautostart-service.sh Normal file → Executable file
View File

0
vboxconfig.sh Normal file → Executable file
View File

0
vboxdrv.sh Normal file → Executable file
View File

0
vboxguestconfig.sh Normal file → Executable file
View File

0
vboxweb-service.sh Normal file → Executable file
View File

2
virtualbox-patch-source.sh Normal file → Executable file
View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash -ex
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "You need to pass the filename VirtualBox-x.y.z.tar.bz2 as first argument." echo "You need to pass the filename VirtualBox-x.y.z.tar.bz2 as first argument."

0
virtualbox-wrapper.sh Normal file → Executable file
View File

View File

@@ -1,3 +1,154 @@
-------------------------------------------------------------------
Wed Oct 22 10:52:35 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.2.4
* GUI: Fixed VBox Manager crash when some VM has a lot of
snapshots.
* GUI: Fixed VBox Manager crash while attempting to show error
notifications too early.
* GUI: Fixed VBox Manager freeze on Linux hosts at startup or
while attempting to add a VM.
* Network: Added a new experimental type of e1000 adapter.
(82583V). It requires the ICH9 chipset, since MSIs are not
supported by PIIX3.
* USB Webcam: The virtual USB webcam is now part of the open
source base package.
* GUI: Fixed VirtualBox VM Manager crash when host was resuming
from sleep.
* Support for Linux 6.18
-------------------------------------------------------------------
Tue Sep 30 09:31:18 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Drop logic for building and installing on pre-Leap 15.
-------------------------------------------------------------------
Thu Sep 11 15:03:37 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Add curl-8.16.patch [boo#1249448]
-------------------------------------------------------------------
Tue Aug 26 10:21:54 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Disable python bindings for Leap 16.0 (bsc#1248418)
python3.13 is not supported by the current virtualbox version so
we can't build the bindings.
-------------------------------------------------------------------
Fri Aug 15 14:46:51 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.2.0
* GUI: Moved global and VM tools from hamburger menus to global
tools taskbar (vertically on the left) and the VM tools tabs
(horizontally above the right hand panel) to make them easier
to reach.
* ARM host: Virtualization of Windows 11/ARM VMs.
* Linux host: Video decoding acceleration when 3D is enabled.
* Storage: The NVMe storage controller emulation is now part of
the open source base package.
-------------------------------------------------------------------
Thu Jul 24 13:07:21 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.1.12
* VMM: Fixed issue when running a nested VM caused Guru
Meditation for outer VM
* NAT: Fixed issue when VMs with long names were unable to start
* Linux host: Fixed possible kernel panic when using bridged
networking with a network interface handled by the ixgbe
driver on newer kernels
* Recording: Fixed issue when Windows Guest Machine was unable
to start when recording was enabled in Display Settings
* Support for Linux 6.16
* Linux Guest Additions (LGA): Fixed issue when 'rcvboxadd
status-kernel' was reporting incorrect status when guest was
running kernel 3.10 series and older
* LGA: Fixed issue when VBoxClient was unable to start if guest
was running kernel 2.6 series and older
* LGA: Fixed issue which caused a warning in system log due to
incorrect udev rule
- Delete kernel-6.16-READ-WRITE.patch, kernel-6.16-from_timer.patch,
kernel-6.16-page-index.patch
-------------------------------------------------------------------
Wed Jun 11 07:18:15 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
- fix build against 6.16, add:
* kernel-6.16-READ-WRITE.patch
* kernel-6.16-from_timer.patch
* kernel-6.16-page-index.patch
-------------------------------------------------------------------
Wed Jun 4 21:09:42 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.1.10
* Linux host: Fixed issue which caused VM Selector process crash
due to missing libdl.so and libpthread.so libraries
[boo#1231346, boo#1231456, boo#1233145, boo#1233164,
boo#1233498, boo#1240833]
* RDP: Fixed issue when it was not possible to paste clipboard
buffer into a guest over RDP remote session
* Linux 6.15 support
- Delete kernel-6-15-EXTRA_CFLAGS.patch kernel-6-15-fb_probe.patch
kernel-6-15-mkdir.patch kernel-6-15-mode_valid.patch
kernel-6-15-timer.patch (merged/obsolete)
-------------------------------------------------------------------
Tue Jun 3 16:34:33 UTC 2025 - Martin Jambor <mjambor@suse.com>
- Adjust gentoo-C23.patch to fix building the kmp flavor which was
broken by the previous patch by keeping the bool typedef when
building a kmp. [boo#1242085]
-------------------------------------------------------------------
Tue May 27 15:19:29 UTC 2025 - Martin Jambor <mjambor@suse.cz>
- Add gentoo-C23.patch, taken from the corresponding gentoo
package, to fix building with GCC 15 where the C language
defaults to standard C23. [boo#1242085]
-------------------------------------------------------------------
Wed Apr 16 13:59:59 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.1.8
* VMM: Fixed issue when VM clock went backwards in rare
circumstances.
* Graphics: Fixed issue when assertion was triggered on
restoring VM state if VMSVGA graphics adapter was used
without 3D acceleration.
* Linux Guest Additions: Fixed issue when VBoxClient could
crash in XWayland guest.
- Delete kernel-6-14.patch (obsolete)
-------------------------------------------------------------------
Wed Apr 9 09:02:26 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
- build with kernel 6.15, add:
* kernel-6-15-EXTRA_CFLAGS.patch
* kernel-6-15-fb_probe.patch -- this disables fb_probe and needs
a rewrite similar to "9fa154f40eb6 drm/{i915,xe}: Run DRM default
client setup". Good luck.
* kernel-6-15-mkdir.patch
* kernel-6-15-mode_valid.patch
* kernel-6-15-timer.patch
-------------------------------------------------------------------
Fri Mar 28 10:06:19 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.1.6a
* VirtioNet: Fixed issue with re-negotiation of features
after reset
* Graphics: Fixed issue with Linux guest screen flickering when
guest was using VMSVGA graphics adapter
* Linux Guest Additions: Introduced initial support for
kernel 6.13
- Delete kernel-6-13.patch (merged)
-------------------------------------------------------------------
Fri Mar 28 06:42:00 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
- add: kernel-6-14.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Feb 12 10:00:50 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com> Wed Feb 12 10:00:50 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>

View File

@@ -15,7 +15,6 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Please submit bugfixes or comments via https://bugs.opensuse.org/
# #
%if "@BUILD_FLAVOR@" == "kmp" %if "@BUILD_FLAVOR@" == "kmp"
# macros for virtualbox-kmp # macros for virtualbox-kmp
%define main_package 0 %define main_package 0
@@ -54,13 +53,23 @@
%define _udevrulesdir %{_prefix}/lib/udev/rules.d %define _udevrulesdir %{_prefix}/lib/udev/rules.d
%endif %endif
%global mypython python311 # If you want to disable building Python parts, just set this to %%nil
%global __mypython %{expand:%%__%{mypython}} %if 0%{?suse_version} == 1600
%global mypython_sitelib %{expand:%%%{mypython}_sitelib} # Leap 16.0 has python3.13, currently not supported
%global mypython %nil
%else
# Using python3.11 for Factory, current version doesn't support python3.13
%global mypython python311
%endif
%if "%mypython" != ""
%global __mypython %{expand:%%__%{mypython}}
%global mypython_sitelib %{expand:%%%{mypython}_sitelib}
%endif
# ********* If the VB version exceeds 6.1.x, notify the libvirt maintainer!!
Name: virtualbox%{?dash}%{?name_suffix} Name: virtualbox%{?dash}%{?name_suffix}
Version: 7.1.4 Version: 7.2.4
%define rversion 7.2.4
Release: 0 Release: 0
Summary: %{package_summary} Summary: %{package_summary}
License: GPL-3.0-or-later License: GPL-3.0-or-later
@@ -75,6 +84,7 @@ URL: https://www.virtualbox.org/
# script virtualbox-patch-source.sh will do the job :) # script virtualbox-patch-source.sh will do the job :)
# WARNING: This is not a comment, but the real command to repack source # WARNING: This is not a comment, but the real command to repack source
#%%(bash %%{_sourcedir}/virtualbox-patch-source.sh VirtualBox-%%{version}.tar.bz2) #%%(bash %%{_sourcedir}/virtualbox-patch-source.sh VirtualBox-%%{version}.tar.bz2)
#Source: https://download.virtualbox.org/virtualbox/7.1.8/VirtualBox-7.1.8.tar.bz2
Source0: VirtualBox-%{version}-patched.tpxz Source0: VirtualBox-%{version}-patched.tpxz
Source1: UserManual.pdf Source1: UserManual.pdf
Source3: virtualbox-60-vboxguest.rules Source3: virtualbox-60-vboxguest.rules
@@ -122,7 +132,8 @@ Patch9: vbox-usb-warning.diff
Patch10: fix_for_leap15.5.patch Patch10: fix_for_leap15.5.patch
Patch11: cxx17.patch Patch11: cxx17.patch
Patch12: host-source.patch Patch12: host-source.patch
Patch13: kernel-6-13.patch Patch20: gentoo-C23.patch
Patch21: curl-8.16.patch
# #
# Common BuildRequires for both virtualbox and virtualbox-kmp # Common BuildRequires for both virtualbox and virtualbox-kmp
BuildRequires: %{kernel_module_package_buildreqs} BuildRequires: %{kernel_module_package_buildreqs}
@@ -139,7 +150,7 @@ BuildRequires: gcc-c++
BuildRequires: gcc12 BuildRequires: gcc12
BuildRequires: gcc12-c++ BuildRequires: gcc12-c++
%endif %endif
BuildRequires: kbuild >= 0.1.9998+svn3613 BuildRequires: kbuild >= 0.1.9998+svn3686
BuildRequires: libcap-devel BuildRequires: libcap-devel
BuildRequires: libcurl-devel BuildRequires: libcurl-devel
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -153,35 +164,23 @@ ExclusiveArch: x86_64
%if 0%{?sle_version} != 120300 %if 0%{?sle_version} != 120300
Source2: VirtualBox.appdata.xml Source2: VirtualBox.appdata.xml
%endif %endif
### Requirements for virtualbox main package ###
%if %{main_package} %if %{main_package}
BuildRequires: LibVNCServer-devel
BuildRequires: SDL2-devel
BuildRequires: alsa-devel
BuildRequires: device-mapper-devel
BuildRequires: dmidecode BuildRequires: dmidecode
BuildRequires: e2fsprogs-devel BuildRequires: e2fsprogs-devel
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: glibc-devel-static BuildRequires: glibc-devel-static
BuildRequires: glslang-devel >= 11.5 BuildRequires: glslang-devel >= 11.5
BuildRequires: gsoap-devel >= 2.8.50
BuildRequires: java-devel >= 1.6.0 BuildRequires: java-devel >= 1.6.0
#BuildRequires: libSDL2-2_0-0
BuildRequires: libelf-devel
BuildRequires: libidl-devel
BuildRequires: libopenssl-devel
BuildRequires: libopus-devel
BuildRequires: libtpms-devel
BuildRequires: libvpx-devel
BuildRequires: libxslt-devel
BuildRequires: libzio-devel BuildRequires: libzio-devel
BuildRequires: lzfse BuildRequires: lzfse
BuildRequires: lzfse-devel BuildRequires: lzfse-devel
BuildRequires: pulseaudio-devel %if "%mypython" != ""
BuildRequires: python-rpm-macros BuildRequires: python-rpm-macros
BuildRequires: %{mypython}-devel BuildRequires: %{mypython}-devel
BuildRequires: %{mypython}-setuptools BuildRequires: %{mypython}-setuptools
BuildRequires: %{mypython}-pip BuildRequires: %{mypython}-pip
%endif
BuildRequires: qt6-tools-linguist BuildRequires: qt6-tools-linguist
BuildRequires: rpm BuildRequires: rpm
BuildRequires: sed BuildRequires: sed
@@ -190,7 +189,7 @@ BuildRequires: sysuser-tools
BuildRequires: update-desktop-files BuildRequires: update-desktop-files
BuildRequires: which BuildRequires: which
BuildRequires: xorg-x11-server BuildRequires: xorg-x11-server
BuildRequires: pkgconfig(Qt6Core) BuildRequires: pkgconfig(Qt6Core) >= 6.8
BuildRequires: pkgconfig(Qt6DBus) BuildRequires: pkgconfig(Qt6DBus)
BuildRequires: pkgconfig(Qt6Gui) BuildRequires: pkgconfig(Qt6Gui)
BuildRequires: pkgconfig(Qt6Help) BuildRequires: pkgconfig(Qt6Help)
@@ -200,16 +199,28 @@ BuildRequires: pkgconfig(Qt6Sql)
BuildRequires: pkgconfig(Qt6StateMachine) BuildRequires: pkgconfig(Qt6StateMachine)
BuildRequires: pkgconfig(Qt6Widgets) BuildRequires: pkgconfig(Qt6Widgets)
BuildRequires: pkgconfig(Qt6Xml) BuildRequires: pkgconfig(Qt6Xml)
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(devmapper)
BuildRequires: pkgconfig(fontsproto) BuildRequires: pkgconfig(fontsproto)
BuildRequires: pkgconfig(glu) BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(glx) BuildRequires: pkgconfig(glx)
BuildRequires: pkgconfig(gsoap) >= 2.8.50
BuildRequires: pkgconfig(libelf)
BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(libtpms)
BuildRequires: pkgconfig(libvncserver)
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(randrproto) BuildRequires: pkgconfig(randrproto)
BuildRequires: pkgconfig(renderproto) BuildRequires: pkgconfig(renderproto)
BuildRequires: pkgconfig(resourceproto) BuildRequires: pkgconfig(resourceproto)
BuildRequires: pkgconfig(scrnsaverproto) BuildRequires: pkgconfig(scrnsaverproto)
BuildRequires: pkgconfig(sdl) BuildRequires: pkgconfig(sdl)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(udev) BuildRequires: pkgconfig(udev)
BuildRequires: pkgconfig(vpx)
BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xau) BuildRequires: pkgconfig(xau)
BuildRequires: pkgconfig(xcomposite) BuildRequires: pkgconfig(xcomposite)
@@ -233,19 +244,12 @@ Conflicts: %{name}-qt > %{version}
Conflicts: %{name}-websrv < %{version} Conflicts: %{name}-websrv < %{version}
Conflicts: %{name}-websrv > %{version} Conflicts: %{name}-websrv > %{version}
Recommends: %{name}-gui = %{version} Recommends: %{name}-gui = %{version}
# package i4l-vbox from source package i4l-base shares the directory /etc/vbox
# with us, but with different owner.
Conflicts: i4l-vbox
#rename from ose version: #rename from ose version:
Provides: %{name}-ose = %{version} Provides: %{name}-ose = %{version}
Obsoletes: %{name}-ose < %{version} Obsoletes: %{name}-ose < %{version}
%{?systemd_ordering} %{?systemd_ordering}
%{?sysusers_requires} %{?sysusers_requires}
%if 0%{?suse_version} > 1325
BuildRequires: libboost_headers-devel BuildRequires: libboost_headers-devel
%else
BuildRequires: boost-devel
%endif
%ifarch amd64 x86_64 ia32e em64t %ifarch amd64 x86_64 ia32e em64t
%if 0%{?suse_version} && 0%{?suse_version} >= 1600 %if 0%{?suse_version} && 0%{?suse_version} >= 1600
BuildRequires: gcc-32bit BuildRequires: gcc-32bit
@@ -259,12 +263,8 @@ BuildRequires: xorg-x11-libXext-devel-32bit
BuildRequires: xorg-x11-libXmu-devel-32bit BuildRequires: xorg-x11-libXmu-devel-32bit
BuildRequires: xorg-x11-libXt-devel-32bit BuildRequires: xorg-x11-libXt-devel-32bit
%endif %endif
%if ! 0%{?suse_version} > 1325
Requires(pre): net-tools-deprecated
%endif %endif
# end of main_package
%endif
### Requirements for virtualbox-kmp ###
%if %{kmp_package} %if %{kmp_package}
BuildRequires: alsa-devel BuildRequires: alsa-devel
BuildRequires: libiptc-devel BuildRequires: libiptc-devel
@@ -273,9 +273,8 @@ BuildRequires: libxml2-devel
Requires: ca-certificates Requires: ca-certificates
Requires: openSUSE-signkey-cert Requires: openSUSE-signkey-cert
%kernel_module_package -p %{SOURCE7} -n virtualbox -x kdump um xen pae xenpae pv %kernel_module_package -p %{SOURCE7} -n virtualbox -x kdump um xen pae xenpae pv
# end of kmp_package
%endif %endif
### Description and subpackages of virtualbox main package ###
%if %{main_package} %if %{main_package}
%description %description
VirtualBox is a hosted hypervisor for x86 computers. It supports the VirtualBox is a hosted hypervisor for x86 computers. It supports the
@@ -326,14 +325,12 @@ Provides: %{name}-ose-guest-tools = %{version}
Obsoletes: %{name}-ose-guest-tools < %{version} Obsoletes: %{name}-ose-guest-tools < %{version}
Obsoletes: virtualbox-guest-x11 < %{version} Obsoletes: virtualbox-guest-x11 < %{version}
Obsoletes: xorg-x11-driver-virtualbox-ose < %{version} Obsoletes: xorg-x11-driver-virtualbox-ose < %{version}
%if ! 0%{?suse_version} > 1325
Requires(pre): net-tools-deprecated
%endif
%{?sysusers_requires} %{?sysusers_requires}
%description guest-tools %description guest-tools
VirtualBox guest addition tools. VirtualBox guest addition tools.
%if "%mypython" != ""
%package -n %{mypython}-%{name} %package -n %{mypython}-%{name}
Summary: Python bindings for %{name} Summary: Python bindings for %{name}
Group: Development/Libraries/Python Group: Development/Libraries/Python
@@ -350,12 +347,15 @@ Obsoletes: python3-%{name}-ose < %{version}
%description -n %{mypython}-%{name} %description -n %{mypython}-%{name}
Python XPCOM bindings to %{name}. Used e.g. by vboxgtk package. Python XPCOM bindings to %{name}. Used e.g. by vboxgtk package.
%endif
%package devel %package devel
Summary: Devel files for %{name} Summary: Devel files for %{name}
Group: Development/Libraries/Other Group: Development/Libraries/Other
Requires: %{name} = %{version} Requires: %{name} = %{version}
%if "%mypython" != ""
Requires: %{mypython}-%{name} = %{version} Requires: %{mypython}-%{name} = %{version}
%endif
#rename from "ose" version: #rename from "ose" version:
Provides: %{name}-ose-devel = %{version} Provides: %{name}-ose-devel = %{version}
Obsoletes: %{name}-ose-devel < %{version} Obsoletes: %{name}-ose-devel < %{version}
@@ -421,7 +421,7 @@ This package contains the kernel-modules that VirtualBox uses to create or run v
%endif %endif
%prep %prep
%autosetup -n VirtualBox-%{version} -p1 %autosetup -n VirtualBox-%{rversion} -p1
### Documents for virtualbox main package ### ### Documents for virtualbox main package ###
%if %{main_package} %if %{main_package}
@@ -457,14 +457,17 @@ rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
# --disable-kmods don't build Linux kernel modules - but use SUSE specific way see few lines under # --disable-kmods don't build Linux kernel modules - but use SUSE specific way see few lines under
# NOT an autoconf configure script # NOT an autoconf configure script
./configure \ ./configure \
--enable-vnc \ --enable-vnc \
--enable-vde \ --enable-vde \
--disable-kmods \ --disable-kmods \
--with-linux="%{_prefix}" \ --with-linux="%{_prefix}" \
--disable-java \ --disable-java \
--disable-docs \ --disable-docs \
--enable-webservice \ --enable-webservice \
--with-makeself=%{_bindir}/true %if "%mypython" == ""
--disable-python \
%endif
--with-makeself=%{_bindir}/true
# configure actually warns we should source env.sh (which seems like it could influence the build...) # configure actually warns we should source env.sh (which seems like it could influence the build...)
source ./env.sh source ./env.sh
@@ -473,14 +476,14 @@ source ./env.sh
# VBOX_PATH_PACKAGE_DOCS set propper path for link to pdf in .desktop file # VBOX_PATH_PACKAGE_DOCS set propper path for link to pdf in .desktop file
# VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= just disable some functionality in gui # VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= just disable some functionality in gui
echo "build basic parts" echo "build basic parts"
%{_bindir}/kmk %{?_smp_mflags} \ %{_bindir}/kmk %{?_smp_mflags} \
VBOX_GCC_WERR= \ VBOX_GCC_WERR= \
VBOX_USE_SYSTEM_XORG_HEADERS=1 \ VBOX_USE_SYSTEM_XORG_HEADERS=1 \
VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= \ VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= \
TOOL_YASM_AS=yasm \ TOOL_YASM_AS=yasm \
VBOX_BUILD_PUBLISHER=_SUSE \ VBOX_BUILD_PUBLISHER=_SUSE \
TOOL_GCC3_CFLAGS="%{optflags}" TOOL_GCC3_CXXFLAGS="%{optflags}" \ TOOL_GCC3_CFLAGS="%{optflags}" TOOL_GCC3_CXXFLAGS="%{optflags}" \
VBOX_GCC_OPT="%{optflags}" VBOX_GCC_OPT="%{optflags}"
echo "build VNC extension pack" echo "build VNC extension pack"
# tar must use GNU, not POSIX, format here # tar must use GNU, not POSIX, format here
@@ -548,25 +551,23 @@ install -m 755 out/linux.*/release/bin/additions/VBoxDRMClient %{buildroot}%{_bi
install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/ install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/
install -d %{buildroot}%{_sysconfdir}/xdg/autostart/ install -d %{buildroot}%{_sysconfdir}/xdg/autostart/
install -m 644 %{SOURCE25} %{buildroot}%{_sysconfdir}/xdg/autostart/vboxclient.desktop install -m 644 %{SOURCE25} %{buildroot}%{_sysconfdir}/xdg/autostart/vboxclient.desktop
%if 0%{?suse_version} > 1320 || 0%{?sle_version} == 120300
install -d -m 755 %{buildroot}/media install -d -m 755 %{buildroot}/media
%endif
echo "entering VNC extension install section" echo "entering VNC extension install section"
pushd out/linux.*/release/packages/ cd out/linux.*/release/packages/
mkdir -p "%{buildroot}%{_datadir}/virtualbox/extensions/" mkdir -p "%{buildroot}%{_datadir}/virtualbox/extensions/"
install -D -m 644 VNC-*.vbox-extpack "%{buildroot}%{_datadir}/virtualbox/extensions/VNC-%{version}.vbox-extpack" install -D -m 644 VNC-*.vbox-extpack "%{buildroot}%{_datadir}/virtualbox/extensions/VNC-%{rversion}.vbox-extpack"
popd cd -
echo "entering virtualbox(-qt) install section" echo "entering virtualbox(-qt) install section"
# copy the main files to %%{_vbox_instdir} # copy the main files to %%{_vbox_instdir}
pushd out/linux.*/release/bin cd out/linux.*/release/bin
cp -a VBoxManage VBoxHeadless VBoxSDL VBoxNetNAT VBoxAutostart VBoxVolInfo \ cp -a VBoxManage VBoxHeadless VBoxSDL VBoxNetNAT VBoxAutostart VBoxVolInfo \
vboxshell.py VBoxBalloonCtrl webtest VBoxDTrace VBoxDbg.so \ VBoxBalloonCtrl webtest VBoxDTrace VBoxDbg.so \
VBoxDxVk.so UICommon.so vboximg-mount %{buildroot}%{_vbox_instdir} VBoxDxVk.so UICommon.so vboximg-mount %{buildroot}%{_vbox_instdir}
ls -al VBoxManage VBoxHeadless VBoxSDL VBoxNetNAT VBoxAutostart VBoxVolInfo \ %if "%mypython" != ""
vboxshell.py VBoxBalloonCtrl webtest VBoxDTrace VBoxDbg.so \ cp -a vboxshell.py %{buildroot}/%{_vbox_instdir}
VBoxDxVk.so UICommon.so vboximg-mount 0755 || : %endif
# create links to vbox tools in PATH - they could be usefull for controlling vbox from command line # create links to vbox tools in PATH - they could be usefull for controlling vbox from command line
ln -s %{_vbox_instdir}/VBoxManage %{buildroot}%{_bindir}/VBoxManage ln -s %{_vbox_instdir}/VBoxManage %{buildroot}%{_bindir}/VBoxManage
ln -s %{_vbox_instdir}/VBoxHeadless %{buildroot}%{_bindir}/VBoxHeadless ln -s %{_vbox_instdir}/VBoxHeadless %{buildroot}%{_bindir}/VBoxHeadless
@@ -600,42 +601,42 @@ mkdir -p %{buildroot}%{_usrsrc}/kernel-modules/additions
tar -jcf %{buildroot}%{_usrsrc}/kernel-modules/additions/guest_src.tar.bz2 additions/src tar -jcf %{buildroot}%{_usrsrc}/kernel-modules/additions/guest_src.tar.bz2 additions/src
cp -a src %{buildroot}%{_usrsrc}/kernel-modules/virtualbox cp -a src %{buildroot}%{_usrsrc}/kernel-modules/virtualbox
install -m 644 %{SOURCE11} %{buildroot}%{_udevrulesdir}/60-vboxdrv.rules install -m 644 %{SOURCE11} %{buildroot}%{_udevrulesdir}/60-vboxdrv.rules
popd cd -
# install desktop file # install desktop file
install -m 644 out/linux.*/release/bin/virtualbox.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop install -m 644 out/linux.*/release/bin/virtualbox.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
%suse_update_desktop_file %{buildroot}%{_datadir}/applications/%{name}.desktop 'System Emulator' %suse_update_desktop_file %{buildroot}%{_datadir}/applications/%{name}.desktop 'System Emulator'
%if 0%{?sle_version} != 120300 %if 0%{?sle_version} != 120300
# install appstream file # install appstream file
mkdir -p %{buildroot}%{_datadir}/metainfo mkdir -p %{buildroot}%{_datadir}/metainfo
install -m 644 %{SOURCE2} %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml install -m 644 %{SOURCE2} %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
%endif %endif
# create a menu entry # create a menu entry
install -m 644 out/linux.*/release/bin/VBox.png %{buildroot}%{_datadir}/pixmaps/virtualbox.png install -m 644 out/linux.*/release/bin/VBox.png %{buildroot}%{_datadir}/pixmaps/virtualbox.png
# install config with session shutdown defs # install config with session shutdown defs
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
install -m 644 %{SOURCE8} %{buildroot}%{_bindir}/update-extpack.sh install -m 644 %{SOURCE8} %{buildroot}%{_bindir}/update-extpack.sh
# 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
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service
install -m 0755 %{SOURCE16} %{buildroot}%{_sbindir}/vboxconfig install -m 0755 %{SOURCE16} %{buildroot}%{_sbindir}/vboxconfig
install -m 0755 %{SOURCE17} %{buildroot}%{_sbindir}/vboxguestconfig install -m 0755 %{SOURCE17} %{buildroot}%{_sbindir}/vboxguestconfig
install -m 0755 %{SOURCE18} %{buildroot}%{_sbindir}/vbox-fix-usb-rules.sh install -m 0755 %{SOURCE18} %{buildroot}%{_sbindir}/vbox-fix-usb-rules.sh
install -m 0755 %{SOURCE19} %{buildroot}%{_vbox_instdir}/vboxdrv.sh install -m 0755 %{SOURCE19} %{buildroot}%{_vbox_instdir}/vboxdrv.sh
install -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}/vboxweb-service.service install -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}/vboxweb-service.service
install -m 0755 %{SOURCE22} %{buildroot}%{_vbox_instdir}/vboxweb-service.sh install -m 0755 %{SOURCE22} %{buildroot}%{_vbox_instdir}/vboxweb-service.sh
install -m 0644 %{SOURCE23} %{buildroot}%{_unitdir}/vboxautostart-service.service install -m 0644 %{SOURCE23} %{buildroot}%{_unitdir}/vboxautostart-service.service
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxautostart ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxautostart
install -m 0755 %{SOURCE24} %{buildroot}%{_vbox_instdir}/vboxautostart-service.sh install -m 0755 %{SOURCE24} %{buildroot}%{_vbox_instdir}/vboxautostart-service.sh
# Init scripts to start virtualbox during boot # Init scripts to start virtualbox during boot
ln -sf %{_unitdir}/vboxdrv.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service ln -sf %{_unitdir}/vboxdrv.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service
ln -sf %{_unitdir}/vboxadd-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service ln -sf %{_unitdir}/vboxadd-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service
ln -sf %{_unitdir}/vboxautostart-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxautostart-service.service ln -sf %{_unitdir}/vboxautostart-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxautostart-service.service
# config file for vboxdrv and vboxweb # config file for vboxdrv and vboxweb
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
@@ -652,40 +653,43 @@ allow = true
EOF EOF
# install udev helper script for creating usb devices # install udev helper script for creating usb devices
install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh %{buildroot}%{_vbox_instdir}/VBoxCreateUSBNode.sh install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh %{buildroot}%{_vbox_instdir}/VBoxCreateUSBNode.sh
%if "%mypython" != ""
echo "entering python-virtualbox install section" echo "entering python-virtualbox install section"
pushd out/linux.*/release/bin/sdk/installer/python cd out/linux.*/release/bin/sdk/installer/python
VBOX_INSTALL_PATH=%{_vbox_instdir} %{__mypython} vboxapisetup.py install --prefix=%{_prefix} --root=%{buildroot} VBOX_INSTALL_PATH=%{_vbox_instdir} %{__mypython} vboxapisetup.py install --prefix=%{_prefix} --root=%{buildroot}
popd cd -
install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
cp -r out/linux.*/release/bin/sdk/bindings/xpcom/python %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom cp -r out/linux.*/release/bin/sdk/bindings/xpcom/python %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
%py3_compile %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom/python %py3_compile %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom/python
%endif
echo "entering virtualbox-devel install section" echo "entering virtualbox-devel install section"
cp -r out/linux.*/release/bin/sdk/bindings/auth %{buildroot}%{_vbox_instdir}/sdk/bindings cp -r out/linux.*/release/bin/sdk/bindings/auth %{buildroot}%{_vbox_instdir}/sdk/bindings
pushd out/linux.*/release/bin/sdk/bindings/xpcom cd out/linux.*/release/bin/sdk/bindings/xpcom
cp -r include %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom cp -r include %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
cp -r idl %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom cp -r idl %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
cp -r samples %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom cp -r samples %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
popd cd -
cp out/linux.*/release/bin/sdk/bindings/VirtualBox.xidl %{buildroot}%{_vbox_instdir}/sdk/bindings cp out/linux.*/release/bin/sdk/bindings/VirtualBox.xidl %{buildroot}%{_vbox_instdir}/sdk/bindings
echo "entering virtualbox-websrv install section" echo "entering virtualbox-websrv install section"
pushd out/linux.*/release/bin cd out/linux.*/release/bin
install -m 755 vboxwebsrv %{buildroot}%{_vbox_instdir} install -m 755 vboxwebsrv %{buildroot}%{_vbox_instdir}
install -m 755 webtest %{buildroot}%{_vbox_instdir} install -m 755 webtest %{buildroot}%{_vbox_instdir}
popd cd -
ln -sf %{_unitdir}/vboxweb-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxweb-service.service ln -sf %{_unitdir}/vboxweb-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxweb-service.service
echo "entering virtualbox-guest-desktop-icons install section" echo "entering virtualbox-guest-desktop-icons install section"
install -d -m 755 %{buildroot}%{_datadir}/pixmaps/virtualbox install -d -m 755 %{buildroot}%{_datadir}/pixmaps/virtualbox
pushd src/VBox/Frontends/VirtualBox/images cd src/VBox/Frontends/VirtualBox/images
for icon in os_*.png; do for icon in os_*.png; do
install -m 644 "$icon" %{buildroot}%{_datadir}/pixmaps/virtualbox/"$icon"; install -m 644 "$icon" %{buildroot}%{_datadir}/pixmaps/virtualbox/"$icon";
done done
popd cd -
install -Dm0644 vbox.conf %{buildroot}%{_sysusersdir}/vbox.conf install -Dm0644 vbox.conf %{buildroot}%{_sysusersdir}/vbox.conf
install -Dm0644 vbox-guest-tools.conf %{buildroot}%{_sysusersdir}/vbox-guest-tools.conf install -Dm0644 vbox-guest-tools.conf %{buildroot}%{_sysusersdir}/vbox-guest-tools.conf
@@ -703,7 +707,6 @@ install -Dm0644 vbox-guest-tools.conf %{buildroot}%{_sysusersdir}/vbox-guest-too
%service_add_pre vboxweb-service.service %service_add_pre vboxweb-service.service
%post %post
/sbin/ldconfig
#setup our sysconfig file /etc/sysconfig/vbox #setup our sysconfig file /etc/sysconfig/vbox
%set_permissions %{_vbox_instdir}/VBoxNetNAT %set_permissions %{_vbox_instdir}/VBoxNetNAT
%set_permissions %{_vbox_instdir}/VBoxNetDHCP %set_permissions %{_vbox_instdir}/VBoxNetDHCP
@@ -712,7 +715,7 @@ install -Dm0644 vbox-guest-tools.conf %{buildroot}%{_sysusersdir}/vbox-guest-too
%service_add_post vboxdrv.service vboxautostart-service.service %service_add_post vboxdrv.service vboxautostart-service.service
# add new autostart stuff to the existing default config, if missing # add new autostart stuff to the existing default config, if missing
grep -q VBOXAUTOSTART %{_sysconfdir}/default/virtualbox || { grep -q VBOXAUTOSTART %{_sysconfdir}/default/virtualbox || {
cat >> %{_sysconfdir}/default/virtualbox << EOF cat >> %{_sysconfdir}/default/virtualbox << EOF
# #
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# Autostart # Autostart
@@ -724,8 +727,8 @@ EOF
} }
for entry in %{_sysconfdir}/vbox/*.start for entry in %{_sysconfdir}/vbox/*.start
do do
user=$(basename "$entry" .start) user=$(basename "$entry" .start)
[ "$user" = "*" ] && break [ "$user" = "*" ] && break
mv %{_sysconfdir}/vbox/user.start %{_sysconfdir}/vbox/autostart.d/. mv %{_sysconfdir}/vbox/user.start %{_sysconfdir}/vbox/autostart.d/.
done done
@@ -750,7 +753,7 @@ done
%service_add_post vboxweb-service.service %service_add_post vboxweb-service.service
%post vnc %post vnc
EXTPACK="%{_datadir}/virtualbox/extensions/VNC-%{version}.vbox-extpack" EXTPACK="%{_datadir}/virtualbox/extensions/VNC-%{rversion}.vbox-extpack"
ACCEPT="$(tar --to-stdout -xf "${EXTPACK}" ./ExtPack-license.txt | sha256sum | head --bytes=64)" ACCEPT="$(tar --to-stdout -xf "${EXTPACK}" ./ExtPack-license.txt | sha256sum | head --bytes=64)"
VBoxManage extpack install --replace "${EXTPACK}" --accept-license="${ACCEPT}" > /dev/null VBoxManage extpack install --replace "${EXTPACK}" --accept-license="${ACCEPT}" > /dev/null
@@ -767,7 +770,6 @@ VBoxManage extpack install --replace "${EXTPACK}" --accept-license="${ACCEPT}" >
%service_del_preun vboxweb-service.service %service_del_preun vboxweb-service.service
%postun %postun
/sbin/ldconfig
# immediately restarting virtualbox may not work. As such wait for the next reboot to restart # immediately restarting virtualbox may not work. As such wait for the next reboot to restart
%if ! %{defined service_del_postun_without_restart} %if ! %{defined service_del_postun_without_restart}
export DISABLE_RESTART_ON_UPDATE=yes export DISABLE_RESTART_ON_UPDATE=yes
@@ -794,7 +796,9 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_vbox_instdir}/VBoxDTrace %{_vbox_instdir}/VBoxDTrace
%{_vbox_instdir}/VBoxNetNAT %{_vbox_instdir}/VBoxNetNAT
%{_vbox_instdir}/VBoxVolInfo %{_vbox_instdir}/VBoxVolInfo
%if "%mypython" != ""
%{_vbox_instdir}/vboxshell.py %{_vbox_instdir}/vboxshell.py
%endif
%{_vbox_instdir}/VBoxSysInfo.sh %{_vbox_instdir}/VBoxSysInfo.sh
%{_vbox_instdir}/VBoxDD2.so %{_vbox_instdir}/VBoxDD2.so
%{_vbox_instdir}/VBoxDD.so %{_vbox_instdir}/VBoxDD.so
@@ -807,6 +811,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_vbox_instdir}/VBoxRT.so %{_vbox_instdir}/VBoxRT.so
%{_vbox_instdir}/VBoxSharedFolders.so %{_vbox_instdir}/VBoxSharedFolders.so
%{_vbox_instdir}/VBoxVMM.so %{_vbox_instdir}/VBoxVMM.so
%{_vbox_instdir}/VBoxVMMArm.so
%{_vbox_instdir}/VBoxXPCOMC.so %{_vbox_instdir}/VBoxXPCOMC.so
%{_vbox_instdir}/VBoxXPCOM.so %{_vbox_instdir}/VBoxXPCOM.so
%{_vbox_instdir}/VBox*.r0 %{_vbox_instdir}/VBox*.r0
@@ -913,10 +918,9 @@ export DISABLE_RESTART_ON_UPDATE=yes
%dir %{_sysconfdir}/xdg %dir %{_sysconfdir}/xdg
%dir %{_sysconfdir}/xdg/autostart %dir %{_sysconfdir}/xdg/autostart
%{_sysconfdir}/xdg/autostart/vboxclient.desktop %{_sysconfdir}/xdg/autostart/vboxclient.desktop
%if 0%{?suse_version} > 1320 || 0%{?sle_version} == 120300
%dir /media %dir /media
%endif
%if "%mypython" != ""
%files -n %{mypython}-%{name} %files -n %{mypython}-%{name}
%dir %{_vbox_instdir}/sdk %dir %{_vbox_instdir}/sdk
%dir %{_vbox_instdir}/sdk/bindings %dir %{_vbox_instdir}/sdk/bindings
@@ -925,6 +929,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_vbox_instdir}/VBoxPython*.so %{_vbox_instdir}/VBoxPython*.so
%{mypython_sitelib}/vboxapi-*.egg-info %{mypython_sitelib}/vboxapi-*.egg-info
%{mypython_sitelib}/vboxapi/ %{mypython_sitelib}/vboxapi/
%endif
%files devel %files devel
%dir %{_vbox_instdir}/sdk %dir %{_vbox_instdir}/sdk
@@ -958,7 +963,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%files vnc %files vnc
%license COPYING %license COPYING
%dir %{_datadir}/virtualbox/extensions %dir %{_datadir}/virtualbox/extensions
%{_datadir}/virtualbox/extensions/VNC-%{version}.vbox-extpack %{_datadir}/virtualbox/extensions/VNC-%{rversion}.vbox-extpack
# main_package # main_package
%endif %endif
@@ -979,18 +984,18 @@ rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
# guest modules : vboxguest,vboxsf,vboxvideo # guest modules : vboxguest,vboxsf,vboxvideo
echo "build kernel modules" echo "build kernel modules"
for vbox_module in kmp_host/vbox{drv,netflt,netadp} \ for vbox_module in kmp_host/vbox{drv,netflt,netadp} \
kmp_additions/vbox{guest,sf,video}; do kmp_additions/vbox{guest,sf,video}; do
#get the module name from path #get the module name from path
module_name=$(basename "$vbox_module") module_name=$(basename "$vbox_module")
# go through the all flavors (desktop,default ...) # go through the all flavors (desktop,default ...)
for flavor in %{flavors_to_build}; do for flavor in %{flavors_to_build}; do
# delete old build dir for sure # delete old build dir for sure
rm -rf modules_build_dir/${module_name}_${flavor} rm -rf modules_build_dir/${module_name}_${flavor}
if [ "$module_name" = "vboxdrv" -o \ if [ "$module_name" = "vboxdrv" -o \
"$module_name" = "vboxguest" ] ; then "$module_name" = "vboxguest" ] ; then
SYMBOLS="" SYMBOLS=""
fi fi
# create build directory for specific flavor # create build directory for specific flavor
mkdir -p modules_build_dir/$flavor mkdir -p modules_build_dir/$flavor
@@ -1001,21 +1006,21 @@ for vbox_module in kmp_host/vbox{drv,netflt,netadp} \
# copy vboxdrv (for host) module symbols which are used by vboxnetflt and vboxnetadp km's: # copy vboxdrv (for host) module symbols which are used by vboxnetflt and vboxnetadp km's:
if [ "$module_name" = "vboxnetflt" -o \ if [ "$module_name" = "vboxnetflt" -o \
"$module_name" = "vboxnetadp" ] ; then "$module_name" = "vboxnetadp" ] ; then
cp $PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers \ cp $PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers \
$PWD/modules_build_dir/$flavor/$module_name $PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers" SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers"
fi fi
# copy vboxguest (for guest) module symbols which are used by vboxsf and vboxvideo km's: # copy vboxguest (for guest) module symbols which are used by vboxsf and vboxvideo km's:
if [ "$module_name" = "vboxsf" -o \ if [ "$module_name" = "vboxsf" -o \
"$module_name" = "vboxvideo" ] ; then "$module_name" = "vboxvideo" ] ; then
cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \ cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \
$PWD/modules_build_dir/$flavor/$module_name $PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxguest/Module.symvers" SYMBOLS="$PWD/modules_build_dir/$flavor/vboxguest/Module.symvers"
fi fi
# build the module for the specific flavor # build the module for the specific flavor
%make_build -j4 -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor %{?linux_make_arch} modules \ %make_build -j4 -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor %{?linux_make_arch} modules \
M=$PWD/modules_build_dir/$flavor/$module_name KBUILD_EXTRA_SYMBOLS="$SYMBOLS" V=1 M=$PWD/modules_build_dir/$flavor/$module_name KBUILD_EXTRA_SYMBOLS="$SYMBOLS" V=1
done done
done done
%install %install
@@ -1025,7 +1030,7 @@ for module_name in vbox{drv,netflt,netadp,guest,sf,video}
do do
#and through all flavors #and through all flavors
for flavor in %{flavors_to_build}; do 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 make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name
done done
done done
# kmp_package # kmp_package