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