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