Explorar o código

* 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

Michael Vogt %!s(int64=16) %!d(string=hai) anos
pai
achega
553769ba6d
Modificáronse 3 ficheiros con 35 adicións e 12 borrados
  1. 0 12
      debian/apt.cron.daily
  2. 25 0
      debian/apt.postinst
  3. 10 0
      debian/changelog

+ 0 - 12
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
 

+ 25 - 0
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)

+ 10 - 0
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