Hello community,

here is the log from the commit of package virtualbox for openSUSE:Factory 
checked in at 2017-05-27 13:09:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virtualbox (Old)
 and      /work/SRC/openSUSE:Factory/.virtualbox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "virtualbox"

Sat May 27 13:09:24 2017 rev:134 rq:497123 version:5.1.22

Changes:
--------
--- /work/SRC/openSUSE:Factory/virtualbox/virtualbox.changes    2017-05-06 
18:24:44.296823724 +0200
+++ /work/SRC/openSUSE:Factory/.virtualbox.new/virtualbox.changes       
2017-05-27 13:09:52.451530641 +0200
@@ -1,0 +2,36 @@
+Sun May 21 13:28:15 UTC 2017 - [email protected]
+
+- add %dir /usr/share/licenses to new vnc package
+
+-------------------------------------------------------------------
+Wed May 17 20:33:08 UTC 2017 - [email protected]
+
+- Made changes to build with gcc 7.x. This adds new file 
"vbox_fix_for_gcc7.patch".
+  Changed the building of VBoxVNC to remove the hack used earlier.
+
+-------------------------------------------------------------------
+Wed May 10 17:39:57 UTC 2017 - [email protected]
+
+- Make a number of changes:
+  * Add VBoxVNC as a proper external pack rather than just make the so 
available (bnc #1037033). Thanks to Michal Nowak for most of this effort.
+    One hack was required to work around a bug in "VBoxManage extpack install" 
whereby the --accept-license option failed to work.
+  * Improve startup of VirtualBox through use of systemd service files:
+    a. Beginning with Oracle version 5.0.8, the command used to build the 
kernel modules outside of the RPM packaging
+       code changed; however, the openSUSE version did not implement the new 
method. That new code is now implemented.
+    b. In Tumbleweed, the SysV init scripts to systemd service files stopped 
working. Part of the new code also checks
+       to see if the kernel modules are loaded. If not, new script files are 
called to include the necessary packages
+       and build the necessary modules.
+    c. The hooks are in place to remove the sysv init files and do the 
complete conversion to systemd. This step will
+       be done at a later time.
+
+  * New files are "vboxconfig.sh", "vboxguestconfig.sh", "vboxdrv.service", 
and "vboxadd-service.service".
+  * New sub-packages virtualbox-guest-source and virtualbox-vnc are produced.
+  * Some typos in virtualbox.spec are fixed.
+
+-------------------------------------------------------------------
+Thu May  4 17:59:45 UTC 2017 - [email protected]
+
+- Add libelf-devel to build. Fixes bnc #1037511.
+  Modified the startup files to build the kernel modules if they are missing. 
Files "vboxconfig.sh" and "vboxguestconfig" added.
+
+-------------------------------------------------------------------

New:
----
  vbox_fix_for_gcc7.patch
  vboxconfig.sh
  vboxguestconfig.sh

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ virtualbox.spec ++++++
--- /var/tmp/diff_new_pack.XFJMN1/_old  2017-05-27 13:09:54.859190237 +0200
+++ /var/tmp/diff_new_pack.XFJMN1/_new  2017-05-27 13:09:54.863189671 +0200
@@ -49,6 +49,8 @@
 Source13:       %{name}-sysconfig.vbox
 Source14:       vboxdrv.service
 Source15:       vboxadd-service.service
+Source16:       vboxconfig.sh
+Source17:       vboxguestconfig.sh
 Source98:       %{name}-rpmlintrc
 Source99:       %{name}-patch-source.sh
 #rework init scripts to fit suse needs
@@ -94,6 +96,8 @@
 Patch113:       vbox_remove_smp_mflags.patch
 # Fix change in API for get_user_pages()
 Patch114:       vbox_fix_42.3_api.patch
+# Allow use of gcc7
+Patch115:       vbox_fix_for_gcc7.patch
 # Fix for missing include needed for server 1.19
 Patch116:       Fix_for_server_1.19.patch
 #
@@ -102,6 +106,7 @@
 BuildRequires:  acpica
 BuildRequires:  alsa-devel
 BuildRequires:  bin86
+BuildRequires:  infinipath-psm
 BuildRequires:  systemd-rpm-macros
 %if 0%{?suse_version} > 1325
 BuildRequires:  libboost_headers-devel
@@ -122,6 +127,7 @@
 BuildRequires:  kernel-syms
 BuildRequires:  libcap-devel
 BuildRequires:  libcurl-devel
+BuildRequires:  libelf-devel
 BuildRequires:  libidl-devel
 BuildRequires:  libopenssl-devel
 BuildRequires:  libqt5-linguist
@@ -293,7 +299,7 @@
 ###########################################
 
 %package host-source
-Summary:        Source files for %{name} kernel modules
+Summary:        Source files for %{name} host kernel modules
 Group:          Development/Sources
 Requires:       %{name} = %{version}
 Requires:       gcc
@@ -301,9 +307,22 @@
 BuildArch:      noarch
 
 %description host-source
-Source files for %{name} kernel modules
+Source files for %{name} host kernel modules
 These can be built for custom kernels using
 cd %{_prefix}/src/kernel-modules/virtualbox ; make ; make install
+
+%package guest-source
+Summary:        Source files for %{name} guest kernel modules
+Group:          Development/Sources
+Requires:       %{name} = %{version}
+Requires:       gcc
+Requires:       make
+BuildArch:      noarch
+
+%description guest-source
+Source files for %{name} guest kernel modules
+These can be built for custom kernels using
+cd %{_prefix}/src/kernel-modules/virtualbox/guest ; make ; make install
 ###########################################
 
 %package guest-desktop-icons
@@ -317,6 +336,17 @@
 This package contains icons for guest desktop files that were created on the 
desktop.
 ###########################################
 
+%package vnc
+Summary:        VNC desktop sharing
+Group:          System/Emulators/PC
+Requires:       %{name} = %{version}
+
+%description vnc
+Virtual Network Computing (VNC) is a graphical desktop sharing system that 
uses the Remote Frame Buffer
+protocol (RFB) to remotely control another computer. When this optional 
feature is desired, it is installed
+as an "extpack" for VirtualBox. The implementation is licensed under GPL.
+###########################################
+
 %prep
 %setup -q -n VirtualBox-%{version}
 %patch1 -p1
@@ -342,6 +372,7 @@
 %if 0%{?sle_version} == 120300
 %patch114 -p1
 %endif
+%patch115 -p1
 %patch116 -p1
 
 #copy user manual
@@ -352,7 +383,7 @@
 ##########################
 ####workaround kmk_sed --v
 #instead of kmk_sed use /usr/bin/sed because of bug 
http://svn.netlabs.org/kbuild/ticket/112,
-#but we have to create wrapper which will handle --append and --outpout 
options which are not provided by /usr/bin/sed
+#but we have to create wrapper which will handle --append and --output options 
which are not provided by /usr/bin/sed
 cat >> kmk_sed <<EOF
 #!/bin/bash
 while [ "\$#" != "0" ]; do
@@ -369,7 +400,7 @@
 #
 
 %build
-#ensure we dont ever use them
+#ensure we don't ever use them
 rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
 
 #      --disable-kmods         don't build Linux kernel modules -  but use 
SUSE specific way see few lines under
@@ -404,6 +435,16 @@
     TOOL_GCC3_CFLAGS="%{optflags}" TOOL_GCC3_CXXFLAGS="%{optflags}" \
     VBOX_GCC_OPT="%{optflags}"
 
+echo "build VNC extension pack"
+# tar must use GNU, not POSIX, format here
+sed -i 's/tar /tar --format=gnu /' src/VBox/ExtPacks/VNC/Makefile.kmk
+kmk -C src/VBox/ExtPacks/VNC packing
+pushd out/linux.*/release/packages/
+mkdir -p "%{buildroot}%{_datadir}/virtualbox/extensions/"
+install -D -m 644 VNC-*.vbox-extpack 
"%{buildroot}%{_datadir}/virtualbox/extensions/VNC-%{version}.vbox-extpack"
+popd
+install -D -m 644 "COPYING" "%{buildroot}%{_datadir}/licenses/LICENSE.vnc"
+
 #
 # build kernel modules for guest and host (check novel-kmp package as example)
 # host  modules : vboxdrv,vboxnetflt,vboxnetadp,vboxpci
@@ -470,8 +511,6 @@
 install -d -m 755 %{buildroot}%{_sysconfdir}/vbox
 install -d -m 755 %{buildroot}%{_udevrulesdir}
 install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d
-install -m 755 out/linux.*/release/bin/ExtensionPacks/VNC/linux.*/VBoxVNC.so 
%{buildroot}%{_vbox_instdir}/VBoxVNC.so
-install -m 755 
out/linux.*/release/bin/ExtensionPacks/VNC/linux.*/VBoxVNCMain.so 
%{buildroot}%{_vbox_instdir}/VBoxVNCMain.so
 
 
####################################################################################
 echo "entering virtualbox-kmp-guest and virtualbox-kmp-host install section"
@@ -564,7 +603,9 @@
 # install languages
 install -m 644 nls/*                           
%{buildroot}%{_datadir}/virtualbox/nls/
 # install kmp src
-mkdir -p %{buildroot}%{_usrsrc}/kernel-modules
+mkdir -p %{buildroot}%{_usrsrc}/kernel-modules/virtualbox
+mkdir -p %{buildroot}%{_usrsrc}/kernel-modules/additions
+tar jcf %{buildroot}%{_usrsrc}/kernel-modules/additions/guest_src.tar.bz2 
additions/src
 cp -a src %{buildroot}%{_usrsrc}/kernel-modules/virtualbox
 install -m 644 %{SOURCE11}                     
%{buildroot}%{_udevrulesdir}/60-vboxdrv.rules
 popd
@@ -581,7 +622,6 @@
 install -m 644 %{SOURCE9}                      
%{buildroot}%{_bindir}/VirtualBox
 
 # modify and install the vboxdrv init script
-# 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
 install -m 744 src/VBox/Installer/linux/vboxdrv.sh 
%{buildroot}%{_sysconfdir}/init.d/vboxdrv
@@ -591,6 +631,8 @@
 install -m 0644 %{SOURCE14}                    
%{buildroot}%{_unitdir}/multi-user.target.wants/vboxdrv.service
 install -m 0644 %{SOURCE15}                    
%{buildroot}%{_unitdir}/vboxadd-service.service
 install -m 0644 %{SOURCE15}                    
%{buildroot}%{_unitdir}/multi-user.target.wants/vboxadd-service.service
+install -m 0644 %{SOURCE16}                    %{buildroot}/sbin/vboxconfig
+install -m 0644 %{SOURCE17}                    
%{buildroot}/sbin/vboxguestconfig
 # 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
@@ -604,7 +646,7 @@
 # install udev helper script for creating usb devices
 install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh 
%{buildroot}%{_vbox_instdir}/VBoxCreateUSBNode.sh
 ######################################################
-echo "entrering python-virtualbox install section"
+echo "entering python-virtualbox install section"
 ######################################################
 pushd out/linux.*/release/bin/sdk/installer
 VBOX_INSTALL_PATH=%{_vbox_instdir} python vboxapisetup.py install 
--prefix=%{_prefix} --root=%{buildroot} --record-rpm=%{_tmppath}/SITE_FILES
@@ -681,10 +723,7 @@
 
 %post
 /sbin/ldconfig
-#skip the fill up part and enable vboxdrv by default
-%fillup_and_insserv -f -y vboxdrv
 #setup our sysconfig file /etc/sysconfig/vbox
-%fillup_only -an vbox
 %set_permissions %{_vbox_instdir}/VBoxNetDHCP
 %set_permissions %{_vbox_instdir}/VBoxNetAdpCtl
 %set_permissions %{_vbox_instdir}/VBoxHeadless
@@ -704,12 +743,15 @@
 %verify_permissions -e %{_vbox_instdir}/VirtualBox
 
 %post guest-tools
-%fillup_and_insserv -f -y vboxadd
-%fillup_and_insserv -f -y vboxadd-service
 %service_add_post vboxadd-service.service
 
 %post websrv
-%fillup_and_insserv -f -y vboxweb-service
+
+%post vnc
+EXTPACK="/usr/share/virtualbox/extensions/VNC-%{version}.vbox-extpack"
+ACCEPT="$(tar --to-stdout -xf "${EXTPACK}" ./ExtPack-license.txt | sha256sum | 
head --bytes=64)"
+VBoxManage extpack install --replace "${EXTPACK}" --accept-license="${ACCEPT}" 
> /dev/null
+
 #######################################################
 # scriptlets preun
 #######################################################
@@ -771,7 +813,6 @@
 %{_vbox_instdir}/VBoxDD2.so
 %{_vbox_instdir}/VBoxDD.so
 %{_vbox_instdir}/VBoxDDU.so
-%{_vbox_instdir}/VBoxVNC*.so
 %{_vbox_instdir}/VBoxGuestControlSvc.so
 %{_vbox_instdir}/VBoxGuestPropSvc.so
 %{_vbox_instdir}/VBoxHeadless.so
@@ -825,6 +866,7 @@
 %{_var}/adm/fillup-templates/sysconfig.vbox
 %{_sbindir}/rcvboxes
 %{_sbindir}/rcvboxdrv
+/sbin/vboxconfig
 %{_vbox_instdir}/VBoxCreateUSBNode.sh
 #%verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxNetNAT
 %verify(not mode) %attr(4750,root,vboxusers) %{_vbox_instdir}/VBoxNetDHCP
@@ -864,6 +906,7 @@
 %defattr(-, root, root)
 %{_bindir}/VBoxControl
 %{_sbindir}/VBoxService
+/sbin/vboxguestconfig
 /sbin/mount.vboxsf
 %{_udevrulesdir}/60-vboxguest.rules
 %config %{_sysconfdir}/init.d/vboxadd
@@ -900,6 +943,12 @@
 %dir %{_usrsrc}/kernel-modules
 %{_usrsrc}/kernel-modules/virtualbox
 
+%files guest-source
+%defattr(-,root, root)
+%dir %{_usrsrc}/kernel-modules
+%dir %{_usrsrc}/kernel-modules/additions
+%{_usrsrc}/kernel-modules/additions/guest_src.tar.bz2
+
 %files websrv
 %defattr(-,root, root)
 %{_vbox_instdir}/vboxwebsrv
@@ -912,4 +961,11 @@
 %dir %{_datadir}/pixmaps/virtalbox
 %{_datadir}/pixmaps/virtalbox/*.png
 
+%files vnc
+%defattr(-,root, root)
+%dir %{_datadir}/virtualbox/extensions
+%{_datadir}/virtualbox/extensions/VNC-%{version}.vbox-extpack
+%dir %{_datadir}/licenses
+%{_datadir}/licenses/LICENSE.vnc
+
 %changelog

++++++ vbox-vboxdrv-init-script.diff ++++++
--- /var/tmp/diff_new_pack.XFJMN1/_old  2017-05-27 13:09:54.963175535 +0200
+++ /var/tmp/diff_new_pack.XFJMN1/_new  2017-05-27 13:09:54.967174969 +0200
@@ -66,8 +66,8 @@
 -    rm -f /etc/vbox/module_not_compiled
 -    depmod -a
 -    succ_msg "VirtualBox kernel modules built"
-+    begin_msg "Recompiling VirtualBox kernel module, NOT. It has been 
packaged."
-+    succ_msg ""
++#   Try to build the host kernel modules in case prepackaging has failed
++    /sbin/vboxconfig
  }
  
  dmnstatus()

++++++ vbox_fix_for_gcc7.patch ++++++
Index: VirtualBox-5.1.22/configure
===================================================================
--- VirtualBox-5.1.22.orig/configure
+++ VirtualBox-5.1.22/configure
@@ -447,8 +447,8 @@ check_gcc()
              -o \( $cc_maj -eq 4 -a $cc_min -gt 9 \) \
              -o \( $cc_maj -eq 5 -a $cc_min -gt 9 \) \
              -o \( $cc_maj -eq 6 -a $cc_min -gt 9 \) \
-             -o $cc_maj -gt 6 ]; then
-        log_failure "gcc version $cc_maj.$cc_min found, expected gcc 4.x, gcc 
5.x or gcc 6.x"
+             -o $cc_maj -gt 7 ]; then
+        log_failure "gcc version $cc_maj.$cc_min found, expected gcc 4.x, gcc 
5.x, gcc 6.x or gcc7.x"
         fail really
       else
         log_success "found version $cc_ver"
Index: 
VirtualBox-5.1.22/src/VBox/Devices/PC/ipxe/src/arch/i386/interface/pxe/pxe_preboot.c
===================================================================
--- 
VirtualBox-5.1.22.orig/src/VBox/Devices/PC/ipxe/src/arch/i386/interface/pxe/pxe_preboot.c
+++ 
VirtualBox-5.1.22/src/VBox/Devices/PC/ipxe/src/arch/i386/interface/pxe/pxe_preboot.c
@@ -262,6 +262,7 @@ pxenv_restart_tftp ( struct s_PXENV_TFTP
 
        /* Restart NBP */
        rmlongjmp ( pxe_restart_nbp, PXENV_RESTART_TFTP );
+       return 0;
 }
 
 /* PXENV_START_UNDI
++++++ vboxconfig.sh ++++++
#!/bin/bash
#
# Script to build VirtualBox host kernel modules
# Copyright C 2017 by Larry Finger
#
# This script is part of the openSUSE VirtualBox package
#
SOURCE="/usr/src/kernel-modules/virtualbox"
LOGFILE="/var/log/virtualbox.log"
INCLUDE="/lib/modules/`uname -r`/build/include"

# Force installation of VB host sources. Zypper will install all the 
prerequisies
echo "Installing all required packages..."
killproc PackageKit
zypper install -y virtualbox-host-source > /dev/null 2>&1
if [ ! $? ] ; then
        echo "Installation of required packages failed."
        echo "Use 'sudo zypper install virtualbox-host-source' to see the 
reason."
        exit 1
fi
# Prerequisites are available, start build
pushd $SOURCE > /dev/null 2>&1
echo "Building kernel modules..."
make > $LOGFILE 2>&1
if [ ! $? ] ; then
        echo ""
        echo "Build of VirtualBox host kernel modules failed."
        echo "Look at $LOGFILE to find reasons."
        popd > /dev/null 2>&1
        exit 1
else
echo "Kernel modules built correctly. They will now be installed."
fi
make install >> $LOGFILE 2>&1
if [ ! $? ] ; then
        echo ""
        echo "Installation of VirtualBox host kernel modules failed."
        echo "Look at $LOGFILE to find reasons."
        popd > /dev/null 2>&1
        exit 1
fi
depmod -a
modprobe -av vboxnetflt vboxnetadp vboxpci
popd > /dev/null 2>&1
echo "Kernel modules are installed and loaded."
exit 0

++++++ vboxguestconfig.sh ++++++
#!/bin/bash
#
# Script to build VirtualBox guest kernel modules
# Copyright C 2017 by Larry Finger
#
# This script is part of the openSUSE VirtualBox package
#
SOURCE="/usr/src/kernel-modules/virtualbox"
LOGFILE="/var/log/virtualbox.log"
INCLUDE="/lib/modules/`uname -r`/build/include"

# Force installation of VB guest sources. Zypper will install all the 
prerequisies
echo "Installing all required packages..."
killproc PackageKit
zypper install -y virtualbox-guest-source > /dev/null 2>&1
if [ ! $? ] ; then
        echo "Installation of required packages failed."
        echo "Use 'sudo zypper install virtualbox-guest-source' to see the 
reason."
        exit 1
fi
# Prerequisites are available, start build
pushd $SOURCE > /dev/null 2>&1
echo "Building kernel modules..."
tar jxf guest_src.tar.bz2 > /dev/null 2>&1
cd additions/src
make > $LOGFILE 2>&1
if [ ! $? ] ; then
        echo ""
        echo "Build of VirtualBox guest kernel modules failed."
        echo "Look at $LOGFILE to find reasons."
        popd > /dev/null 2>&1
        exit 1
else
echo "Kernel modules built correctly. They will now be installed."
fi
make install >> $LOGFILE 2>&1
if [ ! $? ] ; then
        echo ""
        echo "Installation of VirtualBox guest kernel modules failed."
        echo "Look at $LOGFILE to find reasons."
        popd > /dev/null 2>&1
        exit 1
fi
depmod -a
modprobe -av vboxguest vboxvideo vboxsf
cd ../..
rm -rf additions
popd > /dev/null 2>&1
echo "Kernel modules are installed and loaded."
exit 0



Reply via email to