Imported Upstream version 58.1
[platform/upstream/icu.git] / source / tools / tzcode / readme.txt
1 * Copyright (C) 2016 and later: Unicode, Inc. and others.
2 * License & terms of use: http://www.unicode.org/copyright.html
3 **********************************************************************
4 * Copyright (c) 2003-2014, International Business Machines
5 * Corporation and others.  All Rights Reserved.
6 **********************************************************************
7 * Author: Alan Liu
8 * Created: August 18 2003
9 * Since: ICU 2.8
10 **********************************************************************
11
12 Note:  this directory currently contains tzcode as of tzcode2014b.tar.gz
13    with localtime.c  patches from tzcode2014b.tar.gz
14
15
16 ----------------------------------------------------------------------
17 OVERVIEW
18
19 This file describes the tools in icu/source/tools/tzcode
20
21 The purpose of these tools is to process the zoneinfo or "Olson" time
22 zone database into a form usable by ICU4C (release 2.8 and later).
23 Unlike earlier releases, ICU4C 2.8 supports historical time zone
24 behavior, as well as the full set of Olson compatibility IDs.
25
26 References:
27
28 ICU4C:  http://www.icu-project.org/
29 Olson:  ftp://ftp.iana.org/tz/releases/
30
31 ----------------------------------------------------------------------
32 ICU4C vs. ICU4J
33
34 For ICU releases >= 2.8, both ICU4C and ICU4J implement full
35 historical time zones, based on Olson data.  The implementations in C
36 and Java are somewhat different.  The C implementation is a
37 self-contained implementation, whereas ICU4J uses the underlying JDK
38 1.3 or 1.4 time zone implementation.
39
40 Older versions of ICU (C and Java <= 2.6) implement a "present day
41 snapshot".  This only reflects current time zone behavior, without
42 historical variation.  Furthermore, it lacks the full set of Olson
43 compatibility IDs.
44
45 ----------------------------------------------------------------------
46 BACKGROUND
47
48 The zoneinfo or "Olson" time zone package is used by various systems
49 to describe the behavior of time zones.  The package consists of
50 several parts.  E.g.:
51
52   Index of ftp://ftp.iana.org/tz/releases/
53
54   tzcode2014b.tar.gz      172 KB       3/25/2014     05:11:00 AM
55   tzdata2014b.tar.gz      216 KB       3/25/2014     05:11:00 AM
56
57 ICU only uses the tzdataYYYYV.tar.gz files,
58 where YYYY is the year and V is the version letter ('a'...'z').
59
60 This directory has partial contents of tzcode checked into ICU
61
62 ----------------------------------------------------------------------
63 HOWTO
64
65 0. Note, these instructions will only work on POSIX type systems.
66
67 1. Obtain the current versions of tzdataYYYYV.tar.gz (aka `tzdata') from
68    the FTP site given above.  Either manually download or use wget:
69
70    $ cd {path_to}/icu/source/tools/tzcode
71    $ wget "ftp://ftp.iana.org/tz/releases/tzdata*.tar.gz"
72
73 2. Copy only one tzdata*.tar.gz file into the icu/source/tools/tzcode/
74    directory (this directory).
75
76    *** Make sure you only have ONE FILE named tzdata*.tar.gz in the
77        directory.
78
79 3. Build ICU normally. You will see a notice "updating zoneinfo.txt..."
80
81 ### Following instructions for ICU maintainers only ###
82
83 4. Obtain the current version of tzcodeYYYY.tar.gz from the FTP site to
84    this directory.
85
86 5. Run make target "check-dump".  This target extract makes the original
87    tzcode and compile the original tzdata with icu supplemental data
88    (icuzones).  Then it makes zdump / icuzdump and dump all time
89    transitions for all ICU timezone to files under zdumpout / icuzdumpout
90    directory.  When they produce different results, the target returns
91    the error.
92
93 6. Don't forget to check in the new zoneinfo64.txt (from its location at
94    {path_to}/icu/source/data/misc/zoneinfo64.txt) into SVN.
95