Просмотр исходного кода

apt.cron.daily: catch invalid dates due to DST time changes
in the stamp files

Michael Vogt лет назад: 17
Родитель
Сommit
9c2d35fa47
2 измененных файлов с 27 добавлено и 2 удалено
  1. 19 2
      debian/apt.cron.daily
  2. 8 0
      debian/changelog

+ 19 - 2
debian/apt.cron.daily

@@ -50,8 +50,25 @@ check_stamp()
     fi
 
     # compare midnight today to midnight the day the stamp was updated
-    stamp=$(date --date=$(date -r $stamp --iso-8601) +%s)
-    now=$(date --date=$(date --iso-8601) +%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,

+ 8 - 0
debian/changelog

@@ -1,3 +1,11 @@
+apt (0.7.20.2ubuntu6) jaunty; urgency=low
+
+  [ Jamie Strandboge ]
+  * apt.cron.daily: catch invalid dates due to DST time changes
+    in the stamp files
+
+ -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 08 Apr 2009 22:39:50 +0200
+
 apt (0.7.20.2ubuntu5) jaunty; urgency=low
 
   [ Colin Watson ]