set -e
-# set the proxy based on the admin users gconf settings
-#
-set_apt_proxy_from_gconf() {
- # try SUDO_USER first
- if [ -n "$SUDO_USER" ]; then
- admin_user="$SUDO_USER"
- else
- admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1)
- fi
- # test if the user actually exists, getent returns "+" for e.g.
- # LDAP
- if ! id -u "$admin_user" > /dev/null 2>&1; then
- return
- fi
- # get the settings from gconf
- if [ -n "$admin_user" ] && [ -x /usr/bin/sudo ] && [ -z "$http_proxy" ] && [ -x /usr/bin/gconftool ]; then
- use=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/use_http_proxy 2>/dev/null)
- host=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/host 2>/dev/null)
- port=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/port 2>/dev/null)
- if [ "$use" = "true" ] && [ -n "$host" ] && [ -n "$port" ]; then
- APT_CONF_PROXY=""
- eval $(apt-config shell APT_CONF_PROXY Acquire::http::proxy)
- if [ -z "$APT_CONF_PROXY" ]; then
- echo "Acquire::http::proxy \"http://$host:$port/\";" >> /etc/apt/apt.conf
- fi
- fi
- fi
-}
-
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
case "$1" in
configure)
- if ! test -f /etc/apt/trusted.gpg; then
- cp /usr/share/apt/ubuntu-archive.gpg /etc/apt/trusted.gpg
- fi
+ if dpkg --compare-versions "$2" lt 1.1~exp4; then
+ # apt-key before 0.9.10 could leave empty keyrings around
+ find /etc/apt/trusted.gpg.d/ -name '*.gpg' | while read keyring; do
+ if ! test -s "$keyring"; then
+ rm -f "$keyring"
+ fi
+ done
+ # apt-key before 0.9.8.2 could create 0600 trusted.gpg file
+ if test -e /etc/apt/trusted.gpg ; then
+ chmod -f 0644 /etc/apt/trusted.gpg || true
+ fi
+ fi
+
+ if dpkg --compare-versions "$2" lt-nl 0.9.9.5; then
+ # we are using tmpfiles for both
+ rm -f /etc/apt/trustdb.gpg
+ # this removal was done unconditional since 0.8.15.3
+ SECRING='/etc/apt/secring.gpg'
+ # test if secring is an empty normal file
+ if test -f $SECRING -a ! -s $SECRING; then
+ rm -f $SECRING
+ fi
+ fi
+
+ # add unprivileged user for the apt methods
+ adduser --force-badname --system --home /nonexistent \
+ --no-create-home --quiet _apt || true
+
+ # Fixup any mistake in the home directory of the _apt user
+ if dpkg --compare-versions "$2" lt-nl 1.1~exp10~; then
+ usermod --home /nonexistent _apt
+ fi
- # mvo: get gconf defaults once and write to a file, reason is
- # that sudo no longer honors http_proxy
- # this can be removed after lucid is released
- if dpkg --compare-versions "$2" lt-nl "0.7.25.3ubuntu2"; then
- set_apt_proxy_from_gconf || true
+ # deal with upgrades from experimental
+ if dpkg --compare-versions "$2" 'eq' '1.1~exp3'; then
+ # libapt will setup partial/ at runtime
+ chown -R root:root /var/lib/apt/lists /var/cache/apt/archives || true
fi
+
+ # ensure tighter permissons on the logs, see LP: #975199
+ if dpkg --compare-versions "$2" lt-nl 0.9.7.7; then
+ # ensure permissions are right
+ chmod -f 0640 /var/log/apt/term.log* || true
+ fi
+
+ # create kernel autoremoval blacklist on update
+ if dpkg --compare-versions "$2" lt 0.9.9.3; then
+ /etc/kernel/postinst.d/apt-auto-removal
+ fi
;;
abort-upgrade|abort-remove|abort-deconfigure)