1
0
forked from pool/virtualbox

- Cleanup with spec-cleaner

- Remove really obsolete conditionals due to buildstatus everywhere

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=171
This commit is contained in:
Tomáš Chvátal 2015-01-28 12:40:06 +00:00 committed by Git OBS Bridge
parent 5e04d6bb1f
commit 51a0ec4f7b
2 changed files with 206 additions and 302 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Wed Jan 28 11:07:30 UTC 2015 - tchvatal@suse.com
- Cleanup with spec-cleaner
- Remove really obsolete conditionals due to buildstatus everywhere
-------------------------------------------------------------------
Wed Dec 17 20:37:43 UTC 2014 - coolo@suse.com

View File

@ -1,7 +1,7 @@
#
# spec file for package virtualbox
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,84 +16,9 @@
#
%define _vbox_instdir /usr/lib/virtualbox
%if 0%{?suse_version} >= 1230
%define _udevrulesdir /usr/lib/udev/rules.d
%else
%define _udevrulesdir /lib/udev/rules.d
%endif
%define _vbox_instdir %{_libexecdir}/virtualbox
%define _udevrulesdir %{_libexecdir}/udev/rules.d
Name: virtualbox
%if %suse_version > 1230
BuildRequires: which
%endif
BuildRequires: acpica
BuildRequires: dmidecode
BuildRequires: fdupes
#drop hal dependency
%if %suse_version < 1210
BuildRequires: hal-devel
%endif
%if %suse_version > 1210
BuildRequires: sed
%endif
%if %suse_version >= 1210
BuildRequires: glibc-devel-static
%endif
#gsoap,libopenssl and java needed for building webservice
BuildRequires: gsoap-devel
BuildRequires: java-devel >= 1.6.0
BuildRequires: libgsoap-devel
BuildRequires: libopenssl-devel
#
BuildRequires: LibVNCServer-devel
BuildRequires: SDL-devel
BuildRequires: alsa-devel
BuildRequires: bin86
BuildRequires: boost-devel
BuildRequires: dev86
BuildRequires: e2fsprogs-devel
BuildRequires: gcc
BuildRequires: gcc-c++
##### virtualbox 4.2.0 does not work with older versions (check in makefile),
##### and fails with newer versions (tested with rev2662)
BuildRequires: device-mapper-devel
BuildRequires: kbuild >= 0.1.9998svn2689
BuildRequires: kernel-syms
BuildRequires: libcap-devel
BuildRequires: libcurl-devel
BuildRequires: libidl-devel
BuildRequires: libqt4-devel
BuildRequires: libvpx-devel
BuildRequires: libxslt-devel
BuildRequires: module-init-tools
BuildRequires: pam-devel
BuildRequires: pulseaudio-devel
BuildRequires: python-devel
BuildRequires: quilt
BuildRequires: udev
BuildRequires: update-desktop-files
BuildRequires: xorg-x11
BuildRequires: xorg-x11-devel
BuildRequires: xorg-x11-server
BuildRequires: xorg-x11-server-sdk
BuildRequires: yasm
BuildRequires: zlib-devel-static
%ifarch amd64 x86_64 ia32e em64t
#drop hal dependency
%if %suse_version < 1210
BuildRequires: hal-32bit
%endif
BuildRequires: gcc-32bit
BuildRequires: gcc-c++-32bit
BuildRequires: xorg-x11-libX11-devel-32bit
BuildRequires: xorg-x11-libXext-devel-32bit
BuildRequires: xorg-x11-libXmu-devel-32bit
BuildRequires: xorg-x11-libXt-devel-32bit
%endif
#
ExclusiveArch: %ix86 x86_64
Version: 4.3.20
Release: 0
Summary: VirtualBox is an Emulator
@ -144,17 +69,67 @@ Patch100: vbox-no-build-dates.diff
Patch101: vbox-default-os-type.diff
#disable update in vbox gui
Patch103: vbox-disable-updates.diff
#use pie/fPIE for setuid binaries (bnc#743143)
#use pie/fPIE for setuid binaries (bnc#743143)
Patch104: vbox-fpie.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: pwdutils permissions
Requires: %{name}-host-kmp = %version
Recommends: %{name}-gui = %version
BuildRequires: LibVNCServer-devel
BuildRequires: SDL-devel
BuildRequires: acpica
BuildRequires: alsa-devel
BuildRequires: bin86
BuildRequires: boost-devel
BuildRequires: dev86
BuildRequires: device-mapper-devel
BuildRequires: dmidecode
BuildRequires: e2fsprogs-devel
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
BuildRequires: kernel-syms
BuildRequires: libcap-devel
BuildRequires: libcurl-devel
BuildRequires: libgsoap-devel
BuildRequires: libidl-devel
BuildRequires: libopenssl-devel
BuildRequires: libqt4-devel
BuildRequires: libvpx-devel
BuildRequires: libxslt-devel
BuildRequires: module-init-tools
BuildRequires: pam-devel
BuildRequires: pulseaudio-devel
BuildRequires: python-devel
BuildRequires: quilt
BuildRequires: sed
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
Requires: %{name}-host-kmp = %{version}
Requires(post): sysvinit(syslog)
Requires(pre): permissions
Requires(pre): pwdutils
Recommends: %{name}-gui = %{version}
#rename from ose version:
Provides: %{name}-ose = %version
Obsoletes: %{name}-ose < %version
%if 0%{suse_version} > 1130
PreReq: sysvinit(syslog)
Provides: %{name}-ose = %{version}
Obsoletes: %{name}-ose < %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64
%ifarch amd64 x86_64 ia32e em64t
BuildRequires: gcc-32bit
BuildRequires: gcc-c++-32bit
BuildRequires: xorg-x11-libX11-devel-32bit
BuildRequires: xorg-x11-libXext-devel-32bit
BuildRequires: xorg-x11-libXmu-devel-32bit
BuildRequires: xorg-x11-libXt-devel-32bit
%endif
%description
@ -163,22 +138,24 @@ for enterprise customers, it is also the only professional solution
that is freely available as Open Source Software under the terms of the
GNU Public License (GPL).
##########################################
%package qt
Summary: Qt GUI part for %{name}
Group: System/Emulators/PC
Requires: %{name} = %{version}
Requires(pre): permissions
Provides: %{name}-gui = %{version}
#this is needed during update to trigger installing qt subpackage
#http://en.opensuse.org/openSUSE:Upgrade_dependencies_explanation#Splitting_and_Merging
Provides: %{name}-ose:/usr/lib/virtualbox/VirtualBox.so
Provides: %{name}-ose:%{_libexecdir}/virtualbox/VirtualBox.so
#rename from "ose" version:
Provides: %{name}-ose-qt = %version
Obsoletes: %{name}-ose-qt < %version
PreReq: permissions
Provides: %{name}-ose-qt = %{version}
Obsoletes: %{name}-ose-qt < %{version}
%description qt
Qt GUI part for %{name}.
#########################################
%package websrv
Summary: WebService GUI part for %{name}
Group: System/Emulators/PC
@ -188,73 +165,79 @@ Provides: %{name}-gui = %{version}
%description websrv
websrv GUI part for %{name}.
#########################################
%package host-KMP
Summary: Host kernel module for VirtualBox
Group: System/Emulators/PC
# SUSE specify macro to define host kmp package
%{?suse_kernel_module_package:%suse_kernel_module_package -p %{S:7} -n %{name}-host -f %{S:5} kdump um xen xenpae}
%{?suse_kernel_module_package:%suse_kernel_module_package -p %{SOURCE7} -n %{name}-host -f %{SOURCE5} kdump um xen xenpae}
%description host-KMP
This package contains the kernel-module for VirtualBox.
##########################################
%package guest-KMP
Summary: Guest kernel modules for VirtualBox
Group: System/Emulators/PC
#SUSE specify macro to define guest kmp package
%{?suse_kernel_module_package:%suse_kernel_module_package -p %{S:8} -n %{name}-guest -f %{S:6} kdump um xen xenpae}
%{?suse_kernel_module_package:%suse_kernel_module_package -p %{SOURCE8} -n %{name}-guest -f %{SOURCE6} kdump um xen xenpae}
%description guest-KMP
This package contains the kernel-module for VirtualBox.
##########################################
%package guest-x11
Summary: VirtualBox X11 drivers for mouse and video
Group: System/X11/Servers/XF86_4
Requires: %{name}-guest-kmp = %version
Requires: %{name}-guest-kmp = %{version}
Supplements: modalias(xorg-x11-server:pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
#rename from xorg-x11-driver-virtualbox-ose:
Provides: xorg-x11-driver-virtualbox-ose = %version
Obsoletes: xorg-x11-driver-virtualbox-ose < %version
Provides: xorg-x11-driver-virtualbox-ose = %{version}
Obsoletes: xorg-x11-driver-virtualbox-ose < %{version}
%description guest-x11
VirtualBox
This package contains X11 guest utilities and X11 guest mouse and video drivers
###########################################
%package guest-tools
Summary: VirtualBox guest tools
Group: System/Emulators/PC
Requires: %{name}-guest-kmp = %version
Requires: %{name}-guest-kmp = %{version}
Supplements: modalias(pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
#rename from "ose" version:
Provides: %{name}-ose-guest-tools = %version
Obsoletes: %{name}-ose-guest-tools < %version
Provides: %{name}-ose-guest-tools = %{version}
Obsoletes: %{name}-ose-guest-tools < %{version}
%description guest-tools
VirtualBox guest addition tools.
###########################################
%package -n python-%{name}
%package -n python-%{name}
Summary: Python bindings for %{name}
Group: Development/Libraries/Python
Requires: %{name} = %{version}
#rename from "ose" version:
Provides: python-%{name}-ose = %version
Obsoletes: python-%{name}-ose < %version
Provides: python-%{name}-ose = %{version}
Obsoletes: python-%{name}-ose < %{version}
%description -n python-%{name}
Python XPCOM bindings to %{name}. Used e.g. by vboxgtk package.
###########################################
%package devel
Summary: Devel files for %{name}
Group: Development/Libraries/Other
Requires: %{name} = %{version}
Requires: python-%{name} = %{version}
#rename from "ose" version:
Provides: %{name}-ose-devel = %version
Obsoletes: %{name}-ose-devel < %version
Provides: %{name}-ose-devel = %{version}
Obsoletes: %{name}-ose-devel < %{version}
%description devel
Development file for %{name}
###########################################
%package guest-desktop-icons
Summary: Icons for guest desktop files
Group: System/Emulators/PC
@ -265,6 +248,7 @@ BuildArch: noarch
%description guest-desktop-icons
This package contains icons for guest desktop files that were created on the desktop.
###########################################
%prep
%setup -q -n VirtualBox-%{version}
%patch1
@ -275,18 +259,18 @@ This package contains icons for guest desktop files that were created on the des
%patch9 -p1
%patch10 -p1
%patch99 -p1
%patch100
%patch100
%patch101 -p1
%patch103
%patch104 -p1
#copy user manual
%__cp %{S:1} UserManual.pdf
cp %{SOURCE1} UserManual.pdf
#copy kbuild config
%__cp %{S:10} LocalConfig.kmk
cp %{SOURCE10} LocalConfig.kmk
#
##########################
####workaround kmk_sed --v
#instead of kmk_sed use /usr/bin/sed because of bug http://svn.netlabs.org/kbuild/ticket/112,
#instead of kmk_sed use /usr/bin/sed because of bug http://svn.netlabs.org/kbuild/ticket/112,
#but we have to create wrapper which will handle --append and --outpout options which are not provided by /usr/bin/sed
cat >> kmk_sed <<EOF
#!/bin/bash
@ -302,6 +286,7 @@ echo "SED = $RPM_BUILD_DIR/VirtualBox-%{version}/kmk_sed" >> LocalConfig.kmk
####workaround kmk_sed --^
##########################
#
%build
#ensure we dont ever use them
rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
@ -324,7 +309,7 @@ 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"
/usr/bin/kmk %{?_smp_mflags} VBOX_JAVA_HOME=/etc/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=/usr/share/doc/packages/virtualbox all
%{_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
#
# build kernel modules for guest and host (check novel-kmp package as example)
# host modules : vboxdrv,vboxnetflt,vboxnetadp
@ -336,30 +321,30 @@ for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp,pci} \
module_name=$(basename "$vbox_module")
# 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
%__rm -rf modules_build_dir/${module_name}_${flavor}
rm -rf modules_build_dir/${module_name}_${flavor}
# create build directory for specific flavor
%__mkdir -p modules_build_dir/$flavor
mkdir -p modules_build_dir/$flavor
# copy sources which will be used to build vbox module in last step
%__cp -r $vbox_module/ modules_build_dir/$flavor/
cp -r $vbox_module/ modules_build_dir/$flavor/
# copy vboxdrv (for host) module symbols which are used by vboxnetflt and vboxnetadp km's:
if [ "$module_name" = "vboxnetflt" -o \
"$module_name" = "vboxnetadp" -o \
"$module_name" = "vboxpci" ] ; 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
fi
# copy vboxguest (for guest) module symbols which are used by vboxsf km:
if [ "$module_name" = "vboxsf" ]; 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
fi
# build the module for the specific flavor
%__make -C /usr/src/linux-obj/%_target_cpu/$flavor modules \
make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules \
M=$PWD/modules_build_dir/$flavor/$module_name
done
done
@ -368,256 +353,202 @@ done
#################################
echo "create directory structure"
#################################
%__install -d -m 755 %{buildroot}/sbin
%__install -d -m 755 %{buildroot}%{_bindir}
%__install -d -m 755 %{buildroot}%{_sbindir}
%__install -d -m 755 %{buildroot}%{_datadir}/virtualbox/nls
%__install -d -m 755 %{buildroot}%{_datadir}/pixmaps
%__install -d -m 755 %{buildroot}%{_datadir}/applications
#%if %suse_version >= 1130
# %__install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
#%else
#since 11.3 we don't use hal to detect vbox mouse
%if %suse_version < 1130
%__install -d -m 755 %{buildroot}%{_datadir}/hal/fdi/policy/20thirdparty
%endif
%__install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
install -d -m 755 %{buildroot}/sbin
install -d -m 755 %{buildroot}%{_bindir}
install -d -m 755 %{buildroot}%{_sbindir}
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
%__install -d -m 755 %{buildroot}%{_libdir}/xorg/modules/input
%__install -d -m 755 %{buildroot}%{_sysconfdir}/default
%__install -d -m 755 %{buildroot}%{_sysconfdir}/init.d
%__install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
%__install -d -m 755 %{buildroot}%{_udevrulesdir}
%__install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d
install -d -m 755 %{buildroot}%{_vbox_instdir}/components
install -d -m 755 %{buildroot}%{_libdir}/dri
install -d -m 755 %{buildroot}%{_libdir}/xorg/modules/drivers
install -d -m 755 %{buildroot}%{_libdir}/xorg/modules/input
install -d -m 755 %{buildroot}%{_sysconfdir}/default
install -d -m 755 %{buildroot}%{_sysconfdir}/init.d
install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
install -d -m 755 %{buildroot}%{_udevrulesdir}
install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d
####################################################################################
echo "entering virtualbox-kmp-guest and virtualbox-kmp-host install section"
####################################################################################
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=updates
#to install modules we use here similar steps like in build phase, go trought the all modules :
for module_name in vbox{drv,netflt,pci,netadp,guest,sf,video}
do
#and trought the all flavors
for flavor in %flavors_to_build; do
#to install modules use Makefile from /usr/src/linux-obj/%_target_cpu/$flavor and builds from $PWD/modules_build_dir/$flavor/$module_name
%__make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name
for flavor in %{flavors_to_build}; do
#to install modules use Makefile from %{_prefix}/src/linux-obj/%_target_cpu/$flavor and builds from $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
###########################################
echo "entering guest-tools install section"
###########################################
%__install -m 755 out/linux.*/release/bin/additions/VBoxControl \
install -m 755 out/linux.*/release/bin/additions/VBoxControl \
%{buildroot}%{_bindir}/VBoxControl
%__install -m 755 out/linux.*/release/bin/additions/VBoxService \
install -m 755 out/linux.*/release/bin/additions/VBoxService \
%{buildroot}%{_bindir}/VBoxService
%__install -m 755 out/linux.*/release/bin/additions/mount.vboxsf \
install -m 755 out/linux.*/release/bin/additions/mount.vboxsf \
%{buildroot}/sbin/mount.vboxsf
%__install -m 744 src/VBox/Additions/linux/installer/vboxadd.sh \
install -m 744 src/VBox/Additions/linux/installer/vboxadd.sh \
%{buildroot}%{_sysconfdir}/init.d/vboxadd
%__ln_s %{_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
install -m 644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/60-vboxguest.rules
#
##############################################################
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}
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 %suse_version >= 1320
%__install -m 755 vboxvideo_drv_116.so \
%if 0%{?suse_version} >= 1315
install -m 755 vboxvideo_drv_116.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if %suse_version == 1310
%__install -m 755 vboxvideo_drv_114.so \
%endif
%if 0%{?suse_version} == 1310
install -m 755 vboxvideo_drv_114.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if %suse_version == 1230
%__install -m 755 vboxvideo_drv_113.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if %suse_version == 1220
%__install -m 755 vboxvideo_drv_112.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if %suse_version == 1210
%__install -m 755 vboxvideo_drv_110.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if %suse_version == 1140
%__install -m 755 vboxvideo_drv_19.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if %suse_version == 1130
%__install -m 755 vboxvideo_drv_18.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%if %suse_version == 1120
%__install -m 755 vboxmouse_drv_16.so \
%{buildroot}%{_libdir}/xorg/modules/input/vboxmouse_drv.so
%__install -m 755 vboxvideo_drv_16.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%else
%__install -m 755 vboxmouse_drv_15.so \
%{buildroot}%{_libdir}/xorg/modules/input/vboxmouse_drv.so
%__install -m 755 vboxvideo_drv_15.so \
%{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%endif #if =1120
%endif #if =1130
%endif #if =1140
%endif #if =1210
%endif #if =1220
%endif #if =1230
%endif #if =1310
%endif #if >1310
%endif
popd
# VBoxOGL* libs for guest-x11 subpackage
%__install -m 644 out/linux.*/release/bin/additions/VBoxOGL*.so \
install -m 644 out/linux.*/release/bin/additions/VBoxOGL*.so \
%{buildroot}%{_libdir}
# make link for dri lib
%__ln_s %{_libdir}/VBoxOGL.so %{buildroot}%{_libdir}/dri/vboxvideo_dri.so
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 \
install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient \
%{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh
#%if %suse_version >= 1130
# add xorg config snipet to vbox mouse integration recognize
# %__install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/60-vboxmouse.conf
#%else
%if %suse_version < 1130
# hal policy file to autodetect the virtualbox mouse
%__install -m 644 src/VBox/Additions/linux/installer/90-vboxguest.fdi \
%{buildroot}%{_datadir}/hal/fdi/policy/20thirdparty/90-vboxguest.fdi
%endif
##############################################
echo "entering virtualbox(-qt) install section"
##############################################
# copy the main files to %{_vbox_instdir}
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 VBoxTunctl %{buildroot}%{_vbox_instdir}
install -m 755 VBoxManage %{buildroot}%{_vbox_instdir}
install -m 755 VBoxHeadless %{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 \
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}/VBoxTunctl %{buildroot}%{_bindir}/VBoxTunctl
%__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 \
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 VBoxExtPackHelperApp %{buildroot}%{_vbox_instdir}
install -m 755 VBoxTestOGL %{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 644 *.so %{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 -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 644 *.so %{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 -m 644 nls/* %{buildroot}%{_datadir}/virtualbox/nls/
popd
# install desktop file
%__install -m 644 out/linux.*/release/bin/virtualbox.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 \
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 -m 644 %{SOURCE2} %{buildroot}%{_udevrulesdir}/60-vboxdrv.rules
# 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 %{S:9} %{buildroot}%{_bindir}/VirtualBox
install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
# modify and install the vboxdrv init script
# TODO: some of this stuff breaks the fillup macros below?
%__sed -i "s|%NOLSB%|yes|g;s|%DEBIAN%||g;s|%PACKAGE%|virtualbox|g" \
sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \
src/VBox/Installer/linux/vboxdrv.sh.in
%__install -m 744 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 \
ln -s %{_sysconfdir}/init.d/vboxdrv \
%{buildroot}%{_sbindir}/rcvboxdrv
# Init script to start virtual boxes during boot
%__install -m 755 %{S:12} %{buildroot}%{_sysconfdir}/init.d/vboxes
%__ln_s %{_sysconfdir}/init.d/vboxes \
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 700 %{S:13} %{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
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 \
$RPM_BUILD_ROOT%{_udevrulesdir}/../VBoxCreateUSBNode.sh
%{buildroot}%{_udevrulesdir}/../VBoxCreateUSBNode.sh
######################################################
echo "entrering python-virtualbox install section"
######################################################
pushd out/linux.*/release/bin/sdk/installer
VBOX_INSTALL_PATH=%{_vbox_instdir} python vboxapisetup.py install --prefix=%{_prefix} --root=%{buildroot} --record-rpm=%{_tmppath}/SITE_FILES
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
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
%py_compile %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom/python
######################################################
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
%__cp -r include %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
%__cp -r idl %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
%__cp -r cbinding %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
%__cp -r samples %{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 cbinding %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
cp -r samples %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
popd
%__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"
######################################################
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" \
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 \
install -m 744 src/VBox/Installer/linux/vboxweb-service.sh \
%{buildroot}%{_sysconfdir}/init.d/vboxweb-service
%__ln_s %{_sysconfdir}/init.d/vboxweb-service \
ln -s %{_sysconfdir}/init.d/vboxweb-service \
%{buildroot}%{_sbindir}/rcvboxweb-service
#
######################################################
echo "entering virtualbox-guest-desktop-icons install section"
######################################################
%__install -d -m 755 %{buildroot}%{_datadir}/pixmaps/virtalbox
install -d -m 755 %{buildroot}%{_datadir}/pixmaps/virtalbox
pushd src/VBox/Frontends/VirtualBox/images
for icon in os_*.png; do
%__install -m 644 "$icon" %{buildroot}%{_datadir}/pixmaps/virtalbox/"$icon";
install -m 644 "$icon" %{buildroot}%{_datadir}/pixmaps/virtalbox/"$icon";
done
popd
#
@ -651,28 +582,18 @@ groupadd -r vboxusers 2>/dev/null || :
%fillup_and_insserv -f -y vboxdrv
#setup our sysconfig file /etc/sysconfig/vbox
%fillup_only -an vbox
%if %suse_version >= 1140
%set_permissions %{_vbox_instdir}/VBoxNetDHCP
%set_permissions %{_vbox_instdir}/VBoxNetAdpCtl
%set_permissions %{_vbox_instdir}/VBoxHeadless
%set_permissions %{_vbox_instdir}/VBoxSDL
%else
%run_permissions
%endif
%set_permissions %{_vbox_instdir}/VBoxNetDHCP
%set_permissions %{_vbox_instdir}/VBoxNetAdpCtl
%set_permissions %{_vbox_instdir}/VBoxHeadless
%set_permissions %{_vbox_instdir}/VBoxSDL
%post qt
%if %suse_version >= 1140
%set_permissions %{_vbox_instdir}/VirtualBox
%else
%run_permissions
%endif
%set_permissions %{_vbox_instdir}/VirtualBox
%verifyscript
%if %suse_version >= 1140
%verify_permissions -e %{_vbox_instdir}/VBoxNetDHCP
%endif
%verify_permissions -e %{_vbox_instdir}/VBoxNetDHCP
%verify_permissions -e %{_vbox_instdir}/VBoxNetAdpCtl
%verify_permissions -e %{_vbox_instdir}/VBoxHeadless
%verify_permissions -e %{_vbox_instdir}/VBoxHeadless
%verify_permissions -e %{_vbox_instdir}/VBoxSDL
%verifyscript qt
@ -715,12 +636,9 @@ exit 0
%postun websrv
%restart_on_update vboxweb-service
%insserv_cleanup
#
#
#######################################################
%clean
[ -d "%{buildroot}" -a "%{buildroot}" != "" ] && %__rm -rf "%{buildroot}"
%files
%defattr(-, root, root)
%doc UserManual.pdf
@ -769,7 +687,6 @@ exit 0
%{_vbox_instdir}/VBoxVMMPreload.so
#todo:double check - if this file should be assigned to the host side
%{_vbox_instdir}/VBoxHostChannel.so
#
%dir %{_vbox_instdir}/components
%{_vbox_instdir}/components/*.so
%{_vbox_instdir}/components/*.xpt
@ -784,15 +701,10 @@ exit 0
%{_sbindir}/rcvboxes
%{_sbindir}/rcvboxdrv
%{_udevrulesdir}/../VBoxCreateUSBNode.sh
%if %suse_version >= 1140
%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxNetDHCP
%else
%{_vbox_instdir}/VBoxNetDHCP
%endif
%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxNetDHCP
%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxNetAdpCtl
%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxHeadless
%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxSDL
#
%files qt
%defattr(-, root, root)
@ -807,7 +719,6 @@ exit 0
%{_vbox_instdir}/VirtualBox.so
%{_datadir}/pixmaps/virtualbox.png
%{_datadir}/applications/%{name}.desktop
#
%files guest-x11
%defattr(-, root, root)
@ -819,13 +730,6 @@ exit 0
%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%{_libdir}/dri/vboxvideo_dri.so
%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh
%if %suse_version < 1130
# %config %{_sysconfdir}/X11/xorg.conf.d/60-vboxmouse.conf
#%else
%{_datadir}/hal/fdi/policy/20thirdparty/90-vboxguest.fdi
%{_libdir}/xorg/modules/input/vboxmouse_drv.so
%endif
#
%files guest-tools
%defattr(-, root, root)
@ -835,7 +739,6 @@ exit 0
%{_udevrulesdir}/60-vboxguest.rules
%config %{_sysconfdir}/init.d/vboxadd
%{_sbindir}/rcvboxadd
#
%files -n python-%{name} -f %{_tmppath}/SITE_FILES
%defattr(-, root, root)
@ -843,11 +746,7 @@ exit 0
%dir %{_vbox_instdir}/sdk/bindings
%dir %{_vbox_instdir}/sdk/bindings/xpcom
%{_vbox_instdir}/sdk/bindings/xpcom/python
%if 0%{?suse_version} > 1130
%attr(0755, root, root) %{_vbox_instdir}/VBoxPython2_7.so
%else
%attr(0755, root, root) %{_vbox_instdir}/VBoxPython2_6.so
%endif
%attr(0755, root, root) %{_vbox_instdir}/VBoxPython2_7.so
%files devel
%defattr(-,root, root)
@ -860,11 +759,10 @@ exit 0
%{_vbox_instdir}/sdk/bindings/xpcom/include
%{_vbox_instdir}/sdk/bindings/xpcom/samples
%{_vbox_instdir}/sdk/bindings/auth
#%{_vbox_instdir}/sdk/bindings/glue/java
%files websrv
%defattr(-,root, root)
%{_vbox_instdir}/vboxwebsrv
%{_vbox_instdir}/vboxwebsrv
%{_vbox_instdir}/webtest
%{_sysconfdir}/init.d/vboxweb-service
%{_sbindir}/rcvboxweb-service