This file is indexed.

postinst is in isdnvboxserver 1:3.25+dfsg1-3.7ubuntu1.

This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#!/bin/sh

set -e

if [ "$1" != "configure" ]; then exit 0; fi

# Source debconf library.
. /usr/share/debconf/confmodule

db_set isdnvboxserver/dummy donetwice # next time, do it again

DEVDIR=/dev
if [ ! -c $DEVDIR/ttyI6 ]; then
    if grep 'type devfs' /proc/mounts >/dev/null; then
        DEVDIR=/dev/isdn
    else
        if [ ! -c /dev/ttyI6 ]; then
            cd /dev
            echo "Note: running MAKEDEV to create ISDN tty devices in /dev..."
            WRITE_ON_UDEV=1 /sbin/MAKEDEV isdn-tty
        fi
    fi
fi

# Doing this now isn't so bad, even though perhaps the config files
# aren't correct yet, because it won't be started until needed anyway.
# It's a different story for 'init q' though.
    # the "|| true" is because update-inetd fails if xinetd is used?! Not my problem.
update-inetd --add "vboxd	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/vboxd" || true

db_get isdnvboxserver/msn || true
VBOX_MSN=`echo "$RET" | tr -d ' '`; export VBOX_MSN
if [ -z "$RET" -o "$(echo "$RET" | tr A-Z a-z)" = quit ]; then # do it by hand
    echo "Not touching any isdnvboxserver config files."
    db_stop
    exit 0
fi

if [ -s /etc/isdn/vboxgetty.conf ]; then
    # only use ttyI6
    eval `perl -- - /etc/isdn/vboxgetty.conf <<'EOF'
        while (<>) {
            if (m,^port (/dev/(isdn/)?)ttyI6,) {
                print "oldDEVDIR=$1\n";
                last;
            }
        }
        while (<>) {
            last if m,^port,;
            if (/^\s+spooldir\s+(\S+)/) {
                print "VBOX_SPOOL=$1\n";
                exit 0;
            }
        }
EOF
    `
    if [ "$oldDEVDIR" != "$DEVDIR/" ]; then
        db_get isdnvboxserver/devfs_vboxgettyconf || true
        db_go
    fi
fi
db_get isdnvboxserver/user || true
VBOX_USER=`echo "$RET" | tr -d ' '`
if [ ! -z "$VBOX_USER" ]; then
    db_get isdnvboxserver/password || true
    VBOX_PASSWORD=$(echo "$RET" | sed 's,^ *,,' | sed 's, *$,,')
fi
db_get isdnvboxserver/daemonuser || true
VBOX_DUSER=`echo "$RET" | tr -d ' '`

if [ -z "$VBOX_SPOOL" ]; then
    VBOX_SPOOL=/var/spool/vbox/ttyI6
fi

if [ ! -d "$VBOX_SPOOL" ]; then
    # on initial installation it won't exist, and "old" name == new name
    # so create it here if necessary
    mkdir -p "$VBOX_SPOOL/incoming" "$VBOX_SPOOL/messages"
    cp /usr/share/isdnvboxserver/default/standard.tcl "$VBOX_SPOOL/."
fi
if chown -R "$VBOX_DUSER" "$VBOX_SPOOL"; then
    : #OK
else
    echo "Somehow the user you entered is not valid after all."
    echo "Run 'dpkg-reconfigure isdnvboxserver' to remedy the situation."
    echo "Continuing on now anyway."
    VBOX_DUSER=''
fi

# end of spooldir handling....
###################################

if [ ! -z "$VBOX_DUSER" ]; then
    VBOX_USERHOME=`getent passwd "$VBOX_DUSER" | cut -f6 -d:`
    if [ ! -z "$VBOX_USERHOME" ]; then
        if [ -d "$VBOX_SPOOL" ]; then
            chown -R "$VBOX_DUSER" "$VBOX_SPOOL"
        fi
        if [ -d "$VBOX_USERHOME" ]; then
            if [ ! -s "$VBOX_USERHOME/.vbox.conf" ]; then
                cp /usr/share/isdn/default/vbox.conf $VBOX_USERHOME/.vbox.conf
                chown $VBOX_DUSER $VBOX_USERHOME/.vbox.conf
            fi
        else
            db_subst isdnvboxserver/vboxnodir DIR  $VBOX_USERHOME
            db_subst isdnvboxserver/vboxnodir USER "$VBOX_DUSER"
            db_fset isdnvboxserver/vboxnodir seen false
            db_input high isdnvboxserver/vboxnodir || true
        fi
    else
        db_subst isdnvboxserver/vboxnouser USER $VBOX_DUSER
        db_input high isdnvboxserver/vboxnouser || true
    fi
    db_go || true
    mv -f /etc/isdn/vboxgetty.conf /etc/isdn/vboxgetty.conf.bak || echo "mv 4 failed"
    perl -- - > /etc/isdn/vboxgetty.conf <<EOF
        open(STDIN, '/etc/isdn/vboxgetty.conf.bak');
        while (<>) { print; last if m,^port /dev/(isdn/)?ttyI6,; }
        while (<>) {
            if (m,^port,) {
            print;
            last;
            }
            s/^(\s+modeminit\s+.*&E)\s*\d*(.*)/\${1}$VBOX_MSN\${2}/;
            s/^(\s+user\s+)\S+(.*)/\${1}$VBOX_DUSER\${2}/;
            print;
        }
        print <>;
EOF
fi
if [ ! -z "$VBOX_USER" ]; then
# Lines in vboxd.conf:
#   # Remove this comment if you don't want any configuration to happen.
#   A:localhost:RW:username:*invalid*password*:/var/spool/vbox/username:incoming
    if [ -s /etc/isdn/vboxd.conf ]; then
        mv -f /etc/isdn/vboxd.conf /etc/isdn/vboxd.conf.bak || echo "mv 5 failed"
        VBOX_PASSWORD_ESC=`echo "$VBOX_PASSWORD" | perl -pe 'print quotemeta'`
        perl -- - > /etc/isdn/vboxd.conf <<EOF
            \$user = <DATA>; chomp \$user;
            \$password = <DATA>; chomp \$password;
            \$spool = <DATA>; chomp \$spool;
            # perhaps password is already crypted
            unless (\$password =~ /^DES /) {
                # yes, I know the salt should be random, no inspiration right now
                \$password = 'DES ' . crypt(\$password, 'vv');
            }
            open(STDIN, '/etc/isdn/vboxd.conf.bak');
            while (<>) { print; last if m,^# Remove this comment if you don't want,; }
            if (\$_ = <>) {
                    s{^(A:[^:]+:[^:]+):[^:]+:[^:]+:[^:]+}{\$1:\$user:\$password:\$spool};
                    print;
                    print <>;
            }
__DATA__
$VBOX_USER
$VBOX_PASSWORD
$VBOX_SPOOL
EOF
        chmod 600 /etc/isdn/vboxd.conf
        chown root /etc/isdn/vboxd.conf
    fi
fi

# if inittab was changed up above, make init reread it
init q
# vboxgetty might have new parameters, make sure they're used
if [ -s /var/run/vboxgetty-ttyI6.pid ]; then
    kill `cat vboxgetty-ttyI6.pid 2>/dev/null` >/dev/null 2>&1 || true
fi

db_stop



exit 0