diff --git a/virtualbox-LocalConfig.kmk b/virtualbox-LocalConfig.kmk index e34ab95..6a6dd84 100644 --- a/virtualbox-LocalConfig.kmk +++ b/virtualbox-LocalConfig.kmk @@ -3,6 +3,9 @@ VBOX_WITH_TESTSUITE = VBOX_WITH_ORIGIN := VBOX_WITH_REGISTRATION_REQUEST = VBOX_WITH_UPDATE_REQUEST = +VBOX_WITH_INSTALLER = 1 +VBOX_WITH_LINUX_ADDITIONS = 1 +VBOX_WITH_X11_ADDITIONS = 1 VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) diff --git a/virtualbox-system-x.patch b/virtualbox-system-x.patch new file mode 100644 index 0000000..c93b529 --- /dev/null +++ b/virtualbox-system-x.patch @@ -0,0 +1,59 @@ +Description: Build the X.Org driver only for the selected system X Server version. +Author: Michael Meskes , Felix Geyer + +Index: virtualbox/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk +=================================================================== +--- virtualbox.orig/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk 2013-11-19 04:35:17.181627034 -0500 ++++ virtualbox/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk 2013-11-19 04:36:33.913630598 -0500 +@@ -40,8 +40,6 @@ + VBoxGuestR3LibShared + ifndef VBOX_ONLY_TESTSUITE + if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd) +- LIBRARIES += \ +- VBoxGuestR3LibXFree86 + endif + if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) + LIBRARIES += \ +Index: virtualbox/src/VBox/Additions/common/crOpenGL/Makefile.kmk +=================================================================== +--- virtualbox.orig/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2013-11-19 04:35:17.181627034 -0500 ++++ virtualbox/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2013-11-19 04:35:17.181627034 -0500 +@@ -74,18 +74,12 @@ + VBoxOGL_INCS = . + if1of ($(KBUILD_TARGET), linux solaris freebsd) + VBoxOGL_INCS += \ +- $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \ +- $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \ +- $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \ +- $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \ +- $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \ +- $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \ +- $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \ +- $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \ +- $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ +- $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ ++ /usr/include/x11 \ ++ /usr/include/xorg \ ++ /usr/include/pixman-1 \ + $(VBOX_MESA_INCS) \ +- $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13 ++ /usr/include/drm \ ++ /usr/include/libdrm + VBoxOGL_DEFS += VBOX_NO_NATIVEGL + endif + +@@ -215,10 +209,10 @@ + $(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) + if1of ($(KBUILD_TARGET), linux solaris freebsd) + VBoxOGL_LIBS += \ +- $(PATH_STAGE_LIB)/libXcomposite.so \ +- $(PATH_STAGE_LIB)/libXdamage.so \ +- $(PATH_STAGE_LIB)/libXfixes.so \ +- $(PATH_STAGE_LIB)/libXext.so ++ Xcomposite \ ++ Xdamage \ ++ Xfixes \ ++ Xext + ifdef VBoxOGL_FAKEDRI + ifeq ($(KBUILD_TARGET), freebsd) + VBoxOGL_LIBS += \ diff --git a/virtualbox.changes b/virtualbox.changes index 1f0ef74..70c2dd6 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Sun May 10 10:47:58 UTC 2015 - bwiedemann@suse.com + +- Provide host-kmp src for use with custom kernels (bnc#925663) + +------------------------------------------------------------------- +Wed May 6 20:35:29 UTC 2015 - tchvatal@suse.com + +- Create groups properly and also create vboxsf and vboxguest on + guest additions bnc#927708 + +------------------------------------------------------------------- +Wed May 6 16:52:56 UTC 2015 - tchvatal@suse.com + +- Build with system libs for X instead of localy built ones. + This should fix bnc#929697 +- Adds patch: + * virtualbox-system-x.patch + +------------------------------------------------------------------- +Wed May 6 15:51:43 UTC 2015 - tchvatal@suse.com + +- Split kmk call to multiple lines + +------------------------------------------------------------------- +Wed May 6 15:40:52 UTC 2015 - tchvatal@suse.com + +- Reorder alignment of buildroot for various install commands so it + does not look so fuzzy + ------------------------------------------------------------------- Mon Apr 20 11:10:16 UTC 2015 - tchvatal@suse.com diff --git a/virtualbox.spec b/virtualbox.spec index 45ae4b8..c944a93 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -55,6 +55,8 @@ Patch3: vbox-vboxweb-init-script.diff #file :http://www.virtualbox.org/browser/trunk/src/VBox/Devices/PC/vbox.ds #see thread : http://lists.freebsd.org/pipermail/freebsd-acpi/2010-October/006795.html Patch6: vbox-smc-napa.diff +#PATCH-FIX-OPENSUSE: Use system X libraries and do not build local things +Patch4: virtualbox-system-x.patch #fix build of Python and dev package on openSUSE 11.3 Patch8: vbox-python-detection.diff #deprecated old-style C++ service proxies and objects,we have to use soapcpp2 -z1 flag @@ -85,7 +87,6 @@ BuildRequires: fdupes BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glibc-devel-static -#gsoap,libopenssl and java needed for building webservice BuildRequires: gsoap-devel BuildRequires: java-devel >= 1.6.0 BuildRequires: kbuild >= 0.1.9998svn2689 @@ -108,11 +109,25 @@ BuildRequires: udev BuildRequires: update-desktop-files BuildRequires: which BuildRequires: xorg-x11 -BuildRequires: xorg-x11-devel BuildRequires: xorg-x11-server BuildRequires: xorg-x11-server-sdk BuildRequires: yasm BuildRequires: zlib-devel-static +BuildRequires: pkgconfig(fontsproto) +BuildRequires: pkgconfig(randrproto) +BuildRequires: pkgconfig(renderproto) +BuildRequires: pkgconfig(resourceproto) +BuildRequires: pkgconfig(scrnsaverproto) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xau) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xdmcp) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xextproto) +BuildRequires: pkgconfig(xf86driproto) +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xineramaproto) +BuildRequires: pkgconfig(xproto) Requires: %{name}-host-kmp = %{version} Requires(post): sysvinit(syslog) Requires(pre): permissions @@ -238,6 +253,20 @@ Obsoletes: %{name}-ose-devel < %{version} Development file for %{name} ########################################### +%package host-source +Summary: Source files for %{name} kernel modules +Group: Development/Sources +Requires: %{name} = %{version} +BuildArch: noarch +Requires: gcc +Requires: make + +%description host-source +Source files for %{name} kernel modules +These can be built for custom kernels using +cd /usr/src/kernel-modules/virtualbox ; make ; make install +########################################### + %package guest-desktop-icons Summary: Icons for guest desktop files Group: System/Emulators/PC @@ -254,6 +283,7 @@ This package contains icons for guest desktop files that were created on the des %patch1 %patch2 %patch3 -p1 +%patch4 -p1 %patch6 -p1 %patch8 -p1 %patch9 -p1 @@ -295,13 +325,15 @@ rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*} # --nofatal try to avoid build fail caused by missing makeself package # NOT an autoconf configure macro ./configure \ - --enable-vnc \ - --enable-vde \ - --disable-kmods \ - --disable-java \ - --disable-docs \ - --nofatal \ - --enable-webservice + --ose \ + --enable-vnc \ + --enable-vde \ + --disable-kmods \ + --with-linux="/usr" \ + --disable-java \ + --disable-docs \ + --nofatal \ + --enable-webservice # configure actually warns we should source env.sh (which seems like it could influence the build...) source ./env.sh @@ -310,7 +342,16 @@ source ./env.sh # VBOX_PATH_PACKAGE_DOCS set propper path for link to pdf in .desktop file # VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= just disable some functionality in gui echo "build basic parts" -%{_bindir}/kmk %{?_smp_mflags} VBOX_JAVA_HOME=%{_sysconfdir}/alternatives/java_sdk_openjdk/ VBOX_GCC_WERR= KBUILD_VERBOSE=2 VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= TOOL_YASM_AS=yasm VBOX_PATH_PACKAGE_DOCS=%{_docdir}/virtualbox all +%{_bindir}/kmk %{?_smp_mflags} \ + VBOX_GCC_WERR= \ + KBUILD_VERBOSE=2 \ + VBOX_USE_SYSTEM_XORG_HEADERS=1 \ + VBOX_WITH_REGISTRATION_REQUEST= VBOX_WITH_UPDATE_REQUEST= \ + TOOL_YASM_AS=yasm \ + VBOX_BUILD_PUBLISHER=_SUSE \ + TOOL_GCC3_CFLAGS="%{optflags}" TOOL_GCC3_CXXFLAGS="%{optflags}" \ + VBOX_GCC_OPT="%{optflags}" + # # build kernel modules for guest and host (check novel-kmp package as example) # host modules : vboxdrv,vboxnetflt,vboxnetadp @@ -361,7 +402,6 @@ install -d -m 755 %{buildroot}%{_datadir}/virtualbox/nls install -d -m 755 %{buildroot}%{_datadir}/pixmaps install -d -m 755 %{buildroot}%{_datadir}/applications install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom -#%__install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/glue install -d -m 755 %{buildroot}%{_vbox_instdir}/components install -d -m 755 %{buildroot}%{_libdir}/dri install -d -m 755 %{buildroot}%{_libdir}/xorg/modules/drivers @@ -390,16 +430,11 @@ done ########################################### echo "entering guest-tools install section" ########################################### -install -m 755 out/linux.*/release/bin/additions/VBoxControl \ - %{buildroot}%{_bindir}/VBoxControl -install -m 755 out/linux.*/release/bin/additions/VBoxService \ - %{buildroot}%{_bindir}/VBoxService -install -m 755 out/linux.*/release/bin/additions/mount.vboxsf \ - %{buildroot}/sbin/mount.vboxsf -install -m 744 src/VBox/Additions/linux/installer/vboxadd.sh \ - %{buildroot}%{_sysconfdir}/init.d/vboxadd -ln -s %{_sysconfdir}/init.d/vboxadd \ - %{buildroot}%{_sbindir}/rcvboxadd +install -m 755 out/linux.*/release/bin/additions/VBoxControl %{buildroot}%{_bindir}/VBoxControl +install -m 755 out/linux.*/release/bin/additions/VBoxService %{buildroot}%{_bindir}/VBoxService +install -m 755 out/linux.*/release/bin/additions/mount.vboxsf %{buildroot}/sbin/mount.vboxsf +install -m 744 src/VBox/Additions/linux/installer/vboxadd.sh %{buildroot}%{_sysconfdir}/init.d/vboxadd +ln -s %{_sysconfdir}/init.d/vboxadd %{buildroot}%{_sbindir}/rcvboxadd # udev rule for guest (virtualbox-guest-tools) install -m 644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/60-vboxguest.rules # @@ -409,23 +444,8 @@ echo "entering guest-x11 install section" pushd out/linux.*/release/bin/additions/ #VBoxClient daemon (support for clipboard,autoresize,seamless windows) install -m 755 VBoxClient %{buildroot}%{_bindir} -# xorg drivers for mouse and videos check suse version to add propper driver -# check the patch https://www.virtualbox.org/changeset/38784, regarding the -# dropped xorg mouse driver in >= 1130 - -%if 0%{?suse_version} > 1320 - install -m 755 vboxvideo_drv_117.so \ - %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so -%else -%if 0%{?suse_version} >= 1315 - install -m 755 vboxvideo_drv_116.so \ - %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so -%endif -%if 0%{?suse_version} == 1310 - install -m 755 vboxvideo_drv_114.so \ - %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so -%endif -%endif +# xorg drivers for video +install -m 755 vboxvideo_drv_system.so %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so popd # VBoxOGL* libs for guest-x11 subpackage install -m 644 out/linux.*/release/bin/additions/VBoxOGL*.so \ @@ -433,8 +453,7 @@ install -m 644 out/linux.*/release/bin/additions/VBoxOGL*.so \ # make link for dri lib ln -s %{_libdir}/VBoxOGL.so %{buildroot}%{_libdir}/dri/vboxvideo_dri.so # install init script which start VBoxClient daemon (support for clipboard,autoresize,seamless windows) -install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient \ - %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh +install -m 755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/vboxadd-xclient.sh ############################################## echo "entering virtualbox(-qt) install section" @@ -443,41 +462,40 @@ echo "entering virtualbox(-qt) install section" pushd out/linux.*/release/bin install -m 755 VBoxManage %{buildroot}%{_vbox_instdir} install -m 755 VBoxHeadless %{buildroot}%{_vbox_instdir} -install -m 755 VBoxSDL %{buildroot}%{_vbox_instdir} +install -m 755 VBoxSDL %{buildroot}%{_vbox_instdir} install -m 755 VBoxTunctl %{buildroot}%{_vbox_instdir} # create links to vbox tools in PATH - they could be usefull for controlling vbox from command line ln -s %{_vbox_instdir}/VBoxManage %{buildroot}%{_bindir}/VBoxManage -ln -s %{_vbox_instdir}/VBoxHeadless \ - %{buildroot}%{_bindir}/VBoxHeadless -ln -s %{_vbox_instdir}/VBoxSDL %{buildroot}%{_bindir}/VBoxSDL +ln -s %{_vbox_instdir}/VBoxHeadless %{buildroot}%{_bindir}/VBoxHeadless +ln -s %{_vbox_instdir}/VBoxSDL %{buildroot}%{_bindir}/VBoxSDL ln -s %{_vbox_instdir}/VBoxTunctl %{buildroot}%{_bindir}/VBoxTunctl -install -m 755 VBoxSVC %{buildroot}%{_vbox_instdir} -install -m 755 VBoxXPCOMIPCD %{buildroot}%{_vbox_instdir} +install -m 755 VBoxSVC %{buildroot}%{_vbox_instdir} +install -m 755 VBoxXPCOMIPCD %{buildroot}%{_vbox_instdir} install -m 755 VBoxExtPackHelperApp %{buildroot}%{_vbox_instdir} install -m 755 VBoxTestOGL %{buildroot}%{_vbox_instdir} -install -m 755 VBoxPermissionMessage \ - %{buildroot}%{_vbox_instdir} +install -m 755 VBoxPermissionMessage %{buildroot}%{_vbox_instdir} install -m 755 VBoxNetDHCP %{buildroot}%{_vbox_instdir} install -m 755 VBoxNetAdpCtl %{buildroot}%{_vbox_instdir} install -m 755 VirtualBox %{buildroot}%{_vbox_instdir} install -m 755 VBoxEFI*.fd %{buildroot}%{_vbox_instdir} -install -m 755 VBoxSysInfo.sh %{buildroot}%{_vbox_instdir} +install -m 755 VBoxSysInfo.sh %{buildroot}%{_vbox_instdir} install -m 644 *.so %{buildroot}%{_vbox_instdir} -install -m 644 V*.gc %{buildroot}%{_vbox_instdir} +install -m 644 V*.gc %{buildroot}%{_vbox_instdir} install -m 644 *.r0 %{buildroot}%{_vbox_instdir} install -m 644 components/* %{buildroot}%{_vbox_instdir}/components/ # install languages install -m 644 nls/* %{buildroot}%{_datadir}/virtualbox/nls/ +# install kmp src +mkdir -p %{buildroot}%{_usrsrc}/kernel-modules +cp -a src %{buildroot}%{_usrsrc}/kernel-modules/virtualbox popd # install desktop file -install -m 644 out/linux.*/release/bin/virtualbox.desktop \ - %{buildroot}%{_datadir}/applications/%{name}.desktop +install -m 644 out/linux.*/release/bin/virtualbox.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop %suse_update_desktop_file %{buildroot}%{_datadir}/applications/%{name}.desktop 'System Emulator' # create a menu entry -install -m 644 out/linux.*/release/bin/VBox.png \ - %{buildroot}%{_datadir}/pixmaps/virtualbox.png +install -m 644 out/linux.*/release/bin/VBox.png %{buildroot}%{_datadir}/pixmaps/virtualbox.png # install udev rule for host (virtualbox) install -m 644 %{SOURCE2} %{buildroot}%{_udevrulesdir}/60-vboxdrv.rules # install config with session shutdown defs @@ -489,25 +507,20 @@ install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox # TODO: some of this stuff breaks the fillup macros below? sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \ src/VBox/Installer/linux/vboxdrv.sh.in -install -m 744 src/VBox/Installer/linux/vboxdrv.sh.in \ - %{buildroot}%{_sysconfdir}/init.d/vboxdrv -ln -s %{_sysconfdir}/init.d/vboxdrv \ - %{buildroot}%{_sbindir}/rcvboxdrv +install -m 744 src/VBox/Installer/linux/vboxdrv.sh.in %{buildroot}%{_sysconfdir}/init.d/vboxdrv +ln -s %{_sysconfdir}/init.d/vboxdrv %{buildroot}%{_sbindir}/rcvboxdrv # Init script to start virtual boxes during boot -install -m 755 %{SOURCE12} %{buildroot}%{_sysconfdir}/init.d/vboxes -ln -s %{_sysconfdir}/init.d/vboxes \ - %{buildroot}%{_sbindir}/rcvboxes +install -m 755 %{SOURCE12} %{buildroot}%{_sysconfdir}/init.d/vboxes +ln -s %{_sysconfdir}/init.d/vboxes %{buildroot}%{_sbindir}/rcvboxes # sysconfig file intended for vboxes script -install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates -install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox +install -d -m 755 %{buildroot}%{_var}/adm/fillup-templates +install -m 640 %{SOURCE13} %{buildroot}%{_var}/adm/fillup-templates/sysconfig.vbox # config file for vboxdrv script and vboxweb -install -d -m 755 %{buildroot}%{_sysconfdir}/vbox -echo -e "#settings for vboxwebsrn\nVBOXWEB_USER=root" > \ - %{buildroot}%{_sysconfdir}/vbox/vbox.cfg +install -d -m 755 %{buildroot}%{_sysconfdir}/vbox +echo -e "#settings for vboxwebsrn\nVBOXWEB_USER=root" > %{buildroot}%{_sysconfdir}/vbox/vbox.cfg # install udev helper script for creating usb devices -install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh \ - %{buildroot}%{_udevrulesdir}/../VBoxCreateUSBNode.sh +install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh %{buildroot}%{_udevrulesdir}/../VBoxCreateUSBNode.sh ###################################################### echo "entrering python-virtualbox install section" ###################################################### @@ -536,16 +549,13 @@ cp out/linux.*/release/bin/sdk/bindings/VirtualBox.xidl %{buildroot}%{_vbox_inst echo "entering virtualbox-websrv install section" ###################################################### pushd out/linux.*/release/bin -install -m 755 vboxwebsrv %{buildroot}%{_vbox_instdir} -install -m 755 webtest %{buildroot}%{_vbox_instdir} +install -m 755 vboxwebsrv %{buildroot}%{_vbox_instdir} +install -m 755 webtest %{buildroot}%{_vbox_instdir} popd -sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" \ - src/VBox/Installer/linux/vboxweb-service.sh -install -m 744 src/VBox/Installer/linux/vboxweb-service.sh \ - %{buildroot}%{_sysconfdir}/init.d/vboxweb-service -ln -s %{_sysconfdir}/init.d/vboxweb-service \ - %{buildroot}%{_sbindir}/rcvboxweb-service +sed -i "s|%{NOLSB}%|yes|g;s|%{DEBIAN}%||g;s|%{PACKAGE}%|virtualbox|g" src/VBox/Installer/linux/vboxweb-service.sh +install -m 744 src/VBox/Installer/linux/vboxweb-service.sh %{buildroot}%{_sysconfdir}/init.d/vboxweb-service +ln -s %{_sysconfdir}/init.d/vboxweb-service %{buildroot}%{_sbindir}/rcvboxweb-service # ###################################################### echo "entering virtualbox-guest-desktop-icons install section" @@ -575,8 +585,12 @@ popd ###################################################### %pre -echo "creating group vboxusers..." -groupadd -r vboxusers 2>/dev/null || : +getent group vboxusers >/dev/null || groupadd -r vboxusers + +%pre guest-tools +# Add groups for seamless mode and shared folders: +getent group vboxguest >/dev/null || groupadd -r vboxguest +getent group vboxsf >/dev/null || groupadd -r vboxsf ####################################################### # scriptlets - post @@ -766,6 +780,11 @@ exit 0 %{_vbox_instdir}/sdk/bindings/xpcom/samples %{_vbox_instdir}/sdk/bindings/auth +%files host-source +%defattr(-,root, root) +%dir %{_usrsrc}/kernel-modules +%{_usrsrc}/kernel-modules/virtualbox + %files websrv %defattr(-,root, root) %{_vbox_instdir}/vboxwebsrv