diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2008-12-18 12:48:02 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2008-12-18 12:48:02 +0000 |
commit | 6ad4e6022df8c8b214ca06339d4091837e943791 (patch) | |
tree | 215c2084a7124d8b4a062ece6c533852f117479e /app-emulation | |
parent | Add the new ebuild from Alessio. (diff) | |
download | gentoo-2-6ad4e6022df8c8b214ca06339d4091837e943791.tar.gz gentoo-2-6ad4e6022df8c8b214ca06339d4091837e943791.tar.bz2 gentoo-2-6ad4e6022df8c8b214ca06339d4091837e943791.zip |
Add new ebuilds and fixes from Alessio.
(Portage version: 2.2_rc17/cvs/Linux 2.6.27-gentoo-r6 x86_64)
Diffstat (limited to 'app-emulation')
6 files changed, 791 insertions, 4 deletions
diff --git a/app-emulation/virtualbox-ose/ChangeLog b/app-emulation/virtualbox-ose/ChangeLog index d3c38fdd1b2d..f2a703a3dd32 100644 --- a/app-emulation/virtualbox-ose/ChangeLog +++ b/app-emulation/virtualbox-ose/ChangeLog @@ -1,6 +1,28 @@ # ChangeLog for app-emulation/virtualbox-ose # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-ose/ChangeLog,v 1.8 2008/10/28 18:11:54 jokey Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-ose/ChangeLog,v 1.9 2008/12/18 12:47:58 flameeyes Exp $ + +*virtualbox-ose-2.0.6 (18 Dec 2008) +*virtualbox-ose-2.0.4-r1 (18 Dec 2008) +*virtualbox-ose-1.6.6-r1 (18 Dec 2008) + + 18 Dec 2008; Diego E. Pettenò <flameeyes@gentoo.org> + +files/virtualbox-ose-fix-insecure-lockfiles.patch, + +virtualbox-ose-1.6.6-r1.ebuild, +virtualbox-ose-2.0.4-r1.ebuild, + +virtualbox-ose-2.0.6.ebuild, virtualbox-ose-9999.ebuild: + Add new ebuilds and fixes from Alessio. + + 25 Nov 2008; Alessio Cassibba (X-Drum) <swapon@gmail.com> + -virtualbox-ose-2.0.2-r1.ebuild, +virtualbox-ose-2.0.6.ebuild, + files/virtualbox-ose-2-localconfig: + Version Bump; drop version 2.0.2 + + 10 Nov 2008; Alessio Cassibba (X-Drum) <swapon@gmail.com> + virtualbox-ose-2.0.2-r1.ebuild, virtualbox-ose-2.0.4-r1.ebuild, + virtualbox-ose-9999.ebuild: + fix insecure temp file usage (lockfiles) see bug #245958; update the svn + repo url (live ebuild), see bug #245462; fix use of pax-mark, see bug + #246092 28 Oct 2008; Markus Ullmann <jokey@gentoo.org> virtualbox-ose-1.6.6.ebuild: diff --git a/app-emulation/virtualbox-ose/files/virtualbox-ose-fix-insecure-lockfiles.patch b/app-emulation/virtualbox-ose/files/virtualbox-ose-fix-insecure-lockfiles.patch new file mode 100644 index 000000000000..0df6290ebf21 --- /dev/null +++ b/app-emulation/virtualbox-ose/files/virtualbox-ose-fix-insecure-lockfiles.patch @@ -0,0 +1,94 @@ +--- src/libs/xpcom18a4/ipc/ipcd/daemon/src/ipcdUnix.cpp.orig 2008-11-09 19:48:22.000000000 +0100 ++++ src/libs/xpcom18a4/ipc/ipcd/daemon/src/ipcdUnix.cpp 2008-11-09 19:51:54.000000000 +0100 +@@ -93,7 +93,7 @@ + EOk = 0, + ELockFileOpen = -1, + ELockFileLock = -2, +- ++ ELockFileOwner = -3, + }; + + static int ipcLockFD = 0; +@@ -112,16 +112,70 @@ + lockFile[dirLen] = '/'; + memcpy(lockFile + dirLen + 1, lockName, sizeof(lockName)); + ++#ifdef VBOX ++ // ++ // Security checks for the directory ++ // ++ struct stat st; ++ if (stat(baseDir, &st) == -1) ++ { ++ printf("Cannot stat '%s'.\n", baseDir); ++ return ELockFileOwner; ++ } ++ ++ if (st.st_uid != getuid() && st.st_uid != geteuid()) ++ { ++ printf("Wrong owner (%d) of '%s'.\n", st.st_uid, baseDir); ++ return ELockFileOwner; ++ } ++ ++ if (st.st_mode != (S_IRUSR | S_IWUSR | S_IXUSR | S_IFDIR)) ++ { ++ printf("Wrong mode (%o) of '%s'.\n", st.st_mode, baseDir); ++ return ELockFileOwner; ++ } ++#endif ++ + // + // open lock file. it remains open until we shutdown. + // + ipcLockFD = open(lockFile, O_WRONLY|O_CREAT, S_IWUSR|S_IRUSR); + ++#ifndef VBOX + free(lockFile); ++#endif + + if (ipcLockFD == -1) + return ELockFileOpen; + ++#ifdef VBOX ++ // ++ // Security checks for the lock file ++ // ++ if (fstat(ipcLockFD, &st) == -1) ++ { ++ printf("Cannot stat '%s'.\n", lockFile); ++ free(lockFile); ++ return ELockFileOwner; ++ } ++ ++ if (st.st_uid != getuid() && st.st_uid != geteuid()) ++ { ++ printf("Wrong owner (%d) of '%s'.\n", st.st_uid, lockFile); ++ free(lockFile); ++ return ELockFileOwner; ++ } ++ ++ if (st.st_mode != (S_IRUSR | S_IWUSR | S_IFREG)) ++ { ++ printf("Wrong mode (%o) of '%s'.\n", st.st_mode, lockFile); ++ free(lockFile); ++ return ELockFileOwner; ++ } ++ ++ free(lockFile); ++#endif ++ + // + // we use fcntl for locking. assumption: filesystem should be local. + // this API is nice because the lock will be automatically released +@@ -433,8 +487,9 @@ + // don't notify the parent to cause it to fail in PR_Read() after + // we terminate + #ifdef VBOX +- printf("Cannot create a lock file for '%s'.\n" +- "Check permissions.\n", addr.local.path); ++ if (status != ELockFileOwner) ++ printf("Cannot create a lock file for '%s'.\n" ++ "Check permissions.\n", addr.local.path); + #endif + return 0; + } diff --git a/app-emulation/virtualbox-ose/virtualbox-ose-1.6.6-r1.ebuild b/app-emulation/virtualbox-ose/virtualbox-ose-1.6.6-r1.ebuild new file mode 100644 index 000000000000..8b6025ef9857 --- /dev/null +++ b/app-emulation/virtualbox-ose/virtualbox-ose-1.6.6-r1.ebuild @@ -0,0 +1,204 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-ose/virtualbox-ose-1.6.6-r1.ebuild,v 1.1 2008/12/18 12:47:58 flameeyes Exp $ + +EAPI=1 + +inherit eutils fdo-mime flag-o-matic qt3 toolchain-funcs + +MY_P=VirtualBox-${PV}-OSE +DESCRIPTION="Softwarefamily of powerful x86 virtualization" +HOMEPAGE="http://www.virtualbox.org/" +SRC_URI="http://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="additions alsa headless pulseaudio +qt3 sdk" + +RDEPEND="!app-emulation/virtualbox-bin + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libIDL + >=dev-libs/libxslt-1.1.19 + !headless? ( + qt3? ( x11-libs/qt:3 ) + x11-libs/libXcursor + media-libs/libsdl + x11-libs/libXt )" +DEPEND="${RDEPEND} + dev-util/kbuild + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-devel/dev86 + sys-power/iasl + media-libs/libpng + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + pulseaudio? ( media-sound/pulseaudio )" +# sys-apps/hal is required at runtime (bug #197541) +RDEPEND="${RDEPEND} + additions? ( ~app-emulation/virtualbox-ose-additions-${PV} ) + sys-apps/usermode-utilities + net-misc/bridge-utils + sys-apps/hal" + +S=${WORKDIR}/${MY_P/-OSE/} + +pkg_setup() { + # known problems with gcc 4.3 and the recompiler + # http://www.virtualbox.org/ticket/936 + if [[ "$(gcc-major-version)$(gcc-minor-version)" == "43" ]]; then + eerror "there are known problems with gcc 4.3 and the virtualbox" + eerror "recompiler stuff. Please use at least a version of gcc < 4.3" + die "gcc 4.3 cannot build the virtualbox recompiler" + fi + + if ! use headless; then + # 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 qt3; then + einfo "" + einfo "No USE=\"qt3\" selected, this build will not include" + einfo "any Qt frontend." + einfo "" + fi + else + if use qt3; then + einfo "" + einfo "You selected USE=\"qt3 headless\", defaulting to" + einfo "USE=\"headless\", this build will not include any X11/Qt frontend." + einfo "" + fi + 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" + + # Fix Insecure temp file usage, see bug #245958 + epatch "${FILESDIR}/${PN}-fix-insecure-lockfiles.patch" +} + +src_compile() { + + local myconf + # Don't build vboxdrv kernel module + myconf="--disable-kmods --disable-qt4" + + if ! use pulseaudio; then + myconf="${myconf} --disable-pulse" + fi + if ! use alsa; then + myconf="${myconf} --disable-alsa" + fi + if ! use headless; then + if ! use qt3; then + myconf="${myconf} --disable-qt" + 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 \ + all || die "kmk failed" +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/release/bin + + # create virtualbox configurations files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-1-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} ; do + fowners root:vboxusers /opt/VirtualBox/${each} + fperms 0750 /opt/VirtualBox/${each} + done + + if use qt3; then + fowners root:vboxusers /opt/VirtualBox/VirtualBox + fperms 0750 /opt/VirtualBox/VirtualBox + + dosym /opt/VirtualBox/VBox.sh /usr/bin/VirtualBox + fi + + 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}-1-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 "" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/app-emulation/virtualbox-ose/virtualbox-ose-2.0.4-r1.ebuild b/app-emulation/virtualbox-ose/virtualbox-ose-2.0.4-r1.ebuild new file mode 100644 index 000000000000..51a8a822fb10 --- /dev/null +++ b/app-emulation/virtualbox-ose/virtualbox-ose-2.0.4-r1.ebuild @@ -0,0 +1,235 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-ose/virtualbox-ose-2.0.4-r1.ebuild,v 1.1 2008/12/18 12:47:58 flameeyes Exp $ + +EAPI=1 + +inherit eutils fdo-mime flag-o-matic pax-utils qt4 toolchain-funcs + +MY_P=VirtualBox-${PV}-OSE +DESCRIPTION="Softwarefamily of powerful x86 virtualization" +HOMEPAGE="http://www.virtualbox.org/" +SRC_URI="http://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+additions alsa headless pulseaudio python +qt4 sdk" + +RDEPEND="!app-emulation/virtualbox-bin + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libIDL + >=dev-libs/libxslt-1.1.19 + !headless? ( + qt4? ( || ( ( x11-libs/qt-gui x11-libs/qt-core ) =x11-libs/qt-4.3*:4 ) ) + x11-libs/libXcursor + media-libs/libsdl + x11-libs/libXt )" +DEPEND="${RDEPEND} + >=dev-util/kbuild-0.1.4 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-devel/dev86 + sys-power/iasl + media-libs/libpng + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + pulseaudio? ( media-sound/pulseaudio ) + python? ( >=dev-lang/python-2.3 )" +# sys-apps/hal is required at runtime (bug #197541) +RDEPEND="${RDEPEND} + additions? ( ~app-emulation/virtualbox-ose-additions-${PV} ) + sys-apps/usermode-utilities + net-misc/bridge-utils + sys-apps/hal" + +S=${WORKDIR}/${MY_P/-OSE/} +MY_LIBDIR="$(get_libdir)" + +pkg_setup() { + # known problems with gcc 4.3 and the recompiler + # http://www.virtualbox.org/ticket/936 + if [[ "$(gcc-major-version)$(gcc-minor-version)" == "43" ]]; then + eerror "there are known problems with gcc 4.3 and the virtualbox" + eerror "recompiler stuff. Please use at least a version of gcc < 4.3" + die "gcc 4.3 cannot build the virtualbox recompiler" + fi + + if ! use headless; then + # 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 qt4; then + einfo "" + einfo "No USE=\"qt4\" selected, this build will not include" + einfo "any Qt frontend." + einfo "" + fi + else + if use qt4; then + einfo "" + einfo "You selected USE=\"headless qt4\", defaulting to" + einfo "USE=\"headless\", this build will not include any X11/Qt frontend." + einfo "" + fi + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -rf kBuild/bin tools + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-2-localconfig" LocalConfig.kmk + + # Set the right libdir + sed -i \ + -e "s/MY_LIBDIR/${MY_LIBDIR}/" LocalConfig.kmk \ + || die "LocalConfig.kmk sed failed" + + # Fix Insecure temp file usage, see bug #245958 + epatch "${FILESDIR}/${PN}-fix-insecure-lockfiles.patch" +} + +src_compile() { + + local myconf + # Don't build vboxdrv kernel module, disable deprecated qt3 support + myconf="--disable-kmods --disable-qt3" + + 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" +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/release/bin + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-2-config" vbox.cfg + newins "${FILESDIR}/${PN}-interfaces" interfaces + + # Set the right libdir + sed -i \ + -e "s/MY_LIBDIR/${MY_LIBDIR}/" \ + "${D}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Symlink binaries to the shipped wrapper + exeinto /usr/${MY_LIBDIR}/${PN} + newexe "${FILESDIR}/${PN}-2-wrapper" "VBox" || die + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBox + fperms 0750 /usr/${MY_LIBDIR}/${PN}/VBox + newexe "${S}"/src/VBox/Installer/linux/VBoxAddIF.sh "VBoxAddIF" || die + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBoxAddIF + fperms 0750 /usr/${MY_LIBDIR}/${PN}/VBoxAddIF + + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxManage + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxVRDP + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxHeadless + dosym /usr/${MY_LIBDIR}/${PN}/VBoxTunctl /usr/bin/VBoxTunctl + dosym /usr/${MY_LIBDIR}/${PN}/VBoxAddIF /usr/bin/VBoxAddIF + dosym /usr/${MY_LIBDIR}/${PN}/VBoxAddIF /usr/bin/VBoxDeleteIF + + # Install binaries and libraries + insinto /usr/${MY_LIBDIR}/${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/${MY_LIBDIR}/${PN}/${each} + fperms 0750 /usr/${MY_LIBDIR}/${PN}/${each} + done + + if use amd64; then + doins VBoxREM2.rel + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBoxREM2.rel + fperms 0750 /usr/${MY_LIBDIR}/${PN}/VBoxREM2.rel + fi + + if ! use headless; then + for each in VBox{SDL,Headless} ; do + doins $each + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/${each} + fperms 4750 /usr/${MY_LIBDIR}/${PN}/${each} + pax-mark -m "${D}"/usr/${MY_LIBDIR}/${PN}/${each} + done + + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxSDL + + if use qt4; then + doins VirtualBox + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VirtualBox + fperms 4750 /usr/${MY_LIBDIR}/${PN}/VirtualBox + pax-mark -m "${D}"/usr/${MY_LIBDIR}/${PN}/VirtualBox + + dosym /usr/${MY_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 + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBoxHeadless + fperms 4750 /usr/${MY_LIBDIR}/${PN}/VBoxHeadless + pax-mark -m "${D}"/usr/${MY_LIBDIR}/${PN}/VBoxHeadless + fi + + insinto /usr/share/${PN} + doins -r nls +} + +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 "" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/app-emulation/virtualbox-ose/virtualbox-ose-2.0.6.ebuild b/app-emulation/virtualbox-ose/virtualbox-ose-2.0.6.ebuild new file mode 100644 index 000000000000..be933860217d --- /dev/null +++ b/app-emulation/virtualbox-ose/virtualbox-ose-2.0.6.ebuild @@ -0,0 +1,232 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-ose/virtualbox-ose-2.0.6.ebuild,v 1.1 2008/12/18 12:47:58 flameeyes Exp $ + +EAPI=1 + +inherit eutils fdo-mime flag-o-matic pax-utils qt4 toolchain-funcs + +MY_P=VirtualBox-${PV}-OSE +DESCRIPTION="Softwarefamily of powerful x86 virtualization" +HOMEPAGE="http://www.virtualbox.org/" +SRC_URI="http://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+additions alsa headless pulseaudio python +qt4 sdk" + +RDEPEND="!app-emulation/virtualbox-bin + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libIDL + >=dev-libs/libxslt-1.1.19 + !headless? ( + qt4? ( || ( ( x11-libs/qt-gui x11-libs/qt-core ) =x11-libs/qt-4.3*:4 ) ) + x11-libs/libXcursor + media-libs/libsdl + x11-libs/libXt )" +DEPEND="${RDEPEND} + >=dev-util/kbuild-0.1.4 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-devel/dev86 + sys-power/iasl + media-libs/libpng + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + pulseaudio? ( media-sound/pulseaudio ) + python? ( >=dev-lang/python-2.3 )" +# sys-apps/hal is required at runtime (bug #197541) +RDEPEND="${RDEPEND} + additions? ( ~app-emulation/virtualbox-ose-additions-${PV} ) + sys-apps/usermode-utilities + net-misc/bridge-utils + sys-apps/hal" + +S=${WORKDIR}/${MY_P/-OSE/} +MY_LIBDIR="$(get_libdir)" + +pkg_setup() { + # known problems with gcc 4.3 and the recompiler + # http://www.virtualbox.org/ticket/936 + if [[ "$(gcc-major-version)$(gcc-minor-version)" == "43" ]]; then + eerror "there are known problems with gcc 4.3 and the virtualbox" + eerror "recompiler stuff. Please use at least a version of gcc < 4.3" + die "gcc 4.3 cannot build the virtualbox recompiler" + fi + + if ! use headless; then + # 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 qt4; then + einfo "" + einfo "No USE=\"qt4\" selected, this build will not include" + einfo "any Qt frontend." + einfo "" + fi + else + if use qt4; then + einfo "" + einfo "You selected USE=\"headless qt4\", defaulting to" + einfo "USE=\"headless\", this build will not include any X11/Qt frontend." + einfo "" + fi + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -rf kBuild/bin tools + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-2-localconfig" LocalConfig.kmk + + # Set the right libdir + sed -i \ + -e "s/MY_LIBDIR/${MY_LIBDIR}/" LocalConfig.kmk \ + || die "LocalConfig.kmk sed failed" +} + +src_compile() { + + local myconf + # Don't build vboxdrv kernel module, disable deprecated qt3 support + myconf="--disable-kmods --disable-qt3" + + 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" +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/release/bin + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-2-config" vbox.cfg + newins "${FILESDIR}/${PN}-interfaces" interfaces + + # Set the right libdir + sed -i \ + -e "s/MY_LIBDIR/${MY_LIBDIR}/" \ + "${D}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Symlink binaries to the shipped wrapper + exeinto /usr/${MY_LIBDIR}/${PN} + newexe "${FILESDIR}/${PN}-2-wrapper" "VBox" || die + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBox + fperms 0750 /usr/${MY_LIBDIR}/${PN}/VBox + newexe "${S}"/src/VBox/Installer/linux/VBoxAddIF.sh "VBoxAddIF" || die + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBoxAddIF + fperms 0750 /usr/${MY_LIBDIR}/${PN}/VBoxAddIF + + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxManage + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxVRDP + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxHeadless + dosym /usr/${MY_LIBDIR}/${PN}/VBoxTunctl /usr/bin/VBoxTunctl + dosym /usr/${MY_LIBDIR}/${PN}/VBoxAddIF /usr/bin/VBoxAddIF + dosym /usr/${MY_LIBDIR}/${PN}/VBoxAddIF /usr/bin/VBoxDeleteIF + + # Install binaries and libraries + insinto /usr/${MY_LIBDIR}/${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/${MY_LIBDIR}/${PN}/${each} + fperms 0750 /usr/${MY_LIBDIR}/${PN}/${each} + done + + if use amd64; then + doins VBoxREM2.rel + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBoxREM2.rel + fperms 0750 /usr/${MY_LIBDIR}/${PN}/VBoxREM2.rel + fi + + if ! use headless; then + for each in VBox{SDL,Headless} ; do + doins $each + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/${each} + fperms 4750 /usr/${MY_LIBDIR}/${PN}/${each} + pax-mark -m "${D}"/usr/${MY_LIBDIR}/${PN}/${each} + done + + dosym /usr/${MY_LIBDIR}/${PN}/VBox /usr/bin/VBoxSDL + + if use qt4; then + doins VirtualBox + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VirtualBox + fperms 4750 /usr/${MY_LIBDIR}/${PN}/VirtualBox + pax-mark -m "${D}"/usr/${MY_LIBDIR}/${PN}/VirtualBox + + dosym /usr/${MY_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 + fowners root:vboxusers /usr/${MY_LIBDIR}/${PN}/VBoxHeadless + fperms 4750 /usr/${MY_LIBDIR}/${PN}/VBoxHeadless + pax-mark -m "${D}"/usr/${MY_LIBDIR}/${PN}/VBoxHeadless + fi + + insinto /usr/share/${PN} + doins -r nls +} + +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 "" +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/app-emulation/virtualbox-ose/virtualbox-ose-9999.ebuild b/app-emulation/virtualbox-ose/virtualbox-ose-9999.ebuild index e581a5727446..b916388f1240 100644 --- a/app-emulation/virtualbox-ose/virtualbox-ose-9999.ebuild +++ b/app-emulation/virtualbox-ose/virtualbox-ose-9999.ebuild @@ -1,14 +1,14 @@ # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-ose/virtualbox-ose-9999.ebuild,v 1.4 2008/10/27 17:19:20 jokey Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-ose/virtualbox-ose-9999.ebuild,v 1.5 2008/12/18 12:47:58 flameeyes Exp $ EAPI=1 -inherit eutils fdo-mime flag-o-matic linux-mod qt4 subversion toolchain-funcs +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://virtualbox.org/svn/vbox/trunk" +ESVN_REPO_URI="http://www.virtualbox.org/svn/vbox/trunk" LICENSE="GPL-2" SLOT="0" |