This file is indexed.

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