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
20 %undefine with_dist_kernel
22 %define _duplicate_files_terminate_build 0
25 # The goal here is to have main, userspace, package built once with
26 # simple release number, and only rebuild kernel packages with kernel
27 # version as part of release number, without the need to bump release
28 # with every kernel change.
29 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
30 %{error:kernel and userspace cannot be built at the same time on PLD builders}
34 %if "%{_alt_kernel}" != "%{nil}"
35 %if 0%{?build_kernels:1}
36 %{error:alt_kernel and build_kernels are mutually exclusive}
39 %undefine with_userspace
40 %global _build_kernels %{alt_kernel}
42 %global _build_kernels %{?build_kernels:,%{?build_kernels}}
45 %if %{without userspace}
46 # nothing to be placed to debuginfo package
47 %define _enable_debug_packages 0
50 %define kbrs %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo "BuildRequires:kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2" ; done)
51 %define kpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
52 %define bkpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
53 %define ikpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%install_kernel_pkg ; done)
56 %define pname VirtualBox
57 Summary: VirtualBox - x86 hardware virtualizer
58 Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
59 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
61 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
63 Group: Applications/Emulators
64 Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
65 # Source0-md5: 065c713bb691929179f1649d5118a340
66 Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
67 # Source1-md5: 528f6af69954a1d12fb1125c466d7948
68 Source2: vboxservice.init
69 Source3: vboxservice.service
73 Source7: %{pname}-virtualbox-host-modules-load.conf
74 Source8: %{pname}-virtualbox-guest-modules-load.conf
75 Patch0: %{pname}-configure-spaces.patch
76 Patch1: %{pname}-VBoxSysInfo.patch
77 Patch2: %{pname}-warning_workaround.patch
78 Patch3: %{pname}-dri.patch
79 Patch5: xserver-1.12.patch
80 Patch7: lightdm-greeter-glib-includes.patch
81 Patch8: lightdm-greeter-g++-link.patch
83 Patch10: 16-no-update.patch
84 Patch11: 18-system-xorg.patch
86 URL: http://www.virtualbox.org/
89 BuildRequires: gcc-multilib
90 BuildRequires: glibc-devel(i686)
91 BuildRequires: libstdc++-multilib-devel
92 BuildRequires: libstdc++-multilib-static
94 %if "%{pld_release}" == "ac"
95 BuildRequires: XFree86-devel
97 BuildRequires: xorg-lib-libXcomposite-devel
98 BuildRequires: xorg-lib-libXcursor-devel
99 BuildRequires: xorg-lib-libXmu-devel
100 BuildRequires: xorg-proto-glproto-devel
101 BuildRequires: xorg-xserver-server-devel
103 BuildRequires: OpenGL-GLU-devel
104 BuildRequires: OpenGL-devel
105 BuildRequires: QtGui-devel
106 BuildRequires: QtNetwork-devel
107 BuildRequires: QtOpenGL-devel
108 BuildRequires: SDL-devel >= 1.2.7
109 BuildRequires: acpica
110 BuildRequires: alsa-lib-devel >= 1.0.6
114 BuildRequires: curl-devel
115 BuildRequires: device-mapper-devel
116 %{?with_doc:BuildRequires: docbook-dtd44-xml}
117 %{?with_lightdm:BuildRequires: fltk-devel}
118 BuildRequires: gcc >= 5:3.2.3
119 %{?with_webservice:BuildRequires: gsoap-devel}
121 BuildRequires: kBuild >= 0.1.9998.2700
122 BuildRequires: libIDL-devel
123 BuildRequires: libcap-static
124 BuildRequires: libdrm-devel
125 BuildRequires: libpng-devel >= 1.2.5
126 BuildRequires: libstdc++-devel >= 5:3.2.3
127 BuildRequires: libstdc++-static >= 5:3.2.3
128 BuildRequires: libuuid-devel
129 BuildRequires: libvncserver-devel >= 0.9.9
130 BuildRequires: libvpx-devel
131 BuildRequires: libxml2-devel >= 2.6.26
132 BuildRequires: libxslt-devel >= 1.1.17
133 BuildRequires: libxslt-progs >= 1.1.17
134 %{?with_lightdm:BuildRequires: lightdm-libs-qt-devel}
135 BuildRequires: makeself
136 BuildRequires: mkisofs
137 BuildRequires: pam-devel
138 BuildRequires: pixman-devel
139 BuildRequires: pkgconfig
140 BuildRequires: pulseaudio-devel >= 0.9.0
141 BuildRequires: python-devel
142 BuildRequires: python-modules
143 BuildRequires: qt4-build >= 4.2.0
144 BuildRequires: qt4-linguist
145 BuildRequires: rpmbuild(macros) >= 1.678
146 BuildRequires: sed >= 4.0
148 BuildRequires: texlive-fonts-bitstream
149 BuildRequires: texlive-fonts-other
150 BuildRequires: texlive-fonts-type1-bitstream
151 BuildRequires: texlive-format-pdflatex
152 BuildRequires: texlive-latex-ucs
153 BuildRequires: texlive-xetex
156 BuildRequires: xalan-c-devel >= 1.10.0
157 BuildRequires: xerces-c-devel >= 2.6.0
159 BuildRequires: zlib-devel >= 1.2.1
161 %{?with_dist_kernel:%{expand:%kbrs}}
162 Requires(post,preun): /sbin/chkconfig
163 Requires(postun): /usr/sbin/groupdel
164 Requires(pre): /usr/bin/getgid
165 Requires(pre): /usr/sbin/groupadd
166 Requires: QtCore >= 4.7.0
167 Requires: desktop-file-utils
169 Requires: fonts-Type1-urw
170 Requires: libvncserver >= 0.9.9
173 Provides: group(vbox)
174 Obsoletes: VirtualBox-udev < 4.2.10-5
175 ExclusiveArch: %{ix86} %{x8664}
176 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
179 %define vbox_arch amd64
181 %define vbox_arch x86
183 %define vbox_platform linux.%{vbox_arch}
184 %define outdir out/%{vbox_platform}/release/bin
185 %define objdir out/%{vbox_platform}/release/obj
188 Oracle VirtualBox is a general-purpose full virtualizer for x86
189 hardware. Targeted at server, desktop and embedded use, it is now the
190 only professional-quality virtualization solution that is also Open
193 Some of the features of VirtualBox are:
195 Modularity: VirtualBox has an extremely modular design with
196 well-defined internal programming interfaces and a client/server
197 design. This makes it easy to control it from several interfaces at
198 once: for example, you can start a virtual machine in a typical
199 virtual machine GUI and then control that machine from the command
200 line. VirtualBox also comes with a full Software Development Kit: even
201 though it is Open Source Software, you don't have to hack the source
202 to write a new interface for VirtualBox.
204 Virtual machine descriptions in XML: the configuration settings of
205 virtual machines are stored entirely in XML and are independent of the
206 local machines. Virtual machine definitions can therefore easily be
207 ported to other computers.
209 You should install this package in your Host OS.
211 %description -l pl.UTF-8
212 Oracle VirtualBox jest emulatorem sprzętu x86. Kierowany do zastosowań
213 serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym
214 wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako
215 Otwarte Oprogramowanie.
217 Przykładowe cechy VirtualBoksa:
219 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
220 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
221 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
222 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
223 poziomu interfejsu graficznego, a później kontrolować ją z linii
224 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
225 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
227 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
228 wirtualnych są w całości przechowywane w XML-u i są niezależne od
229 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
230 konfigurację maszyny wirtualnej na inny komputer.
233 Summary: VirtualBox documentation
237 This package contains VirtualBox User Manual.
240 Summary: VirtualBox Guest Additions
242 Requires: %{name} = %{version}-%{release}
244 %description additions
245 VirtualBox Guest Additions.
247 This package contains ISO9660 image with drivers for Guest OS.
249 You should install this package in your Host OS.
252 Summary: VirtualBox Guest tools
254 Requires(post,preun): /sbin/chkconfig
255 Requires(post): systemd-units >= 38
257 Requires: systemd-units >= 38
258 Suggests: kernel(vboxguest)
259 Suggests: kernel(vboxsf)
260 Suggests: pam-pam_vbox
263 Tools that utilize kernel modules for supporting integration with the
264 Host, including file sharing.
266 You should install this package in your Guest OS for base VirtualBox
270 Summary: VirtualBox Guest Additions
272 Requires: %{name}-guest = %{version}-%{release}
273 Requires: xorg-driver-video-vboxvideo = %{version}-%{release}
274 Suggests: kernel(vboxvideo)
275 Obsoletes: xorg-driver-input-vboxmouse < %{version}-%{release}
277 %description guest-x11
278 Tools for X11 session that utilize kernel modules for supporting
279 integration with the Host, like tracking of mouse pointer movement and
280 X.org X11 video and mouse drivers
282 You should install this package in your Guest OS for X11 session.
285 Summary: VirtualBox Web Service
286 Group: Applications/Emulators
287 Requires: %{name} = %{version}-%{release}
289 %description webservice
290 This package contains VirtualBox web service API daemon. It allows to
291 control virtual machines via web interface.
293 %package -n lightdm-greeter-vbox
294 Summary: VirtualBox greeter for lightdm
296 # NOTE: '#' in url is lost because rpm treats it as comment, even hacking with
297 # macros doesn't help as rpmbuild takes final result to parse
298 URL: http://www.virtualbox.org/manual/ch09.html#autologon_unix_lightdm
299 Requires: kernel(vboxguest)
300 Requires: lightdm >= 1.0.1
301 Provides: lightdm-greeter
303 %description -n lightdm-greeter-vbox
304 VirtualBox greeter for LightDM.
306 %package -n pam-pam_vbox
307 Summary: PAM module to perform automated guest logons
310 %description -n pam-pam_vbox
311 PAM module (Pluggable Authentication Module) which can be used to
312 perform automated guest logons.
314 %package -n xorg-driver-video-vboxvideo
315 Summary: X.org video driver for VirtualBox guest OS
316 Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie
317 Group: X11/Applications
318 Requires: Mesa-dri-driver-swrast
319 Requires: xorg-xserver-libdri >= 1.7.4
320 Requires: xorg-xserver-server >= 1.0.99.901
321 Requires: xorg-xserver-server(videodrv-abi) <= 14.1
322 Requires: xorg-xserver-server(videodrv-abi) >= 2.0
323 Provides: xorg-driver-video
325 %description -n xorg-driver-video-vboxvideo
326 X.org video driver for VirtualBox guest OS.
328 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
329 Sterownik grafiki dla systemu gościa w VirtualBoksie.
333 # KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
335 %define kernel_pkg()\
336 %package -n kernel%{_alt_kernel}-virtualbox-guest\
337 Summary: VirtualBox kernel modules for Linux Guest\
338 Summary(pl.UTF-8): Moduły VirtualBoksa do jądra Linuksa dla systemu gościa\
339 Release: %{rel}@%{_kernel_ver_str}\
341 Requires(post,postun): /sbin/depmod\
342 Requires(post): systemd-units >= 38\
343 Requires: dev >= 2.9.0-7\
344 Requires: systemd-units >= 38\
345 %if %{with dist_kernel}\
346 %requires_releq_kernel\
347 Requires: %{releq_kernel -n drm}\
348 Requires(postun): %releq_kernel\
350 Provides: kernel(vboxguest) = %{version}-%{rel}\
351 Provides: kernel(vboxsf) = %{version}-%{rel}\
352 Provides: kernel(vboxvideo) = %{version}-%{rel}\
353 Obsoletes: kernel-init-guest\
354 Conflicts: kernel%{_alt_kernel}-virtualbox-host\
356 %description -n kernel%{_alt_kernel}-virtualbox-guest\
357 This package contains VirtualBox Guest Additions for Linux Module,\
358 host file system access (Shared Folders) and DRM support for\
361 %description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8\
362 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -\
363 dodatki dla systemu gościa, dostęp do plików systemu głównego z\
364 poziomu systemu gościa i sterownik obsługi DRM.\
366 %package -n kernel%{_alt_kernel}-virtualbox-host\
367 Summary: VirtualBox Support Drivers\
368 Summary(pl.UTF-8): Moduły jądra Linuksa dla VirtualBoksa\
369 Release: %{rel}@%{_kernel_ver_str}\
371 Requires(post,postun): /sbin/depmod\
372 Requires(post): systemd-units >= 38\
373 Requires: dev >= 2.9.0-7\
374 %if %{with dist_kernel}\
375 %requires_releq_kernel\
376 Requires(postun): %releq_kernel\
378 Requires: systemd-units >= 38\
379 Provides: kernel(vboxdrv) = %{version}-%{rel}\
380 Provides: kernel(vboxnetadp) = %{version}-%{rel}\
381 Provides: kernel(vboxnetflt) = %{version}-%{rel}\
382 Provides: kernel(vboxpci) = %{version}-%{rel}\
383 Obsoletes: kernel-init-host\
385 %description -n kernel%{_alt_kernel}-virtualbox-host\
386 This package contains VirtualBox Support Driver, Network Adapter\
387 Driver, Network Filter Driver and PCI card passthrough driver that\
388 works as host proxy between guest and PCI hardware.\
390 %description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8\
391 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik\
392 witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu\
393 głównego oraz sterownik, ktory działa jako proxy między gościem i\
394 gospodarzem sprzętu PCI.\
397 %files -n kernel%{_alt_kernel}-virtualbox-guest\
398 %defattr(644,root,root,755)\
399 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf\
400 /lib/modules/%{_kernel_ver}/misc/vboxguest.ko*\
401 /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*\
402 /lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*\
404 %files -n kernel%{_alt_kernel}-virtualbox-host\
405 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf\
406 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*\
407 /lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*\
408 /lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*\
409 /lib/modules/%{_kernel_ver}/misc/vboxpci.ko*\
412 %post -n kernel%{_alt_kernel}-virtualbox-guest\
413 %depmod %{_kernel_ver}\
415 %postun -n kernel%{_alt_kernel}-virtualbox-guest\
416 %depmod %{_kernel_ver}\
418 %post -n kernel%{_alt_kernel}-virtualbox-host\
419 %depmod %{_kernel_ver}\
421 %postun -n kernel%{_alt_kernel}-virtualbox-host\
422 %depmod %{_kernel_ver}\
425 %define build_kernel_pkg()\
426 export KERN_DIR=%{_kernelsrcdir}\
427 cd PLD-MODULE-BUILD/HostDrivers\
428 %build_kernel_modules -m vboxdrv -C vboxdrv\
429 %build_kernel_modules -m vboxnetadp -C vboxnetadp\
430 %build_kernel_modules -m vboxnetflt -C vboxnetflt\
431 %build_kernel_modules -m vboxpci -C vboxpci\
433 %build_kernel_modules -m vboxguest -C vboxguest\
434 cp -a vboxguest/Module.symvers vboxsf\
435 %build_kernel_modules -m vboxsf -C vboxsf -c\
436 %build_kernel_modules -m vboxvideo -C vboxvideo\
438 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc\
439 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc\
440 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc\
441 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc\
442 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc\
443 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc\
444 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc\
447 %{?with_kernel:%{expand:%kpkg}}
450 %setup -q -n %{pname}-%{version}
459 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
460 -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
463 %{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
464 -i Config.kmk src/libs/xpcom18a4/Config.kmk
466 %{__sed} 's#@LIBDIR@#%{_libdir}#' < %{SOURCE4} > VirtualBox-wrapper.sh
468 install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
470 ../src/VBox/Additions/linux/export_modules guest-modules.tar.gz
471 tar -zxf guest-modules.tar.gz -C GuestDrivers
473 ../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening
474 tar -zxf host-modules.tar.gz -C HostDrivers
479 # using system kBuild package
482 cat <<'EOF'>> LocalConfig.kmk
483 %{?with_verbose:KBUILD_VERBOSE=3}
485 __VBOX_BUILD_PUBLISHER=_PLD
486 VBOX_VERSION_STRING=$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)_PLD
487 XSERVER_VERSION=%(rpm -q --queryformat '%{V}\n' xorg-xserver-server-devel | awk -F. '{ print $1 $2 }' 2>/dev/null || echo ERROR)
488 VBOX_USE_SYSTEM_XORG_HEADERS=1
490 VBOX_WITH_LIGHTDM_GREETER=1
491 VBOX_WITH_LIGHTDM_GREETER_PACKING=1
493 TOOL_GCC3_CFLAGS=%{rpmcflags}
494 TOOL_GCC3_CXXFLAGS=%{rpmcxxflags}
495 VBOX_GCC_OPT=%{rpmcxxflags}
500 %if %{with userspace}
502 --with-gcc="%{__cc}" \
503 --with-g++="%{__cxx}" \
504 %{!?with_doc:--disable-docs} \
506 --disable-hardening \
509 %{__enable webservice} \
512 XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
515 %{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
518 %{?with_kernel:%{expand:%bkpkg}}
521 rm -rf $RPM_BUILD_ROOT
523 %if %{with userspace}
524 install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
525 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
526 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
527 $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \
528 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir}}
530 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
531 if cp -al VBox.png $RPM_BUILD_ROOT/Vbox.png 2>/dev/null; then
533 %{__rm} -f $RPM_BUILD_ROOT/VBox.png
536 cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
539 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual.pdf
540 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual_fr_FR.pdf
543 install -d $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions
544 cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
545 install -p %{SOURCE5} $RPM_BUILD_ROOT/sbin/mount.vdi
546 install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
547 for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
548 ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
551 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
552 install -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service
554 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/VBox.png,%{_pixmapsdir}/virtualbox.png}
555 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_desktopdir}}/virtualbox.desktop
557 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_system.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
558 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
560 # XXX: where else to install them that vboxvideo_dri.so finds them? patch with rpath?
561 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLarrayspu.so
562 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLcrutil.so
563 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLerrorspu.so
564 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLfeedbackspu.so
565 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.so
566 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpassthroughspu.so
568 cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
569 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
571 install -d $RPM_BUILD_ROOT/%{_lib}/security
572 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,/%{_lib}/security}/pam_vbox.so
575 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{src,sdk,testcase}
576 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src
577 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
578 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst*
579 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
582 install -d $RPM_BUILD_ROOT/etc/{X11/xinit/xinitrc.d,xdg/autostart}
583 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
584 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
585 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
586 install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
587 $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
588 cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
589 $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
592 install -d $RPM_BUILD_ROOT%{_datadir}/xgreeters
593 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_sbindir}}/vbox-greeter
594 cp -p %{objdir}/Additions/Installer/linux/share/VBoxGuestAdditions/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
599 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
600 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
601 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
602 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.sh
603 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
604 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
605 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
606 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
607 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
608 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/CPUMInternal.d
609 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/cpumctx.d
610 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-arch-types.d
611 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-types.d
612 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vm.d
613 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/x86.d
614 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/%{vbox_arch}/vbox-vm-struct-test.d
615 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/helpers/generate_service_file
616 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/VBoxHeadlessXOrg.sh
617 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/generated.sh
618 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/init_template.sh
619 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install_service
622 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf
624 install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
628 install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin}
630 cp -a PLD-MODULE-BUILD/installed/* $RPM_BUILD_ROOT
632 # Tell systemd to load modules
633 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf
634 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-guest.conf
638 rm -rf $RPM_BUILD_ROOT
641 %groupadd -g 221 -r -f vbox
644 %update_desktop_database
645 for i in /sys/bus/usb/devices/*; do
646 if [ -r "$i/dev" ]; then
647 dev="`cat "$i/dev" 2>/dev/null || true`"
648 major="`expr "$dev" : '\(.*\):' 2> /dev/null || true`"
649 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null || true`"
650 class="`cat $i/bDeviceClass 2> /dev/null || true`"
651 /lib/udev/VBoxCreateUSBNode.sh "$major" "$minor" "$class" vbox 2>/dev/null
656 You must install vboxdrv kernel modules for this software to work:
657 kernel*-virtualbox-host-%{version}-%{rel}@*
659 On Guest Linux system you might want to install:
660 kernel*-virtualbox-guest-%{version}-%{rel}@*
665 if [ "$1" = "0" ]; then
670 /sbin/chkconfig --add vboxservice
671 %service vboxservice restart
672 %systemd_post vboxservice.service
675 if [ "$1" = "0" ]; then
676 /sbin/chkconfig --del vboxservice
677 %service vboxservice -q stop
679 %systemd_preun vboxservice.service
684 %triggerpostun guest -- VirtualBox-guest < 4.3.0-1
685 %systemd_trigger vboxservice.service
687 %pre -n lightdm-greeter-vbox
688 %addusertogroup xdm vbox
690 %if %{with userspace}
692 %defattr(644,root,root,755)
693 %dir %{_libdir}/%{pname}
694 %dir %{_libdir}/%{pname}/ExtensionPacks
695 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC
696 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*
697 %dir %{_libdir}/%{pname}/additions
698 %dir %{_libdir}/%{pname}/components
699 %dir %{_libdir}/%{pname}/nls
700 %attr(755,root,root) %{_bindir}/VBoxBFE
701 %attr(755,root,root) %{_bindir}/VBoxHeadless
702 %attr(755,root,root) %{_bindir}/VBoxManage
703 %attr(755,root,root) %{_bindir}/VBoxSDL
704 %attr(755,root,root) %{_bindir}/VBoxSVC
705 %attr(755,root,root) %{_bindir}/VBoxTunctl
706 %attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
707 %attr(755,root,root) %{_bindir}/VirtualBox
708 %attr(755,root,root) /sbin/mount.vdi
709 %attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so
710 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
711 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
712 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart
713 %attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl
714 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so
715 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so
716 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so
717 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so
718 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDragAndDropSvc.so
719 %attr(755,root,root) %{_libdir}/%{pname}/VBoxExtPackHelperApp
720 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestControlSvc.so
721 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestPropSvc.so
722 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHeadless
723 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHostChannel.so
724 %attr(755,root,root) %{_libdir}/%{pname}/VBoxKeyboard.so
725 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManage
726 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetNAT
727 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVolInfo
728 %attr(755,root,root) %{_libdir}/%{pname}/iPxeBaseBin
730 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManageHelp
732 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetAdpCtl
733 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetDHCP
734 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhostcrutil.so
735 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhosterrorspu.so
736 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLrenderspu.so
737 %attr(755,root,root) %{_libdir}/%{pname}/VBoxPython*.so
738 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM.so
740 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM32.so
741 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM64.so
743 %attr(755,root,root) %{_libdir}/%{pname}/VBoxRT.so
744 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSDL
745 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedClipboard.so
746 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedCrOpenGL.so
747 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so
748 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC
749 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh
750 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL
751 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTunctl
752 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so
753 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload
754 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so
755 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD
756 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so
757 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox
758 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox-wrapper.sh
759 %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so
760 %{_libdir}/%{pname}/VBoxDD2GC.debug
761 %{_libdir}/%{pname}/VBoxDD2GC.gc
762 %{_libdir}/%{pname}/VBoxDD2R0.debug
763 %{_libdir}/%{pname}/VBoxDD2R0.r0
764 %{_libdir}/%{pname}/VBoxDDGC.debug
765 %{_libdir}/%{pname}/VBoxDDGC.gc
766 %{_libdir}/%{pname}/VBoxDDR0.debug
767 %{_libdir}/%{pname}/VBoxDDR0.r0
768 %{_libdir}/%{pname}/VBoxEFI32.fd
769 %{_libdir}/%{pname}/VBoxEFI64.fd
770 %{_libdir}/%{pname}/VMMGC.debug
771 %{_libdir}/%{pname}/VMMGC.gc
772 %{_libdir}/%{pname}/VMMR0.debug
773 %{_libdir}/%{pname}/VMMR0.r0
774 %{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt
775 %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
776 %{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt
777 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so
778 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so
779 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so
780 %lang(bg) %{_libdir}/%{pname}/nls/*_bg.qm
781 %lang(ca) %{_libdir}/%{pname}/nls/*_ca.qm
782 %lang(ca_VA) %{_libdir}/%{pname}/nls/*_ca_VA.qm
783 %lang(cs) %{_libdir}/%{pname}/nls/*_cs.qm
784 %lang(da) %{_libdir}/%{pname}/nls/*_da.qm
785 %lang(de) %{_libdir}/%{pname}/nls/*_de.qm
786 %lang(en) %{_libdir}/%{pname}/nls/*_en.qm
787 %lang(es) %{_libdir}/%{pname}/nls/*_es.qm
788 %lang(eu) %{_libdir}/%{pname}/nls/*_eu.qm
789 %lang(fi) %{_libdir}/%{pname}/nls/*_fa_IR.qm
790 %lang(fi) %{_libdir}/%{pname}/nls/*_fi.qm
791 %lang(fr) %{_libdir}/%{pname}/nls/*_fr.qm
792 %lang(gl_ES) %{_libdir}/%{pname}/nls/*_gl_ES.qm
793 %lang(hu) %{_libdir}/%{pname}/nls/*_hu.qm
794 %lang(id) %{_libdir}/%{pname}/nls/*_id.qm
795 %lang(it) %{_libdir}/%{pname}/nls/*_it.qm
796 %lang(ja) %{_libdir}/%{pname}/nls/*_ja.qm
797 %lang(km_KH) %{_libdir}/%{pname}/nls/*_km_KH.qm
798 %lang(ko) %{_libdir}/%{pname}/nls/*_ko.qm
799 %lang(lt) %{_libdir}/%{pname}/nls/*_lt.qm
800 %lang(nl) %{_libdir}/%{pname}/nls/*_nl.qm
801 %lang(pl) %{_libdir}/%{pname}/nls/*_pl.qm
802 %lang(pt) %{_libdir}/%{pname}/nls/*_pt.qm
803 %lang(pt_BR) %{_libdir}/%{pname}/nls/*_pt_BR.qm
804 %lang(ro) %{_libdir}/%{pname}/nls/*_ro.qm
805 %lang(ru) %{_libdir}/%{pname}/nls/*_ru.qm
806 %lang(sk) %{_libdir}/%{pname}/nls/*_sk.qm
807 %lang(sr) %{_libdir}/%{pname}/nls/*_sr.qm
808 %lang(sv) %{_libdir}/%{pname}/nls/*_sv.qm
809 %lang(tr) %{_libdir}/%{pname}/nls/*_tr.qm
810 %lang(uk) %{_libdir}/%{pname}/nls/*_uk.qm
811 %lang(zh_CN) %{_libdir}/%{pname}/nls/*_zh_CN.qm
812 %lang(zh_TW) %{_libdir}/%{pname}/nls/*_zh_TW.qm
813 %{_pixmapsdir}/virtualbox.png
814 %{_desktopdir}/*.desktop
815 %{_libdir}/%{pname}/icons
816 %{_libdir}/%{pname}/virtualbox.xml
818 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
819 %attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
822 %defattr(644,root,root,755)
823 %{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
826 %defattr(644,root,root,755)
827 %attr(755,root,root) /sbin/mount.vboxsf
828 %attr(754,root,root) /etc/rc.d/init.d/vboxservice
829 %{systemdunitdir}/vboxservice.service
830 %attr(755,root,root) %{_bindir}/VBoxControl
831 %attr(755,root,root) %{_bindir}/VBoxService
834 %defattr(644,root,root,755)
835 # NOTE: unfinished, should contain .desktop files for starting up mouse
836 # integration and other desktop services
837 # NOTE: the filelist is incomplete too
838 %attr(755,root,root) %{_bindir}/VBoxClient
839 /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
840 /etc/xdg/autostart/vboxclient.desktop
842 %attr(755,root,root) %{_libdir}/%{pname}/additions/autorun.sh
843 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd
844 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-service
845 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-x11
847 %if %{with webservice}
849 %defattr(644,root,root,755)
850 %attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
851 %attr(755,root,root) %{_libdir}/%{pname}/webtest
855 %files -n lightdm-greeter-vbox
856 %defattr(644,root,root,755)
857 %attr(755,root,root) %{_sbindir}/vbox-greeter
858 %{_datadir}/xgreeters/vbox-greeter.desktop
861 %files -n pam-pam_vbox
862 %defattr(644,root,root,755)
863 %attr(755,root,root) /%{_lib}/security/pam_vbox.so
867 %defattr(644,root,root,755)
868 # this is a symlink...
869 %doc %{_libdir}/%{pname}/UserManual.pdf
870 %lang(fr) %doc %{_libdir}/%{pname}/UserManual_fr_FR.pdf
872 %doc %{outdir}/UserManual.pdf
873 %lang(fr) %doc %{outdir}/UserManual_fr_FR.pdf
876 %files -n xorg-driver-video-vboxvideo
877 %defattr(644,root,root,755)
878 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
879 %attr(755,root,root) %{_libdir}/xorg/modules/dri/vboxvideo_dri.so
880 # vboxvideo_dri.so deps
881 %attr(755,root,root) %{_libdir}/VBoxOGLarrayspu.so
882 %attr(755,root,root) %{_libdir}/VBoxOGLcrutil.so
883 %attr(755,root,root) %{_libdir}/VBoxOGLerrorspu.so
884 %attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so
885 %attr(755,root,root) %{_libdir}/VBoxOGLpackspu.so
886 %attr(755,root,root) %{_libdir}/VBoxOGLpassthroughspu.so