system/virtualbox-ose: Updated for version 3.1.2

This commit is contained in:
Heinz Wiesinger 2010-05-13 00:42:20 +02:00 committed by Robby Workman
parent 1d7c033e17
commit a5ec786949
13 changed files with 187 additions and 166 deletions

View File

@ -12,7 +12,7 @@ VBOX_WITHOUT_ADDITIONS := 1
KBUILD_MSG_STYLE := brief
VBOX_WITH_ORIGIN :=
VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
VBOX_PATH_APP_PRIVATE_ARCH := /usr/LIBDIR/virtualbox
VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox

View File

@ -1,42 +1,20 @@
VirtualBox Open Source Edition (OSE) is a general-purpose full
virtualizer for x86 hardware.
You'll probably want to add the following lines to your rc.local:
# Start vboxdrv
if [ -x /etc/rc.d/rc.vboxdrv ]; then
/etc/rc.d/rc.vboxdrv start
fi
This will load the support kernel module for VirtualBox. You should add
similar "stop" lines to your rc.local_shutdown.
By default you have to create a vboxusers group, for example with
groupadd -g 215 vboxusers
and make your user a member of that group.
Alternatively, you can run the script with VBOXUSERS=no to allow all
users of your system to start virtual machines.
By default VirtualBox will be compiled with hardening enabled. That
means all binaries will be run suid root, which is the default
behaviour of upstream packages. However, you are still able
to disable this by passing HARDENING=no to the script.
When hardening is enabled, VBOXUSERS is automatically set to yes.
If the VirtualBox Additions ISO is available in the same directory
as the build script, it will be included in the package and placed
under /usr/share/virtualbox/. Same goes for the UserManual
They can be downloaded from:
http://download.virtualbox.org/virtualbox/2.1.4/VBoxGuestAdditions_2.1.4.iso
http://download.virtualbox.org/virtualbox/2.1.4/UserManual.pdf
You have to create a vboxusers group, e.g. "groupadd -g 215 vboxusers"
and make your user a member of that group.
Since 2.0.0 there is a Qt4 GUI, which is enabled by default. To disable it pass
QT4=no to the script. An older, no longer maintained Qt3 GUI is also available
but disabled by default (no new features have been added to this since 2.0).
To enable it, pass QT3=yes to the script.
Beware: the Qt3 GUI has already been removed from svn trunk, and 2.2.0 will
only have a Qt4 GUI available.
To compile virtualbox without the Qt4 GUI pass QT4=no to the script.
For pulseaudio support, pass PULSE=yes to the build script. This requires
pulseaudio to be installed.
To enable the webservice pass WEBSERVICE=yes to the script. This adds gsoap
to the list of required dependencies.
This requires acpica, and the virtualbox-kernel package is needed at runtime.
See README.SLACKWARE for some setup notes.
NOTE: This will not build on a stock x86_64 system.

View File

@ -0,0 +1,21 @@
You'll need to add the following lines to /etc/rc.d/rc.local:
# Start vboxdrv
if [ -x /etc/rc.d/rc.vboxdrv ]; then
/etc/rc.d/rc.vboxdrv start
fi
This will load the support kernel module for VirtualBox.
You'll then need to add the following lines to /etc/rc.d/rc.local_shutdown:
# Stop vboxdrv
if [ -x /etc/rc.d/rc.vboxdrv ]; then
/etc/rc.d/rc.vboxdrv stop
fi
Any user accounts that plan to use virtualbox will need to be members
of the "vboxusers" group.

View File

@ -1,12 +0,0 @@
--- VBox.sh-orig 2008-08-28 08:33:10.000000000 +0200
+++ VBox.sh 2008-09-04 20:41:23.653351415 +0200
@@ -88,6 +88,9 @@
VirtualBox)
exec "$INSTALL_DIR/VirtualBox" "$@"
;;
+ VirtualBox3)
+ exec "$INSTALL_DIR/VirtualBox3" "$@"
+ ;;
VBoxManage)
exec "$INSTALL_DIR/VBoxManage" "$@"
;;

View File

@ -1,15 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=Sun xVM VirtualBox (Qt3)
GenericName=Virtual Machine (Qt3)
Type=Application
Exec=VirtualBox3
TryExec=VirtualBox3
DocPath=file://$VBOX_DOC_PATH/UserManual.pdf
Icon=VBox
Categories=Emulator;System;X-MandrivaLinux-System;
Comment=Run several virtual systems on a single host computer
Comment[de]=Windows und andere Betriebssysteme unter Linux ausführen
Comment[sv]=Kör flera virtuella system på en enda värddator
Comment[ko]=가상 머신

View File

@ -17,6 +17,7 @@ fi
# Prepare the new configuration files
config etc/vbox/vbox.cfg.new
config etc/default/virtualbox.new
for file in etc/rc.d/rc.vboxdrv.new ; do
if [ -e $(dirname $file)/$(basename $file .new) -a -x $(dirname $file)/$(basename $file .new) ]; then
chmod 0755 $file

View File

@ -5,11 +5,11 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------|
|-----handy-ruler-------------------------------------------------------|
virtualbox-ose: virtualbox-ose (x86 Virtualizer)
virtualbox-ose:
virtualbox-ose: VirtualBox Open Source Edition (OSE) is a general-purpose
virtualbox-ose: full virtualizer for x86 hardware.
virtualbox-ose: VirtualBox Open Source Edition (OSE) is a general-purpose full
virtualbox-ose: virtualizer for x86 hardware.
virtualbox-ose:
virtualbox-ose: Homepage: http://www.virtualbox.org
virtualbox-ose:

View File

@ -1,5 +1,5 @@
# VirtualBox installation directory
INSTALL_DIR="/usr/lib/virtualbox"
INSTALL_DIR="/usr/LIBDIR/virtualbox"
# vboxdrv source location
MODULE_SRC="/usr/src"

View File

@ -0,0 +1,60 @@
--- vboxdrv.sh.in.orig 2009-08-04 19:18:41.000000000 +0200
+++ vboxdrv.sh.in 2009-08-05 15:07:09.311051154 +0200
@@ -37,14 +37,8 @@
if [ -n "$INSTALL_DIR" ]; then
VBOXMANAGE="$INSTALL_DIR/VBoxManage"
- BUILDVBOXDRV="$INSTALL_DIR/src/vboxdrv/build_in_tmp"
- BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxnetflt/build_in_tmp"
- BUILDVBOXNETADP="$INSTALL_DIR/src/vboxnetadp/build_in_tmp"
else
VBOXMANAGE="/usr/lib/%PACKAGE%/VBoxManage"
- BUILDVBOXDRV="/usr/share/%PACKAGE%/src/vboxdrv/build_in_tmp"
- BUILDVBOXNETFLT="/usr/share/%PACKAGE%/src/vboxnetflt/build_in_tmp"
- BUILDVBOXNETADP="/usr/share/%PACKAGE%/src/vboxnetadp/build_in_tmp"
fi
if [ -n "$NOLSB" ]; then
@@ -271,41 +265,7 @@
setup()
{
- stop
- if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then
- begin_msg "Removing old VirtualBox netadp kernel module"
- find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null
- succ_msg
- fi
- if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then
- begin_msg "Removing old VirtualBox netflt kernel module"
- find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null
- succ_msg
- fi
- if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then
- begin_msg "Removing old VirtualBox kernel module"
- find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null
- succ_msg
- fi
- begin_msg "Recompiling VirtualBox kernel module"
- if ! $BUILDVBOXDRV \
- --save-module-symvers /tmp/vboxdrv-Module.symvers \
- --no-print-directory install > $LOG 2>&1; then
- failure "Look at $LOG to find out what went wrong"
- fi
- if ! $BUILDVBOXNETFLT \
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
- --no-print-directory install >> $LOG 2>&1; then
- failure "Look at $LOG to find out what went wrong"
- fi
- if ! $BUILDVBOXNETADP \
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
- --no-print-directory install >> $LOG 2>&1; then
- failure "Look at $LOG to find out what went wrong"
- fi
- rm -f /etc/vbox/module_not_compiled
- succ_msg
- start
+ echo "Not implemented! Please use the virtualbox-kernel.SlackBuild available at SlackBuilds.org instead."
}
dmnstatus()

View File

@ -1,17 +0,0 @@
--- vboxdrv.sh.in.orig 2008-05-29 23:13:20.318184008 -0500
+++ vboxdrv.sh.in 2008-05-29 23:14:03.623677969 -0500
@@ -175,10 +175,10 @@
fi
fi
# ensure permissions
- if ! chown :$GROUPNAME $DEVICE 2>/dev/null; then
- rmmod $MODNAME 2>/dev/null
- failure "Cannot change owner $GROUPNAME for device $DEVICE"
- fi
+ #if ! chown :$GROUPNAME $DEVICE 2>/dev/null; then
+ # rmmod $MODNAME 2>/dev/null
+ # failure "Cannot change owner $GROUPNAME for device $DEVICE"
+ #fi
succ_msg
}

View File

@ -2,7 +2,7 @@
# Slackware build script for virtualbox-ose
# Copyright 2008-2009 Heinz Wiesinger <pprkut@liwjatan.at>
# Copyright 2008-2009 Heinz Wiesinger, Amsterdam, The Netherlands
# Copyright 2008 Mauro Giachero <mauro.giachero@gmail.com>
# All rights reserved.
#
@ -25,9 +25,9 @@
PRGNAM=virtualbox-ose
SRCNAM=VirtualBox
VERSION=2.1.4
VERSION=3.1.2
ARCH=${ARCH:-i486}
BUILD=${BUILD:-2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
@ -39,42 +39,42 @@ OUTPUT=${OUTPUT:-/tmp}
JOBS=${JOBS:-3}
# Define Variable Names
GUI=""
qtgui=""
# Support for the pulseaudio-backend
if [ "${PULSE:-no}" = "no" ]; then
do_pulse="--disable-pulse"
else
do_pulse=""
fi
# Using the vboxusers-group
VBOXUSERS=${VBOXUSERS:-yes}
if [ "$VBOXUSERS" = "yes" ]; then
# Check for vboxusers group here
if ! grep ^vboxusers: /etc/group 2>&1 > /dev/null; then
echo " You must have a vboxusers group to run this script."
echo " # groupadd -g 215 vboxusers"
exit 1
fi
# Check for vboxusers group here
if ! grep ^vboxusers: /etc/group 2>&1 > /dev/null; then
echo " You must have a vboxusers group to run this script."
echo " # groupadd -g 215 vboxusers"
exit 1
fi
# Enable Hardening - Defaulting to yes as requested by upstream
if [ "${HARDENING:-yes}" = "yes" ]; then
harden="--enable-hardening"
VBOXUSERS="yes"
else
harden="--disable-hardening"
fi
if [ "${WEBSERVICE:-no}" = "yes" ]; then
web_service="--enable-webservice"
vboxwebsrv="vboxwebsrv"
else
web_service=""
vboxwebsrv=""
fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
BUILDDIR="x86"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
BUILDDIR="x86"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
BUILDDIR="amd64"
fi
set -e
@ -83,50 +83,27 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM-${VERSION}_OSE
tar xvf $CWD/$SRCNAM-${VERSION}-3-OSE.tar.bz2
tar xvf $CWD/$SRCNAM-${VERSION}-OSE.tar.bz2
cd $SRCNAM-${VERSION}_OSE
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
patch -d src/VBox/Installer/linux -i $CWD/VBox.diff
GROUP="vboxusers"
MODE="750"
mkdir -p $PKG/lib/udev/rules.d
echo 'KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"' \
> $PKG/lib/udev/rules.d/60-vboxdrv.rules
# The Innotek init script tries to set the device nodes' permissions.
# This is problematic with VBOXUSERS=no, but you probably still want
# this for security reasons when using the vboxusers-group
if [ "$VBOXUSERS" = "yes" ]; then
GROUP="vboxusers"
MODE="750"
mkdir -p $PKG/lib/udev/rules.d
echo 'KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"' \
> $PKG/lib/udev/rules.d/60-vboxdrv.rules
else
patch -d src/VBox/Installer/linux -i $CWD/vboxdrv.sh.in.diff
GROUP="root"
MODE="755"
mkdir -p $PKG/lib/udev/rules.d
echo 'KERNEL=="vboxdrv", NAME="vboxdrv", MODE="0666"' \
> $PKG/lib/udev/rules.d/60-vboxdrv.rules
fi
# Support for the qt3-frontend
if [ "${QT3:-no}" = "no" ]; then
qtgui+=" --disable-qt3"
else
qtgui+=" --with-qt-dir=/usr/lib/qt"
GUI+=" VirtualBox3"
mkdir -p $PKG/usr/share/applications
cp -f $CWD/VirtualBox3.desktop $PKG/usr/share/applications/
sed -i "s|\$VBOX_DOC_PATH|/usr/share/virtualbox|" \
$PKG/usr/share/applications/VirtualBox3.desktop
fi
# We don't want a init-script building kernel modules.
# Use virtualbox-kernel.SlackBuild for this.
patch -d src/VBox/Installer/linux -i $CWD/vboxdrv.sh-setup.diff
# Support for the qt4-frontend
if [ "${QT4:-yes}" = "yes" ]; then
GUI+=" VirtualBox"
mkdir -p $PKG/usr/share/applications
cp -f src/VBox/Installer/linux/VirtualBox.desktop $PKG/usr/share/applications/
cp -f src/VBox/Installer/linux/virtualbox.desktop $PKG/usr/share/applications/
sed -i "s|\$VBOX_DOC_PATH|/usr/share/virtualbox|" \
$PKG/usr/share/applications/VirtualBox.desktop
$PKG/usr/share/applications/virtualbox.desktop
else
qtgui+=" --disable-qt4"
fi
@ -136,58 +113,70 @@ CXXFLAGS="$SLKCFLAGS" \
./configure \
--ose \
--disable-kmods \
--disable-pulse \
$web_service \
$harden \
$qtgui \
$do_pulse
$qtgui
. env.sh
. ./env.sh
kmk -j ${JOBS} LOCALCFG=$CWD/LocalConfig.kmk
cp $CWD/LocalConfig.kmk .
sed -i "s|LIBDIR|lib$LIBDIRSUFFIX|" ./LocalConfig.kmk
mkdir -p $PKG/usr/{lib,share}/virtualbox \
kmk -j ${JOBS} LOCALCFG=./LocalConfig.kmk
mkdir -p $PKG/usr/{lib$LIBDIRSUFFIX,share,include}/virtualbox \
$PKG/usr/{bin,src} \
$PKG/usr/share/pixmaps \
$PKG/etc/{rc.d,vbox}
$PKG/etc/{default,rc.d,vbox}
cp -f src/VBox/Installer/linux/vboxdrv.sh.in $PKG/etc/rc.d/rc.vboxdrv.new
cp -f $CWD/vbox.cfg $PKG/etc/vbox/vbox.cfg.new
sed -i "s/%PACKAGE%/virtualbox/g" $PKG/etc/rc.d/rc.vboxdrv.new
sed -i "s/%NOLSB%/yes/" $PKG/etc/rc.d/rc.vboxdrv.new
sed -i "s/%DEBIAN%/no/" $PKG/etc/rc.d/rc.vboxdrv.new
sed -i "s/\[ -z \"\$DEBIAN\"/#\[ -z \"\$DEBIAN\"/" $PKG/etc/rc.d/rc.vboxdrv.new
cd out/linux.x86/release/bin/
rm -f vboxdrv.ko VirtualBox.desktop
cp -f $CWD/vbox.cfg $PKG/etc/vbox/vbox.cfg.new
sed -i "s|LIBDIR|lib$LIBDIRSUFFIX|" $PKG/etc/vbox/vbox.cfg.new
cp -f $CWD/virtualbox.default $PKG/etc/default/virtualbox.new
cd out/linux.$BUILDDIR/release/bin/
rm -f vboxdrv.ko virtualbox.desktop
mv VBox.png $PKG/usr/share/pixmaps/
mv src $PKG/usr/src/virtualbox-kernel-$VERSION
mv sdk nls* *.tar.gz $PKG/usr/share/virtualbox/
install -m $MODE -g $GROUP VBoxSysInfo.sh $PKG/usr/share/virtualbox/
install -m $MODE -g $GROUP VBoxTunctl $PKG/usr/bin/
rm -f VoxSysInfo.sh VBoxTunctl
mv * $PKG/usr/lib/virtualbox/
chown -R root:$GROUP $PKG/usr/lib/virtualbox/
chmod -R $MODE $PKG/usr/lib/virtualbox/
mv $PKG/usr/lib/virtualbox/VBox.sh $PKG/usr/lib/virtualbox/VBox
mv * $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/
chown -R root:$GROUP $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/
chmod -R $MODE $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/
mv $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/VBox.sh $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/VBox
cd -
for i in $GUI VBoxManage VBoxSDL VBoxHeadless VBoxVRDP; do
ln -s /usr/lib/virtualbox/VBox $PKG/usr/bin/$i ;
for i in VirtualBox VBoxManage VBoxSDL VBoxHeadless VBoxVRDP $vboxwebsrv; do
ln -s /usr/lib$LIBDIRSUFFIX/virtualbox/VBox $PKG/usr/bin/$i ;
done
if [ "$harden" = "--enable-hardening" ]; then
for i in $GUI VBoxSDL VBoxHeadless; do
chmod 4${MODE} $PKG/usr/lib/virtualbox/$i
for i in VirtualBox VBoxSDL VBoxHeadless; do
chmod 4${MODE} $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/$i
done
fi
if [ -e "$CWD/VBoxGuestAdditions_$VERSION.iso" ]; then
cp -f $CWD/VBoxGuestAdditions_$VERSION.iso \
$PKG/usr/share/virtualbox/VBoxGuestAdditions.iso
fi
# install headers. Needed by some third party tools
cp -rf include/* $PKG/usr/include/virtualbox/
rm -f $PKG/usr/include/virtualbox/Makefile.kmk
if [ -e "$CWD/UserManual.pdf" ]; then
cp -f $CWD/UserManual.pdf \
$PKG/usr/share/virtualbox/UserManual.pdf
fi
cp -f $CWD/VBoxGuestAdditions_$VERSION.iso \
$PKG/usr/share/virtualbox/VBoxGuestAdditions.iso
cp -f $CWD/UserManual.pdf \
$PKG/usr/share/virtualbox/UserManual.pdf
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -f COPYING COPYING.CDDL $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
@ -195,4 +184,4 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@ -1,8 +1,14 @@
PRGNAM="virtualbox-ose"
VERSION="2.1.4"
VERSION="3.1.2"
HOMEPAGE="http://www.virtualbox.org"
DOWNLOAD="http://download.virtualbox.org/virtualbox/2.1.4/VirtualBox-2.1.4-3-OSE.tar.bz2"
MD5SUM="54548336d61b33e2a01b210b314927cd"
MAINTAINER="ppr:kut"
DOWNLOAD="http://download.virtualbox.org/virtualbox/3.1.2/VirtualBox-3.1.2-OSE.tar.bz2 \
http://download.virtualbox.org/virtualbox/3.1.2/VBoxGuestAdditions_3.1.2.iso \
http://download.virtualbox.org/virtualbox/3.1.2/UserManual.pdf"
MD5SUM="e7808f16114f5b1a65aa2df1aa33e1a7 \
d1ac5c53fb889338849134e07a6bc16f \
052357bb684515035b3e561b35a1d6f2"
DOWNLOAD_x86_64="UNTESTED"
MD5SUM_x86_64=""
MAINTAINER="Heinz Wiesinger"
EMAIL="pprkut@liwjatan.at"
APPROVED="dsomero"
APPROVED="rworkman"

View File

@ -0,0 +1,10 @@
# /etc/default/virtualbox - Version 1.0 2009-07-11 by Heinz Wiesinger
#
# "/etc/rc.d/rc.vboxdrv stop_vms" will try to stop running vms of the users
# defined here.
SHUTDOWN_USERS=""
# The default shutdown method "/etc/rc.d/rc.vboxdrv stop_vms" should use
SHUTDOWN="savestate"
#SHUTDOWN="acpibutton"
#SHUTDOWN="savestate"