# ChangeLog for media-gfx/jpeginfo
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/jpeginfo/ChangeLog,v 1.19 2010/03/02 01:44:17 ssuominen Exp $

  02 Mar 2010; Samuli Suominen <ssuominen@gentoo.org> jpeginfo-1.6.0.ebuild,
  +files/jpeginfo-1.6.0-parallel_install.patch:
  Fix parallel make (install) wrt #294820, thanks to Diego E. Pettenò for
  reporting.

  22 Jan 2010; Samuli Suominen <ssuominen@gentoo.org> jpeginfo-1.6.0.ebuild:
  Require SLOT="0" of media-libs/jpeg for headers.

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

  27 Nov 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  jpeginfo-1.6.0.ebuild:
  Use -j1 for install, bug #294820.

  27 Nov 2008; Jeroen Roovers <jer@gentoo.org> jpeginfo-1.6.0.ebuild:
  Hmm, better not do tc-export in global scope.

  27 Nov 2008; Jeroen Roovers <jer@gentoo.org> jpeginfo-1.6.0.ebuild:
  Respect CC variable (bug #244156).

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

  15 May 2007; Thilo Bangert <bangert@gentoo.org> metadata.xml:
  add <herd>no-herd</herd>

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

  23 Jun 2006; Gustavo Zacarias <gustavoz@gentoo.org> jpeginfo-1.6.0.ebuild:
  Stable on sparc

  25 Nov 2005; Marcus D. Hanwell <cryos@gentoo.org> jpeginfo-1.6.0.ebuild:
  Stable on amd64.

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

  24 Apr 2005; Michael Hanselmann <hansmi@gentoo.org> jpeginfo-1.6.0.ebuild:
  Stable on ppc.

  29 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
  Change encoding to UTF-8 for GLEP 31 compliance

  20 Jul 2004; Tom Gall <tgall@gentoo.org> jpeginfo-1.6.0.ebuild: 
  stable on ppc64, bug #57156

  05 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> jpeginfo-1.6.0.ebuild:
  Stable on alpha.

  20 Apr 2004; Danny van Dyk <kugelfang@gentoo.org> jpeginfo-1.6.0.ebuild:
  marked ~amd64

*jpeginfo-1.6.0 (12 Feb 2003)

  12 Feb 2003; Seemant Kulleen <seemant@gentoo.org> jpeginfo-1.6.0.ebuild
  ChangeLog files/digest-jpeginfo-1.6.0 :

  New package to check and report on jpeg files.  Package submitted by:
  Henry So, Jr. <henryso@panix.com> in bug #14193.
