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