postinst is in squid 3.5.27-1ubuntu1.
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
set -e
#
# If the squid3 package was being used previously...
#
if test -d /etc/squid3 && dpkg --compare-versions "$2" lt '3.5'; then
#
# Remove obsolete MSNT helper config
#
dpkg-maintscript-helper rm_conffile \
/etc/squid3/msntauth.conf 3.5.4-1~ squid3 -- "$@"
#
# Move old squid3 config files into position
#
dpkg-maintscript-helper mv_conffile \
/etc/squid3/squid.conf /etc/squid/squid.conf 3.5.4-1~ squid3 -- "$@"
dpkg-maintscript-helper mv_conffile \
/etc/squid3/errorpage.css /etc/squid/errorpage.css 3.5.4-1~ squid3 -- "$@"
fi
grepconf () {
w=" " # space tab
# sed is cool.
res=`squid -k parse 2>&1 |
grep "Processing:" |
sed s/.*Processing:\ // |
sed -ne '
s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q'`
[ -n "$res" ] || res=$2
echo "$res"
}
grepconf2 () {
w=" " # space tab
# sed is cool.
res=`squid -k parse 2>&1 |
grep "Processing:" |
sed s/.*Processing:\ // |
sed -ne '
s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q'`
[ -n "$res" ] || res=$2
echo "$res"
}
case "$1" in
configure)
#
# If the squid (2.7) package was being used previously we protected
# the squid.conf file, which was not tracked as a conffile.
# Use '< 2.8' version to catch backports and security versions >2.7.
#
if dpkg --compare-versions "$2" lt '2.8' && test -f /etc/squid/squid.conf.pre3.5_upgrade; then
md5pre35=$(md5sum /etc/squid/squid.conf.pre3.5_upgrade | awk '{ print $1 }')
if [ "$md5pre35" = "6d674d5f9842b50a2c691a135007c804" ] || \
[ "$md5pre35" = "5d85f7dce9a84082e23a656b3cb0c984" ]; then
# The old configuration file was unchanged from the version shipped
# with squid 2.7, keep the new one in place and delete the old one.
rm -f /etc/squid/squid.conf.pre3.5_upgrade
else
#
# Our special 2.x protection left squid.conf absent,
# so the new package installing put its own there.
# It would normally have just created a *.dpkg-dist
#
mv /etc/squid/squid.conf /etc/squid/squid.conf.dpkg-dist
#
# Restore the old user file as main squid.conf
#
mv /etc/squid/squid.conf.pre3.5_upgrade /etc/squid/squid.conf
fi
fi
#
# Chown the directories.
#
log_dir=/var/log/squid
cache_dir=`grepconf2 cache_dir /var/spool/squid`
usr=`grepconf cache_effective_user proxy`
grp=`grepconf cache_effective_group proxy`
if [ "$(stat -c %U $cache_dir)" != "$usr" ] ||
[ "$(stat -c %G $cache_dir)" != "$grp" ] ; then
chown $usr:$grp $cache_dir
fi
if [ "$(stat -c %U $log_dir)" != "$usr" ] ||
[ "$(stat -c %G $log_dir)" != "$grp" ] ; then
if [ "$(dpkg-statoverride --list $log_dir)" = "" ] ; then
chown $usr:$grp $log_dir
fi
fi
# If we have setcap is installed, try setting cap_net_raw+ep,
# which allows us to install our binaries without the setuid
# bit.
PINGER=/usr/lib/squid/pinger
if command -v setcap > /dev/null; then
if setcap cap_net_raw+ep $PINGER; then
echo "Setcap worked! $PINGER is not suid!"
else
echo "Setcap failed on $PINGER, falling back to setuid" >&2
chmod u+s $PINGER
fi
else
echo "Setcap is not installed, falling back to setuid" >&2
chmod u+s $PINGER
fi
#
# Update links if needed and start squid.
#
update-rc.d squid defaults 30 >/dev/null
if [ -f /var/run/squid3.pid ] && kill -0 "$(cat /var/run/squid3.pid)" 2>/dev/null && dpkg --compare-versions "$2" lt '3.5'; then
invoke-rc.d squid3 stop
invoke-rc.d squid restart
else
invoke-rc.d squid restart
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
#
# Unknown action - do nothing.
#
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
# Automatically added by dh_apparmor/UNDECLARED
aa_is_enabled() {
if command aa-enabled >/dev/null 2>&1; then
# apparmor >= 2.10.95-2
aa-enabled --quiet 2>/dev/null
else
# apparmor << 2.10.95-2
# (This should be removed once Debian Stretch and Ubuntu 18.04 are out.)
rc=0
aa-status --enabled 2>/dev/null || rc=$?
[ "$rc" = 0 ] || [ "$rc" = 2 ]
fi
}
if [ "$1" = "configure" ]; then
APP_PROFILE="/etc/apparmor.d/usr.sbin.squid"
if [ -f "$APP_PROFILE" ]; then
# Add the local/ include
LOCAL_APP_PROFILE="/etc/apparmor.d/local/usr.sbin.squid"
test -e "$LOCAL_APP_PROFILE" || {
tmp=`mktemp`
cat <<EOM > "$tmp"
# Site-specific additions and overrides for usr.sbin.squid.
# For more details, please see /etc/apparmor.d/local/README.
EOM
mkdir `dirname "$LOCAL_APP_PROFILE"` 2>/dev/null || true
mv -f "$tmp" "$LOCAL_APP_PROFILE"
chmod 644 "$LOCAL_APP_PROFILE"
}
# Reload the profile, including any abstraction updates
if aa_is_enabled; then
apparmor_parser -r -T -W "$APP_PROFILE" || true
fi
fi
fi
# End automatically added section
exit 0
|