Magellan Linux

Contents of /branches/R11-stable/extras/virtualbox/virtualbox-4.1.20-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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