3 # - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS.
5 # - Package utils (and write initscripts ?) for Guest OS.
8 %bcond_without dist_kernel # without distribution kernel
9 %bcond_without kernel # don't build kernel module
10 %bcond_without userspace # don't build userspace package
15 %undefine with_dist_kernel
18 Summary: VirtualBox - x86 hardware virtualizer
19 Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
24 Group: Applications/Emulators
25 Source0: http://www.virtualbox.org/download/%{version}/%{name}-%{version}_OSE.tar.bz2
26 # Source0-md5: 56c074900260c109ed735c08e726fe81
27 Source1: virtualbox.init
28 Source2: http://www.virtualbox.org/download/UserManual.pdf
29 # Source2-md5: 2e5458bd5b4b9acd18cc86866e8a7284
30 Source3: %{name}.desktop
32 Patch0: %{name}-configure.patch
33 Patch1: %{name}-qt-paths.patch
34 Patch2: %{name}-shared-libstdc++.patch
35 URL: http://www.virtualbox.org/
36 BuildRequires: SDL-devel
40 BuildRequires: gcc >= 5:3.2.3
42 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
43 BuildRequires: libIDL-devel
44 BuildRequires: libuuid-devel
45 BuildRequires: libxslt-progs
46 BuildRequires: qt-devel >= 6:3.3.6
47 BuildRequires: qt-linguist
48 BuildRequires: rpmbuild(macros) >= 1.329
49 BuildRequires: xalan-c-devel >= 1.10.0
50 #BuildRequires: xcursor-devel
51 BuildRequires: xerces-c-devel >= 2.6.0
52 BuildRequires: xorg-lib-libXcursor-devel
53 BuildRequires: zlib-devel >= 1.2.1
54 Requires(postun): /usr/sbin/groupdel
55 Requires(pre): /usr/bin/getgid
56 Requires(pre): /usr/sbin/groupadd
59 ExclusiveArch: %{ix86} %{x8664}
60 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69 InnoTek VirtualBox is a general-purpose full virtualizer for x86
70 hardware. Targeted at server, desktop and embedded use, it is now the
71 only professional-quality virtualization solution that is also Open
74 Some of the features of VirtualBox are:
76 Modularity: VirtualBox has an extremely modular design with
77 well-defined internal programming interfaces and a client/server
78 design. This makes it easy to control it from several interfaces at
79 once: for example, you can start a virtual machine in a typical
80 virtual machine GUI and then control that machine from the command
81 line. VirtualBox also comes with a full Software Development Kit: even
82 though it is Open Source Software, you don't have to hack the source
83 to write a new interface for VirtualBox.
85 Virtual machine descriptions in XML: the configuration settings of
86 virtual machines are stored entirely in XML and are independent of the
87 local machines. Virtual machine definitions can therefore easily be
88 ported to other computers.
90 %description -l pl.UTF-8
91 InnoTek VirtualBox jest emulatorem sprzętu x86. Kierowany do
92 zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie
93 jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym
94 również jako Otwarte Oprogramowanie.
96 Przykładowe cechy VirtualBoksa:
98 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
99 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
100 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
101 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
102 poziomu interfejsu graficznego, a później kontrolować ją z linii
103 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
104 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
106 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
107 wirtualnych są w całości przechowywane w XML-u i są niezależne od
108 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
109 konfigurację maszyny wirtualnej na inny komputer.
111 %package -n kernel%{_alt_kernel}-misc-vboxadd
112 Summary: Linux kernel module for VirtualBox
113 Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
114 Release: %{_rel}@%{_kernel_ver_str}
116 Requires(post,postun): /sbin/depmod
117 Requires: dev >= 2.9.0-7
118 %if %{with dist_kernel}
119 %requires_releq_kernel
120 Requires(postun): %releq_kernel
122 Provides: kernel(vboxadd) = %{version}-%{_rel}
124 %description -n kernel%{_alt_kernel}-misc-vboxadd
125 Linux kernel module vboxadd for VirtualBox.
127 %description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
128 Moduł jądra Linuksa vboxadd dla VirtualBoksa.
130 %package -n kernel%{_alt_kernel}-misc-vboxdrv
131 Summary: Linux kernel module for VirtualBox
132 Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
133 Release: %{_rel}@%{_kernel_ver_str}
135 Requires(post,postun): /sbin/depmod
136 Requires: dev >= 2.9.0-7
137 %if %{with dist_kernel}
138 %requires_releq_kernel
139 Requires(postun): %releq_kernel
141 Provides: kernel(vboxdrv) = %{version}-%{_rel}
143 %description -n kernel%{_alt_kernel}-misc-vboxdrv
144 Linux kernel module vboxdrv for VirtualBox.
146 %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
147 Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
149 %package -n kernel%{_alt_kernel}-misc-vboxvfs
150 Summary: Linux kernel module for VirtualBox
151 Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
152 Release: %{_rel}@%{_kernel_ver_str}
154 Requires(post,postun): /sbin/depmod
155 Requires: dev >= 2.9.0-7
156 %if %{with dist_kernel}
157 %requires_releq_kernel
158 Requires(postun): %releq_kernel
160 Provides: kernel(vboxvfs) = %{version}-%{_rel}
162 %description -n kernel%{_alt_kernel}-misc-vboxvfs
163 Linux kernel module vboxvfs for VirtualBox.
165 %description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
166 Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
168 %package -n xorg-driver-input-vboxmouse
169 Summary: X.org mouse driver for VirtualBox guest OS
170 Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBox'ie
172 Group: X11/Applications
173 Requires: xorg-xserver-server >= 1.0.99.901
175 %description -n xorg-driver-input-vboxmouse
176 X.org mouse driver for VirtualBox guest OS.
178 %description -n xorg-driver-input-vboxmouse -l pl.UTF-8
179 Sterownik myszy dla systemu gościa w VirtualBox'ie.
181 %package -n xorg-driver-video-vboxvideo
182 Summary: X.org video driver for VirtualBox guest OS
183 Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBox'ie
185 Group: X11/Applications
186 Requires: xorg-xserver-server >= 1.0.99.901
188 %description -n xorg-driver-video-vboxvideo
189 X.org video driver for VirtualBox guest OS.
191 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
192 Sterownik grafiki dla systemu gościa w VirtualBox'ie.
195 %setup -q -n %{name}-%{version}_OSE
202 KDIR="%{_builddir}/%{buildsubdir}/kernel"
204 cp -Ra %{_kernelsrcdir}/include $KDIR
206 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
208 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
211 %if %{with dist_kernel}
212 [ ! -f $KDIR/include/linux/autoconf.h ] && \
213 ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
215 [ ! -f $KDIR/include/linux/autoconf.h ] && \
216 ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
220 --with-gcc="%{__cc}" \
221 --with-g++="%{__cxx}" \
224 %if %{with userspace}
225 . ./env.sh && kmk -j1
229 rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
231 ../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
232 tar -zxf modules.tar.gz && rm -f modules.tar.gz
233 ../src/VBox/Additions/linux/export_modules modules.tar.gz
234 tar -zxf modules.tar.gz && rm -f modules.tar.gz
236 %build_kernel_modules -m vboxadd -C vboxadd
237 %build_kernel_modules -m vboxdrv -C vboxdrv
238 %build_kernel_modules -m vboxvfs -C vboxvfs
243 rm -rf $RPM_BUILD_ROOT
245 %if %{with userspace}
247 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
248 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
249 $RPM_BUILD_ROOT/etc/rc.d/init.d \
250 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \
251 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input
253 for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
254 install out/linux.%{_outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
255 install %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/$f
258 install out/linux.%{_outdir}/release/bin/VBox*.so \
259 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
260 install out/linux.%{_outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
261 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
263 cp -a out/linux.%{_outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
265 install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
266 cp -a out/linux.%{_outdir}/release/bin/nls/VirtualBox* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
268 install out/linux.%{_outdir}/release/bin/additions/mountvboxsf \
269 $RPM_BUILD_ROOT%{_bindir}
271 install out/linux.%{_outdir}/release/bin/additions/vboxmouse_drv_71.so \
272 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
274 install out/linux.%{_outdir}/release/bin/additions/vboxvideo_drv_71.so \
275 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
277 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox
279 install out/linux.%{_outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
280 install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
286 [ ! -d $MODULE ] && continue;
289 %install_kernel_modules -m $MODULE -d misc
296 rm -rf $RPM_BUILD_ROOT
299 %groupadd -g 221 -r -f vbox
302 /sbin/chkconfig --add virtualbox
303 %service virtualbox restart "VBoxSVC daemon"
304 if [ "$1" = 1 ]; then
305 %banner -e %{name} <<'EOF'
306 Remember to add users which will use VirtualBox to vbox group or they won't be
307 able to write to /dev/vboxdrv.
313 if [ "$1" = "0" ]; then
314 %service virtualbox stop
315 /sbin/chkconfig --del virtualbox
319 if [ "$1" = "0" ]; then
323 %post -n kernel%{_alt_kernel}-misc-vboxadd
324 %depmod %{_kernel_ver}
326 %postun -n kernel%{_alt_kernel}-misc-vboxadd
327 %depmod %{_kernel_ver}
329 %post -n kernel%{_alt_kernel}-misc-vboxdrv
330 %depmod %{_kernel_ver}
332 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
333 %depmod %{_kernel_ver}
335 %post -n kernel%{_alt_kernel}-misc-vboxvfs
336 %depmod %{_kernel_ver}
338 %postun -n kernel%{_alt_kernel}-misc-vboxvfs
339 %depmod %{_kernel_ver}
341 %if %{with userspace}
343 %defattr(644,root,root,755)
345 %dir %{_libdir}/VirtualBox
346 %dir %{_libdir}/VirtualBox/components
347 %dir %{_libdir}/VirtualBox/nls
348 %attr(755,root,root) %{_bindir}/VBox*
349 %attr(755,root,root) %{_bindir}/VirtualBox
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/VirtualBox
356 %attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
357 %attr(755,root,root) %{_bindir}/mountvboxsf
358 %attr(755,root,root) %{_bindir}/vditool
359 %{_libdir}/VirtualBox/*.gc
360 %{_libdir}/VirtualBox/*.r0
361 %{_libdir}/VirtualBox/*.xpt
362 %{_libdir}/VirtualBox/vditool
363 %{_libdir}/VirtualBox/components/*
364 %lang(ar) %{_libdir}/VirtualBox/nls/VirtualBox_ar.qm
365 %lang(cs) %{_libdir}/VirtualBox/nls/VirtualBox_cs.qm
366 %lang(de) %{_libdir}/VirtualBox/nls/VirtualBox_de.qm
367 %lang(es) %{_libdir}/VirtualBox/nls/VirtualBox_es.qm
368 %lang(fi) %{_libdir}/VirtualBox/nls/VirtualBox_fi.qm
369 %lang(fr) %{_libdir}/VirtualBox/nls/VirtualBox_fr.qm
370 %lang(hu) %{_libdir}/VirtualBox/nls/VirtualBox_hu.qm
371 %lang(it) %{_libdir}/VirtualBox/nls/VirtualBox_it.qm
372 %lang(ja) %{_libdir}/VirtualBox/nls/VirtualBox_ja.qm
373 %lang(ko) %{_libdir}/VirtualBox/nls/VirtualBox_ko.qm
374 %lang(pl) %{_libdir}/VirtualBox/nls/VirtualBox_pl.qm
375 %lang(pt_BR) %{_libdir}/VirtualBox/nls/VirtualBox_pt_BR.qm
376 %lang(ro) %{_libdir}/VirtualBox/nls/VirtualBox_ro.qm
377 %lang(ru) %{_libdir}/VirtualBox/nls/VirtualBox_ru.qm
378 %lang(sv) %{_libdir}/VirtualBox/nls/VirtualBox_sv.qm
379 %lang(zh_CN) %{_libdir}/VirtualBox/nls/VirtualBox_zh_CN.qm
380 %lang(zh_TW) %{_libdir}/VirtualBox/nls/VirtualBox_zh_TW.qm
381 %attr(754,root,root) /etc/rc.d/init.d/virtualbox
382 %{_pixmapsdir}/VBox.png
383 %{_desktopdir}/%{name}.desktop
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
395 %files -n kernel%{_alt_kernel}-misc-vboxadd
396 %defattr(644,root,root,755)
397 /lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
399 %files -n kernel%{_alt_kernel}-misc-vboxdrv
400 %defattr(644,root,root,755)
401 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
403 %files -n kernel%{_alt_kernel}-misc-vboxvfs
404 %defattr(644,root,root,755)
405 /lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*