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