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