summaryrefslogtreecommitdiff
path: root/system/virtualbox-addons/rc.vboxadd.diff
diff options
context:
space:
mode:
Diffstat (limited to 'system/virtualbox-addons/rc.vboxadd.diff')
-rw-r--r--system/virtualbox-addons/rc.vboxadd.diff205
1 files changed, 202 insertions, 3 deletions
diff --git a/system/virtualbox-addons/rc.vboxadd.diff b/system/virtualbox-addons/rc.vboxadd.diff
index ca6cafd5be..929c25eeaf 100644
--- a/system/virtualbox-addons/rc.vboxadd.diff
+++ b/system/virtualbox-addons/rc.vboxadd.diff
@@ -1,6 +1,202 @@
---- vboxadd.sh.orig 2012-03-13 15:52:25.000000000 +0100
-+++ vboxadd.sh 2012-09-18 22:09:48.886085813 +0200
-@@ -480,60 +480,13 @@
+--- vboxadd.sh.orig 2016-01-19 17:40:04.000000000 +0100
++++ vboxadd.sh 2016-01-23 15:46:17.000000000 +0100
+@@ -146,42 +146,9 @@
+
+ dev=/dev/vboxguest
+ userdev=/dev/vboxuser
+-config=/var/lib/VBoxGuestAdditions/config
+ owner=vboxadd
+ group=1
+
+-test_for_gcc_and_make()
+-{
+- which make > /dev/null 2>&1 || printf "\nThe make utility was not found. If the following module compilation fails then\nthis could be the reason and you should try installing it.\n"
+- which gcc > /dev/null 2>&1 || printf "\nThe gcc utility was not found. If the following module compilation fails then\nthis could be the reason and you should try installing it.\n"
+-}
+-
+-test_sane_kernel_dir()
+-{
+- KERN_VER=`uname -r`
+- KERN_DIR="/lib/modules/$KERN_VER/build"
+- if [ -d "$KERN_DIR" ]; then
+- KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true`
+- if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then
+- return 0
+- fi
+- fi
+- printf "\nThe headers for the current running kernel were not found. If the following\nmodule compilation fails then this could be the reason.\n"
+- if [ "$system" = "redhat" ]; then
+- if echo "$KERN_VER" | grep -q "uek"; then
+- printf "The missing package can be probably installed with\nyum install kernel-uek-devel-$KERN_VER\n"
+- else
+- printf "The missing package can be probably installed with\nyum install kernel-devel-$KERN_VER\n"
+- fi
+- elif [ "$system" = "suse" ]; then
+- KERN_VER_SUSE=`echo "$KERN_VER" | sed 's/.*-\([^-]*\)/\1/g'`
+- KERN_VER_BASE=`echo "$KERN_VER" | sed 's/\(.*\)-[^-]*/\1/g'`
+- printf "The missing package can be probably installed with\nzypper install kernel-$KERN_VER_SUSE-devel-$KERN_VER_BASE\n"
+- elif [ "$system" = "debian" ]; then
+- printf "The missing package can be probably installed with\napt-get install linux-headers-$KERN_VER\n"
+- fi
+-}
+-
+ running_vboxguest()
+ {
+ lsmod | grep -q "vboxguest[^_-]"
+@@ -253,13 +220,6 @@
+ start()
+ {
+ begin "Starting the VirtualBox Guest Additions ";
+- 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"
+ uname -r | grep -q -E '^2\.6|^3|^4' 2>/dev/null &&
+ ps -A -o comm | grep -q '/*udevd$' 2>/dev/null ||
+ no_udev=1
+@@ -331,202 +291,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()
+-{
+- if [ -n "$(which dkms 2>/dev/null)" ]; then
+- begin "Removing existing VirtualBox DKMS kernel modules"
+- $DODKMS uninstall $OLDMODULES > $LOG
+- succ_msg
+- fi
+- begin "Removing existing VirtualBox non-DKMS kernel modules"
+- for i in $OLDMODULES; do
+- find /lib/modules -name $i\* | xargs rm 2>/dev/null
+- done
+- succ_msg
+-}
+-
+-# Build and install the VirtualBox guest kernel modules
+-setup_modules()
+-{
+- # don't stop the old modules here -- they might be in use
+- cleanup_modules
+- begin "Building the VirtualBox Guest Additions kernel modules"
+-
+- # Short cut out if a dkms build succeeds
+- if [ -n "$(which dkms 2>/dev/null)" ] &&
+- $DODKMS install vboxguest $INSTALL_VER >> $LOG 2>&1; then
+- succ_msg
+- return 0
+- fi
+-
+- test_for_gcc_and_make
+- test_sane_kernel_dir
+-
+- echo
+- begin "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
+- show_error "Look at $LOG to find out what went wrong"
+- return 1
+- fi
+- succ_msg
+- begin "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
+- show_error "Look at $LOG to find out what went wrong"
+- return 1
+- fi
+- succ_msg
+- if expr `uname -r` '<' '2.6.27' > /dev/null; then
+- echo "Not building the VirtualBox advanced graphics driver as this Linux version is"
+- echo "too old to use it."
+- else
+- begin "Building the OpenGL support module"
+- if ! $BUILDINTMP \
+- --use-module-symvers /tmp/vboxguest-Module.symvers \
+- --module-source $MODULE_SRC/vboxvideo \
+- --no-print-directory install >> $LOG 2>&1; then
+- show_error "Look at $LOG to find out what went wrong. The module is not built but the others are."
+- else
+- succ_msg
+- fi
+- fi
+- depmod
+- return 0
+-}
+-
+-# Do non-kernel bits needed for the kernel modules to work properly (user
+-# creation, udev, mount helper...)
+-extra_setup()
+-{
+- begin "Doing non-kernel setup of the Guest Additions"
+- echo "Creating user for the Guest Additions." >> $LOG
+- # 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
+-
+- # 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
+-
+- # Create udev description file
+- if [ -d /etc/udev/rules.d ]; then
+- echo "Creating udev rule for the Guest Additions kernel module." >> $LOG
+- 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
+-
+- # Put mount.vboxsf in the right place
+- ln -sf "$lib_path/$PACKAGE/mount.vboxsf" /sbin
+- # And an rc file to re-build the kernel modules and re-set-up the X server.
+- ln -sf "$lib_path/$PACKAGE/vboxadd" /sbin/rcvboxadd
+- ln -sf "$lib_path/$PACKAGE/vboxadd-x11" /sbin/rcvboxadd-x11
+- # At least Fedora 11 and Fedora 12 require the correct security context when
+- # executing this command from service scripts. Shouldn't hurt for other
+- # distributions.
+- chcon -u system_u -t mount_exec_t "$lib_path/$PACKAGE/mount.vboxsf" > /dev/null 2>&1
+- # And at least Fedora 15 needs this for the acceleration support check to
+- # work
+- redhat_release=`cat /etc/redhat-release 2> /dev/null`
+- case "$redhat_release" in Fedora\ release\ 15* )
+- for i in "$lib_path"/*.so
+- do
+- restorecon "$i" >/dev/null
+- done
+- ;;
+- esac
+-
+- succ_msg
+-}
+-
# setup_script
setup()
{
@@ -14,6 +210,7 @@
- export BUILD_TYPE
- export USERNAME
-
+- rm -f $LOG
- MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER"
- BUILDINTMP="$MODULE_SRC/build_in_tmp"
- DODKMS="$MODULE_SRC/do_dkms"
@@ -58,6 +255,8 @@
-
- # Remove other files
- rm /sbin/mount.vboxsf 2>/dev/null
+- rm /sbin/rcvboxadd 2>/dev/null
+- rm /sbin/rcvboxadd-x11 2>/dev/null
- 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."
}