]> git.pld-linux.org Git - packages/VirtualBox.git/blobdiff - VirtualBox.spec
- release 16 (by relup.sh)
[packages/VirtualBox.git] / VirtualBox.spec
index 07818a70c9ad73469ca806219dcf78fc65994caf..edb32d00fa78c3a08507fc8f7cef681c48185ee0 100644 (file)
@@ -1,20 +1,20 @@
 # TODO
 # - java bindings
 # - Package SDK.
-# - Package utils (and write initscripts ?) for Guest OS.
 # - Check License of VBoxGuestAdditions_*.iso, it's probably not GPL v2.
 #   If so check if it is distributable.
-# - resolve mess with subpackages?
-#   - addtions: iso (containing additions/*.iso)
-#   - guest: to be installed to guests (deps on x11 drivers)
+# - guest x11 additions: currently incomplete/untested
 # - enable VDE networking: --enable-vde
+# - initscripts for webservice
+# - install systemd vboxservice.service
 #
 # Conditional build:
 %bcond_without doc             # don't build the documentation
 %bcond_without dist_kernel     # without distribution kernel
 %bcond_without kernel          # don't build kernel module
 %bcond_without userspace       # don't build userspace package
-%bcond_with    webservice      # webservice (soap) support
+%bcond_with    webservice      # webservice (SOAP) support
+%bcond_without lightdm # lightdm greeter
 %bcond_without verbose
 %bcond_with    force_userspace # force userspace build (useful if alt_kernel is set)
 
 %define                _enable_debug_packages  0
 %endif
 
-%define                rel             6
+%define                rel             16
 %define                pname           VirtualBox
 Summary:       VirtualBox - x86 hardware virtualizer
 Summary(pl.UTF-8):     VirtualBox - wirtualizator sprzętu x86
 Name:          %{pname}%{_alt_kernel}
-Version:       4.2.10
+Version:       4.2.12
 Release:       %{rel}
 License:       GPL v2
 Group:         Applications/Emulators
 Source0:       http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
-# Source0-md5: 99349df34caacdecbb7cf3908631c3f3
+# Source0-md5: 654e45054ae6589452508d37403dc800
 Source1:       http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
-# Source1-md5: e49046cd56398f9f9b8410154f1a0393
+# Source1-md5: 403098e688f9e7f4273de680f6734983
+Source2:       vboxservice.init
 Source3:       %{pname}-vboxdrv.init
 Source4:       %{pname}-vboxguest.init
 Source5:       %{pname}-vboxnetflt.init
@@ -66,6 +67,9 @@ Patch2:               %{pname}-warning_workaround.patch
 Patch3:                %{pname}-dri.patch
 Patch4:                %{pname}-disable_build_NetBiosBin.patch
 Patch5:                xserver-1.12.patch
+Patch6:                gcc48.patch
+Patch7:                lightdm-greeter-glib-includes.patch
+Patch8:                lightdm-greeter-g++-link.patch
 # ubuntu patches
 Patch10:       16-no-update.patch
 Patch11:       18-system-xorg.patch
@@ -103,6 +107,7 @@ BuildRequires:      device-mapper-devel
 %{?with_doc:BuildRequires:     docbook-dtd44-xml}
 BuildRequires: gcc >= 5:3.2.3
 %{?with_webservice:BuildRequires:      gsoap-devel}
+BuildRequires: issue
 BuildRequires: kBuild >= 0.1.9998-2
 BuildRequires: libIDL-devel
 BuildRequires: libcap-static
@@ -115,6 +120,7 @@ BuildRequires:      libvncserver-devel >= 0.9.9
 BuildRequires: libxml2-devel >= 2.6.26
 BuildRequires: libxslt-devel >= 1.1.17
 BuildRequires: libxslt-progs >= 1.1.17
+%{?with_lightdm:BuildRequires: lightdm-devel}
 BuildRequires: makeself
 BuildRequires: mkisofs
 BuildRequires: pam-devel
@@ -125,7 +131,7 @@ BuildRequires:      python-devel
 BuildRequires: python-modules
 BuildRequires: qt4-build >= 4.2.0
 BuildRequires: qt4-linguist
-BuildRequires: rpmbuild(macros) >= 1.627
+BuildRequires: rpmbuild(macros) >= 1.664
 BuildRequires: sed >= 4.0
 %if %{with doc}
 BuildRequires: texlive-fonts-bitstream
@@ -150,6 +156,8 @@ Requires(pre):      /usr/bin/getgid
 Requires(pre): /usr/sbin/groupadd
 Requires:      QtCore >= 4.7.0
 Requires:      desktop-file-utils
+Requires:      fontconfig
+Requires:      fonts-Type1-urw
 Requires:      libvncserver >= 0.9.9
 Requires:      udev-core
 Suggests:      gxmessage
@@ -165,7 +173,7 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %endif
 %define                vbox_platform   linux.%{vbox_arch}
 %define                outdir          out/%{vbox_platform}/release/bin
-%define                _sbindir        /sbin
+%define                objdir          out/%{vbox_platform}/release/obj
 
 # workaround buggy 'file' results:
 #
@@ -251,19 +259,57 @@ 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
+Requires(post,preun):  /sbin/chkconfig
+Requires:      rc-scripts
+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 Additions
 Group:         Base
+Requires:      %{name}-guest = %{version}-%{release}
 Requires:      xorg-driver-video-vboxvideo = %{version}-%{release}
-Suggests:      kernel%{_alt_kernel}-misc-vboxsf = %{version}-%{rel}@%{_kernel_ver_str}
-Suggests:      kernel%{_alt_kernel}-misc-vboxvideo = %{version}-%{rel}@%{_kernel_ver_str}
+Suggests:      kernel(vboxvideo)
 Obsoletes:     xorg-driver-input-vboxmouse < %{version}-%{release}
 
-%description guest
-Tools that utilize kernel modules for supporting integration with the
-Host, including file sharing and tracking of mouse pointer movement
-and X.org X11 video and mouse driver.
+%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.
+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:      kernel%{_alt_kernel}-misc-vboxguest
+Requires:      lightdm >= 1.0.1
+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
@@ -465,7 +511,7 @@ You should install this package in your Guest OS.
 Moduł jądra Linuksa dla VirtualBoksa - dostęp do plików systemu
 głównego z poziomu systemu gościa.
 
-%package -n kernel%{_alt_kernel}-misc-vboxvideo
+%package -n kernel%{_alt_kernel}-video-vboxvideo
 Summary:       DRM support for VirtualBox
 Summary(pl.UTF-8):     Moduł jądra Linuksa dla VirtualBoksa
 Release:       %{rel}@%{_kernel_ver_str}
@@ -479,12 +525,12 @@ Requires(postun): %releq_kernel
 %endif
 Provides:      kernel(vboxvideo) = %{version}-%{rel}
 
-%description -n kernel%{_alt_kernel}-misc-vboxvideo
+%description -n kernel%{_alt_kernel}-video-vboxvideo
 DRM support for VirtualBox.
 
 You should install this package in your Guest OS.
 
-%description -n kernel%{_alt_kernel}-misc-vboxvideo -l pl.UTF-8
+%description -n kernel%{_alt_kernel}-video-vboxvideo -l pl.UTF-8
 Moduł jądra Linuksa dla VirtualBoksa - sterownik obsługi DRM.
 
 %prep
@@ -495,6 +541,9 @@ Moduł jądra Linuksa dla VirtualBoksa - sterownik obsługi DRM.
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
        -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
@@ -519,9 +568,25 @@ cd -
 # using system kBuild package
 %{__rm} -r kBuild
 
+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
+%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}
+VBOX_WITH_TESTCASES=
+EOF
+
 %build
 %if %{with userspace}
-echo "VBOX_WITH_TESTCASES := " > LocalConfig.kmk
 ./configure \
        --with-gcc="%{__cc}" \
        --with-g++="%{__cxx}" \
@@ -534,16 +599,7 @@ echo "VBOX_WITH_TESTCASES := " > LocalConfig.kmk
        %{nil}
 
 XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
-kmk %{?_smp_mflags} \
-       %{?with_verbose:KBUILD_VERBOSE=3} \
-       USER=%(id -un) \
-       VBOX_VERSION_STRING='$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)'_PLD \
-       XSERVER_VERSION="$XSERVER_VERSION" \
-       VBOX_USE_SYSTEM_XORG_HEADERS=1 \
-       TOOL_GCC3_CFLAGS="%{rpmcflags}" \
-       TOOL_GCC3_CXXFLAGS="%{rpmcxxflags}" \
-       VBOX_GCC_OPT="%{rpmcxxflags}" \
-       %{nil}
+kmk %{?_smp_mflags}
 %endif
 
 %if %{with kernel}
@@ -567,7 +623,7 @@ cd ../..
 rm -rf $RPM_BUILD_ROOT
 
 %if %{with userspace}
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
+install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
        $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
        $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \
        $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d}
@@ -587,7 +643,7 @@ ln -sf %{_docdir}/%{pname}-doc-%{version}/UserManual_fr_FR.pdf $RPM_BUILD_ROOT%{
 
 install -d $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions
 cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
-install -p %{SOURCE10} $RPM_BUILD_ROOT%{_sbindir}/mount.vdi
+install -p %{SOURCE10} $RPM_BUILD_ROOT/sbin/mount.vdi
 install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
 for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
        ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
@@ -630,6 +686,12 @@ install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
 cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
        $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
 
+%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/share/VBoxGuestAdditions/vbox-greeter.desktop $RPM_BUILD_ROOT%{_datadir}/xgreeters
+%endif
+
 # unknown - checkme
 %if 1
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall
@@ -660,7 +722,8 @@ cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
 %endif
 
 %if %{with kernel}
-install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,modules-load.d},%{_sbindir},%{systemdunitdir}}
+install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,modules-load.d},/sbin,%{systemdunitdir}}
+install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxservice
 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxdrv
 install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxguest
 install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxnetflt
@@ -675,7 +738,7 @@ install -p %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxpci
 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc
 %install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc
 
-install -p mount.vboxsf $RPM_BUILD_ROOT%{_sbindir}/mount.vboxsf
+install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf
 
 # Tell systemd to load modules
 cp -p %{SOURCE12} $RPM_BUILD_ROOT/etc/modules-load.d/vboxdrv.conf
@@ -724,7 +787,7 @@ Additionally you might want to install:
 On Guest Linux system you might want to install:
     kernel-misc-vboxguest-%{version}-%{rel}@%{_kernel_ver_str}
     kernel-misc-vboxsf-%{version}-%{rel}@%{_kernel_ver_str}
-    kernel-misc-vboxvideo-%{version}-%{rel}@%{_kernel_ver_str}
+    kernel-video-vboxvideo-%{version}-%{rel}@%{_kernel_ver_str}
 
 EOF
 
@@ -733,6 +796,19 @@ if [ "$1" = "0" ]; then
        %groupremove vbox
 fi
 
+%post guest
+/sbin/chkconfig --add vboxservice
+%service vboxservice restart
+
+%preun guest
+if [ "$1" = "0" ]; then
+       /sbin/chkconfig --del vboxservice
+       %service vboxservice -q stop
+fi
+
+%pre -n lightdm-greeter-vbox
+%addusertogroup xdm vbox
+
 %post  -n kernel%{_alt_kernel}-misc-vboxdrv
 %depmod %{_kernel_ver}
 %vbox_kernel_post -d vboxdrv VirtualBox Support Driver
@@ -805,10 +881,10 @@ fi
 %postun        -n kernel%{_alt_kernel}-misc-vboxsf
 %depmod %{_kernel_ver}
 
-%post  -n kernel%{_alt_kernel}-misc-vboxvideo
+%post  -n kernel%{_alt_kernel}-video-vboxvideo
 %depmod %{_kernel_ver}
 
-%postun        -n kernel%{_alt_kernel}-misc-vboxvideo
+%postun        -n kernel%{_alt_kernel}-video-vboxvideo
 %depmod %{_kernel_ver}
 
 %post kernel-init-host
@@ -861,7 +937,7 @@ fi
 %attr(755,root,root) %{_bindir}/VBoxTunctl
 %attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
 %attr(755,root,root) %{_bindir}/VirtualBox
-%attr(755,root,root) %{_sbindir}/mount.vdi
+%attr(755,root,root) /sbin/mount.vdi
 %attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so
 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so
 %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so
@@ -973,12 +1049,17 @@ fi
 
 %files guest
 %defattr(644,root,root,755)
+%attr(755,root,root) /sbin/mount.vboxsf
+%attr(754,root,root) /etc/rc.d/init.d/vboxservice
+%attr(755,root,root) %{_bindir}/VBoxControl
+%attr(755,root,root) %{_bindir}/VBoxService
+
+%files guest-x11
+%defattr(644,root,root,755)
 # NOTE: unfinished, should contain .desktop files for starting up mouse
 # integration and other desktop services
 # NOTE: the filelist is incomplete too
 %attr(755,root,root) %{_bindir}/VBoxClient
-%attr(755,root,root) %{_bindir}/VBoxControl
-%attr(755,root,root) %{_bindir}/VBoxService
 /etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
 /etc/xdg/autostart/vboxclient.desktop
 
@@ -987,6 +1068,20 @@ fi
 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-service
 %attr(755,root,root) %{_libdir}/%{pname}/additions/vboxadd-x11
 
+%if %{with webservice}
+%files webservice
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{pname}/vboxwebsrv
+%attr(755,root,root) %{_libdir}/%{pname}/webtest
+%endif
+
+%if %{with lightdm}
+%files -n lightdm-greeter-vbox
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/vbox-greeter
+%{_datadir}/xgreeters/vbox-greeter.desktop
+%endif
+
 %files -n pam-pam_vbox
 %defattr(644,root,root,755)
 %attr(755,root,root) /%{_lib}/security/pam_vbox.so
@@ -1062,10 +1157,9 @@ fi
 %files -n kernel%{_alt_kernel}-misc-vboxsf
 %defattr(644,root,root,755)
 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/vboxsf.conf
-%attr(755,root,root) %{_sbindir}/mount.vboxsf
 /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*
 
-%files -n kernel%{_alt_kernel}-misc-vboxvideo
+%files -n kernel%{_alt_kernel}-video-vboxvideo
 %defattr(644,root,root,755)
 /lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*
 %endif
This page took 0.048612 seconds and 4 git commands to generate.