]> git.pld-linux.org Git - packages/VirtualBox.git/blame - VirtualBox.spec
- fixed vditool permissions
[packages/VirtualBox.git] / VirtualBox.spec
CommitLineData
48363591 1#
2# TODO:
74268e47 3# - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS.
74268e47 4# - Package SDK.
09c79ddb 5# - Package utils (and write initscripts ?) for Guest OS.
48363591 6#
7# Conditional build:
8%bcond_without dist_kernel # without distribution kernel
d1c4ec5b 9%bcond_without kernel # don't build kernel module
d1c4ec5b 10%bcond_without userspace # don't build userspace package
05f1b1f5 11
74268e47 12%define _rel 1
05f1b1f5 13
8833bce1 14%if %{without kernel}
15%undefine with_dist_kernel
16%endif
17
d1c4ec5b
JB
18Summary: VirtualBox - x86 hardware virtualizer
19Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
48363591 20Name: VirtualBox
d6f0c54e 21Version: 1.5.0
05f1b1f5 22Release: %{_rel}
48363591 23License: GPL v2
24Group: Applications/Emulators
5f1cec1f 25Source0: http://www.virtualbox.org/download/%{version}/%{name}-%{version}_OSE.tar.bz2
d6f0c54e 26# Source0-md5: 56c074900260c109ed735c08e726fe81
05f1b1f5 27Source1: virtualbox.init
7d1c0a63 28Source2: http://www.virtualbox.org/download/UserManual.pdf
29# Source2-md5: 2e5458bd5b4b9acd18cc86866e8a7284
d89980c7 30Source3: %{name}.desktop
fb661e50 31Source4: %{name}.sh
48363591 32Patch0: %{name}-configure.patch
33Patch1: %{name}-qt-paths.patch
74268e47 34Patch2: %{name}-shared-libstdc++.patch
48363591 35URL: http://www.virtualbox.org/
36BuildRequires: SDL-devel
e5aaadde 37BuildRequires: bash
48363591 38BuildRequires: bcc
39BuildRequires: bin86
eba4b2aa 40BuildRequires: gcc >= 5:3.2.3
48363591 41BuildRequires: iasl
42%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
43BuildRequires: libIDL-devel
44BuildRequires: libuuid-devel
e5aaadde 45BuildRequires: libxslt-progs
46BuildRequires: qt-devel >= 6:3.3.6
d6f0c54e 47BuildRequires: qt-linguist
48363591 48BuildRequires: rpmbuild(macros) >= 1.329
e5aaadde 49BuildRequires: xalan-c-devel >= 1.10.0
eba4b2aa 50#BuildRequires: xcursor-devel
e5aaadde 51BuildRequires: xerces-c-devel >= 2.6.0
eba4b2aa 52BuildRequires: xorg-lib-libXcursor-devel
e5aaadde 53BuildRequires: zlib-devel >= 1.2.1
5f1cec1f
ER
54Requires(postun): /usr/sbin/groupdel
55Requires(pre): /usr/bin/getgid
56Requires(pre): /usr/sbin/groupadd
fb661e50 57Suggests: gxmessage
5f1cec1f 58Provides: group(vbox)
eba4b2aa 59ExclusiveArch: %{ix86} %{x8664}
48363591 60BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61
eba4b2aa 62%ifarch %{x8664}
5088674d 63%define _outdir amd64
64%else
65%define _outdir x86
66%endif
67
48363591 68%description
69InnoTek VirtualBox is a general-purpose full virtualizer for x86
70hardware. Targeted at server, desktop and embedded use, it is now the
71only professional-quality virtualization solution that is also Open
72Source Software.
73
74Some of the features of VirtualBox are:
75
76Modularity: VirtualBox has an extremely modular design with
77well-defined internal programming interfaces and a client/server
78design. This makes it easy to control it from several interfaces at
79once: for example, you can start a virtual machine in a typical
80virtual machine GUI and then control that machine from the command
81line. VirtualBox also comes with a full Software Development Kit: even
82though it is Open Source Software, you don't have to hack the source
83to write a new interface for VirtualBox.
84
85Virtual machine descriptions in XML: the configuration settings of
86virtual machines are stored entirely in XML and are independent of the
87local machines. Virtual machine definitions can therefore easily be
88ported to other computers.
89
fd8fc899
JR
90%description -l pl.UTF-8
91InnoTek VirtualBox jest emulatorem sprzętu x86. Kierowany do
92zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie
93jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym
94również jako Otwarte Oprogramowanie.
48363591 95
fd8fc899 96Przykładowe cechy VirtualBoksa:
48363591 97
fd8fc899
JR
98Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
99dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
100klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
101różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
102poziomu interfejsu graficznego, a później kontrolować ją z linii
103poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
104pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
48363591 105
fd8fc899
JR
106Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
107wirtualnych są w całości przechowywane w XML-u i są niezależne od
108lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
109konfigurację maszyny wirtualnej na inny komputer.
48363591 110
74268e47 111%package -n kernel%{_alt_kernel}-misc-vboxadd
112Summary: Linux kernel module for VirtualBox
113Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
114Release: %{_rel}@%{_kernel_ver_str}
115Group: Base/Kernel
116Requires(post,postun): /sbin/depmod
117Requires: dev >= 2.9.0-7
118%if %{with dist_kernel}
119%requires_releq_kernel
120Requires(postun): %releq_kernel
121%endif
122Provides: kernel(vboxadd) = %{version}-%{_rel}
123
124%description -n kernel%{_alt_kernel}-misc-vboxadd
125Linux kernel module vboxadd for VirtualBox.
126
127%description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
128Moduł jądra Linuksa vboxadd dla VirtualBoksa.
129
48363591 130%package -n kernel%{_alt_kernel}-misc-vboxdrv
eba4b2aa 131Summary: Linux kernel module for VirtualBox
4dab3322 132Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
48363591 133Release: %{_rel}@%{_kernel_ver_str}
134Group: Base/Kernel
135Requires(post,postun): /sbin/depmod
136Requires: dev >= 2.9.0-7
137%if %{with dist_kernel}
d6f0c54e 138%requires_releq_kernel
139Requires(postun): %releq_kernel
48363591 140%endif
141Provides: kernel(vboxdrv) = %{version}-%{_rel}
142
143%description -n kernel%{_alt_kernel}-misc-vboxdrv
eba4b2aa 144Linux kernel module vboxdrv for VirtualBox.
48363591 145
fd8fc899
JR
146%description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
147Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
48363591 148
74268e47 149%package -n kernel%{_alt_kernel}-misc-vboxvfs
150Summary: Linux kernel module for VirtualBox
151Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
152Release: %{_rel}@%{_kernel_ver_str}
153Group: Base/Kernel
154Requires(post,postun): /sbin/depmod
155Requires: dev >= 2.9.0-7
156%if %{with dist_kernel}
157%requires_releq_kernel
158Requires(postun): %releq_kernel
159%endif
160Provides: kernel(vboxvfs) = %{version}-%{_rel}
161
162%description -n kernel%{_alt_kernel}-misc-vboxvfs
163Linux kernel module vboxvfs for VirtualBox.
164
165%description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
166Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
167
09c79ddb 168%package -n xorg-driver-input-vboxmouse
169Summary: X.org mouse driver for VirtualBox guest OS
170Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBox'ie
171Release: %{_rel}
172Group: X11/Applications
173Requires: xorg-xserver-server >= 1.0.99.901
174
175%description -n xorg-driver-input-vboxmouse
176X.org mouse driver for VirtualBox guest OS.
177
178%description -n xorg-driver-input-vboxmouse -l pl.UTF-8
179Sterownik myszy dla systemu gościa w VirtualBox'ie.
180
181%package -n xorg-driver-video-vboxvideo
182Summary: X.org video driver for VirtualBox guest OS
183Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBox'ie
184Release: %{_rel}
185Group: X11/Applications
186Requires: xorg-xserver-server >= 1.0.99.901
187
188%description -n xorg-driver-video-vboxvideo
189X.org video driver for VirtualBox guest OS.
190
191%description -n xorg-driver-video-vboxvideo -l pl.UTF-8
192Sterownik grafiki dla systemu gościa w VirtualBox'ie.
193
48363591 194%prep
d6f0c54e 195%setup -q -n %{name}-%{version}_OSE
48363591 196%patch0 -p0
197%patch1 -p0
74268e47 198%patch2 -p1
95389e4d 199install %{SOURCE2} .
fa19f650 200
48363591 201%build
05f1b1f5 202KDIR="%{_builddir}/%{buildsubdir}/kernel"
203mkdir -p $KDIR
74268e47 204cp -Ra %{_kernelsrcdir}/include $KDIR
05f1b1f5 205%ifarch %{x8664}
206ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
207%else
208ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
209%endif
74268e47 210
211%if %{with dist_kernel}
212[ ! -f $KDIR/include/linux/autoconf.h ] && \
213 ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
214%else
215[ ! -f $KDIR/include/linux/autoconf.h ] && \
216 ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
217%endif
05f1b1f5 218
106d8451 219./configure \
220 --with-gcc="%{__cc}" \
05f1b1f5 221 --with-g++="%{__cxx}" \
222 --with-linux="$KDIR"
48363591 223
74268e47 224%if %{with userspace}
225. ./env.sh && kmk -j1
48363591 226%endif
74268e47 227
228%if %{with kernel}
229rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
230
231../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
232 tar -zxf modules.tar.gz && rm -f modules.tar.gz
233../src/VBox/Additions/linux/export_modules modules.tar.gz
234 tar -zxf modules.tar.gz && rm -f modules.tar.gz
235
236%build_kernel_modules -m vboxadd -C vboxadd
237%build_kernel_modules -m vboxdrv -C vboxdrv
238%build_kernel_modules -m vboxvfs -C vboxvfs
239cd ..
d1c4ec5b 240%endif
48363591 241
242%install
243rm -rf $RPM_BUILD_ROOT
244
d1c4ec5b 245%if %{with userspace}
48363591 246install -d \
d89980c7 247 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
05f1b1f5 248 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
09c79ddb 249 $RPM_BUILD_ROOT/etc/rc.d/init.d \
250 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \
251 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input
05f1b1f5 252
09c79ddb 253for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
5085c54c 254 install out/linux.%{_outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
fb661e50 255 install %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/$f
05f1b1f5 256done
257
d6f0c54e 258install out/linux.%{_outdir}/release/bin/VBox*.so \
48363591 259 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
05f1b1f5 260install out/linux.%{_outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
48363591 261 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
262
d1c4ec5b 263cp -a out/linux.%{_outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
8833bce1 264
265install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
266cp -a out/linux.%{_outdir}/release/bin/nls/VirtualBox* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
267
09c79ddb 268install out/linux.%{_outdir}/release/bin/additions/mountvboxsf \
269 $RPM_BUILD_ROOT%{_bindir}
270
271install out/linux.%{_outdir}/release/bin/additions/vboxmouse_drv_71.so \
272 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
273
274install out/linux.%{_outdir}/release/bin/additions/vboxvideo_drv_71.so \
275 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
276
d1c4ec5b 277install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox
d89980c7 278
b1f8956a 279install out/linux.%{_outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
d89980c7 280install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
d1c4ec5b
JB
281%endif
282
283%if %{with kernel}
74268e47 284cd PLD-MODULE-BUILD
285for MODULE in *; do
286 [ ! -d $MODULE ] && continue;
287
288 cd $MODULE
289 %install_kernel_modules -m $MODULE -d misc
290 cd ..
291done
292cd ..
d1c4ec5b 293%endif
05f1b1f5 294
48363591 295%clean
296rm -rf $RPM_BUILD_ROOT
297
3b63d3e8 298%pre
299%groupadd -g 221 -r -f vbox
300
05f1b1f5 301%post
302/sbin/chkconfig --add virtualbox
303%service virtualbox restart "VBoxSVC daemon"
3b63d3e8 304if [ "$1" = 1 ]; then
305%banner -e %{name} <<'EOF'
306Remember to add users which will use VirtualBox to vbox group or they won't be
307able to write to /dev/vboxdrv.
308EOF
309#'
310fi
05f1b1f5 311
5f1cec1f 312%preun
05f1b1f5 313if [ "$1" = "0" ]; then
314 %service virtualbox stop
315 /sbin/chkconfig --del virtualbox
316fi
317
3b63d3e8 318%postun
319if [ "$1" = "0" ]; then
320 %groupremove vbox
321fi
322
74268e47 323%post -n kernel%{_alt_kernel}-misc-vboxadd
324%depmod %{_kernel_ver}
325
326%postun -n kernel%{_alt_kernel}-misc-vboxadd
327%depmod %{_kernel_ver}
328
48363591 329%post -n kernel%{_alt_kernel}-misc-vboxdrv
330%depmod %{_kernel_ver}
331
332%postun -n kernel%{_alt_kernel}-misc-vboxdrv
333%depmod %{_kernel_ver}
334
74268e47 335%post -n kernel%{_alt_kernel}-misc-vboxvfs
336%depmod %{_kernel_ver}
337
338%postun -n kernel%{_alt_kernel}-misc-vboxvfs
339%depmod %{_kernel_ver}
340
d1c4ec5b 341%if %{with userspace}
48363591 342%files
343%defattr(644,root,root,755)
7d1c0a63 344%doc UserManual.pdf
8833bce1 345%dir %{_libdir}/VirtualBox
346%dir %{_libdir}/VirtualBox/components
347%dir %{_libdir}/VirtualBox/nls
4c18fded 348%attr(755,root,root) %{_bindir}/mountvboxsf
349%attr(755,root,root) %{_bindir}/vditool
48363591 350%attr(755,root,root) %{_bindir}/VBox*
351%attr(755,root,root) %{_bindir}/VirtualBox
05f1b1f5 352%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
353%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
354%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
355%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
356%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
357%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
8833bce1 358%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
4c18fded 359%attr(755,root,root) %{_libdir}/VirtualBox/vditool
05f1b1f5 360%{_libdir}/VirtualBox/*.gc
361%{_libdir}/VirtualBox/*.r0
05f1b1f5 362%{_libdir}/VirtualBox/*.xpt
363%{_libdir}/VirtualBox/components/*
8833bce1 364%lang(ar) %{_libdir}/VirtualBox/nls/VirtualBox_ar.qm
365%lang(cs) %{_libdir}/VirtualBox/nls/VirtualBox_cs.qm
366%lang(de) %{_libdir}/VirtualBox/nls/VirtualBox_de.qm
367%lang(es) %{_libdir}/VirtualBox/nls/VirtualBox_es.qm
368%lang(fi) %{_libdir}/VirtualBox/nls/VirtualBox_fi.qm
369%lang(fr) %{_libdir}/VirtualBox/nls/VirtualBox_fr.qm
370%lang(hu) %{_libdir}/VirtualBox/nls/VirtualBox_hu.qm
371%lang(it) %{_libdir}/VirtualBox/nls/VirtualBox_it.qm
372%lang(ja) %{_libdir}/VirtualBox/nls/VirtualBox_ja.qm
373%lang(ko) %{_libdir}/VirtualBox/nls/VirtualBox_ko.qm
374%lang(pl) %{_libdir}/VirtualBox/nls/VirtualBox_pl.qm
375%lang(pt_BR) %{_libdir}/VirtualBox/nls/VirtualBox_pt_BR.qm
376%lang(ro) %{_libdir}/VirtualBox/nls/VirtualBox_ro.qm
377%lang(ru) %{_libdir}/VirtualBox/nls/VirtualBox_ru.qm
378%lang(sv) %{_libdir}/VirtualBox/nls/VirtualBox_sv.qm
379%lang(zh_CN) %{_libdir}/VirtualBox/nls/VirtualBox_zh_CN.qm
380%lang(zh_TW) %{_libdir}/VirtualBox/nls/VirtualBox_zh_TW.qm
05f1b1f5 381%attr(754,root,root) /etc/rc.d/init.d/virtualbox
d89980c7 382%{_pixmapsdir}/VBox.png
383%{_desktopdir}/%{name}.desktop
09c79ddb 384
385%files -n xorg-driver-input-vboxmouse
386%defattr(644,root,root,755)
387%attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
388
389%files -n xorg-driver-video-vboxvideo
390%defattr(644,root,root,755)
391%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
d1c4ec5b 392%endif
48363591 393
d1c4ec5b 394%if %{with kernel}
74268e47 395%files -n kernel%{_alt_kernel}-misc-vboxadd
396%defattr(644,root,root,755)
397/lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
398
d1c4ec5b 399%files -n kernel%{_alt_kernel}-misc-vboxdrv
48363591 400%defattr(644,root,root,755)
d1c4ec5b 401/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
74268e47 402
403%files -n kernel%{_alt_kernel}-misc-vboxvfs
404%defattr(644,root,root,755)
405/lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*
05f1b1f5 406%endif
This page took 0.113223 seconds and 4 git commands to generate.