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