# SliTaz package receipt. PACKAGE="virtualbox-ose" VERSION="4.1.8" CATEGORY="misc" SHORT_DESC="Powerful x86 virtualization for enterprise as well as home use (Open Source Edition)" MAINTAINER="slaxemulator@gmail.com" SOURCE="VirtualBox" TARBALL="$SOURCE-$VERSION.tar.bz2" WEB_SITE="http://virtualbox.org/" WGET_URL="http://download.virtualbox.org/virtualbox/$VERSION/$TARBALL" PROVIDE="virtualbox" DEPENDS="libxml2 xorg-libXcursor libIDL xorg-libXinerama libsdl \ xorg-libXmu curl libvncserver libpng jpeg mesa libglu-mesa qt4 vde2" BUILD_DEPENDS="bin86 dev86 iasl libIDL libsdl-dev mesa-dev libxslt-dev \ Qt4-dev libsdl-ttf-dev alsa-lib-dev hal-dev xorg-libXtst-dev \ xorg-libXrandr-dev python python-dev xalan-c curl-dev xalan-c-dev \ xerces-c-dev openssl-dev zlib-dev libcap-dev glib-dev libvncserver-dev \ pam pam-dev bzip2 linux-module-headers pkg-config tar wget vde2-dev" # Rules to configure and make the package. compile_rules() { cd $src patch -Np1 -i "$stuff/virtualbox-4-makeself-check.patch" patch -Np1 -i "$stuff/virtualbox-4-mkisofs-check.patch" cp $stuff/LocalConfig.kmk . ./configure \ --disable-pulse \ --disable-java \ --disable-docs \ --enable-webservice \ --enable-vde \ --with-linux=/usr/src/linux source ./env.sh kmk all # build modules. NOTE: we gor ERROR even if it build and cook will exit # sed ERROR to error. cd KERN_DIR=/usr/src/linux make -C "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" # build guest additions modules KERN_DIR=/usr/src/linux make -C "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" KERN_DIR=/usr/src/linux make -C \ "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src/vboxvideo" \ 2>&1 | sed s'/ERROR/error/' } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { fs=$WOK/$PACKAGE/taz/$PACKAGE-$VERSION/fs source $src/env.sh cd $src/out/linux.$BUILD_PLATFORM_ARCH/release/bin mkdir -p $fs/usr/bin $fs/usr/lib/virtualbox/components \ $fs/usr/share/virtualbox/nls \ $fs/usr/lib/virtualbox/ExtensionPacks install -m 0755 VBox.sh $fs/usr/bin/VBox sed -i 's/ps -U/ps | grep/' $fs/usr/bin/VBox ln -sf VBox $fs/usr/bin/VBoxHeadless ln -sf VBox $fs/usr/bin/vboxheadless ln -sf VBox $fs/usr/bin/VBoxManage ln -sf VBox $fs/usr/bin/vboxmanage ln -sf VBox $fs/usr/bin/VBoxSDL ln -sf VBox $fs/usr/bin/vboxsdl ln -sf VBox $fs/usr/bin/VirtualBox ln -sf VBox $fs/usr/bin/virtualbox ln -sf VBox $fs/usr/bin/vboxwebsrv install -m 0755 VBoxTunctl "$fs/usr/bin" # components install -D -m 0755 components/* $fs/usr/lib/virtualbox/components # lib install -m 0755 *.so "$fs/usr/lib/virtualbox" install -m 0644 *.gc *.r0 VBoxEFI*.fd "$fs/usr/lib/virtualbox" #setuid root binaries install -m 4755 VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl "$fs/usr/lib/virtualbox" #other binaries #install -m 0755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL vboxwebsrv webtest "$fs/usr/lib/virtualbox" install -m 0755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL "$fs/usr/lib/virtualbox" #language install -m 0755 nls/*.qm "$fs/usr/share/virtualbox/nls" #useless scripts install -m 0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh "$fs/usr/share/virtualbox" #icon install -D -m 0644 VBox.png "$fs/usr/share/pixmaps/virtualbox.png" #desktop install -D -m 0644 virtualbox.desktop "$fs/usr/share/applications/virtualbox.desktop" sed -i "s|VBox.png|virtualbox|" \ $fs/usr/share/applications/virtualbox.desktop install -D -m 0644 virtualbox.xml "$fs/usr/share/mime/packages/virtualbox.xml" #install configuration mkdir -p "$fs/etc/vbox" echo 'lsmod | grep -q vboxdrv || modprobe vboxdrv' > "$fs/etc/vbox/vbox.cfg" echo 'INSTALL_DIR=/usr/lib/virtualbox' >> "$fs/etc/vbox/vbox.cfg" #udev install -D -m 0644 "$stuff/60-virtualbox.rules" \ "$fs/etc/udev/rules.d/60-virtualbox.rules" mkdir -p $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/ cd sdk/installer VBOX_INSTALL_PATH="/usr/lib/virtualbox" python vboxapisetup.py install --root "$fs" cd $src/out/linux.$BUILD_PLATFORM_ARCH/release/bin cd sdk/bindings/xpcom/python cp -r xpcom $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/ chmod 644 $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/*.py chmod 644 $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/server/*.py chmod 644 $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/*.py cd $src/out/linux.$BUILD_PLATFORM_ARCH/release/bin # virtualbox-modules KERNEL_VERSION=`grep ^VERSION= $WOK/linux/receipt | cut -d "=" -f2 | sed -e 's/"//g'` cd "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" install -D -m644 vboxdrv.ko "$fs/lib/modules/$KERNEL_VERSION-slitaz/misc/vboxdrv.ko" install -D -m644 vboxnetflt.ko "$fs/lib/modules/$KERNEL_VERSION-slitaz/misc/vboxnetflt.ko" install -D -m644 vboxnetadp.ko "$fs/lib/modules/$KERNEL_VERSION-slitaz/misc/vboxnetadp.ko" # virtualbox-ose-additions cd "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions" mkdir -p $fs/usr/bin mkdir -p $fs/sbin mkdir -p $fs/etc/X11/xorg.conf.d install -m755 VBoxClient VBoxControl VBoxService "$fs/usr/bin" install -m755 mount.vboxsf "$fs/sbin" install -m644 $src/src/VBox/Additions/x11/Installer/50-vboxmouse.conf \ $fs/etc/X11/xorg.conf.d/50-vboxmouse.conf install -m755 -D $src/src/VBox/Additions/x11/Installer/98vboxadd-xclient \ $fs/usr/bin/VBoxClient-all install -m755 -D $src/src/VBox/Additions/x11/Installer/vboxclient.desktop \ $fs/etc/xdg/autostart/vboxclient.desktop install -D vboxmouse_drv_19.so \ "$fs/usr/lib/X11/modules/input/vboxmouse.so" install -D vboxvideo_drv_19.so \ "$fs/usr/lib/X11/modules/drivers/vboxvideo.so" install -d "$fs/usr/lib/dri" install -m755 VBoxOGL*.so "$fs/usr/lib" ln -s /usr/lib/VBoxOGL.so "$fs/usr/lib/dri/vboxvideo_dri.so" install -m755 -D pam_vbox.so "$fs/lib/security/pam_vbox.so" # virtualbox-ose-additions-modules cd "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" cd vboxguest install -D -m644 vboxguest.ko \ "$fs/lib/modules/$KERNEL_VERSION-slitaz/misc/vboxguest.ko" cd ../vboxsf install -D -m644 vboxsf.ko \ "$fs/lib/modules/$KERNEL_VERSION-slitaz/misc/vboxsf.ko" cd ../vboxvideo install -D -m644 vboxvideo.ko \ "$fs/lib/modules/$KERNEL_VERSION-slitaz/misc/vboxvideo.ko" install -D -m 0644 "$stuff/60-vboxguest.rules" \ "$fs/etc/udev/rules.d/60-vboxguest.rules" } pre_remove() { sed -i "s/vboxdrv vboxnetadp vboxnetflt //" $1/etc/rcS.conf } post_install() { KERNEL_VERSION=`grep ^VERSION= $1/var/lib/tazpkg/installed/linux/receipt | cut -d "=" -f2 | sed -e 's/"//g'` chroot "$1/" depmod -a $KERNEL_VERSION-slitaz grep -qs vboxdrv $1/etc/rcS.conf || sed -i 's/LOAD_MODULES="/&vboxdrv vboxnetadp vboxnetflt /' $1/etc/rcS.conf }