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: bf986354bf7ee3b2e0251af821b33d7c
66 Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
67 # Source1-md5: 80d30f8f16a402faa0436d7f330a2ddd
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 Suggests: %{name}-kernel-init-guest >= %{version}-%{rel}\
351 Provides: kernel(vboxguest) = %{version}-%{rel}\
352 Provides: kernel(vboxsf) = %{version}-%{rel}\
353 Provides: kernel(vboxvideo) = %{version}-%{rel}\
354 Obsoletes: kernel-init-guest\
355 Conflicts: kernel%{_alt_kernel}-virtualbox-host\
357 %description -n kernel%{_alt_kernel}-virtualbox-guest\
358 This package contains VirtualBox Guest Additions for Linux Module,\
359 host file system access (Shared Folders) and DRM support for\
362 %description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8\
363 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -\
364 dodatki dla systemu gościa, dostęp do plików systemu głównego z\
365 poziomu systemu gościa i sterownik obsługi DRM.\
367 %package -n kernel%{_alt_kernel}-virtualbox-host\
368 Summary: VirtualBox Support Drivers\
369 Summary(pl.UTF-8): Moduły jądra Linuksa dla VirtualBoksa\
370 Release: %{rel}@%{_kernel_ver_str}\
372 Requires(post,postun): /sbin/depmod\
373 Requires(post): systemd-units >= 38\
374 Requires: dev >= 2.9.0-7\
375 %if %{with dist_kernel}\
376 %requires_releq_kernel\
377 Requires(postun): %releq_kernel\
379 Requires: systemd-units >= 38\
380 Suggests: %{name}-kernel-init-host >= %{version}-%{rel}\
381 Provides: kernel(vboxdrv) = %{version}-%{rel}\
382 Provides: kernel(vboxnetadp) = %{version}-%{rel}\
383 Provides: kernel(vboxnetflt) = %{version}-%{rel}\
384 Provides: kernel(vboxpci) = %{version}-%{rel}\
385 Obsoletes: kernel-init-host\
387 %description -n kernel%{_alt_kernel}-virtualbox-host\
388 This package contains VirtualBox Support Driver, Network Adapter\
389 Driver, Network Filter Driver and PCI card passthrough driver that\
390 works as host proxy between guest and PCI hardware.\
392 %description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8\
393 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik\
394 witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu\
395 głównego oraz sterownik, ktory działa jako proxy między gościem i\
396 gospodarzem sprzętu PCI.\
399 %files -n kernel%{_alt_kernel}-virtualbox-guest\
400 %defattr(644,root,root,755)\
401 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf\
402 /lib/modules/%{_kernel_ver}/misc/vboxguest.ko*\
403 /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*\
404 /lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*\
406 %files -n kernel%{_alt_kernel}-virtualbox-host\
407 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf\
408 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*\
409 /lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*\
410 /lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*\
411 /lib/modules/%{_kernel_ver}/misc/vboxpci.ko*\
414 %post -n kernel%{_alt_kernel}-virtualbox-guest\
415 %depmod %{_kernel_ver}\
417 %postun -n kernel%{_alt_kernel}-virtualbox-guest\
418 %depmod %{_kernel_ver}\
420 %post -n kernel%{_alt_kernel}-virtualbox-host\
421 %depmod %{_kernel_ver}\
423 %postun -n kernel%{_alt_kernel}-virtualbox-host\
424 %depmod %{_kernel_ver}\
427 %define build_kernel_pkg()\
428 export KERN_DIR=%{_kernelsrcdir}\
429 cd PLD-MODULE-BUILD/HostDrivers\
430 %build_kernel_modules -m vboxdrv -C vboxdrv\
431 %build_kernel_modules -m vboxnetadp -C vboxnetadp\
432 %build_kernel_modules -m vboxnetflt -C vboxnetflt\
433 %build_kernel_modules -m vboxpci -C vboxpci\
435 %build_kernel_modules -m vboxguest -C vboxguest\
436 cp -a vboxguest/Module.symvers vboxsf\
437 %build_kernel_modules -m vboxsf -C vboxsf -c\
438 %build_kernel_modules -m vboxvideo -C vboxvideo\
440 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc\
441 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc\
442 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc\
443 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc\
444 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc\
445 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc\
446 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc\
449 %{?with_kernel:%{expand:%kpkg}}
452 %setup -q -n %{pname}-%{version}
461 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
462 -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
465 %{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
466 -i Config.kmk src/libs/xpcom18a4/Config.kmk
468 %{__sed} 's#@LIBDIR@#%{_libdir}#' < %{SOURCE4} > VirtualBox-wrapper.sh
470 install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
472 ../src/VBox/Additions/linux/export_modules guest-modules.tar.gz
473 tar -zxf guest-modules.tar.gz -C GuestDrivers
475 ../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening
476 tar -zxf host-modules.tar.gz -C HostDrivers
481 # using system kBuild package
484 cat <<'EOF'>> LocalConfig.kmk
485 %{?with_verbose:KBUILD_VERBOSE=3}
487 __VBOX_BUILD_PUBLISHER=_PLD
488 VBOX_VERSION_STRING=$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)_PLD
489 XSERVER_VERSION=%(rpm -q --queryformat '%{V}\n' xorg-xserver-server-devel | awk -F. '{ print $1 $2 }' 2>/dev/null || echo ERROR)
490 VBOX_USE_SYSTEM_XORG_HEADERS=1
492 VBOX_WITH_LIGHTDM_GREETER=1
493 VBOX_WITH_LIGHTDM_GREETER_PACKING=1
495 TOOL_GCC3_CFLAGS=%{rpmcflags}
496 TOOL_GCC3_CXXFLAGS=%{rpmcxxflags}
497 VBOX_GCC_OPT=%{rpmcxxflags}
502 %if %{with userspace}
504 --with-gcc="%{__cc}" \
505 --with-g++="%{__cxx}" \
506 %{!?with_doc:--disable-docs} \
508 --disable-hardening \
511 %{__enable webservice} \
514 XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
517 %{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
520 %{?with_kernel:%{expand:%bkpkg}}
523 rm -rf $RPM_BUILD_ROOT
525 %if %{with userspace}
526 install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
527 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
528 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
529 $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \
530 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir}}
532 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
533 if cp -al VBox.png $RPM_BUILD_ROOT/Vbox.png 2>/dev/null; then
535 %{__rm} -f $RPM_BUILD_ROOT/VBox.png
538 cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
541 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual.pdf
542 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual_fr_FR.pdf
545 install -d $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions
546 cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
547 install -p %{SOURCE5} $RPM_BUILD_ROOT/sbin/mount.vdi
548 install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
549 for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
550 ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
553 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
554 install -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service
556 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/VBox.png,%{_pixmapsdir}/virtualbox.png}
557 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_desktopdir}}/virtualbox.desktop
559 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_system.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
560 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
562 # XXX: where else to install them that vboxvideo_dri.so finds them? patch with rpath?
563 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLarrayspu.so
564 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLcrutil.so
565 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLerrorspu.so
566 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLfeedbackspu.so
567 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.so
568 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpassthroughspu.so
570 cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
571 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
573 install -d $RPM_BUILD_ROOT/%{_lib}/security
574 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,/%{_lib}/security}/pam_vbox.so
577 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{src,sdk,testcase}
578 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src
579 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
580 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst*
581 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
584 install -d $RPM_BUILD_ROOT/etc/{X11/xinit/xinitrc.d,xdg/autostart}
585 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
586 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
587 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
588 install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
589 $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
590 cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
591 $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
594 install -d $RPM_BUILD_ROOT%{_datadir}/xgreeters
595 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_sbindir}}/vbox-greeter
596 cp -p %{objdir}/Additions/Installer/linux/share/VBoxGuestAdditions/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
601 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
602 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
603 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
604 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.sh
605 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
606 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
607 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
608 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
609 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
610 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/CPUMInternal.d
611 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/cpumctx.d
612 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-arch-types.d
613 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-types.d
614 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vm.d
615 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/x86.d
616 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/%{vbox_arch}/vbox-vm-struct-test.d
617 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/helpers/generate_service_file
618 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/VBoxHeadlessXOrg.sh
619 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/generated.sh
620 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/init_template.sh
621 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install_service
624 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf
626 install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
630 install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin}
632 cp -a PLD-MODULE-BUILD/installed/* $RPM_BUILD_ROOT
634 # Tell systemd to load modules
635 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf
636 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-guest.conf
640 rm -rf $RPM_BUILD_ROOT
643 %groupadd -g 221 -r -f vbox
646 %update_desktop_database
647 for i in /sys/bus/usb/devices/*; do
648 if [ -r "$i/dev" ]; then
649 dev="`cat "$i/dev" 2>/dev/null || true`"
650 major="`expr "$dev" : '\(.*\):' 2> /dev/null || true`"
651 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null || true`"
652 class="`cat $i/bDeviceClass 2> /dev/null || true`"
653 /lib/udev/VBoxCreateUSBNode.sh "$major" "$minor" "$class" vbox 2>/dev/null
658 You must install vboxdrv kernel modules for this software to work:
659 kernel*-virtualbox-host-%{version}-%{rel}@*
661 On Guest Linux system you might want to install:
662 kernel*-virtualbox-guest-%{version}-%{rel}@*
667 if [ "$1" = "0" ]; then
672 /sbin/chkconfig --add vboxservice
673 %service vboxservice restart
674 %systemd_post vboxservice.service
677 if [ "$1" = "0" ]; then
678 /sbin/chkconfig --del vboxservice
679 %service vboxservice -q stop
681 %systemd_preun vboxservice.service
686 %triggerpostun guest -- VirtualBox-guest < 4.3.0-1
687 %systemd_trigger vboxservice.service
689 %pre -n lightdm-greeter-vbox
690 %addusertogroup xdm vbox
692 %if %{with userspace}
694 %defattr(644,root,root,755)
695 %dir %{_libdir}/%{pname}
696 %dir %{_libdir}/%{pname}/ExtensionPacks
697 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC
698 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*
699 %dir %{_libdir}/%{pname}/additions
700 %dir %{_libdir}/%{pname}/components
701 %dir %{_libdir}/%{pname}/nls
702 %attr(755,root,root) %{_bindir}/VBoxBFE
703 %attr(755,root,root) %{_bindir}/VBoxHeadless
704 %attr(755,root,root) %{_bindir}/VBoxManage
705 %attr(755,root,root) %{_bindir}/VBoxSDL
706 %attr(755,root,root) %{_bindir}/VBoxSVC
707 %attr(755,root,root) %{_bindir}/VBoxTunctl
708 %attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
709 %attr(755,root,root) %{_bindir}/VirtualBox
710 %attr(755,root,root) /sbin/mount.vdi
711 %attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so
712 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
713 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
714 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart
715 %attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl
716 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so
717 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so
718 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so
719 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so
720 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDragAndDropSvc.so
721 %attr(755,root,root) %{_libdir}/%{pname}/VBoxExtPackHelperApp
722 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestControlSvc.so
723 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestPropSvc.so
724 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHeadless
725 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHostChannel.so
726 %attr(755,root,root) %{_libdir}/%{pname}/VBoxKeyboard.so
727 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManage
728 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetNAT
729 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVolInfo
730 %attr(755,root,root) %{_libdir}/%{pname}/iPxeBaseBin
732 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManageHelp
734 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetAdpCtl
735 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetDHCP
736 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhostcrutil.so
737 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhosterrorspu.so
738 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLrenderspu.so
739 %attr(755,root,root) %{_libdir}/%{pname}/VBoxPython*.so
740 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM.so
742 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM32.so
743 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM64.so
745 %attr(755,root,root) %{_libdir}/%{pname}/VBoxRT.so
746 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSDL
747 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedClipboard.so
748 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedCrOpenGL.so
749 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so
750 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC
751 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh
752 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL
753 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTunctl
754 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so
755 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload
756 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so
757 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD
758 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so
759 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox
760 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox-wrapper.sh
761 %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so
762 %{_libdir}/%{pname}/VBoxDD2GC.debug
763 %{_libdir}/%{pname}/VBoxDD2GC.gc
764 %{_libdir}/%{pname}/VBoxDD2R0.debug
765 %{_libdir}/%{pname}/VBoxDD2R0.r0
766 %{_libdir}/%{pname}/VBoxDDGC.debug
767 %{_libdir}/%{pname}/VBoxDDGC.gc
768 %{_libdir}/%{pname}/VBoxDDR0.debug
769 %{_libdir}/%{pname}/VBoxDDR0.r0
770 %{_libdir}/%{pname}/VBoxEFI32.fd
771 %{_libdir}/%{pname}/VBoxEFI64.fd
772 %{_libdir}/%{pname}/VMMGC.debug
773 %{_libdir}/%{pname}/VMMGC.gc
774 %{_libdir}/%{pname}/VMMR0.debug
775 %{_libdir}/%{pname}/VMMR0.r0
776 %{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt
777 %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
778 %{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt
779 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so
780 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so
781 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so
782 %lang(bg) %{_libdir}/%{pname}/nls/*_bg.qm
783 %lang(ca) %{_libdir}/%{pname}/nls/*_ca.qm
784 %lang(ca_VA) %{_libdir}/%{pname}/nls/*_ca_VA.qm
785 %lang(cs) %{_libdir}/%{pname}/nls/*_cs.qm
786 %lang(da) %{_libdir}/%{pname}/nls/*_da.qm
787 %lang(de) %{_libdir}/%{pname}/nls/*_de.qm
788 %lang(en) %{_libdir}/%{pname}/nls/*_en.qm
789 %lang(es) %{_libdir}/%{pname}/nls/*_es.qm
790 %lang(eu) %{_libdir}/%{pname}/nls/*_eu.qm
791 %lang(fi) %{_libdir}/%{pname}/nls/*_fa_IR.qm
792 %lang(fi) %{_libdir}/%{pname}/nls/*_fi.qm
793 %lang(fr) %{_libdir}/%{pname}/nls/*_fr.qm
794 %lang(gl_ES) %{_libdir}/%{pname}/nls/*_gl_ES.qm
795 %lang(hu) %{_libdir}/%{pname}/nls/*_hu.qm
796 %lang(id) %{_libdir}/%{pname}/nls/*_id.qm
797 %lang(it) %{_libdir}/%{pname}/nls/*_it.qm
798 %lang(ja) %{_libdir}/%{pname}/nls/*_ja.qm
799 %lang(km_KH) %{_libdir}/%{pname}/nls/*_km_KH.qm
800 %lang(ko) %{_libdir}/%{pname}/nls/*_ko.qm
801 %lang(lt) %{_libdir}/%{pname}/nls/*_lt.qm
802 %lang(nl) %{_libdir}/%{pname}/nls/*_nl.qm
803 %lang(pl) %{_libdir}/%{pname}/nls/*_pl.qm
804 %lang(pt) %{_libdir}/%{pname}/nls/*_pt.qm
805 %lang(pt_BR) %{_libdir}/%{pname}/nls/*_pt_BR.qm
806 %lang(ro) %{_libdir}/%{pname}/nls/*_ro.qm
807 %lang(ru) %{_libdir}/%{pname}/nls/*_ru.qm
808 %lang(sk) %{_libdir}/%{pname}/nls/*_sk.qm
809 %lang(sr) %{_libdir}/%{pname}/nls/*_sr.qm
810 %lang(sv) %{_libdir}/%{pname}/nls/*_sv.qm
811 %lang(tr) %{_libdir}/%{pname}/nls/*_tr.qm
812 %lang(uk) %{_libdir}/%{pname}/nls/*_uk.qm
813 %lang(zh_CN) %{_libdir}/%{pname}/nls/*_zh_CN.qm
814 %lang(zh_TW) %{_libdir}/%{pname}/nls/*_zh_TW.qm
815 %{_pixmapsdir}/virtualbox.png
816 %{_desktopdir}/*.desktop
817 %{_libdir}/%{pname}/icons
818 %{_libdir}/%{pname}/virtualbox.xml
820 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
821 %attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
824 %defattr(644,root,root,755)
825 %{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
828 %defattr(644,root,root,755)
829 %attr(755,root,root) /sbin/mount.vboxsf
830 %attr(754,root,root) /etc/rc.d/init.d/vboxservice
831 %{systemdunitdir}/vboxservice.service
832 %attr(755,root,root) %{_bindir}/VBoxControl
833 %attr(755,root,root) %{_bindir}/VBoxService
836 %defattr(644,root,root,755)
837 # NOTE: unfinished, should contain .desktop files for starting up mouse
838 # integration and other desktop services
839 # NOTE: the filelist is incomplete too
840 %attr(755,root,root) %{_bindir}/VBoxClient
841 /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
842 /etc/xdg/autostart/vboxclient.desktop
844 %attr(755,root,root) %{_libdir}/%{pname}/additions/autorun.sh
845 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd
846 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-service
847 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-x11
849 %if %{with webservice}
851 %defattr(644,root,root,755)
852 %attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
853 %attr(755,root,root) %{_libdir}/%{pname}/webtest
857 %files -n lightdm-greeter-vbox
858 %defattr(644,root,root,755)
859 %attr(755,root,root) %{_sbindir}/vbox-greeter
860 %{_datadir}/xgreeters/vbox-greeter.desktop
863 %files -n pam-pam_vbox
864 %defattr(644,root,root,755)
865 %attr(755,root,root) /%{_lib}/security/pam_vbox.so
869 %defattr(644,root,root,755)
870 # this is a symlink...
871 %doc %{_libdir}/%{pname}/UserManual.pdf
872 %lang(fr) %doc %{_libdir}/%{pname}/UserManual_fr_FR.pdf
874 %doc %{outdir}/UserManual.pdf
875 %lang(fr) %doc %{outdir}/UserManual_fr_FR.pdf
878 %files -n xorg-driver-video-vboxvideo
879 %defattr(644,root,root,755)
880 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
881 %attr(755,root,root) %{_libdir}/xorg/modules/dri/vboxvideo_dri.so
882 # vboxvideo_dri.so deps
883 %attr(755,root,root) %{_libdir}/VBoxOGLarrayspu.so
884 %attr(755,root,root) %{_libdir}/VBoxOGLcrutil.so
885 %attr(755,root,root) %{_libdir}/VBoxOGLerrorspu.so
886 %attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so
887 %attr(755,root,root) %{_libdir}/VBoxOGLpackspu.so
888 %attr(755,root,root) %{_libdir}/VBoxOGLpassthroughspu.so