wok annotate get-virtualbox/stuff/get-virtualbox @ rev 16195

Up: asunder (2.5)
author Alexander Medvedev <devl547@gmail.com>
date Sun Mar 30 21:05:49 2014 +0000 (2014-03-30)
parents 76814f25dbcf
children
rev   line source
pascal@3999 1 #!/bin/sh -e
pascal@3999 2
pascal@13408 3 PACKAGE=${0#*get-}
pascal@13408 4 WEB_SITE=http://www.virtualbox.org/
pascal@13408 5 SHORT_DESC="x86 virtualization."
pascal@13408 6 DEPENDS="libsdl fontconfig gcc-lib-base glib libpng python udev mesa libglu-mesa"
shann@13913 7 BUILD_DEPENDS="slitaz-toolchain bzip2 linux-source linux-module-headers python python-dev coreutils-command"
pascal@13408 8
pascal@3999 9 ROOT="$1"
pascal@3999 10
pascal@3999 11 if test $(id -u) != 0 ; then
pascal@3999 12 echo -e "\nYou must be root to run `basename $0`."
pascal@3999 13 echo -e "Please type 'su' and root password to become super-user.\n"
pascal@3999 14 exit 0
pascal@3999 15 fi
pascal@3999 16
pascal@3999 17 if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ]; then
pascal@13408 18 [ -n "$ROOT" ] && exit 1
pascal@13408 19 tazpkg remove $PACKAGE
pascal@13408 20 [ -d /var/lib/tazpkg/installed/$PACKAGE ] && exit 1
pascal@3999 21 fi
pascal@3999 22 [ -d $ROOT/usr/share/$PACKAGE ] && rm -rf $ROOT/usr/share/$PACKAGE
pascal@3999 23
pascal@13408 24 case "$(uname -m)" in
pascal@13408 25 i?86) linux_run="Linux_x86.run" ;;
pascal@13408 26 x86_64) linux_run="Linux_amd64.run" ;;
pascal@13408 27 esac
pascal@13408 28
pascal@3999 29 dl_url()
pascal@3999 30 {
pascal@13408 31 wget --no-check-certificate -O - \
pascal@13408 32 ${WEB_SITE}wiki/Linux_Downloads 2> /dev/null | \
pascal@13408 33 grep $linux_run | sed 's|.*href="\(.*'$linux_run'\).*|\1|'
pascal@3999 34 }
pascal@3999 35
pascal@3999 36 TMP_DIR=/tmp/get-$PACKAGE-$$-$RANDOM
pascal@3999 37 CUR_DIR=$(pwd)
pascal@3999 38 mkdir -p $TMP_DIR && cd $TMP_DIR
pascal@3999 39
pascal@3999 40 url=$(dl_url)
pascal@11020 41 TARBALL="$PACKAGE files"
pascal@11020 42 if [ -n "$url" ]; then
pascal@11020 43 TARBALL=$(basename $url)
pascal@11020 44 wget $url
pascal@11020 45 fi
pascal@3999 46
pascal@3999 47 if [ ! -f "$TARBALL" ]; then
pascal@3999 48 cd $CUR_DIR
pascal@3999 49 rm -rf $TMP_DIR
pascal@3999 50 echo "Could not download $TARBALL. Exiting."
pascal@3999 51 exit 1
pascal@3999 52 fi
pascal@3999 53
pascal@13408 54 VERSION=${TARBALL%-$linux_run*}
pascal@3999 55 VERSION=${VERSION#VirtualBox-}
pascal@3999 56
pascal@3999 57 sed -i 's/df -kP/df -k/' $TARBALL
pascal@3999 58
pascal@3999 59 # Extract
pascal@3999 60 sh $TARBALL --noexec --keep
pascal@3999 61
pascal@3999 62 for i in $BUILD_DEPENDS; do
pascal@3999 63 [ -d /var/lib/tazpkg/installed/$i ] && continue
pascal@3999 64 yes y | tazpkg get-install $i
pascal@3999 65 done
pascal@10950 66 [ -d /lib/modules/$(uname -r)/source ] || get-linux-source
pascal@10950 67 [ -d /lib/modules/$(uname -r)/build ] ||
pascal@10950 68 cp -a /lib/modules/$(uname -r)/source /lib/modules/$(uname -r)/build
pascal@3999 69
pascal@3999 70 # Install files
pascal@3999 71 cd install
pascal@10950 72 [ -d /usr/share/VirtualBox -o -d /opt/VirtualBox ] && ./uninstall.sh
pascal@10950 73 [ -d /opt ] || mkdir /opt
pascal@10950 74 find /usr /etc /lib /opt > ../before
pascal@10950 75 ./install.sh install
pascal@3999 76 cd ..
pascal@10950 77 find /usr /etc /lib /opt > after
pascal@10950 78 sed -i 's/ps -U/ps | grep/' /opt/VirtualBox/VBox.sh
pascal@10951 79 chmod 644 /opt/VirtualBox/VBoxVMM.so
pascal@4004 80 echo 'lsmod | grep -q vboxdrv || modprobe vboxdrv' >> /etc/vbox/vbox.cfg
pascal@3999 81 mkdir -p $PACKAGE-$VERSION/fs
pascal@3999 82 diff -U0 before after | grep ^+/ | sed 's|^\+/||' | \
pascal@3999 83 ( cd / ; cpio -o -H newc ) | ( cd $PACKAGE-$VERSION/fs ; cpio -idm )
pascal@3999 84
pascal@5821 85 MODULE_LIST="vboxdrv vboxnetadp vboxnetflt"
pascal@3999 86 # Create pseudo package
pascal@3999 87 cat > $PACKAGE-$VERSION/receipt <<EOT
pascal@3999 88 # SliTaz package receipt.
pascal@3999 89
pascal@3999 90 PACKAGE="$PACKAGE"
pascal@3999 91 VERSION="$VERSION"
pascal@3999 92 EXTRAVERSION=_$(uname -r | sed 's/-slitaz//')
pascal@3999 93 CATEGORY="non-free"
pascal@3999 94 SHORT_DESC="$SHORT_DESC"
pascal@3999 95 WEB_SITE="$WEB_SITE"
pascal@13408 96 DEPENDS="$DEPENDS"
pascal@5752 97
pascal@5752 98 pre_remove()
pascal@5752 99 {
pascal@13408 100 sed -i 's/$MODULE_LIST //' \$1/etc/rcS.conf
pascal@13408 101 chroot "\$1/" delgroup vboxusers
pascal@5752 102 }
pascal@3999 103
pascal@3999 104 post_install()
pascal@3999 105 {
pascal@3999 106 $(grep ' udev[atp]' install/install.sh)
pascal@13408 107 chroot "\$1/" depmod -a $(uname -r)
pascal@13408 108 [ -n "\$1" ] || for i in $MODULE_LIST; do modprobe \$i ; done
pascal@13408 109 grep -qs vboxdrv \$1/etc/rcS.conf ||
pascal@13408 110 sed -i 's/^LOAD_MODULES="/&$MODULE_LIST /' \$1/etc/rcS.conf
pascal@13408 111
pascal@13408 112 # Add vboxusers group
pascal@13408 113 grep -qs ^vboxusers \$1/etc/group ||
pascal@13408 114 chroot "\$1/" addgroup vboxusers
pascal@3999 115 }
pascal@3999 116 EOT
pascal@3999 117
pascal@3999 118 # Pack
pascal@3999 119 tazpkg pack $PACKAGE-$VERSION
pascal@3999 120
pascal@3999 121 # Install pseudo package
pascal@3999 122 tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT
pascal@10951 123 case " $@ " in
pascal@10951 124 *\ --k*) mv $PACKAGE-$VERSION.tazpkg $CUR_DIR ;;
pascal@10951 125 esac
pascal@3999 126
pascal@3999 127 # Clean
pascal@3999 128 cd $CUR_DIR
pascal@3999 129 rm -rf $TMP_DIR