Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox-bin/
Date: Sun, 06 Aug 2017 20:43:41
Message-Id: 1502052169.633b58123981c2219fd0d4a72607a782dc23c294.polynomial-c@gentoo
1 commit: 633b58123981c2219fd0d4a72607a782dc23c294
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Sun Aug 6 20:42:49 2017 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Sun Aug 6 20:42:49 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=633b5812
7
8 Revert "app-emulation/virtualbox-bin: cleanup vulnerable wrt bug #600214"
9
10 This reverts commit 05f59e1a2812c8993e88e0b517adcf59ba571286.
11
12 Revert due to no maintainer approval.
13
14 .../virtualbox-bin-5.0.16.105871-r1.ebuild | 356 +++++++++++++++++++++
15 1 file changed, 356 insertions(+)
16
17 diff --git a/app-emulation/virtualbox-bin/virtualbox-bin-5.0.16.105871-r1.ebuild b/app-emulation/virtualbox-bin/virtualbox-bin-5.0.16.105871-r1.ebuild
18 new file mode 100644
19 index 00000000000..161b15b0302
20 --- /dev/null
21 +++ b/app-emulation/virtualbox-bin/virtualbox-bin-5.0.16.105871-r1.ebuild
22 @@ -0,0 +1,356 @@
23 +# Copyright 1999-2017 Gentoo Foundation
24 +# Distributed under the terms of the GNU General Public License v2
25 +
26 +EAPI=5
27 +
28 +PYTHON_COMPAT=( python2_7 )
29 +
30 +inherit eutils fdo-mime gnome2 pax-utils python-r1 udev unpacker versionator
31 +
32 +MAIN_PV="$(get_version_component_range 1-3)"
33 +if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
34 + MY_PV="${MAIN_PV}_$(get_version_component_range 5)"
35 + MY_PV="${MY_PV/beta/BETA}"
36 + MY_PV="${MY_PV/rc/RC}"
37 +else
38 + MY_PV="${MAIN_PV}"
39 +fi
40 +VBOX_BUILD_ID="$(get_version_component_range 4)"
41 +VBOX_PV="${MY_PV}-${VBOX_BUILD_ID}"
42 +MY_P="VirtualBox-${VBOX_PV}-Linux"
43 +# needed as sometimes the extpack gets another build ID
44 +EXTP_PV="${VBOX_PV}"
45 +EXTP_PN="Oracle_VM_VirtualBox_Extension_Pack"
46 +EXTP_P="${EXTP_PN}-${EXTP_PV}"
47 +# needed as sometimes the SDK gets another build ID
48 +SDK_PV="${VBOX_PV}"
49 +SDK_P="VirtualBoxSDK-${SDK_PV}"
50 +
51 +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
52 +HOMEPAGE="http://www.virtualbox.org/"
53 +SRC_URI="amd64? ( http://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_amd64.run )
54 + x86? ( http://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}_x86.run )
55 + http://download.virtualbox.org/virtualbox/${MY_PV}/${EXTP_P}.vbox-extpack -> ${EXTP_P}.tar.gz"
56 +
57 +LICENSE="GPL-2 PUEL"
58 +SLOT="0"
59 +KEYWORDS="~amd64 ~x86"
60 +IUSE="+additions +chm headless python vboxwebsrv rdesktop-vrdp"
61 +RESTRICT="mirror"
62 +
63 +if [[ "${PV}" != *beta* ]] ; then
64 + SRC_URI+="
65 + sdk? ( http://download.virtualbox.org/virtualbox/${MY_PV}/${SDK_P}.zip )"
66 + IUSE+=" sdk"
67 +fi
68 +
69 +DEPEND="app-arch/unzip
70 + ${PYTHON_DEPS}"
71 +
72 +RDEPEND="!!app-emulation/virtualbox
73 + !app-emulation/virtualbox-additions
74 + ~app-emulation/virtualbox-modules-${MAIN_PV}
75 + !headless? (
76 + x11-libs/libXcursor
77 + media-libs/libsdl[X]
78 + x11-libs/libXrender
79 + x11-libs/libXfixes
80 + media-libs/libpng
81 + x11-libs/libXi
82 + x11-libs/libXrandr
83 + x11-libs/libXinerama
84 + x11-libs/libXft
85 + media-libs/freetype
86 + media-libs/fontconfig
87 + x11-libs/libXext
88 + dev-libs/glib
89 + chm? ( dev-libs/expat )
90 + )
91 + x11-libs/libXt
92 + dev-libs/libxml2
93 + x11-libs/libXau
94 + x11-libs/libX11
95 + x11-libs/libXmu
96 + x11-libs/libSM
97 + x11-libs/libICE
98 + x11-libs/libXdmcp
99 + ${PYTHON_DEPS}"
100 +
101 +REQUIRED_USE="${PYTHON_REQUIRED_USE}"
102 +S=${WORKDIR}
103 +
104 +QA_TEXTRELS_amd64="opt/VirtualBox/VBoxVMM.so"
105 +QA_TEXTRELS_x86="opt/VirtualBox/VBoxGuestPropSvc.so
106 + opt/VirtualBox/VBoxSDL.so
107 + opt/VirtualBox/VBoxDbg.so
108 + opt/VirtualBox/VBoxSharedFolders.so
109 + opt/VirtualBox/VBoxDD2.so
110 + opt/VirtualBox/VBoxOGLrenderspu.so
111 + opt/VirtualBox/VBoxPython.so
112 + opt/VirtualBox/VBoxPython2_7.so
113 + opt/VirtualBox/VBoxDD.so
114 + opt/VirtualBox/VBoxVRDP.so
115 + opt/VirtualBox/VBoxDDU.so
116 + opt/VirtualBox/VBoxREM64.so
117 + opt/VirtualBox/VBoxSharedClipboard.so
118 + opt/VirtualBox/VBoxHeadless.so
119 + opt/VirtualBox/VBoxRT.so
120 + opt/VirtualBox/VRDPAuth.so
121 + opt/VirtualBox/VBoxREM.so
122 + opt/VirtualBox/VBoxSettings.so
123 + opt/VirtualBox/VBoxKeyboard.so
124 + opt/VirtualBox/VBoxSharedCrOpenGL.so
125 + opt/VirtualBox/VBoxVMM.so
126 + opt/VirtualBox/VirtualBox.so
127 + opt/VirtualBox/VBoxOGLhosterrorspu.so
128 + opt/VirtualBox/components/VBoxC.so
129 + opt/VirtualBox/components/VBoxSVCM.so
130 + opt/VirtualBox/VBoxREM32.so
131 + opt/VirtualBox/VBoxXPCOMC.so
132 + opt/VirtualBox/VBoxOGLhostcrutil.so
133 + opt/VirtualBox/VBoxNetDHCP.so
134 + opt/VirtualBox/VBoxGuestControlSvc.so"
135 +QA_PRESTRIPPED="opt/VirtualBox/VBoxDD.so
136 + opt/VirtualBox/VBoxDD2.so
137 + opt/VirtualBox/VBoxDDU.so
138 + opt/VirtualBox/VBoxDbg.so
139 + opt/VirtualBox/VBoxGuestControlSvc.so
140 + opt/VirtualBox/VBoxGuestPropSvc.so
141 + opt/VirtualBox/VBoxHeadless
142 + opt/VirtualBox/VBoxHeadless.so
143 + opt/VirtualBox/VBoxKeyboard.so
144 + opt/VirtualBox/VBoxManage
145 + opt/VirtualBox/VBoxNetAdpCtl
146 + opt/VirtualBox/VBoxNetDHCP
147 + opt/VirtualBox/VBoxNetDHCP.so
148 + opt/VirtualBox/VBoxOGLhostcrutil.so
149 + opt/VirtualBox/VBoxOGLhosterrorspu.so
150 + opt/VirtualBox/VBoxOGLrenderspu.so
151 + opt/VirtualBox/VBoxPython.so
152 + opt/VirtualBox/VBoxPython2_7.so
153 + opt/VirtualBox/VBoxREM.so
154 + opt/VirtualBox/VBoxREM32.so
155 + opt/VirtualBox/VBoxREM64.so
156 + opt/VirtualBox/VBoxRT.so
157 + opt/VirtualBox/VBoxSDL
158 + opt/VirtualBox/VBoxSDL.so
159 + opt/VirtualBox/VBoxSVC
160 + opt/VirtualBox/VBoxSettings.so
161 + opt/VirtualBox/VBoxSharedClipboard.so
162 + opt/VirtualBox/VBoxSharedCrOpenGL.so
163 + opt/VirtualBox/VBoxSharedFolders.so
164 + opt/VirtualBox/VBoxTestOGL
165 + opt/VirtualBox/VBoxTunctl
166 + opt/VirtualBox/VBoxVMM.so
167 + opt/VirtualBox/VBoxVRDP.so
168 + opt/VirtualBox/VBoxXPCOM.so
169 + opt/VirtualBox/VBoxXPCOMC.so
170 + opt/VirtualBox/VBoxXPCOMIPCD
171 + opt/VirtualBox/VRDPAuth.so
172 + opt/VirtualBox/VirtualBox
173 + opt/VirtualBox/VirtualBox.so
174 + opt/VirtualBox/accessible/libqtaccessiblewidgets.so
175 + opt/VirtualBox/components/VBoxC.so
176 + opt/VirtualBox/components/VBoxSVCM.so
177 + opt/VirtualBox/components/VBoxXPCOMIPCC.so
178 + opt/VirtualBox/kchmviewer
179 + opt/VirtualBox/libQtCoreVBox.so.4
180 + opt/VirtualBox/libQtGuiVBox.so.4
181 + opt/VirtualBox/libQtNetworkVBox.so.4
182 + opt/VirtualBox/libQtOpenGLVBox.so.4
183 + opt/VirtualBox/vboxwebsrv"
184 +
185 +PYTHON_UPDATER_IGNORE="1"
186 +
187 +src_unpack() {
188 + unpack_makeself ${MY_P}_${ARCH}.run
189 + unpack ./VirtualBox.tar.bz2
190 +
191 + mkdir "${S}"/${EXTP_PN} || die
192 + pushd "${S}"/${EXTP_PN} &>/dev/null || die
193 + unpack ${EXTP_P}.tar.gz
194 + popd &>/dev/null || die
195 +
196 + if [[ "${PV}" != *beta* ]] && use sdk ; then
197 + unpack VirtualBoxSDK-${SDK_PV}.zip
198 + fi
199 +}
200 +
201 +src_configure() {
202 + :;
203 +}
204 +
205 +src_compile() {
206 + :;
207 +}
208 +
209 +src_install() {
210 + # create virtualbox configurations files
211 + insinto /etc/vbox
212 + newins "${FILESDIR}/${PN}-config" vbox.cfg
213 +
214 + if ! use headless ; then
215 + pushd "${S}"/icons &>/dev/null || die
216 + for size in * ; do
217 + if [ -f "${size}/virtualbox.png" ] ; then
218 + insinto "/usr/share/icons/hicolor/${size}/apps"
219 + newins "${size}/virtualbox.png" ${PN}.png
220 + fi
221 + done
222 + dodir /usr/share/pixmaps
223 + cp "48x48/virtualbox.png" "${D}/usr/share/pixmaps/${PN}.png" \
224 + || die
225 + popd &>/dev/null || die
226 +
227 + newmenu "${FILESDIR}"/${PN}.desktop-2 ${PN}.desktop
228 + fi
229 +
230 + pushd "${S}"/${EXTP_PN} &>/dev/null || die
231 + insinto /opt/VirtualBox/ExtensionPacks/${EXTP_PN}
232 + doins -r linux.${ARCH}
233 + doins ExtPack* PXE-Intel.rom
234 + popd &>/dev/null || die
235 + rm -rf "${S}"/${EXTP_PN}
236 +
237 + insinto /opt/VirtualBox
238 + dodir /opt/bin
239 +
240 + doins UserManual.pdf
241 +
242 + if [[ "${PV}" != *beta* ]] && use sdk ; then
243 + doins -r sdk
244 + fi
245 +
246 + if use additions; then
247 + doins -r additions
248 + fi
249 +
250 + if use vboxwebsrv; then
251 + doins vboxwebsrv
252 + fowners root:vboxusers /opt/VirtualBox/vboxwebsrv
253 + fperms 0750 /opt/VirtualBox/vboxwebsrv
254 + dosym /opt/VirtualBox/VBox.sh /opt/bin/vboxwebsrv
255 + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
256 + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
257 + fi
258 +
259 + if use rdesktop-vrdp; then
260 + doins rdesktop-vrdp
261 + doins -r rdesktop-vrdp-keymaps
262 + fperms 0750 /opt/VirtualBox/rdesktop-vrdp
263 + dosym /opt/VirtualBox/rdesktop-vrdp /opt/bin/rdesktop-vrdp
264 + fi
265 +
266 + if ! use headless && use chm; then
267 + doins kchmviewer VirtualBox.chm
268 + fowners root:vboxusers /opt/VirtualBox/kchmviewer
269 + fperms 0750 /opt/VirtualBox/kchmviewer
270 + fi
271 +
272 + # This ebuild / package supports only py2.7. Where py3 comes is unknown.
273 + # The compile phase makes VBoxPython2_[4-7].so.
274 + # py3 support would presumably require a binary pre-compiled by py3.
275 + use python && doins VBoxPython.so VBoxPython2_7.so
276 +
277 + rm -rf src rdesktop* deffiles install* routines.sh runlevel.sh \
278 + vboxdrv.sh VBox.sh VBox.png vboxnet.sh additions VirtualBox.desktop \
279 + VirtualBox.tar.bz2 LICENSE VBoxSysInfo.sh rdesktop* vboxwebsrv \
280 + webtest kchmviewer VirtualBox.chm vbox-create-usb-node.sh \
281 + 90-vbox-usb.fdi uninstall.sh vboxshell.py vboxdrv-pardus.py \
282 + VBoxPython?_*.so
283 +
284 + if use headless ; then
285 + rm -rf VBoxSDL VirtualBox VBoxKeyboard.so
286 + fi
287 +
288 + doins -r * || die
289 +
290 + # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid)
291 + dosym /opt/VirtualBox/VBoxVMM.so /opt/VirtualBox/components/VBoxVMM.so
292 + dosym /opt/VirtualBox/VBoxREM.so /opt/VirtualBox/components/VBoxREM.so
293 + dosym /opt/VirtualBox/VBoxRT.so /opt/VirtualBox/components/VBoxRT.so
294 + dosym /opt/VirtualBox/VBoxDDU.so /opt/VirtualBox/components/VBoxDDU.so
295 + dosym /opt/VirtualBox/VBoxXPCOM.so /opt/VirtualBox/components/VBoxXPCOM.so
296 +
297 + local each
298 + for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,NetAdpCtl,NetDHCP,NetNAT,TestOGL,ExtPackHelperApp}; do
299 + fowners root:vboxusers /opt/VirtualBox/${each}
300 + fperms 0750 /opt/VirtualBox/${each}
301 + pax-mark -m "${D}"/opt/VirtualBox/${each}
302 + done
303 + # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
304 + fperms 4750 /opt/VirtualBox/VBoxNetAdpCtl
305 + fperms 4750 /opt/VirtualBox/VBoxNetDHCP
306 + fperms 4750 /opt/VirtualBox/VBoxNetNAT
307 +
308 + if ! use headless ; then
309 + # Hardened build: Mark selected binaries set-user-ID-on-execution
310 + for each in VBox{SDL,Headless} VirtualBox; do
311 + fowners root:vboxusers /opt/VirtualBox/${each}
312 + fperms 4510 /opt/VirtualBox/${each}
313 + pax-mark -m "${D}"/opt/VirtualBox/${each}
314 + done
315 +
316 + dosym /opt/VirtualBox/VBox.sh /opt/bin/VirtualBox
317 + dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxSDL
318 + else
319 + # Hardened build: Mark selected binaries set-user-ID-on-execution
320 + fowners root:vboxusers /opt/VirtualBox/VBoxHeadless
321 + fperms 4510 /opt/VirtualBox/VBoxHeadless
322 + pax-mark -m "${D}"/opt/VirtualBox/VBoxHeadless
323 + fi
324 +
325 + exeinto /opt/VirtualBox
326 + newexe "${FILESDIR}/${PN}-3-wrapper" "VBox.sh"
327 + fowners root:vboxusers /opt/VirtualBox/VBox.sh
328 + fperms 0750 /opt/VirtualBox/VBox.sh
329 +
330 + dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxManage
331 + dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxVRDP
332 + dosym /opt/VirtualBox/VBox.sh /opt/bin/VBoxHeadless
333 + dosym /opt/VirtualBox/VBoxTunctl /opt/bin/VBoxTunctl
334 +
335 + # set an env-variable for 3rd party tools
336 + echo -n "VBOX_APP_HOME=/opt/VirtualBox" > "${T}/90virtualbox"
337 + doenvd "${T}/90virtualbox"
338 +
339 + local udevdir="$(get_udevdir)"
340 + insinto ${udevdir}/rules.d
341 + doins "${FILESDIR}"/10-virtualbox.rules
342 + sed "s@%UDEVDIR%@${udevdir}@" \
343 + -i "${D}"${udevdir}/rules.d/10-virtualbox.rules || die
344 + # move udev scripts into ${udevdir} (bug #372491)
345 + mv "${D}"/opt/VirtualBox/VBoxCreateUSBNode.sh "${D}"${udevdir} || die
346 + fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
347 +}
348 +
349 +pkg_postinst() {
350 + fdo-mime_desktop_database_update
351 +
352 + gnome2_icon_cache_update
353 +
354 + udevadm control --reload-rules && udevadm trigger --subsystem-match=usb
355 +
356 + elog ""
357 + if ! use headless ; then
358 + elog "To launch VirtualBox just type: \"VirtualBox\""
359 + elog ""
360 + fi
361 + elog "You must be in the vboxusers group to use VirtualBox."
362 + elog ""
363 + elog "For advanced networking setups you should emerge:"
364 + elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
365 + elog ""
366 + elog "Please visit http://www.virtualbox.org/wiki/Editions for"
367 + elog "an overview about the different features of ${PN}"
368 + elog "and virtualbox-ose"
369 + if [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
370 + elog ""
371 + elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
372 + elog "or else USB in ${PN} won't work."
373 + fi
374 +}
375 +
376 +pkg_postrm() {
377 + fdo-mime_desktop_database_update
378 +}