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 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: libxml2-devel >= 2.6.26
131 BuildRequires: libxslt-devel >= 1.1.17
132 BuildRequires: libxslt-progs >= 1.1.17
133 %{?with_lightdm:BuildRequires: lightdm-libs-qt-devel}
134 BuildRequires: makeself
135 BuildRequires: mkisofs
136 BuildRequires: pam-devel
137 BuildRequires: pixman-devel
138 BuildRequires: pkgconfig
139 BuildRequires: pulseaudio-devel >= 0.9.0
140 BuildRequires: python-devel
141 BuildRequires: python-modules
142 BuildRequires: qt4-build >= 4.2.0
143 BuildRequires: qt4-linguist
144 BuildRequires: rpmbuild(macros) >= 1.678
145 BuildRequires: sed >= 4.0
147 BuildRequires: texlive-fonts-bitstream
148 BuildRequires: texlive-fonts-other
149 BuildRequires: texlive-fonts-type1-bitstream
150 BuildRequires: texlive-format-pdflatex
151 BuildRequires: texlive-latex-ucs
152 BuildRequires: texlive-xetex
155 BuildRequires: xalan-c-devel >= 1.10.0
156 BuildRequires: xerces-c-devel >= 2.6.0
158 BuildRequires: zlib-devel >= 1.2.1
160 %{?with_dist_kernel:%{expand:%kbrs}}
161 Requires(post,preun): /sbin/chkconfig
162 Requires(postun): /usr/sbin/groupdel
163 Requires(pre): /usr/bin/getgid
164 Requires(pre): /usr/sbin/groupadd
165 Requires: QtCore >= 4.7.0
166 Requires: desktop-file-utils
168 Requires: fonts-Type1-urw
169 Requires: libvncserver >= 0.9.9
172 Provides: group(vbox)
173 Obsoletes: VirtualBox-udev < 4.2.10-5
174 ExclusiveArch: %{ix86} %{x8664}
175 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
178 %define vbox_arch amd64
180 %define vbox_arch x86
182 %define vbox_platform linux.%{vbox_arch}
183 %define outdir out/%{vbox_platform}/release/bin
184 %define objdir out/%{vbox_platform}/release/obj
187 Oracle VirtualBox is a general-purpose full virtualizer for x86
188 hardware. Targeted at server, desktop and embedded use, it is now the
189 only professional-quality virtualization solution that is also Open
192 Some of the features of VirtualBox are:
194 Modularity: VirtualBox has an extremely modular design with
195 well-defined internal programming interfaces and a client/server
196 design. This makes it easy to control it from several interfaces at
197 once: for example, you can start a virtual machine in a typical
198 virtual machine GUI and then control that machine from the command
199 line. VirtualBox also comes with a full Software Development Kit: even
200 though it is Open Source Software, you don't have to hack the source
201 to write a new interface for VirtualBox.
203 Virtual machine descriptions in XML: the configuration settings of
204 virtual machines are stored entirely in XML and are independent of the
205 local machines. Virtual machine definitions can therefore easily be
206 ported to other computers.
208 You should install this package in your Host OS.
210 %description -l pl.UTF-8
211 Oracle VirtualBox jest emulatorem sprzętu x86. Kierowany do zastosowań
212 serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym
213 wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako
214 Otwarte Oprogramowanie.
216 Przykładowe cechy VirtualBoksa:
218 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
219 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
220 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
221 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
222 poziomu interfejsu graficznego, a później kontrolować ją z linii
223 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
224 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
226 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
227 wirtualnych są w całości przechowywane w XML-u i są niezależne od
228 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
229 konfigurację maszyny wirtualnej na inny komputer.
232 Summary: VirtualBox documentation
236 This package contains VirtualBox User Manual.
239 Summary: VirtualBox Guest Additions
241 Requires: %{name} = %{version}-%{release}
243 %description additions
244 VirtualBox Guest Additions.
246 This package contains ISO9660 image with drivers for Guest OS.
248 You should install this package in your Host OS.
251 Summary: VirtualBox Guest tools
253 Requires(post,preun): /sbin/chkconfig
254 Requires(post): systemd-units >= 38
256 Requires: systemd-units >= 38
257 Suggests: kernel(vboxguest)
258 Suggests: kernel(vboxsf)
259 Suggests: pam-pam_vbox
262 Tools that utilize kernel modules for supporting integration with the
263 Host, including file sharing.
265 You should install this package in your Guest OS for base VirtualBox
269 Summary: VirtualBox Guest Additions
271 Requires: %{name}-guest = %{version}-%{release}
272 Requires: xorg-driver-video-vboxvideo = %{version}-%{release}
273 Suggests: kernel(vboxvideo)
274 Obsoletes: xorg-driver-input-vboxmouse < %{version}-%{release}
276 %description guest-x11
277 Tools for X11 session that utilize kernel modules for supporting
278 integration with the Host, like tracking of mouse pointer movement and
279 X.org X11 video and mouse drivers
281 You should install this package in your Guest OS for X11 session.
284 Summary: VirtualBox Web Service
285 Group: Applications/Emulators
286 Requires: %{name} = %{version}-%{release}
288 %description webservice
289 This package contains VirtualBox web service API daemon. It allows to
290 control virtual machines via web interface.
292 %package -n lightdm-greeter-vbox
293 Summary: VirtualBox greeter for lightdm
295 # NOTE: '#' in url is lost because rpm treats it as comment, even hacking with
296 # macros doesn't help as rpmbuild takes final result to parse
297 URL: http://www.virtualbox.org/manual/ch09.html#autologon_unix_lightdm
298 Requires: kernel(vboxguest)
299 Requires: lightdm >= 1.0.1
300 Provides: lightdm-greeter
302 %description -n lightdm-greeter-vbox
303 VirtualBox greeter for LightDM.
305 %package -n pam-pam_vbox
306 Summary: PAM module to perform automated guest logons
309 %description -n pam-pam_vbox
310 PAM module (Pluggable Authentication Module) which can be used to
311 perform automated guest logons.
313 %package -n xorg-driver-video-vboxvideo
314 Summary: X.org video driver for VirtualBox guest OS
315 Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie
316 Group: X11/Applications
317 Requires: Mesa-dri-driver-swrast
318 Requires: xorg-xserver-libdri >= 1.7.4
319 Requires: xorg-xserver-server >= 1.0.99.901
320 Requires: xorg-xserver-server(videodrv-abi) <= 14.1
321 Requires: xorg-xserver-server(videodrv-abi) >= 2.0
322 Provides: xorg-driver-video
324 %description -n xorg-driver-video-vboxvideo
325 X.org video driver for VirtualBox guest OS.
327 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
328 Sterownik grafiki dla systemu gościa w VirtualBoksie.
332 # KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
334 %define kernel_pkg()\
335 %package -n kernel%{_alt_kernel}-virtualbox-guest\
336 Summary: VirtualBox kernel modules for Linux Guest\
337 Summary(pl.UTF-8): Moduły VirtualBoksa do jądra Linuksa dla systemu gościa\
338 Release: %{rel}@%{_kernel_ver_str}\
340 Requires(post,postun): /sbin/depmod\
341 Requires(post): systemd-units >= 38\
342 Requires: dev >= 2.9.0-7\
343 Requires: systemd-units >= 38\
344 %if %{with dist_kernel}\
345 %requires_releq_kernel\
346 Requires: %{releq_kernel -n drm}\
347 Requires(postun): %releq_kernel\
349 Suggests: %{name}-kernel-init-guest >= %{version}-%{rel}\
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 Suggests: %{name}-kernel-init-host >= %{version}-%{rel}\
380 Provides: kernel(vboxdrv) = %{version}-%{rel}\
381 Provides: kernel(vboxnetadp) = %{version}-%{rel}\
382 Provides: kernel(vboxnetflt) = %{version}-%{rel}\
383 Provides: kernel(vboxpci) = %{version}-%{rel}\
384 Obsoletes: kernel-init-host\
386 %description -n kernel%{_alt_kernel}-virtualbox-host\
387 This package contains VirtualBox Support Driver, Network Adapter\
388 Driver, Network Filter Driver and PCI card passthrough driver that\
389 works as host proxy between guest and PCI hardware.\
391 %description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8\
392 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik\
393 witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu\
394 głównego oraz sterownik, ktory działa jako proxy między gościem i\
395 gospodarzem sprzętu PCI.\
398 %files -n kernel%{_alt_kernel}-virtualbox-guest\
399 %defattr(644,root,root,755)\
400 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf\
401 /lib/modules/%{_kernel_ver}/misc/vboxguest.ko*\
402 /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*\
403 /lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*\
405 %files -n kernel%{_alt_kernel}-virtualbox-host\
406 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf\
407 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*\
408 /lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*\
409 /lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*\
410 /lib/modules/%{_kernel_ver}/misc/vboxpci.ko*\
413 %post -n kernel%{_alt_kernel}-virtualbox-guest\
414 %depmod %{_kernel_ver}\
416 %postun -n kernel%{_alt_kernel}-virtualbox-guest\
417 %depmod %{_kernel_ver}\
419 %post -n kernel%{_alt_kernel}-virtualbox-host\
420 %depmod %{_kernel_ver}\
422 %postun -n kernel%{_alt_kernel}-virtualbox-host\
423 %depmod %{_kernel_ver}\
426 %define build_kernel_pkg()\
427 export KERN_DIR=%{_kernelsrcdir}\
428 cd PLD-MODULE-BUILD/HostDrivers\
429 %build_kernel_modules -m vboxdrv -C vboxdrv\
430 %build_kernel_modules -m vboxnetadp -C vboxnetadp\
431 %build_kernel_modules -m vboxnetflt -C vboxnetflt\
432 %build_kernel_modules -m vboxpci -C vboxpci\
434 %build_kernel_modules -m vboxguest -C vboxguest\
435 cp -a vboxguest/Module.symvers vboxsf\
436 %build_kernel_modules -m vboxsf -C vboxsf -c\
437 %build_kernel_modules -m vboxvideo -C vboxvideo\
439 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc\
440 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc\
441 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc\
442 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc\
443 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc\
444 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc\
445 %install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc\
448 %{?with_kernel:%{expand:%kpkg}}
451 %setup -q -n %{pname}-%{version}
460 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
461 -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
464 %{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
465 -i Config.kmk src/libs/xpcom18a4/Config.kmk
467 %{__sed} 's#@LIBDIR@#%{_libdir}#' < %{SOURCE4} > VirtualBox-wrapper.sh
469 install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
471 ../src/VBox/Additions/linux/export_modules guest-modules.tar.gz
472 tar -zxf guest-modules.tar.gz -C GuestDrivers
474 ../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening
475 tar -zxf host-modules.tar.gz -C HostDrivers
480 # using system kBuild package
483 cat <<'EOF'>> LocalConfig.kmk
484 %{?with_verbose:KBUILD_VERBOSE=3}
486 __VBOX_BUILD_PUBLISHER=_PLD
487 VBOX_VERSION_STRING=$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)_PLD
488 XSERVER_VERSION=%(rpm -q --queryformat '%{V}\n' xorg-xserver-server-devel | awk -F. '{ print $1 $2 }' 2>/dev/null || echo ERROR)
489 VBOX_USE_SYSTEM_XORG_HEADERS=1
491 VBOX_WITH_LIGHTDM_GREETER=1
492 VBOX_WITH_LIGHTDM_GREETER_PACKING=1
494 TOOL_GCC3_CFLAGS=%{rpmcflags}
495 TOOL_GCC3_CXXFLAGS=%{rpmcxxflags}
496 VBOX_GCC_OPT=%{rpmcxxflags}
501 %if %{with userspace}
503 --with-gcc="%{__cc}" \
504 --with-g++="%{__cxx}" \
505 %{!?with_doc:--disable-docs} \
507 --disable-hardening \
510 %{__enable webservice} \
513 XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
516 %{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
519 %{?with_kernel:%{expand:%bkpkg}}
522 rm -rf $RPM_BUILD_ROOT
524 %if %{with userspace}
525 install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
526 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
527 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
528 $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \
529 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir}}
531 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
532 if cp -al VBox.png $RPM_BUILD_ROOT/Vbox.png 2>/dev/null; then
534 %{__rm} -f $RPM_BUILD_ROOT/VBox.png
537 cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
540 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual.pdf
541 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual_fr_FR.pdf
544 install -d $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions
545 cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
546 install -p %{SOURCE5} $RPM_BUILD_ROOT/sbin/mount.vdi
547 install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
548 for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
549 ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
552 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
553 install -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service
555 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/VBox.png,%{_pixmapsdir}/virtualbox.png}
556 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_desktopdir}}/virtualbox.desktop
558 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_system.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
559 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
561 # XXX: where else to install them that vboxvideo_dri.so finds them? patch with rpath?
562 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLarrayspu.so
563 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLcrutil.so
564 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLerrorspu.so
565 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLfeedbackspu.so
566 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.so
567 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpassthroughspu.so
569 cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
570 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
572 install -d $RPM_BUILD_ROOT/%{_lib}/security
573 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,/%{_lib}/security}/pam_vbox.so
576 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{src,sdk,testcase}
577 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src
578 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
579 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst*
580 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
583 install -d $RPM_BUILD_ROOT/etc/{X11/xinit/xinitrc.d,xdg/autostart}
584 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
585 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
586 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
587 install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
588 $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
589 cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
590 $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
593 install -d $RPM_BUILD_ROOT%{_datadir}/xgreeters
594 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_sbindir}}/vbox-greeter
595 cp -p %{objdir}/Additions/Installer/linux/share/VBoxGuestAdditions/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
600 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
601 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
602 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
603 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.sh
604 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
605 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
606 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
607 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
608 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
609 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/CPUMInternal.d
610 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/cpumctx.d
611 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-arch-types.d
612 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-types.d
613 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vm.d
614 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/x86.d
615 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/%{vbox_arch}/vbox-vm-struct-test.d
616 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/helpers/generate_service_file
617 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/VBoxHeadlessXOrg.sh
618 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/generated.sh
619 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/init_template.sh
620 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install_service
623 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf
625 install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
629 install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin}
631 cp -a PLD-MODULE-BUILD/installed/* $RPM_BUILD_ROOT
633 # Tell systemd to load modules
634 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf
635 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-guest.conf
639 rm -rf $RPM_BUILD_ROOT
642 %groupadd -g 221 -r -f vbox
645 %update_desktop_database
646 for i in /sys/bus/usb/devices/*; do
647 if [ -r "$i/dev" ]; then
648 dev="`cat "$i/dev" 2>/dev/null || true`"
649 major="`expr "$dev" : '\(.*\):' 2> /dev/null || true`"
650 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null || true`"
651 class="`cat $i/bDeviceClass 2> /dev/null || true`"
652 /lib/udev/VBoxCreateUSBNode.sh "$major" "$minor" "$class" vbox 2>/dev/null
657 You must install vboxdrv kernel modules for this software to work:
658 kernel*-virtualbox-host-%{version}-%{rel}@*
660 On Guest Linux system you might want to install:
661 kernel*-virtualbox-guest-%{version}-%{rel}@*
666 if [ "$1" = "0" ]; then
671 /sbin/chkconfig --add vboxservice
672 %service vboxservice restart
673 %systemd_post vboxservice.service
676 if [ "$1" = "0" ]; then
677 /sbin/chkconfig --del vboxservice
678 %service vboxservice -q stop
680 %systemd_preun vboxservice.service
685 %triggerpostun guest -- VirtualBox-guest < 4.3.0-1
686 %systemd_trigger vboxservice.service
688 %pre -n lightdm-greeter-vbox
689 %addusertogroup xdm vbox
691 %if %{with userspace}
693 %defattr(644,root,root,755)
694 %dir %{_libdir}/%{pname}
695 %dir %{_libdir}/%{pname}/ExtensionPacks
696 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC
697 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*
698 %dir %{_libdir}/%{pname}/additions
699 %dir %{_libdir}/%{pname}/components
700 %dir %{_libdir}/%{pname}/nls
701 %attr(755,root,root) %{_bindir}/VBoxBFE
702 %attr(755,root,root) %{_bindir}/VBoxHeadless
703 %attr(755,root,root) %{_bindir}/VBoxManage
704 %attr(755,root,root) %{_bindir}/VBoxSDL
705 %attr(755,root,root) %{_bindir}/VBoxSVC
706 %attr(755,root,root) %{_bindir}/VBoxTunctl
707 %attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
708 %attr(755,root,root) %{_bindir}/VirtualBox
709 %attr(755,root,root) /sbin/mount.vdi
710 %attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so
711 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
712 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
713 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart
714 %attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl
715 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so
716 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so
717 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so
718 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so
719 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDragAndDropSvc.so
720 %attr(755,root,root) %{_libdir}/%{pname}/VBoxExtPackHelperApp
721 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestControlSvc.so
722 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestPropSvc.so
723 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHeadless
724 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHostChannel.so
725 %attr(755,root,root) %{_libdir}/%{pname}/VBoxKeyboard.so
726 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManage
727 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetNAT
728 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVolInfo
729 %attr(755,root,root) %{_libdir}/%{pname}/iPxeBaseBin
731 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManageHelp
733 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetAdpCtl
734 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetDHCP
735 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhostcrutil.so
736 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhosterrorspu.so
737 %attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLrenderspu.so
738 %attr(755,root,root) %{_libdir}/%{pname}/VBoxPython*.so
739 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM.so
741 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM32.so
742 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM64.so
744 %attr(755,root,root) %{_libdir}/%{pname}/VBoxRT.so
745 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSDL
746 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedClipboard.so
747 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedCrOpenGL.so
748 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so
749 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC
750 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh
751 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL
752 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTunctl
753 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so
754 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload
755 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so
756 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD
757 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so
758 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox
759 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox-wrapper.sh
760 %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so
761 %{_libdir}/%{pname}/VBoxDD2GC.debug
762 %{_libdir}/%{pname}/VBoxDD2GC.gc
763 %{_libdir}/%{pname}/VBoxDD2R0.debug
764 %{_libdir}/%{pname}/VBoxDD2R0.r0
765 %{_libdir}/%{pname}/VBoxDDGC.debug
766 %{_libdir}/%{pname}/VBoxDDGC.gc
767 %{_libdir}/%{pname}/VBoxDDR0.debug
768 %{_libdir}/%{pname}/VBoxDDR0.r0
769 %{_libdir}/%{pname}/VBoxEFI32.fd
770 %{_libdir}/%{pname}/VBoxEFI64.fd
771 %{_libdir}/%{pname}/VMMGC.debug
772 %{_libdir}/%{pname}/VMMGC.gc
773 %{_libdir}/%{pname}/VMMR0.debug
774 %{_libdir}/%{pname}/VMMR0.r0
775 %{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt
776 %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
777 %{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt
778 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so
779 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so
780 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so
781 %lang(bg) %{_libdir}/%{pname}/nls/*_bg.qm
782 %lang(ca) %{_libdir}/%{pname}/nls/*_ca.qm
783 %lang(ca_VA) %{_libdir}/%{pname}/nls/*_ca_VA.qm
784 %lang(cs) %{_libdir}/%{pname}/nls/*_cs.qm
785 %lang(da) %{_libdir}/%{pname}/nls/*_da.qm
786 %lang(de) %{_libdir}/%{pname}/nls/*_de.qm
787 %lang(en) %{_libdir}/%{pname}/nls/*_en.qm
788 %lang(es) %{_libdir}/%{pname}/nls/*_es.qm
789 %lang(eu) %{_libdir}/%{pname}/nls/*_eu.qm
790 %lang(fi) %{_libdir}/%{pname}/nls/*_fa_IR.qm
791 %lang(fi) %{_libdir}/%{pname}/nls/*_fi.qm
792 %lang(fr) %{_libdir}/%{pname}/nls/*_fr.qm
793 %lang(gl_ES) %{_libdir}/%{pname}/nls/*_gl_ES.qm
794 %lang(hu) %{_libdir}/%{pname}/nls/*_hu.qm
795 %lang(id) %{_libdir}/%{pname}/nls/*_id.qm
796 %lang(it) %{_libdir}/%{pname}/nls/*_it.qm
797 %lang(ja) %{_libdir}/%{pname}/nls/*_ja.qm
798 %lang(km_KH) %{_libdir}/%{pname}/nls/*_km_KH.qm
799 %lang(ko) %{_libdir}/%{pname}/nls/*_ko.qm
800 %lang(lt) %{_libdir}/%{pname}/nls/*_lt.qm
801 %lang(nl) %{_libdir}/%{pname}/nls/*_nl.qm
802 %lang(pl) %{_libdir}/%{pname}/nls/*_pl.qm
803 %lang(pt) %{_libdir}/%{pname}/nls/*_pt.qm
804 %lang(pt_BR) %{_libdir}/%{pname}/nls/*_pt_BR.qm
805 %lang(ro) %{_libdir}/%{pname}/nls/*_ro.qm
806 %lang(ru) %{_libdir}/%{pname}/nls/*_ru.qm
807 %lang(sk) %{_libdir}/%{pname}/nls/*_sk.qm
808 %lang(sr) %{_libdir}/%{pname}/nls/*_sr.qm
809 %lang(sv) %{_libdir}/%{pname}/nls/*_sv.qm
810 %lang(tr) %{_libdir}/%{pname}/nls/*_tr.qm
811 %lang(uk) %{_libdir}/%{pname}/nls/*_uk.qm
812 %lang(zh_CN) %{_libdir}/%{pname}/nls/*_zh_CN.qm
813 %lang(zh_TW) %{_libdir}/%{pname}/nls/*_zh_TW.qm
814 %{_pixmapsdir}/virtualbox.png
815 %{_desktopdir}/*.desktop
816 %{_libdir}/%{pname}/icons
817 %{_libdir}/%{pname}/virtualbox.xml
819 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
820 %attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
823 %defattr(644,root,root,755)
824 %{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
827 %defattr(644,root,root,755)
828 %attr(755,root,root) /sbin/mount.vboxsf
829 %attr(754,root,root) /etc/rc.d/init.d/vboxservice
830 %{systemdunitdir}/vboxservice.service
831 %attr(755,root,root) %{_bindir}/VBoxControl
832 %attr(755,root,root) %{_bindir}/VBoxService
835 %defattr(644,root,root,755)
836 # NOTE: unfinished, should contain .desktop files for starting up mouse
837 # integration and other desktop services
838 # NOTE: the filelist is incomplete too
839 %attr(755,root,root) %{_bindir}/VBoxClient
840 /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
841 /etc/xdg/autostart/vboxclient.desktop
843 %attr(755,root,root) %{_libdir}/%{pname}/additions/autorun.sh
844 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd
845 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-service
846 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-x11
848 %if %{with webservice}
850 %defattr(644,root,root,755)
851 %attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
852 %attr(755,root,root) %{_libdir}/%{pname}/webtest
856 %files -n lightdm-greeter-vbox
857 %defattr(644,root,root,755)
858 %attr(755,root,root) %{_sbindir}/vbox-greeter
859 %{_datadir}/xgreeters/vbox-greeter.desktop
862 %files -n pam-pam_vbox
863 %defattr(644,root,root,755)
864 %attr(755,root,root) /%{_lib}/security/pam_vbox.so
868 %defattr(644,root,root,755)
869 # this is a symlink...
870 %doc %{_libdir}/%{pname}/UserManual.pdf
871 %lang(fr) %doc %{_libdir}/%{pname}/UserManual_fr_FR.pdf
873 %doc %{outdir}/UserManual.pdf
874 %lang(fr) %doc %{outdir}/UserManual_fr_FR.pdf
877 %files -n xorg-driver-video-vboxvideo
878 %defattr(644,root,root,755)
879 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
880 %attr(755,root,root) %{_libdir}/xorg/modules/dri/vboxvideo_dri.so
881 # vboxvideo_dri.so deps
882 %attr(755,root,root) %{_libdir}/VBoxOGLarrayspu.so
883 %attr(755,root,root) %{_libdir}/VBoxOGLcrutil.so
884 %attr(755,root,root) %{_libdir}/VBoxOGLerrorspu.so
885 %attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so
886 %attr(755,root,root) %{_libdir}/VBoxOGLpackspu.so
887 %attr(755,root,root) %{_libdir}/VBoxOGLpassthroughspu.so