Magellan Linux

Annotation of /branches/magellan-next/extras/virtualbox/virtualbox-4.0.10-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8084 - (hide annotations) (download)
Thu Jun 30 17:56:34 2011 UTC (12 years, 11 months ago) by niro
File size: 15508 byte(s)
auto added: ver bump to 4.0.10-r2
1 niro 8084 # $Id$
2    
3     PNAME="virtualbox"
4     PVER="4.0.10"
5     PBUILD="r2"
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.6
15     >= x11-libs/qt4-gui-4.6
16     >= x11-libs/qt4-opengl-4.6
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.25
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    
56     SRCFILE="VirtualBox-${PVER}.tar.bz2"
57     SRCDIR="${BUILDDIR}/VirtualBox-${PVER}_OSE"
58    
59     # virtual box additions for guest clients
60     VBOX_ADDITIONS_ISO="VBoxGuestAdditions_${PVER}.iso"
61     VBOX_USER_MANUAL="UserManual.pdf"
62    
63     # wrapper cvs revision
64     VW_CVS_REV=1.7
65     # config-tool cvs revision
66     VC_CVS_REV=1.14
67     # virtualbox-guest rc cvs revision
68     VG_CVS_REV=1.2
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-${VG_CVS_REV}
93     mirror://${PNAME}/${PNAME}-1.5.4-magellan.patch
94     mirror://${PNAME}/${PNAME}-4.0.0-magellan-branding.patch
95     mirror://${PNAME}/${PNAME}-4.0.0-magellan-os-icons.patch
96     mirror://${PNAME}/${PNAME}-3.1.4-additions-magellan.patch
97     mirror://${PNAME}/${PNAME}-4.0.0-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     >= 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.4
112     >= x11-libs/libXcursor-1
113     >= virtual/opengl
114     >= virtual/glut
115     >= dev-lang/python-2.6
116     >= net-misc/bridge-utils-1.4
117     >= sys-apps/usermode-utilities-2007"
118    
119     preinstall()
120     {
121     # adds virtualbox group
122     ${MLIBDIR}/mgroupadd virtualbox
123     }
124    
125     postinstall()
126     {
127     echo
128     echo "Please run virtualbox-config and add your users the 'virtualbox' group."
129     echo "For more information consult the user manual found at"
130     echo " http://virtualbox.de/download/${VBOX_USER_MANUAL}"
131     echo "or /usr/share/docs/${PNAME}-${PVER}/${VBOX_USER_MANUAL}"
132     echo
133     }
134     }
135    
136     split_info_virtualbox-guest-additions()
137     {
138     DESCRIPTION="VirtualBox kernel modules and user-space tools for Linux guests."
139     DEPEND="== x11-drivers/xf86-video-virtualbox-${PVER}
140     == x11-drivers/xf86-input-virtualbox-${PVER}
141     >= x11-libs/libXmu-1
142     >= x11-libs/libX11-1.3
143     >= x11-libs/libXt-1
144     >= x11-libs/libXext-1.1
145     >= x11-libs/libXau-1
146     >= x11-libs/libXdmcp-1
147     >= x11-libs/libSM-1.1
148     >= x11-libs/libICE-1
149     >= x11-apps/xrandr-1.3
150     >= x11-apps/xrefresh-1
151     >= fake/devsystem26
152     >= virtual/kernel-sources"
153    
154     preinstall()
155     {
156     # adds vboxguest user/group
157     ${MLIBDIR}/mgroupadd vboxguest
158     ${MLIBDIR}/museradd -o "-g vboxguest -d /var/run/vboxguest -s /bin/sh" vboxguest
159    
160     mstartservice virtualbox vboxguest-service
161     }
162    
163     postinstall()
164     {
165     mstopservice virtualbox vboxguest-service
166     }
167     }
168    
169     split_info_xf86-video-virtualbox()
170     {
171     DESCRIPTION="VirtualBox X11 video driver."
172     PCATEGORIE="x11-drivers"
173     DEPEND=">= x11-base/xorg-server-1.8
174     >= x11-libs/libXdmcp-1
175     >= x11-libs/libXcomposite-0.4
176     >= x11-libs/libXau-1
177     >= x11-libs/libX11-1.3
178     >= x11-libs/libXfixes-4
179     >= x11-libs/libXext-1.1
180     >= x11-libs/libdrm-2.4.20"
181    
182     unset preinstall
183     unset postinstall
184     }
185    
186     split_info_xf86-input-virtualbox()
187     {
188     DESCRIPTION="VirtualBox X11 mouse driver."
189     PCATEGORIE="x11-drivers"
190     DEPEND=">= x11-base/xorg-server-1.8"
191    
192     unset preinstall
193     unset postinstall
194     }
195    
196     src_prepare()
197     {
198     munpack ${SRCFILE} || die
199     cd ${SRCDIR}
200    
201     # add magellan support to VBoxSysInfo.sh
202     mpatch ${PNAME}-1.5.4-magellan.patch || die
203    
204     # magellan-branding, enables "magellan" guest-definitions
205     mpatch ${PNAME}-4.0.0-magellan-branding.patch || die
206    
207     # magellan-branding, adds magellan icons used in branding patch
208     mpatch ${PNAME}-4.0.0-magellan-os-icons.patch || die
209    
210     # add magellan support to additions installers
211     mpatch ${PNAME}-3.1.4-additions-magellan.patch || die
212    
213     # add magellan support to vboxdrv and webservice installer
214     mpatch ${PNAME}-4.0.0-vboxdrv-magellan.patch || die
215    
216     # fixes compile issues with qt on magellan
217     # create a fake qtdir to fix /usr/include/qt issue without patching
218     install -d ${SRCDIR}/qt || die
219     ln -snf ${QTDIR}/bin ${SRCDIR}/qt || die
220     ln -snf ${QTDIR}/$(mlibdir) ${SRCDIR}/qt/lib || die
221     ln -snf ${QTDIR}/include/qt ${SRCDIR}/qt/include || die
222    
223     # do not build testcases to save compile time
224     echo 'VBOX_WITH_TESTCASES :=' > ${SRCDIR}/LocalConfig.kmk || die
225     echo 'VBOX_WITH_TESTSUITE :=' >> ${SRCDIR}/LocalConfig.kmk || die
226     # tell vbox where to find java
227     echo "VBOX_JAVA_HOME = ${JAVA_HOME}" >> ${SRCDIR}/LocalConfig.kmk || die
228     # paths, origin, hardening
229     echo 'VBOX_WITH_HARDENING := 1' >> ${SRCDIR}/LocalConfig.kmk || die
230     echo 'VBOX_WITH_ORIGIN :=' >> ${SRCDIR}/LocalConfig.kmk || die
231     echo "VBOX_PATH_APP_PRIVATE_ARCH := /usr/$(mlibdir)/virtualbox" >> ${SRCDIR}/LocalConfig.kmk || die
232     echo 'VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)' >> ${SRCDIR}/LocalConfig.kmk || die
233     echo 'VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)' >> ${SRCDIR}/LocalConfig.kmk || die
234     echo 'VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox' >> ${SRCDIR}/LocalConfig.kmk || die
235     echo 'VBOX_PATH_APP_DOCS = $(VBOX_PATH_PACKAGE_DOCS)' >> ${SRCDIR}/LocalConfig.kmk || die
236     }
237    
238     src_compile()
239     {
240     cd ${SRCDIR}
241    
242     # use our fake qt dir and disable pulseaudio support
243     ./configure --with-qt-dir="${SRCDIR}/qt" --disable-pulse --disable-docs || die
244     source ./env.sh || die
245     kmk ${MAKEOPTS} || die
246     }
247    
248     src_install_virtualbox()
249     {
250     # virtualbox installs binaries in x86 or amd64 out dir
251     local myarch
252     case ${ARCH} in
253     i*86) myarch=x86;;
254     x86_64) myarch=amd64;;
255     esac
256    
257     cd ${SRCDIR}/out/linux.${myarch}/release/bin
258    
259     # needed directories
260     minstalldir /etc/udev/rules.d || die
261     minstalldir /etc/vbox || die
262     minstalldir /usr/$(mlibdir)/${PNAME} || die
263     minstalldir /usr/bin || die
264     minstalldir /usr/sbin || die
265    
266     # prune unneeded stuff
267     rm -v tst* || die
268     rm -rv testcase || die
269     rm -rv sdk || die
270    
271     # move binaries to dest
272     cp -av * ${BINDIR}/usr/$(mlibdir)/${PNAME} || die
273    
274     # fix permissions
275     chmod -v 0755 ${BINDIR}/usr/$(mlibdir)/${PNAME}/{,additions/}*.so || die
276    
277     # remove additions
278     rm -rv ${BINDIR}/usr/$(mlibdir)/${PNAME}/additions/* || die
279    
280     # fix permissions
281     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VirtualBox || die
282     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxBFE || die
283     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxSDL || die
284     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxHeadless || die
285     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxManage || die
286     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxSVC || die
287     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxXPCOMIPCD || die
288     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxTunctl || die
289     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
290     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxNetDHCP || die
291     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
292     mchown root:virtualbox /usr/$(mlibdir)/${PNAME}/VBoxTestOGL || die
293    
294     # virtualbox needs now suid-bits to run
295     mchmod 4750 /usr/$(mlibdir)/${PNAME}/VirtualBox || die
296     mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxBFE || die
297     mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxSDL || die
298     mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxHeadless || die
299     mchmod 4750 /usr/$(mlibdir)/${PNAME}/VBoxNetAdpCtl || die
300    
301     # supply a additions.iso for client guest
302     minstallfile -s ${VBOX_ADDITIONS_ISO} /usr/$(mlibdir)/${PNAME}/additions/${VBOX_ADDITIONS_ISO/_${PVER}/} || die
303    
304     # install a wrapper for some apps
305     minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/virtualbox || die
306     minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxmanage || die
307     minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxsdl || die
308     minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxbfe || die
309     minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxvrdp || die
310     minstallexec -s ${PNAME}-wrapper.sh-${VW_CVS_REV} /usr/bin/vboxheadless || die
311    
312     # virtualbox-config
313     minstallexec -s ${PNAME}-config.sh-${VC_CVS_REV} /usr/sbin/${PNAME}-config || die
314    
315     # versionfile needed by virtualbox-config
316     echo "${PVER}" > ${BINDIR}/usr/$(mlibdir)/${PNAME}/version || die
317    
318     # other needed applinks
319     mlink /usr/$(mlibdir)/${PNAME}/VBoxTunctl /usr/bin/vboxtunctl || die
320    
321     # fix libdir
322     local i
323     for i in virtualbox vboxmanage vboxsdl vboxbfe vboxvrdp vboxheadless
324     do
325     sed -i "s:^\(LIBDIR=\).*:\1/usr/$(mlibdir):" ${BINDIR}/usr/bin/${i} || die
326     done
327     sed -i "s:^\(LIBDIR=\).*:\1/usr/$(mlibdir):" ${BINDIR}/usr/sbin/${PNAME}-config || die
328    
329     # install a udev rule
330     echo 'KERNEL=="vboxdrv", GROUP="virtualbox" MODE=660' > ${BINDIR}/etc/udev/rules.d/60-virtualbox.rules || die
331     # solves some problems with usb support on guest systems
332     echo 'SUBSYSTEM=="usb_device", ACTION!="remove", RUN="/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"' > ${BINDIR}/etc/udev/rules.d/60-virtualbox.rules || die
333     echo 'SUBSYSTEM=="usb", ACTION!="remove", ENV{DEVTYPE}=="usb_device", RUN="/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"' > ${BINDIR}/etc/udev/rules.d/60-virtualbox.rules || die
334     echo 'SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/lib/udev/VBoxCreateUSBNode.sh --remove $major $minor"' > ${BINDIR}/etc/udev/rules.d/60-virtualbox.rules || die
335     echo 'SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/lib/udev/VBoxCreateUSBNode.sh --remove $major $minor"' > ${BINDIR}/etc/udev/rules.d/60-virtualbox.rules || die
336    
337     # install a nice destop entry
338     minstallpixmap ${SRCDIR}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_64px.png ${PNAME}.png || die
339     minstall_desktop_icon \
340     --name VirtualBox \
341     --file ${PNAME} \
342     --comment "Run and manage virtual machines" \
343     --exec ${PNAME} \
344     --icon ${PNAME}.png \
345     --vendor innotek \
346     --categories System,Emulator \
347     || die
348    
349     # docs
350     cd ${SRCDIR}
351     minstalldocs ChangeLog COPYING || die
352    
353     # install usermanual
354     minstallfile -s ${VBOX_USER_MANUAL} /usr/share/doc/${PNAME}-${PVER} || die
355     }
356    
357     src_install_virtualbox-guest-additions()
358     {
359     # virtualbox installs binaries in x86 or amd64 out dir
360     local myarch
361     case ${ARCH} in
362     i*86) myarch=x86;;
363     x86_64) myarch=amd64;;
364     esac
365    
366     cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
367    
368     # needed directories
369     minstalldir /etc/udev/rules.d || die
370     minstalldir /etc/xdg/autostart || die
371     minstalldir /usr/bin || die
372     minstalldir /usr/$(mlibdir)/virtualbox/additions || die
373     minstalldir /usr/sbin || die
374     minstalldir /usr/share/doc/${PNAME}-${PVER}
375     minstalldir /usr/src/vboxguest || die
376     minstalldir /usr/src/vboxsf || die
377     minstalldir /sbin || die
378    
379     minstallexec mount.vboxsf /sbin || die
380     mchmod 4755 /sbin/mount.vboxsf
381    
382     minstallexec VBoxService /usr/sbin/vboxguest-service || die
383     mchmod 4755 /usr/sbin/vboxguest-service || die
384    
385     minstallexec VBoxControl /usr/bin || die
386     minstallexec VBoxClient /usr/bin || die
387     minstallexec ${SRCDIR}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
388     /usr/bin/VBoxClient-all || die
389    
390     # udev rule for vboxdrv
391     echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' > ${BINDIR}/etc/udev/rules.d/60-virtualbox-guest-addition.rules || die
392     echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' >> ${BINDIR}/etc/udev/rules.d/60-virtualbox-guest-addition.rules || die
393    
394     # VBoxClient autostart file
395     minstallfile -s vboxclient.desktop /etc/xdg/autostart || die
396    
397     # sample xorg.conf
398     minstallfile -s xorg.conf.vbox /usr/share/doc/${PNAME}-${PVER} || die
399    
400     # install initscript
401     minstallrc virtualbox-guest.rc-${VG_CVS_REV} virtualbox || die
402    
403     # install vboxguest kernel sources
404     cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions/src/
405     tar cvjf ${BINDIR}/usr/src/vboxguest/vboxguest-${PVER}.tar.bz2 vboxguest/ || die
406     minstallexec -s vboxguest.sh /usr/src/vboxguest/vboxguest.sh || die
407     # fix pver in vboxguest.sh
408     sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/vboxguest/vboxguest.sh || die
409    
410     # install vboxsf kernel sources
411     cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions/src/
412     tar cvjf ${BINDIR}/usr/src/vboxsf/vboxsf-${PVER}.tar.bz2 vboxsf/ || die
413     minstallexec -s vboxsf.sh /usr/src/vboxsf/vboxsf.sh || die
414     # fix pver in vboxsf.sh
415     sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/vboxsf/vboxsf.sh || die
416     }
417    
418     src_install_xf86-video-virtualbox()
419     {
420     # virtualbox installs binaries in x86 or amd64 out dir
421     local myarch
422     case ${ARCH} in
423     i*86) myarch=x86;;
424     x86_64) myarch=amd64;;
425     esac
426    
427     cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
428    
429     # needed directories
430     minstalldir /usr/$(mlibdir)/dri || die
431     minstalldir /usr/$(mlibdir)/xorg/modules/drivers || die
432     minstalldir /usr/src/vboxvideo || die
433    
434     # install xorg-1.8 server module
435     minstallfile vboxvideo_drv_18.so /usr/$(mlibdir)/xorg/modules/drivers/vboxvideo_drv.so || die
436    
437     # install guest opengl driver
438     minstallfile VBoxOGL\* /usr/$(mlibdir) || die
439    
440     # install guest dri driver
441     mlink /usr/$(mlibdir)/VBoxOGL.so /usr/$(mlibdir)/dri/vboxvideo_dri.so
442    
443     # install drm-sources
444     cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions/src/
445     tar cvjf ${BINDIR}/usr/src/vboxvideo/vboxvideo-${PVER}.tar.bz2 vboxvideo/ || die
446     minstallexec -s vboxvideo.sh /usr/src/vboxvideo/vboxvideo.sh || die
447     # fix pver in vboxvideo.sh
448     sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/vboxvideo/vboxvideo.sh || die
449     }
450    
451     src_install_xf86-input-virtualbox()
452     {
453     # virtualbox installs binaries in x86 or amd64 out dir
454     local myarch
455     case ${ARCH} in
456     i*86) myarch=x86;;
457     x86_64) myarch=amd64;;
458     esac
459    
460     cd ${SRCDIR}/out/linux.${myarch}/release/bin/additions
461    
462     # needed directories
463     minstalldir /usr/$(mlibdir)/xorg/modules/input || die
464    
465     # install xorg-1.8 server module
466     minstallfile vboxmouse_drv_18.so /usr/$(mlibdir)/xorg/modules/input/vboxmouse_drv.so || die
467    
468     # no hal support in xorg-1.8!
469     }
470