diff -ur VirtualBox-5.2.4.orig/src/VBox/Additions/linux/installer/vboxadd.sh VirtualBox-5.2.4/src/VBox/Additions/linux/installer/vboxadd.sh
--- VirtualBox-5.2.4.orig/src/VBox/Additions/linux/installer/vboxadd.sh 2017-12-19 10:22:03.000000000 +0100
+++ VirtualBox-5.2.4/src/VBox/Additions/linux/installer/vboxadd.sh 2018-01-07 17:23:23.225998245 +0100
@@ -130,18 +130,9 @@
dev=/dev/vboxguest
userdev=/dev/vboxuser
-config=/var/lib/VBoxGuestAdditions/config
owner=vboxadd
group=1
-if test -r $config; then
- . $config
-else
- fail "Configuration file $config not found"
-fi
-test -n "$INSTALL_DIR" -a -n "$INSTALL_VER" ||
- fail "Configuration file $config not complete"
-
running_vboxguest()
{
lsmod | grep -q "vboxguest[^_-]"
@@ -252,28 +243,6 @@
}
fi # INSTALL_NO_MODULE_BUILDS
- # Put the X.Org driver in place. This is harmless if it is not needed.
- "${INSTALL_DIR}/init/vboxadd-x11" setup 2>> "${LOG}"
- # Install the guest OpenGL drivers. For now we don't support
- # multi-architecture installations
- rm -f /etc/ld.so.conf.d/00vboxvideo.conf
- rm -Rf /var/lib/VBoxGuestAdditions/lib
- if /usr/bin/VBoxClient --check3d 2>/dev/null; then
- mkdir -p /var/lib/VBoxGuestAdditions/lib
- ln -sf "${INSTALL_DIR}/lib/VBoxOGL.so" /var/lib/VBoxGuestAdditions/lib/libGL.so.1
- # SELinux for the OpenGL libraries, so that gdm can load them during the
- # acceleration support check. This prevents an "Oh no, something has gone
- # wrong!" error when starting EL7 guests.
- if test -e /etc/selinux/config; then
- if command -v semanage > /dev/null; then
- semanage fcontext -a -t lib_t "/var/lib/VBoxGuestAdditions/lib/libGL.so.1"
- fi
- chcon -h -t lib_t "/var/lib/VBoxGuestAdditions/lib/libGL.so.1"
- fi
- echo "/var/lib/VBoxGuestAdditions/lib" > /etc/ld.so.conf.d/00vboxvideo.conf
- fi
- ldconfig
-
# Mount all shared folders from /etc/fstab. Normally this is done by some
# other startup script but this requires the vboxdrv kernel module loaded.
# This isn't necessary anymore as the vboxsf module is autoloaded.
@@ -303,195 +272,16 @@
return 0
}
-# Remove any existing VirtualBox guest kernel modules from the disk, but not
-# from the kernel as they may still be in use
-cleanup_modules()
-{
- log "Removing existing VirtualBox kernel modules."
- for i in ${OLDMODULES}; do
- # We no longer support DKMS, remove any leftovers.
- rm -rf "/var/lib/dkms/${i}"*
- # And remove old modules.
- rm -f /lib/modules/*/misc/"${i}"*
- done
- # Remove leftover module folders.
- for i in /lib/modules/*/misc; do
- test -d "${i}" && rmdir -p "${i}" 2>/dev/null
- done
- rm -f /etc/depmod.d/vboxvideo-upstream.conf
-}
-
-# Build and install the VirtualBox guest kernel modules
-setup_modules()
-{
- # don't stop the old modules here -- they might be in use
- test -z "${QUICKSETUP}" && cleanup_modules
- # This does not work for 2.4 series kernels. How sad.
- test -n "${QUICKSETUP}" && test -f "${MODULE_DIR}/vboxguest.ko" && return 0
- info "Building the VirtualBox Guest Additions kernel modules."
-
- # We are allowed to do ">> $LOG" after we have called "log()" once.
- log "Building the main Guest Additions module."
- if ! $BUILDINTMP \
- --save-module-symvers /tmp/vboxguest-Module.symvers \
- --module-source $MODULE_SRC/vboxguest \
- --no-print-directory install >> $LOG 2>&1; then
- # If check_module_dependencies.sh fails it prints a message itself.
- "${INSTALL_DIR}"/other/check_module_dependencies.sh 2>&1 &&
- info "Look at $LOG to find out what went wrong"
- return 0
- fi
- log "Building the shared folder support module"
- if ! $BUILDINTMP \
- --use-module-symvers /tmp/vboxguest-Module.symvers \
- --module-source $MODULE_SRC/vboxsf \
- --no-print-directory install >> $LOG 2>&1; then
- info "Look at $LOG to find out what went wrong"
- return 0
- fi
- log "Building the graphics driver module"
- if ! $BUILDINTMP \
- --use-module-symvers /tmp/vboxguest-Module.symvers \
- --module-source $MODULE_SRC/vboxvideo \
- --no-print-directory install >> $LOG 2>&1; then
- info "Look at $LOG to find out what went wrong"
- fi
- [ -d /etc/depmod.d ] || mkdir /etc/depmod.d
- echo "override vboxguest * misc" > /etc/depmod.d/vboxvideo-upstream.conf
- echo "override vboxsf * misc" >> /etc/depmod.d/vboxvideo-upstream.conf
- echo "override vboxvideo * misc" >> /etc/depmod.d/vboxvideo-upstream.conf
- depmod
- return 0
-}
-
-create_vbox_user()
-{
- log "Creating user for the Guest Additions."
- # This is the LSB version of useradd and should work on recent
- # distributions
- useradd -d /var/run/vboxadd -g 1 -r -s /bin/false vboxadd >/dev/null 2>&1
- # And for the others, we choose a UID ourselves
- useradd -d /var/run/vboxadd -g 1 -u 501 -o -s /bin/false vboxadd >/dev/null 2>&1
-
-}
-
-create_udev_rule()
-{
- # Create udev description file
- if [ -d /etc/udev/rules.d ]; then
- log "Creating udev rule for the Guest Additions kernel module."
- udev_call=""
- udev_app=`which udevadm 2> /dev/null`
- if [ $? -eq 0 ]; then
- udev_call="${udev_app} version 2> /dev/null"
- else
- udev_app=`which udevinfo 2> /dev/null`
- if [ $? -eq 0 ]; then
- udev_call="${udev_app} -V 2> /dev/null"
- fi
- fi
- udev_fix="="
- if [ "${udev_call}" != "" ]; then
- udev_out=`${udev_call}`
- udev_ver=`expr "$udev_out" : '[^0-9]*\([0-9]*\)'`
- if [ "$udev_ver" = "" -o "$udev_ver" -lt 55 ]; then
- udev_fix=""
- fi
- fi
- ## @todo 60-vboxadd.rules -> 60-vboxguest.rules ?
- echo "KERNEL=${udev_fix}\"vboxguest\", NAME=\"vboxguest\", OWNER=\"vboxadd\", MODE=\"0660\"" > /etc/udev/rules.d/60-vboxadd.rules
- echo "KERNEL=${udev_fix}\"vboxuser\", NAME=\"vboxuser\", OWNER=\"vboxadd\", MODE=\"0666\"" >> /etc/udev/rules.d/60-vboxadd.rules
- fi
-}
-
-create_module_rebuild_script()
-{
- # And a post-installation script for rebuilding modules when a new kernel
- # is installed.
- mkdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d
- cat << EOF > /etc/kernel/postinst.d/vboxadd
-#!/bin/sh
-test -d "/lib/modules/\${1}/build" || exit 0
-KERN_VER="\${1}" /sbin/rcvboxadd quicksetup
-exit 0
-EOF
- cat << EOF > /etc/kernel/prerm.d/vboxadd
-#!/bin/sh
-for i in ${OLDMODULES}; do rm -f /lib/modules/"\${1}"/misc/"\${i}".ko; done
-rmdir -p /lib/modules/"\$1"/misc 2>/dev/null
-exit 0
-EOF
- chmod 0755 /etc/kernel/postinst.d/vboxadd /etc/kernel/prerm.d/vboxadd
-}
-
-shared_folder_setup()
-{
- # Add a group "vboxsf" for Shared Folders access
- # All users which want to access the auto-mounted Shared Folders have to
- # be added to this group.
- groupadd -r -f vboxsf >/dev/null 2>&1
-
- # Put the mount.vboxsf mount helper in the right place.
- ## @todo It would be nicer if the kernel module just parsed parameters
- # itself instead of needing a separate binary to do that.
- ln -sf "${INSTALL_DIR}/other/mount.vboxsf" /sbin
- # SELinux security context for the mount helper.
- if test -e /etc/selinux/config; then
- # This is correct. semanage maps this to the real path, and it aborts
- # with an error, telling you what you should have typed, if you specify
- # the real path. The "chcon" is there as a back-up for old guests.
- command -v semanage > /dev/null &&
- semanage fcontext -a -t mount_exec_t "${INSTALL_DIR}/other/mount.vboxsf"
- chcon -t mount_exec_t "${INSTALL_DIR}/other/mount.vboxsf"
- fi
-}
-
# setup_script
setup()
{
- export BUILD_TYPE
- export USERNAME
-
- MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER"
- BUILDINTMP="$MODULE_SRC/build_in_tmp"
- chcon -t bin_t "$BUILDINTMP" > /dev/null 2>&1
-
- test -z "${INSTALL_NO_MODULE_BUILDS}" && setup_modules
- create_vbox_user
- create_udev_rule
- test -z "${INSTALL_NO_MODULE_BUILDS}" && create_module_rebuild_script
- test -n "${QUICKSETUP}" && return 0
- shared_folder_setup
- if running_vboxguest || running_vboxadd; then
- info "Running kernel modules will not be replaced until the system is restarted"
- fi
- return 0
+ echo "Not implemented! Please use the virtualbox-kernel-addons.SlackBuild available at SlackBuilds.org instead."
}
# cleanup_script
cleanup()
{
- if test -z "${INSTALL_NO_MODULE_BUILDS}"; then
- # Delete old versions of VBox modules.
- cleanup_modules
- depmod
-
- # Remove old module sources
- for i in $OLDMODULES; do
- rm -rf /usr/src/$i-*
- done
- fi
-
- # Clean-up X11-related bits
- "${INSTALL_DIR}/init/vboxadd-x11" cleanup 2>> "${LOG}"
-
- # Remove other files
- rm /sbin/mount.vboxsf 2>/dev/null
- if test -z "${INSTALL_NO_MODULE_BUILDS}"; then
- rm -f /etc/kernel/postinst.d/vboxadd /etc/kernel/prerm.d/vboxadd
- rmdir -p /etc/kernel/postinst.d /etc/kernel/prerm.d 2>/dev/null
- fi
- rm /etc/udev/rules.d/60-vboxadd.rules 2>/dev/null
+ echo "Not implemented! Please use removepkg or pkgtool to remove virtualbox-addons and/or virtualbox-kernel-addons instead."
}
dmnstatus()
|