]> git.pld-linux.org Git - packages/VirtualBox.git/blame - VirtualBox.spec
- rel.3
[packages/VirtualBox.git] / VirtualBox.spec
CommitLineData
48363591 1#
2# TODO:
fe3d1798 3# - separate udev stuff from kernel package
74268e47 4# - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS.
74268e47 5# - Package SDK.
09c79ddb 6# - Package utils (and write initscripts ?) for Guest OS.
fdd1c725 7# - Add udev rule.
5f8b0a92 8# - Check License of VBoxGuestAdditions_*.iso, it's propably not GPL v2.
9# If so check if it is distributable.
48363591 10#
11# Conditional build:
12%bcond_without dist_kernel # without distribution kernel
d1c4ec5b 13%bcond_without kernel # don't build kernel module
d1c4ec5b 14%bcond_without userspace # don't build userspace package
05f1b1f5 15
e5035c7f 16%define rel 3
05f1b1f5 17
8833bce1 18%if %{without kernel}
19%undefine with_dist_kernel
20%endif
21
d1c4ec5b
JB
22Summary: VirtualBox - x86 hardware virtualizer
23Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
48363591 24Name: VirtualBox
5f8b0a92 25Version: 1.5.4
fe3d1798 26Release: %{rel}
48363591 27License: GPL v2
28Group: Applications/Emulators
5f1cec1f 29Source0: http://www.virtualbox.org/download/%{version}/%{name}-%{version}_OSE.tar.bz2
5f8b0a92 30# Source0-md5: fbebb3f04911c4c39aac27b1d3532acc
0ada78a5 31Source1: http://www.virtualbox.org/download/%{version}/UserManual.pdf
32# Source1-md5: f56f0d904013cbc0940108ed042e539d
5f8b0a92 33Source2: http://www.virtualbox.org/download/%{version}/VBoxGuestAdditions_%{version}.iso
34# Source2-md5: e021a51fc5946659b0789d134b1fd5ff
a70507fb 35Source3: %{name}.init
36Source4: %{name}.desktop
37Source5: %{name}.sh
48363591 38Patch0: %{name}-configure.patch
39Patch1: %{name}-qt-paths.patch
74268e47 40Patch2: %{name}-shared-libstdc++.patch
33233365 41Patch3: %{name}-disable-xclient-build.patch
48363591 42URL: http://www.virtualbox.org/
43BuildRequires: SDL-devel
0bf43862 44BuildRequires: alsa-lib-devel
e5aaadde 45BuildRequires: bash
48363591 46BuildRequires: bcc
47BuildRequires: bin86
eba4b2aa 48BuildRequires: gcc >= 5:3.2.3
48363591 49BuildRequires: iasl
50%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
51BuildRequires: libIDL-devel
52BuildRequires: libuuid-devel
e5aaadde 53BuildRequires: libxslt-progs
0bf43862 54BuildRequires: pkgconfig
9effb3d7 55BuildRequires: pulseaudio-devel
e5aaadde 56BuildRequires: qt-devel >= 6:3.3.6
d6f0c54e 57BuildRequires: qt-linguist
48363591 58BuildRequires: rpmbuild(macros) >= 1.329
0bf43862 59BuildRequires: which
e5aaadde 60BuildRequires: xalan-c-devel >= 1.10.0
e5aaadde 61BuildRequires: xerces-c-devel >= 2.6.0
eba4b2aa 62BuildRequires: xorg-lib-libXcursor-devel
e5aaadde 63BuildRequires: zlib-devel >= 1.2.1
23d9d34e 64%ifarch %{x8664}
65BuildRequires: gcc-multilib
66BuildRequires: libstdc++-multilib-devel
67# TODO: How to add glibc-devel.i686 here ?
68%endif
5f1cec1f
ER
69Requires(postun): /usr/sbin/groupdel
70Requires(pre): /usr/bin/getgid
71Requires(pre): /usr/sbin/groupadd
fb661e50 72Suggests: gxmessage
5f1cec1f 73Provides: group(vbox)
eba4b2aa 74ExclusiveArch: %{ix86} %{x8664}
48363591 75BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76
eba4b2aa 77%ifarch %{x8664}
fe3d1798 78%define outdir amd64
5088674d 79%else
fe3d1798 80%define outdir x86
5088674d 81%endif
82
48363591 83%description
84InnoTek VirtualBox is a general-purpose full virtualizer for x86
85hardware. Targeted at server, desktop and embedded use, it is now the
86only professional-quality virtualization solution that is also Open
87Source Software.
88
89Some of the features of VirtualBox are:
90
91Modularity: VirtualBox has an extremely modular design with
92well-defined internal programming interfaces and a client/server
93design. This makes it easy to control it from several interfaces at
94once: for example, you can start a virtual machine in a typical
95virtual machine GUI and then control that machine from the command
96line. VirtualBox also comes with a full Software Development Kit: even
97though it is Open Source Software, you don't have to hack the source
98to write a new interface for VirtualBox.
99
100Virtual machine descriptions in XML: the configuration settings of
101virtual machines are stored entirely in XML and are independent of the
102local machines. Virtual machine definitions can therefore easily be
103ported to other computers.
104
fd8fc899
JR
105%description -l pl.UTF-8
106InnoTek VirtualBox jest emulatorem sprzętu x86. Kierowany do
107zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie
108jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym
109również jako Otwarte Oprogramowanie.
48363591 110
fd8fc899 111Przykładowe cechy VirtualBoksa:
48363591 112
fd8fc899
JR
113Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
114dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
115klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
116różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
117poziomu interfejsu graficznego, a później kontrolować ją z linii
118poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
119pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
48363591 120
fd8fc899
JR
121Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
122wirtualnych są w całości przechowywane w XML-u i są niezależne od
123lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
124konfigurację maszyny wirtualnej na inny komputer.
48363591 125
74268e47 126%package -n kernel%{_alt_kernel}-misc-vboxadd
127Summary: Linux kernel module for VirtualBox
128Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
fe3d1798 129Release: %{rel}@%{_kernel_ver_str}
74268e47 130Group: Base/Kernel
131Requires(post,postun): /sbin/depmod
132Requires: dev >= 2.9.0-7
133%if %{with dist_kernel}
134%requires_releq_kernel
135Requires(postun): %releq_kernel
136%endif
fe3d1798 137Provides: kernel(vboxadd) = %{version}-%{rel}
74268e47 138
139%description -n kernel%{_alt_kernel}-misc-vboxadd
140Linux kernel module vboxadd for VirtualBox.
141
142%description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8
143Moduł jądra Linuksa vboxadd dla VirtualBoksa.
144
48363591 145%package -n kernel%{_alt_kernel}-misc-vboxdrv
eba4b2aa 146Summary: Linux kernel module for VirtualBox
4dab3322 147Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
fe3d1798 148Release: %{rel}@%{_kernel_ver_str}
48363591 149Group: Base/Kernel
150Requires(post,postun): /sbin/depmod
151Requires: dev >= 2.9.0-7
152%if %{with dist_kernel}
d6f0c54e 153%requires_releq_kernel
154Requires(postun): %releq_kernel
48363591 155%endif
fe3d1798 156Provides: kernel(vboxdrv) = %{version}-%{rel}
48363591 157
158%description -n kernel%{_alt_kernel}-misc-vboxdrv
eba4b2aa 159Linux kernel module vboxdrv for VirtualBox.
48363591 160
fd8fc899
JR
161%description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
162Moduł jądra Linuksa vboxdrv dla VirtualBoksa.
48363591 163
74268e47 164%package -n kernel%{_alt_kernel}-misc-vboxvfs
165Summary: Linux kernel module for VirtualBox
166Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
fe3d1798 167Release: %{rel}@%{_kernel_ver_str}
74268e47 168Group: Base/Kernel
169Requires(post,postun): /sbin/depmod
170Requires: dev >= 2.9.0-7
171%if %{with dist_kernel}
172%requires_releq_kernel
173Requires(postun): %releq_kernel
174%endif
fe3d1798 175Provides: kernel(vboxvfs) = %{version}-%{rel}
74268e47 176
177%description -n kernel%{_alt_kernel}-misc-vboxvfs
178Linux kernel module vboxvfs for VirtualBox.
179
180%description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8
181Moduł jądra Linuksa vboxvfs dla VirtualBoksa.
182
09c79ddb 183%package -n xorg-driver-input-vboxmouse
184Summary: X.org mouse driver for VirtualBox guest OS
fe3d1798
JB
185Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBoksie
186Release: %{rel}
09c79ddb 187Group: X11/Applications
188Requires: xorg-xserver-server >= 1.0.99.901
189
190%description -n xorg-driver-input-vboxmouse
191X.org mouse driver for VirtualBox guest OS.
192
193%description -n xorg-driver-input-vboxmouse -l pl.UTF-8
fe3d1798 194Sterownik myszy dla systemu gościa w VirtualBoksie.
09c79ddb 195
196%package -n xorg-driver-video-vboxvideo
197Summary: X.org video driver for VirtualBox guest OS
fe3d1798
JB
198Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie
199Release: %{rel}
09c79ddb 200Group: X11/Applications
201Requires: xorg-xserver-server >= 1.0.99.901
202
203%description -n xorg-driver-video-vboxvideo
204X.org video driver for VirtualBox guest OS.
205
206%description -n xorg-driver-video-vboxvideo -l pl.UTF-8
fe3d1798 207Sterownik grafiki dla systemu gościa w VirtualBoksie.
09c79ddb 208
48363591 209%prep
d6f0c54e 210%setup -q -n %{name}-%{version}_OSE
48363591 211%patch0 -p0
212%patch1 -p0
74268e47 213%patch2 -p1
23d9d34e 214
33233365 215%ifarch %{x8664}
216%patch3 -p1
217%endif
218
219cat <<'EOF' > udev.conf
220KERNEL=="vboxdrv", NAME="%k", GROUP="vbox", MODE="0660"
221EOF
23d9d34e 222
fdd1c725 223install %{SOURCE1} .
fa19f650 224
48363591 225%build
05f1b1f5 226KDIR="%{_builddir}/%{buildsubdir}/kernel"
227mkdir -p $KDIR
74268e47 228cp -Ra %{_kernelsrcdir}/include $KDIR
05f1b1f5 229%ifarch %{x8664}
230ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
231%else
232ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
233%endif
74268e47 234
235%if %{with dist_kernel}
23d9d34e 236ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
74268e47 237%else
23d9d34e 238ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
74268e47 239%endif
05f1b1f5 240
106d8451 241./configure \
242 --with-gcc="%{__cc}" \
05f1b1f5 243 --with-g++="%{__cxx}" \
244 --with-linux="$KDIR"
48363591 245
74268e47 246%if %{with userspace}
247. ./env.sh && kmk -j1
48363591 248%endif
74268e47 249
250%if %{with kernel}
251rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
252
253../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
254 tar -zxf modules.tar.gz && rm -f modules.tar.gz
255../src/VBox/Additions/linux/export_modules modules.tar.gz
256 tar -zxf modules.tar.gz && rm -f modules.tar.gz
9effb3d7 257
74268e47 258%build_kernel_modules -m vboxadd -C vboxadd
259%build_kernel_modules -m vboxdrv -C vboxdrv
0da669b5 260cp -a vboxadd/Module.symvers vboxvfs
74268e47 261%build_kernel_modules -m vboxvfs -C vboxvfs
262cd ..
d1c4ec5b 263%endif
48363591 264
265%install
266rm -rf $RPM_BUILD_ROOT
267
d1c4ec5b 268%if %{with userspace}
48363591 269install -d \
d89980c7 270 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
05f1b1f5 271 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
a70507fb 272 $RPM_BUILD_ROOT/etc/rc.d/init.d \
09c79ddb 273 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \
274 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input
05f1b1f5 275
a70507fb 276install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox
277
278install %{SOURCE5} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh
09c79ddb 279for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
fe3d1798 280 install out/linux.%{outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
fdd1c725 281 ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
05f1b1f5 282done
283
fe3d1798 284install out/linux.%{outdir}/release/bin/VBox*.so \
48363591 285 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
fe3d1798 286install out/linux.%{outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
48363591 287 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
288
916ab34d 289install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
8833bce1 290install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
916ab34d 291
5877f605 292install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
fe3d1798
JB
293cp -a out/linux.%{outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
294cp -a out/linux.%{outdir}/release/bin/nls/* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
8833bce1 295
fe3d1798 296install out/linux.%{outdir}/release/bin/additions/mountvboxsf \
09c79ddb 297 $RPM_BUILD_ROOT%{_bindir}
298
53741724 299install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_14.so \
09c79ddb 300 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
301
53741724 302install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_14.so \
09c79ddb 303 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
304
fe3d1798 305install out/linux.%{outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
a70507fb 306install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
d1c4ec5b
JB
307%endif
308
309%if %{with kernel}
33233365 310install -d $RPM_BUILD_ROOT/etc/udev/rules.d
311install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
312
74268e47 313cd PLD-MODULE-BUILD
314for MODULE in *; do
315 [ ! -d $MODULE ] && continue;
316
317 cd $MODULE
318 %install_kernel_modules -m $MODULE -d misc
319 cd ..
320done
321cd ..
d1c4ec5b 322%endif
05f1b1f5 323
48363591 324%clean
325rm -rf $RPM_BUILD_ROOT
326
3b63d3e8 327%pre
328%groupadd -g 221 -r -f vbox
329
3b63d3e8 330%postun
331if [ "$1" = "0" ]; then
332 %groupremove vbox
333fi
334
74268e47 335%post -n kernel%{_alt_kernel}-misc-vboxadd
336%depmod %{_kernel_ver}
337
338%postun -n kernel%{_alt_kernel}-misc-vboxadd
339%depmod %{_kernel_ver}
340
48363591 341%post -n kernel%{_alt_kernel}-misc-vboxdrv
342%depmod %{_kernel_ver}
343
344%postun -n kernel%{_alt_kernel}-misc-vboxdrv
345%depmod %{_kernel_ver}
346
74268e47 347%post -n kernel%{_alt_kernel}-misc-vboxvfs
348%depmod %{_kernel_ver}
349
350%postun -n kernel%{_alt_kernel}-misc-vboxvfs
351%depmod %{_kernel_ver}
352
d1c4ec5b 353%if %{with userspace}
48363591 354%files
355%defattr(644,root,root,755)
7d1c0a63 356%doc UserManual.pdf
8833bce1 357%dir %{_libdir}/VirtualBox
916ab34d 358%dir %{_libdir}/VirtualBox/additions
8833bce1 359%dir %{_libdir}/VirtualBox/components
360%dir %{_libdir}/VirtualBox/nls
a70507fb 361%attr(754,root,root) /etc/rc.d/init.d/virtualbox
4c18fded 362%attr(755,root,root) %{_bindir}/mountvboxsf
363%attr(755,root,root) %{_bindir}/vditool
48363591 364%attr(755,root,root) %{_bindir}/VBox*
365%attr(755,root,root) %{_bindir}/VirtualBox
fdd1c725 366%attr(755,root,root) %{_libdir}/VirtualBox/vditool
05f1b1f5 367%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
368%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
369%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
370%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
371%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
8833bce1 372%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
fdd1c725 373%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
374%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
05f1b1f5 375%{_libdir}/VirtualBox/*.gc
376%{_libdir}/VirtualBox/*.r0
05f1b1f5 377%{_libdir}/VirtualBox/*.xpt
916ab34d 378%{_libdir}/VirtualBox/additions/*
05f1b1f5 379%{_libdir}/VirtualBox/components/*
89ce7412 380%lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm
381%lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm
382%lang(de) %{_libdir}/VirtualBox/nls/*_de.qm
383%lang(es) %{_libdir}/VirtualBox/nls/*_es.qm
384%lang(eu) %{_libdir}/VirtualBox/nls/*_eu.qm
385%lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm
386%lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm
387%lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm
388%lang(it) %{_libdir}/VirtualBox/nls/*_it.qm
389%lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm
390%lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm
391%lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm
392%lang(pt_BR) %{_libdir}/VirtualBox/nls/*_pt_BR.qm
393%lang(pt_PT) %{_libdir}/VirtualBox/nls/*_pt_PT.qm
394%lang(ro) %{_libdir}/VirtualBox/nls/*_ro.qm
395%lang(ru) %{_libdir}/VirtualBox/nls/*_ru.qm
396%lang(sk) %{_libdir}/VirtualBox/nls/*_sk.qm
397%lang(sv) %{_libdir}/VirtualBox/nls/*_sv.qm
398%lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm
399%lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm
d89980c7 400%{_pixmapsdir}/VBox.png
401%{_desktopdir}/%{name}.desktop
09c79ddb 402
23d9d34e 403# Drivers are for Guest OS, which is 32-bit.
404%ifnarch %{x8664}
09c79ddb 405%files -n xorg-driver-input-vboxmouse
406%defattr(644,root,root,755)
407%attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
408
409%files -n xorg-driver-video-vboxvideo
410%defattr(644,root,root,755)
411%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
d1c4ec5b 412%endif
23d9d34e 413%endif
48363591 414
d1c4ec5b 415%if %{with kernel}
74268e47 416%files -n kernel%{_alt_kernel}-misc-vboxadd
417%defattr(644,root,root,755)
418/lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
419
d1c4ec5b 420%files -n kernel%{_alt_kernel}-misc-vboxdrv
48363591 421%defattr(644,root,root,755)
33233365 422%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
d1c4ec5b 423/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
74268e47 424
425%files -n kernel%{_alt_kernel}-misc-vboxvfs
426%defattr(644,root,root,755)
427/lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*
05f1b1f5 428%endif
This page took 0.627797 seconds and 4 git commands to generate.