This is the first in a series of patches that will remove timezone support from the kernel.
Here, remove date(1) support for modifying the kernel's timezone. The flags are kept in the code so that scripts don't break immediately. ok? Index: date.c =================================================================== RCS file: /cvs/src/bin/date/date.c,v retrieving revision 1.55 diff -u -p -r1.55 date.c --- date.c 28 Jun 2019 13:34:58 -0000 1.55 +++ date.c 7 Aug 2019 23:21:01 -0000 @@ -58,22 +58,19 @@ static void __dead usage(void); int main(int argc, char *argv[]) { - struct timezone tz; const char *errstr; struct tm *tp; int ch, rflag; char *format, buf[1024], *outzone = NULL; const char *pformat = NULL; - tz.tz_dsttime = tz.tz_minuteswest = 0; rflag = 0; - while ((ch = getopt(argc, argv, "ad:f:jr:ut:z:")) != -1) + while ((ch = getopt(argc, argv, "af:jr:uz:")) != -1) switch(ch) { case 'a': slidetime = 1; break; - case 'd': /* daylight saving time */ - tz.tz_dsttime = atoi(optarg) ? 1 : 0; + case 'd': /* compat: daylight saving time */ break; case 'f': /* parse with strptime */ pformat = optarg; @@ -91,10 +88,7 @@ main(int argc, char *argv[]) if (setenv("TZ", "UTC", 1) == -1) err(1, "cannot unsetenv TZ"); break; - case 't': /* minutes west of GMT */ - tz.tz_minuteswest = strtonum(optarg, 0, 24*60-1, &errstr); - if (errstr) - errx(1, "-t %s: %s", optarg, errstr); + case 't': /* compat: minutes west of GMT */ break; case 'z': outzone = optarg; @@ -105,14 +99,6 @@ main(int argc, char *argv[]) argc -= optind; argv += optind; - /* - * If -d or -t, set the timezone or daylight saving time; this - * doesn't belong here, the kernel should not know about either. - */ - if ((tz.tz_minuteswest || tz.tz_dsttime) && - settimeofday(NULL, &tz)) - err(1, "settimeofday"); - if (!rflag && time(&tval) == -1) err(1, "time"); @@ -279,9 +265,8 @@ badformat(void) static void __dead usage(void) { - (void)fprintf(stderr, - "usage: %s [-aju] [-d dst] [-f pformat] [-r seconds] " - "[-t minutes_west]\n" + fprintf(stderr, + "usage: %s [-aju] [-f pformat] [-r seconds]\n" "\t[-z output_zone] [+format] [[[[[[cc]yy]mm]dd]HH]MM[.SS]]\n", __progname); exit(1); Index: date.1 =================================================================== RCS file: /cvs/src/bin/date/date.1,v retrieving revision 1.70 diff -u -p -r1.70 date.1 --- date.1 22 Jan 2019 06:53:30 -0000 1.70 +++ date.1 7 Aug 2019 23:21:01 -0000 @@ -42,10 +42,8 @@ .Sh SYNOPSIS .Nm date .Op Fl aju -.Op Fl d Ar dst .Op Fl f Ar pformat .Op Fl r Ar seconds -.Op Fl t Ar minutes_west .Op Fl z Ar output_zone .Op Cm + Ns Ar format .Sm off @@ -78,15 +76,6 @@ Use the .Xr adjtime 2 call to gradually skew the local time to the desired time rather than just hopping. -.It Fl d Ar dst -Set the system's value for Daylight Saving Time. -If -.Ar dst -is non-zero, future calls -to -.Xr gettimeofday 2 -will return a non-zero value for -.Fa tz_dsttime . .It Fl f Ar pformat Parse the specified time using .Xr strptime 3 @@ -99,13 +88,6 @@ the clock. Print out (in specified format) the date and time represented by .Ar seconds from the Epoch. -.It Fl t Ar minutes_west -Set the system's value for minutes west of GMT. -.Ar minutes_west -specifies the number of minutes returned in -.Fa tz_minuteswest -by future calls to -.Xr gettimeofday 2 . .It Fl u Display or set the date in UTC (Coordinated Universal) time. .It Fl z Ar output_zone @@ -233,7 +215,7 @@ utility is compliant with the specification. .Pp The flags -.Op Fl adfjrtz , +.Op Fl afjrz , as well as the conversion specifiers .Ql \&%F , .Ql \&%G ,