postinst is in popularity-contest 1.64ubuntu2.
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 | #!/bin/sh
# Load debconf variables
. /usr/share/debconf/confmodule
conffile=/etc/popularity-contest.conf
set -e
if [ -e $conffile ] ; then
# Fetch current values.
. $conffile
fi
# Get this setting from debconf. It was set based on the content of
# /etc/popularity-contest.conf in the 'config' script, so it should be
# safe to ignore the value fetched by loading the file above. This
# should allow for using debconf to reconfigure the package.
db_get popularity-contest/participate || true
if [ "$RET" = "yes" ] || [ "$RET" = "YES" ] || [ "$RET" = "true" ]; then
PARTICIPATE="yes"
else
PARTICIPATE="no"
fi
# The md5 sum of an empty file
EMPTYID="d41d8cd98f00b204e9800998ecf8427e"
generate_id() {
if which uuidgen >/dev/null 2>&1; then
MY_HOSTID=`uuidgen | tr -d -`
else
MY_HOSTID=`dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5sum | sed 's/ -//'''`
fi
}
# Select a random day to submit on, to spread the load over time, unless it is already set.
select_random_day() {
DAY=`bash -c 'echo $(($RANDOM % 7))'`
}
generate_crond() {
MIN=`bash -c 'echo $(($RANDOM % 60))'`
HOUR=`bash -c 'echo $(($RANDOM % 24))'`
FILE=/etc/cron.daily/popularity-contest
cat > /etc/cron.d/popularity-contest <<EOF
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
$MIN $HOUR * * * root test -x $FILE && $FILE --crond
EOF
}
generate_conffile() {
generate_id
generate_crond
select_random_day
cat <<-EOF >$conffile
# Config file for Debian's popularity-contest package.
#
# To change this file, use:
# dpkg-reconfigure popularity-contest
#
# You can also edit it by hand, if you so choose.
#
# See /usr/share/popularity-contest/default.conf for more info
# on the options.
MY_HOSTID="$MY_HOSTID"
PARTICIPATE="$PARTICIPATE"
USEHTTP="yes"
DAY="$DAY"
EOF
# preseeding is only allowed on first time install
db_get popularity-contest/submiturls || true
if [ -n "$RET" ] ; then
echo "SUBMITURLS=\"$RET\"" >> $conffile
fi
# Make sure user nobody can read the file.
chmod a+r $conffile
}
case "$1" in
configure)
if [ ! -e $conffile ]; then
generate_conffile
else
# If MY_HOSTID is not set, add it. This is useful when disk images are prepared
if [ -z "$MY_HOSTID" ] ; then
generate_id
echo "MY_HOSTID=\"$MY_HOSTID\"" >> $conffile
fi
OLDHOSTID="$MY_HOSTID";
case "$MY_HOSTID" in
# Workaround for bug #237874 triggered on hurd. The
# problem was fixed in version 1.15, 2004-03-20.
$EMPTYID) generate_id;;
# Workaround for bug #240603 triggered by md5sums change
# of behaviour with stdin. version 1.17, 2004-04-12.
*-) MY_HOSTID="${MY_HOSTID% -}";;
esac;
# If DAY is not set, add it.
if [ -z "$DAY" ] ; then
select_random_day
echo "DAY=\"$DAY\"" >> $conffile
fi
if [ ! -f /etc/cron.d/popularity-contest ] ; then
generate_crond
fi
# Replace only if the content changed, to avoid changing the
# config file date when no change was done.
# Commenting out the obsolete addresses, to use the
# default config from /usr/share/ on hosts where
# the old default was unchanged. Replace the "empty" id.
sedopts=" \
s/^PARTICIPATE=.*$/PARTICIPATE=\"$PARTICIPATE\"/; \
s/^\(MAILTO=\"erich-survey@debian.org\"\)$/#\1/; \
s/^\(MAILTO=\"apenwarr-survey@debian.org\"\)$/#\1/; \
s/^\(MAILTO=\"survey@popcon.debian.org\"\)$/#\1/; \
"
if [ "$OLDHOSTID" != "$MY_HOSTID" ]; then
sedopts="$sedopts \
s/^MY_HOSTID=\"\\?$OLDHOSTID\"\\?/MY_HOSTID=\"$MY_HOSTID\"/; \
"
fi
if sed "$sedopts" < $conffile > $conffile.new &&
! cmp $conffile $conffile.new > /dev/null; then
mv $conffile.new $conffile
# Make sure user nobody can read the file.
chmod a+r $conffile
else
rm $conffile.new
fi
fi
;;
*)
;;
esac
|