diff --git a/.abf.yml b/.abf.yml index bc0bd3d..7c2ec20 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,7 +1,4 @@ --- sources: - 60-vboxadd.perms: 4491f0c13603e446a0914fb444c0229c73957631 UserManual.pdf: 10144b8deaf19c0c8a075ef825bb78d8a61bfe67 VirtualBox-4.2.2.tar.bz2: fe82772e336b5de1a72ff71e8d3e5f5a57ddef52 - virtualbox.init: 061ddb9b510433540843473bdb073d62d1e08639 - virtualbox.rpmlintrc: 528944a44d229d7c97de9892791f467cbb8934e3 diff --git a/60-vboxadd.perms b/60-vboxadd.perms new file mode 100644 index 0000000..450aa2b --- /dev/null +++ b/60-vboxadd.perms @@ -0,0 +1,2 @@ +=/dev/vboxguest* /dev/vboxuser* + 0600 0600 root diff --git a/virtualbox.init b/virtualbox.init new file mode 100644 index 0000000..0aa2698 --- /dev/null +++ b/virtualbox.init @@ -0,0 +1,114 @@ +#! /bin/sh +# +# virtualbox: Starts the VirtualBox kernel module +# +# chkconfig: 35 30 60 +# description: VirtualBox Linux kernel module +# +### BEGIN INIT INFO +# Provides: vboxdrv +# Required-Start: $syslog +# Required-Stop: +# Default-Start: 3 5 +# Default-Stop: +# Description: VirtualBox Linux kernel module +# Should-Start: dkms +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +DAEMON=virtualbox +PROGNAME=VBoxSVC + +RETVAL=0 + +running() { + grep -q "^$1 " /proc/modules +} + +start() { + # Check if it is already running + if ! running vboxdrv; then + gprintf "Starting %s daemon: " "$DAEMON" + if ! modprobe vboxdrv > /dev/null 2>&1; then + failure "Loading vboxdrv module:" + return + fi + if ! modprobe vboxnetflt > /dev/null 2>&1; then + failure "Loading vboxnetflt module:" + return + fi + if ! modprobe vboxnetadp > /dev/null 2>&1; then + failure "Loading vboxnetadp module:" + return + fi + touch /var/lock/subsys/$PROGNAME + success + fi + echo +} + +stop() { + gprintf "Stopping %s daemon: " "$DAEMON" + if running vboxdrv; then + if running vboxnetflt; then + if ! rmmod vboxnetflt 2>/dev/null; then + failure "Remove module vboxnetflt:" + return + fi + fi + if running vboxnetadp; then + if ! rmmod vboxnetadp 2>/dev/null; then + failure "Remove module vboxnetadp:" + return + fi + fi + if ! rmmod vboxdrv 2>/dev/null; then + failure "Remove module vboxdrv:" + return + fi + fi + success + echo +} + +restart() { + stop + start +} + +status() { + if running vboxdrv; then + STATUS="loaded" + else + STATUS="not loaded" + fi + gprintf "%s kernel module is %s\n" $DAEMON "$STATUS" +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + restart + ;; + condrestart) + if [ -f /var/lock/subsys/$PROGNAME ]; then + restart + fi + ;; + status) + status + ;; + *) + INITNAME=`basename $0` + gprintf "Usage: %s {start|stop|restart|condrestart|status}\n" "$INITNAME" + exit 1 + ;; +esac +exit $RETVAL diff --git a/virtualbox.rpmlintrc b/virtualbox.rpmlintrc new file mode 100644 index 0000000..2ff8dd7 --- /dev/null +++ b/virtualbox.rpmlintrc @@ -0,0 +1,8 @@ +# Whether or not those are intentional needs further investigation +# virtualbox.x86_64: E: unstripped-binary-or-object (Badness: 50) /usr/lib64/virtualbox/VMMR0.r0 +# virtualbox.x86_64: E: unstripped-binary-or-object (Badness: 50) /usr/lib64/virtualbox/VBoxDD2GC.gc +# virtualbox.x86_64: E: unstripped-binary-or-object (Badness: 50) /usr/lib64/virtualbox/VBoxDDGC.gc +# virtualbox.x86_64: E: unstripped-binary-or-object (Badness: 50) /usr/lib64/virtualbox/VMMGC.gc +# virtualbox.x86_64: E: unstripped-binary-or-object (Badness: 50) /usr/lib64/virtualbox/VBoxDD2R0.r0 +# virtualbox.x86_64: E: unstripped-binary-or-object (Badness: 50) /usr/lib64/virtualbox/VBoxDDR0.r0 +addFilter("E: unstripped-binary-or-object")