# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit toolchain-funcs flag-o-matic fdo-mime MY_P=VirtualBox-${PV}-OSE DESCRIPTION="Softwarefamily of powerful x86 virtualization" HOMEPAGE="http://www.virtualbox.org/" SRC_URI="http://dlc.sun.com/virtualbox/${PV}/${MY_P}.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="alsa headless pulseaudio sdk qt3 qt4 python hardening" DEPEND="!app-emulation/virtualbox-bin ~app-emulation/virtualbox-modules-${PV} !headless? ( qt3? ( x11-libs/qt:3 ) qt4? ( x11-libs/qt:4 ) >=media-libs/libsdl-1.2.7 media-libs/sdl-ttf x11-libs/libXcursor x11-libs/libX11 x11-libs/libXext ) python? ( >=dev-lang/python-2.3 ) sys-devel/dev86 sys-power/iasl >=dev-libs/libxslt-1.1.17 sys-libs/glibc >=dev-libs/libxml2-2.6.26 dev-libs/libIDL >=sys-libs/zlib-1.2.1 >=media-libs/libpng-1.2.5 alsa? ( >=media-libs/alsa-lib-1.0.6 ) pulseaudio? ( media-sound/pulseaudio ) net-misc/bridge-utils" S=${WORKDIR}/${MY_P/-OSE/} pkg_setup() { if ! use headless; then if ! built_with_use media-libs/libsdl X; then eerror "media-libs/libsdl was compiled without the \"X\" USE flag enabled." eerror "Please re-emerge media-libs/libsdl with USE=\"X\"." die "media-libs/libsdl should be compiled with the \"X\" USE flag." fi fi if use hardening; then ewarn "Enabling hardening will make VirtualBox only" ewarn "work when run as root" fi } src_unpack() { unpack ${A} cd "${S}" # Remove shipped binaries (kBuild,yasm), see bug #232775 rm -rf kBuild/bin tools # Don't build things unused or splitted into separate ebuilds (eg: additions) epatch "${FILESDIR}/${P}-remove-unused.patch" } src_compile() { local myconf # Don't build vboxdrv kernel module myconf="--disable-kmods" use hardening || myconf="${myconf} --disable-hardening" use pulseaudio || myconf="${myconf} --disable-pulse" use alsa || myconf="${myconf} --disable-alsa" use headless && myconf="${myconf} --build-headless" use python || myconf="${myconf} --disable-python" use qt3 || myconf="${myconf} --disable-qt3" use qt4 || myconf="${myconf} --disable-qt4" ./configure --with-gcc="$(tc-getCC)" --with-g++="$(tc-getCXX)" \ ${myconf} || die "configure failed" source ./env.sh # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) # and strip all flags strip-flags MAKE="kmk" emake TOOL_GCC3_CC="$(tc-getCC)" TOOL_GCC3_CXX="$(tc-getCXX)" \ TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \ TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \ TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \ all || die "kmk failed" } src_install() { cd "${S}"/out/linux.${ARCH}/release/bin # create virtualbox configurations files insinto /etc/vbox newins "${FILESDIR}/${PN}-config" vbox.cfg newins "${FILESDIR}/${PN}-interfaces" interfaces insinto /opt/VirtualBox if use sdk; then doins -r sdk fowners root:vboxusers /opt/VirtualBox/sdk/bin/xpidl fperms 0750 /opt/VirtualBox/sdk/bin/xpidl fi rm -rf sdk src tst* testcase xpidl SUPInstall SUPUninstall VBox.png \ VBoxBFE vditool VBoxSysInfo.sh vboxkeyboard.tar.gz doins -r * if ! use headless; then for each in VBox{Manage,SDL,SVC,XPCOMIPCD,Tunctl,Headless} VirtualBox ; do fowners root:vboxusers /opt/VirtualBox/${each} fperms 0750 /opt/VirtualBox/${each} done dosym /opt/VirtualBox/VBox.sh /usr/bin/VirtualBox dosym /opt/VirtualBox/VBox.sh /usr/bin/VBoxSDL newicon "${S}"/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_32px.png ${PN}.png domenu "${FILESDIR}"/${PN}.desktop else for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,Headless} ; do fowners root:vboxusers /opt/VirtualBox/${each} fperms 0750 /opt/VirtualBox/${each} done fi exeinto /opt/VirtualBox newexe "${FILESDIR}/${PN}-wrapper" "VBox.sh" || die fowners root:vboxusers /opt/VirtualBox/VBox.sh fperms 0750 /opt/VirtualBox/VBox.sh newexe "${S}"/src/VBox/Installer/linux/VBoxAddIF.sh "VBoxAddIF.sh" || die fowners root:vboxusers /opt/VirtualBox/VBoxAddIF.sh fperms 0750 /opt/VirtualBox/VBoxAddIF.sh dosym /opt/VirtualBox/VBox.sh /usr/bin/VBoxManage dosym /opt/VirtualBox/VBox.sh /usr/bin/VBoxVRDP dosym /opt/VirtualBox/VBox.sh /usr/bin/VBoxHeadless dosym /opt/VirtualBox/VBoxTunctl /usr/bin/VBoxTunctl dosym /opt/VirtualBox/VBoxAddIF.sh /usr/bin/VBoxAddIF dosym /opt/VirtualBox/VBoxAddIF.sh /usr/bin/VBoxDeleteIF } pkg_postinst() { fdo-mime_desktop_database_update elog "" if ! use headless; then elog "To launch VirtualBox just type: \"VirtualBox\"" fi elog "You must be in the vboxusers group to use VirtualBox." elog "" elog "The last user manual is available for download at:" elog "http://www.virtualbox.org/download/UserManual.pdf" elog "" elog "Warning:" elog "Due to a bug which can cause a large amount of logging" elog "data to be written to your home directory, logging is" elog "disabled by default in this release, see bug #233683" elog "" } pkg_postrm() { fdo-mime_desktop_database_update }