-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
142 lines (114 loc) · 6.23 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Contents: what, why, how, decisions / issues
== What? ==
This is a collection of scripts and data which can be used to construct
a metadata preserving git or hg repository of all the zoneinfo releases
since 1986.
== Why? ==
On that note let me say a huge thank you to the combined half a century
of work that Paul and Arthur and everyone else has contributed here.
It is out of respect for the work everyone has done here that I've tried
to create a faithful reproduction of the work you have all given to us.
Last year I read
http://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/
and was hugely impressed by the quiet work we all take for granted.
So hearing about the current issues the maintainers are having I didn't
want the history to be lost.
If you feel the data here is incomplete and you have ideas on additional
information, please contact me so that I may make this archive more
complete. Thanks. The easiest way to do this is to issue a pull request
on github. Alternatively, send me mail at kevin@ie.subric.net.
== How? ==
Instead of using these scripts you can instead get the git or hg
repositories generated by them here:
Git version: https://github.com/lyda/tz
Hg version: https://bitbucket.org/lyda/tz
Note that these are not used by the maintainer - don't send them
pull requests. And as this set of scripts evolve those repositories
are deleted and recreated so it's a good idea not to pull/fetch from
them either.
For generating the repositories yourself:
* See the */FETCH_DATA files and gather the required data.
* Choose a VCS you want to use. Currently git or hg are supported.
Set $VCS to the one you want - i.e. VCS=git
* Go to the work-usenix/ directory and run: ./add.sh "$VCS"
This will then generate $VCS.settz - a repository that contains all
known usenet releases.
* Go to the work/ directory. If you want to copy over the repository
created in the first step, run: ./cpsettz "$VCS"
* Now run the migration script: ./add "$VCS"
* You will then have a $VCS.tz repository with all changes from 1986 to
the present (assuming you downloaded the tarballs as described in the
FETCH_DATA instructions).
== Decisions / Issues ==
These scripts make a number of decisions people could debate. I have
listed them here so that others could review.
1) I date each commit based on the date of the message announcing the
release. It's possible to extract an arguably more accurate date from
the files within the repository but since the commit message is based
on the release message, it was my opinion that date was more correct.
2) The following files are referred to in the tzarchive (thank you IANA
for hosting the archive and to GMANE for filling in the blanks).
I'm pretty sure all of these existed.
tzcode2002a.tar.gz tzcode2006e.tar.gz
tzcode2008e.tar.tz tzcode2010b.tar.gz tzcode93g.tar.gz
tzcode94b.tar.gz tzcode94c.tar.gz tzcode94d.tar.gz
tzcode94e.tar.gz tzcode94f.tar.gz tzcode94g.tar.gz
tzcode94h.tar.gz tzcode95a.tar.gz tzcode95b.tar.gz
tzcode95c.tar.gz tzcode95f.tar.gz tzcode96e.tar.gz
tzcode96f.tar.gz tzcode96k.tar.gz tzdata1996m.tar.gz
tzdata1998f.tar.gz tzdata1998g.tar.gz tzdata2002a.tar.gz
tzdata2006e.tar.gz tzdata93g.tar.gz tzdata94a.tar.gz
tzdata94b.tar.gz tzdata94d.tar.gz tzdata94e.tar.gz
tzdata94f.tar.gz tzdata94h.tar.gz tzdata95a.tar.gz
tzdata95b.tar.gz tzdata95j.tar.gz tzdata96f.tar.gz
tzdata96g.tar.gz
Notes from reviewing the missing files:
tzcode94c.tar.gz - can be recreated with
<9402101356.AA19044@elsie.nci.nih.gov>
tzcode94e.tar.gz - might be recreatable w/
<9403310434.AA22475@elsie.nci.nih.gov>
tzcode95a.tar.gz may be bogus
Possibly missing: betatzcode.tar.gz betatzdata.tar.gz
classictzcode.tar.gz classictzdata.tar.gz
(they go just before tzcode95a.tar.gz)
tzcode96k.tar.gz - not bogus but might have been pulled?
<9609082035.AA12565@elsie.nci.nih.gov>
<9609082115.AA12896@elsie.nci.nih.gov>
tzdata94a.tar.gz - recreatable with
<9402031404.AA26306@elsie.nci.nih.gov>
3) The tzcode and tzdata files are in the same directory - that's
how they initially started in 1986. One could argue that starting
with releases in 1993 that the code and data should be broken out
into different directories.
4) Each commit message has the Message-Id header of the message it
came from. That can be used to find the messages and related threads
in mailing list archives in the future.
5) For the Usenet files:
* It's possible there was a release prior to:
comp.sources.unix/volume4/settz
* It's possible (likely?) there were releases between:
comp.sources.unix/volume14/localtime3
comp.sources.unix/volume18/localtime3
6) Credits. All the commits (except the last (currently) by kre)
are credited to ado. However in his commit messages he will
frequently credit others - eggert primarily. It's possible this
info is in SCCS but I doubt it.
7) Since mercurial does not support empty commits, the hg.tz and hg.settz
created repos have a .hg-migrate.txt file which gives some information
about each revision in the repository. For some releases it is the
only file that changes (obviously the commit text changes as well).
8) The Usenix archive is not complete. There's an obvious gap from the
settz era to the tarballs on elsie. There might be earlier tarballs;
there might have been later releases on Usenet. I have not found any.
There were discussions about this on mod.sources, comp.sources.unix
and comp.std.unix. In addition there were dome related releases on
comp.sources.unix that I have not included (and might yet):
volume25/posix-date
volume26/strftime
volume26/strftime-2.0
volume26/strftime-3.0
volume27/strftime-6.0
volume28/strftime-6.1
volume29/strftime-7.0
In addition there was the volume6/datediffs patch - but it was just
a diff against the date command on four different unix versions.