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 Patch3: %{name}-disable-xclient-build.patch
38 URL: http://www.virtualbox.org/
39 BuildRequires: SDL-devel
40 BuildRequires: alsa-lib-devel
44 BuildRequires: gcc >= 5:3.2.3
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
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
60 BuildRequires: gcc-multilib
61 BuildRequires: libstdc++-multilib-devel
62 # TODO: How to add glibc-devel.i686 here ?
64 Requires(postun): /usr/sbin/groupdel
65 Requires(pre): /usr/bin/getgid
66 Requires(pre): /usr/sbin/groupadd
69 ExclusiveArch: %{ix86} %{x8664}
70 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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
84 Some of the features of VirtualBox are:
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.
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.
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.
106 Przykładowe cechy VirtualBoksa:
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ą.
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.
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}
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
132 Provides: kernel(vboxadd) = %{version}-%{_rel}
134 %description -n kernel%{_alt_kernel}-misc-vboxadd
135 Linux kernel module vboxadd for VirtualBox.
137 %description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
138 Moduł jądra Linuksa vboxadd dla VirtualBoksa.
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}
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
151 Provides: kernel(vboxdrv) = %{version}-%{_rel}
153 %description -n kernel%{_alt_kernel}-misc-vboxdrv
154 Linux kernel module vboxdrv for VirtualBox.
156 %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
157 Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
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}
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
170 Provides: kernel(vboxvfs) = %{version}-%{_rel}
172 %description -n kernel%{_alt_kernel}-misc-vboxvfs
173 Linux kernel module vboxvfs for VirtualBox.
175 %description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
176 Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
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
182 Group: X11/Applications
183 Requires: xorg-xserver-server >= 1.0.99.901
185 %description -n xorg-driver-input-vboxmouse
186 X.org mouse driver for VirtualBox guest OS.
188 %description -n xorg-driver-input-vboxmouse -l pl.UTF-8
189 Sterownik myszy dla systemu gościa w VirtualBox'ie.
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
195 Group: X11/Applications
196 Requires: xorg-xserver-server >= 1.0.99.901
198 %description -n xorg-driver-video-vboxvideo
199 X.org video driver for VirtualBox guest OS.
201 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
202 Sterownik grafiki dla systemu gościa w VirtualBox'ie.
205 %setup -q -n %{name}-%{version}_OSE
214 cat <<'EOF' > udev.conf
215 KERNEL=="vboxdrv", NAME="%k", GROUP="vbox", MODE="0660"
221 KDIR="%{_builddir}/%{buildsubdir}/kernel"
223 cp -Ra %{_kernelsrcdir}/include $KDIR
225 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
227 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
230 %if %{with dist_kernel}
231 ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
233 ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
237 --with-gcc="%{__cc}" \
238 --with-g++="%{__cxx}" \
241 %if %{with userspace}
242 . ./env.sh && kmk -j1
246 rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
248 ../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
249 tar -zxf modules.tar.gz && rm -f modules.tar.gz
250 ../src/VBox/Additions/linux/export_modules modules.tar.gz
251 tar -zxf modules.tar.gz && rm -f modules.tar.gz
253 %build_kernel_modules -m vboxadd -C vboxadd
254 %build_kernel_modules -m vboxdrv -C vboxdrv
255 %build_kernel_modules -m vboxvfs -C vboxvfs
260 rm -rf $RPM_BUILD_ROOT
262 %if %{with userspace}
264 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
265 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
266 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \
267 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input
269 install %{SOURCE4} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh
270 for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
271 install out/linux.%{_outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
272 ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
275 install out/linux.%{_outdir}/release/bin/VBox*.so \
276 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
277 install out/linux.%{_outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
278 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
280 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
281 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
283 install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
284 cp -a out/linux.%{_outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
285 cp -a out/linux.%{_outdir}/release/bin/nls/VirtualBox* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
287 install out/linux.%{_outdir}/release/bin/additions/mountvboxsf \
288 $RPM_BUILD_ROOT%{_bindir}
290 install out/linux.%{_outdir}/release/bin/additions/vboxmouse_drv_71.so \
291 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
293 install out/linux.%{_outdir}/release/bin/additions/vboxvideo_drv_71.so \
294 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
296 install out/linux.%{_outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
297 install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
301 install -d $RPM_BUILD_ROOT/etc/udev/rules.d
302 install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
306 [ ! -d $MODULE ] && continue;
309 %install_kernel_modules -m $MODULE -d misc
316 rm -rf $RPM_BUILD_ROOT
319 %groupadd -g 221 -r -f vbox
322 if [ "$1" = "0" ]; then
326 %post -n kernel%{_alt_kernel}-misc-vboxadd
327 %depmod %{_kernel_ver}
329 %postun -n kernel%{_alt_kernel}-misc-vboxadd
330 %depmod %{_kernel_ver}
332 %post -n kernel%{_alt_kernel}-misc-vboxdrv
333 %depmod %{_kernel_ver}
335 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
336 %depmod %{_kernel_ver}
338 %post -n kernel%{_alt_kernel}-misc-vboxvfs
339 %depmod %{_kernel_ver}
341 %postun -n kernel%{_alt_kernel}-misc-vboxvfs
342 %depmod %{_kernel_ver}
344 %if %{with userspace}
346 %defattr(644,root,root,755)
348 %dir %{_libdir}/VirtualBox
349 %dir %{_libdir}/VirtualBox/additions
350 %dir %{_libdir}/VirtualBox/components
351 %dir %{_libdir}/VirtualBox/nls
352 %attr(755,root,root) %{_bindir}/mountvboxsf
353 %attr(755,root,root) %{_bindir}/vditool
354 %attr(755,root,root) %{_bindir}/VBox*
355 %attr(755,root,root) %{_bindir}/VirtualBox
356 %attr(755,root,root) %{_libdir}/VirtualBox/vditool
357 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
358 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
359 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
360 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
361 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
362 %attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
363 %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
364 %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
365 %{_libdir}/VirtualBox/*.gc
366 %{_libdir}/VirtualBox/*.r0
367 %{_libdir}/VirtualBox/*.xpt
368 %{_libdir}/VirtualBox/additions/*
369 %{_libdir}/VirtualBox/components/*
370 %lang(ar) %{_libdir}/VirtualBox/nls/VirtualBox_ar.qm
371 %lang(cs) %{_libdir}/VirtualBox/nls/VirtualBox_cs.qm
372 %lang(de) %{_libdir}/VirtualBox/nls/VirtualBox_de.qm
373 %lang(es) %{_libdir}/VirtualBox/nls/VirtualBox_es.qm
374 %lang(fi) %{_libdir}/VirtualBox/nls/VirtualBox_fi.qm
375 %lang(fr) %{_libdir}/VirtualBox/nls/VirtualBox_fr.qm
376 %lang(hu) %{_libdir}/VirtualBox/nls/VirtualBox_hu.qm
377 %lang(it) %{_libdir}/VirtualBox/nls/VirtualBox_it.qm
378 %lang(ja) %{_libdir}/VirtualBox/nls/VirtualBox_ja.qm
379 %lang(ko) %{_libdir}/VirtualBox/nls/VirtualBox_ko.qm
380 %lang(pl) %{_libdir}/VirtualBox/nls/VirtualBox_pl.qm
381 %lang(pt_BR) %{_libdir}/VirtualBox/nls/VirtualBox_pt_BR.qm
382 %lang(ro) %{_libdir}/VirtualBox/nls/VirtualBox_ro.qm
383 %lang(ru) %{_libdir}/VirtualBox/nls/VirtualBox_ru.qm
384 %lang(sv) %{_libdir}/VirtualBox/nls/VirtualBox_sv.qm
385 %lang(zh_CN) %{_libdir}/VirtualBox/nls/VirtualBox_zh_CN.qm
386 %lang(zh_TW) %{_libdir}/VirtualBox/nls/VirtualBox_zh_TW.qm
387 %{_pixmapsdir}/VBox.png
388 %{_desktopdir}/%{name}.desktop
390 # Drivers are for Guest OS, which is 32-bit.
392 %files -n xorg-driver-input-vboxmouse
393 %defattr(644,root,root,755)
394 %attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
396 %files -n xorg-driver-video-vboxvideo
397 %defattr(644,root,root,755)
398 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
403 %files -n kernel%{_alt_kernel}-misc-vboxadd
404 %defattr(644,root,root,755)
405 /lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
407 %files -n kernel%{_alt_kernel}-misc-vboxdrv
408 %defattr(644,root,root,755)
409 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
410 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
412 %files -n kernel%{_alt_kernel}-misc-vboxvfs
413 %defattr(644,root,root,755)
414 /lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*