Commit graph

48 commits

Author SHA1 Message Date
adam
d774deab54 Changes 5.0.5:
This release sets the error return properly when a screen descriptor read fails, and fixes minor API documentation bugs.
2013-08-31 18:41:33 +00:00
joerg
9af677954b Add missing include to make gif_lib.h self-contained. 2013-08-13 10:20:47 +00:00
ryoon
f2e33ed300 Update to 5.0.4
Changelog:

Version 5.0.4
=============

Fix for a rare misrendering bug when a GIF overruns the decompression-code
table. The image on which this was spotted was a relatively long-running
animated GIF; still images of ordinary size should have been immune.

Version 5.0.3
=============

Fix a build-system glitch so it will install manpages.

Version 5.0.2
=============

Documentation and polish
------------------------
* Partial build is now possible on systems without xmlto.

Code Fixes
----------
* Change unused return of EGifSetGifVersion() to void.
* Buffer overrun prevention in gifinto.

Version 5.0.1
=============

Documentation and polish
------------------------
* There is now an installable manual page for the GIFLIB utility kit.

Retirements
-----------
* gifinter is gone.  Use convert -interlace from the ImageMagic suite.

Code Fixes
----------
* In 5.0.0 the private gif89 bit wasn't being guaranteed cleared at
  the beginning of EGifGetGifVersion(); this occasionally led to an
  incorrect version prefix being issued dependent on the state of
  malloced memory.
* An EGifSetGifVersion() function taking a GifFile argument has been
  added for use with the low-level sequential API. This change requires
  a bump of the library revision number.

Version 5.0.0
=============

Changes to the API require a library major-version bump. Certain
initialization functions have acquired an integer address argument for
passing back an error code, in order to avoid thread-unsafe static
storage. Application code using extension blocks will require minor
changes. A few functions have been renamed.

Code Fixes
----------
* Fixes applied for CVE-2005-2974 and CVE-2005-3350
  This closes Debian bug #337972.

New API Features
----------------

Thread Safety
~~~~~~~~~~~~~
The library is now completely re-entrant and thread-safe.

* Library error handling no longer uses a static cell to store the last
  error code registered; that made the library thread-unsafe.  For functions
  other than GIF file openers, the code is now put in an Error member of
  the GifFileType structure.  The GifError() amd GifLastError() functions
  that referenced that static cell are gone, and the GifErrorString()
  function introduced in the 4.2 release now takes an explicit error code
  argument.
* GIF file openers - DGifOpenFileName(), DGifOpenFileHandle(), DGifOpen(),
  EGifOpenFileName(), EGifOpenFileHandle(), and EGifOpen() - all now take
  a final integer address argument.  If non-null, this is used to pass
  back an error code when the function returns NULL.

Extensions
~~~~~~~~~~
The ExtensionBlock API has been repaired, solving some problems with GIF89
extension handling in earlier versions.

* DGifSlurp() and EGifSpew() now preserve trailing extension blocks with
  no following image file.
* Three documented functions - EGifPutExtensionFirst(), EGifPutExtensionNext(),
  and EGifPutExtensionLast() - have been relaced by new functions
  EGifPutExtensionLeader(), EGifPutExtensionBlock(), and
  EGifPutExtensionTrailer().  See the Compatibility section of
  the library API documentation for details.
* New functions DGifSavedExtensionToGCB() and EGifGCBToSavedExtension()
  make it easy to read and edit GIF89 graphics control blocks in saved images.

Namespacing
~~~~~~~~~~~
All functions exported by giflib now have DGif, EGif, or Gif as a name prefix.

* Three documented functions - MakeMapObject(), FreeMapObject(), and
  UnionColorMap() - have been renamed to GifMakeMapObject(),
  GifFreeMapObject(), and GifUnionColorMap() respectively.
* The library Draw* functions are now prefixed GifDraw*, and the
  text-drawing ones are suffixed with "8x8". This fixes a conflict
  with the Windows API and leaves the door open for more general text-drawing
  functions with different font sizes.

Other changes
~~~~~~~~~~~~~
* DGifSlurp() and EGifSpew() now read and write interlaced images properly.
* The amazingly obscure colormap sort flag and pixel aspect ratio
  features of GIF are now read and preserved, for whatever good that
  may do.
* Six undocumented functions have been renamed; five of these take additional
  or slightly different argument types. See the Compatibility section of
  the library API documentation for details.
* There's now an EGifGetGifVersion() that computes the version EGifSpew()
  will write.
* QuantizeBuffer() has been returned to the core library as GifQuantizeBuffer()
  - turns out some important applications (notably mplayer) were using it.
* TRUE and FALSE macros are gone, also VoidPtr.  No more namespace pollution.
* Various arguments have been made const where possible.

Retirements
-----------
* The (undocumented) gifinfo utility is gone.  Use giftool -f instead.
* The gifburst utility is gone.  Everybody has image viewers that
  can pan now, and removing it gets rid of a dependency on Perl.
* gifcompose is gone.  It was a decent idea when I wrote it in 1989,
  but I did the same thing better and cleaner a decade later with
  PILdriver in the PIL package. Removing it gets rid of a dependency
  on shell.
* gif2x11 gifasm, gifcomb, gifflip, gifovly, gifpos, gifresize, and gifrotate
  are all gone.  The ImageMagick display(1)/convert(1) utilities and PILdriver
  do these things better and in a format-independent way.
* Lennie Araki's Windows C++ wrapper is gone. It's eight years old,
  unmaintained, he has dropped out of sight, and a better one needs to
  be written to use the high-level GIFLIB API and GIF89 graphics
  control extension support.  We'll carry such a wrapper when we have
  a maintainer for it.
* EGifSetVersion(), introduced in 4.2, is gone. The library always
  writes GIF87 or GIF89 as required by the data. This change helps
  with thread safety.

Utilities
---------
* Several utilities have been renamed to (a) fix last-century's habit
  of arbitarily smashing vowels out of names to make them just one or two
  characters shorter, (b) ensure that every utility in this set has 'gif'
  as a name prefix. Here's the list:

	giffiltr -> giffilter
	gifspnge -> gifsponge
	icon2gif -> gifbuild
	text2gif -> gifecho
  	raw2gif  -> gif2raw

* To go with its new name, gif2raw now dumps raw pixels from a GIF if the
  (previously required) size option is missing.
* Standalone rgb2gif is gone; the same capability is now a mode of gif2rgb.
* giftext displays the parsed contents of GIF89 graphics control blocks.
* gifbuild handles GIF89 graphics control blocks and Netscape animation
  loop blocks; it can can display and update either.
* gifrotate and other filter utilities now preserve extension blocks,
  including the graphics control information for transparency and delay time.
* A new utility, giftool, supports a wide variety of filtering operations
  on GIFs, including: setting background and transparency colors, changing
  interlacing, setting image delays, setting the user-input flag, and setting
  the aspect-ratio byte.  It can sequence multiple operations.
* The test-pattern generators gifbg, gifcolor, gihisto and gifwedge and the
  code templates giffilter and gifsponge are no longer installed by default.

Documentation and polish
------------------------
* The history.txt and build.txt and files from 4.2.0 now have .asc extensions
  to indicate that they use asciidoc markup, contrasting with the txt
  standards files from CompuServe.
* The documentation now includes "What's In A GIF", a very detailed narrative
  description of the file format.
* The -A option of gifasm (for inserting a loop control block) is documented.
* The documentation directory includes a copy of the original GIF87
  specification as well as GIF89's.
* The project now has a logo.

Version 4.2.0
=============

Now maintained by ESR again after handoff by Toshio Kuratomi.

Code Fixes
----------
* Code updated internally to C99 to enable more correctness checks by
  the compiler. Compiles under GCC 4.6.1 without errors or warnings.
* A rare resource leak in the colormap-object maker was found with
  Coverity and fixed.
* The code now audits clean under Coverity and cppcheck.
* splint cleanup begun, there's a lot of work still to do on this.

New API Features
----------------
* The default GIF version to write is now computed at write time from
  the types of an image's extension blocks, but can be overridden with
  EGifSetGifVersion().
* EGifSpew() is now thread-safe.
* Two new functions, GifError() and GifErrorString(),
  return the error state in a form that can be used by programs.
* Two library functions - EGifOpenFileName() and EGifPutImageDesc() -
  now have bool rather than int flag arguments. Since bool is a
  typedef of int and TRUE/FALSE have been redefined to true/false,
  both source and object compatibility with older library versions
  should be preserved.
* GAGetArgs(), used only in the utilities, now returns bool rather
  than int.
* The undocumented GIF_LIB_VERSION symbol is gone from the library header.
  It has been replaced with three documented symbols: GIFLIB_MAJOR,
  GIFLIB_MINOR, and GIFLIB_RELEASE.

Retirements
-----------
* The gif2epsn and gif2iris utilities are gone.  They were full of
  platform dependencies for platforms long dead.  There are enough
  platform-independent GIF viewers in the world that these weren't
  adding any value. Removing these gets rid of a dependency on GL.
* The rle2gif, gif2rle, and gif2ps utilities are also gone. There are enough
  multiformat image converters in the world that these weren't adding
  any value either.  Removing them reduces the codebase's dependencies.
* The undocumented DumpScreen2Gif() is gone from the library.  The
  only non-obsolete capture mode it supported was through X, and that
  probably hasn't been used in years and is replaceable by any number
  of capture utilities.  Dropping this code makes the library's
  portability issues go away.
* QuantizeBuffer(), GifQprintf(), PrintGifError(), GIF_ERROR()
  and GIF_MESSAGE() have been removed from the core library.
  They were used only by the utilities. QuantizeBuffer() has been
  inlined where it was used and the latter three are now part of the
  utility support library.
* The Game Boy Advanced test code is gone.  The platform was discontinued
  in 2008; more to the point, nobody ever documented the code's assumptions
  or expected results.
* The Changelog file is now retained for archival purposes only, and because
  autotools throws a hissy fit if there isn't one.  The single point of
  truth about changes and the reasons for them is the repository history.

Behavior changes
----------------
* The -q option of the utilities is replaced by an opposite -v (verbose)
  option; the default is now quiet for all platforms.  Defaulting to chattiness
  on MSDOS made sense in a world of slow text consoles, but not today.

Testing
-------
* There is now a proper regression-test suite; run 'make' in tests/.
  The old test-unx script is now tests/visual-check and can be run
  occasionally for a check with the Mark One Eyeball.

Documentation
-------------
* Build instructions now live in build.txt
* An overview of the giflib API now lives in api.txt.
* Documentation is now in DocBook-XML, so either HTML or man pages can
  be generated from it.
2013-07-05 13:23:20 +00:00
asau
08f35c7155 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-06 14:10:39 +00:00
obache
ee24f44a21 Move common settings for giflib to Makefile.common 2012-02-15 11:08:46 +00:00
drochner
b2e9f7747a split giflib into 2 pkgs: one for the lib, one for cmd line utils 2011-09-06 18:45:45 +00:00
obache
fde6bacf73 Install utils and docs.
Based on PR pkg/45321 by Uwe Klaus.

While here, set LICENSE=mit.

Bump PKGREVISION.
2011-09-03 15:25:01 +00:00
drochner
342d529ccc resolve conflicts 2011-01-18 11:57:53 +00:00
adam
1f4a25e3df Removed giflib - no package depends on it, obsoleted by libungif 2005-03-08 14:15:33 +00:00
jlam
5e5ac5cef9 USE_BUILDLINK3 is a yes/no variable. 2004-11-13 21:28:27 +00:00
tv
c487cb967a Libtool fix for PR pkg/26633, and other issues. Update libtool to 1.5.10
in the process.  (More information on tech-pkg.)

Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.

Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
2004-10-03 00:12:51 +00:00
wiz
aba2830feb Convert to bl3. Remove some cruft. 2004-04-24 00:25:41 +00:00
grant
4083b24390 s/netbsd.org/NetBSD.org/ 2003-07-17 21:31:04 +00:00
jschauma
e366d0c694 Use tech-pkg@ in favor of packages@ as MAINTAINER for orphaned packages.
Should anybody feel like they could be the maintainer for any of thewe packages,
please adjust.
2003-06-02 01:15:31 +00:00
jlam
8fdf4e7f9b buildlink1 -> buildlink2 2002-11-14 23:50:45 +00:00
skrll
b6c9defb47 Remove pre-build target that does the same thing as AUTOMAKE_OVERRIDE 2002-03-05 23:34:27 +00:00
jlam
f79573370a Mechanical changes to 375 files to change dependency patterns of the form
foo-* to foo-[0-9]*.  This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net.  Also
change dependency examples in Packages.txt to reflect this.
2001-09-27 23:17:41 +00:00
jlam
70cf5e59c3 Don't use find ... -print0 | xargs -0 ... as -0 isn't an acceptable option
on Solaris' xargs.
2001-07-14 12:37:45 +00:00
jlam
b7c02290c3 Mirror changes in libungif/Makefile 2001-06-19 04:08:48 +00:00
jlam
7ade8a3d56 Patch configure instead of configure.in so we don't need autoconf as a
build dependency.  Also minimize diffs between giflib/Makefile and
libungif/Makefile.
2001-05-02 15:51:21 +00:00
hubertf
e32afb6fea Change BUILD_DEPENDS semantics:
first component is now a package name+version/pattern, no more
executable/patchname/whatnot.

While there, introduce BUILD_USES_MSGFMT as shorthand to pull in
devel/gettext unless /usr/bin/msgfmt exists (i.e. on post-1.5 -current).

Patch by Alistair Crooks <agc@netbsd.org>
2001-03-27 03:19:43 +00:00
wiz
a2a4d06c6f Update to new COMMENT style: COMMENT var in Makefile instead of pkg/COMMENT. 2001-02-16 15:22:13 +00:00
fredb
46a9e2c3de Make that "autoreconf" -- there is no "autoremake". 2001-02-06 03:16:56 +00:00
tron
f2d262e0be Use full pathname "${LOCALBASE}/bin/auto..." in dependences and make
targets. This includes a fix for PR pkg/12125 by Tomasz Luchowski.
2001-02-05 09:00:54 +00:00
jlam
f1c0cc8744 We have a ${PREFIX}/share/doc/html directory for HTML documentation, so
use it.
2000-12-06 17:14:12 +00:00
jlam
362f1647fc Analogous change to Makefile in libungif: use autoreconf instead of
autoconf.
2000-07-25 04:57:24 +00:00
jlam
944cc9204c Don't pick up stray librle.so if it exists. We don't want to build
translation support to/from GIF and RLE format.  Closes PR#10172.
2000-07-14 09:52:45 +00:00
jlam
15cbf6b3e5 USE_LIBTOOL and LTCONFIG_OVERRIDE instead of pkglibtool and patching
configure.
2000-06-09 05:34:25 +00:00
rh
74add3b300 s/USE_LIBTOOL/USE_PKGLIBTOOL/
Add a new USE_LIBTOOL definition that uses the libtool package instead of
pkglibtool which is now considered outdated.
USE_PKGLIBTOOL is available for backwards compatibility with old packages
but is deprecated for new packages.
2000-06-01 11:23:11 +00:00
itojun
5b56549781 correct HOMEPAGE URL to latest one 2000-02-14 12:50:13 +00:00
drochner
79eecdea37 correct ftp distribution directory 1999-10-25 14:37:32 +00:00
jlam
2503ed322d Update giflib to 4.1.0. Note that installed headers are in a new location.
Changes from version 3.0:

Version 4.1.0
============
* Several minor memory leaks in error conditions have been plugged.
* New Function EGifOpen(void *userData, OutputFunc writeFunc) allows user
  specified gif writing functions.
* Old copyright notices in a few source files have been updated.  All library
  copyrights should now reflect the copyright notice in the COPYING file.

Version 4.0.0 -- giflib
=======================
This version of the giflib library merges Eric Raymond's giflib-3.0 release
with the libungif-4.0 release to give people a binary compatible choice
between the two libraries and gives me the chance to add bugfixes to giflib
that have been incorporated in libungif.

PLEASE READ THE FILE PATENT_PROBLEMS BEFORE USING THIS LIBRARY!

Version 4.0.0
=============
Major fixes have been made to the code that handles Extensions.
Unfortunately, this causes binary incompatibility with giflib-3.0 and
libungif-3.x.  However, the API is still intact.  I am, however, deprecating
the use of saveImage[x].Function.  Use
saveImage[x].ExtensionBlocks[y].Function instead.

Version 3.1.1
=============
 The following bugs which caused SegFaults have been fixed:
 * When reading gif files with extensions, DGifSlurp would violate memory.
 * When closing a gif that had a local colormap, DGifCloseFile would attempt
   to free the colormap twice.
 * Fix a potential memory leak in DGifSlurp.
The following enhancements have been made:
 * New function DGifOpen to allow specifying a user definable gif reading
   function.

Version 3.1.0
=============
 * Add a new function:
        GifFileType *DGifOpen(void * userData, InputFunc readFunc)
   to read the gif image from a user defined input function.
 * A few bugfixes.

Version 3.0
===========
Changes from Eric Raymond's libgif:
 * A new gif encoder that makes uncompressed gifs rather than standard,
   LZW-compressed gifs.  This is actually the major motivating factor behind
   libungif; to provide third-party distributors a means to provide a gif
   library without the patented LZW encoder.

 * A new configure script to make compilation of the library on multiple
   platforms easier.  The package should now build shared libraries on all
   platforms supported by GNU libtool.

 * Removed the getarg functions from libgif.  These were not part of the
   public API and only used by the tools in the utils directory so I separated
   them from the rest of the library.

 * Fixed a few bugs in the tools in the utils directory.
1999-10-09 20:31:33 +00:00
agc
f0f779519e Make this package work on Solaris. 1999-09-30 15:21:55 +00:00
tron
00c719849f Don't install patch backup files. 1998-09-16 15:25:08 +00:00
tv
d090c571d9 Go away, X11. giflib, as a library whose X functionality is _minimal_,
need not depend on or use X.  Its two X functions (capture window and
display image) are done rather well by programs available elsewhere, many
of which already support GIF (or at least PPM, which can be converted).
Also include <stdlib.h> such that the malloc() warnings go away on LP64.
1998-09-15 00:48:38 +00:00
garbled
30ea7442eb Add USE_X11 (look at the code if you disagree, then come back to me)
Add -lX11 flags to the util Makefile to make this thing build.. How it
builds/runs on a.out is beyond me.. ELF seems to be a little more sane
in this respect.
1998-09-14 20:19:59 +00:00
tsarna
6bd0d65c65 The Grand Homepagification:
- New, optional Makefile variable HOMEPAGE, specifies a URL for
	  the home page of the software if it has one.
	- The value of HOMEPAGE is used to add a link from the
	  README.html files.
	- pkglint updated to know about it.  The "correct" location for
	  HOMEPAGE in the Makefile is after MAINTAINER, in that same
	  section.
1998-08-20 15:16:34 +00:00
tv
a75a2272cd Update to use USE_LIBTOOL. 1998-07-24 01:56:59 +00:00
tv
8f2b7f65a5 Update to use libtool; it now works on ELF and static-only platforms.
Make use of ${BSD_INSTALL_*} macros.
1998-07-14 19:55:49 +00:00
hubertf
7d50528121 Correct path for bsd.pref.mk 1998-06-04 16:13:39 +00:00
agc
44f0c77ed2 Include bsd.prefs.mk in case NOPORTDOCS is set in /etc/mk.conf 1998-06-03 12:59:39 +00:00
frueauf
49e36ada0b Substitute all obvious FreeBSD ppl as MAINTAINER with packages@netbsd.org. 1998-04-20 11:56:17 +00:00
agc
258b808c9f Use the bsd.pkg.mk and bsd.pkg.subdir.mk files in the pkgsrc tree.
Remove redundant (and sometimes erroneous) comments.
1998-04-15 10:38:15 +00:00
hubertf
f6fc8a8a9e Remove -m argument from ldconfig calls, require the system to
have ${PREFIX}/lib in ld.so.conf instead. This ensures things
even work after a reboot.
1998-02-02 08:58:13 +00:00
hubertf
403cfa3d46 Introduce TRUE?=/usr/bin/true, and use it. 1998-02-02 08:10:41 +00:00
hubertf
ea6dca7fc4 portlint: ldconfig||true 1998-01-24 05:20:59 +00:00
hubertf
23497c5cd4 Update for NetBSD, by boquist@cs.chalmers.se. 1997-12-29 02:54:46 +00:00
hubertf
41804a095e Tools and library routines for working with GIF images.
Taken from FreeBSD.
1997-12-29 02:51:19 +00:00