3 # - Home page says that some addons should be compiled, I don't see any except.
4 # vboxaddon kernel module and {vboxmouse,vboxvideo)_drv.so. Are they required?
6 # - it seems that VBoxSVC should not be started by init script but I'm still
8 # - /dev/vboxdrv should belong to vboxusers group and have rw rights to it
9 # - Devel stuff is not packaged yet.
10 # - Now its EA ix86 x8664, but looking into autogenerated env.sh suggests that
11 # code may be compiled exclusively for i686.
12 # - use %kernel_build macros
15 %bcond_without dist_kernel # without distribution kernel
16 %bcond_without up # without up packages
17 %bcond_without smp # without SMP kernel modules
22 Summary(pl.UTF-8): VirtualBox
27 Group: Applications/Emulators
28 Source0: http://www.virtualbox.org/download/%{version}/VirtualBox-OSE-%{version}.tar.bz2
29 # Source0-md5: 70c24ccee8b5778efd8d22f9996fbec9
30 Source1: virtualbox.init
31 Patch0: %{name}-configure.patch
32 Patch1: %{name}-qt-paths.patch
33 URL: http://www.virtualbox.org/
34 BuildRequires: SDL-devel
38 BuildRequires: gcc >= 5:3.2.3
40 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
41 BuildRequires: libIDL-devel
42 BuildRequires: libuuid-devel
43 BuildRequires: libxslt-progs
44 BuildRequires: qt-devel >= 6:3.3.6
45 BuildRequires: rpmbuild(macros) >= 1.329
46 BuildRequires: xalan-c-devel >= 1.10.0
47 #BuildRequires: xcursor-devel
48 BuildRequires: xerces-c-devel >= 2.6.0
49 BuildRequires: xorg-lib-libXcursor-devel
50 BuildRequires: zlib-devel >= 1.2.1
51 Requires: kernel(vboxdrv) = %{version}-%{_rel}
52 ExclusiveArch: %{ix86} %{x8664}
53 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
62 InnoTek VirtualBox is a general-purpose full virtualizer for x86
63 hardware. Targeted at server, desktop and embedded use, it is now the
64 only professional-quality virtualization solution that is also Open
67 Some of the features of VirtualBox are:
69 Modularity: VirtualBox has an extremely modular design with
70 well-defined internal programming interfaces and a client/server
71 design. This makes it easy to control it from several interfaces at
72 once: for example, you can start a virtual machine in a typical
73 virtual machine GUI and then control that machine from the command
74 line. VirtualBox also comes with a full Software Development Kit: even
75 though it is Open Source Software, you don't have to hack the source
76 to write a new interface for VirtualBox.
78 Virtual machine descriptions in XML: the configuration settings of
79 virtual machines are stored entirely in XML and are independent of the
80 local machines. Virtual machine definitions can therefore easily be
81 ported to other computers.
83 %description -l pl.UTF-8
84 InnoTek VirtualBox jest emulatorem sprzętu x86. Kierowany do
85 zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie
86 jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym
87 również jako Otwarte Oprogramowanie.
89 Przykładowe cechy VirtualBoksa:
91 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
92 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
93 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
94 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
95 poziomu interfejsu graficznego, a później kontrolować ją z linii
96 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
97 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
99 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
100 wirtualnych są w całości przechowywane w XML-u i są niezależne od
101 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
102 konfigurację maszyny wirtualnej na inny komputer.
104 %package -n kernel%{_alt_kernel}-misc-vboxdrv
105 Summary: Linux kernel module for VirtualBox
106 Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
107 Release: %{_rel}@%{_kernel_ver_str}
109 Requires(post,postun): /sbin/depmod
110 Requires: dev >= 2.9.0-7
111 %if %{with dist_kernel}
112 %requires_releq_kernel_up
113 Requires(postun): %releq_kernel_up
115 Provides: kernel(vboxdrv) = %{version}-%{_rel}
117 %description -n kernel%{_alt_kernel}-misc-vboxdrv
118 Linux kernel module vboxdrv for VirtualBox.
120 %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
121 Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
123 %package -n kernel%{_alt_kernel}-smp-misc-vboxdrv
124 Summary: Linux SMP kernel module for VirtualBox
125 Summary(pl.UTF-8): Moduł jądra Linuksa SMP dla VirtualBoksa
126 Release: %{_rel}@%{_kernel_ver_str}
128 Requires(post,postun): /sbin/depmod
129 Requires: dev >= 2.9.0-7
130 %if %{with dist_kernel}
131 %requires_releq_kernel_smp
132 Requires(postun): %releq_kernel_smp
134 Provides: kernel(vboxdrv) = %{version}-%{_rel}
136 %description -n kernel%{_alt_kernel}-smp-misc-vboxdrv
137 Linux SMP kernel module vboxdrv for VirtualBox.
139 %description -n kernel%{_alt_kernel}-smp-misc-vboxdrv -l pl.UTF-8
140 Moduł jądra Linuksa SMP vboxdrv dla VirtualBoksa.
143 %setup -q -n %{name}-OSE-%{version}
147 cat > VBox.sh <<'EOF'
150 if [ ! -c /dev/vboxdrv ]; then
151 echo "Special character device /dev/vboxdrv doesn't exists!"
152 echo "Check your installation and if vboxdrv kernel module is loaded."
156 if [ ! -w /dev/vboxdrv ]; then
157 echo "You don't have write access to /dev/vboxdrv!"
158 echo "Correct this situation or contact with your system administrator."
162 BINFILE=$(basename "$0")
163 LD_LIBRARY_PATH=%{_libdir}/VirtualBox %{_libdir}/VirtualBox/$BINFILE ${1:+"$@"}
167 KDIR="%{_builddir}/%{buildsubdir}/kernel"
169 cp -a %{_kernelsrcdir}/include $KDIR
171 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
173 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
175 ln -sf $KDIR/include/linux/autoconf-up.h $KDIR/include/linux/autoconf.h
178 --with-gcc="%{__cc}" \
179 --with-g++="%{__cxx}" \
184 cd out/linux.%{_outdir}/release/bin/src
185 for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
186 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
190 install -d o/include/linux
191 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
192 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
193 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
194 %if %{with dist_kernel}
195 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
197 touch o/include/config/MARKER
198 ln -sf %{_kernelsrcdir}/scripts o/scripts
200 ln -sf ../../include/VBox o/include/VBox
201 ln -sf ../../include/iprt o/include/iprt
202 %{__make} -C %{_kernelsrcdir} clean \
203 SYSSRC=%{_kernelsrcdir} \
207 %{__make} -C %{_kernelsrcdir} modules \
208 CC="%{__cc}" CPP="%{__cpp}" \
209 SYSSRC=%{_kernelsrcdir} \
213 mv vboxdrv.ko ../../../../../vboxdrv-$cfg.ko
217 rm -rf $RPM_BUILD_ROOT
220 $RPM_BUILD_ROOT%{_bindir} \
221 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
222 $RPM_BUILD_ROOT/etc/rc.d/init.d
224 for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox}; do
225 install out/linux.%{_outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
226 install VBox.sh $RPM_BUILD_ROOT%{_bindir}/$f
229 install out/linux.%{_outdir}/release/bin/VBox{C,DD,DD2,REM,REMImp,RT,VMM,XML,XPCOM,XPCOMIPCC}.so \
230 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
231 install out/linux.%{_outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
232 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
234 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
235 install vboxdrv-up.ko $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko
236 %if %{with smp} && %{with dist_kernel}
237 install vboxdrv-smp.ko $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vboxdrv.ko
240 cp -a out/linux.%{_outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
241 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox
244 rm -rf $RPM_BUILD_ROOT
247 /sbin/chkconfig --add virtualbox
248 %service virtualbox restart "VBoxSVC daemon"
251 if [ "$1" = "0" ]; then
252 %service virtualbox stop
253 /sbin/chkconfig --del virtualbox
256 %post -n kernel%{_alt_kernel}-misc-vboxdrv
257 %depmod %{_kernel_ver}
259 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
260 %depmod %{_kernel_ver}
262 %if %{with smp} && %{with dist_kernel}
263 %post -n kernel%{_alt_kernel}-smp-misc-vboxdrv
264 %depmod %{_kernel_ver}smp
266 %postun -n kernel%{_alt_kernel}-smp-misc-vboxdrv
267 %depmod %{_kernel_ver}smp
271 %defattr(644,root,root,755)
272 %dir %{_libdir}/VirtualBox
273 %dir %{_libdir}/VirtualBox/components
274 %attr(755,root,root) %{_bindir}/VBox*
275 %attr(755,root,root) %{_bindir}/VirtualBox
276 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
277 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
278 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
279 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
280 %attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
281 %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
282 %{_libdir}/VirtualBox/*.gc
283 %{_libdir}/VirtualBox/*.r0
284 %{_libdir}/VirtualBox/VBox*.so
285 %{_libdir}/VirtualBox/*.xpt
286 %{_libdir}/VirtualBox/components/*
287 %attr(754,root,root) /etc/rc.d/init.d/virtualbox
289 %if %{with up} || %{without dist_kernel}
290 %files -n kernel%{_alt_kernel}-misc-vboxdrv
291 %defattr(644,root,root,755)
292 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko.gz
295 %if %{with smp} && %{with dist_kernel}
296 %files -n kernel%{_alt_kernel}-smp-misc-vboxdrv
297 %defattr(644,root,root,755)
298 /lib/modules/%{_kernel_ver}smp/misc/vboxdrv.ko.gz