Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F174505341
D8325.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
9 KB
Referenced Files
None
Subscribers
None
D8325.diff
View Options
Index: tools/build/mk/OptionalObsoleteFiles.inc
===================================================================
--- tools/build/mk/OptionalObsoleteFiles.inc
+++ tools/build/mk/OptionalObsoleteFiles.inc
@@ -1348,12 +1348,10 @@
OLD_FILES+=usr/lib/libdpv.so.1
OLD_FILES+=usr/lib/libdpv_p.a
OLD_FILES+=usr/sbin/bsdconfig
-OLD_FILES+=usr/sbin/tzsetup
OLD_FILES+=usr/share/man/man1/dialog.1.gz
OLD_FILES+=usr/share/man/man1/dpv.1.gz
OLD_FILES+=usr/share/man/man3/dialog.3.gz
OLD_FILES+=usr/share/man/man3/dpv.3.gz
-OLD_FILES+=usr/share/man/man8/tzsetup.8.gz
OLD_FILES+=usr/share/man/man8/bsdconfig.8.gz
.endif
Index: usr.sbin/Makefile
===================================================================
--- usr.sbin/Makefile
+++ usr.sbin/Makefile
@@ -88,6 +88,7 @@
tcpdump \
traceroute \
trpt \
+ tzsetup \
uefisign \
ugidfw \
vigr \
@@ -121,7 +122,6 @@
SUBDIR.${MK_BSDINSTALL}+= bsdinstall
SUBDIR.${MK_BSNMP}+= bsnmpd
SUBDIR.${MK_CTM}+= ctm
-SUBDIR.${MK_DIALOG}+= tzsetup
SUBDIR.${MK_DIALOG}+= bsdconfig
SUBDIR.${MK_EFI}+= efivar
SUBDIR.${MK_FLOPPY}+= fdcontrol
Index: usr.sbin/tzsetup/Makefile
===================================================================
--- usr.sbin/tzsetup/Makefile
+++ usr.sbin/tzsetup/Makefile
@@ -1,12 +1,16 @@
# $FreeBSD$
+.include <src.opts.mk>
+
PROG= tzsetup
MAN= tzsetup.8
-CFLAGS+= -I${.CURDIR}/../../contrib/dialog -I.
+CFLAGS+= -I.
+.if ${MK_DIALOG} != no
WARNS?= 3
-
+CFLAGS+= -I${.CURDIR}/../../contrib/dialog -DHAVE_DIALOG
LIBADD= dialog ncursesw
+.endif
.include <bsd.prog.mk>
Index: usr.sbin/tzsetup/tzsetup.c
===================================================================
--- usr.sbin/tzsetup/tzsetup.c
+++ usr.sbin/tzsetup/tzsetup.c
@@ -49,7 +49,9 @@
#include <sys/stat.h>
#include <sys/sysctl.h>
+#ifdef HAVE_DIALOG
#include <dialog.h>
+#endif
#define _PATH_ZONETAB "/usr/share/zoneinfo/zone.tab"
#define _PATH_ISO3166 "/usr/share/misc/iso3166"
@@ -72,6 +74,19 @@
#define DITEM_LEAVE_MENU (1 << 16)
#define DITEM_RECREATE (1 << 18)
+static char path_zonetab[MAXPATHLEN], path_iso3166[MAXPATHLEN],
+ path_zoneinfo[MAXPATHLEN], path_localtime[MAXPATHLEN],
+ path_db[MAXPATHLEN], path_wall_cmos_clock[MAXPATHLEN];
+
+static int reallydoit = 1;
+static int reinstall = 0;
+static char *chrootenv = NULL;
+
+static void usage(void);
+static int install_zoneinfo(const char *zoneinfo);
+static int install_zoneinfo_file(const char *zoneinfo_file);
+
+#ifdef HAVE_DIALOG
/* for use in describing more exotic behaviors */
typedef struct dialogMenuItem {
char *prompt;
@@ -187,20 +202,10 @@
return result;
}
-static char path_zonetab[MAXPATHLEN], path_iso3166[MAXPATHLEN],
- path_zoneinfo[MAXPATHLEN], path_localtime[MAXPATHLEN],
- path_db[MAXPATHLEN], path_wall_cmos_clock[MAXPATHLEN];
-
-static int reallydoit = 1;
-static int reinstall = 0;
static int usedialog = 1;
-static char *chrootenv = NULL;
-static void usage(void);
static int confirm_zone(const char *filename);
static int continent_country_menu(dialogMenuItem *);
-static int install_zoneinfo(const char *zoneinfo);
-static int install_zoneinfo_file(const char *zoneinfo_file);
static int set_zone_multi(dialogMenuItem *);
static int set_zone_whole_country(dialogMenuItem *);
static int set_zone_menu(dialogMenuItem *);
@@ -644,6 +649,53 @@
}
static int
+confirm_zone(const char *filename)
+{
+ char title[64], prompt[64];
+ time_t t = time(0);
+ struct tm *tm;
+ int rv;
+
+ setenv("TZ", filename == NULL ? "" : filename, 1);
+ tzset();
+ tm = localtime(&t);
+
+ snprintf(title, sizeof(title), "Confirmation");
+ snprintf(prompt, sizeof(prompt),
+ "Does the abbreviation `%s' look reasonable?", tm->tm_zone);
+ rv = !dialog_yesno(title, prompt, 5, 72);
+ return (rv);
+}
+
+static int
+set_zone_multi(dialogMenuItem *dmi)
+{
+ struct zone *zp = dmi->data;
+ int rv;
+
+ if (!confirm_zone(zp->filename))
+ return (DITEM_FAILURE | DITEM_RECREATE);
+
+ rv = install_zoneinfo(zp->filename);
+ return (rv);
+}
+
+static int
+set_zone_whole_country(dialogMenuItem *dmi)
+{
+ struct country *cp = dmi->data;
+ int rv;
+
+ if (!confirm_zone(cp->filename))
+ return (DITEM_FAILURE | DITEM_RECREATE);
+
+ rv = install_zoneinfo(cp->filename);
+ return (rv);
+}
+
+#endif
+
+static int
install_zoneinfo_file(const char *zoneinfo_file)
{
char buf[1024];
@@ -672,9 +724,11 @@
snprintf(prompt, sizeof(prompt),
"Creating symbolic link %s to %s",
path_localtime, zoneinfo_file);
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
#endif
@@ -685,9 +739,11 @@
snprintf(prompt, sizeof(prompt),
"Could not delete %s: %s", path_localtime,
strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
@@ -697,9 +753,11 @@
snprintf(prompt, sizeof(prompt),
"Could not delete %s: %s", path_db,
strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
@@ -708,9 +766,11 @@
snprintf(title, sizeof(title), "Done");
snprintf(prompt, sizeof(prompt),
"Removed %s", path_localtime);
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
#endif
return (DITEM_LEAVE_MENU);
@@ -723,9 +783,11 @@
snprintf(prompt, sizeof(prompt),
"Could not open %s: %s", zoneinfo_file,
strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
}
@@ -734,10 +796,12 @@
snprintf(prompt, sizeof(prompt),
"Could not unlink %s: %s",
path_localtime, strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog) {
snprintf(title, sizeof(title), "Error");
dialog_msgbox(title, prompt, 8, 72, 1);
} else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
}
@@ -749,9 +813,11 @@
snprintf(prompt, sizeof(prompt),
"Could not open %s: %s",
path_localtime, strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
}
@@ -765,9 +831,11 @@
snprintf(prompt, sizeof(prompt),
"Error copying %s to %s %s", zoneinfo_file,
path_localtime, strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
/* Better to leave none than a corrupt one. */
unlink(path_localtime);
@@ -781,9 +849,11 @@
snprintf(prompt, sizeof(prompt),
"Cannot access %s: %s", zoneinfo_file,
strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
}
@@ -791,10 +861,12 @@
snprintf(prompt, sizeof(prompt),
"Could not unlink %s: %s",
path_localtime, strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog) {
snprintf(title, sizeof(title), "Error");
dialog_msgbox(title, prompt, 8, 72, 1);
} else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
}
@@ -804,9 +876,11 @@
"Cannot create symbolic link %s to %s: %s",
path_localtime, zoneinfo_file,
strerror(errno));
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
return (DITEM_FAILURE | DITEM_RECREATE);
}
@@ -822,9 +896,11 @@
snprintf(prompt, sizeof(prompt),
"Created symbolic link from %s to %s",
zoneinfo_file, path_localtime);
+#ifdef HAVE_DIALOG
if (usedialog)
dialog_msgbox(title, prompt, 8, 72, 1);
else
+#endif
fprintf(stderr, "%s\n", prompt);
#endif
} /* reallydoit */
@@ -855,51 +931,6 @@
return (rv);
}
-static int
-confirm_zone(const char *filename)
-{
- char title[64], prompt[64];
- time_t t = time(0);
- struct tm *tm;
- int rv;
-
- setenv("TZ", filename == NULL ? "" : filename, 1);
- tzset();
- tm = localtime(&t);
-
- snprintf(title, sizeof(title), "Confirmation");
- snprintf(prompt, sizeof(prompt),
- "Does the abbreviation `%s' look reasonable?", tm->tm_zone);
- rv = !dialog_yesno(title, prompt, 5, 72);
- return (rv);
-}
-
-static int
-set_zone_multi(dialogMenuItem *dmi)
-{
- struct zone *zp = dmi->data;
- int rv;
-
- if (!confirm_zone(zp->filename))
- return (DITEM_FAILURE | DITEM_RECREATE);
-
- rv = install_zoneinfo(zp->filename);
- return (rv);
-}
-
-static int
-set_zone_whole_country(dialogMenuItem *dmi)
-{
- struct country *cp = dmi->data;
- int rv;
-
- if (!confirm_zone(cp->filename))
- return (DITEM_FAILURE | DITEM_RECREATE);
-
- rv = install_zoneinfo(cp->filename);
- return (rv);
-}
-
static void
usage(void)
{
@@ -912,8 +943,11 @@
int
main(int argc, char **argv)
{
+#ifdef HAVE_DIALOG
char title[64], prompt[128];
- int c, fd, rv, skiputc;
+ int fd;
+#endif
+ int c, rv, skiputc;
char vm_guest[16] = "";
size_t len = sizeof(vm_guest);
@@ -934,7 +968,9 @@
break;
case 'r':
reinstall = 1;
+#ifdef HAVE_DIALOG
usedialog = 0;
+#endif
break;
case 's':
skiputc = 1;
@@ -998,12 +1034,15 @@
struct stat sb;
if (stat(argv[optind], &sb) != 0) {
+#ifdef HAVE_DIALOG
usedialog = 0;
+#endif
rv = install_zoneinfo(argv[optind]);
exit(rv & ~DITEM_LEAVE_MENU);
}
/* FALLTHROUGH */
}
+#ifdef HAVE_DIALOG
read_iso3166_table();
read_zones();
@@ -1064,5 +1103,8 @@
dlg_clear();
end_dialog();
+#else
+ usage();
+#endif
return (0);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Oct 4, 6:56 PM (41 m, 48 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40203811
Default Alt Text
D8325.diff (9 KB)
Attached To
Mode
D8325: Fix installworld with WITHOUT_DIALOG
Attached
Detach File
Event Timeline
Log In to Comment