summaryrefslogtreecommitdiffstats
path: root/libkcal/libical/vzic-1.3/README
diff options
context:
space:
mode:
Diffstat (limited to 'libkcal/libical/vzic-1.3/README')
-rw-r--r--libkcal/libical/vzic-1.3/README202
1 files changed, 0 insertions, 202 deletions
diff --git a/libkcal/libical/vzic-1.3/README b/libkcal/libical/vzic-1.3/README
deleted file mode 100644
index 962ff2e67..000000000
--- a/libkcal/libical/vzic-1.3/README
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-VZIC README
-===========
-
-This is 'vzic', a program to convert the Olson timezone database files into
-VTIMEZONE files compatible with the iCalendar specification (RFC2445).
-
-(The name is based on the 'zic' program which converts the Olson files into
-time zone information files used by several Unix C libraries, including
-glibc. See zic(8) and tzfile(5).)
-
-
-
-REQUIREMENTS
-============
-
-You need the Olson timezone database files, which can be found at:
-
- ftp://elsie.nci.nih.gov/pub/
-
- (Old versions can be found at ftp://munnari.oz.au/pub/oldtz/)
-
-
-Vzic also uses the GLib library (for hash tables, dynamic arrays, and date
-calculations). You need version 2.0 or higher. You can get this from:
-
- http://www.gtk.org
-
-
-
-BUILDING
-========
-
-Edit the Makefile to set the OLSON_DIR, PRODUCT_ID and TZID_PREFIX variables.
-
-Then run 'make'.
-
-
-
-RUNNING
-=======
-
-Run 'vzic'.
-
-The output is placed in the zoneinfo subdirectory by default,
-but you can use the --output-dir options to set another toplevel output
-directory.
-
-By default it outputs VTIMEZONEs that try to be compatible with Outlook
-(2000, at least). Outlook can't handle certain iCalendar constructs in
-VTIMEZONEs, such as RRULEs using BYMONTHDAY, so it has to adjust the RRULEs
-slightly to get Outlook to parse them. Unfortunately this means they are
-slightly wrong. If given the --pure option, vzic outputs the exact data,
-without worrying about compatability.
-
-NOTE: We don't convert all the Olson files. We skip 'backward', 'etcetera',
-'leapseconds', 'pacificnew', 'solar87', 'solar88' and 'solar89', 'factory'
-and 'systemv', since these don't really provide any useful timezones.
-See vzic.c.
-
-
-
-MERGING CHANGES INTO A MASTER SET OF VTIMEZONES
-===============================================
-
-The Olson timezone files are updated fairly often, so we need to build new
-sets of VTIMEZONE files. Though we have to be careful to ensure that the TZID
-of updated timezones is also updated, since it must remain unique.
-
-We use a version number on the end of the TZID prefix (see the TZIDPrefix
-variable in vzic-output.c) to ensure this uniqueness.
-
-But we don't want to update the version numbers of VTIMEZONEs which have not
-changed. So we use the vzic-merge.pl Perl script. This merges in the new set
-of VTIMEZONEs with a 'master' set. It compares each new VTIMEZONE file with
-the one in the master set (ignoring changes to the TZID). If the new
-VTIMEZONE file is different, it copies it to the master set and sets the
-version number to the old VTIMEZONE's version number + 1.
-
-To use vzic-merge.pl you must change the $MASTER_ZONEINFO_DIR and
-$NEW_ZONEINFO_DIR variables at the top of the file to point to your 2 sets of
-VTIMEZONEs. You then just run the script. (I recommend you keep a backup of
-the old master VTIMEZONE files, and use diff to compare the new master set
-with the old one, in case anything goes wrong.)
-
-You must merge in changes to the zones.tab file by hand.
-
-Note that some timezones are renamed or removed occasionally, so applications
-should be able to cope with this.
-
-
-
-COMPATABILITY NOTES
-===================
-
-It seems that Microsoft Outlook is very picky about the iCalendar files it
-will accept. (I've been testing with Outlook 2000. I hope the other versions
-are no worse.) Here's a few problems we've had with the VTIMEZONEs:
-
- o Outlook doesn't like any years before 1600. We were using '1st Jan 0001'
- in all VTIMEZONEs to specify the first UTC offset known for the timezone.
- (The Olson data does not give a start date for this.)
-
- Now we just skip this first component for most timezones. The UTC offset
- can still be found from the TZOFFSETFROM property of the first component.
-
- Though some timezones only specify one UTC offset that applies forever,
- so in these cases we output '1st Jan 1970' (Indian/Cocos,
- Pacific/Johnston).
-
- o Outlook doesn't like the BYMONTHDAY specifier in RRULEs.
-
- We have changed most of the VTIMEZONEs to use things like 'BYDAY=2SU'
- rather than 'BYMONTHDAY=8,9,10,11,12,13,14;BYDAY=SU', though some of
- them were impossible to convert correctly so they are not always correct.
-
- o Outlook doesn't like TZOFFSETFROM/TZOFFSETTO properties which include a
- seconds component, e.g. 'TZOFFSETFROM:+110628'.
- Quite a lot of the Olson timezones include seconds in their UTC offsets,
- though no timezones currently have a UTC offset that uses the seconds
- value.
-
- We've rounded all UTC offsets to the nearest minute. Since all timezone
- offsets currently used have '00' as the seconds offset, this doesn't lose
- us much.
-
- o Outlook doesn't like lines being split in certain places, even though
- the iCalendar spec says they can be split anywhere.
-
- o Outlook can only handle one RDATE or a pair of RRULEs. So we had to remove
- all historical data.
-
-
-TESTING
-=======
-
-Do a 'make test-vic', then run ./test-vic.
-
-The test-vzic program compares our libical code and VTIMEZONE data against
-the Unix functions like mktime(). It steps over a period of time (1970-2037)
-converting from UTC to a given timezone and back again every 15 minutes.
-Any differences are output into the test-output directory.
-
-The output matches for all of the timezones, except in a few places where the
-result can't be determined. So I think we can be fairly confident that the
-VTIMEZONEs are correct.
-
-Note that you must use the same Olson data in libical that the OS is using
-for mktime() etc. For example, I am using RedHat 9 which uses tzdata2002d,
-so I converted this to VTIMEZONE files and installed it into the libical
-timezone data directory before testing. (You need to use '--pure' when
-creating the VTIMEZONE files as well.)
-
-
-Testing the Parsing Code
-------------------------
-
-Run 'make test-parse'.
-
-This runs 'vzic --dump' and 'perl-dump' and compares the output. The diff
-commands should not produce any output.
-
-'vzic --dump' dumps all the parsed data out in the original Olson format,
-but without comments. The files are written into the ZonesVzic and RulesVzic
-subdirectories of the zoneinfo directory.
-
-'make perl-dump' runs the vzic-dump.pl perl script which outputs the files
-in the same format as 'vzic --dump' in the ZonesPerl and RulesPerl
-subdirectories. The perl script doesn't actually parse the fields; it only
-strips comments and massages the fields so we have the same output format.
-
-Currently they both produce exactly the same output so we know the parsing
-code is OK.
-
-
-Testing the VTIMEZONE Files
----------------------------
-
-Run 'make test-changes'.
-
-This runs 'vzic --dump-changes' and 'test-vzic --dump-changes' and compares
-the output. The diff command should not produce any output.
-
-Both commands output timezone changes for each zone up to a specific year
-(2030) into files for each timezone. It outputs the timezone changes in a
-list in this format:
-
- Timezone Name Date and Time of Change in UTC New Offset from UTC
-
- America/Dawson 26 Oct 1986 2:00:00 -0800
-
-Unfortunately there are some differences here, but they all happen before
-1970 so it doesn't matter too much. It looks like the libical code has
-problems determining things like 'last Sunday of the month' before 1970.
-This is because it uses mktime() etc. which can't really handle dates
-before 1970.
-
-
-
-Damon Chaplin <damon@gnome.org>, 25 Oct 2003.
-