osc copypac from project:home:mseben:branches:Virtualization package:virtualbox-ose revision:7

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=1
This commit is contained in:
Michal Seben 2010-12-23 10:08:49 +00:00 committed by Git OBS Bridge
commit 23e21a1790
27 changed files with 3445 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:717a3b6ce54f43615d4419fc4346b379f2a5a9531b4dd9d9884edcdfd9baf91a
size 4039751

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9ee1d4c3b2ad8a5e05c265da569c907f22e74bffaa3eae03cf7568ab985824c
size 43757083

15
vbox-default-os-type.diff Normal file
View File

@ -0,0 +1,15 @@
--- src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp.orig 2010-11-10 21:27:23.000000000 +0100
+++ src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp 2010-11-10 21:27:53.000000000 +0100
@@ -199,10 +199,10 @@
if (xpIndex != -1)
mCbType->setCurrentIndex (xpIndex);
}
- /* Or select Ubuntu item for Linux family as default */
+ /* Or select openSUSE item for Linux family as default */
else if (familyId == "Linux")
{
- int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID);
+ int ubIndex = mCbType->findData ("OpenSUSE", RoleTypeID);
if (ubIndex != -1)
mCbType->setCurrentIndex (ubIndex);
}

66
vbox-disable-updates.diff Normal file
View File

@ -0,0 +1,66 @@
Index: src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp.orig
+++ src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp
@@ -45,7 +45,8 @@ void VBoxGLSettingsUpdate::getFrom (cons
{
VBoxUpdateData data (vboxGlobal().virtualBox().GetExtraData (VBoxDefs::GUI_UpdateDate));
- mCbCheck->setChecked (!data.isNoNeedToCheck());
+ mCbCheck->setChecked (false);
+
if (mCbCheck->isChecked())
{
mCbOncePer->setCurrentIndex (data.periodIndex());
Index: src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp.orig
+++ src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
@@ -5115,6 +5115,9 @@ void VBoxGlobal::showRegistrationDialog
*/
void VBoxGlobal::showUpdateDialog (bool aForce)
{
+ // Disable update dialog for openSUSE
+ return;
+
/* Silently check in one day after current time-stamp */
QTimer::singleShot (24 /* hours */ * 60 /* minutes */ *
60 /* seconds */ * 1000 /* milliseconds */,
Index: src/VBox/Frontends/VirtualBox/src/VBoxProblemReporter.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/VBoxHelpActions.cpp.orig 2009-03-13 11:38:50.000000000 +0100
+++ src/VBox/Frontends/VirtualBox/src/VBoxHelpActions.cpp 2009-04-15 17:03:52.000000000 +0200
@@ -87,8 +87,8 @@
#endif
aMenu->addAction (updateAction);
- updateAction->setEnabled (vboxGlobal().virtualBox().
- GetExtraData (VBoxDefs::GUI_UpdateDlgWinID).isEmpty());
+ updateAction->setDisabled( true );
+
#ifndef Q_WS_MAC
aMenu->addSeparator();
Index: src/VBox/Frontends/VirtualBox/src/settings/global/VBoxGLSettingsUpdate.ui
===================================================================
--- src/VBox/Frontends/VirtualBox/src/settings/global/VBoxGLSettingsUpdate.ui.orig
+++ src/VBox/Frontends/VirtualBox/src/settings/global/VBoxGLSettingsUpdate.ui
@@ -18,6 +18,9 @@
</comment>
<class>VBoxGLSettingsUpdate</class>
<widget class="QWidget" name="VBoxGLSettingsUpdate" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="geometry" >
<rect>
<x>0</x>
@@ -48,7 +51,7 @@
<string>&amp;Check for updates</string>
</property>
<property name="checked" >
- <bool>true</bool>
+ <bool>false</bool>
</property>
</widget>
</item>

73
vbox-no-build-dates.diff Normal file
View File

@ -0,0 +1,73 @@
--- src/VBox/Frontends/VBoxBFE/VBoxBFE.cpp.orig
+++ src/VBox/Frontends/VBoxBFE/VBoxBFE.cpp
@@ -1150,10 +1150,9 @@ DECLCALLBACK(int) VMPowerUpThread(RTTHRE
char szNowUct[64];
RTTimeSpecToString(RTTimeNow(&TimeSpec), szNowUct, sizeof(szNowUct));
RTLogRelLogger(pLogger, 0, ~0U,
- "VBoxBFE %s (%s %s) release log\n"
+ "VBoxBFE %s release log\n"
"Log opened %s\n",
- VBOX_VERSION_STRING, __DATE__, __TIME__,
- szNowUct);
+ VBOX_VERSION_STRING, szNowUct);
/* register this logger as the release logger */
RTLogRelSetDefaultInstance(pLogger);
--- src/VBox/Main/ConsoleImpl.cpp.orig
+++ src/VBox/Main/ConsoleImpl.cpp
@@ -5063,13 +5063,12 @@ HRESULT Console::consoleInitReleaseLog(c
char szTmp[256];
RTTimeSpecToString(RTTimeNow(&timeSpec), szTmp, sizeof(szTmp));
RTLogRelLogger(loggerRelease, 0, ~0U,
- "VirtualBox %s r%u %s (%s %s) release log\n"
+ "VirtualBox %s r%u %s release log\n"
#ifdef VBOX_BLEEDING_EDGE
"EXPERIMENTAL build " VBOX_BLEEDING_EDGE "\n"
#endif
"Log opened %s\n",
- VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET,
- __DATE__, __TIME__, szTmp);
+ VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, szTmp);
vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp));
if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW)
--- src/VBox/Main/generic/OpenGLTestApp.cpp.orig
+++ src/VBox/Main/generic/OpenGLTestApp.cpp
@@ -141,13 +141,12 @@ static int vboxInitLogging(const char *p
char szTmp[256];
RTTimeSpecToString(RTTimeNow(&timeSpec), szTmp, sizeof(szTmp));
RTLogRelLogger(loggerRelease, 0, ~0U,
- "VBoxTestGL %s r%u %s (%s %s) release log\n"
+ "VBoxTestGL %s r%u %s release log\n"
#ifdef VBOX_BLEEDING_EDGE
"EXPERIMENTAL build " VBOX_BLEEDING_EDGE "\n"
#endif
"Log opened %s\n",
- VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET,
- __DATE__, __TIME__, szTmp);
+ VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, szTmp);
vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp));
if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW)
--- src/VBox/Frontends/VBoxFB/VBoxFB.cpp.orig
+++ src/VBox/Frontends/VBoxFB/VBoxFB.cpp
@@ -62,7 +62,7 @@ int main(int argc, char *argv[])
printf("VirtualBox DirectFB GUI built %s %s\n"
"(C) 2004-" VBOX_C_YEAR " " VBOX_VENDOR "\n"
- "(C) 2004-2005 secunet Security Networks AG\n", __DATE__, __TIME__);
+ "(C) 2004-2005 secunet Security Networks AG\n");
for (;;)
{
--- src/VBox/Runtime/common/string/uniread.cpp.orig
+++ src/VBox/Runtime/common/string/uniread.cpp
@@ -979,7 +979,7 @@ int PrintHeader(const char *argv0)
" *\n"
" * IPRT - Unicode Tables.\n"
" *\n"
- " * Automatically Generated by %s (" __DATE__ " " __TIME__ ")\n"
+ " * Automatically Generated by %s\n"
" */\n"
"\n"
"/*\n"

View File

@ -0,0 +1,70 @@
Index: VirtualBox-3.2.2_OSE/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- VirtualBox-3.2.2_OSE.orig/src/VBox/Frontends/VirtualBox/Makefile.kmk
+++ VirtualBox-3.2.2_OSE/src/VBox/Frontends/VirtualBox/Makefile.kmk
@@ -48,7 +48,7 @@ endif
# The targets.
#
ifdef VBOX_WITH_HARDENING
-PROGRAMS += VirtualBoxHardened
+PROGRAMS += VirtualBoxHardened VBoxPermissionsMessage
DLLS += VirtualBox
else
PROGRAMS += VirtualBox
@@ -94,6 +94,10 @@ if1of ($(KBUILD_TARGET), freebsd linux n
VirtualBox_SDKS += LIBSDL
endif
+VBoxPermissionsMessage_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE)
+VBoxPermissionsMessage_NAME = VBoxPermissionMessage
+VBoxPermissionsMessage_DEFS.linux = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_SDL
+
ifdef VBOX_WITH_ICHAT_THEATER
# For testing iChat Theater stuff change the sdk path (HACK ALERT!)
VBOX_PATH_MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk
@@ -366,6 +370,9 @@ ifdef VBOX_WITH_REGISTRATION
src/wizards/registration/UIRegistrationWzd.cpp
endif
+VBoxPermissionsMessage_SOURCES = \
+ src/VBoxPermissionsMessage.cpp
+
VirtualBox_SOURCES = \
src/main.cpp \
src/VBoxAboutDlg.cpp \
@@ -537,6 +544,8 @@ endif
# (The include directory and lib/framework for each module will be added by the Qt4 unit.)
VirtualBox_QT_MODULES = Core Gui Network
+VBoxPermissionsMessage_QT_MODULES = Core Gui Network
+
if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
VirtualBox_QT_MODULES += OpenGL
endif
@@ -757,6 +766,8 @@ $$(PATH_VirtualBox)/VirtualBox-icon.rc:
endif # win
+INSTALLS += VBoxPermissionsMessage
+VBoxPermissionsMessage_INST = $(INST_VIRTUALBOX)
ifeq ($(KBUILD_TARGET),darwin)
#
Index: VirtualBox-3.2.2_OSE/src/VBox/Frontends/VirtualBox/src/VBoxPermissionsMessage.cpp
===================================================================
--- /dev/null
+++ VirtualBox-3.2.2_OSE/src/VBox/Frontends/VirtualBox/src/VBoxPermissionsMessage.cpp
@@ -0,0 +1,12 @@
+#include <QtGui/QApplication>
+#include <QtGui/QMessageBox>
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ QMessageBox msgBox;
+ msgBox.setWindowTitle(QObject::tr("Permissions problem !"));
+ msgBox.setText(QObject::tr("You are not a member of the \"vboxusers\" group. Please add yourself to this group before starting VirtualBox. You could do it using: Yast / Security and Users / User and Group management. Don't forget re-login your user account!"));
+ int ret = msgBox.exec();
+ app.quit();
+ return 0;
+}
\ No newline at end of file

View File

@ -0,0 +1,24 @@
Index: VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/nic.c
===================================================================
--- VirtualBox-3.1.4_OSE.orig/src/VBox/Devices/PC/Etherboot-src/core/nic.c
+++ VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/nic.c
@@ -478,6 +478,7 @@ int eth_load(struct dev *dev __unused)
}
interruptible_sleep(2); /* lay off the server for a while */
longjmp(restart_etherboot, -1);
+ return 0;
}
Index: VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/osloader.c
===================================================================
--- VirtualBox-3.1.4_OSE.orig/src/VBox/Devices/PC/Etherboot-src/core/osloader.c
+++ VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/osloader.c
@@ -81,6 +81,7 @@ dead_download - Restart etherboot if pro
**************************************************************************/
static sector_t dead_download ( unsigned char *data __unused, unsigned int len __unused, int eof __unused) {
longjmp(restart_etherboot, -2);
+ return 0;
}
#ifdef IMAGE_MULTIBOOT

13
vbox-rpath.diff Normal file
View File

@ -0,0 +1,13 @@
Index: VirtualBox-4.0.0_OSE/Config.kmk
===================================================================
--- VirtualBox-4.0.0_OSE.orig/Config.kmk
+++ VirtualBox-4.0.0_OSE/Config.kmk
@@ -580,7 +580,7 @@ endif
#VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox
ifdef VBOX_WITH_HARDENING
if1of ($(KBUILD_TARGET), linux solaris)
- VBOX_PATH_APP_PRIVATE = /opt/VirtualBox
+ VBOX_PATH_APP_PRIVATE = /usr/lib/virtualbox
else ifeq ($(KBUILD_TARGET),darwin)
VBOX_PATH_APP_PRIVATE = /Applications/VirtualBox.app/Contents/MacOS
else ifeq ($(KBUILD_TARGET),freebsd)

View File

@ -0,0 +1,88 @@
Index: src/VBox/Additions/linux/installer/vboxadd.sh
===================================================================
--- src/VBox/Additions/linux/installer/vboxadd.sh.orig
+++ src/VBox/Additions/linux/installer/vboxadd.sh
@@ -21,11 +21,12 @@
#
### BEGIN INIT INFO
# Provides: vboxadd
-# Required-Start:
-# Required-Stop:
-# Default-Start: 2 3 4 5
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: VirtualBox Linux Additions kernel modules
+# Short-Description: VirtualBox Linux Additions kernel modules
### END INIT INFO
PATH=$PATH:/bin:/sbin:/usr/sbin
@@ -165,8 +166,6 @@ fi
dev=/dev/vboxguest
userdev=/dev/vboxuser
-owner=vboxadd
-group=1
test_sane_kernel_dir()
{
@@ -236,12 +235,6 @@ do_vboxguest_non_udev()
fail "Cannot create device $dev with major $maj and minor $min"
}
fi
- chown $owner:$group $dev 2>/dev/null || {
- rm -f $dev 2>/dev/null
- rm -f $userdev 2>/dev/null
- rmmod vboxguest 2>/dev/null
- fail "Cannot change owner $owner:$group for device $dev"
- }
if [ ! -c $userdev ]; then
maj=10
@@ -252,12 +245,6 @@ do_vboxguest_non_udev()
rmmod vboxguest 2>/dev/null
fail "Cannot create device $userdev with major $maj and minor $min"
}
- chown $owner:$group $userdev 2>/dev/null || {
- rm -f $dev 2>/dev/null
- rm -f $userdev 2>/dev/null
- rmmod vboxguest 2>/dev/null
- fail "Cannot change owner $owner:$group for device $userdev"
- }
fi
fi
}
@@ -286,8 +273,7 @@ start()
do_vboxguest_non_udev;;
esac
- if [ -n "$BUILDVBOXSF" ]; then
- running_vboxsf || {
+ running_vboxsf || {
$MODPROBE vboxsf > /dev/null 2>&1 || {
if dmesg | grep "vboxConnect failed" > /dev/null 2>&1; then
fail_msg
@@ -297,8 +283,7 @@ start()
fi
fail "modprobe vboxsf failed"
}
- }
- fi
+ }
# Mount all shared folders from /etc/fstab. Normally this is done by some
# other startup script but this requires the vboxdrv kernel module loaded.
@@ -315,10 +300,8 @@ stop()
if ! umount -a -t vboxsf 2>/dev/null; then
fail "Cannot unmount vboxsf folders"
fi
- if [ -n "$BUILDVBOXSF" ]; then
- if running_vboxsf; then
- rmmod vboxsf 2>/dev/null || fail "Cannot unload module vboxsf"
- fi
+ if running_vboxsf; then
+ rmmod vboxsf 2>/dev/null || fail "Cannot unload module vboxsf"
fi
if running_vboxguest; then
rmmod vboxguest 2>/dev/null || fail "Cannot unload module vboxguest"

View File

@ -0,0 +1,53 @@
Index: src/VBox/Installer/linux/vboxdrv.sh.in
===================================================================
--- src/VBox/Installer/linux/vboxdrv.sh.in.orig
+++ src/VBox/Installer/linux/vboxdrv.sh.in
@@ -3,7 +3,7 @@
# Linux kernel module init script
#
-# Copyright (C) 2006-2010 Oracle Corporation
+# Copyright (C) 2007-2010 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
@@ -19,11 +19,12 @@
#
### BEGIN INIT INFO
# Provides: vboxdrv
-# Required-Start: $syslog
-# Required-Stop:
-# Default-Start: 2 3 4 5
-# Default-Stop: 1
+# Required-Start: $syslog $remote_fs
+# Required-Stop: $syslog $remote_fs
+# Default-Start: 2 3 5
+# Default-Stop: 0 1 6
# Short-Description: VirtualBox Linux kernel module
+# Description: VirtualBox Linux kernel module
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH
@@ -56,7 +57,7 @@ fi
# silently exit if the package was uninstalled but not purged,
# applies to Debian packages only
-[ -z "$DEBIAN" -o -x $VBOXMANAGE -a -x $BUILDVBOXDRV ] || exit 0
+[ -z "$DEBIAN" -o -x $VBOXMANAGE -a -x $BUILDVBOXDRV ] || exit 1
if [ -n "$NOLSB" ]; then
if [ -f /etc/redhat-release ]; then
@@ -189,13 +190,6 @@ start()
failure "Cannot create device $DEVICE with major $MAJOR and minor $MINOR"
fi
fi
- # ensure permissions
- if ! chown :%GROUP% $DEVICE 2>/dev/null; then
- rmmod vboxnetadp 2>/dev/null
- rmmod vboxnetflt 2>/dev/null
- rmmod vboxdrv 2>/dev/null
- failure "Cannot change group %GROUP% for device $DEVICE"
- fi
if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then
failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why"
fi

View File

@ -0,0 +1,3 @@
addFilter("incoherent-init-script-name vboxdrv")
addFilter("incoherent-init-script-name vboxadd")
addFilter("xorg-x11-driver-virtualbox-ose.* shlib-policy-missing-suffix")

View File

@ -0,0 +1 @@
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"

View File

@ -0,0 +1,2 @@
KERNEL=="vboxguest", NAME="vboxguest", OWNER="root", MODE="0660" ENV{ID_INPUT}="1", ENV{ID_INPUT_MOUSE}="1"
KERNEL=="vboxuser", NAME="vboxuser", OWNER="root", MODE="0600", TAG+="udev-acl"

View File

@ -0,0 +1,5 @@
Section "InputClass"
Identifier "VBoxMouse"
Driver "vboxmouse"
MatchDevicePath "/dev/vboxguest"
EndSection

View File

@ -0,0 +1,16 @@
# /etc/default/virtualbox
#
# -------------------------------------------------------------------------------------------------
# In the "SHUTDOWN_USERS" list all users for which a check for runnings VMs should be done during
# shutdown of "vboxdrv" resp. the server:
# SHUTDOWN_USERS="foo bar"
#
# Set "SHUTDOWN" to one of "poweroff", "acpibutton" or "savestate" depending on which of the
# shutdown methods for running VMs are wanted:
# SHUTDOWN="poweroff"
# SHUTDOWN="acpibutton"
# SHUTDOWN="savestate"
# -------------------------------------------------------------------------------------------------
#
#SHUTDOWN_USERS="foo bar"
#SHUTDOWN="savestate"

View File

@ -0,0 +1,6 @@
%defattr (-,root,root)
%dir /lib/modules/%2-%1/
%dir /lib/modules/%2-%1/updates
/lib/modules/%2-%1/updates/vboxsf.ko
/lib/modules/%2-%1/updates/vboxvideo.ko
/lib/modules/%2-%1/updates/vboxguest.ko

View File

@ -0,0 +1,3 @@
Requires: kernel-%1
Provides: virtualbox-guest-kmp = %version
Obsoletes: virtualbox-ose-guest-kmp

View File

@ -0,0 +1,6 @@
%defattr (-,root,root)
%dir /lib/modules/%2-%1/
%dir /lib/modules/%2-%1/updates
/lib/modules/%2-%1/updates/vboxdrv.ko
/lib/modules/%2-%1/updates/vboxnetadp.ko
/lib/modules/%2-%1/updates/vboxnetflt.ko

3
virtualbox-host-preamble Normal file
View File

@ -0,0 +1,3 @@
Requires: kernel-%1
Provides: virtualbox-host-kmp = %version
Obsoletes: virtualbox-ose-host-kmp

View File

@ -0,0 +1,54 @@
#!/bin/bash
REMOVE_DIRS=(
src/VBox/Additions/WINNT
src/VBox/Additions/os2
kBuild/bin
kBuild/msgstyles
kBuild/tools
kBuild/sdks
tools/darwin.x86
tools/darwin.amd64
tools/freebsd.x86
tools/os2.x86
tools/solaris.x86
tools/solaris.amd64
tools/win.amd64
tools/win.x86
tools/linux.x86
tools/linux.amd64
)
set -o errexit
CMDNAME=${0##*/}
SOURCEDIR=${0%$CMDNAME}
BASENAME=${1%.tar.bz2}
trap "rm -rf \"$BASENAME-patched.tar\" \"$BASENAME-patched.tar.bz2\"" ERR
for (( N=0 ; N<${#REMOVE_DIRS[@]} ; N++ )) ; do
#REMOVE_DIRS[N]="$BASENAME/${REMOVE_DIRS[N]}"
# use a wildcard because VirtualBox-1.6.0-OSE != VirtualBox-1.6.0_OSE
REMOVE_DIRS[N]="*/${REMOVE_DIRS[N]}"
done
cd "$SOURCEDIR" >/dev/null
if ! test -f "$BASENAME.tar.bz2" ; then
exit 0
fi
if test -f "$BASENAME-patched.tar.bz2" ; then
if test "$BASENAME.tar.bz2" -ot "$BASENAME-patched.tar.bz2" ; then
if test $CMDNAME -ot "$BASENAME-patched.tar.bz2" ; then
exit 0
fi
fi
fi
cp -a "$BASENAME.tar.bz2" "$BASENAME-patched.tar.bz2"
bunzip2 "$BASENAME-patched.tar.bz2"
tar --wildcards --delete -f "$BASENAME-patched.tar" "${REMOVE_DIRS[@]}"
bzip2 "$BASENAME-patched.tar"

23
virtualbox-sysconfig.vbox Normal file
View File

@ -0,0 +1,23 @@
## Path: System/Virtual Machines/VBox
## Description: Virtual box machines to autostart during boot
## Type: string
## Default: ""
#
# Configuration file for the script /etc/init.d/vboxes
#
# The variable VBOX_AUTOSTART holds the virtual machines to be started during
# boot time. One entry must contain the virtual machine name and the
# virtual machine owner. They are separated with a ";". Multiple entries
# (virtual machines) are separated with a space.
#
# Examples:
# MachineName1;user1
#
# One virtual machine:
# openSUSE_Factory;vbox
#
# Multiple virtual machines:
# openSUSE_Factory;vbox openSUSE_stable;suse
#
VBOX_AUTOSTART=""

307
virtualbox-vboxes Normal file
View File

@ -0,0 +1,307 @@
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops vbox autostart VMs.
# Based on
# http://www.amiryan.org/2009/11/04/virtualbox-init-d-service-autostart-scriptu
#
# By Richard Bos <rbos at opensuse dot org> - May 2010
### BEGIN INIT INFO
# Provides: vboxes
# Required-Start: $network vboxdrv $ALL
# Required-Stop: $network $named
# Default-Start: 3 5
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Autostart Virtual Box VMs
# Description: Autostart Virtual Box VMs that are mentioned in /etc/sysconfig/vbox file
### END INIT INFO
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v be verbose in local rc status and clear it afterwards
# rc_status -v -r ditto and clear both the local and overall rc status
# rc_status -s display "skipped" and exit with status 3
# rc_status -u display "unused" and exit with status 3
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num>
# rc_reset clear both the local and overall rc status
# rc_exit exit appropriate to overall rc status
# rc_active checks whether a service is activated by symlinks
. /etc/rc.status
# Reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - user had insufficient privileges
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signaling is not supported) are
# considered a success.
VBOXMGR_BIN=/usr/lib/virtualbox/VBoxManage
if [[ ! -x $VBOXMGR_BIN ]]; then
echo "$VBOXMGR_BIN does not exist"
if [ "$1" = "stop" ]; then
exit 0;
else
exit 6
fi;
fi
VBOXHeadLess_BIN=/usr/lib/virtualbox/VBoxHeadless
if [[ ! -x $VBOXHeadLess_BIN ]]; then
echo "$VBOXHeadLess_BIN does not exist"
if [ "$1" = "start" ]; then
exit 6;
else
exit 0
fi;
fi
PRG=$(basename $0)
SERVICE="Virtualbox machines"
[ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox
start() {
N=1
for VBOX in $VBOX_AUTOSTART; do
if grep -q \; <<< "$VBOX"; then
VBOX_NAME[$N]=$(cut -d\; -f1 <<< "$VBOX")
VBOX_USER[$N]=$(cut -d\; -f2 <<< "$VBOX")
else
VBOX_NAME[$N]="$VBOX"
VBOX_USER[$N]=""
fi
N=$(($N+1))
done
VBOXES=${#VBOX_NAME[*]}
if [ $VBOXES -eq 0 ]; then
# The virtual machines have to be configured in /etc/sysconfig/vbox
echo -n "Starting $SERVICE: no virtual machines configured"
rc_status -u
else
N=1
echo -n "Starting $SERVICE: "
while [[ $N -le $VBOXES ]]; do
if [[ $N -lt $VBOXES ]]; then
echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), "
else
echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
fi
N=$(($N+1))
done
N=1
while [[ $N -le $VBOXES ]]; do
if [[ -n "${VBOX_USER[$N]}" ]]; then
if grep --quiet --word-regexp ${VBOX_USER[$N]} /etc/passwd; then
# The tag "Name:" occurs in multiple sections. Require at least 7 blanks
# with an additional flexible amount of spaces. At the moment of writing
# 13 spaces are needed.
VBOX_RUNNING=$(su ${VBOX_USER[$N]} -c "VBoxManage list --long runningvms" |
sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}")
if [[ -z "$VBOX_RUNNING" ]]; then
VBOX_PRESENT=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN list --long vms" |
sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}")
if [[ -n "$VBOX_PRESENT" ]]; then
# VBoxManage startvm does not result in a VM with working networking
# su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q startvm "${VBOX_NAME[$N]}" -type headless" > /tmp/$PRG.$$ 2>&1
# Start virtualbox in Headless mode
su ${VBOX_USER[$N]} -c "$VBOXHeadLess_BIN --startvm "${VBOX_NAME[$N]}"" > /tmp/$PRG.$$ 2>&1 &
RETVAL=$?
if [[ $RETVAL == 0 ]]; then
echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
rc_status -v -r
else
echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) failed with the following output: "
rc_failed; rc_status -v -r
# Give the VBOXHeadLess_BIN some time to write the output file
sleep 2
cat /tmp/$PRG.$$
fi
rm /tmp/$PRG.$$
else
echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) does not exist"
rc_status -s -r
fi
else
echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) is already running"
rc_status -v -r
fi
else
echo -n " Virtual machine: ${VBOX_NAME[$N]}, VBOX_USER: ${VBOX_USER[$N]} does not exist"
rc_status -s -r
fi
else
echo -n " Virtual machine: ${VBOX_NAME[$N]}: VBOX_USER not configured"
rc_status -s -r
fi
N=$(($N+1))
done
fi
}
stop() {
for VBOX in $VBOX_AUTOSTART; do
if grep -q \; <<< "$VBOX"; then
VBOX_USER=$(cut -d\; -f2 <<< "$VBOX")
# Only add the user to the list, if not present yet
if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then
VBOX_USERS="$VBOX_USERS $VBOX_USER"
fi
fi
done
N=1
for VBOX_USER in $VBOX_USERS; do
VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" |
sed -n 's/^Name:[[:blank:]]\{7\} *//p')
for VBOX in $VBOX_RUNNING; do
VBOX_NAME[$N]="$VBOX"
VBOX_USER[$N]="$VBOX_USER"
N=$(($N+1))
done
done
VBOXES=${#VBOX_NAME[*]}
if [[ $VBOXES -eq 0 ]]; then
echo -n "Shutting down $SERVICE: no virtual machines running."
rc_status -s -r
else
echo -n "Shutting down $SERVICE: "
N=1
while [[ $N -le $VBOXES ]]; do
if [[ $N -lt $VBOXES ]]; then
echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), "
else
echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
fi
N=$(($N+1))
done
N=1
while [[ $N -le $VBOXES ]]; do
echo -n " ${VBOX_NAME[$N]}: "
su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q controlvm "${VBOX_NAME[$N]}" savestate"
RETVAL=$?
echo -n " Shutting down virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})"
if [[ $RETVAL == $? ]]; then
rc_status -v -r
else
rc_failed; rc_status -v -r
fi
N=$(($N+1))
done
fi
}
status() {
for VBOX in $VBOX_AUTOSTART; do
if grep -q \; <<< "$VBOX"; then
VBOX_USER=$(cut -d\; -f2 <<< "$VBOX")
# Only add the user to the list, if not present yet
if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then
VBOX_USERS="$VBOX_USERS $VBOX_USER"
fi
fi
done
N=1
for VBOX_USER in $VBOX_USERS; do
# The tag "Name:" occurs in multiple sections. Require at least 7 blanks
# with an additional flexible amount of spaces. At the moment of writing
# 13 spaces are needed.
VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" |
sed -n 's/^Name:[[:blank:]]\{7\} *//p')
for VBOX in $VBOX_RUNNING; do
VBOX_NAME[$N]="$VBOX"
VBOX_USER[$N]="$VBOX_USER"
N=$(($N+1))
done
done
VBOXES=${#VBOX_NAME[*]}
if [[ $VBOXES -eq 0 ]]; then
echo -n "$SERVICE: no virtual machines running."
rc_status -s -r
else
N=1
while [[ $N -le $VBOXES ]]; do
# The long sed line changes the output from:
# running (since 2010-04-25T14:51:57.373000000)
# to:
# running (since 2010-04-25 14:51:57)
#
STATE=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN showvminfo "${VBOX_NAME[$N]}"" |
sed -n 's/State: *//p' |
sed 's/\([0-9][0-9]\)\.[0-9]\{9\}/\1/;s/\([0-9][0-9]\)T\([0-9][0-9]\)/\1 \2/')
printf " %-56s %s" "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}):" "$STATE"
rc_status -v
N=$(($N+1))
done
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
status)
status
;;
*)
echo "Usage: $PRG {start|stop|restart|force-reload|status}" >&2
exit 3
;;
esac

4
virtualbox-wrapper.sh Normal file
View File

@ -0,0 +1,4 @@
#!/bin/bash
export QT_NO_KDE_INTEGRATION=1
/usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit
LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox $@

1981
virtualbox.changes Normal file

File diff suppressed because it is too large Load Diff

599
virtualbox.spec Normal file
View File

@ -0,0 +1,599 @@
#
# spec file for package virtualbox (Version 3.9.80)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
%define _vbox_instdir /usr/lib/virtualbox
Name: virtualbox
BuildRequires: fdupes
%if %suse_version > 1110
BuildRequires: acpica dmidecode
%else
BuildRequires: pmtools
%endif
BuildRequires: bin86 dev86 libidl-devel libqt4-devel libxslt-devel yasm
BuildRequires: SDL-devel kernel-syms module-init-tools
BuildRequires: e2fsprogs-devel libcap-devel libcurl-devel python-devel update-desktop-files
BuildRequires: hal-devel pulseaudio-devel xorg-x11 xorg-x11-devel xorg-x11-server xorg-x11-server-sdk
BuildRequires: LibVNCServer-devel gcc43-c++ kbuild pam-devel udev
#added for vbox 4.0.0
BuildRequires: zlib-devel-static
%ifarch amd64 x86_64 ia32e em64t
BuildRequires: hal-32bit
BuildRequires: xorg-x11-libX11-devel-32bit xorg-x11-libXt-devel-32bit xorg-x11-libs-32bit
BuildRequires: xorg-x11-libXext-devel-32bit xorg-x11-libXmu-devel-32bit
BuildRequires: gcc43-32bit libstdc++43-devel-32bit
%endif
#
ExclusiveArch: %ix86 x86_64
Version: 4.0.0
Release: 1
Summary: VirtualBox is an Emulator
License: GPLv2+
Group: System/Emulators/PC
Url: http://www.virtualbox.org/
#
# so you don't need to repack virtualbox by hand, just add new release of VirtualBox-x.x.x.tar.bz2 and line below with
# script virtualbox-patch-source.sh will do the job :)
# WARNING: This is not a comment, but the real command to repack souce
#%(bash %{_sourcedir}/virtualbox-patch-source.sh VirtualBox-%{version}.tar.bz2)
Source0: VirtualBox-%{version}-patched.tar.bz2
Source1: VirtualBox-%{version}-UserManual.pdf
Source2: %{name}-60-vboxdrv.rules
Source3: %{name}-60-vboxguest.rules
Source4: %{name}-default.virtualbox
Source5: %{name}-host-kmp-files
Source6: %{name}-guest-kmp-files
Source7: %{name}-host-preamble
Source8: %{name}-guest-preamble
Source9: %{name}-wrapper.sh
# since 11.3 we need this conf instead of HAL's fdi to define vbox mouse
Source10: %{name}-60-vboxmouse.conf
# init script to start virtual boxes during boot, to be configured via /etc/sysconfig/vbox bnc#582398
Source12: %{name}-vboxes
Source13: %{name}-sysconfig.vbox
Source98: %{name}-%{version}-rpmlintrc
Source99: %{name}-patch-source.sh
#rework init script
Patch1: vbox-vboxdrv-init-script.diff
Patch2: vbox-vboxadd-init-script.diff
#disable update in vbox gui
##Patch3: vbox-disable-updates.diff
#fix return values which trigger post build checks and coused build error - should goes to upstream
Patch4: vbox-ret-in-nonvoid-fnc.diff
#fix rpath
Patch5: vbox-rpath.diff
#PATCH-FIX-OPENSUSE implement messagebox (VBoxPermissionMessage app), which is displayed, when user
#try to start VirtualBox and is not memeber of vboxusers group
Patch99: vbox-permissions_warning.diff
#PATCH-FIX-OPENSUSE Do not include build dates on binaries, makes build-compare happier
Patch100: vbox-no-build-dates.diff
Patch101: vbox-default-os-type.diff
#
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: pwdutils permissions
Requires: %{name}-host-kmp = %version
#Suggests: %{name}-qt = %version
Recommends: %{name}-qt = %version
%description
VirtualBox is an extremely feature rich, high performance product
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
License: GPLv2+
Summary: Qt GUI part for %{name}
Group: System/Emulators/PC
Requires: %{name} = %{version}
%description qt
Qt GUI part for %{name}.
#########################################
%package host-KMP
License: GPLv2+
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}
%description host-KMP
This package contains the kernel-module for VirtualBox.
##########################################
%package guest-KMP
License: GPLv2+
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}
%description guest-KMP
This package contains the kernel-module for VirtualBox.
##########################################
%package guest-x11
License: GPLv2+
Summary: VirtualBox X11 drivers for mouse and video
Group: System/X11/Servers/XF86_4
Requires: %{name}-guest-kmp = %version
Supplements: modalias(pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
%description guest-x11
VirtualBox
This package contains X11 guest utilities and X11 guest mouse and video drivers
###########################################
%package guest-tools
License: GPLv2+
Summary: VirtualBox guest tools
Group: System/Emulators/PC
Requires: %{name}-guest-kmp = %version
Supplements: modalias(pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
%description guest-tools
VirtualBox guest addition tools.
###########################################
%package -n python-%{name}
Summary: Python bindings for %{name}
Group: Development/Libraries/Python
Requires: %{name} = %{version}
%description -n python-%{name}
Python XPCOM bindings to %{name}.
###########################################
%package devel
License: GPLv2+
Summary: Devel files for %{name}
Group: Development/Libraries/Other
Requires: %{name} = %{version}
Requires: python-%{name} = %{version}
%description devel
Development file for %{name}
###########################################
%prep
%setup -q -n VirtualBox-%{version}_OSE
%patch1
%patch2
##%patch3
%patch4 -p1
%patch5 -p1
%patch99 -p1
%patch100
%patch101
#copy user manual
%__cp %{S:1} ./UserManual.pdf
%build
# This package failed when testing with -Wl,-as-needed being default.
# So we disable it here, if you want to retest, just delete this comment and the line below.
export SUSE_ASNEEDED=0
# turn on vnc feature by hand, this line could be dropped when we could use configure script
echo VBOX_WITH_VNC=1 >> Config.kmk
#
# --with-gcc=/usr/bin/gxx-4.3 do configure and set proper gcc - currently vbox support only gcc<=4.4
# --disable-kmods \ don't build Linux kernel modules - but use SUSE specific way see few lines under
# --nofatal try to avoid build fail caused by missing makeself package
# --disable-kmods build virtualbox without kernel modules
./configure \
--disable-kmods \
--with-gcc=/usr/bin/gcc-4.3 \
--with-g++=/usr/bin/g++-4.3 \
--disable-java \
--disable-docs \
--nofatal
#
# 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
/usr/bin/kmk \
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
#
# build kernel modules for guest and host (check novel-kmp package as example)
# host modules : vboxdrv,vboxnetflt,vboxnetadp
# guest modules : vboxguest,vboxsf,vboxvideo
for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} \
out/linux.*/release/bin/additions/src/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
# delete old build dir for sure
%__rm -rf modules_build_dir/${module_name}_${flavor}
# create build directory for specific 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/
# copy vboxdrv (for host) and vboxguest (for guest) module symbols:
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
fi
if [ "$modulename" = "vboxsf" ]; then
%__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 \
M=$PWD/modules_build_dir/$flavor/$module_name
done
done
%install
#################################
echo "create directory structure"
#################################
%__install -d -m 755 %{buildroot}%{_bindir}
%__install -d -m 755 %{buildroot}%{_sbindir}
%__install -d -m 755 %{buildroot}/sbin
%__install -d -m 755 %{buildroot}%{_datadir}/virtualbox
%__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
%__install -d -m 755 %{buildroot}%{_datadir}/hal/fdi/policy/20thirdparty
%endif
%__install -d -m 755 %{buildroot}%{_vbox_instdir}
%__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}%{_sysconfdir}/udev/rules.d
%__install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d
%__install -d -m 755 %{buildroot}%{python_sitelib}/virtualbox
####################################################################################
echo "entering virtualbox-kmp-guest and virtualbox-kmp-host install section"
####################################################################################
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
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,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
done
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
# udev rule for guest (virtualbox-guest-tools)
%__install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/udev/rules.d/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}
# xorg drivers for mouse and videos check suse version to add propper driver
%if %suse_version >= 1130
%__install -m 755 vboxmouse_drv_18.so \
%{buildroot}%{_libdir}/xorg/modules/input/vboxmouse_drv.so
%__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
%endif
popd
# VBoxOGL* libs for guest-x11 subpackage
%__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
# 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
%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
# 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}
# 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}/VBoxTunctl %{buildroot}%{_bindir}/VBoxTunctl
%__install -m 755 VBoxSVC %{buildroot}%{_vbox_instdir}
%__install -m 755 VBoxXPCOMIPCD %{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 VBoxBFE %{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 *.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/
popd
# install desktop file
%__install -m 644 out/linux.*/release/bin/virtualbox.desktop \
%{buildroot}%{_datadir}/applications/%{name}.desktop
# create a menu entry
%__install -m 644 out/linux.*/release/bin/VBox.png \
%{buildroot}%{_datadir}/pixmaps/
# install udev rule for host (virtualbox)
%__install -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/udev/rules.d/60-vboxdrv.rules
# install config with session shutdown defs
%__install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/default/virtualbox
# copy the init scripts
%__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
#install wrapper script
%__install -m 644 %{S:9} %{buildroot}%{_bindir}/VirtualBox
# Init script to start virtual boxes during boot
%__install -m 755 %{S:12} %{buildroot}%{_sysconfdir}/init.d/vboxes
%__ln_s %{_sysconfdir}/init.d/vboxes %{buildroot}%{_sbindir}/rcvboxes
%__install -d -m 755 %buildroot%_var/adm/fillup-templates
install -m 700 %{S:13} %buildroot%_var/adm/fillup-templates/sysconfig.vbox
%suse_update_desktop_file -i %{name} System Emulator
######################################################
echo "entrering python-virtualbox and virtualbox-devel install section"
######################################################
%__mv out/linux.*/release/bin/sdk/ \
%{buildroot}%{_vbox_instdir}
######################################################
# run fdupes
######################################################
#run fdupes because we lost link for virtualbox/components directory
%fdupes %{buildroot}/%{_vbox_instdir}
#also some translation files are duplicated
%fdupes %{buildroot}/%{_datadir}/virtualbox/nls
%pre
echo "creating group vboxusers..."
groupadd -r vboxusers 2>/dev/null || :
%post
/sbin/ldconfig
%fillup_and_insserv -f -y vboxdrv
%fillup_only -an vboxes
%run_permissions
%post qt
%run_permissions
%post guest-tools
%fillup_and_insserv -f -y vboxadd
%preun
%stop_on_removal vboxdrv
exit 0
%preun guest-tools
%stop_on_removal vboxadd
exit 0
%postun
/sbin/ldconfig
%restart_on_update vboxdrv
%insserv_cleanup
%postun guest-tools
%restart_on_update vboxadd
%insserv_cleanup
%verifyscript
%if %suse_version > 1110
%verify_permissions -e %{_vbox_instdir}/VBoxBFE -e %{_vbox_instdir}/VBoxHeadless -e %{_vbox_instdir}/VBoxSDL -e %{_vbox_instdir}/VirtualBox -e %{_vbox_instdir}/VBoxNetAdpCtl
%else
%verify_permissions -e %{_vbox_instdir}/VBoxBFE -e %{_vbox_instdir}/VBoxHeadless -e %{_vbox_instdir}/VBoxSDL -e %{_vbox_instdir}/VirtualBox
%endif
#-e %{_vbox_instdir}/VBoxNetDHCP
%clean
[ -d "%{buildroot}" -a "%{buildroot}" != "" ] && %__rm -rf "%{buildroot}"
%files
%defattr(-, root, root)
%doc UserManual.pdf
%{_bindir}/VBoxManage
%{_bindir}/VBoxHeadless
%{_bindir}/VBoxSDL
%{_bindir}/VBoxTunctl
%dir %{_vbox_instdir}
%{_vbox_instdir}/VBoxSysInfo.sh
%{_vbox_instdir}/VBoxBFE.so
%{_vbox_instdir}/VBoxDD2.so
%{_vbox_instdir}/VBoxDD.so
%{_vbox_instdir}/VBoxDDU.so
%{_vbox_instdir}/VBoxGuestControlSvc.so
%{_vbox_instdir}/VBoxGuestPropSvc.so
%{_vbox_instdir}/VBoxHeadless.so
%{_vbox_instdir}/VBoxKeyboard.so
%{_vbox_instdir}/VBoxNetDHCP.so
%{_vbox_instdir}/VBoxOGLhostcrutil.so
%{_vbox_instdir}/VBoxOGLhosterrorspu.so
%{_vbox_instdir}/VBoxOGLrenderspu.so
%{_vbox_instdir}/VBoxREM*.so
%{_vbox_instdir}/VBoxRT.so
%{_vbox_instdir}/VBoxSDL.so
%{_vbox_instdir}/VBoxSharedClipboard.so
%{_vbox_instdir}/VBoxSharedCrOpenGL.so
%{_vbox_instdir}/VBoxSharedFolders.so
%{_vbox_instdir}/VBoxVMM.so
%{_vbox_instdir}/VBoxXPCOMC.so
%{_vbox_instdir}/VBoxXPCOM.so
%{_vbox_instdir}/VBox*.gc
%{_vbox_instdir}/VBox*.r0
%{_vbox_instdir}/VMMGC.gc
%{_vbox_instdir}/VMMR0.r0
%{_vbox_instdir}/VBoxEFI*.fd
%{_vbox_instdir}/VBoxManage
%{_vbox_instdir}/VBoxSVC
%{_vbox_instdir}/VBoxTunctl
%{_vbox_instdir}/VBoxXPCOMIPCD
#added for 4.0.0
%{_vbox_instdir}/DBGCPlugInDiggers.so
%{_vbox_instdir}/VBoxAuth.so
%{_vbox_instdir}/VBoxAuthSimple.so
%{_vbox_instdir}/VBoxDbg.so
#
%dir %{_vbox_instdir}/components
%{_vbox_instdir}/components/*.so
%{_vbox_instdir}/components/*.xpt
%dir %{_datadir}/virtualbox
%config %{_sysconfdir}/default/virtualbox
%config %{_sysconfdir}/udev/rules.d/60-vboxdrv.rules
%config %{_sysconfdir}/init.d/vboxdrv
%{_sysconfdir}/init.d/vboxes
%{_var}/adm/fillup-templates/sysconfig.vbox
%{_sbindir}/rcvboxes
#check setuid bit
%if %suse_version > 1110
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxNetAdpCtl
%else
%{_vbox_instdir}/VBoxNetAdpCtl
%endif
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxBFE
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxHeadless
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxSDL
#%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxNetDHCP
%{_vbox_instdir}/VBoxNetDHCP
#
%files qt
%defattr(-, root, root)
%{_vbox_instdir}/VBoxPermissionMessage
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VirtualBox
#wrapper script is in bindir
%attr(0755,root,root) %{_bindir}/VirtualBox
#ldd shows libQt* dependency
%{_vbox_instdir}/VBoxTestOGL
#qm's translations
%{_datadir}/virtualbox/nls
%{_vbox_instdir}/VirtualBox.so
%{_datadir}/pixmaps/VBox.png
%{_datadir}/applications/%{name}.desktop
#
%files guest-x11
%defattr(-, root, root)
%dir %{_libdir}/xorg/modules/drivers
%dir %{_libdir}/xorg/modules/input
%dir %{_libdir}/dri/
%{_bindir}/VBoxClient
%{_libdir}/VBoxOGL*.so
%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%{_libdir}/xorg/modules/input/vboxmouse_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
%endif
#
%files guest-tools
%defattr(-, root, root)
%{_bindir}/VBoxControl
%{_bindir}/VBoxService
/sbin/mount.vboxsf
%config %{_sysconfdir}/udev/rules.d/60-vboxguest.rules
%config %{_sysconfdir}/init.d/vboxadd
#
%files -n python-%{name}
%defattr(-,root, root)
%dir %{_vbox_instdir}/sdk
%dir %{_vbox_instdir}/sdk/bindings
%dir %{_vbox_instdir}/sdk/bindings/xpcom
%{_vbox_instdir}/sdk/bindings/xpcom/python
%{_vbox_instdir}/VBoxPython.so
%if 0%{?suse_version} > 1130
%{_vbox_instdir}/VBoxPython2_7.so
%else
%{_vbox_instdir}/VBoxPython2_6.so
%endif
#path with vboxapi
%{_vbox_instdir}/sdk/installer
#
%files devel
%defattr(-,root, root)
%{_vbox_instdir}/sdk/bindings/VirtualBox.xidl
%{_vbox_instdir}/sdk/bindings/xpcom/cbinding
%{_vbox_instdir}/sdk/bindings/xpcom/idl
%{_vbox_instdir}/sdk/bindings/xpcom/include
%{_vbox_instdir}/sdk/bindings/xpcom/samples
%{_vbox_instdir}/sdk/bindings/auth
%{_vbox_instdir}/sdk/bindings/glue
%changelog