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
217 KDIR="%{_builddir}/%{buildsubdir}/kernel"
219 cp -Ra %{_kernelsrcdir}/include $KDIR
221 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
223 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
226 %if %{with dist_kernel}
227 ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
229 ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
233 --with-gcc="%{__cc}" \
234 --with-g++="%{__cxx}" \
237 %if %{with userspace}
238 . ./env.sh && kmk -j1
242 rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
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
249 %build_kernel_modules -m vboxadd -C vboxadd
250 %build_kernel_modules -m vboxdrv -C vboxdrv
251 %build_kernel_modules -m vboxvfs -C vboxvfs
256 rm -rf $RPM_BUILD_ROOT
258 %if %{with userspace}
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
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
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
276 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
277 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
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
283 install out/linux.%{_outdir}/release/bin/additions/mountvboxsf \
284 $RPM_BUILD_ROOT%{_bindir}
286 install out/linux.%{_outdir}/release/bin/additions/vboxmouse_drv_71.so \
287 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
289 install out/linux.%{_outdir}/release/bin/additions/vboxvideo_drv_71.so \
290 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
292 install out/linux.%{_outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
293 install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
299 [ ! -d $MODULE ] && continue;
302 %install_kernel_modules -m $MODULE -d misc
309 rm -rf $RPM_BUILD_ROOT
312 %groupadd -g 221 -r -f vbox
315 if [ "$1" = "0" ]; then
319 %post -n kernel%{_alt_kernel}-misc-vboxadd
320 %depmod %{_kernel_ver}
322 %postun -n kernel%{_alt_kernel}-misc-vboxadd
323 %depmod %{_kernel_ver}
325 %post -n kernel%{_alt_kernel}-misc-vboxdrv
326 %depmod %{_kernel_ver}
328 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
329 %depmod %{_kernel_ver}
331 %post -n kernel%{_alt_kernel}-misc-vboxvfs
332 %depmod %{_kernel_ver}
334 %postun -n kernel%{_alt_kernel}-misc-vboxvfs
335 %depmod %{_kernel_ver}
337 %if %{with userspace}
339 %defattr(644,root,root,755)
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
383 # Drivers are for Guest OS, which is 32-bit.
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
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
396 %files -n kernel%{_alt_kernel}-misc-vboxadd
397 %defattr(644,root,root,755)
398 /lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
400 %files -n kernel%{_alt_kernel}-misc-vboxdrv
401 %defattr(644,root,root,755)
402 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
404 %files -n kernel%{_alt_kernel}-misc-vboxvfs
405 %defattr(644,root,root,755)
406 /lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*