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