diff --git a/app-emulation/virtualbox/.virtualbox-4.2.8-r1.ebuild.swp b/app-emulation/virtualbox/.virtualbox-4.2.8-r1.ebuild.swp new file mode 100644 index 00000000..6533f449 Binary files /dev/null and b/app-emulation/virtualbox/.virtualbox-4.2.8-r1.ebuild.swp differ diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest new file mode 100644 index 00000000..28ace97e --- /dev/null +++ b/app-emulation/virtualbox/Manifest @@ -0,0 +1,11 @@ +AUX 10-virtualbox.rules 576 SHA256 12d1900c59fc92db58d6c32d15130d5b909853e4bc8205898439fd0510d15050 SHA512 12128375244e0fb090674e5a11cc70178f3c6208040830c009284addb91db7dc0a2d3cbd5d1056944782e936a63b0bcef03be0135683646c41d540413805f0ba WHIRLPOOL 489b5221a143f2f5f84f9695d1d3679b75e86b90502706a248e7f20b812709100a86713ca36a5266aae397a588876643f68084b1fdc872f9587571c6b07daaa5 +AUX vboxwebsrv-confd 683 SHA256 57d15be05b11a5d2df838e144f3e91c6443b6afb6ea2c105254947be72759bc8 SHA512 cc1bfe93733cc06fcab5384f6fc6b0e88cfff93b07b6ea3ef5f8226bab24249ecf9c0f857568527ebd257d4e5be987b5699d26e09940dc221917daf58492b184 WHIRLPOOL d7cec4f07dfa53623106bc47100068b2552a99c2114e166fb33e32b0e4c8f9b3517c87d31e83c7cadb8375a1584a2c3a653bca0f4339955af6fc610f0d1ec88f +AUX vboxwebsrv-initd 797 SHA256 51cafb25408343650ddcd8401ef0226c2df3cb5020a5ccdfd85e2de821a2ccf5 SHA512 60d2d1ad58e8f887d6a9b6a47a520ca84aa0e2e043571176bdc887ce76be063e443a980ea8f1b941394d533d69a434a1ca6a5c0cb8bd6b9cd4f38c1af2e10bbe WHIRLPOOL 3d22cef4e224738c504313a26e2c78915f49b42f4498309157e351805ceb8f6f9c25cea40dc51d4e58d6741b60c0206dc16ab9b48e26145ba2e6d5e41a91f266 +AUX virtualbox-4-config 38 SHA256 cc3cd896be49a421b06665683a22edb0fe17d6588fc259140b139c3d8a8581b5 SHA512 5455b70b8ac6f25365bae776b78c3ef5710ae2d5a9e939c7013d72c35f65f178268966ebd291a42666913e45f43c7196f8953331be0b0cc88eba66df39205b08 WHIRLPOOL c7f76904207198a77703c0a3866e10b1c646cf8b802ce2e01fc194f076d8ddcbe9862f55c376a385e6d81fa467fa867c08e1619046d27aa78fecf35398ce6db2 +AUX virtualbox-4-localconfig 1434 SHA256 e7d23a6c15b5982f7132c38ee5d660bae111a46c6a5603c2212488637cdcfe20 SHA512 0cac0eba680957a75e12544cc7e8e6074d4764c5d10b5ad8f0060ac36d1d03675a9132210c0f6894ec889163f8bf546913370c6f50da43c798141c094a589e4d WHIRLPOOL cde0d2cbd3e7411c7211c19f51998a0cc5c53b3b37b281270483a55b3a46135475ce003ee294573d5cbd5f8d73108e9b9f48a0548613f0ecffa8b7579dc3f82d +AUX virtualbox-ose-3-config 38 SHA256 cc3cd896be49a421b06665683a22edb0fe17d6588fc259140b139c3d8a8581b5 SHA512 5455b70b8ac6f25365bae776b78c3ef5710ae2d5a9e939c7013d72c35f65f178268966ebd291a42666913e45f43c7196f8953331be0b0cc88eba66df39205b08 WHIRLPOOL c7f76904207198a77703c0a3866e10b1c646cf8b802ce2e01fc194f076d8ddcbe9862f55c376a385e6d81fa467fa867c08e1619046d27aa78fecf35398ce6db2 +AUX virtualbox-ose-3-wrapper 2931 SHA256 7ed4834ece201cb6a9da57e36a1a9b47bd054057d2ac4a46343a9966ff460644 SHA512 adb6ba2b3252b19b4c0331c10a025d05fd2399642530ba9aec2efa2dc8dbea4188a95806935532ad8229db29f0767c3098ef7646204f5e540e291ceb350b76ac WHIRLPOOL b7d7e454cd5642e59bdf973bbfb7f7d52597b32b440630ec4ba08b8b89f91e4e5296a723429e1c9c5c72e6760264d0477e1232559631e54c85c98351cf170db5 +AUX virtualbox-ose.desktop-2 201 SHA256 fa7fc3dae940e768560559db944289c578acb691db2dcb51c8c85bfaf3298a25 SHA512 a678e237ad0451e8785f242ebf822b4f3b03d2e2280a62f71728f79bdcfc84d3465ee60cad90db75e64b2c89a1b0b224de00519728fb605df67ca7c9aee0874c WHIRLPOOL 080fc09f951f621976499e7721e1edaa6e89d6a3632c63d14806a23d1369ce1a7d3408a6375f8658f00603fccf69cef3b2f587e1861b02a09646262f365aee2c +DIST VirtualBox-4.2.8.tar.bz2 76412088 SHA256 f336af12244db74e6564dc22e438bbcba70f994aaf0d117fdf70caca9fab1b78 SHA512 70eab0aa0c760937a99d4d199be81cd828bc37d656a796a5cdd25fd3869b6873d2bfac4fa1c719a9a79431312524c21bba995b9a6be8a8bcb8eb2444cca32c08 WHIRLPOOL 54642eaf1c495f46338c348e6f5abb29bf6e17b85d2dae1fd4b4988eebec7dda8a8dad903060b2ef3fa65c4e1aaecdc43bd384f7b993b16f59be86e4fb8d0355 +DIST virtualbox-4.2.8-patches-01.tar.xz 11140 SHA256 6f738d7e7b0da7bdf284c9429b5db81433fa09977a46d7a27f049118d47dfd97 SHA512 868e9b5feeb26dca647f0f614a7e06eef961081b32a36f4d0a1e6648fb4a2603767d7b536ba913334cfa75c02133186dd5f825a37a7dff9676ef4d65a6cca1b0 WHIRLPOOL 29d6e5d38e02804ad9d7b58e18ad15d5ccee5bda14b71f9ccfd5d6c1447008d889b0f943fb85e5b493ba2ef5aa6848cd895fb947328ecc7075238fb8d4299ccf +EBUILD virtualbox-4.2.8-r1.ebuild 12663 SHA256 30e835fa76e14b5367a38fe0957cfb2d08c34978a176f15fccf31b792301fb4a SHA512 b2840f2086b91c052cbfa9727f73ad8a0d1cf123ba3af010dff0cc4016d62c360b8c1f2c6d54866774a57e8b2fd871854159811ba8bde1c83f2da356d137a2b4 WHIRLPOOL 47b67fdf4ba83ec707bdaf1fb3c271912515689d80f7e9ef06f12cce4deeb9b2abf85800884f230d14c3a2c5d1724a18fe20b10642450582647d2623f2775bfd diff --git a/app-emulation/virtualbox/files/10-virtualbox.rules b/app-emulation/virtualbox/files/10-virtualbox.rules new file mode 100644 index 00000000..014c164a --- /dev/null +++ b/app-emulation/virtualbox/files/10-virtualbox.rules @@ -0,0 +1,7 @@ +# create second tree of USB devices according to +# http://www.virtualbox.org/ticket/7759#comment:5 + +SUBSYSTEM=="usb_device", ACTION!="remove", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" +SUBSYSTEM=="usb", ACTION!="remove", ENV{DEVTYPE}=="usb_device", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" +SUBSYSTEM=="usb_device", ACTION=="remove", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh --remove $major $minor" +SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh --remove $major $minor" diff --git a/app-emulation/virtualbox/files/vboxwebsrv-confd b/app-emulation/virtualbox/files/vboxwebsrv-confd new file mode 100644 index 00000000..b48b2218 --- /dev/null +++ b/app-emulation/virtualbox/files/vboxwebsrv-confd @@ -0,0 +1,20 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/files/vboxwebsrv-confd,v 1.2 2012/03/16 22:36:03 hwoarang Exp $ + +# The host to bind to (defaults to "localhost"). +VBOXWEBSRV_HOST="localhost" + +# Which port to on the host (defaults to 18083). +VBOXWEBSRV_PORT="18083" + +# Session timeout, in seconds. (defaults to 20). +VBOXWEBSRV_TIMEOUT=20 + +# The interval in which the webservice checks for +# timed-out clients, in seconds. Normally does not +# need to be changed (defaults to 5). +VBOXWEBSRV_INTERVAL=5 + +# User under which vboxwebsrv is running +VBOXWEBSRV_USER="root" diff --git a/app-emulation/virtualbox/files/vboxwebsrv-initd b/app-emulation/virtualbox/files/vboxwebsrv-initd new file mode 100644 index 00000000..db4756f9 --- /dev/null +++ b/app-emulation/virtualbox/files/vboxwebsrv-initd @@ -0,0 +1,24 @@ +#!/sbin/runscript +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/files/vboxwebsrv-initd,v 1.2 2012/03/16 22:36:03 hwoarang Exp $ + +depend() { + need net +} + +start() { + #checkconfig || return $? + + ebegin "Starting VirtualBox WebService" + start-stop-daemon --start --quiet --user ${VBOXWEBSRV_USER} --pidfile /var/run/vboxwebsrv.pid \ + --background --make-pidfile --exec /usr/bin/vboxwebsrv \ + -- -H ${VBOXWEBSRV_HOST} -p ${VBOXWEBSRV_PORT} -t ${VBOXWEBSRV_TIMEOUT} -i ${VBOXWEBSRV_INTERVAL} + eend $? +} + +stop() { + ebegin "Stopping VirtualBox WebService" + start-stop-daemon --stop --user ${VBOXWEBSRV_USER} --quiet --pidfile /var/run/vboxwebsrv.pid + eend $? +} diff --git a/app-emulation/virtualbox/files/virtualbox-4-config b/app-emulation/virtualbox/files/virtualbox-4-config new file mode 100644 index 00000000..af782214 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-4-config @@ -0,0 +1 @@ +INSTALL_DIR=/usr/MY_LIBDIR/virtualbox diff --git a/app-emulation/virtualbox/files/virtualbox-4-localconfig b/app-emulation/virtualbox/files/virtualbox-4-localconfig new file mode 100644 index 00000000..5138d925 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-4-localconfig @@ -0,0 +1,45 @@ +# -*- Makefile -*- +# +# Overwrite some default kBuild settings +# + +# +# Copyright (C) 2006-2008 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software Foundation, +# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE +# distribution. VirtualBox OSE is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY of any kind. +# + +# shut up wine complaining about unknown locale +EXEC_X86_WIN32 := wine + +# don't build testcases to save time, they are not needed for the package +VBOX_WITH_TESTCASES := +VBOX_WITH_TESTSUITE := +VBOX_DOCBOOK_WITH_LATEX := 1 + +KBUILD_MSG_STYLE := brief + +## paths, origin, hardening +VBOX_WITH_HARDENING := 1 +VBOX_WITH_ORIGIN := +VBOX_PATH_APP_PRIVATE_ARCH := /usr/MY_LIBDIR/virtualbox +VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox +VBOX_PATH_APP_DOCS = $(VBOX_PATH_PACKAGE_DOCS) + +## don't build unwanted/splitted stuff +VBOX_WITHOUT_ADDITIONS := 1 +VBOX_WITH_VBOXDRV := +VBOX_WITH_VBOXBFE := +VBOX_WITH_KCHMVIEWER := + +## don't build with -Werror +VBOX_WITH_WARNINGS_AS_ERRORS := + diff --git a/app-emulation/virtualbox/files/virtualbox-ose-3-config b/app-emulation/virtualbox/files/virtualbox-ose-3-config new file mode 100644 index 00000000..af782214 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-3-config @@ -0,0 +1 @@ +INSTALL_DIR=/usr/MY_LIBDIR/virtualbox diff --git a/app-emulation/virtualbox/files/virtualbox-ose-3-wrapper b/app-emulation/virtualbox/files/virtualbox-ose-3-wrapper new file mode 100755 index 00000000..6f2da490 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-3-wrapper @@ -0,0 +1,104 @@ +#!/bin/sh +# +# Sun VirtualBox +# +# Copyright (C) 2006-2009 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa +# Clara, CA 95054 USA or visit http://www.sun.com if you need +# additional information or have any questions. +# + +PATH="/usr/bin:/bin:/usr/sbin:/sbin" +CONFIG="/etc/vbox/vbox.cfg" + +if [ ! -r "$CONFIG" ]; then + echo "Could not find VirtualBox installation. Please reinstall." + exit 1 +fi + +. "$CONFIG" + +# Note: This script must not fail if the module was not successfully installed +# because the user might not want to run a VM but only change VM params! + +if [ "$1" = "shutdown" ]; then + SHUTDOWN="true" +elif ! lsmod|grep -q vboxdrv; then + cat << EOF +WARNING: The VirtualBox kernel modules are not loaded. + Please load all the needed kernel modules by: + + for m in vbox{drv,netadp,netflt}; do modprobe \$m; done + + You will not be able to start VMs until this problem is fixed. +EOF +elif [ ! -c /dev/vboxdrv ]; then + cat << EOF +WARNING: The character device /dev/vboxdrv does not exist. + Please try to reload all the needed kernel modules by: + + for m in vbox{netflt,netadp,drv}; do rmmod \$m; done + for m in vbox{drv,netadp,netflt}; do modprobe \$m; done + + and if that is not successful, try to re-install the package by: + + emerge -1av app-emulation/virtualbox-modules + + You will not be able to start VMs until this problem is fixed. +EOF +fi + +SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'` +if [ -z "$SERVER_PID" ]; then + # Server not running yet/anymore, cleanup socket path. + # See IPC_GetDefaultSocketPath()! + if [ -n "$LOGNAME" ]; then + rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1 + else + rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1 + fi +fi + +if [ "$SHUTDOWN" = "true" ]; then + if [ -n "$SERVER_PID" ]; then + kill -TERM $SERVER_PID + sleep 2 + fi + exit 0 +fi + +APP=`which $0` +APP=`basename $APP` +APP=${APP##/*/} +case "$APP" in + VirtualBox) + exec "$INSTALL_DIR/VirtualBox" "$@" + ;; + VBoxManage) + exec "$INSTALL_DIR/VBoxManage" "$@" + ;; + VBoxSDL) + exec "$INSTALL_DIR/VBoxSDL" "$@" + ;; + VBoxVRDP) + exec "$INSTALL_DIR/VBoxHeadless" "$@" + ;; + VBoxHeadless) + exec "$INSTALL_DIR/VBoxHeadless" "$@" + ;; + vboxwebsrv) + exec "$INSTALL_DIR/vboxwebsrv" "$@" + ;; + *) + echo "Unknown application - $APP" + ;; +esac diff --git a/app-emulation/virtualbox/files/virtualbox-ose.desktop-2 b/app-emulation/virtualbox/files/virtualbox-ose.desktop-2 new file mode 100644 index 00000000..ce798dac --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose.desktop-2 @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Oracle xVM VirtualBox +Type=Application +Comment=Run several virtual systems on a single host computer +Exec=VirtualBox +TryExec=VirtualBox +Icon=virtualbox +Categories=System;Emulator; diff --git a/app-emulation/virtualbox/virtualbox-4.2.8-r1.ebuild b/app-emulation/virtualbox/virtualbox-4.2.8-r1.ebuild new file mode 100644 index 00000000..7db39d5c --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-4.2.8-r1.ebuild @@ -0,0 +1,398 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/virtualbox-4.2.8.ebuild,v 1.1 2013/02/28 16:04:19 polynomial-c Exp $ + +EAPI=4 + +inherit eutils fdo-mime flag-o-matic linux-info multilib pax-utils python qt4-r2 toolchain-funcs java-pkg-opt-2 udev + +if [[ ${PV} == "9999" ]] ; then + # XXX: should finish merging the -9999 ebuild into this one ... + ESVN_REPO_URI="http://www.virtualbox.org/svn/vbox/trunk" + inherit linux-mod subversion +else + MY_PV="${PV/beta/BETA}" + MY_PV="${MY_PV/rc/RC}" + MY_P=VirtualBox-${MY_PV} + SRC_URI="http://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2" + S="${WORKDIR}/${MY_P}" +fi + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise as well as home use" +HOMEPAGE="http://www.virtualbox.org/" +SRC_URI="${SRC_URI} + http://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-4.2.8-patches-01.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+additions alsa doc extensions headless java pam pulseaudio +opengl python +qt4 +sdk vboxwebsrv vnc" + +RDEPEND="!app-emulation/virtualbox-bin + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libIDL + >=dev-libs/libxslt-1.1.19 + net-misc/curl + dev-libs/openssl + dev-libs/libxml2 + sys-libs/zlib + >=virtual/udev-171 + !headless? ( + qt4? ( + x11-libs/qt-gui:4 + x11-libs/qt-core:4 + opengl? ( x11-libs/qt-opengl:4 ) + x11-libs/libXinerama + ) + opengl? ( virtual/opengl media-libs/freeglut ) + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + media-libs/libsdl:0[X,video] + ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) + java? ( || ( virtual/jre:1.7 virtual/jre:1.6 ) )" +DEPEND="${RDEPEND} + >=dev-util/kbuild-0.1.9998_pre20120806 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-power/iasl + media-libs/libpng + pam? ( sys-libs/pam ) + sys-libs/libcap + doc? ( + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + ) + java? ( || ( virtual/jdk:1.7 virtual/jdk:1.6 ) ) + virtual/pkgconfig + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + !headless? ( x11-libs/libXinerama ) + pulseaudio? ( media-sound/pulseaudio ) + vboxwebsrv? ( >=net-libs/gsoap-2.7.13 )" +PDEPEND="additions? ( ~app-emulation/virtualbox-additions-${PV} ) + extensions? ( ~app-emulation/virtualbox-extpack-oracle-${PV} )" + +QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so + usr/lib/virtualbox/VBoxSDL.so + usr/lib/virtualbox/VBoxSharedFolders.so + usr/lib/virtualbox/VBoxDD2.so + usr/lib/virtualbox/VBoxOGLrenderspu.so + usr/lib/virtualbox/VBoxPython.so + usr/lib/virtualbox/VBoxDD.so + usr/lib/virtualbox/VBoxDDU.so + usr/lib/virtualbox/VBoxREM64.so + usr/lib/virtualbox/VBoxSharedClipboard.so + usr/lib/virtualbox/VBoxHeadless.so + usr/lib/virtualbox/VBoxRT.so + usr/lib/virtualbox/VBoxREM.so + usr/lib/virtualbox/VBoxSettings.so + usr/lib/virtualbox/VBoxKeyboard.so + usr/lib/virtualbox/VBoxSharedCrOpenGL.so + usr/lib/virtualbox/VBoxVMM.so + usr/lib/virtualbox/VirtualBox.so + usr/lib/virtualbox/VBoxOGLhosterrorspu.so + usr/lib/virtualbox/components/VBoxC.so + usr/lib/virtualbox/components/VBoxSVCM.so + usr/lib/virtualbox/components/VBoxDDU.so + usr/lib/virtualbox/components/VBoxRT.so + usr/lib/virtualbox/components/VBoxREM.so + usr/lib/virtualbox/components/VBoxVMM.so + usr/lib/virtualbox/VBoxREM32.so + usr/lib/virtualbox/VBoxPython2_4.so + usr/lib/virtualbox/VBoxPython2_5.so + usr/lib/virtualbox/VBoxPython2_6.so + usr/lib/virtualbox/VBoxPython2_7.so + usr/lib/virtualbox/VBoxXPCOMC.so + usr/lib/virtualbox/VBoxOGLhostcrutil.so + usr/lib/virtualbox/VBoxNetDHCP.so" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) +" + +pkg_setup() { + if ! use headless && ! use qt4 ; then + einfo "No USE=\"qt4\" selected, this build will not include" + einfo "any Qt frontend." + elif use headless && use qt4 ; then + einfo "You selected USE=\"headless qt4\", defaulting to" + einfo "USE=\"headless\", this build will not include any X11/Qt frontend." + fi + + if ! use opengl ; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + java-pkg-opt-2_pkg_setup + python_set_active_version 2 + python_pkg_setup +} + +src_prepare() { + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -rf kBuild/bin tools + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-4-localconfig > LocalConfig.kmk || die + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam ; then + elog "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + fi + + # add correct java path + if use java ; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + if ! gcc-specs-pie ; then + EPATCH_EXCLUDE="050_${PN}-4.2.0-nopie.patch" + fi + + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/patches" + + # fix location of ifconfig binary (bug #455902) + local ifcfg="$(type -p ifconfig)" + if [ "${ifcfg}" != "/sbin/ifconfig" ] ; then + sed "/VBOXADPCTL_IFCONFIG_PATH/s@/sbin/ifconfig@${ifcfg}@" \ + -i "${S}"/src/apps/adpctl/VBoxNetAdpCtl.cpp \ + || die + fi + + # disable USB features which need closed source VRDE + #sed '/^VBOX_WITH_USB_VIDEO/s@1@0@;/^VBOX_WITH_USB_CARDREADER/s@1@0@' \ + # -i "${S}"/Config.kmk || die + #sed -e '/VBOX_WITH_USB_VIDEO/d' -e '/VBOX_WITH_USB_CARDREADER/d' \ + # -i "${S}"/src/VBox/Main/Makefile.kmk || die +} + +src_configure() { + local myconf + use alsa || myconf+=" --disable-alsa" + use opengl || myconf+=" --disable-opengl" + use pulseaudio || myconf+=" --disable-pulse" + use python || myconf+=" --disable-python" + use java || myconf+=" --disable-java" + use vboxwebsrv && myconf+=" --enable-webservice" + use vnc && myconf+=" --enable-vnc" + use doc || myconf+=" --disable-docs" + if ! use headless ; then + use qt4 || myconf+=" --disable-qt4" + else + myconf+=" --build-headless --disable-opengl" + fi + # not an autoconf script + ./configure \ + --with-gcc="$(tc-getCC)" \ + --with-g++="$(tc-getCXX)" \ + --disable-kmods \ + --disable-dbus \ + --disable-devmapper \ + ${myconf} \ + || die "configure failed" +} + +src_compile() { + source ./env.sh + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + # and strip all flags + # strip-flags + + MAKE="kmk" emake \ + VBOX_VERSION_STRING='$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)'_Gentoo_ \ + 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}" \ + VBOX_GCC_OPT="${CXXFLAGS}" \ + TOOL_YASM_AS=yasm KBUILD_PATH="${S}/kBuild" \ + all || die "kmk failed" +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/release/bin || die + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the right libdir + sed -i \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${D}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Symlink binaries to the shipped wrapper + exeinto /usr/$(get_libdir)/${PN} + newexe "${FILESDIR}/${PN}-ose-3-wrapper" "VBox" || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBox + fperms 0750 /usr/$(get_libdir)/${PN}/VBox + + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxManage + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxVRDP + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxHeadless + dosym /usr/$(get_libdir)/${PN}/VBoxTunctl /usr/bin/VBoxTunctl + + # Install binaries and libraries + insinto /usr/$(get_libdir)/${PN} + doins -r components || die + + if use sdk ; then + doins -r sdk || die + fi + + if use vboxwebsrv ; then + doins vboxwebsrv || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/vboxwebsrv + fperms 0750 /usr/$(get_libdir)/${PN}/vboxwebsrv + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP,ExtPackHelperApp} *so *r0 *gc ; do + doins $each || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/${each} + fperms 0750 /usr/$(get_libdir)/${PN}/${each} + done + # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case.. + fperms 4750 /usr/$(get_libdir)/${PN}/VBoxNetAdpCtl + fperms 4750 /usr/$(get_libdir)/${PN}/VBoxNetDHCP + + # VBoxSVC needs to be pax-marked (bug #403453) + pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/VBoxSVC || die + + if ! use headless ; then + for each in VBox{SDL,Headless} ; do + doins $each || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/${each} + fperms 4750 /usr/$(get_libdir)/${PN}/${each} + pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/${each} + done + + if use opengl && use qt4 ; then + doins VBoxTestOGL || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBoxTestOGL + fperms 0750 /usr/$(get_libdir)/${PN}/VBoxTestOGL + fi + + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxSDL + + if use qt4 ; then + doins VirtualBox || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VirtualBox + fperms 4750 /usr/$(get_libdir)/${PN}/VirtualBox + pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/VirtualBox + + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VirtualBox + + newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${PN}.desktop + fi + + pushd "${S}"/src/VBox/Resources/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + popd &>/dev/null || die + else + doins VBoxHeadless || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBoxHeadless + fperms 4750 /usr/$(get_libdir)/${PN}/VBoxHeadless + pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/VBoxHeadless + fi + + insinto /usr/$(get_libdir)/${PN} + # Install EFI Firmware files (bug #320757) + pushd "${S}"/src/VBox/Devices/EFI/FirmwareBin &>/dev/null || die + for fwfile in VBoxEFI{32,64}.fd ; do + doins ${fwfile} || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/${fwfile} || die + done + popd &>/dev/null || die + + # New way of handling USB device nodes for VBox (bug #356215) + local udevdir="$(udev_get_udevdir)" + insinto ${udevdir} + doins VBoxCreateUSBNode.sh + fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh + fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh + insinto ${udevdir}/rules.d + doins "${FILESDIR}"/10-virtualbox.rules + sed "s@%UDEVDIR%@${udevdir}@" \ + -i "${D}"${udevdir}/rules.d/10-virtualbox.rules || die + + insinto /usr/share/${PN} + if ! use headless && use qt4 ; then + doins -r nls + fi + + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so /usr/$(get_libdir)/${PN}/VRDPAuth.so + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=/usr/$(get_libdir)/${PN}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use java ; then + java-pkg_regjar "${D}/usr/$(get_libdir)/${PN}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${D}/usr/$(get_libdir)/${PN}/libvboxjxpcom.so" + fi +} + +pkg_postinst() { + fdo-mime_desktop_database_update + + udevadm control --reload-rules && udevadm trigger --subsystem-match=usb + + if ! use headless && use qt4 ; then + elog "To launch VirtualBox just type: \"VirtualBox\"." + fi + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "http://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + elog "For advanced networking setups you should emerge:" + elog "net-misc/bridge-utils and sys-apps/usermode-utilities" + elog "" + elog "IMPORTANT!" + elog "If you upgrade from app-emulation/virtualbox-ose make sure to run" + elog "\"env-update\" as root and logout and relogin as the user you wish" + elog "to run ${PN} as." + elog "" + elog "Starting with version 4.0.0, ${PN} has USB-1 support." + elog "For USB-2 support, PXE-boot ability and VRDP support please emerge" + elog " app-emulation/virtualbox-extpack-oracle" + elog "package." + if [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then + elog "" + elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\"" + elog "or else USB in ${PN} won't work." + fi +} + +pkg_postrm() { + fdo-mime_desktop_database_update +}