>Number: 164042 >Category: bin >Synopsis: [PATCH] tzsetup(8): Fix VERBOSE to work with new UTC menu >option >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Jan 12 06:10:11 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Devin Teske >Release: FreeBSD 9.0-RELEASE amd64 >Organization: FIS Global, Inc. >Environment: FreeBSD scribe.vicor.com 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2010 r...@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: When compiling with VERBOSE, the verbosity doesn't make sense when selecting the new "UTC" top-level menu-item (which removes the /etc/localtime and /var/db/zoneinfo files).
While we're here, also make the verbose messages adhere to "-n". >How-To-Repeat: Compile with VERBOSE defined (-DVERBOSE). Select the "UTC" top-level item. Observe the message: Copying to /etc/localtime or, if you have a symlink in place at /etc/localtime before executing tzsetup(8), instead observe: Creating symbolic link /etc/localtime to (UTC) The problem with both of these messages is that what actually happens is that /etc/localtime is deleted. No symbolic link is ever created (despite the message) and no file is ever copied, rather unlink(2) is called and the result is that /etc/localtime no longer exists. This patch causes the verbose messages to instead be: Removing /etc/localtime Which is a more accurate description of what occurred after selecting the "UTC" menu item that was added in SVN r220172. >Fix: See attached patch.txt Patch attached with submission follows: --- usr.sbin/tzsetup/tzsetup.c.orig Fri Dec 2 11:19:10 2011 +++ usr.sbin/tzsetup/tzsetup.c Wed Jan 11 19:47:51 2012 @@ -652,14 +652,16 @@ install_zoneinfo_file(const char *zonein copymode = 1; #ifdef VERBOSE - if (copymode) + if (zoneinfo_file == NULL) + snprintf(prompt, sizeof(prompt), + "Removing %s", path_localtime); + else if (copymode) snprintf(prompt, sizeof(prompt), "Copying %s to %s", zoneinfo_file, path_localtime); else snprintf(prompt, sizeof(prompt), "Creating symbolic link %s to %s", - path_localtime, - zoneinfo_file == NULL ? "(UTC)" : zoneinfo_file); + path_localtime, zoneinfo_file); if (usedialog) dialog_notify(prompt); else @@ -692,6 +694,10 @@ install_zoneinfo_file(const char *zonein return (DITEM_FAILURE | DITEM_RECREATE); } +#ifdef VERBOSE + snprintf(prompt, sizeof(prompt), + "Removed %s", path_localtime); +#endif return (DITEM_LEAVE_MENU); } @@ -769,23 +775,23 @@ install_zoneinfo_file(const char *zonein return (DITEM_FAILURE | DITEM_RECREATE); } } - } #ifdef VERBOSE - snprintf(title, sizeof(title), "Done"); - if (copymode) - snprintf(prompt, sizeof(prompt), - "Copied timezone file from %s to %s", zoneinfo_file, - path_localtime); - else - snprintf(prompt, sizeof(prompt), - "Created symbolic link from %s to %s", zoneinfo_file, - path_localtime); - if (usedialog) - dialog_msgbox(title, prompt, 8, 72, 1); - else - fprintf(stderr, "%s\n", prompt); + snprintf(title, sizeof(title), "Done"); + if (copymode) + snprintf(prompt, sizeof(prompt), + "Copied timezone file from %s to %s", + zoneinfo_file, path_localtime); + else + snprintf(prompt, sizeof(prompt), + "Created symbolic link from %s to %s", + zoneinfo_file, path_localtime); + if (usedialog) + dialog_msgbox(title, prompt, 8, 72, 1); + else + fprintf(stderr, "%s\n", prompt); #endif + } /* reallydoit */ return (DITEM_LEAVE_MENU); } >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"