X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/553769ba6dab6b13c1235e898edd23cb62a00092..69cea1ef2cfda3c4da79fd756a8edaf2be26998e:/debian/apt.postinst?ds=inline diff --git a/debian/apt.postinst b/debian/apt.postinst old mode 100644 new mode 100755 index 6236acd42..1f98fcece --- a/debian/apt.postinst +++ b/debian/apt.postinst @@ -2,24 +2,6 @@ set -e -# set the proxy based on the admin users gconf settings -# -set_apt_proxy_from_gconf() { - admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1) - 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: # * `configure' # * `abort-upgrade' @@ -33,16 +15,55 @@ set_apt_proxy_from_gconf() { 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 + # 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)