1
0
forked from pool/virtualbox

Accepting request 306209 from Virtualization

1

OBS-URL: https://build.opensuse.org/request/show/306209
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virtualbox?expand=0&rev=97
This commit is contained in:
Dominique Leuenberger 2015-05-11 15:19:12 +00:00 committed by Git OBS Bridge
commit 6da7424967
4 changed files with 189 additions and 78 deletions

View File

@ -3,6 +3,9 @@ VBOX_WITH_TESTSUITE =
VBOX_WITH_ORIGIN :=
VBOX_WITH_REGISTRATION_REQUEST =
VBOX_WITH_UPDATE_REQUEST =
VBOX_WITH_INSTALLER = 1
VBOX_WITH_LINUX_ADDITIONS = 1
VBOX_WITH_X11_ADDITIONS = 1
VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)

59
virtualbox-system-x.patch Normal file
View File

@ -0,0 +1,59 @@
Description: Build the X.Org driver only for the selected system X Server version.
Author: Michael Meskes <meskes@debian.org>, Felix Geyer <fgeyer@debian.org>
Index: virtualbox/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
===================================================================
--- virtualbox.orig/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk 2013-11-19 04:35:17.181627034 -0500
+++ virtualbox/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk 2013-11-19 04:36:33.913630598 -0500
@@ -40,8 +40,6 @@
VBoxGuestR3LibShared
ifndef VBOX_ONLY_TESTSUITE
if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd)
- LIBRARIES += \
- VBoxGuestR3LibXFree86
endif
if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
LIBRARIES += \
Index: virtualbox/src/VBox/Additions/common/crOpenGL/Makefile.kmk
===================================================================
--- virtualbox.orig/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2013-11-19 04:35:17.181627034 -0500
+++ virtualbox/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2013-11-19 04:35:17.181627034 -0500
@@ -74,18 +74,12 @@
VBoxOGL_INCS = .
if1of ($(KBUILD_TARGET), linux solaris freebsd)
VBoxOGL_INCS += \
- $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \
- $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \
- $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \
- $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \
- $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \
- $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \
- $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \
- $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \
- $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \
- $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \
+ /usr/include/x11 \
+ /usr/include/xorg \
+ /usr/include/pixman-1 \
$(VBOX_MESA_INCS) \
- $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13
+ /usr/include/drm \
+ /usr/include/libdrm
VBoxOGL_DEFS += VBOX_NO_NATIVEGL
endif
@@ -215,10 +209,10 @@
$(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB)
if1of ($(KBUILD_TARGET), linux solaris freebsd)
VBoxOGL_LIBS += \
- $(PATH_STAGE_LIB)/libXcomposite.so \
- $(PATH_STAGE_LIB)/libXdamage.so \
- $(PATH_STAGE_LIB)/libXfixes.so \
- $(PATH_STAGE_LIB)/libXext.so
+ Xcomposite \
+ Xdamage \
+ Xfixes \
+ Xext
ifdef VBoxOGL_FAKEDRI
ifeq ($(KBUILD_TARGET), freebsd)
VBoxOGL_LIBS += \

View File

@ -1,3 +1,33 @@
-------------------------------------------------------------------
Sun May 10 10:47:58 UTC 2015 - bwiedemann@suse.com
- Provide host-kmp src for use with custom kernels (bnc#925663)
-------------------------------------------------------------------
Wed May 6 20:35:29 UTC 2015 - tchvatal@suse.com
- Create groups properly and also create vboxsf and vboxguest on
guest additions bnc#927708
-------------------------------------------------------------------
Wed May 6 16:52:56 UTC 2015 - tchvatal@suse.com
- Build with system libs for X instead of localy built ones.
This should fix bnc#929697
- Adds patch:
* virtualbox-system-x.patch
-------------------------------------------------------------------
Wed May 6 15:51:43 UTC 2015 - tchvatal@suse.com
- Split kmk call to multiple lines
-------------------------------------------------------------------
Wed May 6 15:40:52 UTC 2015 - tchvatal@suse.com
- Reorder alignment of buildroot for various install commands so it
does not look so fuzzy
-------------------------------------------------------------------
Mon Apr 20 11:10:16 UTC 2015 - tchvatal@suse.com

View File

@ -55,6 +55,8 @@ Patch3: vbox-vboxweb-init-script.diff
#file :http://www.virtualbox.org/browser/trunk/src/VBox/Devices/PC/vbox.ds
#see thread : http://lists.freebsd.org/pipermail/freebsd-acpi/2010-October/006795.html
Patch6: vbox-smc-napa.diff
#PATCH-FIX-OPENSUSE: Use system X libraries and do not build local things
Patch4: virtualbox-system-x.patch
#fix build of Python and dev package on openSUSE 11.3
Patch8: vbox-python-detection.diff
#deprecated old-style C++ service proxies and objects,we have to use soapcpp2 -z1 flag
@ -85,7 +87,6 @@ BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: glibc-devel-static
#gsoap,libopenssl and java needed for building webservice
BuildRequires: gsoap-devel
BuildRequires: java-devel >= 1.6.0
BuildRequires: kbuild >= 0.1.9998svn2689
@ -108,11 +109,25 @@ BuildRequires: udev
BuildRequires: update-desktop-files
BuildRequires: which
BuildRequires: xorg-x11
BuildRequires: xorg-x11-devel
BuildRequires: xorg-x11-server
BuildRequires: xorg-x11-server-sdk
BuildRequires: yasm
BuildRequires: zlib-devel-static
BuildRequires: pkgconfig(fontsproto)
BuildRequires: pkgconfig(randrproto)
BuildRequires: pkgconfig(renderproto)
BuildRequires: pkgconfig(resourceproto)
BuildRequires: pkgconfig(scrnsaverproto)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xau)
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xdmcp)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xextproto)
BuildRequires: pkgconfig(xf86driproto)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xineramaproto)
BuildRequires: pkgconfig(xproto)
Requires: %{name}-host-kmp = %{version}
Requires(post): sysvinit(syslog)
Requires(pre): permissions
@ -238,6 +253,20 @@ Obsoletes: %{name}-ose-devel < %{version}
Development file for %{name}
###########################################
%package host-source
Summary: Source files for %{name} kernel modules
Group: Development/Sources
Requires: %{name} = %{version}
BuildArch: noarch
Requires: gcc
Requires: make
%description host-source
Source files for %{name} kernel modules
These can be built for custom kernels using
cd /usr/src/kernel-modules/virtualbox ; make ; make install
###########################################
%package guest-desktop-icons
Summary: Icons for guest desktop files
Group: System/Emulators/PC
@ -254,6 +283,7 @@ This package contains icons for guest desktop files that were created on the des
%patch1
%patch2
%patch3 -p1
%patch4 -p1
%patch6 -p1
%patch8 -p1
%patch9 -p1
@ -295,13 +325,15 @@ rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
# --nofatal try to avoid build fail caused by missing makeself package
# NOT an autoconf configure macro
./configure \
--enable-vnc \
--enable-vde \
--disable-kmods \
--disable-java \
--disable-docs \
--nofatal \
--enable-webservice
--ose \
--enable-vnc \
--enable-vde \
--disable-kmods \
--with-linux="/usr" \
--disable-java \
--disable-docs \
--nofatal \
--enable-webservice
# configure actually warns we should source env.sh (which seems like it could influence the build...)
source ./env.sh
@ -310,7 +342,16 @@ 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_JAVA_HOME=%{_sysconfdir}/alternatives/java_sdk_openjdk/ VBOX_GCC_WERR= KBUILD_VERBOSE=2 VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= TOOL_YASM_AS=yasm VBOX_PATH_PACKAGE_DOCS=%{_docdir}/virtualbox all
%{_bindir}/kmk %{?_smp_mflags} \
VBOX_GCC_WERR= \
KBUILD_VERBOSE=2 \
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}"
#
# build kernel modules for guest and host (check novel-kmp package as example)
# host modules : vboxdrv,vboxnetflt,vboxnetadp
@ -361,7 +402,6 @@ install -d -m 755 %{buildroot}%{_datadir}/virtualbox/nls
install -d -m 755 %{buildroot}%{_datadir}/pixmaps
install -d -m 755 %{buildroot}%{_datadir}/applications
install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
#%__install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/glue
install -d -m 755 %{buildroot}%{_vbox_instdir}/components
install -d -m 755 %{buildroot}%{_libdir}/dri
install -d -m 755 %{buildroot}%{_libdir}/xorg/modules/drivers
@ -390,16 +430,11 @@ done
###########################################
echo "entering guest-tools install section"
###########################################
install -m 755 out/linux.*/release/bin/additions/VBoxControl \
%{buildroot}%{_bindir}/VBoxControl
install -m 755 out/linux.*/release/bin/additions/VBoxService \
%{buildroot}%{_bindir}/VBoxService
install -m 755 out/linux.*/release/bin/additions/mount.vboxsf \
%{buildroot}/sbin/mount.vboxsf
install -m 744 src/VBox/Additions/linux/installer/vboxadd.sh \
%{buildroot}%{_sysconfdir}/init.d/vboxadd
ln -s %{_sysconfdir}/init.d/vboxadd \
%{buildroot}%{_sbindir}/rcvboxadd
install -m 755 out/linux.*/release/bin/additions/VBoxControl %{buildroot}%{_bindir}/VBoxControl
install -m 755 out/linux.*/release/bin/additions/VBoxService %{buildroot}%{_bindir}/VBoxService
install -m 755 out/linux.*/release/bin/additions/mount.vboxsf %{buildroot}/sbin/mount.vboxsf
install -m 744 src/VBox/Additions/linux/installer/vboxadd.sh %{buildroot}%{_sysconfdir}/init.d/vboxadd
ln -s %{_sysconfdir}/init.d/vboxadd %{buildroot}%{_sbindir}/rcvboxadd
# udev rule for guest (virtualbox-guest-tools)
install -m 644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/60-vboxguest.rules
#
@ -409,23 +444,8 @@ echo "entering guest-x11 install section"
pushd out/linux.*/release/bin/additions/
#VBoxClient daemon (support for clipboard,autoresize,seamless windows)
install -m 755 VBoxClient %{buildroot}%{_bindir}
# xorg drivers for mouse and videos check suse version to add propper driver
# check the patch https://www.virtualbox.org/changeset/38784, regarding the
# dropped xorg mouse driver in >= 1130
%if 0%{?suse_version} > 1320
install -m 755 vboxvideo_drv_117.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if 0%{?suse_version} >= 1315
install -m 755 vboxvideo_drv_116.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%endif
%if 0%{?suse_version} == 1310
install -m 755 vboxvideo_drv_114.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%endif
%endif
# xorg drivers for video
install -m 755 vboxvideo_drv_system.so %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
popd
# VBoxOGL* libs for guest-x11 subpackage
install -m 644 out/linux.*/release/bin/additions/VBoxOGL*.so \
@ -433,8 +453,7 @@ install -m 644 out/linux.*/release/bin/additions/VBoxOGL*.so \
# make link for dri lib
ln -s %{_libdir}/VBoxOGL.so %{buildroot}%{_libdir}/dri/vboxvideo_dri.so
# install init script which start VBoxClient daemon (support for clipboard,autoresize,seamless windows)
install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient \
%{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh
install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh
##############################################
echo "entering virtualbox(-qt) install section"
@ -443,41 +462,40 @@ echo "entering virtualbox(-qt) install section"
pushd out/linux.*/release/bin
install -m 755 VBoxManage %{buildroot}%{_vbox_instdir}
install -m 755 VBoxHeadless %{buildroot}%{_vbox_instdir}
install -m 755 VBoxSDL %{buildroot}%{_vbox_instdir}
install -m 755 VBoxSDL %{buildroot}%{_vbox_instdir}
install -m 755 VBoxTunctl %{buildroot}%{_vbox_instdir}
# 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}/VBoxHeadless \
%{buildroot}%{_bindir}/VBoxHeadless
ln -s %{_vbox_instdir}/VBoxSDL %{buildroot}%{_bindir}/VBoxSDL
ln -s %{_vbox_instdir}/VBoxHeadless %{buildroot}%{_bindir}/VBoxHeadless
ln -s %{_vbox_instdir}/VBoxSDL %{buildroot}%{_bindir}/VBoxSDL
ln -s %{_vbox_instdir}/VBoxTunctl %{buildroot}%{_bindir}/VBoxTunctl
install -m 755 VBoxSVC %{buildroot}%{_vbox_instdir}
install -m 755 VBoxXPCOMIPCD %{buildroot}%{_vbox_instdir}
install -m 755 VBoxSVC %{buildroot}%{_vbox_instdir}
install -m 755 VBoxXPCOMIPCD %{buildroot}%{_vbox_instdir}
install -m 755 VBoxExtPackHelperApp %{buildroot}%{_vbox_instdir}
install -m 755 VBoxTestOGL %{buildroot}%{_vbox_instdir}
install -m 755 VBoxPermissionMessage \
%{buildroot}%{_vbox_instdir}
install -m 755 VBoxPermissionMessage %{buildroot}%{_vbox_instdir}
install -m 755 VBoxNetDHCP %{buildroot}%{_vbox_instdir}
install -m 755 VBoxNetAdpCtl %{buildroot}%{_vbox_instdir}
install -m 755 VirtualBox %{buildroot}%{_vbox_instdir}
install -m 755 VBoxEFI*.fd %{buildroot}%{_vbox_instdir}
install -m 755 VBoxSysInfo.sh %{buildroot}%{_vbox_instdir}
install -m 755 VBoxSysInfo.sh %{buildroot}%{_vbox_instdir}
install -m 644 *.so %{buildroot}%{_vbox_instdir}
install -m 644 V*.gc %{buildroot}%{_vbox_instdir}
install -m 644 V*.gc %{buildroot}%{_vbox_instdir}
install -m 644 *.r0 %{buildroot}%{_vbox_instdir}
install -m 644 components/* %{buildroot}%{_vbox_instdir}/components/
# install languages
install -m 644 nls/* %{buildroot}%{_datadir}/virtualbox/nls/
# install kmp src
mkdir -p %{buildroot}%{_usrsrc}/kernel-modules
cp -a src %{buildroot}%{_usrsrc}/kernel-modules/virtualbox
popd
# 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'
# 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 udev rule for host (virtualbox)
install -m 644 %{SOURCE2} %{buildroot}%{_udevrulesdir}/60-vboxdrv.rules
# install config with session shutdown defs
@ -489,25 +507,20 @@ install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
# TODO: some of this stuff breaks the fillup macros below?
sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \
src/VBox/Installer/linux/vboxdrv.sh.in
install -m 744 src/VBox/Installer/linux/vboxdrv.sh.in \
%{buildroot}%{_sysconfdir}/init.d/vboxdrv
ln -s %{_sysconfdir}/init.d/vboxdrv \
%{buildroot}%{_sbindir}/rcvboxdrv
install -m 744 src/VBox/Installer/linux/vboxdrv.sh.in %{buildroot}%{_sysconfdir}/init.d/vboxdrv
ln -s %{_sysconfdir}/init.d/vboxdrv %{buildroot}%{_sbindir}/rcvboxdrv
# Init script to start virtual boxes during boot
install -m 755 %{SOURCE12} %{buildroot}%{_sysconfdir}/init.d/vboxes
ln -s %{_sysconfdir}/init.d/vboxes \
%{buildroot}%{_sbindir}/rcvboxes
install -m 755 %{SOURCE12} %{buildroot}%{_sysconfdir}/init.d/vboxes
ln -s %{_sysconfdir}/init.d/vboxes %{buildroot}%{_sbindir}/rcvboxes
# sysconfig file intended for vboxes script
install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates
install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox
install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates
install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox
# config file for vboxdrv script and vboxweb
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
echo -e "#settings for vboxwebsrn\nVBOXWEB_USER=root" > \
%{buildroot}%{_sysconfdir}/vbox/vbox.cfg
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
echo -e "#settings for vboxwebsrn\nVBOXWEB_USER=root" > %{buildroot}%{_sysconfdir}/vbox/vbox.cfg
# install udev helper script for creating usb devices
install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh \
%{buildroot}%{_udevrulesdir}/../VBoxCreateUSBNode.sh
install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh %{buildroot}%{_udevrulesdir}/../VBoxCreateUSBNode.sh
######################################################
echo "entrering python-virtualbox install section"
######################################################
@ -536,16 +549,13 @@ cp out/linux.*/release/bin/sdk/bindings/VirtualBox.xidl %{buildroot}%{_vbox_inst
echo "entering virtualbox-websrv install section"
######################################################
pushd out/linux.*/release/bin
install -m 755 vboxwebsrv %{buildroot}%{_vbox_instdir}
install -m 755 webtest %{buildroot}%{_vbox_instdir}
install -m 755 vboxwebsrv %{buildroot}%{_vbox_instdir}
install -m 755 webtest %{buildroot}%{_vbox_instdir}
popd
sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \
src/VBox/Installer/linux/vboxweb-service.sh
install -m 744 src/VBox/Installer/linux/vboxweb-service.sh \
%{buildroot}%{_sysconfdir}/init.d/vboxweb-service
ln -s %{_sysconfdir}/init.d/vboxweb-service \
%{buildroot}%{_sbindir}/rcvboxweb-service
sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" src/VBox/Installer/linux/vboxweb-service.sh
install -m 744 src/VBox/Installer/linux/vboxweb-service.sh %{buildroot}%{_sysconfdir}/init.d/vboxweb-service
ln -s %{_sysconfdir}/init.d/vboxweb-service %{buildroot}%{_sbindir}/rcvboxweb-service
#
######################################################
echo "entering virtualbox-guest-desktop-icons install section"
@ -575,8 +585,12 @@ popd
######################################################
%pre
echo "creating group vboxusers..."
groupadd -r vboxusers 2>/dev/null || :
getent group vboxusers >/dev/null || groupadd -r vboxusers
%pre guest-tools
# Add groups for seamless mode and shared folders:
getent group vboxguest >/dev/null || groupadd -r vboxguest
getent group vboxsf >/dev/null || groupadd -r vboxsf
#######################################################
# scriptlets - post
@ -766,6 +780,11 @@ exit 0
%{_vbox_instdir}/sdk/bindings/xpcom/samples
%{_vbox_instdir}/sdk/bindings/auth
%files host-source
%defattr(-,root, root)
%dir %{_usrsrc}/kernel-modules
%{_usrsrc}/kernel-modules/virtualbox
%files websrv
%defattr(-,root, root)
%{_vbox_instdir}/vboxwebsrv