summaryrefslogtreecommitdiff
path: root/community/virtualbox
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-10-05 23:14:45 +0000
committerroot <root@rshg054.dnsready.net>2011-10-05 23:14:45 +0000
commit068f1f30c0bba25b6b88cefbe982a72535fa1951 (patch)
tree1cbc872f02ee675155a7dc79fc637b4f2ed7e5e8 /community/virtualbox
parent3567a49f79d2dbf828b723ab54982fa6c7ea1c80 (diff)
Wed Oct 5 23:14:44 UTC 2011
Diffstat (limited to 'community/virtualbox')
-rw-r--r--community/virtualbox/PKGBUILD33
-rw-r--r--community/virtualbox/vbox-service.conf2
-rwxr-xr-xcommunity/virtualbox/vbox-service.rc39
-rwxr-xr-xcommunity/virtualbox/vboxbuild78
-rw-r--r--community/virtualbox/vboxdrv-reference.patch8
-rw-r--r--community/virtualbox/virtualbox.install4
6 files changed, 142 insertions, 22 deletions
diff --git a/community/virtualbox/PKGBUILD b/community/virtualbox/PKGBUILD
index 388b3ed53..8739d2a86 100644
--- a/community/virtualbox/PKGBUILD
+++ b/community/virtualbox/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 54264 2011-08-15 19:54:32Z ibiru $
+# $Id: PKGBUILD 56277 2011-10-04 15:42:56Z ibiru $
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox
pkgname=('virtualbox' 'virtualbox-archlinux-additions' 'virtualbox-archlinux-modules' 'virtualbox-sdk')
-pkgver=4.1.2
+pkgver=4.1.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
@@ -14,8 +14,8 @@ makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libxcursor
source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
UserManual-$pkgver.pdf::http://download.virtualbox.org/virtualbox/${pkgver}/UserManual.pdf
virtualbox-4-makeself-check.patch virtualbox-4-mkisofs-check.patch
- 10-vboxdrv.rules 60-vboxguest.rules vboxdrv-reference.patch LocalConfig.kmk vboxdrv.sh
- change_default_driver_dir.patch)
+ 10-vboxdrv.rules 60-vboxguest.rules vboxdrv-reference.patch LocalConfig.kmk vboxbuild
+ change_default_driver_dir.patch vbox-service.conf vbox-service.rc)
_kernver=3.0-ARCH
build() {
@@ -113,7 +113,7 @@ package_virtualbox() {
#sources for modules
cp -r src ${pkgdir}/usr/lib/virtualbox
#install compilation script
- install -D -m 755 "${srcdir}/vboxdrv.sh" "${pkgdir}/etc/rc.d/vboxdrv"
+ install -D -m 755 "${srcdir}/vboxbuild" "${pkgdir}/usr/bin/vboxbuild"
}
package_virtualbox-sdk() {
@@ -148,16 +148,10 @@ package_virtualbox-archlinux-additions(){
install -m755 VBoxClient VBoxControl VBoxService "$pkgdir/usr/bin"
install -m755 mount.vboxsf "$pkgdir/sbin"
- install -m644 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/50-vboxmouse.conf \
- "$pkgdir"/etc/X11/xorg.conf.d/50-vboxmouse.conf
- install -m644 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/linux/installer/70-xorg-vboxmouse.rules \
- "$pkgdir"/lib/udev/rules.d/70-xorg-vboxmouse.rules
install -m755 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
"$pkgdir"/usr/bin/VBoxClient-all
install -m755 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/vboxclient.desktop \
"$pkgdir"/etc/xdg/autostart/vboxclient.desktop
- install -D vboxmouse_drv_110.so \
- "$pkgdir/usr/lib/xorg/modules/input/vboxmouse.so"
install -D vboxvideo_drv_110.so \
"$pkgdir/usr/lib/xorg/modules/drivers/vboxvideo.so"
install -d "$pkgdir/usr/lib/xorg/modules/dri"
@@ -165,6 +159,11 @@ package_virtualbox-archlinux-additions(){
ln -s /usr/lib/VBoxOGL.so "$pkgdir/usr/lib/xorg/modules/dri/vboxvideo_dri.so"
install -m755 -D pam_vbox.so "$pkgdir/lib/security/pam_vbox.so"
+ # install rc.d script
+ install -D -m755 "${srcdir}/vbox-service.rc" "${pkgdir}/etc/rc.d/vbox-service"
+
+ # install sample config
+ install -D -m644 "${srcdir}/vbox-service.conf" "${pkgdir}/etc/conf.d/vbox-service"
}
package_virtualbox-archlinux-modules(){
@@ -193,13 +192,15 @@ package_virtualbox-archlinux-modules(){
sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/virtualbox-archlinux-modules.install"
}
-md5sums=('945d2c94c15a4f47280be4b01b67e244'
- 'cc75a674add48f8b25af2b5e69530a6f'
+md5sums=('dc6e6801b3823332b6ca2e9915221aae'
+ 'bc048d1e58d84ece4a186199ee48d4c8'
'44efb3c4be214daa453a317d527f1f30'
'32a232b43852b9a08cb11a7bcd64b347'
'5f85710e0b8606de967716ded7b2d351'
'ed1341881437455d9735875ddf455fbe'
- '4cf75d9c091199a47a7a1bc2f4e347d9'
+ 'cc3f278bc273011aa95277500a76f677'
'78ffa67ff131680f1d2b6f06d4325c5b'
- '790a1456345fe74b6b714d71f90a1c6d'
- '97e193f050574dd272a38e5ee5ebe62b')
+ 'dda3811f7d94ac55f12b4de707a7c2c2'
+ '97e193f050574dd272a38e5ee5ebe62b'
+ '3c08ad30b89add47d3f45121200a5360'
+ '778d865e56e31cc592fbfa257fdcfce7')
diff --git a/community/virtualbox/vbox-service.conf b/community/virtualbox/vbox-service.conf
new file mode 100644
index 000000000..9d4ec629f
--- /dev/null
+++ b/community/virtualbox/vbox-service.conf
@@ -0,0 +1,2 @@
+# VBoxService -h
+VBOX_SERVICE_OPTION=""
diff --git a/community/virtualbox/vbox-service.rc b/community/virtualbox/vbox-service.rc
new file mode 100755
index 000000000..c1af2134d
--- /dev/null
+++ b/community/virtualbox/vbox-service.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/vbox-service
+
+name=VBoxService
+PID=$(pidof -o %PPID $name)
+
+case "$1" in
+ start)
+ stat_busy "Starting $name service"
+ [[ -z "$PID" ]] && ${name} $VBOX_SERVICE_OPTION &>/dev/null \
+ && { add_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+ stop)
+ stat_busy "Stopping $name service"
+ [[ -n "$PID" ]] && kill $PID &>/dev/null \
+ && { rm_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ status)
+ stat_busy "Checking $name status";
+ ck_status $name
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+ exit 1
+esac
+
+exit 0
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/virtualbox/vboxbuild b/community/virtualbox/vboxbuild
new file mode 100755
index 000000000..1058744c5
--- /dev/null
+++ b/community/virtualbox/vboxbuild
@@ -0,0 +1,78 @@
+#!/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
+
diff --git a/community/virtualbox/vboxdrv-reference.patch b/community/virtualbox/vboxdrv-reference.patch
index 05d840f05..c310dbc8d 100644
--- a/community/virtualbox/vboxdrv-reference.patch
+++ b/community/virtualbox/vboxdrv-reference.patch
@@ -8,7 +8,7 @@ diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp V
- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
- "as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS "
- "package first. This package keeps track of Linux kernel changes and "
-+ " <font color=blue>'rc.d setup vboxdrv'</font><br/><br/>"
++ " <font color=blue>'/usr/bin/vboxbuild'</font><br/><br/>"
+ "as root. This package keeps track of Linux kernel changes and"
"recompiles the vboxdrv kernel module if necessary."
);
@@ -18,7 +18,7 @@ diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp V
"VirtualBox. The installation of VirtualBox was apparently not "
"successful. Executing<br/><br/>"
- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
-+ " <font color=blue>'rc.d setup vboxdrv'</font><br/><br/>"
++ " <font color=blue>'/usr/bin/vboxbuild'</font><br/><br/>"
"may correct this. Make sure that you do not mix the "
"OSE version and the PUEL version of VirtualBox."
);
@@ -30,7 +30,7 @@ diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox-
load. Please recompile the kernel module and install it by
- sudo /etc/init.d/vboxdrv setup
-+ sudo rc.d setup vboxdrv
++ sudo /usr/bin/vboxbuild
You will not be able to start VMs until this problem is fixed.
EOF
@@ -39,7 +39,7 @@ diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox-
WARNING: The character device /dev/vboxdrv does not exist. Try
- sudo /etc/init.d/vboxdrv restart
-+ sudo rc.d restart vboxdrv
++ sudo /usr/bin/vboxbuild
and if that is not successful, try to re-install the package.
diff --git a/community/virtualbox/virtualbox.install b/community/virtualbox/virtualbox.install
index 97a1b52f9..0eac014f2 100644
--- a/community/virtualbox/virtualbox.install
+++ b/community/virtualbox/virtualbox.install
@@ -31,7 +31,7 @@ post_install() {
===> To load it automatically, add vboxdrv module
===> to the MODULES array in /etc/rc.conf.
-*** To compile the modules do rc.d setup vboxdrv ***
+*** To compile the modules do /usr/bin/vboxbuild ***
EOF
utils
@@ -40,7 +40,7 @@ EOF
post_upgrade() {
getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
/bin/cat << EOF
-*** To recompile the modules do rc.d setup vboxdrv ***
+*** To recompile the modules do /usr/bin/vboxbuild ***
EOF
utils
}