This file is indexed.

postinst is in inn2 2.5.2+20110413-1build1.

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
176
177
178
179
180
181
182
183
184
185
#!/bin/sh -e

init_inn_files() {
    PATHDB=$(/usr/lib/news/bin/innconfval pathdb)
    if [ -z "$PATHDB" ]; then
	echo "Cannot determine the database path, aborting."
	exit 1
    fi
    cd $PATHDB

    local package='inn2'
    if [ -e /usr/share/doc/inn2-lfs/ ]; then
      package='inn2-lfs'
    fi
      
    for file in active newsgroups; do
	if [ ! -f $file ]; then
	    echo "Installing initial content for $PATHDB/$file"
	    install -m 644 -o news -g news \
		/usr/share/doc/$package/examples/$file .
	fi
    done

    if [ ! -f history.dir ]; then
      echo -n "Building history database in $PATHDB... "
      if ! /usr/lib/news/bin/makehistory; then
        echo "failed!"
        return
      fi
      if ! /usr/lib/news/bin/makedbz -i -o -s 300000; then
        echo "failed!"
        return
      fi
      chown news:news history*
      chmod 664 history*
      echo "done."
    fi

    if [ ! -f active.times ]; then
	touch active.times
	chown news:news active.times
	chmod 644 active.times
    fi

    # squelch initial noise in email if this isn't present
    if [ ! -f .news.daily ]; then
	touch .news.daily
	chown news:news .news.daily
    fi

    # make sure typical log files exist, and can be rotated
    if [ ! -d /var/log/news ]; then
	install -d -m 775 -o news -g news /var/log/news
    fi
    cd /var/log/news
    [ -f news.notice ] || touch news.crit news.err news.notice
    chown news:news . OLD path news.crit news.err news.notice

    if [ -x /etc/init.d/inn2 ]; then
	update-rc.d inn2 defaults > /dev/null
    fi
}

check_usenet_alias() {
    # must have an alias for user usenet, point it to root by default
    if [ -f /etc/aliases ] && ! grep -q '^usenet:' /etc/aliases \
	    && ! getent passwd usenet > /dev/null; then
	echo "Adding alias for pseudo-user usenet to /etc/aliases."
	echo "usenet: root" >> /etc/aliases
	if command -v newaliases > /dev/null; then newaliases; fi
    fi
}

upgrade_inn_conf() {
  [ "$2" ] || return 0

  if dpkg --compare-versions $2 lt 2.5.0-1; then
  if dpkg --compare-versions $2 lt 2.3.999+20030125-1; then
    /usr/lib/news/bin/innupgrade -f /etc/news/inn.conf
  fi
    /usr/lib/news/bin/innupgrade /etc/news/
  fi
}

rebuild_history_index() {
    [ -f /var/lib/news/must-rebuild-history-index ] || return 0

    cd /var/lib/news
    HLINES=$(tail -1 history.dir | awk '{ print $1 }')
    [ "$HLINES" ] || HLINES=1000000
    echo "Rebuilding the history index for $HLINES lines, please wait..."
    rm history.hash history.index history.dir
    su news -c "/usr/lib/news/bin/makedbz -s $HLINES -f history"

    rm /var/lib/news/must-rebuild-history-index
}

rebuild_overview() {
    [ -f /var/lib/news/must-rebuild-overview ] || return 0

    OVENABLED=$(/usr/lib/news/bin/innconfval enableoverview)
    if [ -z "$OVENABLED" ]; then
	echo "Cannot determine the overview method used, stopping."
	exit 1
    fi
    if [ $OVENABLED = no -o $OVENABLED = false ]; then
	return 0
    fi

    OVMETHOD=$(/usr/lib/news/bin/innconfval ovmethod)
    if [ -z "$OVMETHOD" ]; then
	echo "Cannot determine the overview method used, stopping."
	exit 1
    elif [ $OVMETHOD = tradindexed -o $OVMETHOD = ovdb ]; then
	OVPATH=$(/usr/lib/news/bin/innconfval pathoverview)
	if [ -z "$OVPATH" ]; then
	    echo "Cannot determine the overview path, aborting."
	    exit 1
	fi
	echo "Deleting the old overview database, please wait..."
	find $OVPATH -type f -not -name DB_CONFIG -print0 | xargs -0 -r rm -f
    elif [ $OVMETHOD = buffindexed ]; then
	echo "Deleting the old overview database, please wait..."
	awk -F : '/^[0-9]/ { print $2 }' < /etc/news/buffindexed.conf | \
	    while read name size; do
		dd if=/dev/zero of="$name" bs=1024 count="$size"
	    done
    else
	echo "Unknown overview method '$OVMETHOD', aborting."
	exit 1
    fi

    echo "Rebuilding the overview database, please wait..."
    su news -c "/usr/lib/news/bin/makehistory -F -O -x"

    rm /var/lib/news/must-rebuild-overview
}

start_innd() {
# make sure we can determine the FQDN, since innd won't launch if we can't
if hostname --fqdn > /dev/null 2>&1; then
    invoke-rc.d inn2 start || echo "Could not start INN!"
else
cat <<END


Not starting innd.  The daemon needs to be able to determine the name of
this machine, and your /etc/hosts and/or DNS config is apparently not
allowing this to happen.  After you have fixed things so that 'hostname
--fqdn' returns a reasonable value, you can start the daemon by running
'/etc/init.d/inn2 start'.


END
fi
}

case "$1" in
    configure)
    init_inn_files
    check_usenet_alias
    upgrade_inn_conf "$@"
    rebuild_history_index
    rebuild_overview
    if [ -z "$2" -o ! -e /var/run/news/innd.pid ]; then # first install
	start_innd
    else
	ctlinnd -t 20 throttle "upgrade" > /dev/null || true
	ctlinnd -t 20 xexec innd > /dev/null \
	    || { invoke-rc.d inn2 stop && invoke-rc.d inn2 start; } \
	    || echo "Could not restart INN!"
    fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
    echo "postinst called with unknown argument '$1'" >&2
    ;;
esac



exit 0