3
# Gnats installation script -- written by Brian White <bcwhite@pobox.com>
4
# (This was my very first attempt at learning perl... please forgive me!)
6
# Forgiving -- rewritten to bash :-) by Milan Zamazal <pdm@debian.org>.
7
# ...and streamlined with SED by Chad Walstrom <chewie@debian.org>
11
###############################################################################
16
# Call arguments and never return error
17
function protect () { "$@" || true; }
19
###############################################################################
21
# Common initialization for install scripts
24
. /usr/share/debconf/confmodule
26
protect db_get gnats/site
27
SITE=${RET:-@DEFSITE@}
28
GNATSSITE="@GNATSDBDIR@/$SITE"
29
GNATSDBDIR="@GNATSDBDIR@"
30
PASSWDFILE="@PASSWDFILE@"
32
###############################################################################
34
# Check the 'gnats' userid in the password file
37
if [ "$1" = configure ]; then
39
if [ $(protect grep -c "^@GNATSGROUP@:" @GROUPFILE@) -eq 0 ]; then
40
adduser --group --gid @GNATSGID@ @GNATSGROUP@
43
PWFOUND=$(protect grep -c "^@GNATSUSER@:" @PASSWDFILE@)
45
if [ $PWFOUND -gt 1 ]; then
46
db_subst gnats/user_multiple PASSWDFILE "@PASSWDFILE@"
47
db_input high gnats/user_multiple || true
51
if [ $PWFOUND -gt 0 ]; then
52
if [ $(protect grep -c "^@GNATSUSER@:.*:@GNATSOLDHOME@:" @PASSWDFILE@) -gt 0 ]
54
if [ -e @GNATSOLDHOME@/.profile ]; then
55
mv @GNATSOLDHOME@/.profile @GNATSHOME@/
57
usermod -d @GNATSHOME@ @GNATSUSER@
59
if [ $(protect grep -c "^@GNATSUSER@:[^:]*:@GNATSID@:@GNATSGID@:" \
63
usermod -u @GNATSID@ -G @GNATSGID@ @GNATSUSER@
66
adduser --quiet --system --home @GNATSHOME@ --no-create-home \
67
--gid @GNATSGID@ --shell /bin/sh --disabled-login \
68
--gecos 'GNU GNATS Bug-Reporting System' @GNATSUSER@
73
###############################################################################
75
# Add the 'gnats' system into the mail aliases
78
if [ "$1" = configure ]; then
84
EXIM=$(dpkg -l exim | protect grep -c '^.i')
85
for F in /etc/exim/exim.conf /etc/exim.conf; do
92
if [ $EXIM -gt 0 ] && [ -n "$EXIMCONF" ]; then
93
if [ $(grep -c '^[ \t]*user[ \t]*=' $EXIMCONF) -eq 0 ]; then
94
LINES="$(grep '^[ \t]*#[ \t]*user[ \t]*=' $EXIMCONF)"
95
if [ -n "$LINES" ]; then
96
db_subst gnats/exim_user_uncomment LINES "$LINES"
97
db_subst gnats/exim_user_uncomment EXIMCONF "$EXIMCONF"
98
db_input high gnats/exim_user_uncomment || true
101
db_subst gnats/exim_user_uncomment EXIMCONF "$EXIMCONF"
102
db_input high gnats/exim_user_add || true
108
QMAIL=$(dpkg -l qmail | protect grep -c '^.i')
110
if [ $QMAIL -gt 0 ]; then
113
# echo "qmail found, installing qmail dot files..."
114
for I in "qmail root" \
115
"qmail-bugs | @GNATSDIR@/queue-pr -q" \
116
"qmail-query | @GNATSDIR@/mail-query"; do
118
FILE="@GNATSHOME@/.$KEY"
119
if [ ! -f $FILE ]; then
121
echo "${I#$KEY }" >$TEMPFILE
123
chown @GNATSUSER@.@GNATSGROUP@ $TEMPFILE
130
ASSIGN='/var/qmail/users/assign'
131
if [ ! -f $ASSIGN ] || \
132
[ $(protect grep -c '^.gnats-admin' $ASSIGN) -eq 0 ]; then
133
db_subst gnats/qmail SITE "${SITE}"
134
db_input high gnats/qmail || true
138
elif [ ! -f @MAILFILE@ ]; then
140
db_subst gnats/unknown_mailer SITE "${SITE}"
141
db_input high gnats/unknown_mailer || true
151
egrep -c "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \
152
@MAILFILE@) -lt 4 ]; then
155
sed "s/^#\([ \t]*\(gnats-admin\|bugs\|query-pr\|$SITE-gnats\)\>.*$\)/\1/" \
156
@MAILFILE@ >$TEMPFILE
159
egrep -c "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \
160
$TEMPFILE) -lt 4 ]; then
161
egrep -v "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \
162
@MAILFILE@ >$TEMPFILE
163
cat - >>$TEMPFILE <<EOF
165
# begin gnats aliases
168
bugs: "| @GNATSDIR@/queue-pr -q"
169
query-pr: "| @GNATSDIR@/mail-query"
175
cp @MAILFILE@ @MAILFILE@.dpkg-old
177
mv $TEMPFILE @MAILFILE@
179
NEWALIASES=$(which newaliases)
180
if [ -n "$NEWALIASES" ]; then
189
###############################################################################
191
# Initialize GNATS configuration files
194
if [ "$1" == configure ]; then
196
# Add symlink to the standard database
198
if [ ! -e @DB_CONFIG_DEFAULT_DIR@ ]; then
199
ln -sf @GNATSADMDIR@ @DB_CONFIG_DEFAULT_DIR@
203
# Add symlink for gnatsd.user_access
205
if [ ! -e @CONFIGDIR@/gnatsd.user_access ]; then
206
ln -sf @GNATSADMDIR@/gnatsd.user_access @CONFIGDIR@/gnatsd.user_access
210
# Create new database if necessary
212
if [ $(grep -c '^default:' @CONFIGDIR@/databases) -gt 0 ]; then
213
if [ -d "@GNATSADMDIR@" ]; then
214
# gnats-queue was present directly in older versions of the package, so
215
# it can be deleted during the upgrade
216
QUEUEDIR="@GNATSDBDIR@/gnats-queue"
217
if [ ! -d "$QUEUEDIR" ]; then
219
chown @GNATSUSER@.@GNATSGROUP@ "$QUEUEDIR"
222
if [ -d "@GNATSDBDIR@" ]; then
223
mv @GNATSDBDIR@ @GNATSDBDIR@.old
225
@GNATSDIR@/mkdb default
226
chown -R @GNATSUSER@.@GNATSGROUP@ @GNATSDBDIR@
231
###############################################################################
233
# Register `gnats' HTML documentation
236
if [ "${1}" = configure ] ; then
237
DHELP=/usr/sbin/dhelp_parse
238
HTMLDIR=@DOCDIR@/gnats/gnats
240
if [ -f $DHELP ]; then
245
###############################################################################
247
# Perform actions needed for upgrade from GNATS 3 to GNATS 4
250
if [ "$1" = configure ]; then
251
if dpkg --compare-versions "$2" lt 3.999 \
252
&& [ -e @DB_CONFIG_DIR@/default ]; then
253
if [ ! -e @DB_CONFIG_DEFAULT_DIR@ ]; then
254
ln -sf default @DB_CONFIG_DEFAULT_DIR@
257
if [ ! -e @DB_CONFIG_DEFAULT_DIR@ ]; then
258
ln -sf @GNATSADMDIR@ @DB_CONFIG_DEFAULT_DIR@
262
if dpkg --compare-versions "$2" lt 3.999; then
263
db_input medium gnats/upgrade_3_4 || true
267
###############################################################################
269
# Configure info files
271
if [ "${1}" = configure ] ; then
272
install-info --description='GNU GNATS. Problem Report Management System' \
273
--menuentry='GNU GNATS' --section Devel Development \
274
--quiet @INFODIR@/gnats.info.gz
275
install-info --description='GNU GNATS. Frequently Asked Questions' \
276
--menuentry='GNU GNATS FAQ' --section Devel Development \
277
--quiet @INFODIR@/gnats-faq.info.gz
280
###############################################################################
282
# Add an inetd entry for client/server operations
285
if [ "$1" = configure ] ; then
286
# If upgrading from 3.x, replace gnats entry with support
287
if [ -n "$2" ] && dpkg --compare-versions "$2" lt 3.111-1; then
288
update-inetd --remove "^#?gnats.*/gnatsd"
292
update-inetd --add "#support stream tcp nowait @GNATSUSER@ /usr/sbin/tcpd @GNATSDIR@/gnatsd"
295
###############################################################################
297
# Automatically added debhelper stuff