>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"

Reply via email to