1 |
commit: c250435ca78aad838432b4b3ee02e42634b3b378 |
2 |
Author: Sam James <sam <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Jul 6 02:04:49 2022 +0000 |
4 |
Commit: Sam James <sam <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jul 6 02:05:40 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c250435c |
7 |
|
8 |
app-emulation/virtualbox: force Java 8 for wsimport |
9 |
|
10 |
wsimport was dropped in Java 11+. We need to put the dep for 8 |
11 |
in DEPEND rather than (just?) BDEPEND for the eclass magic |
12 |
to actually enforce the right env vars & java. |
13 |
|
14 |
Thanks to Marcel for the pointers. |
15 |
|
16 |
Closes: https://bugs.gentoo.org/832166 |
17 |
Thanks-to: Marcel Greter <bugzilla <AT> ocbnet.ch> |
18 |
Signed-off-by: Sam James <sam <AT> gentoo.org> |
19 |
|
20 |
.../virtualbox/virtualbox-6.1.34-r2.ebuild | 511 +++++++++++++++++++++ |
21 |
1 file changed, 511 insertions(+) |
22 |
|
23 |
diff --git a/app-emulation/virtualbox/virtualbox-6.1.34-r2.ebuild b/app-emulation/virtualbox/virtualbox-6.1.34-r2.ebuild |
24 |
new file mode 100644 |
25 |
index 000000000000..73fc49ceb444 |
26 |
--- /dev/null |
27 |
+++ b/app-emulation/virtualbox/virtualbox-6.1.34-r2.ebuild |
28 |
@@ -0,0 +1,511 @@ |
29 |
+# Copyright 2022 Gentoo Authors |
30 |
+# Distributed under the terms of the GNU General Public License v2 |
31 |
+ |
32 |
+EAPI=8 |
33 |
+ |
34 |
+PYTHON_COMPAT=( python3_{8..10} ) |
35 |
+inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg |
36 |
+ |
37 |
+MY_PN="VirtualBox" |
38 |
+MY_PV="${PV/beta/BETA}" |
39 |
+MY_PV="${MY_PV/rc/RC}" |
40 |
+MY_P=${MY_PN}-${MY_PV} |
41 |
+[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)" |
42 |
+ |
43 |
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" |
44 |
+HOMEPAGE="https://www.virtualbox.org/" |
45 |
+SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2 |
46 |
+ https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz" |
47 |
+ |
48 |
+LICENSE="GPL-2 dtrace? ( CDDL )" |
49 |
+SLOT="0/$(ver_cut 1-2)" |
50 |
+[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ |
51 |
+KEYWORDS="~amd64" |
52 |
+IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc" |
53 |
+ |
54 |
+COMMON_DEPEND=" |
55 |
+ ${PYTHON_DEPS} |
56 |
+ !app-emulation/virtualbox-bin |
57 |
+ acct-group/vboxusers |
58 |
+ ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}} |
59 |
+ dev-libs/libIDL |
60 |
+ >=dev-libs/libxslt-1.1.19 |
61 |
+ net-misc/curl |
62 |
+ dev-libs/libxml2 |
63 |
+ media-libs/libpng:0= |
64 |
+ media-libs/libvpx:0= |
65 |
+ sys-libs/zlib:= |
66 |
+ !headless? ( |
67 |
+ media-libs/libsdl:0[X,video] |
68 |
+ x11-libs/libX11 |
69 |
+ x11-libs/libxcb:= |
70 |
+ x11-libs/libXcursor |
71 |
+ x11-libs/libXext |
72 |
+ x11-libs/libXmu |
73 |
+ x11-libs/libXt |
74 |
+ opengl? ( |
75 |
+ media-libs/libglvnd[X] |
76 |
+ virtual/glu |
77 |
+ ) |
78 |
+ qt5? ( |
79 |
+ dev-qt/qtcore:5 |
80 |
+ dev-qt/qtgui:5 |
81 |
+ dev-qt/qtprintsupport:5 |
82 |
+ dev-qt/qtwidgets:5 |
83 |
+ dev-qt/qtx11extras:5 |
84 |
+ opengl? ( dev-qt/qtopengl:5 ) |
85 |
+ x11-libs/libXinerama |
86 |
+ ) |
87 |
+ ) |
88 |
+ dev-libs/openssl:0= |
89 |
+ virtual/libcrypt:= |
90 |
+ lvm? ( sys-fs/lvm2 ) |
91 |
+ opus? ( media-libs/opus ) |
92 |
+ udev? ( >=virtual/udev-171 ) |
93 |
+ vnc? ( >=net-libs/libvncserver-0.9.9 ) |
94 |
+" |
95 |
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport |
96 |
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, |
97 |
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables |
98 |
+# based on *DEPEND doesn't work for BDEPEND at least right now. See bug #832166. |
99 |
+DEPEND=" |
100 |
+ ${COMMON_DEPEND} |
101 |
+ alsa? ( >=media-libs/alsa-lib-1.0.13 ) |
102 |
+ !headless? ( |
103 |
+ x11-libs/libXinerama |
104 |
+ opengl? ( virtual/opengl ) |
105 |
+ ) |
106 |
+ java? ( virtual/jdk:1.8 ) |
107 |
+ pam? ( sys-libs/pam ) |
108 |
+ pax-kernel? ( sys-apps/elfix ) |
109 |
+ pulseaudio? ( media-sound/pulseaudio ) |
110 |
+ qt5? ( dev-qt/linguist-tools:5 ) |
111 |
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) |
112 |
+" |
113 |
+BDEPEND=" |
114 |
+ ${PYTHON_DEPS} |
115 |
+ >=dev-util/kbuild-0.1.9998.3127 |
116 |
+ >=dev-lang/yasm-0.6.2 |
117 |
+ sys-devel/bin86 |
118 |
+ sys-libs/libcap |
119 |
+ sys-power/iasl |
120 |
+ virtual/pkgconfig |
121 |
+ doc? ( |
122 |
+ app-text/docbook-sgml-dtd:4.4 |
123 |
+ dev-texlive/texlive-basic |
124 |
+ dev-texlive/texlive-latex |
125 |
+ dev-texlive/texlive-latexrecommended |
126 |
+ dev-texlive/texlive-latexextra |
127 |
+ dev-texlive/texlive-fontsrecommended |
128 |
+ dev-texlive/texlive-fontsextra |
129 |
+ ) |
130 |
+ java? ( virtual/jdk:1.8 ) |
131 |
+" |
132 |
+RDEPEND=" |
133 |
+ ${COMMON_DEPEND} |
134 |
+ java? ( virtual/jre:1.8 ) |
135 |
+" |
136 |
+ |
137 |
+QA_TEXTRELS=" |
138 |
+ usr/lib64/virtualbox/VMMR0.r0 |
139 |
+" |
140 |
+ |
141 |
+QA_EXECSTACK=" |
142 |
+ usr/lib64/virtualbox/iPxeBaseBin |
143 |
+ usr/lib64/virtualbox/VMMR0.r0 |
144 |
+ usr/lib64/virtualbox/VBoxDDR0.r0 |
145 |
+" |
146 |
+ |
147 |
+QA_WX_LOAD=" |
148 |
+ usr/lib64/virtualbox/iPxeBaseBin |
149 |
+" |
150 |
+ |
151 |
+QA_PRESTRIPPED=" |
152 |
+ /usr/lib64/virtualbox/VMMR0.r0 |
153 |
+ /usr/lib64/virtualbox/VBoxDDR0.r0 |
154 |
+" |
155 |
+ |
156 |
+S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}" |
157 |
+ |
158 |
+REQUIRED_USE=" |
159 |
+ java? ( sdk ) |
160 |
+ python? ( sdk ) |
161 |
+ vboxwebsrv? ( java ) |
162 |
+ ${PYTHON_REQUIRED_USE} |
163 |
+" |
164 |
+ |
165 |
+PATCHES=( |
166 |
+ "${FILESDIR}/${P}-vboxr0.patch" |
167 |
+ "${FILESDIR}/${PN}-6.1.34-python3.10.patch" #852152 |
168 |
+) |
169 |
+ |
170 |
+pkg_pretend() { |
171 |
+ if ! use headless && ! use qt5 ; then |
172 |
+ einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." |
173 |
+ elif use headless && use qt5 ; then |
174 |
+ einfo "You selected USE=\"headless qt5\", defaulting to" |
175 |
+ einfo "USE=\"headless\", this build will not include any X11/Qt frontend." |
176 |
+ fi |
177 |
+ |
178 |
+ if ! use opengl ; then |
179 |
+ einfo "No USE=\"opengl\" selected, this build will lack" |
180 |
+ einfo "the OpenGL feature." |
181 |
+ fi |
182 |
+ if ! use python ; then |
183 |
+ einfo "You have disabled the \"python\" USE flag. This will only" |
184 |
+ einfo "disable the python bindings being installed." |
185 |
+ fi |
186 |
+} |
187 |
+ |
188 |
+pkg_setup() { |
189 |
+ java-pkg-opt-2_pkg_setup |
190 |
+ python-single-r1_pkg_setup |
191 |
+ |
192 |
+ tc-ld-disable-gold #bug 488176 |
193 |
+ tc-export CC CXX LD AR RANLIB |
194 |
+ export HOST_CC="$(tc-getBUILD_CC)" |
195 |
+} |
196 |
+ |
197 |
+src_prepare() { |
198 |
+ # Remove shipped binaries (kBuild,yasm), see bug #232775 |
199 |
+ rm -r kBuild/bin tools || die |
200 |
+ |
201 |
+ # Replace pointless GCC version check with something less stupid. |
202 |
+ # This is needed for the qt5 version check. |
203 |
+ sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \ |
204 |
+ -i configure || die |
205 |
+ |
206 |
+ # Disable things unused or split into separate ebuilds |
207 |
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \ |
208 |
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die |
209 |
+ |
210 |
+ if ! use pch ; then |
211 |
+ # bug #753323 |
212 |
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ |
213 |
+ >> LocalConfig.kmk || die |
214 |
+ fi |
215 |
+ |
216 |
+ # Respect LDFLAGS |
217 |
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ |
218 |
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die |
219 |
+ |
220 |
+ # Do not use hard-coded ld (related to bug #488176) |
221 |
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \ |
222 |
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die |
223 |
+ |
224 |
+ # Use PAM only when pam USE flag is enbaled (bug #376531) |
225 |
+ if ! use pam ; then |
226 |
+ einfo "Disabling PAM removes the possibility to use the VRDP features." |
227 |
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die |
228 |
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ |
229 |
+ src/VBox/HostServices/Makefile.kmk || die |
230 |
+ fi |
231 |
+ |
232 |
+ # add correct java path |
233 |
+ if use java ; then |
234 |
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ |
235 |
+ -i "${S}"/Config.kmk || die |
236 |
+ java-pkg-opt-2_src_prepare |
237 |
+ fi |
238 |
+ |
239 |
+ # Only add nopie patch when we're on hardened |
240 |
+ if gcc-specs-pie ; then |
241 |
+ eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch" |
242 |
+ fi |
243 |
+ |
244 |
+ # Only add paxmark patch when we're on pax-kernel |
245 |
+ if use pax-kernel ; then |
246 |
+ eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch |
247 |
+ fi |
248 |
+ |
249 |
+ eapply "${FILESDIR}/${PN}-6.1.26-configure-include-qt5-path.patch" #805365 |
250 |
+ |
251 |
+ eapply "${WORKDIR}/patches" |
252 |
+ |
253 |
+ default |
254 |
+} |
255 |
+ |
256 |
+doecho() { |
257 |
+ echo "$@" |
258 |
+ "$@" || die |
259 |
+} |
260 |
+ |
261 |
+src_configure() { |
262 |
+ local myconf=( |
263 |
+ --with-gcc="$(tc-getCC)" |
264 |
+ --with-g++="$(tc-getCXX)" |
265 |
+ --disable-dbus |
266 |
+ --disable-kmods |
267 |
+ $(usex alsa '' --disable-alsa) |
268 |
+ $(usex debug --build-debug '') |
269 |
+ $(usex doc '' --disable-docs) |
270 |
+ $(usex java '' --disable-java) |
271 |
+ $(usex lvm '' --disable-devmapper) |
272 |
+ $(usex opus '' --disable-libopus) |
273 |
+ $(usex pulseaudio '' --disable-pulse) |
274 |
+ $(usex python '' --disable-python) |
275 |
+ $(usex vboxwebsrv --enable-webservice '') |
276 |
+ $(usex vnc --enable-vnc '') |
277 |
+ ) |
278 |
+ if ! use headless ; then |
279 |
+ myconf+=( |
280 |
+ $(usex opengl '' --disable-opengl) |
281 |
+ $(usex qt5 '' --disable-qt) |
282 |
+ ) |
283 |
+ else |
284 |
+ myconf+=( |
285 |
+ --build-headless |
286 |
+ --disable-opengl |
287 |
+ ) |
288 |
+ fi |
289 |
+ if use amd64 && ! has_multilib_profile ; then |
290 |
+ myconf+=( --disable-vmmraw ) |
291 |
+ fi |
292 |
+ # not an autoconf script |
293 |
+ doecho ./configure "${myconf[@]}" |
294 |
+} |
295 |
+ |
296 |
+src_compile() { |
297 |
+ source ./env.sh || die |
298 |
+ |
299 |
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) |
300 |
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' |
301 |
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' |
302 |
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" |
303 |
+ MAKE="kmk" emake \ |
304 |
+ VBOX_BUILD_PUBLISHER=_Gentoo \ |
305 |
+ TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ |
306 |
+ TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ |
307 |
+ TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \ |
308 |
+ VBOX_WITH_VBOXIMGMOUNT=1 \ |
309 |
+ all |
310 |
+} |
311 |
+ |
312 |
+src_install() { |
313 |
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die |
314 |
+ |
315 |
+ local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile |
316 |
+ |
317 |
+ vbox_inst() { |
318 |
+ local binary="${1}" |
319 |
+ local perms="${2:-0750}" |
320 |
+ local path="${3:-${vbox_inst_path}}" |
321 |
+ |
322 |
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" |
323 |
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." |
324 |
+ |
325 |
+ insinto ${path} |
326 |
+ doins ${binary} |
327 |
+ fowners root:vboxusers ${path}/${binary} |
328 |
+ fperms ${perms} ${path}/${binary} |
329 |
+ } |
330 |
+ |
331 |
+ # Create configuration files |
332 |
+ insinto /etc/vbox |
333 |
+ newins "${FILESDIR}/${PN}-4-config" vbox.cfg |
334 |
+ |
335 |
+ # Set the correct libdir |
336 |
+ sed \ |
337 |
+ -e "s@MY_LIBDIR@$(get_libdir)@" \ |
338 |
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" |
339 |
+ |
340 |
+ # Install the wrapper script |
341 |
+ exeinto ${vbox_inst_path} |
342 |
+ newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" |
343 |
+ fowners root:vboxusers ${vbox_inst_path}/VBox |
344 |
+ fperms 0750 ${vbox_inst_path}/VBox |
345 |
+ |
346 |
+ # Install binaries and libraries |
347 |
+ insinto ${vbox_inst_path} |
348 |
+ doins -r components |
349 |
+ |
350 |
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do |
351 |
+ vbox_inst ${each} |
352 |
+ done |
353 |
+ |
354 |
+ # These binaries need to be suid root. |
355 |
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do |
356 |
+ vbox_inst ${each} 4750 |
357 |
+ done |
358 |
+ |
359 |
+ # Install EFI Firmware files (bug #320757) |
360 |
+ for each in VBoxEFI{32,64}.fd ; do |
361 |
+ vbox_inst ${each} 0644 |
362 |
+ done |
363 |
+ |
364 |
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) |
365 |
+ # VBoxXPCOMIPCD (bug #524202) |
366 |
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do |
367 |
+ pax-mark -m "${ED}"${vbox_inst_path}/${each} |
368 |
+ done |
369 |
+ |
370 |
+ # Symlink binaries to the shipped wrapper |
371 |
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do |
372 |
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each} |
373 |
+ done |
374 |
+ dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl |
375 |
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount |
376 |
+ |
377 |
+ if use pam ; then |
378 |
+ # VRDPAuth only works with this (bug #351949) |
379 |
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so |
380 |
+ fi |
381 |
+ |
382 |
+ # set an env-variable for 3rd party tools |
383 |
+ echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" |
384 |
+ doenvd "${T}/90virtualbox" |
385 |
+ |
386 |
+ if ! use headless ; then |
387 |
+ vbox_inst rdesktop-vrdp |
388 |
+ vbox_inst VBoxSDL 4750 |
389 |
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL |
390 |
+ |
391 |
+ for each in vboxsdl VBoxSDL ; do |
392 |
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each} |
393 |
+ done |
394 |
+ |
395 |
+ if use qt5 ; then |
396 |
+ vbox_inst VirtualBox |
397 |
+ vbox_inst VirtualBoxVM 4750 |
398 |
+ for each in VirtualBox{,VM} ; do |
399 |
+ pax-mark -m "${ED}"${vbox_inst_path}/${each} |
400 |
+ done |
401 |
+ |
402 |
+ if use opengl ; then |
403 |
+ vbox_inst VBoxTestOGL |
404 |
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL |
405 |
+ fi |
406 |
+ |
407 |
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do |
408 |
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each} |
409 |
+ done |
410 |
+ |
411 |
+ insinto /usr/share/${PN} |
412 |
+ doins -r nls |
413 |
+ doins -r UnattendedTemplates |
414 |
+ |
415 |
+ domenu ${PN}.desktop |
416 |
+ fi |
417 |
+ |
418 |
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die |
419 |
+ for size in 16 32 48 64 128 ; do |
420 |
+ newicon -s ${size} ${PN}-${size}px.png ${PN}.png |
421 |
+ done |
422 |
+ newicon ${PN}-48px.png ${PN}.png |
423 |
+ doicon -s scalable ${PN}.svg |
424 |
+ popd &>/dev/null || die |
425 |
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die |
426 |
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do |
427 |
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do |
428 |
+ icofile="${PN}-${ico}-${size}px.png" |
429 |
+ if [[ -f "${icofile}" ]] ; then |
430 |
+ newicon -s ${size} ${icofile} ${PN}-${ico}.png |
431 |
+ fi |
432 |
+ done |
433 |
+ done |
434 |
+ popd &>/dev/null || die |
435 |
+ fi |
436 |
+ |
437 |
+ if use lvm ; then |
438 |
+ vbox_inst VBoxVolInfo 4750 |
439 |
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo |
440 |
+ fi |
441 |
+ |
442 |
+ if use sdk ; then |
443 |
+ insinto ${vbox_inst_path} |
444 |
+ doins -r sdk |
445 |
+ |
446 |
+ if use java ; then |
447 |
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" |
448 |
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" |
449 |
+ fi |
450 |
+ fi |
451 |
+ |
452 |
+ if use udev ; then |
453 |
+ local udevdir="$(get_udevdir)" |
454 |
+ local udev_file="VBoxCreateUSBNode.sh" |
455 |
+ local rules_file="10-virtualbox.rules" |
456 |
+ |
457 |
+ insinto ${udevdir} |
458 |
+ doins ${udev_file} |
459 |
+ fowners root:vboxusers ${udevdir}/${udev_file} |
460 |
+ fperms 0750 ${udevdir}/${udev_file} |
461 |
+ |
462 |
+ insinto ${udevdir}/rules.d |
463 |
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ |
464 |
+ > "${T}"/${rules_file} || die |
465 |
+ doins "${T}"/${rules_file} |
466 |
+ fi |
467 |
+ |
468 |
+ if use vboxwebsrv ; then |
469 |
+ vbox_inst vboxwebsrv |
470 |
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv |
471 |
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv |
472 |
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv |
473 |
+ fi |
474 |
+ |
475 |
+ # Remove dead symlinks (bug #715338) |
476 |
+ find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die |
477 |
+ |
478 |
+ # Fix version string in extensions or else they don't get accepted |
479 |
+ # by the virtualbox host process (see bug #438930) |
480 |
+ find ExtensionPacks -type f -name "ExtPack.xml" -print0 \ |
481 |
+ | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \ |
482 |
+ || die |
483 |
+ |
484 |
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks" |
485 |
+ |
486 |
+ if use vnc ; then |
487 |
+ insinto ${extensions_dir} |
488 |
+ doins -r ExtensionPacks/VNC |
489 |
+ fi |
490 |
+ |
491 |
+ if use dtrace ; then |
492 |
+ insinto ${extensions_dir} |
493 |
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack |
494 |
+ fi |
495 |
+ |
496 |
+ if use doc ; then |
497 |
+ dodoc UserManual.pdf |
498 |
+ fi |
499 |
+ |
500 |
+ newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf |
501 |
+} |
502 |
+ |
503 |
+pkg_postinst() { |
504 |
+ xdg_pkg_postinst |
505 |
+ |
506 |
+ if use udev ; then |
507 |
+ udevadm control --reload-rules \ |
508 |
+ && udevadm trigger --subsystem-match=usb |
509 |
+ fi |
510 |
+ |
511 |
+ tmpfiles_process virtualbox-vboxusb.conf |
512 |
+ |
513 |
+ if ! use headless && use qt5 ; then |
514 |
+ elog "To launch VirtualBox just type: \"virtualbox\"." |
515 |
+ fi |
516 |
+ elog "You must be in the vboxusers group to use VirtualBox." |
517 |
+ elog "" |
518 |
+ elog "The latest user manual is available for download at:" |
519 |
+ elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf" |
520 |
+ elog "" |
521 |
+ elog "For advanced networking setups you should emerge:" |
522 |
+ elog "net-misc/bridge-utils and sys-apps/usermode-utilities" |
523 |
+ elog "" |
524 |
+ elog "Starting with version 4.0.0, ${PN} has USB-1 support." |
525 |
+ elog "For USB-2 support, PXE-boot ability and VRDP support please emerge" |
526 |
+ elog " app-emulation/virtualbox-extpack-oracle" |
527 |
+ elog "package." |
528 |
+ elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and" |
529 |
+ elog "the \"extension\" USE flag. For installation of the guest additions ISO" |
530 |
+ elog "image, please emerge" |
531 |
+ elog " app-emulation/virtualbox-additions" |
532 |
+ elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge" |
533 |
+ elog " app-emulation/virtualbox-extpack-oracle" |
534 |
+ if ! use udev ; then |
535 |
+ elog "" |
536 |
+ elog "WARNING!" |
537 |
+ elog "Without USE=udev, USB devices will likely not work in ${PN}." |
538 |
+ fi |
539 |
+} |