]> git.saurik.com Git - apt.git/commitdiff
merged from mvo
authorMichael Vogt <michael.vogt@ubuntu.com>
Tue, 21 Jul 2009 15:04:33 +0000 (17:04 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Tue, 21 Jul 2009 15:04:33 +0000 (17:04 +0200)
1  2 
debian/apt.cron.daily

diff --combined debian/apt.cron.daily
index 2f942ae0f1158e4fa475a86e89f6cccfc04a3a71,39bf5bc1d04e94ddf0c47c9fddf82b1d0aadb3a2..3cf1e28f1605584752bc2e958d0fcacd8f081939
@@@ -69,7 -69,7 +69,7 @@@ check_stamp(
      interval="$2"
  
      if [ $interval -eq 0 ]; then
 -      debug_echo "check_stamp: interval=0."
 +      debug_echo "check_stamp: interval=0"
        # treat as no time has passed
          return 1
      fi
      fi
  
      # compare midnight today to midnight the day the stamp was updated
 -    stamp=$(date -r $stamp '+%s')
 +    stamp_file="$stamp"
 +    stamp=$(date --date=$(date -r $stamp_file --iso-8601) +%s 2>/dev/null)
 +    if [ "$?" != "0" ]; then
 +        # Due to some timezones returning 'invalid date' for midnight on
 +        # certain dates (eg America/Sao_Paulo), if date returns with error
 +        # remove the stamp file and return 0. See coreutils bug:
 +        # http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html
 +        rm -f "$stamp_file"
 +        return 0
 +    fi
 +
 +    now=$(date --date=$(date --iso-8601) +%s 2>/dev/null)
 +    if [ "$?" != "0" ]; then
 +        # As above, due to some timezones returning 'invalid date' for midnight
 +        # on certain dates (eg America/Sao_Paulo), if date returns with error
 +        # return 0.
 +        return 0
 +    fi
 +
      delta=$(($now-$stamp))
  
      # intervall is in days, convert to sec.
      interval=$(($interval*60*60*24))
      debug_echo "check_stamp: interval=$interval, now=$now, stamp=$stamp, delta=$delta (sec)"
  
 +    # remove timestamps a day (or more) in the future and force re-check
 +    if [ $stamp -gt $(($now+86400)) ]; then
 +         echo "WARNING: file $stamp_file has a timestamp in the future: $stamp"
 +         rm -f "$stamp_file"
 +         return 0
 +    fi
 +
      if [ $delta -ge $interval ]; then
          return 0
      fi
@@@ -360,7 -335,7 +360,7 @@@ if which on_ac_power >/dev/null; the
  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 && ! apt-get check $XAPTOPT $XSTDERR ; then
      debug_echo "error encountered in cron job with \"apt-get check\"."
      exit 0
  fi
@@@ -463,6 -438,9 +463,9 @@@ els
      debug_echo "autoclean (not run)"
  fi
  
+ # check cache size 
+ check_size_constraints
  #
  #     vim: set sts=4 ai :
  #