diff options
-rw-r--r-- | debian/apt.cron.daily | 12 | ||||
-rw-r--r-- | debian/apt.postinst | 25 | ||||
-rw-r--r-- | debian/changelog | 10 |
3 files changed, 35 insertions, 12 deletions
diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily index aa7b18886..8e46651b2 100644 --- a/debian/apt.cron.daily +++ b/debian/apt.cron.daily @@ -429,18 +429,6 @@ if [ $UpdateInterval -eq 0 ] && exit 0 fi -# set the proxy based on the admin users gconf settings -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 - export http_proxy="http://$host:$port/" - fi -fi - - # deal with BackupArchiveInterval do_cache_backup $BackupArchiveInterval diff --git a/debian/apt.postinst b/debian/apt.postinst index 773077aa5..6236acd42 100644 --- a/debian/apt.postinst +++ b/debian/apt.postinst @@ -2,6 +2,24 @@ 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: # * <postinst> `configure' <most-recently-configured-version> # * <old-postinst> `abort-upgrade' <new version> @@ -18,6 +36,13 @@ case "$1" in if ! test -f /etc/apt/trusted.gpg; then cp /usr/share/apt/ubuntu-archive.gpg /etc/apt/trusted.gpg 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 + fi ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/changelog b/debian/changelog index f35a5fe62..3f4b4948e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,6 +17,16 @@ apt (0.7.25.3ubuntu2) UNRELEASED; urgency=low error out (LP: #502641) * apt-pkg/indexfile.cc: - deal correctly with three letter langcodes (LP: #391409) + * debian/apt.cron.daily: + - do not look into admin users gconf anymore for the http proxy + the user now needs to use the "Apply system-wide" UI in the + gnome-control-center to set it + * debian/apt.postinst: + - add set_apt_proxy_from_gconf() and run that once on upgrade if + there is no proxy configured already system-wide (LP: #432631) + From that point on gnome-control-center will have to warn if + the user makes changes to the proxy settings and does not apply + them system wide [ Robert Collins ] * Change the package index Info methods to allow apt-cache policy to be |