Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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