summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/apt.cron.daily21
-rw-r--r--debian/changelog6
2 files changed, 24 insertions, 3 deletions
diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily
index 32fbafc57..5c5ca88c7 100644
--- a/debian/apt.cron.daily
+++ b/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,
diff --git a/debian/changelog b/debian/changelog
index 94abad0bf..2b84d16a6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,8 +10,12 @@ apt (0.7.20.3) UNRELEASED; urgency=low
- sk.po. Closes: #520403
- it.po. Closes: #522222
- sk.po. Closes: #520403
+
+ [ Jamie Strandboge ]
+ * apt.cron.daily: catch invalid dates due to DST time changes
+ in the stamp files
- -- Michael Vogt <mvo@debian.org> Sun, 08 Feb 2009 11:47:48 +0100
+ -- Michael Vogt <mvo@debian.org> Wed, 08 Apr 2009 22:37:01 +0200
apt (0.7.20.2) unstable; urgency=medium