# Template file for 'virtualbox-ose'
pkgname=virtualbox-ose
_vbox_distver=4.0.8
version=${_vbox_distver}
wrksrc="VirtualBox-${version}_OSE"
distfiles="http://download.virtualbox.org/virtualbox/$version/VirtualBox-$version.tar.bz2"
build_style=custom-install
short_desc="General-purpose full virtualizer for x86 hardware"
maintainer="Juan RP <xtraeme@gmail.com>"
checksum=48961f0d6fe70c3887cbca5ea987767ac1bafd4b64dd3c4d25445682351e118e
long_desc="
 VirtualBox is a free x86 virtualization solution allowing a wide range of x86
 operating systems such as Windows, DOS, BSD or Linux to run on a Linux system."

system_groups="vboxusers"
gtk_iconcache_dirs="/usr/share/icons/hicolor"
subpackages="${pkgname}-dkms ${pkgname}-guest ${pkgname}-guest-dkms"
openrc_services="virtualbox default true"

Add_dependency run libgcc
Add_dependency run glibc
Add_dependency run libstdc++
Add_dependency run libpng
Add_dependency run zlib
Add_dependency run libssl
Add_dependency run libxml2
Add_dependency run libcurl
Add_dependency run SDL
Add_dependency run qt
Add_dependency run libX11
Add_dependency run libXmu
Add_dependency run libXext
Add_dependency run python
Add_dependency run libXcursor
Add_dependency run libXt
Add_dependency run libXinerama
Add_dependency run MesaLib
Add_dependency run libIDL
Add_dependency run glib
Add_dependency run ${pkgname}-dkms	">=${version}"

Add_dependency build libpng-devel
Add_dependency build zlib-devel
Add_dependency build openssl-devel
Add_dependency build libxml2-devel
Add_dependency build libcurl-devel
Add_dependency build SDL-devel
Add_dependency build qt-devel
Add_dependency build libX11-devel
Add_dependency build libXmu-devel
Add_dependency build libXext-devel
Add_dependency build python-devel
Add_dependency build libXcursor-devel
Add_dependency build libXt-devel
Add_dependency build libXinerama-devel
Add_dependency build MesaLib-devel
Add_dependency build libIDL-devel
Add_dependency build glib-devel
Add_dependency build pam-devel
Add_dependency build libxslt
Add_dependency build docbook-xml
Add_dependency build docbook-xsl
Add_dependency build acpica-utils
Add_dependency build kernel-headers
Add_dependency build dev86
Add_dependency build yasm
if [ "${xbps_machine}" = "x86_64" ]; then
	Add_dependency build gcc-c++-multilib
fi
Add_dependency full gcc
Add_dependency full coreutils
Add_dependency full hicolor-icon-theme
Add_dependency full desktop-file-utils

do_build()
{
	_khdrver=$($XBPS_PKGDB_CMD version kernel-headers)

	# Fix path for kernel-headers location.
	sed -i -e "s|@@XBPS_KERNHDRVER@@|${_khdrver}|g" configure

	# Build.
	cp -f ${FILESDIR}/LocalConfig.kmk .
	./configure --disable-kmods --disable-java --enable-vde --disable-docs
	source ./env.sh
	kmk ${makejobs} all
}

do_install()
{
	local f _osedir _guestdir

	source ./env.sh
	#
	# virtualbox-ose.
	#
	cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin
	mkdir -p ${DESTDIR}/usr/{bin,lib/virtualbox/components,share/virtualbox/nls}

	install -m0755 VBox.sh ${DESTDIR}/usr/bin/VBox
	for f in VirtualBox VBoxManage VBoxSDL VBoxHeadless vboxwebsrv; do
		ln -sf VBox ${DESTDIR}/usr/bin/${f}
	done
	install -m0755 components/* -t ${DESTDIR}/usr/lib/virtualbox/components
	install -m0755 *.so ${DESTDIR}/usr/lib/virtualbox
	install -m0644 *.gc *.r0 VBoxEFI* ${DESTDIR}/usr/lib/virtualbox
	install -m4755 VBoxHeadless VBoxSDL VBoxNetDHCP VBoxNetAdpCtl \
		VirtualBox VBoxBFE -t ${DESTDIR}/usr/lib/virtualbox
	install -m0755 VBoxManage VBoxSVC VBoxXPCOMIPCD *.sh xpidl \
		VBoxTestOGL EfiThunk *.py -t ${DESTDIR}/usr/lib/virtualbox
	
	install -m0755 nls/*.qm -t ${DESTDIR}/usr/share/virtualbox/nls

	install -D -m0644 VBox.png ${DESTDIR}/usr/share/pixmaps/VBox.png
	install -D -m0644 virtualbox.desktop \
		${DESTDIR}/usr/share/applications/virtualbox.desktop
	sed -i -e "s|Icon=VBox|Icon=VBox.png|" \
		${DESTDIR}/usr/share/applications/virtualbox.desktop
	install -d ${DESTDIR}/usr/share/icons/hicolor
	cp -a icons ${DESTDIR}/usr/share/icons/hicolor

	mkdir -p ${DESTDIR}/etc/vbox
	echo 'INSTALL_DIR=/usr/lib/virtualbox' > ${DESTDIR}/etc/vbox/vbox.cfg

	mkdir -p ${DESTDIR}/usr/lib/virtualbox/sdk/bindings/xpcom/python
	cd sdk/installer
	VBOX_INSTALL_PATH="/usr/lib/virtualBox" \
		python vboxapisetup.py install --root "${DESTDIR}"
	cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/sdk/bindings/xpcom/python
	cp -r xpcom ${DESTDIR}/usr/lib/virtualbox/sdk/bindings/xpcom/python
	chmod 644 ${DESTDIR}/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/*.py
	chmod 644 ${DESTDIR}/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/server/*.py
	chmod 644 ${DESTDIR}/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/*.py

	cd ${wrksrc}/out/linux.$BUILD_PLATFORM_ARCH/release/bin
	install -d ${DESTDIR}/usr/share/licenses/${pkgname}
	install -m0644 ${wrksrc}/COPYING* \
		${DESTDIR}/usr/share/licenses/${pkgname}
	# Install the OpenRC service.
	install -D -m755 ${FILESDIR}/virtualbox.rc \
		${DESTDIR}/etc/init.d/virtualbox
}
