#!/bin/sh # Heavily based on the Slackware 12.2 SlackBuild # http://www.virtualbox.org/ # Packager Davide Locatelli (l.davide_AT_tiscali.it) CWD=`pwd` TMP=/tmp/tgz NAME=virtualbox-ose PKG=$TMP/package-$NAME VERSION=3.0.4 SVERSION=3.0.4-OSE ARCH=${ARCH:-i686} TARGET=i486 BUILD=1dav if [ ! -f VirtualBox-3.0.4-OSE.tar.bz2 ]; then wget -c http://download.virtualbox.org/virtualbox/3.0.4/VirtualBox-3.0.4-OSE.tar.bz2 -O VirtualBox-3.0.4-OSE.tar.bz2 fi if [ ! -f VBoxGuestAdditions_3.0.4.iso ]; then wget -c http://download.virtualbox.org/virtualbox/3.0.4/VBoxGuestAdditions_3.0.4.iso -O VBoxGuestAdditions_3.0.4.iso fi if [ ! -f UserManual.pdf ]; then wget -c http://download.virtualbox.org/virtualbox/3.0.4/UserManual.pdf -O UserManual.pdf fi if [ -f /var/log/packages/$NAME-$VERSION-$ARCH-$BUILD ]; then echo "$NAME-$VERSION-$ARCH-$BUILD package already installed" exit 0 fi if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi rm -rf $PKG mkdir -p $PKG if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mtune=i686" ARCH_CONFIGURE="" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" ARCH_CONFIGURE="" elif [ "$ARCH" = "powerpc" ]; then SLKCFLAGS="-O2" ARCH_CONFIGURE="" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" ARCH_CONFIGURE="" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" ARCH_CONFIGURE="--libdir=/usr/lib64" elif [ "$ARCH" = "k8" ]; then SLKCFLAGS="-O3 -march=k8 -mtune=k8 -pipe -ffast-math -fomit-frame-pointer" ARCH_CONFIGURE="" elif [ "$ARCH" = "custom" ]; then SLKCFLAGS="" ARCH_CONFIGURE="" fi cd $TMP # bcc ( tar xzvf $CWD/Dev86src-0.16.17.tar.gz cd dev86-0.16.17 make ) # iasl ( tar xzvf $CWD/acpica-unix-20061109.tar.gz cd acpica-unix-20061109/compiler make ) tar xjvf $CWD/VirtualBox-${SVERSION}.tar.bz2 cd VirtualBox-3.0.4_OSE # Apply $ARCH specific patches if [ "$ARCH" = "i386" ]; then echo "Applying patches for $ARCH" #cat $CWD/foo.patch | patch -p0 --verbose elif [ "$ARCH" = "i486" ]; then echo "Applying patches for $ARCH" #cat $CWD/foo.patch | patch -p0 --verbose elif [ "$ARCH" = "s390" ]; then echo "Applying patches for $ARCH" #cat $CWD/foo.patch | patch -p0 --verbose elif [ "$ARCH" = "powerpc" ]; then echo "Applying patches for $ARCH" #cat $CWD/foo.patch | patch -p0 --verbose elif [ "$ARCH" = "x86_64" ]; then echo "Applying patches for $ARCH" #cat $CWD/foo.patch | patch -p0 --verbose fi #CFLAGS="$SLKCFLAGS" \ PATH=$PATH:$TMP/dev86-0.16.17/bcc \ ./configure --with-iasl=$TMP/acpica-unix-20061109/compiler/iasl \ --with-qt-dir=/usr/lib/qt \ --with-qt4-dir=/opt/qt4 \ --disable-pulse \ --disable-hardening source env.sh kmk || exit 1 mkdir -m 755 -p $PKG/usr/bin mkdir -m 755 -p $PKG/etc/rc.d mkdir -m 755 -p $PKG/etc/vbox mkdir -m 755 -p $PKG/usr/lib/virtualbox cp -R out/linux.*/release/bin/* $PKG/usr/lib/virtualbox #chmod 4511 $PKG/usr/lib/virtualbox/{VBoxHeadless,VBoxSDL,VirtualBox} install -D -m 755 $CWD/VBox.sh $PKG/usr/lib/virtualbox ln -s ../lib/virtualbox/VBox.sh $PKG/usr/bin/vboxmanage ln -s ../lib/virtualbox/VBox.sh $PKG/usr/bin/vboxsdl ln -s ../lib/virtualbox/VBox.sh $PKG/usr/bin/virtualbox ln -s ../lib/virtualbox/VBox.sh $PKG/usr/bin/vboxheadless install -D -m 0644 $CWD/virtualbox.png $PKG/usr/share/icons/hicolor/32x32/apps/virtualbox.png install -D -m 0644 $CWD/virtualbox.xpm $PKG/usr/share/pixmaps/virtualbox.xpm install -D -m 0644 $CWD/virtualbox.desktop $PKG/usr/share/applications/virtualbox.desktop echo "# VirtualBox installation directory" > $PKG/etc/vbox/vbox.cfg echo "INSTALL_DIR=\"/usr/lib/virtualbox\"" >> $PKG/etc/vbox/vbox.cfg install -D -m 755 $CWD/rc.vboxdrv $PKG/etc/rc.d/rc.vboxdrv install -D -m 755 $CWD/rc.vboxnet $PKG/etc/rc.d/rc.vboxnet install -D -m 644 $CWD/rc.vboxbridge $PKG/etc/rc.d/rc.vboxbridge install -D -m 755 $CWD/60-vboxdrv.rules $PKG/etc/udev/rules.d/60-vboxdrv.rules cp $CWD/VBoxGuestAdditions_${VERSION}.iso $PKG/usr/lib/virtualbox/VBoxGuestAdditions.iso mkdir -p $PKG/usr/doc/$NAME-$VERSION cp -a $CWD/UserManual.pdf $CWD/Howto_build.txt $CWD/Virtualbox_mini-howto.lyx \ $CWD/Virtualbox_mini-howto.txt $PKG/usr/doc/$NAME-$VERSION chmod 644 $PKG/usr/doc/$NAME-$VERSION/* chown root:root $PKG/usr/doc/$NAME-$VERSION/* find $PKG -type f | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG requiredbuilder -v -y -s $CWD $PKG makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz # Clean up the extra stuff: if [ "$1" = "--cleanup" ]; then rm -rf $TMP fi