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