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