Magellan Linux

Contents of /trunk/extras/virtualbox/virtualbox-3.2.8-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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