_install_notes() { echo echo '---------------------------------------------------------------------------' echo ' IMPORTANT NOTES:' echo echo '- Run "vbox_build_module" as root every time your kernel is upgraded, to' echo ' compile the module for the new kernel version.' echo '- Add your user to the vboxusers group:' echo ' gpasswd -a USERNAME vboxusers' echo '- Add "vboxdrv" to the MODULES array in your "/etc/rc.conf"' echo '- Add "vboxnetflt" to MODULES if you want Host Interface networking.' echo '- Add "vboxnetadp" to MODULES if you want Host-Only networking.' echo '- If USB does not work for you out-of-the-box, add the following line' echo ' to "/etc/fstab":' echo ' none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0' echo "---------------------------------------------------------------------------" } # $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 echo "Building VirtualBox modules..." /usr/bin/vbox_build_module &> /dev/null # 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 cat "/opt/VirtualBox/LICENSE" >&2 echo >&2 echo '---------------------------------------------------------------------------' >&2 # Load the new module modprobe vboxdrv _install_notes } # $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 # Create the directory below if it doesn't exist mkdir -p "/var/run/VirtualBox" # Build new module echo "Building VirtualBox modules..." /usr/bin/vbox_build_module &> /dev/null # Load the new module modprobe vboxdrv _install_notes } # $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" }