wok view virtualbox-ose/receipt @ rev 14004

virtualbox-ose: add host usb devices support
author ernia <monghitri@aruba.it>
date Sat Feb 16 21:05:29 2013 +0000 (2013-02-16)
parents bba49f1004c4
children bc7e7bf309a8
line source
1 # SliTaz package receipt.
3 PACKAGE="virtualbox-ose"
4 VERSION="4.2.6"
5 CATEGORY="misc"
6 SHORT_DESC="Powerful x86 virtualization for enterprise as well as home use (Open Source Edition)"
7 MAINTAINER="slaxemulator@gmail.com"
8 SOURCE="VirtualBox"
9 TARBALL="$SOURCE-$VERSION.tar.bz2"
10 WEB_SITE="http://virtualbox.org/"
11 WGET_URL="http://download.virtualbox.org/virtualbox/$VERSION/$TARBALL"
12 PROVIDE="virtualbox"
14 DEPENDS="libxml2 xorg-libXcursor libIDL xorg-libXinerama libsdl \
15 xorg-libXmu curl libvncserver libpng jpeg mesa libglu-mesa qt4 vde2"
16 BUILD_DEPENDS="bin86 dev86 iasl libIDL libsdl-dev mesa-dev libxslt-dev \
17 libglu-mesa-dev Qt4-dev libsdl-ttf-dev alsa-lib-dev hal-dev xorg-libXtst-dev \
18 xorg-libXrandr-dev python python-dev xalan-c curl-dev xalan-c-dev \
19 xerces-c-dev openssl-dev zlib-dev libcap-dev glib-dev libvncserver-dev \
20 pam pam-dev bzip2 linux-module-headers pkg-config tar wget vde2-dev \
21 libpng-dev gsoap-dev libdevmapper-dev makeself"
23 # Rules to configure and make the package.
24 compile_rules()
25 {
26 cd $src
27 #patch -Np1 -i "$stuff/virtualbox-4-makeself-check.patch"
28 #patch -Np1 -i "$stuff/virtualbox-4-mkisofs-check.patch"
29 cp $stuff/LocalConfig.kmk .
30 ./configure \
31 --disable-pulse \
32 --disable-java \
33 --disable-docs \
34 --enable-webservice \
35 --enable-vde \
36 --with-linux=/usr/src/linux
37 source ./env.sh
38 kmk all
40 # build modules. NOTE: we gor ERROR even if it build and cook will exit
41 # sed ERROR to error.
42 #cd
43 KERN_DIR=/usr/src/linux make -C "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
44 # build guest additions modules
45 KERN_DIR=/usr/src/linux make -C "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
46 KERN_DIR=/usr/src/linux make -C \
47 "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src/vboxvideo" \
48 2>&1 | sed s'/ERROR/error/'
49 }
51 # Rules to gen a SliTaz package suitable for Tazpkg.
52 genpkg_rules()
53 {
54 fs=$WOK/$PACKAGE/taz/$PACKAGE-$VERSION/fs
56 source $src/env.sh
57 cd $src/out/linux.$BUILD_PLATFORM_ARCH/release/bin
58 mkdir -p $fs/usr/bin $fs/usr/lib/virtualbox/components \
59 $fs/usr/share/virtualbox/nls \
60 $fs/usr/lib/virtualbox/ExtensionPacks
61 install -m 0755 VBox.sh $fs/usr/bin/VBox
62 sed -i 's/ps -U/ps | grep/' $fs/usr/bin/VBox
63 ln -sf VBox $fs/usr/bin/VBoxHeadless
64 ln -sf VBox $fs/usr/bin/vboxheadless
65 ln -sf VBox $fs/usr/bin/VBoxManage
66 ln -sf VBox $fs/usr/bin/vboxmanage
67 ln -sf VBox $fs/usr/bin/VBoxSDL
68 ln -sf VBox $fs/usr/bin/vboxsdl
69 ln -sf VBox $fs/usr/bin/VirtualBox
70 ln -sf VBox $fs/usr/bin/virtualbox
71 ln -sf VBox $fs/usr/bin/vboxwebsrv
73 install -m 0755 VBoxTunctl "$fs/usr/bin"
75 # components
76 install -D -m 0755 components/* $fs/usr/lib/virtualbox/components
78 # lib
79 install -m 0755 *.so "$fs/usr/lib/virtualbox"
80 install -m 0644 *.gc *.r0 VBoxEFI*.fd "$fs/usr/lib/virtualbox"
82 #setuid root binaries
83 install -m 4755 VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl "$fs/usr/lib/virtualbox"
85 #other binaries
86 #install -m 0755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL vboxwebsrv webtest "$fs/usr/lib/virtualbox"
87 install -m 0755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL "$fs/usr/lib/virtualbox"
89 #language
90 install -m 0755 nls/*.qm "$fs/usr/share/virtualbox/nls"
92 #useless scripts
93 install -m 0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh "$fs/usr/share/virtualbox"
95 #icon
96 install -D -m 0644 VBox.png "$fs/usr/share/pixmaps/virtualbox.png"
98 #desktop
99 install -D -m 0644 virtualbox.desktop "$fs/usr/share/applications/virtualbox.desktop"
100 sed -i "s|VBox.png|virtualbox|" \
101 $fs/usr/share/applications/virtualbox.desktop
102 install -D -m 0644 virtualbox.xml "$fs/usr/share/mime/packages/virtualbox.xml"
104 #install configuration
105 mkdir -p "$fs/etc/vbox"
106 echo 'lsmod | grep -q vboxdrv || modprobe vboxdrv' > "$fs/etc/vbox/vbox.cfg"
107 echo 'INSTALL_DIR=/usr/lib/virtualbox' >> "$fs/etc/vbox/vbox.cfg"
109 #udev
110 #install -D -m 0644 "$stuff/60-virtualbox.rules" \
111 #"$fs/etc/udev/rules.d/60-virtualbox.rules"
112 install -D -m 0644 "$stuff/10-vboxdrv.rules" \
113 "$fs/etc/udev/rules.d/10-vboxdrv.rules"
115 mkdir -p $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/
116 cd sdk/installer
117 VBOX_INSTALL_PATH="/usr/lib/virtualbox" python vboxapisetup.py install --root "$fs"
118 cd $src/out/linux.$BUILD_PLATFORM_ARCH/release/bin
119 cd sdk/bindings/xpcom/python
120 cp -r xpcom $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/
121 chmod 644 $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/*.py
122 chmod 644 $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/server/*.py
123 chmod 644 $fs/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/*.py
124 cd $src/out/linux.$BUILD_PLATFORM_ARCH/release/bin
128 KERNEL_VERSION=$(grep ^VERSION= $WOK/linux/receipt | cut -d "=" -f2 | sed -e 's/"//g')
129 #cooking installs modules in linux major version dir
130 KBASEVER="${KERNEL_VERSION:0:3}"
133 cd "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
134 install -D -m644 vboxdrv.ko "$fs/lib/modules/$KBASEVER-slitaz/misc/vboxdrv.ko"
135 install -D -m644 vboxnetflt.ko "$fs/lib/modules/$KBASEVER-slitaz/misc/vboxnetflt.ko"
136 install -D -m644 vboxnetadp.ko "$fs/lib/modules/$KBASEVER-slitaz/misc/vboxnetadp.ko"
137 #install -D -m644 vboxpci.ko "$fs/lib/modules/$KBASEVER-slitaz/misc/vboxpci.ko"
139 # virtualbox-ose-additions
141 cd "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
142 mkdir -p $fs/usr/bin
143 mkdir -p $fs/sbin
144 mkdir -p $fs/etc/X11/xorg.conf.d
146 install -m755 VBoxClient VBoxControl VBoxService "$fs/usr/bin"
147 install -m755 mount.vboxsf "$fs/sbin"
149 [ -f $src/src/VBox/Additions/x11/Installer/50-vboxmouse.conf ] &&
150 install -m644 $src/src/VBox/Additions/x11/Installer/50-vboxmouse.conf \
151 $fs/etc/X11/xorg.conf.d/50-vboxmouse.conf
153 install -m755 -D $src/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
154 $fs/usr/bin/VBoxClient-all
155 install -m755 -D $src/src/VBox/Additions/x11/Installer/vboxclient.desktop \
156 $fs/etc/xdg/autostart/vboxclient.desktop
158 #install -D vboxmouse_drv_19.so \
159 # "$fs/usr/lib/X11/modules/input/vboxmouse.so"
160 [ -f vboxvideo_drv_19.so ] &&
161 install -D vboxvideo_drv_19.so \
162 "$fs/usr/lib/X11/modules/drivers/vboxvideo.so"
163 install -d "$fs/usr/lib/dri"
164 install -m755 VBoxOGL*.so "$fs/usr/lib"
165 ln -s /usr/lib/VBoxOGL.so "$fs/usr/lib/dri/vboxvideo_dri.so"
166 install -m755 -D pam_vbox.so "$fs/lib/security/pam_vbox.so"
168 # virtualbox-ose-additions-modules
169 cd "$src/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
171 cd vboxguest
172 install -D -m644 vboxguest.ko \
173 "$fs/lib/modules/$KBASEVER-slitaz/misc/vboxguest.ko"
175 cd ../vboxsf
176 install -D -m644 vboxsf.ko \
177 "$fs/lib/modules/$KBASEVER-slitaz/misc/vboxsf.ko"
179 cd ../vboxvideo
180 install -D -m644 vboxvideo.ko \
181 "$fs/lib/modules/$KBASEVER-slitaz/misc/vboxvideo.ko"
183 install -D -m 0644 "$stuff/60-vboxguest.rules" \
184 "$fs/etc/udev/rules.d/60-vboxguest.rules"
186 }
188 pre_remove()
189 {
190 #sed -i "s/vboxdrv vboxnetadp vboxnetflt vboxpci//" $1/etc/rcS.conf
191 sed -i "s/vboxdrv vboxnetadp vboxnetflt//" $1/etc/rcS.conf
192 delgroup vboxusers
193 }
195 post_install()
196 {
197 #chroot "$1/"
198 KERNEL_VERSION=$(uname -r)
199 depmod -a $KERNEL_VERSION
200 #modprobe -a vboxdrv vboxnetadp vboxnetflt vboxpci
201 modprobe -a vboxdrv vboxnetadp vboxnetflt
202 grep -qs vboxdrv $1/etc/rcS.conf ||
203 #sed -i 's/LOAD_MODULES="/&vboxdrv vboxnetadp vboxnetflt vboxpci/' /etc/rcS.conf
204 sed -i 's/LOAD_MODULES="/&vboxdrv vboxnetadp vboxnetflt/' /etc/rcS.conf
205 grep -qs vboxuser /etc/group || addgroup -g 199 vboxusers
206 echo "add yourself to vboxusers group if you want to access host"
207 echo "usb devices: addgroup $USER vboxusers"
208 #echo "then logout and login again"
209 echo "then reboot, until i find how to make udev do what it should without reboot..."
210 #addgroup $USER vboxusers
211 udevadm control --reload
212 udevadm trigger
213 }