Compare commits
2 Commits
factory
...
python313-
| Author | SHA256 | Date | |
|---|---|---|---|
| 57db7db36d | |||
| 2d6eb3f435 |
BIN
VirtualBox-7.2.0-patched.tpxz
LFS
Normal file
BIN
VirtualBox-7.2.0-patched.tpxz
LFS
Normal file
Binary file not shown.
BIN
VirtualBox-7.2.4-patched.tpxz
LFS
BIN
VirtualBox-7.2.4-patched.tpxz
LFS
Binary file not shown.
@@ -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
79
python313.patch
Normal 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 = {}
|
||||
|
||||
@@ -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>
|
||||
|
||||
186
virtualbox.spec
186
virtualbox.spec
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user