Commit 050cfec3 authored by Seblu's avatar Seblu
Browse files

up


git-svn-id: https://seblu.net/s/archpkg@274 02741741-5192-46b8-8916-7152b19231d9
parent a4b087ed
Loading
Loading
Loading
Loading

virtualbox-bin/10-vboxdrv.rules

deleted100644 → 0
+0 −5
Original line number Diff line number Diff line
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
SUBSYSTEM=="usb_device", ACTION=="add", RUN="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
SUBSYSTEM=="usb_device", ACTION=="remove", RUN="VBoxCreateUSBNode.sh --remove $major $minor"
SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="VBoxCreateUSBNode.sh --remove $major $minor"

virtualbox-bin/PKGBUILD

deleted100644 → 0
+0 −168
Original line number Diff line number Diff line
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: thotypous <matiasΘarchlinux-br·org>
# Contributor: xduugu <xduuguΘgmx·com>
# Contributor: Peter 'piie' Feuerer <peterΘpiie·net>
# Contributor: Sascha Pfau <MrPeacockΘgmail·com>
# Contributor: iggy <iggy.mfΘgmail·com>

pkgname=virtualbox-bin
pkgver=4.1.20
_build=80170
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=('d373823c76c8db0960d6cc89be284f1b'
         '2d04c2e2d8c71558c910a51ec773731a'
         'fe60f9510502bea67383d9198ae8c13c'
         'c159d683ba1947290fc2ad2c64194150'
         '3ac185709bfe688bb753c46e170d0546')
[[ "${CARCH}" = i686 ]] && md5sums[0]='6abea107e150970f263f8a0d463797b2'
_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
      if [[ "$_icon" = 'virtualbox.png' ]]; then
          ln -s "$_installdir/icons/$_dir/$_icon" "$pkgdir/usr/share/icons/hicolor/$_dir/apps/$_icon"
      else
          ln -s "$_installdir/icons/$_dir/$_icon" "$pkgdir/usr/share/icons/hicolor/$_dir/mimetypes/$_icon"
      fi
    done
    cd - >/dev/null
  done
  popd

  # Write the configuration file
  install -D -m 0644 /dev/null "$pkgdir/etc/vbox/vbox.cfg"
  cat > "$pkgdir/etc/vbox/vbox.cfg" <<EOF
# VirtualBox installation directory"
INSTALL_DIR='$_installdir'

# VirtualBox version
INSTALL_VER='$pkgver'
INSTALL_REV='$_build'
EOF

  # Register into DKMS
  install -dm 755 "$pkgdir/var/lib/dkms/vboxhost/$pkgver"
  ln -s '/opt/VirtualBox/src/vboxhost' "$pkgdir/var/lib/dkms/vboxhost/$pkgver/source"

}

# vim:set ts=2 sw=2 ft=sh et:

virtualbox-bin/VBoxFixUSB

deleted100644 → 0
+0 −16
Original line number Diff line number Diff line
#!/bin/bash
# 2012: Seblu was here

. /etc/vbox/vbox.cfg

# Build our device tree
for i in /sys/bus/usb/devices/*; do
  if test -r "$i/dev"; then
    dev="`cat "$i/dev" 2> /dev/null`"
    major="`expr "$dev" : '\(.*\):' 2> /dev/null`"
    minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null`"
    class="`cat $i/bDeviceClass 2> /dev/null`"
    sh "$INSTALL_DIR/VBoxCreateUSBNode.sh" "$major" "$minor" "$class" 2>/dev/null
  fi
done
# vim:set ts=2 sw=2 ft=sh et:

virtualbox-bin/install

deleted100644 → 0
+0 −87
Original line number Diff line number Diff line
#!/bin/bash

update_databases() {
  # Update mime database
  type -P update-mime-database &>/dev/null &&
    update-mime-database /usr/share/mime &>/dev/null

  # Update xdg icon database
  type -P xdg-icon-resource &>/dev/null &&
    xdg-icon-resource forceupdate --theme hicolor &>/dev/null

  # Update desktop database
  type -P update-desktop-database &>/dev/null &&
    update-desktop-database -q &>/dev/null
}

# arg 1:  the new package version
post_install() {
  # Add vboxusers group, GID 108 is reserved (http://wiki.archlinux.org/index.php/UID_and_GID_list),
  getent group vboxusers &> /dev/null || groupadd -f -g 108 vboxusers

  # Load new udev rule for module vboxdrv
  udevadm control --reload-rules

  # Update databases
  update_databases

  # Show warnings
  cat <<EOF

==> Remember to add allowed users to the vboxusers group:
==> # gpasswd -a USERNAME vboxusers
==
==> To compile/load virtualbox modules automatically at startup you can add dkms in your DAEMONS
==
==> To build and install your modules run dkms autoinstall
EOF
}

# arg 1:  the new package version
# arg 2:  the old package version
pre_upgrade() {
  # should be $2... pacman is bugged FS#29371.
  pre_remove "$2"

  # Remove any stuff remaining from the module compilation
  rm -Rf "/opt/VirtualBox"
}

# arg 1:  the new package version
# arg 2:  the old package version
post_upgrade() {
  post_install "$1"
  (($(vercmp $2 '4.1.14-2') < 0 )) && cat <<EOF || true

==> **Warning**
==> This version drop vboxdrv initscript.
==> Please change to dkms instead of vboxdrv in DAEMONS in rc.conf.
==>
EOF
}

# arg 1:  the old package version
pre_remove() {
  # Stop running services
  #[[ -x /etc/rc.d/vboxweb ]] && /etc/rc.d/vboxweb stop >/dev/null

  # Remove modules
  [[ -n $1 ]] && dkms remove vboxhost/${1%-*} --all >/dev/null || true
}

# arg 1:  the old package version
post_remove() {
  # Remove any stuff remaining from the module compilation
  rm -Rf "/opt/VirtualBox"

  # Remove any run files
  rm -Rf "/var/run/VirtualBox"

  # Update databases
  update_databases

  # remove vboxusers group
  groupdel vboxusers &>/dev/null || true
}

# vim:set ts=2 sw=2 ft=sh et:

virtualbox-bin/vboxweb.conf

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
# WebService Mandatory Variables
#VBOXWEB_USER=

# WebService Variables
#VBOXWEB_LOGFILE=
#$VBOXWEB_HOST=
#$VBOXWEB_PORT=
#$VBOXWEB_TIMEOUT=
#$VBOXWEB_CHECK_INTERVAL=
#$VBOXWEB_THREADS=
#$VBOXWEB_KEEPALIVE=
Loading