# ChangeLog for media-gfx/pngcrush
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/pngcrush/ChangeLog,v 1.54 2010/01/30 17:27:35 maekke Exp $

  30 Jan 2010; Markus Meier <maekke@gentoo.org> -pngcrush-1.6.15.ebuild:
  old

  23 Jan 2010; Tobias Klausmann <klausman@gentoo.org>
  pngcrush-1.6.19.ebuild:
  Stable on alpha, bug #297833

  07 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  pngcrush-1.7.6.ebuild:
  Transfer Prefix keywords

  07 Jan 2010; Brent Baude <ranger@gentoo.org> pngcrush-1.6.19.ebuild:
  stable ppc, bug 297833

  03 Jan 2010; Markus Meier <maekke@gentoo.org> pngcrush-1.6.19.ebuild:
  x86 stable, bug #297833

  01 Jan 2010; Kenneth Prugh <ken69267@gentoo.org> pngcrush-1.6.19.ebuild:
  amd64 stable, bug #297833

*pngcrush-1.7.6 (21 Dec 2009)

  21 Dec 2009; Dror Levin <spatz@gentoo.org> +pngcrush-1.7.6.ebuild:
  Version bump.

  26 Nov 2009; Markus Meier <maekke@gentoo.org> pngcrush-1.6.15.ebuild,
  pngcrush-1.6.19.ebuild:
  add trailing slash to HOMEPAGE by Mr. Anderson in bug #293819

*pngcrush-1.6.19 (28 Jun 2009)

  28 Jun 2009; Markus Meier <maekke@gentoo.org> +pngcrush-1.6.19.ebuild:
  version bump, reported by Michael Huber in bug #273168

  01 Jun 2009; Markus Meier <maekke@gentoo.org> -pngcrush-1.6.10.ebuild,
  -files/pngcrush-1.6.10-makefile_and_missing_definitions.patch,
  -pngcrush-1.6.14.ebuild:
  old

  30 May 2009; nixnut <nixnut@gentoo.org> pngcrush-1.6.15.ebuild:
  ppc stable #268865

  14 May 2009; Christian Faulhammer <fauli@gentoo.org>
  pngcrush-1.6.15.ebuild:
  stable x86, bug 268865

  12 May 2009; Kenneth Prugh <ken69267@gentoo.org> pngcrush-1.6.15.ebuild:
  amd64 stable, bug #268865

*pngcrush-1.6.15 (02 Apr 2009)

  02 Apr 2009; Mike Frysinger <vapier@gentoo.org> files/Makefile,
  +pngcrush-1.6.15.ebuild:
  Strip makefile down and version bump.

*pngcrush-1.6.14 (14 Mar 2009)

  14 Mar 2009; Markus Meier <maekke@gentoo.org> +files/Makefile,
  +pngcrush-1.6.14.ebuild:
  version bump to 1.6.14, add the Makefile to files/ instead of creating a
  patch for each version

  30 Nov 2008; Tobias Scherbaum <dertobi123@gentoo.org>
  pngcrush-1.6.10.ebuild:
  ppc stable, bug #249026

  30 Nov 2008; Markus Meier <maekke@gentoo.org> pngcrush-1.6.10.ebuild:
  amd64/x86 stable, bug #249026

*pngcrush-1.6.10 (15 Oct 2008)

  15 Oct 2008; Markus Meier <maekke@gentoo.org>
  +files/pngcrush-1.6.10-makefile_and_missing_definitions.patch,
  +pngcrush-1.6.10.ebuild:
  bump to 1.6.10 by Sergey Dryabzhinsky in bug #242110

  24 Aug 2008; Markus Meier <maekke@gentoo.org>
  -files/pngcrush-1.6.2-ascall.patch,
  -files/pngcrush-1.6.4-modified-debian-patchset-5.patch,
  -pngcrush-1.6.4-r1.ebuild:
  old

  24 Aug 2008; nixnut <nixnut@gentoo.org> pngcrush-1.6.7.ebuild:
  Stable on ppc wrt bug 235524

  23 Aug 2008; Markus Meier <maekke@gentoo.org> pngcrush-1.6.7.ebuild:
  x86 stable, bug #235524

  23 Aug 2008; Thomas Anderson <gentoofan23@gentoo.org>
  pngcrush-1.6.7.ebuild:
  stable amd64, bug 235524

*pngcrush-1.6.7 (30 Jul 2008)

  30 Jul 2008; Samuli Suominen <drac@gentoo.org>
  +files/pngcrush-1.6.7-modified_debian_patchset_1.patch,
  +pngcrush-1.6.7.ebuild:
  Version bump for bug 233099 to fix GAS versioning, thanks to Martin Väth
  for reporting.

  12 Jun 2008; Raúl Porcel <armin76@gentoo.org> pngcrush-1.6.4-r1.ebuild:
  Add ~alpha wrt #225987

  24 Apr 2008; Tobias Scherbaum <dertobi123@gentoo.org>
  pngcrush-1.6.4-r1.ebuild:
  ppc stable, bug #219033

  23 Apr 2008; Markus Meier <maekke@gentoo.org> pngcrush-1.6.4-r1.ebuild:
  x86 stable, security bug #219033

  23 Apr 2008; Samuli Suominen <drac@gentoo.org> pngcrush-1.6.4-r1.ebuild:
  amd64 stable wrt #219033, thanks to gentoofan23 for testing.

  23 Apr 2008; Samuli Suominen <drac@gentoo.org> metadata.xml:
  s/no-herd/graphics/

*pngcrush-1.6.4-r1 (23 Apr 2008)

  23 Apr 2008; Samuli Suominen <drac@gentoo.org>
  +files/pngcrush-1.6.4-modified-debian-patchset-5.patch,
  +pngcrush-1.6.4-r1.ebuild:
  Use system libpng wrt security #219033, thanks to _mika and hoffie.
  Using modified Debian patchset -5.

  15 Jan 2008; Fabian Groffen <grobian@gentoo.org> pngcrush-1.6.4.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  12 Jun 2007; Christoph Mende <angelos@gentoo.org> pngcrush-1.6.4.ebuild:
  Stable on amd64 wrt bug 180882

  09 Jun 2007; nixnut <nixnut@gentoo.org> pngcrush-1.6.4.ebuild:
  Stable on ppc wrt bug 180882

  06 Jun 2007; Christian Faulhammer <opfer@gentoo.org>
  pngcrush-1.6.4.ebuild:
  stable x86, bug 180882

*pngcrush-1.6.4 (20 Mar 2007)

  20 Mar 2007; Samuli Suominen <drac@gentoo.org> -pngcrush-1.6.3.ebuild,
  +pngcrush-1.6.4.ebuild:
  Version bump. Fix CC by using toolchain-funcs.

  22 Feb 2007; Piotr Jaroszyński <peper@gentoo.org> ChangeLog:
  Transition to Manifest2.

  05 Aug 2006; Chris White <chriswhite@gentoo.org> -pngcrush-1.5.10.ebuild:
  Security punts for bug #140498.

*pngcrush-1.6.3 (25 May 2006)

  25 May 2006; Robin H. Johnson <robbat2@gentoo.org> +pngcrush-1.6.3.ebuild:
  Bug #130348, version bump - fixes handling of iTxt sections.

  26 Apr 2006; Fabian Groffen <grobian@gentoo.org>
  +files/pngcrush-1.6.2-ascall.patch, pngcrush-1.6.2.ebuild:
  Adding patch not to let `as` wait for input from stdin on OSX.  Fixes bug
  (#131260)

  01 Mar 2006; Simon Stelling <blubb@gentoo.org> pngcrush-1.6.2.ebuild:
  stable on amd64 wrt bug 123286

  23 Feb 2006; Joshua Jackson <tsunam@gentoo.org> pngcrush-1.6.2.ebuild:
  Stable on x86; bug #123286

  22 Feb 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  pngcrush-1.6.2.ebuild:
  ppc stable, bug #123286

*pngcrush-1.6.2 (21 Feb 2006)

  21 Feb 2006; Marcelo Goes <vanquirius@gentoo.org> +pngcrush-1.6.2.ebuild:
  1.6.2 version bump for bug 123286.

  30 Oct 2005; Fabian Groffen <grobian@gentoo.org> pngcrush-1.5.10.ebuild:
  Marked ~ppc-macos (bug #110827)

  29 Jul 2005; Marcelo Goes <vanquirius@gentoo.org> +metadata.xml,
  pngcrush-1.5.10.ebuild:
  Install documentation if doc USE flag is on for bug 62177. Thanks to Richard
  Schreyer <rwschreyer@umail.ucsb.edu>.

  01 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org>
  pngcrush-1.5.10.ebuild:
  virtual/glibc -> virtual/libc

  09 Feb 2004; Dylan Carlson <absinthe@gentoo.org> pngcrush-1.5.10.ebuild:
  added amd64 keyword.

*pngcrush-1.5.10 (10 Sep 2002)

  27 Oct 2002; Jon Nall <nall@gentoo.org> :

  Added IUSE flag

  10 Sep 2002; Sascha Schwabbauer <cybersystem@gentoo.org> :

  Added ppc to keywords.

*pngcrush-1.5.10 (21 Jul 2002)

  21 Jul 2002; Maik Schreiber <blizzy@gentoo.org> :

  New version, closes bug #5332.

*pngcrush-1.5.8 (30 Apr 2002)

  30 Apr 2002; Ryan Phillips <rphillips@gentoo.org> :

  Initial import.
