1
0
forked from pool/virtualbox
virtualbox/vbox-vboxdrv-init-script.diff
Larry Finger 17a3ba2102 - 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.

- 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.

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=331
2017-05-10 18:01:46 +00:00

74 lines
2.6 KiB
Diff

Index: VirtualBox-5.1.16/src/VBox/Installer/linux/vboxdrv.sh
===================================================================
--- VirtualBox-5.1.16.orig/src/VBox/Installer/linux/vboxdrv.sh
+++ VirtualBox-5.1.16/src/VBox/Installer/linux/vboxdrv.sh
@@ -19,11 +19,12 @@
#
### BEGIN INIT INFO
# Provides: vboxdrv
-# Required-Start: $syslog
-# Required-Stop:
-# Default-Start: 2 3 4 5
+# Required-Start: $syslog $remote_fs
+# Required-Stop: $syslog $remote_fs
+# Default-Start: 2 3 5
# Default-Stop: 0 1 6
-# Short-Description: VirtualBox Linux kernel module
+# Short-Description: VirtualBox Linux module
+# Description: VirtualBox Linux kernel module
### END INIT INFO
## @todo This file duplicates a lot of script with vboxadd.sh. When making
@@ -261,13 +262,6 @@ start()
fi
fi
# ensure permissions
- if ! chown :"${GROUP}" $DEVICE 2>/dev/null; then
- rmmod vboxpci 2>/dev/null
- rmmod vboxnetadp 2>/dev/null
- rmmod vboxnetflt 2>/dev/null
- rmmod vboxdrv 2>/dev/null
- failure "Cannot change group ${GROUP} for device $DEVICE"
- fi
if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then
failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why"
fi
@@ -387,35 +381,8 @@ cleanup()
# setup_script
setup()
{
- begin_msg "Building VirtualBox kernel modules" console
- if ! $BUILDINTMP \
- --save-module-symvers /tmp/vboxdrv-Module.symvers \
- --module-source "$MODULE_SRC/vboxdrv" \
- --no-print-directory install >> $LOG 2>&1; then
- "${INSTALL_DIR}/check_module_dependencies.sh"
- failure "Look at $LOG to find out what went wrong"
- fi
- if ! $BUILDINTMP \
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
- --module-source "$MODULE_SRC/vboxnetflt" \
- --no-print-directory install >> $LOG 2>&1; then
- failure "Look at $LOG to find out what went wrong"
- fi
- if ! $BUILDINTMP \
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
- --module-source "$MODULE_SRC/vboxnetadp" \
- --no-print-directory install >> $LOG 2>&1; then
- failure "Look at $LOG to find out what went wrong"
- fi
- if ! $BUILDINTMP \
- --use-module-symvers /tmp/vboxdrv-Module.symvers \
- --module-source "$MODULE_SRC/vboxpci" \
- --no-print-directory install >> $LOG 2>&1; then
- failure "Look at $LOG to find out what went wrong"
- fi
- rm -f /etc/vbox/module_not_compiled
- depmod -a
- succ_msg "VirtualBox kernel modules built"
+# Try to build the host kernel modules in case prepackaging has failed
+ /sbin/vboxconfig
}
dmnstatus()