Advertisement
Guest User

virtualbox-bin-5.1.21.115049.ebuild

a guest
Apr 25th, 2017
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.51 KB | None | 0 0
  1. # Copyright 1999-2017 Gentoo Foundation
  2. # Distributed under the terms of the GNU General Public License v2
  3.  
  4. EAPI=5
  5.  
  6. PYTHON_COMPAT=( python2_7 )
  7.  
  8. inherit eutils fdo-mime gnome2 pax-utils python-r1 udev unpacker versionator
  9.  
  10. MAIN_PV="$(get_version_component_range 1-3)"
  11. if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
  12. MY_PV="${MAIN_PV}_$(get_version_component_range 5)"
  13. MY_PV="${MY_PV/beta/BETA}"
  14. MY_PV="${MY_PV/rc/RC}"
  15. else
  16. MY_PV="${MAIN_PV}"
  17. fi
  18. VBOX_BUILD_ID="$(get_version_component_range 4)"
  19. VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
  20. MY_P="VirtualBox-${VBOX_PV}-Linux"
  21. # needed as sometimes the extpack gets another build ID
  22. EXTP_PV="${VBOX_PV}"
  23. EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
  24. EXTP_P="${EXTP_PN}-${EXTP_PV}"
  25. # needed as sometimes the SDK gets another build ID
  26. SDK_PV="${VBOX_PV}"
  27. SDK_P="VirtualBoxSDK-${SDK_PV}"
  28.  
  29. DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
  30. HOMEPAGE="http://www.virtualbox.org/"
  31. SRC_URI="amd64? ( http://www.virtualbox.org/download/testcase/${MY_P}_amd64.run )
  32. x86? ( http://www.virtualbox.org/download/testcase/${MY_P}_x86.run )
  33. http://www.virtualbox.org/download/testcase/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
  34.  
  35. LICENSE="GPL-2 PUEL"
  36. SLOT="0"
  37. KEYWORDS="~amd64 ~x86"
  38. IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
  39. RESTRICT="mirror"
  40.  
  41. if [[ "${PV}" != *beta* ]] ; then
  42. SRC_URI+="
  43. sdk? ( https://www.virtualbox.org/download/testcase/VirtualBoxSDK-5.1.21-114652.zip )"
  44. IUSE+=" sdk"
  45. fi
  46.  
  47. DEPEND="app-arch/unzip
  48. ${PYTHON_DEPS}"
  49.  
  50. RDEPEND="!!app-emulation/virtualbox
  51. !app-emulation/virtualbox-additions
  52. ~app-emulation/virtualbox-modules-${PV}
  53. !headless? (
  54. dev-libs/glib
  55. media-libs/fontconfig
  56. media-libs/freetype
  57. media-libs/libpng
  58. media-libs/libsdl[X]
  59. x11-libs/libXcursor
  60. x11-libs/libXext
  61. x11-libs/libXfixes
  62. x11-libs/libXft
  63. x11-libs/libXi
  64. x11-libs/libXinerama
  65. x11-libs/libXrandr
  66. x11-libs/libXrender
  67. chm? ( dev-libs/expat )
  68. )
  69. dev-libs/libxml2
  70. sys-fs/lvm2
  71. x11-libs/libXau
  72. x11-libs/libX11
  73. x11-libs/libXt
  74. x11-libs/libXmu
  75. x11-libs/libSM
  76. x11-libs/libICE
  77. x11-libs/libXdmcp
  78. ${PYTHON_DEPS}"
  79.  
  80. REQUIRED_USE="${PYTHON_REQUIRED_USE}"
  81. S=${WORKDIR}
  82.  
  83. QA_PREBUILT="opt/VirtualBox/*"
  84.  
  85. PYTHON_UPDATER_IGNORE="1"
  86.  
  87. src_unpack() {
  88. unpack_makeself ${MY_P}_${ARCH}.run
  89. unpack ./VirtualBox.tar.bz2
  90.  
  91. mkdir "${S}"/${EXTP_PN} || die
  92. pushd "${S}"/${EXTP_PN} &>/dev/null || die
  93. unpack ${EXTP_P}.tar.gz
  94. popd &>/dev/null || die
  95.  
  96. if [[ "${PV}" != *beta* ]] && use sdk ; then
  97. unpack VirtualBoxSDK-${SDK_PV}.zip
  98. fi
  99. }
  100.  
  101. src_configure() {
  102. :;
  103. }
  104.  
  105. src_compile() {
  106. :;
  107. }
  108.  
  109. src_install() {
  110. # create virtualbox configurations files
  111. insinto /etc/vbox
  112. newins "${FILESDIR}/${PN}-config" vbox.cfg
  113.  
  114. if ! use headless ; then
  115. newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
  116.  
  117. # set up symlinks (bug #572012)
  118. dosym /opt/VirtualBox/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
  119.  
  120. local size ico icofile
  121. for size in 16 24 32 48 64 72 96 128 256 ; do
  122. pushd "${S}"/icons/${size}x${size} &>/dev/null || die
  123. if [[ -f "virtualbox.png" ]] ; then
  124. doicon -s ${size} virtualbox.png
  125. fi
  126. for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
  127. icofile="virtualbox-${ico}.png"
  128. if [[ -f "${icofile}" ]] ; then
  129. doicon -s ${size} ${icofile}
  130. fi
  131. done
  132. popd &>/dev/null || die
  133. done
  134. doicon -s scalable "${S}"/icons/scalable/virtualbox.svg
  135. insinto /usr/share/pixmaps
  136. newins "${S}"/icons/48x48/virtualbox.png ${PN}.png
  137. fi
  138.  
  139. pushd "${S}"/${EXTP_PN} &>/dev/null || die
  140. insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
  141. doins -r linux.${ARCH}
  142. doins ExtPack* PXE-Intel.rom
  143. popd &>/dev/null || die
  144. rm -rf "${S}"/${EXTP_PN}
  145.  
  146. insinto /opt/VirtualBox
  147. dodir /opt/bin
  148.  
  149. doins UserManual.pdf
  150.  
  151. if [[ "${PV}" != *beta* ]] && use sdk ; then
  152. doins -r sdk
  153. fi
  154.  
  155. if use additions; then
  156. doins -r additions
  157. fi
  158.  
  159. if use vboxwebsrv; then
  160. doins vboxwebsrv
  161. fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
  162. fperms 0750 /opt/VirtualBox/vboxwebsrv
  163. dosym /opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
  164. newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
  165. newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
  166. fi
  167.  
  168. if use rdesktop-vrdp; then
  169. doins rdesktop-vrdp
  170. doins -r rdesktop-vrdp-keymaps
  171. fperms 0750 /opt/VirtualBox/rdesktop-vrdp
  172. dosym /opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
  173. fi
  174.  
  175. if ! use headless && use chm; then
  176. doins kchmviewer VirtualBox.chm
  177. fowners root:vboxusers /opt/VirtualBox/kchmviewer
  178. fperms 0750 /opt/VirtualBox/kchmviewer
  179. fi
  180.  
  181. # This ebuild / package supports only py2.7. When py3 comes is unknown.
  182. # The compile phase makes VBoxPython2_7.so.
  183. # py3 support would presumably require a binary pre-compiled by py3.
  184. use python && doins VBoxPython.so VBoxPython2_7.so
  185.  
  186. rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
  187. vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
  188. VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
  189. webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
  190. 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
  191. VBoxPython?_*.so
  192.  
  193. if use headless ; then
  194. rm -rf VBoxSDL VirtualBox VBoxKeyboard.so
  195. fi
  196.  
  197. doins -r * || die
  198.  
  199. # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
  200. dosym /opt/VirtualBox/VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
  201. dosym /opt/VirtualBox/VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
  202. dosym /opt/VirtualBox/VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
  203. dosym /opt/VirtualBox/VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
  204. dosym /opt/VirtualBox/VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
  205.  
  206. local each
  207. for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP,NetNAT,TestOGL,ExtPackHelperApp}; do
  208. fowners root:vboxusers /opt/VirtualBox/${each}
  209. fperms 0750 /opt/VirtualBox/${each}
  210. pax-mark -m "${D}"/opt/VirtualBox/${each}
  211. done
  212. # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
  213. fperms 4750 /opt/VirtualBox/VBoxNetAdpCtl
  214. fperms 4750 /opt/VirtualBox/VBoxNetDHCP
  215. fperms 4750 /opt/VirtualBox/VBoxNetNAT
  216.  
  217. if ! use headless ; then
  218. # Hardened build: Mark selected binaries set-user-ID-on-execution
  219. for each in VBox{SDL,Headless} VirtualBox; do
  220. fowners root:vboxusers /opt/VirtualBox/${each}
  221. fperms 4510 /opt/VirtualBox/${each}
  222. pax-mark -m "${D}"/opt/VirtualBox/${each}
  223. done
  224.  
  225. dosym /opt/VirtualBox/VBox.sh /opt/bin/VirtualBox
  226. dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxSDL
  227. else
  228. # Hardened build: Mark selected binaries set-user-ID-on-execution
  229. fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
  230. fperms 4510 /opt/VirtualBox/VBoxHeadless
  231. pax-mark -m "${D}"/opt/VirtualBox/VBoxHeadless
  232. fi
  233.  
  234. exeinto /opt/VirtualBox
  235. newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
  236. fowners root:vboxusers /opt/VirtualBox/VBox.sh
  237. fperms 0750 /opt/VirtualBox/VBox.sh
  238.  
  239. dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxManage
  240. dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxVRDP
  241. dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxHeadless
  242. dosym /opt/VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
  243.  
  244. # set an env-variable for 3rd party tools
  245. echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
  246. doenvd "${T}/90virtualbox"
  247.  
  248. local udevdir="$(get_udevdir)"
  249. insinto ${udevdir}/rules.d
  250. doins "${FILESDIR}"/10-virtualbox.rules
  251. sed "s@%UDEVDIR%@${udevdir}@" \
  252. -i "${D}"${udevdir}/rules.d/10-virtualbox.rules || die
  253. # move udev scripts into ${udevdir} (bug #372491)
  254. mv "${D}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${D}"${udevdir} || die
  255. fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
  256. }
  257.  
  258. pkg_postinst() {
  259. fdo-mime_desktop_database_update
  260.  
  261. gnome2_icon_cache_update
  262.  
  263. udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
  264.  
  265. elog ""
  266. if ! use headless ; then
  267. elog "To launch VirtualBox just type: \"VirtualBox\""
  268. elog ""
  269. fi
  270. elog "You must be in the vboxusers group to use VirtualBox."
  271. elog ""
  272. elog "For advanced networking setups you should emerge:"
  273. elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
  274. elog ""
  275. elog "Please visit http://www.virtualbox.org/wiki/Editions for"
  276. elog "an overview about the different features of ${PN}"
  277. elog "and virtualbox-ose"
  278. if [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
  279. elog ""
  280. elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
  281. elog "or else USB in ${PN} won't work."
  282. fi
  283. }
  284.  
  285. pkg_postrm() {
  286. fdo-mime_desktop_database_update
  287. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement