diff options
author | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-10-20 11:12:20 -0300 |
---|---|---|
committer | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-10-20 11:12:20 -0300 |
commit | 5c0a5f2b9fa7f1683f279728342aa7f5f0cf90a3 (patch) | |
tree | a55da6178b48e7abe9508505d3e92cf02a03da52 /libre/virtualbox/vboxbuild | |
parent | c56b2c50f5748090efb9f10f2a021e57a2455764 (diff) | |
parent | 1a136cf48dd7f710f38ff998182508f5a0d41c35 (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/vboxbuild | 79 |
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 + + |