From 09351e78166b5e864197c4456ebae3f89dd0bed9 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 22 Jan 2019 10:09:44 +0000 Subject: gentoo resync : 22.01.2019 --- app-emulation/virtualbox-bin/Manifest | 9 + .../virtualbox-bin-5.2.24.128163.ebuild | 287 ++++++++++++++++++++ .../virtualbox-bin-6.0.2.128162.ebuild | 289 +++++++++++++++++++++ 3 files changed, 585 insertions(+) create mode 100644 app-emulation/virtualbox-bin/virtualbox-bin-5.2.24.128163.ebuild create mode 100644 app-emulation/virtualbox-bin/virtualbox-bin-6.0.2.128162.ebuild (limited to 'app-emulation/virtualbox-bin') diff --git a/app-emulation/virtualbox-bin/Manifest b/app-emulation/virtualbox-bin/Manifest index 7886d8b64b3b..0cb4fa4ea8d8 100644 --- a/app-emulation/virtualbox-bin/Manifest +++ b/app-emulation/virtualbox-bin/Manifest @@ -5,12 +5,21 @@ AUX virtualbox-bin-3-wrapper 2931 BLAKE2B bb8a72f749996b945d42a3d94ab895ee5b234b AUX virtualbox-bin-config 28 BLAKE2B 86d452db92ceb19e9389ca83c800955066b84f4c3a289ff56cd0d7638a0a3d47891e670e070be9f3bcc30d730982237fc9211d1a9bbdbf8429c7ca80d25fbcc1 SHA512 8086ef107aff0aa3e17f5fcb8ee5de4dd8a24cb119c3523e3e3a302819eb4258328adead1b6f40b96706539f4e1c43dbd5c055a16a304ac29f7f302ebf2e4c4c AUX virtualbox-bin.desktop-2 205 BLAKE2B cb0ab2e87d0e82e88656f3288eb4af255fd1c9f732dbd6e1aa545d30d4176526fa38aebd3eccb4acb46c638056504be37231dc042fa030fcb04020e00d7d401c SHA512 7e9555aaa317e1cb551e5ff591b9d20bbb76a738f9e923c13d206e02c1e6bfc8f4eb17b498b235ac0aa2062e4acbd5f24d2522de2da3cff2e12c264875bc476d DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.22-126460.tar.gz 19640932 BLAKE2B 162ab40da6b2cd30d00e020666a1f4fb026e29af2ca9d6c36c294e5fa299b61ab8fd147f24d2b500426c768808db2c7693c30e88519e695d7759f8eedf1c52c5 SHA512 85b8552668b6580bea24f051ad861c82b9ba32177fb7fa37fe2980d8bab32a84325d02bfa9c8f55c2021a4000ef2546d8996ca8b99ca7fc19f8281a92108dfb0 +DIST Oracle_VM_VirtualBox_Extension_Pack-5.2.24-128163.tar.gz 19683939 BLAKE2B ce05e159172e34e1d520b3783d77db06aa8f91067cc743beb1eeafaf01508e830f5fe9501cb1f3a6d99492e3046ec2dd2fec94ffd39a237ef4679352492aaa1a SHA512 035103e420d773201ad24093910d7175a5d548f19de4a58900e78e2ebfac711851c99375977ba9fd47fced234346437164d226592b7070a867a1d13fd534a3b5 DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.0-127566.tar.gz 23284806 BLAKE2B 4b34e1640ac74be3acc4cddc6140f77a2e5456ec29c6523fc2fe27c5e7c4652dd28f523b85a6cb17aab52e3594e68ee64cbe2c4cb8edd68f7deda05ed8b9e05d SHA512 cd8cd82bf9cea29f50101c8cccd0b8f699dcc4c4e7e720fe80df82154339b787d154a6376adc9d0f4a3015ec1ee2d67d6575ac5197dfda63af3f758294c165b8 +DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.2-128162.tar.gz 23289693 BLAKE2B 13e1ad30b40676ed2e11cf26957377696a9f30a7a92bda0ca5f69039ffebe4abf3bb0224844609a29ac217b227e4d1906c70cd404d3967a26dc0ace3bf4d2ccd SHA512 29b682bf8130f73b25a82e97053847077d9eb48f0510db7fb0cf2e817e1e6b9a6e7ded54ede7447c56aa7b219d32a2d6ee19cb0efbe5c7e0a984c5e137fada51 DIST VirtualBox-5.2.22-126460-Linux_amd64.run 88821201 BLAKE2B 1b0433844247ee9531af915dcbb740183fa29fb296f8c78b4165cc3b48300da71f7d329026983da581ffff0d7b8976a2e5e32d5e948861a557ddfa2437813ea0 SHA512 22b20a68884a114818fcdfe9a459a7c3b1b3598526a74cc66407f5bcdc6eb6bcbe022b820477ccdc081e22349777b73fac9d6126585ee3c8fa0d3d24624006f3 DIST VirtualBox-5.2.22-126460-Linux_x86.run 87817677 BLAKE2B 5f11e5f92386c9524869082cf1a5af413c69fe5b36b1ace58887076000c7b928267eb7c3be22282885d6871ccdcee981ec79a526c71f281f0e8ada5858194851 SHA512 32d44b6d691e33a1ee1426cb7a3cb3648722709c588d177951b8be802546faadfd612567981bbbfed3d782b18260e6e638e7879813f3b06bb5a8387b052b0227 +DIST VirtualBox-5.2.24-128163-Linux_amd64.run 89282001 BLAKE2B affd8768878cf25209b7a53dc024ff1798d2c2e007031d40b39c5245df608cc09fdb19c216075b0ec7a4fd63ff580731b1b04838d5d6dc81bd126fed005ea355 SHA512 f22e3c71e5c3f923edc14fbae0191a5d1262426166984e19c784e2b0a332296f949d2a9eeca6972c1f16a0f9573c1f9807c556d4dab2bd500d5b73e22485c7e1 +DIST VirtualBox-5.2.24-128163-Linux_x86.run 88391118 BLAKE2B ffc44c55f664e4bc2c2e8bf09d95fda3631541b4b4b1dca7735dd5fcbf12da8258065fa13466ce23229126fb84b0193eee7cd794cf09f631ce124c4fd6558f16 SHA512 a7350a8266c6b3522be91158d765ce31b69acbfd67b6056a96361e0cb48926cee115c8f3df4d1965fd7b082d3f487f9f655253620a8357dbfadfbd2320ad6a3b DIST VirtualBox-6.0.0-127566-Linux_amd64.run 148766154 BLAKE2B 2e23341dc798aabc1fd696422073516b6f2f70b9bee525ef22528b72abf38acf24599442e5c56d52c24af48f5ae6e2e6cdee981293fc644fac965cc34041a101 SHA512 19b11f7cf62288624739547755a7732b7d355ba61040c7e951ecbaf0ce75252075e8168aa41054e31fa36d45998f1ae1136b65d09981475a3052c4da7fd3021b +DIST VirtualBox-6.0.2-128162-Linux_amd64.run 155114954 BLAKE2B 0159383d2bd3ed0e454e03db61d7466e06b63222da364ae8c8964ac418c2a5de6b78c320c989bc497e6fc98051434d3e480d1bd16e0f92f8ac2fde8a60af088e SHA512 10b0971b81158f80de918f5ae9e0261eaec23ac7b5b3a8117c7d757a3044559648860b70d5688b58bcda1d0bdd36b1df70d5d0c8c1a65c53e1a65112beba1fff DIST VirtualBoxSDK-5.2.22-126460.zip 10154660 BLAKE2B e0a0106f695ca7198d4b2ac5c62bb435fe7934858115dcb3aed57b40d82655bd54cbbae63b279132c23762a227c53affe68131a0bf9452c69dcaf2162b1e4ebf SHA512 1d34b8f7f32602b5656fdb6184e6c35cc54d6ecb36bc41d7df3e154f18c27ea5938635969feb69defe86a53897eee87792514967f15810224ee89e8e523d2b29 +DIST VirtualBoxSDK-5.2.24-128163.zip 10153218 BLAKE2B e0a86462396eaa3fb9aa475ab40ee810874f61d3e9f37050b4aba36e6b5150e3699303b7f9989e32e794b9f67de4340ff008fa67339a3c45678005d126a17c27 SHA512 fbc12076ee968a6066f6ac81ff1555e10710d10d7821be24a4b4371a4f4b0409bed2d209904daa2b3f98a7998357558ca158bd76b87c5449815843312b669627 DIST VirtualBoxSDK-6.0.0-127566.zip 10749531 BLAKE2B 98a9d1d85a5d835e9a6d1ed121f6650d795a695bf40fb05af235eba6454237a79487f801d6351f3c446b523001271faac8cc09880522f97cae73360c1179edf5 SHA512 1f25b9249c5e1e0a7caee867b1508f517e16afd23055decfe27a513d1199ebc72bfcd391a8e750403ddb80a4087df7cfd928604b827976d7075829c7e3d82e00 +DIST VirtualBoxSDK-6.0.2-128162.zip 10753904 BLAKE2B 52824830e3d816df57932d8812a959dc3590eeabe8b7ba1dc8927d7eac7bea0c4584e0f2d62b405fdb8d5833fc93792dfcd7c2cfc2714237ecb8dbf26be36f11 SHA512 d7d1d60c7ffc4022de16dccc7786bbc4d481cef26e105932158955cc4350d65a6ac5bffa01a319baee5a64f4ae7d016ba50f82128bef6e11e54e72e82e73c168 EBUILD virtualbox-bin-5.2.22.126460.ebuild 8327 BLAKE2B 02bf2b29c01c69a3e8321964f494c274c0d22fd1e360235a919ebdc0a0d4c716a51540c51ff85aec6ea7f5a7cc4bb4b4625eca877e23458bb8e57fdf2c5e300b SHA512 b9a91b54c1d0a368b98a021cd24af53c452cc5731fb3495dc7f6e26578bab84d297cc7dd4e0847e8ecf696aa0057c103e1b241fa90d0dfdb11954ea15786438f +EBUILD virtualbox-bin-5.2.24.128163.ebuild 8329 BLAKE2B 73fca46eb9e117a760c3de9bfe0fc4f58f1a2dbf27c4cab46f9d2db1f2d0114b580f8f5537ffeb7c570c0dfa15d25098236543f17cb8f0b0698de7f7d8a1e40c SHA512 bfcd05d67c9573dff6c7b90287938bfb69c11020e236e8bda0de32c37b571833b57e9f6d8e44cfac2ec792b54526544f3bd208124927efa12212932faadcf538 EBUILD virtualbox-bin-6.0.0.127566.ebuild 8371 BLAKE2B 04269efd0113942d4c242c89ec49f30377581573cfabbf1d8b21ae7d77498a02721c5db27ccc0f83261bdca465c997b27718233b54a61ed2c00ce5bbd8ca8cde SHA512 28c2cf733bb6ac9e7304927d54804c03143b86eea98718919ca04637c137aca8e70e3bb896e4995fe96164c3f2e57f39dc5d7ed89ad9240029a80aa6c598c717 +EBUILD virtualbox-bin-6.0.2.128162.ebuild 8371 BLAKE2B 04269efd0113942d4c242c89ec49f30377581573cfabbf1d8b21ae7d77498a02721c5db27ccc0f83261bdca465c997b27718233b54a61ed2c00ce5bbd8ca8cde SHA512 28c2cf733bb6ac9e7304927d54804c03143b86eea98718919ca04637c137aca8e70e3bb896e4995fe96164c3f2e57f39dc5d7ed89ad9240029a80aa6c598c717 MISC metadata.xml 599 BLAKE2B 2af2e738880f4fb9b684baa124df483d90548177fc8f5a8223dc13a5c96a3bf7f84754a41c4d2bd5821140dd2479874b4d7c8b99b04a83febc5027f4370fb70f SHA512 4306caf88c97be9f63238727dd70ad834011dc33650aa809eaf4ac285febecd7604dc030b285a31167ecb338434fc68eff011528533cda53acdd72ad6a5b5aa0 diff --git a/app-emulation/virtualbox-bin/virtualbox-bin-5.2.24.128163.ebuild b/app-emulation/virtualbox-bin/virtualbox-bin-5.2.24.128163.ebuild new file mode 100644 index 000000000000..e4f534871c4c --- /dev/null +++ b/app-emulation/virtualbox-bin/virtualbox-bin-5.2.24.128163.ebuild @@ -0,0 +1,287 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver + +MAIN_PV="$(ver_cut 1-3)" +if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then + MY_PV="${MAIN_PV}_$(ver_cut 5)" + MY_PV="${MY_PV/beta/BETA}" + MY_PV="${MY_PV/rc/RC}" +else + MY_PV="${MAIN_PV}" +fi +VBOX_BUILD_ID="$(ver_cut 4)" +VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}" +MY_P="VirtualBox-${VBOX_PV}-Linux" +# needed as sometimes the extpack gets another build ID +EXTP_PV="${VBOX_PV}" +EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack" +EXTP_P="${EXTP_PN}-${EXTP_PV}" +# needed as sometimes the SDK gets another build ID +SDK_PV="${VBOX_PV}" +SDK_P="VirtualBoxSDK-${SDK_PV}" + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run ) + x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run ) + https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz" + +LICENSE="GPL-2 PUEL" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp" +RESTRICT="mirror" + +if [[ "${PV}" != *beta* ]] ; then + SRC_URI+=" + sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )" + IUSE+=" sdk" +fi + +DEPEND="app-arch/unzip + ${PYTHON_DEPS}" + +RDEPEND="!!app-emulation/virtualbox + !app-emulation/virtualbox-additions + ~app-emulation/virtualbox-modules-${MAIN_PV} + !headless? ( + dev-libs/glib + media-libs/fontconfig + media-libs/freetype + media-libs/libpng + media-libs/libsdl[X] + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXft + x11-libs/libXi + x11-libs/libXinerama + x11-libs/libXrandr + x11-libs/libXrender + chm? ( dev-libs/expat ) + ) + dev-libs/libxml2 + sys-fs/lvm2 + x11-libs/libXau + x11-libs/libX11 + x11-libs/libXt + x11-libs/libXmu + x11-libs/libSM + x11-libs/libICE + x11-libs/libXdmcp + ${PYTHON_DEPS}" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +S="${WORKDIR}" + +QA_PREBUILT="opt/VirtualBox/*" + +PYTHON_UPDATER_IGNORE="1" + +src_unpack() { + unpack_makeself ${MY_P}_${ARCH}.run + unpack ./VirtualBox.tar.bz2 + + mkdir "${S}"/${EXTP_PN} || die + pushd "${S}"/${EXTP_PN} &>/dev/null || die + unpack ${EXTP_P}.tar.gz + popd &>/dev/null || die + + if [[ "${PV}" != *beta* ]] && use sdk ; then + unpack VirtualBoxSDK-${SDK_PV}.zip + fi +} + +src_configure() { + :; +} + +src_compile() { + :; +} + +src_install() { + # create virtualbox configurations files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-config" vbox.cfg + + if ! use headless ; then + newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop + + # set up symlinks (bug #572012) + dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml + + local size ico icofile + for size in 16 24 32 48 64 72 96 128 256 ; do + pushd "${S}"/icons/${size}x${size} &>/dev/null || die + if [[ -f "virtualbox.png" ]] ; then + doicon -s ${size} virtualbox.png + fi + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="virtualbox-${ico}.png" + if [[ -f "${icofile}" ]] ; then + doicon -s ${size} ${icofile} + fi + done + popd &>/dev/null || die + done + doicon -s scalable "${S}"/icons/scalable/virtualbox.svg + insinto /usr/share/pixmaps + newins "${S}"/icons/48x48/virtualbox.png ${PN}.png + fi + + pushd "${S}"/${EXTP_PN} &>/dev/null || die + insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom + popd &>/dev/null || die + rm -rf "${S}"/${EXTP_PN} + + insinto /opt/VirtualBox + dodir /opt/bin + + doins UserManual.pdf + + if [[ "${PV}" != *beta* ]] && use sdk ; then + doins -r sdk + fi + + if use additions; then + doins -r additions + fi + + if use vboxwebsrv; then + doins vboxwebsrv + fowners root:vboxusers /opt/VirtualBox/vboxwebsrv + fperms 0750 /opt/VirtualBox/vboxwebsrv + dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + if use rdesktop-vrdp; then + doins rdesktop-vrdp + doins -r rdesktop-vrdp-keymaps + fperms 0750 /opt/VirtualBox/rdesktop-vrdp + dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp + fi + + if ! use headless && use chm; then + doins kchmviewer VirtualBox.chm + fowners root:vboxusers /opt/VirtualBox/kchmviewer + fperms 0750 /opt/VirtualBox/kchmviewer + fi + + # This ebuild / package supports only py2.7. When py3 comes is unknown. + # The compile phase makes VBoxPython2_7.so. + # py3 support would presumably require a binary pre-compiled by py3. + use python && doins VBoxPython.so VBoxPython2_7.so + + rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \ + vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \ + VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \ + webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \ + 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \ + VBoxPython?_*.so + + if use headless ; then + rm -rf VBoxSDL VirtualBox VBoxKeyboard.so + fi + + doins -r * || die + + # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid) + dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so + dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so + dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so + dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so + dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so + + local each + for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP,NetNAT,TestOGL,ExtPackHelperApp}; do + fowners root:vboxusers /opt/VirtualBox/${each} + fperms 0750 /opt/VirtualBox/${each} + pax-mark -m "${ED%/}"/opt/VirtualBox/${each} + done + # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case.. + fperms 4750 /opt/VirtualBox/VBoxNetAdpCtl + fperms 4750 /opt/VirtualBox/VBoxNetDHCP + fperms 4750 /opt/VirtualBox/VBoxNetNAT + + if ! use headless ; then + # Hardened build: Mark selected binaries set-user-ID-on-execution + for each in VBox{SDL,Headless} VirtualBox; do + fowners root:vboxusers /opt/VirtualBox/${each} + fperms 4510 /opt/VirtualBox/${each} + pax-mark -m "${ED%/}"/opt/VirtualBox/${each} + done + + dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL + else + # Hardened build: Mark selected binaries set-user-ID-on-execution + fowners root:vboxusers /opt/VirtualBox/VBoxHeadless + fperms 4510 /opt/VirtualBox/VBoxHeadless + pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless + fi + + exeinto /opt/VirtualBox + newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh" + fowners root:vboxusers /opt/VirtualBox/VBox.sh + fperms 0750 /opt/VirtualBox/VBox.sh + + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless + dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + local udevdir="$(get_udevdir)" + insinto ${udevdir}/rules.d + doins "${FILESDIR}"/10-virtualbox.rules + sed "s@%UDEVDIR%@${udevdir}@" \ + -i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die + # move udev scripts into ${udevdir} (bug #372491) + mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die + fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh +} + +pkg_postinst() { + xdg_desktop_database_update + + gnome2_icon_cache_update + + udevadm control --reload-rules && udevadm trigger --subsystem-match=usb + + elog "" + if ! use headless ; then + elog "To launch VirtualBox just type: \"VirtualBox\"" + elog "" + fi + elog "You must be in the vboxusers group to use VirtualBox." + 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-ose" + 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() { + xdg_desktop_database_update +} diff --git a/app-emulation/virtualbox-bin/virtualbox-bin-6.0.2.128162.ebuild b/app-emulation/virtualbox-bin/virtualbox-bin-6.0.2.128162.ebuild new file mode 100644 index 000000000000..871816079601 --- /dev/null +++ b/app-emulation/virtualbox-bin/virtualbox-bin-6.0.2.128162.ebuild @@ -0,0 +1,289 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit xdg-utils gnome2 pax-utils python-r1 udev unpacker eapi7-ver + +MAIN_PV="$(ver_cut 1-3)" +if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then + MY_PV="${MAIN_PV}_$(ver_cut 5-6)" + MY_PV="${MY_PV/beta/BETA}" + MY_PV="${MY_PV/rc/RC}" +else + MY_PV="${MAIN_PV}" + KEYWORDS="~amd64" #~x86 +fi +VBOX_BUILD_ID="$(ver_cut 4)" +VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}" +MY_P="VirtualBox-${VBOX_PV}-Linux" +# needed as sometimes the extpack gets another build ID +EXTP_PV="${VBOX_PV}" +EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack" +EXTP_P="${EXTP_PN}-${EXTP_PV}" +# needed as sometimes the SDK gets another build ID +SDK_PV="${VBOX_PV}" +SDK_P="VirtualBoxSDK-${SDK_PV}" + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="amd64? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run ) + https://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz" + #x86? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run ) + +LICENSE="GPL-2 PUEL" +SLOT="0" +IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp" +RESTRICT="mirror" + +if [[ "${PV}" != *beta* ]] ; then + SRC_URI+=" + sdk? ( https://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )" + IUSE+=" sdk" +fi + +DEPEND="app-arch/unzip + ${PYTHON_DEPS}" + +RDEPEND="!!app-emulation/virtualbox + !app-emulation/virtualbox-additions + ~app-emulation/virtualbox-modules-${MAIN_PV} + !headless? ( + dev-libs/glib + media-libs/fontconfig + media-libs/freetype + media-libs/libpng + media-libs/libsdl[X] + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXft + x11-libs/libXi + x11-libs/libXinerama + x11-libs/libXrandr + x11-libs/libXrender + chm? ( dev-libs/expat ) + ) + dev-libs/libxml2 + sys-fs/lvm2 + x11-libs/libXau + x11-libs/libX11 + x11-libs/libXt + x11-libs/libXmu + x11-libs/libSM + x11-libs/libICE + x11-libs/libXdmcp + ${PYTHON_DEPS}" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +S="${WORKDIR}" + +QA_PREBUILT="opt/VirtualBox/*" + +PYTHON_UPDATER_IGNORE="1" + +src_unpack() { + unpack_makeself ${MY_P}_${ARCH}.run + unpack ./VirtualBox.tar.bz2 + + mkdir "${S}"/${EXTP_PN} || die + pushd "${S}"/${EXTP_PN} &>/dev/null || die + unpack ${EXTP_P}.tar.gz + popd &>/dev/null || die + + if [[ "${PV}" != *beta* ]] && use sdk ; then + unpack VirtualBoxSDK-${SDK_PV}.zip + fi +} + +src_configure() { + :; +} + +src_compile() { + :; +} + +src_install() { + # create virtualbox configurations files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-config" vbox.cfg + + if ! use headless ; then + newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop + + # set up symlinks (bug #572012) + dosym ../../../../opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml + + local size ico icofile + for size in 16 24 32 48 64 72 96 128 256 ; do + pushd "${S}"/icons/${size}x${size} &>/dev/null || die + if [[ -f "virtualbox.png" ]] ; then + doicon -s ${size} virtualbox.png + fi + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="virtualbox-${ico}.png" + if [[ -f "${icofile}" ]] ; then + doicon -s ${size} ${icofile} + fi + done + popd &>/dev/null || die + done + doicon -s scalable "${S}"/icons/scalable/virtualbox.svg + insinto /usr/share/pixmaps + newins "${S}"/icons/48x48/virtualbox.png ${PN}.png + fi + + pushd "${S}"/${EXTP_PN} &>/dev/null || die + insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom + popd &>/dev/null || die + rm -rf "${S}"/${EXTP_PN} + + insinto /opt/VirtualBox + dodir /opt/bin + + doins UserManual.pdf + + if [[ "${PV}" != *beta* ]] && use sdk ; then + doins -r sdk + fi + + if use additions; then + doins -r additions + fi + + if use vboxwebsrv; then + doins vboxwebsrv + fowners root:vboxusers /opt/VirtualBox/vboxwebsrv + fperms 0750 /opt/VirtualBox/vboxwebsrv + dosym ../../opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + if use rdesktop-vrdp; then + doins rdesktop-vrdp + doins -r rdesktop-vrdp-keymaps + fperms 0750 /opt/VirtualBox/rdesktop-vrdp + dosym ../../opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp + fi + + if ! use headless && use chm; then + doins kchmviewer VirtualBox.chm + fowners root:vboxusers /opt/VirtualBox/kchmviewer + fperms 0750 /opt/VirtualBox/kchmviewer + fi + + # This ebuild / package supports only py2.7. When py3 comes is unknown. + # The compile phase makes VBoxPython2_7.so. + # py3 support would presumably require a binary pre-compiled by py3. + use python && doins VBoxPython.so + + rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \ + vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \ + VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \ + webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \ + 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \ + VBoxPython?_*.so + + if use headless ; then + rm -rf VBoxSDL VirtualBox{,VM} VBoxKeyboard.so + fi + + doins -r * || die + + # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid) + dosym ../VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so + dosym ../VBoxREM.so /opt/VirtualBox/components/VBoxREM.so + dosym ../VBoxRT.so /opt/VirtualBox/components/VBoxRT.so + dosym ../VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so + dosym ../VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so + + local each + for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,TestOGL,ExtPackHelperApp} VirtualBox ; do + fowners root:vboxusers /opt/VirtualBox/${each} + fperms 0750 /opt/VirtualBox/${each} + pax-mark -m "${ED%/}"/opt/VirtualBox/${each} + done + # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case.. + for each in VBoxNet{AdpCtl,DHCP,NAT} VirtualBoxVM ; do + fowners root:vboxusers /opt/VirtualBox/${each} + fperms 4750 /opt/VirtualBox/${each} + pax-mark -m "${ED%/}"/opt/VirtualBox/${each} + done + + if ! use headless ; then + # Hardened build: Mark selected binaries set-user-ID-on-execution + for each in VBox{SDL,Headless} ; do + fowners root:vboxusers /opt/VirtualBox/${each} + fperms 4510 /opt/VirtualBox/${each} + pax-mark -m "${ED%/}"/opt/VirtualBox/${each} + done + + dosym ../VirtualBox/VBox.sh /opt/bin/VirtualBox + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxSDL + else + # Hardened build: Mark selected binaries set-user-ID-on-execution + fowners root:vboxusers /opt/VirtualBox/VBoxHeadless + fperms 4510 /opt/VirtualBox/VBoxHeadless + pax-mark -m "${ED%/}"/opt/VirtualBox/VBoxHeadless + fi + + exeinto /opt/VirtualBox + newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh" + fowners root:vboxusers /opt/VirtualBox/VBox.sh + fperms 0750 /opt/VirtualBox/VBox.sh + + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxManage + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxVRDP + dosym ../VirtualBox/VBox.sh /opt/bin/VBoxHeadless + dosym ../VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + local udevdir="$(get_udevdir)" + insinto ${udevdir}/rules.d + doins "${FILESDIR}"/10-virtualbox.rules + sed "s@%UDEVDIR%@${udevdir}@" \ + -i "${ED%/}"${udevdir}/rules.d/10-virtualbox.rules || die + # move udev scripts into ${udevdir} (bug #372491) + mv "${ED%/}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${ED%/}"${udevdir} || die + fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh +} + +pkg_postinst() { + xdg_desktop_database_update + + gnome2_icon_cache_update + + udevadm control --reload-rules && udevadm trigger --subsystem-match=usb + + elog "" + if ! use headless ; then + elog "To launch VirtualBox just type: \"VirtualBox\"" + elog "" + fi + elog "You must be in the vboxusers group to use VirtualBox." + 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-ose" + 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() { + xdg_desktop_database_update +} -- cgit v1.2.3