]> git.pld-linux.org Git - packages/VirtualBox.git/blame - VirtualBox.spec
- rel 4; builds and works on th 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
cd6460ea 16%define rel 4
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
335d4382 296install out/linux.%{outdir}/release/bin/VBox*.{so,rel} \
48363591 297 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
fe3d1798 298install out/linux.%{outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \
48363591 299 $RPM_BUILD_ROOT%{_libdir}/VirtualBox
300
916ab34d 301install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions
8833bce1 302install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
916ab34d 303
5877f605 304install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
fe3d1798
JB
305cp -a out/linux.%{outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox
306cp -a out/linux.%{outdir}/release/bin/nls/* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls
8833bce1 307
fe3d1798 308install out/linux.%{outdir}/release/bin/additions/mountvboxsf \
09c79ddb 309 $RPM_BUILD_ROOT%{_bindir}
310
53741724 311install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_14.so \
09c79ddb 312 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so
313
53741724 314install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_14.so \
09c79ddb 315 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
316
fe3d1798 317install out/linux.%{outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
a70507fb 318install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
d1c4ec5b
JB
319%endif
320
321%if %{with kernel}
33233365 322install -d $RPM_BUILD_ROOT/etc/udev/rules.d
323install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
324
74268e47 325cd PLD-MODULE-BUILD
326for MODULE in *; do
327 [ ! -d $MODULE ] && continue;
328
329 cd $MODULE
330 %install_kernel_modules -m $MODULE -d misc
331 cd ..
332done
333cd ..
d1c4ec5b 334%endif
05f1b1f5 335
48363591 336%clean
337rm -rf $RPM_BUILD_ROOT
338
3b63d3e8 339%pre
340%groupadd -g 221 -r -f vbox
341
3b63d3e8 342%postun
343if [ "$1" = "0" ]; then
344 %groupremove vbox
345fi
346
74268e47 347%post -n kernel%{_alt_kernel}-misc-vboxadd
348%depmod %{_kernel_ver}
349
350%postun -n kernel%{_alt_kernel}-misc-vboxadd
351%depmod %{_kernel_ver}
352
48363591 353%post -n kernel%{_alt_kernel}-misc-vboxdrv
354%depmod %{_kernel_ver}
355
356%postun -n kernel%{_alt_kernel}-misc-vboxdrv
357%depmod %{_kernel_ver}
358
74268e47 359%post -n kernel%{_alt_kernel}-misc-vboxvfs
360%depmod %{_kernel_ver}
361
362%postun -n kernel%{_alt_kernel}-misc-vboxvfs
363%depmod %{_kernel_ver}
364
d1c4ec5b 365%if %{with userspace}
48363591 366%files
367%defattr(644,root,root,755)
7d1c0a63 368%doc UserManual.pdf
8833bce1 369%dir %{_libdir}/VirtualBox
916ab34d 370%dir %{_libdir}/VirtualBox/additions
8833bce1 371%dir %{_libdir}/VirtualBox/components
372%dir %{_libdir}/VirtualBox/nls
a70507fb 373%attr(754,root,root) /etc/rc.d/init.d/virtualbox
4c18fded 374%attr(755,root,root) %{_bindir}/mountvboxsf
375%attr(755,root,root) %{_bindir}/vditool
48363591 376%attr(755,root,root) %{_bindir}/VBox*
377%attr(755,root,root) %{_bindir}/VirtualBox
fdd1c725 378%attr(755,root,root) %{_libdir}/VirtualBox/vditool
05f1b1f5 379%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
380%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
381%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
382%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
383%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
8833bce1 384%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so
fdd1c725 385%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
386%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
05f1b1f5 387%{_libdir}/VirtualBox/*.gc
388%{_libdir}/VirtualBox/*.r0
05f1b1f5 389%{_libdir}/VirtualBox/*.xpt
916ab34d 390%{_libdir}/VirtualBox/additions/*
05f1b1f5 391%{_libdir}/VirtualBox/components/*
89ce7412 392%lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm
393%lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm
394%lang(de) %{_libdir}/VirtualBox/nls/*_de.qm
395%lang(es) %{_libdir}/VirtualBox/nls/*_es.qm
396%lang(eu) %{_libdir}/VirtualBox/nls/*_eu.qm
397%lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm
398%lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm
399%lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm
400%lang(it) %{_libdir}/VirtualBox/nls/*_it.qm
401%lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm
402%lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm
403%lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm
404%lang(pt_BR) %{_libdir}/VirtualBox/nls/*_pt_BR.qm
405%lang(pt_PT) %{_libdir}/VirtualBox/nls/*_pt_PT.qm
406%lang(ro) %{_libdir}/VirtualBox/nls/*_ro.qm
407%lang(ru) %{_libdir}/VirtualBox/nls/*_ru.qm
408%lang(sk) %{_libdir}/VirtualBox/nls/*_sk.qm
409%lang(sv) %{_libdir}/VirtualBox/nls/*_sv.qm
410%lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm
411%lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm
d89980c7 412%{_pixmapsdir}/VBox.png
413%{_desktopdir}/%{name}.desktop
09c79ddb 414
23d9d34e 415# Drivers are for Guest OS, which is 32-bit.
416%ifnarch %{x8664}
09c79ddb 417%files -n xorg-driver-input-vboxmouse
418%defattr(644,root,root,755)
419%attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so
420
421%files -n xorg-driver-video-vboxvideo
422%defattr(644,root,root,755)
423%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
d1c4ec5b 424%endif
23d9d34e 425%endif
48363591 426
d1c4ec5b 427%if %{with kernel}
74268e47 428%files -n kernel%{_alt_kernel}-misc-vboxadd
429%defattr(644,root,root,755)
430/lib/modules/%{_kernel_ver}/misc/vboxadd.ko*
431
d1c4ec5b 432%files -n kernel%{_alt_kernel}-misc-vboxdrv
48363591 433%defattr(644,root,root,755)
33233365 434%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
d1c4ec5b 435/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
74268e47 436
437%files -n kernel%{_alt_kernel}-misc-vboxvfs
438%defattr(644,root,root,755)
439/lib/modules/%{_kernel_ver}/misc/vboxvfs.ko*
05f1b1f5 440%endif
This page took 0.105244 seconds and 4 git commands to generate.