]> git.pld-linux.org Git - packages/VirtualBox.git/blame - VirtualBox.spec
- rel 5; rel files only on x86_64
[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
9a6c7384 16%define rel 5
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
37667629
AM
229%ifarch %{x8664} %{ix86}
230if [ -d $KDIR/include/asm-x86 ]; then
231ln -sf $KDIR/include/asm-x86 $KDIR/include/asm
05f1b1f5 232%ifarch %{x8664}
37667629
AM
233else
234 ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm
05f1b1f5 235%else
37667629
AM
236else
237 ln -sf $KDIR/include/asm-i386 $KDIR/include/asm
238%endif
239fi
05f1b1f5 240%endif
74268e47 241
242%if %{with dist_kernel}
23d9d34e 243ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h
74268e47 244%else
23d9d34e 245ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h
74268e47 246%endif
05f1b1f5 247
106d8451 248./configure \
249 --with-gcc="%{__cc}" \
05f1b1f5 250 --with-g++="%{__cxx}" \
251 --with-linux="$KDIR"
48363591 252
74268e47 253%if %{with userspace}
254. ./env.sh && kmk -j1
48363591 255%endif
74268e47 256
257%if %{with kernel}
258rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
259
260../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \
261 tar -zxf modules.tar.gz && rm -f modules.tar.gz
262../src/VBox/Additions/linux/export_modules modules.tar.gz
263 tar -zxf modules.tar.gz && rm -f modules.tar.gz
9effb3d7 264
058b967a
AM
265%ifarch %{x8664}
266# HACK, is this really safe on x86_64?
267sed -i -e 's:#.*define.*RTMEMALLOC_EXEC_HEAP::g' vboxadd/r0drv/linux/alloc-r0drv-linux.c vboxvfs/r0drv/linux/alloc-r0drv-linux.c
268%endif
269
74268e47 270%build_kernel_modules -m vboxadd -C vboxadd
271%build_kernel_modules -m vboxdrv -C vboxdrv
0da669b5 272cp -a vboxadd/Module.symvers vboxvfs
74268e47 273%build_kernel_modules -m vboxvfs -C vboxvfs
274cd ..
d1c4ec5b 275%endif
48363591 276
277%install
278rm -rf $RPM_BUILD_ROOT
279
d1c4ec5b 280%if %{with userspace}
48363591 281install -d \
d89980c7 282 $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \
05f1b1f5 283 $RPM_BUILD_ROOT%{_libdir}/VirtualBox \
a70507fb 284 $RPM_BUILD_ROOT/etc/rc.d/init.d \
09c79ddb 285 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \
286 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input
05f1b1f5 287
a70507fb 288install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox
289
290install %{SOURCE5} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh
09c79ddb 291for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do
fe3d1798 292 install out/linux.%{outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f
fdd1c725 293 ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
05f1b1f5 294done
295
9a6c7384
AM
296%ifarch %{x8664}
297install out/linux.%{outdir}/release/bin/VBox*.rel \
298 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
299%endif
300
301install out/linux.%{outdir}/release/bin/VBox*.so \
48363591 302 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
fe3d1798 303install out/linux.%{outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
48363591 304 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
305
916ab34d 306install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
8833bce1 307install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
916ab34d 308
5877f605 309install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
fe3d1798
JB
310cp -a out/linux.%{outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
311cp -a out/linux.%{outdir}/release/bin/nls/* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
8833bce1 312
fe3d1798 313install out/linux.%{outdir}/release/bin/additions/mountvboxsf \
09c79ddb 314 $RPM_BUILD_ROOT%{_bindir}
315
53741724 316install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_14.so \
09c79ddb 317 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
318
53741724 319install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_14.so \
09c79ddb 320 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
321
fe3d1798 322install out/linux.%{outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
a70507fb 323install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
d1c4ec5b
JB
324%endif
325
326%if %{with kernel}
33233365 327install -d $RPM_BUILD_ROOT/etc/udev/rules.d
328install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
329
74268e47 330cd PLD-MODULE-BUILD
331for MODULE in *; do
332 [ ! -d $MODULE ] && continue;
333
334 cd $MODULE
335 %install_kernel_modules -m $MODULE -d misc
336 cd ..
337done
338cd ..
d1c4ec5b 339%endif
05f1b1f5 340
48363591 341%clean
342rm -rf $RPM_BUILD_ROOT
343
3b63d3e8 344%pre
345%groupadd -g 221 -r -f vbox
346
3b63d3e8 347%postun
348if [ "$1" = "0" ]; then
349 %groupremove vbox
350fi
351
74268e47 352%post -n kernel%{_alt_kernel}-misc-vboxadd
353%depmod %{_kernel_ver}
354
355%postun -n kernel%{_alt_kernel}-misc-vboxadd
356%depmod %{_kernel_ver}
357
48363591 358%post -n kernel%{_alt_kernel}-misc-vboxdrv
359%depmod %{_kernel_ver}
360
361%postun -n kernel%{_alt_kernel}-misc-vboxdrv
362%depmod %{_kernel_ver}
363
74268e47 364%post -n kernel%{_alt_kernel}-misc-vboxvfs
365%depmod %{_kernel_ver}
366
367%postun -n kernel%{_alt_kernel}-misc-vboxvfs
368%depmod %{_kernel_ver}
369
d1c4ec5b 370%if %{with userspace}
48363591 371%files
372%defattr(644,root,root,755)
7d1c0a63 373%doc UserManual.pdf
8833bce1 374%dir %{_libdir}/VirtualBox
916ab34d 375%dir %{_libdir}/VirtualBox/additions
8833bce1 376%dir %{_libdir}/VirtualBox/components
377%dir %{_libdir}/VirtualBox/nls
a70507fb 378%attr(754,root,root) /etc/rc.d/init.d/virtualbox
4c18fded 379%attr(755,root,root) %{_bindir}/mountvboxsf
380%attr(755,root,root) %{_bindir}/vditool
48363591 381%attr(755,root,root) %{_bindir}/VBox*
382%attr(755,root,root) %{_bindir}/VirtualBox
fdd1c725 383%attr(755,root,root) %{_libdir}/VirtualBox/vditool
05f1b1f5 384%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
385%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
386%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
387%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
388%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
8833bce1 389%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
9a6c7384
AM
390%ifarch %{x8664}
391%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.rel
392%endif
fdd1c725 393%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
394%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
05f1b1f5 395%{_libdir}/VirtualBox/*.gc
396%{_libdir}/VirtualBox/*.r0
05f1b1f5 397%{_libdir}/VirtualBox/*.xpt
916ab34d 398%{_libdir}/VirtualBox/additions/*
05f1b1f5 399%{_libdir}/VirtualBox/components/*
89ce7412 400%lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm
401%lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm
402%lang(de) %{_libdir}/VirtualBox/nls/*_de.qm
403%lang(es) %{_libdir}/VirtualBox/nls/*_es.qm
404%lang(eu) %{_libdir}/VirtualBox/nls/*_eu.qm
405%lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm
406%lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm
407%lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm
408%lang(it) %{_libdir}/VirtualBox/nls/*_it.qm
409%lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm
410%lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm
411%lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm
412%lang(pt_BR) %{_libdir}/VirtualBox/nls/*_pt_BR.qm
413%lang(pt_PT) %{_libdir}/VirtualBox/nls/*_pt_PT.qm
414%lang(ro) %{_libdir}/VirtualBox/nls/*_ro.qm
415%lang(ru) %{_libdir}/VirtualBox/nls/*_ru.qm
416%lang(sk) %{_libdir}/VirtualBox/nls/*_sk.qm
417%lang(sv) %{_libdir}/VirtualBox/nls/*_sv.qm
418%lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm
419%lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm
d89980c7 420%{_pixmapsdir}/VBox.png
421%{_desktopdir}/%{name}.desktop
09c79ddb 422
23d9d34e 423# Drivers are for Guest OS, which is 32-bit.
424%ifnarch %{x8664}
09c79ddb 425%files -n xorg-driver-input-vboxmouse
426%defattr(644,root,root,755)
427%attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
428
429%files -n xorg-driver-video-vboxvideo
430%defattr(644,root,root,755)
431%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
d1c4ec5b 432%endif
23d9d34e 433%endif
48363591 434
d1c4ec5b 435%if %{with kernel}
74268e47 436%files -n kernel%{_alt_kernel}-misc-vboxadd
437%defattr(644,root,root,755)
438/lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
439
d1c4ec5b 440%files -n kernel%{_alt_kernel}-misc-vboxdrv
48363591 441%defattr(644,root,root,755)
33233365 442%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
d1c4ec5b 443/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
74268e47 444
445%files -n kernel%{_alt_kernel}-misc-vboxvfs
446%defattr(644,root,root,755)
447/lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*
05f1b1f5 448%endif
This page took 0.128086 seconds and 4 git commands to generate.