From 16c6ea29348ddac73998f339166f863bee0dfef6 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Tue, 24 Mar 2015 13:52:04 +0100 Subject: timedate: remove daylight saving time handling and tzfile parser We planned to support (the conceptually broken) daylight saving time/local time features in the kernel, SCSI, networking, FAT filesystem, but it turned out to be a race we cannot win and do not want to get involved. Systemd should not fiddle with daylight saving time or parse timezone information itself. Leave everything to glibc or tools like date(1) and do not make any promises or raise expectations that systemd should handle anything like this. --- src/timedate/timedatectl.c | 56 ---------------------------------------------- 1 file changed, 56 deletions(-) (limited to 'src/timedate/timedatectl.c') diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 44d329ecc2..ab5c8a1f6a 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -33,7 +33,6 @@ #include "build.h" #include "strv.h" #include "pager.h" -#include "time-dst.h" static bool arg_no_pager = false; static bool arg_ask_password = true; @@ -73,33 +72,12 @@ typedef struct StatusInfo { bool ntp_synced; } StatusInfo; -static const char *jump_str(int delta_minutes, char *s, size_t size) { - if (delta_minutes == 60) - return "one hour forward"; - if (delta_minutes == -60) - return "one hour backwards"; - if (delta_minutes < 0) { - snprintf(s, size, "%i minutes backwards", -delta_minutes); - return s; - } - if (delta_minutes > 0) { - snprintf(s, size, "%i minutes forward", delta_minutes); - return s; - } - return ""; -} - static void print_status_info(const StatusInfo *i) { char a[FORMAT_TIMESTAMP_MAX]; - char b[FORMAT_TIMESTAMP_MAX]; - char s[32]; struct tm tm; time_t sec; bool have_time = false; _cleanup_free_ char *zc = NULL, *zn = NULL; - time_t t, tc, tn; - int dn = 0; - bool is_dstc = false, is_dstn = false; int r; assert(i); @@ -158,40 +136,6 @@ static void print_status_info(const StatusInfo *i) { yes_no(i->ntp_synced), yes_no(i->rtc_local)); - if (have_time) { - r = time_get_dst(sec, "/etc/localtime", - &tc, &zc, &is_dstc, - &tn, &dn, &zn, &is_dstn); - if (r < 0) - printf(" DST active: %s\n", "n/a"); - else { - printf(" DST active: %s\n", yes_no(is_dstc)); - - t = tc - 1; - xstrftime(a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&t, &tm)); - - xstrftime(b, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&tc, &tm)); - printf(" Last DST change: DST %s at\n" - " %.*s\n" - " %.*s\n", - is_dstc ? "began" : "ended", - (int) sizeof(a), a, - (int) sizeof(b), b); - - t = tn - 1; - xstrftime(a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&t, &tm)); - xstrftime(b, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&tn, &tm)); - printf(" Next DST change: DST %s (the clock jumps %s) at\n" - " %.*s\n" - " %.*s\n", - is_dstn ? "begins" : "ends", - jump_str(dn, s, sizeof(s)), - (int) sizeof(a), a, - (int) sizeof(b), b); - } - } else - printf(" DST active: %s\n", yes_no(is_dstc)); - if (i->rtc_local) fputs("\n" ANSI_HIGHLIGHT_ON "Warning: The system is configured to read the RTC time in the local time zone. This\n" -- cgit v1.2.3-54-g00ecf