git: aa6fb1d277be - main - tzsetup: ask local/UTC question only on x86

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Fri, 14 Jun 2024 16:16:06 UTC
The branch main has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=aa6fb1d277be47c51abc309ac9305def0fce7f9d

commit aa6fb1d277be47c51abc309ac9305def0fce7f9d
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-06-12 23:48:24 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-06-14 16:15:48 +0000

    tzsetup: ask local/UTC question only on x86
    
    Storing local time in the RTC is a legacy of 1990s PCs; it's not
    relevant on other platforms of interest to FreeBSD.
    
    While here switch to C99 bool.
    
    Sponsored by:   The FreeBSD Foundation
    Reviewed by:    allanjude (earlier), imp (earlier)
    Differential Revision: https://reviews.freebsd.org/D45575
---
 usr.sbin/tzsetup/tzsetup.8 |  3 ++-
 usr.sbin/tzsetup/tzsetup.c | 25 +++++++++++++++----------
 2 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/usr.sbin/tzsetup/tzsetup.8 b/usr.sbin/tzsetup/tzsetup.8
index 499d25765541..4e70875ec74b 100644
--- a/usr.sbin/tzsetup/tzsetup.8
+++ b/usr.sbin/tzsetup/tzsetup.8
@@ -62,7 +62,8 @@ Skip the initial question about adjusting the clock if not set to UTC.
 .Nm
 will neither create nor delete
 .Pa /etc/wall_cmos_clock .
-On a newly installed system the hardware clock will keep UTC.
+On a newly installed system, the hardware clock will keep UTC.
+This option is enabled automatically on non-x86 hardware.
 .El
 .Pp
 It is possible to short-circuit the menu system by specifying the
diff --git a/usr.sbin/tzsetup/tzsetup.c b/usr.sbin/tzsetup/tzsetup.c
index 617de4efb765..6629dd81f250 100644
--- a/usr.sbin/tzsetup/tzsetup.c
+++ b/usr.sbin/tzsetup/tzsetup.c
@@ -826,23 +826,28 @@ main(int argc, char **argv)
 	char		prompt[128];
 	int		fd;
 #endif
-	int		c, rv, skiputc;
+	int		c, rv;
+	bool		skiputc;
+	char		*dztpath;
+#if defined(__i386__) || defined(__amd64__)
 	char		vm_guest[16] = "";
 	size_t		len = sizeof(vm_guest);
-	char		*dztpath;
 
+	skiputc = false;
+
+	/* Default skiputc to true for VM guests */
+	if (sysctlbyname("kern.vm_guest", vm_guest, &len, NULL, 0) == 0 &&
+	    strcmp(vm_guest, "none") != 0)
+		skiputc = true;
+#else
+	skiputc = true;
+#endif
 	dztpath = NULL;
-	skiputc = 0;
 
 #ifdef HAVE_BSDDIALOG
 	setlocale(LC_ALL, "");
 #endif
 
-	/* Default skiputc to 1 for VM guests */
-	if (sysctlbyname("kern.vm_guest", vm_guest, &len, NULL, 0) == 0 &&
-	    strcmp(vm_guest, "none") != 0)
-		skiputc = 1;
-
 	while ((c = getopt(argc, argv, "C:d:nrs")) != -1) {
 		switch (c) {
 		case 'C':
@@ -861,7 +866,7 @@ main(int argc, char **argv)
 #endif
 			break;
 		case 's':
-			skiputc = 1;
+			skiputc = true;
 			break;
 		default:
 			usage();
@@ -951,7 +956,7 @@ main(int argc, char **argv)
 	if (bsddialog_init() == BSDDIALOG_ERROR)
 		errx(1, "Error bsddialog: %s\n", bsddialog_geterror());
 
-	if (skiputc == 0) {
+	if (!skiputc) {
 		snprintf(prompt, sizeof(prompt),
 		    "Is this machine's CMOS clock set to UTC?  "
 		    "If it is set to local time,\n"