Gentoo Archives: gentoo-commits

From: Julian Ospald <hasufell@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/
Date: Tue, 06 Oct 2015 10:26:53
Message-Id: 1444127143.068a16463b2cb57a5ba9d80fce431fee8436a4fa.hasufell@gentoo
1 commit: 068a16463b2cb57a5ba9d80fce431fee8436a4fa
2 Author: Julian Ospald <hasufell <AT> gentoo <DOT> org>
3 AuthorDate: Tue Oct 6 09:58:51 2015 +0000
4 Commit: Julian Ospald <hasufell <AT> gentoo <DOT> org>
5 CommitDate: Tue Oct 6 10:25:43 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=068a1646
7
8 app-emulation/virtualbox: add libressl support
9
10 .../virtualbox/virtualbox-5.0.6-r1.ebuild | 432 +++++++++++++++++++++
11 1 file changed, 432 insertions(+)
12
13 diff --git a/app-emulation/virtualbox/virtualbox-5.0.6-r1.ebuild b/app-emulation/virtualbox/virtualbox-5.0.6-r1.ebuild
14 new file mode 100644
15 index 0000000..7619b88
16 --- /dev/null
17 +++ b/app-emulation/virtualbox/virtualbox-5.0.6-r1.ebuild
18 @@ -0,0 +1,432 @@
19 +# Copyright 1999-2015 Gentoo Foundation
20 +# Distributed under the terms of the GNU General Public License v2
21 +# $Id$
22 +
23 +EAPI=5
24 +
25 +PYTHON_COMPAT=( python2_7 )
26 +inherit eutils fdo-mime flag-o-matic java-pkg-opt-2 linux-info multilib pax-utils python-single-r1 qt4-r2 toolchain-funcs udev
27 +
28 +MY_PV="${PV/beta/BETA}"
29 +MY_PV="${MY_PV/rc/RC}"
30 +MY_P=VirtualBox-${MY_PV}
31 +SRC_URI="http://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
32 + https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-5.0.2-patches-01.tar.xz"
33 +S="${WORKDIR}/${MY_P}"
34 +
35 +DESCRIPTION="Family of powerful x86 virtualization products for enterprise as well as home use"
36 +HOMEPAGE="http://www.virtualbox.org/"
37 +
38 +LICENSE="GPL-2"
39 +SLOT="0"
40 +KEYWORDS="~amd64 ~x86"
41 +IUSE="alsa doc headless java libressl pam pulseaudio +opengl python +qt4 +sdk +udev vboxwebsrv vnc"
42 +
43 +RDEPEND="!app-emulation/virtualbox-bin
44 + ~app-emulation/virtualbox-modules-${PV}
45 + dev-libs/libIDL
46 + >=dev-libs/libxslt-1.1.19
47 + net-misc/curl
48 + !libressl? ( dev-libs/openssl:0= )
49 + libressl? ( dev-libs/libressl:= )
50 + dev-libs/libxml2
51 + media-libs/libpng:0=
52 + media-libs/libvpx
53 + sys-libs/zlib
54 + !headless? (
55 + qt4? (
56 + dev-qt/qtgui:4
57 + dev-qt/qtcore:4
58 + opengl? ( dev-qt/qtopengl:4 )
59 + x11-libs/libXinerama
60 + )
61 + opengl? ( virtual/opengl media-libs/freeglut )
62 + x11-libs/libX11
63 + x11-libs/libXcursor
64 + x11-libs/libXext
65 + x11-libs/libXmu
66 + x11-libs/libXt
67 + media-libs/libsdl:0[X,video]
68 + )
69 +
70 + java? ( >=virtual/jre-1.6:= )
71 + udev? ( >=virtual/udev-171 )
72 + vnc? ( >=net-libs/libvncserver-0.9.9 )"
73 +DEPEND="${RDEPEND}
74 + >=dev-util/kbuild-0.1.9998_pre20131130
75 + >=dev-lang/yasm-0.6.2
76 + sys-devel/bin86
77 + sys-power/iasl
78 + pam? ( sys-libs/pam )
79 + sys-libs/libcap
80 + doc? (
81 + dev-texlive/texlive-basic
82 + dev-texlive/texlive-latex
83 + dev-texlive/texlive-latexrecommended
84 + dev-texlive/texlive-latexextra
85 + dev-texlive/texlive-fontsrecommended
86 + dev-texlive/texlive-fontsextra
87 + )
88 + java? ( >=virtual/jre-1.6:= )
89 + virtual/pkgconfig
90 + alsa? ( >=media-libs/alsa-lib-1.0.13 )
91 + !headless? ( x11-libs/libXinerama )
92 + pulseaudio? ( media-sound/pulseaudio )
93 + vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
94 + ${PYTHON_DEPS}"
95 +
96 +QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
97 + usr/lib/virtualbox/VBoxSDL.so
98 + usr/lib/virtualbox/VBoxSharedFolders.so
99 + usr/lib/virtualbox/VBoxDD2.so
100 + usr/lib/virtualbox/VBoxOGLrenderspu.so
101 + usr/lib/virtualbox/VBoxPython.so
102 + usr/lib/virtualbox/VBoxDD.so
103 + usr/lib/virtualbox/VBoxDDU.so
104 + usr/lib/virtualbox/VBoxREM64.so
105 + usr/lib/virtualbox/VBoxSharedClipboard.so
106 + usr/lib/virtualbox/VBoxHeadless.so
107 + usr/lib/virtualbox/VBoxRT.so
108 + usr/lib/virtualbox/VBoxREM.so
109 + usr/lib/virtualbox/VBoxSettings.so
110 + usr/lib/virtualbox/VBoxKeyboard.so
111 + usr/lib/virtualbox/VBoxSharedCrOpenGL.so
112 + usr/lib/virtualbox/VBoxVMM.so
113 + usr/lib/virtualbox/VirtualBox.so
114 + usr/lib/virtualbox/VBoxOGLhosterrorspu.so
115 + usr/lib/virtualbox/components/VBoxC.so
116 + usr/lib/virtualbox/components/VBoxSVCM.so
117 + usr/lib/virtualbox/components/VBoxDDU.so
118 + usr/lib/virtualbox/components/VBoxRT.so
119 + usr/lib/virtualbox/components/VBoxREM.so
120 + usr/lib/virtualbox/components/VBoxVMM.so
121 + usr/lib/virtualbox/VBoxREM32.so
122 + usr/lib/virtualbox/VBoxPython2_4.so
123 + usr/lib/virtualbox/VBoxPython2_5.so
124 + usr/lib/virtualbox/VBoxPython2_6.so
125 + usr/lib/virtualbox/VBoxPython2_7.so
126 + usr/lib/virtualbox/VBoxXPCOMC.so
127 + usr/lib/virtualbox/VBoxOGLhostcrutil.so
128 + usr/lib/virtualbox/VBoxNetDHCP.so
129 + usr/lib/virtualbox/VBoxNetNAT.so"
130 +
131 +REQUIRED_USE="
132 + java? ( sdk )
133 + python? (
134 + ( sdk )
135 + )
136 + vboxwebsrv? ( java )
137 + ${PYTHON_REQUIRED_USE}
138 +"
139 +
140 +pkg_setup() {
141 + if ! use headless && ! use qt4 ; then
142 + einfo "No USE=\"qt4\" selected, this build will not include"
143 + einfo "any Qt frontend."
144 + elif use headless && use qt4 ; then
145 + einfo "You selected USE=\"headless qt4\", defaulting to"
146 + einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
147 + fi
148 +
149 + if ! use opengl ; then
150 + einfo "No USE=\"opengl\" selected, this build will lack"
151 + einfo "the OpenGL feature."
152 + fi
153 + if ! use python ; then
154 + einfo "You have disabled the \"python\" USE flag. This will only"
155 + einfo "disable the python bindings being installed."
156 + fi
157 + java-pkg-opt-2_pkg_setup
158 + python-single-r1_pkg_setup
159 +}
160 +
161 +src_prepare() {
162 + # Remove shipped binaries (kBuild,yasm), see bug #232775
163 + rm -rf kBuild/bin tools
164 +
165 + # Disable things unused or split into separate ebuilds
166 + sed -e "s@MY_LIBDIR@$(get_libdir)@" \
167 + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
168 +
169 + # Respect LDFLAGS
170 + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
171 + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
172 +
173 + # Use PAM only when pam USE flag is enbaled (bug #376531)
174 + if ! use pam ; then
175 + elog "Disabling PAM removes the possibility to use the VRDP features."
176 + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
177 + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
178 + src/VBox/HostServices/Makefile.kmk || die
179 + fi
180 +
181 + # add correct java path
182 + if use java ; then
183 + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
184 + -i "${S}"/Config.kmk || die
185 + java-pkg-opt-2_src_prepare
186 + fi
187 +
188 + if ! gcc-specs-pie ; then
189 + EPATCH_EXCLUDE="050_${PN}-5.0.2-nopie.patch"
190 + fi
191 +
192 + EPATCH_SUFFIX="patch" \
193 + EPATCH_FORCE="yes" \
194 + epatch "${WORKDIR}/patches"
195 +
196 + epatch_user
197 +}
198 +
199 +src_configure() {
200 + local myconf
201 + use alsa || myconf+=" --disable-alsa"
202 + use doc || myconf+=" --disable-docs"
203 + use java || myconf+=" --disable-java"
204 + use opengl || myconf+=" --disable-opengl"
205 + use pulseaudio || myconf+=" --disable-pulse"
206 + use python || myconf+=" --disable-python"
207 + use vboxwebsrv && myconf+=" --enable-webservice"
208 + use vnc && myconf+=" --enable-vnc"
209 + if ! use headless ; then
210 + use qt4 || myconf+=" --disable-qt4"
211 + else
212 + myconf+=" --build-headless --disable-opengl"
213 + fi
214 + if use amd64 && ! has_multilib_profile ; then
215 + myconf+=" --disable-vmmraw"
216 + fi
217 + # not an autoconf script
218 + ./configure \
219 + --with-gcc="$(tc-getCC)" \
220 + --with-g++="$(tc-getCXX)" \
221 + --disable-kmods \
222 + --disable-dbus \
223 + --disable-devmapper \
224 + ${myconf} \
225 + || die "configure failed"
226 +}
227 +
228 +src_compile() {
229 + source ./env.sh
230 +
231 + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
232 + # and strip all flags
233 + # strip-flags
234 +
235 + MAKEJOBS=$(echo ${MAKEOPTS} | egrep -o '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+')
236 + MAKELOAD=$(echo ${MAKEOPTS} | egrep -o '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+')
237 + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
238 + MAKE="kmk" emake \
239 + VBOX_BUILD_PUBLISHER=_Gentoo \
240 + TOOL_GCC3_CC="$(tc-getCC)" TOOL_GCC3_CXX="$(tc-getCXX)" \
241 + TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \
242 + TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \
243 + TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \
244 + VBOX_GCC_OPT="${CXXFLAGS}" \
245 + TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
246 + all
247 +}
248 +
249 +src_install() {
250 + cd "${S}"/out/linux.${ARCH}/release/bin || die
251 +
252 + # Create configuration files
253 + insinto /etc/vbox
254 + newins "${FILESDIR}/${PN}-4-config" vbox.cfg
255 +
256 + # Set the right libdir
257 + sed -i \
258 + -e "s@MY_LIBDIR@$(get_libdir)@" \
259 + "${D}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
260 +
261 + # Symlink binaries to the shipped wrapper
262 + exeinto /usr/$(get_libdir)/${PN}
263 + newexe "${FILESDIR}/${PN}-ose-3-wrapper" "VBox"
264 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBox
265 + fperms 0750 /usr/$(get_libdir)/${PN}/VBox
266 +
267 + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxManage
268 + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxVRDP
269 + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxHeadless
270 + dosym /usr/$(get_libdir)/${PN}/VBoxTunctl /usr/bin/VBoxTunctl
271 +
272 + # Install binaries and libraries
273 + insinto /usr/$(get_libdir)/${PN}
274 + doins -r components
275 +
276 + if use sdk ; then
277 + doins -r sdk
278 + fi
279 +
280 + if use vboxwebsrv ; then
281 + doins vboxwebsrv
282 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/vboxwebsrv
283 + fperms 0750 /usr/$(get_libdir)/${PN}/vboxwebsrv
284 + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/vboxwebsrv
285 + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
286 + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
287 + fi
288 +
289 + local rcfiles="*.rc"
290 + if use amd64 && ! has_multilib_profile ; then
291 + rcfiles=""
292 + fi
293 +
294 + for each in VBox{Manage,SVC,XPCOMIPCD,Tunctl,ExtPackHelperApp} *so *r0 ${rcfiles} ; do
295 + doins ${each}
296 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/${each}
297 + fperms 0750 /usr/$(get_libdir)/${PN}/${each}
298 + done
299 +
300 + # VBoxNetAdpCtl and VBoxNetDHCP binaries need to be suid root in any case..
301 + for each in VBoxNet{AdpCtl,DHCP,NAT} ; do
302 + doins ${each}
303 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/${each}
304 + fperms 4750 /usr/$(get_libdir)/${PN}/${each}
305 + done
306 +
307 + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
308 + # VBoxXPCOMIPCD (bug #524202)
309 + for each in VBox{Manage,SVC,XPCOMIPCD} ; do
310 + if ! pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/${each} ; then
311 + ewarn "Couldn't pax-mark /usr/$(get_libdir)/${PN}/${each}"
312 + fi
313 + done
314 +
315 + if ! use headless ; then
316 + doins VBoxSDL
317 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBoxSDL
318 + fperms 4750 /usr/$(get_libdir)/${PN}/VBoxSDL
319 + if ! pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/VBoxSDL ; then
320 + ewarn "Couldn't pax-mark /usr/$(get_libdir)/${PN}/VBoxSDL"
321 + fi
322 +
323 + if use opengl && use qt4 ; then
324 + doins VBoxTestOGL
325 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBoxTestOGL
326 + fperms 0750 /usr/$(get_libdir)/${PN}/VBoxTestOGL
327 + if ! pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/VBoxTestOGL ; then
328 + ewarn "Couldn't pax-mark /usr/$(get_libdir)/${PN}/VBoxTestOGL"
329 + fi
330 + fi
331 +
332 + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VBoxSDL
333 +
334 + if use qt4 ; then
335 + doins VirtualBox
336 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VirtualBox
337 + fperms 4750 /usr/$(get_libdir)/${PN}/VirtualBox
338 + if ! pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/VirtualBox ; then
339 + ewarn "Couldn't pax-mark /usr/$(get_libdir)/${PN}/VirtualBox"
340 + fi
341 +
342 + dosym /usr/$(get_libdir)/${PN}/VBox /usr/bin/VirtualBox
343 +
344 + newmenu "${FILESDIR}"/${PN}-ose.desktop-2 ${PN}.desktop
345 + fi
346 +
347 + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
348 + for size in 16 32 48 64 128 ; do
349 + newicon -s ${size} ${PN}-${size}px.png ${PN}.png
350 + done
351 + newicon ${PN}-48px.png ${PN}.png
352 + doicon -s scalable ${PN}.svg
353 + popd &>/dev/null || die
354 + fi
355 +
356 + doins VBoxHeadless
357 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/VBoxHeadless
358 + fperms 4750 /usr/$(get_libdir)/${PN}/VBoxHeadless
359 + if ! pax-mark -m "${D}"/usr/$(get_libdir)/${PN}/VBoxHeadless ; then
360 + ewarn "Couldn't pax-mark /usr/$(get_libdir)/${PN}/VBoxHeadless"
361 + fi
362 +
363 + insinto /usr/$(get_libdir)/${PN}
364 + # Install EFI Firmware files (bug #320757)
365 + pushd "${S}"/src/VBox/Devices/EFI/FirmwareBin &>/dev/null || die
366 + for fwfile in VBoxEFI{32,64}.fd ; do
367 + doins ${fwfile}
368 + fowners root:vboxusers /usr/$(get_libdir)/${PN}/${fwfile}
369 + done
370 + popd &>/dev/null || die
371 +
372 + if use udev ; then
373 + # New way of handling USB device nodes for VBox (bug #356215)
374 + local udevdir="$(get_udevdir)"
375 + insinto ${udevdir}
376 + doins VBoxCreateUSBNode.sh
377 + fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
378 + fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
379 + insinto ${udevdir}/rules.d
380 + doins "${FILESDIR}"/10-virtualbox.rules
381 + sed "s@%UDEVDIR%@${udevdir}@" \
382 + -i "${D}"${udevdir}/rules.d/10-virtualbox.rules || die
383 + fi
384 +
385 + insinto /usr/share/${PN}
386 + if ! use headless && use qt4 ; then
387 + doins -r nls
388 + fi
389 +
390 + # VRDPAuth only works with this (bug #351949)
391 + dosym VBoxAuth.so /usr/$(get_libdir)/${PN}/VRDPAuth.so
392 +
393 + # set an env-variable for 3rd party tools
394 + echo -n "VBOX_APP_HOME=/usr/$(get_libdir)/${PN}" > "${T}/90virtualbox"
395 + doenvd "${T}/90virtualbox"
396 +
397 + if use java ; then
398 + java-pkg_regjar "${D}/usr/$(get_libdir)/${PN}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
399 + java-pkg_regso "${D}/usr/$(get_libdir)/${PN}/libvboxjxpcom.so"
400 + fi
401 +}
402 +
403 +pkg_postinst() {
404 + fdo-mime_desktop_database_update
405 +
406 + if use udev ; then
407 + udevadm control --reload-rules \
408 + && udevadm trigger --subsystem-match=usb
409 + fi
410 +
411 + if ! use headless && use qt4 ; then
412 + elog "To launch VirtualBox just type: \"VirtualBox\"."
413 + fi
414 + elog "You must be in the vboxusers group to use VirtualBox."
415 + elog ""
416 + elog "The latest user manual is available for download at:"
417 + elog "http://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
418 + elog ""
419 + elog "For advanced networking setups you should emerge:"
420 + elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
421 + elog ""
422 + elog "IMPORTANT!"
423 + elog "If you upgrade from app-emulation/virtualbox-ose make sure to run"
424 + elog "\"env-update\" as root and logout and relogin as the user you wish"
425 + elog "to run ${PN} as."
426 + elog ""
427 + elog "Starting with version 4.0.0, ${PN} has USB-1 support."
428 + elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
429 + elog " app-emulation/virtualbox-extpack-oracle"
430 + elog "package."
431 + elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
432 + elog "the \"extension\" USE flag. For installation of the guest additions ISO"
433 + elog "image, please emerge"
434 + elog " app-emulation/virtualbox-additions"
435 + elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
436 + elog " app-emulation/virtualbox-extpack-oracle"
437 + if ! use udev ; then
438 + elog ""
439 + elog "WARNING!"
440 + elog "Without USE=udev, USB devices will likely not work in ${PN}."
441 + elif [ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ] ; then
442 + elog ""
443 + elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
444 + elog "or else USB in ${PN} won't work."
445 + fi
446 +}
447 +
448 +pkg_postrm() {
449 + fdo-mime_desktop_database_update
450 +}