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