diff options
Diffstat (limited to 'usr/src')
59 files changed, 2522 insertions, 1325 deletions
diff --git a/usr/src/cmd/avs/dsw/iiadm.c b/usr/src/cmd/avs/dsw/iiadm.c index 82a87bbbcb..dd49e10e4e 100644 --- a/usr/src/cmd/avs/dsw/iiadm.c +++ b/usr/src/cmd/avs/dsw/iiadm.c @@ -801,7 +801,7 @@ find_next_cf_line(char *volume, int next) dsw_config_t cf_line; for (setnumber = next; get_dsw_config(setnumber, &cf_line) == 0; - setnumber++) { + setnumber++) { if (strncmp(volume, cf_line.master_vol, DSW_NAMELEN) == 0 || strncmp(volume, cf_line.shadow_vol, DSW_NAMELEN) == 0 || strncmp(volume, cf_line.bitmap_vol, DSW_NAMELEN) == 0) @@ -858,7 +858,7 @@ get_overflow_list() rc = do_ioctl(dsw_fd, DSWIOC_OLIST, acopy_args); if (rc == -1) dsw_error(gettext("Overflow list access failure"), - &acopy_args->status); + &acopy_args->status); else acopy_args->shadow_vol[DSW_NAMELEN*acopy_args->count] = NULL; @@ -879,8 +879,7 @@ find_group_members(char *group) group_volumes = NULL; for (setnumber = 1; /*CSTYLED*/; setnumber++) { (void) snprintf(key, sizeof (key), "ii.set%d.group", setnumber); - if (cfg_get_cstring(cfg, key, buf, - sizeof (buf)) < 0) + if (cfg_get_cstring(cfg, key, buf, sizeof (buf)) < 0) break; if (strcmp(group, buf)) @@ -888,14 +887,13 @@ find_group_members(char *group) (void) snprintf(key, sizeof (key), "ii.set%d.shadow", setnumber); - if (cfg_get_cstring(cfg, key, buf, - sizeof (buf)) < 0) + if (cfg_get_cstring(cfg, key, buf, sizeof (buf)) < 0) break; if (nmembers >= vector_len) { vector_len += 10; group_volumes = realloc(group_volumes, (1+vector_len) * - sizeof (char *)); + sizeof (char *)); } group_volumes[nmembers] = strdup(buf); nmembers++; @@ -919,8 +917,7 @@ find_next_matching_cf_line( conf = &config; (void) get_dsw_config(setnumber, conf); if (io) { - (void) strncpy(io->shadow_vol, conf->shadow_vol, DSW_NAMELEN); - io->shadow_vol[DSW_NAMELEN] = '\0'; + (void) strlcpy(io->shadow_vol, conf->shadow_vol, DSW_NAMELEN); } return (1); } @@ -967,9 +964,8 @@ find_shadow_config(char *volume, dsw_config_t *conf, dsw_ioctl_t *io) } if (io) { - (void) strncpy(io->shadow_vol, c->shadow_vol, + (void) strlcpy(io->shadow_vol, c->shadow_vol, DSW_NAMELEN); - io->shadow_vol[DSW_NAMELEN] = '\0'; } return (1); } @@ -992,7 +988,7 @@ add_cfg_entry(dsw_config_t *parms) (void) sprintf(buf, "ii.set%d.group", setnumber); if (cfg_put_cstring(cfg, buf, - group_name, strlen(group_name)) < 0) + group_name, strlen(group_name)) < 0) perror("cfg_put_cstring"); } else @@ -1033,13 +1029,14 @@ remove_iiset(int setno, char *shadow, int shd_exp) * Handle multiple-shadows of single master */ mdata = (mstcount_t *) - nsc_lookup(volhash, sdata->master); + nsc_lookup(volhash, sdata->master); if ((mdata) && (mdata->count == 1)) { - if (cfg_vol_disable(cfg, sdata->master, - cfg_cluster_tag, "ii") < 0) - dsw_error(gettext( - "SV disable of master failed"), - NULL); + if (cfg_vol_disable(cfg, sdata->master, + cfg_cluster_tag, "ii") < 0) + dsw_error(gettext( + "SV disable of master " + "failed"), + NULL); } } @@ -1052,10 +1049,10 @@ remove_iiset(int setno, char *shadow, int shd_exp) */ /*EMPTY*/; } else if (cfg_cluster_tag && - strcmp(cfg_cluster_tag, "") && - cfg_dgname(shadow, sn, sizeof (sn)) && - strlen(sn) && - strcmp(sn, cfg_cluster_tag)) { + strcmp(cfg_cluster_tag, "") && + cfg_dgname(shadow, sn, sizeof (sn)) && + strlen(sn) && + strcmp(sn, cfg_cluster_tag)) { /* reload disk group volumes */ cfg_resource(cfg, sn); cfg_unload_dsvols(); @@ -1063,10 +1060,12 @@ remove_iiset(int setno, char *shadow, int shd_exp) (void) cfg_load_dsvols(cfg); (void) cfg_load_svols(cfg); if (cfg_vol_disable(cfg, shadow, sn, - "ii") < 0) - dsw_error(gettext( - "SV disable of shadow failed"), - NULL); + "ii") < 0) { + dsw_error(gettext( + "SV disable of shadow " + "failed"), + NULL); + } cfg_resource(cfg, cfg_cluster_tag); } else { if (cfg_vol_disable(cfg, shadow, @@ -1174,26 +1173,27 @@ check_resource_group(char *volume) cfg_resource(cfg, cfg_cluster_tag); return (1); } else { - /* - * Check dgname and cluster tag from -C are the same. - */ - if (strcmp(diskgroup, cfg_cluster_tag) != 0) { - char error_buffer[128]; - (void) snprintf(error_buffer, sizeof (error_buffer), - gettext( - "-C (%s) does not match disk group " - "name (%s) for %s"), cfg_cluster_tag, - diskgroup, volume); - spcs_log("ii", NULL, error_buffer); - dsw_error(error_buffer, NULL); - } + /* + * Check dgname and cluster tag from -C are + * the same. + */ + if (strcmp(diskgroup, cfg_cluster_tag) != 0) { + char error_buffer[128]; + (void) snprintf(error_buffer, + sizeof (error_buffer), + gettext("-C (%s) does not match " + "disk group name (%s) for %s"), + cfg_cluster_tag, diskgroup, volume); + spcs_log("ii", NULL, error_buffer); + dsw_error(error_buffer, NULL); + } } } else if (cfg_cluster_tag == NULL) dsw_error(gettext( - "Point-in-Time Copy volumes, that are not " - "in a device group which has been " - "registered with SunCluster, " - "require usage of \"-C\""), NULL); + "Point-in-Time Copy volumes, that are not " + "in a device group which has been " + "registered with SunCluster, " + "require usage of \"-C\""), NULL); } return (0); } @@ -1365,8 +1365,7 @@ get_bitmap(master_volume, shd_bitmap, copy_bitmap, size) { dsw_bitmap_t parms; - (void) strncpy(parms.shadow_vol, master_volume, DSW_NAMELEN); - parms.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(parms.shadow_vol, master_volume, DSW_NAMELEN); parms.shd_bitmap = shd_bitmap; parms.shd_size = size; parms.copy_bitmap = copy_bitmap; @@ -1386,8 +1385,7 @@ allocate_bitmap(char *shadow_volume) dsw_stat_t args; int stat_flags; - (void) strncpy(args.shadow_vol, shadow_volume, DSW_NAMELEN); - args.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(args.shadow_vol, shadow_volume, DSW_NAMELEN); args.status = spcs_s_ucreate(); if (do_ioctl(dsw_fd, DSWIOC_STAT, &args) == -1) @@ -1489,9 +1487,9 @@ usage(char *why) gettext("\t-e dep m s b\tenable dependent master shadow " "bitmap")); if (check_cluster() == II_CLUSTER) - (void) fprintf(stdout, "%s\n", - gettext("\t-ne ind m s b\tenable exportable master " - "shadow bitmap")); + (void) fprintf(stdout, "%s\n", + gettext("\t-ne ind m s b\tenable exportable master " + "shadow bitmap")); (void) fprintf(stdout, "%s\n", gettext("\t-d v\t\tdisable volume")); (void) fprintf(stdout, "%s\n", @@ -1548,7 +1546,7 @@ usage(char *why) gettext("\t-n\t\tperform action without question")); (void) fprintf(stdout, "%s\n", gettext("\t-p [-c|-u] {m|s}" - "enable PID locking on copy or update")); + "enable PID locking on copy or update")); (void) fprintf(stdout, "%s\n", gettext("\t-p -w v\t\tdisable PID locking")); (void) fprintf(stdout, "%s\n", @@ -1742,8 +1740,7 @@ child_wait(pid_t child, enum child_event event, char *volume) dsw_stat_t args; int rc; - (void) strncpy(args.shadow_vol, volume, DSW_NAMELEN); - args.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(args.shadow_vol, volume, DSW_NAMELEN); for (; dead_child != child; (void) sleep(1)) { @@ -1802,7 +1799,7 @@ mounted(char *t) if ((mntfp = fopen("/etc/mnttab", "r")) == NULL) { dsw_error(gettext("Can not check volume against mount table"), - NULL); + NULL); } if (getmntany(mntfp, &mntent, &mntref) != -1) { /* found something before EOF */ @@ -1834,10 +1831,10 @@ enable(char *master_volume, char *shadow_volume, bzero(&parms, sizeof (dsw_config_t)); if (strcmp(copy_type, "independent") == 0 || - strcmp(copy_type, gettext("independent")) == 0) + strcmp(copy_type, gettext("independent")) == 0) parms.flag = DSW_GOLDEN; else if (strcmp(copy_type, "dependent") == 0 || - strcmp(copy_type, gettext("dependent")) == 0) + strcmp(copy_type, gettext("dependent")) == 0) parms.flag = 0; else dsw_error(gettext("don't understand shadow type"), NULL); @@ -1878,8 +1875,8 @@ enable(char *master_volume, char *shadow_volume, if (check_diskgroup(bitmap_volume, bmp_dg)) rc++; if ((rc != 0) && (rc != 3)) dsw_error(gettext( - "Not all Point-in-Time Copy volumes are " - "in a disk group"), NULL); + "Not all Point-in-Time Copy volumes are " + "in a disk group"), NULL); /* * If volumes are not in a disk group, but are in a @@ -1887,10 +1884,10 @@ enable(char *master_volume, char *shadow_volume, */ if (rc == 0 && cfg_cluster_tag == NULL) dsw_error(gettext( - "Point-in-Time Copy volumes, that are not " - "in a device group which has been " - "registered with SunCluster, " - "require usage of \"-C\""), NULL); + "Point-in-Time Copy volumes, that are not " + "in a device group which has been " + "registered with SunCluster, " + "require usage of \"-C\""), NULL); /* * the same disk group @@ -1898,8 +1895,8 @@ enable(char *master_volume, char *shadow_volume, */ if ((strcmp(mst_dg, bmp_dg)) || (strcmp(mst_dg, shd_dg) && (!nflg))) - dsw_error(gettext( - "Volumes are not in same disk group"), NULL); + dsw_error(gettext( + "Volumes are not in same disk group"), NULL); /* * Can never enable the same shadow twice, regardless of @@ -1907,7 +1904,7 @@ enable(char *master_volume, char *shadow_volume, */ if (find_shadow_line(shadow_volume)) dsw_error(gettext( - "Shadow volume is already configured"), NULL); + "Shadow volume is already configured"), NULL); /* * Groups cannot span multiple clusters @@ -1980,22 +1977,22 @@ enable(char *master_volume, char *shadow_volume, */ if (stat(master_volume, &mstat) != 0) dsw_error(gettext( - "Unable to access master volume"), NULL); + "Unable to access master volume"), NULL); if (!S_ISCHR(mstat.st_mode)) dsw_error(gettext( - "Master volume is not a character device"), NULL); + "Master volume is not a character device"), NULL); /* check the shadow_vol hasn't be used as SNDR secondary vol */ check_iishadow(shadow_volume); if (stat(shadow_volume, &sstat) != 0) dsw_error(gettext( - "Unable to access shadow volume"), NULL); + "Unable to access shadow volume"), NULL); if (!S_ISCHR(sstat.st_mode)) dsw_error(gettext( - "Shadow volume is not a character device"), NULL); + "Shadow volume is not a character device"), NULL); if (mounted(shadow_volume)) { errno = EBUSY; dsw_error(gettext( - "Shadow volume is mounted, unmount it first"), NULL); + "Shadow volume is mounted, unmount it first"), NULL); } if (mstat.st_rdev == sstat.st_rdev) { errno = EINVAL; @@ -2007,7 +2004,7 @@ enable(char *master_volume, char *shadow_volume, } if (!S_ISCHR(bstat.st_mode)) dsw_error(gettext( - "Bitmap volume is not a character device"), NULL); + "Bitmap volume is not a character device"), NULL); if (S_ISCHR(bstat.st_mode)) { if (mstat.st_rdev == bstat.st_rdev) { errno = EINVAL; @@ -2040,16 +2037,16 @@ enable(char *master_volume, char *shadow_volume, for (p = get_overflow_list(); *p != NULL; p += DSW_NAMELEN) { if (strncmp(master_volume, p, DSW_NAMELEN) == 0) dsw_error(gettext( - "Master volume is already an overflow volume"), - NULL); + "Master volume is already an overflow volume"), + NULL); else if (strncmp(shadow_volume, p, DSW_NAMELEN) == 0) dsw_error(gettext( - "Shadow volume is already an overflow volume"), - NULL); + "Shadow volume is already an overflow volume"), + NULL); else if (strncmp(bitmap_volume, p, DSW_NAMELEN) == 0) dsw_error(gettext( - "Bitmap volume is already an overflow volume"), - NULL); + "Bitmap volume is already an overflow volume"), + NULL); } /* @@ -2057,7 +2054,7 @@ enable(char *master_volume, char *shadow_volume, */ if (find_shadow_config(shadow_volume, NULL, &temp)) dsw_error(gettext( - "Shadow volume is already configured"), NULL); + "Shadow volume is already configured"), NULL); if (perform_autosv()) { /* * parse the dsvol entries to see if we need to place @@ -2078,20 +2075,21 @@ enable(char *master_volume, char *shadow_volume, if (nflg) { cfg_resource(cfg, shd_dg); rc = cfg_vol_enable(cfg, shadow_volume, - shd_dg, "ii"); + shd_dg, "ii"); cfg_resource(cfg, cfg_cluster_tag); } else { rc = cfg_vol_enable(cfg, shadow_volume, - cfg_cluster_tag, "ii"); + cfg_cluster_tag, "ii"); } if (rc < 0) { if (mvol_enabled) { if (cfg_vol_disable(cfg, master_volume, cfg_cluster_tag, "ii") < 0) - dsw_error(gettext( - "SV disable of master failed"), - NULL); + dsw_error(gettext( + "SV disable of master " + "failed"), + NULL); } dsw_error( gettext("Cannot enable shadow volume"), @@ -2132,8 +2130,8 @@ enable(char *master_volume, char *shadow_volume, if (!ii_lock(cfg, CFG_WRLOCK) || !find_shadow_config(shadow_volume, NULL, &temp)) { dsw_error(gettext( - "Enable failed, can't tidy up cfg"), - &parms.status); + "Enable failed, can't tidy up cfg"), + &parms.status); } config_locked = 1; remove_iiset(setnumber, shadow_volume, 0); @@ -2145,8 +2143,8 @@ enable(char *master_volume, char *shadow_volume, else sp_info = NULL; spcs_log("ii", sp_info, gettext("Enabled %s %s %s (%s)"), - master_volume, shadow_volume, bitmap_volume, - parms.flag & DSW_GOLDEN ? "independent" : "dependent"); + master_volume, shadow_volume, bitmap_volume, + parms.flag & DSW_GOLDEN ? "independent" : "dependent"); spcs_s_ufree(&parms.status); break; @@ -2190,8 +2188,7 @@ reset(char *volume) unlocked = 1; spcs_log("ii", NULL, gettext("Start reset %s"), volume); - (void) strncpy(prev_stat.shadow_vol, volume, DSW_NAMELEN); - prev_stat.shadow_vol[DSW_NAMELEN - 1] = '\0'; + (void) strlcpy(prev_stat.shadow_vol, volume, DSW_NAMELEN); prev_stat.status = spcs_s_ucreate(); if (do_ioctl(dsw_fd, DSWIOC_STAT, &prev_stat) == -1) { /* set is suspended, so we do the enable processing instead */ @@ -2309,13 +2306,13 @@ overflow(char *volume) check_action(gettext("Initialize this overflow volume?")); if (find_matching_cf_line(volume, NULL, &args)) dsw_error(gettext("Volume is part of a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); args.status = spcs_s_ucreate(); (void) strncpy(args.shadow_vol, volume, DSW_NAMELEN); rc = do_ioctl(dsw_fd, DSWIOC_OCREAT, &args); if (rc == -1) { spcs_log("ii", &args.status, - gettext("Create overflow failed %s"), volume); + gettext("Create overflow failed %s"), volume); dsw_error(gettext("Create overflow failed"), &args.status); } if (rc == -1) @@ -2525,12 +2522,11 @@ do_acopy(char **vol_list, enum copy_update update_mode, if (mounted(t)) { errno = EBUSY; dsw_error(gettext("Target of copy/update is mounted, " - "unmount it first"), NULL); + "unmount it first"), NULL); } - (void) strncpy(stat_s.shadow_vol, parms.shadow_vol, + (void) strlcpy(stat_s.shadow_vol, parms.shadow_vol, DSW_NAMELEN); - stat_s.shadow_vol[DSW_NAMELEN-1] = '\0'; stat_s.status = spcs_s_ucreate(); rc = do_ioctl(dsw_fd, DSWIOC_STAT, &stat_s); spcs_s_ufree(&stat_s.status); @@ -2550,11 +2546,10 @@ do_acopy(char **vol_list, enum copy_update update_mode, acopy_args->status = spcs_s_ucreate(); for (i = 0; i < n_vols; i++) { spcs_log("ii", NULL, gettext("Atomic %s %s %s"), - update_mode == Update ? - gettext("update") : gettext("copy"), - vol_list[i], - direction == ToMaster ? gettext("from shadow") : - gettext("to shadow")); + update_mode == Update ? gettext("update") : gettext("copy"), + vol_list[i], + direction == ToMaster ? gettext("from shadow") : + gettext("to shadow")); } if (group_name == NULL || *group_name == NULL) { sp = acopy_args->shadow_vol; @@ -2572,8 +2567,8 @@ do_acopy(char **vol_list, enum copy_update update_mode, (void) sprintf(buf, gettext("Update failed")); } else { spcs_log("ii", NULL, - gettext("Atomic update of %s failed"), - vol_list[acopy_args->count]); + gettext("Atomic update of %s failed"), + vol_list[acopy_args->count]); (void) sprintf(buf, gettext("Update of %s failed"), vol_list[acopy_args->count]); } @@ -2602,7 +2597,7 @@ do_copy(char **vol_list, enum copy_update update_mode, volume = vol_list[0]; if (!find_shadow_config(volume, &parms, ©_args)) dsw_error(gettext("Volume is not in a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); cfg_unlock(cfg); config_locked = 0; @@ -2634,11 +2629,10 @@ do_copy(char **vol_list, enum copy_update update_mode, if (mounted(t)) { errno = EBUSY; dsw_error(gettext("Target of copy/update is mounted, " - "unmount it first"), NULL); + "unmount it first"), NULL); } - (void) strncpy(stat_s.shadow_vol, copy_args.shadow_vol, DSW_NAMELEN); - stat_s.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(stat_s.shadow_vol, copy_args.shadow_vol, DSW_NAMELEN); stat_s.status = spcs_s_ucreate(); rc = do_ioctl(dsw_fd, DSWIOC_STAT, &stat_s); spcs_s_ufree(&stat_s.status); @@ -2653,11 +2647,10 @@ do_copy(char **vol_list, enum copy_update update_mode, copy_args.status = spcs_s_ucreate(); spcs_log("ii", NULL, gettext("Start %s %s %s"), - update_mode == Update ? - gettext("update") : gettext("copy"), - volume, - direction == ToMaster ? gettext("from shadow") : - gettext("to shadow")); + update_mode == Update ? gettext("update") : gettext("copy"), + volume, + direction == ToMaster ? gettext("from shadow") : + gettext("to shadow")); if (wait_action == WaitForStart) (void) sigset(SIGCHLD, sigchild); @@ -2665,7 +2658,7 @@ do_copy(char **vol_list, enum copy_update update_mode, case (pid_t)-1: dsw_error(gettext("Unable to fork"), - NULL); + NULL); break; case 0: @@ -2674,19 +2667,18 @@ do_copy(char **vol_list, enum copy_update update_mode, spcs_log("ii", ©_args.status, gettext("Fail %s %s %s"), update_mode == Update ? - gettext("update") : gettext("copy"), + gettext("update") : gettext("copy"), volume, - direction == ToMaster ? gettext("from shadow") - : gettext("to shadow")); + direction == ToMaster ? + gettext("from shadow") : gettext("to shadow")); dsw_error(gettext("Copy failed"), ©_args.status); } spcs_s_ufree(©_args.status); spcs_log("ii", NULL, gettext("Finish %s %s %s"), - update_mode == Update ? - gettext("update") : gettext("copy"), + update_mode == Update ? gettext("update") : gettext("copy"), volume, direction == ToMaster ? gettext("from shadow") : - gettext("to shadow")); + gettext("to shadow")); exit(0); break; @@ -2717,8 +2709,7 @@ print_status(dsw_config_t *conf, int in_config) if (need_sep++ > 0) (void) printf("--------------------------------------" "----------------------------------------\n"); - (void) strncpy(args.shadow_vol, conf->shadow_vol, DSW_NAMELEN); - args.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(args.shadow_vol, conf->shadow_vol, DSW_NAMELEN); if (in_config) { (void) printf("%s: %s\n", conf->master_vol, gettext("(master volume)")); @@ -2732,23 +2723,26 @@ print_status(dsw_config_t *conf, int in_config) * Do special checking on the status of this volume in a Sun Cluster */ if (check_cluster() == II_CLUSTER) { - char dgname[CFG_MAX_BUF], *other_node; + char dgname[CFG_MAX_BUF], *other_node; - if (cfg_dgname(conf->bitmap_vol, dgname, sizeof (dgname))) { - if (strlen(dgname)) { - int rc = cfg_dgname_islocal(dgname, &other_node); - if (rc < 0) { - (void) printf(gettext( - "Suspended on this node, not active elsewhere\n")); - return; - } else if (rc == 0) { - (void) printf(gettext( - "Suspended on this node, active on %s\n"), - other_node); - return; - } + if (cfg_dgname(conf->bitmap_vol, dgname, sizeof (dgname))) { + if (strlen(dgname)) { + int rc = cfg_dgname_islocal(dgname, + &other_node); + + if (rc < 0) { + (void) printf(gettext( + "Suspended on this node, " + "not active elsewhere\n")); + return; + } else if (rc == 0) { + (void) printf(gettext( + "Suspended on this node, " + "active on %s\n"), other_node); + return; + } + } } - } } args.status = spcs_s_ucreate(); @@ -2769,11 +2763,11 @@ print_status(dsw_config_t *conf, int in_config) if (conf->group_name[0] != '\0') (void) printf(gettext("Group name: %s\n"), - conf->group_name); + conf->group_name); if (conf->cluster_tag[0] != '\0') (void) printf(gettext("Cluster tag: %s\n"), - conf->cluster_tag); + conf->cluster_tag); stat_flags = args.stat; spcs_s_ufree(&args.status); @@ -2827,15 +2821,15 @@ print_status(dsw_config_t *conf, int in_config) tmp_time = args.mtime; if (tmp_time != 0) (void) printf("%s %s", gettext("Latest modified time:"), - ctime(&tmp_time)); + ctime(&tmp_time)); else (void) printf("%s\n", gettext("Latest modified time: unknown")); (void) printf("%s %8llu\n", gettext("Volume size:"), args.size); if (args.shdsize != 0) { (void) printf("%s %lld %s %lld\n", - gettext("Shadow chunks total:"), args.shdsize, - gettext("Shadow chunks used:"), args.shdused); + gettext("Shadow chunks total:"), args.shdsize, + gettext("Shadow chunks used:"), args.shdused); } bitmap_op(args.shadow_vol, 0, 1, 0, 0); } @@ -2847,7 +2841,7 @@ abort_copy(char *volume) if (!find_shadow_config(volume, NULL, &args)) dsw_error(gettext("Volume is not in a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); args.status = spcs_s_ucreate(); if (do_ioctl(dsw_fd, DSWIOC_ABORT, &args) == -1) dsw_error(gettext("Abort failed"), &args.status); @@ -2935,7 +2929,7 @@ list_volumes() /* LINTED alignment of cast ok */ lp = (dsw_config_t *)ip->data; if (strcmp(parms.master_vol, - II_IMPORTED_SHADOW)) + II_IMPORTED_SHADOW)) found = !(lp->flag & DSW_SHDIMPORT); else found = (lp->flag & DSW_SHDIMPORT); @@ -2947,7 +2941,7 @@ list_volumes() found = FALSE; if ((cfg_cluster_tag) && - strcmp(cfg_cluster_tag, parms.cluster_tag)) + strcmp(cfg_cluster_tag, parms.cluster_tag)) continue; if ((group_name) && strcmp(group_name, parms.group_name)) @@ -2979,7 +2973,7 @@ wait_for_copy(char *volume) config_locked = 1; if (!find_shadow_config(volume, NULL, &parms)) dsw_error(gettext("Volume is not in a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); cfg_unlock(cfg); config_locked = 0; unlocked = 1; @@ -3017,7 +3011,7 @@ export(char *volume) if (!find_shadow_config(volume, &conf, &parms)) dsw_error(gettext("Volume is not in a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); if (mounted(volume)) dsw_error(gettext("Can't export a mounted volume"), NULL); @@ -3062,7 +3056,7 @@ detach(char *volume) if (!find_shadow_config(volume, NULL, &parms)) dsw_error(gettext("Volume is not in a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); parms.status = spcs_s_ucreate(); rc = do_ioctl(dsw_fd, DSWIOC_ODETACH, &parms); if (rc == 0) { @@ -3074,9 +3068,9 @@ detach(char *volume) (void) cfg_commit(cfg); } else { spcs_log("ii", NULL, gettext("Detach of overflow %s failed"), - parms.shadow_vol); + parms.shadow_vol); dsw_error(gettext("Failed to detach overflow volume"), - &parms.status); + &parms.status); } return (rc); } @@ -3087,8 +3081,7 @@ can_disable(char *vol) dsw_stat_t args; if (mounted(vol)) { - (void) strncpy(args.shadow_vol, vol, DSW_NAMELEN); - args.shadow_vol[DSW_NAMELEN - 1] = '\0'; + (void) strlcpy(args.shadow_vol, vol, DSW_NAMELEN); args.status = spcs_s_ucreate(); if (do_ioctl(dsw_fd, DSWIOC_STAT, &args) != -1 && (args.stat & DSW_GOLDEN) == 0) { @@ -3107,8 +3100,7 @@ clean_up_after_failed_disable(dsw_ioctl_t *parms) dsw_stat_t args; for (p = group_volumes; *p; p++) { - (void) strncpy(args.shadow_vol, *p, DSW_NAMELEN); - args.shadow_vol[DSW_NAMELEN - 1] = '\0'; + (void) strlcpy(args.shadow_vol, *p, DSW_NAMELEN); args.status = spcs_s_ucreate(); if (do_ioctl(dsw_fd, DSWIOC_STAT, &args) == -1) { /* set was successfully disabled */ @@ -3238,8 +3230,7 @@ dsw_group_or_single_op(int argc, char *argv[], int (*op)(char *)) if (group_name) { if (find_group_members(group_name) < 1) dsw_error(gettext("Group does not exist or " - "has no members"), - NULL); + "has no members"), NULL); for (; *group_volumes; group_volumes++) rc |= (*op)(*group_volumes); } else { @@ -3320,8 +3311,7 @@ dsw_copy_to_shadow(int argc, char *argv[]) else { if (find_group_members(group_name) < 1) dsw_error(gettext("Group does not exist or " - "has no members"), - NULL); + "has no members"), NULL); volume_list = group_volumes; } @@ -3341,8 +3331,7 @@ dsw_update_shadow(int argc, char *argv[]) else { if (find_group_members(group_name) < 1) dsw_error(gettext("Group does not exist or " - "has no members"), - NULL); + "has no members"), NULL); volume_list = group_volumes; } @@ -3362,11 +3351,10 @@ dsw_copy_to_master(int argc, char *argv[]) check_action(gettext("Overwrite master with shadow volume?")); } else { check_action(gettext("Overwrite every" - " master in this group with its shadow volume?")); + " master in this group with its shadow volume?")); if (find_group_members(group_name) < 1) dsw_error(gettext("Group does not exist or " - "has no members"), - NULL); + "has no members"), NULL); volume_list = group_volumes; } @@ -3386,11 +3374,10 @@ dsw_update_master(int argc, char *argv[]) check_action(gettext("Overwrite master with shadow volume?")); } else { check_action(gettext("Overwrite every" - " master in this group with its shadow volume?")); + " master in this group with its shadow volume?")); if (find_group_members(group_name) < 1) dsw_error(gettext("Group does not exist or " - "has no members"), - NULL); + "has no members"), NULL); volume_list = group_volumes; } @@ -3421,35 +3408,34 @@ dsw_display_status(int argc, char *argv[]) (void) printf(gettext( "Volume is not in configuration file\n"), NULL); (void) fflush(stdout); - (void) strncpy(parms.shadow_vol, argv[1], DSW_NAMELEN); - parms.shadow_vol[DSW_NAMELEN] = '\0'; + (void) strlcpy(parms.shadow_vol, argv[1], DSW_NAMELEN); } print_status(&parms, in_config); } else if (group_name) { if (find_group_members(group_name) < 1) dsw_error(gettext("Group does not exist or " - "has no members"), - NULL); + "has no members"), NULL); for (; *group_volumes; group_volumes++) { in_config = find_shadow_config(*group_volumes, - &parms, NULL); + &parms, NULL); if (in_config) print_status(&parms, in_config); } } else { /* perform action for each line of the stored config file */ for (setnumber = 1; - !get_dsw_config(setnumber, &parms); setnumber++) { + !get_dsw_config(setnumber, &parms); setnumber++) { switch (check_cluster()) { case II_CLUSTER: - if ((cfg_cluster_tag) && - (strcmp(cfg_cluster_tag, parms.cluster_tag))) - continue; - break; + if ((cfg_cluster_tag) && + (strcmp(cfg_cluster_tag, + parms.cluster_tag))) + continue; + break; case II_CLUSTER_LCL: - if (strlen(parms.cluster_tag)) - continue; - break; + if (strlen(parms.cluster_tag)) + continue; + break; } print_status(&parms, 1); } @@ -3471,8 +3457,7 @@ dsw_display_bitmap(int argc, char *argv[]) (void) printf(gettext( "Volume is not in configuration file\n"), NULL); (void) fflush(stdout); - (void) strncpy(parms.master_vol, argv[1], DSW_NAMELEN); - parms.master_vol[DSW_NAMELEN] = '\0'; + (void) strlcpy(parms.master_vol, argv[1], DSW_NAMELEN); } bitmap_op(parms.shadow_vol, 1, 0, 0, 0); @@ -3588,10 +3573,8 @@ import(char *shadow_volume, char *bitmap_volume) reload_vols = LD_DSVOLS | LD_SHADOWS; conform_name(&shadow_volume); (void) strcpy(parms.master_vol, II_IMPORTED_SHADOW); - (void) strncpy(parms.shadow_vol, shadow_volume, DSW_NAMELEN); - parms.shadow_vol[DSW_NAMELEN-1] = '\0'; - (void) strncpy(parms.bitmap_vol, bitmap_volume, DSW_NAMELEN); - parms.bitmap_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(parms.shadow_vol, shadow_volume, DSW_NAMELEN); + (void) strlcpy(parms.bitmap_vol, bitmap_volume, DSW_NAMELEN); parms.flag = DSW_GOLDEN; spcs_log("ii", NULL, gettext("Import %s %s"), @@ -3639,7 +3622,7 @@ join(char *shadow_volume, char *bitmap_file) if (!find_shadow_config(shadow_volume, &conf, &shd)) dsw_error(gettext("Volume is not in a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); /* If this is an exportable shadow in the cluster, change ctag */ if (strlen(conf.cluster_tag) && @@ -3698,8 +3681,7 @@ join(char *shadow_volume, char *bitmap_file) (void) fclose(bmpfp); - (void) strncpy(parms.shadow_vol, shadow_volume, DSW_NAMELEN); - parms.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(parms.shadow_vol, shadow_volume, DSW_NAMELEN); parms.shd_bitmap = shd_bitmap; parms.shd_size = size; parms.copy_bitmap = NULL; @@ -3735,8 +3717,7 @@ params(char *shadow_volume) int new_delay; int new_unit; - (void) strncpy(parms.shadow_vol, shadow_volume, DSW_NAMELEN); - parms.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(parms.shadow_vol, shadow_volume, DSW_NAMELEN); if (delay == NULL || unit == NULL) { get = 1; parms.copy_delay = -1; @@ -3775,7 +3756,7 @@ do_attach(dsw_config_t *parms) int check = 0; spcs_log("ii", NULL, gettext("Attach %s %s"), - parms->shadow_vol, parms->bitmap_vol); + parms->shadow_vol, parms->bitmap_vol); parms->status = spcs_s_ucreate(); rc = do_ioctl(dsw_fd, DSWIOC_OATTACH, parms); if (rc == -1) { @@ -3789,8 +3770,7 @@ do_attach(dsw_config_t *parms) dsw_error( gettext("Volume is not in a Point-in-Time Copy " "group"), NULL); - (void) strncpy(io.bitmap_vol, parms->bitmap_vol, DSW_NAMELEN); - io.bitmap_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(io.bitmap_vol, parms->bitmap_vol, DSW_NAMELEN); io.status = spcs_s_ucreate(); if (do_ioctl(dsw_fd, DSWIOC_OATTACH, &io) == -1) { spcs_log("ii", NULL, gettext("Attach failed %s %s"), @@ -3839,17 +3819,16 @@ attach(char *shadow_volume) /* assure that the overflow_file is not an II volume */ if (find_any_cf_line(overflow_file)) dsw_error(gettext( - "Overflow volume is already in a Point-in-Time Copy " - "group"), NULL); + "Overflow volume is already in a Point-in-Time Copy " + "group"), NULL); /* use find_shadow_config() to find setnumber */ if (!find_shadow_config(shadow_volume, &parms, NULL)) dsw_error(gettext("Volume is not in a Point-in-Time Copy " - "group"), NULL); + "group"), NULL); /* can only attach an overflow volume to dependent, compact shadow */ - (void) strncpy(args.shadow_vol, shadow_volume, DSW_NAMELEN); - args.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(args.shadow_vol, shadow_volume, DSW_NAMELEN); args.status = spcs_s_ucreate(); if ((do_ioctl(dsw_fd, DSWIOC_STAT, &args) == -1) || @@ -3857,15 +3836,14 @@ attach(char *shadow_volume) dsw_error(gettext("Not a compact dependent shadow"), NULL); /* bitmap_vol is overloaded */ - (void) strncpy(parms.bitmap_vol, overflow_file, DSW_NAMELEN); - parms.bitmap_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(parms.bitmap_vol, overflow_file, DSW_NAMELEN); do_attach(&parms); /* add overflow to cfg line */ (void) sprintf(key, "ii.set%d.overflow", setnumber); if (cfg_put_cstring(cfg, key, overflow_file, - strlen(overflow_file)) < 0) { + strlen(overflow_file)) < 0) { perror("cfg_put_cstring"); } (void) cfg_commit(cfg); @@ -3947,8 +3925,7 @@ dsw_olist(int argc, char *argv[]) /* make copy of string */ vol[ i ] = (char *)malloc(DSW_NAMELEN + 1); - (void) strncpy(vol[ i ], sp, DSW_NAMELEN); - vol[ i ][ DSW_NAMELEN ] = '\0'; + (void) strlcpy(vol[ i ], sp, DSW_NAMELEN); item.key = vol[ i ]; item.data = (char *)0; @@ -4002,8 +3979,7 @@ dsw_ostat(int argc, char *argv[]) if (argc != 2) usage(gettext("Incorrect number of arguments")); - (void) strncpy(args.overflow_vol, argv[1], DSW_NAMELEN); - args.overflow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(args.overflow_vol, argv[1], DSW_NAMELEN); args.status = spcs_s_ucreate(); if (do_ioctl(dsw_fd, DSWIOC_OSTAT2, &args) == -1) @@ -4027,7 +4003,7 @@ dsw_ostat(int argc, char *argv[]) (void) printf(gettext("Number of chunks ever allocated: %lld\n"), args.used); (void) printf(gettext("Number of used chunks: %lld\n"), - (args.nchunks - args.unused)); + (args.nchunks - args.unused)); (void) printf(gettext("Number of unused chunks: %lld\n"), args.unused); exit(0); } @@ -4057,7 +4033,7 @@ dsw_move_2_group(int argc, char *argv[]) for (++argv; *argv; argv++) { if (!find_shadow_config(*argv, &parms, NULL)) dsw_error(gettext("Volume is not in a Point-in-Time " - "Copy group"), NULL); + "Copy group"), NULL); /* ensure the ctag matches the group */ if (gdata && *gdata->ctag) { @@ -4122,7 +4098,7 @@ dsw_list_group_volumes() if (find_group_members(group_name) < 1) dsw_error(gettext("Group does not exist or has no members"), - NULL); + NULL); if ((pfp = popen("/usr/bin/sort -u", "w")) == NULL) { dsw_error(gettext("Can't open sort program"), NULL); @@ -4284,8 +4260,7 @@ is_exported(char *set) dsw_stat_t args; int rc; - (void) strncpy(args.shadow_vol, set, DSW_NAMELEN); - args.shadow_vol[DSW_NAMELEN-1] = '\0'; + (void) strlcpy(args.shadow_vol, set, DSW_NAMELEN); args.status = spcs_s_ucreate(); rc = do_ioctl(dsw_fd, DSWIOC_STAT, &args); diff --git a/usr/src/cmd/fs.d/ufs/quota/quota.c b/usr/src/cmd/fs.d/ufs/quota/quota.c index 615e3c8655..9cd622b7e1 100644 --- a/usr/src/cmd/fs.d/ufs/quota/quota.c +++ b/usr/src/cmd/fs.d/ufs/quota/quota.c @@ -289,8 +289,8 @@ showquotas(uid_t uid, char *name) */ if ((mntopt = hasmntopt(&mnt, MNTOPT_ZONE)) && (my_zonename[0] != '\0')) { - mntopt += strcspn(mntopt, "="); - if (strncmp(++mntopt, my_zonename, + mntopt += strcspn(mntopt, "=") + 1; + if (strncmp(mntopt, my_zonename, strcspn(mntopt, ",")) != 0) continue; } diff --git a/usr/src/cmd/sgs/libld/common/libld.msg b/usr/src/cmd/sgs/libld/common/libld.msg index 2c0481503e..16ade95f99 100644 --- a/usr/src/cmd/sgs/libld/common/libld.msg +++ b/usr/src/cmd/sgs/libld/common/libld.msg @@ -436,6 +436,7 @@ @ MSG_SYS_OPEN "file %s: open failed: %s" @ MSG_SYS_UNLINK "file %s: unlink failed: %s" @ MSG_SYS_MMAPANON "mmap anon failed: %s" +@ MSG_SYS_MALLOC "malloc failed: %s" # Messages related to platform support diff --git a/usr/src/cmd/sgs/libld/common/libs.c b/usr/src/cmd/sgs/libld/common/libs.c index 561e04be0e..ebdb686462 100644 --- a/usr/src/cmd/sgs/libld/common/libs.c +++ b/usr/src/cmd/sgs/libld/common/libs.c @@ -31,6 +31,7 @@ */ #include <stdio.h> #include <string.h> +#include <errno.h> #include <ar.h> #include <debug.h> #include "msg.h" @@ -334,18 +335,22 @@ ar_member_name(const char *name, Elf *arelf, Ofl_desc *ofl) * entry: * name - Name of archive * arname - Name of archive member + * ofl - output descriptor * exit: * Returns pointer to constructed pathname on success, NULL on error. */ static const char * -ar_member_path(const char *name, const char *arname) +ar_member_path(const char *name, const char *arname, Ofl_desc *ofl) { size_t len; char *path; len = strlen(name) + strlen(arname) + 3; - if ((path = libld_malloc(len)) == NULL) + if ((path = libld_malloc(len)) == NULL) { + ld_eprintf(ofl, ERR_FATAL, MSG_INTL(MSG_SYS_MALLOC), + strerror(errno)); return (NULL); + } (void) snprintf(path, len, MSG_ORIG(MSG_FMT_ARMEM), name, arname); return (path); } @@ -600,9 +605,9 @@ ar_extract_bysym(const char *name, int fd, Ar_desc *adp, return (FALSE); /* Construct the member's full pathname */ - if ((arpath = ar_member_path(name, arname)) == - NULL) - return (S_ERROR); + if ((arpath = ar_member_path(name, arname, + ofl)) == NULL) + return (FALSE); /* * Determine whether the support libraries wish @@ -768,8 +773,8 @@ ar_extract_all(const char *name, int fd, Ar_desc *adp, Ofl_desc *ofl, next_off = _elf_getnextoff(adp->ad_elf); /* Construct the member's full pathname */ - if ((arpath = ar_member_path(name, arname)) == NULL) - return (S_ERROR); + if ((arpath = ar_member_path(name, arname, ofl)) == NULL) + return (FALSE); /* * Determine whether the support libraries wish to process diff --git a/usr/src/cmd/smbsrv/smbd/smbd.h b/usr/src/cmd/smbsrv/smbd/smbd.h index c5130d6986..e0bc6c8f82 100644 --- a/usr/src/cmd/smbsrv/smbd/smbd.h +++ b/usr/src/cmd/smbsrv/smbd/smbd.h @@ -20,6 +20,7 @@ */ /* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. */ @@ -55,8 +56,8 @@ void smbd_set_secmode(int); boolean_t smbd_online(void); void smbd_online_wait(const char *); -void smbd_spool_init(void); -void smbd_spool_fini(void); +void smbd_spool_start(void); +void smbd_spool_stop(void); int smbd_cups_init(void); void smbd_cups_fini(void); void smbd_load_printers(void); diff --git a/usr/src/cmd/smbsrv/smbd/smbd_main.c b/usr/src/cmd/smbsrv/smbd/smbd_main.c index 4df18b3cdf..ef1f887a51 100644 --- a/usr/src/cmd/smbsrv/smbd/smbd_main.c +++ b/usr/src/cmd/smbsrv/smbd/smbd_main.c @@ -49,7 +49,6 @@ #include <libgen.h> #include <pwd.h> #include <grp.h> -#include <cups/cups.h> #include <smbsrv/smb_door.h> #include <smbsrv/smb_ioctl.h> @@ -535,6 +534,7 @@ smbd_service_init(void) if (smbd.s_door_lmshr < 0) smbd_report("share initialization failed"); + /* This reloads the kernel config info. */ if (smbd_kernel_bind() != 0) { (void) mutex_unlock(&smbd_service_mutex); return (-1); @@ -542,6 +542,7 @@ smbd_service_init(void) smbd_load_shares(); smbd_load_printers(); + smbd_spool_start(); smbd.s_initialized = B_TRUE; smbd_report("service initialized"); @@ -582,6 +583,7 @@ smbd_service_fini(void) smb_lgrp_stop(); smbd_opipe_stop(); smbd_door_stop(); + smbd_spool_stop(); smbd_refresh_fini(); smbd_kernel_unbind(); smbd_share_stop(); @@ -677,6 +679,7 @@ smbd_refresh_monitor(void *arg) (void) mutex_lock(&smbd_service_mutex); + smbd_spool_stop(); smbd_dc_monitor_refresh(); smb_ccache_remove(SMB_CCACHE_PATH); @@ -695,6 +698,7 @@ smbd_refresh_monitor(void *arg) (void) smbd_kernel_bind(); smbd_load_shares(); smbd_load_printers(); + smbd_spool_start(); (void) mutex_unlock(&smbd_service_mutex); } @@ -833,7 +837,6 @@ smbd_kernel_start(void) if (rc != 0) return (rc); - smbd_spool_init(); return (0); } @@ -843,7 +846,6 @@ smbd_kernel_start(void) static void smbd_kernel_unbind(void) { - smbd_spool_fini(); smb_kmod_unbind(); smbd.s_kbound = B_FALSE; } diff --git a/usr/src/cmd/smbsrv/smbd/smbd_spool.c b/usr/src/cmd/smbsrv/smbd/smbd_spool.c index e562aec189..107a2ddbad 100644 --- a/usr/src/cmd/smbsrv/smbd/smbd_spool.c +++ b/usr/src/cmd/smbsrv/smbd/smbd_spool.c @@ -95,15 +95,18 @@ static void smbd_spool_copyfile(smb_inaddr_t *, char *, char *, char *); extern smbd_t smbd; /* - * Initialize the spool thread. + * Start the spool thread. * Returns 0 on success, an error number if thread creation fails. */ void -smbd_spool_init(void) +smbd_spool_start(void) { pthread_attr_t attr; int rc; + if (!smb_config_getbool(SMB_CI_PRINT_ENABLE)) + return; + (void) pthread_attr_init(&attr); (void) pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); rc = pthread_create(&smbd.s_spool_tid, &attr, smbd_spool_monitor, NULL); @@ -120,7 +123,7 @@ smbd_spool_init(void) * around signal delivery. */ void -smbd_spool_fini(void) +smbd_spool_stop(void) { int i; diff --git a/usr/src/cmd/zic/africa b/usr/src/cmd/zic/africa index 481bc264bc..87f57c650a 100644 --- a/usr/src/cmd/zic/africa +++ b/usr/src/cmd/zic/africa @@ -1,5 +1,5 @@ # <pre> -# @(#)africa 8.28 +# @(#)africa 8.33 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -58,7 +58,7 @@ # I invented the following abbreviations; corrections are welcome! # 2:00 WAST West Africa Summer Time # 2:30 BEAT British East Africa Time (no longer used) -# 2:44:45 BEAUT British East Africa Unified Time (no longer used) +# 2:45 BEAUT British East Africa Unified Time (no longer used) # 3:00 CAST Central Africa Summer Time (no longer used) # 3:00 SAST South Africa Summer Time (no longer used) # 3:00 EAT East Africa Time @@ -212,7 +212,21 @@ Rule Egypt 1989 only - May 6 1:00 1:00 S Rule Egypt 1990 1994 - May 1 1:00 1:00 S # IATA (after 1990) says transitions are at 0:00. # Go with IATA starting in 1995, except correct 1995 entry from 09-30 to 09-29. -Rule Egypt 1995 max - Apr lastFri 0:00s 1:00 S + +# From Alexander Krivenyshev (2011-04-20): +# "...Egypt's interim cabinet decided on Wednesday to cancel daylight +# saving time after a poll posted on its website showed the majority of +# Egyptians would approve the cancellation." +# +# Egypt to cancel daylight saving time +# <a href="http://www.almasryalyoum.com/en/node/407168"> +# http://www.almasryalyoum.com/en/node/407168 +# </a> +# or +# <a href="http://www.worldtimezone.com/dst_news/dst_news_egypt04.html"> +# http://www.worldtimezone.com/dst_news/dst_news_egypt04.html +# </a> +Rule Egypt 1995 2010 - Apr lastFri 0:00s 1:00 S Rule Egypt 1995 2005 - Sep lastThu 23:00s 0 - # From Steffen Thorsen (2006-09-19): # The Egyptian Gazette, issue 41,090 (2006-09-18), page 1, reports: @@ -313,7 +327,7 @@ Rule Egypt 2008 only - Aug lastThu 23:00s 0 - Rule Egypt 2009 only - Aug 20 23:00s 0 - Rule Egypt 2010 only - Aug 11 0:00 0 - Rule Egypt 2010 only - Sep 10 0:00 1:00 S -Rule Egypt 2010 max - Sep lastThu 23:00s 0 - +Rule Egypt 2010 only - Sep lastThu 23:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:00 - LMT 1900 Oct @@ -382,7 +396,7 @@ Zone Africa/Bissau -1:02:20 - LMT 1911 May 26 Zone Africa/Nairobi 2:27:16 - LMT 1928 Jul 3:00 - EAT 1930 2:30 - BEAT 1940 - 2:44:45 - BEAUT 1960 + 2:45 - BEAUT 1960 3:00 - EAT # Lesotho @@ -712,6 +726,48 @@ Zone Indian/Mayotte 3:00:56 - LMT 1911 Jul # Mamoutzou # http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html # </a> +# From Dan Abitol (2011-03-30): +# ...Rules for Africa/Casablanca are the following (24h format) +# The 3rd april 2011 at 00:00:00, [it] will be 3rd april 1:00:00 +# The 31th july 2011 at 00:59:59, [it] will be 31th July 00:00:00 +# ...Official links of change in morocco +# The change was broadcast on the FM Radio +# I ve called ANRT (telecom regulations in Morocco) at +# +212.537.71.84.00 +# <a href="http://www.anrt.net.ma/fr/"> +# http://www.anrt.net.ma/fr/ +# </a> +# They said that +# <a href="http://www.map.ma/fr/sections/accueil/l_heure_legale_au_ma/view"> +# http://www.map.ma/fr/sections/accueil/l_heure_legale_au_ma/view +# </a> +# is the official publication to look at. +# They said that the decision was already taken. +# +# More articles in the press +# <a href="http://www.yabiladi.com/articles/details/5058/secret-l-heure-d-ete-maroc-lev"> +# http://www.yabiladi.com/articles/details/5058/secret-l-heure-d-ete-maroc-lev +# </a> +# e.html +# <a href="http://www.lematin.ma/Actualite/Express/Article.asp?id=148923"> +# http://www.lematin.ma/Actualite/Express/Article.asp?id=148923 +# </a> +# <a href="http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT%2B1-a-partir-de-dim"> +# http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT%2B1-a-partir-de-dim +# anche-prochain-5538.html +# </a> + +# From Petr Machata (2011-03-30): +# They have it written in English here: +# <a href="http://www.map.ma/eng/sections/home/morocco_to_spring_fo/view"> +# http://www.map.ma/eng/sections/home/morocco_to_spring_fo/view +# </a> +# +# It says there that "Morocco will resume its standard time on July 31, +# 2011 at midnight." Now they don't say whether they mean midnight of +# wall clock time (i.e. 11pm UTC), but that's what I would assume. It has +# also been like that in the past. + # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Morocco 1939 only - Sep 12 0:00 1:00 S @@ -735,6 +791,8 @@ Rule Morocco 2009 only - Jun 1 0:00 1:00 S Rule Morocco 2009 only - Aug 21 0:00 0 - Rule Morocco 2010 only - May 2 0:00 1:00 S Rule Morocco 2010 only - Aug 8 0:00 0 - +Rule Morocco 2011 only - Apr 3 0:00 1:00 S +Rule Morocco 2011 only - Jul 31 0 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 0:00 Morocco WE%sT 1984 Mar 16 @@ -899,6 +957,11 @@ Zone Africa/Khartoum 2:10:08 - LMT 1931 2:00 Sudan CA%sT 2000 Jan 15 12:00 3:00 - EAT +# South Sudan +Zone Africa/Juba 2:06:24 - LMT 1931 + 2:00 Sudan CA%sT 2000 Jan 15 12:00 + 3:00 - EAT + # Swaziland # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Mbabane 2:04:24 - LMT 1903 Mar @@ -908,7 +971,7 @@ Zone Africa/Mbabane 2:04:24 - LMT 1903 Mar # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Dar_es_Salaam 2:37:08 - LMT 1931 3:00 - EAT 1948 - 2:44:45 - BEAUT 1961 + 2:45 - BEAUT 1961 3:00 - EAT # Togo @@ -1034,7 +1097,7 @@ Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 Zone Africa/Kampala 2:09:40 - LMT 1928 Jul 3:00 - EAT 1930 2:30 - BEAT 1948 - 2:44:45 - BEAUT 1957 + 2:45 - BEAUT 1957 3:00 - EAT # Zambia diff --git a/usr/src/cmd/zic/antarctica b/usr/src/cmd/zic/antarctica index 629b2d7b81..d19fbde0fc 100644 --- a/usr/src/cmd/zic/antarctica +++ b/usr/src/cmd/zic/antarctica @@ -1,5 +1,5 @@ # <pre> -# @(#)antarctica 8.8 +# @(#)antarctica 8.9 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -19,18 +19,6 @@ # I made up all time zone abbreviations mentioned here; corrections welcome! # FORMAT is `zzz' and GMTOFF is 0 for locations while uninhabited. -# These rules are stolen from the `europe' file. -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule RussAQ 1981 1984 - Apr 1 0:00 1:00 S -Rule RussAQ 1981 1983 - Oct 1 0:00 0 - -Rule RussAQ 1984 1991 - Sep lastSun 2:00s 0 - -Rule RussAQ 1985 1991 - Mar lastSun 2:00s 1:00 S -Rule RussAQ 1992 only - Mar lastSat 23:00 1:00 S -Rule RussAQ 1992 only - Sep lastSat 23:00 0 - -Rule RussAQ 1993 max - Mar lastSun 2:00s 1:00 S -Rule RussAQ 1993 1995 - Sep lastSun 2:00s 0 - -Rule RussAQ 1996 max - Oct lastSun 2:00s 0 - - # These rules are stolen from the `southamerica' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule ArgAQ 1964 1966 - Mar 1 0:00 0 - diff --git a/usr/src/cmd/zic/asia b/usr/src/cmd/zic/asia index 3e768758aa..925cc36f0f 100644 --- a/usr/src/cmd/zic/asia +++ b/usr/src/cmd/zic/asia @@ -1,4 +1,4 @@ -# @(#)asia 8.62 +# @(#)asia 8.69 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -77,6 +77,10 @@ Rule RussiaAsia 1993 max - Mar lastSun 2:00s 1:00 S Rule RussiaAsia 1993 1995 - Sep lastSun 2:00s 0 - Rule RussiaAsia 1996 max - Oct lastSun 2:00s 0 - +# From Arthur David Olson (2011-06-15): +# While Russia abandoned DST in 2011, Armenia may choose to +# follow Russia's "old" rules. + # Afghanistan # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Kabul 4:36:48 - LMT 1890 @@ -2190,7 +2194,47 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # http://www.timeanddate.com/news/time/westbank-gaza-end-dst-2010.html # </a> +# From Steffen Thorsen (2011-08-26): +# Gaza and the West Bank did go back to standard time in the beginning of +# August, and will now enter daylight saving time again on 2011-08-30 +# 00:00 (so two periods of DST in 2011). The pause was because of +# Ramadan. +# +# <a href="http://www.maannews.net/eng/ViewDetails.aspx?ID=416217"> +# http://www.maannews.net/eng/ViewDetails.aspx?ID=416217 +# </a> +# Additional info: +# <a href="http://www.timeanddate.com/news/time/palestine-dst-2011.html"> +# http://www.timeanddate.com/news/time/palestine-dst-2011.html +# </a> + +# From Alexander Krivenyshev (2011-08-27): +# According to the article in The Jerusalem Post: +# "...Earlier this month, the Palestinian government in the West Bank decided to +# move to standard time for 30 days, during Ramadan. The Palestinians in the +# Gaza Strip accepted the change and also moved their clocks one hour back. +# The Hamas government said on Saturday that it won't observe summertime after +# the Muslim feast of Id al-Fitr, which begins on Tuesday..." +# ... +# <a href="http://www.jpost.com/MiddleEast/Article.aspx?id=235650"> +# http://www.jpost.com/MiddleEast/Article.aspx?id=235650 +# </a> +# or +# <a href="http://www.worldtimezone.com/dst_news/dst_news_gazastrip05.html"> +# http://www.worldtimezone.com/dst_news/dst_news_gazastrip05.html +# </a> # The rules for Egypt are stolen from the `africa' file. + +# From Steffen Thorsen (2011-09-30): +# West Bank did end Daylight Saving Time this morning/midnight (2011-09-30 +# 00:00). +# So West Bank and Gaza now have the same time again. +# +# Many sources, including: +# <a href="http://www.maannews.net/eng/ViewDetails.aspx?ID=424808"> +# http://www.maannews.net/eng/ViewDetails.aspx?ID=424808 +# </a> + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - @@ -2206,19 +2250,37 @@ Rule Palestine 2005 only - Oct 4 2:00 0 - Rule Palestine 2006 2008 - Apr 1 0:00 1:00 S Rule Palestine 2006 only - Sep 22 0:00 0 - Rule Palestine 2007 only - Sep Thu>=8 2:00 0 - -Rule Palestine 2008 only - Aug lastFri 2:00 0 - +Rule Palestine 2008 only - Aug lastFri 0:00 0 - Rule Palestine 2009 only - Mar lastFri 0:00 1:00 S -Rule Palestine 2010 max - Mar lastSat 0:01 1:00 S -Rule Palestine 2009 max - Sep Fri>=1 2:00 0 - +Rule Palestine 2009 only - Sep Fri>=1 2:00 0 - +Rule Palestine 2010 only - Mar lastSat 0:01 1:00 S Rule Palestine 2010 only - Aug 11 0:00 0 - +# From Arthur David Olson (2011-09-20): +# 2011 transitions per http://www.timeanddate.com as of 2011-09-20. + # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct 2:00 Zion EET 1948 May 15 2:00 EgyptAsia EE%sT 1967 Jun 5 2:00 Zion I%sT 1996 2:00 Jordan EE%sT 1999 - 2:00 Palestine EE%sT + 2:00 Palestine EE%sT 2011 Apr 2 12:01 + 2:00 1:00 EEST 2011 Aug 1 + 2:00 - EET + +Zone Asia/Hebron 2:20:23 - LMT 1900 Oct + 2:00 Zion EET 1948 May 15 + 2:00 EgyptAsia EE%sT 1967 Jun 5 + 2:00 Zion I%sT 1996 + 2:00 Jordan EE%sT 1999 + 2:00 Palestine EE%sT 2008 Aug + 2:00 1:00 EEST 2008 Sep + 2:00 Palestine EE%sT 2011 Apr 1 12:01 + 2:00 1:00 EEST 2011 Aug 1 + 2:00 - EET 2011 Aug 30 + 2:00 1:00 EEST 2011 Sep 30 3:00 + 2:00 - EET # Paracel Is # no information diff --git a/usr/src/cmd/zic/australasia b/usr/src/cmd/zic/australasia index 36a81b0fba..930beed32e 100644 --- a/usr/src/cmd/zic/australasia +++ b/usr/src/cmd/zic/australasia @@ -1,5 +1,5 @@ # <pre> -# @(#)australasia 8.18 +# @(#)australasia 8.28 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -84,14 +84,13 @@ Rule AS 1986 only - Oct 19 2:00s 1:00 - Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 - Rule AS 1972 only - Feb 27 2:00s 0 - Rule AS 1973 1985 - Mar Sun>=1 2:00s 0 - -Rule AS 1986 1989 - Mar Sun>=15 2:00s 0 - -Rule AS 1990 only - Mar Sun>=18 2:00s 0 - -Rule AS 1991 only - Mar Sun>=1 2:00s 0 - -Rule AS 1992 only - Mar Sun>=18 2:00s 0 - -Rule AS 1993 only - Mar Sun>=1 2:00s 0 - -Rule AS 1994 only - Mar Sun>=18 2:00s 0 - +Rule AS 1986 1990 - Mar Sun>=15 2:00s 0 - +Rule AS 1991 only - Mar 3 2:00s 0 - +Rule AS 1992 only - Mar 22 2:00s 0 - +Rule AS 1993 only - Mar 7 2:00s 0 - +Rule AS 1994 only - Mar 20 2:00s 0 - Rule AS 1995 2005 - Mar lastSun 2:00s 0 - -Rule AS 2006 only - Apr Sun>=1 2:00s 0 - +Rule AS 2006 only - Apr 2 2:00s 0 - Rule AS 2007 only - Mar lastSun 2:00s 0 - Rule AS 2008 max - Apr Sun>=1 2:00s 0 - Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 - @@ -284,13 +283,40 @@ Zone Indian/Cocos 6:27:40 - LMT 1900 # http://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html # </a> +# From Alexander Krivenyshev (2010-10-24): +# According to Radio Fiji and Fiji Times online, Fiji will end DST 3 +# weeks earlier than expected - on March 6, 2011, not March 27, 2011... +# Here is confirmation from Government of the Republic of the Fiji Islands, +# Ministry of Information (fiji.gov.fj) web site: +# <a href="http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=2608:daylight-savings&catid=71:press-releases&Itemid=155"> +# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=2608:daylight-savings&catid=71:press-releases&Itemid=155 +# </a> +# or +# <a href="http://www.worldtimezone.com/dst_news/dst_news_fiji04.html"> +# http://www.worldtimezone.com/dst_news/dst_news_fiji04.html +# </a> + +# From Steffen Thorsen (2011-10-03): +# Now the dates have been confirmed, and at least our start date +# assumption was correct (end date was one week wrong). +# +# <a href="http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=4966:daylight-saving-starts-in-fiji&catid=71:press-releases&Itemid=155"> +# www.fiji.gov.fj/index.php?option=com_content&view=article&id=4966:daylight-saving-starts-in-fiji&catid=71:press-releases&Itemid=155 +# </a> +# which says +# Members of the public are reminded to change their time to one hour in +# advance at 2am to 3am on October 23, 2011 and one hour back at 3am to +# 2am on February 26 next year. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S Rule Fiji 1999 2000 - Feb lastSun 3:00 0 - Rule Fiji 2009 only - Nov 29 2:00 1:00 S Rule Fiji 2010 only - Mar lastSun 3:00 0 - Rule Fiji 2010 only - Oct 24 2:00 1:00 S -Rule Fiji 2011 only - Mar lastSun 3:00 0 - +Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - +Rule Fiji 2011 only - Oct 23 2:00 1:00 S +Rule Fiji 2012 only - Feb 26 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:53:40 - LMT 1915 Oct 26 # Suva 12:00 Fiji FJ%sT # Fiji Time @@ -487,12 +513,104 @@ Zone Pacific/Pago_Pago 12:37:12 - LMT 1879 Jul 5 # http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf # </a> +# From Laupue Raymond Hughes (2010-10-07): +# Please see +# <a href="http://www.mcil.gov.ws"> +# http://www.mcil.gov.ws +# </a>, +# the Ministry of Commerce, Industry and Labour (sideframe) "Last Sunday +# September 2010 (26/09/10) - adjust clocks forward from 12:00 midnight +# to 01:00am and First Sunday April 2011 (03/04/11) - adjust clocks +# backwards from 1:00am to 12:00am" + +# From Laupue Raymond Hughes (2011-03-07): +# I believe this will be posted shortly on the website +# <a href="http://www.mcil.gov.ws"> +# www.mcil.gov.ws +# </a> +# +# PUBLIC NOTICE ON DAYLIGHT SAVING TIME +# +# Pursuant to the Daylight Saving Act 2009 and Cabinets decision, +# businesses and the general public are hereby advised that daylight +# saving time is on the first Saturday of April 2011 (02/04/11). +# +# The public is therefore advised that when the standard time strikes +# the hour of four oclock (4.00am or 0400 Hours) on the 2nd April 2011, +# then all instruments used to measure standard time are to be +# adjusted/changed to three oclock (3:00am or 0300Hrs). +# +# Margaret Fruean ACTING CHIEF EXECUTIVE OFFICER MINISTRY OF COMMERCE, +# INDUSTRY AND LABOUR 28th February 2011 + +# From David Zuelke (2011-05-09): +# Subject: Samoa to move timezone from east to west of international date line +# +# <a href="http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963"> +# http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963 +# </a> + +# From Mark Sim-Smith (2011-08-17): +# I have been in contact with Leilani Tuala Warren from the Samoa Law +# Reform Commission, and she has sent me a copy of the Bill that she +# confirmed has been passed...Most of the sections are about maps rather +# than the time zone change, but I'll paste the relevant bits below. But +# the essence is that at midnight 29 Dec (UTC-11 I suppose), Samoa +# changes from UTC-11 to UTC+13: +# +# International Date Line Bill 2011 +# +# AN ACT to provide for the change to standard time in Samoa and to make +# consequential amendments to the position of the International Date +# Line, and for related purposes. +# +# BE IT ENACTED by the Legislative Assembly of Samoa in Parliament +# assembled as follows: +# +# 1. Short title and commencement-(1) This Act may be cited as the +# International Date Line Act 2011. (2) Except for section 5(3) this Act +# commences at 12 o'clock midnight, on Thursday 29th December 2011. (3) +# Section 5(3) commences on the date of assent by the Head of State. +# +# [snip] +# +# 3. Interpretation - [snip] "Samoa standard time" in this Act and any +# other statute of Samoa which refers to 'Samoa standard time' means the +# time 13 hours in advance of Co-ordinated Universal Time. +# +# 4. Samoa standard time - (1) Upon the commencement of this Act, Samoa +# standard time shall be set at 13 hours in advance of Co-ordinated +# Universal Time for the whole of Samoa. (2) All references to Samoa's +# time zone and to Samoa standard time in Samoa in all legislation and +# instruments after the commencement of this Act shall be references to +# Samoa standard time as provided for in this Act. (3) Nothing in this +# Act affects the provisions of the Daylight Saving Act 2009, except that +# it defines Samoa standard time.... + +# From Laupue Raymond Hughes (2011-09-02): +# <a href="http://www.mcil.gov.ws/mcil_publications.html"> +# http://www.mcil.gov.ws/mcil_publications.html +# </a> +# +# here is the official website publication for Samoa DST and dateline change +# +# DST +# Year End Time Start Time +# 2011 - - - - - - 24 September 3:00am to 4:00am +# 2012 01 April 4:00am to 3:00am - - - - - - +# +# Dateline Change skip Friday 30th Dec 2011 +# Thursday 29th December 2011 23:59:59 Hours +# Saturday 31st December 2011 00:00:00 Hours Zone Pacific/Apia 12:33:04 - LMT 1879 Jul 5 -11:26:56 - LMT 1911 -11:30 - SAMT 1950 # Samoa Time -11:00 - WST 2010 Sep 26 - -11:00 1:00 WSDT 2011 Apr 3 - -11:00 - WST + -11:00 1:00 WSDT 2011 Apr 2 4:00 + -11:00 - WST 2011 Sep 24 3:00 + -11:00 1:00 WSDT 2011 Dec 30 + 13:00 1:00 WSDT 2012 Apr 1 4:00 + 13:00 - WST # Solomon Is # excludes Bougainville, for which see Papua New Guinea @@ -1164,7 +1282,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Lord Howe Island Board (controlling authority for the Island) is # seeking the community's views on various options for summer time # arrangements on the Island, e.g. advance clocks by 1 full hour -# instead of only 30 minutes. Dependant on the wishes of residents +# instead of only 30 minutes. [Dependent] on the wishes of residents # the Board may approach the NSW government to change the existing # arrangements. The starting date for summer time on the Island will # however always coincide with the rest of NSW. @@ -1290,7 +1408,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # From Paul Eggert (1996-01-22): # Today's _Wall Street Journal_ (page 1) reports that Kiribati -# ``declared it the same day throught the country as of Jan. 1, 1995'' +# ``declared it the same day [throughout] the country as of Jan. 1, 1995'' # as part of the competition to be first into the 21st century. diff --git a/usr/src/cmd/zic/backward b/usr/src/cmd/zic/backward index 8d0aa0b492..b8e5911651 100644 --- a/usr/src/cmd/zic/backward +++ b/usr/src/cmd/zic/backward @@ -1,7 +1,5 @@ -# Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. - # <pre> -# @(#)backward 8.9 +# @(#)backward 8.10 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -69,7 +67,6 @@ Link America/Havana Cuba Link Africa/Cairo Egypt Link Europe/Dublin Eire Link Europe/London Europe/Belfast -Link Europe/Chisinau Europe/Tiraspol Link Europe/London GB Link Europe/London GB-Eire Link Etc/GMT GMT+0 @@ -97,6 +94,7 @@ Link Pacific/Chuuk Pacific/Truk Link Pacific/Pohnpei Pacific/Ponape Link Europe/Warsaw Poland Link Europe/Lisbon Portugal +Link Asia/Taipei ROC Link Asia/Seoul ROK Link Asia/Singapore Singapore Link Europe/Istanbul Turkey diff --git a/usr/src/cmd/zic/country.tab b/usr/src/cmd/zic/country.tab index 3e3ea87fa9..950c40f1db 100644 --- a/usr/src/cmd/zic/country.tab +++ b/usr/src/cmd/zic/country.tab @@ -1,13 +1,9 @@ -# -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. -# Use is subject to license terms. -# -# ident "%Z%%M% %I% %E% SMI" -# +# <pre> +# @(#)iso3166.tab 8.11 +# This file is in the public domain, so clarified as of +# 2009-05-17 by Arthur David Olson. # ISO 3166 alpha-2 country codes # -# @(#)iso3166.tab 8.5 -# # From Paul Eggert (2006-09-27): # # This file contains a table with the following columns: @@ -25,6 +21,9 @@ # # Lines beginning with `#' are comments. # +# From Arthur David Olson (2011-08-17): +# Resynchronized today with the ISO 3166 site (adding SS for South Sudan). +# #country- #code country name AD Andorra @@ -34,7 +33,6 @@ AG Antigua & Barbuda AI Anguilla AL Albania AM Armenia -AN Netherlands Antilles AO Angola AQ Antarctica AR Argentina @@ -57,6 +55,7 @@ BL St Barthelemy BM Bermuda BN Brunei BO Bolivia +BQ Bonaire Sint Eustatius & Saba BR Brazil BS Bahamas BT Bhutan @@ -79,6 +78,7 @@ CO Colombia CR Costa Rica CU Cuba CV Cape Verde +CW Curacao CX Christmas Island CY Cyprus CZ Czech Republic @@ -173,7 +173,7 @@ MK Macedonia ML Mali MM Myanmar (Burma) MN Mongolia -MO Macao +MO Macau MP Northern Mariana Islands MQ Martinique MR Mauritania @@ -233,8 +233,10 @@ SM San Marino SN Senegal SO Somalia SR Suriname +SS South Sudan ST Sao Tome & Principe SV El Salvador +SX Sint Maarten SY Syria SZ Swaziland TC Turks & Caicos Is @@ -273,11 +275,3 @@ YT Mayotte ZA South Africa ZM Zambia ZW Zimbabwe -# -# These entries support timezones for a region (groups of countries). -# -#country- -#group country-group name -ee Europe - Eastern -me Europe - Central -we Europe - Western diff --git a/usr/src/cmd/zic/etcetera b/usr/src/cmd/zic/etcetera index 5c93682985..f8eb4b58e6 100644 --- a/usr/src/cmd/zic/etcetera +++ b/usr/src/cmd/zic/etcetera @@ -1,5 +1,5 @@ # <pre> -# @(#)etcetera 8.2 +# @(#)etcetera 8.3 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -36,8 +36,7 @@ Link Etc/GMT Etc/GMT0 # (i.e. west of Greenwich) even though many people would expect it to # mean 4 hours ahead of UTC (i.e. east of Greenwich). # -# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation -# (which is not yet supported by the tz code) allows for +# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for # TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to # ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected # offset is kept within the angle bracket (and is used for display) diff --git a/usr/src/cmd/zic/europe b/usr/src/cmd/zic/europe index 8ca6d8f715..22bdd3648b 100644 --- a/usr/src/cmd/zic/europe +++ b/usr/src/cmd/zic/europe @@ -1,5 +1,5 @@ # <pre> -# @(#)europe 8.27 +# @(#)europe 8.39 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -146,7 +146,7 @@ # A monument to Willett was unveiled on 1927-05-21, in an open space in # a 45-acre wood near Chislehurst, Kent that was purchased by popular # subscription and open to the public. On the south face of the monolith, -# designed by G. W. Miller, is the the William Willett Memorial Sundial, +# designed by G. W. Miller, is the...William Willett Memorial Sundial, # which is permanently set to Summer Time. # From Winston Churchill (1934-04-28): @@ -561,9 +561,28 @@ Rule Russia 1985 1991 - Mar lastSun 2:00s 1:00 S # Rule Russia 1992 only - Mar lastSat 23:00 1:00 S Rule Russia 1992 only - Sep lastSat 23:00 0 - -Rule Russia 1993 max - Mar lastSun 2:00s 1:00 S +Rule Russia 1993 2010 - Mar lastSun 2:00s 1:00 S Rule Russia 1993 1995 - Sep lastSun 2:00s 0 - -Rule Russia 1996 max - Oct lastSun 2:00s 0 - +Rule Russia 1996 2010 - Oct lastSun 2:00s 0 - + +# From Alexander Krivenyshev (2011-06-14): +# According to Kremlin press service, Russian President Dmitry Medvedev +# signed a federal law "On calculation of time" on June 9, 2011. +# According to the law Russia is abolishing daylight saving time. +# +# Medvedev signed a law "On the Calculation of Time" (in russian): +# <a href="http://bmockbe.ru/events/?ID=7583"> +# http://bmockbe.ru/events/?ID=7583 +# </a> +# +# Medvedev signed a law on the calculation of the time (in russian): +# <a href="http://www.regnum.ru/news/polit/1413906.html"> +# http://www.regnum.ru/news/polit/1413906.html +# </a> + +# From Arthur David Olson (2011-06-15): +# Take "abolishing daylight saving time" to mean that time is now considered +# to be standard. # These are for backward compatibility with older versions. @@ -669,6 +688,23 @@ Zone Europe/Vienna 1:05:20 - LMT 1893 Apr 1:00 EU CE%sT # Belarus +# From Yauhen Kharuzhy (2011-09-16): +# By latest Belarus government act Europe/Minsk timezone was changed to +# GMT+3 without DST (was GMT+2 with DST). +# +# Sources (Russian language): +# 1. +# <a href="http://www.belta.by/ru/all_news/society/V-Belarusi-otmenjaetsja-perexod-na-sezonnoe-vremja_i_572952.html"> +# http://www.belta.by/ru/all_news/society/V-Belarusi-otmenjaetsja-perexod-na-sezonnoe-vremja_i_572952.html +# </a> +# 2. +# <a href="http://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/"> +# http://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/ +# </a> +# 3. +# <a href="http://news.tut.by/society/250578.html"> +# http://news.tut.by/society/250578.html +# </a> # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Minsk 1:50:16 - LMT 1880 1:50 - MMT 1924 May 2 # Minsk Mean Time @@ -680,7 +716,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 2:00 1:00 EEST 1991 Sep 29 2:00s 2:00 - EET 1992 Mar 29 0:00s 2:00 1:00 EEST 1992 Sep 27 0:00s - 2:00 Russia EE%sT + 2:00 Russia EE%sT 2011 Mar 27 2:00s + 3:00 - FET # Further-eastern European Time # Belgium # @@ -1618,6 +1655,29 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta # But [two people] separately reported via # Jesper Norgaard that as of 2001-01-24 Tiraspol was like Chisinau. # The Tiraspol entry has therefore been removed for now. +# +# From Alexander Krivenyshev (2011-10-17): +# Pridnestrovian Moldavian Republic (PMR, also known as +# "Pridnestrovie") has abolished seasonal clock change (no transition +# to the Winter Time). +# +# News (in Russian): +# <a href="http://www.kyivpost.ua/russia/news/pridnestrove-otkazalos-ot-perehoda-na-zimnee-vremya-30954.html"> +# http://www.kyivpost.ua/russia/news/pridnestrove-otkazalos-ot-perehoda-na-zimnee-vremya-30954.html +# </a> +# +# <a href="http://www.allmoldova.com/moldova-news/1249064116.html"> +# http://www.allmoldova.com/moldova-news/1249064116.html +# </a> +# +# The substance of this change (reinstatement of the Tiraspol entry) +# is from a patch from Petr Machata (2011-10-17) +# +# From Tim Parenti (2011-10-19) +# In addition, being situated at +4651+2938 would give Tiraspol +# a pre-1880 LMT offset of 1:58:32. +# +# (which agrees with the earlier entry that had been removed) # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Chisinau 1:55:20 - LMT 1880 @@ -1634,6 +1694,21 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 # See Romania commentary for the guessed 1997 transition to EU rules. 2:00 EU EE%sT +Zone Europe/Tiraspol 1:58:32 - LMT 1880 + 1:55 - CMT 1918 Feb 15 # Chisinau MT + 1:44:24 - BMT 1931 Jul 24 # Bucharest MT + 2:00 Romania EE%sT 1940 Aug 15 + 2:00 1:00 EEST 1941 Jul 17 + 1:00 C-Eur CE%sT 1944 Aug 24 + 3:00 Russia MSK/MSD 1990 + 3:00 - MSK 1990 May 6 + 2:00 - EET 1991 + 2:00 Russia EE%sT 1992 + 2:00 E-Eur EE%sT 1997 +# See Romania commentary for the guessed 1997 transition to EU rules. + 2:00 EU EE%sT 2011 Mar lastSun 1:00u + 3:00 - FET # Further-eastern European Time + # Monaco # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. @@ -1786,7 +1861,7 @@ Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1 # # All these events predate our cutoff date of 1970. Unless we can # come up with more definitive info about the timekeeping during the -# war years it's probably best just do do the following for now: +# war years it's probably best just do...the following for now: Link Europe/Oslo Arctic/Longyearbyen # Poland @@ -2013,7 +2088,8 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr 1:00 C-Eur CE%sT 1945 2:00 Poland CE%sT 1946 3:00 Russia MSK/MSD 1991 Mar 31 2:00s - 2:00 Russia EE%sT + 2:00 Russia EE%sT 2011 Mar 27 2:00s + 3:00 - FET # Further-eastern European Time # # From Oscar van Vlijmen (2001-08-25): [This region consists of] # Respublika Adygeya, Arkhangel'skaya oblast', @@ -2042,7 +2118,8 @@ Zone Europe/Moscow 2:30:20 - LMT 1880 2:00 - EET 1930 Jun 21 3:00 Russia MSK/MSD 1991 Mar 31 2:00s 2:00 Russia EE%sT 1992 Jan 19 2:00s - 3:00 Russia MSK/MSD + 3:00 Russia MSK/MSD 2011 Mar 27 2:00s + 4:00 - MSK # # Astrakhanskaya oblast', Kirovskaya oblast', Saratovskaya oblast', # Volgogradskaya oblast'. Shanks & Pottenger say Kirov is still at +0400 @@ -2055,7 +2132,8 @@ Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 4:00 Russia VOL%sT 1989 Mar 26 2:00s # Volgograd T 3:00 Russia VOL%sT 1991 Mar 31 2:00s 4:00 - VOLT 1992 Mar 29 2:00s - 3:00 Russia VOL%sT + 3:00 Russia VOL%sT 2011 Mar 27 2:00s + 4:00 - VOLT # # From Oscar van Vlijmen (2001-08-25): [This region consists of] # Samarskaya oblast', Udmyrtskaya respublika @@ -2067,7 +2145,8 @@ Zone Europe/Samara 3:20:36 - LMT 1919 Jul 1 2:00 2:00 Russia KUY%sT 1991 Sep 29 2:00s 3:00 - KUYT 1991 Oct 20 3:00 4:00 Russia SAM%sT 2010 Mar 28 2:00s # Samara Time - 3:00 Russia SAM%sT + 3:00 Russia SAM%sT 2011 Mar 27 2:00s + 4:00 - SAMT # # From Oscar van Vlijmen (2001-08-25): [This region consists of] @@ -2080,7 +2159,8 @@ Zone Asia/Yekaterinburg 4:02:24 - LMT 1919 Jul 15 4:00 4:00 - SVET 1930 Jun 21 # Sverdlovsk Time 5:00 Russia SVE%sT 1991 Mar 31 2:00s 4:00 Russia SVE%sT 1992 Jan 19 2:00s - 5:00 Russia YEK%sT # Yekaterinburg Time + 5:00 Russia YEK%sT 2011 Mar 27 2:00s + 6:00 - YEKT # Yekaterinburg Time # # From Oscar van Vlijmen (2001-08-25): [This region consists of] # Respublika Altaj, Altajskij kraj, Omskaya oblast'. @@ -2088,7 +2168,8 @@ Zone Asia/Omsk 4:53:36 - LMT 1919 Nov 14 5:00 - OMST 1930 Jun 21 # Omsk TIme 6:00 Russia OMS%sT 1991 Mar 31 2:00s 5:00 Russia OMS%sT 1992 Jan 19 2:00s - 6:00 Russia OMS%sT + 6:00 Russia OMS%sT 2011 Mar 27 2:00s + 7:00 - OMST # # From Paul Eggert (2006-08-19): I'm guessing about Tomsk here; it's # not clear when it switched from +7 to +6. @@ -2098,7 +2179,8 @@ Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00 7:00 Russia NOV%sT 1991 Mar 31 2:00s 6:00 Russia NOV%sT 1992 Jan 19 2:00s 7:00 Russia NOV%sT 1993 May 23 # say Shanks & P. - 6:00 Russia NOV%sT + 6:00 Russia NOV%sT 2011 Mar 27 2:00s + 7:00 - NOVT # From Alexander Krivenyshev (2009-10-13): # Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on @@ -2131,7 +2213,8 @@ Zone Asia/Novokuznetsk 5:48:48 - NMT 1920 Jan 6 7:00 Russia KRA%sT 1991 Mar 31 2:00s 6:00 Russia KRA%sT 1992 Jan 19 2:00s 7:00 Russia KRA%sT 2010 Mar 28 2:00s - 6:00 Russia NOV%sT # Novosibirsk/Novokuznetsk Time + 6:00 Russia NOV%sT 2011 Mar 27 2:00s + 7:00 - NOVT # Novosibirsk/Novokuznetsk Time # # From Oscar van Vlijmen (2001-08-25): [This region consists of] @@ -2142,7 +2225,8 @@ Zone Asia/Krasnoyarsk 6:11:20 - LMT 1920 Jan 6 6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time 7:00 Russia KRA%sT 1991 Mar 31 2:00s 6:00 Russia KRA%sT 1992 Jan 19 2:00s - 7:00 Russia KRA%sT + 7:00 Russia KRA%sT 2011 Mar 27 2:00s + 8:00 - KRAT # # From Oscar van Vlijmen (2001-08-25): [This region consists of] # Respublika Buryatiya, Irkutskaya oblast', @@ -2152,14 +2236,15 @@ Zone Asia/Irkutsk 6:57:20 - LMT 1880 7:00 - IRKT 1930 Jun 21 # Irkutsk Time 8:00 Russia IRK%sT 1991 Mar 31 2:00s 7:00 Russia IRK%sT 1992 Jan 19 2:00s - 8:00 Russia IRK%sT + 8:00 Russia IRK%sT 2011 Mar 27 2:00s + 9:00 - IRKT # # From Oscar van Vlijmen (2003-10-18): [This region consists of] # Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast', # [parts of] Respublika Sakha (Yakutiya), Chitinskaya oblast'. # From Oscar van Vlijmen (2009-11-29): -# ...some regions of RUssia were merged with others since 2005... +# ...some regions of [Russia] were merged with others since 2005... # Some names were changed, no big deal, except for one instance: a new name. # YAK/YAKST: UTC+9 Zabajkal'skij kraj. @@ -2175,7 +2260,8 @@ Zone Asia/Yakutsk 8:38:40 - LMT 1919 Dec 15 8:00 - YAKT 1930 Jun 21 # Yakutsk Time 9:00 Russia YAK%sT 1991 Mar 31 2:00s 8:00 Russia YAK%sT 1992 Jan 19 2:00s - 9:00 Russia YAK%sT + 9:00 Russia YAK%sT 2011 Mar 27 2:00s + 10:00 - YAKT # # From Oscar van Vlijmen (2003-10-18): [This region consists of] # Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj, @@ -2188,7 +2274,8 @@ Zone Asia/Vladivostok 8:47:44 - LMT 1922 Nov 15 9:00 - VLAT 1930 Jun 21 # Vladivostok Time 10:00 Russia VLA%sT 1991 Mar 31 2:00s 9:00 Russia VLA%sST 1992 Jan 19 2:00s - 10:00 Russia VLA%sT + 10:00 Russia VLA%sT 2011 Mar 27 2:00s + 11:00 - VLAT # # Sakhalinskaya oblast'. # The Zone name should be Yuzhno-Sakhalinsk, but that's too long. @@ -2198,7 +2285,8 @@ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T. 10:00 Russia SAK%sT 1992 Jan 19 2:00s 11:00 Russia SAK%sT 1997 Mar lastSun 2:00s - 10:00 Russia SAK%sT + 10:00 Russia SAK%sT 2011 Mar 27 2:00s + 11:00 - SAKT # # From Oscar van Vlijmen (2003-10-18): [This region consists of] # Magadanskaya oblast', Respublika Sakha (Yakutiya). @@ -2211,7 +2299,8 @@ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 10:00 - MAGT 1930 Jun 21 # Magadan Time 11:00 Russia MAG%sT 1991 Mar 31 2:00s 10:00 Russia MAG%sT 1992 Jan 19 2:00s - 11:00 Russia MAG%sT + 11:00 Russia MAG%sT 2011 Mar 27 2:00s + 12:00 - MAGT # # From Oscar van Vlijmen (2001-08-25): [This region consists of] # Kamchatskaya oblast', Koryakskij avtonomnyj okrug. @@ -2222,7 +2311,8 @@ Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 12:00 Russia PET%sT 1991 Mar 31 2:00s 11:00 Russia PET%sT 1992 Jan 19 2:00s 12:00 Russia PET%sT 2010 Mar 28 2:00s - 11:00 Russia PET%sT + 11:00 Russia PET%sT 2011 Mar 27 2:00s + 12:00 - PETT # # Chukotskij avtonomnyj okrug Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 @@ -2231,7 +2321,8 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 12:00 Russia ANA%sT 1991 Mar 31 2:00s 11:00 Russia ANA%sT 1992 Jan 19 2:00s 12:00 Russia ANA%sT 2010 Mar 28 2:00s - 11:00 Russia ANA%sT + 11:00 Russia ANA%sT 2011 Mar 27 2:00s + 12:00 - ANAT # Serbia # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2483,25 +2574,18 @@ Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 # (on a non-government server though) describing dates between 2002 and 2006: # http://www.alomaliye.com/bkk_2002_3769.htm -# From Sue Williams (2008-08-11): -# I spotted this news article about a potential change in Turkey. -# -# <a href="http://www.hurriyet.com.tr/english/domestic/9626174.asp?scr=1"> -# http://www.hurriyet.com.tr/english/domestic/9626174.asp?scr=1 +# From Gökdeniz Karadağ (2011-03-10): +# +# According to the articles linked below, Turkey will change into summer +# time zone (GMT+3) on March 28, 2011 at 3:00 a.m. instead of March 27. +# This change is due to a nationwide exam on 27th. +# +# <a href="http://www.worldbulletin.net/?aType=haber&ArticleID=70872"> +# http://www.worldbulletin.net/?aType=haber&ArticleID=70872 # </a> - -# From Sue Williams (2008-08-20): -# This article says that around the end of March 2011, Turkey wants to -# adjust the clocks forward by 1/2 hour and stay that way permanently. -# The article indicates that this is a change in timezone offset in addition -# to stopping observance of DST. -# This proposal has not yet been approved. -# -# Read more here... -# -# Turkey to abandon daylight saving time in 2011 -# <a href="http://www.turkishdailynews.com.tr/article.php?enewsid=112989"> -# http://www.turkishdailynews.com.tr/article.php?enewsid=112989 +# Turkish: +# <a href="http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373"> +# http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373 # </a> # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -2569,6 +2653,8 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 2:00 Turkey EE%sT 1978 Oct 15 3:00 Turkey TR%sT 1985 Apr 20 # Turkey Time 2:00 Turkey EE%sT 2007 + 2:00 EU EE%sT 2011 Mar 27 1:00u + 2:00 - EET 2011 Mar 28 1:00u 2:00 EU EE%sT Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. @@ -2582,6 +2668,50 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # of March at 3am the time is changing to 4am and each last Sunday of # October the time at 4am is changing to 3am" +# From Alexander Krivenyshev (2011-09-20): +# On September 20, 2011 the deputies of the Verkhovna Rada agreed to +# abolish the transfer clock to winter time. +# +# Bill number 8330 of MP from the Party of Regions Oleg Nadoshi got +# approval from 266 deputies. +# +# Ukraine abolishes transter back to the winter time (in Russian) +# <a href="http://news.mail.ru/politics/6861560/"> +# http://news.mail.ru/politics/6861560/ +# </a> +# +# The Ukrainians will no longer change the clock (in Russian) +# <a href="http://www.segodnya.ua/news/14290482.html"> +# http://www.segodnya.ua/news/14290482.html +# </a> +# +# Deputies cancelled the winter time (in Russian) +# <a href="http://www.pravda.com.ua/rus/news/2011/09/20/6600616/"> +# http://www.pravda.com.ua/rus/news/2011/09/20/6600616/ +# </a> +# +# From Philip Pizzey (2011-10-18): +# Today my Ukrainian colleagues have informed me that the +# Ukrainian parliament have decided that they will go to winter +# time this year after all. +# +# From Udo Schwedt (2011-10-18): +# As far as I understand, the recent change to the Ukranian time zone +# (Europe/Kiev) to introduce permanent daylight saving time (similar +# to Russia) was reverted today: +# +# <a href="http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995"> +# http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995 +# </a> +# +# Also reported by Alexander Bokovoy (2011-10-18) who also noted: +# The law documents themselves are at +# +# <a href="http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484"> +# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484 +# </a> + + # Zone NAME GMTOFF RULES FORMAT [UNTIL] # Most of Ukraine since 1970 has been like Kiev. # "Kyiv" is the transliteration of the Ukrainian name, but diff --git a/usr/src/cmd/zic/northamerica b/usr/src/cmd/zic/northamerica index 7dfd064f23..68a7cd5191 100644 --- a/usr/src/cmd/zic/northamerica +++ b/usr/src/cmd/zic/northamerica @@ -1,5 +1,5 @@ # <pre> -# @(#)northamerica 8.34 +# @(#)northamerica 8.50 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -346,6 +346,27 @@ Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 -7:00 US M%sT 2003 Oct 26 02:00 -6:00 US C%sT +# From Josh Findley (2011-01-21): +# ...it appears that Mercer County, North Dakota, changed from the +# mountain time zone to the central time zone at the last transition from +# daylight-saving to standard time (on Nov. 7, 2010): +# <a href="http://www.gpo.gov/fdsys/pkg/FR-2010-09-29/html/2010-24376.htm"> +# http://www.gpo.gov/fdsys/pkg/FR-2010-09-29/html/2010-24376.htm +# </a> +# <a href="http://www.bismarcktribune.com/news/local/article_1eb1b588-c758-11df-b472-001cc4c03286.html"> +# http://www.bismarcktribune.com/news/local/article_1eb1b588-c758-11df-b472-001cc4c03286.html +# </a> + +# From Andy Lipscomb (2011-01-24): +# ...according to the Census Bureau, the largest city is Beulah (although +# it's commonly referred to as Beulah-Hazen, with Hazen being the next +# largest city in Mercer County). Google Maps places Beulah's city hall +# at 4715'51" north, 10146'40" west, which yields an offset of 6h47'07". + +Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53 + -7:00 US M%sT 2010 Nov 7 2:00 + -6:00 US C%sT + # US mountain time, represented by Denver # # Colorado, far western Kansas, Montana, western @@ -405,15 +426,78 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02 # were nearby inhabitants in some cases and for our purposes perhaps # it's best to simply use the official transition. # + +# From Steve Ferguson (2011-01-31): +# The author lives in Alaska and many of the references listed are only +# available to Alaskan residents. +# +# <a href="http://www.alaskahistoricalsociety.org/index.cfm?section=discover%20alaska&page=Glimpses%20of%20the%20Past&viewpost=2&ContentId=98"> +# http://www.alaskahistoricalsociety.org/index.cfm?section=discover%20alaska&page=Glimpses%20of%20the%20Past&viewpost=2&ContentId=98 +# </a> + +# From Arthur David Olson (2011-02-01): +# Here's database-relevant material from the 2001 "Alaska History" article: +# +# On September 20 [1979]...DOT...officials decreed that on April 27, +# 1980, Juneau and other nearby communities would move to Yukon Time. +# Sitka, Petersburg, Wrangell, and Ketchikan, however, would remain on +# Pacific Time. +# +# ...on September 22, 1980, DOT Secretary Neil E. Goldschmidt rescinded the +# Department's September 1979 decision. Juneau and other communities in +# northern Southeast reverted to Pacific Time on October 26. +# +# On October 28 [1983]...the Metlakatla Indian Community Council voted +# unanimously to keep the reservation on Pacific Time. +# +# According to DOT official Joanne Petrie, Indian reservations are not +# bound to follow time zones imposed by neighboring jurisdictions. +# +# (The last is consistent with how the database now handles the Navajo +# Nation.) + +# From Arthur David Olson (2011-02-09): +# I just spoke by phone with a staff member at the Metlakatla Indian +# Community office (using contact information available at +# <a href="http://www.commerce.state.ak.us/dca/commdb/CIS.cfm?Comm_Boro_name=Metlakatla"> +# http://www.commerce.state.ak.us/dca/commdb/CIS.cfm?Comm_Boro_name=Metlakatla +# </a>). +# It's shortly after 1:00 here on the east coast of the United States; +# the staffer said it was shortly after 10:00 there. When I asked whether +# that meant they were on Pacific time, they said no--they were on their +# own time. I asked about daylight saving; they said it wasn't used. I +# did not inquire about practices in the past. + +# From Arthur David Olson (2011-08-17): +# For lack of better information, assume that Metlakatla's +# abandonment of use of daylight saving resulted from the 1983 vote. + # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Juneau 15:02:19 - LMT 1867 Oct 18 -8:57:41 - LMT 1900 Aug 20 12:00 -8:00 - PST 1942 -8:00 US P%sT 1946 -8:00 - PST 1969 + -8:00 US P%sT 1980 Apr 27 2:00 + -9:00 US Y%sT 1980 Oct 26 2:00 -8:00 US P%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT +Zone America/Sitka 14:58:47 - LMT 1867 Oct 18 + -9:01:13 - LMT 1900 Aug 20 12:00 + -8:00 - PST 1942 + -8:00 US P%sT 1946 + -8:00 - PST 1969 + -8:00 US P%sT 1983 Oct 30 2:00 + -9:00 US Y%sT 1983 Nov 30 + -9:00 US AK%sT +Zone America/Metlakatla 15:13:42 - LMT 1867 Oct 18 + -8:46:18 - LMT 1900 Aug 20 12:00 + -8:00 - PST 1942 + -8:00 US P%sT 1946 + -8:00 - PST 1969 + -8:00 US P%sT 1983 Oct 30 2:00 + -8:00 - MeST Zone America/Yakutat 14:41:05 - LMT 1867 Oct 18 -9:18:55 - LMT 1900 Aug 20 12:00 -9:00 - YST 1942 @@ -471,20 +555,50 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18 # three votes for and one against." # Hawaii -# -# From Arthur David Olson: -# And then there's Hawaii. -# DST was observed for one day in 1933; -# standard time was changed by half an hour in 1947; -# it's always standard as of 1986. -# -# From Paul Eggert: -# Shanks says the 1933 experiment lasted for three weeks. Go with Shanks. -# -Zone Pacific/Honolulu -10:31:26 - LMT 1900 Jan 1 12:00 - -10:30 - HST 1933 Apr 30 2:00 - -10:30 1:00 HDT 1933 May 21 2:00 - -10:30 US H%sT 1947 Jun 8 2:00 + +# From Arthur David Olson (2010-12-09): +# "Hawaiian Time" by Robert C. Schmitt and Doak C. Cox appears on pages 207-225 +# of volume 26 of The Hawaiian Journal of History (1992). As of 2010-12-09, +# the article is available at +# <a href="http://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf"> +# http://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf +# </a> +# and indicates that standard time was adopted effective noon, January +# 13, 1896 (page 218), that in "1933, the Legislature decreed daylight +# saving for the period between the last Sunday of each April and the +# last Sunday of each September, but less than a month later repealed the +# act," (page 220), that year-round daylight saving time was in effect +# from 1942-02-09 to 1945-09-30 (page 221, with no time of day given for +# when clocks changed) and that clocks were changed by 30 minutes +# effective the second Sunday of June, 1947 (page 219, with no time of +# day given for when clocks changed). A footnote for the 1933 changes +# cites Session Laws of Hawaii 1933, "Act. 90 (approved 26 Apr. 1933) +# and Act 163 (approved 21 May 1933)." + +# From Arthur David Olson (2011-01-19): +# The following is from "Laws of the Territory of Hawaii Passed by the +# Seventeenth Legislature: Regular Session 1933," available (as of +# 2011-01-19) at American University's Pence Law Library. Page 85: "Act +# 90...At 2 o'clock ante meridian of the last Sunday in April of each +# year, the standard time of this Territory shall be advanced one +# hour...This Act shall take effect upon its approval. Approved this 26th +# day of April, A. D. 1933. LAWRENCE M JUDD, Governor of the Territory of +# Hawaii." Page 172: "Act 163...Act 90 of the Session Laws of 1933 is +# hereby repealed...This Act shall take effect upon its approval, upon +# which date the standard time of this Territory shall be restored to +# that existing immediately prior to the taking effect of said Act 90. +# Approved this 21st day of May, A. D. 1933. LAWRENCE M. JUDD, Governor +# of the Territory of Hawaii." +# +# Note that 1933-05-21 was a Sunday. +# We're left to guess the time of day when Act 163 was approved; guess noon. + +Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 #Schmitt&Cox + -10:30 - HST 1933 Apr 30 2:00 #Laws 1933 + -10:30 1:00 HDT 1933 May 21 12:00 #Laws 1933+12 + -10:30 - HST 1942 Feb 09 2:00 #Schmitt&Cox+2 + -10:30 1:00 HDT 1945 Sep 30 2:00 #Schmitt&Cox+2 + -10:30 - HST 1947 Jun 8 2:00 #Schmitt&Cox+2 -10:00 - HST # Now we turn to US areas that have diverged from the consensus since 1970. @@ -1053,12 +1167,29 @@ Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S # From Paul Eggert (2000-10-02): # INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches # at 00:01 local time. For now, assume it started in 1987. + +# From Michael Pelley (2011-09-12): +# We received today, Monday, September 12, 2011, notification that the +# changes to the Newfoundland Standard Time Act have been proclaimed. +# The change in the Act stipulates that the change from Daylight Savings +# Time to Standard Time and from Standard Time to Daylight Savings Time +# now occurs at 2:00AM. +# ... +# <a href="http://www.assembly.nl.ca/legislation/sr/annualstatutes/2011/1106.chp.htm"> +# http://www.assembly.nl.ca/legislation/sr/annualstatutes/2011/1106.chp.htm +# </a> +# ... +# MICHAEL PELLEY | Manager of Enterprise Architecture - Solution Delivery +# Office of the Chief Information Officer +# Executive Council +# Government of Newfoundland & Labrador + Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D -Rule StJohns 2007 max - Mar Sun>=8 0:01 1:00 D -Rule StJohns 2007 max - Nov Sun>=1 0:01 0 S +Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D +Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S # # St John's has an apostrophe, but Posix file names can't have apostrophes. # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -1068,7 +1199,8 @@ Zone America/St_Johns -3:30:52 - LMT 1884 -3:30:52 StJohns N%sT 1935 Mar 30 -3:30 StJohns N%sT 1942 May 11 -3:30 Canada N%sT 1946 - -3:30 StJohns N%sT + -3:30 StJohns N%sT 2011 Nov + -3:30 Canada N%sT # most of east Labrador @@ -1082,7 +1214,8 @@ Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Valley-Goose Bay -3:30 StJohns N%sT 1942 May 11 -3:30 Canada N%sT 1946 -3:30 StJohns N%sT 1966 Mar 15 2:00 - -4:00 StJohns A%sT + -4:00 StJohns A%sT 2011 Nov + -4:00 Canada A%sT # west Labrador, Nova Scotia, Prince Edward I @@ -1814,20 +1947,69 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # daylight saving.... # http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html -# From Chris Walton (2007-03-14): -# Today I phoned the "hamlet office" to find out what Resolute was doing with -# its clocks. +# From Chris Walton (2011-03-21): +# Back in 2007 I initiated the creation of a new "zone file" for Resolute +# Bay. Resolute Bay is a small community located about 900km north of +# the Arctic Circle. The zone file was required because Resolute Bay had +# decided to use UTC-5 instead of UTC-6 for the winter of 2006-2007. +# +# According to new information which I received last week, Resolute Bay +# went back to using UTC-6 in the winter of 2007-2008... +# +# On March 11/2007 most of Canada went onto daylight saving. On March +# 14/2007 I phoned the Resolute Bay hamlet office to do a "time check." I +# talked to somebody that was both knowledgeable and helpful. I was able +# to confirm that Resolute Bay was still operating on UTC-5. It was +# explained to me that Resolute Bay had been on the Eastern Time zone +# (EST) in the winter, and was now back on the Central Time zone (CDT). +# i.e. the time zone had changed twice in the last year but the clocks +# had not moved. The residents had to know which time zone they were in +# so they could follow the correct TV schedule... +# +# On Nov 02/2008 most of Canada went onto standard time. On Nov 03/2008 I +# phoned the Resolute Bay hamlet office...[D]ue to the challenging nature +# of the phone call, I decided to seek out an alternate source of +# information. I found an e-mail address for somebody by the name of +# Stephanie Adams whose job was listed as "Inns North Support Officer for +# Arctic Co-operatives." I was under the impression that Stephanie lived +# and worked in Resolute Bay... +# +# On March 14/2011 I phoned the hamlet office again. I was told that +# Resolute Bay had been using Central Standard Time over the winter of +# 2010-2011 and that the clocks had therefore been moved one hour ahead +# on March 13/2011. The person I talked to was aware that Resolute Bay +# had previously experimented with Eastern Standard Time but he could not +# tell me when the practice had stopped. +# +# On March 17/2011 I searched the Web to find an e-mail address of +# somebody that might be able to tell me exactly when Resolute Bay went +# off Eastern Standard Time. I stumbled on the name "Aziz Kheraj." Aziz +# used to be the mayor of Resolute Bay and he apparently owns half the +# businesses including "South Camp Inn." This website has some info on +# Aziz: +# <a href="http://www.uphere.ca/node/493"> +# http://www.uphere.ca/node/493 +# </a> # -# The individual that answered the phone confirmed that the clocks did not -# move at the end of daylight saving on October 29/2006. He also told me that -# the clocks did not move this past weekend (March 11/2007).... - -# From Chris Walton (2008-11-13): -# ...the residents of Resolute believe that they are changing "time zones" -# twice a year. In winter months, local time is qualified with "Eastern -# Time" which is really "Eastern Standard Time (UTC-5)". In summer -# months, local time is qualified with "Central Time" which is really -# "Central Daylight Time (UTC-5)"... +# I sent Aziz an e-mail asking when Resolute Bay had stopped using +# Eastern Standard Time. +# +# Aziz responded quickly with this: "hi, The time was not changed for the +# 1 year only, the following year, the community went back to the old way +# of "spring ahead-fall behind" currently we are zulu plus 5 hrs and in +# the winter Zulu plus 6 hrs" +# +# This of course conflicted with everything I had ascertained in November 2008. +# +# I sent Aziz a copy of my 2008 e-mail exchange with Stephanie. Aziz +# responded with this: "Hi, Stephanie lives in Winnipeg. I live here, You +# may want to check with the weather office in Resolute Bay or do a +# search on the weather through Env. Canada. web site" +# +# If I had realized the Stephanie did not live in Resolute Bay I would +# never have contacted her. I now believe that all the information I +# obtained in November 2008 should be ignored... +# I apologize for reporting incorrect information in 2008. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule NT_YK 1918 only - Apr 14 2:00 1:00 D @@ -1855,14 +2037,12 @@ Zone America/Iqaluit 0 - zzz 1942 Aug # Frobisher Bay est. -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Resolute 2006 max - Nov Sun>=1 2:00 0 ES -Rule Resolute 2007 max - Mar Sun>=8 2:00 0 CD Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 - -5:00 Resolute %sT + -5:00 - EST 2007 Mar 11 3:00 + -6:00 Canada C%sT # aka Kangiqiniq Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 @@ -2496,6 +2676,21 @@ Zone America/Costa_Rica -5:36:20 - LMT 1890 # San Jose # the time was announced as "diez cinco"--the same time as here, indicating # that has indeed switched to DST. Assume second Sunday from 2009 forward. +# From Steffen Thorsen (2011-03-08): +# Granma announced that Cuba is going to start DST on 2011-03-20 00:00:00 +# this year. Nothing about the end date known so far (if that has +# changed at all). +# +# Source: +# <a href="http://granma.co.cu/2011/03/08/nacional/artic01.html"> +# http://granma.co.cu/2011/03/08/nacional/artic01.html +# </a> +# +# Our info: +# <a href="http://www.timeanddate.com/news/time/cuba-starts-dst-2011.html"> +# http://www.timeanddate.com/news/time/cuba-starts-dst-2011.html +# </a> + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Cuba 1928 only - Jun 10 0:00 1:00 D Rule Cuba 1928 only - Oct 10 0:00 0 S @@ -2529,7 +2724,9 @@ Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2006 max - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D -Rule Cuba 2009 max - Mar Sun>=8 0:00s 1:00 D +Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D +Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D +Rule Cuba 2012 max - Mar Sun>=8 0:00s 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Havana -5:29:28 - LMT 1890 diff --git a/usr/src/cmd/zic/southamerica b/usr/src/cmd/zic/southamerica index 7355022929..dc8fd3d447 100644 --- a/usr/src/cmd/zic/southamerica +++ b/usr/src/cmd/zic/southamerica @@ -1,5 +1,5 @@ # <pre> -# @(#)southamerica 8.44 +# @(#)southamerica 8.52 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -745,7 +745,7 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # # As a result of the above Decree I believe the America/Rio_Branco # timezone shall be modified from UTC-5 to UTC-4 and a new timezone shall -# be created to represent the the west side of the Para State. I +# be created to represent the...west side of the Para State. I # suggest this new timezone be called Santarem as the most # important/populated city in the affected area. # @@ -797,6 +797,39 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # <a href="http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html"> # http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html # </a> +# +# From Alexander Krivenyshev (2011-10-04): +# State Bahia will return to Daylight savings time this year after 8 years off. +# The announcement was made by Governor Jaques Wagner in an interview to a +# television station in Salvador. + +# In Portuguese: +# <a href="http://g1.globo.com/bahia/noticia/2011/10/governador-jaques-wagner-confirma-horario-de-verao-na-bahia.html"> +# http://g1.globo.com/bahia/noticia/2011/10/governador-jaques-wagner-confirma-horario-de-verao-na-bahia.html +# </a> and +# <a href="http://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html"> +# http://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html +# </a> + +# From Guilherme Bernardes Rodrigues (2011-10-07): +# There is news in the media, however there is still no decree about it. +# I just send a e-mail to Zulmira Brand�o at +# <a href="http://pcdsh01.on.br/">http://pcdsh01.on.br/</a> the +# oficial agency about time in Brazil, and she confirmed that the old rule is +# still in force. + +# From Guilherme Bernardes Rodrigues (2011-10-14) +# It's official, the President signed a decree that includes Bahia in summer +# time. +# [ and in a second message (same day): ] +# I found the decree. +# +# DECRETO No- 7.584, DE 13 DE OUTUBRO DE 2011 +# Link : +# <a href="http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6"> +# http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6 +# </a> + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Decree <a href="http://pcdsh01.on.br/HV20466.htm">20,466</a> (1931-10-01) @@ -1034,7 +1067,8 @@ Zone America/Maceio -2:22:52 - LMT 1914 # of America/Salvador. Zone America/Bahia -2:34:04 - LMT 1914 -3:00 Brazil BR%sT 2003 Sep 24 - -3:00 - BRT + -3:00 - BRT 2011 Oct 16 + -3:00 Brazil BR%sT # # Goias (GO), Distrito Federal (DF), Minas Gerais (MG), # Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR), @@ -1154,6 +1188,36 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 # From Arthur Daivd Olson (2010-03-06): # Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch. +# From Glenn Eychaner (2011-03-02): [geychaner@mac.com] +# It appears that the Chilean government has decided to postpone the +# change from summer time to winter time again, by three weeks to April +# 2nd: +# <a href="http://www.emol.com/noticias/nacional/detalle/detallenoticias.asp?idnoticia=467651"> +# http://www.emol.com/noticias/nacional/detalle/detallenoticias.asp?idnoticia=467651 +# </a> +# +# This is not yet reflected in the offical "cambio de hora" site, but +# probably will be soon: +# <a href="http://www.horaoficial.cl/cambio.htm"> +# http://www.horaoficial.cl/cambio.htm +# </a> + +# From Arthur David Olson (2011-03-02): +# The emol.com article mentions a water shortage as the cause of the +# postponement, which may mean that it's not a permanent change. + +# From Glenn Eychaner (2011-03-28): +# The article: +# <a href="http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E}"> +# http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E} +# </a> +# +# In English: +# Chile's clocks will go back an hour this year on the 7th of May instead +# of this Saturday. They will go forward again the 3rd Saturday in +# August, not in October as they have since 1968. This is a pilot plan +# which will be reevaluated in 2012. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Chile 1927 1932 - Sep 1 0:00 1:00 S Rule Chile 1928 1932 - Apr 1 0:00 0 - @@ -1183,14 +1247,17 @@ Rule Chile 1997 only - Mar 30 3:00u 0 - Rule Chile 1998 only - Mar Sun>=9 3:00u 0 - Rule Chile 1998 only - Sep 27 4:00u 1:00 S Rule Chile 1999 only - Apr 4 3:00u 0 - -Rule Chile 1999 max - Oct Sun>=9 4:00u 1:00 S +Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 S +Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 S +Rule Chile 2012 max - Oct Sun>=9 4:00u 1:00 S Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 - # N.B.: the end of March 29 in Chile is March 30 in Universal time, # which is used below in specifying the transition. Rule Chile 2008 only - Mar 30 3:00u 0 - Rule Chile 2009 only - Mar Sun>=9 3:00u 0 - -Rule Chile 2010 only - Apr 4 3:00u 0 - -Rule Chile 2011 max - Mar Sun>=9 3:00u 0 - +Rule Chile 2010 only - Apr Sun>=1 3:00u 0 - +Rule Chile 2011 only - May Sun>=2 3:00u 0 - +Rule Chile 2012 max - Mar Sun>=9 3:00u 0 - # IATA SSIM anomalies: (1992-02) says 1992-03-14; # (1996-09) says 1998-03-08. Ignore these. # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -1243,6 +1310,14 @@ Zone America/Curacao -4:35:44 - LMT 1912 Feb 12 # Willemstad -4:30 - ANT 1965 # Netherlands Antilles Time -4:00 - AST +# From Arthur David Olson (2011-06-15): +# At least for now, use links for places with new iso3166 codes. +# The name "Lower Prince's Quarter" is both longer than fourteen charaters +# and contains an apostrophe; use "Lower_Princes" below. + +Link America/Curacao America/Lower_Princes # Sint Maarten +Link America/Curacao America/Kralendijk # Bonaire, Sint Estatius and Saba + # Ecuador # # From Paul Eggert (2007-03-04): @@ -1310,6 +1385,24 @@ Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno # For now, we'll just record the time in Stanley, since we have no # better info. +# From Steffen Thorsen (2011-04-01): +# The Falkland Islands will not turn back clocks this winter, but stay on +# daylight saving time. +# +# One source: +# <a href="http://www.falklandnews.com/public/story.cfm?get=5914&source=3"> +# http://www.falklandnews.com/public/story.cfm?get=5914&source=3 +# </a> +# +# We have gotten this confirmed by a clerk of the legislative assembly: +# Normally the clocks revert to Local Mean Time (UTC/GMT -4 hours) on the +# third Sunday of April at 0200hrs and advance to Summer Time (UTC/GMT -3 +# hours) on the first Sunday of September at 0200hrs. +# +# IMPORTANT NOTE: During 2011, on a trial basis, the Falkland Islands +# will not revert to local mean time, but clocks will remain on Summer +# time (UTC/GMT - 3 hours) throughout the whole of 2011. Any long term +# change to local time following the trial period will be notified. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 S Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 - @@ -1321,7 +1414,8 @@ Rule Falk 1984 1985 - Apr lastSun 0:00 0 - Rule Falk 1984 only - Sep 16 0:00 1:00 S Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 S Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 - -Rule Falk 2001 max - Apr Sun>=15 2:00 0 - +Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 - +Rule Falk 2012 max - Apr Sun>=15 2:00 0 - Rule Falk 2001 max - Sep Sun>=1 2:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/Stanley -3:51:24 - LMT 1890 diff --git a/usr/src/cmd/zic/zone_sun.tab b/usr/src/cmd/zic/zone_sun.tab index 312dbfe328..4e22a6f5ff 100644 --- a/usr/src/cmd/zic/zone_sun.tab +++ b/usr/src/cmd/zic/zone_sun.tab @@ -1,7 +1,5 @@ -# Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. -# # <pre> -# @(#)zone.tab 8.38 +# @(#)zone.tab 8.50 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # @@ -34,7 +32,6 @@ AG +1703-06148 America/Antigua - AI +1812-06304 America/Anguilla - AL +4120+01950 Europe/Tirane - AM +4011+04430 Asia/Yerevan - -AN +1211-06900 America/Curacao - AO -0848+01314 Africa/Luanda - AQ -7750+16636 Antarctica/McMurdo - McMurdo Station, Ross Island AQ -9000+00000 Antarctica/South_Pole - Amundsen-Scott Station, South Pole @@ -89,6 +86,7 @@ BL +1753-06251 America/St_Barthelemy - BM +3217-06446 Atlantic/Bermuda - BN +0456+11455 Asia/Brunei - BO -1630-06809 America/La_Paz - +BQ +120903-0681636 America/Kralendijk - BR -0351-03225 America/Noronha Brazil/DeNoronha Atlantic islands BR -0127-04829 America/Belem - Amapa, E Para BR -0343-03830 America/Fortaleza - NE Brazil (MA, PI, CE, RN, PB) @@ -122,7 +120,7 @@ CA +4901-08816 America/Nipigon - Eastern Time - Ontario & Quebec - places that d CA +4823-08915 America/Thunder_Bay - Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit - Eastern Time - east Nunavut - most locations CA +6608-06544 America/Pangnirtung - Eastern Time - Pangnirtung, Nunavut -CA +744144-0944945 America/Resolute - Eastern Standard Time - Resolute, Nunavut +CA +744144-0944945 America/Resolute - Central Standard Time - Resolute, Nunavut CA +484531-0913718 America/Atikokan - Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut CA +624900-0920459 America/Rankin_Inlet - Central Time - central Nunavut CA +4953-09709 America/Winnipeg Canada/Central Central Time - Manitoba & west Ontario @@ -148,11 +146,16 @@ CK -2114-15946 Pacific/Rarotonga - CL -3327-07040 America/Santiago Chile/Continental most locations CL -2709-10926 Pacific/Easter Chile/EasterIsland Easter Island & Sala y Gomez CM +0403+00942 Africa/Douala - -CN +3114+12128 Asia/Shanghai PRC +CN +3114+12128 Asia/Shanghai PRC east China - Beijing, Guangdong, Shanghai, etc. +CN +4545+12641 Asia/Harbin - Heilongjiang (except Mohe), Jilin +CN +2934+10635 Asia/Chongqing - central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc. +CN +4348+08735 Asia/Urumqi - most of Tibet & Xinjiang +CN +3929+07559 Asia/Kashgar - west Tibet & Xinjiang CO +0436-07405 America/Bogota - CR +0956-08405 America/Costa_Rica - CU +2308-08222 America/Havana - CV +1455-02331 Atlantic/Cape_Verde - +CW +1211-06900 America/Curacao - CX -1025+10543 Indian/Christmas - CY +3510+03322 Asia/Nicosia - CZ +5005+01426 Europe/Prague - @@ -209,8 +212,8 @@ HT +1832-07220 America/Port-au-Prince - HU +4730+01905 Europe/Budapest - ID -0610+10648 Asia/Jakarta - Java & Sumatra ID -0002+10920 Asia/Pontianak - west & central Borneo -ID -0507+11924 Asia/Makassar - east & south Borneo, Celebes, Bali, Nusa Tengarra, west Timor -ID -0232+14042 Asia/Jayapura - Irian Jaya & the Moluccas +ID -0507+11924 Asia/Makassar - east & south Borneo, Sulawesi (Celebes), Bali, Nusa Tengarra, west Timor +ID -0232+14042 Asia/Jayapura - west New Guinea (Irian Jaya) & Malukus (Moluccas) IE +5320-00615 Europe/Dublin Eire IL +3146+03514 Asia/Jerusalem Israel IM +5409-00428 Europe/Isle_of_Man - @@ -255,6 +258,7 @@ LY +3254+01311 Africa/Tripoli Libya MA +3339-00735 Africa/Casablanca - MC +4342+00723 Europe/Monaco - MD +4700+02850 Europe/Chisinau - +MD +4651+02938 Europe/Tiraspol - Pridnestrovie ME +4226+01916 Europe/Podgorica - MF +1804-06305 America/Marigot - MG -1855+04731 Indian/Antananarivo - @@ -316,7 +320,8 @@ PL +5215+02100 Europe/Warsaw Poland PM +4703-05620 America/Miquelon - PN -2504-13005 Pacific/Pitcairn - PR +182806-0660622 America/Puerto_Rico - -PS +3130+03428 Asia/Gaza - +PS +3130+03428 Asia/Gaza - Gaza Strip +PS +313200+0350542 Asia/Hebron - West Bank PT +3843-00908 Europe/Lisbon - mainland PT +3238-01654 Atlantic/Madeira - Madeira Islands PT +3744-02540 Atlantic/Azores - Azores @@ -358,8 +363,10 @@ SM +4355+01228 Europe/San_Marino - SN +1440-01726 Africa/Dakar - SO +0204+04522 Africa/Mogadishu - SR +0550-05510 America/Paramaribo - +SS +0451+03136 Africa/Juba - ST +0020+00644 Africa/Sao_Tome - SV +1342-08912 America/El_Salvador - +SX +180305-0630250 America/Lower_Princes - SY +3330+03618 Asia/Damascus - SZ -2618+03106 Africa/Mbabane - TC +2128-07108 America/Grand_Turk - @@ -402,6 +409,7 @@ US +411745-0863730 America/Indiana/Knox - Central Time - Indiana - Starke County US +450628-0873651 America/Menominee - Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties US +470659-1011757 America/North_Dakota/Center - Central Time - North Dakota - Oliver County US +465042-1012439 America/North_Dakota/New_Salem - Central Time - North Dakota - Morton County (except Mandan area) +US +471551-1014640 America/North_Dakota/Beulah - Central Time - North Dakota - Mercer County US +394421-1045903 America/Denver US/Mountain Mountain Time US +433649-1161209 America/Boise - Mountain Time - south Idaho & east Oregon US +364708-1084111 America/Shiprock - Mountain Time - Navajo @@ -409,9 +417,11 @@ US +332654-1120424 America/Phoenix US/Arizona Mountain Standard Time - Arizona US +340308-1181434 America/Los_Angeles US/Pacific Pacific Time US +611305-1495401 America/Anchorage US/Alaska Alaska Time US +581807-1342511 America/Juneau - Alaska Time - Alaska panhandle +US +571035-1351807 America/Sitka - Alaska Time - southeast Alaska panhandle US +593249-1394338 America/Yakutat - Alaska Time - Alaska panhandle neck US +643004-1652423 America/Nome - Alaska Time - west Alaska US +515248-1763929 America/Adak US/Aleutian Aleutian Islands +US +550737-1313435 America/Metlakatla - Metlakatla Time - Annette Island US +211825-1575130 Pacific/Honolulu US/Hawaii Hawaii UY -3453-05611 America/Montevideo - UZ +3940+06648 Asia/Samarkand - west Uzbekistan @@ -430,12 +440,3 @@ YT -1247+04514 Indian/Mayotte - ZA -2615+02800 Africa/Johannesburg - ZM -1525+02817 Africa/Lusaka - ZW -1750+03103 Africa/Harare - -# -# These entries support timezones associated with a region -# (group of countries). -# -#country- -#group Coordinates Continent Timezone Comments -ee +0000+00000 Europe/ EET -me +0000+00000 Europe/ MET -we +0000+00000 Europe/ WET diff --git a/usr/src/common/util/strtol.c b/usr/src/common/util/strtol.c index 8a67da740f..e46e86b7d1 100644 --- a/usr/src/common/util/strtol.c +++ b/usr/src/common/util/strtol.c @@ -20,6 +20,10 @@ */ /* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + */ + +/* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -96,6 +100,7 @@ strtol(const char *str, char **nptr, int base) #if defined(_KERNEL) && !defined(_BOOT) return (EINVAL); #else /* _KERNEL && !_BOOT */ + errno = EINVAL; return (0); #endif /* _KERNEL && !_BOOT */ } diff --git a/usr/src/head/spawn.h b/usr/src/head/spawn.h index 865e9b30a1..a577c92009 100644 --- a/usr/src/head/spawn.h +++ b/usr/src/head/spawn.h @@ -24,6 +24,10 @@ * Use is subject to license terms. */ +/* + * Copyright (c) 2011 by Delphix. All rights reserved. + */ + #ifndef _SPAWN_H #define _SPAWN_H @@ -154,6 +158,14 @@ extern int posix_spawnattr_getsigdefault( */ #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) +extern int posix_spawn_pipe_np( + pid_t *_RESTRICT_KYWD pidp, + int *_RESTRICT_KYWD fdp, + const char *_RESTRICT_KYWD cmd, + boolean_t write, + posix_spawn_file_actions_t *_RESTRICT_KYWD fact, + posix_spawnattr_t *_RESTRICT_KYWD attr); + extern int posix_spawn_file_actions_addclosefrom_np( posix_spawn_file_actions_t *file_actions, int lowfiledes); @@ -198,6 +210,7 @@ extern int posix_spawnattr_getschedpolicy(); extern int posix_spawnattr_setsigdefault(); extern int posix_spawnattr_getsigdefault(); #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) +extern int posix_spawn_pipe_np(); extern int posix_spawn_file_actions_addclosefrom_np(); extern int posix_spawnattr_setsigignore_np(); extern int posix_spawnattr_getsigignore_np(); diff --git a/usr/src/lib/libc/port/llib-lc b/usr/src/lib/libc/port/llib-lc index 61a0d161ee..117009a044 100644 --- a/usr/src/lib/libc/port/llib-lc +++ b/usr/src/lib/libc/port/llib-lc @@ -21,6 +21,7 @@ /* * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ /* LINTLIBRARY */ @@ -45,6 +46,7 @@ #include <fmtmsg.h> #include <fnmatch.h> #include <ftw.h> +#include <glob.h> #include <getwidth.h> #include <grp.h> #include <iconv.h> @@ -1141,6 +1143,11 @@ int vsprintf(char *_RESTRICT_KYWD string, const char *_RESTRICT_KYWD format, * /usr/src/lib/libc/port/regex routines */ +/* glob.c */ +extern int glob(const char *restrict pattern, int flags, + int(*errfunc)(const char *epath, int eerrno), glob_t *restrict pglob); +extern void globfree(glob_t *pglob); + /* regex.c */ char *regex(const char *regexp, const char *stringp, ...); #ifdef __loc1 diff --git a/usr/src/lib/libc/port/mapfile-vers b/usr/src/lib/libc/port/mapfile-vers index 566983ac74..59999885a5 100644 --- a/usr/src/lib/libc/port/mapfile-vers +++ b/usr/src/lib/libc/port/mapfile-vers @@ -24,6 +24,8 @@ # Copyright 2010 Nexenta Systems, Inc. All rights reserved. # Use is subject to license terms. # +# Copyright (c) 2011 by Delphix. All rights reserved. +# # # MAPFILE HEADER START @@ -88,6 +90,11 @@ $if _x86 && _ELF64 $add amd64 $endif +SYMBOL_VERSION ILLUMOS_0.2 { # Illumos additions + protected: + posix_spawn_pipe_np; +} ILLUMOS_0.1; + SYMBOL_VERSION ILLUMOS_0.1 { # Illumos additions protected: timegm; diff --git a/usr/src/lib/libc/port/stdio/popen.c b/usr/src/lib/libc/port/stdio/popen.c index 2a86d36141..03365d04ef 100644 --- a/usr/src/lib/libc/port/stdio/popen.c +++ b/usr/src/lib/libc/port/stdio/popen.c @@ -24,6 +24,10 @@ * Use is subject to license terms. */ +/* + * Copyright (c) 2011 by Delphix. All rights reserved. + */ + /* Copyright (c) 1988 AT&T */ /* All Rights Reserved */ @@ -50,13 +54,6 @@ #include "mse.h" #include "libc.h" -#define tst(a, b) (*mode == 'r'? (b) : (a)) -#define RDR 0 -#define WTR 1 - -extern int __xpg4; /* defined in _xpg4.c; 0 if not xpg4-compiled program */ -extern const char **_environ; - static mutex_t popen_lock = DEFAULTMUTEX; typedef struct node { @@ -91,22 +88,15 @@ cleanup(void *arg) FILE * popen(const char *cmd, const char *mode) { - int p[2]; pid_t pid; - int myside; - int yourside; - int fd; + int myfd, fd; const char *shpath = _PATH_BSHELL; FILE *iop; - int stdio; node_t *curr; - char *argvec[4]; node_t *node; - posix_spawnattr_t attr; posix_spawn_file_actions_t fact; + posix_spawnattr_t attr; int error; - static const char *shell = "sh"; - static const char *sh_flg = "-c"; if ((node = lmalloc(sizeof (node_t))) == NULL) return (NULL); @@ -121,7 +111,19 @@ popen(const char *cmd, const char *mode) errno = error; return (NULL); } - if (pipe(p) < 0) { + + if (access(shpath, X_OK)) /* XPG4 Requirement: */ + shpath = ""; /* force child to fail immediately */ + + + /* + * fdopen() can fail (if the fd is too high or we are out of memory), + * but we don't want to have any way to fail after creating the child + * process. So we fdopen() a dummy fd (myfd), and once we get the real + * fd from posix_spawn_pipe_np(), we dup2() the real fd onto the dummy. + */ + myfd = open("/dev/null", O_RDWR); + if (myfd == -1) { error = errno; lfree(node, sizeof (node_t)); (void) posix_spawnattr_destroy(&attr); @@ -129,23 +131,13 @@ popen(const char *cmd, const char *mode) errno = error; return (NULL); } - - if (access(shpath, X_OK)) /* XPG4 Requirement: */ - shpath = ""; /* force child to fail immediately */ - - myside = tst(p[WTR], p[RDR]); - yourside = tst(p[RDR], p[WTR]); - /* myside and yourside reverse roles in child */ - stdio = tst(0, 1); - - /* This will fail more quickly if we run out of fds */ - if ((iop = fdopen(myside, mode)) == NULL) { + iop = fdopen(myfd, mode); + if (iop == NULL) { error = errno; lfree(node, sizeof (node_t)); (void) posix_spawnattr_destroy(&attr); (void) posix_spawn_file_actions_destroy(&fact); - (void) close(yourside); - (void) close(myside); + (void) close(myfd); errno = error; return (NULL); } @@ -155,64 +147,57 @@ popen(const char *cmd, const char *mode) /* in the child, close all pipes from other popen's */ for (curr = head; curr != NULL && error == 0; curr = curr->next) { /* - * These conditions may apply if a previous iob returned + * The fd may no longer be open if an iob previously returned * by popen() was closed with fclose() rather than pclose(), - * or if close(fileno(iob)) was called. Don't let these - * programming errors cause us to malfunction here. + * or if close(fileno(iob)) was called. Use fcntl() to check + * if the fd is still open, so that these programming errors + * won't cause us to malfunction here. */ - if ((fd = curr->fd) != myside && fd != yourside && - fcntl(fd, F_GETFD) >= 0) - error = posix_spawn_file_actions_addclose(&fact, fd); - } - if (error == 0) - error = posix_spawn_file_actions_addclose(&fact, myside); - if (yourside != stdio) { - if (error == 0) - error = posix_spawn_file_actions_adddup2(&fact, - yourside, stdio); - if (error == 0) + if (fcntl(curr->fd, F_GETFD) >= 0) { error = posix_spawn_file_actions_addclose(&fact, - yourside); + curr->fd); + } } /* * See the comments in port/stdio/system.c for why these * non-portable posix_spawn() attributes are being used. */ - if (error == 0) + if (error == 0) { error = posix_spawnattr_setflags(&attr, POSIX_SPAWN_NOSIGCHLD_NP | POSIX_SPAWN_WAITPID_NP | POSIX_SPAWN_NOEXECERR_NP); - if (error) { + } + if (error != 0) { lmutex_unlock(&popen_lock); lfree(node, sizeof (node_t)); (void) posix_spawnattr_destroy(&attr); (void) posix_spawn_file_actions_destroy(&fact); (void) fclose(iop); - (void) close(yourside); errno = error; return (NULL); } - argvec[0] = (char *)shell; - argvec[1] = (char *)sh_flg; - argvec[2] = (char *)cmd; - argvec[3] = NULL; - error = posix_spawn(&pid, shpath, &fact, &attr, - (char *const *)argvec, (char *const *)_environ); + error = posix_spawn_pipe_np(&pid, &fd, cmd, *mode != 'r', &fact, &attr); (void) posix_spawnattr_destroy(&attr); (void) posix_spawn_file_actions_destroy(&fact); - (void) close(yourside); - if (error) { + if (error != 0) { lmutex_unlock(&popen_lock); lfree(node, sizeof (node_t)); (void) fclose(iop); errno = error; return (NULL); } - _insert_nolock(pid, myside, node); + _insert_nolock(pid, myfd, node); lmutex_unlock(&popen_lock); + /* + * myfd is the one that we fdopen()'ed; make it refer to the + * pipe to the child. + */ + (void) dup2(fd, myfd); + (void) close(fd); + _SET_ORIENTATION_BYTE(iop); return (iop); diff --git a/usr/src/lib/libc/port/threads/spawn.c b/usr/src/lib/libc/port/threads/spawn.c index 5ac0a1ab2a..7f12a5866f 100644 --- a/usr/src/lib/libc/port/threads/spawn.c +++ b/usr/src/lib/libc/port/threads/spawn.c @@ -24,6 +24,10 @@ * Use is subject to license terms. */ +/* + * Copyright (c) 2011 by Delphix. All rights reserved. + */ + #include "lint.h" #include "thr_uberdata.h" #include <sys/libc_kernel.h> @@ -77,6 +81,8 @@ typedef struct file_attr { extern int getdents64(int, dirent64_t *, size_t); #endif +extern const char **_environ; + /* * Support function: * Close all open file descriptors greater than or equal to lowfd. @@ -879,3 +885,67 @@ posix_spawnattr_getsigmask( *sigmask = sap->sa_sigmask; return (0); } + +/* + * Spawn a process to run "sh -c <cmd>". Return the child's pid (in + * *pidp), and a file descriptor (in *fdp) for reading or writing to the + * child process, depending on the 'write' argument. + * Return 0 on success; otherwise return an error code. + */ +int +posix_spawn_pipe_np(pid_t *pidp, int *fdp, + const char *cmd, boolean_t write, + posix_spawn_file_actions_t *fact, posix_spawnattr_t *attr) +{ + int p[2]; + int myside, yourside, stdio; + const char *shpath = _PATH_BSHELL; + const char *argvec[4] = { "sh", "-c", cmd, NULL }; + int error; + + if (pipe(p) < 0) + return (errno); + + if (access(shpath, X_OK)) /* XPG4 Requirement: */ + shpath = ""; /* force child to fail immediately */ + + if (write) { + /* + * Data is read from p[0] and written to p[1]. + * 'stdio' is the fd in the child process that should be + * connected to the pipe. + */ + myside = p[1]; + yourside = p[0]; + stdio = STDIN_FILENO; + } else { + myside = p[0]; + yourside = p[1]; + stdio = STDOUT_FILENO; + } + + error = posix_spawn_file_actions_addclose(fact, myside); + if (yourside != stdio) { + if (error == 0) { + error = posix_spawn_file_actions_adddup2(fact, + yourside, stdio); + } + if (error == 0) { + error = posix_spawn_file_actions_addclose(fact, + yourside); + } + } + + if (error) + return (error); + error = posix_spawn(pidp, shpath, fact, attr, + (char *const *)argvec, (char *const *)_environ); + (void) close(yourside); + if (error) { + (void) close(myside); + return (error); + } + + *fdp = myside; + return (0); +} diff --git a/usr/src/lib/libdiskmgt/common/findevs.c b/usr/src/lib/libdiskmgt/common/findevs.c index a2a9c088c8..9728eab65e 100644 --- a/usr/src/lib/libdiskmgt/common/findevs.c +++ b/usr/src/lib/libdiskmgt/common/findevs.c @@ -21,6 +21,7 @@ /* * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright (c) 2011 by Delphix. All rights reserved. */ #include <fcntl.h> @@ -860,7 +861,6 @@ add_ptr2array(void *p, void ***parray) static void remove_controller(controller_t *cp, controller_t *currp) { - disk_t *dp; int i; if (cp == currp) { @@ -884,20 +884,28 @@ remove_controller(controller_t *cp, controller_t *currp) * is a 'path' so any disk that has a reference to it * as a controller needs to have this reference removed. */ - dp = cp->disks[0]; - while (dp != NULL) { - for (i = 0; dp->controllers[i]; i++) { - if (libdiskmgt_str_eq(dp->controllers[i]->name, + for (i = 0; cp->disks[i]; i++) { + disk_t *dp = cp->disks[i]; + int j; + + for (j = 0; dp->controllers[j]; j++) { + int k; + + if (libdiskmgt_str_eq(dp->controllers[j]->name, cp->name)) { - int j; - for (j = i; dp->controllers[j]; j++) { - dp->controllers[j] = - dp->controllers[j + 1]; + if (dm_debug) { + (void) fprintf(stderr, + "INFO: REMOVING disk %s on " + "controller %s\n", + dp->kernel_name, cp->name); + } + for (k = j; dp->controllers[k]; k++) { + dp->controllers[k] = + dp->controllers[k + 1]; } } } - dp = dp->next; } } /* diff --git a/usr/src/lib/libdtrace/common/dt_consume.c b/usr/src/lib/libdtrace/common/dt_consume.c index 2635cb5e4a..0d99a47e70 100644 --- a/usr/src/lib/libdtrace/common/dt_consume.c +++ b/usr/src/lib/libdtrace/common/dt_consume.c @@ -1879,6 +1879,7 @@ again: if (act == DTRACEACT_TRACEMEM_DYNSIZE && rec->dtrd_size == sizeof (uint64_t)) { + /* LINTED - alignment */ tracememsize = *((unsigned long long *)addr); continue; } diff --git a/usr/src/man/man3c/Makefile b/usr/src/man/man3c/Makefile index e81e80e5ea..4f16272ed2 100644 --- a/usr/src/man/man3c/Makefile +++ b/usr/src/man/man3c/Makefile @@ -256,6 +256,7 @@ MANFILES = __fbufsize.3c \ posix_spawn_file_actions_addclosefrom_np.3c \ posix_spawn_file_actions_adddup2.3c \ posix_spawn_file_actions_destroy.3c \ + posix_spawn_pipe_np.3c \ posix_spawnattr_destroy.3c \ posix_spawnattr_getflags.3c \ posix_spawnattr_getpgroup.3c \ diff --git a/usr/src/man/man3c/posix_spawn.3c b/usr/src/man/man3c/posix_spawn.3c index 44407e68e9..7d9ad894c9 100644 --- a/usr/src/man/man3c/posix_spawn.3c +++ b/usr/src/man/man3c/posix_spawn.3c @@ -9,6 +9,7 @@ .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] +.\" Copyright 2011 by Delphix. All rights reserved. .TH POSIX_SPAWN 3C "Feb 20, 2009" .SH NAME posix_spawn, posix_spawnp \- spawn a process @@ -388,7 +389,9 @@ Standard See \fBstandards\fR(5). \fBposix_spawn_file_actions_adddup2\fR(3C), \fBposix_spawn_file_actions_addopen\fR(3C), \fBposix_spawn_file_actions_destroy\fR(3C), -\fBposix_spawn_file_actions_init\fR(3C), \fBposix_spawnattr_destroy\fR(3C), +\fBposix_spawn_file_actions_init\fR(3C), +\fBposix_spawn_pipe_np\fR(3C), +\fBposix_spawnattr_destroy\fR(3C), \fBposix_spawnattr_getflags\fR(3C), \fBposix_spawnattr_getpgroup\fR(3C), \fBposix_spawnattr_getschedparam\fR(3C), \fBposix_spawnattr_getschedpolicy\fR(3C), diff --git a/usr/src/man/man3c/posix_spawn_pipe_np.3c b/usr/src/man/man3c/posix_spawn_pipe_np.3c new file mode 100644 index 0000000000..68515a5992 --- /dev/null +++ b/usr/src/man/man3c/posix_spawn_pipe_np.3c @@ -0,0 +1,133 @@ +'\" te +.\" Copyright (c) 2001, the Institute of Electrical and Electronics Engineers, Inc. and The Open Group. All Rights Reserved. +.\" Portions Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved. +.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at http://www.opengroup.org/bookstore/. +.\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text +.\" are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical +.\" and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html. +.\" This notice shall appear on any product containing this material. +.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. +.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] +.\" Copyright 2011 by Delphix. All rights reserved. +.TH POSIX_SPAWN_PIPE_NP 3C "Oct 14, 2011" +.SH NAME +posix_spawn_pipe_np \- spawn a process with connected pipe +.SH SYNOPSIS +.LP +.nf +#include <spawn.h> + +\fBint\fR \fBposix_spawn_pipe_np\fR(\fBpid_t *restrict\fR \fIpid\fR, + \fBint *restrict\fR \fIfdp\fR, + \fBconst char *restrict\fR \fIcmd\fR, + \fBboolean_t\fR \fIwrite\fR, + \fBconst posix_spawn_file_actions_t *\fR\fIfile_actions\fR, + \fBconst posix_spawnattr_t *restrict\fR \fIattr\fR); +.fi + +.SH DESCRIPTION +.sp +.LP +The \fBposix_spawn_pipe_np()\fR function creates a new process +(child process) to run \fBsh -c \fIcmd\fR\fR, and connects the new +process's standard input or output to a file descriptor. +.sp +.LP +The new process's environment (the \fIenviron\fR global variable) is +inherited from the current process. +.sp +.LP +The \fIcmd\fR argument is the string for the child shell process to execute. +.sp +.LP +If the \fIwrite\fR argument is set, the returned file descriptor will be +connected to the new process's standard input, and will be opened for +writing. Otherwise, the file descriptor will be connected to the new +process's standard output, and will be opened for reading. +.sp +.LP +If \fIfile_actions\fR is not \fINULL\fR, then the file descriptors open +in the child process are those open in the calling process as modified +by the spawn file actions object pointed to by \fIfile_actions\fR and +the \fBFD_CLOEXEC\fR flag of each remaining open file descriptor after +the spawn file actions have been processed. See \fBposix_spawn\fR(3C) +for details on the behavior of \fIfile_actions\fR. +.sp +.LP +If \fIattr\fR is not \fINULL\fR, then the signal mask, signal default or +ignore actions, and the effective user and group IDs for the child +process are changed as specified in the attributes object referenced by +\fIattr\fR. See \fBposix_spawn\fR(3C) for details on the behavior of +\fIattr\fR. +.sp +.LP +All process attributes, other than those influenced by the attributes set in +the object referenced by \fIattr\fR as specified above or by the file +descriptor manipulations specified in \fIfile_actions\fR appear in the new +process image as though \fBfork()\fR had been called to create a child process +and then a member of the \fBexec\fR family of functions had been called by the +child process to execute \fB/bin/sh\fR. +.sp +.LP +The fork handlers are not run when \fBposix_spawn_pipe_np()\fR is called. +.SH RETURN VALUES +.sp +.LP +Upon successful completion, \fBposix_spawn_pipe_np()\fR returns the +process ID of the child process to the parent process in the variable +pointed to by a non-null \fIpidp\fR argument, returns the file +descriptor which is connected to the child process in the variable +pointed to by a non-null \fIfdp\fR argument, and returns zero as the +function return value. Otherwise, no child process is created, the value +stored into the variable pointed to by a non-null \fIpidp\fR and +\fIfdp\fR is unspecified, and an error number is returned as the +function return value to indicate the error. +.SH ERRORS +.sp +.LP +See \fBposix_spawn\fB(3C). + +.SH ATTRIBUTES +.sp +.LP +See \fBattributes\fR(5) for descriptions of the following attributes: +.sp + +.sp +.TS +box; +c | c +l | l . +ATTRIBUTE TYPE ATTRIBUTE VALUE +_ +Interface Stability Committed +_ +MT-Level MT-Safe +.TE + +.SH SEE ALSO +.sp +.LP +\fBexec\fR(2), \fBfork\fR(2), \fBopen\fR(2), +\fBpopen\fR(3C), \fBposix_spawn\fR(3C), +\fBposix_spawn_file_actions_addclose\fR(3C), +\fBposix_spawn_file_actions_adddup2\fR(3C), +\fBposix_spawn_file_actions_addopen\fR(3C), +\fBposix_spawn_file_actions_destroy\fR(3C), +\fBposix_spawn_file_actions_init\fR(3C), +\fBposix_spawnattr_destroy\fR(3C), +\fBposix_spawnattr_getflags\fR(3C), \fBposix_spawnattr_getpgroup\fR(3C), +\fBposix_spawnattr_getschedparam\fR(3C), +\fBposix_spawnattr_getschedpolicy\fR(3C), +\fBposix_spawnattr_getsigdefault\fR(3C), +\fBposix_spawnattr_getsigignore_np\fR(3C), +\fBposix_spawnattr_getsigmask\fR(3C), \fBposix_spawnattr_init\fR(3C), +\fBposix_spawnattr_setflags\fR(3C), \fBposix_spawnattr_setpgroup\fR(3C), +\fBposix_spawnattr_setschedparam\fR(3C), +\fBposix_spawnattr_setschedpolicy\fR(3C), +\fBposix_spawnattr_setsigdefault\fR(3C), +\fBposix_spawnattr_setsigignore_np\fR(3C), +\fBposix_spawnattr_setsigmask\fR(3C), +\fBsystem\fR(3C), \fBwait\fR(3C), +\fBattributes\fR(5), \fBstandards\fR(5) diff --git a/usr/src/man/man3lib/libc.3lib b/usr/src/man/man3lib/libc.3lib index 6814320f2d..036786751a 100644 --- a/usr/src/man/man3lib/libc.3lib +++ b/usr/src/man/man3lib/libc.3lib @@ -3,6 +3,7 @@ .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. .\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] +.\" Copyright 2011 by Delphix. All rights reserved. .TH LIBC 3LIB "Sep 15, 2009" .SH NAME libc \- C library @@ -425,8 +426,11 @@ l l . \fBposix_memalign\fR \fBposix_openpt\fR \fBposix_spawn\fR \fBposix_spawn_file_actions_addclose\fR \fBposix_spawn_file_actions_addclosefrom_np\fR \fBposix_spawn_file_actions_adddup2\fR -\fBposix_spawn_file_actions_addopen\fR \fBposix_spawn_file_actions_destroy\fR -\fBposix_spawn_file_actions_init\fR \fBposix_spawnattr_destroy\fR +\fBposix_spawn_file_actions_addopen\fR +\fBposix_spawn_file_actions_destroy\fR +\fBposix_spawn_file_actions_init\fR +\fBposix_spawn_pipe_np\fR +\fBposix_spawnattr_destroy\fR \fBposix_spawnattr_getflags\fR \fBposix_spawnattr_getpgroup\fR \fBposix_spawnattr_getschedparam\fR \fBposix_spawnattr_getschedpolicy\fR \fBposix_spawnattr_getsigdefault\fR \fBposix_spawnattr_getsigignore_np\fR diff --git a/usr/src/pkg/manifests/SUNWcs.mf b/usr/src/pkg/manifests/SUNWcs.mf index e504f3b98b..7e0933a321 100644 --- a/usr/src/pkg/manifests/SUNWcs.mf +++ b/usr/src/pkg/manifests/SUNWcs.mf @@ -19,8 +19,10 @@ # CDDL HEADER END # +# # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. -# Copyright 2010,2011 Nexenta Systems, Inc. All rights reserved. +# Copyright 2011 Nexenta Systems, Inc. All rights reserved. +# <include SUNWcs.man1.inc> <include SUNWcs.man1m.inc> @@ -249,30 +251,6 @@ dir path=usr/share/lib/tabset dir path=usr/share/lib/xml group=sys dir path=usr/share/lib/xml/dtd group=sys dir path=usr/share/lib/xml/style group=sys -dir path=usr/share/lib/zoneinfo -dir path=usr/share/lib/zoneinfo/Africa -dir path=usr/share/lib/zoneinfo/America -dir path=usr/share/lib/zoneinfo/America/Argentina -dir path=usr/share/lib/zoneinfo/America/Indiana -dir path=usr/share/lib/zoneinfo/America/Kentucky -dir path=usr/share/lib/zoneinfo/America/North_Dakota -dir path=usr/share/lib/zoneinfo/Antarctica -dir path=usr/share/lib/zoneinfo/Arctic -dir path=usr/share/lib/zoneinfo/Asia -dir path=usr/share/lib/zoneinfo/Atlantic -dir path=usr/share/lib/zoneinfo/Australia -dir path=usr/share/lib/zoneinfo/Brazil -dir path=usr/share/lib/zoneinfo/Canada -dir path=usr/share/lib/zoneinfo/Chile -dir path=usr/share/lib/zoneinfo/Etc -dir path=usr/share/lib/zoneinfo/Europe -dir path=usr/share/lib/zoneinfo/Indian -dir path=usr/share/lib/zoneinfo/Mexico -dir path=usr/share/lib/zoneinfo/Mideast -dir path=usr/share/lib/zoneinfo/Pacific -dir path=usr/share/lib/zoneinfo/US -dir path=usr/share/lib/zoneinfo/src -dir path=usr/share/lib/zoneinfo/tab dir path=usr/share/man dir path=usr/share/man/man1 dir path=usr/share/man/man1m @@ -1500,459 +1478,6 @@ file path=usr/share/lib/xml/dtd/adt_record.dtd.1 file path=usr/share/lib/xml/dtd/kmfpolicy.dtd file path=usr/share/lib/xml/dtd/service_bundle.dtd.1 group=sys file path=usr/share/lib/xml/style/adt_record.xsl.1 -file path=usr/share/lib/zoneinfo/Africa/Abidjan -file path=usr/share/lib/zoneinfo/Africa/Accra -file path=usr/share/lib/zoneinfo/Africa/Addis_Ababa -file path=usr/share/lib/zoneinfo/Africa/Algiers -file path=usr/share/lib/zoneinfo/Africa/Asmara -file path=usr/share/lib/zoneinfo/Africa/Bamako -file path=usr/share/lib/zoneinfo/Africa/Bangui -file path=usr/share/lib/zoneinfo/Africa/Banjul -file path=usr/share/lib/zoneinfo/Africa/Bissau -file path=usr/share/lib/zoneinfo/Africa/Blantyre -file path=usr/share/lib/zoneinfo/Africa/Brazzaville -file path=usr/share/lib/zoneinfo/Africa/Bujumbura -file path=usr/share/lib/zoneinfo/Africa/Cairo -file path=usr/share/lib/zoneinfo/Africa/Casablanca -file path=usr/share/lib/zoneinfo/Africa/Ceuta -file path=usr/share/lib/zoneinfo/Africa/Conakry -file path=usr/share/lib/zoneinfo/Africa/Dakar -file path=usr/share/lib/zoneinfo/Africa/Dar_es_Salaam -file path=usr/share/lib/zoneinfo/Africa/Djibouti -file path=usr/share/lib/zoneinfo/Africa/Douala -file path=usr/share/lib/zoneinfo/Africa/El_Aaiun -file path=usr/share/lib/zoneinfo/Africa/Freetown -file path=usr/share/lib/zoneinfo/Africa/Gaborone -file path=usr/share/lib/zoneinfo/Africa/Harare -file path=usr/share/lib/zoneinfo/Africa/Johannesburg -file path=usr/share/lib/zoneinfo/Africa/Kampala -file path=usr/share/lib/zoneinfo/Africa/Khartoum -file path=usr/share/lib/zoneinfo/Africa/Kigali -file path=usr/share/lib/zoneinfo/Africa/Kinshasa -file path=usr/share/lib/zoneinfo/Africa/Lagos -file path=usr/share/lib/zoneinfo/Africa/Libreville -file path=usr/share/lib/zoneinfo/Africa/Lome -file path=usr/share/lib/zoneinfo/Africa/Luanda -file path=usr/share/lib/zoneinfo/Africa/Lubumbashi -file path=usr/share/lib/zoneinfo/Africa/Lusaka -file path=usr/share/lib/zoneinfo/Africa/Malabo -file path=usr/share/lib/zoneinfo/Africa/Maputo -file path=usr/share/lib/zoneinfo/Africa/Maseru -file path=usr/share/lib/zoneinfo/Africa/Mbabane -file path=usr/share/lib/zoneinfo/Africa/Mogadishu -file path=usr/share/lib/zoneinfo/Africa/Monrovia -file path=usr/share/lib/zoneinfo/Africa/Nairobi -file path=usr/share/lib/zoneinfo/Africa/Ndjamena -file path=usr/share/lib/zoneinfo/Africa/Niamey -file path=usr/share/lib/zoneinfo/Africa/Nouakchott -file path=usr/share/lib/zoneinfo/Africa/Ouagadougou -file path=usr/share/lib/zoneinfo/Africa/Porto-Novo -file path=usr/share/lib/zoneinfo/Africa/Sao_Tome -file path=usr/share/lib/zoneinfo/Africa/Tripoli -file path=usr/share/lib/zoneinfo/Africa/Tunis -file path=usr/share/lib/zoneinfo/Africa/Windhoek -file path=usr/share/lib/zoneinfo/America/Adak -file path=usr/share/lib/zoneinfo/America/Anchorage -file path=usr/share/lib/zoneinfo/America/Anguilla -file path=usr/share/lib/zoneinfo/America/Antigua -file path=usr/share/lib/zoneinfo/America/Araguaina -file path=usr/share/lib/zoneinfo/America/Argentina/Buenos_Aires -file path=usr/share/lib/zoneinfo/America/Argentina/Catamarca -file path=usr/share/lib/zoneinfo/America/Argentina/Cordoba -file path=usr/share/lib/zoneinfo/America/Argentina/Jujuy -file path=usr/share/lib/zoneinfo/America/Argentina/La_Rioja -file path=usr/share/lib/zoneinfo/America/Argentina/Mendoza -file path=usr/share/lib/zoneinfo/America/Argentina/Rio_Gallegos -file path=usr/share/lib/zoneinfo/America/Argentina/Salta -file path=usr/share/lib/zoneinfo/America/Argentina/San_Juan -file path=usr/share/lib/zoneinfo/America/Argentina/San_Luis -file path=usr/share/lib/zoneinfo/America/Argentina/Tucuman -file path=usr/share/lib/zoneinfo/America/Argentina/Ushuaia -file path=usr/share/lib/zoneinfo/America/Aruba -file path=usr/share/lib/zoneinfo/America/Asuncion -file path=usr/share/lib/zoneinfo/America/Atikokan -file path=usr/share/lib/zoneinfo/America/Bahia -file path=usr/share/lib/zoneinfo/America/Bahia_Banderas -file path=usr/share/lib/zoneinfo/America/Barbados -file path=usr/share/lib/zoneinfo/America/Belem -file path=usr/share/lib/zoneinfo/America/Belize -file path=usr/share/lib/zoneinfo/America/Blanc-Sablon -file path=usr/share/lib/zoneinfo/America/Boa_Vista -file path=usr/share/lib/zoneinfo/America/Bogota -file path=usr/share/lib/zoneinfo/America/Boise -file path=usr/share/lib/zoneinfo/America/Cambridge_Bay -file path=usr/share/lib/zoneinfo/America/Campo_Grande -file path=usr/share/lib/zoneinfo/America/Cancun -file path=usr/share/lib/zoneinfo/America/Caracas -file path=usr/share/lib/zoneinfo/America/Cayenne -file path=usr/share/lib/zoneinfo/America/Cayman -file path=usr/share/lib/zoneinfo/America/Chicago -file path=usr/share/lib/zoneinfo/America/Chihuahua -file path=usr/share/lib/zoneinfo/America/Costa_Rica -file path=usr/share/lib/zoneinfo/America/Cuiaba -file path=usr/share/lib/zoneinfo/America/Curacao -file path=usr/share/lib/zoneinfo/America/Danmarkshavn -file path=usr/share/lib/zoneinfo/America/Dawson -file path=usr/share/lib/zoneinfo/America/Dawson_Creek -file path=usr/share/lib/zoneinfo/America/Denver -file path=usr/share/lib/zoneinfo/America/Detroit -file path=usr/share/lib/zoneinfo/America/Dominica -file path=usr/share/lib/zoneinfo/America/Edmonton -file path=usr/share/lib/zoneinfo/America/Eirunepe -file path=usr/share/lib/zoneinfo/America/El_Salvador -file path=usr/share/lib/zoneinfo/America/Fortaleza -file path=usr/share/lib/zoneinfo/America/Glace_Bay -file path=usr/share/lib/zoneinfo/America/Godthab -file path=usr/share/lib/zoneinfo/America/Goose_Bay -file path=usr/share/lib/zoneinfo/America/Grand_Turk -file path=usr/share/lib/zoneinfo/America/Grenada -file path=usr/share/lib/zoneinfo/America/Guadeloupe -file path=usr/share/lib/zoneinfo/America/Guatemala -file path=usr/share/lib/zoneinfo/America/Guayaquil -file path=usr/share/lib/zoneinfo/America/Guyana -file path=usr/share/lib/zoneinfo/America/Halifax -file path=usr/share/lib/zoneinfo/America/Havana -file path=usr/share/lib/zoneinfo/America/Hermosillo -file path=usr/share/lib/zoneinfo/America/Indiana/Indianapolis -file path=usr/share/lib/zoneinfo/America/Indiana/Knox -file path=usr/share/lib/zoneinfo/America/Indiana/Marengo -file path=usr/share/lib/zoneinfo/America/Indiana/Petersburg -file path=usr/share/lib/zoneinfo/America/Indiana/Tell_City -file path=usr/share/lib/zoneinfo/America/Indiana/Vevay -file path=usr/share/lib/zoneinfo/America/Indiana/Vincennes -file path=usr/share/lib/zoneinfo/America/Indiana/Winamac -file path=usr/share/lib/zoneinfo/America/Inuvik -file path=usr/share/lib/zoneinfo/America/Iqaluit -file path=usr/share/lib/zoneinfo/America/Jamaica -file path=usr/share/lib/zoneinfo/America/Juneau -file path=usr/share/lib/zoneinfo/America/Kentucky/Louisville -file path=usr/share/lib/zoneinfo/America/Kentucky/Monticello -file path=usr/share/lib/zoneinfo/America/La_Paz -file path=usr/share/lib/zoneinfo/America/Lima -file path=usr/share/lib/zoneinfo/America/Los_Angeles -file path=usr/share/lib/zoneinfo/America/Maceio -file path=usr/share/lib/zoneinfo/America/Managua -file path=usr/share/lib/zoneinfo/America/Manaus -file path=usr/share/lib/zoneinfo/America/Martinique -file path=usr/share/lib/zoneinfo/America/Matamoros -file path=usr/share/lib/zoneinfo/America/Mazatlan -file path=usr/share/lib/zoneinfo/America/Menominee -file path=usr/share/lib/zoneinfo/America/Merida -file path=usr/share/lib/zoneinfo/America/Mexico_City -file path=usr/share/lib/zoneinfo/America/Miquelon -file path=usr/share/lib/zoneinfo/America/Moncton -file path=usr/share/lib/zoneinfo/America/Monterrey -file path=usr/share/lib/zoneinfo/America/Montevideo -file path=usr/share/lib/zoneinfo/America/Montreal -file path=usr/share/lib/zoneinfo/America/Montserrat -file path=usr/share/lib/zoneinfo/America/Nassau -file path=usr/share/lib/zoneinfo/America/New_York -file path=usr/share/lib/zoneinfo/America/Nipigon -file path=usr/share/lib/zoneinfo/America/Nome -file path=usr/share/lib/zoneinfo/America/Noronha -file path=usr/share/lib/zoneinfo/America/North_Dakota/Center -file path=usr/share/lib/zoneinfo/America/North_Dakota/New_Salem -file path=usr/share/lib/zoneinfo/America/Ojinaga -file path=usr/share/lib/zoneinfo/America/Panama -file path=usr/share/lib/zoneinfo/America/Pangnirtung -file path=usr/share/lib/zoneinfo/America/Paramaribo -file path=usr/share/lib/zoneinfo/America/Phoenix -file path=usr/share/lib/zoneinfo/America/Port-au-Prince -file path=usr/share/lib/zoneinfo/America/Port_of_Spain -file path=usr/share/lib/zoneinfo/America/Porto_Velho -file path=usr/share/lib/zoneinfo/America/Puerto_Rico -file path=usr/share/lib/zoneinfo/America/Rainy_River -file path=usr/share/lib/zoneinfo/America/Rankin_Inlet -file path=usr/share/lib/zoneinfo/America/Recife -file path=usr/share/lib/zoneinfo/America/Regina -file path=usr/share/lib/zoneinfo/America/Resolute -file path=usr/share/lib/zoneinfo/America/Rio_Branco -file path=usr/share/lib/zoneinfo/America/Santa_Isabel -file path=usr/share/lib/zoneinfo/America/Santarem -file path=usr/share/lib/zoneinfo/America/Santiago -file path=usr/share/lib/zoneinfo/America/Santo_Domingo -file path=usr/share/lib/zoneinfo/America/Sao_Paulo -file path=usr/share/lib/zoneinfo/America/Scoresbysund -file path=usr/share/lib/zoneinfo/America/St_Johns -file path=usr/share/lib/zoneinfo/America/St_Kitts -file path=usr/share/lib/zoneinfo/America/St_Lucia -file path=usr/share/lib/zoneinfo/America/St_Thomas -file path=usr/share/lib/zoneinfo/America/St_Vincent -file path=usr/share/lib/zoneinfo/America/Swift_Current -file path=usr/share/lib/zoneinfo/America/Tegucigalpa -file path=usr/share/lib/zoneinfo/America/Thule -file path=usr/share/lib/zoneinfo/America/Thunder_Bay -file path=usr/share/lib/zoneinfo/America/Tijuana -file path=usr/share/lib/zoneinfo/America/Toronto -file path=usr/share/lib/zoneinfo/America/Tortola -file path=usr/share/lib/zoneinfo/America/Vancouver -file path=usr/share/lib/zoneinfo/America/Whitehorse -file path=usr/share/lib/zoneinfo/America/Winnipeg -file path=usr/share/lib/zoneinfo/America/Yakutat -file path=usr/share/lib/zoneinfo/America/Yellowknife -file path=usr/share/lib/zoneinfo/Antarctica/Casey -file path=usr/share/lib/zoneinfo/Antarctica/Davis -file path=usr/share/lib/zoneinfo/Antarctica/DumontDUrville -file path=usr/share/lib/zoneinfo/Antarctica/Macquarie -file path=usr/share/lib/zoneinfo/Antarctica/Mawson -file path=usr/share/lib/zoneinfo/Antarctica/McMurdo -file path=usr/share/lib/zoneinfo/Antarctica/Palmer -file path=usr/share/lib/zoneinfo/Antarctica/Rothera -file path=usr/share/lib/zoneinfo/Antarctica/Syowa -file path=usr/share/lib/zoneinfo/Antarctica/Vostok -file path=usr/share/lib/zoneinfo/Asia/Aden -file path=usr/share/lib/zoneinfo/Asia/Almaty -file path=usr/share/lib/zoneinfo/Asia/Amman -file path=usr/share/lib/zoneinfo/Asia/Anadyr -file path=usr/share/lib/zoneinfo/Asia/Aqtau -file path=usr/share/lib/zoneinfo/Asia/Aqtobe -file path=usr/share/lib/zoneinfo/Asia/Ashgabat -file path=usr/share/lib/zoneinfo/Asia/Baghdad -file path=usr/share/lib/zoneinfo/Asia/Bahrain -file path=usr/share/lib/zoneinfo/Asia/Baku -file path=usr/share/lib/zoneinfo/Asia/Bangkok -file path=usr/share/lib/zoneinfo/Asia/Beirut -file path=usr/share/lib/zoneinfo/Asia/Bishkek -file path=usr/share/lib/zoneinfo/Asia/Brunei -file path=usr/share/lib/zoneinfo/Asia/Choibalsan -file path=usr/share/lib/zoneinfo/Asia/Chongqing -file path=usr/share/lib/zoneinfo/Asia/Colombo -file path=usr/share/lib/zoneinfo/Asia/Damascus -file path=usr/share/lib/zoneinfo/Asia/Dhaka -file path=usr/share/lib/zoneinfo/Asia/Dili -file path=usr/share/lib/zoneinfo/Asia/Dubai -file path=usr/share/lib/zoneinfo/Asia/Dushanbe -file path=usr/share/lib/zoneinfo/Asia/Gaza -file path=usr/share/lib/zoneinfo/Asia/Harbin -file path=usr/share/lib/zoneinfo/Asia/Ho_Chi_Minh -file path=usr/share/lib/zoneinfo/Asia/Hong_Kong -file path=usr/share/lib/zoneinfo/Asia/Hovd -file path=usr/share/lib/zoneinfo/Asia/Irkutsk -file path=usr/share/lib/zoneinfo/Asia/Jakarta -file path=usr/share/lib/zoneinfo/Asia/Jayapura -file path=usr/share/lib/zoneinfo/Asia/Jerusalem -file path=usr/share/lib/zoneinfo/Asia/Kabul -file path=usr/share/lib/zoneinfo/Asia/Kamchatka -file path=usr/share/lib/zoneinfo/Asia/Karachi -file path=usr/share/lib/zoneinfo/Asia/Kashgar -file path=usr/share/lib/zoneinfo/Asia/Kathmandu -file path=usr/share/lib/zoneinfo/Asia/Kolkata -file path=usr/share/lib/zoneinfo/Asia/Krasnoyarsk -file path=usr/share/lib/zoneinfo/Asia/Kuala_Lumpur -file path=usr/share/lib/zoneinfo/Asia/Kuching -file path=usr/share/lib/zoneinfo/Asia/Kuwait -file path=usr/share/lib/zoneinfo/Asia/Macau -file path=usr/share/lib/zoneinfo/Asia/Magadan -file path=usr/share/lib/zoneinfo/Asia/Makassar -file path=usr/share/lib/zoneinfo/Asia/Manila -file path=usr/share/lib/zoneinfo/Asia/Muscat -file path=usr/share/lib/zoneinfo/Asia/Nicosia -file path=usr/share/lib/zoneinfo/Asia/Novokuznetsk -file path=usr/share/lib/zoneinfo/Asia/Novosibirsk -file path=usr/share/lib/zoneinfo/Asia/Omsk -file path=usr/share/lib/zoneinfo/Asia/Oral -file path=usr/share/lib/zoneinfo/Asia/Phnom_Penh -file path=usr/share/lib/zoneinfo/Asia/Pontianak -file path=usr/share/lib/zoneinfo/Asia/Pyongyang -file path=usr/share/lib/zoneinfo/Asia/Qatar -file path=usr/share/lib/zoneinfo/Asia/Qyzylorda -file path=usr/share/lib/zoneinfo/Asia/Rangoon -file path=usr/share/lib/zoneinfo/Asia/Riyadh -file path=usr/share/lib/zoneinfo/Asia/Riyadh87 -file path=usr/share/lib/zoneinfo/Asia/Riyadh88 -file path=usr/share/lib/zoneinfo/Asia/Riyadh89 -file path=usr/share/lib/zoneinfo/Asia/Sakhalin -file path=usr/share/lib/zoneinfo/Asia/Samarkand -file path=usr/share/lib/zoneinfo/Asia/Seoul -file path=usr/share/lib/zoneinfo/Asia/Shanghai -file path=usr/share/lib/zoneinfo/Asia/Singapore -file path=usr/share/lib/zoneinfo/Asia/Taipei -file path=usr/share/lib/zoneinfo/Asia/Tashkent -file path=usr/share/lib/zoneinfo/Asia/Tbilisi -file path=usr/share/lib/zoneinfo/Asia/Tehran -file path=usr/share/lib/zoneinfo/Asia/Thimphu -file path=usr/share/lib/zoneinfo/Asia/Tokyo -file path=usr/share/lib/zoneinfo/Asia/Ulaanbaatar -file path=usr/share/lib/zoneinfo/Asia/Urumqi -file path=usr/share/lib/zoneinfo/Asia/Vientiane -file path=usr/share/lib/zoneinfo/Asia/Vladivostok -file path=usr/share/lib/zoneinfo/Asia/Yakutsk -file path=usr/share/lib/zoneinfo/Asia/Yekaterinburg -file path=usr/share/lib/zoneinfo/Asia/Yerevan -file path=usr/share/lib/zoneinfo/Atlantic/Azores -file path=usr/share/lib/zoneinfo/Atlantic/Bermuda -file path=usr/share/lib/zoneinfo/Atlantic/Canary -file path=usr/share/lib/zoneinfo/Atlantic/Cape_Verde -file path=usr/share/lib/zoneinfo/Atlantic/Faroe -file path=usr/share/lib/zoneinfo/Atlantic/Madeira -file path=usr/share/lib/zoneinfo/Atlantic/Reykjavik -file path=usr/share/lib/zoneinfo/Atlantic/South_Georgia -file path=usr/share/lib/zoneinfo/Atlantic/St_Helena -file path=usr/share/lib/zoneinfo/Atlantic/Stanley -file path=usr/share/lib/zoneinfo/Australia/Adelaide -file path=usr/share/lib/zoneinfo/Australia/Brisbane -file path=usr/share/lib/zoneinfo/Australia/Broken_Hill -file path=usr/share/lib/zoneinfo/Australia/Currie -file path=usr/share/lib/zoneinfo/Australia/Darwin -file path=usr/share/lib/zoneinfo/Australia/Eucla -file path=usr/share/lib/zoneinfo/Australia/Hobart -file path=usr/share/lib/zoneinfo/Australia/Lindeman -file path=usr/share/lib/zoneinfo/Australia/Lord_Howe -file path=usr/share/lib/zoneinfo/Australia/Melbourne -file path=usr/share/lib/zoneinfo/Australia/Perth -file path=usr/share/lib/zoneinfo/Australia/Sydney -file path=usr/share/lib/zoneinfo/CET -file path=usr/share/lib/zoneinfo/CST6CDT -file path=usr/share/lib/zoneinfo/EET -file path=usr/share/lib/zoneinfo/EST -file path=usr/share/lib/zoneinfo/EST5EDT -file path=usr/share/lib/zoneinfo/Etc/GMT -file path=usr/share/lib/zoneinfo/Etc/GMT+1 -file path=usr/share/lib/zoneinfo/Etc/GMT+10 -file path=usr/share/lib/zoneinfo/Etc/GMT+11 -file path=usr/share/lib/zoneinfo/Etc/GMT+12 -file path=usr/share/lib/zoneinfo/Etc/GMT+2 -file path=usr/share/lib/zoneinfo/Etc/GMT+3 -file path=usr/share/lib/zoneinfo/Etc/GMT+4 -file path=usr/share/lib/zoneinfo/Etc/GMT+5 -file path=usr/share/lib/zoneinfo/Etc/GMT+6 -file path=usr/share/lib/zoneinfo/Etc/GMT+7 -file path=usr/share/lib/zoneinfo/Etc/GMT+8 -file path=usr/share/lib/zoneinfo/Etc/GMT+9 -file path=usr/share/lib/zoneinfo/Etc/GMT-1 -file path=usr/share/lib/zoneinfo/Etc/GMT-10 -file path=usr/share/lib/zoneinfo/Etc/GMT-11 -file path=usr/share/lib/zoneinfo/Etc/GMT-12 -file path=usr/share/lib/zoneinfo/Etc/GMT-13 -file path=usr/share/lib/zoneinfo/Etc/GMT-14 -file path=usr/share/lib/zoneinfo/Etc/GMT-2 -file path=usr/share/lib/zoneinfo/Etc/GMT-3 -file path=usr/share/lib/zoneinfo/Etc/GMT-4 -file path=usr/share/lib/zoneinfo/Etc/GMT-5 -file path=usr/share/lib/zoneinfo/Etc/GMT-6 -file path=usr/share/lib/zoneinfo/Etc/GMT-7 -file path=usr/share/lib/zoneinfo/Etc/GMT-8 -file path=usr/share/lib/zoneinfo/Etc/GMT-9 -file path=usr/share/lib/zoneinfo/Etc/UCT -file path=usr/share/lib/zoneinfo/Etc/UTC -file path=usr/share/lib/zoneinfo/Europe/Amsterdam -file path=usr/share/lib/zoneinfo/Europe/Andorra -file path=usr/share/lib/zoneinfo/Europe/Athens -file path=usr/share/lib/zoneinfo/Europe/Belgrade -file path=usr/share/lib/zoneinfo/Europe/Berlin -file path=usr/share/lib/zoneinfo/Europe/Brussels -file path=usr/share/lib/zoneinfo/Europe/Bucharest -file path=usr/share/lib/zoneinfo/Europe/Budapest -file path=usr/share/lib/zoneinfo/Europe/Chisinau -file path=usr/share/lib/zoneinfo/Europe/Copenhagen -file path=usr/share/lib/zoneinfo/Europe/Dublin -file path=usr/share/lib/zoneinfo/Europe/Gibraltar -file path=usr/share/lib/zoneinfo/Europe/Helsinki -file path=usr/share/lib/zoneinfo/Europe/Istanbul -file path=usr/share/lib/zoneinfo/Europe/Kaliningrad -file path=usr/share/lib/zoneinfo/Europe/Kiev -file path=usr/share/lib/zoneinfo/Europe/Lisbon -file path=usr/share/lib/zoneinfo/Europe/London -file path=usr/share/lib/zoneinfo/Europe/Luxembourg -file path=usr/share/lib/zoneinfo/Europe/Madrid -file path=usr/share/lib/zoneinfo/Europe/Malta -file path=usr/share/lib/zoneinfo/Europe/Minsk -file path=usr/share/lib/zoneinfo/Europe/Monaco -file path=usr/share/lib/zoneinfo/Europe/Moscow -file path=usr/share/lib/zoneinfo/Europe/Oslo -file path=usr/share/lib/zoneinfo/Europe/Paris -file path=usr/share/lib/zoneinfo/Europe/Prague -file path=usr/share/lib/zoneinfo/Europe/Riga -file path=usr/share/lib/zoneinfo/Europe/Rome -file path=usr/share/lib/zoneinfo/Europe/Samara -file path=usr/share/lib/zoneinfo/Europe/Simferopol -file path=usr/share/lib/zoneinfo/Europe/Sofia -file path=usr/share/lib/zoneinfo/Europe/Stockholm -file path=usr/share/lib/zoneinfo/Europe/Tallinn -file path=usr/share/lib/zoneinfo/Europe/Tirane -file path=usr/share/lib/zoneinfo/Europe/Uzhgorod -file path=usr/share/lib/zoneinfo/Europe/Vaduz -file path=usr/share/lib/zoneinfo/Europe/Vienna -file path=usr/share/lib/zoneinfo/Europe/Vilnius -file path=usr/share/lib/zoneinfo/Europe/Volgograd -file path=usr/share/lib/zoneinfo/Europe/Warsaw -file path=usr/share/lib/zoneinfo/Europe/Zaporozhye -file path=usr/share/lib/zoneinfo/Europe/Zurich -file path=usr/share/lib/zoneinfo/Factory -file path=usr/share/lib/zoneinfo/HST -file path=usr/share/lib/zoneinfo/Indian/Antananarivo -file path=usr/share/lib/zoneinfo/Indian/Chagos -file path=usr/share/lib/zoneinfo/Indian/Christmas -file path=usr/share/lib/zoneinfo/Indian/Cocos -file path=usr/share/lib/zoneinfo/Indian/Comoro -file path=usr/share/lib/zoneinfo/Indian/Kerguelen -file path=usr/share/lib/zoneinfo/Indian/Mahe -file path=usr/share/lib/zoneinfo/Indian/Maldives -file path=usr/share/lib/zoneinfo/Indian/Mauritius -file path=usr/share/lib/zoneinfo/Indian/Mayotte -file path=usr/share/lib/zoneinfo/Indian/Reunion -file path=usr/share/lib/zoneinfo/MET -file path=usr/share/lib/zoneinfo/MST -file path=usr/share/lib/zoneinfo/MST7MDT -file path=usr/share/lib/zoneinfo/PST8PDT -file path=usr/share/lib/zoneinfo/Pacific/Apia -file path=usr/share/lib/zoneinfo/Pacific/Auckland -file path=usr/share/lib/zoneinfo/Pacific/Chatham -file path=usr/share/lib/zoneinfo/Pacific/Chuuk -file path=usr/share/lib/zoneinfo/Pacific/Easter -file path=usr/share/lib/zoneinfo/Pacific/Efate -file path=usr/share/lib/zoneinfo/Pacific/Enderbury -file path=usr/share/lib/zoneinfo/Pacific/Fakaofo -file path=usr/share/lib/zoneinfo/Pacific/Fiji -file path=usr/share/lib/zoneinfo/Pacific/Funafuti -file path=usr/share/lib/zoneinfo/Pacific/Galapagos -file path=usr/share/lib/zoneinfo/Pacific/Gambier -file path=usr/share/lib/zoneinfo/Pacific/Guadalcanal -file path=usr/share/lib/zoneinfo/Pacific/Guam -file path=usr/share/lib/zoneinfo/Pacific/Honolulu -file path=usr/share/lib/zoneinfo/Pacific/Johnston -file path=usr/share/lib/zoneinfo/Pacific/Kiritimati -file path=usr/share/lib/zoneinfo/Pacific/Kosrae -file path=usr/share/lib/zoneinfo/Pacific/Kwajalein -file path=usr/share/lib/zoneinfo/Pacific/Majuro -file path=usr/share/lib/zoneinfo/Pacific/Marquesas -file path=usr/share/lib/zoneinfo/Pacific/Midway -file path=usr/share/lib/zoneinfo/Pacific/Nauru -file path=usr/share/lib/zoneinfo/Pacific/Niue -file path=usr/share/lib/zoneinfo/Pacific/Norfolk -file path=usr/share/lib/zoneinfo/Pacific/Noumea -file path=usr/share/lib/zoneinfo/Pacific/Pago_Pago -file path=usr/share/lib/zoneinfo/Pacific/Palau -file path=usr/share/lib/zoneinfo/Pacific/Pitcairn -file path=usr/share/lib/zoneinfo/Pacific/Pohnpei -file path=usr/share/lib/zoneinfo/Pacific/Port_Moresby -file path=usr/share/lib/zoneinfo/Pacific/Rarotonga -file path=usr/share/lib/zoneinfo/Pacific/Saipan -file path=usr/share/lib/zoneinfo/Pacific/Tahiti -file path=usr/share/lib/zoneinfo/Pacific/Tarawa -file path=usr/share/lib/zoneinfo/Pacific/Tongatapu -file path=usr/share/lib/zoneinfo/Pacific/Wake -file path=usr/share/lib/zoneinfo/Pacific/Wallis -file path=usr/share/lib/zoneinfo/WET -file path=usr/share/lib/zoneinfo/src/README -file path=usr/share/lib/zoneinfo/src/africa -file path=usr/share/lib/zoneinfo/src/antarctica -file path=usr/share/lib/zoneinfo/src/asia -file path=usr/share/lib/zoneinfo/src/australasia -file path=usr/share/lib/zoneinfo/src/backward -file path=usr/share/lib/zoneinfo/src/etcetera -file path=usr/share/lib/zoneinfo/src/europe -file path=usr/share/lib/zoneinfo/src/factory -file path=usr/share/lib/zoneinfo/src/northamerica -file path=usr/share/lib/zoneinfo/src/pacificnew -file path=usr/share/lib/zoneinfo/src/solar87 -file path=usr/share/lib/zoneinfo/src/solar88 -file path=usr/share/lib/zoneinfo/src/solar89 -file path=usr/share/lib/zoneinfo/src/southamerica -file path=usr/share/lib/zoneinfo/src/systemv -file path=usr/share/lib/zoneinfo/tab/continent.tab -file path=usr/share/lib/zoneinfo/tab/country.tab -file path=usr/share/lib/zoneinfo/tab/zone_sun.tab file path=var/adm/aculog mode=0600 owner=uucp preserve=true file path=var/adm/spellhist mode=0666 preserve=true file path=var/adm/utmpx preserve=true @@ -2159,284 +1684,6 @@ hardlink path=usr/sbin/tapes target=./devfsadm hardlink path=usr/sbin/unshare target=../../usr/sbin/sharemgr hardlink path=usr/sbin/update_drv target=../../usr/lib/isaexec hardlink path=usr/sbin/whodo target=../../usr/lib/isaexec -hardlink path=usr/share/lib/zoneinfo/Africa/Asmera \ - target=../../../../../usr/share/lib/zoneinfo/Africa/Asmara -hardlink path=usr/share/lib/zoneinfo/Africa/Timbuktu \ - target=../../../../../usr/share/lib/zoneinfo/Africa/Bamako -hardlink path=usr/share/lib/zoneinfo/America/Argentina/ComodRivadavia \ - target=../../../../../../usr/share/lib/zoneinfo/America/Argentina/Catamarca -hardlink path=usr/share/lib/zoneinfo/America/Atka \ - target=../../../../../usr/share/lib/zoneinfo/America/Adak -hardlink path=usr/share/lib/zoneinfo/America/Buenos_Aires \ - target=../../../../../usr/share/lib/zoneinfo/America/Argentina/Buenos_Aires -hardlink path=usr/share/lib/zoneinfo/America/Catamarca \ - target=../../../../../usr/share/lib/zoneinfo/America/Argentina/Catamarca -hardlink path=usr/share/lib/zoneinfo/America/Coral_Harbour \ - target=../../../../../usr/share/lib/zoneinfo/America/Atikokan -hardlink path=usr/share/lib/zoneinfo/America/Cordoba \ - target=../../../../../usr/share/lib/zoneinfo/America/Argentina/Cordoba -hardlink path=usr/share/lib/zoneinfo/America/Ensenada \ - target=../../../../../usr/share/lib/zoneinfo/America/Tijuana -hardlink path=usr/share/lib/zoneinfo/America/Fort_Wayne \ - target=../../../../../usr/share/lib/zoneinfo/America/Indiana/Indianapolis -hardlink path=usr/share/lib/zoneinfo/America/Indianapolis \ - target=../../../../../usr/share/lib/zoneinfo/America/Indiana/Indianapolis -hardlink path=usr/share/lib/zoneinfo/America/Jujuy \ - target=../../../../../usr/share/lib/zoneinfo/America/Argentina/Jujuy -hardlink path=usr/share/lib/zoneinfo/America/Knox_IN \ - target=../../../../../usr/share/lib/zoneinfo/America/Indiana/Knox -hardlink path=usr/share/lib/zoneinfo/America/Louisville \ - target=../../../../../usr/share/lib/zoneinfo/America/Kentucky/Louisville -hardlink path=usr/share/lib/zoneinfo/America/Marigot \ - target=../../../../../usr/share/lib/zoneinfo/America/Guadeloupe -hardlink path=usr/share/lib/zoneinfo/America/Mendoza \ - target=../../../../../usr/share/lib/zoneinfo/America/Argentina/Mendoza -hardlink path=usr/share/lib/zoneinfo/America/Porto_Acre \ - target=../../../../../usr/share/lib/zoneinfo/America/Rio_Branco -hardlink path=usr/share/lib/zoneinfo/America/Rosario \ - target=../../../../../usr/share/lib/zoneinfo/America/Argentina/Cordoba -hardlink path=usr/share/lib/zoneinfo/America/Shiprock \ - target=../../../../../usr/share/lib/zoneinfo/America/Denver -hardlink path=usr/share/lib/zoneinfo/America/St_Barthelemy \ - target=../../../../../usr/share/lib/zoneinfo/America/Guadeloupe -hardlink path=usr/share/lib/zoneinfo/America/Virgin \ - target=../../../../../usr/share/lib/zoneinfo/America/St_Thomas -hardlink path=usr/share/lib/zoneinfo/Antarctica/South_Pole \ - target=../../../../../usr/share/lib/zoneinfo/Antarctica/McMurdo -hardlink path=usr/share/lib/zoneinfo/Arctic/Longyearbyen \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Oslo -hardlink path=usr/share/lib/zoneinfo/Asia/Ashkhabad \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Ashgabat -hardlink path=usr/share/lib/zoneinfo/Asia/Calcutta \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Kolkata -hardlink path=usr/share/lib/zoneinfo/Asia/Chungking \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Chongqing -hardlink path=usr/share/lib/zoneinfo/Asia/Dacca \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Dhaka -hardlink path=usr/share/lib/zoneinfo/Asia/Istanbul \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Istanbul -hardlink path=usr/share/lib/zoneinfo/Asia/Katmandu \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Kathmandu -hardlink path=usr/share/lib/zoneinfo/Asia/Macao \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Macau -hardlink path=usr/share/lib/zoneinfo/Asia/Saigon \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Ho_Chi_Minh -hardlink path=usr/share/lib/zoneinfo/Asia/Tel_Aviv \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Jerusalem -hardlink path=usr/share/lib/zoneinfo/Asia/Thimbu \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Thimphu -hardlink path=usr/share/lib/zoneinfo/Asia/Ujung_Pandang \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Makassar -hardlink path=usr/share/lib/zoneinfo/Asia/Ulan_Bator \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Ulaanbaatar -hardlink path=usr/share/lib/zoneinfo/Atlantic/Faeroe \ - target=../../../../../usr/share/lib/zoneinfo/Atlantic/Faroe -hardlink path=usr/share/lib/zoneinfo/Atlantic/Jan_Mayen \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Oslo -hardlink path=usr/share/lib/zoneinfo/Australia/ACT \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Sydney -hardlink path=usr/share/lib/zoneinfo/Australia/Canberra \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Sydney -hardlink path=usr/share/lib/zoneinfo/Australia/LHI \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Lord_Howe -hardlink path=usr/share/lib/zoneinfo/Australia/NSW \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Sydney -hardlink path=usr/share/lib/zoneinfo/Australia/North \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Darwin -hardlink path=usr/share/lib/zoneinfo/Australia/Queensland \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Brisbane -hardlink path=usr/share/lib/zoneinfo/Australia/South \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Adelaide -hardlink path=usr/share/lib/zoneinfo/Australia/Tasmania \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Hobart -hardlink path=usr/share/lib/zoneinfo/Australia/Victoria \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Melbourne -hardlink path=usr/share/lib/zoneinfo/Australia/West \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Perth -hardlink path=usr/share/lib/zoneinfo/Australia/Yancowinna \ - target=../../../../../usr/share/lib/zoneinfo/Australia/Broken_Hill -hardlink path=usr/share/lib/zoneinfo/Brazil/Acre \ - target=../../../../../usr/share/lib/zoneinfo/America/Rio_Branco -hardlink path=usr/share/lib/zoneinfo/Brazil/DeNoronha \ - target=../../../../../usr/share/lib/zoneinfo/America/Noronha -hardlink path=usr/share/lib/zoneinfo/Brazil/East \ - target=../../../../../usr/share/lib/zoneinfo/America/Sao_Paulo -hardlink path=usr/share/lib/zoneinfo/Brazil/West \ - target=../../../../../usr/share/lib/zoneinfo/America/Manaus -hardlink path=usr/share/lib/zoneinfo/Canada/Atlantic \ - target=../../../../../usr/share/lib/zoneinfo/America/Halifax -hardlink path=usr/share/lib/zoneinfo/Canada/Central \ - target=../../../../../usr/share/lib/zoneinfo/America/Winnipeg -hardlink path=usr/share/lib/zoneinfo/Canada/East-Saskatchewan \ - target=../../../../../usr/share/lib/zoneinfo/America/Regina -hardlink path=usr/share/lib/zoneinfo/Canada/Eastern \ - target=../../../../../usr/share/lib/zoneinfo/America/Toronto -hardlink path=usr/share/lib/zoneinfo/Canada/Mountain \ - target=../../../../../usr/share/lib/zoneinfo/America/Edmonton -hardlink path=usr/share/lib/zoneinfo/Canada/Newfoundland \ - target=../../../../../usr/share/lib/zoneinfo/America/St_Johns -hardlink path=usr/share/lib/zoneinfo/Canada/Pacific \ - target=../../../../../usr/share/lib/zoneinfo/America/Vancouver -hardlink path=usr/share/lib/zoneinfo/Canada/Saskatchewan \ - target=../../../../../usr/share/lib/zoneinfo/America/Regina -hardlink path=usr/share/lib/zoneinfo/Canada/Yukon \ - target=../../../../../usr/share/lib/zoneinfo/America/Whitehorse -hardlink path=usr/share/lib/zoneinfo/Chile/Continental \ - target=../../../../../usr/share/lib/zoneinfo/America/Santiago -hardlink path=usr/share/lib/zoneinfo/Chile/EasterIsland \ - target=../../../../../usr/share/lib/zoneinfo/Pacific/Easter -hardlink path=usr/share/lib/zoneinfo/Cuba \ - target=../../../../usr/share/lib/zoneinfo/America/Havana -hardlink path=usr/share/lib/zoneinfo/Egypt \ - target=../../../../usr/share/lib/zoneinfo/Africa/Cairo -hardlink path=usr/share/lib/zoneinfo/Eire \ - target=../../../../usr/share/lib/zoneinfo/Europe/Dublin -hardlink path=usr/share/lib/zoneinfo/Etc/GMT+0 \ - target=../../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/Etc/GMT-0 \ - target=../../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/Etc/GMT0 \ - target=../../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/Etc/Greenwich \ - target=../../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/Etc/Universal \ - target=../../../../../usr/share/lib/zoneinfo/Etc/UTC -hardlink path=usr/share/lib/zoneinfo/Etc/Zulu \ - target=../../../../../usr/share/lib/zoneinfo/Etc/UTC -hardlink path=usr/share/lib/zoneinfo/Europe/Belfast \ - target=../../../../../usr/share/lib/zoneinfo/Europe/London -hardlink path=usr/share/lib/zoneinfo/Europe/Bratislava \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Prague -hardlink path=usr/share/lib/zoneinfo/Europe/Guernsey \ - target=../../../../../usr/share/lib/zoneinfo/Europe/London -hardlink path=usr/share/lib/zoneinfo/Europe/Isle_of_Man \ - target=../../../../../usr/share/lib/zoneinfo/Europe/London -hardlink path=usr/share/lib/zoneinfo/Europe/Jersey \ - target=../../../../../usr/share/lib/zoneinfo/Europe/London -hardlink path=usr/share/lib/zoneinfo/Europe/Ljubljana \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Belgrade -hardlink path=usr/share/lib/zoneinfo/Europe/Mariehamn \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Helsinki -hardlink path=usr/share/lib/zoneinfo/Europe/Nicosia \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Nicosia -hardlink path=usr/share/lib/zoneinfo/Europe/Podgorica \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Belgrade -hardlink path=usr/share/lib/zoneinfo/Europe/San_Marino \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Rome -hardlink path=usr/share/lib/zoneinfo/Europe/Sarajevo \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Belgrade -hardlink path=usr/share/lib/zoneinfo/Europe/Skopje \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Belgrade -hardlink path=usr/share/lib/zoneinfo/Europe/Tiraspol \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Chisinau -hardlink path=usr/share/lib/zoneinfo/Europe/Vatican \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Rome -hardlink path=usr/share/lib/zoneinfo/Europe/Zagreb \ - target=../../../../../usr/share/lib/zoneinfo/Europe/Belgrade -hardlink path=usr/share/lib/zoneinfo/GB \ - target=../../../../usr/share/lib/zoneinfo/Europe/London -hardlink path=usr/share/lib/zoneinfo/GB-Eire \ - target=../../../../usr/share/lib/zoneinfo/Europe/London -hardlink path=usr/share/lib/zoneinfo/GMT \ - target=../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/GMT+0 \ - target=../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/GMT-0 \ - target=../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/GMT0 \ - target=../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/Greenwich \ - target=../../../../usr/share/lib/zoneinfo/Etc/GMT -hardlink path=usr/share/lib/zoneinfo/Hongkong \ - target=../../../../usr/share/lib/zoneinfo/Asia/Hong_Kong -hardlink path=usr/share/lib/zoneinfo/Iceland \ - target=../../../../usr/share/lib/zoneinfo/Atlantic/Reykjavik -hardlink path=usr/share/lib/zoneinfo/Iran \ - target=../../../../usr/share/lib/zoneinfo/Asia/Tehran -hardlink path=usr/share/lib/zoneinfo/Israel \ - target=../../../../usr/share/lib/zoneinfo/Asia/Jerusalem -hardlink path=usr/share/lib/zoneinfo/Jamaica \ - target=../../../../usr/share/lib/zoneinfo/America/Jamaica -hardlink path=usr/share/lib/zoneinfo/Japan \ - target=../../../../usr/share/lib/zoneinfo/Asia/Tokyo -hardlink path=usr/share/lib/zoneinfo/Kwajalein \ - target=../../../../usr/share/lib/zoneinfo/Pacific/Kwajalein -hardlink path=usr/share/lib/zoneinfo/Libya \ - target=../../../../usr/share/lib/zoneinfo/Africa/Tripoli -hardlink path=usr/share/lib/zoneinfo/Mexico/BajaNorte \ - target=../../../../../usr/share/lib/zoneinfo/America/Tijuana -hardlink path=usr/share/lib/zoneinfo/Mexico/BajaSur \ - target=../../../../../usr/share/lib/zoneinfo/America/Mazatlan -hardlink path=usr/share/lib/zoneinfo/Mexico/General \ - target=../../../../../usr/share/lib/zoneinfo/America/Mexico_City -hardlink path=usr/share/lib/zoneinfo/Mideast/Riyadh87 \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Riyadh87 -hardlink path=usr/share/lib/zoneinfo/Mideast/Riyadh88 \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Riyadh88 -hardlink path=usr/share/lib/zoneinfo/Mideast/Riyadh89 \ - target=../../../../../usr/share/lib/zoneinfo/Asia/Riyadh89 -hardlink path=usr/share/lib/zoneinfo/NZ \ - target=../../../../usr/share/lib/zoneinfo/Pacific/Auckland -hardlink path=usr/share/lib/zoneinfo/NZ-CHAT \ - target=../../../../usr/share/lib/zoneinfo/Pacific/Chatham -hardlink path=usr/share/lib/zoneinfo/Navajo \ - target=../../../../usr/share/lib/zoneinfo/America/Denver -hardlink path=usr/share/lib/zoneinfo/PRC \ - target=../../../../usr/share/lib/zoneinfo/Asia/Shanghai -hardlink path=usr/share/lib/zoneinfo/Pacific/Ponape \ - target=../../../../../usr/share/lib/zoneinfo/Pacific/Pohnpei -hardlink path=usr/share/lib/zoneinfo/Pacific/Samoa \ - target=../../../../../usr/share/lib/zoneinfo/Pacific/Pago_Pago -hardlink path=usr/share/lib/zoneinfo/Pacific/Truk \ - target=../../../../../usr/share/lib/zoneinfo/Pacific/Chuuk -hardlink path=usr/share/lib/zoneinfo/Pacific/Yap \ - target=../../../../../usr/share/lib/zoneinfo/Pacific/Chuuk -hardlink path=usr/share/lib/zoneinfo/Poland \ - target=../../../../usr/share/lib/zoneinfo/Europe/Warsaw -hardlink path=usr/share/lib/zoneinfo/Portugal \ - target=../../../../usr/share/lib/zoneinfo/Europe/Lisbon -hardlink path=usr/share/lib/zoneinfo/ROK \ - target=../../../../usr/share/lib/zoneinfo/Asia/Seoul -hardlink path=usr/share/lib/zoneinfo/Singapore \ - target=../../../../usr/share/lib/zoneinfo/Asia/Singapore -hardlink path=usr/share/lib/zoneinfo/Turkey \ - target=../../../../usr/share/lib/zoneinfo/Europe/Istanbul -hardlink path=usr/share/lib/zoneinfo/UCT \ - target=../../../../usr/share/lib/zoneinfo/Etc/UCT -hardlink path=usr/share/lib/zoneinfo/US/Alaska \ - target=../../../../../usr/share/lib/zoneinfo/America/Anchorage -hardlink path=usr/share/lib/zoneinfo/US/Aleutian \ - target=../../../../../usr/share/lib/zoneinfo/America/Adak -hardlink path=usr/share/lib/zoneinfo/US/Arizona \ - target=../../../../../usr/share/lib/zoneinfo/America/Phoenix -hardlink path=usr/share/lib/zoneinfo/US/Central \ - target=../../../../../usr/share/lib/zoneinfo/America/Chicago -hardlink path=usr/share/lib/zoneinfo/US/East-Indiana \ - target=../../../../../usr/share/lib/zoneinfo/America/Indiana/Indianapolis -hardlink path=usr/share/lib/zoneinfo/US/Eastern \ - target=../../../../../usr/share/lib/zoneinfo/America/New_York -hardlink path=usr/share/lib/zoneinfo/US/Hawaii \ - target=../../../../../usr/share/lib/zoneinfo/Pacific/Honolulu -hardlink path=usr/share/lib/zoneinfo/US/Indiana-Starke \ - target=../../../../../usr/share/lib/zoneinfo/America/Indiana/Knox -hardlink path=usr/share/lib/zoneinfo/US/Michigan \ - target=../../../../../usr/share/lib/zoneinfo/America/Detroit -hardlink path=usr/share/lib/zoneinfo/US/Mountain \ - target=../../../../../usr/share/lib/zoneinfo/America/Denver -hardlink path=usr/share/lib/zoneinfo/US/Pacific \ - target=../../../../../usr/share/lib/zoneinfo/America/Los_Angeles -hardlink path=usr/share/lib/zoneinfo/US/Pacific-New \ - target=../../../../../usr/share/lib/zoneinfo/America/Los_Angeles -hardlink path=usr/share/lib/zoneinfo/US/Samoa \ - target=../../../../../usr/share/lib/zoneinfo/Pacific/Pago_Pago -hardlink path=usr/share/lib/zoneinfo/UTC \ - target=../../../../usr/share/lib/zoneinfo/Etc/UTC -hardlink path=usr/share/lib/zoneinfo/Universal \ - target=../../../../usr/share/lib/zoneinfo/Etc/UTC -hardlink path=usr/share/lib/zoneinfo/W-SU \ - target=../../../../usr/share/lib/zoneinfo/Europe/Moscow -hardlink path=usr/share/lib/zoneinfo/Zulu \ - target=../../../../usr/share/lib/zoneinfo/Etc/UTC legacy pkg=SUNWcsr \ desc="core software for a specific instruction-set architecture" \ name="Core Solaris, (Root)" @@ -2641,7 +1888,6 @@ link path=usr/sbin/ufsdump target=../lib/fs/ufs/ufsdump link path=usr/sbin/ufsrestore target=../lib/fs/ufs/ufsrestore link path=usr/sbin/umount target=../../sbin/umount link path=usr/sbin/wusbadm target=../../sbin/wusbadm -link path=usr/share/lib/zoneinfo/posixrules target=./US/Eastern link path=usr/spool target=../var/spool link path=usr/src target=./share/src link path=usr/tmp target=../var/tmp @@ -2660,3 +1906,7 @@ depend fmri=system/data/keyboard/keytables type=require # Depend on terminfo data. # depend fmri=system/data/terminfo type=require +# +# Depend on zoneinfo data. +# +depend fmri=system/data/zoneinfo type=require diff --git a/usr/src/pkg/manifests/system-data-zoneinfo.mf b/usr/src/pkg/manifests/system-data-zoneinfo.mf new file mode 100644 index 0000000000..911f964825 --- /dev/null +++ b/usr/src/pkg/manifests/system-data-zoneinfo.mf @@ -0,0 +1,698 @@ +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2011 Nexenta Systems, Inc. All rights reserved. +# + +set name=pkg.fmri \ + value=pkg:/system/data/zoneinfo@2011.13,$(PKGVERS_BUILTON)-$(PKGVERS_BRANCH) +set name=pkg.description value="timezone information" +set name=pkg.summary value="Timezone Information" +set name=info.classification value=org.opensolaris.category.2008:System/Core +set name=variant.arch value=$(ARCH) +dir path=usr group=sys +dir path=usr/lib +dir path=usr/share +dir path=usr/share/lib +dir path=usr/share/lib/zoneinfo +dir path=usr/share/lib/zoneinfo/Africa +dir path=usr/share/lib/zoneinfo/America +dir path=usr/share/lib/zoneinfo/America/Argentina +dir path=usr/share/lib/zoneinfo/America/Indiana +dir path=usr/share/lib/zoneinfo/America/Kentucky +dir path=usr/share/lib/zoneinfo/America/North_Dakota +dir path=usr/share/lib/zoneinfo/Antarctica +dir path=usr/share/lib/zoneinfo/Arctic +dir path=usr/share/lib/zoneinfo/Asia +dir path=usr/share/lib/zoneinfo/Atlantic +dir path=usr/share/lib/zoneinfo/Australia +dir path=usr/share/lib/zoneinfo/Brazil +dir path=usr/share/lib/zoneinfo/Canada +dir path=usr/share/lib/zoneinfo/Chile +dir path=usr/share/lib/zoneinfo/Etc +dir path=usr/share/lib/zoneinfo/Europe +dir path=usr/share/lib/zoneinfo/Indian +dir path=usr/share/lib/zoneinfo/Mexico +dir path=usr/share/lib/zoneinfo/Mideast +dir path=usr/share/lib/zoneinfo/Pacific +dir path=usr/share/lib/zoneinfo/US +dir path=usr/share/lib/zoneinfo/src +dir path=usr/share/lib/zoneinfo/tab +file path=usr/share/lib/zoneinfo/Africa/Abidjan +file path=usr/share/lib/zoneinfo/Africa/Accra +file path=usr/share/lib/zoneinfo/Africa/Addis_Ababa +file path=usr/share/lib/zoneinfo/Africa/Algiers +file path=usr/share/lib/zoneinfo/Africa/Asmara +file path=usr/share/lib/zoneinfo/Africa/Bamako +file path=usr/share/lib/zoneinfo/Africa/Bangui +file path=usr/share/lib/zoneinfo/Africa/Banjul +file path=usr/share/lib/zoneinfo/Africa/Bissau +file path=usr/share/lib/zoneinfo/Africa/Blantyre +file path=usr/share/lib/zoneinfo/Africa/Brazzaville +file path=usr/share/lib/zoneinfo/Africa/Bujumbura +file path=usr/share/lib/zoneinfo/Africa/Cairo +file path=usr/share/lib/zoneinfo/Africa/Casablanca +file path=usr/share/lib/zoneinfo/Africa/Ceuta +file path=usr/share/lib/zoneinfo/Africa/Conakry +file path=usr/share/lib/zoneinfo/Africa/Dakar +file path=usr/share/lib/zoneinfo/Africa/Dar_es_Salaam +file path=usr/share/lib/zoneinfo/Africa/Djibouti +file path=usr/share/lib/zoneinfo/Africa/Douala +file path=usr/share/lib/zoneinfo/Africa/El_Aaiun +file path=usr/share/lib/zoneinfo/Africa/Freetown +file path=usr/share/lib/zoneinfo/Africa/Gaborone +file path=usr/share/lib/zoneinfo/Africa/Harare +file path=usr/share/lib/zoneinfo/Africa/Johannesburg +file path=usr/share/lib/zoneinfo/Africa/Juba +file path=usr/share/lib/zoneinfo/Africa/Kampala +file path=usr/share/lib/zoneinfo/Africa/Khartoum +file path=usr/share/lib/zoneinfo/Africa/Kigali +file path=usr/share/lib/zoneinfo/Africa/Kinshasa +file path=usr/share/lib/zoneinfo/Africa/Lagos +file path=usr/share/lib/zoneinfo/Africa/Libreville +file path=usr/share/lib/zoneinfo/Africa/Lome +file path=usr/share/lib/zoneinfo/Africa/Luanda +file path=usr/share/lib/zoneinfo/Africa/Lubumbashi +file path=usr/share/lib/zoneinfo/Africa/Lusaka +file path=usr/share/lib/zoneinfo/Africa/Malabo +file path=usr/share/lib/zoneinfo/Africa/Maputo +file path=usr/share/lib/zoneinfo/Africa/Maseru +file path=usr/share/lib/zoneinfo/Africa/Mbabane +file path=usr/share/lib/zoneinfo/Africa/Mogadishu +file path=usr/share/lib/zoneinfo/Africa/Monrovia +file path=usr/share/lib/zoneinfo/Africa/Nairobi +file path=usr/share/lib/zoneinfo/Africa/Ndjamena +file path=usr/share/lib/zoneinfo/Africa/Niamey +file path=usr/share/lib/zoneinfo/Africa/Nouakchott +file path=usr/share/lib/zoneinfo/Africa/Ouagadougou +file path=usr/share/lib/zoneinfo/Africa/Porto-Novo +file path=usr/share/lib/zoneinfo/Africa/Sao_Tome +file path=usr/share/lib/zoneinfo/Africa/Tripoli +file path=usr/share/lib/zoneinfo/Africa/Tunis +file path=usr/share/lib/zoneinfo/Africa/Windhoek +file path=usr/share/lib/zoneinfo/America/Adak +file path=usr/share/lib/zoneinfo/America/Anchorage +file path=usr/share/lib/zoneinfo/America/Anguilla +file path=usr/share/lib/zoneinfo/America/Antigua +file path=usr/share/lib/zoneinfo/America/Araguaina +file path=usr/share/lib/zoneinfo/America/Argentina/Buenos_Aires +file path=usr/share/lib/zoneinfo/America/Argentina/Catamarca +file path=usr/share/lib/zoneinfo/America/Argentina/Cordoba +file path=usr/share/lib/zoneinfo/America/Argentina/Jujuy +file path=usr/share/lib/zoneinfo/America/Argentina/La_Rioja +file path=usr/share/lib/zoneinfo/America/Argentina/Mendoza +file path=usr/share/lib/zoneinfo/America/Argentina/Rio_Gallegos +file path=usr/share/lib/zoneinfo/America/Argentina/Salta +file path=usr/share/lib/zoneinfo/America/Argentina/San_Juan +file path=usr/share/lib/zoneinfo/America/Argentina/San_Luis +file path=usr/share/lib/zoneinfo/America/Argentina/Tucuman +file path=usr/share/lib/zoneinfo/America/Argentina/Ushuaia +file path=usr/share/lib/zoneinfo/America/Aruba +file path=usr/share/lib/zoneinfo/America/Asuncion +file path=usr/share/lib/zoneinfo/America/Atikokan +file path=usr/share/lib/zoneinfo/America/Bahia +file path=usr/share/lib/zoneinfo/America/Bahia_Banderas +file path=usr/share/lib/zoneinfo/America/Barbados +file path=usr/share/lib/zoneinfo/America/Belem +file path=usr/share/lib/zoneinfo/America/Belize +file path=usr/share/lib/zoneinfo/America/Blanc-Sablon +file path=usr/share/lib/zoneinfo/America/Boa_Vista +file path=usr/share/lib/zoneinfo/America/Bogota +file path=usr/share/lib/zoneinfo/America/Boise +file path=usr/share/lib/zoneinfo/America/Cambridge_Bay +file path=usr/share/lib/zoneinfo/America/Campo_Grande +file path=usr/share/lib/zoneinfo/America/Cancun +file path=usr/share/lib/zoneinfo/America/Caracas +file path=usr/share/lib/zoneinfo/America/Cayenne +file path=usr/share/lib/zoneinfo/America/Cayman +file path=usr/share/lib/zoneinfo/America/Chicago +file path=usr/share/lib/zoneinfo/America/Chihuahua +file path=usr/share/lib/zoneinfo/America/Costa_Rica +file path=usr/share/lib/zoneinfo/America/Cuiaba +file path=usr/share/lib/zoneinfo/America/Curacao +file path=usr/share/lib/zoneinfo/America/Danmarkshavn +file path=usr/share/lib/zoneinfo/America/Dawson +file path=usr/share/lib/zoneinfo/America/Dawson_Creek +file path=usr/share/lib/zoneinfo/America/Denver +file path=usr/share/lib/zoneinfo/America/Detroit +file path=usr/share/lib/zoneinfo/America/Dominica +file path=usr/share/lib/zoneinfo/America/Edmonton +file path=usr/share/lib/zoneinfo/America/Eirunepe +file path=usr/share/lib/zoneinfo/America/El_Salvador +file path=usr/share/lib/zoneinfo/America/Fortaleza +file path=usr/share/lib/zoneinfo/America/Glace_Bay +file path=usr/share/lib/zoneinfo/America/Godthab +file path=usr/share/lib/zoneinfo/America/Goose_Bay +file path=usr/share/lib/zoneinfo/America/Grand_Turk +file path=usr/share/lib/zoneinfo/America/Grenada +file path=usr/share/lib/zoneinfo/America/Guadeloupe +file path=usr/share/lib/zoneinfo/America/Guatemala +file path=usr/share/lib/zoneinfo/America/Guayaquil +file path=usr/share/lib/zoneinfo/America/Guyana +file path=usr/share/lib/zoneinfo/America/Halifax +file path=usr/share/lib/zoneinfo/America/Havana +file path=usr/share/lib/zoneinfo/America/Hermosillo +file path=usr/share/lib/zoneinfo/America/Indiana/Indianapolis +file path=usr/share/lib/zoneinfo/America/Indiana/Knox +file path=usr/share/lib/zoneinfo/America/Indiana/Marengo +file path=usr/share/lib/zoneinfo/America/Indiana/Petersburg +file path=usr/share/lib/zoneinfo/America/Indiana/Tell_City +file path=usr/share/lib/zoneinfo/America/Indiana/Vevay +file path=usr/share/lib/zoneinfo/America/Indiana/Vincennes +file path=usr/share/lib/zoneinfo/America/Indiana/Winamac +file path=usr/share/lib/zoneinfo/America/Inuvik +file path=usr/share/lib/zoneinfo/America/Iqaluit +file path=usr/share/lib/zoneinfo/America/Jamaica +file path=usr/share/lib/zoneinfo/America/Juneau +file path=usr/share/lib/zoneinfo/America/Kentucky/Louisville +file path=usr/share/lib/zoneinfo/America/Kentucky/Monticello +file path=usr/share/lib/zoneinfo/America/La_Paz +file path=usr/share/lib/zoneinfo/America/Lima +file path=usr/share/lib/zoneinfo/America/Los_Angeles +file path=usr/share/lib/zoneinfo/America/Maceio +file path=usr/share/lib/zoneinfo/America/Managua +file path=usr/share/lib/zoneinfo/America/Manaus +file path=usr/share/lib/zoneinfo/America/Martinique +file path=usr/share/lib/zoneinfo/America/Matamoros +file path=usr/share/lib/zoneinfo/America/Mazatlan +file path=usr/share/lib/zoneinfo/America/Menominee +file path=usr/share/lib/zoneinfo/America/Merida +file path=usr/share/lib/zoneinfo/America/Metlakatla +file path=usr/share/lib/zoneinfo/America/Mexico_City +file path=usr/share/lib/zoneinfo/America/Miquelon +file path=usr/share/lib/zoneinfo/America/Moncton +file path=usr/share/lib/zoneinfo/America/Monterrey +file path=usr/share/lib/zoneinfo/America/Montevideo +file path=usr/share/lib/zoneinfo/America/Montreal +file path=usr/share/lib/zoneinfo/America/Montserrat +file path=usr/share/lib/zoneinfo/America/Nassau +file path=usr/share/lib/zoneinfo/America/New_York +file path=usr/share/lib/zoneinfo/America/Nipigon +file path=usr/share/lib/zoneinfo/America/Nome +file path=usr/share/lib/zoneinfo/America/Noronha +file path=usr/share/lib/zoneinfo/America/North_Dakota/Beulah +file path=usr/share/lib/zoneinfo/America/North_Dakota/Center +file path=usr/share/lib/zoneinfo/America/North_Dakota/New_Salem +file path=usr/share/lib/zoneinfo/America/Ojinaga +file path=usr/share/lib/zoneinfo/America/Panama +file path=usr/share/lib/zoneinfo/America/Pangnirtung +file path=usr/share/lib/zoneinfo/America/Paramaribo +file path=usr/share/lib/zoneinfo/America/Phoenix +file path=usr/share/lib/zoneinfo/America/Port-au-Prince +file path=usr/share/lib/zoneinfo/America/Port_of_Spain +file path=usr/share/lib/zoneinfo/America/Porto_Velho +file path=usr/share/lib/zoneinfo/America/Puerto_Rico +file path=usr/share/lib/zoneinfo/America/Rainy_River +file path=usr/share/lib/zoneinfo/America/Rankin_Inlet +file path=usr/share/lib/zoneinfo/America/Recife +file path=usr/share/lib/zoneinfo/America/Regina +file path=usr/share/lib/zoneinfo/America/Resolute +file path=usr/share/lib/zoneinfo/America/Rio_Branco +file path=usr/share/lib/zoneinfo/America/Santa_Isabel +file path=usr/share/lib/zoneinfo/America/Santarem +file path=usr/share/lib/zoneinfo/America/Santiago +file path=usr/share/lib/zoneinfo/America/Santo_Domingo +file path=usr/share/lib/zoneinfo/America/Sao_Paulo +file path=usr/share/lib/zoneinfo/America/Scoresbysund +file path=usr/share/lib/zoneinfo/America/Sitka +file path=usr/share/lib/zoneinfo/America/St_Johns +file path=usr/share/lib/zoneinfo/America/St_Kitts +file path=usr/share/lib/zoneinfo/America/St_Lucia +file path=usr/share/lib/zoneinfo/America/St_Thomas +file path=usr/share/lib/zoneinfo/America/St_Vincent +file path=usr/share/lib/zoneinfo/America/Swift_Current +file path=usr/share/lib/zoneinfo/America/Tegucigalpa +file path=usr/share/lib/zoneinfo/America/Thule +file path=usr/share/lib/zoneinfo/America/Thunder_Bay +file path=usr/share/lib/zoneinfo/America/Tijuana +file path=usr/share/lib/zoneinfo/America/Toronto +file path=usr/share/lib/zoneinfo/America/Tortola +file path=usr/share/lib/zoneinfo/America/Vancouver +file path=usr/share/lib/zoneinfo/America/Whitehorse +file path=usr/share/lib/zoneinfo/America/Winnipeg +file path=usr/share/lib/zoneinfo/America/Yakutat +file path=usr/share/lib/zoneinfo/America/Yellowknife +file path=usr/share/lib/zoneinfo/Antarctica/Casey +file path=usr/share/lib/zoneinfo/Antarctica/Davis +file path=usr/share/lib/zoneinfo/Antarctica/DumontDUrville +file path=usr/share/lib/zoneinfo/Antarctica/Macquarie +file path=usr/share/lib/zoneinfo/Antarctica/Mawson +file path=usr/share/lib/zoneinfo/Antarctica/McMurdo +file path=usr/share/lib/zoneinfo/Antarctica/Palmer +file path=usr/share/lib/zoneinfo/Antarctica/Rothera +file path=usr/share/lib/zoneinfo/Antarctica/Syowa +file path=usr/share/lib/zoneinfo/Antarctica/Vostok +file path=usr/share/lib/zoneinfo/Asia/Aden +file path=usr/share/lib/zoneinfo/Asia/Almaty +file path=usr/share/lib/zoneinfo/Asia/Amman +file path=usr/share/lib/zoneinfo/Asia/Anadyr +file path=usr/share/lib/zoneinfo/Asia/Aqtau +file path=usr/share/lib/zoneinfo/Asia/Aqtobe +file path=usr/share/lib/zoneinfo/Asia/Ashgabat +file path=usr/share/lib/zoneinfo/Asia/Baghdad +file path=usr/share/lib/zoneinfo/Asia/Bahrain +file path=usr/share/lib/zoneinfo/Asia/Baku +file path=usr/share/lib/zoneinfo/Asia/Bangkok +file path=usr/share/lib/zoneinfo/Asia/Beirut +file path=usr/share/lib/zoneinfo/Asia/Bishkek +file path=usr/share/lib/zoneinfo/Asia/Brunei +file path=usr/share/lib/zoneinfo/Asia/Choibalsan +file path=usr/share/lib/zoneinfo/Asia/Chongqing +file path=usr/share/lib/zoneinfo/Asia/Colombo +file path=usr/share/lib/zoneinfo/Asia/Damascus +file path=usr/share/lib/zoneinfo/Asia/Dhaka +file path=usr/share/lib/zoneinfo/Asia/Dili +file path=usr/share/lib/zoneinfo/Asia/Dubai +file path=usr/share/lib/zoneinfo/Asia/Dushanbe +file path=usr/share/lib/zoneinfo/Asia/Gaza +file path=usr/share/lib/zoneinfo/Asia/Harbin +file path=usr/share/lib/zoneinfo/Asia/Hebron +file path=usr/share/lib/zoneinfo/Asia/Ho_Chi_Minh +file path=usr/share/lib/zoneinfo/Asia/Hong_Kong +file path=usr/share/lib/zoneinfo/Asia/Hovd +file path=usr/share/lib/zoneinfo/Asia/Irkutsk +file path=usr/share/lib/zoneinfo/Asia/Jakarta +file path=usr/share/lib/zoneinfo/Asia/Jayapura +file path=usr/share/lib/zoneinfo/Asia/Jerusalem +file path=usr/share/lib/zoneinfo/Asia/Kabul +file path=usr/share/lib/zoneinfo/Asia/Kamchatka +file path=usr/share/lib/zoneinfo/Asia/Karachi +file path=usr/share/lib/zoneinfo/Asia/Kashgar +file path=usr/share/lib/zoneinfo/Asia/Kathmandu +file path=usr/share/lib/zoneinfo/Asia/Kolkata +file path=usr/share/lib/zoneinfo/Asia/Krasnoyarsk +file path=usr/share/lib/zoneinfo/Asia/Kuala_Lumpur +file path=usr/share/lib/zoneinfo/Asia/Kuching +file path=usr/share/lib/zoneinfo/Asia/Kuwait +file path=usr/share/lib/zoneinfo/Asia/Macau +file path=usr/share/lib/zoneinfo/Asia/Magadan +file path=usr/share/lib/zoneinfo/Asia/Makassar +file path=usr/share/lib/zoneinfo/Asia/Manila +file path=usr/share/lib/zoneinfo/Asia/Muscat +file path=usr/share/lib/zoneinfo/Asia/Nicosia +file path=usr/share/lib/zoneinfo/Asia/Novokuznetsk +file path=usr/share/lib/zoneinfo/Asia/Novosibirsk +file path=usr/share/lib/zoneinfo/Asia/Omsk +file path=usr/share/lib/zoneinfo/Asia/Oral +file path=usr/share/lib/zoneinfo/Asia/Phnom_Penh +file path=usr/share/lib/zoneinfo/Asia/Pontianak +file path=usr/share/lib/zoneinfo/Asia/Pyongyang +file path=usr/share/lib/zoneinfo/Asia/Qatar +file path=usr/share/lib/zoneinfo/Asia/Qyzylorda +file path=usr/share/lib/zoneinfo/Asia/Rangoon +file path=usr/share/lib/zoneinfo/Asia/Riyadh +file path=usr/share/lib/zoneinfo/Asia/Riyadh87 +file path=usr/share/lib/zoneinfo/Asia/Riyadh88 +file path=usr/share/lib/zoneinfo/Asia/Riyadh89 +file path=usr/share/lib/zoneinfo/Asia/Sakhalin +file path=usr/share/lib/zoneinfo/Asia/Samarkand +file path=usr/share/lib/zoneinfo/Asia/Seoul +file path=usr/share/lib/zoneinfo/Asia/Shanghai +file path=usr/share/lib/zoneinfo/Asia/Singapore +file path=usr/share/lib/zoneinfo/Asia/Taipei +file path=usr/share/lib/zoneinfo/Asia/Tashkent +file path=usr/share/lib/zoneinfo/Asia/Tbilisi +file path=usr/share/lib/zoneinfo/Asia/Tehran +file path=usr/share/lib/zoneinfo/Asia/Thimphu +file path=usr/share/lib/zoneinfo/Asia/Tokyo +file path=usr/share/lib/zoneinfo/Asia/Ulaanbaatar +file path=usr/share/lib/zoneinfo/Asia/Urumqi +file path=usr/share/lib/zoneinfo/Asia/Vientiane +file path=usr/share/lib/zoneinfo/Asia/Vladivostok +file path=usr/share/lib/zoneinfo/Asia/Yakutsk +file path=usr/share/lib/zoneinfo/Asia/Yekaterinburg +file path=usr/share/lib/zoneinfo/Asia/Yerevan +file path=usr/share/lib/zoneinfo/Atlantic/Azores +file path=usr/share/lib/zoneinfo/Atlantic/Bermuda +file path=usr/share/lib/zoneinfo/Atlantic/Canary +file path=usr/share/lib/zoneinfo/Atlantic/Cape_Verde +file path=usr/share/lib/zoneinfo/Atlantic/Faroe +file path=usr/share/lib/zoneinfo/Atlantic/Madeira +file path=usr/share/lib/zoneinfo/Atlantic/Reykjavik +file path=usr/share/lib/zoneinfo/Atlantic/South_Georgia +file path=usr/share/lib/zoneinfo/Atlantic/St_Helena +file path=usr/share/lib/zoneinfo/Atlantic/Stanley +file path=usr/share/lib/zoneinfo/Australia/Adelaide +file path=usr/share/lib/zoneinfo/Australia/Brisbane +file path=usr/share/lib/zoneinfo/Australia/Broken_Hill +file path=usr/share/lib/zoneinfo/Australia/Currie +file path=usr/share/lib/zoneinfo/Australia/Darwin +file path=usr/share/lib/zoneinfo/Australia/Eucla +file path=usr/share/lib/zoneinfo/Australia/Hobart +file path=usr/share/lib/zoneinfo/Australia/Lindeman +file path=usr/share/lib/zoneinfo/Australia/Lord_Howe +file path=usr/share/lib/zoneinfo/Australia/Melbourne +file path=usr/share/lib/zoneinfo/Australia/Perth +file path=usr/share/lib/zoneinfo/Australia/Sydney +file path=usr/share/lib/zoneinfo/CET +file path=usr/share/lib/zoneinfo/CST6CDT +file path=usr/share/lib/zoneinfo/EET +file path=usr/share/lib/zoneinfo/EST +file path=usr/share/lib/zoneinfo/EST5EDT +file path=usr/share/lib/zoneinfo/Etc/GMT +file path=usr/share/lib/zoneinfo/Etc/GMT+1 +file path=usr/share/lib/zoneinfo/Etc/GMT+10 +file path=usr/share/lib/zoneinfo/Etc/GMT+11 +file path=usr/share/lib/zoneinfo/Etc/GMT+12 +file path=usr/share/lib/zoneinfo/Etc/GMT+2 +file path=usr/share/lib/zoneinfo/Etc/GMT+3 +file path=usr/share/lib/zoneinfo/Etc/GMT+4 +file path=usr/share/lib/zoneinfo/Etc/GMT+5 +file path=usr/share/lib/zoneinfo/Etc/GMT+6 +file path=usr/share/lib/zoneinfo/Etc/GMT+7 +file path=usr/share/lib/zoneinfo/Etc/GMT+8 +file path=usr/share/lib/zoneinfo/Etc/GMT+9 +file path=usr/share/lib/zoneinfo/Etc/GMT-1 +file path=usr/share/lib/zoneinfo/Etc/GMT-10 +file path=usr/share/lib/zoneinfo/Etc/GMT-11 +file path=usr/share/lib/zoneinfo/Etc/GMT-12 +file path=usr/share/lib/zoneinfo/Etc/GMT-13 +file path=usr/share/lib/zoneinfo/Etc/GMT-14 +file path=usr/share/lib/zoneinfo/Etc/GMT-2 +file path=usr/share/lib/zoneinfo/Etc/GMT-3 +file path=usr/share/lib/zoneinfo/Etc/GMT-4 +file path=usr/share/lib/zoneinfo/Etc/GMT-5 +file path=usr/share/lib/zoneinfo/Etc/GMT-6 +file path=usr/share/lib/zoneinfo/Etc/GMT-7 +file path=usr/share/lib/zoneinfo/Etc/GMT-8 +file path=usr/share/lib/zoneinfo/Etc/GMT-9 +file path=usr/share/lib/zoneinfo/Etc/UCT +file path=usr/share/lib/zoneinfo/Etc/UTC +file path=usr/share/lib/zoneinfo/Europe/Amsterdam +file path=usr/share/lib/zoneinfo/Europe/Andorra +file path=usr/share/lib/zoneinfo/Europe/Athens +file path=usr/share/lib/zoneinfo/Europe/Belgrade +file path=usr/share/lib/zoneinfo/Europe/Berlin +file path=usr/share/lib/zoneinfo/Europe/Brussels +file path=usr/share/lib/zoneinfo/Europe/Bucharest +file path=usr/share/lib/zoneinfo/Europe/Budapest +file path=usr/share/lib/zoneinfo/Europe/Chisinau +file path=usr/share/lib/zoneinfo/Europe/Copenhagen +file path=usr/share/lib/zoneinfo/Europe/Dublin +file path=usr/share/lib/zoneinfo/Europe/Gibraltar +file path=usr/share/lib/zoneinfo/Europe/Helsinki +file path=usr/share/lib/zoneinfo/Europe/Istanbul +file path=usr/share/lib/zoneinfo/Europe/Kaliningrad +file path=usr/share/lib/zoneinfo/Europe/Kiev +file path=usr/share/lib/zoneinfo/Europe/Lisbon +file path=usr/share/lib/zoneinfo/Europe/London +file path=usr/share/lib/zoneinfo/Europe/Luxembourg +file path=usr/share/lib/zoneinfo/Europe/Madrid +file path=usr/share/lib/zoneinfo/Europe/Malta +file path=usr/share/lib/zoneinfo/Europe/Minsk +file path=usr/share/lib/zoneinfo/Europe/Monaco +file path=usr/share/lib/zoneinfo/Europe/Moscow +file path=usr/share/lib/zoneinfo/Europe/Oslo +file path=usr/share/lib/zoneinfo/Europe/Paris +file path=usr/share/lib/zoneinfo/Europe/Prague +file path=usr/share/lib/zoneinfo/Europe/Riga +file path=usr/share/lib/zoneinfo/Europe/Rome +file path=usr/share/lib/zoneinfo/Europe/Samara +file path=usr/share/lib/zoneinfo/Europe/Simferopol +file path=usr/share/lib/zoneinfo/Europe/Sofia +file path=usr/share/lib/zoneinfo/Europe/Stockholm +file path=usr/share/lib/zoneinfo/Europe/Tallinn +file path=usr/share/lib/zoneinfo/Europe/Tirane +file path=usr/share/lib/zoneinfo/Europe/Tiraspol +file path=usr/share/lib/zoneinfo/Europe/Uzhgorod +file path=usr/share/lib/zoneinfo/Europe/Vaduz +file path=usr/share/lib/zoneinfo/Europe/Vienna +file path=usr/share/lib/zoneinfo/Europe/Vilnius +file path=usr/share/lib/zoneinfo/Europe/Volgograd +file path=usr/share/lib/zoneinfo/Europe/Warsaw +file path=usr/share/lib/zoneinfo/Europe/Zaporozhye +file path=usr/share/lib/zoneinfo/Europe/Zurich +file path=usr/share/lib/zoneinfo/Factory +file path=usr/share/lib/zoneinfo/HST +file path=usr/share/lib/zoneinfo/Indian/Antananarivo +file path=usr/share/lib/zoneinfo/Indian/Chagos +file path=usr/share/lib/zoneinfo/Indian/Christmas +file path=usr/share/lib/zoneinfo/Indian/Cocos +file path=usr/share/lib/zoneinfo/Indian/Comoro +file path=usr/share/lib/zoneinfo/Indian/Kerguelen +file path=usr/share/lib/zoneinfo/Indian/Mahe +file path=usr/share/lib/zoneinfo/Indian/Maldives +file path=usr/share/lib/zoneinfo/Indian/Mauritius +file path=usr/share/lib/zoneinfo/Indian/Mayotte +file path=usr/share/lib/zoneinfo/Indian/Reunion +file path=usr/share/lib/zoneinfo/MET +file path=usr/share/lib/zoneinfo/MST +file path=usr/share/lib/zoneinfo/MST7MDT +file path=usr/share/lib/zoneinfo/PST8PDT +file path=usr/share/lib/zoneinfo/Pacific/Apia +file path=usr/share/lib/zoneinfo/Pacific/Auckland +file path=usr/share/lib/zoneinfo/Pacific/Chatham +file path=usr/share/lib/zoneinfo/Pacific/Chuuk +file path=usr/share/lib/zoneinfo/Pacific/Easter +file path=usr/share/lib/zoneinfo/Pacific/Efate +file path=usr/share/lib/zoneinfo/Pacific/Enderbury +file path=usr/share/lib/zoneinfo/Pacific/Fakaofo +file path=usr/share/lib/zoneinfo/Pacific/Fiji +file path=usr/share/lib/zoneinfo/Pacific/Funafuti +file path=usr/share/lib/zoneinfo/Pacific/Galapagos +file path=usr/share/lib/zoneinfo/Pacific/Gambier +file path=usr/share/lib/zoneinfo/Pacific/Guadalcanal +file path=usr/share/lib/zoneinfo/Pacific/Guam +file path=usr/share/lib/zoneinfo/Pacific/Honolulu +file path=usr/share/lib/zoneinfo/Pacific/Johnston +file path=usr/share/lib/zoneinfo/Pacific/Kiritimati +file path=usr/share/lib/zoneinfo/Pacific/Kosrae +file path=usr/share/lib/zoneinfo/Pacific/Kwajalein +file path=usr/share/lib/zoneinfo/Pacific/Majuro +file path=usr/share/lib/zoneinfo/Pacific/Marquesas +file path=usr/share/lib/zoneinfo/Pacific/Midway +file path=usr/share/lib/zoneinfo/Pacific/Nauru +file path=usr/share/lib/zoneinfo/Pacific/Niue +file path=usr/share/lib/zoneinfo/Pacific/Norfolk +file path=usr/share/lib/zoneinfo/Pacific/Noumea +file path=usr/share/lib/zoneinfo/Pacific/Pago_Pago +file path=usr/share/lib/zoneinfo/Pacific/Palau +file path=usr/share/lib/zoneinfo/Pacific/Pitcairn +file path=usr/share/lib/zoneinfo/Pacific/Pohnpei +file path=usr/share/lib/zoneinfo/Pacific/Port_Moresby +file path=usr/share/lib/zoneinfo/Pacific/Rarotonga +file path=usr/share/lib/zoneinfo/Pacific/Saipan +file path=usr/share/lib/zoneinfo/Pacific/Tahiti +file path=usr/share/lib/zoneinfo/Pacific/Tarawa +file path=usr/share/lib/zoneinfo/Pacific/Tongatapu +file path=usr/share/lib/zoneinfo/Pacific/Wake +file path=usr/share/lib/zoneinfo/Pacific/Wallis +file path=usr/share/lib/zoneinfo/WET +file path=usr/share/lib/zoneinfo/src/README +file path=usr/share/lib/zoneinfo/src/africa +file path=usr/share/lib/zoneinfo/src/antarctica +file path=usr/share/lib/zoneinfo/src/asia +file path=usr/share/lib/zoneinfo/src/australasia +file path=usr/share/lib/zoneinfo/src/backward +file path=usr/share/lib/zoneinfo/src/etcetera +file path=usr/share/lib/zoneinfo/src/europe +file path=usr/share/lib/zoneinfo/src/factory +file path=usr/share/lib/zoneinfo/src/northamerica +file path=usr/share/lib/zoneinfo/src/pacificnew +file path=usr/share/lib/zoneinfo/src/solar87 +file path=usr/share/lib/zoneinfo/src/solar88 +file path=usr/share/lib/zoneinfo/src/solar89 +file path=usr/share/lib/zoneinfo/src/southamerica +file path=usr/share/lib/zoneinfo/src/systemv +file path=usr/share/lib/zoneinfo/tab/continent.tab +file path=usr/share/lib/zoneinfo/tab/country.tab +file path=usr/share/lib/zoneinfo/tab/zone_sun.tab +hardlink path=usr/share/lib/zoneinfo/Africa/Asmera target=../Africa/Asmara +hardlink path=usr/share/lib/zoneinfo/Africa/Timbuktu target=../Africa/Bamako +hardlink path=usr/share/lib/zoneinfo/America/Argentina/ComodRivadavia \ + target=../../America/Argentina/Catamarca +hardlink path=usr/share/lib/zoneinfo/America/Atka target=../America/Adak +hardlink path=usr/share/lib/zoneinfo/America/Buenos_Aires \ + target=../America/Argentina/Buenos_Aires +hardlink path=usr/share/lib/zoneinfo/America/Catamarca \ + target=../America/Argentina/Catamarca +hardlink path=usr/share/lib/zoneinfo/America/Coral_Harbour \ + target=../America/Atikokan +hardlink path=usr/share/lib/zoneinfo/America/Cordoba \ + target=../America/Argentina/Cordoba +hardlink path=usr/share/lib/zoneinfo/America/Ensenada \ + target=../America/Tijuana +hardlink path=usr/share/lib/zoneinfo/America/Fort_Wayne \ + target=../America/Indiana/Indianapolis +hardlink path=usr/share/lib/zoneinfo/America/Indianapolis \ + target=../America/Indiana/Indianapolis +hardlink path=usr/share/lib/zoneinfo/America/Jujuy \ + target=../America/Argentina/Jujuy +hardlink path=usr/share/lib/zoneinfo/America/Knox_IN \ + target=../America/Indiana/Knox +hardlink path=usr/share/lib/zoneinfo/America/Kralendijk \ + target=../America/Curacao +hardlink path=usr/share/lib/zoneinfo/America/Louisville \ + target=../America/Kentucky/Louisville +hardlink path=usr/share/lib/zoneinfo/America/Lower_Princes \ + target=../America/Curacao +hardlink path=usr/share/lib/zoneinfo/America/Marigot \ + target=../America/Guadeloupe +hardlink path=usr/share/lib/zoneinfo/America/Mendoza \ + target=../America/Argentina/Mendoza +hardlink path=usr/share/lib/zoneinfo/America/Porto_Acre \ + target=../America/Rio_Branco +hardlink path=usr/share/lib/zoneinfo/America/Rosario \ + target=../America/Argentina/Cordoba +hardlink path=usr/share/lib/zoneinfo/America/Shiprock target=../America/Denver +hardlink path=usr/share/lib/zoneinfo/America/St_Barthelemy \ + target=../America/Guadeloupe +hardlink path=usr/share/lib/zoneinfo/America/Virgin \ + target=../America/St_Thomas +hardlink path=usr/share/lib/zoneinfo/Antarctica/South_Pole \ + target=../Antarctica/McMurdo +hardlink path=usr/share/lib/zoneinfo/Arctic/Longyearbyen target=../Europe/Oslo +hardlink path=usr/share/lib/zoneinfo/Asia/Ashkhabad target=../Asia/Ashgabat +hardlink path=usr/share/lib/zoneinfo/Asia/Calcutta target=../Asia/Kolkata +hardlink path=usr/share/lib/zoneinfo/Asia/Chungking target=../Asia/Chongqing +hardlink path=usr/share/lib/zoneinfo/Asia/Dacca target=../Asia/Dhaka +hardlink path=usr/share/lib/zoneinfo/Asia/Istanbul target=../Europe/Istanbul +hardlink path=usr/share/lib/zoneinfo/Asia/Katmandu target=../Asia/Kathmandu +hardlink path=usr/share/lib/zoneinfo/Asia/Macao target=../Asia/Macau +hardlink path=usr/share/lib/zoneinfo/Asia/Saigon target=../Asia/Ho_Chi_Minh +hardlink path=usr/share/lib/zoneinfo/Asia/Tel_Aviv target=../Asia/Jerusalem +hardlink path=usr/share/lib/zoneinfo/Asia/Thimbu target=../Asia/Thimphu +hardlink path=usr/share/lib/zoneinfo/Asia/Ujung_Pandang \ + target=../Asia/Makassar +hardlink path=usr/share/lib/zoneinfo/Asia/Ulan_Bator \ + target=../Asia/Ulaanbaatar +hardlink path=usr/share/lib/zoneinfo/Atlantic/Faeroe target=../Atlantic/Faroe +hardlink path=usr/share/lib/zoneinfo/Atlantic/Jan_Mayen target=../Europe/Oslo +hardlink path=usr/share/lib/zoneinfo/Australia/ACT target=../Australia/Sydney +hardlink path=usr/share/lib/zoneinfo/Australia/Canberra \ + target=../Australia/Sydney +hardlink path=usr/share/lib/zoneinfo/Australia/LHI \ + target=../Australia/Lord_Howe +hardlink path=usr/share/lib/zoneinfo/Australia/NSW target=../Australia/Sydney +hardlink path=usr/share/lib/zoneinfo/Australia/North \ + target=../Australia/Darwin +hardlink path=usr/share/lib/zoneinfo/Australia/Queensland \ + target=../Australia/Brisbane +hardlink path=usr/share/lib/zoneinfo/Australia/South \ + target=../Australia/Adelaide +hardlink path=usr/share/lib/zoneinfo/Australia/Tasmania \ + target=../Australia/Hobart +hardlink path=usr/share/lib/zoneinfo/Australia/Victoria \ + target=../Australia/Melbourne +hardlink path=usr/share/lib/zoneinfo/Australia/West target=../Australia/Perth +hardlink path=usr/share/lib/zoneinfo/Australia/Yancowinna \ + target=../Australia/Broken_Hill +hardlink path=usr/share/lib/zoneinfo/Brazil/Acre target=../America/Rio_Branco +hardlink path=usr/share/lib/zoneinfo/Brazil/DeNoronha \ + target=../America/Noronha +hardlink path=usr/share/lib/zoneinfo/Brazil/East target=../America/Sao_Paulo +hardlink path=usr/share/lib/zoneinfo/Brazil/West target=../America/Manaus +hardlink path=usr/share/lib/zoneinfo/Canada/Atlantic target=../America/Halifax +hardlink path=usr/share/lib/zoneinfo/Canada/Central target=../America/Winnipeg +hardlink path=usr/share/lib/zoneinfo/Canada/East-Saskatchewan \ + target=../America/Regina +hardlink path=usr/share/lib/zoneinfo/Canada/Eastern target=../America/Toronto +hardlink path=usr/share/lib/zoneinfo/Canada/Mountain \ + target=../America/Edmonton +hardlink path=usr/share/lib/zoneinfo/Canada/Newfoundland \ + target=../America/St_Johns +hardlink path=usr/share/lib/zoneinfo/Canada/Pacific \ + target=../America/Vancouver +hardlink path=usr/share/lib/zoneinfo/Canada/Saskatchewan \ + target=../America/Regina +hardlink path=usr/share/lib/zoneinfo/Canada/Yukon target=../America/Whitehorse +hardlink path=usr/share/lib/zoneinfo/Chile/Continental \ + target=../America/Santiago +hardlink path=usr/share/lib/zoneinfo/Chile/EasterIsland \ + target=../Pacific/Easter +hardlink path=usr/share/lib/zoneinfo/Cuba target=America/Havana +hardlink path=usr/share/lib/zoneinfo/Egypt target=Africa/Cairo +hardlink path=usr/share/lib/zoneinfo/Eire target=Europe/Dublin +hardlink path=usr/share/lib/zoneinfo/Etc/GMT+0 target=../Etc/GMT +hardlink path=usr/share/lib/zoneinfo/Etc/GMT-0 target=../Etc/GMT +hardlink path=usr/share/lib/zoneinfo/Etc/GMT0 target=../Etc/GMT +hardlink path=usr/share/lib/zoneinfo/Etc/Greenwich target=../Etc/GMT +hardlink path=usr/share/lib/zoneinfo/Etc/Universal target=../Etc/UTC +hardlink path=usr/share/lib/zoneinfo/Etc/Zulu target=../Etc/UTC +hardlink path=usr/share/lib/zoneinfo/Europe/Belfast target=../Europe/London +hardlink path=usr/share/lib/zoneinfo/Europe/Bratislava target=../Europe/Prague +hardlink path=usr/share/lib/zoneinfo/Europe/Guernsey target=../Europe/London +hardlink path=usr/share/lib/zoneinfo/Europe/Isle_of_Man \ + target=../Europe/London +hardlink path=usr/share/lib/zoneinfo/Europe/Jersey target=../Europe/London +hardlink path=usr/share/lib/zoneinfo/Europe/Ljubljana \ + target=../Europe/Belgrade +hardlink path=usr/share/lib/zoneinfo/Europe/Mariehamn \ + target=../Europe/Helsinki +hardlink path=usr/share/lib/zoneinfo/Europe/Nicosia target=../Asia/Nicosia +hardlink path=usr/share/lib/zoneinfo/Europe/Podgorica \ + target=../Europe/Belgrade +hardlink path=usr/share/lib/zoneinfo/Europe/San_Marino target=../Europe/Rome +hardlink path=usr/share/lib/zoneinfo/Europe/Sarajevo target=../Europe/Belgrade +hardlink path=usr/share/lib/zoneinfo/Europe/Skopje target=../Europe/Belgrade +hardlink path=usr/share/lib/zoneinfo/Europe/Vatican target=../Europe/Rome +hardlink path=usr/share/lib/zoneinfo/Europe/Zagreb target=../Europe/Belgrade +hardlink path=usr/share/lib/zoneinfo/GB target=Europe/London +hardlink path=usr/share/lib/zoneinfo/GB-Eire target=Europe/London +hardlink path=usr/share/lib/zoneinfo/GMT target=Etc/GMT +hardlink path=usr/share/lib/zoneinfo/GMT+0 target=Etc/GMT +hardlink path=usr/share/lib/zoneinfo/GMT-0 target=Etc/GMT +hardlink path=usr/share/lib/zoneinfo/GMT0 target=Etc/GMT +hardlink path=usr/share/lib/zoneinfo/Greenwich target=Etc/GMT +hardlink path=usr/share/lib/zoneinfo/Hongkong target=Asia/Hong_Kong +hardlink path=usr/share/lib/zoneinfo/Iceland target=Atlantic/Reykjavik +hardlink path=usr/share/lib/zoneinfo/Iran target=Asia/Tehran +hardlink path=usr/share/lib/zoneinfo/Israel target=Asia/Jerusalem +hardlink path=usr/share/lib/zoneinfo/Jamaica target=America/Jamaica +hardlink path=usr/share/lib/zoneinfo/Japan target=Asia/Tokyo +hardlink path=usr/share/lib/zoneinfo/Kwajalein target=Pacific/Kwajalein +hardlink path=usr/share/lib/zoneinfo/Libya target=Africa/Tripoli +hardlink path=usr/share/lib/zoneinfo/Mexico/BajaNorte \ + target=../America/Tijuana +hardlink path=usr/share/lib/zoneinfo/Mexico/BajaSur target=../America/Mazatlan +hardlink path=usr/share/lib/zoneinfo/Mexico/General \ + target=../America/Mexico_City +hardlink path=usr/share/lib/zoneinfo/Mideast/Riyadh87 target=../Asia/Riyadh87 +hardlink path=usr/share/lib/zoneinfo/Mideast/Riyadh88 target=../Asia/Riyadh88 +hardlink path=usr/share/lib/zoneinfo/Mideast/Riyadh89 target=../Asia/Riyadh89 +hardlink path=usr/share/lib/zoneinfo/NZ target=Pacific/Auckland +hardlink path=usr/share/lib/zoneinfo/NZ-CHAT target=Pacific/Chatham +hardlink path=usr/share/lib/zoneinfo/Navajo target=America/Denver +hardlink path=usr/share/lib/zoneinfo/PRC target=Asia/Shanghai +hardlink path=usr/share/lib/zoneinfo/Pacific/Ponape target=../Pacific/Pohnpei +hardlink path=usr/share/lib/zoneinfo/Pacific/Samoa target=../Pacific/Pago_Pago +hardlink path=usr/share/lib/zoneinfo/Pacific/Truk target=../Pacific/Chuuk +hardlink path=usr/share/lib/zoneinfo/Pacific/Yap target=../Pacific/Chuuk +hardlink path=usr/share/lib/zoneinfo/Poland target=Europe/Warsaw +hardlink path=usr/share/lib/zoneinfo/Portugal target=Europe/Lisbon +hardlink path=usr/share/lib/zoneinfo/ROC target=Asia/Taipei +hardlink path=usr/share/lib/zoneinfo/ROK target=Asia/Seoul +hardlink path=usr/share/lib/zoneinfo/Singapore target=Asia/Singapore +hardlink path=usr/share/lib/zoneinfo/Turkey target=Europe/Istanbul +hardlink path=usr/share/lib/zoneinfo/UCT target=Etc/UCT +hardlink path=usr/share/lib/zoneinfo/US/Alaska target=../America/Anchorage +hardlink path=usr/share/lib/zoneinfo/US/Aleutian target=../America/Adak +hardlink path=usr/share/lib/zoneinfo/US/Arizona target=../America/Phoenix +hardlink path=usr/share/lib/zoneinfo/US/Central target=../America/Chicago +hardlink path=usr/share/lib/zoneinfo/US/East-Indiana \ + target=../America/Indiana/Indianapolis +hardlink path=usr/share/lib/zoneinfo/US/Eastern target=../America/New_York +hardlink path=usr/share/lib/zoneinfo/US/Hawaii target=../Pacific/Honolulu +hardlink path=usr/share/lib/zoneinfo/US/Indiana-Starke \ + target=../America/Indiana/Knox +hardlink path=usr/share/lib/zoneinfo/US/Michigan target=../America/Detroit +hardlink path=usr/share/lib/zoneinfo/US/Mountain target=../America/Denver +hardlink path=usr/share/lib/zoneinfo/US/Pacific target=../America/Los_Angeles +hardlink path=usr/share/lib/zoneinfo/US/Pacific-New \ + target=../America/Los_Angeles +hardlink path=usr/share/lib/zoneinfo/US/Samoa target=../Pacific/Pago_Pago +hardlink path=usr/share/lib/zoneinfo/UTC target=Etc/UTC +hardlink path=usr/share/lib/zoneinfo/Universal target=Etc/UTC +hardlink path=usr/share/lib/zoneinfo/W-SU target=Europe/Moscow +hardlink path=usr/share/lib/zoneinfo/Zulu target=Etc/UTC +license lic_CDDL license=lic_CDDL +link path=usr/share/lib/zoneinfo/posixrules target=./US/Eastern diff --git a/usr/src/pkg/manifests/system-library.man3c.inc b/usr/src/pkg/manifests/system-library.man3c.inc index e9a45d273b..57c67eef9f 100644 --- a/usr/src/pkg/manifests/system-library.man3c.inc +++ b/usr/src/pkg/manifests/system-library.man3c.inc @@ -618,6 +618,7 @@ file path=usr/share/man/man3c/posix_spawn_file_actions_adddup2.3c file path=usr/share/man/man3c/posix_spawn_file_actions_addopen.3c file path=usr/share/man/man3c/posix_spawn_file_actions_destroy.3c file path=usr/share/man/man3c/posix_spawn_file_actions_init.3c +file path=usr/share/man/man3c/posix_spawn_pipe_np.3c file path=usr/share/man/man3c/posix_spawnattr_destroy.3c file path=usr/share/man/man3c/posix_spawnattr_getflags.3c file path=usr/share/man/man3c/posix_spawnattr_getpgroup.3c diff --git a/usr/src/uts/common/fs/smbsrv/smb_init.c b/usr/src/uts/common/fs/smbsrv/smb_init.c index 27c00bde70..15ceb53dce 100644 --- a/usr/src/uts/common/fs/smbsrv/smb_init.c +++ b/usr/src/uts/common/fs/smbsrv/smb_init.c @@ -19,6 +19,7 @@ * CDDL HEADER END */ /* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. */ @@ -64,7 +65,7 @@ int smb_oplock_min_timeout = OPLOCK_MIN_TIMEOUT; int smb_flush_required = 1; int smb_dirsymlink_enable = 1; int smb_sign_debug = 0; -int smb_raw_mode = 1; +int smb_raw_mode = 0; int smb_shortnames = 1; uint_t smb_audit_flags = #ifdef DEBUG diff --git a/usr/src/uts/common/fs/smbsrv/smb_opipe.c b/usr/src/uts/common/fs/smbsrv/smb_opipe.c index e7673de96a..bb178f3952 100644 --- a/usr/src/uts/common/fs/smbsrv/smb_opipe.c +++ b/usr/src/uts/common/fs/smbsrv/smb_opipe.c @@ -19,6 +19,7 @@ * CDDL HEADER END */ /* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. */ @@ -120,6 +121,13 @@ smb_opipe_open(smb_request_t *sr) if ((pipe_name = smb_opipe_lookup(op->fqi.fq_path.pn_path)) == NULL) return (NT_STATUS_OBJECT_NAME_NOT_FOUND); + /* + * If printing is disabled, pretend spoolss does not exist. + */ + if (sr->sr_server->sv_cfg.skc_print_enable == 0 && + strcmp(pipe_name, "SPOOLSS") == 0) + return (NT_STATUS_OBJECT_NAME_NOT_FOUND); + op->create_options = 0; of = smb_ofile_open(sr->tid_tree, NULL, sr->smb_pid, op, diff --git a/usr/src/uts/common/fs/smbsrv/smb_print.c b/usr/src/uts/common/fs/smbsrv/smb_print.c index 759c5d6e10..b3bbedfd1b 100644 --- a/usr/src/uts/common/fs/smbsrv/smb_print.c +++ b/usr/src/uts/common/fs/smbsrv/smb_print.c @@ -109,7 +109,8 @@ smb_com_open_print_file(smb_request_t *sr) smb_kshare_t *si; struct open_param *op = &sr->arg.open; - if (!STYPE_ISPRN(sr->tid_tree->t_res_type)) { + if (sr->sr_server->sv_cfg.skc_print_enable == 0 || + !STYPE_ISPRN(sr->tid_tree->t_res_type)) { cmn_err(CE_WARN, "smb_com_open_print_file: bad device"); smbsr_error(sr, NT_STATUS_BAD_DEVICE_TYPE, ERRDOS, ERROR_BAD_DEV_TYPE); @@ -182,7 +183,8 @@ smb_com_close_print_file(smb_request_t *sr) { smb_sdrc_t rc; - if (!STYPE_ISPRN(sr->tid_tree->t_res_type)) { + if (sr->sr_server->sv_cfg.skc_print_enable == 0 || + !STYPE_ISPRN(sr->tid_tree->t_res_type)) { smbsr_error(sr, NT_STATUS_BAD_DEVICE_TYPE, ERRDOS, ERROR_BAD_DEV_TYPE); cmn_err(CE_WARN, "smb_com_close_print_file: SDRC_ERROR"); @@ -269,7 +271,8 @@ smb_com_write_print_file(smb_request_t *sr) smb_attr_t attr; int rc; - if (!STYPE_ISPRN(sr->tid_tree->t_res_type)) { + if (sr->sr_server->sv_cfg.skc_print_enable == 0 || + !STYPE_ISPRN(sr->tid_tree->t_res_type)) { smbsr_error(sr, NT_STATUS_BAD_DEVICE_TYPE, ERRDOS, ERROR_BAD_DEV_TYPE); return (SDRC_ERROR); diff --git a/usr/src/uts/common/fs/smbsrv/smb_server.c b/usr/src/uts/common/fs/smbsrv/smb_server.c index 52915cbd44..bef039cfea 100644 --- a/usr/src/uts/common/fs/smbsrv/smb_server.c +++ b/usr/src/uts/common/fs/smbsrv/smb_server.c @@ -754,6 +754,11 @@ smb_server_spooldoc(smb_ioc_spooldoc_t *ioc) if ((rc = smb_server_lookup(&sv)) != 0) return (rc); + if (sv->sv_cfg.skc_print_enable == 0) { + rc = ENOTTY; + goto out; + } + mutex_enter(&sv->sv_mutex); for (;;) { if (sv->sv_state != SMB_SERVER_STATE_RUNNING) { @@ -770,22 +775,24 @@ smb_server_spooldoc(smb_ioc_spooldoc_t *ioc) } } mutex_exit(&sv->sv_mutex); - if (rc == 0) { - spdoc = kmem_zalloc(sizeof (*spdoc), KM_SLEEP); - if (smb_spool_lookup_doc_byfid(sv, fid, spdoc)) { - ioc->spool_num = spdoc->sd_spool_num; - ioc->ipaddr = spdoc->sd_ipaddr; - (void) strlcpy(ioc->path, spdoc->sd_path, - MAXPATHLEN); - (void) strlcpy(ioc->username, - spdoc->sd_username, MAXNAMELEN); - } else { - /* Did not find that print job. */ - rc = EAGAIN; - } - kmem_free(spdoc, sizeof (*spdoc)); + if (rc != 0) + goto out; + + spdoc = kmem_zalloc(sizeof (*spdoc), KM_SLEEP); + if (smb_spool_lookup_doc_byfid(sv, fid, spdoc)) { + ioc->spool_num = spdoc->sd_spool_num; + ioc->ipaddr = spdoc->sd_ipaddr; + (void) strlcpy(ioc->path, spdoc->sd_path, + MAXPATHLEN); + (void) strlcpy(ioc->username, + spdoc->sd_username, MAXNAMELEN); + } else { + /* Did not find that print job. */ + rc = EAGAIN; } + kmem_free(spdoc, sizeof (*spdoc)); +out: smb_server_release(sv); return (rc); } @@ -1858,6 +1865,20 @@ smb_server_store_cfg(smb_server_t *sv, smb_ioc_cfg_t *ioc) sizeof (sv->sv_cfg.skc_hostname)); (void) strlcpy(sv->sv_cfg.skc_system_comment, ioc->system_comment, sizeof (sv->sv_cfg.skc_system_comment)); + + if (sv->sv_cfg.skc_oplock_enable && smb_raw_mode) { + /* + * Note that these two optional protocol features + * (oplocks, raw_mode) have unfortunate interactions. + * Since raw_mode is only wanted by ancient clients, + * we just turn it off (that's what MS recommends). + * Leave some evidence in the log if someone has + * patched smb_raw_mode to enable it. + */ + cmn_err(CE_NOTE, + "Raw mode enabled: Disabling opportunistic locks"); + sv->sv_cfg.skc_oplock_enable = 0; + } } static int diff --git a/usr/src/uts/common/fs/smbsrv/smb_tree.c b/usr/src/uts/common/fs/smbsrv/smb_tree.c index 03a4e856c1..24dd27cdc5 100644 --- a/usr/src/uts/common/fs/smbsrv/smb_tree.c +++ b/usr/src/uts/common/fs/smbsrv/smb_tree.c @@ -20,6 +20,7 @@ */ /* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. */ @@ -760,6 +761,12 @@ smb_tree_connect_printq(smb_request_t *sr, const char *sharename) ASSERT(user); ASSERT(user->u_cred); + if (sr->sr_server->sv_cfg.skc_print_enable == 0) { + smb_tree_log(sr, sharename, "printing disabled"); + smbsr_error(sr, 0, ERRSRV, ERRinvnetname); + return (NULL); + } + if ((strcmp(service, any) != 0) && (strcasecmp(service, "LPT1:") != 0)) { smb_tree_log(sr, sharename, "invalid service (%s)", service); diff --git a/usr/src/uts/common/fs/zfs/sa.c b/usr/src/uts/common/fs/zfs/sa.c index 4cb4546b25..57b3565cba 100644 --- a/usr/src/uts/common/fs/zfs/sa.c +++ b/usr/src/uts/common/fs/zfs/sa.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Portions Copyright 2011 iXsystems, Inc */ #include <sys/zfs_context.h> @@ -605,14 +606,14 @@ sa_find_sizes(sa_os_t *sa, sa_bulk_attr_t *attr_desc, int attr_count, * and spill buffer. */ if (buftype == SA_BONUS && *index == -1 && - P2ROUNDUP(*total + hdrsize, 8) > + *total + P2ROUNDUP(hdrsize, 8) > (full_space - sizeof (blkptr_t))) { *index = i; done = B_TRUE; } next: - if (P2ROUNDUP(*total + hdrsize, 8) > full_space && + if (*total + P2ROUNDUP(hdrsize, 8) > full_space && buftype == SA_BONUS) *will_spill = B_TRUE; } diff --git a/usr/src/uts/common/fs/zfs/txg.c b/usr/src/uts/common/fs/zfs/txg.c index 6c0cd118d4..2269ef271e 100644 --- a/usr/src/uts/common/fs/zfs/txg.c +++ b/usr/src/uts/common/fs/zfs/txg.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Portions Copyright 2011 Martin Matuska */ #include <sys/zfs_context.h> @@ -482,7 +483,7 @@ void txg_delay(dsl_pool_t *dp, uint64_t txg, int ticks) { tx_state_t *tx = &dp->dp_tx; - int timeout = ddi_get_lbolt() + ticks; + clock_t timeout = ddi_get_lbolt() + ticks; /* don't delay if this txg could transition to quiesing immediately */ if (tx->tx_open_txg > txg || diff --git a/usr/src/uts/common/fs/zfs/zfs_ioctl.c b/usr/src/uts/common/fs/zfs/zfs_ioctl.c index 1b63c9bf45..486ae9506d 100644 --- a/usr/src/uts/common/fs/zfs/zfs_ioctl.c +++ b/usr/src/uts/common/fs/zfs/zfs_ioctl.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Portions Copyright 2011 Martin Matuska */ #include <sys/types.h> @@ -1943,8 +1944,10 @@ top: uint64_t cookie = 0; int len = sizeof (zc->zc_name) - (p - zc->zc_name); - while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0) - (void) dmu_objset_prefetch(p, NULL); + while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0) { + if (!dataset_name_hidden(zc->zc_name)) + (void) dmu_objset_prefetch(zc->zc_name, NULL); + } } do { diff --git a/usr/src/uts/common/inet/tcp/tcp_input.c b/usr/src/uts/common/inet/tcp/tcp_input.c index b53acf4b1d..d8d78e85cb 100644 --- a/usr/src/uts/common/inet/tcp/tcp_input.c +++ b/usr/src/uts/common/inet/tcp/tcp_input.c @@ -21,7 +21,8 @@ /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, Joyent, Inc. All rights reserved. + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2011 Joyent, Inc. All rights reserved. */ /* This file contains all TCP input processing functions. */ @@ -2231,6 +2232,114 @@ tcp_ack_mp(tcp_t *tcp) } /* + * Dummy socket upcalls for if/when the conn_t gets detached from a + * direct-callback sonode via a user-driven close(). Easy to catch with + * DTrace FBT, and should be mostly harmless. + */ + +/* ARGSUSED */ +static sock_upper_handle_t +tcp_dummy_newconn(sock_upper_handle_t x, sock_lower_handle_t y, + sock_downcalls_t *z, cred_t *cr, pid_t pid, sock_upcalls_t **ignored) +{ + ASSERT(0); /* Panic in debug, otherwise ignore. */ + return (NULL); +} + +/* ARGSUSED */ +static void +tcp_dummy_connected(sock_upper_handle_t x, sock_connid_t y, cred_t *cr, + pid_t pid) +{ + ASSERT(x == NULL); + /* Normally we'd crhold(cr) and attach it to socket state. */ + /* LINTED */ +} + +/* ARGSUSED */ +static int +tcp_dummy_disconnected(sock_upper_handle_t x, sock_connid_t y, int blah) +{ + ASSERT(0); /* Panic in debug, otherwise ignore. */ + return (-1); +} + +/* ARGSUSED */ +static void +tcp_dummy_opctl(sock_upper_handle_t x, sock_opctl_action_t y, uintptr_t blah) +{ + ASSERT(x == NULL); + /* We really want this one to be a harmless NOP for now. */ + /* LINTED */ +} + +/* ARGSUSED */ +static ssize_t +tcp_dummy_recv(sock_upper_handle_t x, mblk_t *mp, size_t len, int flags, + int *error, boolean_t *push) +{ + ASSERT(x == NULL); + + /* + * Consume the message, set ESHUTDOWN, and return an error. + * Nobody's home! + */ + freemsg(mp); + *error = ESHUTDOWN; + return (-1); +} + +/* ARGSUSED */ +static void +tcp_dummy_set_proto_props(sock_upper_handle_t x, struct sock_proto_props *y) +{ + ASSERT(0); /* Panic in debug, otherwise ignore. */ +} + +/* ARGSUSED */ +static void +tcp_dummy_txq_full(sock_upper_handle_t x, boolean_t y) +{ + ASSERT(0); /* Panic in debug, otherwise ignore. */ +} + +/* ARGSUSED */ +static void +tcp_dummy_signal_oob(sock_upper_handle_t x, ssize_t len) +{ + ASSERT(x == NULL); + /* Otherwise, this would signal socket state about OOB data. */ +} + +/* ARGSUSED */ +static void +tcp_dummy_set_error(sock_upper_handle_t x, int err) +{ + ASSERT(0); /* Panic in debug, otherwise ignore. */ +} + +/* ARGSUSED */ +static void +tcp_dummy_onearg(sock_upper_handle_t x) +{ + ASSERT(0); /* Panic in debug, otherwise ignore. */ +} + +static sock_upcalls_t tcp_dummy_upcalls = { + tcp_dummy_newconn, + tcp_dummy_connected, + tcp_dummy_disconnected, + tcp_dummy_opctl, + tcp_dummy_recv, + tcp_dummy_set_proto_props, + tcp_dummy_txq_full, + tcp_dummy_signal_oob, + tcp_dummy_onearg, + tcp_dummy_set_error, + tcp_dummy_onearg +}; + +/* * Handle M_DATA messages from IP. Its called directly from IP via * squeue for received IP packets. * @@ -2272,6 +2381,7 @@ tcp_input_data(void *arg, mblk_t *mp, void *arg2, ip_recv_attr_t *ira) squeue_t *sqp = (squeue_t *)arg2; tcp_t *tcp = connp->conn_tcp; tcp_stack_t *tcps = tcp->tcp_tcps; + sock_upcalls_t *sockupcalls; /* * RST from fused tcp loopback peer should trigger an unfuse. @@ -2397,6 +2507,11 @@ tcp_input_data(void *arg, mblk_t *mp, void *arg2, ip_recv_attr_t *ira) } } + sockupcalls = connp->conn_upcalls; + /* A conn_t may have belonged to a now-closed socket. Be careful. */ + if (sockupcalls == NULL) + sockupcalls = &tcp_dummy_upcalls; + switch (tcp->tcp_state) { case TCPS_SYN_SENT: if (connp->conn_final_sqp == NULL && @@ -2608,8 +2723,7 @@ tcp_input_data(void *arg, mblk_t *mp, void *arg2, ip_recv_attr_t *ira) } putnext(connp->conn_rq, mp1); } else { - (*connp->conn_upcalls-> - su_connected) + (*sockupcalls->su_connected) (connp->conn_upper_handle, tcp->tcp_connid, ira->ira_cred, @@ -2636,7 +2750,7 @@ tcp_input_data(void *arg, mblk_t *mp, void *arg2, ip_recv_attr_t *ira) } putnext(connp->conn_rq, mp1); } else { - (*connp->conn_upcalls->su_connected) + (*sockupcalls->su_connected) (connp->conn_upper_handle, tcp->tcp_connid, ira->ira_cred, ira->ira_cpid); @@ -3010,8 +3124,7 @@ try_again:; tcp->tcp_urp_last))) { if (IPCL_IS_NONSTR(connp)) { if (!TCP_IS_DETACHED(tcp)) { - (*connp->conn_upcalls-> - su_signal_oob) + (*sockupcalls->su_signal_oob) (connp->conn_upper_handle, urp); } @@ -3289,7 +3402,7 @@ ok:; */ if (IPCL_IS_NONSTR(connp)) { if (!TCP_IS_DETACHED(tcp)) { - (*connp->conn_upcalls->su_signal_oob) + (*sockupcalls->su_signal_oob) (connp->conn_upper_handle, urp); } } else { @@ -3448,7 +3561,7 @@ ok:; if (IPCL_IS_NONSTR(connp)) { int error; - (*connp->conn_upcalls->su_recv) + (*sockupcalls->su_recv) (connp->conn_upper_handle, mp, seg_len, MSG_OOB, &error, NULL); /* @@ -4627,8 +4740,7 @@ update_ack: boolean_t push = flags & (TH_PUSH|TH_FIN); int error; - if ((*connp->conn_upcalls->su_recv)( - connp->conn_upper_handle, + if ((*sockupcalls->su_recv)(connp->conn_upper_handle, mp, seg_len, 0, &error, &push) <= 0) { /* * We should never be in middle of a @@ -4870,8 +4982,8 @@ ack_check: if (IPCL_IS_NONSTR(connp)) { ASSERT(tcp->tcp_ordrel_mp == NULL); tcp->tcp_ordrel_done = B_TRUE; - (*connp->conn_upcalls->su_opctl) - (connp->conn_upper_handle, SOCK_OPCTL_SHUT_RECV, 0); + (*sockupcalls->su_opctl)(connp->conn_upper_handle, + SOCK_OPCTL_SHUT_RECV, 0); goto done; } @@ -5425,9 +5537,9 @@ tcp_icmp_input(void *arg1, mblk_t *mp, void *arg2, ip_recv_attr_t *ira) ASSERT((MBLKL(mp) >= sizeof (ipha_t))); /* - * It's possible that we've gotten here, but the TCP state is closed and - * we no longer have a conn_t. In that case, we should just drop the - * icmp packet + * It's possible we have a closed, but not yet destroyed, TCP + * connection. Several fields (e.g. conn_ixa->ixa_ire) are invalid + * in the closed state, so don't take any chances and drop the packet. */ if (tcp->tcp_state == TCPS_CLOSED) { freemsg(mp); diff --git a/usr/src/uts/common/io/bge/bge_chip2.c b/usr/src/uts/common/io/bge/bge_chip2.c index 37948cb9d2..f687ce4892 100644 --- a/usr/src/uts/common/io/bge/bge_chip2.c +++ b/usr/src/uts/common/io/bge/bge_chip2.c @@ -23,6 +23,10 @@ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. */ +/* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + */ + #include "bge_impl.h" #define PIO_ADDR(bgep, offset) ((void *)((caddr_t)(bgep)->io_regs+(offset))) @@ -3306,9 +3310,6 @@ bge_poll_firmware(bge_t *bgep) for (i = 0; i < 1000; ++i) { drv_usecwait(1000); gen = bge_nic_get64(bgep, NIC_MEM_GENCOMM) >> 32; - if (i == 0 && DEVICE_5704_SERIES_CHIPSETS(bgep)) - drv_usecwait(100000); - mac = bge_reg_get64(bgep, MAC_ADDRESS_REG(0)); #ifdef BGE_IPMI_ASF if (!bgep->asf_enabled) { #endif @@ -3317,6 +3318,7 @@ bge_poll_firmware(bge_t *bgep) #ifdef BGE_IPMI_ASF } #endif + mac = bge_reg_get64(bgep, MAC_ADDRESS_REG(0)); if (mac != 0ULL) break; if (bgep->bge_chip_state != BGE_CHIP_INITIAL) diff --git a/usr/src/uts/common/io/devpoll.c b/usr/src/uts/common/io/devpoll.c index 09b21abf66..111c4c243f 100644 --- a/usr/src/uts/common/io/devpoll.c +++ b/usr/src/uts/common/io/devpoll.c @@ -23,6 +23,7 @@ * Use is subject to license terms. */ +/* Copyright (c) 2011 by Delphix. All rights reserved. */ #include <sys/types.h> #include <sys/devops.h> @@ -46,7 +47,7 @@ #define RESERVED 1 /* local data struct */ -static dp_entry_t **devpolltbl; /* dev poll entries */ +static dp_entry_t **devpolltbl; /* dev poll entries */ static size_t dptblsize; static kmutex_t devpoll_lock; /* lock protecting dev tbl */ @@ -238,7 +239,7 @@ dp_pcache_poll(pollfd_t *pfdp, pollcache_t *pcp, nfds_t nfds, int *fdcntp) { int start, ostart, end; int fdcnt, fd; - boolean_t done; + boolean_t done; file_t *fp; short revent; boolean_t no_wrap; @@ -492,7 +493,7 @@ dpopen(dev_t *devp, int flag, int otyp, cred_t *credp) static int dpwrite(dev_t dev, struct uio *uiop, cred_t *credp) { - minor_t minor; + minor_t minor; dp_entry_t *dpep; pollcache_t *pcp; pollfd_t *pollfdp, *pfdp; @@ -691,21 +692,12 @@ dpwrite(dev_t dev, struct uio *uiop, cred_t *credp) static int dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp) { - timestruc_t now; - timestruc_t rqtime; - timestruc_t *rqtp = NULL; - int timecheck = 0; - minor_t minor; + minor_t minor; dp_entry_t *dpep; pollcache_t *pcp; - int error = 0; + int error = 0; STRUCT_DECL(dvpoll, dvpoll); - if (cmd == DP_POLL) { - /* do this now, before we sleep on DP_WRITER_PRESENT below */ - timecheck = timechanged; - gethrestime(&now); - } minor = getminor(dev); mutex_enter(&devpoll_lock); ASSERT(minor < dptblsize); @@ -730,11 +722,12 @@ dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp) switch (cmd) { case DP_POLL: { - pollstate_t *ps; - nfds_t nfds; - int fdcnt = 0; - int time_out; - int rval; + pollstate_t *ps; + nfds_t nfds; + int fdcnt = 0; + int time_out; + clock_t *deltap = NULL; + clock_t delta; STRUCT_INIT(dvpoll, mode); error = copyin((caddr_t)arg, STRUCT_BUF(dvpoll), @@ -747,12 +740,15 @@ dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp) time_out = STRUCT_FGET(dvpoll, dp_timeout); if (time_out > 0) { /* - * Determine the future time of the requested timeout. + * cv_relwaituntil_sig operates at the tick + * granularity, which by default is 10 ms. + * This results in rounding user specified + * timeouts up but prevents the system + * from being flooded with small high + * resolution timers. */ - rqtp = &rqtime; - rqtp->tv_sec = time_out / MILLISEC; - rqtp->tv_nsec = (time_out % MILLISEC) * MICROSEC; - timespecadd(rqtp, &now); + delta = MSEC_TO_TICK_ROUNDUP(time_out); + deltap = δ } if ((nfds = STRUCT_FGET(dvpoll, dp_nfds)) == 0) { @@ -765,17 +761,19 @@ dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp) if (time_out == 0) return (0); mutex_enter(&curthread->t_delay_lock); - while ((rval = cv_waituntil_sig(&curthread->t_delay_cv, - &curthread->t_delay_lock, rqtp, timecheck)) > 0) + while ((delta = cv_relwaituntil_sig( + &curthread->t_delay_cv, &curthread->t_delay_lock, + deltap, TR_MILLISEC)) > 0) { continue; + } mutex_exit(&curthread->t_delay_lock); - return ((rval == 0)? EINTR : 0); + return (delta == 0 ? EINTR : 0); } /* - * XXX It'd be nice not to have to alloc each time. - * But it requires another per thread structure hook. - * Do it later if there is data suggest that. + * XXX It would be nice not to have to alloc each time, but it + * requires another per thread structure hook. This can be + * implemented later if data suggests that it's necessary. */ if ((ps = curthread->t_pollstate) == NULL) { curthread->t_pollstate = pollstate_create(); @@ -820,14 +818,15 @@ dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp) */ if (time_out == 0) /* immediate timeout */ break; - rval = cv_waituntil_sig(&pcp->pc_cv, &pcp->pc_lock, - rqtp, timecheck); + + delta = cv_relwaituntil_sig(&pcp->pc_cv, &pcp->pc_lock, + deltap, TR_MILLISEC); /* * If we were awakened by a signal or timeout * then break the loop, else poll again. */ - if (rval <= 0) { - if (rval == 0) /* signal */ + if (delta <= 0) { + if (delta == 0) /* signal */ error = EINTR; break; } @@ -915,7 +914,7 @@ dppoll(dev_t dev, short events, int anyyet, short *reventsp, static int dpclose(dev_t dev, int flag, int otyp, cred_t *credp) { - minor_t minor; + minor_t minor; dp_entry_t *dpep; pollcache_t *pcp; int i; diff --git a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c index 45034ad251..22243d4608 100644 --- a/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c +++ b/usr/src/uts/common/io/fibre-channel/fca/emlxs/emlxs_sli4.c @@ -2815,7 +2815,7 @@ emlxs_sli4_prep_fcp_iocb(emlxs_port_t *port, emlxs_buf_t *sbp, int channel) } sbp->class = wqe->Class; wqe->RequestTag = iotag; - wqe->CQId = (uint16_t)0xffff; /* default CQ for response */ + wqe->CQId = 0x3ff; /* default CQ for response */ return (FC_SUCCESS); } /* emlxs_sli4_prep_fcp_iocb() */ @@ -3268,7 +3268,7 @@ emlxs_sli4_prep_ct_iocb(emlxs_port_t *port, emlxs_buf_t *sbp) } sbp->class = wqe->Class; wqe->RequestTag = xp->iotag; - wqe->CQId = (uint16_t)0xffff; /* default CQ for response */ + wqe->CQId = 0x3ff; return (FC_SUCCESS); } /* emlxs_sli4_prep_ct_iocb() */ diff --git a/usr/src/uts/common/io/ksocket/ksocket.c b/usr/src/uts/common/io/ksocket/ksocket.c index 4100f049d7..49ca6f0475 100644 --- a/usr/src/uts/common/io/ksocket/ksocket.c +++ b/usr/src/uts/common/io/ksocket/ksocket.c @@ -20,6 +20,7 @@ */ /* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. */ @@ -30,6 +31,7 @@ #include <sys/sysmacros.h> #include <sys/filio.h> /* FIO* ioctls */ #include <sys/sockio.h> /* SIOC* ioctls */ +#include <sys/poll_impl.h> #include <sys/cmn_err.h> #include <sys/ksocket.h> #include <io/ksocket/ksocket_impl.h> @@ -54,7 +56,7 @@ ksocket_socket(ksocket_t *ksp, int domain, int type, int protocol, int flags, /* All Solaris components should pass a cred for this operation. */ ASSERT(cr != NULL); - if (domain == AF_NCA || domain == AF_UNIX) + if (domain == AF_NCA) return (EAFNOSUPPORT); ASSERT(flags == KSOCKET_SLEEP || flags == KSOCKET_NOSLEEP); @@ -717,6 +719,144 @@ ksocket_ioctl(ksocket_t ks, int cmd, intptr_t arg, int *rvalp, struct cred *cr) return (rval); } +/* + * Wait for an input event, similar to t_kspoll(). + * Ideas and code borrowed from ../devpoll.c + * Basically, setup just enough poll data structures so + * we can block on a CV until timeout or pollwakeup(). + */ +int +ksocket_spoll(ksocket_t ks, int timo, short events, short *revents, + struct cred *cr) +{ + struct sonode *so; + pollhead_t *php, *php2; + polldat_t *pdp; + pollcache_t *pcp; + int error; + clock_t expires = 0; + clock_t rval; + + /* All Solaris components should pass a cred for this operation. */ + ASSERT(cr != NULL); + ASSERT(curthread->t_pollcache == NULL); + + if (revents == NULL) + return (EINVAL); + if (!KSOCKET_VALID(ks)) + return (ENOTSOCK); + so = KSTOSO(ks); + + /* + * Check if there are any events already pending. + * If we're not willing to block, (timo == 0) then + * pass "anyyet">0 to socket_poll so it can skip + * some work. Othewise pass "anyyet"=0 and if + * there are no events pending, it will fill in + * the pollhead pointer we need for pollwakeup(). + * + * XXX - pollrelock() logic needs to know which + * which pollcache lock to grab. It'd be a + * cleaner solution if we could pass pcp as + * an arguement in VOP_POLL interface instead + * of implicitly passing it using thread_t + * struct. On the other hand, changing VOP_POLL + * interface will require all driver/file system + * poll routine to change. May want to revisit + * the tradeoff later. + */ + php = NULL; + *revents = 0; + pcp = pcache_alloc(); + pcache_create(pcp, 1); + + mutex_enter(&pcp->pc_lock); + curthread->t_pollcache = pcp; + error = socket_poll(so, (short)events, (timo == 0), + revents, &php); + curthread->t_pollcache = NULL; + mutex_exit(&pcp->pc_lock); + + if (error != 0 || *revents != 0 || timo == 0) + goto out; + + /* + * Need to block. Did not get *revents, so the + * php should be non-NULL, but let's verify. + * Also compute when our sleep expires. + */ + if (php == NULL) { + error = EIO; + goto out; + } + if (timo > 0) + expires = ddi_get_lbolt() + + MSEC_TO_TICK_ROUNDUP(timo); + + /* + * Setup: pollhead -> polldat -> pollcache + * needed for pollwakeup() + * pdp should be freed by pcache_destroy + */ + pdp = kmem_zalloc(sizeof (*pdp), KM_SLEEP); + pdp->pd_fd = 0; + pdp->pd_events = events; + pdp->pd_pcache = pcp; + pcache_insert_fd(pcp, pdp, 1); + pollhead_insert(php, pdp); + pdp->pd_php = php; + + mutex_enter(&pcp->pc_lock); + while (!(so->so_state & SS_CLOSING)) { + pcp->pc_flag = 0; + + /* Ditto pcp comment above. */ + curthread->t_pollcache = pcp; + error = socket_poll(so, (short)events, 0, + revents, &php2); + curthread->t_pollcache = NULL; + ASSERT(php2 == php); + + if (error != 0 || *revents != 0) + break; + + if (pcp->pc_flag & T_POLLWAKE) + continue; + + if (timo == -1) { + rval = cv_wait_sig(&pcp->pc_cv, &pcp->pc_lock); + } else { + rval = cv_timedwait_sig(&pcp->pc_cv, &pcp->pc_lock, + expires); + } + if (rval <= 0) { + if (rval == 0) + error = EINTR; + break; + } + } + mutex_exit(&pcp->pc_lock); + + if (pdp->pd_php != NULL) { + pollhead_delete(pdp->pd_php, pdp); + pdp->pd_php = NULL; + pdp->pd_fd = NULL; + } + + /* + * pollwakeup() may still interact with this pollcache. Wait until + * it is done. + */ + mutex_enter(&pcp->pc_no_exit); + ASSERT(pcp->pc_busy >= 0); + while (pcp->pc_busy > 0) + cv_wait(&pcp->pc_busy_cv, &pcp->pc_no_exit); + mutex_exit(&pcp->pc_no_exit); +out: + pcache_destroy(pcp); + return (error); +} + int ksocket_sendmblk(ksocket_t ks, struct nmsghdr *msg, int flags, mblk_t **mpp, cred_t *cr) diff --git a/usr/src/uts/common/io/scsi/adapters/pmcs/pmcs_sata.c b/usr/src/uts/common/io/scsi/adapters/pmcs/pmcs_sata.c index 78c3a8983e..03e632e161 100644 --- a/usr/src/uts/common/io/scsi/adapters/pmcs/pmcs_sata.c +++ b/usr/src/uts/common/io/scsi/adapters/pmcs/pmcs_sata.c @@ -278,7 +278,7 @@ pmcs_sata_special_work(pmcs_hw_t *pwp, pmcs_xscsi_t *xp) } } else { inqp = (struct scsi_inquiry *)rp; - inqp->inq_qual = (LE_16(id->word0) & 0x80) ? 0x80 : 0; + inqp->inq_qual = 0; inqp->inq_ansi = 5; /* spc3 */ inqp->inq_rdf = 2; /* response format 2 */ inqp->inq_len = 32; diff --git a/usr/src/uts/common/krtld/kobj.c b/usr/src/uts/common/krtld/kobj.c index b5e1297751..17e27b223a 100644 --- a/usr/src/uts/common/krtld/kobj.c +++ b/usr/src/uts/common/krtld/kobj.c @@ -22,6 +22,10 @@ * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright 2011 Bayard G. Bell <buffer.g.overflow@gmail.com>. + * All rights reserved. Use is subject to license terms. + */ /* * Kernel's linker/loader @@ -1444,6 +1448,20 @@ depends_on(struct module *mp) q = (char *)sp->st_value; +#ifdef KOBJ_DEBUG + /* + * _depends_on is a deprecated interface, so we warn about its use + * irrespective of subsequent processing errors. How else are we going + * to be able to deco this interface completely? + * Changes initially limited to DEBUG because third-party modules + * should be flagged to developers before general use base. + */ + _kobj_printf(ops, + "Warning: %s uses deprecated _depends_on interface.\n", + mp->filename); + _kobj_printf(ops, "Please notify module developer or vendor.\n"); +#endif + /* * Idiot checks. Make sure it's * in-bounds and NULL terminated. diff --git a/usr/src/uts/common/os/condvar.c b/usr/src/uts/common/os/condvar.c index 38051475f4..62945ae41f 100644 --- a/usr/src/uts/common/os/condvar.c +++ b/usr/src/uts/common/os/condvar.c @@ -24,6 +24,8 @@ * Use is subject to license terms. */ +/* Copyright (c) 2011 by Delphix. All rights reserved. */ + #include <sys/thread.h> #include <sys/proc.h> #include <sys/debug.h> @@ -500,6 +502,30 @@ cv_reltimedwait_sig(kcondvar_t *cvp, kmutex_t *mp, clock_t delta, } /* + * Same as cv_reltimedwait_sig() except that the timeout is optional. If + * there is no timeout then the function will block until woken up + * or interrupted. + */ +clock_t +cv_relwaituntil_sig(kcondvar_t *cvp, kmutex_t *mp, clock_t *delta, + time_res_t res) +{ + /* + * If there is no timeout specified wait indefinitely for a + * signal or a wakeup. + */ + if (delta == NULL) { + return (cv_wait_sig_swap(cvp, mp)); + } + + /* + * cv_reltimedwait_sig will wait for the relative timeout + * specified by delta. + */ + return (cv_reltimedwait_sig(cvp, mp, *delta, res)); +} + +/* * Like cv_wait_sig_swap but allows the caller to indicate (with a * non-NULL sigret) that they will take care of signalling the cv * after wakeup, if necessary. This is a vile hack that should only diff --git a/usr/src/uts/common/sys/condvar.h b/usr/src/uts/common/sys/condvar.h index 3a7fdc5f24..3aa569a73e 100644 --- a/usr/src/uts/common/sys/condvar.h +++ b/usr/src/uts/common/sys/condvar.h @@ -23,6 +23,8 @@ * Use is subject to license terms. */ +/* Copyright (c) 2011 by Delphix. All rights reserved. */ + /* * condvar.h: * @@ -95,6 +97,8 @@ extern int cv_wait_sig(kcondvar_t *, kmutex_t *); extern clock_t cv_timedwait_sig(kcondvar_t *, kmutex_t *, clock_t); extern clock_t cv_reltimedwait_sig(kcondvar_t *, kmutex_t *, clock_t, time_res_t); +extern clock_t cv_relwaituntil_sig(kcondvar_t *, kmutex_t *, clock_t *, + time_res_t); extern int cv_wait_sig_swap(kcondvar_t *, kmutex_t *); extern int cv_wait_sig_swap_core(kcondvar_t *, kmutex_t *, int *); extern void cv_signal(kcondvar_t *); diff --git a/usr/src/uts/common/sys/ksocket.h b/usr/src/uts/common/sys/ksocket.h index df15b12c08..dfe25eec76 100644 --- a/usr/src/uts/common/sys/ksocket.h +++ b/usr/src/uts/common/sys/ksocket.h @@ -19,6 +19,7 @@ * CDDL HEADER END */ /* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. */ @@ -113,6 +114,7 @@ extern int ksocket_getpeername(ksocket_t, struct sockaddr *, socklen_t *, extern int ksocket_getsockname(ksocket_t, struct sockaddr *, socklen_t *, struct cred *); extern int ksocket_ioctl(ksocket_t, int, intptr_t, int *, struct cred *); +extern int ksocket_spoll(ksocket_t, int, short, short *, struct cred *); extern int ksocket_setcallbacks(ksocket_t, ksocket_callbacks_t *, void *, struct cred *); extern int ksocket_close(ksocket_t, struct cred *); diff --git a/usr/src/uts/common/syscall/poll.c b/usr/src/uts/common/syscall/poll.c index dfcbb6dc9f..04bd862478 100644 --- a/usr/src/uts/common/syscall/poll.c +++ b/usr/src/uts/common/syscall/poll.c @@ -24,6 +24,7 @@ * Use is subject to license terms. */ +/* Copyright (c) 2011 by Delphix. All rights reserved. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ @@ -286,11 +287,10 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp) klwp_t *lwp = ttolwp(t); proc_t *p = ttoproc(t); int fdcnt = 0; - int rval; int i; - timespec_t *rqtp = NULL; - int timecheck = 0; int imm_timeout = 0; + clock_t *deltap = NULL; + clock_t delta; pollfd_t *pollfdp; pollstate_t *ps; pollcache_t *pcp; @@ -302,14 +302,22 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp) * Determine the precise future time of the requested timeout, if any. */ if (tsp != NULL) { - if (tsp->tv_sec == 0 && tsp->tv_nsec == 0) + if (tsp->tv_sec == 0 && tsp->tv_nsec == 0) { imm_timeout = 1; - else { - timespec_t now; - timecheck = timechanged; - gethrestime(&now); - rqtp = tsp; - timespecadd(rqtp, &now); + } else { + /* + * cv_relwaituntil_sig operates at + * the tick granularity, which by default is 10 ms. + * Convert the specified timespec to ticks, rounding + * up to at least 1 tick to avoid flooding the + * system with small high resolution timers. + */ + delta = SEC_TO_TICK(tsp->tv_sec) + + NSEC_TO_TICK(tsp->tv_nsec); + if (delta < 1) { + delta = 1; + } + deltap = δ } } @@ -347,11 +355,11 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp) */ if (!imm_timeout) { mutex_enter(&t->t_delay_lock); - while ((rval = cv_waituntil_sig(&t->t_delay_cv, - &t->t_delay_lock, rqtp, timecheck)) > 0) + while ((delta = cv_relwaituntil_sig(&t->t_delay_cv, + &t->t_delay_lock, deltap, TR_MILLISEC)) > 0) continue; mutex_exit(&t->t_delay_lock); - if (rval == 0) + if (delta == 0) error = EINTR; } goto pollout; @@ -542,18 +550,19 @@ poll_common(pollfd_t *fds, nfds_t nfds, timespec_t *tsp, k_sigset_t *ksetp) * Do not check for signals if we have a zero timeout. */ mutex_exit(&ps->ps_lock); - if (imm_timeout) - rval = -1; - else - rval = cv_waituntil_sig(&pcp->pc_cv, &pcp->pc_lock, - rqtp, timecheck); + if (imm_timeout) { + delta = -1; + } else { + delta = cv_relwaituntil_sig(&pcp->pc_cv, &pcp->pc_lock, + deltap, TR_MILLISEC); + } mutex_exit(&pcp->pc_lock); /* * If we have received a signal or timed out * then break out and return. */ - if (rval <= 0) { - if (rval == 0) + if (delta <= 0) { + if (delta == 0) error = EINTR; break; } diff --git a/usr/src/uts/i86pc/os/cpuid.c b/usr/src/uts/i86pc/os/cpuid.c index 09707f151c..0a389e0063 100644 --- a/usr/src/uts/i86pc/os/cpuid.c +++ b/usr/src/uts/i86pc/os/cpuid.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011 by Delphix. All rights reserved. */ /* * Copyright (c) 2010, Intel Corporation. @@ -590,13 +591,22 @@ cpuid_free_space(cpu_t *cpu) #if !defined(__xpv) -static void -determine_platform() +/* + * Determine the type of the underlying platform. This is used to customize + * initialization of various subsystems (e.g. TSC). determine_platform() must + * only ever be called once to prevent two processors from seeing different + * values of platform_type, it must be called before cpuid_pass1(), the + * earliest consumer to execute. + */ +void +determine_platform(void) { struct cpuid_regs cp; char *xen_str; uint32_t xen_signature[4], base; + ASSERT(platform_type == -1); + platform_type = HW_NATIVE; if (!enable_platform_detection) @@ -633,9 +643,7 @@ determine_platform() int get_hwenv(void) { - if (platform_type == -1) - determine_platform(); - + ASSERT(platform_type != -1); return (platform_type); } @@ -870,9 +878,6 @@ cpuid_pass1(cpu_t *cpu, uchar_t *featureset) extern int idle_cpu_prefer_mwait; #endif -#if !defined(__xpv) - determine_platform(); -#endif /* * Space statically allocated for BSP, ensure pointer is set */ diff --git a/usr/src/uts/i86pc/os/mlsetup.c b/usr/src/uts/i86pc/os/mlsetup.c index 2f7e271c29..63b858f978 100644 --- a/usr/src/uts/i86pc/os/mlsetup.c +++ b/usr/src/uts/i86pc/os/mlsetup.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011 by Delphix. All rights reserved. */ /* * Copyright (c) 2010, Intel Corporation. @@ -172,6 +173,11 @@ mlsetup(struct regs *rp) pci_cfgspace_init(); #else pci_cfgspace_init(); + /* + * Initialize the platform type from CPU 0 to ensure that + * determine_platform() is only ever called once. + */ + determine_platform(); #endif /* diff --git a/usr/src/uts/intel/ip/ip.global-objs.debug64 b/usr/src/uts/intel/ip/ip.global-objs.debug64 index 7062aac6db..40d5bd498b 100644 --- a/usr/src/uts/intel/ip/ip.global-objs.debug64 +++ b/usr/src/uts/intel/ip/ip.global-objs.debug64 @@ -20,6 +20,7 @@ # # # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright 2011 Nexenta Systems, Inc. All rights reserved # arp_m_tbl @@ -253,6 +254,7 @@ tcp_conn_cache tcp_conn_hash_size tcp_do_reclaim tcp_drop_ack_unsent_cnt +tcp_dummy_upcalls tcp_early_abort tcp_fallback_sock_winit tcp_free_list_max_cnt diff --git a/usr/src/uts/intel/ip/ip.global-objs.obj64 b/usr/src/uts/intel/ip/ip.global-objs.obj64 index 6c095dd832..5c56fe7efd 100644 --- a/usr/src/uts/intel/ip/ip.global-objs.obj64 +++ b/usr/src/uts/intel/ip/ip.global-objs.obj64 @@ -20,6 +20,7 @@ # # # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright 2011 Nexenta Systems, Inc. All rights reserved # arp_m_tbl @@ -250,6 +251,7 @@ tcp_conn_cache tcp_conn_hash_size tcp_do_reclaim tcp_drop_ack_unsent_cnt +tcp_dummy_upcalls tcp_early_abort tcp_fallback_sock_winit tcp_free_list_max_cnt diff --git a/usr/src/uts/intel/sys/x86_archext.h b/usr/src/uts/intel/sys/x86_archext.h index c5516be232..80c85df52f 100644 --- a/usr/src/uts/intel/sys/x86_archext.h +++ b/usr/src/uts/intel/sys/x86_archext.h @@ -20,6 +20,7 @@ */ /* * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011 by Delphix. All rights reserved. */ /* * Copyright (c) 2010, Intel Corporation. @@ -762,6 +763,9 @@ extern int opteron_workaround_6323525; extern void patch_workaround_6323525(void); #endif +#if !defined(__xpv) +extern void determine_platform(void); +#endif extern int get_hwenv(void); extern int is_controldom(void); diff --git a/usr/src/uts/sparc/ip/ip.global-objs.debug64 b/usr/src/uts/sparc/ip/ip.global-objs.debug64 index 7062aac6db..40d5bd498b 100644 --- a/usr/src/uts/sparc/ip/ip.global-objs.debug64 +++ b/usr/src/uts/sparc/ip/ip.global-objs.debug64 @@ -20,6 +20,7 @@ # # # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright 2011 Nexenta Systems, Inc. All rights reserved # arp_m_tbl @@ -253,6 +254,7 @@ tcp_conn_cache tcp_conn_hash_size tcp_do_reclaim tcp_drop_ack_unsent_cnt +tcp_dummy_upcalls tcp_early_abort tcp_fallback_sock_winit tcp_free_list_max_cnt diff --git a/usr/src/uts/sparc/ip/ip.global-objs.obj64 b/usr/src/uts/sparc/ip/ip.global-objs.obj64 index 6c095dd832..5c56fe7efd 100644 --- a/usr/src/uts/sparc/ip/ip.global-objs.obj64 +++ b/usr/src/uts/sparc/ip/ip.global-objs.obj64 @@ -20,6 +20,7 @@ # # # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright 2011 Nexenta Systems, Inc. All rights reserved # arp_m_tbl @@ -250,6 +251,7 @@ tcp_conn_cache tcp_conn_hash_size tcp_do_reclaim tcp_drop_ack_unsent_cnt +tcp_dummy_upcalls tcp_early_abort tcp_fallback_sock_winit tcp_free_list_max_cnt |