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