]> git.pld-linux.org Git - packages/VirtualBox.git/blame_incremental - VirtualBox.spec
- accept spaces in configure args
[packages/VirtualBox.git] / VirtualBox.spec
... / ...
CommitLineData
1#
2# TODO:
3# - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS.
4# - Package SDK.
5# - Package utils (and write initscripts ?) for Guest OS.
6# - Check License of VBoxGuestAdditions_*.iso, it's propably not GPL v2.
7# If so check if it is distributable.
8#
9# Conditional build:
10%bcond_without dist_kernel # without distribution kernel
11%bcond_without kernel # don't build kernel module
12%bcond_without userspace # don't build userspace package
13
14%define rel 9
15
16%if %{without kernel}
17%undefine with_dist_kernel
18%endif
19
20%if "%{_alt_kernel}" != "%{nil}"
21%undefine with_userspace
22%endif
23
24%define pname VirtualBox
25
26Summary: VirtualBox - x86 hardware virtualizer
27Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
28Name: %{pname}%{_alt_kernel}
29Version: 1.5.6
30Release: %{rel}
31License: GPL v2
32Group: Applications/Emulators
33Source0: http://www.virtualbox.org/download/%{version}/%{pname}-%{version}-1_OSE.tar.bz2
34# Source0-md5: 305c65f9e91b6137cb773d578de09922
35Source1: http://www.virtualbox.org/download/%{version}/UserManual.pdf
36# Source1-md5: 9ba7f17584fb3e9c98e026a1501cf7c0
37Source2: http://www.virtualbox.org/download/%{version}/VBoxGuestAdditions_%{version}.iso
38# Source2-md5: 9d74dea92bd225ad59faee9fd427a55e
39Source3: %{pname}.init
40Source4: %{pname}.desktop
41Source5: %{pname}.sh
42Patch0: %{pname}-configure.patch
43Patch1: %{pname}-qt-paths.patch
44Patch2: %{pname}-shared-libstdc++.patch
45Patch3: %{pname}-disable-xclient-build.patch
46URL: http://www.virtualbox.org/
47BuildRequires: SDL-devel
48BuildRequires: alsa-lib-devel
49BuildRequires: bash
50BuildRequires: bcc
51BuildRequires: bin86
52BuildRequires: gcc >= 5:3.2.3
53BuildRequires: iasl
54%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
55BuildRequires: libIDL-devel
56BuildRequires: libuuid-devel
57BuildRequires: libxslt-progs
58BuildRequires: pkgconfig
59BuildRequires: pulseaudio-devel
60BuildRequires: qt-devel >= 6:3.3.6
61BuildRequires: qt-linguist
62BuildRequires: rpmbuild(macros) >= 1.329
63BuildRequires: which
64BuildRequires: xalan-c-devel >= 1.10.0
65BuildRequires: xerces-c-devel >= 2.6.0
66BuildRequires: xorg-lib-libXcursor-devel
67BuildRequires: zlib-devel >= 1.2.1
68%ifarch %{x8664}
69BuildRequires: gcc-multilib
70BuildRequires: libstdc++-multilib-devel
71# TODO: How to add glibc-devel.i686 here ?
72%endif
73Requires(post,preun): /sbin/chkconfig
74Requires(postun): /usr/sbin/groupdel
75Requires(pre): /usr/bin/getgid
76Requires(pre): /usr/sbin/groupadd
77Suggests: gxmessage
78Provides: group(vbox)
79ExclusiveArch: %{ix86} %{x8664}
80BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81
82%ifarch %{x8664}
83%define outdir amd64
84%else
85%define outdir x86
86%endif
87
88%description
89InnoTek VirtualBox is a general-purpose full virtualizer for x86
90hardware. Targeted at server, desktop and embedded use, it is now the
91only professional-quality virtualization solution that is also Open
92Source Software.
93
94Some of the features of VirtualBox are:
95
96Modularity: VirtualBox has an extremely modular design with
97well-defined internal programming interfaces and a client/server
98design. This makes it easy to control it from several interfaces at
99once: for example, you can start a virtual machine in a typical
100virtual machine GUI and then control that machine from the command
101line. VirtualBox also comes with a full Software Development Kit: even
102though it is Open Source Software, you don't have to hack the source
103to write a new interface for VirtualBox.
104
105Virtual machine descriptions in XML: the configuration settings of
106virtual machines are stored entirely in XML and are independent of the
107local machines. Virtual machine definitions can therefore easily be
108ported to other computers.
109
110%description -l pl.UTF-8
111InnoTek VirtualBox jest emulatorem sprzętu x86. Kierowany do
112zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie
113jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym
114również jako Otwarte Oprogramowanie.
115
116Przykładowe cechy VirtualBoksa:
117
118Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
119dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
120klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
121różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
122poziomu interfejsu graficznego, a później kontrolować ją z linii
123poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
124pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
125
126Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
127wirtualnych są w całości przechowywane w XML-u i są niezależne od
128lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
129konfigurację maszyny wirtualnej na inny komputer.
130
131%package udev
132Summary: udev rules for VirtualBox kernel modules
133Summary(pl.UTF-8): Reguły udev dla modułów jądra Linuksa dla VirtualBoksa
134Release: %{rel}@%{_kernel_ver_str}
135Group: Base/Kernel
136Requires: udev
137
138%description udev
139udev rules for VirtualBox kernel modules
140
141%description udev -l pl.UTF-8
142Reguły udev dla modułów jądra Linuksa dla VirtualBoksa
143
144%package -n kernel%{_alt_kernel}-misc-vboxadd
145Summary: Linux kernel module for VirtualBox
146Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
147Release: %{rel}@%{_kernel_ver_str}
148Group: Base/Kernel
149Requires(post,postun): /sbin/depmod
150Requires: dev >= 2.9.0-7
151%if %{with dist_kernel}
152%requires_releq_kernel
153#Requires(postun): %%releq_kernel
154%endif
155Provides: kernel(vboxadd) = %{version}-%{rel}
156
157%description -n kernel%{_alt_kernel}-misc-vboxadd
158Linux kernel module vboxadd for VirtualBox.
159
160%description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
161Moduł jądra Linuksa vboxadd dla VirtualBoksa.
162
163%package -n kernel%{_alt_kernel}-misc-vboxdrv
164Summary: Linux kernel module for VirtualBox
165Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
166Release: %{rel}@%{_kernel_ver_str}
167Group: Base/Kernel
168Requires(post,postun): /sbin/depmod
169Requires: dev >= 2.9.0-7
170%if %{with dist_kernel}
171%requires_releq_kernel
172Requires(postun): %releq_kernel
173%endif
174Provides: kernel(vboxdrv) = %{version}-%{rel}
175
176%description -n kernel%{_alt_kernel}-misc-vboxdrv
177Linux kernel module vboxdrv for VirtualBox.
178
179%description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
180Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
181
182%package -n kernel%{_alt_kernel}-misc-vboxvfs
183Summary: Linux kernel module for VirtualBox
184Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
185Release: %{rel}@%{_kernel_ver_str}
186Group: Base/Kernel
187Requires(post,postun): /sbin/depmod
188Requires: dev >= 2.9.0-7
189%if %{with dist_kernel}
190%requires_releq_kernel
191Requires(postun): %releq_kernel
192%endif
193Provides: kernel(vboxvfs) = %{version}-%{rel}
194
195%description -n kernel%{_alt_kernel}-misc-vboxvfs
196Linux kernel module vboxvfs for VirtualBox.
197
198%description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
199Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
200
201%package -n xorg-driver-input-vboxmouse
202Summary: X.org mouse driver for VirtualBox guest OS
203Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBoksie
204Release: %{rel}
205Group: X11/Applications
206Requires: xorg-xserver-server >= 1.0.99.901
207
208%description -n xorg-driver-input-vboxmouse
209X.org mouse driver for VirtualBox guest OS.
210
211%description -n xorg-driver-input-vboxmouse -l pl.UTF-8
212Sterownik myszy dla systemu gościa w VirtualBoksie.
213
214%package -n xorg-driver-video-vboxvideo
215Summary: X.org video driver for VirtualBox guest OS
216Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie
217Release: %{rel}
218Group: X11/Applications
219Requires: xorg-xserver-server >= 1.0.99.901
220
221%description -n xorg-driver-video-vboxvideo
222X.org video driver for VirtualBox guest OS.
223
224%description -n xorg-driver-video-vboxvideo -l pl.UTF-8
225Sterownik grafiki dla systemu gościa w VirtualBoksie.
226
227%prep
228%setup -q -n %{pname}-%{version}_OSE
229%patch0 -p0
230%patch1 -p0
231%patch2 -p1
232
233%ifarch %{x8664}
234%patch3 -p1
235%endif
236
237cat <<'EOF' > udev.conf
238KERNEL=="vboxdrv", NAME="%k", GROUP="vbox", MODE="0660"
239EOF
240
241install %{SOURCE1} .
242
243%build
244KDIR="%{_builddir}/%{buildsubdir}/kernel"
245mkdir -p $KDIR
246cp -Ra %{_kernelsrcdir}/include $KDIR
247%ifarch %{x8664} %{ix86}
248if [ -d $KDIR/include/asm-x86 ]; then
249 ln -sf $KDIR/include/asm-x86 $KDIR/include/asm
250else
251%ifarch %{x8664}
252 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
253%else
254 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
255%endif
256fi
257%endif
258
259%if %{with dist_kernel}
260ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
261%else
262ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
263%endif
264
265./configure \
266 --with-gcc="%{__cc}" \
267 --with-g++="%{__cxx}" \
268 --with-linux="$KDIR"
269
270%if %{with userspace}
271. ./env.sh && kmk -j1
272%endif
273
274%if %{with kernel}
275rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
276
277../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
278 tar -zxf modules.tar.gz && rm -f modules.tar.gz
279../src/VBox/Additions/linux/export_modules modules.tar.gz
280 tar -zxf modules.tar.gz && rm -f modules.tar.gz
281
282%ifarch %{x8664}
283# HACK, is this really safe on x86_64?
284sed -i -e 's:#.*define.*RTMEMALLOC_EXEC_HEAP::g' vboxadd/r0drv/linux/alloc-r0drv-linux.c vboxvfs/r0drv/linux/alloc-r0drv-linux.c
285%endif
286
287%build_kernel_modules -m vboxadd -C vboxadd
288%build_kernel_modules -m vboxdrv -C vboxdrv
289cp -a vboxadd/Module.symvers vboxvfs
290%build_kernel_modules -m vboxvfs -C vboxvfs
291cd ..
292%endif
293
294%install
295rm -rf $RPM_BUILD_ROOT
296
297%if %{with userspace}
298install -d \
299 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
300 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
301 $RPM_BUILD_ROOT/etc/rc.d/init.d \
302 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \
303 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input
304
305install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox
306
307install %{SOURCE5} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh
308for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
309 install out/linux.%{outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
310 ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
311done
312
313%ifarch %{x8664}
314install out/linux.%{outdir}/release/bin/VBox*.rel \
315 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
316%endif
317
318install out/linux.%{outdir}/release/bin/VBox*.so \
319 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
320install out/linux.%{outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
321 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
322
323install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
324install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
325
326install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
327cp -a out/linux.%{outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
328cp -a out/linux.%{outdir}/release/bin/nls/* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
329
330install out/linux.%{outdir}/release/bin/additions/mountvboxsf \
331 $RPM_BUILD_ROOT%{_bindir}
332
333install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_14.so \
334 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
335
336install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_14.so \
337 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
338
339install out/linux.%{outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
340install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{pname}.desktop
341
342install -d $RPM_BUILD_ROOT/etc/udev/rules.d
343install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
344%endif
345
346%if %{with kernel}
347cd PLD-MODULE-BUILD
348for MODULE in *; do
349 [ ! -d $MODULE ] && continue;
350
351 cd $MODULE
352 %install_kernel_modules -m $MODULE -d misc
353 cd ..
354done
355cd ..
356%endif
357
358%clean
359rm -rf $RPM_BUILD_ROOT
360
361%pre
362%groupadd -g 221 -r -f vbox
363
364%post
365/sbin/chkconfig --add virtualbox
366%service virtualbox restart "VirtualBox"
367
368%preun
369if [ "$1" = "0" ]; then
370 %service virtualbox stop
371 /sbin/chkconfig --del virtualbox
372fi
373
374%postun
375if [ "$1" = "0" ]; then
376 %groupremove vbox
377fi
378
379%post -n kernel%{_alt_kernel}-misc-vboxadd
380%depmod %{_kernel_ver}
381
382%postun -n kernel%{_alt_kernel}-misc-vboxadd
383%depmod %{_kernel_ver}
384
385%post -n kernel%{_alt_kernel}-misc-vboxdrv
386%depmod %{_kernel_ver}
387
388%postun -n kernel%{_alt_kernel}-misc-vboxdrv
389%depmod %{_kernel_ver}
390
391%post -n kernel%{_alt_kernel}-misc-vboxvfs
392%depmod %{_kernel_ver}
393
394%postun -n kernel%{_alt_kernel}-misc-vboxvfs
395%depmod %{_kernel_ver}
396
397%if %{with userspace}
398%files
399%defattr(644,root,root,755)
400%doc UserManual.pdf
401%dir %{_libdir}/VirtualBox
402%dir %{_libdir}/VirtualBox/additions
403%dir %{_libdir}/VirtualBox/components
404%dir %{_libdir}/VirtualBox/nls
405%attr(754,root,root) /etc/rc.d/init.d/virtualbox
406%attr(755,root,root) %{_bindir}/mountvboxsf
407%attr(755,root,root) %{_bindir}/vditool
408%attr(755,root,root) %{_bindir}/VBox*
409%attr(755,root,root) %{_bindir}/VirtualBox
410%attr(755,root,root) %{_libdir}/VirtualBox/vditool
411%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
412%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
413%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
414%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
415%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
416%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
417%ifarch %{x8664}
418%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.rel
419%endif
420%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
421%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
422%{_libdir}/VirtualBox/*.gc
423%{_libdir}/VirtualBox/*.r0
424%{_libdir}/VirtualBox/*.xpt
425%{_libdir}/VirtualBox/additions/*
426%{_libdir}/VirtualBox/components/*
427%lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm
428%lang(ca) %{_libdir}/VirtualBox/nls/*_ca.qm
429%lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm
430%lang(de) %{_libdir}/VirtualBox/nls/*_de.qm
431%lang(es) %{_libdir}/VirtualBox/nls/*_es.qm
432%lang(eu) %{_libdir}/VirtualBox/nls/*_eu.qm
433%lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm
434%lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm
435%lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm
436%lang(id) %{_libdir}/VirtualBox/nls/*_id.qm
437%lang(it) %{_libdir}/VirtualBox/nls/*_it.qm
438%lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm
439%lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm
440%lang(nl) %{_libdir}/VirtualBox/nls/*_nl.qm
441%lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm
442%lang(pt_BR) %{_libdir}/VirtualBox/nls/*_pt_BR.qm
443%lang(pt_PT) %{_libdir}/VirtualBox/nls/*_pt_PT.qm
444%lang(ro) %{_libdir}/VirtualBox/nls/*_ro.qm
445%lang(ru) %{_libdir}/VirtualBox/nls/*_ru.qm
446%lang(sk) %{_libdir}/VirtualBox/nls/*_sk.qm
447%lang(sr) %{_libdir}/VirtualBox/nls/*_sr.qm
448%lang(sv) %{_libdir}/VirtualBox/nls/*_sv.qm
449%lang(tr) %{_libdir}/VirtualBox/nls/*_tr.qm
450%lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm
451%lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm
452%{_pixmapsdir}/VBox.png
453%{_desktopdir}/%{pname}.desktop
454
455%files udev
456%defattr(644,root,root,755)
457%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
458
459# Drivers are for Guest OS, which is 32-bit.
460%ifnarch %{x8664}
461%files -n xorg-driver-input-vboxmouse
462%defattr(644,root,root,755)
463%attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
464
465%files -n xorg-driver-video-vboxvideo
466%defattr(644,root,root,755)
467%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
468%endif
469%endif
470
471%if %{with kernel}
472%files -n kernel%{_alt_kernel}-misc-vboxadd
473%defattr(644,root,root,755)
474/lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
475
476%files -n kernel%{_alt_kernel}-misc-vboxdrv
477%defattr(644,root,root,755)
478/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
479
480%files -n kernel%{_alt_kernel}-misc-vboxvfs
481%defattr(644,root,root,755)
482/lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*
483%endif
This page took 0.033331 seconds and 4 git commands to generate.