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