Magellan Linux

Contents of /branches/magellan-next/extras/virtualbox/virtualbox-4.1.6-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9433 - (show annotations) (download)
Wed Nov 30 10:58:29 2011 UTC (12 years, 9 months ago) by niro
File size: 15876 byte(s)
auto added: ver bump to 4.1.6-r1
1 # $Id$
2
3 PNAME="virtualbox"
4 PVER="4.1.6"
5 PBUILD="r1"
6
7 PCATEGORIE="app-emulation"
8
9 HOMEPAGE="http://www.virtualbox.de/"
10
11 SDEPEND=">= dev-libs/libidl-0.8.14
12 >= media-libs/alsa-lib-1.0.24
13 >= media-libs/libsdl-1.2.14
14 >= x11-libs/qt4-core-4.7
15 >= x11-libs/qt4-gui-4.7
16 >= x11-libs/qt4-opengl-4.7
17 >= sys-apps/dbus-1.4
18 >= x11-libs/libXcursor-1
19 >= x11-libs/libXcomposite-0.4
20 >= x11-libs/libXfixes-5
21 >= x11-libs/libXmu-1
22 >= x11-libs/libX11-1.4
23 >= x11-libs/libXt-1
24 >= x11-libs/libXext-1.3
25 >= x11-libs/libXau-1
26 >= x11-libs/libXdmcp-1
27 >= x11-libs/libSM-1.1
28 >= x11-libs/libICE-1
29 >= x11-libs/libdrm-2.4.26
30 >= x11-apps/xrandr-1.3
31 >= x11-apps/xrefresh-1
32 >= virtual/opengl
33 >= virtual/glut
34 >= dev-lang/python-2.7
35 >= net-misc/bridge-utils-1.5
36 >= sys-apps/usermode-utilities-2007
37 >= dev-lang/bin86-0.16
38 >= dev-lang/dev86-0.16
39 >= dev-util/iasl-2009
40 >= dev-libs/libxml2-2.7
41 >= dev-util/desktop-file-utils-0.15
42 >= sys-apps/sed-4
43 >= x11-proto/fontsproto-2
44 >= x11-proto/renderproto-0.11
45 >= x11-proto/xineramaproto-1.2
46 >= x11-proto/randrproto-1.3
47 >= x11-proto/xproto-7
48 >= x11-proto/xextproto-7
49 >= x11-proto/kbproto-1
50 >= x11-proto/inputproto-2
51 >= x11-proto/xf86driproto-2.1
52 >= app-cdr/cdrtools-2.01
53 >= app-arch/makeself-2.1.5
54 >= virtual/java-jdk
55 >= net-misc/curl-7.22
56 >= net-nds/openldap-2.4"
57
58 SRCFILE="VirtualBox-${PVER}.tar.bz2"
59 SRCDIR="${BUILDDIR}/VirtualBox-${PVER}_OSE"
60
61 # virtual box additions for guest clients
62 VBOX_ADDITIONS_ISO="VBoxGuestAdditions_${PVER}.iso"
63 VBOX_USER_MANUAL="UserManual.pdf"
64
65 # wrapper cvs revision
66 VW_CVS_REV=1.7
67 # config-tool cvs revision
68 VC_CVS_REV=1.16
69 # virtualbox-guest rc cvs revision
70 VG_CVS_REV=1.2
71
72 # driver modules for xorg-server version
73 XORG_VER="1.10"
74
75 # needed for postinstall
76 SPECIAL_VARS="VBOX_USER_MANUAL"
77
78 sminclude mtools xdg qt4
79
80 SPLIT_PACKAGES="virtualbox xf86-video-virtualbox xf86-input-virtualbox virtualbox-guest-additions"
81
82 SRC_URI=(
83 http://download.virtualbox.org/${PNAME}/${PVER}/${SRCFILE}
84 http://download.virtualbox.org/${PNAME}/${PVER}/${VBOX_ADDITIONS_ISO}
85 http://download.virtualbox.org/${PNAME}/${PVER}/${VBOX_USER_MANUAL}
86 mirror://${PNAME}/${PVER}/${SRCFILE}
87 mirror://${PNAME}/${PVER}/${VBOX_ADDITIONS_ISO}
88 mirror://${PNAME}/${PVER}/${VBOX_USER_MANUAL}
89 mirror://${PNAME}/${PNAME}-wrapper.sh-${VW_CVS_REV}
90 mirror://${PNAME}/${PNAME}-config.sh-${VC_CVS_REV}
91 mirror://${PNAME}/interfaces
92 mirror://${PNAME}/vboxvideo.sh
93 mirror://${PNAME}/vboxguest.sh
94 mirror://${PNAME}/vboxsf.sh
95 mirror://${PNAME}/xorg.conf.vbox
96 mirror://${PNAME}/vboxclient.desktop
97 mirror://${PNAME}/virtualbox-guest.rc-${VG_CVS_REV}
98 mirror://${PNAME}/${PNAME}-1.5.4-magellan.patch
99 mirror://${PNAME}/${PNAME}-4.0.10-magellan-branding.patch
100 mirror://${PNAME}/${PNAME}-4.0.0-magellan-os-icons.patch
101 mirror://${PNAME}/${PNAME}-4.0.10-additions-magellan.patch
102 mirror://${PNAME}/${PNAME}-4.0.0-vboxdrv-magellan.patch
103 mirror://${PNAME}/${PNAME}-4.0.10-routines-magellan.patch
104 )
105
106 UP2DATE="updatecmd http://www.virtualbox.de/wiki/Downloads | grep 'for Linux' | sed 's/.*ox\ \(.*\)\ for.*/\1/'"
107
108 split_info_virtualbox()
109 {
110 DESCRIPTION="VirtualBox is a general-purpose full virtualizer for x86 hardware."
111 DEPEND=">= dev-libs/libidl-0.8.14
112 >= media-libs/alsa-lib-1.0.24
113 >= media-libs/libsdl-1.2.14
114 >= x11-libs/qt4-core-4.7
115 >= x11-libs/qt4-gui-4.7
116 >= x11-libs/qt4-opengl-4.7
117 >= sys-apps/dbus-1.4
118 >= x11-libs/libXcursor-1
119 >= virtual/opengl
120 >= virtual/glut
121 >= dev-lang/python-2.7
122 >= net-misc/bridge-utils-1.4
123 >= sys-apps/usermode-utilities-2007"
124
125 preinstall()
126 {
127 # adds virtualbox group
128 ${MLIBDIR}/mgroupadd vboxusers
129 }
130
131 postinstall()
132 {
133 echo
134 echo "Please run virtualbox-config and add your users the 'vboxusers' group."
135 echo "For more information consult the user manual found at"
136 echo " http://virtualbox.de/download/${VBOX_USER_MANUAL}"
137 echo "or /usr/share/docs/${PNAME}-${PVER}/${VBOX_USER_MANUAL}"
138 echo
139 }
140 }
141
142 split_info_virtualbox-guest-additions()
143 {
144 DESCRIPTION="VirtualBox kernel modules and user-space tools for Linux guests."
145 DEPEND="== x11-drivers/xf86-video-virtualbox-${PVER}
146 == x11-drivers/xf86-input-virtualbox-${PVER}
147 >= x11-libs/libXmu-1
148 >= x11-libs/libX11-1.4
149 >= x11-libs/libXt-1
150 >= x11-libs/libXext-1.1
151 >= x11-libs/libXau-1
152 >= x11-libs/libXdmcp-1
153 >= x11-libs/libSM-1.1
154 >= x11-libs/libICE-1
155 >= x11-apps/xrandr-1.3
156 >= x11-apps/xrefresh-1
157 >= fake/devsystem26
158 >= virtual/kernel-sources"
159
160 preinstall()
161 {
162 # adds vboxguest user/group
163 ${MLIBDIR}/mgroupadd vboxguest
164 ${MLIBDIR}/museradd -o "-g vboxguest -d /var/run/vboxguest -s /bin/sh" vboxguest
165
166 mstartservice virtualbox vboxguest-service
167 }
168
169 postinstall()
170 {
171 mstopservice virtualbox vboxguest-service
172 }
173 }
174
175 split_info_xf86-video-virtualbox()
176 {
177 DESCRIPTION="VirtualBox X11 video driver."
178 PCATEGORIE="x11-drivers"
179 DEPEND=">= x11-base/xorg-server-1.10
180 >= x11-libs/libXdmcp-1
181 >= x11-libs/libXcomposite-0.4
182 >= x11-libs/libXau-1
183 >= x11-libs/libX11-1.4
184 >= x11-libs/libXfixes-5
185 >= x11-libs/libXext-1.1
186 >= x11-libs/libdrm-2.4.26"
187
188 unset preinstall
189 unset postinstall
190 }
191
192 split_info_xf86-input-virtualbox()
193 {
194 DESCRIPTION="VirtualBox X11 mouse driver."
195 PCATEGORIE="x11-drivers"
196 DEPEND=">= x11-base/xorg-server-1.10"
197
198 unset preinstall
199 unset postinstall
200 }
201
202 src_prepare()
203 {
204 munpack ${SRCFILE} || die
205 cd ${SRCDIR}
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}-4.0.10-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 # tell vbox where to find java
238 maddconfig -b "VBOX_JAVA_HOME = ${JAVA_HOME}"
239 # paths, origin, hardening
240 maddconfig -b 'VBOX_WITH_HARDENING := 1'
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 # use our fake qt dir and disable pulseaudio support
254 ./configure --with-qt-dir="${SRCDIR}/qt" --disable-pulse --disable-docs || die
255 source ./env.sh || die
256 kmk ${MAKEOPTS} || die
257 }
258
259 src_install_virtualbox()
260 {
261 # virtualbox installs binaries in x86 or amd64 out dir
262 local myarch
263 case ${ARCH} in
264 i*86) myarch=x86;;
265 x86_64) myarch=amd64;;
266 esac
267
268 cd ${SRCDIR}/out/linux.${myarch}/release/bin
269
270 # needed directories
271 minstalldir /lib/udev/rules.d || die
272 minstalldir /etc/vbox || die
273 minstalldir /usr/$(mlibdir)/${PNAME} || die
274 minstalldir /usr/bin || die
275 minstalldir /usr/sbin || die
276
277 # prune unneeded stuff
278 rm -v tst* || die
279 rm -rv testcase || die
280 rm -rv sdk || die
281
282 # move binaries to dest
283 cp -av * ${BINDIR}/usr/$(mlibdir)/${PNAME} || die
284
285 # fix permissions
286 chmod -v 0755 ${BINDIR}/usr/$(mlibdir)/${PNAME}/{,additions/}*.so || die
287
288 # remove additions
289 rm -rv ${BINDIR}/usr/$(mlibdir)/${PNAME}/additions/* || die
290
291 # fix permissions
292 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VirtualBox || die
293 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxBFE || die
294 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxSDL || die
295 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxHeadless || die
296 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxManage || die
297 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxSVC || die
298 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxXPCOMIPCD || die
299 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxTunctl || die
300 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
301 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxNetDHCP || die
302 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
303 mchown root:vboxusers /usr/$(mlibdir)/${PNAME}/VBoxTestOGL || die
304
305 # virtualbox needs now suid-bits to run
306 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VirtualBox || die
307 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxBFE || die
308 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxSDL || die
309 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxHeadless || die
310 mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
311
312 # supply a additions.iso for client guest
313 minstallfile -s ${VBOX_ADDITIONS_ISO} /usr/$(mlibdir)/${PNAME}/additions/${VBOX_ADDITIONS_ISO/_${PVER}/} || die
314
315 # install a wrapper for some apps
316 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/virtualbox || die
317 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxmanage || die
318 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxsdl || die
319 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxbfe || die
320 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxvrdp || die
321 minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxheadless || die
322
323 # virtualbox-config
324 minstallexec -s ${PNAME}-config.sh-${VC_CVS_REV} /usr/sbin/${PNAME}-config || die
325
326 # versionfile needed by virtualbox-config
327 echo "${PVER}" > ${BINDIR}/usr/$(mlibdir)/${PNAME}/version || die
328
329 # configfile needed by serveral tools
330 echo "INSTALL_DIR=/usr/$(mlibdir)/virtualbox" > ${BINDIR}/etc/vbox/vbox.cfg || die
331
332 # other needed applinks
333 mlink /usr/$(mlibdir)/${PNAME}/VBoxTunctl /usr/bin/vboxtunctl || die
334
335 # fix libdir
336 local i
337 for i in virtualbox vboxmanage vboxsdl vboxbfe vboxvrdp vboxheadless
338 do
339 sed -i "s:^\(LIBDIR=\).*:\1/usr/$(mlibdir):" ${BINDIR}/usr/bin/${i} || die
340 done
341 sed -i "s:^\(LIBDIR=\).*:\1/usr/$(mlibdir):" ${BINDIR}/usr/sbin/${PNAME}-config || die
342
343 # install a udev rule
344 local MCONFIG="/lib/udev/rules.d/60-virtualbox.rules"
345 mclearconfig
346 maddconfig 'KERNEL=="vboxdrv", GROUP="vboxusers" MODE=660'
347 # solves some problems with usb support on guest systems
348 maddconfig 'SUBSYSTEM=="usb_device", ACTION!="remove", RUN="/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"'
349 maddconfig 'SUBSYSTEM=="usb", ACTION!="remove", ENV{DEVTYPE}=="usb_device", RUN="/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"'
350 maddconfig 'SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/lib/udev/VBoxCreateUSBNode.sh --remove $major $minor"'
351 maddconfig 'SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/lib/udev/VBoxCreateUSBNode.sh --remove $major $minor"'
352
353 # symlink helperscript to udev
354 minstalldir /lib/udev || die
355 mlink /usr/$(mlibdir)/virtualbox/VBoxCreateUSBNode.sh /lib/udev/ || die
356
357 # install a nice destop entry
358 minstallpixmap ${SRCDIR}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_64px.png ${PNAME}.png || die
359 minstall_desktop_icon \
360 --name VirtualBox \
361 --file ${PNAME} \
362 --comment "Run and manage virtual machines" \
363 --exec ${PNAME} \
364 --icon ${PNAME}.png \
365 --vendor innotek \
366 --categories System,Emulator \
367 || die
368
369 # docs
370 cd ${SRCDIR}
371 minstalldocs ChangeLog COPYING || die
372
373 # install usermanual
374 minstallfile -s ${VBOX_USER_MANUAL} /usr/share/doc/${PNAME}-${PVER} || die
375 }
376
377 src_install_virtualbox-guest-additions()
378 {
379 # virtualbox installs binaries in x86 or amd64 out dir
380 local myarch
381 case ${ARCH} in
382 i*86) myarch=x86;;
383 x86_64) myarch=amd64;;
384 esac
385
386 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
387
388 # needed directories
389 minstalldir /lib/udev/rules.d || die
390 minstalldir /etc/xdg/autostart || die
391 minstalldir /usr/bin || die
392 minstalldir /usr/$(mlibdir)/virtualbox/additions || die
393 minstalldir /usr/sbin || die
394 minstalldir /usr/share/doc/${PNAME}-${PVER}
395 minstalldir /usr/src/vboxguest || die
396 minstalldir /usr/src/vboxsf || die
397 minstalldir /sbin || die
398
399 minstallexec mount.vboxsf /sbin || die
400 mchmod 4755 /sbin/mount.vboxsf
401
402 minstallexec VBoxService /usr/sbin/vboxguest-service || die
403 mchmod 4755 /usr/sbin/vboxguest-service || die
404
405 minstallexec VBoxControl /usr/bin || die
406 minstallexec VBoxClient /usr/bin || die
407 minstallexec ${SRCDIR}/src/VBox/Additions/x11/Installer/98vboxadd-xclient /usr/bin/VBoxClient-all || die
408
409 # udev rule for vboxdrv
410 local MCONFIG="/lib/udev/rules.d/60-virtualbox-guest-addition.rules"
411 mclearconfig
412 maddconfig 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"'
413 maddconfig 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"'
414
415 # VBoxClient autostart file
416 minstallfile -s vboxclient.desktop /etc/xdg/autostart || die
417
418 # sample xorg.conf
419 minstallfile -s xorg.conf.vbox /usr/share/doc/${PNAME}-${PVER} || die
420
421 # install initscript
422 minstallrc virtualbox-guest.rc-${VG_CVS_REV} virtualbox || die
423
424 # install vboxguest kernel sources
425 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions/src/
426 tar cvjf ${BINDIR}/usr/src/vboxguest/vboxguest-${PVER}.tar.bz2 vboxguest/ || die
427 minstallexec -s vboxguest.sh /usr/src/vboxguest/vboxguest.sh || die
428 # fix pver in vboxguest.sh
429 sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/vboxguest/vboxguest.sh || die
430
431 # install vboxsf kernel sources
432 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions/src/
433 tar cvjf ${BINDIR}/usr/src/vboxsf/vboxsf-${PVER}.tar.bz2 vboxsf/ || die
434 minstallexec -s vboxsf.sh /usr/src/vboxsf/vboxsf.sh || die
435 # fix pver in vboxsf.sh
436 sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/vboxsf/vboxsf.sh || die
437 }
438
439 src_install_xf86-video-virtualbox()
440 {
441 # virtualbox installs binaries in x86 or amd64 out dir
442 local myarch
443 case ${ARCH} in
444 i*86) myarch=x86;;
445 x86_64) myarch=amd64;;
446 esac
447
448 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
449
450 # needed directories
451 minstalldir /usr/$(mlibdir)/dri || die
452 minstalldir /usr/$(mlibdir)/xorg/modules/drivers || die
453 minstalldir /usr/src/vboxvideo || die
454
455 # install xorg server module
456 minstallfile vboxvideo_drv_${XORG_VER//.}.so /usr/$(mlibdir)/xorg/modules/drivers/vboxvideo_drv.so || die
457
458 # install guest opengl driver
459 minstallfile VBoxOGL\* /usr/$(mlibdir) || die
460
461 # install guest dri driver
462 mlink /usr/$(mlibdir)/VBoxOGL.so /usr/$(mlibdir)/dri/vboxvideo_dri.so
463
464 # install drm-sources
465 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions/src/
466 tar cvjf ${BINDIR}/usr/src/vboxvideo/vboxvideo-${PVER}.tar.bz2 vboxvideo/ || die
467 minstallexec -s vboxvideo.sh /usr/src/vboxvideo/vboxvideo.sh || die
468 # fix pver in vboxvideo.sh
469 sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/vboxvideo/vboxvideo.sh || die
470 }
471
472 src_install_xf86-input-virtualbox()
473 {
474 # virtualbox installs binaries in x86 or amd64 out dir
475 local myarch
476 case ${ARCH} in
477 i*86) myarch=x86;;
478 x86_64) myarch=amd64;;
479 esac
480
481 cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
482
483 # needed directories
484 minstalldir /usr/$(mlibdir)/xorg/modules/input || die
485
486 # install xorg server module
487 minstallfile vboxmouse_drv_${XORG_VER//.}.so /usr/$(mlibdir)/xorg/modules/input/vboxmouse_drv.so || die
488
489 # install xorg conf
490 minstalldir /etc/X11/xorg.conf.d || die
491 minstallfile ${SRCDIR}/src/VBox/Additions/x11/Installer/50-vboxmouse.conf /etc/X11/xorg.conf.d || die
492
493 # install udev rules
494 minstalludevrule ${SRCDIR}/src/VBox/Additions/linux/installer/70-xorg-vboxmouse.rules || die
495 }