]> git.pld-linux.org Git - packages/VirtualBox.git/blob - VirtualBox.spec
- update for 2.6.22 kernel
[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             3
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:  XFree86-devel
51 BuildRequires:  alsa-lib-devel
52 BuildRequires:  bash
53 BuildRequires:  bcc
54 BuildRequires:  bin86
55 BuildRequires:  gcc >= 5:3.2.3
56 BuildRequires:  iasl
57 %endif
58 %{?with_dist_kernel:BuildRequires:      kernel%{_alt_kernel}-module-build >= 3:2.6.7}
59 %if %{with userspace}
60 BuildRequires:  libIDL-devel
61 BuildRequires:  libuuid-devel
62 BuildRequires:  libxslt-progs
63 BuildRequires:  pkgconfig
64 BuildRequires:  pulseaudio-devel
65 BuildRequires:  qt-devel >= 6:3.3.6
66 BuildRequires:  qt-linguist
67 %endif
68 BuildRequires:  rpmbuild(macros) >= 1.379
69 %if %{with userspace}
70 BuildRequires:  which
71 BuildRequires:  xalan-c-devel >= 1.10.0
72 BuildRequires:  xerces-c-devel >= 2.6.0
73 BuildRequires:  zlib-devel >= 1.2.1
74 %ifarch %{x8664}
75 BuildRequires:  libstdc++32-devel
76 # 32bit glibc-devel
77 BuildRequires:  /usr/include/gnu/stubs-32.h
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 %{?with_dist_kernel:Requires:   kernel%{_alt_kernel}(vermagic) = %{_kernel_ver}}
160
161 %description -n kernel%{_alt_kernel}-misc-vboxadd
162 Linux kernel module vboxadd for VirtualBox OSE.
163
164 %description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
165 Moduł jądra Linuksa vboxadd dla VirtualBoksa.
166
167 %package -n kernel%{_alt_kernel}-misc-vboxdrv
168 Summary:        Linux kernel module for VirtualBox OSE
169 Summary(pl.UTF-8):      Moduł jądra Linuksa dla VirtualBoksa
170 Release:        %{rel}@%{_kernel_ver_str}
171 Group:          Base/Kernel
172 Requires(post,postun):  /sbin/depmod
173 Requires:       dev >= 2.9.0-7
174 %{?with_dist_kernel:Requires:   kernel%{_alt_kernel}(vermagic) = %{_kernel_ver}}
175
176 %description -n kernel%{_alt_kernel}-misc-vboxdrv
177 Linux kernel module vboxdrv for VirtualBox OSE.
178
179 %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
180 Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
181
182 %package -n kernel%{_alt_kernel}-misc-vboxvfs
183 Summary:        Linux kernel module for VirtualBox OSE
184 Summary(pl.UTF-8):      Moduł jądra Linuksa dla VirtualBoksa
185 Release:        %{rel}@%{_kernel_ver_str}
186 Group:          Base/Kernel
187 Requires(post,postun):  /sbin/depmod
188 Requires:       dev >= 2.9.0-7
189 %{?with_dist_kernel:Requires:   kernel%{_alt_kernel}(vermagic) = %{_kernel_ver}}
190
191 %description -n kernel%{_alt_kernel}-misc-vboxvfs
192 Linux kernel module vboxvfs for VirtualBox OSE.
193
194 %description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
195 Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
196
197 %package -n X11-driver-input-vboxmouse
198 Summary:        X.org mouse driver for VirtualBox OSE guest OS
199 Summary(pl.UTF-8):      Sterownik myszy dla systemu gościa w VirtualBoksie
200 Release:        %{rel}
201 Group:          X11/Applications
202 Requires:       X11-Xserver >= 1:6.9.0
203
204 %description -n X11-driver-input-vboxmouse
205 X.org mouse driver for VirtualBox OSE guest OS.
206
207 %description -n X11-driver-input-vboxmouse  -l pl.UTF-8
208 Sterownik myszy dla systemu gościa w VirtualBoksie.
209
210 %package -n X11-driver-video-vboxvideo
211 Summary:        X.org video driver for VirtualBox OSE guest OS
212 Summary(pl.UTF-8):      Sterownik grafiki dla systemu gościa w VirtualBoksie
213 Release:        %{rel}
214 Group:          X11/Applications
215 Requires:       X11-Xserver >= 1:6.9.0
216
217 %description -n X11-driver-video-vboxvideo
218 X.org video driver for VirtualBox OSE guest OS.
219
220 %description -n X11-driver-video-vboxvideo -l pl.UTF-8
221 Sterownik grafiki dla systemu gościa w VirtualBoksie.
222
223 %prep
224 %setup -q -n %{pname}-%{version}_OSE
225 %patch0 -p0
226 %patch1 -p0
227 %patch2 -p1
228
229 %ifarch %{x8664}
230 %patch3 -p1
231 %endif
232
233 %patch4 -p1
234
235 cat <<'EOF' > udev.conf
236 KERNEL=="vboxdrv", NAME="%k", GROUP="vbox", MODE="0660"
237 EOF
238
239 install %{SOURCE1} .
240
241 rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
242 ../src/VBox/Additions/linux/export_modules modules.tar.gz
243         tar -zxf modules.tar.gz && rm -f modules.tar.gz
244 ../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
245         tar -zxf modules.tar.gz && rm -f modules.tar.gz
246
247 %ifarch %{x8664}
248 # HACK, is this really safe on x86_64?
249 sed -i -e '/#.*define.*RTMEMALLOC_EXEC_HEAP/d' vboxadd/r0drv/linux/alloc-r0drv-linux.c vboxvfs/r0drv/linux/alloc-r0drv-linux.c
250 %endif
251
252 %build
253 %if %{with userspace}
254 ./configure \
255         --with-gcc="%{__cc}" \
256         --with-g++="%{__cxx}" \
257         --disable-kmods
258
259 . ./env.sh && kmk -j1
260 %endif
261
262 %if %{with kernel}
263 cd PLD-MODULE-BUILD
264 %build_kernel_modules -m vboxadd -C vboxadd
265 %build_kernel_modules -m vboxdrv -C vboxdrv
266 cp -a vboxadd/Module.symvers vboxvfs
267 %build_kernel_modules -m vboxvfs -C vboxvfs -c
268 cd ..
269 %endif
270
271 %install
272 rm -rf $RPM_BUILD_ROOT
273
274 %if %{with userspace}
275 install -d \
276         $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
277         $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
278         $RPM_BUILD_ROOT/etc/rc.d/init.d
279
280 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox
281
282 install %{SOURCE5} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh
283 for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
284         install out/linux.%{outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
285         ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
286 done
287
288 %ifarch %{x8664}
289 install out/linux.%{outdir}/release/bin/VBox*.rel \
290         $RPM_BUILD_ROOT%{_libdir}/VirtualBox
291 %endif
292
293 install out/linux.%{outdir}/release/bin/VBox*.so \
294         $RPM_BUILD_ROOT%{_libdir}/VirtualBox
295 install out/linux.%{outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
296         $RPM_BUILD_ROOT%{_libdir}/VirtualBox
297
298 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
299 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
300
301 install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
302 cp -a out/linux.%{outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
303 cp -a out/linux.%{outdir}/release/bin/nls/* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
304
305 install out/linux.%{outdir}/release/bin/additions/mountvboxsf           \
306         $RPM_BUILD_ROOT%{_bindir}
307
308 %ifnarch %{x8664}
309 install -d $RPM_BUILD_ROOT%{_x_libraries}/modules/{drivers,input}
310 install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_70.so   \
311         $RPM_BUILD_ROOT%{_x_libraries}/modules/input/vboxmouse_drv.so
312 install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_70.so   \
313         $RPM_BUILD_ROOT%{_x_libraries}/modules/drivers/vboxvideo_drv.so
314 %endif
315
316 install out/linux.%{outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
317 install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{pname}.desktop
318
319 install -d $RPM_BUILD_ROOT/etc/udev/rules.d
320 install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
321 %endif
322
323 %if %{with kernel}
324 %install_kernel_modules -m PLD-MODULE-BUILD/vboxadd/vboxadd -d misc
325 %install_kernel_modules -m PLD-MODULE-BUILD/vboxdrv/vboxdrv -d misc
326 %install_kernel_modules -m PLD-MODULE-BUILD/vboxvfs/vboxvfs -d misc
327 %endif
328
329 %clean
330 rm -rf $RPM_BUILD_ROOT
331
332 %pre
333 %groupadd -g 221 -r -f vbox
334
335 %post
336 /sbin/chkconfig --add virtualbox
337 %service virtualbox restart "VirtualBox OSE"
338
339 %preun
340 if [ "$1" = "0" ]; then
341         %service virtualbox stop
342         /sbin/chkconfig --del virtualbox
343 fi
344
345 %postun
346 if [ "$1" = "0" ]; then
347         %groupremove vbox
348 fi
349
350 %post   -n kernel%{_alt_kernel}-misc-vboxadd
351 %depmod %{_kernel_ver}
352
353 %postun -n kernel%{_alt_kernel}-misc-vboxadd
354 %depmod %{_kernel_ver}
355
356 %post   -n kernel%{_alt_kernel}-misc-vboxdrv
357 %depmod %{_kernel_ver}
358
359 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
360 %depmod %{_kernel_ver}
361
362 %post   -n kernel%{_alt_kernel}-misc-vboxvfs
363 %depmod %{_kernel_ver}
364
365 %postun -n kernel%{_alt_kernel}-misc-vboxvfs
366 %depmod %{_kernel_ver}
367
368 %if %{with userspace}
369 %files
370 %defattr(644,root,root,755)
371 %doc UserManual.pdf
372 %dir %{_libdir}/VirtualBox
373 %dir %{_libdir}/VirtualBox/additions
374 %dir %{_libdir}/VirtualBox/components
375 %dir %{_libdir}/VirtualBox/nls
376 %attr(754,root,root) /etc/rc.d/init.d/virtualbox
377 %attr(755,root,root) %{_bindir}/mountvboxsf
378 %attr(755,root,root) %{_bindir}/vditool
379 %attr(755,root,root) %{_bindir}/VBox*
380 %attr(755,root,root) %{_bindir}/VirtualBox
381 %attr(755,root,root) %{_libdir}/VirtualBox/vditool
382 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
383 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
384 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
385 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
386 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
387 %attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
388 %ifarch %{x8664}
389 %attr(755,root,root) %{_libdir}/VirtualBox/VBox*.rel
390 %endif
391 %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
392 %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
393 %{_libdir}/VirtualBox/*.gc
394 %{_libdir}/VirtualBox/*.r0
395 %{_libdir}/VirtualBox/*.xpt
396 %{_libdir}/VirtualBox/additions/*
397 %{_libdir}/VirtualBox/components/*
398 %lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm
399 %lang(ca) %{_libdir}/VirtualBox/nls/*_ca.qm
400 %lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm
401 %lang(de) %{_libdir}/VirtualBox/nls/*_de.qm
402 %lang(es) %{_libdir}/VirtualBox/nls/*_es.qm
403 %lang(eu) %{_libdir}/VirtualBox/nls/*_eu.qm
404 %lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm
405 %lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm
406 %lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm
407 %lang(id) %{_libdir}/VirtualBox/nls/*_id.qm
408 %lang(it) %{_libdir}/VirtualBox/nls/*_it.qm
409 %lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm
410 %lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm
411 %lang(nl) %{_libdir}/VirtualBox/nls/*_nl.qm
412 %lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm
413 %lang(pt_BR) %{_libdir}/VirtualBox/nls/*_pt_BR.qm
414 %lang(pt_PT) %{_libdir}/VirtualBox/nls/*_pt_PT.qm
415 %lang(ro) %{_libdir}/VirtualBox/nls/*_ro.qm
416 %lang(ru) %{_libdir}/VirtualBox/nls/*_ru.qm
417 %lang(sk) %{_libdir}/VirtualBox/nls/*_sk.qm
418 %lang(sr) %{_libdir}/VirtualBox/nls/*_sr.qm
419 %lang(sv) %{_libdir}/VirtualBox/nls/*_sv.qm
420 %lang(tr) %{_libdir}/VirtualBox/nls/*_tr.qm
421 %lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm
422 %lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm
423 %{_pixmapsdir}/VBox.png
424 %{_desktopdir}/%{pname}.desktop
425
426 %files udev
427 %defattr(644,root,root,755)
428 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
429
430 # Drivers are for Guest OS, which is 32-bit.
431 %ifnarch %{x8664}
432 %files -n X11-driver-input-vboxmouse
433 %defattr(644,root,root,755)
434 %attr(755,root,root) %{_x_libraries}/modules/input/vboxmouse_drv.so
435
436 %files -n X11-driver-video-vboxvideo
437 %defattr(644,root,root,755)
438 %attr(755,root,root) %{_x_libraries}/modules/drivers/vboxvideo_drv.so
439 %endif
440 %endif
441
442 %if %{with kernel}
443 %files -n kernel%{_alt_kernel}-misc-vboxadd
444 %defattr(644,root,root,755)
445 /lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
446
447 %files -n kernel%{_alt_kernel}-misc-vboxdrv
448 %defattr(644,root,root,755)
449 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
450
451 %files -n kernel%{_alt_kernel}-misc-vboxvfs
452 %defattr(644,root,root,755)
453 /lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*
454 %endif
This page took 0.068979 seconds and 3 git commands to generate.