systemd/SOURCES/0822-timedatectl-setting-set_local_rtc-to-1-will-throw-Wa.patch

58 lines
3.2 KiB
Diff

From d13ec6508ef181bdb294a955fe0e52e8df667b91 Mon Sep 17 00:00:00 2001
From: ShreyasMahangade <139431044+ShreyasMahangade@users.noreply.github.com>
Date: Sat, 20 Jul 2024 22:37:30 +0530
Subject: [PATCH] timedatectl: setting set_local_rtc to 1 will throw Warning as
well, use log_warning() (#33489)
Previously only running `timedatectl` it was showing warning regarding the dangers of setting RTC to local TZ.
Now similar warning is also flashed when `set-local-rtc 1`.
(cherry picked from commit db708fc9ba551325e000cc12bd3490a5de0715ba)
Resolves: RHEL-45020
---
src/timedate/timedatectl.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c
index ac4d3dc3ed..1283f129e1 100644
--- a/src/timedate/timedatectl.c
+++ b/src/timedate/timedatectl.c
@@ -152,14 +152,15 @@ static int print_status_info(const StatusInfo *i) {
if (r < 0)
return table_log_print_error(r);
- if (i->rtc_local)
- printf("\n%s"
- "Warning: The system is configured to read the RTC time in the local time zone.\n"
- " This mode cannot be fully supported. It will create various problems\n"
- " with time zone changes and daylight saving time adjustments. The RTC\n"
- " time is never updated, it relies on external facilities to maintain it.\n"
- " If at all possible, use RTC in UTC by calling\n"
- " 'timedatectl set-local-rtc 0'.%s\n", ansi_highlight(), ansi_normal());
+ if (i->rtc_local) {
+ fflush(stdout);
+ log_warning(" \nWarning: The system is configured to read the RTC time in the local time zone.\n"
+ " This mode cannot be fully supported. It will create various problems\n"
+ " with time zone changes and daylight saving time adjustments. The RTC\n"
+ " time is never updated, it relies on external facilities to maintain it.\n"
+ " If at all possible, use RTC in UTC by calling\n"
+ " 'timedatectl set-local-rtc 0'.\n");
+ }
return 0;
}
@@ -264,6 +265,13 @@ static int set_local_rtc(int argc, char **argv, void *userdata) {
if (b < 0)
return log_error_errno(b, "Failed to parse local RTC setting '%s': %m", argv[1]);
+ if (b == 1)
+ log_warning("Warning: The system is now being configured to read the RTC time in the local time zone\n"
+ " This mode cannot be fully supported. It will create various problems\n"
+ " with time zone changes and daylight saving time adjustments. The RTC\n"
+ " time is never updated, it relies on external facilities to maintain it.\n"
+ " If at all possible, use RTC in UTC");
+
r = bus_call_method(
bus,
bus_timedate,