Gentoo Archives: gentoo-commits

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