#!/bin/sh # Heavily based on the Slackware 12.1 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=2.0.6 SVERSION=2.0.6-OSE ARCH=${ARCH:-i686} TARGET=i486 BUILD=1dav if [ ! -f VirtualBox-2.0.6-OSE.tar.bz2 ]; then wget -c http://download.virtualbox.org/virtualbox/2.0.6/VirtualBox-2.0.6-OSE.tar.bz2 # WTF? It seems that at Sun everyone use a GUI, so we need to rename # that mess (the same for the other downloads) mv VirtualBox-2.0.6-OSE.tar.bz2* VirtualBox-2.0.6-OSE.tar.bz2 fi if [ ! -f VBoxGuestAdditions_2.0.6.iso ]; then wget -c http://download.virtualbox.org/virtualbox/2.0.6/VBoxGuestAdditions_2.0.6.iso mv VBoxGuestAdditions_2.0.6.iso* VBoxGuestAdditions_2.0.6.iso fi if [ ! -f UserManual.pdf ]; then wget -c http://download.virtualbox.org/virtualbox/2.0.6/UserManual.pdf mv UserManual.pdf* 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 ) # tunctl #( #tar xzvf $CWD/tunctl.tar.gz #cd tunctl #make #) tar xjvf $CWD/VirtualBox-${SVERSION}.tar.bz2 cd VirtualBox-${VERSION} # 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,VirtualBox3} 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/virtualbox3 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 install -D -m 0644 $CWD/virtualbox3.desktop $PKG/usr/share/applications/virtualbox3.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 $TMP/tunctl/tunctl $PKG/usr/bin/tunctl 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 chown -R root.bin $PKG/usr/bin 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 mv $PKG/usr/lib/virtualbox/VirtualBox $TMP mv $PKG/usr/lib/virtualbox/VirtualBox.so $TMP #gzip -9 $PKG/usr/man/*/* mkdir -p $PKG/install #cat $CWD/slack-required > $PKG/install/slack-required cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG ADD="bridge-utils >= 1.2-i486-1" \ requiredbuilder -v -y -s $CWD $PKG mv $CWD/slack-required $CWD/slack-required-qt3 makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz upgradepkg --install-new $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz rm -rf $PKG/* mkdir -p $PKG/usr/bin mkdir -p $PKG/install install -D -m 0644 $CWD/virtualbox.desktop $PKG/usr/share/applications/virtualbox.desktop install -D -m 4511 $TMP/VirtualBox $PKG/usr/lib/virtualbox/VirtualBox install -D -m 644 $TMP/VirtualBox.so $PKG/usr/lib/virtualbox/VirtualBox.so ln -s ../lib/virtualbox/VBox.sh $PKG/usr/bin/virtualbox cat $CWD/slack-desc-qt4 > $PKG/install/slack-desc ADD="virtualbox-ose = 2.0.6-i686-1dav" \ requiredbuilder -v -y -s $CWD $PKG mv $CWD/slack-required $CWD/slack-required-qt4 mv $CWD/slack-required-qt3 $CWD/slack-required makepkg -l y -c n $CWD/$NAME-qt4-$VERSION-$ARCH-$BUILD.tgz # Clean up the extra stuff: if [ "$1" = "--cleanup" ]; then rm -rf $TMP fi