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