Magellan Linux

Contents of /trunk/extras/virtualbox/virtualbox-4.1.51_svn40321-r4.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 12162 - (show annotations) (download)
Thu May 10 07:24:58 2012 UTC (12 years, 1 month ago) by niro
File size: 18451 byte(s)
-mark unstable
1 # $Id$
2
3 PNAME="virtualbox"
4 PVER="4.1.51_svn40321"
5 PBUILD="r4"
6
7 SPLIT_PACKAGES="virtualbox-common virtualbox xf86-video-virtualbox xf86-input-virtualbox virtualbox-guest-additions"
8
9 PCAT="app-emulation"
10 STATE="unstable"
11
12 HOMEPAGE="http://www.virtualbox.de/"
13
14 # driver modules for xorg-server version
15 XORG_VER="1.11"
16
17 # use upstream suggested hardening=1 or not=0
18 VBOX_HARDENING=0
19
20 VBOX_DEPEND=">= dev-libs/libidl-0.8.14
21 >= media-libs/alsa-lib-1.0.24
22 >= media-libs/libsdl-1.2.14
23 >= media-sound/libpulse-1.1
24 >= x11-libs/qt4-core-4.8
25 >= x11-libs/qt4-gui-4.8
26 >= x11-libs/qt4-opengl-4.8
27 >= sys-apps/dbus-1.4
28 >= x11-libs/libXcursor-1
29 >= virtual/opengl
30 >= virtual/glut
31 >= dev-lang/python-2.7
32 >= net-misc/bridge-utils-1.4
33 >= sys-apps/usermode-utilities-2007
34 >= virtual/kernel-sources"
35 ADDITIONS_DEPEND=">= x11-libs/libXmu-1
36 >= x11-libs/libXt-1
37 >= x11-apps/xrandr-1.3
38 >= x11-apps/xrefresh-1
39 >= fake/devsystem
40 >= virtual/kernel-sources"
41 XLIBS_DEPEND=">= x11-libs/libXdmcp-1
42 >= x11-libs/libSM-1.1
43 >= x11-libs/libICE-1
44 >= x11-libs/libXau-1
45 >= x11-libs/libXdmcp-1
46 >= x11-libs/libX11-1.4
47 >= x11-libs/libXfixes-5
48 >= x11-libs/libXext-1.1"
49 XORG_DEPEND="== x11-base/xorg-server-${XORG_VER}"
50 VIDEO_DEPEND=">= x11-libs/libXcomposite-0.4
51 >= x11-libs/libdrm-2.4.26"
52 # vboxmouse_drv only needed with xorg =< 1.10
53 # for xorg-1.11 upstream suggest the normal mouse driver
54 if [[ ${XORG_VER//.} < 111 ]]
55 then
56 INPUT_DEPEND=""
57 else
58 INPUT_DEPEND=">= x11-drivers/xf86-input-mouse-1.7"
59 fi
60
61 SDEPEND="${VBOX_DEPEND}
62 ${ADDITIONS_DEPEND}
63 ${XLIBS_DEPEND}
64 ${XORG_DEPEND}
65 ${VIDEO_DEPEND}
66 ${INPUT_DEPEND}
67 >= dev-lang/bin86-0.16
68 >= dev-lang/dev86-0.16
69 >= dev-util/iasl-2009
70 >= dev-libs/libxml2-2.7
71 >= dev-util/desktop-file-utils-0.15
72 >= sys-apps/sed-4
73 >= x11-proto/fontsproto-2
74 >= x11-proto/renderproto-0.11
75 >= x11-proto/xineramaproto-1.2
76 >= x11-proto/randrproto-1.3
77 >= x11-proto/xproto-7
78 >= x11-proto/xextproto-7
79 >= x11-proto/kbproto-1
80 >= x11-proto/inputproto-2
81 >= x11-proto/xf86driproto-2.1
82 >= app-cdr/cdrtools-2.01
83 >= app-arch/makeself-2.1.5
84 >= virtual/java-jdk
85 >= net-misc/curl-7.22
86 >= net-nds/openldap-2.4"
87
88 SRCFILE="${PNAME}-${PVER}.tar.bz2"
89 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
90
91 # virtual box additions for guest clients
92 VBOX_ADDITIONS_PVER="4.1.8"
93 VBOX_ADDITIONS_ISO="VBoxGuestAdditions_${VBOX_ADDITIONS_PVER}.iso"
94 VBOX_USER_MANUAL_PVER="4.1.8"
95 VBOX_USER_MANUAL="UserManual.pdf"
96
97 # wrapper revision
98 VW_CVS_REV=1.8
99 # config-tool revision
100 VC_CVS_REV=1.19
101 # guest-config-tool revision
102 VGC_CVS_REV=1.2
103
104 # needed for postinstall
105 SPECIAL_VARS="VBOX_USER_MANUAL"
106
107 sminclude mtools xdg qt4
108
109 SRC_URI=(
110 http://download.virtualbox.org/${PNAME}/${PVER}/${SRCFILE}
111 http://download.virtualbox.org/${PNAME}/${VBOX_ADDITIONS_PVER}/${VBOX_ADDITIONS_ISO}
112 http://download.virtualbox.org/${PNAME}/${VBOX_USER_MANUAL_PVER}/${VBOX_USER_MANUAL}
113 mirror://${PNAME}/${PVER}/${SRCFILE}
114 mirror://${PNAME}/${SRCFILE}
115 mirror://${PNAME}/${VBOX_ADDITIONS_PVER}/${VBOX_ADDITIONS_ISO}
116 mirror://${PNAME}/${VBOX_USER_MANUAL_PVER}/${VBOX_USER_MANUAL}
117 mirror://${PNAME}/${PNAME}-wrapper.sh-${VW_CVS_REV}
118 mirror://${PNAME}/${PNAME}-config.sh-${VC_CVS_REV}
119 mirror://${PNAME}/${PNAME}-guest-config.sh-${VGC_CVS_REV}
120 mirror://${PNAME}/interfaces
121 mirror://${PNAME}/xorg.conf.vbox
122 mirror://${PNAME}/vboxclient.desktop
123 mirror://${PNAME}/vboxguest.service
124 mirror://${PNAME}/${PNAME}-1.5.4-magellan.patch
125 mirror://${PNAME}/${PNAME}-${PVER}-magellan-branding.patch
126 mirror://${PNAME}/${PNAME}-4.0.0-magellan-os-icons.patch
127 mirror://${PNAME}/${PNAME}-4.0.10-additions-magellan.patch
128 mirror://${PNAME}/${PNAME}-4.0.0-vboxdrv-magellan.patch
129 mirror://${PNAME}/${PNAME}-4.0.10-routines-magellan.patch
130 mirror://${PNAME}/${PNAME}-${PVER}-as-needed.patch
131 )
132
133 UP2DATE="updatecmd http://www.virtualbox.de/wiki/Downloads | grep 'for Linux' | sed 's/.*ox\ \(.*\)\ for.*/\1/'"
134
135 split_info_virtualbox-common()
136 {
137 DESCRIPTION="Common configuration files used by virtualbox and guest-addtions."
138 PCAT="app-emulation"
139 DEPEND=""
140 }
141
142 split_info_virtualbox()
143 {
144 DESCRIPTION="VirtualBox is a general-purpose full virtualizer for x86 hardware."
145 PCAT="app-emulation"
146 DEPEND="== app-emulation/virtualbox-common-${PVER}
147 ${VBOX_DEPEND}"
148 }
149
150 split_info_virtualbox-guest-additions()
151 {
152 DESCRIPTION="VirtualBox kernel modules and user-space tools for Linux guests."
153 PCAT="app-emulation"
154 # vboxmouse_drv only needed with xorg =< 1.10
155 # for xorg-1.11 upstream suggest the normal mouse driver
156 if [[ ${XORG_VER//.} < 111 ]]
157 then
158 DEPEND="== app-emulation/virtualbox-common-${PVER}
159 == x11-drivers/xf86-video-virtualbox-${PVER}
160 == x11-drivers/xf86-input-virtualbox-${PVER}
161 ${XLIBS_DEPEND}
162 ${ADDITIONS_DEPEND}"
163 else
164 DEPEND="== app-emulation/virtualbox-common-${PVER}
165 == x11-drivers/xf86-video-virtualbox-${PVER}
166 ${INPUT_DEPEND}
167 ${XLIBS_DEPEND}
168 ${ADDITIONS_DEPEND}"
169 fi
170 }
171
172 split_info_xf86-video-virtualbox()
173 {
174 DESCRIPTION="VirtualBox X11 video driver."
175 PCAT="x11-drivers"
176 DEPEND="${XLIBS_DEPEND}
177 ${VIDEO_DEPEND}
178 ${XORG_DEPEND}"
179 }
180
181 split_info_xf86-input-virtualbox()
182 {
183 DESCRIPTION="VirtualBox X11 mouse driver."
184 PCAT="x11-drivers"
185
186 # vboxmouse_drv only needed with xorg =< 1.10
187 # for xorg-1.11 upstream suggest the normal mouse driver
188 if [[ ${XORG_VER//.} < 111 ]]
189 then
190 DEPEND="${XORG_DEPEND}"
191 else
192 DEPEND="${XORG_DEPEND}
193 ${INPUT_DEPEND}"
194 # virtualize this package!
195 PKGTYPE="virtual"
196 fi
197 }
198
199 src_prepare()
200 {
201 munpack ${SRCFILE} || die
202 cd ${SRCDIR}
203
204 # fix issues with --as-needed
205 mpatch ${PNAME}-${PVER}-as-needed.patch || die
206
207 # add magellan support to VBoxSysInfo.sh
208 mpatch ${PNAME}-1.5.4-magellan.patch || die
209
210 # magellan-branding, enables "magellan" guest-definitions
211 mpatch ${PNAME}-${PVER}-magellan-branding.patch || die
212
213 # magellan-branding, adds magellan icons used in branding patch
214 mpatch -Np1 ${PNAME}-4.0.0-magellan-os-icons.patch || die
215
216 # add magellan support to additions installers
217 mpatch ${PNAME}-4.0.10-additions-magellan.patch || die
218
219 # add magellan support to vboxdrv and webservice installer
220 mpatch ${PNAME}-4.0.0-vboxdrv-magellan.patch || die
221
222 # add magellan support to balloon-driver, routines webservice rc
223 mpatch ${PNAME}-4.0.10-routines-magellan.patch || die
224
225 # fixes compile issues with qt on magellan
226 # create a fake qtdir to fix /usr/include/qt issue without patching
227 install -d ${SRCDIR}/qt || die
228 ln -snf ${QTDIR}/bin ${SRCDIR}/qt || die
229 ln -snf ${QTDIR}/$(mlibdir) ${SRCDIR}/qt/lib || die
230 ln -snf ${QTDIR}/include/qt ${SRCDIR}/qt/include || die
231
232 # do not build testcases to save compile time
233 local MCONFIG="${SRCDIR}/LocalConfig.kmk"
234 mclearconfig -b
235 maddconfig -b 'VBOX_WITH_TESTCASES ='
236 maddconfig -b 'VBOX_WITH_TESTSUITE ='
237 maddconfig -b 'VBOX_WITH_REGISTRATION_REQUEST ='
238 maddconfig -b 'VBOX_WITH_UPDATE_REQUEST ='
239 # tell vbox where to find java
240 maddconfig -b "VBOX_JAVA_HOME = ${JAVA_HOME}"
241 maddconfig -b 'VBOX_WITH_ORIGIN :='
242 maddconfig -b "VBOX_PATH_APP_PRIVATE_ARCH := /usr/$(mlibdir)/virtualbox"
243 maddconfig -b 'VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)'
244 maddconfig -b 'VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)'
245 maddconfig -b 'VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox'
246 maddconfig -b 'VBOX_PATH_APP_DOCS = $(VBOX_PATH_PACKAGE_DOCS)'
247 }
248
249 src_compile()
250 {
251 cd ${SRCDIR}
252
253 local myopts
254 [[ ${VBOX_HARDENING} = 0 ]] && myopts+=" --disable-hardening"
255
256 # use our fake qt dir and enable pulseaudio support, but don't build docs
257 ./configure --with-qt-dir="${SRCDIR}/qt" --enable-pulse --disable-docs ${myopts} || die
258 source ./env.sh || die
259 kmk all || die
260 }
261
262 src_install_virtualbox-common()
263 {
264 cd ${SRCDIR}
265
266 local MCONFIG
267
268 # configfile needed by serveral tools
269 MCONFIG="/etc/vbox/vbox.cfg"
270 minstalldir /etc/vbox || die
271 mclearconfig || die
272 maddconfig "INSTALL_DIR=/usr/$(mlibdir)/virtualbox" || die
273
274 # versionfile needed by virtualbox-config && virtualbox-guest-config
275 MCONFIG="/usr/$(mlibdir)/virtualbox/version"
276 minstalldir /usr/$(mlibdir)/virtualbox || die
277 mclearconfig || die
278 maddconfig "${PVER%%_*}" || die
279 }
280
281 src_install_virtualbox()
282 {
283 # virtualbox installs binaries in x86 or amd64 out dir
284 local myarch
285 case ${ARCH} in
286 i*86) myarch=x86;;
287 x86_64) myarch=amd64;;
288 esac
289
290 cd ${SRCDIR}/out/linux.${myarch}/release/bin
291
292 # move binaries to dest
293 minstalldir /usr/$(mlibdir)/${PNAME} || die
294 mcopy -a \* /usr/$(mlibdir)/${PNAME} || die
295
296 # prune unneeded stuff
297 rm -vf ${BINDIR}/usr/$(mlibdir)/${PNAME}/tst* || die
298 rm -rvf ${BINDIR}/usr/$(mlibdir)/${PNAME}/testcase || die
299 rm -rvf ${BINDIR}/usr/$(mlibdir)/${PNAME}/sdk || die
300
301 # fix permissions
302 chmod -v 0755 ${BINDIR}/usr/$(mlibdir)/${PNAME}/{,additions/}*.so || die
303
304 # remove additions
305 rm -rv ${BINDIR}/usr/$(mlibdir)/${PNAME}/additions/* || die
306
307 # fix permissions
308 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VirtualBox || die
309 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxBFE || die
310 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxSDL || die
311 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxHeadless || die
312 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxManage || die
313 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxSVC || die
314 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxXPCOMIPCD || die
315 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxTunctl || die
316 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
317 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxNetDHCP || die
318 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
319 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxTestOGL || die
320
321 if [[ ${VBOX_HARDENING} = 1 ]]
322 then
323 # virtualbox needs now suid-bits to run
324 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VirtualBox || die
325 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxBFE || die
326 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxSDL || die
327 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxHeadless || die
328 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
329 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxNetDHCP || die
330 fi
331
332 # supply a additions.iso for client guest
333 minstallfile -s ${VBOX_ADDITIONS_ISO} /usr/$(mlibdir)/${PNAME}/additions/${VBOX_ADDITIONS_ISO/_${VBOX_ADDITIONS_PVER}/} || die
334
335 # install a wrapper for some apps
336 minstalldir /usr/bin || die
337 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/virtualbox || die
338 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxmanage || die
339 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxsdl || die
340 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxbfe || die
341 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxvrdp || die
342 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxheadless || die
343
344 # virtualbox-config
345 minstalldir /usr/sbin || die
346 minstallexec -s ${PNAME}-config.sh-${VC_CVS_REV} /usr/sbin/${PNAME}-config || die
347
348 # other needed applinks
349 mlink /usr/$(mlibdir)/${PNAME}/VBoxTunctl /usr/bin/vboxtunctl || die
350
351 # fix libdir
352 local i
353 for i in virtualbox vboxmanage vboxsdl vboxbfe vboxvrdp vboxheadless
354 do
355 sed -i "s:^\(LIBDIR=\).*:\1/usr/$(mlibdir):" ${BINDIR}/usr/bin/${i} || die
356 done
357 sed -i "s:^\(LIBDIR=\).*:\1/usr/$(mlibdir):" ${BINDIR}/usr/sbin/${PNAME}-config || die
358
359 # install a udev rule
360 local MCONFIG="/lib/udev/rules.d/60-virtualbox.rules"
361 minstalldir /lib/udev/rules.d || die
362 mclearconfig || die
363 maddconfig 'KERNEL=="vboxdrv", GROUP="vboxusers" MODE=660' || die
364 # solves some problems with usb support on guest systems
365 maddconfig 'SUBSYSTEM=="usb_device", ACTION!="remove", RUN="/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"' || die
366 maddconfig 'SUBSYSTEM=="usb", ACTION!="remove", ENV{DEVTYPE}=="usb_device", RUN="/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"' || die
367 maddconfig 'SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/lib/udev/VBoxCreateUSBNode.sh --remove $major $minor"' || die
368 maddconfig 'SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/lib/udev/VBoxCreateUSBNode.sh --remove $major $minor"' || die
369
370 # symlink helperscript to udev
371 minstalldir /lib/udev || die
372 mlink /usr/$(mlibdir)/virtualbox/VBoxCreateUSBNode.sh /lib/udev/ || die
373
374 # install modules autoload file
375 local MCONFIG="/etc/modules-load.d/virtualbox.conf"
376 minstalldir /etc/modules-load.d || die
377 mclearconfig || die
378 maddconfig "vboxnetflt" || die
379 maddconfig "vboxnetadp" || die
380 maddconfig "vboxpci" || die
381 maddconfig "vboxdrv" || die
382
383 # install a nice destop entry
384 minstallpixmap ${SRCDIR}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_64px.png ${PNAME}.png || die
385 minstall_desktop_icon \
386 --name VirtualBox \
387 --file ${PNAME} \
388 --comment "Run and manage virtual machines" \
389 --exec ${PNAME} \
390 --icon ${PNAME}.png \
391 --vendor innotek \
392 --categories System,Emulator \
393 || die
394
395 # docs
396 cd ${SRCDIR}
397 minstalldocs ChangeLog COPYING || die
398
399 # install usermanual and let virtualbox find it
400 minstallfile -s ${VBOX_USER_MANUAL} /usr/share/doc/${PNAME}-${PVER} || die
401 mlink /usr/share/doc/${PNAME}-${PVER}/${VBOX_USER_MANUAL} /usr/$(mlibdir)/${PNAME} || die
402 }
403
404 src_install_virtualbox-guest-additions()
405 {
406 # virtualbox installs binaries in x86 or amd64 out dir
407 local myarch
408 case ${ARCH} in
409 i*86) myarch=x86;;
410 x86_64) myarch=amd64;;
411 esac
412
413 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
414
415 minstalldir /sbin || die
416 minstallexec mount.vboxsf /sbin || die
417 mchmod 4755 /sbin/mount.vboxsf || die
418
419 minstalldir /usr/sbin || die
420 minstallexec VBoxService /usr/sbin/vboxguest-service || die
421 mchmod 4755 /usr/sbin/vboxguest-service || die
422
423 minstalldir /usr/bin || die
424 minstallexec VBoxControl /usr/bin || die
425 minstallexec VBoxClient /usr/bin || die
426 minstallexec ${SRCDIR}/src/VBox/Additions/x11/Installer/98vboxadd-xclient /usr/bin/VBoxClient-all || die
427
428 # udev rule for vboxdrv
429 local MCONFIG="/lib/udev/rules.d/60-virtualbox-guest-addition.rules"
430 minstalldir /lib/udev/rules.d || die
431 mclearconfig || die
432 maddconfig 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' || die
433 maddconfig 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' || die
434
435 # install modules autoload file
436 local MCONFIG="/etc/modules-load.d/virtualbox-guest-additions.conf"
437 minstalldir /etc/modules-load.d || die
438 mclearconfig || die
439 maddconfig "vboxguest" || die
440 maddconfig "vboxsf" || die
441 maddconfig "vboxvideo" || die
442
443 # VBoxClient autostart file
444 minstalldir /etc/xdg/autostart || die
445 minstallfile -s vboxclient.desktop /etc/xdg/autostart || die
446
447 # sample xorg.conf
448 minstalldir /usr/share/doc/${PNAME}-${PVER}
449 minstallfile -s xorg.conf.vbox /usr/share/doc/${PNAME}-${PVER} || die
450
451 # install systemd unit
452 minstallunit vboxguest.service || die
453
454 # install additions sources
455 minstalldir /usr/$(mlibdir)/virtualbox/additions || die
456 mcopy -a ${SRCDIR}/out/linux.${myarch}/release/bin/additions/src /usr/$(mlibdir)/virtualbox/additions || die
457
458 # virtualbox-config
459 minstalldir /usr/sbin || die
460 minstallexec -s virtualbox-guest-config.sh-${VGC_CVS_REV} /usr/sbin/virtualbox-guest-config || die
461 }
462
463 src_install_xf86-video-virtualbox()
464 {
465 # virtualbox installs binaries in x86 or amd64 out dir
466 local myarch
467 case ${ARCH} in
468 i*86) myarch=x86;;
469 x86_64) myarch=amd64;;
470 esac
471
472 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
473
474 # needed directories
475 minstalldir /usr/$(mlibdir)/dri || die
476 minstalldir /usr/$(mlibdir)/xorg/modules/drivers || die
477 minstalldir /usr/src/vboxvideo || die
478
479 # install xorg server module
480 minstallfile vboxvideo_drv_${XORG_VER//.}.so /usr/$(mlibdir)/xorg/modules/drivers/vboxvideo_drv.so || die
481
482 # install guest opengl driver
483 minstallfile VBoxOGL\* /usr/$(mlibdir) || die
484
485 # install guest dri driver
486 mlink /usr/$(mlibdir)/VBoxOGL.so /usr/$(mlibdir)/dri/vboxvideo_dri.so
487 }
488
489 # vboxmouse_drv only needed with xorg =< 1.10
490 # for xorg-1.11 upstream suggest the normal mouse driver
491 if [[ ${XORG_VER//.} < 111 ]]
492 then
493 src_install_xf86-input-virtualbox()
494 {
495 # virtualbox installs binaries in x86 or amd64 out dir
496 local myarch
497 case ${ARCH} in
498 i*86) myarch=x86;;
499 x86_64) myarch=amd64;;
500 esac
501
502 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
503
504 # needed directories
505 minstalldir /usr/$(mlibdir)/xorg/modules/input || die
506
507 # install xorg server module
508 minstallfile vboxmouse_drv_${XORG_VER//.}.so /usr/$(mlibdir)/xorg/modules/input/vboxmouse_drv.so || die
509
510 # install xorg conf
511 minstalldir /etc/X11/xorg.conf.d || die
512 minstallfile ${SRCDIR}/src/VBox/Additions/x11/Installer/50-vboxmouse.conf /etc/X11/xorg.conf.d || die
513
514 # install udev rules
515 minstalludevrule ${SRCDIR}/src/VBox/Additions/linux/installer/70-xorg-vboxmouse.rules || die
516 }
517 else
518 src_install_xf86-input-virtualbox()
519 {
520 echo "doing nothing"
521 }
522 postinstall_xf86-input-virtualbox()
523 {
524 echo
525 echo "'x11-drivers/xf86-input-virtualbox' is not needed with >=xorg-server-1.11 anymore."
526 echo "The standard xf86-input-mouse driver was installed and supports all needed features."
527 echo "This is a transition package only. Please uninstall 'xf86-input-virtualbox' now."
528 echo
529 }
530 fi
531
532 preinstall_virtualbox()
533 {
534 # adds virtualbox group
535 ${MLIBDIR}/mgroupadd vboxusers
536 }
537
538 postinstall_virtualbox()
539 {
540 echo
541 echo "Please run virtualbox-config and add your users the 'vboxusers' group."
542 echo "For more information consult the user manual found at"
543 echo " http://virtualbox.de/download/${VBOX_USER_MANUAL}"
544 echo "or /usr/share/docs/${PNAME}-${PVER}/${VBOX_USER_MANUAL}"
545 echo
546 if [[ -d ${MROOT}/usr/$(mlibdir)/virtualbox/ExtensionPacks ]]
547 then
548 echo "ExtensionPacks directory exists!"
549 echo "Make sure that you have a version of the extension-pack installed that matches virtualbox."
550 echo "If you experience segfaults, uninstall the extersion-packs first before filing a bug."
551 echo
552 fi
553 }
554
555 postinstall_xf86-video-virtualbox()
556 {
557 echo "The DRM module was not installed."
558 echo "To use it, install app-emulation/virtualbox-guest-additions"
559 echo "and run 'virtualbox-guest-config' afterwards'"
560 }
561
562 preinstall_virtualbox-guest-additions()
563 {
564 # adds vboxguest user/group
565 ${MLIBDIR}/mgroupadd vboxguest
566 ${MLIBDIR}/museradd -o "-g vboxguest -d /var/run/vboxguest -s /bin/sh" vboxguest
567 }
568
569 postinstall_virtualbox-guest-additions()
570 {
571 mstartunit vboxguest.service vboxguest-service
572
573 echo
574 echo "You need to compile the kernel modules manually."
575 echo "Run /usr/sbin/virtualbox-guest-config"
576 echo
577 }
578
579 postremove_virtualbox-guest-additions()
580 {
581 mstopunit vboxguest.service vboxguest-service
582 }