[tz] attic data for the tz database

Zefram zefram at fysh.org
Thu Aug 29 17:16:07 UTC 2013


Paul Eggert wrote:
>I like Zefram's suggestion for allowing a multitier
>structure for the tz database.  One way to do that would be
>to add a cutoff year to the Makefile.  It'd default to 1970.

If this is a popular idea, I think I should expand a bit on how to deal
with it.  I alluded earlier to a problem in manual zone selection, where
the user may be forced to choose between zones that are equivalent for
eir purposes.  The same approach really addresses both issues, and it's
worth generalising.

The essential process is to winnow a set of timezones so that only
inequivalent zones remain.  Equivalence is in general defined by the user,
specifically by the user indicating a range of years that is of interest.
The kind of cutoff discussed so far describes the lower end of the range;
some applications would also benefit from being able to specify an upper
end.  From among the full set of zones we group together those that have
the same behaviour within the user's year range, and the winnowed zone
set is made up of one representative zone from each equivalence class.
Following the principles that we already use to select a representative
location for each zone, the representative zone for each class should
normally be the one whose principal location has the greatest population.
We therefore need to store these population figures, for this use as
preference values.

Once we've got this winnowing operation implemented, there are multiple
places where we should use it.  First (both most important and the
best testbed) in manual zone selection, under tzselect and the like.
tzselect should (optionally) accept a year range from the user, and as
the final stage of selection offer the user a choice between only the
representative inequivalent zones.  In a multi-level selection process,
such as the tzselect method involving selecting an ISO 3166 region and
then a zone from those associated with that region, the winnowing would
be applied to the limited set of zones remaining after the earlier stages
of selection.

To support different kinds of installation, we'd want to apply equivalence
winnowing at build/install time.  The sysadmin/packager specifies a year
range, and only the representative inequivalent zones for that range
get installed as distinct files.  We'd want to install links for the
equivalent zones that were winnowed out.  Desktop/server OS builds will
probably want to install everything; embedded devices can get a smaller
set that only covers the actual application needs.

># Attic data

Thanks for posting this.

-zefram


More information about the tz mailing list