summaryrefslogtreecommitdiff
path: root/community/virtualbox
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/virtualbox
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/virtualbox')
-rw-r--r--community/virtualbox/10-vboxdrv.rules5
-rw-r--r--community/virtualbox/60-vboxguest.rules2
-rw-r--r--community/virtualbox/LocalConfig.kmk17
-rw-r--r--community/virtualbox/PKGBUILD211
-rw-r--r--community/virtualbox/vboxdrv-reference.patch43
-rwxr-xr-xcommunity/virtualbox/vboxdrv.sh80
-rw-r--r--community/virtualbox/virtualbox-4-makeself-check.patch10
-rw-r--r--community/virtualbox/virtualbox-4-mkisofs-check.patch10
-rw-r--r--community/virtualbox/virtualbox-guest-modules.install24
-rw-r--r--community/virtualbox/virtualbox.install65
10 files changed, 467 insertions, 0 deletions
diff --git a/community/virtualbox/10-vboxdrv.rules b/community/virtualbox/10-vboxdrv.rules
new file mode 100644
index 000000000..37403ae2f
--- /dev/null
+++ b/community/virtualbox/10-vboxdrv.rules
@@ -0,0 +1,5 @@
+KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600" ENV{ACL_MANAGE}="1"
+SUBSYSTEM=="usb_device", ACTION=="add", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
diff --git a/community/virtualbox/60-vboxguest.rules b/community/virtualbox/60-vboxguest.rules
new file mode 100644
index 000000000..6285f7249
--- /dev/null
+++ b/community/virtualbox/60-vboxguest.rules
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
+ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/community/virtualbox/LocalConfig.kmk b/community/virtualbox/LocalConfig.kmk
new file mode 100644
index 000000000..1a17127a0
--- /dev/null
+++ b/community/virtualbox/LocalConfig.kmk
@@ -0,0 +1,17 @@
+VBOX_WITH_ADDITION_DRIVERS =
+VBOX_WITH_INSTALLER = 1
+VBOX_WITH_LINUX_ADDITIONS = 1
+VBOX_WITH_X11_ADDITIONS = 1
+VBOX_WITH_TESTCASES =
+VBOX_WITH_TESTSUITE =
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS := /usr/share/virtualbox
+VBOX_WITH_REGISTRATION_REQUEST =
+VBOX_WITH_UPDATE_REQUEST =
+VBOX_WITH_VNC := 1
+VBOX_BLD_PYTHON = python2
+VBOX_JAVA_HOME = /opt/java
diff --git a/community/virtualbox/PKGBUILD b/community/virtualbox/PKGBUILD
new file mode 100644
index 000000000..82dcee682
--- /dev/null
+++ b/community/virtualbox/PKGBUILD
@@ -0,0 +1,211 @@
+# $Id: PKGBUILD 41913 2011-03-11 00:29:44Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgbase=virtualbox
+pkgname=('virtualbox' 'virtualbox-guest-additions' 'virtualbox-guest-modules' 'virtualbox-sdk')
+pkgver=4.0.4
+pkgrel=2
+arch=('i686' 'x86_64')
+url='http://virtualbox.org'
+license=('GPL' 'custom')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libxcursor' 'qt' 'libidl2' 'sdl_ttf' 'alsa-lib' 'libpulse' 'libxtst'
+'xalan-c' 'sdl' 'libxmu' 'curl' 'python2' 'kernel26-headers>=2.6.37' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'jdk' 'gsoap' 'vde2')
+[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
+ 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)
+_kernver=2.6.37-ARCH
+
+build() {
+ cd "$srcdir/VirtualBox-${pkgver}_OSE"
+
+ patch -Np1 -i "$srcdir/virtualbox-4-makeself-check.patch"
+ patch -Np1 -i "$srcdir/virtualbox-4-mkisofs-check.patch"
+ patch -Np1 -i "$srcdir/vboxdrv-reference.patch"
+
+ cp "$srcdir/LocalConfig.kmk" .
+
+ ./configure --disable-docs \
+ --enable-webservice \
+ --enable-vde \
+ --with-linux=/usr/src/linux-${_kernver}
+ source ./env.sh
+ kmk all
+
+ export KERN_DIR=/usr/src/linux-${_kernver}
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src/vboxvideo"
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' "out/linux.$BUILD_PLATFORM_ARCH/release/bin/vboxshell.py"
+}
+
+package_virtualbox() {
+ pkgdesc="Powerful x86 virtualization for enterprise as well as home use"
+ depends=('libxml2' 'libxcursor' 'libidl2' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng' 'kernel26-headers' 'gcc' 'make')
+ optdepends=('libxt: for shared clipboard'
+ 'python2: for python support'
+ 'java-runtime: java bindings'
+ 'qt: for VirtualBox GUI'
+ 'vde2: Virtual Distributed Ethernet support'
+ 'virtualbox-sdk: developer kit')
+
+ replaces=('virtualbox-ose')
+ conflicts=('virtualbox-ose')
+ install=virtualbox.install
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ mkdir -p "$pkgdir"/usr/{bin,lib/virtualbox/components,lib/virtualbox/ExtensionPacks,share/virtualbox/nls}
+
+ #doc
+ install -m 0644 "$srcdir/UserManual.pdf" "$pkgdir/usr/share/virtualbox/UserManual.pdf"
+
+ #Binaries and Wrapper with Launchers
+ install -m 0755 VBox.sh "$pkgdir/usr/bin/VBox"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxHeadless"
+ ln -sf VBox "$pkgdir/usr/bin/vboxheadless"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxManage"
+ ln -sf VBox "$pkgdir/usr/bin/vboxmanage"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxSDL"
+ ln -sf VBox "$pkgdir/usr/bin/vboxsdl"
+ ln -sf VBox "$pkgdir/usr/bin/VirtualBox"
+ ln -sf VBox "$pkgdir/usr/bin/virtualbox"
+ ln -sf VBox "$pkgdir/usr/bin/vboxwebsrv"
+
+ install -m 0755 VBoxTunctl "$pkgdir/usr/bin"
+
+ #components
+ install -m 0755 components/* -t "$pkgdir/usr/lib/virtualbox/components"
+
+ #lib
+ install -m 0755 *.so "$pkgdir/usr/lib/virtualbox"
+ install -m 0644 *.gc *.r0 VBoxEFI*.fd "$pkgdir/usr/lib/virtualbox"
+
+ #setuid root binaries
+ install -m 4755 VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl -t "$pkgdir/usr/lib/virtualbox"
+ #other binaries
+ install -m 0755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL vboxwebsrv webtest -t "$pkgdir/usr/lib/virtualbox"
+
+ #language
+ install -m 0755 nls/*.qm -t "$pkgdir/usr/share/virtualbox/nls"
+
+ #useless scripts
+ install -m 0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh -t "$pkgdir/usr/share/virtualbox"
+
+ #icons
+ install -D -m 0644 VBox.png "$pkgdir/usr/share/pixmaps/VBox.png"
+
+ pushd icons
+ for i in *; do
+ install -d "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ cp $i/* "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ done
+ popd
+
+ #desktop
+ install -D -m 0644 virtualbox.desktop "$pkgdir/usr/share/applications/virtualbox.desktop"
+ install -D -m 0644 virtualbox.xml "$pkgdir/usr/share/mime/packages/virtualbox.xml"
+
+ #install configuration
+ mkdir -p "$pkgdir/etc/vbox"
+ echo 'INSTALL_DIR=/usr/lib/virtualbox' > "$pkgdir/etc/vbox/vbox.cfg"
+
+ #udev and licence
+ install -D -m 0644 "$srcdir/VirtualBox-${pkgver}_OSE/COPYING" \
+ "$pkgdir/usr/share/licenses/virtualbox/LICENSE"
+ install -D -m 0644 "$srcdir/10-vboxdrv.rules" \
+ "$pkgdir/lib/udev/rules.d/10-vboxdrv.rules"
+
+ #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"
+}
+
+package_virtualbox-sdk() {
+ pkgdesc=" VirtualBox Software Developer Kit (SDK)"
+
+ mkdir -p "$pkgdir/usr/lib/virtualbox"
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ install -D -m 0755 vboxshell.py "$pkgdir/usr/lib/virtualbox/vboxshell.py"
+ #python sdk
+ pushd sdk/installer
+ VBOX_INSTALL_PATH="/usr/lib/virtualbox" python2 vboxapisetup.py install --root "${pkgdir}"
+ popd
+ rm -rf sdk/installer
+ mv sdk "$pkgdir/usr/lib/virtualbox"
+}
+package_virtualbox-guest-additions(){
+ pkgdesc="VirtualBox user-space tools for Linux guests"
+ depends=("virtualbox-guest-modules=$pkgver" 'gcc-libs' 'libxmu')
+ replaces=('virtualbox-ose-additions')
+ conflicts=('virtualbox-ose-additions')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+
+ install -d "$pkgdir/usr/bin"
+ install -d "$pkgdir/sbin"
+ 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_19.so \
+ "$pkgdir/usr/lib/xorg/modules/input/vboxmouse.so"
+ install -D vboxvideo_drv_19.so \
+ "$pkgdir/usr/lib/xorg/modules/drivers/vboxvideo.so"
+ install -d "$pkgdir/usr/lib/xorg/modules/dri"
+ install -m755 VBoxOGL*.so "$pkgdir/usr/lib"
+ 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"
+
+}
+package_virtualbox-guest-modules(){
+ pkgdesc="VirtualBox kernel modules for Linux guests"
+ license=('GPL')
+ install=virtualbox-guest-modules.install
+ depends=('kernel26>=2.6.37' 'kernel26<2.6.38')
+ replaces=('virtualbox-ose-additions-modules')
+ conflicts=('virtualbox-ose-additions-modules')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+
+ cd vboxguest
+ install -D -m644 vboxguest.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxguest.ko"
+
+ cd ../vboxsf
+ install -D -m644 vboxsf.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxsf.ko"
+
+ cd ../vboxvideo
+ install -D -m644 vboxvideo.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxvideo.ko"
+
+ install -D -m 0644 "$srcdir/60-vboxguest.rules" \
+ "$pkgdir/lib/udev/rules.d/60-vboxguest.rules"
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/virtualbox-guest-modules.install"
+}
+md5sums=('b4770ca14d1a8cbad9b3eb0e0028ff4b'
+ 'bf8007eea0042f745b3c252bbe7586c2'
+ '44efb3c4be214daa453a317d527f1f30'
+ '32a232b43852b9a08cb11a7bcd64b347'
+ '5f85710e0b8606de967716ded7b2d351'
+ 'ed1341881437455d9735875ddf455fbe'
+ '94514e006e73cc2fa90259a4e0eec04b'
+ '0f3f273cdbc54db221f737ad4f761c11'
+ '47da2e88de582bb2bab14580a3aa47b1')
diff --git a/community/virtualbox/vboxdrv-reference.patch b/community/virtualbox/vboxdrv-reference.patch
new file mode 100644
index 000000000..ed5e7f377
--- /dev/null
+++ b/community/virtualbox/vboxdrv-reference.patch
@@ -0,0 +1,43 @@
+--- VirtualBox-4.0.2_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
++++ VirtualBox-4.0.2_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
+@@ -75,9 +75,8 @@
+ "The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or "
+ "there is a permission problem with /dev/vboxdrv. Please reinstall the kernel "
+ "module by executing<br/><br/>"
+- " <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>'/etc/rc.d/vboxdrv setup'</font><br/><br/>"
++ "as root. This package keeps track of Linux kernel changes and"
+ "recompiles the vboxdrv kernel module if necessary."
+ );
+
+@@ -92,7 +91,7 @@
+ "The VirtualBox kernel modules do not match this version of "
+ "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>'/etc/rc.d/vboxdrv setup'</font><br/><br/>"
+ "may correct this. Make sure that you do not mix the "
+ "OSE version and the PUEL version of VirtualBox."
+ );
+--- VirtualBox-4.0.2_OSE/src/VBox/Installer/linux/VBox.sh
++++ VirtualBox-4.0.2_OSE/src/VBox/Installer/linux/VBox.sh
+@@ -34,7 +34,7 @@
+ available for the current kernel (`uname -r`) or it failed to
+ load. Please recompile the kernel module and install it by
+
+- sudo /etc/init.d/vboxdrv setup
++ /etc/rc.d/vboxdrv setup
+
+ You will not be able to start VMs until this problem is fixed.
+ EOF
+@@ -42,7 +42,7 @@
+ cat << EOF
+ WARNING: The character device /dev/vboxdrv does not exist. Try
+
+- sudo /etc/init.d/vboxdrv restart
++ /etc/rc.d/vboxdrv restart
+
+ and if that is not successful, try to re-install the package.
+ \ No newline at end of file
diff --git a/community/virtualbox/vboxdrv.sh b/community/virtualbox/vboxdrv.sh
new file mode 100755
index 000000000..8de14b97f
--- /dev/null
+++ b/community/virtualbox/vboxdrv.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/vbox/vbox.cfg
+
+MODLIST=()
+LOG="/var/log/vbox-install.log"
+
+if [ -n "$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"
+else
+ echo "missing vbox.cfg"
+ exit 0
+fi
+
+case "$1" in
+ setup)
+ stat_busy "Unloading VirtualBox kernel modules"
+ for module in vbox{netflt,netadp,drv}; do
+ if grep -q "^${module}" /proc/modules; then
+ MODLIST+=($module)
+ modprobe -r $module
+ fi
+ done
+ stat_done
+ for p in /lib/modules/*; do
+ if [ ! -d "$p/kernel" ]; then
+ if [ -e "$p/misc/vboxdrv.ko" ]; then
+ stat_busy "Removing old VirtualBox kernel modules from $p"
+ rm -f "$p/misc/vbox"{drv,netadp,netflt}.ko 2>/dev/null
+ rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null
+ stat_done
+ fi
+ fi
+ done
+ if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then
+ stat_busy "Removing old VirtualBox netadp kernel module"
+ find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then
+ stat_busy "Removing old VirtualBox netflt kernel module"
+ find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then
+ stat_busy "Removing old VirtualBox kernel module"
+ find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ stat_busy "Recompiling VirtualBox kernel modules"
+ if ! $BUILDVBOXDRV \
+ --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"
+ fi
+ if ! $BUILDVBOXNETFLT \
+ --use-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ if ! $BUILDVBOXNETADP \
+ --use-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ stat_done
+ stat_busy "Reloading VirtualBox kernel modules"
+ for module in "${MODLIST[@]}"; do
+ modprobe $module
+ done
+ stat_done
+ ;;
+ *)
+ echo "usage: $0 {setup}"
+esac
diff --git a/community/virtualbox/virtualbox-4-makeself-check.patch b/community/virtualbox/virtualbox-4-makeself-check.patch
new file mode 100644
index 000000000..e1fcb8c2f
--- /dev/null
+++ b/community/virtualbox/virtualbox-4-makeself-check.patch
@@ -0,0 +1,10 @@
+--- VirtualBox-4.0.0_OSE/configure
++++ VirtualBox-4.0.0_OSE/configure
+@@ -2527,7 +2527,6 @@
+ check_compiler_h
+ [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit
+ # tools/common/makeself*
+- [ $OSE -ge 1 ] && check_makeself
+ fi
+
+ [ -n "$SETUP_WINE" ] && setup_wine
diff --git a/community/virtualbox/virtualbox-4-mkisofs-check.patch b/community/virtualbox/virtualbox-4-mkisofs-check.patch
new file mode 100644
index 000000000..8b0d59123
--- /dev/null
+++ b/community/virtualbox/virtualbox-4-mkisofs-check.patch
@@ -0,0 +1,10 @@
+--- VirtualBox-4.0.0_OSE/configure
++++ VirtualBox-4.0.0_OSE/configure
+@@ -2499,7 +2499,6 @@
+ # don't check for yasm for the time beeing as 0.40 and 0.50 both have known bugs
+ # [ "$OS" != "darwin" ] && check_yasm
+ [ "$OS" != "darwin" ] && check_xsltproc
+-[ "$OS" != "darwin" ] && check_mkisofs
+
+ # the libraries
+ [ "$OS" != "darwin" ] && check_pthread
diff --git a/community/virtualbox/virtualbox-guest-modules.install b/community/virtualbox/virtualbox-guest-modules.install
new file mode 100644
index 000000000..51389ca87
--- /dev/null
+++ b/community/virtualbox/virtualbox-guest-modules.install
@@ -0,0 +1,24 @@
+KERNEL_VERSION='2.6.37-ARCH'
+
+post_install() {
+ cat << EOM
+
+===> virtualbox-guest-modules post-install message:
+===>
+===> You may want to load vboxguest, vboxsf and vboxvideo
+===>
+===> To load them automatically, add them
+===> to the MODULES array in /etc/rc.conf.
+
+EOM
+
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
+
+post_remove() {
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
+
+post_upgrade() {
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
diff --git a/community/virtualbox/virtualbox.install b/community/virtualbox/virtualbox.install
new file mode 100644
index 000000000..e70757685
--- /dev/null
+++ b/community/virtualbox/virtualbox.install
@@ -0,0 +1,65 @@
+utils() {
+ if [ -x usr/bin/update-mime-database ]; then
+ update-mime-database usr/share/mime > /dev/null 2>&1
+ fi
+
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor > /dev/null 2>&1
+ fi
+
+ if [ -x usr/bin/update-desktop-database ]; then
+ usr/bin/update-desktop-database -q
+ fi
+}
+
+post_install() {
+ getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
+ /bin/cat << EOF
+
+===> In order to run VirtualBox, you have to be in the 'vboxusers' group.
+===>
+===> If you want to be able to install guest additions, you have to install
+===> 'virtualbox-additions' package.
+===>
+===> You must load vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+===>
+===> You must load vboxnetflt for Host Interface Networking:
+===> # modprobe vboxnetflt
+===>
+===> You must load vboxnetadp for Host-Only networking:
+===> # modprobe vboxnetadp
+===>
+===> To load it automatically, add vboxdrv module
+===> to the MODULES array in /etc/rc.conf.
+
+*** To compile the modules do /etc/rc.d/vboxdrv setup ***
+
+EOF
+ utils
+}
+
+post_upgrade() {
+ getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
+ /bin/cat << EOF
+===> You must reload vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+===>
+===> You must reload vboxnetflt for Host Interface Networking:
+===> # modprobe vboxnetflt
+===>
+===> You must reload vboxnetadp for Host-Only networking:
+===> # modprobe vboxnetadp
+===>
+===> To load it automatically, add vboxdrv module
+===> to the MODULES array in /etc/rc.conf.
+
+*** To recompile the modules do /etc/rc.d/vboxdrv setup ***
+EOF
+ utils
+}
+
+post_remove() {
+ groupdel vboxusers >/dev/null 2>&1 || true
+ utils
+}