Annotation of truecrypt/linux/install.sh, revision 1.1.1.4

1.1       root        1: #!/bin/sh 
                      2: # TrueCrypt install script
                      3: 
1.1.1.4 ! root        4: BIN_DIR=/usr/bin
        !             5: MAN_DIR=/usr/share/man
        !             6: SHARE_DIR=/usr/share/truecrypt
        !             7: SHARE_DIR_DEF=$SHARE_DIR
1.1       root        8: MOD_DIR=/lib/modules/$(uname -r)/extra
1.1.1.2   root        9: BIN_PERM=755
1.1       root       10: 
                     11: umask 022
                     12: 
                     13: error ()
                     14: {
                     15:        echo "Error: $*" >&2
                     16: }
                     17: 
                     18: # Prerequisites
                     19: 
                     20: echo "Checking installation requirements..."
                     21: 
                     22: [ $(id -u) -ne 0 ] && error "Administrator (root) privileges required" && exit 1
                     23: 
                     24: if ! modprobe -V >&- 2>&- || ! rmmod -V >&- 2>&-
                     25: then
                     26:        error "modprobe or rmmod not found. TrueCrypt requires kernel module tools."
                     27:        exit 1
                     28: fi
                     29: 
                     30: if [ ! -c /dev/mapper/control -a ! -L /dev/mapper/control ]
                     31: then
                     32:        echo -n "/dev/mapper/control not found - create? [Y/n]: "
                     33:        read A
                     34:        if [ "$A" = "" -o "$A" = "y" -o "$A" = "Y" ]
                     35:        then
                     36:                mkdir /dev/mapper 2>/dev/null && chmod 755 /dev/mapper
                     37:                mknod -m 600 /dev/mapper/control c 10 63
                     38:        fi
                     39: fi
                     40: 
1.1.1.3   root       41: lsmod | grep -q ^dm_mod
                     42: [ $? -ne 0 ] && modprobe dm-mod >&- 2>&- && sleep 1
1.1       root       43: 
1.1.1.3   root       44: if ! dmsetup targets >&-
1.1       root       45: then
                     46:        error "TrueCrypt requires device mapper tools (dmsetup) 1.00.08 or later."
                     47:        exit 1
                     48: fi
                     49: 
                     50: if [ ! -b /dev/loop0 -a ! -b /dev/loop/0 -a ! -b /dev/loop1 ]
                     51: then
                     52:        echo -n "No loopback device found - create? [Y/n]: "
                     53:        read A
                     54:        if [ "$A" = "y" -o "$A" = "Y" ]
                     55:        then
                     56:                for I in 0 1 2 3 4 5 6 7
                     57:                do
                     58:                        mknod -m 600 /dev/loop$I b 7 $I
                     59:                done
                     60:        fi
                     61: fi
                     62: 
1.1.1.4 ! root       63: if [ $(losetup 2>&1 | wc -l) -lt 2 ]
        !            64: then
        !            65:        echo "Warning: losetup command not found - mounting of containers may fail."
        !            66: fi
        !            67: 
1.1       root       68: rmmod truecrypt >&- 2>&-
                     69: if grep -q "^truecrypt " /proc/modules
                     70: then
                     71:        error "Please dismount all mounted TrueCrypt volumes first."
                     72:        exit 1
                     73: fi
                     74: 
                     75: 
                     76: # Build
                     77: 
                     78: if [ ! -f Kernel/truecrypt.ko -o ! -f Cli/truecrypt ]
                     79: then
                     80:        ./build.sh
                     81:        [ $? -ne -0 ] && error "Build failed - installation aborted" && exit 1
                     82: fi
                     83: 
                     84: 
                     85: # Test
                     86: 
                     87: echo -n "Testing truecrypt... "
                     88: ./Cli/truecrypt --test >/dev/null 2>/dev/null
1.1.1.2   root       89: [ $? -ne 0 ] && echo "FAILED" && exit 1
1.1       root       90: echo Done.
                     91: 
                     92: 
                     93: # Installation
                     94: 
                     95: echo
                     96: echo -n "Install binaries to [$BIN_DIR]: "
                     97: read A
                     98: [ "$A" ] && BIN_DIR=$A
1.1.1.3   root       99: [ ! -d "$BIN_DIR" ] && error "$BIN_DIR does not exist" && exit 1
1.1       root      100: 
                    101: echo -n "Install man page to [$MAN_DIR]: "
                    102: read A
                    103: [ "$A" ] && MAN_DIR=$A
1.1.1.3   root      104: [ ! -d "$MAN_DIR/man1" ] && error "$MAN_DIR/man1 does not exist" && exit 1
1.1       root      105: MAN_DIR=$MAN_DIR/man1
                    106: 
1.1.1.4 ! root      107: echo -n "Install user guide and kernel module to [$SHARE_DIR]: "
        !           108: read A
        !           109: [ "$A" ] && SHARE_DIR=$A
        !           110: mkdir -p "$SHARE_DIR/doc" 2>&- || exit 1
        !           111: 
        !           112: 
1.1       root      113: echo -n "Allow non-admin users to run TrueCrypt [y/N]: "
                    114: read A
1.1.1.3   root      115: [ "$A" = "y" -o "$A" = "Y" ] && BIN_PERM=4755
1.1       root      116: 
                    117: echo -n "Installing kernel module... "
                    118: # make "KERNEL_SRC=$KERNEL_SRC" install >/dev/null
1.1.1.3   root      119: mkdir "$MOD_DIR" 2>&-  # some distributions omit extra directory
                    120: cp Kernel/truecrypt.ko "$MOD_DIR" && chmod 600 $MOD_DIR/truecrypt.ko && depmod -a
1.1       root      121: [ $? -ne 0 ] && error "Failed to install kernel module" && exit 1
                    122: echo Done.
                    123: 
                    124: echo -n "Installing truecrypt to $BIN_DIR... "
                    125: cp Cli/truecrypt "$BIN_DIR" && chown root:root "$BIN_DIR/truecrypt" && chmod $BIN_PERM "$BIN_DIR/truecrypt"
                    126: [ $? -ne 0 ] && error "Failed to install truecrypt" && exit 1
                    127: echo Done.
                    128: 
1.1.1.4 ! root      129: echo -n "Installing man page to $MAN_DIR... "
1.1       root      130: cp Cli/Man/truecrypt.1 "$MAN_DIR" && chown root:root "$MAN_DIR/truecrypt.1" && chmod 644 "$MAN_DIR/truecrypt.1"
                    131: [ $? -ne 0 ] && error "Failed to install truecrypt man page" && exit 1
                    132: echo Done.
                    133: 
1.1.1.4 ! root      134: echo -n "Installing user guide to $SHARE_DIR/doc... "
        !           135: cp ../License.txt "$SHARE_DIR/doc" && cp "../Release/Setup Files/TrueCrypt User Guide.pdf" "$SHARE_DIR/doc/TrueCrypt-User-Guide.pdf" 
        !           136: [ $? -ne 0 ] && error "Failed to install truecrypt user guide" && exit 1
        !           137: chmod 644 "$SHARE_DIR/doc/License.txt" "$SHARE_DIR/doc/TrueCrypt-User-Guide.pdf"
        !           138: echo Done.
        !           139: 
        !           140: if [ "$SHARE_DIR" = "$SHARE_DIR_DEF" ]
        !           141: then
        !           142:        echo -n "Installing backup kernel module to $SHARE_DIR/kernel... "
        !           143:        mkdir -p "$SHARE_DIR/kernel" 2>&-
        !           144:        M=$SHARE_DIR/kernel/truecrypt-$(uname -r | cut -d- -f1 | cut -d. -f1-3).ko
        !           145:        cp Kernel/truecrypt.ko "$M" || exit 1
        !           146:        echo Done.
        !           147: fi
        !           148: 
1.1       root      149: exit 0

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.