# Warning: VirtualBox source ships with many blobs, these instructions try to remove and substitute them but may miss some # Note: VirtualBox can currently only be built on 32-bit x86 systems or 64-bit systems with multilib, which the AOS buildscript doesn't do. # Note: depends on mesa # Note: depends on dev86 # Note: depends on libxml2 # Note: depends on libIDL # Note: depends on libXmu # Note: depends on serf (provides http-support for subversion) # Note: depends on subversion # Note: depends on acpica # Note: depends on cdrtools # Note: depends on SDL # Note: depends on autoconf # Note: depends on automake # Note: depends on openssl # Note: depends on curl # Note: depends on libpng # Note: depends on libXcursor # Note: depends on libXinerama # Note: depends on libXrandr # Note: depends on glu # Note: depends on pulseaudio # Note: depends on alsa-lib # Note: depends on libcap # Note: depends on makeself # Note: depends on yasm # Note: depends on qt4 # Note: depends on texlive # Note: depends on texinfo wget -c http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2.18.tar.bz2 tar -xjf VirtualBox-4.2.18.tar.bz2 cd VirtualBox-4.2.18 # Clear out binary blobs rm -rf kBuild* rm -rf tools/*.*6* rm -rf src/libs/libxml2-2.6.31 rm -rf src/libs/kStuff/kStuff/kLdr/testcase/bin rm -rf src/VBox/Main/webservice/jaxlibs # Use the system's tools instead ln -s /usr tools/linux.x86 # Build specific kBuild version to replace the included blob ln -s kBuild_build/kBuild kBuild svn co -r 2680 http://svn.netlabs.org/repos/kbuild/trunk kBuild_build cd kBuild_build rm -rf kBuild/bin sed -i -e 's/-O3/-O2/' Config.kmk # Too much optimization triggers a bug sed -i -e 's|s/URL|s/^URL|' Config.kmk # Work around odd "empty variable" error kBuild/env.sh --full make -f bootstrap.gmk cd .. # Now build the actual virtualbox package ./configure --enable-webservice --disable-java --nofatal --enable-vnc --enable-vde source ./env.sh echo 'VBOX_WITH_PAM=' >> Config.kmk # Disable PAM support+dependency, unless you use PAM echo 'VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox' > LocalConfig.kmk echo 'VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)' >> LocalConfig.kmk echo 'VBOX_WITH_ORIGIN :=' >> LocalConfig.kmk echo 'VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)' >> LocalConfig.kmk echo 'VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox' >> LocalConfig.kmk echo 'VBOX_PATH_APP_DOCS := /usr/share/doc/virtualbox' >> LocalConfig.kmk kmk # Doesn't mind -j# # Install cp -r out/*/release/bin /usr/lib/virtualbox chown -R 0.0 /usr/lib/virtualbox chmod +s /usr/lib/virtualbox/VirtualBox /usr/lib/virtualbox/VBoxManage /usr/lib/virtualbox/VBoxHeadless /usr/lib/virtualbox/VBoxTunctl ln -s ../lib/virtualbox/VirtualBox ../lib/virtualbox/VBoxManage ../lib/virtualbox/VBoxHeadless /usr/bin install out/*/release/bin/virtualbox.desktop /usr/share/applications # Install icons for size in `ls out/*/release/bin/icons`; do if [ -e out/*/release/bin/icons/${size}/virtualbox.* ]; then mkdir -p "/usr/share/icons/hicolor/${size}/apps" install out/*/release/bin/icons/${size}/virtualbox.* "/usr/share/icons/hicolor/${size}/apps" fi if ls out/*/release/bin/icons/${size} | grep -q virtualbox-; then mkdir -p "/usr/share/icons/hicolor/${size}/mimetypes" install out/*/release/bin/icons/${size}/virtualbox-* "/usr/share/icons/hicolor/${size}/mimetypes" fi done # Kernel module: cd out/*/release/bin/src make make install