Use dpkg-divert to disable apt-listchanges.
authorValentin Vidic <vvidic@carnet.hr>
Tue, 5 Feb 2008 13:31:57 +0000 (14:31 +0100)
committerValentin Vidic <vvidic@carnet.hr>
Tue, 5 Feb 2008 13:31:57 +0000 (14:31 +0100)
src/actions/main.queue
src/functions.sh

index 16a6b5f..39044b2 100644 (file)
@@ -4,7 +4,7 @@
 true                           first_warning
 true                           check_upgrade
 true                           remove_bloat
-true                           disable_apt_listchanges
+true                           apt_listchanges disable
 true                           comment_force_overwrite # ruzna opcija za dpkg
 # ovo bi trebao biti zadnji post_upgrade - spremi popis
 # instaliranih servisa za koje cemo na kraju provjeriti da li rade.
@@ -36,6 +36,7 @@ true                          dist_upgrade            # instaliraj ostatak
 true                           debconf_priority reset
 true                           add_group_proc          # za oidentd
 pkg kernel-2.6-cn              dpkg-reconfigure kernel-2.6-cn
+true                           apt_listchanges enable
 # ovo bi trebalo biti predzadnje na popisu
 #  - izvrsi sve uvjetne post_upgrade akcije
 true                           run_post_upgrade
index d3bd0de..25ef535 100644 (file)
@@ -479,13 +479,27 @@ restore_configs () {
   fi
 }
 
-# temporary remove listchanges packages to reduce clutter during upgrade
-disable_apt_listchanges () {
-  for p in apt-listchanges apt-listchanges-cn; do
-      if pkg $p; then
-          pkgrm $p
-          post_upgrade pkgadd $p
-      fi
+# temporary disable listchanges packages to reduce clutter during upgrade
+apt_listchanges () {
+  local file command=$1
+
+  for file in /etc/apt/apt.conf.d/20listchanges \
+              /etc/apt/apt.conf.d/20listchanges-cn
+  do
+      case $command in
+           disable)
+               if [ -f $file ]; then
+                   dpkg-divert --local --rename --divert $file.$backup_ext \
+                               --add $file || true
+               fi
+               ;;
+
+           enable)
+               if [ -f $file.$backup_ext ]; then
+                   dpkg-divert --remove $file || true
+               fi
+               ;;
+     esac
   done
 }