Only run Download-Upgradable and Unattended-Upgrades if the initial
authorMichael Vogt <michael.vogt@ubuntu.com>
Tue, 21 Jul 2009 15:50:54 +0000 (17:50 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Tue, 21 Jul 2009 15:50:54 +0000 (17:50 +0200)
update was successful Closes: #341970

debian/apt.cron.daily
debian/changelog

index 39bf5bc..cc81a3a 100644 (file)
@@ -335,7 +335,7 @@ if which on_ac_power >/dev/null; then
 fi
 
 # check if we can lock the cache and if the cache is clean
-if which apt-get >/dev/null && ! eval apt-get check $XAPTOPT $XSTDERR ; then
+if which apt-get >/dev/null && ! eval apt-get check -f $XAPTOPT $XSTDERR ; then
     debug_echo "error encountered in cron job with \"apt-get check\"."
     exit 0
 fi
@@ -378,6 +378,7 @@ do_cache_backup $BackupArchiveInterval
 random_sleep
 
 # update package lists
+UPDATED=0
 UPDATE_STAMP=/var/lib/apt/periodic/update-stamp
 if check_stamp $UPDATE_STAMP $UpdateInterval; then
     if eval apt-get $XAPTOPT -y update $XSTDERR; then
@@ -392,6 +393,7 @@ if check_stamp $UPDATE_STAMP $UpdateInterval; then
            debug_echo "dbus signal not send (command not available)"
        fi
        update_stamp $UPDATE_STAMP
+       UPDATED=1
     else
        debug_echo "download updated metadata (error)"
     fi
@@ -401,7 +403,7 @@ fi
        
 # download all upgradeable packages (if it is requested)
 DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp
-if check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then
+if [ $UPDATED -eq 1 ] && check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then
     if  eval apt-get $XAPTOPT -y -d dist-upgrade $XSTDERR; then
        update_stamp $DOWNLOAD_UPGRADEABLE_STAMP
        debug_echo "download upgradable (success)"
@@ -414,7 +416,7 @@ fi
 
 # auto upgrade all upgradeable packages
 UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp
-if which unattended-upgrade >/dev/null && check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then
+if [ $UPDATED -eq 1 ] && which unattended-upgrade >/dev/null && check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then
     if unattended-upgrade $XUUPOPT; then
        update_stamp $UPGRADE_STAMP
        debug_echo "unattended-upgrade (success)"
index cf92311..668cf55 100644 (file)
@@ -4,8 +4,6 @@ apt (0.7.21) UNRELEASED; urgency=low
   * Updated cron script to support backups by hardlinks and 
     verbose levels.  All features turned off by default. 
   * Added more error handlings.  Closes: #438803, #462734, #454989, 
-  * Refactored condition structure to make download and upgrade performed 
-    if only previous steps succeeded. Closes: #341970
   * Documented all cron script related configuration items in 
     configure-index.
 
@@ -29,7 +27,9 @@ apt (0.7.21) UNRELEASED; urgency=low
       HttpMethod::ServerDie() (LP: #385144)
   * apt-pkg/deb/dpkgpm.cc:
     - provide DPkg::Chroot-Directory config option (useful for testing)
-
+  * Only run Download-Upgradable and Unattended-Upgrades if the initial
+    update was successful Closes: #341970
+  
  -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 28 May 2009 17:51:42 +0200
 
   [ Michael Vogt ]