]> git.pld-linux.org Git - packages/VirtualBox.git/blob - VirtualBox.spec
- there are different output dirs for amd64 and x86 builds
[packages/VirtualBox.git] / VirtualBox.spec
1 #
2 # TODO:
3 # - Doesn't compile without /usr/src/linux/include/linux/autoconf.h so one must
4 #   symlink it before building package. This is because during compilation kernel
5 #   module is being build. Since we are building kernel modules later
6 #   sources/makefiles probably needs some hacking to drop this requirement.
7 # - Home page says that some addons should be compiled, I don't see any except.
8 #   vboxaddon kernel module and {vboxmouse,vboxvideo)_drv.so. Are they required?
9 # - BR list was a quickie so it may be incomplete or too big.
10 # - R list probably required.
11 # - .desktop file, some wrapper to launch VirtualBox (LD_LIBRARY_PATH must include
12 #   %{_libdir}/VirtualBox), maybe some init script to launch VBoxSVC.
13 # - Devel stuff is not packaged yet.
14 # - Now its EA ix86 amd64, but looking into autogenerated env.sh suggests that
15 #   code may be compiled exclusively for i686. Probably x86_64 must be put in EA for Th.
16 #
17 # Conditional build:
18 %bcond_without  dist_kernel     # without distribution kernel
19 %bcond_without  smp             # without SMP kernel modules
20 #
21 %define         _snap   20070116
22 Summary:        VirtualBox
23 Summary(pl):    VirtualBox
24 Name:           VirtualBox
25 Version:        1.3.3
26 Release:        0.1
27 License:        GPL v2
28 Group:          Applications/Emulators
29 Source0:        %{name}-%{version}_%{_snap}.tar.bz2
30 # Source0-md5:  8554cf552c3ad07b2ae5229c3f8825dc
31 Patch0:         %{name}-configure.patch
32 Patch1:         %{name}-qt-paths.patch
33 URL:            http://www.virtualbox.org/
34 BuildRequires:  SDL-devel
35 BuildRequires:  bcc
36 BuildRequires:  bin86
37 BuildRequires:  gcc >= 3.2.3
38 BuildRequires:  iasl
39 %{?with_dist_kernel:BuildRequires:      kernel%{_alt_kernel}-module-build >= 3:2.6.7}
40 BuildRequires:  libIDL-devel
41 BuildRequires:  libuuid-devel
42 BuildRequires:  libxslt-devel
43 BuildRequires:  qt-devel
44 BuildRequires:  rpmbuild(macros) >= 1.329
45 BuildRequires:  xalan-c-devel
46 BuildRequires:  xcursor-devel
47 BuildRequires:  xerces-c-devel
48 BuildRequires:  zlib-devel
49 ExclusiveArch:  %{ix86} amd64
50 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51
52 %ifarch amd64
53 %define         _outdir amd64
54 %else
55 %define         _outdir x86
56 %endif
57
58 %description
59 InnoTek VirtualBox is a general-purpose full virtualizer for x86
60 hardware. Targeted at server, desktop and embedded use, it is now the
61 only professional-quality virtualization solution that is also Open
62 Source Software.
63
64 Some of the features of VirtualBox are:
65
66 Modularity: VirtualBox has an extremely modular design with
67 well-defined internal programming interfaces and a client/server
68 design. This makes it easy to control it from several interfaces at
69 once: for example, you can start a virtual machine in a typical
70 virtual machine GUI and then control that machine from the command
71 line. VirtualBox also comes with a full Software Development Kit: even
72 though it is Open Source Software, you don't have to hack the source
73 to write a new interface for VirtualBox.
74
75 Virtual machine descriptions in XML: the configuration settings of
76 virtual machines are stored entirely in XML and are independent of the
77 local machines. Virtual machine definitions can therefore easily be
78 ported to other computers.
79
80 %description -l pl
81 InnoTek VirtualBox jest emulatorem sprzêtu x86. Kireowany do
82 zastosowañ serwerowych, desktopowych oraz embedded jest obecnie
83 jedynym wysokiej jako¶ci rozwi±zaniem wirtualizacyjnym dostêpnym
84 równie¿ jako Otwarte Oprogramowanie.
85
86 Przyk³adowe mo¿liwo¶ci VirtualBox:
87
88 Modularno¶æ: VirtualBox jest wysoce zmodularyzowanym produktem z
89 dobrze zaprojektowanym wewnêtrznym interfejsem programowym typu
90 klient/serwer. Dziêki temu mo¿na ³atwo kontrolowaæ go za pomoc±
91 ró¿nych interfejsów. Mo¿na na przyk³ad uruchomiæ maszynê wirtualn± z
92 poziomu interfejsu graficznego, a pó¼niej kontrolowaæ j± z linii
93 poleceñ. VirtualBox dostarcza równie¿ pe³ny pakiet deweloperski, co
94 pozwala stworzyæ dowolny inny interfejs zarz±dzania maszyn± wirtualn±.
95
96 Opisy maszyn wirtualnych w XML: konfiguracje poszczególnych maszyn
97 wirtualnych s± w ca³o¶ci przechowywane w XMLu i s± niezale¿ne od
98 lokalnej maszyny. Dziêki temu mo¿na szybko i ³atwo przenie¶æ
99 konfiguracjê maszyny wirtualnej na inny komputer.
100
101 %package -n kernel%{_alt_kernel}-misc-vboxdrv
102 Summary:        Kernel module for VirtualBox
103 Summary(pl):    Modu³ j±dra dla VirtualBox
104 Release:        %{_rel}@%{_kernel_ver_str}
105 Group:          Base/Kernel
106 Requires(post,postun):  /sbin/depmod
107 Requires:       dev >= 2.9.0-7
108 %if %{with dist_kernel}
109 %requires_releq_kernel_up
110 Requires(postun):       %releq_kernel_up
111 %endif
112 Provides:       kernel(vboxdrv) = %{version}-%{_rel}
113
114 %description -n kernel%{_alt_kernel}-misc-vboxdrv
115 Kernel module vboxdrv for VirtualBox.
116
117 %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl
118 Modu³ j±dra vboxdrv dla VirtualBox.
119
120 %package -n kernel%{_alt_kernel}-smp-misc-vboxdrv
121 Summary:        Kernel SMP module for VirtualBox
122 Summary(pl):    Modu³ j±dra SMP dla VirtualBox
123 Release:        %{_rel}@%{_kernel_ver_str}
124 Group:          Base/Kernel
125 Requires(post,postun):  /sbin/depmod
126 Requires:       dev >= 2.9.0-7
127 %if %{with dist_kernel}
128 %requires_releq_kernel_smp
129 Requires(postun):       %releq_kernel_smp
130 %endif
131 Provides:       kernel(vboxdrv) = %{version}-%{_rel}
132
133 %description -n kernel%{_alt_kernel}-smp-misc-vboxdrv
134 Kernel SMP module vboxdrv for VirtualBox.
135
136 %description -n kernel%{_alt_kernel}-smp-misc-vboxdrv -l pl
137 Modu³ j±dra SMP vboxdrv dla VirtualBox.
138
139 %prep
140 %setup -q -n vbox
141 %patch0 -p0
142 %patch1 -p0
143
144 %build
145 ./configure
146 . ./env.sh
147 kmk
148
149 cd out/linux.%{_outdir}/release/bin/src
150 for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
151         if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
152                 exit 1
153         fi
154         rm -rf o
155         install -d o/include/linux
156         ln -sf %{_kernelsrcdir}/config-$cfg o/.config
157         ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
158         ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
159 %if %{with dist_kernel}
160         %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
161 %else
162         touch o/include/config/MARKER
163         ln -sf %{_kernelsrcdir}/scripts o/scripts
164 %endif
165         ln -sf ../../include/VBox o/include/VBox
166         ln -sf ../../include/iprt o/include/iprt
167         %{__make} -C %{_kernelsrcdir} clean \
168                 SYSSRC=%{_kernelsrcdir} \
169                 SYSOUT=$PWD/o \
170                 M=$PWD O=$PWD/o \
171                 %{?with_verbose:V=1}
172         %{__make} -C %{_kernelsrcdir} modules \
173                 CC="%{__cc}" CPP="%{__cpp}" \
174                 SYSSRC=%{_kernelsrcdir} \
175                 SYSOUT=$PWD/o \
176                 M=$PWD O=$PWD/o \
177                 %{?with_verbose:V=1}
178         mv vboxdrv.ko vboxdrv-$cfg.ko
179 done
180
181 %install
182 rm -rf $RPM_BUILD_ROOT
183
184 install -d \
185         $RPM_BUILD_ROOT%{_bindir} \
186         $RPM_BUILD_ROOT%{_libdir}/VirtualBox
187
188 install out/linux.%{_outdir}/release/bin/{VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox} \
189         $RPM_BUILD_ROOT%{_bindir}
190 install out/linux.%{_outdir}/release/bin/VBox{DD,DD2,REM,REMImp,RT,VMM,XML,XPCOM,XPCOMIPCC}.so \
191         $RPM_BUILD_ROOT%{_libdir}/VirtualBox
192 install out/linux.%{_outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0}} \
193         $RPM_BUILD_ROOT%{_libdir}/VirtualBox
194
195 %if %{with kernel}
196 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
197 %if %{with smp} && %{with dist_kernel}
198 install out/linux.%{_outdir}/release/bin/src/vboxdrv-smp.ko \
199         $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vboxdrv.ko
200 %endif
201 %endif
202
203 %clean
204 rm -rf $RPM_BUILD_ROOT
205
206 %post   -n kernel%{_alt_kernel}-misc-vboxdrv
207 %depmod %{_kernel_ver}
208
209 %postun -n kernel%{_alt_kernel}-misc-vboxdrv
210 %depmod %{_kernel_ver}
211
212 %if %{with smp} && %{with dist_kernel}
213 %post   -n kernel%{_alt_kernel}-smp-misc-vboxdrv
214 %depmod %{_kernel_ver}smp
215
216 %postun -n kernel%{_alt_kernel}-smp-misc-vboxdrv
217 %depmod %{_kernel_ver}smp
218 %endif
219
220 %files
221 %defattr(644,root,root,755)
222 %attr(755,root,root) %{_bindir}/VBox*
223 %attr(755,root,root) %{_bindir}/VirtualBox
224 %dir %{_libdir}/VirtualBox
225 %{_libdir}/VirtualBox
226
227 %files  -n kernel%{_alt_kernel}-misc-vboxdrv
228 %defattr(644,root,root,755)
229
230 %if %{with smp} && %{with dist_kernel}
231 %files  -n kernel%{_alt_kernel}-smp-misc-vboxdrv
232 %defattr(644,root,root,755)
233 %endif
This page took 0.058484 seconds and 4 git commands to generate.