]> git.pld-linux.org Git - packages/VirtualBox.git/blame_incremental - VirtualBox.spec
- blah, correct paths for Qt4 stuff
[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 0.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%if "%{pld_release}" != "ti"
26%define __ucc gcc-3.4
27%else
28%define __ucc %{__cc}
29%endif
30
31%define pname VirtualBox
32
33Summary: VirtualBox OSE - x86 hardware virtualizer
34Summary(pl.UTF-8): VirtualBox OSE - wirtualizator sprzętu x86
35Name: %{pname}%{_alt_kernel}
36Version: 2.0.0
37Release: %{rel}
38License: GPL v2
39Group: Applications/Emulators
40Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}-OSE.tar.bz2
41# Source0-md5: 1f53ebed0f55df129f6cf72dba646c3a
42Source1: http://download.virtualbox.org/virtualbox/%{version}/UserManual.pdf
43# Source1-md5: cf65a8164a18f7200520c1ec3399a918
44Source2: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
45# Source2-md5: ae0512b8db853fdea9fc262fc04bd242
46Source3: %{pname}-vboxdrv.init
47Source4: %{pname}-vboxadd.init
48Source5: %{pname}.desktop
49Source6: %{pname}.sh
50Patch0: %{pname}-configure.patch
51Patch1: %{pname}-qt-paths.patch
52Patch2: %{pname}-shared-libstdc++.patch
53Patch3: %{pname}-disable-xclient-build.patch
54Patch4: %{pname}-configure-spaces.patch
55Patch5: %{pname}-gcc.patch
56URL: http://www.virtualbox.org/
57%if %{with userspace}
58BuildRequires: SDL-devel >= 1.2.7
59BuildRequires: alsa-lib-devel >= 1.0.6
60BuildRequires: bash
61BuildRequires: bcc
62BuildRequires: bin86
63BuildRequires: gcc >= 5:3.2.3
64%if "%{pld_release}" != "ti"
65BuildRequires: compat-gcc-34
66%endif
67BuildRequires: iasl
68%endif
69%if %{with dist_kernel}
70BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20
71%endif
72%if %{with userspace}
73BuildRequires: libIDL-devel
74BuildRequires: libpng >= 1.2.5
75BuildRequires: libstdc++-devel >= 5:3.2.3
76BuildRequires: libuuid-devel
77BuildRequires: libxml2-devel >= 2.6.26
78BuildRequires: libxslt-devel >= 1.1.17
79BuildRequires: libxslt-progs >= 1.1.17
80BuildRequires: pkgconfig
81BuildRequires: pulseaudio-devel >= 0.9.0
82BuildRequires: qt-devel >= 6:3.3.6
83BuildRequires: qt-linguist
84%endif
85BuildRequires: rpmbuild(macros) >= 1.379
86%if %{with userspace}
87BuildRequires: which
88BuildRequires: xalan-c-devel >= 1.10.0
89BuildRequires: xerces-c-devel >= 2.6.0
90BuildRequires: xorg-lib-libXcursor-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 -p0
256%patch1 -p0
257%patch2 -p1
258
259%ifarch %{x8664}
260%patch3 -p1
261%endif
262
263%patch4 -p1
264%patch5 -p0
265
266cat <<'EOF' > udev.conf
267KERNEL=="vboxdrv", NAME="%k", GROUP="vbox", MODE="0660"
268KERNEL=="vboxadd", NAME="%k", GROUP="vbox", MODE="0660"
269EOF
270
271install %{SOURCE1} .
272
273rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
274../src/VBox/Additions/linux/export_modules modules.tar.gz
275 tar -zxf modules.tar.gz && rm -f modules.tar.gz
276../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
277 tar -zxf modules.tar.gz && rm -f modules.tar.gz
278
279%ifarch %{x8664}
280# HACK, is this really safe on x86_64?
281sed -i -e '/#.*define.*RTMEMALLOC_EXEC_HEAP/d' vboxadd/r0drv/linux/alloc-r0drv-linux.c vboxvfs/r0drv/linux/alloc-r0drv-linux.c
282%endif
283
284%build
285%if %{with userspace}
286./configure \
287 --with-gcc="%{__cc}" \
288 --with-g++="%{__cxx}" \
289 --disable-qt4 \
290 --disable-kmods
291
292. ./env.sh && \
293kmk -j1 VBOX_RECOMPILER_OP_GCC_PLD_COMPAT="%{__ucc}"
294%endif
295
296%if %{with kernel}
297cd PLD-MODULE-BUILD
298%build_kernel_modules -m vboxadd -C vboxadd
299%build_kernel_modules -m vboxdrv -C vboxdrv
300cp -a vboxadd/Module.symvers vboxvfs
301%build_kernel_modules -m vboxvfs -C vboxvfs -c
302cd ..
303%endif
304
305%install
306rm -rf $RPM_BUILD_ROOT
307
308%if %{with userspace}
309install -d \
310 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
311 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
312
313install %{SOURCE6} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh
314for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
315 install out/linux.%{outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
316 ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
317done
318
319%ifarch %{x8664}
320install out/linux.%{outdir}/release/bin/VBox*.rel \
321 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
322%endif
323
324install out/linux.%{outdir}/release/bin/VBox*.so \
325 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
326install out/linux.%{outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
327 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
328
329install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
330install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
331
332install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
333cp -a out/linux.%{outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
334cp -a out/linux.%{outdir}/release/bin/nls/* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
335
336install out/linux.%{outdir}/release/bin/additions/mountvboxsf \
337 $RPM_BUILD_ROOT%{_bindir}
338
339%ifnarch %{x8664}
340install -d $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,input}
341install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_14.so \
342 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
343install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_14.so \
344 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
345%endif
346
347install out/linux.%{outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
348install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}/%{pname}.desktop
349
350install -d $RPM_BUILD_ROOT/etc/udev/rules.d
351install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
352%endif
353
354%if %{with kernel}
355install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
356install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxdrv
357install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxadd
358%install_kernel_modules -m PLD-MODULE-BUILD/vboxadd/vboxadd -d misc
359%install_kernel_modules -m PLD-MODULE-BUILD/vboxdrv/vboxdrv -d misc
360%install_kernel_modules -m PLD-MODULE-BUILD/vboxvfs/vboxvfs -d misc
361%endif
362
363%clean
364rm -rf $RPM_BUILD_ROOT
365
366%pre
367%groupadd -g 221 -r -f vbox
368
369%post
370cat << 'EOF'
371NOTE: You must also install kernel module for this software to work
372 kernel-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
373 kernel-desktop-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
374 kernel-laptop-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
375 kernel-vanilla-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
376 etc.
377
378Depending on which kernel brand You use.
379
380EOF
381
382%postun
383if [ "$1" = "0" ]; then
384 %groupremove vbox
385fi
386
387%post -n kernel%{_alt_kernel}-misc-vboxadd
388%depmod %{_kernel_ver}
389/sbin/chkconfig --add vboxadd
390%service vboxadd restart "VirtualBox OSE guest additions driver"
391
392%postun -n kernel%{_alt_kernel}-misc-vboxadd
393%depmod %{_kernel_ver}
394
395%preun -n kernel%{_alt_kernel}-misc-vboxadd
396if [ "$1" = "0" ]; then
397 %service vboxadd stop
398 /sbin/chkconfig --del vboxadd
399fi
400
401%post -n kernel%{_alt_kernel}-misc-vboxdrv
402%depmod %{_kernel_ver}
403/sbin/chkconfig --add vboxdrv
404%service vboxdrv restart "VirtualBox OSE driver"
405
406%postun -n kernel%{_alt_kernel}-misc-vboxdrv
407%depmod %{_kernel_ver}
408
409%preun -n kernel%{_alt_kernel}-misc-vboxdrv
410if [ "$1" = "0" ]; then
411 %service vboxdrv stop
412 /sbin/chkconfig --del vboxdrv
413fi
414
415%post -n kernel%{_alt_kernel}-misc-vboxvfs
416%depmod %{_kernel_ver}
417
418%postun -n kernel%{_alt_kernel}-misc-vboxvfs
419%depmod %{_kernel_ver}
420
421%if %{with userspace}
422%files
423%defattr(644,root,root,755)
424%doc UserManual.pdf
425%dir %{_libdir}/VirtualBox
426%dir %{_libdir}/VirtualBox/additions
427%dir %{_libdir}/VirtualBox/components
428%dir %{_libdir}/VirtualBox/nls
429%attr(755,root,root) %{_bindir}/mountvboxsf
430%attr(755,root,root) %{_bindir}/vditool
431%attr(755,root,root) %{_bindir}/VBox*
432%attr(755,root,root) %{_bindir}/VirtualBox
433%attr(755,root,root) %{_libdir}/VirtualBox/vditool
434%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
435%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
436%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
437%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
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/*.xpt
448%{_libdir}/VirtualBox/additions/*
449%{_libdir}/VirtualBox/components/*
450%lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm
451%lang(ca) %{_libdir}/VirtualBox/nls/*_ca.qm
452%lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm
453%lang(de) %{_libdir}/VirtualBox/nls/*_de.qm
454%lang(es) %{_libdir}/VirtualBox/nls/*_es.qm
455%lang(eu) %{_libdir}/VirtualBox/nls/*_eu.qm
456%lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm
457%lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm
458%lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm
459%lang(id) %{_libdir}/VirtualBox/nls/*_id.qm
460%lang(it) %{_libdir}/VirtualBox/nls/*_it.qm
461%lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm
462%lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm
463%lang(nl) %{_libdir}/VirtualBox/nls/*_nl.qm
464%lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm
465%lang(pt) %{_libdir}/VirtualBox/nls/*_pt.qm
466%lang(pt_BR) %{_libdir}/VirtualBox/nls/*_pt_BR.qm
467%lang(ro) %{_libdir}/VirtualBox/nls/*_ro.qm
468%lang(ru) %{_libdir}/VirtualBox/nls/*_ru.qm
469%lang(sk) %{_libdir}/VirtualBox/nls/*_sk.qm
470%lang(sr) %{_libdir}/VirtualBox/nls/*_sr.qm
471%lang(sv) %{_libdir}/VirtualBox/nls/*_sv.qm
472%lang(tr) %{_libdir}/VirtualBox/nls/*_tr.qm
473%lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm
474%lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm
475%{_pixmapsdir}/VBox.png
476%{_desktopdir}/%{pname}.desktop
477
478%files udev
479%defattr(644,root,root,755)
480%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
481
482# Drivers are for Guest OS, which is 32-bit.
483%ifnarch %{x8664}
484%files -n xorg-driver-input-vboxmouse
485%defattr(644,root,root,755)
486%attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
487
488%files -n xorg-driver-video-vboxvideo
489%defattr(644,root,root,755)
490%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
491%endif
492%endif
493
494%if %{with kernel}
495%files -n kernel%{_alt_kernel}-misc-vboxadd
496%defattr(644,root,root,755)
497%attr(754,root,root) /etc/rc.d/init.d/vboxadd
498/lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
499
500%files -n kernel%{_alt_kernel}-misc-vboxdrv
501%defattr(644,root,root,755)
502%attr(754,root,root) /etc/rc.d/init.d/vboxdrv
503/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
504
505%files -n kernel%{_alt_kernel}-misc-vboxvfs
506%defattr(644,root,root,755)
507/lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*
508%endif
This page took 0.112029 seconds and 4 git commands to generate.