~ubuntu-branches/ubuntu/dapper/gnats/dapper

« back to all changes in this revision

Viewing changes to debian/gnats.postinst.in

  • Committer: Bazaar Package Importer
  • Author(s): Chad Walstrom
  • Date: 2005-03-07 17:56:31 UTC
  • mfrom: (1.1.1 upstream) (2.1.1 hoary)
  • Revision ID: james.westby@ubuntu.com-20050307175631-agtm10dvjbemuc64
Tags: 4.1.0-0
* New upstream version
* debian/rules: now uses '--with-lispdir' option instead of environment
  variable overloading. Re-enabled optimization.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
#
 
3
# Gnats installation script -- written by Brian White <bcwhite@pobox.com>
 
4
# (This was my very first attempt at learning perl... please forgive me!)
 
5
#
 
6
# Forgiving -- rewritten to bash :-) by Milan Zamazal <pdm@debian.org>.
 
7
# ...and streamlined with SED by Chad Walstrom <chewie@debian.org>
 
8
 
 
9
set -e
 
10
 
 
11
###############################################################################
 
12
#
 
13
# Utility functions
 
14
#
 
15
 
 
16
# Call arguments and never return error
 
17
function protect () { "$@" || true; }
 
18
 
 
19
###############################################################################
 
20
#
 
21
# Common initialization for install scripts
 
22
#
 
23
 
 
24
. /usr/share/debconf/confmodule
 
25
 
 
26
protect db_get gnats/site
 
27
SITE=${RET:-@DEFSITE@}
 
28
GNATSSITE="@GNATSDBDIR@/$SITE"
 
29
GNATSDBDIR="@GNATSDBDIR@"
 
30
PASSWDFILE="@PASSWDFILE@"
 
31
 
 
32
###############################################################################
 
33
#
 
34
# Check the 'gnats' userid in the password file
 
35
#
 
36
 
 
37
if [ "$1" = configure ]; then
 
38
 
 
39
  if [ $(protect grep -c "^@GNATSGROUP@:" @GROUPFILE@) -eq 0 ]; then
 
40
    adduser --group --gid @GNATSGID@ @GNATSGROUP@
 
41
  fi
 
42
  
 
43
  PWFOUND=$(protect grep -c "^@GNATSUSER@:" @PASSWDFILE@)
 
44
 
 
45
  if [ $PWFOUND -gt 1 ]; then
 
46
    db_subst gnats/user_multiple PASSWDFILE "@PASSWDFILE@"
 
47
    db_input high gnats/user_multiple || true
 
48
    db_go
 
49
  fi
 
50
 
 
51
  if [ $PWFOUND -gt 0 ]; then
 
52
    if [ $(protect grep -c "^@GNATSUSER@:.*:@GNATSOLDHOME@:" @PASSWDFILE@) -gt 0 ]
 
53
    then
 
54
      if [ -e @GNATSOLDHOME@/.profile ]; then
 
55
  mv @GNATSOLDHOME@/.profile @GNATSHOME@/
 
56
      fi
 
57
      usermod -d @GNATSHOME@ @GNATSUSER@
 
58
    fi
 
59
    if [ $(protect grep -c "^@GNATSUSER@:[^:]*:@GNATSID@:@GNATSGID@:" \
 
60
           @PASSWDFILE@) \
 
61
   -eq 0 ]
 
62
    then
 
63
      usermod -u @GNATSID@ -G @GNATSGID@ @GNATSUSER@
 
64
    fi
 
65
  else
 
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@
 
69
  fi
 
70
 
 
71
fi
 
72
 
 
73
###############################################################################
 
74
#
 
75
# Add the 'gnats' system into the mail aliases
 
76
#
 
77
 
 
78
if [ "$1" = configure ]; then
 
79
  
 
80
  #
 
81
  # Special mailers
 
82
  #
 
83
 
 
84
  EXIM=$(dpkg -l exim | protect grep -c '^.i')
 
85
  for F in /etc/exim/exim.conf /etc/exim.conf; do
 
86
    if [ -f $F ]; then
 
87
      EXIMCONF=$F
 
88
      break
 
89
    fi
 
90
  done
 
91
 
 
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
 
99
  db_go
 
100
      else
 
101
  db_subst gnats/exim_user_uncomment EXIMCONF "$EXIMCONF"
 
102
  db_input high gnats/exim_user_add || true
 
103
  db_go 
 
104
      fi
 
105
    fi
 
106
  fi
 
107
 
 
108
  QMAIL=$(dpkg -l qmail | protect grep -c '^.i')
 
109
 
 
110
  if [ $QMAIL -gt 0 ]; then
 
111
 
 
112
    # Generate dot files
 
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
 
117
      KEY=${I%% *}
 
118
      FILE="@GNATSHOME@/.$KEY"
 
119
      if [ ! -f $FILE ]; then
 
120
  TEMPFILE=$(tempfile)
 
121
  echo "${I#$KEY }" >$TEMPFILE
 
122
  chmod 0644 $TEMPFILE
 
123
  chown @GNATSUSER@.@GNATSGROUP@ $TEMPFILE
 
124
  mv $TEMPFILE $FILE
 
125
      fi      
 
126
    done
 
127
#    echo "Done."
 
128
 
 
129
    # Generate aliases
 
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
 
135
      db_go
 
136
    fi
 
137
 
 
138
  elif [ ! -f @MAILFILE@ ]; then
 
139
 
 
140
    db_subst gnats/unknown_mailer SITE "${SITE}"
 
141
    db_input high gnats/unknown_mailer || true
 
142
    db_go
 
143
 
 
144
  else
 
145
  
 
146
    #
 
147
    # Common mailers
 
148
    #
 
149
 
 
150
    if [ $(protect \
 
151
           egrep -c "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \
 
152
     @MAILFILE@) -lt 4 ]; then
 
153
 
 
154
      TEMPFILE=$(tempfile)
 
155
      sed "s/^#\([ \t]*\(gnats-admin\|bugs\|query-pr\|$SITE-gnats\)\>.*$\)/\1/" \
 
156
        @MAILFILE@ >$TEMPFILE
 
157
      
 
158
      if [ $(protect \
 
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
 
164
 
 
165
# begin gnats aliases
 
166
gnats:          root
 
167
gnats-admin:    gnats
 
168
bugs:           "| @GNATSDIR@/queue-pr -q"
 
169
query-pr:       "| @GNATSDIR@/mail-query"
 
170
$SITE-gnats:    bugs
 
171
# end gnats aliases
 
172
EOF
 
173
      fi
 
174
 
 
175
      cp @MAILFILE@ @MAILFILE@.dpkg-old
 
176
      chmod 644 $TEMPFILE
 
177
      mv $TEMPFILE @MAILFILE@
 
178
      
 
179
      NEWALIASES=$(which newaliases)
 
180
      if [ -n "$NEWALIASES" ]; then
 
181
        "$NEWALIASES"
 
182
      fi      
 
183
    fi
 
184
    
 
185
  fi
 
186
 
 
187
fi
 
188
 
 
189
###############################################################################
 
190
#
 
191
# Initialize GNATS configuration files
 
192
#
 
193
 
 
194
if [ "$1" == configure ]; then
 
195
  #
 
196
  # Add symlink to the standard database
 
197
  #
 
198
  if [ ! -e @DB_CONFIG_DEFAULT_DIR@ ]; then
 
199
    ln -sf @GNATSADMDIR@ @DB_CONFIG_DEFAULT_DIR@
 
200
  fi
 
201
 
 
202
  #
 
203
  # Add symlink for gnatsd.user_access
 
204
  #
 
205
  if [ ! -e @CONFIGDIR@/gnatsd.user_access ]; then
 
206
    ln -sf @GNATSADMDIR@/gnatsd.user_access @CONFIGDIR@/gnatsd.user_access
 
207
  fi
 
208
 
 
209
  #
 
210
  # Create new database if necessary
 
211
  #
 
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
 
218
        mkdir "$QUEUEDIR"
 
219
        chown @GNATSUSER@.@GNATSGROUP@ "$QUEUEDIR"
 
220
      fi
 
221
    else
 
222
      if [ -d "@GNATSDBDIR@" ]; then
 
223
        mv @GNATSDBDIR@ @GNATSDBDIR@.old
 
224
      fi
 
225
      @GNATSDIR@/mkdb default
 
226
      chown -R @GNATSUSER@.@GNATSGROUP@ @GNATSDBDIR@
 
227
    fi
 
228
  fi
 
229
fi
 
230
 
 
231
###############################################################################
 
232
#
 
233
# Register `gnats' HTML documentation
 
234
#
 
235
 
 
236
if [ "${1}" = configure ] ; then
 
237
  DHELP=/usr/sbin/dhelp_parse
 
238
  HTMLDIR=@DOCDIR@/gnats/gnats
 
239
 
 
240
  if [ -f $DHELP ]; then
 
241
    $DHELP -a $HTMLDIR
 
242
  fi
 
243
fi
 
244
 
 
245
###############################################################################
 
246
#
 
247
# Perform actions needed for upgrade from GNATS 3 to GNATS 4
 
248
#
 
249
 
 
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@
 
255
    fi
 
256
  else
 
257
    if [ ! -e @DB_CONFIG_DEFAULT_DIR@ ]; then
 
258
      ln -sf @GNATSADMDIR@ @DB_CONFIG_DEFAULT_DIR@
 
259
    fi
 
260
  fi
 
261
  
 
262
  if dpkg --compare-versions "$2" lt 3.999; then
 
263
    db_input medium gnats/upgrade_3_4 || true
 
264
  fi
 
265
fi
 
266
 
 
267
###############################################################################
 
268
#
 
269
# Configure info files
 
270
#
 
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
 
278
fi
 
279
 
 
280
###############################################################################
 
281
#
 
282
# Add an inetd entry for client/server operations
 
283
#
 
284
 
 
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"
 
289
  fi
 
290
 
 
291
  # Add support entry
 
292
  update-inetd --add "#support    stream  tcp nowait  @GNATSUSER@ /usr/sbin/tcpd  @GNATSDIR@/gnatsd"
 
293
fi
 
294
 
 
295
###############################################################################
 
296
#
 
297
# Automatically added debhelper stuff
 
298
#
 
299
#DEBHELPER#
 
300