wok annotate get-virtualbox/stuff/get-virtualbox @ rev 25503
f3: include extra programs
author | Hans-G?nter Theisgen |
---|---|
date | Fri Jan 27 10:37:43 2023 +0100 (20 months ago) |
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 |