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