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
167 Oracle VirtualBox is a general-purpose full virtualizer for x86
168 hardware. Targeted at server, desktop and embedded use, it is now the
169 only professional-quality virtualization solution that is also Open
172 Some of the features of VirtualBox are:
174 Modularity: VirtualBox has an extremely modular design with
175 well-defined internal programming interfaces and a client/server
176 design. This makes it easy to control it from several interfaces at
177 once: for example, you can start a virtual machine in a typical
178 virtual machine GUI and then control that machine from the command
179 line. VirtualBox also comes with a full Software Development Kit: even
180 though it is Open Source Software, you don't have to hack the source
181 to write a new interface for VirtualBox.
183 Virtual machine descriptions in XML: the configuration settings of
184 virtual machines are stored entirely in XML and are independent of the
185 local machines. Virtual machine definitions can therefore easily be
186 ported to other computers.
188 You should install this package in your Host OS.
190 %description -l pl.UTF-8
191 Oracle VirtualBox jest emulatorem sprzętu x86. Kierowany do zastosowań
192 serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym
193 wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako
194 Otwarte Oprogramowanie.
196 Przykładowe cechy VirtualBoksa:
198 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
199 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
200 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
201 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
202 poziomu interfejsu graficznego, a później kontrolować ją z linii
203 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
204 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
206 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
207 wirtualnych są w całości przechowywane w XML-u i są niezależne od
208 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
209 konfigurację maszyny wirtualnej na inny komputer.
212 Summary: VirtualBox documentation
216 This package contains VirtualBox User Manual.
219 Summary: VirtualBox Guest Additions
221 Requires: %{name} = %{version}-%{release}
223 %description additions
224 VirtualBox Guest Additions.
226 This package contains ISO9660 image with drivers for Guest OS.
228 You should install this package in your Host OS.
231 Summary: VirtualBox Guest tools
233 Requires(post,preun): /sbin/chkconfig
234 Requires(post): systemd-units >= 38
235 Requires: systemd-units >= 38
237 Suggests: kernel(vboxguest)
238 Suggests: kernel(vboxsf)
239 Suggests: pam-pam_vbox
242 Tools that utilize kernel modules for supporting integration with the
243 Host, including file sharing.
245 You should install this package in your Guest OS for base VirtualBox
249 Summary: VirtualBox Guest Additions
251 Requires: %{name}-guest = %{version}-%{release}
252 Requires: xorg-driver-video-vboxvideo = %{version}-%{release}
253 Suggests: kernel(vboxvideo)
254 Obsoletes: xorg-driver-input-vboxmouse < %{version}-%{release}
256 %description guest-x11
257 Tools for X11 session that utilize kernel modules for supporting
258 integration with the Host, like tracking of mouse pointer movement and
259 X.org X11 video and mouse drivers
261 You should install this package in your Guest OS for X11 session.
264 Summary: VirtualBox Web Service
265 Group: Applications/Emulators
266 Requires: %{name} = %{version}-%{release}
268 %description webservice
269 This package contains VirtualBox web service API daemon. It allows to
270 control virtual machines via web interface.
272 %package -n lightdm-greeter-vbox
273 Summary: VirtualBox greeter for lightdm
275 # NOTE: '#' in url is lost because rpm treats it as comment, even hacking with
276 # macros doesn't help as rpmbuild takes final result to parse
277 URL: http://www.virtualbox.org/manual/ch09.html#autologon_unix_lightdm
278 Requires: kernel(vboxguest)
279 Requires: lightdm >= 1.0.1
280 Provides: lightdm-greeter
282 %description -n lightdm-greeter-vbox
283 VirtualBox greeter for LightDM.
285 %package -n pam-pam_vbox
286 Summary: PAM module to perform automated guest logons
289 %description -n pam-pam_vbox
290 PAM module (Pluggable Authentication Module) which can be used to
291 perform automated guest logons.
293 %package -n xorg-driver-video-vboxvideo
294 Summary: X.org video driver for VirtualBox guest OS
295 Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie
296 Group: X11/Applications
297 Requires: Mesa-dri-driver-swrast
298 Requires: xorg-xserver-libdri >= 1.7.4
299 Requires: xorg-xserver-server >= 1.0.99.901
300 Requires: xorg-xserver-server(videodrv-abi) <= 14.1
301 Requires: xorg-xserver-server(videodrv-abi) >= 2.0
303 %description -n xorg-driver-video-vboxvideo
304 X.org video driver for VirtualBox guest OS.
306 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
307 Sterownik grafiki dla systemu gościa w VirtualBoksie.
311 # KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
313 %package -n kernel%{_alt_kernel}-virtualbox-guest
314 Summary: VirtualBox kernel modules for Linux Guest
315 Summary(pl.UTF-8): Moduły VirtualBoksa do jądra Linuksa dla systemu gościa
316 Release: %{rel}@%{_kernel_ver_str}
318 Requires(post,postun): /sbin/depmod
319 Requires(post): systemd-units >= 38
320 Requires: dev >= 2.9.0-7
321 Requires: systemd-units >= 38
322 %if %{with dist_kernel}
323 %requires_releq_kernel
324 %requires_releq_kernel -n drm
325 Requires(postun): %releq_kernel
327 Suggests: %{name}-kernel-init-guest >= %{version}-%{rel}
328 Provides: kernel(vboxguest) = %{version}-%{rel}
329 Provides: kernel(vboxsf) = %{version}-%{rel}
330 Provides: kernel(vboxvideo) = %{version}-%{rel}
331 Obsoletes: kernel-init-guest
332 Conflicts: kernel%{_alt_kernel}-virtualbox-host
334 %description -n kernel%{_alt_kernel}-virtualbox-guest
335 This package contains VirtualBox Guest Additions for Linux Module,
336 host file system access (Shared Folders) and DRM support for
339 %description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8
340 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -
341 dodatki dla systemu gościa, dostęp do plików systemu głównego z
342 poziomu systemu gościa i sterownik obsługi DRM.
344 %package -n kernel%{_alt_kernel}-virtualbox-host
345 Summary: VirtualBox Support Drivers
346 Summary(pl.UTF-8): Moduły jądra Linuksa dla VirtualBoksa
347 Release: %{rel}@%{_kernel_ver_str}
349 Requires(post,postun): /sbin/depmod
350 Requires(post): systemd-units >= 38
351 Requires: dev >= 2.9.0-7
352 %if %{with dist_kernel}
353 %requires_releq_kernel
354 Requires(postun): %releq_kernel
356 Requires: systemd-units >= 38
357 Suggests: %{name}-kernel-init-host >= %{version}-%{rel}
358 Provides: kernel(vboxdrv) = %{version}-%{rel}
359 Provides: kernel(vboxnetadp) = %{version}-%{rel}
360 Provides: kernel(vboxnetflt) = %{version}-%{rel}
361 Provides: kernel(vboxpci) = %{version}-%{rel}
362 Obsoletes: kernel-init-host
364 %description -n kernel%{_alt_kernel}-virtualbox-host
365 This package contains VirtualBox Support Driver, Network Adapter
366 Driver, Network Filter Driver and PCI card passthrough driver that
367 works as host proxy between guest and PCI hardware.
369 %description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8
370 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik
371 witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu
372 głównego oraz sterownik, ktory działa jako proxy między gościem i
373 gospodarzem sprzętu PCI.
376 %setup -q -n %{pname}-%{version}
385 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
386 -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
389 %{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
390 -i Config.kmk src/libs/xpcom18a4/Config.kmk
392 %{__sed} 's#@LIBDIR@#%{_libdir}#' < %{SOURCE4} > VirtualBox-wrapper.sh
394 install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
396 ../src/VBox/Additions/linux/export_modules guest-modules.tar.gz
397 tar -zxf guest-modules.tar.gz -C GuestDrivers
399 ../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening
400 tar -zxf host-modules.tar.gz -C HostDrivers
405 # using system kBuild package
408 cat <<'EOF'>> LocalConfig.kmk
409 %{?with_verbose:KBUILD_VERBOSE=3}
411 __VBOX_BUILD_PUBLISHER=_PLD
412 VBOX_VERSION_STRING=$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)_PLD
413 XSERVER_VERSION=%(rpm -q --queryformat '%{V}\n' xorg-xserver-server-devel | awk -F. '{ print $1 $2 }' 2>/dev/null || echo ERROR)
414 VBOX_USE_SYSTEM_XORG_HEADERS=1
416 VBOX_WITH_LIGHTDM_GREETER=1
417 VBOX_WITH_LIGHTDM_GREETER_PACKING=1
419 TOOL_GCC3_CFLAGS=%{rpmcflags}
420 TOOL_GCC3_CXXFLAGS=%{rpmcxxflags}
421 VBOX_GCC_OPT=%{rpmcxxflags}
426 %if %{with userspace}
428 --with-gcc="%{__cc}" \
429 --with-g++="%{__cxx}" \
430 %{!?with_doc:--disable-docs} \
432 --disable-hardening \
435 %{__enable webservice} \
438 XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
443 export KERN_DIR=%{_kernelsrcdir}
444 cd PLD-MODULE-BUILD/HostDrivers
445 %build_kernel_modules -m vboxdrv -C vboxdrv
446 %build_kernel_modules -m vboxnetadp -C vboxnetadp
447 %build_kernel_modules -m vboxnetflt -C vboxnetflt
448 %build_kernel_modules -m vboxpci -C vboxpci
451 %build_kernel_modules -m vboxguest -C vboxguest
452 cp -a vboxguest/Module.symvers vboxsf
453 %build_kernel_modules -m vboxsf -C vboxsf -c
454 %build_kernel_modules -m vboxvideo -C vboxvideo
456 %{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
460 rm -rf $RPM_BUILD_ROOT
462 %if %{with userspace}
463 install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
464 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
465 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
466 $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \
467 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir}}
469 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
470 if cp -al VBox.png $RPM_BUILD_ROOT/Vbox.png 2>/dev/null; then
472 %{__rm} -f $RPM_BUILD_ROOT/VBox.png
475 cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
478 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual.pdf
479 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual_fr_FR.pdf
482 install -d $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions
483 cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
484 install -p %{SOURCE5} $RPM_BUILD_ROOT/sbin/mount.vdi
485 install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
486 for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
487 ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
490 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
491 install -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service
493 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/VBox.png,%{_pixmapsdir}/virtualbox.png}
494 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_desktopdir}}/virtualbox.desktop
496 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_system.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
497 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
499 # XXX: where else to install them that vboxvideo_dri.so finds them? patch with rpath?
500 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLarrayspu.so
501 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLcrutil.so
502 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLerrorspu.so
503 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLfeedbackspu.so
504 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.so
505 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpassthroughspu.so
507 cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
508 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
510 install -d $RPM_BUILD_ROOT/%{_lib}/security
511 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,/%{_lib}/security}/pam_vbox.so
514 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{src,sdk,testcase}
515 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src
516 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
517 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst*
518 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
521 install -d $RPM_BUILD_ROOT/etc/{X11/xinit/xinitrc.d,xdg/autostart}
522 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
523 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
524 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
525 install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
526 $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
527 cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
528 $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
531 install -d $RPM_BUILD_ROOT%{_datadir}/xgreeters
532 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_sbindir}}/vbox-greeter
533 cp -p %{objdir}/Additions/Installer/linux/share/VBoxGuestAdditions/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
538 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
539 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
540 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
541 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.sh
542 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
543 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
544 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
545 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
546 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
547 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/CPUMInternal.d
548 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/cpumctx.d
549 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-arch-types.d
550 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-types.d
551 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vm.d
552 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/x86.d
553 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/%{vbox_arch}/vbox-vm-struct-test.d
554 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/helpers/generate_service_file
555 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/VBoxHeadlessXOrg.sh
556 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/generated.sh
557 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/init_template.sh
558 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install_service
561 # packaged by kernel part
562 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf
566 install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin}
567 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc
568 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc
569 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc
570 %install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc
571 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc
572 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc
573 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc
575 install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
577 # Tell systemd to load modules
578 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf
579 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-guest.conf
583 rm -rf $RPM_BUILD_ROOT
586 %groupadd -g 221 -r -f vbox
589 %update_desktop_database
590 for i in /sys/bus/usb/devices/*; do
591 if [ -r "$i/dev" ]; then
592 dev="`cat "$i/dev" 2>/dev/null || true`"
593 major="`expr "$dev" : '\(.*\):' 2> /dev/null || true`"
594 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null || true`"
595 class="`cat $i/bDeviceClass 2> /dev/null || true`"
596 /lib/udev/VBoxCreateUSBNode.sh "$major" "$minor" "$class" vbox 2>/dev/null
601 You must install vboxdrv kernel modules for this software to work:
602 kernel%{_alt_kernel}-virtualbox-host-%{version}-%{rel}@%{_kernel_ver_str}
604 On Guest Linux system you might want to install:
605 kernel%{_alt_kernel}-virtualbox-guest-%{version}-%{rel}@%{_kernel_ver_str}
610 if [ "$1" = "0" ]; then
615 /sbin/chkconfig --add vboxservice
616 %service vboxservice restart
617 %systemd_post vboxservice.service
620 if [ "$1" = "0" ]; then
621 /sbin/chkconfig --del vboxservice
622 %service vboxservice -q stop
624 %systemd_preun vboxservice.service
629 %triggerpostun guest -- VirtualBox-guest < 4.3.0-1
630 %systemd_trigger vboxservice.service
632 %pre -n lightdm-greeter-vbox
633 %addusertogroup xdm vbox
635 %post -n kernel%{_alt_kernel}-virtualbox-guest
636 %depmod %{_kernel_ver}
638 %postun -n kernel%{_alt_kernel}-virtualbox-guest
639 %depmod %{_kernel_ver}
641 %post -n kernel%{_alt_kernel}-virtualbox-host
642 %depmod %{_kernel_ver}
644 %postun -n kernel%{_alt_kernel}-virtualbox-host
645 %depmod %{_kernel_ver}
647 %if %{with userspace}
649 %defattr(644,root,root,755)
650 %dir %{_libdir}/%{pname}
651 %dir %{_libdir}/%{pname}/ExtensionPacks
652 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC
653 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*
654 %dir %{_libdir}/%{pname}/additions
655 %dir %{_libdir}/%{pname}/components
656 %dir %{_libdir}/%{pname}/nls
657 %attr(755,root,root) %{_bindir}/VBoxBFE
658 %attr(755,root,root) %{_bindir}/VBoxHeadless
659 %attr(755,root,root) %{_bindir}/VBoxManage
660 %attr(755,root,root) %{_bindir}/VBoxSDL
661 %attr(755,root,root) %{_bindir}/VBoxSVC
662 %attr(755,root,root) %{_bindir}/VBoxTunctl
663 %attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
664 %attr(755,root,root) %{_bindir}/VirtualBox
665 %attr(755,root,root) /sbin/mount.vdi
666 %attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so
667 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
668 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
669 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart
670 %attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl
671 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so
672 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so
673 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so
674 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so
675 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDragAndDropSvc.so
676 %attr(755,root,root) %{_libdir}/%{pname}/VBoxExtPackHelperApp
677 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestControlSvc.so
678 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestPropSvc.so
679 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHeadless
680 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHostChannel.so
681 %attr(755,root,root) %{_libdir}/%{pname}/VBoxKeyboard.so
682 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManage
683 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetNAT
684 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVolInfo
685 %attr(755,root,root) %{_libdir}/%{pname}/iPxeBaseBin
687 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManageHelp
689 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetAdpCtl
690 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetDHCP
691 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhostcrutil.so
692 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhosterrorspu.so
693 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLrenderspu.so
694 %attr(755,root,root) %{_libdir}/%{pname}/VBoxPython*.so
695 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM.so
697 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM32.so
698 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM64.so
700 %attr(755,root,root) %{_libdir}/%{pname}/VBoxRT.so
701 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSDL
702 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedClipboard.so
703 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedCrOpenGL.so
704 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so
705 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC
706 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh
707 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL
708 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTunctl
709 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so
710 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload
711 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so
712 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD
713 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so
714 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox
715 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox-wrapper.sh
716 %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so
717 %{_libdir}/%{pname}/VBoxDD2GC.debug
718 %{_libdir}/%{pname}/VBoxDD2GC.gc
719 %{_libdir}/%{pname}/VBoxDD2R0.debug
720 %{_libdir}/%{pname}/VBoxDD2R0.r0
721 %{_libdir}/%{pname}/VBoxDDGC.debug
722 %{_libdir}/%{pname}/VBoxDDGC.gc
723 %{_libdir}/%{pname}/VBoxDDR0.debug
724 %{_libdir}/%{pname}/VBoxDDR0.r0
725 %{_libdir}/%{pname}/VBoxEFI32.fd
726 %{_libdir}/%{pname}/VBoxEFI64.fd
727 %{_libdir}/%{pname}/VMMGC.debug
728 %{_libdir}/%{pname}/VMMGC.gc
729 %{_libdir}/%{pname}/VMMR0.debug
730 %{_libdir}/%{pname}/VMMR0.r0
731 %{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt
732 %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
733 %{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt
734 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so
735 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so
736 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so
737 %lang(bg) %{_libdir}/%{pname}/nls/*_bg.qm
738 %lang(ca) %{_libdir}/%{pname}/nls/*_ca.qm
739 %lang(ca_VA) %{_libdir}/%{pname}/nls/*_ca_VA.qm
740 %lang(cs) %{_libdir}/%{pname}/nls/*_cs.qm
741 %lang(da) %{_libdir}/%{pname}/nls/*_da.qm
742 %lang(de) %{_libdir}/%{pname}/nls/*_de.qm
743 %lang(en) %{_libdir}/%{pname}/nls/*_en.qm
744 %lang(es) %{_libdir}/%{pname}/nls/*_es.qm
745 %lang(eu) %{_libdir}/%{pname}/nls/*_eu.qm
746 %lang(fi) %{_libdir}/%{pname}/nls/*_fa_IR.qm
747 %lang(fi) %{_libdir}/%{pname}/nls/*_fi.qm
748 %lang(fr) %{_libdir}/%{pname}/nls/*_fr.qm
749 %lang(gl_ES) %{_libdir}/%{pname}/nls/*_gl_ES.qm
750 %lang(hu) %{_libdir}/%{pname}/nls/*_hu.qm
751 %lang(id) %{_libdir}/%{pname}/nls/*_id.qm
752 %lang(it) %{_libdir}/%{pname}/nls/*_it.qm
753 %lang(ja) %{_libdir}/%{pname}/nls/*_ja.qm
754 %lang(km_KH) %{_libdir}/%{pname}/nls/*_km_KH.qm
755 %lang(ko) %{_libdir}/%{pname}/nls/*_ko.qm
756 %lang(lt) %{_libdir}/%{pname}/nls/*_lt.qm
757 %lang(nl) %{_libdir}/%{pname}/nls/*_nl.qm
758 %lang(pl) %{_libdir}/%{pname}/nls/*_pl.qm
759 %lang(pt) %{_libdir}/%{pname}/nls/*_pt.qm
760 %lang(pt_BR) %{_libdir}/%{pname}/nls/*_pt_BR.qm
761 %lang(ro) %{_libdir}/%{pname}/nls/*_ro.qm
762 %lang(ru) %{_libdir}/%{pname}/nls/*_ru.qm
763 %lang(sk) %{_libdir}/%{pname}/nls/*_sk.qm
764 %lang(sr) %{_libdir}/%{pname}/nls/*_sr.qm
765 %lang(sv) %{_libdir}/%{pname}/nls/*_sv.qm
766 %lang(tr) %{_libdir}/%{pname}/nls/*_tr.qm
767 %lang(uk) %{_libdir}/%{pname}/nls/*_uk.qm
768 %lang(zh_CN) %{_libdir}/%{pname}/nls/*_zh_CN.qm
769 %lang(zh_TW) %{_libdir}/%{pname}/nls/*_zh_TW.qm
770 %{_pixmapsdir}/virtualbox.png
771 %{_desktopdir}/*.desktop
772 %{_libdir}/%{pname}/icons
773 %{_libdir}/%{pname}/virtualbox.xml
775 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
776 %attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
779 %defattr(644,root,root,755)
780 %{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
783 %defattr(644,root,root,755)
784 %attr(755,root,root) /sbin/mount.vboxsf
785 %attr(754,root,root) /etc/rc.d/init.d/vboxservice
786 %{systemdunitdir}/vboxservice.service
787 %attr(755,root,root) %{_bindir}/VBoxControl
788 %attr(755,root,root) %{_bindir}/VBoxService
791 %defattr(644,root,root,755)
792 # NOTE: unfinished, should contain .desktop files for starting up mouse
793 # integration and other desktop services
794 # NOTE: the filelist is incomplete too
795 %attr(755,root,root) %{_bindir}/VBoxClient
796 /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
797 /etc/xdg/autostart/vboxclient.desktop
799 %attr(755,root,root) %{_libdir}/%{pname}/additions/autorun.sh
800 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd
801 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-service
802 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-x11
804 %if %{with webservice}
806 %defattr(644,root,root,755)
807 %attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
808 %attr(755,root,root) %{_libdir}/%{pname}/webtest
812 %files -n lightdm-greeter-vbox
813 %defattr(644,root,root,755)
814 %attr(755,root,root) %{_sbindir}/vbox-greeter
815 %{_datadir}/xgreeters/vbox-greeter.desktop
818 %files -n pam-pam_vbox
819 %defattr(644,root,root,755)
820 %attr(755,root,root) /%{_lib}/security/pam_vbox.so
824 %defattr(644,root,root,755)
825 # this is a symlink...
826 %doc %{_libdir}/%{pname}/UserManual.pdf
827 %lang(fr) %doc %{_libdir}/%{pname}/UserManual_fr_FR.pdf
829 %doc %{outdir}/UserManual.pdf
830 %lang(fr) %doc %{outdir}/UserManual_fr_FR.pdf
833 %files -n xorg-driver-video-vboxvideo
834 %defattr(644,root,root,755)
835 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
836 %attr(755,root,root) %{_libdir}/xorg/modules/dri/vboxvideo_dri.so
837 # vboxvideo_dri.so deps
838 %attr(755,root,root) %{_libdir}/VBoxOGLarrayspu.so
839 %attr(755,root,root) %{_libdir}/VBoxOGLcrutil.so
840 %attr(755,root,root) %{_libdir}/VBoxOGLerrorspu.so
841 %attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so
842 %attr(755,root,root) %{_libdir}/VBoxOGLpackspu.so
843 %attr(755,root,root) %{_libdir}/VBoxOGLpassthroughspu.so
847 %files -n kernel%{_alt_kernel}-virtualbox-guest
848 %defattr(644,root,root,755)
849 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf
850 /lib/modules/%{_kernel_ver}/misc/vboxguest.ko*
851 /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*
852 /lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*
854 %files -n kernel%{_alt_kernel}-virtualbox-host
855 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf
856 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*
857 /lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*
858 /lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*
859 /lib/modules/%{_kernel_ver}/misc/vboxpci.ko*