= History of GIFLIB =

GIF (Graphics Interchange Format) was originally developed on the
CompuServe timesharing service in the late 1980s.  It was described
by a GIF standard issued in 1987 and revised in 1989.  A copy of the
GIF89 standard is included in the doc/ directory.

This code originated as a linkable library for DOS programs, together
with command-line tools for generating and viewing and analyzing GIF
images. The DOS code was written by Gershon Elber using Borland C
under MS-DOS sometime between the issue of GIF87 and mid-1989 (1.0 was
dated 14 June 1989; one portion, getarg.c, was dated 11 Mar 88).

At some time no later than the end of 1989 Eric S. Raymond (aka "ESR")
ported this DOS version to System V Unix. Between 1989 and 1992 ESR
reworked various portions of the API, improving and simplifying 
the code's interface.

ESR's 2.1 version was the first to include the DGifSlurp()/EGifSpew()
function pair for enabling non-sequential operations on GIF images
(also the tools icon2gif, gifovly, and gifcompose; the last was
removed in 5.0).

ESR's Unix port was incorporated into the NCSA Mosaic browser in 1994,
which is how GIF became (with JPEG) one of the two most popular image
formats on the early Web.

Beginning around 1993, patent claims by Unisys over the LZW
compression method used in GIF theatened adverse legal consequences
for users and developers of programs incorporating the format. The
threats became serious in 1999, with Unisys demanding license fees
for any software using the format.

One response to this was the development of PNG in 1995. Another was
that ESR sought a lead developer outside the U.S. to hand the project off 
to, and passed it to Toshio Kuratomi.  ESR remembers this as happening
in 1994, but that date could be wrong as some headers imply 3.0 was issued
under  ESR's name in 1996.  But other files do date Toshio's first release
to 1994.  Toshio shipped 4.0 in December 1998.

Subsequently, the project shipped for some time as "libungif" with
support for compressed GIFs removed to avoid the LZW patent issues.
Compression support was merged back in after the last blocking patent
expired in 2004; this became release 4.0.0.  After that merge the
code was again known as giflib.

By 2006, support for PNGs was sufficiently universal that GIF could be
described as a legacy format.  Anything you can do with it GIF could
probably be better done with PNG. Nevertheless (and despite efforts
like "Burn All GIFs Day" in November 1999) the GIF format has remained
widely popular.

In April 2012 ESR rejoined the project to do some code cleanups 
and auditing, and Toshio Kuratomi asked him to take back the lead.
ESR released version 4.2 in May 2012.

Version 5.0, released in June 2012, fulfilled almost all the to-do
items from 18 years of backlog.  It made the library thread-safe, added
direct support for GIF89 graphics control blocks, and tossed out large
amounts of obsolete utility code.

More recent version of the code (5.1.0 and onwards) have been hardened
by both static analysis and fuzz testing.  While these failed to turn
up bugs in normal rendering cases, they did uncover some crash and
corruption bugs that could be tickled by carefully crafted malformed
GIFs.

This code is very old, very stable, and *everywhere* - browsers
game consoles, smartphones, pretty much everything that opens an
HTTP port and does graphics uses it.

The utilities in this source tree were important as GIF production
tools early in the format's history, but have been superseded by
multi-format viewers and editors.  Most installable binary packages
shipped as 'giflib' include the library and header file only.
