summaryrefslogtreecommitdiff
path: root/libre/virtualbox/vboxbuild
diff options
context:
space:
mode:
authorNicolas Reynolds <fauno@kiwwwi.com.ar>2011-10-20 11:12:20 -0300
committerNicolas Reynolds <fauno@kiwwwi.com.ar>2011-10-20 11:12:20 -0300
commit5c0a5f2b9fa7f1683f279728342aa7f5f0cf90a3 (patch)
treea55da6178b48e7abe9508505d3e92cf02a03da52 /libre/virtualbox/vboxbuild
parentc56b2c50f5748090efb9f10f2a021e57a2455764 (diff)
parent1a136cf48dd7f710f38ff998182508f5a0d41c35 (diff)
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts: community/comix/PKGBUILD community/geany/PKGBUILD community/gnome-do-docklets/PKGBUILD community/gnome-do-plugins/PKGBUILD community/gnome-system-tools/PKGBUILD community/gnustep-make/PKGBUILD community/gtweakui/PKGBUILD community/hwinfo/PKGBUILD community/kungfu/PKGBUILD community/liboauth/PKGBUILD community/liboobs/PKGBUILD community/lua-lzlib/PKGBUILD community/mcdp/PKGBUILD community/mingw32-gcc-base/PKGBUILD community/mingw32-runtime/PKGBUILD community/mplayer2/PKGBUILD community/pdf2svg/PKGBUILD community/perl-data-dumper/PKGBUILD community/perl-digest-md5/PKGBUILD community/perl-perlio-eol/PKGBUILD community/perl-xml-libxslt/PKGBUILD community/python-cherrypy/PKGBUILD community/python-pexpect/PKGBUILD community/python-pyro/PKGBUILD community/python2-cherrypy/PKGBUILD community/rexima/PKGBUILD community/shp2svg/PKGBUILD community/system-tools-backends/PKGBUILD community/tracker/PKGBUILD community/virtualbox/PKGBUILD core/bridge-utils/PKGBUILD extra/avidemux/PKGBUILD extra/beagle/PKGBUILD extra/bug-buddy/PKGBUILD extra/dssi/PKGBUILD extra/evolution-sharp/PKGBUILD extra/evolution-webcal/PKGBUILD extra/feh/PKGBUILD extra/ffmpeg/PKGBUILD extra/gnome-mag/PKGBUILD extra/gnome-python-desktop/PKGBUILD extra/gnutls/PKGBUILD extra/gok/PKGBUILD extra/gpsd/PKGBUILD extra/gstreamer0.10-ugly/PKGBUILD extra/hyphen/PKGBUILD extra/kdelibs/PKGBUILD extra/keytouch-editor/PKGBUILD extra/keytouch/PKGBUILD extra/koffice/PKGBUILD extra/krusader/PKGBUILD extra/libbeagle/PKGBUILD extra/libffi/PKGBUILD extra/libgnomeuimm/PKGBUILD extra/libreoffice/PKGBUILD extra/m17n-lib/PKGBUILD extra/mtr/PKGBUILD extra/openbabel/PKGBUILD extra/poppler/PKGBUILD extra/pulseaudio/PKGBUILD extra/rox/PKGBUILD extra/transmission/PKGBUILD extra/xf86-input-synaptics/PKGBUILD extra/xorg-server/PKGBUILD extra/xorg-xinit/PKGBUILD kde-unstable/calligra/PKGBUILD libre/icecat/PKGBUILD libre/linux-libre/PKGBUILD multilib/lib32-ncurses/PKGBUILD multilib/lib32-openssl/PKGBUILD multilib/lib32-talloc/PKGBUILD multilib/wine/PKGBUILD
Diffstat (limited to 'libre/virtualbox/vboxbuild')
-rw-r--r--libre/virtualbox/vboxbuild79
1 files changed, 79 insertions, 0 deletions
diff --git a/libre/virtualbox/vboxbuild b/libre/virtualbox/vboxbuild
new file mode 100644
index 000000000..66f5812ab
--- /dev/null
+++ b/libre/virtualbox/vboxbuild
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/vbox/vbox.cfg
+
+MODLIST=()
+LOG="/var/log/vbox-install.log"
+>| "$LOG"
+
+if [[ $INSTALL_DIR ]]; then
+ VBOXMANAGE=$INSTALL_DIR/VBoxManage
+ BUILDVBOXDRV=$INSTALL_DIR/src/vboxdrv/build_in_tmp
+ BUILDVBOXNETFLT=$INSTALL_DIR/src/vboxnetflt/build_in_tmp
+ BUILDVBOXNETADP=$INSTALL_DIR/src/vboxnetadp/build_in_tmp
+ BUILDVBOXPCI=$INSTALL_DIR/src/vboxpci/build_in_tmp
+else
+ echo "error: missing vbox.cfg"
+ exit 1
+fi
+
+if [[ -f /proc/modules ]]; then
+ IFS=$'\n' read -r -d '' -a MODLIST < \
+ <(grep -oE '^vbox(pci|netflt|netadp|drv)' /proc/modules)
+fi
+
+if (( ${#MODLIST[*]} )); then
+ stat_busy "Unloading VirtualBox kernel modules"
+ modprobe -ar "${MODLIST[@]}" && stat_done || stat_fail
+fi
+
+for kdir in /lib/modules/*; do
+ if [[ ! -d $kdir/kernel ]]; then
+ # found a stale kernel
+ mods=("$kdir/misc/vbox"{drv,netadp,netflt,pci}.ko*)
+ if (( ${#mods[@]} )); then
+ stat_busy "Removing all old VirtualBox kernel modules"
+ if rm -f "${mods[@]}" &&
+ rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null; then
+ stat_done
+ else
+ stat_fail
+ fi
+ fi
+ fi
+done
+
+# default to the currently running kernel
+if (( ! $# )); then
+ set -- $(uname -r)
+fi
+
+for kernver; do
+ export KERN_DIR=/lib/modules/$kernver/build
+ if [[ ! -d $KERN_DIR ]]; then
+ printf "error: \`%s' does not appear to be a valid kernel build directory.\n" \
+ "$KERN_DIR"
+ continue
+ fi
+
+ stat_busy "Recompiling VirtualBox kernel modules ($kernver)"
+ for build in BUILDVBOX{DRV,NETFLT,NETADP,PCI}; do
+ if ! ${!build} \
+ --save-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ stat_fail
+ continue
+ fi
+ done
+ stat_done
+done
+
+if (( ${#MODLIST[*]} )); then
+ stat_busy "Reloading VirtualBox kernel modules"
+ modprobe -a "${MODLIST[@]}" && stat_done || stat_fail
+fi
+
+