3 # Skeleton maintainer script showing all the possible cases.
4 # Written by Charles Briscoe-Smith, March-June 1998. Public Domain.
6 # Abort if any command returns an error value
10 . /usr/share/debconf/confmodule
12 # This script is called as the last step of the installation of the
13 # package. All the package's files are in place, dpkg has already done
14 # its automatic conffile handling, and all the packages we depend of
15 # are already fully installed and configured.
17 # The following idempotent stuff doesn't generally need protecting
18 # against being run in the abort-* cases.
20 #### Install info files into the dir file
21 ###: install-info --quiet --section "section pattern" "Section Title" \
22 ###: --description="Name of the document" /usr/info/foo.info
24 #### Create stub directories under /usr/local
25 ###: if test ! -d /usr/local/lib/foo; then
26 ###: if test ! -d /usr/local/lib; then
27 ###: if mkdir /usr/local/lib; then
28 ###: chown root.staff /usr/local/lib || true
29 ###: chmod 2775 /usr/local/lib || true
32 ###: if mkdir /usr/local/lib/foo; then
33 ###: chown root.staff /usr/local/lib/foo || true
34 ###: chmod 2775 /usr/local/lib/foo || true
38 #### Ensure the menu system is updated
39 ###: [ ! -x /usr/bin/update-menus ] || /usr/bin/update-menus
41 #### Arrange for a daemon to be started at system boot time
42 ###: update-rc.d foo default >/dev/null
49 # Configure this package. If the package must prompt the user for
50 # information, do it here.
51 if ! getent group citadel >/dev/null; then
54 if ! getent passwd citadel >/dev/null; then
55 adduser --system --ingroup citadel --home /var/lib/citadel \
56 --gecos "Citadel system user" --shell /bin/sh \
57 --disabled-password citadel
60 chown citadel:citadel /etc/citadel
61 # Activate menu-methods script
62 #: chmod a+x /etc/menu-methods/foo
67 # Make our version of a program available
68 #: update-alternatives \
69 #: --install /usr/bin/program program /usr/bin/alternative 50 \
70 #: --slave /usr/share/man/man1/program.1.gz program.1.gz \
71 #: /usr/share/man/man1/alternative.1.gz
73 # Tell ucf that the file in /usr/share/foo is the latest
74 # maintainer version, and let it handle how to manage the real
75 # confuguration file in /etc. This is how a static configuration
76 # file can be handled:
77 ucf /usr/share/doc/citadel-server/examples/mail.aliases /etc/citadel/mail.aliases
78 ucf /usr/share/doc/citadel-server/examples/public_clients /etc/citadel/public_clients
80 #: !TODO: should network/systems go to /etc/citadel?
83 /var/lib/citadel/help \
84 /var/lib/citadel/messages \
85 /var/lib/citadel/data/ \
86 /var/lib/citadel/bio/ \
87 /var/lib/citadel/bitbucket/ \
88 /var/lib/citadel/files/ \
89 /var/lib/citadel/images/ \
90 /var/lib/citadel/info/ \
91 /var/lib/citadel/userpics/ \
92 /var/spool/citadel/network/spoolin \
93 /var/spool/citadel/network/spoolout \
94 /var/spool/citadel/network/spoolsystems \
98 mkdir -p /var/lib/citadel/help
99 for i in aide floors hours intro.gz mail network nice.gz policy software summary.gz; do
102 j=`echo $i|sed "s;.gz;;"`
103 gunzip -c "/usr/share/doc/citadel-server/examples/help/$i" >"/tmp/$j"
107 cp "/usr/share/doc/citadel-server/examples/help/$i" "/tmp"
110 ucf "/tmp/$i" "/var/lib/citadel/help/$i"
114 # # TODO: there is a file named '?'. this gives trouble with ucf, so do it by hand for now.
115 # if test ! -e '/var/lib/citadel/help/?'; then
116 # cp '/usr/share/doc/citadel/examples/data/help/?' '/var/lib/citadel/help'
118 mkdir -p /var/lib/citadel/messages
119 for i in aideopt changepw dotopt entermsg entopt goodbye hello help mainmenu newuser readopt register roomaccess unlisted; do
120 ucf "/usr/share/doc/citadel-server/examples/messages/$i" "/var/lib/citadel/messages/$i"
124 chown -R citadel:citadel /var/lib/citadel /var/run/citadel /var/spool/citadel
126 ### We could also do this on the fly. The following is from Tore
129 #. /usr/share/debconf/confmodule
131 ### find out what the user answered.
132 # db_get foo/run_on_boot
135 ### safely create a temporary file to generate our suggested
136 ### configuration file.
137 # tempfile=`tempfile`
138 # cat << _eof > $tempfile
139 ### Configuration file for Foo.
141 ### this was answered by you, the user in a debconf dialogue
142 # RUNONBOOT=$run_on_boot
144 ### this was not, as it has a sane default value.
149 ### Note that some versions of debconf do not release stdin, so
150 ### the following invocation of ucf may not work, since the stdin
151 ### is never coneected to ucfr.
153 ### now, invoke ucf, which will take care of the rest, and ask
154 ### the user if he wants to update his file, if it is modified.
155 #ucf $tempfile /etc/foo.conf
157 ### done! now we'll just clear up our cruft.
160 db_get citadel/Administrator && admin="$RET"
161 db_get citadel/ServerIPAddress && ip_addr="$RET"
162 db_get citadel/LoginType && enable_unix_auth="$RET"
163 if test "$enable_unix_auth" = "true"; then
164 export ENABLE_UNIX_AUTH=yes
166 export ENABLE_UNIX_AUTH=no
168 export IP_ADDR=$ip_addr
170 export CITADEL_INSTALLER=yes
172 export SYSADMIN_NAME=$admin
173 export CREATE_XINETD_ENTRY=no
174 export CREATE_INITTAB_ENTRY=no
175 export NO_INIT_SCRIPTS=yes
176 echo "applying your settings."
177 /usr/lib/citadel-server/setup -q
178 if test -S /var/run/citadel/citadel.socket; then
179 /usr/sbin/sendcommand "DOWN"
182 while test -S /var/run/citadel/citadel.socket; do
189 #### There are three sub-cases:
190 ###if test "${2+set}" != set; then
191 ### # We're being installed by an ancient dpkg which doesn't remember
192 ### # which version was most recently configured, or even whether
193 ### # there is a most recently configured version.
196 ###elif test -z "$2" -o "$2" = "<unknown>"; then
197 ### # The package has not ever been configured on this system, or was
198 ### # purged since it was last configured.
202 ### # Version $2 is the most recently configured version of this
209 # Back out of an attempt to upgrade this package FROM THIS VERSION
210 # to version $2. Undo the effects of "prerm upgrade $2".
215 ###if test "$2" != in-favour; then
216 ### echo "$0: undocumented call to \`postinst $*'" 1>&2
219 #### Back out of an attempt to remove this package, which was due to
220 #### a conflict with package $3 (version $4). Undo the effects of
221 #### "prerm remove in-favour $3 $4".
226 ###if test "$2" != in-favour -o "$5" != removing; then
227 ### echo "$0: undocumented call to \`postinst $*'" 1>&2
230 #### Back out of an attempt to deconfigure this package, which was
231 #### due to package $6 (version $7) which we depend on being removed
232 #### to make way for package $3 (version $4). Undo the effects of
233 #### "prerm deconfigure in-favour $3 $4 removing $6 $7".
237 *) echo "$0: didn't understand being called with \`$1'" 1>&2