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