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