1
0
forked from pool/virtualbox

2 Commits

Author SHA256 Message Date
57db7db36d Patch to build with python3.13
NOT BUILDING
2025-08-26 12:15:57 +02:00
2d6eb3f435 Build python bindings for python313 2025-08-25 14:08:04 +02:00
6 changed files with 185 additions and 180 deletions

BIN
VirtualBox-7.2.0-patched.tpxz LFS Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -1,59 +0,0 @@
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))

79
python313.patch Normal file
View File

@@ -0,0 +1,79 @@
Index: VirtualBox-7.2.0/configure
===================================================================
--- VirtualBox-7.2.0.orig/configure
+++ VirtualBox-7.2.0/configure
@@ -2116,7 +2116,7 @@ extern "C" int main(void)
}
EOF
found=
- SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.9 python3.10 python3.11 python3.12"
+ SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.9 python3.10 python3.11 python3.12 python3.13"
for p in $PYTHONDIR; do
for d in $SUPPYTHONLIBS; do
for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do
Index: VirtualBox-7.2.0/src/VBox/Installer/linux/routines.sh
===================================================================
--- VirtualBox-7.2.0.orig/src/VBox/Installer/linux/routines.sh
+++ VirtualBox-7.2.0/src/VBox/Installer/linux/routines.sh
@@ -483,6 +483,7 @@ maybe_run_python_bindings_installer() {
python3.10 \
python3.11 \
python3.12 \
+ python3.13 \
python3 \
python"
Index: VirtualBox-7.2.0/src/libs/xpcom18a4/python/Makefile.kmk
===================================================================
--- VirtualBox-7.2.0.orig/src/libs/xpcom18a4/python/Makefile.kmk
+++ VirtualBox-7.2.0/src/libs/xpcom18a4/python/Makefile.kmk
@@ -658,6 +658,27 @@ ifndef VBOX_ONLY_SDK
endif
endif
+ ifdef VBOX_PYTHON313_INC
+ #
+ # Python 3.13 version (implicitly with pymalloc)
+ #
+ DLLS += VBoxPython3_13
+ VBoxPython3_13_EXTENDS = VBoxPythonBase
+ VBoxPython3_13_EXTENDS_BY = appending
+ VBoxPython3_13_INCS = $(VBOX_PYTHON313_INC)
+ VBoxPython3_13_LIBS = $(VBOX_PYTHON313_LIB)
+
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
+ ifdef VBOX_PYTHON313_LIB_X86
+ DLLS += VBoxPython3_13_x86
+ VBoxPython3_13_x86_EXTENDS = VBoxPythonBase_x86
+ VBoxPython3_13_x86_EXTENDS_BY = appending
+ VBoxPython3_13_x86_INCS = $(VBOX_PYTHON313_INC)
+ VBoxPython3_13_x86_LIBS = $(VBOX_PYTHON313_LIB_X86)
+ endif
+ endif
+ endif
+
ifdef VBOX_PYTHONDEF_INC
#
# Python without versioning
@@ -700,7 +721,7 @@ ifndef VBOX_ONLY_SDK
# TODO: ASSUMING that we don't need a different headers for pymalloc
# ('m' builds < 3.8) and CRT malloc.
#
- VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 37 38 39 310 311 312 34 33 \
+ VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 37 38 39 310 311 312 313 34 33 \
,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,)))
ifneq ($(VBOX_PYTHON_LIMITED_API_VER),)
DLLS += VBoxPython3
Index: VirtualBox-7.2.0/src/libs/xpcom18a4/python/gen_python_deps.py
===================================================================
--- VirtualBox-7.2.0.orig/src/libs/xpcom18a4/python/gen_python_deps.py
+++ VirtualBox-7.2.0/src/libs/xpcom18a4/python/gen_python_deps.py
@@ -29,7 +29,7 @@ if sys.version_info >= (3, 10):
else:
from distutils.version import StrictVersion as Version
-versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.9", "3.10", "3.11", "3.12" ]
+versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13" ]
prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
known = {}

View File

@@ -1,38 +1,7 @@
-------------------------------------------------------------------
Wed Oct 22 10:52:35 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
Mon Aug 25 11:50:21 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- 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.
- Build python bindings for python313
-------------------------------------------------------------------
Fri Aug 15 14:46:51 UTC 2025 - Jan Engelhardt <jengelh@inai.de>

View File

@@ -15,6 +15,7 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if "@BUILD_FLAVOR@" == "kmp"
# macros for virtualbox-kmp
%define main_package 0
@@ -54,22 +55,15 @@
%endif
# If you want to disable building Python parts, just set this to %%nil
%if 0%{?suse_version} == 1600
# 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
%global mypython python313
%if "%mypython" != ""
%global __mypython %{expand:%%__%{mypython}}
%global mypython_sitelib %{expand:%%%{mypython}_sitelib}
%global __mypython %{expand:%%__%{mypython}}
%global mypython_sitelib %{expand:%%%{mypython}_sitelib}
%endif
Name: virtualbox%{?dash}%{?name_suffix}
Version: 7.2.4
%define rversion 7.2.4
Version: 7.2.0
%define rversion 7.2.0
Release: 0
Summary: %{package_summary}
License: GPL-3.0-or-later
@@ -133,7 +127,8 @@ Patch10: fix_for_leap15.5.patch
Patch11: cxx17.patch
Patch12: host-source.patch
Patch20: gentoo-C23.patch
Patch21: curl-8.16.patch
# Build python bindings for python 3.13
Patch21: python313.patch
#
# Common BuildRequires for both virtualbox and virtualbox-kmp
BuildRequires: %{kernel_module_package_buildreqs}
@@ -164,7 +159,7 @@ ExclusiveArch: x86_64
%if 0%{?sle_version} != 120300
Source2: VirtualBox.appdata.xml
%endif
### Requirements for virtualbox main package ###
%if %{main_package}
BuildRequires: dmidecode
BuildRequires: e2fsprogs-devel
@@ -189,7 +184,7 @@ BuildRequires: sysuser-tools
BuildRequires: update-desktop-files
BuildRequires: which
BuildRequires: xorg-x11-server
BuildRequires: pkgconfig(Qt6Core) >= 6.8
BuildRequires: pkgconfig(Qt6Core)
BuildRequires: pkgconfig(Qt6DBus)
BuildRequires: pkgconfig(Qt6Gui)
BuildRequires: pkgconfig(Qt6Help)
@@ -244,12 +239,19 @@ Conflicts: %{name}-qt > %{version}
Conflicts: %{name}-websrv < %{version}
Conflicts: %{name}-websrv > %{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:
Provides: %{name}-ose = %{version}
Obsoletes: %{name}-ose < %{version}
%{?systemd_ordering}
%{?sysusers_requires}
%if 0%{?suse_version} > 1325
BuildRequires: libboost_headers-devel
%else
BuildRequires: boost-devel
%endif
%ifarch amd64 x86_64 ia32e em64t
%if 0%{?suse_version} && 0%{?suse_version} >= 1600
BuildRequires: gcc-32bit
@@ -263,8 +265,12 @@ BuildRequires: xorg-x11-libXext-devel-32bit
BuildRequires: xorg-x11-libXmu-devel-32bit
BuildRequires: xorg-x11-libXt-devel-32bit
%endif
%if ! 0%{?suse_version} > 1325
Requires(pre): net-tools-deprecated
%endif
# end of main_package
%endif
### Requirements for virtualbox-kmp ###
%if %{kmp_package}
BuildRequires: alsa-devel
BuildRequires: libiptc-devel
@@ -273,8 +279,9 @@ BuildRequires: libxml2-devel
Requires: ca-certificates
Requires: openSUSE-signkey-cert
%kernel_module_package -p %{SOURCE7} -n virtualbox -x kdump um xen pae xenpae pv
# end of kmp_package
%endif
### Description and subpackages of virtualbox main package ###
%if %{main_package}
%description
VirtualBox is a hosted hypervisor for x86 computers. It supports the
@@ -325,6 +332,9 @@ Provides: %{name}-ose-guest-tools = %{version}
Obsoletes: %{name}-ose-guest-tools < %{version}
Obsoletes: virtualbox-guest-x11 < %{version}
Obsoletes: xorg-x11-driver-virtualbox-ose < %{version}
%if ! 0%{?suse_version} > 1325
Requires(pre): net-tools-deprecated
%endif
%{?sysusers_requires}
%description guest-tools
@@ -457,17 +467,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
# NOT an autoconf configure script
./configure \
--enable-vnc \
--enable-vde \
--disable-kmods \
--with-linux="%{_prefix}" \
--disable-java \
--disable-docs \
--enable-webservice \
--enable-vnc \
--enable-vde \
--disable-kmods \
--with-linux="%{_prefix}" \
--disable-java \
--disable-docs \
--enable-webservice \
%if "%mypython" == ""
--disable-python \
--disable-python \
%endif
--with-makeself=%{_bindir}/true
--with-makeself=%{_bindir}/true
# configure actually warns we should source env.sh (which seems like it could influence the build...)
source ./env.sh
@@ -476,14 +486,14 @@ source ./env.sh
# 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
echo "build basic parts"
%{_bindir}/kmk %{?_smp_mflags} \
VBOX_GCC_WERR= \
VBOX_USE_SYSTEM_XORG_HEADERS=1 \
VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= \
TOOL_YASM_AS=yasm \
VBOX_BUILD_PUBLISHER=_SUSE \
TOOL_GCC3_CFLAGS="%{optflags}" TOOL_GCC3_CXXFLAGS="%{optflags}" \
VBOX_GCC_OPT="%{optflags}"
%{_bindir}/kmk %{?_smp_mflags} \
VBOX_GCC_WERR= \
VBOX_USE_SYSTEM_XORG_HEADERS=1 \
VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= \
TOOL_YASM_AS=yasm \
VBOX_BUILD_PUBLISHER=_SUSE \
TOOL_GCC3_CFLAGS="%{optflags}" TOOL_GCC3_CXXFLAGS="%{optflags}" \
VBOX_GCC_OPT="%{optflags}"
echo "build VNC extension pack"
# tar must use GNU, not POSIX, format here
@@ -551,17 +561,19 @@ 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 -d %{buildroot}%{_sysconfdir}/xdg/autostart/
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
%endif
echo "entering VNC extension install section"
cd out/linux.*/release/packages/
pushd out/linux.*/release/packages/
mkdir -p "%{buildroot}%{_datadir}/virtualbox/extensions/"
install -D -m 644 VNC-*.vbox-extpack "%{buildroot}%{_datadir}/virtualbox/extensions/VNC-%{rversion}.vbox-extpack"
cd -
popd
echo "entering virtualbox(-qt) install section"
# copy the main files to %%{_vbox_instdir}
cd out/linux.*/release/bin
pushd out/linux.*/release/bin
cp -a VBoxManage VBoxHeadless VBoxSDL VBoxNetNAT VBoxAutostart VBoxVolInfo \
VBoxBalloonCtrl webtest VBoxDTrace VBoxDbg.so \
VBoxDxVk.so UICommon.so vboximg-mount %{buildroot}%{_vbox_instdir}
@@ -601,42 +613,42 @@ mkdir -p %{buildroot}%{_usrsrc}/kernel-modules/additions
tar -jcf %{buildroot}%{_usrsrc}/kernel-modules/additions/guest_src.tar.bz2 additions/src
cp -a src %{buildroot}%{_usrsrc}/kernel-modules/virtualbox
install -m 644 %{SOURCE11} %{buildroot}%{_udevrulesdir}/60-vboxdrv.rules
cd -
popd
# install desktop file
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
# install appstream file
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
# create a menu entry
install -m 644 out/linux.*/release/bin/VBox.png %{buildroot}%{_datadir}/pixmaps/virtualbox.png
# 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 -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
install -m 644 %{SOURCE8} %{buildroot}%{_bindir}/update-extpack.sh
install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
install -m 644 %{SOURCE8} %{buildroot}%{_bindir}/update-extpack.sh
# Service files to load kernel modules on boot
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service
install -m 0755 %{SOURCE16} %{buildroot}%{_sbindir}/vboxconfig
install -m 0755 %{SOURCE17} %{buildroot}%{_sbindir}/vboxguestconfig
install -m 0755 %{SOURCE18} %{buildroot}%{_sbindir}/vbox-fix-usb-rules.sh
install -m 0755 %{SOURCE19} %{buildroot}%{_vbox_instdir}/vboxdrv.sh
install -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}/vboxweb-service.service
install -m 0755 %{SOURCE22} %{buildroot}%{_vbox_instdir}/vboxweb-service.sh
install -m 0644 %{SOURCE23} %{buildroot}%{_unitdir}/vboxautostart-service.service
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxautostart
install -m 0755 %{SOURCE24} %{buildroot}%{_vbox_instdir}/vboxautostart-service.sh
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv
install -m 0644 %{SOURCE15} %{buildroot}%{_unitdir}/vboxadd-service.service
install -m 0755 %{SOURCE16} %{buildroot}%{_sbindir}/vboxconfig
install -m 0755 %{SOURCE17} %{buildroot}%{_sbindir}/vboxguestconfig
install -m 0755 %{SOURCE18} %{buildroot}%{_sbindir}/vbox-fix-usb-rules.sh
install -m 0755 %{SOURCE19} %{buildroot}%{_vbox_instdir}/vboxdrv.sh
install -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}/vboxweb-service.service
install -m 0755 %{SOURCE22} %{buildroot}%{_vbox_instdir}/vboxweb-service.sh
install -m 0644 %{SOURCE23} %{buildroot}%{_unitdir}/vboxautostart-service.service
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxautostart
install -m 0755 %{SOURCE24} %{buildroot}%{_vbox_instdir}/vboxautostart-service.sh
# Init scripts to start virtualbox during boot
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}/vboxautostart-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxautostart-service.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}/vboxautostart-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxautostart-service.service
# config file for vboxdrv and vboxweb
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
@@ -656,9 +668,9 @@ install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh %{buildroot}%{_
%if "%mypython" != ""
echo "entering python-virtualbox install section"
cd out/linux.*/release/bin/sdk/installer/python
pushd out/linux.*/release/bin/sdk/installer/python
VBOX_INSTALL_PATH=%{_vbox_instdir} %{__mypython} vboxapisetup.py install --prefix=%{_prefix} --root=%{buildroot}
cd -
popd
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
%py3_compile %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom/python
@@ -667,29 +679,29 @@ cp -r out/linux.*/release/bin/sdk/bindings/xpcom/python %{buildroot}%{_vbox_inst
echo "entering virtualbox-devel install section"
cp -r out/linux.*/release/bin/sdk/bindings/auth %{buildroot}%{_vbox_instdir}/sdk/bindings
cd out/linux.*/release/bin/sdk/bindings/xpcom
pushd out/linux.*/release/bin/sdk/bindings/xpcom
cp -r include %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
cp -r idl %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
cp -r samples %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
cd -
popd
cp out/linux.*/release/bin/sdk/bindings/VirtualBox.xidl %{buildroot}%{_vbox_instdir}/sdk/bindings
echo "entering virtualbox-websrv install section"
cd out/linux.*/release/bin
pushd out/linux.*/release/bin
install -m 755 vboxwebsrv %{buildroot}%{_vbox_instdir}
install -m 755 webtest %{buildroot}%{_vbox_instdir}
cd -
popd
ln -sf %{_unitdir}/vboxweb-service.service %{buildroot}%{_unitdir}/multi-user.target.wants/vboxweb-service.service
echo "entering virtualbox-guest-desktop-icons install section"
install -d -m 755 %{buildroot}%{_datadir}/pixmaps/virtualbox
install -d -m 755 %{buildroot}%{_datadir}/pixmaps/virtualbox
cd src/VBox/Frontends/VirtualBox/images
pushd src/VBox/Frontends/VirtualBox/images
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
cd -
popd
install -Dm0644 vbox.conf %{buildroot}%{_sysusersdir}/vbox.conf
install -Dm0644 vbox-guest-tools.conf %{buildroot}%{_sysusersdir}/vbox-guest-tools.conf
@@ -707,6 +719,7 @@ install -Dm0644 vbox-guest-tools.conf %{buildroot}%{_sysusersdir}/vbox-guest-too
%service_add_pre vboxweb-service.service
%post
/sbin/ldconfig
#setup our sysconfig file /etc/sysconfig/vbox
%set_permissions %{_vbox_instdir}/VBoxNetNAT
%set_permissions %{_vbox_instdir}/VBoxNetDHCP
@@ -715,7 +728,7 @@ install -Dm0644 vbox-guest-tools.conf %{buildroot}%{_sysusersdir}/vbox-guest-too
%service_add_post vboxdrv.service vboxautostart-service.service
# add new autostart stuff to the existing default config, if missing
grep -q VBOXAUTOSTART %{_sysconfdir}/default/virtualbox || {
cat >> %{_sysconfdir}/default/virtualbox << EOF
cat >> %{_sysconfdir}/default/virtualbox << EOF
#
# -------------------------------------------------------------------------------------------------
# Autostart
@@ -727,8 +740,8 @@ EOF
}
for entry in %{_sysconfdir}/vbox/*.start
do
user=$(basename "$entry" .start)
[ "$user" = "*" ] && break
user=$(basename "$entry" .start)
[ "$user" = "*" ] && break
mv %{_sysconfdir}/vbox/user.start %{_sysconfdir}/vbox/autostart.d/.
done
@@ -770,6 +783,7 @@ VBoxManage extpack install --replace "${EXTPACK}" --accept-license="${ACCEPT}" >
%service_del_preun vboxweb-service.service
%postun
/sbin/ldconfig
# immediately restarting virtualbox may not work. As such wait for the next reboot to restart
%if ! %{defined service_del_postun_without_restart}
export DISABLE_RESTART_ON_UPDATE=yes
@@ -918,7 +932,9 @@ export DISABLE_RESTART_ON_UPDATE=yes
%dir %{_sysconfdir}/xdg
%dir %{_sysconfdir}/xdg/autostart
%{_sysconfdir}/xdg/autostart/vboxclient.desktop
%if 0%{?suse_version} > 1320 || 0%{?sle_version} == 120300
%dir /media
%endif
%if "%mypython" != ""
%files -n %{mypython}-%{name}
@@ -984,18 +1000,18 @@ rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
# guest modules : vboxguest,vboxsf,vboxvideo
echo "build kernel modules"
for vbox_module in kmp_host/vbox{drv,netflt,netadp} \
kmp_additions/vbox{guest,sf,video}; do
#get the module name from path
module_name=$(basename "$vbox_module")
kmp_additions/vbox{guest,sf,video}; do
#get the module name from path
module_name=$(basename "$vbox_module")
# go through the all flavors (desktop,default ...)
for flavor in %{flavors_to_build}; do
# go through the all flavors (desktop,default ...)
for flavor in %{flavors_to_build}; do
# delete old build dir for sure
rm -rf modules_build_dir/${module_name}_${flavor}
if [ "$module_name" = "vboxdrv" -o \
"$module_name" = "vboxguest" ] ; then
SYMBOLS=""
SYMBOLS=""
fi
# create build directory for specific flavor
mkdir -p modules_build_dir/$flavor
@@ -1006,21 +1022,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:
if [ "$module_name" = "vboxnetflt" -o \
"$module_name" = "vboxnetadp" ] ; then
cp $PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers \
$PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers"
cp $PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers \
$PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers"
fi
# copy vboxguest (for guest) module symbols which are used by vboxsf and vboxvideo km's:
# copy vboxguest (for guest) module symbols which are used by vboxsf and vboxvideo km's:
if [ "$module_name" = "vboxsf" -o \
"$module_name" = "vboxvideo" ] ; then
cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \
cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \
$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
# build the module for the specific flavor
%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
done
done
done
%install
@@ -1030,7 +1046,7 @@ for module_name in vbox{drv,netflt,netadp,guest,sf,video}
do
#and through all flavors
for flavor in %{flavors_to_build}; do
make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name
make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name
done
done
# kmp_package