diff options
11 files changed, 1295 insertions, 1 deletions
diff --git a/app-emulation/virtualbox/ChangeLog b/app-emulation/virtualbox/ChangeLog index d6c46b844ccd..da0821227580 100644 --- a/app-emulation/virtualbox/ChangeLog +++ b/app-emulation/virtualbox/ChangeLog @@ -1,6 +1,18 @@ # ChangeLog for app-emulation/virtualbox # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/ChangeLog,v 1.48 2011/01/07 11:16:33 polynomial-c Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/ChangeLog,v 1.49 2011/01/07 15:11:45 polynomial-c Exp $ + +*virtualbox-9999 (07 Jan 2011) +*virtualbox-3.2.12-r4 (07 Jan 2011) +*virtualbox-3.2.12-r3 (07 Jan 2011) +*virtualbox-3.1.8 (07 Jan 2011) + + 07 Jan 2011; Lars Wendler <polynomial-c@gentoo.org> +virtualbox-3.1.8.ebuild, + +files/virtualbox-ose-3.2.0-mesa-check.patch, +virtualbox-3.2.12-r3.ebuild, + +virtualbox-3.2.12-r4.ebuild, +files/virtualbox-ose-3-config, + +files/virtualbox-ose-3-localconfig, +virtualbox-9999.ebuild, + +files/virtualbox-ose-asneeded.patch, +files/virtualbox-ose-vnc.patch: + Added old versions for pkgmove. 07 Jan 2011; Lars Wendler <polynomial-c@gentoo.org> virtualbox-4.0.0.ebuild: Minor elog message adjustment. 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 000000000000..d1e35d2c40d2 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-3-config @@ -0,0 +1 @@ +INSTALL_DIR=/usr/MY_LIBDIR/virtualbox-ose diff --git a/app-emulation/virtualbox/files/virtualbox-ose-3-localconfig b/app-emulation/virtualbox/files/virtualbox-ose-3-localconfig new file mode 100644 index 000000000000..fb3440daba6b --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-3-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-ose +VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox-ose +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.0.0-mesa-check.patch b/app-emulation/virtualbox/files/virtualbox-ose-3.0.0-mesa-check.patch new file mode 100644 index 000000000000..53277db535fe --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-3.0.0-mesa-check.patch @@ -0,0 +1,33 @@ +--- configure.orig 2009-07-01 22:54:39.830348980 +0200 ++++ configure 2009-07-01 23:01:11.346350261 +0200 +@@ -1206,9 +1206,7 @@ + } + EOF + [ -n "$INCX11" ] && I_INCX11=`prefix_I "$INCX11"` +- if test_compile "$LIBX11 $I_INCX11" Xlibs Xlibs; then +- log_success "found" +- fi ++ test_compile "$LIBX11 $I_INCX11" Xlibs Xlibs + } + + +@@ -1288,19 +1286,6 @@ + #include <GL/glu.h> + extern "C" int main(void) + { +- Display *dpy; +- int major, minor; +- +- dpy = XOpenDisplay(NULL); +- if (dpy) +- { +- if (glXQueryVersion(dpy, &major, &minor)) +- { +- printf("found version %u.%u, OK.\n", major, minor); +- return 0; +- } +- } +- printf("found (inactive), OK.\n"); + return 0; + } + EOF diff --git a/app-emulation/virtualbox/files/virtualbox-ose-3.1.8-iasl-length-calculation-fix.patch b/app-emulation/virtualbox/files/virtualbox-ose-3.1.8-iasl-length-calculation-fix.patch new file mode 100644 index 000000000000..8e1d86f119dc --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-3.1.8-iasl-length-calculation-fix.patch @@ -0,0 +1,22 @@ +# http://www.mail-archive.com/freebsd-emulation@freebsd.org/msg00197.html + +--- VirtualBox-3.1.8_OSE/src/VBox/Devices/PC/vbox.dsl ++++ VirtualBox-3.1.8_OSE/src/VBox/Devices/PC/vbox.dsl +@@ -1064,7 +1064,7 @@ + // (all of low memory space) + ResourceProducer, // bit 0 of general flags is 0 + PosDecode, // positive Decode +- MinFixed, // Range is fixed ++ MinNotFixed, // Range is not fixed + MaxFixed, // Range is fixed + Cacheable, + ReadWrite, +@@ -1073,7 +1073,7 @@ + + 0xffdfffff, // Max = 4GB - 2MB + 0x00000000, // Translation +- 0xdfdfffff, // Range Length (calculated ++ 0x00000000, // Range Length (calculated + // dynamically) + , // Optional field left blank + , // Optional field left blank diff --git a/app-emulation/virtualbox/files/virtualbox-ose-asneeded.patch b/app-emulation/virtualbox/files/virtualbox-ose-asneeded.patch new file mode 100644 index 000000000000..2eee12598042 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-asneeded.patch @@ -0,0 +1,16 @@ +--- src/libs/xpcom18a4/Makefile.kmk ++++ src/libs/xpcom18a4/Makefile.kmk +@@ -469,9 +469,10 @@ + libIDL_config_cflags := $(shell $(VBOX_LIBIDL_CONFIG) --cflags) + libIDL_config_libs := $(shell $(VBOX_LIBIDL_CONFIG) --libs) + xpidl_CFLAGS = \ +- $(libIDL_config_cflags) +- xpidl_LDFLAGS = \ +- $(libIDL_config_libs) ++ $(shell pkg-config --cflags libIDL-2.0) ++ xpidl_LDFLAGS = $(shell pkg-config --libs-only-L libIDL-2.0) ++ xpidl_LIBS.linux = $(shell pkg-config --libs-only-l libIDL-2.0 | sed -e 's/-l//g') ++ + endif + + # diff --git a/app-emulation/virtualbox/files/virtualbox-ose-vnc.patch b/app-emulation/virtualbox/files/virtualbox-ose-vnc.patch new file mode 100644 index 000000000000..b8a2088e27f9 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-ose-vnc.patch @@ -0,0 +1,101 @@ +--- configure.orig 2010-11-20 20:35:43.399739771 +0100 ++++ configure 2010-11-20 22:04:15.523490599 +0100 +@@ -87,6 +87,7 @@ + WITH_OPENGL=1 + WITH_HARDENING=1 + WITH_VDE=0 ++WITH_VNC=0 + BUILD_LIBXML2= + BUILD_LIBXSLT= + BUILD_LIBCURL= +@@ -122,6 +123,8 @@ + LIBZ="-lz" + INCPNG="" + LIBPNG="-lpng" ++INCVNCSERVER="" ++LIBVNCSERVER="-lvncserver" + CXX_FLAGS="" + if [ "$OS" = "freebsd" ]; then + INCCURL="-I/usr/local/include" +@@ -949,6 +952,47 @@ + } + + # ++# Check for libvncserver, needed for VNC in OSE ++# ++check_vncserver() ++{ ++ test_header libvncserver ++ cat > $ODIR.tmp_src.cc <<EOF ++#include <cstdio> ++#include <rfb/rfbconfig.h> ++ ++extern "C" int main() ++{ ++ const char* v=LIBVNCSERVER_VERSION; ++ unsigned int major = 0, minor = 0, micro = 0; ++ ++ for (; *v !='.' && *v != '\0'; v++) major = major*10 + *v-'0'; ++ if (*v == '.') v++; ++ for (; *v !='.' && *v != '\0'; v++) minor = minor*10 + *v-'0'; ++ if (*v == '.') v++; ++ for (; *v !='.' && *v != '\0'; v++) micro = micro*10 + *v-'0'; ++ ++ printf("found version %s", LIBVNCSERVER_PACKAGE_VERSION); ++ if (major*10000 + minor*100 + micro >= 907) ++ { ++ printf(", OK.\n"); ++ return 0; ++ } ++ else ++ { ++ printf(", expected version 0.9.7 or higher\n"); ++ return 1; ++ } ++} ++EOF ++ if test_compile "$LIBVNCSERVER $INCVNCSERVER" libvncserver libvncserver; then ++ if test_execute; then ++ cnf_append "VBOX_WITH_VNC" "1" ++ fi ++ fi ++} ++ ++# + # Check for libcurl, needed by S3 + # + check_curl() +@@ -2063,6 +2107,7 @@ + [ $WITH_KMODS -eq 1 ] && echo " --disable-kmods don't build Linux kernel modules (host and guest)" + [ $WITH_OPENGL -eq 1 ] && echo " --disable-opengl disable OpenGL support (2D & 3D)" + [ $WITH_GSOAP -eq 0 ] && echo " --enable-webservice enable the webservice stuff" ++[ $OSE -eq 1 ] && echo " --enable-vnc enable the VNC server" + [ "$OS" = "linux" -o "$OS" = "freebsd" ] && echo " --enable-vde enable VDE networking" + cat << EOF + --disable-hardening don't be strict about /dev/vboxdrv access +@@ -2224,6 +2269,9 @@ + --enable-webservice) + [ $WITH_GSOAP -eq 0 ] && WITH_GSOAP=1 + ;; ++ --enable-vnc) ++ WITH_VNC=1 ++ ;; + --disable-hardening) + WITH_HARDENING=0 + ;; +@@ -2484,6 +2532,15 @@ + fi + fi + ++# VNC server support ++if [ $OSE -ge 1 ]; then ++ if [ $WITH_VNC = 1 ]; then ++ check_vncserver ++ else ++ cnf_append "VBOX_WITH_VNC" "" ++ fi ++fi ++ + # success! + echo + echo "Successfully generated '$CNF' and '$ENV'." diff --git a/app-emulation/virtualbox/virtualbox-3.1.8.ebuild b/app-emulation/virtualbox/virtualbox-3.1.8.ebuild new file mode 100644 index 000000000000..b5710921596b --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-3.1.8.ebuild @@ -0,0 +1,265 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/virtualbox-3.1.8.ebuild,v 1.1 2011/01/07 15:11:45 polynomial-c Exp $ + +EAPI=2 + +inherit eutils fdo-mime flag-o-matic linux-info pax-utils qt4-r2 toolchain-funcs + +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_P=VirtualBox-${PV}-OSE + SRC_URI="http://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2" + S="${WORKDIR}/${MY_P/-OSE/_OSE}" +fi + +DESCRIPTION="Software family of powerful x86 virtualization" +HOMEPAGE="http://www.virtualbox.org/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="+additions alsa headless pulseaudio python +qt4 sdk vboxwebsrv" + +RDEPEND="!app-emulation/virtualbox-bin + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libIDL + >=dev-libs/libxslt-1.1.19 + net-misc/curl + !headless? ( + qt4? ( + x11-libs/qt-gui:4 + x11-libs/qt-core:4 + x11-libs/qt-opengl:4 + ) + virtual/opengl + media-libs/freeglut + x11-libs/libXcursor + media-libs/libsdl[X,video] + x11-libs/libXt + ) + headless? ( x11-libs/libX11 )" +DEPEND="${RDEPEND} + >=dev-util/kbuild-0.1.5-r1 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-devel/dev86 + sys-power/iasl + media-libs/libpng + sys-libs/libcap + dev-util/pkgconfig + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + pulseaudio? ( media-sound/pulseaudio ) + python? ( >=dev-lang/python-2.3[threads] ) + vboxwebsrv? ( >=net-libs/gsoap-2.7.13 )" +PDEPEND="additions? ( ~app-emulation/virtualbox-additions-${PV} )" + +QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so + usr/lib/virtualbox-ose/VBoxSDL.so + usr/lib/virtualbox-ose/VBoxSharedFolders.so + usr/lib/virtualbox-ose/VBoxDD2.so + usr/lib/virtualbox-ose/VBoxOGLrenderspu.so + usr/lib/virtualbox-ose/VBoxPython.so + usr/lib/virtualbox-ose/VBoxDD.so + usr/lib/virtualbox-ose/VBoxDDU.so + usr/lib/virtualbox-ose/VBoxREM64.so + usr/lib/virtualbox-ose/VBoxSharedClipboard.so + usr/lib/virtualbox-ose/VBoxHeadless.so + usr/lib/virtualbox-ose/VBoxRT.so + usr/lib/virtualbox-ose/VBoxREM.so + usr/lib/virtualbox-ose/VBoxSettings.so + usr/lib/virtualbox-ose/VBoxKeyboard.so + usr/lib/virtualbox-ose/VBoxSharedCrOpenGL.so + usr/lib/virtualbox-ose/VBoxVMM.so + usr/lib/virtualbox-ose/VirtualBox.so + usr/lib/virtualbox-ose/VBoxOGLhosterrorspu.so + usr/lib/virtualbox-ose/components/VBoxC.so + usr/lib/virtualbox-ose/components/VBoxSVCM.so + usr/lib/virtualbox-ose/components/VBoxDDU.so + usr/lib/virtualbox-ose/components/VBoxRT.so + usr/lib/virtualbox-ose/components/VBoxREM.so + usr/lib/virtualbox-ose/components/VBoxVMM.so + usr/lib/virtualbox-ose/VBoxREM32.so + usr/lib/virtualbox-ose/VBoxPython2_4.so + usr/lib/virtualbox-ose/VBoxPython2_5.so + usr/lib/virtualbox-ose/VBoxPython2_6.so + usr/lib/virtualbox-ose/VBoxXPCOMC.so + usr/lib/virtualbox-ose/VBoxOGLhostcrutil.so + usr/lib/virtualbox-ose/VBoxNetDHCP.so" + +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 +} + +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}-ose-3-localconfig > LocalConfig.kmk || die + + # unset useless/problematic mesa checks in configure + epatch "${FILESDIR}/${PN}-ose-3.0.0-mesa-check.patch" + + # fix with newer iasl (bug #319127) + epatch "${FILESDIR}/${PN}-ose-3.1.8-iasl-length-calculation-fix.patch" +} + +src_configure() { + local myconf + use alsa || myconf="${myconf} --disable-alsa" + use pulseaudio || myconf="${myconf} --disable-pulse" + use python || myconf="${myconf} --disable-python" + use vboxwebsrv && myconf="${myconf} --enable-webservice" + if ! use headless ; then + use qt4 || myconf="${myconf} --disable-qt4" + else + myconf="${myconf} --build-headless" + fi + # not an autoconf script + ./configure \ + --with-gcc="$(tc-getCC)" \ + --with-g++="$(tc-getCXX)" \ + --disable-kmods \ + --disable-dbus \ + ${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 \ + 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}" \ + 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}-ose-3-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} *so *r0 *gc ; do + doins $each || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/${each} + fperms 0750 /usr/$(get_libdir)/${PN}/${each} + done + # VBoxNetAdpCtl binary needs to be suid root in any case.. + fperms 4750 /usr/$(get_libdir)/${PN}/VBoxNetAdpCtl + + 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 + + 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 + + doins VBoxTestOGL || die + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBoxTestOGL + fperms 0750 /usr/$(get_libdir)/${PN}/VBoxTestOGL + + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VirtualBox + fi + + newicon "${S}"/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_32px.png ${PN}.png + domenu "${FILESDIR}"/${PN}.desktop + 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/share/${PN} + if ! use headless && use qt4 ; then + doins -r nls + fi + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=/usr/$(get_libdir)/${PN}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" +} + +pkg_postinst() { + fdo-mime_desktop_database_update + 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 "Please visit http://www.virtualbox.org/wiki/Editions for" + elog "an overview about the different features of ${PN}" + elog "and virtualbox-bin" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/app-emulation/virtualbox/virtualbox-3.2.12-r3.ebuild b/app-emulation/virtualbox/virtualbox-3.2.12-r3.ebuild new file mode 100644 index 000000000000..7f41218030da --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-3.2.12-r3.ebuild @@ -0,0 +1,293 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/virtualbox-3.2.12-r3.ebuild,v 1.1 2011/01/07 15:11:45 polynomial-c Exp $ + +EAPI=2 + +inherit eutils fdo-mime flag-o-matic linux-info pax-utils qt4-r2 toolchain-funcs + +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_P=VirtualBox-${PV}-OSE + SRC_URI="http://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2" + S=${WORKDIR}/${MY_P/-OSE/_OSE} +fi + +DESCRIPTION="Software family of powerful x86 virtualization" +HOMEPAGE="http://www.virtualbox.org/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ~x86" +IUSE="+additions alsa headless 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 + !headless? ( + qt4? ( + x11-libs/qt-gui:4 + x11-libs/qt-core:4 + opengl? ( x11-libs/qt-opengl:4 ) + ) + opengl? ( virtual/opengl media-libs/freeglut ) + x11-libs/libXcursor + media-libs/libsdl[X,video] + x11-libs/libXt + ) + headless? ( x11-libs/libX11 ) + vnc? ( >=net-libs/libvncserver-0.9.7 )" +DEPEND="${RDEPEND} + >=dev-util/kbuild-0.1.5-r1 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-devel/dev86 + sys-power/iasl + media-libs/libpng + sys-libs/libcap + dev-util/pkgconfig + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + !headless? ( x11-libs/libXinerama ) + pulseaudio? ( media-sound/pulseaudio ) + python? ( >=dev-lang/python-2.3[threads] ) + vboxwebsrv? ( >=net-libs/gsoap-2.7.13 )" +PDEPEND="additions? ( ~app-emulation/virtualbox-ose-additions-${PV} )" + +QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so + usr/lib/virtualbox-ose/VBoxSDL.so + usr/lib/virtualbox-ose/VBoxSharedFolders.so + usr/lib/virtualbox-ose/VBoxDD2.so + usr/lib/virtualbox-ose/VBoxOGLrenderspu.so + usr/lib/virtualbox-ose/VBoxPython.so + usr/lib/virtualbox-ose/VBoxDD.so + usr/lib/virtualbox-ose/VBoxDDU.so + usr/lib/virtualbox-ose/VBoxREM64.so + usr/lib/virtualbox-ose/VBoxSharedClipboard.so + usr/lib/virtualbox-ose/VBoxHeadless.so + usr/lib/virtualbox-ose/VBoxRT.so + usr/lib/virtualbox-ose/VBoxREM.so + usr/lib/virtualbox-ose/VBoxSettings.so + usr/lib/virtualbox-ose/VBoxKeyboard.so + usr/lib/virtualbox-ose/VBoxSharedCrOpenGL.so + usr/lib/virtualbox-ose/VBoxVMM.so + usr/lib/virtualbox-ose/VirtualBox.so + usr/lib/virtualbox-ose/VBoxOGLhosterrorspu.so + usr/lib/virtualbox-ose/components/VBoxC.so + usr/lib/virtualbox-ose/components/VBoxSVCM.so + usr/lib/virtualbox-ose/components/VBoxDDU.so + usr/lib/virtualbox-ose/components/VBoxRT.so + usr/lib/virtualbox-ose/components/VBoxREM.so + usr/lib/virtualbox-ose/components/VBoxVMM.so + usr/lib/virtualbox-ose/VBoxREM32.so + usr/lib/virtualbox-ose/VBoxPython2_4.so + usr/lib/virtualbox-ose/VBoxPython2_5.so + usr/lib/virtualbox-ose/VBoxPython2_6.so + usr/lib/virtualbox-ose/VBoxPython2_7.so + usr/lib/virtualbox-ose/VBoxXPCOMC.so + usr/lib/virtualbox-ose/VBoxOGLhostcrutil.so + usr/lib/virtualbox-ose/VBoxNetDHCP.so" + +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 +} + +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}-ose-3-localconfig > LocalConfig.kmk || die + + # unset useless/problematic mesa checks in configure + epatch "${FILESDIR}/${PN}-ose-3.2.8-mesa-check.patch" + + # fix build with --as-needed (bug #249295) + epatch "${FILESDIR}/${PN}-ose-asneeded.patch" + + # add the --enable-vnc option to configure script (bug #348204) + epatch "${FILESDIR}/${PN}-ose-vnc.patch" +} + +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 vboxwebsrv && myconf+=" --enable-webservice" + use vnc && myconf+=" --enable-vnc" + 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 \ + ${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 \ + 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}" \ + 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}-ose-3-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} *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 + + 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 + fi + + newicon "${S}"/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_32px.png ${PN}.png + newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${PN}.desktop + 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 + + # 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 + + insinto /usr/share/${PN} + if ! use headless && use qt4 ; then + doins -r nls + fi + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=/usr/$(get_libdir)/${PN}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" +} + +pkg_postinst() { + fdo-mime_desktop_database_update + 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 "Please visit http://www.virtualbox.org/wiki/Editions for" + elog "an overview about the different features of ${PN}" + elog "and virtualbox-bin" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/app-emulation/virtualbox/virtualbox-3.2.12-r4.ebuild b/app-emulation/virtualbox/virtualbox-3.2.12-r4.ebuild new file mode 100644 index 000000000000..287e25971b0d --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-3.2.12-r4.ebuild @@ -0,0 +1,302 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/virtualbox-3.2.12-r4.ebuild,v 1.1 2011/01/07 15:11:45 polynomial-c Exp $ + +EAPI=2 + +inherit eutils fdo-mime flag-o-matic linux-info pax-utils qt4-r2 toolchain-funcs + +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_P=VirtualBox-${PV}-OSE + SRC_URI="http://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2" + S=${WORKDIR}/${MY_P/-OSE/_OSE} +fi + +DESCRIPTION="Software family of powerful x86 virtualization" +HOMEPAGE="http://www.virtualbox.org/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+additions alsa headless 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 + !headless? ( + qt4? ( + x11-libs/qt-gui:4 + x11-libs/qt-core:4 + opengl? ( x11-libs/qt-opengl:4 ) + ) + opengl? ( virtual/opengl media-libs/freeglut ) + x11-libs/libXcursor + media-libs/libsdl[X,video] + x11-libs/libXt + ) + headless? ( x11-libs/libX11 ) + vnc? ( >=net-libs/libvncserver-0.9.7 )" +DEPEND="${RDEPEND} + >=dev-util/kbuild-0.1.5-r1 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-devel/dev86 + sys-power/iasl + media-libs/libpng + sys-libs/libcap + dev-util/pkgconfig + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + !headless? ( x11-libs/libXinerama ) + pulseaudio? ( media-sound/pulseaudio ) + python? ( >=dev-lang/python-2.3[threads] ) + vboxwebsrv? ( >=net-libs/gsoap-2.7.13 )" +PDEPEND="additions? ( ~app-emulation/virtualbox-ose-additions-${PV} )" + +QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so + usr/lib/virtualbox-ose/VBoxSDL.so + usr/lib/virtualbox-ose/VBoxSharedFolders.so + usr/lib/virtualbox-ose/VBoxDD2.so + usr/lib/virtualbox-ose/VBoxOGLrenderspu.so + usr/lib/virtualbox-ose/VBoxPython.so + usr/lib/virtualbox-ose/VBoxDD.so + usr/lib/virtualbox-ose/VBoxDDU.so + usr/lib/virtualbox-ose/VBoxREM64.so + usr/lib/virtualbox-ose/VBoxSharedClipboard.so + usr/lib/virtualbox-ose/VBoxHeadless.so + usr/lib/virtualbox-ose/VBoxRT.so + usr/lib/virtualbox-ose/VBoxREM.so + usr/lib/virtualbox-ose/VBoxSettings.so + usr/lib/virtualbox-ose/VBoxKeyboard.so + usr/lib/virtualbox-ose/VBoxSharedCrOpenGL.so + usr/lib/virtualbox-ose/VBoxVMM.so + usr/lib/virtualbox-ose/VirtualBox.so + usr/lib/virtualbox-ose/VBoxOGLhosterrorspu.so + usr/lib/virtualbox-ose/components/VBoxC.so + usr/lib/virtualbox-ose/components/VBoxSVCM.so + usr/lib/virtualbox-ose/components/VBoxDDU.so + usr/lib/virtualbox-ose/components/VBoxRT.so + usr/lib/virtualbox-ose/components/VBoxREM.so + usr/lib/virtualbox-ose/components/VBoxVMM.so + usr/lib/virtualbox-ose/VBoxREM32.so + usr/lib/virtualbox-ose/VBoxPython2_4.so + usr/lib/virtualbox-ose/VBoxPython2_5.so + usr/lib/virtualbox-ose/VBoxPython2_6.so + usr/lib/virtualbox-ose/VBoxPython2_7.so + usr/lib/virtualbox-ose/VBoxXPCOMC.so + usr/lib/virtualbox-ose/VBoxOGLhostcrutil.so + usr/lib/virtualbox-ose/VBoxNetDHCP.so" + +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 +} + +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}-ose-3-localconfig > LocalConfig.kmk || die + + # unset useless/problematic mesa checks in configure + epatch "${FILESDIR}/${PN}-ose-3.2.8-mesa-check.patch" + + # fix build with --as-needed (bug #249295) + epatch "${FILESDIR}/${PN}-ose-asneeded.patch" + + # add the --enable-vnc option to configure script (bug #348204) + epatch "${FILESDIR}/${PN}-ose-vnc.patch" +} + +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 vboxwebsrv && myconf+=" --enable-webservice" + use vnc && myconf+=" --enable-vnc" + if ! use headless ; then + use qt4 || myconf+=" --disable-qt4" + else + myconf+=" --build-headless --disable-opengl" + fi + + # bug #339914 + gcc-spec-pie && append-flags "-nopie" + + # not an autoconf script + ./configure \ + --with-gcc="$(tc-getCC)" \ + --with-g++="$(tc-getCXX)" \ + --disable-kmods \ + --disable-dbus \ + ${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 \ + 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}" \ + 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}-ose-3-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} *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 + # bug #335500 + for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP} ; do + pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/${each} + done + + 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 + pax-mark -m "${D}"/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 + fi + + newicon "${S}"/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_32px.png ${PN}.png + newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${PN}.desktop + 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 + + # 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 + + insinto /usr/share/${PN} + if ! use headless && use qt4 ; then + doins -r nls + fi + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=/usr/$(get_libdir)/${PN}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" +} + +pkg_postinst() { + fdo-mime_desktop_database_update + 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 "Please visit http://www.virtualbox.org/wiki/Editions for" + elog "an overview about the different features of ${PN}" + elog "and virtualbox-bin" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/app-emulation/virtualbox/virtualbox-9999.ebuild b/app-emulation/virtualbox/virtualbox-9999.ebuild new file mode 100644 index 000000000000..96a01d2c130a --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-9999.ebuild @@ -0,0 +1,204 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox/virtualbox-9999.ebuild,v 1.27 2011/01/07 15:11:45 polynomial-c Exp $ + +EAPI=1 + +inherit eutils fdo-mime flag-o-matic linux-mod pax-utils qt4 subversion toolchain-funcs + +DESCRIPTION="Softwarefamily of powerful x86 virtualization" +HOMEPAGE="http://www.virtualbox.org/" +ESVN_REPO_URI="http://www.virtualbox.org/svn/vbox/trunk" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="" +IUSE="alsa headless pulseaudio python +qt4 sdk" + +RDEPEND="!app-emulation/virtualbox-bin + !app-emulation/virtualbox-additions + !app-emulation/virtualbox-modules + dev-libs/libIDL + >=dev-libs/libxslt-1.1.19 + dev-libs/xalan-c + dev-libs/xerces-c + net-misc/curl + sys-libs/libcap + !headless? ( + qt4? ( + x11-libs/qt-gui:4 + x11-libs/qt-core:4 + x11-libs/qt-opengl:4 + ) + x11-libs/libXcursor + media-libs/libsdl + x11-libs/libXt + media-libs/mesa ) + sys-apps/usermode-utilities + net-misc/bridge-utils" +DEPEND="${RDEPEND} + >dev-util/kbuild-0.1.5 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-devel/dev86 + sys-power/iasl + media-libs/libpng + >=media-libs/alsa-lib-1.0.13 + pulseaudio? ( media-sound/pulseaudio ) + python? ( >=dev-lang/python-2.3 )" + +BUILD_TARGETS="all" +MODULE_NAMES="vboxdrv(misc:${S}/out/linux.${ARCH}/release/bin/src:${S}/out/linux.${ARCH}/release/bin/src)" + +pkg_setup() { + # The VBoxSDL frontend needs media-libs/libsdl compiled + # with USE flag X enabled (bug #177335) + 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 + if use python && ! built_with_use dev-lang/python threads ; then + eerror "dev-lang/python was compiled without the \"threads\" USE flag enabled." + eerror "Please re-emerge dev-lang/python with USE=\"threads\"." + die "dev-lang/python should be compiled with the \"threads\" USE flag." + fi + + linux-mod_pkg_setup + BUILD_PARAMS="KERN_DIR=${KV_DIR} KERNOUT=${KV_OUT_DIR}" + + # Add the vboxusers group before src_install + # see (bug #184504) + enewgroup vboxusers +} + +src_compile() { + + local myconf + # Don't build vboxdrv kernel module + myconf="--disable-kmods" + if ! use pulseaudio; then + myconf="${myconf} --disable-pulse" + fi + if ! use python; then + myconf="${myconf} --disable-python" + fi + if ! use alsa; then + myconf="${myconf} --disable-alsa" + fi + if ! use headless; then + if ! use qt4; then + myconf="${myconf} --disable-qt4" + fi + else + myconf="${myconf} --build-headless" + fi + + ./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}" \ + TOOL_YASM_AS=yasm KBUILD_PATH="${S}/kBuild" \ + all || die "kmk failed" + + linux-mod_src_compile +} + +src_install() { + linux-mod_src_install + + cd "${S}"/out/linux.${ARCH}/release/bin + + # create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-ose-3-config" vbox.cfg + + # symlink binaries to the shipped wrapper + exeinto /usr/lib/${PN} + newexe "${FILESDIR}/${PN}-ose-3-wrapper" "VBox" || die + fowners root:vboxusers /usr/lib/${PN}/VBox + fperms 0750 /usr/lib/${PN}/VBox + + dosym /usr/lib/${PN}/VBox /usr/bin/VBoxManage + dosym /usr/lib/${PN}/VBox /usr/bin/VBoxVRDP + dosym /usr/lib/${PN}/VBox /usr/bin/VBoxHeadless + dosym /usr/lib/${PN}/VBoxTunctl /usr/bin/VBoxTunctl + + # install binaries and libraries + insinto /usr/lib/${PN} + doins -r components + + if use sdk; then + doins -r sdk + fi + + for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl} *so *r0 *gc ; do + doins $each + fowners root:vboxusers /usr/lib/${PN}/${each} + fperms 0750 /usr/lib/${PN}/${each} + done + + if use amd64; then + doins VBoxREM2.rel + fowners root:vboxusers /usr/lib/${PN}/VBoxREM2.rel + fperms 0750 /usr/lib/${PN}/VBoxREM2.rel + fi + + if ! use headless; then + for each in VBox{SDL,Headless} ; do + doins $each + fowners root:vboxusers /usr/lib/${PN}/${each} + fperms 4750 /usr/lib/${PN}/${each} + pax-mark -m "${D}"/usr/lib/${PN}/${each} + done + + dosym /usr/lib/${PN}/VBox /usr/bin/VBoxSDL + + if use qt4; then + doins VirtualBox + fowners root:vboxusers /usr/lib/${PN}/VirtualBox + fperms 4750 /usr/lib/${PN}/VirtualBox + pax-mark -m "${D}"/usr/lib/${PN}/VirtualBox + + dosym /usr/lib/${PN}/VBox /usr/bin/VirtualBox + fi + + newicon "${S}"/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_32px.png ${PN}.png + domenu "${FILESDIR}"/${PN}.desktop + else + doins VBoxHeadless + fowners root:vboxusers /usr/lib/${PN}/VBoxHeadless + fperms 4750 /usr/lib/${PN}/VBoxHeadless + pax-mark -m "${D}"/usr/lib/${PN}/VBoxHeadless + fi + + insinto /usr/share/${PN} + doins -r nls + +} + +pkg_postinst() { + linux-mod_pkg_postinst + fdo-mime_desktop_database_update + elog "To launch VirtualBox just type: \"VirtualBox\"" + 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 "Due to the nature of the build process, there are not" + elog "additions available for the live ebuild" + elog "" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} |