]> git.pld-linux.org Git - packages/VirtualBox.git/blob - VirtualBox.spec
2c653ba19243915d7bb9c2a80a437e074cb97168
[packages/VirtualBox.git] / VirtualBox.spec
1 # NOTE
2 # - https://www.virtualbox.org/wiki/Linux%20build%20instructions
3 # TODO
4 # - java bindings
5 # - Package SDK.
6 # - Check License of VBoxGuestAdditions_*.iso, it's probably not GPL v2.
7 #   If so check if it is distributable.
8 # - guest x11 additions: currently incomplete/untested
9 # - enable VDE networking: --enable-vde
10 # - initscripts for webservice
11 # - fix desc for dkms packages (proper wording needed), kernel modules desc is mess as well
12 #
13 # Conditional build:
14 %bcond_with     all_langs       # build with all manual translations
15 %bcond_without  doc             # don't build the documentation
16 %bcond_without  debuginfo               # disable debuginfo creation (to save space when compiling)
17 %bcond_without  kernel          # don't build kernel module
18 %bcond_without  userspace       # don't build userspace package
19 %bcond_with     webservice      # webservice (SOAP) support
20 %bcond_without  lightdm         # lightdm greeter
21 %bcond_without  dkms            # build dkms package
22 %bcond_without  verbose
23 %bcond_without  gui                     # disable Qt4 GUI frontend build
24 %bcond_without  host                    # build guest packages only
25
26 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
27 %{error:kernel and userspace cannot be built at the same time on PLD builders}
28 exit 1
29 %endif
30
31 %if %{with kernel}
32 %define         _duplicate_files_terminate_build        0
33 %endif
34
35 %if %{without userspace}
36 # nothing to be placed to debuginfo package
37 %undefine       with_debuginfo
38 %endif
39
40 %if %{without debuginfo}
41 %define         _enable_debug_packages  0
42 %endif
43
44 %ifnarch %{x8664} %{?with_kernel:x32}
45 %undefine       with_host
46 %endif
47
48 %define         qtver   5.6.0
49
50 %define         rel             3
51 %define         pname           VirtualBox
52 Summary:        VirtualBox - x86 hardware virtualizer
53 Summary(pl.UTF-8):      VirtualBox - wirtualizator sprzętu x86
54 Name:           %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
55 Version:        7.0.10
56 Release:        %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
57 License:        GPL v2
58 Group:          Applications/Emulators
59 Source0:        https://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
60 # Source0-md5:  dea0dbd1aa2012b4a35c0d416f8155c8
61 Source1:        https://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
62 # Source1-md5:  536e5176026317c9e3b364ecb558fd02
63 Source2:        vboxservice.init
64 Source3:        vboxservice.service
65 Source4:        vboxservice.sysconfig
66 Source5:        mount.vdi
67 Source6:        udev.rules
68 Source7:        %{pname}-virtualbox-host-modules-load.conf
69 Source8:        %{pname}-virtualbox-guest-modules-load.conf
70 Source9:        vboxautostart.init
71 Source10:       autostart.cfg
72 Source11:       vboxclient-vmsvga.service
73 Source12:       udev-guest.rules
74 Patch0:         %{pname}-version-error.patch
75 Patch1:         %{pname}-VBoxSysInfo.patch
76 Patch2:         %{pname}-warning_workaround.patch
77 Patch3:         kernel-6.4.10.patch
78 Patch4:         wrapper.patch
79 Patch6:         hardening-shared.patch
80 Patch7:         lightdm-greeter-makefile.patch
81 Patch8:         lightdm-greeter-g++-link.patch
82 Patch9:         pld-guest.patch
83 Patch10:        16-no-update.patch
84 Patch11:        %{pname}-all-translations.patch
85 Patch13:        %{pname}-no-scrextend.patch
86 Patch15:        %{pname}-lightdm-1.19.2.patch
87 Patch16:        %{pname}-no-vboxvideo.patch
88 Patch17:        qt5-gl.patch
89 Patch18:        qt-detect.patch
90 Patch19:        python3.patch
91 Patch20:        gcc-13.patch
92 Patch21:        xsl-style-dir.patch
93 Patch22:        build-arch.patch
94 URL:            http://www.virtualbox.org/
95 %if %{with userspace}
96 %ifarch %{x8664}
97 BuildRequires:  gcc-multilib-32
98 BuildRequires:  glibc-devel(i686)
99 BuildRequires:  libstdc++-multilib-32-devel
100 BuildRequires:  libstdc++-multilib-32-static
101 %endif
102 %if "%{pld_release}" == "ac"
103 BuildRequires:  XFree86-devel
104 %else
105 BuildRequires:  xorg-lib-libX11-devel
106 BuildRequires:  xorg-lib-libXcomposite-devel
107 BuildRequires:  xorg-lib-libXcursor-devel
108 BuildRequires:  xorg-lib-libXdamage-devel
109 BuildRequires:  xorg-lib-libXext-devel
110 BuildRequires:  xorg-lib-libXinerama-devel
111 BuildRequires:  xorg-lib-libXmu-devel
112 BuildRequires:  xorg-lib-libXrandr-devel
113 BuildRequires:  xorg-proto-glproto-devel
114 BuildRequires:  xorg-xserver-server-devel
115 %endif
116 BuildRequires:  EGL-devel
117 BuildRequires:  OpenGL-GLU-devel
118 BuildRequires:  OpenGL-devel
119 BuildRequires:  Qt5Core-devel >= %{qtver}
120 BuildRequires:  Qt5DBus-devel >= %{qtver}
121 BuildRequires:  Qt5Gui-devel >= %{qtver}
122 BuildRequires:  Qt5Help-devel >= %{qtver}
123 BuildRequires:  Qt5Network-devel >= %{qtver}
124 BuildRequires:  Qt5OpenGL-devel >= %{qtver}
125 BuildRequires:  Qt5PrintSupport-devel >= %{qtver}
126 BuildRequires:  Qt5Widgets-devel >= %{qtver}
127 BuildRequires:  Qt5X11Extras-devel >= %{qtver}
128 BuildRequires:  Qt5Xml-devel >= %{qtver}
129 BuildRequires:  SDL-devel >= 1.2.7
130 BuildRequires:  acpica
131 BuildRequires:  alsa-lib-devel >= 1.0.6
132 BuildRequires:  bash
133 BuildRequires:  bcc
134 BuildRequires:  bin86
135 BuildRequires:  curl-devel >= 7.19.1
136 BuildRequires:  device-mapper-devel >= 1.02
137 %if %{with doc}
138 BuildRequires:  docbook-dtd45-xml
139 BuildRequires:  docbook-style-xsl
140 %endif
141 BuildRequires:  fakeroot
142 %{?with_lightdm:BuildRequires:  fltk-devel}
143 BuildRequires:  gcc >= 5:3.2.3
144 %{?with_webservice:BuildRequires:       gsoap-devel}
145 BuildRequires:  issue
146 BuildRequires:  kBuild >= 0.1.9998.3598
147 BuildRequires:  libIDL-devel
148 BuildRequires:  libcap-static
149 BuildRequires:  libdrm-devel
150 BuildRequires:  liblzf-devel
151 BuildRequires:  libpng-devel >= 2:1.2.5
152 BuildRequires:  libstdc++-devel >= 5:3.2.3
153 BuildRequires:  libstdc++-static >= 5:3.2.3
154 BuildRequires:  libtpms-devel
155 BuildRequires:  libuuid-devel
156 BuildRequires:  libvncserver-devel >= 0.9.9
157 BuildRequires:  libvpx-devel >= 0.9.5
158 BuildRequires:  libxml2-devel >= 2.6.26
159 BuildRequires:  libxslt-devel >= 1.1.17
160 BuildRequires:  libxslt-progs >= 1.1.17
161 %{?with_lightdm:BuildRequires:  lightdm-libs-qt5-devel}
162 BuildRequires:  makeself
163 BuildRequires:  mkisofs
164 BuildRequires:  openssl-devel >= 1.0.1
165 BuildRequires:  pam-devel
166 BuildRequires:  pixman-devel
167 BuildRequires:  pkgconfig
168 BuildRequires:  pulseaudio-devel >= 0.9.0
169 BuildRequires:  python3-devel >= 1:3.6
170 BuildRequires:  python3-modules
171 BuildRequires:  qt5-assistant
172 BuildRequires:  qt5-build
173 BuildRequires:  qt5-linguist
174 BuildRequires:  rpmbuild(macros) >= 1.752
175 BuildRequires:  sed >= 4.0
176 %if %{with doc}
177 BuildRequires:  texlive-fonts-bitstream
178 BuildRequires:  texlive-fonts-other
179 BuildRequires:  texlive-fonts-type1-bitstream
180 BuildRequires:  texlive-format-pdflatex
181 BuildRequires:  texlive-latex-ucs
182 BuildRequires:  texlive-xetex
183 %endif
184 BuildRequires:  which
185 BuildRequires:  xalan-c-devel >= 1.10.0
186 BuildRequires:  xerces-c-devel >= 2.6.0
187 BuildRequires:  yasm >= 0.5.1
188 BuildRequires:  zlib-devel >= 1.2.1
189 %endif
190 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
191 Requires(post,preun):   /sbin/chkconfig
192 Requires(postun):       /usr/sbin/groupdel
193 Requires(pre):  /usr/bin/getgid
194 Requires(pre):  /usr/sbin/groupadd
195 Requires:       libvncserver >= 0.9.9
196 Requires:       udev-core
197 Provides:       group(vbox)
198 Obsoletes:      VirtualBox-udev < 4.2.10-5
199 ExclusiveArch:  %{ix86} %{x8664} %{?with_kernel:x32}
200 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
201
202 %ifarch %{x8664}
203 %define         vbox_arch       amd64
204 %else
205 %define         vbox_arch       x86
206 %endif
207 %define         vbox_platform   linux.%{vbox_arch}
208 %define         outdir          out/%{vbox_platform}/release/bin
209 %define         objdir          out/%{vbox_platform}/release/obj
210
211 %define         filterout               -Werror=format-security
212
213 %define         _noautochrpath  .*\\.debug$
214
215 %description
216 Oracle VirtualBox is a general-purpose full virtualizer for x86
217 hardware. Targeted at server, desktop and embedded use, it is now the
218 only professional-quality virtualization solution that is also Open
219 Source Software.
220
221 Some of the features of VirtualBox are:
222
223 Modularity: VirtualBox has an extremely modular design with
224 well-defined internal programming interfaces and a client/server
225 design. This makes it easy to control it from several interfaces at
226 once: for example, you can start a virtual machine in a typical
227 virtual machine GUI and then control that machine from the command
228 line. VirtualBox also comes with a full Software Development Kit: even
229 though it is Open Source Software, you don't have to hack the source
230 to write a new interface for VirtualBox.
231
232 Virtual machine descriptions in XML: the configuration settings of
233 virtual machines are stored entirely in XML and are independent of the
234 local machines. Virtual machine definitions can therefore easily be
235 ported to other computers.
236
237 You should install this package in your Host OS.
238
239 %description -l pl.UTF-8
240 Oracle VirtualBox jest emulatorem sprzętu x86. Kierowany do zastosowań
241 serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym
242 wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako
243 Otwarte Oprogramowanie.
244
245 Przykładowe cechy VirtualBoksa:
246
247 Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
248 dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
249 klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
250 różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
251 poziomu interfejsu graficznego, a później kontrolować ją z linii
252 poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
253 pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
254
255 Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
256 wirtualnych są w całości przechowywane w XML-u i są niezależne od
257 lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
258 konfigurację maszyny wirtualnej na inny komputer.
259
260 %package gui
261 Summary:        Qt GUI part for VirtualBox
262 Group:          X11/Applications
263 Requires:       %{name} = %{version}-%{release}
264 Requires:       Qt5Core >= %{qtver}
265 Requires:       Qt5Gui-platform-xcb >= %{qtver}
266 Requires:       desktop-file-utils
267 Requires:       desktop-file-utils
268 Requires:       fontconfig
269 Requires:       fonts-Type1-urw
270 Requires:       gtk-update-icon-cache
271 Requires:       hicolor-icon-theme
272 Requires:       shared-mime-info
273 Suggests:       Qt5Gui-platform-xcb-glx >= %{qtver}
274 Suggests:       Qt5Gui-platform-xcb-egl >= %{qtver}
275 Suggests:       gxmessage
276 Conflicts:      %{name} < 4.3.8-3
277
278 %description gui
279 Qt GUI part for VirtualBox.
280
281 %package doc
282 Summary:        VirtualBox documentation
283 Group:          Documentation
284
285 %description doc
286 This package contains VirtualBox User Manual.
287
288 %package additions
289 Summary:        VirtualBox Guest Additions
290 Group:          Base
291 Requires:       %{name} = %{version}
292 BuildArch:      noarch
293
294 %description additions
295 VirtualBox Guest Additions.
296
297 This package contains ISO9660 image with drivers for Guest OS.
298
299 You should install this package in your Host OS.
300
301 %package guest
302 Summary:        VirtualBox Guest tools
303 Group:          Base
304 Provides:       group(vboxsf)
305 Requires(post): systemd-units >= 38
306 Requires(post,preun):   /sbin/chkconfig
307 Requires(postun):       /usr/sbin/groupdel
308 Requires(pre):  /usr/bin/getgid
309 Requires(pre):  /usr/sbin/groupadd
310 Requires:       rc-scripts
311 Requires:       systemd-units >= 38
312 Suggests:       kernel(vboxguest)
313 Suggests:       kernel(vboxsf)
314 Suggests:       pam-pam_vbox
315
316 %description guest
317 Tools that utilize kernel modules for supporting integration with the
318 Host, including file sharing.
319
320 You should install this package in your Guest OS for base VirtualBox
321 communication
322
323 %package guest-x11
324 Summary:        VirtualBox Guest X11 Additions
325 Group:          X11/Applications
326 Requires:       %{name}-guest = %{version}-%{release}
327 Requires:       xorg-app-xrandr
328 Requires:       kernel(vboxvideo)
329 Obsoletes:      xorg-driver-input-vboxmouse < %{version}-%{release}
330 Obsoletes:      xorg-driver-video-vboxvideo < %{version}-%{release}
331
332 %description guest-x11
333 Tools for X11 session that utilize kernel modules for supporting
334 integration with the Host, like tracking of mouse pointer movement and
335 X.org X11 video and mouse drivers
336
337 You should install this package in your Guest OS for X11 session.
338
339 %package webservice
340 Summary:        VirtualBox Web Service
341 Group:          Applications/Emulators
342 Requires:       %{name} = %{version}-%{release}
343
344 %description webservice
345 This package contains VirtualBox web service API daemon. It allows to
346 control virtual machines via web interface.
347
348 %package -n lightdm-greeter-vbox
349 Summary:        VirtualBox greeter for lightdm
350 Group:          Themes
351 # NOTE: '#' in url is lost because rpm treats it as comment, even hacking with
352 # macros doesn't help as rpmbuild takes final result to parse
353 URL:            http://www.virtualbox.org/manual/ch09.html#autologon_unix_lightdm
354 Requires:       %{name} = %{version}-%{release}
355 Requires:       kernel(vboxguest)
356 Requires:       lightdm >= 1.0.1
357 Requires:       pam-pam_vbox = %{version}-%{release}
358 Provides:       lightdm-greeter
359
360 %description -n lightdm-greeter-vbox
361 VirtualBox greeter for LightDM.
362
363 %package -n pam-pam_vbox
364 Summary:        PAM module to perform automated guest logons
365 Group:          Base
366
367 %description  -n pam-pam_vbox
368 PAM module (Pluggable Authentication Module) which can be used to
369 perform automated guest logons.
370
371 %package -n dkms-vboxguest
372 Summary:        VirtualBox kernel modules source for Linux Guest
373 Summary(pl.UTF-8):      Moduły VirtualBoksa do jądra Linuksa dla systemu gościa
374 License:        GPL v2+
375 Group:          Base/Kernel
376 Requires:       dkms
377 BuildArch:      noarch
378
379 %description -n dkms-vboxguest
380 This package contains DKMS-ready VirtualBox Guest Additions for Linux
381 Module, host file system access (Shared Folders) and DRM support for
382 Linux guest system.
383
384 %description -n dkms-vboxguest -l pl.UTF-8
385 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -
386 dodatki dla systemu gościa, dostęp do plików systemu głównego z
387 poziomu systemu gościa i sterownik obsługi DRM.
388
389 %package -n dkms-vboxhost
390 Summary:        VirtualBox Support Drivers source
391 Summary(pl.UTF-8):      Moduły jądra Linuksa dla VirtualBoksa
392 License:        GPL v2+
393 Group:          Base/Kernel
394 Requires:       dkms
395 BuildArch:      noarch
396
397 %description -n dkms-vboxhost
398 This package contains DKMS enabled sourcecode of VirtualBox Support
399 Driver, Network Adapter Driver, Network Filter Driver and PCI card
400 passthrough driver that works as host proxy between guest and PCI
401 hardware.
402
403 %description -n dkms-vboxhost -l pl.UTF-8
404 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik
405 witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu
406 głównego oraz sterownik, ktory działa jako proxy między gościem i
407 gospodarzem sprzętu PCI.
408
409 # KERNEL PACKAGES
410
411 # KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
412
413 %define kernel_pkg()\
414 %package -n kernel%{_alt_kernel}-virtualbox-guest\
415 Summary:        VirtualBox kernel modules for Linux Guest\
416 Summary(pl.UTF-8):      Moduły VirtualBoksa do jądra Linuksa dla systemu gościa\
417 Release:        %{rel}@%{_kernel_ver_str}\
418 Group:          Base/Kernel\
419 Requires(post,postun):  /sbin/depmod\
420 Requires(post): systemd-units >= 38\
421 Requires:       dev >= 2.9.0-7\
422 Requires:       systemd-units >= 38\
423 %requires_releq_kernel\
424 Requires:       %{releq_kernel -n drm}\
425 Requires(postun):       %releq_kernel\
426 Provides:       kernel(vboxguest) = %{version}-%{rel}\
427 Provides:       kernel(vboxsf) = %{version}-%{rel}\
428 %if %{_kernel_version_code} < %{_kernel_version_magic 4 13 0}\
429 Provides:       kernel(vboxvideo) = %{version}-%{rel}\
430 %endif\
431 Obsoletes:      kernel-init-guest\
432 Conflicts:      kernel%{_alt_kernel}-virtualbox-host\
433 \
434 %description -n kernel%{_alt_kernel}-virtualbox-guest\
435 This package contains VirtualBox Guest Additions for Linux Module,\
436 host file system access (Shared Folders) and DRM support for\
437 Linux guest system.\
438 \
439 %description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8\
440 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -\
441 dodatki dla systemu gościa, dostęp do plików systemu głównego z\
442 poziomu systemu gościa i sterownik obsługi DRM.\
443 \
444 %package -n kernel%{_alt_kernel}-virtualbox-host\
445 Summary:        VirtualBox Support Drivers\
446 Summary(pl.UTF-8):      Moduły jądra Linuksa dla VirtualBoksa\
447 Release:        %{rel}@%{_kernel_ver_str}\
448 Group:          Base/Kernel\
449 Requires(post,postun):  /sbin/depmod\
450 Requires(post): systemd-units >= 38\
451 Requires:       dev >= 2.9.0-7\
452 %requires_releq_kernel\
453 Requires(postun):       %releq_kernel\
454 Requires:       systemd-units >= 38\
455 Provides:       kernel(vboxdrv) = %{version}-%{rel}\
456 Provides:       kernel(vboxnetadp) = %{version}-%{rel}\
457 Provides:       kernel(vboxnetflt) = %{version}-%{rel}\
458 Obsoletes:      kernel-init-host\
459 \
460 %description -n kernel%{_alt_kernel}-virtualbox-host\
461 This package contains VirtualBox Support Driver, Network Adapter\
462 Driver, Network Filter Driver and PCI card passthrough driver that\
463 works as host proxy between guest and PCI hardware.\
464 \
465 %description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8\
466 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik\
467 witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu\
468 głównego oraz sterownik, ktory działa jako proxy między gościem i\
469 gospodarzem sprzętu PCI.\
470 \
471 %if %{with kernel}\
472 %files -n kernel%{_alt_kernel}-virtualbox-guest\
473 %defattr(644,root,root,755)\
474 %if %{_kernel_version_code} >= %{_kernel_version_magic 4 16 0}\
475 %config(noreplace) %verify(not md5 mtime size) /etc/depmod.d/%{_kernel_ver}/vboxguest.conf\
476 %endif\
477 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf\
478 %if %{_kernel_version_code} < %{_kernel_version_magic 5 14 0}\
479 /lib/modules/%{_kernel_ver}/misc/vboxguest.ko*\
480 /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*\
481 %if %{_kernel_version_code} < %{_kernel_version_magic 4 13 0}\
482 /lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*\
483 %endif\
484 %endif\
485 \
486 %if %{with host}\
487 %files -n kernel%{_alt_kernel}-virtualbox-host\
488 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf\
489 /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*\
490 /lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*\
491 /lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*\
492 %endif\
493 %endif\
494 \
495 %post -n kernel%{_alt_kernel}-virtualbox-guest\
496 %depmod %{_kernel_ver}\
497 \
498 %postun -n kernel%{_alt_kernel}-virtualbox-guest\
499 %depmod %{_kernel_ver}\
500 \
501 %if %{with host}\
502 %post   -n kernel%{_alt_kernel}-virtualbox-host\
503 %depmod %{_kernel_ver}\
504 \
505 %postun -n kernel%{_alt_kernel}-virtualbox-host\
506 %depmod %{_kernel_ver}\
507 %endif\
508 %{nil}
509
510 %define build_kernel_pkg()\
511 export KERN_DIR=%{_kernelsrcdir}\
512 %if %{with host}\
513 cd kernel/HostDrivers\
514 %build_kernel_modules -m vboxdrv -C vboxdrv\
515 %build_kernel_modules -m vboxnetadp -C vboxnetadp KBUILD_EXTRA_SYMBOLS=$PWD/../vboxdrv/Module.symvers\
516 %build_kernel_modules -m vboxnetflt -C vboxnetflt KBUILD_EXTRA_SYMBOLS=$PWD/../vboxdrv/Module.symvers\
517 %install_kernel_modules -D ../../kernel/installed -m vboxdrv/vboxdrv,vboxnetadp/vboxnetadp,vboxnetflt/vboxnetflt -d misc\
518 cd ../..\
519 %endif\
520 %if %{_kernel_version_code} < %{_kernel_version_magic 5 14 0}\
521 cd kernel/GuestDrivers\
522 %build_kernel_modules -m vboxguest -C vboxguest\
523 %build_kernel_modules -m vboxsf -C vboxsf KBUILD_EXTRA_SYMBOLS=$PWD/../vboxguest/Module.symvers\
524 %install_kernel_modules -D ../../kernel/installed -m vboxsf/vboxsf,vboxguest/vboxguest -d misc\
525 %if %{_kernel_version_code} < %{_kernel_version_magic 4 13 0}\
526 %build_kernel_modules -m vboxvideo -C vboxvideo KBUILD_EXTRA_SYMBOLS=$PWD/../vboxguest/Module.symvers\
527 %install_kernel_modules -D ../../kernel/installed -m vboxvideo/vboxvideo -d misc\
528 %endif\
529 cd ../..\
530 %endif\
531 %{nil}
532
533 %define install_kernel_pkg()\
534 %if %{_kernel_version_code} >= %{_kernel_version_magic 4 16 0}\
535 install -d kernel/installed/etc/depmod.d/%{_kernel_ver}\
536 echo override vboxguest %{_kernel_ver} misc > kernel/installed/etc/depmod.d/%{_kernel_ver}/vboxguest.conf\
537 %if %{_kernel_version_code} >= %{_kernel_version_magic 5 6 0}\
538 echo override vboxsf %{_kernel_ver} misc >> kernel/installed/etc/depmod.d/%{_kernel_ver}/vboxguest.conf\
539 %endif\
540 %endif\
541 %{nil}
542
543 %{?with_kernel:%{expand:%create_kernel_packages}}
544
545 %prep
546 %setup -q -n %{pname}-%{version}
547 %patch0 -p1
548 %patch1 -p1
549 %patch2 -p1
550 %patch3 -p1
551 %patch4 -p1
552 %patch6 -p1
553 %patch7 -p1
554 %patch8 -p1
555 %patch9 -p1
556 %patch10 -p1
557 %if %{with all_langs}
558 %patch11 -p0
559 %endif
560 %patch13 -p1
561 %patch15 -p0
562 %patch16 -p0
563 %patch17 -p1
564 %patch18 -p1
565 %patch19 -p1
566 %patch20 -p1
567 %patch21 -p1
568 %patch22 -p1
569
570 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
571         -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
572
573 # Respect LDFLAGS
574 %{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
575         -i Config.kmk src/libs/xpcom18a4/Config.kmk
576
577 %{__sed} -i -e 's#@INSTALL_DIR@#%{_libdir}/%{pname}#' src/VBox/Installer/linux/VBox.sh
578
579 %if %{with kernel}
580 install -d kernel/{GuestDrivers,HostDrivers}
581 cd kernel
582 ../src/VBox/Additions/linux/export_modules.sh guest-modules.tar.gz
583 tar -zxf guest-modules.tar.gz -C GuestDrivers
584
585 ../src/VBox/HostDrivers/linux/export_modules.sh --file host-modules.tar.gz --without-hardening
586 tar -zxf host-modules.tar.gz -C HostDrivers
587 cd -
588 %endif
589
590 # using system kBuild package
591 %{__rm} -r kBuild
592
593 # use linux icon for now
594 cp -p src/VBox/Frontends/VirtualBox/images/os_{linux26,pld}.png
595 cp -p src/VBox/Frontends/VirtualBox/images/os_{linux26,pld}_64.png
596
597 # don't force whole userspace to be built with -fPIC
598 # see https://www.virtualbox.org/pipermail/vbox-dev/2015-February/012863.html
599 %define         filterout_c             -fPIC
600 %define         filterout_cxx           -fPIC
601
602 cat <<'EOF'>> LocalConfig.kmk
603 %{?with_verbose:KBUILD_VERBOSE=3}
604 USERNAME=%(id -un)
605 VBOX_BUILD_PUBLISHER=_PLD
606 VBOX_VERSION_STRING=$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)_PLD
607 XSERVER_VERSION=%(rpm -q --queryformat '%{V}\n' xorg-xserver-server-devel | awk -F. '{ print $1 $2 }' 2>/dev/null || echo ERROR)
608 VBOX_USE_SYSTEM_XORG_HEADERS=1
609 VBOX_USE_SYSTEM_GL_HEADERS=1
610 %if %{with lightdm}
611 VBOX_WITH_LIGHTDM_GREETER=1
612 VBOX_WITH_LIGHTDM_GREETER_PACKING=1
613 %endif
614 TOOL_GCC3_CFLAGS=%{rpmcflags}
615 TOOL_GCC3_CXXFLAGS=%{rpmcxxflags}
616 VBOX_GCC_OPT=%{rpmcxxflags}
617
618 TOOL_YASM_AS := /usr/bin/yasm
619
620 VBOX_BLD_PYTHON := %{__python3}
621 VBOX_WITHOUT_PYTHON_LIMITED_API=1
622
623 VBOX_PATH_APP_PRIVATE_ARCH := %{_libdir}/%{pname}
624 VBOX_PATH_APP_PRIVATE := %{_datadir}/%{pname}
625 VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
626 VBOX_WITH_ORIGIN :=
627 VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
628 #VBOX_PATH_APP_DOCS := %{_docdir}/%{pname}-doc-%{version}
629 VBOX_PATH_DOCBOOK_DTD := %{_datadir}/sgml/docbook/xml-dtd-4.4
630
631 # don't build testcases to save time, they are not needed for the package
632 VBOX_WITH_TESTCASES :=
633 VBOX_WITH_TESTSUITE :=
634
635 VBOX_WITH_VRDP_RDESKTOP=
636 VBOX_WITH_MULTIVERSION_PYTHON=0
637 %if %{without host}
638 VBOX_ONLY_ADDITIONS_WITHOUT_RTISOMAKER=1
639 VBOX_ONLY_ADDITIONS=1
640 %endif
641 EOF
642
643 %undefine       filterout_c
644 %undefine       filterout_cxx
645
646 %build
647 %if %{with userspace}
648 ./configure \
649         --with-gcc="%{__cc}" \
650         --with-g++="%{__cxx}" \
651         %{!?with_doc:--disable-docs} \
652         --disable-java \
653         --disable-hardening \
654         --disable-kmods \
655         --enable-vnc \
656         %{!?with_gui:--disable-qt} \
657         %{__enable webservice} \
658         %{!?with_host:--only-additions} \
659         %{nil}
660
661 . "$PWD/env.sh"
662 kmk %{?_smp_mflags} %{!?with_host:VBOX_ONLY_ADDITIONS_WITHOUT_RTISOMAKER=1 VBOX_ONLY_ADDITIONS=1}
663 %endif
664
665 %{?with_kernel:%{expand:%build_kernel_packages}}
666 %{?with_kernel:%{expand:%install_kernel_packages}}
667
668 %install
669 rm -rf $RPM_BUILD_ROOT
670
671 %if %{with userspace}
672 install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
673         $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_datadir}/mime/packages} \
674         $RPM_BUILD_ROOT/etc/sysconfig \
675         $RPM_BUILD_ROOT%{_sysconfdir}/vbox/autostart \
676         $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
677         $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \
678         $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir},%{_usrsrc}}
679
680 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
681 if cp -al COPYING $RPM_BUILD_ROOT/COPYING; then
682         l=l
683         %{__rm} $RPM_BUILD_ROOT/COPYING
684 fi
685
686 install -d $RPM_BUILD_ROOT%{_datadir}/%{pname}
687
688 cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
689
690 %if %{without gui}
691 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/icons
692 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/virtualbox.xml
693 %endif
694
695 # Guest Only Tools
696 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxAudioTest
697 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
698 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
699 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxDRMClient
700 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
701 install -d $RPM_BUILD_ROOT/etc/xdg/autostart
702 cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
703         $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
704 install -p src/VBox/Additions/x11/Installer/98vboxadd-xclient $RPM_BUILD_ROOT%{_bindir}/VBoxClient-all
705 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
706 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service
707 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/vboxservice
708
709 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir}/vboxclient-vmsvga.service
710
711 install -p %{SOURCE9} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxautostart
712 %{__sed} -i -e 's#@INSTALL_DIR@#%{_libdir}/%{pname}#' $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxautostart
713 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/vbox
714
715 %if %{with lightdm}
716 install -d $RPM_BUILD_ROOT%{_datadir}/xgreeters
717 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_sbindir}}/vbox-greeter
718 cp -p %{objdir}/Additions/Installer/linux/other/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
719 %endif
720
721 %if %{with dkms}
722 mv $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src $RPM_BUILD_ROOT%{_usrsrc}/vboxguest-%{version}-%{rel}
723 %endif
724
725 # pam
726 install -d $RPM_BUILD_ROOT/%{_lib}/security
727 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,/%{_lib}/security}/pam_vbox.so
728
729 # mount.vboxsf
730 %{__mv} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
731
732 # mount.vdi
733 install -p %{SOURCE5} $RPM_BUILD_ROOT/sbin/mount.vdi
734
735 # these belong to .iso
736 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/autorun.sh
737 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
738
739 cp -p %{SOURCE12} $RPM_BUILD_ROOT/etc/udev/rules.d/60-vboxguest.rules
740
741 %if %{with host}
742 # unknown - checkme
743 %if 1
744 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
745 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
746 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
747 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
748 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
749 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
750 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
751 %endif
752
753 cp -p$l %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/%{pname}/VBoxGuestAdditions.iso ||
754 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/%{pname}/VBoxGuestAdditions.iso
755
756 # manual installation steps based on src/VBox/Installer/linux/install.sh
757 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/VirtualBox
758 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/VBoxManage
759 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/VBoxVRDP
760 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/VBoxHeadless
761 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/VBoxBalloonCtrl
762 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/VBoxAutostart
763 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/vboxwebsrv
764 ln -sf %{_libdir}/%{pname}/vbox-img $RPM_BUILD_ROOT%{_bindir}/vbox-img
765 ln -sf %{_libdir}/%{pname}/VBox.sh $RPM_BUILD_ROOT%{_bindir}/VBoxDTrace
766 cp -p $RPM_BUILD_ROOT%{_libdir}/%{pname}/icons/128x128/virtualbox.png $RPM_BUILD_ROOT%{_pixmapsdir}/virtualbox.png
767 mv $RPM_BUILD_ROOT%{_libdir}/%{pname}/virtualbox.desktop $RPM_BUILD_ROOT%{_desktopdir}/virtualbox.desktop
768 mv $RPM_BUILD_ROOT%{_libdir}/%{pname}/virtualbox.xml $RPM_BUILD_ROOT%{_datadir}/mime/packages/virtualbox.xml
769
770 mv $RPM_BUILD_ROOT%{_libdir}/%{pname}/nls $RPM_BUILD_ROOT%{_datadir}/%{pname}
771
772 (
773 cd $RPM_BUILD_ROOT%{_libdir}/%{pname}/icons
774 for i in *; do
775 cd $i
776     for j in *; do
777         if expr "$j" : "virtualbox\..*" > /dev/null; then
778             dst=apps
779         else
780             dst=mimetypes
781         fi
782         if [ ! -e $RPM_BUILD_ROOT%{_iconsdir}/hicolor/$i/$dst ]; then
783                 install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/$i/$dst
784         fi
785         mv $RPM_BUILD_ROOT%{_libdir}/%{pname}/icons/$i/$j $RPM_BUILD_ROOT%{_iconsdir}/hicolor/$i/$dst/$j
786     done
787 cd -
788 done
789 )
790
791 rm -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/icons
792
793 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
794 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/60-vboxdrv.rules
795
796 %if %{with dkms}
797 mv $RPM_BUILD_ROOT%{_libdir}/%{pname}/src $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{version}-%{rel}
798 %endif
799
800 # cleanup unpackaged
801 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{sdk,testcase}
802 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace
803 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
804 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/generated.sh
805 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
806
807 %if %{with gui}
808 # weird icon size
809 %{__rm} -r $RPM_BUILD_ROOT%{_iconsdir}/hicolor/40x40
810 %endif
811
812 # duplicate, we already have virtualbox.png (128x128), this is 32x32
813 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.png
814
815 %if %{with doc}
816 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual.pdf
817 %if %{with all_langs}
818 ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual_fr_FR.pdf
819 %endif
820 %endif
821 %endif
822 %endif
823
824 %if %{with kernel}
825 install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin}
826
827 cp -a kernel/installed/* $RPM_BUILD_ROOT
828
829 # Tell systemd to load modules
830 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf
831 cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-guest.conf
832 %endif
833
834 %clean
835 rm -rf $RPM_BUILD_ROOT
836
837 %pre
838 %groupadd -g 221 -r -f vbox
839
840 %post
841 /sbin/chkconfig --add vboxautostart
842 %service -n vboxautostart restart
843
844 for i in /sys/bus/usb/devices/*; do
845         if [ -r "$i/dev" ]; then
846                 dev="`cat "$i/dev" 2>/dev/null || true`"
847                 major="`expr "$dev" : '\(.*\):' 2> /dev/null || true`"
848                 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null || true`"
849                 class="`cat $i/bDeviceClass 2> /dev/null || true`"
850                 /lib/udev/VBoxCreateUSBNode.sh "$major" "$minor" "$class" vbox 2>/dev/null
851         fi
852 done
853
854 cat << 'EOF'
855 You must install vboxdrv kernel modules for this software to work:
856     kernel*-virtualbox-host-%{version}-%{rel}@*
857
858 On Guest Linux system you might want to install:
859     kernel*-virtualbox-guest-%{version}-%{rel}@*
860
861 EOF
862
863 %preun
864 if [ "$1" = "0" ]; then
865         /sbin/chkconfig --del vboxautostart
866         %service vboxautostart -q stop
867 fi
868
869
870 %postun
871 if [ "$1" = "0" ]; then
872         %groupremove vbox
873 fi
874
875 %post gui
876 %update_desktop_database
877 %update_icon_cache hicolor
878 %update_mime_database
879
880 %postun gui
881 %update_desktop_database
882 %update_icon_cache hicolor
883 %update_mime_database
884
885 %pre guest
886 %useradd -u 336 -d /usr/share/empty -s /bin/false -c "VirtualBox guest additions" -g nobody vboxadd
887 # Add a group "vboxsf" for Shared Folders access
888 # All users which want to access the auto-mounted Shared Folders have to be added to this group.
889 %groupadd -g 266 -r -f vboxsf
890
891 %post guest
892 /sbin/chkconfig --add vboxservice
893 %service vboxservice restart
894 %systemd_post vboxservice.service vboxclient-vmsvga.service
895
896 %preun guest
897 if [ "$1" = "0" ]; then
898         /sbin/chkconfig --del vboxservice
899         %service vboxservice -q stop
900 fi
901 %systemd_preun vboxservice.service vboxclient-vmsvga.service
902
903 %postun guest
904 if [ "$1" = "0" ]; then
905         %userremove vboxadd
906         %groupremove vboxsf
907 fi
908 %systemd_reload
909
910 %triggerpostun guest -- VirtualBox-guest < 4.3.0-1
911 %systemd_trigger vboxservice.service
912
913 %pre -n lightdm-greeter-vbox
914 %addusertogroup xdm vbox
915
916 %post -n dkms-vboxguest
917 dkms add -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade && \
918 dkms build -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade && \
919 dkms install -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade || :
920
921 %preun -n dkms-vboxguest
922 dkms remove -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade --all || :
923
924 %post -n dkms-vboxhost
925 dkms add -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade && \
926 dkms build -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade && \
927 dkms install -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade || :
928
929 %preun -n dkms-vboxhost
930 dkms remove -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade --all || :
931
932 %if %{with userspace}
933 %if %{with host}
934 %files
935 %defattr(644,root,root,755)
936 %dir %attr(751,root,root) %{_sysconfdir}/vbox
937 %dir %attr(770,root,vbox) %{_sysconfdir}/vbox/autostart
938 %attr(640,root,vbox) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vbox/autostart.cfg
939 %attr(754,root,root) /etc/rc.d/init.d/vboxautostart
940 %attr(755,root,root) /sbin/mount.vdi
941 %attr(755,root,root) %{_bindir}/VBoxAutostart
942 %attr(755,root,root) %{_bindir}/VBoxBalloonCtrl
943 %attr(755,root,root) %{_bindir}/VBoxDTrace
944 %attr(755,root,root) %{_bindir}/VBoxHeadless
945 %attr(755,root,root) %{_bindir}/VBoxManage
946 %attr(755,root,root) %{_bindir}/VBoxVRDP
947 %attr(755,root,root) %{_bindir}/vbox-img
948 %dir %{_libdir}/%{pname}
949 # libraries
950 %attr(755,root,root) %{_libdir}/%{pname}/DbgPlugInDiggers.so
951 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
952 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
953 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so
954 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so
955 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so
956 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDxVk.so
957 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDragAndDropSvc.so
958 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestControlSvc.so
959 %attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestPropSvc.so
960 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHostChannel.so
961 %attr(755,root,root) %{_libdir}/%{pname}/VBoxKeyboard.so
962 %attr(755,root,root) %{_libdir}/%{pname}/VBoxPython*.so
963 %attr(755,root,root) %{_libdir}/%{pname}/VBoxRT.so
964 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVGA3D.so
965 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedClipboard.so
966 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so
967 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so
968 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so
969 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so
970 %ifarch %{ix86}
971 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM32.so
972 %attr(755,root,root) %{_libdir}/%{pname}/VBoxREM64.so
973 %endif
974
975 # binaries
976 %attr(755,root,root) %{_libdir}/%{pname}/VBox.sh
977 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAudioTest
978 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart
979 %attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl
980 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDTrace
981 %attr(755,root,root) %{_libdir}/%{pname}/VBoxExtPackHelperApp
982 %attr(755,root,root) %{_libdir}/%{pname}/VBoxHeadless
983 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManage
984 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetAdpCtl
985 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetDHCP
986 %attr(755,root,root) %{_libdir}/%{pname}/VBoxNetNAT
987 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC
988 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload
989 %attr(755,root,root) %{_libdir}/%{pname}/VBoxVolInfo
990 %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD
991 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBoxVM
992 %attr(755,root,root) %{_libdir}/%{pname}/bldRTLdrCheckImports
993 %attr(755,root,root) %{_libdir}/%{pname}/iPxeBaseBin
994 %attr(755,root,root) %{_libdir}/%{pname}/vboximg-mount
995 %dir %{_libdir}/%{pname}/tools
996 %attr(755,root,root) %{_libdir}/%{pname}/tools/LnxPerfHack
997 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTCat
998 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTChMod
999 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTCp
1000 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTDbgSymCache
1001 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTEfiFatExtract
1002 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTEfiSigDb
1003 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTFuzzClient
1004 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTFuzzMaster
1005 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTFtpServer
1006 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTGzip
1007 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTHttp
1008 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTHttpServer
1009 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTIsoMaker
1010 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTKrnlModInfo
1011 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTLdrCheckImports
1012 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTLdrFlt
1013 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTLs
1014 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTManifest
1015 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTMkDir
1016 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTRm
1017 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTRmDir
1018 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTShutdown
1019 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTSignTool
1020 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTTar
1021 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTTraceLogTool
1022 %attr(755,root,root) %{_libdir}/%{pname}/tools/RTUnzip
1023 %attr(755,root,root) %{_libdir}/%{pname}/tools/scm
1024
1025 %dir %{_libdir}/%{pname}/ExtensionPacks
1026 %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
1027 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC
1028 %dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*
1029 %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so
1030 %dir %{_libdir}/%{pname}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
1031 %{_libdir}/%{pname}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/ExtPack.xml
1032 %dir %{_libdir}/%{pname}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux*
1033 %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux*/VBoxDTrace*.so
1034 %{_libdir}/%{pname}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux*/VBoxDTraceR0.debug
1035 %{_libdir}/%{pname}/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux*/VBoxDTraceR0.r0
1036
1037 %{_libdir}/%{pname}/VBoxBugReport
1038 %{_libdir}/%{pname}/VBoxCpuReport
1039 %{_libdir}/%{pname}/VBoxDDR0.debug
1040 %{_libdir}/%{pname}/VBoxDDR0.r0
1041 %{_libdir}/%{pname}/VBoxEFI32.fd
1042 %{_libdir}/%{pname}/VBoxEFI64.fd
1043 %{_libdir}/%{pname}/VMMR0.debug
1044 %{_libdir}/%{pname}/VMMR0.r0
1045
1046 %dir %{_libdir}/%{pname}/components
1047 %{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt
1048 %{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt
1049 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so
1050 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so
1051 %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so
1052 %attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh
1053
1054 %{_libdir}/%{pname}/UnattendedTemplates
1055
1056 %dir %{_datadir}/%{pname}
1057
1058 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/60-vboxdrv.rules
1059 %attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
1060
1061 %if %{with gui}
1062 %files gui
1063 %defattr(644,root,root,755)
1064 %attr(755,root,root) %{_bindir}/VirtualBox
1065 %attr(755,root,root) %{_libdir}/%{pname}/UICommon.so
1066 %attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so
1067 %attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL
1068 %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox
1069 %dir %{_datadir}/%{pname}/nls
1070 %lang(bg) %{_datadir}/%{pname}/nls/*_bg.qm
1071 %lang(ca) %{_datadir}/%{pname}/nls/*_ca.qm
1072 %lang(ca_VA) %{_datadir}/%{pname}/nls/*_ca_VA.qm
1073 %lang(cs) %{_datadir}/%{pname}/nls/*_cs.qm
1074 %lang(da) %{_datadir}/%{pname}/nls/*_da.qm
1075 %lang(de) %{_datadir}/%{pname}/nls/*_de.qm
1076 %lang(en) %{_datadir}/%{pname}/nls/*_el.qm
1077 %lang(en) %{_datadir}/%{pname}/nls/*_en.qm
1078 %lang(es) %{_datadir}/%{pname}/nls/*_es.qm
1079 %lang(eu) %{_datadir}/%{pname}/nls/*_eu.qm
1080 %lang(fa) %{_datadir}/%{pname}/nls/*_fa.qm
1081 %lang(fi) %{_datadir}/%{pname}/nls/*_fi.qm
1082 %lang(fr) %{_datadir}/%{pname}/nls/*_fr.qm
1083 %lang(gl) %{_datadir}/%{pname}/nls/*_gl.qm
1084 %lang(he) %{_datadir}/%{pname}/nls/*_he.qm
1085 %lang(hr) %{_datadir}/%{pname}/nls/*_hr_HR.qm
1086 %lang(hu) %{_datadir}/%{pname}/nls/*_hu.qm
1087 %lang(id) %{_datadir}/%{pname}/nls/*_id.qm
1088 %lang(it) %{_datadir}/%{pname}/nls/*_it.qm
1089 %lang(ja) %{_datadir}/%{pname}/nls/*_ja.qm
1090 %lang(ka) %{_datadir}/%{pname}/nls/*_ka.qm
1091 %lang(km_KH) %{_datadir}/%{pname}/nls/*_km_KH.qm
1092 %lang(ko) %{_datadir}/%{pname}/nls/*_ko.qm
1093 %lang(lt) %{_datadir}/%{pname}/nls/*_lt.qm
1094 %lang(nl) %{_datadir}/%{pname}/nls/*_nl.qm
1095 %lang(pl) %{_datadir}/%{pname}/nls/*_pl.qm
1096 %lang(pt) %{_datadir}/%{pname}/nls/*_pt.qm
1097 %lang(pt_BR) %{_datadir}/%{pname}/nls/*_pt_BR.qm
1098 %lang(ro) %{_datadir}/%{pname}/nls/*_ro.qm
1099 %lang(ru) %{_datadir}/%{pname}/nls/*_ru.qm
1100 %lang(sk) %{_datadir}/%{pname}/nls/*_sk.qm
1101 %lang(sk) %{_datadir}/%{pname}/nls/*_sl.qm
1102 %lang(sr) %{_datadir}/%{pname}/nls/*_sr.qm
1103 %lang(sv) %{_datadir}/%{pname}/nls/*_sv.qm
1104 %lang(th) %{_datadir}/%{pname}/nls/*_th.qm
1105 %lang(tr) %{_datadir}/%{pname}/nls/*_tr.qm
1106 %lang(uk) %{_datadir}/%{pname}/nls/*_uk.qm
1107 %lang(zh_CN) %{_datadir}/%{pname}/nls/*_zh_CN.qm
1108 %lang(zh_TW) %{_datadir}/%{pname}/nls/*_zh_TW.qm
1109 %{_desktopdir}/virtualbox.desktop
1110 %{_pixmapsdir}/virtualbox.png
1111 %{_iconsdir}/hicolor/*/apps/virtualbox.png
1112 %{_iconsdir}/hicolor/*/apps/virtualbox.svg
1113 %{_iconsdir}/hicolor/*/mimetypes/virtualbox-*.png
1114 %{_datadir}/mime/packages/virtualbox.xml
1115 %endif
1116
1117 %files additions
1118 %defattr(644,root,root,755)
1119 %{_datadir}/%{pname}/VBoxGuestAdditions.iso
1120
1121 %if %{with webservice}
1122 %files webservice
1123 %defattr(644,root,root,755)
1124 %attr(755,root,root) %{_bindir}/vboxwebsrv
1125 %attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
1126 %attr(755,root,root) %{_libdir}/%{pname}/webtest
1127 %endif
1128
1129 %if %{with doc}
1130 %files doc
1131 %defattr(644,root,root,755)
1132 %doc %{_libdir}/%{pname}/UserManual.qch
1133 %doc %{_libdir}/%{pname}/UserManual.qhc
1134 # this is a symlink...
1135 %doc %{_libdir}/%{pname}/UserManual.pdf
1136 %if %{with all_langs}
1137 %lang(fr) %doc %{_libdir}/%{pname}/UserManual_fr_FR.pdf
1138 %endif
1139 # ..to this file
1140 %doc %{outdir}/UserManual.pdf
1141 %if %{with all_langs}
1142 %lang(fr) %doc %{outdir}/UserManual_fr_FR.pdf
1143 %endif
1144 %endif
1145 %endif
1146
1147 %files guest
1148 %defattr(644,root,root,755)
1149 %attr(755,root,root) /sbin/mount.vboxsf
1150 %attr(754,root,root) /etc/rc.d/init.d/vboxservice
1151 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vboxservice
1152 %{systemdunitdir}/vboxservice.service
1153 %{systemdunitdir}/vboxclient-vmsvga.service
1154 %attr(755,root,root) %{_bindir}/VBoxAudioTest
1155 %attr(755,root,root) %{_bindir}/VBoxControl
1156 %attr(755,root,root) %{_bindir}/VBoxService
1157 %config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/60-vboxguest.rules
1158
1159 %files guest-x11
1160 %defattr(644,root,root,755)
1161 /etc/xdg/autostart/vboxclient.desktop
1162 %attr(755,root,root) %{_bindir}/VBoxClient
1163 %attr(755,root,root) %{_bindir}/VBoxClient-all
1164 %attr(755,root,root) %{_bindir}/VBoxDRMClient
1165
1166 %if %{with lightdm}
1167 %files -n lightdm-greeter-vbox
1168 %defattr(644,root,root,755)
1169 %attr(755,root,root) %{_sbindir}/vbox-greeter
1170 %{_datadir}/xgreeters/vbox-greeter.desktop
1171 %endif
1172
1173 %files -n pam-pam_vbox
1174 %defattr(644,root,root,755)
1175 %attr(755,root,root) /%{_lib}/security/pam_vbox.so
1176
1177 %if %{with dkms}
1178 %files -n dkms-vboxguest
1179 %defattr(644,root,root,755)
1180 %{_usrsrc}/vboxguest-%{version}-%{rel}
1181
1182 %if %{with host}
1183 %files -n dkms-vboxhost
1184 %defattr(644,root,root,755)
1185 %{_usrsrc}/vboxhost-%{version}-%{rel}
1186 %endif
1187 %endif
1188 %endif
This page took 0.191681 seconds and 2 git commands to generate.