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