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