# Maintainer: M0Rf30 # Contributor: SГѓВ©bastien Luttringer # Contributor: Lukas Fleischer # Contributor: thotypous # Contributor: xduugu # Contributor: Peter 'piie' Feuerer # Contributor: Sascha Pfau # Contributor: iggy pkgname=virtualbox-bin pkgver=4.3.4 _build=91027 pkgrel=1 pkgdesc='Oracle VM VirtualBox Binary Edition' arch=('i686' 'x86_64') url='http://virtualbox.org/' license=('GPL2') options=('!strip') depends=( 'dkms' 'fontconfig' 'gcc' 'libgl' 'libidl2' 'libxcursor' 'libxinerama' 'libxmu' 'linux-headers' 'python2' 'sdl' ) optdepends=('virtualbox-ext-oracle: for Oracle extensions') provides=("virtualbox=${pkgver}") conflicts=('virtualbox' 'virtualbox-ose' 'virtualbox-modules') replaces=('virtualbox_bin' 'virtualbox-sun') backup=('etc/vbox/vbox.cfg' 'etc/conf.d/vboxweb') install='install' _arch='amd64' [[ "${CARCH}" = i686 ]] && _arch='x86' source=( "VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run::http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run" 'VBoxFixUSB' '10-vboxdrv.rules' 'vboxweb.rc' 'vboxweb.conf' ) md5sums=('037d4f1b779764903866a63224d21a10' '2d04c2e2d8c71558c910a51ec773731a' 'fe60f9510502bea67383d9198ae8c13c' 'c159d683ba1947290fc2ad2c64194150' '3ac185709bfe688bb753c46e170d0546') [[ "${CARCH}" = i686 ]] && md5sums[0]='87018c5d87a8ce57759d24b48a46fa2c' _installdir='/opt/VirtualBox' package() { # Check and unpack the run package via sh(1) sh "VirtualBox-$pkgver-$_build-Linux_$_arch.run" --check echo yes | sh "VirtualBox-$pkgver-$_build-Linux_$_arch.run" --target "$srcdir" \ --nox11 --noexec &> /dev/null # Unpack bundled files install -d "$pkgdir/$_installdir" cd "$pkgdir/$_installdir" tar -xjf "$srcdir/VirtualBox.tar.bz2" # Hardened build: Mark binaries suid root, create symlinks for working around # unsupported $ORIGIN/.. in VBoxC.so and make sure the # directory is only writable by the user (paranoid). chmod 4511 VirtualBox VBox{SDL,Headless,NetDHCP,NetAdpCtl} for _lib in VBox{VMM,REM,RT,DDU,XPCOM}.so; do ln -sf "$_installdir/$_lib" "components/$_lib" done chmod go-w . # Replace VirtualBox built-in Qt by system Qt libraries (disabled as of # 2010-03-26, 3.1.6-1) #for _lib in libQt{Core,Gui,Network,OpenGL}; do # rm "${_lib}VBox.so.4" # ln -s "/usr/lib/${_lib}.so.4" "${_lib}VBox.so.4" #done # Install the SDK pushd 'sdk/installer' VBOX_INSTALL_PATH="${_installdir}" python2 vboxapisetup.py install --root "${pkgdir}" rm -r -f build popd # Install udev rules install -D -m 0644 "$srcdir/10-vboxdrv.rules" "$pkgdir/usr/lib/udev/rules.d/10-vboxdrv.rules" # we need to move and not symlink VBoxCreateUSBNode.sh in /usr/lib/udev to avoid udevd # to look /opt when /opt is not mounted. This can be done until VBoxCreateUSBNode.sh doesn't # need more stuff from /opt mv VBoxCreateUSBNode.sh "$pkgdir/usr/lib/udev/" # Install Fixusb script install -D -m 0755 "$srcdir/VBoxFixUSB" VBoxFixUSB # Patch "vboxshell.py" to use Python 2.x instead of Python 3 sed -i 's#/usr/bin/python#\02#' vboxshell.py # Update Arch initscripts way of life in VBox.sh sed -i -e 's,sudo /etc/init.d/vboxdrv setup,/etc/rc.d/dkms start,g' \ "$pkgdir/$_installdir/VBox.sh" sed -i -e 's,sudo /etc/init.d/vboxdrv restart,/etc/rc.d/dkms start,g' \ "$pkgdir/$_installdir/VBox.sh" # Install vboxweb initscript install -D -m 0755 "$srcdir/vboxweb.rc" "$pkgdir/etc/rc.d/vboxweb" install -D -m 0644 "$srcdir/vboxweb.conf" "$pkgdir/etc/conf.d/vboxweb" # Symlink the launchers. Second link can fail if fs is not case sensitive. install -d -m 0755 "$pkgdir/usr/bin" for _bin in VirtualBox VBox{Headless,Manage,SDL,SVC,Tunctl,NetAdpCtl,FixUSB} rdesktop-vrdp; do ln -s "$_installdir/$_bin" "$pkgdir/usr/bin/$_bin" ln -s "$_installdir/$_bin" "$pkgdir/usr/bin/${_bin,,}" &>/dev/null || : done # Symlink the desktop icon and ".desktop" files install -d -m 0755 "$pkgdir/usr/"{share/applications,share/pixmaps} ln -s "$_installdir/VBox.png" "$pkgdir/usr/share/pixmaps/VBox.png" ln -s "$_installdir/icons/128x128/virtualbox.png" "$pkgdir/usr/share/pixmaps/virtualbox.png" ln -s "$_installdir/virtualbox.desktop" "$pkgdir/usr/share/applications/virtualbox.desktop" # Symlink mime info install -d -m 0755 "$pkgdir/usr/share/mime/packages" ln -s "$_installdir/virtualbox.xml" "$pkgdir/usr/share/mime/packages/virtualbox.xml" # Symlink doc install -d -m 0755 "$pkgdir/usr/share/doc/$pkgname" ln -s "$_installdir/VirtualBox.chm" "$pkgdir/usr/share/doc/$pkgname/virtualbox.chm" # Symlink module sources in /usr/src install -d -m 0755 "$pkgdir/usr/src" ln -s "$_installdir/src/vboxhost" "$pkgdir/usr/src/vboxhost-$pkgver" # Symlink icons pushd icons for _dir in *; do cd "$_dir" install -d -m 0755 "$pkgdir/usr/share/icons/hicolor/$_dir/"{apps,mimetypes} for _icon in *; do