3 # - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS.
5 # - Package utils (and write initscripts ?) for Guest OS.
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
16 %undefine with_dist_kernel
19 Summary: VirtualBox - x86 hardware virtualizer
20 Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
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
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: alsa-lib-devel
43 BuildRequires: gcc >= 5:3.2.3
45 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
46 BuildRequires: libIDL-devel
47 BuildRequires: libuuid-devel
48 BuildRequires: libxslt-progs
49 BuildRequires: pkgconfig
50 BuildRequires: qt-devel >= 6:3.3.6
51 BuildRequires: qt-linguist
52 BuildRequires: rpmbuild(macros) >= 1.329
54 BuildRequires: xalan-c-devel >= 1.10.0
55 BuildRequires: xerces-c-devel >= 2.6.0
56 BuildRequires: xorg-lib-libXcursor-devel
57 BuildRequires: zlib-devel >= 1.2.1
58 Requires(postun): /usr/sbin/groupdel
59 Requires(pre): /usr/bin/getgid
60 Requires(pre): /usr/sbin/groupadd
63 ExclusiveArch: %{ix86} %{x8664}
64 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
73 InnoTek VirtualBox is a general-purpose full virtualizer for x86
74 hardware. Targeted at server, desktop and embedded use, it is now the
75 only professional-quality virtualization solution that is also Open
78 Some of the features of VirtualBox are:
80 Modularity: VirtualBox has an extremely modular design with
81 well-defined internal programming interfaces and a client/server
82 design. This makes it easy to control it from several interfaces at
83 once: for example, you can start a virtual machine in a typical
84 virtual machine GUI and then control that machine from the command
85 line. VirtualBox also comes with a full Software Development Kit: even
86 though it is Open Source Software, you don't have to hack the source
87 to write a new interface for VirtualBox.
89 Virtual machine descriptions in XML: the configuration settings of
90 virtual machines are stored entirely in XML and are independent of the
91 local machines. Virtual machine definitions can therefore easily be
92 ported to other computers.
94 %description -l pl.UTF-8
95 InnoTek VirtualBox jest emulatorem sprzętu x86. Kierowany do
96 zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie
97 jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym
98 również jako Otwarte Oprogramowanie.
100 Przykładowe cechy VirtualBoksa:
102 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
103 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
104 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
105 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
106 poziomu interfejsu graficznego, a później kontrolować ją z linii
107 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
108 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
110 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
111 wirtualnych są w całości przechowywane w XML-u i są niezależne od
112 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
113 konfigurację maszyny wirtualnej na inny komputer.
115 %package -n kernel%{_alt_kernel}-misc-vboxadd
116 Summary: Linux kernel module for VirtualBox
117 Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
118 Release: %{_rel}@%{_kernel_ver_str}
120 Requires(post,postun): /sbin/depmod
121 Requires: dev >= 2.9.0-7
122 %if %{with dist_kernel}
123 %requires_releq_kernel
124 Requires(postun): %releq_kernel
126 Provides: kernel(vboxadd) = %{version}-%{_rel}
128 %description -n kernel%{_alt_kernel}-misc-vboxadd
129 Linux kernel module vboxadd for VirtualBox.
131 %description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
132 Moduł jądra Linuksa vboxadd dla VirtualBoksa.
134 %package -n kernel%{_alt_kernel}-misc-vboxdrv
135 Summary: Linux kernel module for VirtualBox
136 Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
137 Release: %{_rel}@%{_kernel_ver_str}
139 Requires(post,postun): /sbin/depmod
140 Requires: dev >= 2.9.0-7
141 %if %{with dist_kernel}
142 %requires_releq_kernel
143 Requires(postun): %releq_kernel
145 Provides: kernel(vboxdrv) = %{version}-%{_rel}
147 %description -n kernel%{_alt_kernel}-misc-vboxdrv
148 Linux kernel module vboxdrv for VirtualBox.
150 %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
151 Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
153 %package -n kernel%{_alt_kernel}-misc-vboxvfs
154 Summary: Linux kernel module for VirtualBox
155 Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
156 Release: %{_rel}@%{_kernel_ver_str}
158 Requires(post,postun): /sbin/depmod
159 Requires: dev >= 2.9.0-7
160 %if %{with dist_kernel}
161 %requires_releq_kernel
162 Requires(postun): %releq_kernel
164 Provides: kernel(vboxvfs) = %{version}-%{_rel}
166 %description -n kernel%{_alt_kernel}-misc-vboxvfs
167 Linux kernel module vboxvfs for VirtualBox.
169 %description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
170 Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
172 %package -n xorg-driver-input-vboxmouse
173 Summary: X.org mouse driver for VirtualBox guest OS
174 Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBox'ie
176 Group: X11/Applications
177 Requires: xorg-xserver-server >= 1.0.99.901
179 %description -n xorg-driver-input-vboxmouse
180 X.org mouse driver for VirtualBox guest OS.
182 %description -n xorg-driver-input-vboxmouse -l pl.UTF-8
183 Sterownik myszy dla systemu gościa w VirtualBox'ie.
185 %package -n xorg-driver-video-vboxvideo
186 Summary: X.org video driver for VirtualBox guest OS
187 Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBox'ie
189 Group: X11/Applications
190 Requires: xorg-xserver-server >= 1.0.99.901
192 %description -n xorg-driver-video-vboxvideo
193 X.org video driver for VirtualBox guest OS.
195 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
196 Sterownik grafiki dla systemu gościa w VirtualBox'ie.
199 %setup -q -n %{name}-%{version}_OSE
206 KDIR="%{_builddir}/%{buildsubdir}/kernel"
208 cp -Ra %{_kernelsrcdir}/include $KDIR
210 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
212 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
215 %if %{with dist_kernel}
216 [ ! -f $KDIR/include/linux/autoconf.h ] && \
217 ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
219 [ ! -f $KDIR/include/linux/autoconf.h ] && \
220 ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
224 --with-gcc="%{__cc}" \
225 --with-g++="%{__cxx}" \
228 %if %{with userspace}
229 . ./env.sh && kmk -j1
233 rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
235 ../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
236 tar -zxf modules.tar.gz && rm -f modules.tar.gz
237 ../src/VBox/Additions/linux/export_modules modules.tar.gz
238 tar -zxf modules.tar.gz && rm -f modules.tar.gz
240 %build_kernel_modules -m vboxadd -C vboxadd
241 %build_kernel_modules -m vboxdrv -C vboxdrv
242 %build_kernel_modules -m vboxvfs -C vboxvfs
247 rm -rf $RPM_BUILD_ROOT
249 %if %{with userspace}
251 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
252 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
253 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \
254 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input
256 install %{SOURCE4} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh
257 for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
258 install out/linux.%{_outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
259 ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
262 install out/linux.%{_outdir}/release/bin/VBox*.so \
263 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
264 install out/linux.%{_outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
265 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
267 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
268 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
270 install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
271 cp -a out/linux.%{_outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
272 cp -a out/linux.%{_outdir}/release/bin/nls/VirtualBox* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
274 install out/linux.%{_outdir}/release/bin/additions/mountvboxsf \
275 $RPM_BUILD_ROOT%{_bindir}
277 install out/linux.%{_outdir}/release/bin/additions/vboxmouse_drv_71.so \
278 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
280 install out/linux.%{_outdir}/release/bin/additions/vboxvideo_drv_71.so \
281 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
283 install out/linux.%{_outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
284 install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
290 [ ! -d $MODULE ] && continue;
293 %install_kernel_modules -m $MODULE -d misc
300 rm -rf $RPM_BUILD_ROOT
303 %groupadd -g 221 -r -f vbox
306 if [ "$1" = "0" ]; then
310 %post -n kernel%{_alt_kernel}-misc-vboxadd
311 %depmod %{_kernel_ver}
313 %postun -n kernel%{_alt_kernel}-misc-vboxadd
314 %depmod %{_kernel_ver}
316 %post -n kernel%{_alt_kernel}-misc-vboxdrv
317 %depmod %{_kernel_ver}
319 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
320 %depmod %{_kernel_ver}
322 %post -n kernel%{_alt_kernel}-misc-vboxvfs
323 %depmod %{_kernel_ver}
325 %postun -n kernel%{_alt_kernel}-misc-vboxvfs
326 %depmod %{_kernel_ver}
328 %if %{with userspace}
330 %defattr(644,root,root,755)
332 %dir %{_libdir}/VirtualBox
333 %dir %{_libdir}/VirtualBox/additions
334 %dir %{_libdir}/VirtualBox/components
335 %dir %{_libdir}/VirtualBox/nls
336 %attr(755,root,root) %{_bindir}/mountvboxsf
337 %attr(755,root,root) %{_bindir}/vditool
338 %attr(755,root,root) %{_bindir}/VBox*
339 %attr(755,root,root) %{_bindir}/VirtualBox
340 %attr(755,root,root) %{_libdir}/VirtualBox/vditool
341 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
342 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
343 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
344 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
345 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
346 %attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
347 %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
348 %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
349 %{_libdir}/VirtualBox/*.gc
350 %{_libdir}/VirtualBox/*.r0
351 %{_libdir}/VirtualBox/*.xpt
352 %{_libdir}/VirtualBox/additions/*
353 %{_libdir}/VirtualBox/components/*
354 %lang(ar) %{_libdir}/VirtualBox/nls/VirtualBox_ar.qm
355 %lang(cs) %{_libdir}/VirtualBox/nls/VirtualBox_cs.qm
356 %lang(de) %{_libdir}/VirtualBox/nls/VirtualBox_de.qm
357 %lang(es) %{_libdir}/VirtualBox/nls/VirtualBox_es.qm
358 %lang(fi) %{_libdir}/VirtualBox/nls/VirtualBox_fi.qm
359 %lang(fr) %{_libdir}/VirtualBox/nls/VirtualBox_fr.qm
360 %lang(hu) %{_libdir}/VirtualBox/nls/VirtualBox_hu.qm
361 %lang(it) %{_libdir}/VirtualBox/nls/VirtualBox_it.qm
362 %lang(ja) %{_libdir}/VirtualBox/nls/VirtualBox_ja.qm
363 %lang(ko) %{_libdir}/VirtualBox/nls/VirtualBox_ko.qm
364 %lang(pl) %{_libdir}/VirtualBox/nls/VirtualBox_pl.qm
365 %lang(pt_BR) %{_libdir}/VirtualBox/nls/VirtualBox_pt_BR.qm
366 %lang(ro) %{_libdir}/VirtualBox/nls/VirtualBox_ro.qm
367 %lang(ru) %{_libdir}/VirtualBox/nls/VirtualBox_ru.qm
368 %lang(sv) %{_libdir}/VirtualBox/nls/VirtualBox_sv.qm
369 %lang(zh_CN) %{_libdir}/VirtualBox/nls/VirtualBox_zh_CN.qm
370 %lang(zh_TW) %{_libdir}/VirtualBox/nls/VirtualBox_zh_TW.qm
371 %{_pixmapsdir}/VBox.png
372 %{_desktopdir}/%{name}.desktop
374 %files -n xorg-driver-input-vboxmouse
375 %defattr(644,root,root,755)
376 %attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
378 %files -n xorg-driver-video-vboxvideo
379 %defattr(644,root,root,755)
380 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
384 %files -n kernel%{_alt_kernel}-misc-vboxadd
385 %defattr(644,root,root,755)
386 /lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
388 %files -n kernel%{_alt_kernel}-misc-vboxdrv
389 %defattr(644,root,root,755)
390 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
392 %files -n kernel%{_alt_kernel}-misc-vboxvfs
393 %defattr(644,root,root,755)
394 /lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*