1= History of GIFLIB =
2
3GIF (Graphics Interchange Format) was originally developed on the
4CompuServe timesharing service in the late 1980s.  It was described
5by a GIF standard issued in 1987 and revised in 1989.  A copy of the
6GIF89 standard is included in the doc/ directory.
7
8This code originated as a linkable library for DOS programs, together
9with command-line tools for generating and viewing and analyzing GIF
10images. The DOS code was written by Gershon Elber using Borland C
11under MS-DOS sometime between the issue of GIF87 and mid-1989 (1.0 was
12dated 14 June 1989; one portion, getarg.c, was dated 11 Mar 88).
13
14At some time no later than the end of 1989 Eric S. Raymond (aka "ESR")
15ported this DOS version to System V Unix. Between 1989 and 1992 ESR
16reworked various portions of the API, improving and simplifying
17the code's interface.
18
19ESR's 2.1 version was the first to include the DGifSlurp()/EGifSpew()
20function pair for enabling non-sequential operations on GIF images
21(also the tools icon2gif, gifovly, and gifcompose; the last was
22removed in 5.0).
23
24ESR's Unix port was incorporated into the NCSA Mosaic browser in 1994,
25which is how GIF became (with JPEG) one of the two most popular image
26formats on the early Web.
27
28Beginning around 1993, patent claims by Unisys over the LZW
29compression method used in GIF theatened adverse legal consequences
30for users and developers of programs incorporating the format. The
31threats became serious in 1999, with Unisys demanding license fees
32for any software using the format.
33
34One response to this was the development of PNG in 1995. Another was
35that ESR sought a lead developer outside the U.S. to hand the project off
36to, and passed it to Toshio Kuratomi.  ESR remembers this as happening
37in 1994, but that date could be wrong as some headers imply 3.0 was issued
38under  ESR's name in 1996.  But other files do date Toshio's first release
39to 1994.  Toshio shipped 4.0 in December 1998.
40
41Subsequently, the project shipped for some time as "libungif" with
42support for compressed GIFs removed to avoid the LZW patent issues.
43Compression support was merged back in after the last blocking patent
44expired in 2004; this became release 4.0.0.  After that merge the
45code was again known as giflib.
46
47By 2006, support for PNGs was sufficiently universal that GIF could be
48described as a legacy format.  Anything you can do with it GIF could
49probably be better done with PNG. Nevertheless (and despite efforts
50like "Burn All GIFs Day" in November 1999) the GIF format has remained
51widely popular.
52
53In April 2012 ESR rejoined the project to do some code cleanups
54and auditing, and Toshio Kuratomi asked him to take back the lead.
55ESR released version 4.2 in May 2012.
56
57Version 5.0, released in June 2012, fulfilled almost all the to-do
58items from 18 years of backlog.  It made the library thread-safe, added
59direct support for GIF89 graphics control blocks, and tossed out large
60amounts of obsolete utility code.
61
62More recent version of the code (5.1.0 and onwards) have been hardened
63by both static analysis and fuzz testing.  While these failed to turn
64up bugs in normal rendering cases, they did uncover some crash and
65corruption bugs that could be tickled by carefully crafted malformed
66GIFs.
67
68This code is very old, very stable, and *everywhere* - browsers
69game consoles, smartphones, pretty much everything that opens an
70HTTP port and does graphics uses it.
71
72The utilities in this source tree were important as GIF production
73tools early in the format's history, but have been superseded by
74multi-format viewers and editors.  Most installable binary packages
75shipped as 'giflib' include the library and header file only.
76