# $1: The new package version post_install() { # Unload modules (if any) for _mod in vbox{drv,netadp,netflt}; do modprobe -r $_mod &> /dev/null done # Build new module /etc/rc.d/vboxdrv setup # Add vboxusers group, GID 108 is reserved (http://wiki.archlinux.org/index.php/UID_and_GID_list), # but in some systems it may be being used - please replace if needed. groupadd -f -g 108 vboxusers # Create the directory below if it doesn't exist mkdir -p "/var/run/VirtualBox" # Load new udev rule for module vboxdrv udevadm control --reload-rules # Show the license echo >&2 echo '==> You must agree to the following license in order to use this program:' >&2 echo '------------------------------------------------------------------------' >&2 echo >&2 cat "/opt/VirtualBox/LICENSE" >&2 echo >&2 echo '------------------------------------------------------------------------' >&2 /bin/cat < Add your user to the vboxusers group: ==> # gpasswd -a USERNAME vboxusers ==> ==> You must load vboxdrv module before starting VirtualBox: ==> # modprobe vboxdrv ==> ==> You must load vboxnetflt for Host Interface Networking: ==> # modprobe vboxnetflt ==> ==> You must load vboxnetadp for Host-Only networking: ==> # modprobe vboxnetadp ==> ==> To load it automatically, add vboxdrv module to the "MODULES" array ==> "/etc/rc.conf". ==> ==> Run \`/etc/rc.d/vboxdrv setup\` as root every time your kernel is ==> upgraded, to compile the module for the new kernel version. ==> ==> If USB does not work for you out-of-the-box, add the following line ==> to "/etc/fstab": ==> "none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0" EOF } # $1: The new package version # $2: The old package version post_upgrade() { _NEWVERSION=`echo $1 | cut -f-1 -d '-'` _OLDVERSION=`echo $2 | cut -f-1 -d '-'` # Unload modules (if any) for _mod in vbox{drv,netadp,netflt}; do modprobe -r $_mod &> /dev/null done # Remove any stuff (e.g. module compilation files) from an old installation - old versions used # to use these directories. if [ "$_NEWVERSION" != "$_OLDVERSION" ]; then rm -Rf "/opt/VirtualBox-${_OLDVERSION}" &> /dev/null fi if [ "$1" != "$2" ]; then rm -Rf "/opt/virtualbox" &> /dev/null fi # Build new module /etc/rc.d/vboxdrv setup # Create the directory below if it doesn't exist mkdir -p "/var/run/VirtualBox" /bin/cat < You must load vboxdrv module before starting VirtualBox: ==> # modprobe vboxdrv ==> ==> You must load vboxnetflt for Host Interface Networking: ==> # modprobe vboxnetflt ==> ==> You must load vboxnetadp for Host-Only networking: ==> # modprobe vboxnetadp ==> ==> To load it automatically, add vboxdrv module to the "MODULES" array ==> "/etc/rc.conf". ==> ==> Run \`/etc/rc.d/vboxdrv setup\` as root every time your kernel is ==> upgraded, to compile the module for the new kernel version. ==> ==> If USB does not work for you out-of-the-box, add the following line ==> to "/etc/fstab": ==> "none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0" EOF if [ "`vercmp $_OLDVERSION 3.2.2`" -lt 0 ]; then /bin/cat < IMPORTANT: This package now uses \`/etc/rc.d/vboxdrv setup\` instead ==> of the old "vbox_build_module" script. EOF fi } # $1: The old package version pre_remove() { # Unload modules (if any) for _mod in vbox{drv,netadp,netflt}; do modprobe -r $_mod &> /dev/null done # Remove the module files rm -f "/lib/modules/`uname -r`/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko # Remove any stuff remaining from the module compilation rm -Rf "/opt/VirtualBox" }