-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathlinux_hist_2_3.py
More file actions
477 lines (456 loc) · 46.3 KB
/
Copy pathlinux_hist_2_3.py
File metadata and controls
477 lines (456 loc) · 46.3 KB
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
"""Shared version table and helpers for untar-2.3.py / make-diffs-2.3.py / import-2.3.py.
Continues from 2.2's "2.2.8" (all on master, all Linus -- no branching or
author changes in this segment; 2.2's own stable maintenance continues
separately on branch "2.2"). Runs through the last "normal" 2.3.x prepatch
(2.3.52pre3), then the unusual "2.3.99-preN[-M]" numbering used as 2.4
approached, then a second prepatch scheme ("2.4.0-testNpreM") all the way
to "2.4.0-prerelease".
Like 2.0-2.2, most prepatches are cut against the last stable release
(`base` vs `patch_base` diverge); a handful of one-off patches have
colorful names ("REALLY-DANGEROUS", "for-alan-only", "for-al") preserved
literally from the original project.
The entire "2.3.99pre*" family has on-disk directory/tarball names with an
extra hyphen ("2.3.99-preN") that the canonical version/tag name drops
("2.3.99preN") -- `dir_name` carries the real on-disk name wherever it
differs; tree_dir() uses it for filesystem lookups while `name` stays the
canonical tag/diff-file name throughout.
2.3.8 (alias of 2.3.8pre3) and 2.4.0-test3 (alias of 2.4.0-test3pre9) both
get real trees/diffs built (matching the original scripts exactly, like
2.2's aliases) -- only import.py treats them as a no-op tag.
No date in import-2.3.sh is real -- same situation as 2.2, every `import`
call is missing its date argument. All dates here were recovered from
tarball mtimes / embedded diff-header timestamps. One patch (test3-pre4.gz)
had a bogus 2007 timestamp on its mm/vmscan.c hunk -- NOTES.md documents
that this hunk was hand-reconstructed by the project's original author
long after the fact, so dates >=2006 are filtered out of the max when
recovering these.
"""
import dataclasses
from pathlib import Path
from linux_hist_common import ( # noqa: F401 (re-exported)
CHANGELOGS,
LINUS,
ROOT,
UNPACK,
version_subdir,
)
BINARIES = ROOT / "binaries" / "2.3"
@dataclasses.dataclass
class Version:
# fmt: off
name: str
base: str
date: str
patch: str | None = None # filename under BINARIES; None means "extract the tarball"
patch_base: str | None = None # cp -rl source during untar, if different from `base`
dir_name: str | None = None # on-disk dir/tarball name, if different from `name` (2.3.99 family)
alias_of: str | None = None # if set: import step tags this name onto alias_of's commit instead of committing
# fmt: on
# fmt: off
VERSIONS: list[Version] = [
Version("2.3.0", "2.2.8", "Tue May 11 21:49:11 1999 +0000"),
Version("2.3.1pre1", "2.3.0", "Tue May 11 17:30:27 1999 +0000", "pre-patch-2.3.1-1.gz"),
Version("2.3.1pre2", "2.3.1pre1", "Tue May 11 23:40:50 1999 +0000", "pre-patch-2.3.1-2.gz", patch_base="2.3.0"),
Version("2.3.1pre3", "2.3.1pre2", "Wed May 12 08:50:00 1999 +0000", "pre-patch-2.3.1-3.gz", patch_base="2.3.0"),
Version("2.3.1pre4", "2.3.1pre3", "Wed May 12 14:53:55 1999 +0000", "pre-patch-2.3.1-4.gz", patch_base="2.3.0"),
Version("2.3.1", "2.3.1pre4", "Thu May 13 23:39:32 1999 +0000"),
Version("2.3.2", "2.3.1", "Sat May 15 02:03:55 1999 +0000"),
Version("2.3.3", "2.3.2", "Mon May 17 05:32:54 1999 +0000"),
Version("2.3.4pre1", "2.3.3", "Tue May 25 14:59:00 1999 +0000", "pre-patch-2.3.4-1.gz"),
Version("2.3.4pre2", "2.3.4pre1", "Fri May 28 15:52:46 1999 +0000", "pre-patch-2.3.4-2.gz", patch_base="2.3.3"),
Version("2.3.4pre3", "2.3.4pre2", "Mon May 31 09:06:44 1999 +0000", "pre-patch-2.3.4-3.gz", patch_base="2.3.3"),
Version("2.3.4", "2.3.4pre3", "Tue Jun 1 05:08:10 1999 +0000"),
Version("2.3.5", "2.3.4", "Wed Jun 2 21:11:49 1999 +0000"),
Version("2.3.6pre1", "2.3.5", "Mon Jun 7 14:49:23 1999 +0000", "pre-patch-2.3.6-1.gz"),
Version("2.3.6pre2", "2.3.6pre1", "Tue Jun 8 22:11:58 1999 +0000", "pre-patch-2.3.6-2.gz", patch_base="2.3.5"),
Version("2.3.6", "2.3.6pre2", "Thu Jun 10 03:49:11 1999 +0000"),
Version("2.3.7pre1", "2.3.6", "Sun Jun 13 00:58:47 1999 +0000", "pre-patch-2.3.7-1-dangerous.gz"),
Version("2.3.7pre2", "2.3.7pre1", "Sun Jun 13 22:16:54 1999 +0000", "pre-patch-2.3.7-2-dangerous.gz", patch_base="2.3.6"),
Version("2.3.7pre3", "2.3.7pre2", "Tue Jun 15 09:59:12 1999 +0000", "pre-patch-2.3.7-3-REALLY-DANGEROUS.gz", patch_base="2.3.6"),
Version("2.3.7pre4", "2.3.7pre3", "Wed Jun 16 14:06:03 1999 +0000", "pre-patch-2.3.7-4-dagerous.gz", patch_base="2.3.6"),
Version("2.3.7pre5", "2.3.7pre4", "Wed Jun 16 19:12:59 1999 +0000", "pre-patch-2.3.7-5.gz", patch_base="2.3.6"),
Version("2.3.7pre6", "2.3.7pre5", "Thu Jun 17 23:18:29 1999 +0000", "pre-patch-2.3.7-6.gz", patch_base="2.3.6"),
Version("2.3.7pre7", "2.3.7pre6", "Fri Jun 18 10:59:19 1999 +0000", "pre-patch-2.3.7-7.gz", patch_base="2.3.6"),
Version("2.3.7pre8", "2.3.7pre7", "Fri Jun 18 11:37:19 1999 +0000", "pre-patch-2.3.7-8.gz", patch_base="2.3.6"),
Version("2.3.7pre9", "2.3.7pre8", "Fri Jun 18 13:48:09 1999 +0000", "pre-patch-2.3.7-9.gz", patch_base="2.3.6"),
Version("2.3.7", "2.3.7pre9", "Mon Jun 21 01:57:23 1999 +0000"),
Version("2.3.8pre1", "2.3.7", "Tue Jun 22 00:41:16 1999 +0000", "pre-patch-2.3.8-1.gz"),
Version("2.3.8pre2", "2.3.8pre1", "Tue Jun 22 01:13:35 1999 +0000", "pre-patch-2.3.8-2.gz", patch_base="2.3.7"),
Version("2.3.8pre3", "2.3.8pre2", "Tue Jun 22 14:41:52 1999 +0000", "pre-patch-2.3.8-3.gz", patch_base="2.3.7"),
Version("2.3.8", "2.3.8pre3", "Tue Jun 22 21:53:30 1999 +0000", alias_of="2.3.8pre3"),
Version("2.3.9pre1", "2.3.8", "Wed Jun 23 10:48:29 1999 +0000", "pre-patch-2.3.9-1.gz"),
Version("2.3.9pre2", "2.3.9pre1", "Thu Jun 24 18:12:17 1999 +0000", "pre-patch-2.3.9-2.gz", patch_base="2.3.8"),
Version("2.3.9pre3", "2.3.9pre2", "Fri Jun 25 01:09:29 1999 +0000", "pre-patch-2.3.9-3.gz", patch_base="2.3.8"),
Version("2.3.9pre4", "2.3.9pre3", "Fri Jun 25 14:08:13 1999 +0000", "pre-patch-2.3.9-4.gz", patch_base="2.3.8"),
Version("2.3.9pre5", "2.3.9pre4", "Sat Jun 26 12:04:40 1999 +0000", "pre-patch-2.3.9-5.gz", patch_base="2.3.8"),
Version("2.3.9pre7", "2.3.9pre5", "Mon Jun 28 22:02:46 1999 +0000", "pre-patch-2.3.9-7.gz", patch_base="2.3.8"),
Version("2.3.9pre8", "2.3.9pre7", "Tue Jun 29 14:51:30 1999 +0000", "pre-patch-2.3.9-8.gz", patch_base="2.3.8"),
Version("2.3.9", "2.3.9pre8", "Wed Jun 30 20:02:34 1999 +0000"),
Version("2.3.10pre1", "2.3.9", "Fri Jul 2 18:02:33 1999 +0000", "pre-patch-2.3.10-1.gz"),
Version("2.3.10pre2", "2.3.10pre1", "Sat Jul 3 17:57:23 1999 +0000", "pre-patch-2.3.10-2.gz", patch_base="2.3.9"),
Version("2.3.10pre3", "2.3.10pre2", "Sun Jul 4 13:41:08 1999 +0000", "pre-patch-2.3.10-3.gz", patch_base="2.3.9"),
Version("2.3.10pre4", "2.3.10pre3", "Mon Jul 5 20:49:52 1999 +0000", "pre-patch-2.3.10-4.gz", patch_base="2.3.9"),
Version("2.3.10pre5", "2.3.10pre4", "Tue Jul 6 22:19:38 1999 +0000", "pre-patch-2.3.10-5.gz", patch_base="2.3.9"),
Version("2.3.10", "2.3.10pre5", "Thu Jul 8 22:32:12 1999 +0000"),
Version("2.3.11pre1", "2.3.10", "Fri Jul 9 18:08:00 1999 +0000", "pre-patch-2.3.11-1.gz"),
Version("2.3.11pre3", "2.3.11pre1", "Sun Jul 11 22:50:27 1999 +0000", "pre-patch-2.3.11-3.gz", patch_base="2.3.10"),
Version("2.3.11pre4", "2.3.11pre3", "Mon Jul 12 15:12:55 1999 +0000", "pre-patch-2.3.11-4.gz", patch_base="2.3.10"),
Version("2.3.11pre5", "2.3.11pre4", "Thu Jul 15 17:58:37 1999 +0000", "pre-patch-2.3.11-5.gz", patch_base="2.3.10"),
Version("2.3.11pre6", "2.3.11pre5", "Mon Jul 19 23:08:41 1999 +0000", "pre-patch-2.3.11-6.gz", patch_base="2.3.10"),
Version("2.3.11pre7", "2.3.11pre6", "Tue Jul 20 22:58:05 1999 +0000", "pre-patch-2.3.11-7.gz", patch_base="2.3.10"),
Version("2.3.11pre8", "2.3.11pre7", "Wed Jul 21 13:14:41 1999 +0000", "pre-patch-2.3.11-8.gz", patch_base="2.3.10"),
Version("2.3.11", "2.3.11pre8", "Wed Jul 21 22:38:46 1999 +0000"),
Version("2.3.12pre1", "2.3.11", "Fri Jul 23 10:30:42 1999 +0000", "pre-patch-2.3.12-1.gz"),
Version("2.3.12pre2", "2.3.12pre1", "Sat Jul 24 19:59:07 1999 +0000", "pre-patch-2.3.12-2.gz", patch_base="2.3.11"),
Version("2.3.12pre3", "2.3.12pre2", "Sun Jul 25 13:45:25 1999 +0000", "pre-patch-2.3.12-3.gz", patch_base="2.3.11"),
Version("2.3.12pre4", "2.3.12pre3", "Sun Jul 25 23:15:13 1999 +0000", "pre-patch-2.3.12-4.gz", patch_base="2.3.11"),
Version("2.3.12pre5", "2.3.12pre4", "Sun Jul 25 23:52:44 1999 +0000", "pre-patch-2.3.12-5.gz", patch_base="2.3.11"),
Version("2.3.12pre6", "2.3.12pre5", "Mon Jul 26 16:05:45 1999 +0000", "pre-patch-2.3.12-6.gz", patch_base="2.3.11"),
Version("2.3.12pre7", "2.3.12pre6", "Mon Jul 26 23:22:01 1999 +0000", "pre-patch-2.3.12-7.gz", patch_base="2.3.11"),
Version("2.3.12pre8", "2.3.12pre7", "Tue Jul 27 15:10:43 1999 +0000", "pre-patch-2.3.12-8.gz", patch_base="2.3.11"),
Version("2.3.12pre9", "2.3.12pre8", "Wed Jul 28 10:45:39 1999 +0000", "pre-patch-2.3.12-9.gz", patch_base="2.3.11"),
Version("2.3.12", "2.3.12pre9", "Wed Jul 28 21:32:17 1999 +0000"),
Version("2.3.13pre1", "2.3.12", "Fri Jul 30 13:25:53 1999 +0000", "pre-patch-2.3.13-1.gz"),
Version("2.3.13pre2", "2.3.13pre1", "Mon Aug 2 18:01:57 1999 +0000", "pre-patch-2.3.13-2.gz", patch_base="2.3.12"),
Version("2.3.13pre3", "2.3.13pre2", "Tue Aug 3 08:20:45 1999 +0000", "pre-patch-2.3.13-3.gz", patch_base="2.3.12"),
Version("2.3.13pre4", "2.3.13pre3", "Tue Aug 3 13:15:37 1999 +0000", "pre-patch-2.3.13-4.gz", patch_base="2.3.12"),
Version("2.3.13pre5", "2.3.13pre4", "Wed Aug 4 16:43:04 1999 +0000", "pre-patch-2.3.13-5.gz", patch_base="2.3.12"),
Version("2.3.13pre6", "2.3.13pre5", "Thu Aug 5 10:58:38 1999 +0000", "pre-patch-2.3.13-6.gz", patch_base="2.3.12"),
Version("2.3.13pre7", "2.3.13pre6", "Thu Aug 5 18:57:19 1999 +0000", "pre-patch-2.3.13-7.gz", patch_base="2.3.12"),
Version("2.3.13pre8", "2.3.13pre7", "Fri Aug 6 15:26:00 1999 +0000", "pre-patch-2.3.13-8.gz", patch_base="2.3.12"),
Version("2.3.13", "2.3.13pre8", "Mon Aug 9 20:02:54 1999 +0000"),
Version("2.3.14pre1", "2.3.13", "Fri Aug 13 15:06:18 1999 +0000", "pre-patch-2.3.14-1.gz"),
Version("2.3.14pre2", "2.3.14pre1", "Tue Aug 17 17:41:35 1999 +0000", "pre-patch-2.3.14-2.gz", patch_base="2.3.13"),
Version("2.3.14", "2.3.14pre2", "Thu Aug 19 00:12:15 1999 +0000"),
Version("2.3.15pre1", "2.3.14", "Thu Aug 19 16:55:51 1999 +0000", "pre-patch-2.3.15-1.gz"),
Version("2.3.15pre2", "2.3.15pre1", "Fri Aug 20 16:08:36 1999 +0000", "pre-patch-2.3.15-2.gz", patch_base="2.3.14"),
Version("2.3.15pre3", "2.3.15pre2", "Mon Aug 23 11:51:42 1999 +0000", "pre-patch-2.3.15-3.gz", patch_base="2.3.14"),
Version("2.3.15", "2.3.15pre3", "Wed Aug 25 23:02:03 1999 +0000"),
Version("2.3.16pre1", "2.3.15", "Mon Aug 30 13:59:38 1999 +0000", "pre-patch-2.3.16-1.gz"),
Version("2.3.16", "2.3.16pre1", "Tue Aug 31 23:20:26 1999 +0000"),
Version("2.3.17pre1", "2.3.16", "Fri Sep 3 22:06:59 1999 +0000", "pre-patch-2.3.17-1.gz"),
Version("2.3.17", "2.3.17pre1", "Tue Sep 7 19:10:33 1999 +0000"),
Version("2.3.18pre1", "2.3.17", "Thu Sep 9 17:14:38 1999 +0000", "pre-patch-2.3.18-1.gz"),
Version("2.3.18pre2", "2.3.18pre1", "Thu Sep 9 22:22:06 1999 +0000", "pre-patch-2.3.18-2.gz", patch_base="2.3.17"),
Version("2.3.18", "2.3.18pre2", "Fri Sep 10 20:15:51 1999 +0000"),
Version("2.3.19pre1", "2.3.18", "Thu Sep 30 14:41:18 1999 +0000", "pre-patch-2.3.19-1.gz"),
Version("2.3.19pre2", "2.3.19pre1", "Sat Oct 2 09:07:58 1999 +0000", "pre-patch-2.3.19-2-for-alan-only.gz", patch_base="2.3.18"),
Version("2.3.19", "2.3.19pre2", "Mon Oct 4 21:54:06 1999 +0000"),
Version("2.3.20pre1", "2.3.19", "Thu Oct 7 13:14:51 1999 +0000", "pre-patch-2.3.20-1.gz"),
Version("2.3.20pre2", "2.3.20pre1", "Thu Oct 7 18:07:25 1999 +0000", "pre-patch-2.3.20-2.gz", patch_base="2.3.19"),
Version("2.3.20", "2.3.20pre2", "Sat Oct 9 18:25:51 1999 +0000"),
Version("2.3.21pre1", "2.3.20", "Mon Oct 11 11:04:58 1999 +0000", "pre-patch-2.3.21-1-for-alan-only.gz"),
Version("2.3.21", "2.3.21pre1", "Mon Oct 11 22:30:56 1999 +0000"),
Version("2.3.22pre1", "2.3.21", "Wed Oct 13 15:12:26 1999 +0000", "pre-patch-2.3.22-1.gz"),
Version("2.3.22pre2", "2.3.22pre1", "Thu Oct 14 14:59:46 1999 +0000", "pre-patch-2.3.22-2.gz", patch_base="2.3.21"),
Version("2.3.22pre3", "2.3.22pre2", "Fri Oct 15 09:16:03 1999 +0000", "pre-patch-2.3.22-3.gz", patch_base="2.3.21"),
Version("2.3.22", "2.3.22pre3", "Fri Oct 15 22:10:22 1999 +0000"),
Version("2.3.23pre1", "2.3.22", "Sat Oct 16 10:58:51 1999 +0000", "pre-patch-2.3.23-1.gz"),
Version("2.3.23pre2", "2.3.23pre1", "Mon Oct 18 18:05:08 1999 +0000", "pre-patch-2.3.23-2.gz", patch_base="2.3.22"),
Version("2.3.23pre3", "2.3.23pre2", "Tue Oct 19 11:21:45 1999 +0000", "pre-patch-2.3.23-3.gz", patch_base="2.3.22"),
Version("2.3.23pre4", "2.3.23pre3", "Tue Oct 19 12:36:21 1999 +0000", "pre-patch-2.3.23-4.gz", patch_base="2.3.22"),
Version("2.3.23pre5", "2.3.23pre4", "Wed Oct 20 16:46:42 1999 +0000", "pre-patch-2.3.23-5.gz", patch_base="2.3.22"),
Version("2.3.23pre6", "2.3.23pre5", "Fri Oct 22 11:44:52 1999 +0000", "pre-patch-2.3.23-6.gz", patch_base="2.3.22"),
Version("2.3.23", "2.3.23pre6", "Fri Oct 22 20:03:03 1999 +0000"),
Version("2.3.24pre1", "2.3.23", "Mon Oct 25 11:23:51 1999 +0000", "pre-patch-2.3.24-1.gz"),
Version("2.3.24pre2", "2.3.24pre1", "Tue Oct 26 13:03:33 1999 +0000", "pre-patch-2.3.24-2.gz", patch_base="2.3.23"),
Version("2.3.24pre3", "2.3.24pre2", "Tue Oct 26 17:33:02 1999 +0000", "pre-patch-2.3.24-3.gz", patch_base="2.3.23"),
Version("2.3.24", "2.3.24pre3", "Wed Oct 27 23:20:41 1999 +0000"),
Version("2.3.25pre1", "2.3.24", "Thu Oct 28 16:29:44 1999 +0000", "pre-patch-2.3.25-1.gz"),
Version("2.3.25pre2", "2.3.25pre1", "Fri Oct 29 17:07:23 1999 +0000", "pre-patch-2.3.25-2.gz", patch_base="2.3.24"),
Version("2.3.25pre3", "2.3.25pre2", "Sun Oct 31 00:19:22 1999 +0000", "pre-patch-2.3.25-3.gz", patch_base="2.3.24"),
Version("2.3.25", "2.3.25pre3", "Mon Nov 1 21:50:08 1999 +0000"),
Version("2.3.26pre1", "2.3.25", "Thu Nov 4 10:39:03 1999 +0000", "pre-patch-2.3.26-1.gz"),
Version("2.3.26pre2", "2.3.26pre1", "Thu Nov 4 16:40:49 1999 +0000", "pre-patch-2.3.26-2.gz", patch_base="2.3.25"),
Version("2.3.26pre3", "2.3.26pre2", "Sat Nov 6 10:40:31 1999 +0000", "pre-patch-2.3.26-3.gz", patch_base="2.3.25"),
Version("2.3.26", "2.3.26pre3", "Sun Nov 7 03:23:46 1999 +0000"),
Version("2.3.27pre1", "2.3.26", "Mon Nov 8 11:54:58 1999 +0000", "pre-patch-2.3.27-1.gz"),
Version("2.3.27pre2", "2.3.27pre1", "Mon Nov 8 18:01:12 1999 +0000", "pre-patch-2.3.27-2.gz", patch_base="2.3.26"),
Version("2.3.27pre3", "2.3.27pre2", "Tue Nov 9 09:29:52 1999 +0000", "pre-patch-2.3.27-3.gz", patch_base="2.3.26"),
Version("2.3.27pre4", "2.3.27pre3", "Tue Nov 9 11:56:37 1999 +0000", "pre-patch-2.3.27-4.gz", patch_base="2.3.26"),
Version("2.3.27pre5", "2.3.27pre4", "Tue Nov 9 19:39:07 1999 +0000", "pre-patch-2.3.27-5.gz", patch_base="2.3.26"),
Version("2.3.27pre6", "2.3.27pre5", "Wed Nov 10 16:09:01 1999 +0000", "pre-patch-2.3.27-6.gz", patch_base="2.3.26"),
Version("2.3.27", "2.3.27pre6", "Fri Nov 12 01:09:48 1999 +0000"),
Version("2.3.28", "2.3.27", "Fri Nov 12 21:22:56 1999 +0000"),
Version("2.3.29pre1", "2.3.28", "Thu Nov 18 21:17:46 1999 +0000", "pre-patch-2.3.29-1.gz"),
Version("2.3.29pre2", "2.3.29pre1", "Fri Nov 19 21:16:10 1999 +0000", "pre-patch-2.3.29-2.gz", patch_base="2.3.28"),
Version("2.3.29pre3", "2.3.29pre2", "Sat Nov 20 16:34:20 1999 +0000", "pre-patch-2.3.29-3.gz", patch_base="2.3.28"),
Version("2.3.29", "2.3.29pre3", "Wed Nov 24 06:23:11 1999 +0000"),
Version("2.3.30pre1", "2.3.29", "Wed Nov 24 14:11:48 1999 +0000", "pre-patch-2.3.30-1.gz"),
Version("2.3.30pre2", "2.3.30pre1", "Thu Nov 25 09:22:42 1999 +0000", "pre-patch-2.3.30-2.gz", patch_base="2.3.29"),
Version("2.3.30pre3", "2.3.30pre2", "Sat Nov 27 16:27:44 1999 +0000", "pre-patch-2.3.30-3.gz", patch_base="2.3.29"),
Version("2.3.30pre4", "2.3.30pre3", "Thu Dec 2 20:03:01 1999 +0000", "pre-patch-2.3.30-4.gz", patch_base="2.3.29"),
Version("2.3.30pre5", "2.3.30pre4", "Thu Dec 2 20:31:31 1999 +0000", "pre-patch-2.3.30-5.gz", patch_base="2.3.29"),
Version("2.3.30pre6", "2.3.30pre5", "Fri Dec 3 15:27:31 1999 +0000", "pre-patch-2.3.30-6.gz", patch_base="2.3.29"),
Version("2.3.30pre7", "2.3.30pre6", "Mon Dec 6 15:39:12 1999 +0000", "pre-patch-2.3.30-7.gz", patch_base="2.3.29"),
Version("2.3.30", "2.3.30pre7", "Tue Dec 7 01:29:00 1999 +0000"),
Version("2.3.31pre1", "2.3.30", "Tue Dec 7 14:34:37 1999 +0000", "pre-patch-2.3.31-1.gz"),
Version("2.3.31", "2.3.31pre1", "Wed Dec 8 18:56:58 1999 +0000"),
Version("2.3.32pre1", "2.3.31", "Wed Dec 8 14:00:01 1999 +0000", "pre-patch-2.3.32-1.gz"),
Version("2.3.32pre2", "2.3.32pre1", "Wed Dec 8 15:21:45 1999 +0000", "pre-patch-2.3.32-2.gz", patch_base="2.3.31"),
Version("2.3.32pre3", "2.3.32pre2", "Sun Dec 12 23:30:55 1999 +0000", "pre-patch-2.3.32-3.gz", patch_base="2.3.31"),
Version("2.3.32pre4", "2.3.32pre3", "Mon Dec 13 14:12:28 1999 +0000", "pre-patch-2.3.32-4.gz", patch_base="2.3.31"),
Version("2.3.32", "2.3.32pre4", "Tue Dec 14 09:01:31 1999 +0000"),
Version("2.3.33", "2.3.32", "Tue Dec 14 21:24:55 1999 +0000"),
Version("2.3.34pre1", "2.3.33", "Thu Dec 16 17:06:37 1999 +0000", "pre-patch-2.3.34-1.gz"),
Version("2.3.34pre2", "2.3.34pre1", "Fri Dec 17 16:59:34 1999 +0000", "pre-patch-2.3.34-2.gz", patch_base="2.3.33"),
Version("2.3.34pre3", "2.3.34pre2", "Mon Dec 20 15:43:01 1999 +0000", "pre-patch-2.3.34-3.gz", patch_base="2.3.33"),
Version("2.3.34", "2.3.34pre3", "Tue Dec 21 01:52:46 1999 +0000"),
Version("2.3.35pre1", "2.3.34", "Tue Dec 21 14:40:32 1999 +0000", "pre-patch-2.3.35-1.gz"),
Version("2.3.35pre2", "2.3.35pre1", "Wed Dec 22 17:38:27 1999 +0000", "pre-patch-2.3.35-2.gz", patch_base="2.3.34"),
Version("2.3.35pre3", "2.3.35pre2", "Thu Dec 23 00:08:44 1999 +0000", "pre-patch-2.3.35-3.gz", patch_base="2.3.34"),
Version("2.3.35pre4", "2.3.35pre3", "Sun Dec 26 02:31:46 1999 +0000", "pre-patch-2.3.35-4.gz", patch_base="2.3.34"),
Version("2.3.35pre6", "2.3.35pre4", "Sun Dec 26 12:33:09 1999 +0000", "pre-patch-2.3.35-6.gz", patch_base="2.3.34"),
Version("2.3.35", "2.3.35pre6", "Wed Dec 29 06:48:47 1999 +0000"),
Version("2.3.36pre1", "2.3.35", "Wed Dec 29 17:29:43 1999 +0000", "pre-patch-2.3.36-1.gz"),
Version("2.3.36pre2", "2.3.36pre1", "Thu Dec 30 17:23:56 1999 +0000", "pre-patch-2.3.36-2.gz", patch_base="2.3.35"),
Version("2.3.36pre3", "2.3.36pre2", "Fri Dec 31 00:25:33 1999 +0000", "pre-patch-2.3.36-3.gz", patch_base="2.3.35"),
Version("2.3.36pre5", "2.3.36pre3", "Sun Jan 2 00:56:33 2000 +0000", "pre-patch-2.3.36-5.gz", patch_base="2.3.35"),
Version("2.3.36pre6", "2.3.36pre5", "Mon Jan 3 17:06:38 2000 +0000", "pre-patch-2.3.36-6.gz", patch_base="2.3.35"),
Version("2.3.36", "2.3.36pre6", "Tue Jan 4 21:55:26 2000 +0000"),
Version("2.3.37", "2.3.36", "Thu Jan 6 20:36:34 2000 +0000"),
Version("2.3.38pre1", "2.3.37", "Thu Jan 6 16:39:31 2000 +0000", "pre-patch-2.3.38-1.gz"),
Version("2.3.38", "2.3.38pre1", "Sat Jan 8 01:59:43 2000 +0000"),
Version("2.3.39pre1", "2.3.38", "Sat Jan 8 13:03:07 2000 +0000", "pre-patch-2.3.39-1.gz"),
Version("2.3.39pre2", "2.3.39pre1", "Sat Jan 8 18:21:25 2000 +0000", "pre-patch-2.3.39-2.gz", patch_base="2.3.38"),
Version("2.3.39", "2.3.39pre2", "Tue Jan 11 02:56:10 2000 +0000"),
Version("2.3.40pre1", "2.3.39", "Tue Jan 11 22:31:23 2000 +0000", "pre-patch-2.3.40-1.gz"),
Version("2.3.40pre2", "2.3.40pre1", "Thu Jan 13 13:45:34 2000 +0000", "pre-patch-2.3.40-2.gz", patch_base="2.3.39"),
Version("2.3.40pre3", "2.3.40pre2", "Thu Jan 13 22:35:27 2000 +0000", "pre-patch-2.3.40-3.gz", patch_base="2.3.39"),
Version("2.3.40pre4", "2.3.40pre3", "Fri Jan 14 19:49:56 2000 +0000", "pre-patch-2.3.40-4.gz", patch_base="2.3.39"),
Version("2.3.40pre5", "2.3.40pre4", "Sun Jan 16 20:47:26 2000 +0000", "pre-patch-2.3.40-5-for-al.gz", patch_base="2.3.39"),
Version("2.3.40pre6", "2.3.40pre5", "Tue Jan 18 22:29:17 2000 +0000", "pre-patch-2.3.40-6.gz", patch_base="2.3.39"),
Version("2.3.40", "2.3.40pre6", "Fri Jan 21 00:40:38 2000 +0000"),
Version("2.3.41pre1", "2.3.40", "Fri Jan 21 18:18:41 2000 +0000", "pre-patch-2.3.41-1.gz"),
Version("2.3.41pre2", "2.3.41pre1", "Sat Jan 22 12:31:10 2000 +0000", "pre-patch-2.3.41-2.gz", patch_base="2.3.40"),
Version("2.3.41pre3", "2.3.41pre2", "Mon Jan 24 16:08:28 2000 +0000", "pre-patch-2.3.41-3.gz", patch_base="2.3.40"),
Version("2.3.41pre4", "2.3.41pre3", "Thu Jan 27 10:52:14 2000 +0000", "pre-patch-2.3.41-4.gz", patch_base="2.3.40"),
Version("2.3.41", "2.3.41pre4", "Fri Jan 28 19:46:39 2000 +0000"),
Version("2.3.42pre1", "2.3.41", "Mon Jan 31 10:34:12 2000 +0000", "pre-patch-2.3.42-1.gz"),
Version("2.3.42", "2.3.42pre1", "Tue Feb 1 09:31:13 2000 +0000"),
Version("2.3.43pre1", "2.3.42", "Mon Feb 7 11:21:50 2000 +0000", "pre-patch-2.3.43-1.gz"),
Version("2.3.43pre2", "2.3.43pre1", "Mon Feb 7 20:16:10 2000 +0000", "pre-patch-2.3.43-2.gz", patch_base="2.3.42"),
Version("2.3.43pre3", "2.3.43pre2", "Tue Feb 8 12:30:10 2000 +0000", "pre-patch-2.3.43-3.gz", patch_base="2.3.42"),
Version("2.3.43pre4", "2.3.43pre3", "Tue Feb 8 14:55:35 2000 +0000", "pre-patch-2.3.43-4.gz", patch_base="2.3.42"),
Version("2.3.43pre5", "2.3.43pre4", "Tue Feb 8 18:58:25 2000 +0000", "pre-patch-2.3.43-5.gz", patch_base="2.3.42"),
Version("2.3.43pre6", "2.3.43pre5", "Wed Feb 9 15:20:13 2000 +0000", "pre-patch-2.3.43-6.gz", patch_base="2.3.42"),
Version("2.3.43pre7", "2.3.43pre6", "Wed Feb 9 21:01:48 2000 +0000", "pre-patch-2.3.43-7.gz", patch_base="2.3.42"),
Version("2.3.43pre8", "2.3.43pre7", "Wed Feb 9 21:28:42 2000 +0000", "pre-patch-2.3.43-8.gz", patch_base="2.3.42"),
Version("2.3.43", "2.3.43pre8", "Thu Feb 10 20:44:27 2000 +0000"),
Version("2.3.44pre1", "2.3.43", "Thu Feb 10 17:07:27 2000 +0000", "pre-patch-2.3.44-1.gz"),
Version("2.3.44pre2", "2.3.44pre1", "Thu Feb 10 19:12:16 2000 +0000", "pre-patch-2.3.44-2.gz", patch_base="2.3.43"),
Version("2.3.44pre3", "2.3.44pre2", "Thu Feb 10 22:42:35 2000 +0000", "pre-patch-2.3.44-3.gz", patch_base="2.3.43"),
Version("2.3.44pre4", "2.3.44pre3", "Fri Feb 11 08:52:18 2000 +0000", "pre-patch-2.3.44-4.gz", patch_base="2.3.43"),
Version("2.3.44pre5", "2.3.44pre4", "Fri Feb 11 10:19:32 2000 +0000", "pre-patch-2.3.44-5.gz", patch_base="2.3.43"),
Version("2.3.44pre6", "2.3.44pre5", "Fri Feb 11 11:20:12 2000 +0000", "pre-patch-2.3.44-6.gz", patch_base="2.3.43"),
Version("2.3.44pre7", "2.3.44pre6", "Fri Feb 11 12:52:37 2000 +0000", "pre-patch-2.3.44-7.gz", patch_base="2.3.43"),
Version("2.3.44pre8", "2.3.44pre7", "Fri Feb 11 13:52:18 2000 +0000", "pre-patch-2.3.44-8.gz", patch_base="2.3.43"),
Version("2.3.44pre9", "2.3.44pre8", "Sat Feb 12 09:27:14 2000 +0000", "pre-patch-2.3.44-9.gz", patch_base="2.3.43"),
Version("2.3.44pre10", "2.3.44pre9", "Sat Feb 12 09:55:02 2000 +0000", "pre-patch-2.3.44-10.gz", patch_base="2.3.43"),
Version("2.3.44", "2.3.44pre10", "Sat Feb 12 19:13:30 2000 +0000"),
Version("2.3.45pre1", "2.3.44", "Sun Feb 13 10:47:01 2000 +0000", "pre-patch-2.3.45-1.gz"),
Version("2.3.45pre2", "2.3.45pre1", "Sun Feb 13 11:21:43 2000 +0000", "pre-patch-2.3.45-2.gz", patch_base="2.3.44"),
Version("2.3.45", "2.3.45pre2", "Mon Feb 14 03:16:44 2000 +0000"),
Version("2.3.46pre1", "2.3.45", "Mon Feb 14 09:45:42 2000 +0000", "pre-patch-2.3.46-1.gz"),
Version("2.3.46pre2", "2.3.46pre1", "Tue Feb 15 11:53:24 2000 +0000", "pre-patch-2.3.46-2.gz", patch_base="2.3.45"),
Version("2.3.46pre3", "2.3.46pre2", "Tue Feb 15 22:39:01 2000 +0000", "pre-patch-2.3.46-3.gz", patch_base="2.3.45"),
Version("2.3.46pre4", "2.3.46pre3", "Wed Feb 16 12:59:58 2000 +0000", "pre-patch-2.3.46-4.gz", patch_base="2.3.45"),
Version("2.3.46pre5", "2.3.46pre4", "Wed Feb 16 15:42:06 2000 +0000", "pre-patch-2.3.46-5.gz", patch_base="2.3.45"),
Version("2.3.46", "2.3.46pre5", "Wed Feb 16 23:45:54 2000 +0000"),
Version("2.3.47pre1", "2.3.46", "Thu Feb 17 10:10:20 2000 +0000", "pre-patch-2.3.47-1.gz"),
Version("2.3.47pre2", "2.3.47pre1", "Thu Feb 17 10:27:04 2000 +0000", "pre-patch-2.3.47-2.gz", patch_base="2.3.46"),
Version("2.3.47pre3", "2.3.47pre2", "Thu Feb 17 11:42:50 2000 +0000", "pre-patch-2.3.47-3.gz", patch_base="2.3.46"),
Version("2.3.47pre4", "2.3.47pre3", "Fri Feb 18 11:50:34 2000 +0000", "pre-patch-2.3.47-4.gz", patch_base="2.3.46"),
Version("2.3.47pre5", "2.3.47pre4", "Fri Feb 18 15:07:20 2000 +0000", "pre-patch-2.3.47-5.gz", patch_base="2.3.46"),
Version("2.3.47pre6", "2.3.47pre5", "Fri Feb 18 16:33:58 2000 +0000", "pre-patch-2.3.47-6.gz", patch_base="2.3.46"),
Version("2.3.47pre7", "2.3.47pre6", "Sun Feb 20 10:41:18 2000 +0000", "pre-patch-2.3.47-7.gz", patch_base="2.3.46"),
Version("2.3.47pre8", "2.3.47pre7", "Sun Feb 20 20:41:00 2000 +0000", "pre-patch-2.3.47-8.gz", patch_base="2.3.46"),
Version("2.3.47", "2.3.47pre8", "Mon Feb 21 05:06:15 2000 +0000"),
Version("2.3.48pre1", "2.3.47", "Wed Feb 23 12:47:22 2000 +0000", "pre-patch-2.3.48-1.gz"),
Version("2.3.48pre2", "2.3.48pre1", "Thu Feb 24 22:56:47 2000 +0000", "pre-patch-2.3.48-2.gz", patch_base="2.3.47"),
Version("2.3.48pre3", "2.3.48pre2", "Fri Feb 25 17:38:43 2000 +0000", "pre-patch-2.3.48-3.gz", patch_base="2.3.47"),
Version("2.3.48pre4", "2.3.48pre3", "Sat Feb 26 08:25:35 2000 +0000", "pre-patch-2.3.48-4.gz", patch_base="2.3.47"),
Version("2.3.48", "2.3.48pre4", "Sun Feb 27 05:33:30 2000 +0000"),
Version("2.3.49pre1", "2.3.48", "Sun Feb 27 18:45:10 2000 +0000", "pre-patch-2.3.49-1.gz"),
Version("2.3.49pre2", "2.3.49pre1", "Tue Feb 29 15:34:18 2000 +0000", "pre-patch-2.3.49-2.gz", patch_base="2.3.48"),
Version("2.3.49", "2.3.49pre2", "Thu Mar 2 22:26:41 2000 +0000"),
Version("2.3.50pre1", "2.3.49", "Sat Mar 4 10:10:14 2000 +0000", "pre-patch-2.3.50-1.gz"),
Version("2.3.50pre2", "2.3.50pre1", "Sun Mar 5 09:35:07 2000 +0000", "pre-patch-2.3.50-2.gz", patch_base="2.3.49"),
Version("2.3.50pre3", "2.3.50pre2", "Tue Mar 7 11:13:24 2000 +0000", "pre-patch-2.3.50-3.gz", patch_base="2.3.49"),
Version("2.3.50", "2.3.50pre3", "Tue Mar 7 22:05:14 2000 +0000"),
Version("2.3.51pre1", "2.3.50", "Thu Mar 9 15:56:51 2000 +0000", "pre-patch-2.3.51-1.gz"),
Version("2.3.51pre2", "2.3.51pre1", "Thu Mar 9 17:41:37 2000 +0000", "pre-patch-2.3.51-2.gz", patch_base="2.3.50"),
Version("2.3.51pre3", "2.3.51pre2", "Fri Mar 10 15:34:53 2000 +0000", "pre-patch-2.3.51-3.gz", patch_base="2.3.50"),
Version("2.3.51", "2.3.51pre3", "Sat Mar 11 00:20:26 2000 +0000"),
Version("2.3.52pre1", "2.3.51", "Sun Mar 12 20:19:16 2000 +0000", "pre-patch-2.3.52-1.gz"),
Version("2.3.52pre2", "2.3.52pre1", "Mon Mar 13 10:23:36 2000 +0000", "pre-patch-2.3.52-2.gz", patch_base="2.3.51"),
Version("2.3.52pre3", "2.3.52pre2", "Mon Mar 13 13:55:14 2000 +0000", "pre-patch-2.3.52-3.gz", patch_base="2.3.51"),
Version("2.3.99pre1", "2.3.52pre3", "Wed Mar 15 03:01:35 2000 +0000", dir_name="2.3.99-pre1"),
Version("2.3.99pre2-1", "2.3.99pre1", "Wed Mar 15 19:50:50 2000 +0000", "pre2-1.gz", dir_name="2.3.99-pre2-1"),
Version("2.3.99pre2-2", "2.3.99pre2-1", "Thu Mar 16 10:58:32 2000 +0000", "pre2-2.gz", patch_base="2.3.99pre1", dir_name="2.3.99-pre2-2"),
Version("2.3.99pre2-3", "2.3.99pre2-2", "Thu Mar 16 14:09:26 2000 +0000", "pre2-3.gz", patch_base="2.3.99pre1", dir_name="2.3.99-pre2-3"),
Version("2.3.99pre2-4", "2.3.99pre2-3", "Fri Mar 17 18:34:02 2000 +0000", "pre2-4.gz", patch_base="2.3.99pre1", dir_name="2.3.99-pre2-4"),
Version("2.3.99pre2-5", "2.3.99pre2-4", "Sat Mar 18 11:49:37 2000 +0000", "pre2-5.gz", patch_base="2.3.99pre1", dir_name="2.3.99-pre2-5"),
Version("2.3.99pre2", "2.3.99pre2-5", "Sun Mar 19 19:15:48 2000 +0000", dir_name="2.3.99-pre2"),
Version("2.3.99pre3-1", "2.3.99pre2", "Sun Mar 19 20:33:34 2000 +0000", "pre3-1.gz", dir_name="2.3.99-pre3-1"),
Version("2.3.99pre3-2", "2.3.99pre3-1", "Sun Mar 19 21:21:28 2000 +0000", "pre3-2.gz", patch_base="2.3.99pre2", dir_name="2.3.99-pre3-2"),
Version("2.3.99pre3-3", "2.3.99pre3-2", "Mon Mar 20 08:28:25 2000 +0000", "pre3-3.gz", patch_base="2.3.99pre2", dir_name="2.3.99-pre3-3"),
Version("2.3.99pre3-4", "2.3.99pre3-3", "Tue Mar 21 14:43:39 2000 +0000", "pre3-4.gz", patch_base="2.3.99pre2", dir_name="2.3.99-pre3-4"),
Version("2.3.99pre3-5", "2.3.99pre3-4", "Tue Mar 21 17:33:16 2000 +0000", "pre3-5.gz", patch_base="2.3.99pre2", dir_name="2.3.99-pre3-5"),
Version("2.3.99pre3-6", "2.3.99pre3-5", "Wed Mar 22 00:14:11 2000 +0000", "pre3-6.gz", patch_base="2.3.99pre2", dir_name="2.3.99-pre3-6"),
Version("2.3.99pre3-7", "2.3.99pre3-6", "Wed Mar 22 17:56:32 2000 +0000", "pre3-7.gz", patch_base="2.3.99pre2", dir_name="2.3.99-pre3-7"),
Version("2.3.99pre3-8", "2.3.99pre3-7", "Thu Mar 23 13:11:49 2000 +0000", "pre3-8.gz", patch_base="2.3.99pre2", dir_name="2.3.99-pre3-8"),
Version("2.3.99pre3", "2.3.99pre3-8", "Fri Mar 24 07:36:35 2000 +0000", dir_name="2.3.99-pre3"),
Version("2.3.99pre4-1", "2.3.99pre3", "Tue Mar 28 18:06:09 2000 +0000", "pre4-1.gz", dir_name="2.3.99-pre4-1"),
Version("2.3.99pre4-2", "2.3.99pre4-1", "Thu Mar 30 18:00:54 2000 +0000", "pre4-2.gz", patch_base="2.3.99pre3", dir_name="2.3.99-pre4-2"),
Version("2.3.99pre4-3", "2.3.99pre4-2", "Sun Apr 2 17:42:16 2000 +0000", "pre4-3.gz", patch_base="2.3.99pre3", dir_name="2.3.99-pre4-3"),
Version("2.3.99pre4-4", "2.3.99pre4-3", "Tue Apr 4 19:25:14 2000 +0000", "pre4-4.gz", patch_base="2.3.99pre3", dir_name="2.3.99-pre4-4"),
Version("2.3.99pre4-5", "2.3.99pre4-4", "Fri Apr 7 14:07:15 2000 +0000", "pre4-5.gz", patch_base="2.3.99pre3", dir_name="2.3.99-pre4-5"),
Version("2.3.99pre4", "2.3.99pre4-5", "Tue Apr 11 19:20:12 2000 +0000", dir_name="2.3.99-pre4"),
Version("2.3.99pre5", "2.3.99pre4", "Wed Apr 12 00:36:39 2000 +0000", dir_name="2.3.99-pre5"),
Version("2.3.99pre6-1", "2.3.99pre5", "Wed Apr 12 10:03:02 2000 +0000", "pre6-1.gz", dir_name="2.3.99-pre6-1"),
Version("2.3.99pre6-2", "2.3.99pre6-1", "Thu Apr 13 10:51:44 2000 +0000", "pre6-2.gz", patch_base="2.3.99pre5", dir_name="2.3.99-pre6-2"),
Version("2.3.99pre6-3", "2.3.99pre6-2", "Fri Apr 14 10:11:01 2000 +0000", "pre6-3.gz", patch_base="2.3.99pre5", dir_name="2.3.99-pre6-3"),
Version("2.3.99pre6-4", "2.3.99pre6-3", "Fri Apr 21 15:56:02 2000 +0000", "pre6-4.gz", patch_base="2.3.99pre5", dir_name="2.3.99-pre6-4"),
Version("2.3.99pre6-5", "2.3.99pre6-4", "Fri Apr 21 16:38:55 2000 +0000", "pre6-5.gz", patch_base="2.3.99pre5", dir_name="2.3.99-pre6-5"),
Version("2.3.99pre6-6", "2.3.99pre6-5", "Mon Apr 24 17:57:42 2000 +0000", "pre6-6.gz", patch_base="2.3.99pre5", dir_name="2.3.99-pre6-6"),
Version("2.3.99pre6-7", "2.3.99pre6-6", "Tue Apr 25 17:58:46 2000 +0000", "pre6-7.gz", patch_base="2.3.99pre5", dir_name="2.3.99-pre6-7"),
Version("2.3.99pre6", "2.3.99pre6-7", "Wed Apr 26 22:51:42 2000 +0000", dir_name="2.3.99-pre6"),
Version("2.3.99pre7-1", "2.3.99pre6", "Fri Apr 28 23:05:24 2000 +0000", "pre7-1.gz", dir_name="2.3.99-pre7-1"),
Version("2.3.99pre7-2", "2.3.99pre7-1", "Tue May 2 17:38:58 2000 +0000", "pre7-2.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-2"),
Version("2.3.99pre7-3", "2.3.99pre7-2", "Wed May 3 01:50:26 2000 +0000", "pre7-3.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-3"),
Version("2.3.99pre7-4", "2.3.99pre7-3", "Wed May 3 17:23:01 2000 +0000", "pre7-4.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-4"),
Version("2.3.99pre7-5", "2.3.99pre7-4", "Thu May 4 16:57:40 2000 +0000", "pre7-5.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-5"),
Version("2.3.99pre7-6", "2.3.99pre7-5", "Fri May 5 13:48:44 2000 +0000", "pre7-6.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-6"),
Version("2.3.99pre7-7", "2.3.99pre7-6", "Mon May 8 19:04:21 2000 +0000", "pre7-7.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-7"),
Version("2.3.99pre7-8", "2.3.99pre7-7", "Mon May 8 22:21:58 2000 +0000", "pre7-8.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-8"),
Version("2.3.99pre7-9", "2.3.99pre7-8", "Wed May 10 16:57:18 2000 +0000", "pre7-9.gz", patch_base="2.3.99pre6", dir_name="2.3.99-pre7-9"),
Version("2.3.99pre7", "2.3.99pre7-9", "Thu May 11 21:51:58 2000 +0000", dir_name="2.3.99-pre7"),
Version("2.3.99pre8", "2.3.99pre7", "Fri May 12 20:51:07 2000 +0000", dir_name="2.3.99-pre8"),
Version("2.3.99pre9-1", "2.3.99pre8", "Sat May 13 08:33:26 2000 +0000", "pre9-1.gz", dir_name="2.3.99-pre9-1"),
Version("2.3.99pre9-2", "2.3.99pre9-1", "Mon May 15 14:54:33 2000 +0000", "pre9-2.gz", patch_base="2.3.99pre8", dir_name="2.3.99-pre9-2"),
Version("2.3.99pre9-3", "2.3.99pre9-2", "Sat May 20 23:36:27 2000 +0000", "pre9-3.gz", patch_base="2.3.99pre8", dir_name="2.3.99-pre9-3"),
Version("2.3.99pre9-4", "2.3.99pre9-3", "Mon May 22 23:24:17 2000 +0000", "pre9-4.gz", patch_base="2.3.99pre8", dir_name="2.3.99-pre9-4"),
Version("2.3.99pre9-5", "2.3.99pre9-4", "Tue May 23 10:46:50 2000 +0000", "pre9-5.gz", patch_base="2.3.99pre8", dir_name="2.3.99-pre9-5"),
Version("2.3.99pre9", "2.3.99pre9-5", "Tue May 23 22:15:37 2000 +0000", dir_name="2.3.99-pre9"),
Version("2.3.99pre10-1", "2.3.99pre9", "Wed May 24 15:14:59 2000 +0000", "pre10-1.gz", dir_name="2.3.99-pre10-1"),
Version("2.3.99pre10-2", "2.3.99pre10-1", "Wed May 24 15:50:59 2000 +0000", "pre10-2.gz", patch_base="2.3.99pre9", dir_name="2.3.99-pre10-2"),
Version("2.3.99pre10-3", "2.3.99pre10-2", "Wed May 24 19:53:20 2000 +0000", "pre10-3.gz", patch_base="2.3.99pre9", dir_name="2.3.99-pre10-3"),
Version("2.4.0-test1", "2.3.99pre10-3", "Thu May 25 16:35:27 2000 +0000"),
Version("2.4.0-test2pre1", "2.4.0-test1", "Mon Jun 19 16:35:54 2000 +0000", "test2-pre1.gz"),
Version("2.4.0-test2pre2", "2.4.0-test2pre1", "Mon Jun 19 18:49:22 2000 +0000", "test2-pre2.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre3", "2.4.0-test2pre2", "Tue Jun 20 07:57:28 2000 +0000", "test2-pre3.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre4", "2.4.0-test2pre3", "Tue Jun 20 08:06:35 2000 +0000", "test2-pre4.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre5", "2.4.0-test2pre4", "Tue Jun 20 14:42:31 2000 +0000", "test2-pre5.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre6", "2.4.0-test2pre5", "Wed Jun 21 07:49:51 2000 +0000", "test2-pre6.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre7", "2.4.0-test2pre6", "Wed Jun 21 15:58:06 2000 +0000", "test2-pre7.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre8", "2.4.0-test2pre7", "Wed Jun 21 17:25:57 2000 +0000", "test2-pre8.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre9", "2.4.0-test2pre8", "Wed Jun 21 21:25:00 2000 +0000", "test2-pre9.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre10", "2.4.0-test2pre9", "Wed Jun 21 22:31:03 2000 +0000", "test2-pre10.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre11", "2.4.0-test2pre10", "Thu Jun 22 07:34:20 2000 +0000", "test2-pre11.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2pre12", "2.4.0-test2pre11", "Fri Jun 23 19:50:50 2000 +0000", "test2-pre12.gz", patch_base="2.4.0-test1"),
Version("2.4.0-test2", "2.4.0-test2pre12", "Sat Jun 24 04:42:07 2000 +0000"),
Version("2.4.0-test3pre1", "2.4.0-test2", "Mon Jun 26 12:51:56 2000 +0000", "test3-pre1.gz"),
Version("2.4.0-test3pre2", "2.4.0-test3pre1", "Thu Jun 29 16:41:14 2000 +0000", "test3-pre2.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3pre3", "2.4.0-test3pre2", "Wed Jul 5 13:54:21 2000 +0000", "test3-pre3.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3pre4", "2.4.0-test3pre3", "Wed Jul 5 16:49:28 2000 +0000", "test3-pre4.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3pre5", "2.4.0-test3pre4", "Thu Jul 6 20:14:06 2000 +0000", "test3-pre5.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3pre6", "2.4.0-test3pre5", "Fri Jul 7 18:20:16 2000 +0000", "test3-pre6.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3pre7", "2.4.0-test3pre6", "Sat Jul 8 19:47:19 2000 +0000", "test3-pre7.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3pre8", "2.4.0-test3pre7", "Sun Jul 9 22:32:58 2000 +0000", "test3-pre8.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3pre9", "2.4.0-test3pre8", "Mon Jul 10 15:37:07 2000 +0000", "test3-pre9.gz", patch_base="2.4.0-test2"),
Version("2.4.0-test3", "2.4.0-test3pre9", "Mon Jul 10 23:22:00 2000 +0000", alias_of="2.4.0-test3pre9"),
Version("2.4.0-test4pre1", "2.4.0-test3", "Tue Jul 11 11:23:37 2000 +0000", "test4-pre1.gz"),
Version("2.4.0-test4pre2", "2.4.0-test4pre1", "Tue Jul 11 14:29:02 2000 +0000", "test4-pre2.gz", patch_base="2.4.0-test3"),
Version("2.4.0-test4pre3", "2.4.0-test4pre2", "Tue Jul 11 16:51:22 2000 +0000", "test4-pre3.gz", patch_base="2.4.0-test3"),
Version("2.4.0-test4pre4", "2.4.0-test4pre3", "Wed Jul 12 10:12:13 2000 +0000", "test4-pre4.gz", patch_base="2.4.0-test3"),
Version("2.4.0-test4pre5", "2.4.0-test4pre4", "Wed Jul 12 17:27:36 2000 +0000", "test4-pre5.gz", patch_base="2.4.0-test3"),
Version("2.4.0-test4pre6", "2.4.0-test4pre5", "Wed Jul 12 21:58:44 2000 +0000", "test4-pre6.gz", patch_base="2.4.0-test3"),
Version("2.4.0-test4", "2.4.0-test4pre6", "Thu Jul 13 22:08:10 2000 +0000"),
Version("2.4.0-test5pre1", "2.4.0-test4", "Fri Jul 14 12:25:56 2000 +0000", "test5-pre1.gz"),
Version("2.4.0-test5pre2", "2.4.0-test5pre1", "Mon Jul 17 17:16:22 2000 +0000", "test5-pre2.gz", patch_base="2.4.0-test4"),
Version("2.4.0-test5pre3", "2.4.0-test5pre2", "Wed Jul 19 00:06:37 2000 +0000", "test5-pre3.gz", patch_base="2.4.0-test4"),
Version("2.4.0-test5pre4", "2.4.0-test5pre3", "Fri Jul 21 22:16:09 2000 +0000", "test5-pre4.gz", patch_base="2.4.0-test4"),
Version("2.4.0-test5pre5", "2.4.0-test5pre4", "Tue Jul 25 18:36:17 2000 +0000", "test5-pre5.gz", patch_base="2.4.0-test4"),
Version("2.4.0-test5pre6", "2.4.0-test5pre5", "Wed Jul 26 18:21:34 2000 +0000", "test5-pre6.gz", patch_base="2.4.0-test4"),
Version("2.4.0-test5", "2.4.0-test5pre6", "Fri Jul 28 00:15:25 2000 +0000"),
Version("2.4.0-test6pre1", "2.4.0-test5", "Mon Jul 31 15:46:48 2000 +0000", "test6-pre1.gz"),
Version("2.4.0-test6pre2", "2.4.0-test6pre1", "Thu Aug 3 17:24:59 2000 +0000", "test6-pre2.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre3", "2.4.0-test6pre2", "Fri Aug 4 15:37:48 2000 +0000", "test6-pre3.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre4", "2.4.0-test6pre3", "Fri Aug 4 18:38:44 2000 +0000", "test6-pre4.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre5", "2.4.0-test6pre4", "Fri Aug 4 19:08:30 2000 +0000", "test6-pre5.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre6", "2.4.0-test6pre5", "Sun Aug 6 13:09:41 2000 +0000", "test6-pre6.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre7", "2.4.0-test6pre6", "Mon Aug 7 14:43:21 2000 +0000", "test6-pre7.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre8", "2.4.0-test6pre7", "Mon Aug 7 21:08:25 2000 +0000", "test6-pre8.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre9", "2.4.0-test6pre8", "Tue Aug 8 15:35:40 2000 +0000", "test6-pre9.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6pre10", "2.4.0-test6pre9", "Wed Aug 9 14:24:09 2000 +0000", "test6-pre10.gz", patch_base="2.4.0-test5"),
Version("2.4.0-test6", "2.4.0-test6pre10", "Thu Aug 10 02:07:48 2000 +0000"),
Version("2.4.0-test7pre1", "2.4.0-test6", "Fri Aug 11 08:26:44 2000 +0000", "test7-pre1.gz"),
Version("2.4.0-test7pre2", "2.4.0-test7pre1", "Fri Aug 11 17:56:52 2000 +0000", "test7-pre2.gz", patch_base="2.4.0-test6"),
Version("2.4.0-test7pre3", "2.4.0-test7pre2", "Sat Aug 12 20:45:48 2000 +0000", "test7-pre3.gz", patch_base="2.4.0-test6"),
Version("2.4.0-test7pre4", "2.4.0-test7pre3", "Mon Aug 14 10:19:55 2000 +0000", "test7-pre4.gz", patch_base="2.4.0-test6"),
Version("2.4.0-test7pre5", "2.4.0-test7pre4", "Thu Aug 17 23:34:28 2000 +0000", "test7-pre5.gz", patch_base="2.4.0-test6"),
Version("2.4.0-test7pre6", "2.4.0-test7pre5", "Mon Aug 21 09:44:36 2000 +0000", "test7-pre6.gz", patch_base="2.4.0-test6"),
Version("2.4.0-test7pre7", "2.4.0-test7pre6", "Tue Aug 22 11:58:53 2000 +0000", "test7-pre7.gz", patch_base="2.4.0-test6"),
Version("2.4.0-test7", "2.4.0-test7pre7", "Wed Aug 23 22:01:44 2000 +0000"),
Version("2.4.0-test8pre1", "2.4.0-test7", "Mon Aug 28 17:54:13 2000 +0000", "test8-pre1.gz"),
Version("2.4.0-test8pre2", "2.4.0-test8pre1", "Sat Sep 2 11:49:23 2000 +0000", "test8-pre2.gz", patch_base="2.4.0-test7"),
Version("2.4.0-test8pre3", "2.4.0-test8pre2", "Sun Sep 3 15:01:45 2000 +0000", "test8-pre3.for-al-only.gz", patch_base="2.4.0-test7"),
Version("2.4.0-test8pre4", "2.4.0-test8pre3", "Sun Sep 3 23:13:40 2000 +0000", "test8-pre4.gz", patch_base="2.4.0-test7"),
Version("2.4.0-test8pre5", "2.4.0-test8pre4", "Tue Sep 5 15:07:12 2000 +0000", "test8-pre5.gz", patch_base="2.4.0-test7"),
Version("2.4.0-test8pre6", "2.4.0-test8pre5", "Wed Sep 6 15:03:28 2000 +0000", "test8-pre6.gz", patch_base="2.4.0-test7"),
Version("2.4.0-test8", "2.4.0-test8pre6", "Fri Sep 8 20:13:45 2000 +0000"),
Version("2.4.0-test9pre1", "2.4.0-test8", "Fri Sep 15 18:24:17 2000 +0000", "test9-pre1.gz"),
Version("2.4.0-test9pre2", "2.4.0-test9pre1", "Sun Sep 17 10:15:35 2000 +0000", "test9-pre2.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9pre3", "2.4.0-test9pre2", "Mon Sep 18 15:43:47 2000 +0000", "test9-pre3.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9pre4", "2.4.0-test9pre3", "Mon Sep 18 20:23:44 2000 +0000", "test9-pre4.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9pre5", "2.4.0-test9pre4", "Wed Sep 20 14:36:11 2000 +0000", "test9-pre5.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9pre6", "2.4.0-test9pre5", "Fri Sep 22 15:21:56 2000 +0000", "test9-pre6.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9pre7", "2.4.0-test9pre6", "Mon Sep 25 16:18:55 2000 +0000", "test9-pre7.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9pre8", "2.4.0-test9pre7", "Sun Oct 1 20:35:16 2000 +0000", "test9-pre8.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9pre9", "2.4.0-test9pre8", "Mon Oct 2 14:22:59 2000 +0000", "test9-pre9.gz", patch_base="2.4.0-test8"),
Version("2.4.0-test9", "2.4.0-test9pre9", "Tue Oct 3 16:30:18 2000 +0000"),
Version("2.4.0-test10pre1", "2.4.0-test9", "Mon Oct 9 14:48:13 2000 +0000", "test10-pre1.gz"),
Version("2.4.0-test10pre2", "2.4.0-test10pre1", "Thu Oct 12 12:57:31 2000 +0000", "test10-pre2.gz", patch_base="2.4.0-test9"),
Version("2.4.0-test10pre3", "2.4.0-test10pre2", "Fri Oct 13 17:10:20 2000 +0000", "test10-pre3.gz", patch_base="2.4.0-test9"),
Version("2.4.0-test10pre4", "2.4.0-test10pre3", "Wed Oct 18 15:28:18 2000 +0000", "test10-pre4.gz", patch_base="2.4.0-test9"),
Version("2.4.0-test10pre5", "2.4.0-test10pre4", "Mon Oct 23 17:15:22 2000 +0000", "test10-pre5.gz", patch_base="2.4.0-test9"),
Version("2.4.0-test10pre6", "2.4.0-test10pre5", "Thu Oct 26 23:35:48 2000 +0000", "test10-pre6.gz", patch_base="2.4.0-test9"),
Version("2.4.0-test10pre7", "2.4.0-test10pre6", "Mon Oct 30 11:24:13 2000 +0000", "test10-pre7.gz", patch_base="2.4.0-test9"),
Version("2.4.0-test10", "2.4.0-test10pre7", "Tue Oct 31 20:24:04 2000 +0000"),
Version("2.4.0-test11pre1", "2.4.0-test10", "Tue Nov 7 12:39:39 2000 +0000", "test11-pre1.gz"),
Version("2.4.0-test11pre2", "2.4.0-test11pre1", "Thu Nov 9 17:38:20 2000 +0000", "test11-pre2.gz", patch_base="2.4.0-test10"),
Version("2.4.0-test11pre3", "2.4.0-test11pre2", "Sat Nov 11 19:17:17 2000 +0000", "test11-pre3.gz", patch_base="2.4.0-test10"),
Version("2.4.0-test11pre4", "2.4.0-test11pre3", "Sun Nov 12 19:39:52 2000 +0000", "test11-pre4.gz", patch_base="2.4.0-test10"),
Version("2.4.0-test11pre5", "2.4.0-test11pre4", "Tue Nov 14 13:35:17 2000 +0000", "test11-pre5.gz", patch_base="2.4.0-test10"),
Version("2.4.0-test11pre6", "2.4.0-test11pre5", "Thu Nov 16 18:26:18 2000 +0000", "test11-pre6.gz", patch_base="2.4.0-test10"),
Version("2.4.0-test11pre7", "2.4.0-test11pre6", "Fri Nov 17 17:04:34 2000 +0000", "test11-pre7.gz", patch_base="2.4.0-test10"),
Version("2.4.0-test11", "2.4.0-test11pre7", "Mon Nov 20 01:23:32 2000 +0000"),
Version("2.4.0-test12pre1", "2.4.0-test11", "Mon Nov 27 17:11:30 2000 +0000", "test12-pre1.gz"),
Version("2.4.0-test12pre2", "2.4.0-test12pre1", "Mon Nov 27 18:13:25 2000 +0000", "test12-pre2.gz", patch_base="2.4.0-test11"),
Version("2.4.0-test12pre3", "2.4.0-test12pre2", "Tue Nov 28 22:43:39 2000 +0000", "test12-pre3.gz", patch_base="2.4.0-test11"),
Version("2.4.0-test12pre4", "2.4.0-test12pre3", "Sun Dec 3 18:11:35 2000 +0000", "test12-pre4.gz", patch_base="2.4.0-test11"),
Version("2.4.0-test12pre5", "2.4.0-test12pre4", "Mon Dec 4 19:02:58 2000 +0000", "test12-pre5.gz", patch_base="2.4.0-test11"),
Version("2.4.0-test12pre6", "2.4.0-test12pre5", "Tue Dec 5 23:15:12 2000 +0000", "test12-pre6.gz", patch_base="2.4.0-test11"),
Version("2.4.0-test12pre7", "2.4.0-test12pre6", "Wed Dec 6 16:13:33 2000 +0000", "test12-pre7.gz", patch_base="2.4.0-test11"),
Version("2.4.0-test12pre8", "2.4.0-test12pre7", "Sun Dec 10 10:27:54 2000 +0000", "test12-pre8.gz", patch_base="2.4.0-test11"),
Version("2.4.0-test12", "2.4.0-test12pre8", "Tue Dec 12 01:46:04 2000 +0000"),
Version("2.4.0-test13pre1", "2.4.0-test12", "Wed Dec 13 17:58:53 2000 +0000", "test13-pre1.gz"),
Version("2.4.0-test13pre2", "2.4.0-test13pre1", "Fri Dec 15 18:29:45 2000 +0000", "test13-pre2.gz", patch_base="2.4.0-test12"),
Version("2.4.0-test13pre3", "2.4.0-test13pre2", "Sun Dec 17 12:25:35 2000 +0000", "test13-pre3.gz", patch_base="2.4.0-test12"),
Version("2.4.0-test13pre4", "2.4.0-test13pre3", "Thu Dec 21 16:51:20 2000 +0000", "test13-pre4.gz", patch_base="2.4.0-test12"),
Version("2.4.0-test13pre5", "2.4.0-test13pre4", "Thu Dec 28 11:32:12 2000 +0000", "test13-pre5.gz", patch_base="2.4.0-test12"),
Version("2.4.0-test13pre6", "2.4.0-test13pre5", "Fri Dec 29 15:38:33 2000 +0000", "test13-pre6.gz", patch_base="2.4.0-test12"),
Version("2.4.0-test13pre7", "2.4.0-test13pre6", "Sat Dec 30 11:26:10 2000 +0000", "test13-pre7.gz", patch_base="2.4.0-test12"),
Version("2.4.0-prerelease", "2.4.0-test13pre7", "Sun Dec 31 19:44:02 2000 +0000"),
]
# fmt: on
def dirname_of(name: str) -> str:
return _DIR_NAME_OVERRIDES.get(name, name)
def tree_dir(name: str) -> Path:
return UNPACK / version_subdir(name) / f"linux-{dirname_of(name)}"
def changelog_path(v: Version) -> Path:
return CHANGELOGS / version_subdir(v.name) / f"{v.name}.txt"
_DIR_NAME_OVERRIDES: dict[str, str] = {
v.name: v.dir_name for v in VERSIONS if v.dir_name
}