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: 1f49237686d095859f3dbea0941f8b12
66 Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
67 # Source1-md5: 6b72a59aba1660afa4f430faa88d727a
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
255 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
323 %description -n xorg-driver-video-vboxvideo
324 X.org video driver for VirtualBox guest OS.
326 %description -n xorg-driver-video-vboxvideo -l pl.UTF-8
327 Sterownik grafiki dla systemu gościa w VirtualBoksie.
331 # KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
333 %define kernel_pkg()\
334 %package -n kernel%{_alt_kernel}-virtualbox-guest\
335 Summary: VirtualBox kernel modules for Linux Guest\
336 Summary(pl.UTF-8): Moduły VirtualBoksa do jądra Linuksa dla systemu gościa\
337 Release: %{rel}@%{_kernel_ver_str}\
339 Requires(post,postun): /sbin/depmod\
340 Requires(post): systemd-units >= 38\
341 Requires: dev >= 2.9.0-7\
342 Requires: systemd-units >= 38\
343 %if %{with dist_kernel}\
344 %requires_releq_kernel\
345 Requires: %{releq_kernel -n drm}\
346 Requires(postun): %releq_kernel\
348 Suggests: %{name}-kernel-init-guest >= %{version}-%{rel}\
349 Provides: kernel(vboxguest) = %{version}-%{rel}\
350 Provides: kernel(vboxsf) = %{version}-%{rel}\
351 Provides: kernel(vboxvideo) = %{version}-%{rel}\
352 Obsoletes: kernel-init-guest\
353 Conflicts: kernel%{_alt_kernel}-virtualbox-host\
355 %description -n kernel%{_alt_kernel}-virtualbox-guest\
356 This package contains VirtualBox Guest Additions for Linux Module,\
357 host file system access (Shared Folders) and DRM support for\
360 %description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8\
361 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -\
362 dodatki dla systemu gościa, dostęp do plików systemu głównego z\
363 poziomu systemu gościa i sterownik obsługi DRM.\
365 %package -n kernel%{_alt_kernel}-virtualbox-host\
366 Summary: VirtualBox Support Drivers\
367 Summary(pl.UTF-8): Moduły jądra Linuksa dla VirtualBoksa\
368 Release: %{rel}@%{_kernel_ver_str}\
370 Requires(post,postun): /sbin/depmod\
371 Requires(post): systemd-units >= 38\
372 Requires: dev >= 2.9.0-7\
373 %if %{with dist_kernel}\
374 %requires_releq_kernel\
375 Requires(postun): %releq_kernel\
377 Requires: systemd-units >= 38\
378 Suggests: %{name}-kernel-init-host >= %{version}-%{rel}\
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