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()