diff --git a/xap/virtualbox-ose/.gitignore b/xap/virtualbox-ose/.gitignore
index 0692e0ba..4d9fb4c1 100644
--- a/xap/virtualbox-ose/.gitignore
+++ b/xap/virtualbox-ose/.gitignore
@@ -1,2 +1,2 @@
UserManual.pdf
-VBoxGuestAdditions_3.0.2.iso
+VBoxGuestAdditions_3.0.4.iso
diff --git a/xap/virtualbox-ose/checksums b/xap/virtualbox-ose/checksums
index 8216ff1a..03d1a8b2 100644
--- a/xap/virtualbox-ose/checksums
+++ b/xap/virtualbox-ose/checksums
@@ -1,3 +1,3 @@
-442206e7dfcf6719b7ee452f9f042563acd6f0eb VirtualBox-3.0.2-OSE.tar.bz2
-4d45c10d84256fdb9baaab4bbd32c6c229a94add VBoxGuestAdditions_3.0.2.iso
-0e732df478c0bbd9fb26ccdb1466328f8cdc5398 UserManual.pdf
+454f4fbd46a3c7bfa0f6e48eaa37bb578446aca5 VirtualBox-3.0.4-OSE.tar.bz2
+cef83248ab71e1ccdcf1a5904ad66cf3b898f928 VBoxGuestAdditions_3.0.4.iso
+a63a4353e3d049c0a4ed67159a20c7dab6c32668 UserManual.pdf
diff --git a/xap/virtualbox-ose/virtualbox-ose.SlackBuild b/xap/virtualbox-ose/virtualbox-ose.SlackBuild
index e13cb91c..05a31db5 100755
--- a/xap/virtualbox-ose/virtualbox-ose.SlackBuild
+++ b/xap/virtualbox-ose/virtualbox-ose.SlackBuild
@@ -26,24 +26,36 @@
# .
#
# Depends: d/iasl
+#
+# Notes: To build VirtualBox, you need a compiler able to generate
+# 32-bit binaries and the corresponding 32-bit libraries; these
+# are provided by Eric Hameleers' "multilib" packages, found at
+# .
+#
+# This SlackBuild does not build the kernel modules needed to run
+# VirtualBox; instead, their sources are installed in
+# /usr/src/virtualbox-kmods-$VERSION. It is up to the
+# administrator to compile these modules against the desired
+# Linux kernel and install them.
# Source package infos
NAMESRC=${NAMESRC:-VirtualBox}
-VERSION=${VERSION:-3.0.2}
+VERSION=${VERSION:-3.0.4}
ARCHIVE=${ARCHIVE:-$NAMESRC-$VERSION-OSE.tar.bz2}
GUESTISO=${GUESTISO:-VBoxGuestAdditions_$VERSION.iso}
BASEURL=${BASEURL:-http://download.virtualbox.org/virtualbox/$VERSION}
# Build infos
-NAMETGZ=${NAMETGZ:-virtualbox-ose}
+NAMEPKG=${NAMEPKG:-virtualbox-ose}
BUILD=${BUILD:-1GGD}
ARCH=${ARCH:-i486}
JOBS=${JOBS:-1}
+EXT=${EXT:-txz}
# Directories
TMP=${TMP:-/tmp}
OUT=${OUT:-$TMP/build}
-PKG=${PKG:-$OUT/$NAMETGZ}
+PKG=${PKG:-$OUT/$NAMEPKG}
CWD=$(pwd)
set -e # Quit if a command returns non-zero
@@ -59,15 +71,20 @@ if [ ! -d $TMP ]; then
fi
# Compilation flags
+LIBDIR=/usr/lib/virtualbox
case "$ARCH" in
i?86)
CPUOPT="-O2 -march=$ARCH -mtune=i686"
+ ARCHNAME="x86"
;;
x86_64)
CPUOPT="-O2 -fPIC"
+ LIBDIR=/usr/lib64/virtualbox
+ ARCHNAME="amd64"
;;
*)
CPUOPT="-O2"
+ ARCHNAME=$ARCH
;;
esac
@@ -98,28 +115,29 @@ CXXFLAGS=$CPUOPT \
--disable-kmods \
--disable-pulse
. env.sh
-kmk -j ${JOBS} LOCALCFG=$CWD/LocalConfig.kmk
+sed -e "s,/usr/lib/virtualbox,$LIBDIR," $CWD/LocalConfig.kmk > LocalConfig.kmk
+kmk -j ${JOBS} LOCALCFG=LocalConfig.kmk
# Create directories
mkdir -p $PKG/etc/vbox \
$PKG/lib/udev/rules.d \
$PKG/usr/bin \
- $PKG/usr/lib/virtualbox \
+ $PKG$LIBDIR \
$PKG/usr/share/applications \
$PKG/usr/share/pixmaps \
$PKG/usr/share/virtualbox \
- $PKG/usr/doc/$NAMETGZ-$VERSION \
+ $PKG/usr/doc/$NAMEPKG-$VERSION \
$PKG/usr/src \
$PKG/install
# Install config file and udev rule
-echo 'INSTALL_DIR="/usr/lib/virtualbox"' > $PKG/etc/vbox/vbox.cfg.new
-echo 'KERNEL=="vboxdrv", NAME"vboxdrv", OWNER="root", GROUP="vbox", MODE="0660"' \
- > $PKG/lib/udev/rules.d/60-vboxdrv.rules
+echo "INSTALL_DIR='$LIBDIR'" > $PKG/etc/vbox/vbox.cfg.new
+echo 'KERNEL=="vboxdrv", NAME"vboxdrv", OWNER="root", GROUP="vbox", ' \
+ 'MODE="0660"' > $PKG/lib/udev/rules.d/60-vboxdrv.rules
# Install main files
(
- cd out/linux.x86/release/bin
+ cd out/linux.$ARCHNAME/release/bin
mv VBox.png $PKG/usr/share/pixmaps/
mv VirtualBox.desktop $PKG/usr/share/applications
mv src $PKG/usr/src/virtualbox-kmods-$VERSION
@@ -127,14 +145,14 @@ echo 'KERNEL=="vboxdrv", NAME"vboxdrv", OWNER="root", GROUP="vbox", MODE="0660"'
install -m 750 VBoxSysInfo.sh $PKG/usr/share/virtualbox/
install -m 750 VBoxTunctl $PKG/usr/bin
rm VBoxSysInfo.sh VBoxTunctl
- mv * $PKG/usr/lib/virtualbox/
- chmod -R 750 $PKG/usr/lib/virtualbox/
- mv $PKG/usr/lib/virtualbox/VBox.sh $PKG/usr/lib/virtualbox/VBox
+ mv * $PKG$LIBDIR/
+ chmod -R 750 $PKG$LIBDIR/
+ mv $PKG$LIBDIR/VBox.sh $PKG$LIBDIR/VBox
)
# Create symlinks
for i in VirtualBox VBoxManage VBoxSDL VBoxHeadless VBoxVRDP ; do
- ln -s /usr/lib/virtualbox/VBox $PKG/usr/bin/$i
+ ln -s $LIBDIR/VBox $PKG/usr/bin/$i
done
# Copy auxiliary files
@@ -144,20 +162,21 @@ sed -ri 's,^DocPath=.*$,DocPath=file:///usr/share/virtualbox/UserManual.pdf,' \
$PKG/usr/share/applications/VirtualBox.desktop
# Install the documentation
-mkdir -p $PKG/usr/doc/$NAMETGZ-$VERSION
-install -m 644 COPYING COPYING.CDDL $PKG/usr/doc/$NAMETGZ-$VERSION
+mkdir -p $PKG/usr/doc/$NAMEPKG-$VERSION
+install -m 644 COPYING COPYING.CDDL $PKG/usr/doc/$NAMEPKG-$VERSION
# Copy slack-desc and doinst.sh files
mkdir -p $PKG/install
install -m 644 $CWD/slack-desc $PKG/install/slack-desc
-install -m 755 $CWD/doinst.sh $PKG/install/doinst.sh
+sed -e "s,/usr/lib/virtualbox,$LIBDIR," $CWD/doinst.sh > $PKG/install/doinst.sh
+chmod 755 $PKG/install/doinst.sh
# Package the tree
cd $PKG
mkdir -p $OUT
PACKAGING="
chown root:root . -R
-/sbin/makepkg -l y -c n $OUT/$NAMETGZ-$VERSION-$ARCH-$BUILD.tgz
+/sbin/makepkg -l y -c n $OUT/$NAMEPKG-$VERSION-$ARCH-$BUILD.$EXT
rm -rf $PKG
rm -rf $TMP/$NAME
"