wok view get-softmodem-driver/stuff/get-softmodem-driver @ rev 3453

get-softmodem-driver: hsfmodem up to 7.80.02.04
author Dominique Corbex <domcox@users.sourceforge.net>
date Mon Jun 15 15:05:01 2009 +0200 (2009-06-15)
parents d1e04eb36da3
children 60e75b775499
line source
1 #!/bin/sh
2 # install softmodems drivers if needed.
4 PACKAGE=$(echo $0 | sed 's/.*get-\(.*\)-driver/\1/')
5 ROOT="$1"
6 DEPENDS=""
8 case "$PACKAGE" in
9 hsfmodem)
10 . /usr/share/softmodem/hsfmodem.receipt
11 ;;
12 *) echo "Unknown modem driver. Please run one of the following commands:"
13 for i in $(cd $(dirname $0); ls get-*-driver); do
14 [ -L $i ] || continue
15 [ "$(readlink $i)" = "get-modem-driver" ] || continue
16 echo " $i"
17 done
18 exit 1;;
19 esac
21 # Check if user is root to install.
22 if test $(id -u) != 0 ; then
23 echo -e "\nYou must be root to run `basename $0`."
24 echo -e "Please use 'su' and root password to become super-user.\n"
25 exit 0
26 fi
28 # Avoid reinstall
29 if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ]; then
30 echo -e "\n$PACKAGE-$VERSION package is already installed.\n"
31 exit 0
32 fi
34 # Check linux-source
35 cp /proc/config.gz . && gunzip config.gz
36 DIFF=$(diff /usr/src/linux/.config config | awk 'BEGIN{i=0}/^[-+]/{ i++} END{print i}')
37 rm -f config config.gz
38 if [ $DIFF -gt 2 ]; then
39 echo "Warning: Linux source .config file and currently installed kernel don't match."
40 echo "Please rebuild Linux source with the proper .config file."
41 echo "Otherwise you may not be able to load the generated drivers."
42 sleep 2
43 fi
45 # Get files
46 cd /usr/src
47 echo "Checking for source tarball... "
48 if [ ! -f "$TARBALL" ]; then
49 wget $WGET_URL
50 # Exit if download failed to avoid errors.
51 if [ ! -f "$TARBALL" ]; then
52 echo -e "\nDownload failed, exiting. Please check WGET_URL variable.\n"
53 exit 1
54 fi
55 fi
57 case "$WGET_URL" in
58 *rpm) rpm2cpio < $(basename $WGET_URL) | cpio -id;;
59 *deb) dpkg-deb -x $(basename $WGET_URL) . ;;
60 *bz2) tar xjf $(basename $WGET_URL) ;;
61 *tar.gz|*tgz) tar xzf $(basename $WGET_URL) ;;
62 *zip) unzip $(basename $WGET_URL);;
63 *o) ;;
64 esac
66 # Set dirs
67 src=/usr/src/$PACKAGE-$VERSION
68 _pkg=$src/_pkg
69 taz=/tmp/sm$RANDOM$RANDOM$RANDOM.$$
70 fs=$taz/$PACKAGE-$VERSION/fs
71 mkdir -p $fs
73 # Create pseudo package
74 case "$PACKAGE" in
75 hsfmodem)
76 # Rules to configure and make the package.
77 cd $src
78 echo "Apply $file..."
79 patch -p1 < /usr/share/softmodem/$PACKAGE-$VERSION.diff || return 1
80 # Build
81 make DESTDIR=$_pkg install
82 cd $_pkg/usr/lib/hsfmodem/modules
83 make
84 # Rules to gen a SliTaz package suitable for Tazpkg.
85 mkdir -p $fs/usr/share/softmodem
86 cp -a $_pkg/usr/sbin $fs/usr
87 cp -a /usr/share/softmodem/zone.tab $fs/usr/share/softmodem/hsfzone.tab
88 MODS_DIR=$fs/lib/modules/`uname -r`/extra
89 mkdir -p $MODS_DIR
90 cp -a $_pkg/usr/lib/hsfmodem/modules/*.ko $MODS_DIR
91 cd $src
92 make clean
93 cd $taz
94 mkdir -p $fs/usr/src
95 mv $src $fs/usr/src
96 ;;
97 esac
99 # Create receipt
100 cd $taz
101 cat /usr/share/softmodem/hsfmodem.receipt> $PACKAGE-$VERSION/receipt
103 # Pack
104 tazpkg pack $PACKAGE-$VERSION
106 # Install pseudo package
107 tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT
109 # Clean
110 rm -rf $taz