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
42 BuildRequires: gcc >= 5:3.2.3
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
60 ExclusiveArch: %{ix86} %{x8664}
61 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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
75 Some of the features of VirtualBox are:
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.
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.
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.
97 Przykładowe cechy VirtualBoksa:
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ą.
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.
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}
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
123 Provides: kernel(vboxadd) = %{version}-%{_rel}
125 %description -n kernel%{_alt_kernel}-misc-vboxadd
126 Linux kernel module vboxadd for VirtualBox.
128 %description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
129 Moduł jądra Linuksa vboxadd dla VirtualBoksa.
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}
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
142 Provides: kernel(vboxdrv) = %{version}-%{_rel}
144 %description -n kernel%{_alt_kernel}-misc-vboxdrv
145 Linux kernel module vboxdrv for VirtualBox.
147 %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
148 Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
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}
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
161 Provides: kernel(vboxvfs) = %{version}-%{_rel}
163 %description -n kernel%{_alt_kernel}-misc-vboxvfs
164 Linux kernel module vboxvfs for VirtualBox.
166 %description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
167 Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
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
173 Group: X11/Applications
174 Requires: xorg-xserver-server >= 1.0.99.901
176 %description -n xorg-driver-input-vboxmouse
177 X.org mouse driver for VirtualBox guest OS.
179 %description -n xorg-driver-input-vboxmouse -l pl.UTF-8
180 Sterownik myszy dla systemu gościa w VirtualBox'ie.
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
186 Group: X11/Applications
187 Requires: xorg-xserver-server >= 1.0.99.901
189 %description -n xorg-driver-video-vboxvideo
190 X.org video driver for VirtualBox guest OS.
192 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
193 Sterownik grafiki dla systemu gościa w VirtualBox'ie.
196 %setup -q -n %{name}-%{version}_OSE
203 KDIR="%{_builddir}/%{buildsubdir}/kernel"
205 cp -Ra %{_kernelsrcdir}/include $KDIR
207 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
209 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
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
216 [ ! -f $KDIR/include/linux/autoconf.h ] && \
217 ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
221 --with-gcc="%{__cc}" \
222 --with-g++="%{__cxx}" \
225 %if %{with userspace}
226 . ./env.sh && kmk -j1
230 rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
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
237 %build_kernel_modules -m vboxadd -C vboxadd
238 %build_kernel_modules -m vboxdrv -C vboxdrv
239 %build_kernel_modules -m vboxvfs -C vboxvfs
244 rm -rf $RPM_BUILD_ROOT
246 %if %{with userspace}
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
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
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
264 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
265 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
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
271 install out/linux.%{_outdir}/release/bin/additions/mountvboxsf \
272 $RPM_BUILD_ROOT%{_bindir}
274 install out/linux.%{_outdir}/release/bin/additions/vboxmouse_drv_71.so \
275 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
277 install out/linux.%{_outdir}/release/bin/additions/vboxvideo_drv_71.so \
278 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
280 install out/linux.%{_outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
281 install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
287 [ ! -d $MODULE ] && continue;
290 %install_kernel_modules -m $MODULE -d misc
297 rm -rf $RPM_BUILD_ROOT
300 %groupadd -g 221 -r -f vbox
303 if [ "$1" = "0" ]; then
307 %post -n kernel%{_alt_kernel}-misc-vboxadd
308 %depmod %{_kernel_ver}
310 %postun -n kernel%{_alt_kernel}-misc-vboxadd
311 %depmod %{_kernel_ver}
313 %post -n kernel%{_alt_kernel}-misc-vboxdrv
314 %depmod %{_kernel_ver}
316 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
317 %depmod %{_kernel_ver}
319 %post -n kernel%{_alt_kernel}-misc-vboxvfs
320 %depmod %{_kernel_ver}
322 %postun -n kernel%{_alt_kernel}-misc-vboxvfs
323 %depmod %{_kernel_ver}
325 %if %{with userspace}
327 %defattr(644,root,root,755)
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
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
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
381 %files -n kernel%{_alt_kernel}-misc-vboxadd
382 %defattr(644,root,root,755)
383 /lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
385 %files -n kernel%{_alt_kernel}-misc-vboxdrv
386 %defattr(644,root,root,755)
387 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
389 %files -n kernel%{_alt_kernel}-misc-vboxvfs
390 %defattr(644,root,root,755)
391 /lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*