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