source: debian/postinst @ 7b59872

Last change on this file since 7b59872 was 25dfb16, checked in by Wilmer van der Gaast <wilmer@…>, at 2009-06-07T20:19:25Z

Forgot to commit before starting to work on the second item, so here's a
monster commit. :-)

  • Removing code that edits bitlbee.conf from postinst (and chown code in the init script), it's not really necessary anymore; bitlbee may only still run as root if the admin doesn't read conffile diffs. (Closes: #514572)
  • No longer overwriting port number info in /etc/default/bitlbee with what's in debconf. (Closes: #514148)
  • Added notes about the above two changes to bitlbee.conf.
  • Property mode set to 100755
File size: 3.3 KB
RevLine 
[19a8088]1#!/bin/sh -e
2
3. /usr/share/debconf/confmodule
4
5db_get bitlbee/serveport
6PORT="$RET"
7
8CONFDIR=/var/lib/bitlbee/
9
10update-rc.d bitlbee defaults > /dev/null 2>&1
11
12## Load default option. Don't want to put this in debconf (yet?)
13BITLBEE_OPTS=-F
14BITLBEE_DISABLED=0
15BITLBEE_UPGRADE_DONT_RESTART=0
[fcd5003]16[ -r /etc/default/bitlbee ] && . /etc/default/bitlbee
[19a8088]17
[fcd5003]18if [ "$BITLBEE_DISABLED" = "0" ] && type update-inetd > /dev/null 2> /dev/null &&
19   ( expr "$2" : '0\..*' > /dev/null || expr "$2" : '1\.0\..*' > /dev/null ); then
20        ## Make sure the inetd entry is gone (can still be there from a
21        ## previous version.
[19a8088]22        update-inetd --remove '.*/usr/sbin/bitlbee'
[379c08a]23        if grep -q /usr/sbin/bitlbee /etc/inetd.conf 2> /dev/null; then
24                # Thanks for breaking update-inetd! (bugs.debian.org/311111)
25                # I hope that it works at least with xinetd, because this
26                # emergency hack doesn't:
27                perl -pi -e 's:^[^#].*/usr/sbin/bitlbee$:## Now using daemon mode\: # $&:' /etc/inetd.conf
[fcd5003]28                killall -HUP inetd || true
[379c08a]29        fi
[19a8088]30fi
31
32cat<<EOF>/etc/default/bitlbee
33## /etc/default/bitlbee: Auto-generated/updated script.
34##
[25dfb16]35## If running in (fork)daemon mode, listen on this TCP port.
[19a8088]36BITLBEE_PORT="$PORT"
37
38## Use single-process or forking daemon mode? Can't be changed from debconf,
39## but maintainer scripts will save your changes here.
40BITLBEE_OPTS="$BITLBEE_OPTS"
41
42## In case you want to stick with inetd mode (or if you just want to disable
43## the init scripts for some other reason), you can disable the init script
44## here. (Just set it to 1)
45BITLBEE_DISABLED=$BITLBEE_DISABLED
46
47## As a server operator, you can use the RESTART command to restart only the
48## master process while keeping all the child processes and their IPC
49## connections. By enabling this, the maintainer scripts won't restart
50## BitlBee during upgrades so you can restart the master process by hand.
51BITLBEE_UPGRADE_DONT_RESTART=$BITLBEE_UPGRADE_DONT_RESTART
52EOF
53
54## Bye-bye DebConf, we don't need you anymore.
55db_stop
56
[7448e1b]57## Restore the helpfile in case we weren't upgrading but just reconfiguring:
58if [ -e /usr/share/bitlbee/help.upgrading ]; then
59        if [ -e /usr/share/bitlbee/help.txt ]; then
60                rm -f /usr/share/bitlbee/help.upgrading
61        else
62                mv /usr/share/bitlbee/help.upgrading /usr/share/bitlbee/help.txt
63        fi
64fi
65
[19a8088]66if [ -n "$2" -a "$BITLBEE_UPGRADE_DONT_RESTART" != "1" ]; then
[59c84c2]67        if which invoke-rc.d >/dev/null 2>&1; then
68                invoke-rc.d bitlbee restart
69        else
70                /etc/init.d/bitlbee restart
71        fi
[19a8088]72fi
73
74## If we're upgrading, we'll probably skip this next part
[d301872]75if [ -d $CONFDIR ] && chown -R bitlbee: $CONFDIR; then
[19a8088]76        echo 'BitlBee (probably) already installed, skipping user/configdir installation'
77        exit 0
78fi
79
[628e601]80adduser --system --group --disabled-login --disabled-password --home /var/lib/bitlbee/ bitlbee
[19a8088]81chmod 700 /var/lib/bitlbee/
82
83## Can't do this in packaging phase: Don't know the UID yet. Access to
[628e601]84## the file should be limited, now that it stores passwords. Added
85## --group later for a little more security, but have to see if I can
86## apply this change to existing installations on upgrades. Will think
87## about that later.
88if getent group bitlbee > /dev/null; then
89        chmod 640 /etc/bitlbee/bitlbee.conf
90        chown root:bitlbee /etc/bitlbee/bitlbee.conf
91else
92        chmod 600 /etc/bitlbee/bitlbee.conf
93        chown bitlbee /etc/bitlbee/bitlbee.conf
94fi
[19a8088]95
96if [ -z "$2" ]; then
[59c84c2]97        if which invoke-rc.d >/dev/null 2>&1; then
98                invoke-rc.d bitlbee start
99        else
100                /etc/init.d/bitlbee start
101        fi
[19a8088]102fi
Note: See TracBrowser for help on using the repository browser.