]> git.pld-linux.org Git - packages/VirtualBox.git/blame_incremental - VirtualBox.spec
- mount.vboxfs belongs to userland
[packages/VirtualBox.git] / VirtualBox.spec
... / ...
CommitLineData
1# TODO
2# - java bindings
3# - Package SDK.
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
9#
10# Conditional build:
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
18
19%if %{without kernel}
20%undefine with_dist_kernel
21%else
22%define _duplicate_files_terminate_build 0
23%endif
24
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}
31exit 1
32%endif
33
34%if "%{_alt_kernel}" != "%{nil}"
35%if 0%{?build_kernels:1}
36%{error:alt_kernel and build_kernels are mutually exclusive}
37exit 1
38%endif
39%undefine with_userspace
40%global _build_kernels %{alt_kernel}
41%else
42%global _build_kernels %{?build_kernels:,%{?build_kernels}}
43%endif
44
45%if %{without userspace}
46# nothing to be placed to debuginfo package
47%define _enable_debug_packages 0
48%endif
49
50%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)
51%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)
52%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)
53
54%define rel 1
55%define pname VirtualBox
56Summary: VirtualBox - x86 hardware virtualizer
57Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
58Name: %{pname}%{_alt_kernel}
59Version: 4.3.0
60Release: %{rel}%{?with_kernel:@%{_kernel_ver_str}}
61License: GPL v2
62Group: Applications/Emulators
63Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
64# Source0-md5: 1f49237686d095859f3dbea0941f8b12
65Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
66# Source1-md5: 6b72a59aba1660afa4f430faa88d727a
67Source2: vboxservice.init
68Source3: vboxservice.service
69Source4: %{pname}.sh
70Source5: mount.vdi
71Source6: udev.rules
72Source7: %{pname}-virtualbox-host-modules-load.conf
73Source8: %{pname}-virtualbox-guest-modules-load.conf
74Patch0: %{pname}-configure-spaces.patch
75Patch1: %{pname}-VBoxSysInfo.patch
76Patch2: %{pname}-warning_workaround.patch
77Patch3: %{pname}-dri.patch
78Patch5: xserver-1.12.patch
79Patch7: lightdm-greeter-glib-includes.patch
80Patch8: lightdm-greeter-g++-link.patch
81# ubuntu patches
82Patch10: 16-no-update.patch
83Patch11: 18-system-xorg.patch
84# /ubuntu patches
85URL: http://www.virtualbox.org/
86%if %{with userspace}
87%ifarch %{x8664}
88BuildRequires: gcc-multilib
89BuildRequires: glibc-devel(i686)
90BuildRequires: libstdc++-multilib-devel
91BuildRequires: libstdc++-multilib-static
92%endif
93%if "%{pld_release}" == "ac"
94BuildRequires: XFree86-devel
95%else
96BuildRequires: xorg-lib-libXcomposite-devel
97BuildRequires: xorg-lib-libXcursor-devel
98BuildRequires: xorg-lib-libXmu-devel
99BuildRequires: xorg-proto-glproto-devel
100BuildRequires: xorg-xserver-server-devel
101%endif
102BuildRequires: OpenGL-GLU-devel
103BuildRequires: OpenGL-devel
104BuildRequires: QtGui-devel
105BuildRequires: QtNetwork-devel
106BuildRequires: QtOpenGL-devel
107BuildRequires: SDL-devel >= 1.2.7
108BuildRequires: acpica
109BuildRequires: alsa-lib-devel >= 1.0.6
110BuildRequires: bash
111BuildRequires: bcc
112BuildRequires: bin86
113BuildRequires: curl-devel
114BuildRequires: device-mapper-devel
115%{?with_doc:BuildRequires: docbook-dtd44-xml}
116BuildRequires: gcc >= 5:3.2.3
117%{?with_webservice:BuildRequires: gsoap-devel}
118BuildRequires: issue
119BuildRequires: kBuild >= 0.1.9998.2700
120BuildRequires: libIDL-devel
121BuildRequires: libcap-static
122BuildRequires: libdrm-devel
123BuildRequires: libpng-devel >= 1.2.5
124BuildRequires: libstdc++-devel >= 5:3.2.3
125BuildRequires: libstdc++-static >= 5:3.2.3
126BuildRequires: libuuid-devel
127BuildRequires: libvncserver-devel >= 0.9.9
128BuildRequires: libxml2-devel >= 2.6.26
129BuildRequires: libxslt-devel >= 1.1.17
130BuildRequires: libxslt-progs >= 1.1.17
131%{?with_lightdm:BuildRequires: lightdm-libs-qt-devel}
132BuildRequires: makeself
133BuildRequires: mkisofs
134BuildRequires: pam-devel
135BuildRequires: pixman-devel
136BuildRequires: pkgconfig
137BuildRequires: pulseaudio-devel >= 0.9.0
138BuildRequires: python-devel
139BuildRequires: python-modules
140BuildRequires: qt4-build >= 4.2.0
141BuildRequires: qt4-linguist
142BuildRequires: rpmbuild(macros) >= 1.678
143BuildRequires: sed >= 4.0
144%if %{with doc}
145BuildRequires: texlive-fonts-bitstream
146BuildRequires: texlive-fonts-other
147BuildRequires: texlive-fonts-type1-bitstream
148BuildRequires: texlive-format-pdflatex
149BuildRequires: texlive-latex-ucs
150BuildRequires: texlive-xetex
151%endif
152BuildRequires: which
153BuildRequires: xalan-c-devel >= 1.10.0
154BuildRequires: xerces-c-devel >= 2.6.0
155BuildRequires: yasm
156BuildRequires: zlib-devel >= 1.2.1
157%endif
158%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
159Requires(post,preun): /sbin/chkconfig
160Requires(postun): /usr/sbin/groupdel
161Requires(pre): /usr/bin/getgid
162Requires(pre): /usr/sbin/groupadd
163Requires: QtCore >= 4.7.0
164Requires: desktop-file-utils
165Requires: fontconfig
166Requires: fonts-Type1-urw
167Requires: libvncserver >= 0.9.9
168Requires: udev-core
169Suggests: gxmessage
170Provides: group(vbox)
171Obsoletes: VirtualBox-udev < 4.2.10-5
172ExclusiveArch: %{ix86} %{x8664}
173BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
174
175%ifarch %{x8664}
176%define vbox_arch amd64
177%else
178%define vbox_arch x86
179%endif
180%define vbox_platform linux.%{vbox_arch}
181%define outdir out/%{vbox_platform}/release/bin
182%define objdir out/%{vbox_platform}/release/obj
183
184%description
185Oracle VirtualBox is a general-purpose full virtualizer for x86
186hardware. Targeted at server, desktop and embedded use, it is now the
187only professional-quality virtualization solution that is also Open
188Source Software.
189
190Some of the features of VirtualBox are:
191
192Modularity: VirtualBox has an extremely modular design with
193well-defined internal programming interfaces and a client/server
194design. This makes it easy to control it from several interfaces at
195once: for example, you can start a virtual machine in a typical
196virtual machine GUI and then control that machine from the command
197line. VirtualBox also comes with a full Software Development Kit: even
198though it is Open Source Software, you don't have to hack the source
199to write a new interface for VirtualBox.
200
201Virtual machine descriptions in XML: the configuration settings of
202virtual machines are stored entirely in XML and are independent of the
203local machines. Virtual machine definitions can therefore easily be
204ported to other computers.
205
206You should install this package in your Host OS.
207
208%description -l pl.UTF-8
209Oracle VirtualBox jest emulatorem sprzętu x86. Kierowany do zastosowań
210serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym
211wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako
212Otwarte Oprogramowanie.
213
214Przykładowe cechy VirtualBoksa:
215
216Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
217dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
218klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
219różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
220poziomu interfejsu graficznego, a później kontrolować ją z linii
221poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
222pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
223
224Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
225wirtualnych są w całości przechowywane w XML-u i są niezależne od
226lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
227konfigurację maszyny wirtualnej na inny komputer.
228
229%package doc
230Summary: VirtualBox documentation
231Group: Documentation
232
233%description doc
234This package contains VirtualBox User Manual.
235
236%package additions
237Summary: VirtualBox Guest Additions
238Group: Base
239Requires: %{name} = %{version}-%{release}
240
241%description additions
242VirtualBox Guest Additions.
243
244This package contains ISO9660 image with drivers for Guest OS.
245
246You should install this package in your Host OS.
247
248%package guest
249Summary: VirtualBox Guest tools
250Group: Base
251Requires(post,preun): /sbin/chkconfig
252Requires(post): systemd-units >= 38
253Requires: systemd-units >= 38
254Requires: rc-scripts
255Suggests: kernel(vboxguest)
256Suggests: kernel(vboxsf)
257Suggests: pam-pam_vbox
258
259%description guest
260Tools that utilize kernel modules for supporting integration with the
261Host, including file sharing.
262
263You should install this package in your Guest OS for base VirtualBox
264communication
265
266%package guest-x11
267Summary: VirtualBox Guest Additions
268Group: Base
269Requires: %{name}-guest = %{version}-%{release}
270Requires: xorg-driver-video-vboxvideo = %{version}-%{release}
271Suggests: kernel(vboxvideo)
272Obsoletes: xorg-driver-input-vboxmouse < %{version}-%{release}
273
274%description guest-x11
275Tools for X11 session that utilize kernel modules for supporting
276integration with the Host, like tracking of mouse pointer movement and
277X.org X11 video and mouse drivers
278
279You should install this package in your Guest OS for X11 session.
280
281%package webservice
282Summary: VirtualBox Web Service
283Group: Applications/Emulators
284Requires: %{name} = %{version}-%{release}
285
286%description webservice
287This package contains VirtualBox web service API daemon. It allows to
288control virtual machines via web interface.
289
290%package -n lightdm-greeter-vbox
291Summary: VirtualBox greeter for lightdm
292Group: Themes
293# NOTE: '#' in url is lost because rpm treats it as comment, even hacking with
294# macros doesn't help as rpmbuild takes final result to parse
295URL: http://www.virtualbox.org/manual/ch09.html#autologon_unix_lightdm
296Requires: kernel(vboxguest)
297Requires: lightdm >= 1.0.1
298Provides: lightdm-greeter
299
300%description -n lightdm-greeter-vbox
301VirtualBox greeter for LightDM.
302
303%package -n pam-pam_vbox
304Summary: PAM module to perform automated guest logons
305Group: Base
306
307%description -n pam-pam_vbox
308PAM module (Pluggable Authentication Module) which can be used to
309perform automated guest logons.
310
311%package -n xorg-driver-video-vboxvideo
312Summary: X.org video driver for VirtualBox guest OS
313Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie
314Group: X11/Applications
315Requires: Mesa-dri-driver-swrast
316Requires: xorg-xserver-libdri >= 1.7.4
317Requires: xorg-xserver-server >= 1.0.99.901
318Requires: xorg-xserver-server(videodrv-abi) <= 14.1
319Requires: xorg-xserver-server(videodrv-abi) >= 2.0
320
321%description -n xorg-driver-video-vboxvideo
322X.org video driver for VirtualBox guest OS.
323
324%description -n xorg-driver-video-vboxvideo -l pl.UTF-8
325Sterownik grafiki dla systemu gościa w VirtualBoksie.
326
327# KERNEL PACKAGES
328
329# KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
330
331%define kernel_pkg()\
332%package -n kernel%{_alt_kernel}-virtualbox-guest\
333Summary: VirtualBox kernel modules for Linux Guest\
334Summary(pl.UTF-8): Moduły VirtualBoksa do jądra Linuksa dla systemu gościa\
335Release: %{rel}@%{_kernel_ver_str}\
336Group: Base/Kernel\
337Requires(post,postun): /sbin/depmod\
338Requires(post): systemd-units >= 38\
339Requires: dev >= 2.9.0-7\
340Requires: systemd-units >= 38\
341%if %{with dist_kernel}\
342%requires_releq_kernel\
343%requires_releq_kernel -n drm\
344Requires(postun): %releq_kernel\
345%endif\
346Suggests: %{name}-kernel-init-guest >= %{version}-%{rel}\
347Provides: kernel(vboxguest) = %{version}-%{rel}\
348Provides: kernel(vboxsf) = %{version}-%{rel}\
349Provides: kernel(vboxvideo) = %{version}-%{rel}\
350Obsoletes: kernel-init-guest\
351Conflicts: kernel%{_alt_kernel}-virtualbox-host\
352\
353%description -n kernel%{_alt_kernel}-virtualbox-guest\
354This package contains VirtualBox Guest Additions for Linux Module,\
355host file system access (Shared Folders) and DRM support for\
356Linux guest system.\
357\
358%description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8\
359Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -\
360dodatki dla systemu gościa, dostęp do plików systemu głównego z\
361poziomu systemu gościa i sterownik obsługi DRM.\
362\
363%package -n kernel%{_alt_kernel}-virtualbox-host\
364Summary: VirtualBox Support Drivers\
365Summary(pl.UTF-8): Moduły jądra Linuksa dla VirtualBoksa\
366Release: %{rel}@%{_kernel_ver_str}\
367Group: Base/Kernel\
368Requires(post,postun): /sbin/depmod\
369Requires(post): systemd-units >= 38\
370Requires: dev >= 2.9.0-7\
371%if %{with dist_kernel}\
372%requires_releq_kernel\
373Requires(postun): %releq_kernel\
374%endif\
375Requires: systemd-units >= 38\
376Suggests: %{name}-kernel-init-host >= %{version}-%{rel}\
377Provides: kernel(vboxdrv) = %{version}-%{rel}\
378Provides: kernel(vboxnetadp) = %{version}-%{rel}\
379Provides: kernel(vboxnetflt) = %{version}-%{rel}\
380Provides: kernel(vboxpci) = %{version}-%{rel}\
381Obsoletes: kernel-init-host\
382\
383%description -n kernel%{_alt_kernel}-virtualbox-host\
384This package contains VirtualBox Support Driver, Network Adapter\
385Driver, Network Filter Driver and PCI card passthrough driver that\
386works as host proxy between guest and PCI hardware.\
387\
388%description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8\
389Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik\
390witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu\
391głównego oraz sterownik, ktory działa jako proxy między gościem i\
392gospodarzem sprzętu PCI.\
393\
394%if %{with kernel}\
395%files -n kernel%{_alt_kernel}-virtualbox-guest\
396%defattr(644,root,root,755)\
397%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf\
398/lib/modules/%{_kernel_ver}/misc/vboxguest.ko*\
399/lib/modules/%{_kernel_ver}/misc/vboxsf.ko*\
400/lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*\
401\
402%files -n kernel%{_alt_kernel}-virtualbox-host\
403%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf\
404/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*\
405/lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*\
406/lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*\
407/lib/modules/%{_kernel_ver}/misc/vboxpci.ko*\
408%endif\
409\
410%post -n kernel%{_alt_kernel}-virtualbox-guest\
411%depmod %{_kernel_ver}\
412\
413%postun -n kernel%{_alt_kernel}-virtualbox-guest\
414%depmod %{_kernel_ver}\
415\
416%post -n kernel%{_alt_kernel}-virtualbox-host\
417%depmod %{_kernel_ver}\
418\
419%postun -n kernel%{_alt_kernel}-virtualbox-host\
420%depmod %{_kernel_ver}\
421%{nil}
422
423%define build_kernel_pkg()\
424export KERN_DIR=%{_kernelsrcdir}\
425cd PLD-MODULE-BUILD/HostDrivers\
426%build_kernel_modules -m vboxdrv -C vboxdrv\
427%build_kernel_modules -m vboxnetadp -C vboxnetadp\
428%build_kernel_modules -m vboxnetflt -C vboxnetflt\
429%build_kernel_modules -m vboxpci -C vboxpci\
430cd ../GuestDrivers\
431%build_kernel_modules -m vboxguest -C vboxguest\
432cp -a vboxguest/Module.symvers vboxsf\
433%build_kernel_modules -m vboxsf -C vboxsf -c\
434%build_kernel_modules -m vboxvideo -C vboxvideo\
435cd ../..\
436%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc\
437%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc\
438%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc\
439%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc\
440%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc\
441%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc\
442%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc\
443%{nil}
444
445%{?with_kernel:%{expand:%kpkg}}
446
447%prep
448%setup -q -n %{pname}-%{version}
449%patch0 -p1
450%patch1 -p1
451%patch2 -p1
452%patch3 -p1
453%patch5 -p1
454%patch7 -p1
455%patch8 -p1
456
457%{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
458 -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
459
460# Respect LDFLAGS
461%{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
462 -i Config.kmk src/libs/xpcom18a4/Config.kmk
463
464%{__sed} 's#@LIBDIR@#%{_libdir}#' < %{SOURCE4} > VirtualBox-wrapper.sh
465
466install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
467cd PLD-MODULE-BUILD
468../src/VBox/Additions/linux/export_modules guest-modules.tar.gz
469tar -zxf guest-modules.tar.gz -C GuestDrivers
470
471../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening
472tar -zxf host-modules.tar.gz -C HostDrivers
473cd -
474%patch10 -p1
475%patch11 -p1
476
477# using system kBuild package
478%{__rm} -r kBuild
479
480cat <<'EOF'>> LocalConfig.kmk
481%{?with_verbose:KBUILD_VERBOSE=3}
482USERNAME=%(id -un)
483__VBOX_BUILD_PUBLISHER=_PLD
484VBOX_VERSION_STRING=$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)_PLD
485XSERVER_VERSION=%(rpm -q --queryformat '%{V}\n' xorg-xserver-server-devel | awk -F. '{ print $1 $2 }' 2>/dev/null || echo ERROR)
486VBOX_USE_SYSTEM_XORG_HEADERS=1
487%if %{with lightdm}
488VBOX_WITH_LIGHTDM_GREETER=1
489VBOX_WITH_LIGHTDM_GREETER_PACKING=1
490%endif
491TOOL_GCC3_CFLAGS=%{rpmcflags}
492TOOL_GCC3_CXXFLAGS=%{rpmcxxflags}
493VBOX_GCC_OPT=%{rpmcxxflags}
494VBOX_WITH_TESTCASES=
495EOF
496
497%build
498%if %{with userspace}
499./configure \
500 --with-gcc="%{__cc}" \
501 --with-g++="%{__cxx}" \
502 %{!?with_doc:--disable-docs} \
503 --disable-java \
504 --disable-hardening \
505 --disable-kmods \
506 --enable-vnc \
507 %{__enable webservice} \
508 %{nil}
509
510XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
511kmk %{?_smp_mflags}
512
513%{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
514%endif
515
516%{?with_kernel:%{expand:%bkpkg}}
517
518%install
519rm -rf $RPM_BUILD_ROOT
520
521%if %{with userspace}
522install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
523 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
524 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
525 $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \
526 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir}}
527
528# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
529if cp -al VBox.png $RPM_BUILD_ROOT/Vbox.png 2>/dev/null; then
530 l=l
531 %{__rm} -f $RPM_BUILD_ROOT/VBox.png
532fi
533
534cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
535
536%if %{with doc}
537ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual.pdf
538ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{_libdir}/%{pname}/UserManual_fr_FR.pdf
539%endif
540
541install -d $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions
542cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
543install -p %{SOURCE5} $RPM_BUILD_ROOT/sbin/mount.vdi
544install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
545for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
546 ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
547done
548
549install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
550install -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service
551
552%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/VBox.png,%{_pixmapsdir}/virtualbox.png}
553%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_desktopdir}}/virtualbox.desktop
554
555%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_system.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
556%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
557
558# XXX: where else to install them that vboxvideo_dri.so finds them? patch with rpath?
559%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLarrayspu.so
560%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLcrutil.so
561%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLerrorspu.so
562%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLfeedbackspu.so
563%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.so
564%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpassthroughspu.so
565
566cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
567%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
568
569install -d $RPM_BUILD_ROOT/%{_lib}/security
570%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,/%{_lib}/security}/pam_vbox.so
571
572# cleanup unpackaged
573%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{src,sdk,testcase}
574%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src
575%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
576%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst*
577%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
578
579# Guest Only Tools
580install -d $RPM_BUILD_ROOT/etc/{X11/xinit/xinitrc.d,xdg/autostart}
581%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
582%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
583%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
584install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
585 $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
586cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
587 $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
588
589%if %{with lightdm}
590install -d $RPM_BUILD_ROOT%{_datadir}/xgreeters
591%{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_sbindir}}/vbox-greeter
592cp -p %{objdir}/Additions/Installer/linux/share/VBoxGuestAdditions/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
593%endif
594
595# unknown - checkme
596%if 1
597%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
598%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
599%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
600%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.sh
601%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
602%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
603%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
604%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
605%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
606%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/CPUMInternal.d
607%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/cpumctx.d
608%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-arch-types.d
609%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-types.d
610%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vm.d
611%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/x86.d
612%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/%{vbox_arch}/vbox-vm-struct-test.d
613%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/helpers/generate_service_file
614%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/VBoxHeadlessXOrg.sh
615%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/generated.sh
616%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/init_template.sh
617%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install_service
618%endif
619
620# packaged by kernel part
621%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf
622%endif
623
624%if %{with kernel}
625install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin}
626
627cp -a PLD-MODULE-BUILD/installed/* $RPM_BUILD_ROOT
628
629install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
630
631# Tell systemd to load modules
632cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf
633cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-guest.conf
634%endif
635
636%clean
637rm -rf $RPM_BUILD_ROOT
638
639%pre
640%groupadd -g 221 -r -f vbox
641
642%post
643%update_desktop_database
644for i in /sys/bus/usb/devices/*; do
645 if [ -r "$i/dev" ]; then
646 dev="`cat "$i/dev" 2>/dev/null || true`"
647 major="`expr "$dev" : '\(.*\):' 2> /dev/null || true`"
648 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null || true`"
649 class="`cat $i/bDeviceClass 2> /dev/null || true`"
650 /lib/udev/VBoxCreateUSBNode.sh "$major" "$minor" "$class" vbox 2>/dev/null
651 fi
652done
653
654cat << 'EOF'
655You must install vboxdrv kernel modules for this software to work:
656 kernel*-virtualbox-host-%{version}-%{rel}@*
657
658On Guest Linux system you might want to install:
659 kernel*-virtualbox-guest-%{version}-%{rel}@*
660
661EOF
662
663%postun
664if [ "$1" = "0" ]; then
665 %groupremove vbox
666fi
667
668%post guest
669/sbin/chkconfig --add vboxservice
670%service vboxservice restart
671%systemd_post vboxservice.service
672
673%preun guest
674if [ "$1" = "0" ]; then
675 /sbin/chkconfig --del vboxservice
676 %service vboxservice -q stop
677fi
678%systemd_preun vboxservice.service
679
680%postun guest
681%systemd_reload
682
683%triggerpostun guest -- VirtualBox-guest < 4.3.0-1
684%systemd_trigger vboxservice.service
685
686%pre -n lightdm-greeter-vbox
687%addusertogroup xdm vbox
688
689%if %{with userspace}
690%files
691%defattr(644,root,root,755)
692%dir %{_libdir}/%{pname}
693%dir %{_libdir}/%{pname}/ExtensionPacks
694%dir %{_libdir}/%{pname}/ExtensionPacks/VNC
695%dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*
696%dir %{_libdir}/%{pname}/additions
697%dir %{_libdir}/%{pname}/components
698%dir %{_libdir}/%{pname}/nls
699%attr(755,root,root) %{_bindir}/VBoxBFE
700%attr(755,root,root) %{_bindir}/VBoxHeadless
701%attr(755,root,root) %{_bindir}/VBoxManage
702%attr(755,root,root) %{_bindir}/VBoxSDL
703%attr(755,root,root) %{_bindir}/VBoxSVC
704%attr(755,root,root) %{_bindir}/VBoxTunctl
705%attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
706%attr(755,root,root) %{_bindir}/VirtualBox
707%attr(755,root,root) /sbin/mount.vdi
708%attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so
709%attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
710%attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
711%attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart
712%attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl
713%attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so
714%attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so
715%attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so
716%attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so
717%attr(755,root,root) %{_libdir}/%{pname}/VBoxDragAndDropSvc.so
718%attr(755,root,root) %{_libdir}/%{pname}/VBoxExtPackHelperApp
719%attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestControlSvc.so
720%attr(755,root,root) %{_libdir}/%{pname}/VBoxGuestPropSvc.so
721%attr(755,root,root) %{_libdir}/%{pname}/VBoxHeadless
722%attr(755,root,root) %{_libdir}/%{pname}/VBoxHostChannel.so
723%attr(755,root,root) %{_libdir}/%{pname}/VBoxKeyboard.so
724%attr(755,root,root) %{_libdir}/%{pname}/VBoxManage
725%attr(755,root,root) %{_libdir}/%{pname}/VBoxNetNAT
726%attr(755,root,root) %{_libdir}/%{pname}/VBoxVolInfo
727%attr(755,root,root) %{_libdir}/%{pname}/iPxeBaseBin
728%if %{with doc}
729%attr(755,root,root) %{_libdir}/%{pname}/VBoxManageHelp
730%endif
731%attr(755,root,root) %{_libdir}/%{pname}/VBoxNetAdpCtl
732%attr(755,root,root) %{_libdir}/%{pname}/VBoxNetDHCP
733%attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhostcrutil.so
734%attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLhosterrorspu.so
735%attr(755,root,root) %{_libdir}/%{pname}/VBoxOGLrenderspu.so
736%attr(755,root,root) %{_libdir}/%{pname}/VBoxPython*.so
737%attr(755,root,root) %{_libdir}/%{pname}/VBoxREM.so
738%ifarch %{ix86}
739%attr(755,root,root) %{_libdir}/%{pname}/VBoxREM32.so
740%attr(755,root,root) %{_libdir}/%{pname}/VBoxREM64.so
741%endif
742%attr(755,root,root) %{_libdir}/%{pname}/VBoxRT.so
743%attr(755,root,root) %{_libdir}/%{pname}/VBoxSDL
744%attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedClipboard.so
745%attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedCrOpenGL.so
746%attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so
747%attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC
748%attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh
749%attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL
750%attr(755,root,root) %{_libdir}/%{pname}/VBoxTunctl
751%attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so
752%attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload
753%attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so
754%attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD
755%attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so
756%attr(755,root,root) %{_libdir}/%{pname}/VirtualBox
757%attr(755,root,root) %{_libdir}/%{pname}/VirtualBox-wrapper.sh
758%attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so
759%{_libdir}/%{pname}/VBoxDD2GC.debug
760%{_libdir}/%{pname}/VBoxDD2GC.gc
761%{_libdir}/%{pname}/VBoxDD2R0.debug
762%{_libdir}/%{pname}/VBoxDD2R0.r0
763%{_libdir}/%{pname}/VBoxDDGC.debug
764%{_libdir}/%{pname}/VBoxDDGC.gc
765%{_libdir}/%{pname}/VBoxDDR0.debug
766%{_libdir}/%{pname}/VBoxDDR0.r0
767%{_libdir}/%{pname}/VBoxEFI32.fd
768%{_libdir}/%{pname}/VBoxEFI64.fd
769%{_libdir}/%{pname}/VMMGC.debug
770%{_libdir}/%{pname}/VMMGC.gc
771%{_libdir}/%{pname}/VMMR0.debug
772%{_libdir}/%{pname}/VMMR0.r0
773%{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt
774%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
775%{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt
776%attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so
777%attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so
778%attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so
779%lang(bg) %{_libdir}/%{pname}/nls/*_bg.qm
780%lang(ca) %{_libdir}/%{pname}/nls/*_ca.qm
781%lang(ca_VA) %{_libdir}/%{pname}/nls/*_ca_VA.qm
782%lang(cs) %{_libdir}/%{pname}/nls/*_cs.qm
783%lang(da) %{_libdir}/%{pname}/nls/*_da.qm
784%lang(de) %{_libdir}/%{pname}/nls/*_de.qm
785%lang(en) %{_libdir}/%{pname}/nls/*_en.qm
786%lang(es) %{_libdir}/%{pname}/nls/*_es.qm
787%lang(eu) %{_libdir}/%{pname}/nls/*_eu.qm
788%lang(fi) %{_libdir}/%{pname}/nls/*_fa_IR.qm
789%lang(fi) %{_libdir}/%{pname}/nls/*_fi.qm
790%lang(fr) %{_libdir}/%{pname}/nls/*_fr.qm
791%lang(gl_ES) %{_libdir}/%{pname}/nls/*_gl_ES.qm
792%lang(hu) %{_libdir}/%{pname}/nls/*_hu.qm
793%lang(id) %{_libdir}/%{pname}/nls/*_id.qm
794%lang(it) %{_libdir}/%{pname}/nls/*_it.qm
795%lang(ja) %{_libdir}/%{pname}/nls/*_ja.qm
796%lang(km_KH) %{_libdir}/%{pname}/nls/*_km_KH.qm
797%lang(ko) %{_libdir}/%{pname}/nls/*_ko.qm
798%lang(lt) %{_libdir}/%{pname}/nls/*_lt.qm
799%lang(nl) %{_libdir}/%{pname}/nls/*_nl.qm
800%lang(pl) %{_libdir}/%{pname}/nls/*_pl.qm
801%lang(pt) %{_libdir}/%{pname}/nls/*_pt.qm
802%lang(pt_BR) %{_libdir}/%{pname}/nls/*_pt_BR.qm
803%lang(ro) %{_libdir}/%{pname}/nls/*_ro.qm
804%lang(ru) %{_libdir}/%{pname}/nls/*_ru.qm
805%lang(sk) %{_libdir}/%{pname}/nls/*_sk.qm
806%lang(sr) %{_libdir}/%{pname}/nls/*_sr.qm
807%lang(sv) %{_libdir}/%{pname}/nls/*_sv.qm
808%lang(tr) %{_libdir}/%{pname}/nls/*_tr.qm
809%lang(uk) %{_libdir}/%{pname}/nls/*_uk.qm
810%lang(zh_CN) %{_libdir}/%{pname}/nls/*_zh_CN.qm
811%lang(zh_TW) %{_libdir}/%{pname}/nls/*_zh_TW.qm
812%{_pixmapsdir}/virtualbox.png
813%{_desktopdir}/*.desktop
814%{_libdir}/%{pname}/icons
815%{_libdir}/%{pname}/virtualbox.xml
816
817%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
818%attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
819
820%files additions
821%defattr(644,root,root,755)
822%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
823
824%files guest
825%defattr(644,root,root,755)
826%attr(755,root,root) /sbin/mount.vboxsf
827%attr(754,root,root) /etc/rc.d/init.d/vboxservice
828%{systemdunitdir}/vboxservice.service
829%attr(755,root,root) %{_bindir}/VBoxControl
830%attr(755,root,root) %{_bindir}/VBoxService
831
832%files guest-x11
833%defattr(644,root,root,755)
834# NOTE: unfinished, should contain .desktop files for starting up mouse
835# integration and other desktop services
836# NOTE: the filelist is incomplete too
837%attr(755,root,root) %{_bindir}/VBoxClient
838/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
839/etc/xdg/autostart/vboxclient.desktop
840
841%attr(755,root,root) %{_libdir}/%{pname}/additions/autorun.sh
842%attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd
843%attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-service
844%attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-x11
845
846%if %{with webservice}
847%files webservice
848%defattr(644,root,root,755)
849%attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
850%attr(755,root,root) %{_libdir}/%{pname}/webtest
851%endif
852
853%if %{with lightdm}
854%files -n lightdm-greeter-vbox
855%defattr(644,root,root,755)
856%attr(755,root,root) %{_sbindir}/vbox-greeter
857%{_datadir}/xgreeters/vbox-greeter.desktop
858%endif
859
860%files -n pam-pam_vbox
861%defattr(644,root,root,755)
862%attr(755,root,root) /%{_lib}/security/pam_vbox.so
863
864%if %{with doc}
865%files doc
866%defattr(644,root,root,755)
867# this is a symlink...
868%doc %{_libdir}/%{pname}/UserManual.pdf
869%lang(fr) %doc %{_libdir}/%{pname}/UserManual_fr_FR.pdf
870# ..to this file
871%doc %{outdir}/UserManual.pdf
872%lang(fr) %doc %{outdir}/UserManual_fr_FR.pdf
873%endif
874
875%files -n xorg-driver-video-vboxvideo
876%defattr(644,root,root,755)
877%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
878%attr(755,root,root) %{_libdir}/xorg/modules/dri/vboxvideo_dri.so
879# vboxvideo_dri.so deps
880%attr(755,root,root) %{_libdir}/VBoxOGLarrayspu.so
881%attr(755,root,root) %{_libdir}/VBoxOGLcrutil.so
882%attr(755,root,root) %{_libdir}/VBoxOGLerrorspu.so
883%attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so
884%attr(755,root,root) %{_libdir}/VBoxOGLpackspu.so
885%attr(755,root,root) %{_libdir}/VBoxOGLpassthroughspu.so
886%endif
This page took 0.054384 seconds and 4 git commands to generate.