]> git.pld-linux.org Git - packages/VirtualBox.git/blob - VirtualBox.spec
- drop force_userspace bcond
[packages/VirtualBox.git] / VirtualBox.spec
1 # TODO
2 # - java bindings
3 # - Package SDK.
4 # - Check License of VBoxGuestAdditions_*.iso, it's probably not GPL v2.
5 #   If so check if it is distributable.
6 # - guest x11 additions: currently incomplete/untested
7 # - enable VDE networking: --enable-vde
8 # - initscripts for webservice
9 #
10 # Conditional build:
11 %bcond_without  doc             # don't build the documentation
12 %bcond_without  dist_kernel     # without distribution kernel
13 %bcond_without  kernel          # don't build kernel module
14 %bcond_without  userspace       # don't build userspace package
15 %bcond_with     webservice      # webservice (SOAP) support
16 %bcond_without  lightdm         # lightdm greeter
17 %bcond_without  verbose
18
19 %if %{without kernel}
20 %undefine       with_dist_kernel
21 %endif
22 %if "%{_alt_kernel}" != "%{nil}"
23 %undefine       with_userspace
24 %endif
25 %if %{without userspace}
26 # nothing to be placed to debuginfo package
27 %define         _enable_debug_packages  0
28 %endif
29
30 %define         rel             0.1
31 %define         pname           VirtualBox
32 Summary:        VirtualBox - x86 hardware virtualizer
33 Summary(pl.UTF-8):      VirtualBox - wirtualizator sprzętu x86
34 Name:           %{pname}%{_alt_kernel}
35 Version:        4.3.0
36 Release:        %{rel}
37 License:        GPL v2
38 Group:          Applications/Emulators
39 Source0:        http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
40 # Source0-md5:  1f49237686d095859f3dbea0941f8b12
41 Source1:        http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
42 # Source1-md5:  6b72a59aba1660afa4f430faa88d727a
43 Source2:        vboxservice.init
44 Source3:        vboxservice.service
45 Source4:        %{pname}.sh
46 Source5:        mount.vdi
47 Source6:        udev.rules
48 Source7:        %{pname}-virtualbox-host-modules-load.conf
49 Source8:        %{pname}-virtualbox-guest-modules-load.conf
50 Patch0:         %{pname}-configure-spaces.patch
51 Patch1:         %{pname}-VBoxSysInfo.patch
52 Patch2:         %{pname}-warning_workaround.patch
53 Patch3:         %{pname}-dri.patch
54 Patch5:         xserver-1.12.patch
55 Patch7:         lightdm-greeter-glib-includes.patch
56 Patch8:         lightdm-greeter-g++-link.patch
57 # ubuntu patches
58 Patch10:        16-no-update.patch
59 Patch11:        18-system-xorg.patch
60 # /ubuntu patches
61 URL:            http://www.virtualbox.org/
62 %if %{with userspace}
63 %ifarch %{x8664}
64 BuildRequires:  gcc-multilib
65 BuildRequires:  glibc-devel(i686)
66 BuildRequires:  libstdc++-multilib-devel
67 BuildRequires:  libstdc++-multilib-static
68 %endif
69 %if "%{pld_release}" == "ac"
70 BuildRequires:  XFree86-devel
71 %else
72 BuildRequires:  xorg-lib-libXcomposite-devel
73 BuildRequires:  xorg-lib-libXcursor-devel
74 BuildRequires:  xorg-lib-libXmu-devel
75 BuildRequires:  xorg-proto-glproto-devel
76 BuildRequires:  xorg-xserver-server-devel
77 %endif
78 BuildRequires:  OpenGL-GLU-devel
79 BuildRequires:  OpenGL-devel
80 BuildRequires:  QtGui-devel
81 BuildRequires:  QtNetwork-devel
82 BuildRequires:  QtOpenGL-devel
83 BuildRequires:  SDL-devel >= 1.2.7
84 BuildRequires:  acpica
85 BuildRequires:  alsa-lib-devel >= 1.0.6
86 BuildRequires:  bash
87 BuildRequires:  bcc
88 BuildRequires:  bin86
89 BuildRequires:  curl-devel
90 BuildRequires:  device-mapper-devel
91 %{?with_doc:BuildRequires:      docbook-dtd44-xml}
92 BuildRequires:  gcc >= 5:3.2.3
93 %{?with_webservice:BuildRequires:       gsoap-devel}
94 BuildRequires:  issue
95 BuildRequires:  kBuild >= 0.1.9998.2700
96 BuildRequires:  libIDL-devel
97 BuildRequires:  libcap-static
98 BuildRequires:  libdrm-devel
99 BuildRequires:  libpng-devel >= 1.2.5
100 BuildRequires:  libstdc++-devel >= 5:3.2.3
101 BuildRequires:  libstdc++-static >= 5:3.2.3
102 BuildRequires:  libuuid-devel
103 BuildRequires:  libvncserver-devel >= 0.9.9
104 BuildRequires:  libxml2-devel >= 2.6.26
105 BuildRequires:  libxslt-devel >= 1.1.17
106 BuildRequires:  libxslt-progs >= 1.1.17
107 %{?with_lightdm:BuildRequires:  lightdm-libs-qt-devel}
108 BuildRequires:  makeself
109 BuildRequires:  mkisofs
110 BuildRequires:  pam-devel
111 BuildRequires:  pixman-devel
112 BuildRequires:  pkgconfig
113 BuildRequires:  pulseaudio-devel >= 0.9.0
114 BuildRequires:  python-devel
115 BuildRequires:  python-modules
116 BuildRequires:  qt4-build >= 4.2.0
117 BuildRequires:  qt4-linguist
118 BuildRequires:  rpmbuild(macros) >= 1.664
119 BuildRequires:  sed >= 4.0
120 %if %{with doc}
121 BuildRequires:  texlive-fonts-bitstream
122 BuildRequires:  texlive-fonts-other
123 BuildRequires:  texlive-fonts-type1-bitstream
124 BuildRequires:  texlive-format-pdflatex
125 BuildRequires:  texlive-latex-ucs
126 BuildRequires:  texlive-xetex
127 %endif
128 BuildRequires:  which
129 BuildRequires:  xalan-c-devel >= 1.10.0
130 BuildRequires:  xerces-c-devel >= 2.6.0
131 BuildRequires:  yasm
132 BuildRequires:  zlib-devel >= 1.2.1
133 %endif
134 %if %{with dist_kernel}
135 BuildRequires:  kernel%{_alt_kernel}-module-build >= 3:2.6.20
136 %endif
137 Requires(post,preun):   /sbin/chkconfig
138 Requires(postun):       /usr/sbin/groupdel
139 Requires(pre):  /usr/bin/getgid
140 Requires(pre):  /usr/sbin/groupadd
141 Requires:       QtCore >= 4.7.0
142 Requires:       desktop-file-utils
143 Requires:       fontconfig
144 Requires:       fonts-Type1-urw
145 Requires:       libvncserver >= 0.9.9
146 Requires:       udev-core
147 Suggests:       gxmessage
148 Provides:       group(vbox)
149 Obsoletes:      VirtualBox-udev < 4.2.10-5
150 ExclusiveArch:  %{ix86} %{x8664}
151 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
152
153 %ifarch %{x8664}
154 %define         vbox_arch       amd64
155 %else
156 %define         vbox_arch       x86
157 %endif
158 %define         vbox_platform   linux.%{vbox_arch}
159 %define         outdir          out/%{vbox_platform}/release/bin
160 %define         objdir          out/%{vbox_platform}/release/obj
161
162 %description
163 Oracle VirtualBox is a general-purpose full virtualizer for x86
164 hardware. Targeted at server, desktop and embedded use, it is now the
165 only professional-quality virtualization solution that is also Open
166 Source Software.
167
168 Some of the features of VirtualBox are:
169
170 Modularity: VirtualBox has an extremely modular design with
171 well-defined internal programming interfaces and a client/server
172 design. This makes it easy to control it from several interfaces at
173 once: for example, you can start a virtual machine in a typical
174 virtual machine GUI and then control that machine from the command
175 line. VirtualBox also comes with a full Software Development Kit: even
176 though it is Open Source Software, you don't have to hack the source
177 to write a new interface for VirtualBox.
178
179 Virtual machine descriptions in XML: the configuration settings of
180 virtual machines are stored entirely in XML and are independent of the
181 local machines. Virtual machine definitions can therefore easily be
182 ported to other computers.
183
184 You should install this package in your Host OS.
185
186 %description -l pl.UTF-8
187 Oracle VirtualBox jest emulatorem sprzętu x86. Kierowany do zastosowań
188 serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym
189 wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako
190 Otwarte Oprogramowanie.
191
192 Przykładowe cechy VirtualBoksa:
193
194 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
195 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
196 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
197 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
198 poziomu interfejsu graficznego, a później kontrolować ją z linii
199 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
200 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
201
202 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
203 wirtualnych są w całości przechowywane w XML-u i są niezależne od
204 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
205 konfigurację maszyny wirtualnej na inny komputer.
206
207 %package doc
208 Summary:        VirtualBox documentation
209 Group:          Documentation
210
211 %description doc
212 This package contains VirtualBox User Manual.
213
214 %package additions
215 Summary:        VirtualBox Guest Additions
216 Group:          Base
217 Requires:       %{name} = %{version}-%{release}
218
219 %description additions
220 VirtualBox Guest Additions.
221
222 This package contains ISO9660 image with drivers for Guest OS.
223
224 You should install this package in your Host OS.
225
226 %package guest
227 Summary:        VirtualBox Guest tools
228 Group:          Base
229 Requires(post,preun):   /sbin/chkconfig
230 Requires(post): systemd-units >= 38
231 Requires:       systemd-units >= 38
232 Requires:       rc-scripts
233 Suggests:       kernel(vboxguest)
234 Suggests:       kernel(vboxsf)
235 Suggests:       pam-pam_vbox
236
237 %description guest
238 Tools that utilize kernel modules for supporting integration with the
239 Host, including file sharing.
240
241 You should install this package in your Guest OS for base VirtualBox
242 communication
243
244 %package guest-x11
245 Summary:        VirtualBox Guest Additions
246 Group:          Base
247 Requires:       %{name}-guest = %{version}-%{release}
248 Requires:       xorg-driver-video-vboxvideo = %{version}-%{release}
249 Suggests:       kernel(vboxvideo)
250 Obsoletes:      xorg-driver-input-vboxmouse < %{version}-%{release}
251
252 %description guest-x11
253 Tools for X11 session that utilize kernel modules for supporting
254 integration with the Host, like tracking of mouse pointer movement and
255 X.org X11 video and mouse drivers
256
257 You should install this package in your Guest OS for X11 session.
258
259 %package webservice
260 Summary:        VirtualBox Web Service
261 Group:          Applications/Emulators
262 Requires:       %{name} = %{version}-%{release}
263
264 %description webservice
265 This package contains VirtualBox web service API daemon. It allows to
266 control virtual machines via web interface.
267
268 %package -n lightdm-greeter-vbox
269 Summary:        VirtualBox greeter for lightdm
270 Group:          Themes
271 # NOTE: '#' in url is lost because rpm treats it as comment, even hacking with
272 # macros doesn't help as rpmbuild takes final result to parse
273 URL:            http://www.virtualbox.org/manual/ch09.html#autologon_unix_lightdm
274 Requires:       kernel(vboxguest)
275 Requires:       lightdm >= 1.0.1
276 Provides:       lightdm-greeter
277
278 %description -n lightdm-greeter-vbox
279 VirtualBox greeter for LightDM.
280
281 %package -n pam-pam_vbox
282 Summary:        PAM module to perform automated guest logons
283 Group:          Base
284
285 %description  -n pam-pam_vbox
286 PAM module (Pluggable Authentication Module) which can be used to
287 perform automated guest logons.
288
289 %package -n xorg-driver-video-vboxvideo
290 Summary:        X.org video driver for VirtualBox guest OS
291 Summary(pl.UTF-8):      Sterownik grafiki dla systemu gościa w VirtualBoksie
292 Group:          X11/Applications
293 Requires:       Mesa-dri-driver-swrast
294 Requires:       xorg-xserver-libdri >= 1.7.4
295 Requires:       xorg-xserver-server >= 1.0.99.901
296 Requires:       xorg-xserver-server(videodrv-abi) <= 14.1
297 Requires:       xorg-xserver-server(videodrv-abi) >= 2.0
298
299 %description -n xorg-driver-video-vboxvideo
300 X.org video driver for VirtualBox guest OS.
301
302 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
303 Sterownik grafiki dla systemu gościa w VirtualBoksie.
304
305 # KERNEL PACKAGES
306
307 # KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
308
309 %package -n kernel%{_alt_kernel}-virtualbox-guest
310 Summary:        VirtualBox kernel modules for Linux Guest
311 Summary(pl.UTF-8):      Moduły VirtualBoksa do jądra Linuksa dla systemu gościa
312 Release:        %{rel}@%{_kernel_ver_str}
313 Group:          Base/Kernel
314 Requires(post,postun):  /sbin/depmod
315 Requires(post): systemd-units >= 38
316 Requires:       dev >= 2.9.0-7
317 Requires:       systemd-units >= 38
318 %if %{with dist_kernel}
319 %requires_releq_kernel
320 %requires_releq_kernel -n drm
321 Requires(postun):       %releq_kernel
322 %endif
323 Suggests:       %{name}-kernel-init-guest >= %{version}-%{rel}
324 Provides:       kernel(vboxguest) = %{version}-%{rel}
325 Provides:       kernel(vboxsf) = %{version}-%{rel}
326 Provides:       kernel(vboxvideo) = %{version}-%{rel}
327 Obsoletes:      kernel-init-guest
328 Conflicts:      kernel%{_alt_kernel}-virtualbox-host
329
330 %description -n kernel%{_alt_kernel}-virtualbox-guest
331 This package contains VirtualBox Guest Additions for Linux Module,
332 host file system access (Shared Folders) and DRM support for
333 Linux guest system.
334
335 %description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8
336 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -
337 dodatki dla systemu gościa, dostęp do plików systemu głównego z
338 poziomu systemu gościa i sterownik obsługi DRM.
339
340 %package -n kernel%{_alt_kernel}-virtualbox-host
341 Summary:        VirtualBox Support Drivers
342 Summary(pl.UTF-8):      Moduły jądra Linuksa dla VirtualBoksa
343 Release:        %{rel}@%{_kernel_ver_str}
344 Group:          Base/Kernel
345 Requires(post,postun):  /sbin/depmod
346 Requires(post): systemd-units >= 38
347 Requires:       dev >= 2.9.0-7
348 %if %{with dist_kernel}
349 %requires_releq_kernel
350 Requires(postun):       %releq_kernel
351 %endif
352 Requires:       systemd-units >= 38
353 Suggests:       %{name}-kernel-init-host >= %{version}-%{rel}
354 Provides:       kernel(vboxdrv) = %{version}-%{rel}
355 Provides:       kernel(vboxnetadp) = %{version}-%{rel}
356 Provides:       kernel(vboxnetflt) = %{version}-%{rel}
357 Provides:       kernel(vboxpci) = %{version}-%{rel}
358 Obsoletes:      kernel-init-host
359
360 %description -n kernel%{_alt_kernel}-virtualbox-host
361 This package contains VirtualBox Support Driver, Network Adapter
362 Driver, Network Filter Driver and PCI card passthrough driver that
363 works as host proxy between guest and PCI hardware.
364
365 %description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8
366 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik
367 witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu
368 głównego oraz sterownik, ktory działa jako proxy między gościem i
369 gospodarzem sprzętu PCI.
370
371 %prep
372 %setup -q -n %{pname}-%{version}
373 %patch0 -p1
374 %patch1 -p1
375 %patch2 -p1
376 %patch3 -p1
377 %patch5 -p1
378 %patch7 -p1
379 %patch8 -p1
380
381 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
382         -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
383
384 # Respect LDFLAGS
385 %{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
386         -i Config.kmk src/libs/xpcom18a4/Config.kmk
387
388 %{__sed} 's#@LIBDIR@#%{_libdir}#' < %{SOURCE4} > VirtualBox-wrapper.sh
389
390 install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
391 cd PLD-MODULE-BUILD
392 ../src/VBox/Additions/linux/export_modules guest-modules.tar.gz
393 tar -zxf guest-modules.tar.gz -C GuestDrivers
394
395 ../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening
396 tar -zxf host-modules.tar.gz -C HostDrivers
397 cd -
398 %patch10 -p1
399 %patch11 -p1
400
401 # using system kBuild package
402 %{__rm} -r kBuild
403
404 cat <<'EOF'>> LocalConfig.kmk
405 %{?with_verbose:KBUILD_VERBOSE=3}
406 USERNAME=%(id -un)
407 __VBOX_BUILD_PUBLISHER=_PLD
408 VBOX_VERSION_STRING=$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)_PLD
409 XSERVER_VERSION=%(rpm -q --queryformat '%{V}\n' xorg-xserver-server-devel | awk -F. '{ print $1 $2 }' 2>/dev/null || echo ERROR)
410 VBOX_USE_SYSTEM_XORG_HEADERS=1
411 %if %{with lightdm}
412 VBOX_WITH_LIGHTDM_GREETER=1
413 VBOX_WITH_LIGHTDM_GREETER_PACKING=1
414 %endif
415 TOOL_GCC3_CFLAGS=%{rpmcflags}
416 TOOL_GCC3_CXXFLAGS=%{rpmcxxflags}
417 VBOX_GCC_OPT=%{rpmcxxflags}
418 VBOX_WITH_TESTCASES=
419 EOF
420
421 %build
422 %if %{with userspace}
423 ./configure \
424         --with-gcc="%{__cc}" \
425         --with-g++="%{__cxx}" \
426         %{!?with_doc:--disable-docs} \
427         --disable-java \
428         --disable-hardening \
429         --disable-kmods \
430         --enable-vnc \
431         %{__enable webservice} \
432         %{nil}
433
434 XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
435 kmk %{?_smp_mflags}
436 %endif
437
438 %if %{with kernel}
439 export KERN_DIR=%{_kernelsrcdir}
440 cd PLD-MODULE-BUILD/HostDrivers
441 %build_kernel_modules -m vboxdrv -C vboxdrv
442 %build_kernel_modules -m vboxnetadp -C vboxnetadp
443 %build_kernel_modules -m vboxnetflt -C vboxnetflt
444 %build_kernel_modules -m vboxpci -C vboxpci
445
446 cd ../GuestDrivers
447 %build_kernel_modules -m vboxguest -C vboxguest
448 cp -a vboxguest/Module.symvers vboxsf
449 %build_kernel_modules -m vboxsf -C vboxsf -c
450 %build_kernel_modules -m vboxvideo -C vboxvideo
451 cd ../..
452 %{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
453 %endif
454
455 %install
456 rm -rf $RPM_BUILD_ROOT
457
458 %if %{with userspace}
459 install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
460         $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
461         $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
462         $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \
463         $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir}}
464
465 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
466 if cp -al VBox.png $RPM_BUILD_ROOT/Vbox.png 2>/dev/null; then
467         l=l
468         %{__rm} -f $RPM_BUILD_ROOT/VBox.png
469 fi
470
471 cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
472
473 %if %{with doc}
474 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual.pdf
475 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual_fr_FR.pdf
476 %endif
477
478 install -d $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions
479 cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
480 install -p %{SOURCE5} $RPM_BUILD_ROOT/sbin/mount.vdi
481 install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
482 for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
483         ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
484 done
485
486 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
487 install -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service
488
489 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/VBox.png,%{_pixmapsdir}/virtualbox.png}
490 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_desktopdir}}/virtualbox.desktop
491
492 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_system.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
493 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
494
495 # XXX: where else to install them that vboxvideo_dri.so finds them? patch with rpath?
496 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLarrayspu.so
497 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLcrutil.so
498 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLerrorspu.so
499 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLfeedbackspu.so
500 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.so
501 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpassthroughspu.so
502
503 cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
504 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
505
506 install -d $RPM_BUILD_ROOT/%{_lib}/security
507 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,/%{_lib}/security}/pam_vbox.so
508
509 # cleanup unpackaged
510 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{src,sdk,testcase}
511 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src
512 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
513 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst*
514 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
515
516 # Guest Only Tools
517 install -d $RPM_BUILD_ROOT/etc/{X11/xinit/xinitrc.d,xdg/autostart}
518 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
519 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
520 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
521 install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
522         $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
523 cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
524         $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
525
526 %if %{with lightdm}
527 install -d $RPM_BUILD_ROOT%{_datadir}/xgreeters
528 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_sbindir}}/vbox-greeter
529 cp -p %{objdir}/Additions/Installer/linux/share/VBoxGuestAdditions/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
530 %endif
531
532 # unknown - checkme
533 %if 1
534 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
535 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
536 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
537 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.sh
538 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
539 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
540 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
541 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
542 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
543 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/CPUMInternal.d
544 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/cpumctx.d
545 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-arch-types.d
546 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-types.d
547 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vm.d
548 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/x86.d
549 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/%{vbox_arch}/vbox-vm-struct-test.d
550 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/helpers/generate_service_file
551 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/VBoxHeadlessXOrg.sh
552 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/generated.sh
553 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/init_template.sh
554 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install_service
555 %endif
556
557 # packaged by kernel part
558 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf
559 %endif
560
561 %if %{with kernel}
562 install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin}
563 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc
564 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc
565 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc
566 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc
567 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc
568 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc
569 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc
570
571 install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
572
573 # Tell systemd to load modules
574 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf
575 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-guest.conf
576 %endif
577
578 %clean
579 rm -rf $RPM_BUILD_ROOT
580
581 %pre
582 %groupadd -g 221 -r -f vbox
583
584 %post
585 %update_desktop_database
586 for i in /sys/bus/usb/devices/*; do
587         if [ -r "$i/dev" ]; then
588                 dev="`cat "$i/dev" 2>/dev/null || true`"
589                 major="`expr "$dev" : '\(.*\):' 2> /dev/null || true`"
590                 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null || true`"
591                 class="`cat $i/bDeviceClass 2> /dev/null || true`"
592                 /lib/udev/VBoxCreateUSBNode.sh "$major" "$minor" "$class" vbox 2>/dev/null
593         fi
594 done
595
596 cat << 'EOF'
597 You must install vboxdrv kernel modules for this software to work:
598     kernel%{_alt_kernel}-virtualbox-host-%{version}-%{rel}@%{_kernel_ver_str}
599
600 On Guest Linux system you might want to install:
601     kernel%{_alt_kernel}-virtualbox-guest-%{version}-%{rel}@%{_kernel_ver_str}
602
603 EOF
604
605 %postun
606 if [ "$1" = "0" ]; then
607         %groupremove vbox
608 fi
609
610 %post guest
611 /sbin/chkconfig --add vboxservice
612 %service vboxservice restart
613 %systemd_post vboxservice.service
614
615 %preun guest
616 if [ "$1" = "0" ]; then
617         /sbin/chkconfig --del vboxservice
618         %service vboxservice -q stop
619 fi
620 %systemd_preun vboxservice.service
621
622 %postun guest
623 %systemd_reload
624
625 %triggerpostun guest -- VirtualBox-guest < 4.3.0-1
626 %systemd_trigger vboxservice.service
627
628 %pre -n lightdm-greeter-vbox
629 %addusertogroup xdm vbox
630
631 %post -n kernel%{_alt_kernel}-virtualbox-guest
632 %depmod %{_kernel_ver}
633
634 %postun -n kernel%{_alt_kernel}-virtualbox-guest
635 %depmod %{_kernel_ver}
636
637 %post   -n kernel%{_alt_kernel}-virtualbox-host
638 %depmod %{_kernel_ver}
639
640 %postun -n kernel%{_alt_kernel}-virtualbox-host
641 %depmod %{_kernel_ver}
642
643 %if %{with userspace}
644 %files
645 %defattr(644,root,root,755)
646 %dir %{_libdir}/%{pname}
647 %dir %{_libdir}/%{pname}/ExtensionPacks
648 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC
649 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*
650 %dir %{_libdir}/%{pname}/additions
651 %dir %{_libdir}/%{pname}/components
652 %dir %{_libdir}/%{pname}/nls
653 %attr(755,root,root) %{_bindir}/VBoxBFE
654 %attr(755,root,root) %{_bindir}/VBoxHeadless
655 %attr(755,root,root) %{_bindir}/VBoxManage
656 %attr(755,root,root) %{_bindir}/VBoxSDL
657 %attr(755,root,root) %{_bindir}/VBoxSVC
658 %attr(755,root,root) %{_bindir}/VBoxTunctl
659 %attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
660 %attr(755,root,root) %{_bindir}/VirtualBox
661 %attr(755,root,root) /sbin/mount.vdi
662 %attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so
663 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
664 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
665 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart
666 %attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl
667 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so
668 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so
669 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so
670 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so
671 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDragAndDropSvc.so
672 %attr(755,root,root) %{_libdir}/%{pname}/VBoxExtPackHelperApp
673 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestControlSvc.so
674 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestPropSvc.so
675 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHeadless
676 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHostChannel.so
677 %attr(755,root,root) %{_libdir}/%{pname}/VBoxKeyboard.so
678 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManage
679 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetNAT
680 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVolInfo
681 %attr(755,root,root) %{_libdir}/%{pname}/iPxeBaseBin
682 %if %{with doc}
683 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManageHelp
684 %endif
685 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetAdpCtl
686 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetDHCP
687 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhostcrutil.so
688 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhosterrorspu.so
689 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLrenderspu.so
690 %attr(755,root,root) %{_libdir}/%{pname}/VBoxPython*.so
691 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM.so
692 %ifarch %{ix86}
693 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM32.so
694 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM64.so
695 %endif
696 %attr(755,root,root) %{_libdir}/%{pname}/VBoxRT.so
697 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSDL
698 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedClipboard.so
699 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedCrOpenGL.so
700 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so
701 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC
702 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh
703 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL
704 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTunctl
705 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so
706 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload
707 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so
708 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD
709 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so
710 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox
711 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox-wrapper.sh
712 %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so
713 %{_libdir}/%{pname}/VBoxDD2GC.debug
714 %{_libdir}/%{pname}/VBoxDD2GC.gc
715 %{_libdir}/%{pname}/VBoxDD2R0.debug
716 %{_libdir}/%{pname}/VBoxDD2R0.r0
717 %{_libdir}/%{pname}/VBoxDDGC.debug
718 %{_libdir}/%{pname}/VBoxDDGC.gc
719 %{_libdir}/%{pname}/VBoxDDR0.debug
720 %{_libdir}/%{pname}/VBoxDDR0.r0
721 %{_libdir}/%{pname}/VBoxEFI32.fd
722 %{_libdir}/%{pname}/VBoxEFI64.fd
723 %{_libdir}/%{pname}/VMMGC.debug
724 %{_libdir}/%{pname}/VMMGC.gc
725 %{_libdir}/%{pname}/VMMR0.debug
726 %{_libdir}/%{pname}/VMMR0.r0
727 %{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt
728 %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
729 %{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt
730 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so
731 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so
732 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so
733 %lang(bg) %{_libdir}/%{pname}/nls/*_bg.qm
734 %lang(ca) %{_libdir}/%{pname}/nls/*_ca.qm
735 %lang(ca_VA) %{_libdir}/%{pname}/nls/*_ca_VA.qm
736 %lang(cs) %{_libdir}/%{pname}/nls/*_cs.qm
737 %lang(da) %{_libdir}/%{pname}/nls/*_da.qm
738 %lang(de) %{_libdir}/%{pname}/nls/*_de.qm
739 %lang(en) %{_libdir}/%{pname}/nls/*_en.qm
740 %lang(es) %{_libdir}/%{pname}/nls/*_es.qm
741 %lang(eu) %{_libdir}/%{pname}/nls/*_eu.qm
742 %lang(fi) %{_libdir}/%{pname}/nls/*_fa_IR.qm
743 %lang(fi) %{_libdir}/%{pname}/nls/*_fi.qm
744 %lang(fr) %{_libdir}/%{pname}/nls/*_fr.qm
745 %lang(gl_ES) %{_libdir}/%{pname}/nls/*_gl_ES.qm
746 %lang(hu) %{_libdir}/%{pname}/nls/*_hu.qm
747 %lang(id) %{_libdir}/%{pname}/nls/*_id.qm
748 %lang(it) %{_libdir}/%{pname}/nls/*_it.qm
749 %lang(ja) %{_libdir}/%{pname}/nls/*_ja.qm
750 %lang(km_KH) %{_libdir}/%{pname}/nls/*_km_KH.qm
751 %lang(ko) %{_libdir}/%{pname}/nls/*_ko.qm
752 %lang(lt) %{_libdir}/%{pname}/nls/*_lt.qm
753 %lang(nl) %{_libdir}/%{pname}/nls/*_nl.qm
754 %lang(pl) %{_libdir}/%{pname}/nls/*_pl.qm
755 %lang(pt) %{_libdir}/%{pname}/nls/*_pt.qm
756 %lang(pt_BR) %{_libdir}/%{pname}/nls/*_pt_BR.qm
757 %lang(ro) %{_libdir}/%{pname}/nls/*_ro.qm
758 %lang(ru) %{_libdir}/%{pname}/nls/*_ru.qm
759 %lang(sk) %{_libdir}/%{pname}/nls/*_sk.qm
760 %lang(sr) %{_libdir}/%{pname}/nls/*_sr.qm
761 %lang(sv) %{_libdir}/%{pname}/nls/*_sv.qm
762 %lang(tr) %{_libdir}/%{pname}/nls/*_tr.qm
763 %lang(uk) %{_libdir}/%{pname}/nls/*_uk.qm
764 %lang(zh_CN) %{_libdir}/%{pname}/nls/*_zh_CN.qm
765 %lang(zh_TW) %{_libdir}/%{pname}/nls/*_zh_TW.qm
766 %{_pixmapsdir}/virtualbox.png
767 %{_desktopdir}/*.desktop
768 %{_libdir}/%{pname}/icons
769 %{_libdir}/%{pname}/virtualbox.xml
770
771 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
772 %attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
773
774 %files additions
775 %defattr(644,root,root,755)
776 %{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
777
778 %files guest
779 %defattr(644,root,root,755)
780 %attr(755,root,root) /sbin/mount.vboxsf
781 %attr(754,root,root) /etc/rc.d/init.d/vboxservice
782 %{systemdunitdir}/vboxservice.service
783 %attr(755,root,root) %{_bindir}/VBoxControl
784 %attr(755,root,root) %{_bindir}/VBoxService
785
786 %files guest-x11
787 %defattr(644,root,root,755)
788 # NOTE: unfinished, should contain .desktop files for starting up mouse
789 # integration and other desktop services
790 # NOTE: the filelist is incomplete too
791 %attr(755,root,root) %{_bindir}/VBoxClient
792 /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
793 /etc/xdg/autostart/vboxclient.desktop
794
795 %attr(755,root,root) %{_libdir}/%{pname}/additions/autorun.sh
796 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd
797 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-service
798 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-x11
799
800 %if %{with webservice}
801 %files webservice
802 %defattr(644,root,root,755)
803 %attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
804 %attr(755,root,root) %{_libdir}/%{pname}/webtest
805 %endif
806
807 %if %{with lightdm}
808 %files -n lightdm-greeter-vbox
809 %defattr(644,root,root,755)
810 %attr(755,root,root) %{_sbindir}/vbox-greeter
811 %{_datadir}/xgreeters/vbox-greeter.desktop
812 %endif
813
814 %files -n pam-pam_vbox
815 %defattr(644,root,root,755)
816 %attr(755,root,root) /%{_lib}/security/pam_vbox.so
817
818 %if %{with doc}
819 %files doc
820 %defattr(644,root,root,755)
821 # this is a symlink...
822 %doc %{_libdir}/%{pname}/UserManual.pdf
823 %lang(fr) %doc %{_libdir}/%{pname}/UserManual_fr_FR.pdf
824 # ..to this file
825 %doc %{outdir}/UserManual.pdf
826 %lang(fr) %doc %{outdir}/UserManual_fr_FR.pdf
827 %endif
828
829 %files -n xorg-driver-video-vboxvideo
830 %defattr(644,root,root,755)
831 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
832 %attr(755,root,root) %{_libdir}/xorg/modules/dri/vboxvideo_dri.so
833 # vboxvideo_dri.so deps
834 %attr(755,root,root) %{_libdir}/VBoxOGLarrayspu.so
835 %attr(755,root,root) %{_libdir}/VBoxOGLcrutil.so
836 %attr(755,root,root) %{_libdir}/VBoxOGLerrorspu.so
837 %attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so
838 %attr(755,root,root) %{_libdir}/VBoxOGLpackspu.so
839 %attr(755,root,root) %{_libdir}/VBoxOGLpassthroughspu.so
840 %endif
841
842 %if %{with kernel}
843 %files -n kernel%{_alt_kernel}-virtualbox-guest
844 %defattr(644,root,root,755)
845 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf
846 /lib/modules/%{_kernel_ver}/misc/vboxguest.ko*
847 /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*
848 /lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*
849
850 %files -n kernel%{_alt_kernel}-virtualbox-host
851 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf
852 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
853 /lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*
854 /lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*
855 /lib/modules/%{_kernel_ver}/misc/vboxpci.ko*
856 %endif
This page took 0.109028 seconds and 4 git commands to generate.