# ChangeLog for media-libs/libiptcdata
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/libiptcdata/ChangeLog,v 1.15 2010/01/01 12:53:08 armin76 Exp $

  01 Jan 2010; Raúl Porcel <armin76@gentoo.org> libiptcdata-1.0.2.ebuild,
  libiptcdata-1.0.3.ebuild, libiptcdata-1.0.4.ebuild:
  Add ~alpha/~sparc wrt #296794

*libiptcdata-1.0.4 (07 Jul 2009)

  07 Jul 2009; Gilles Dartiguelongue <eva@gentoo.org>
  +libiptcdata-1.0.4.ebuild:
  Version bump. Add examples USE flag, bug #264083. Do not install .la files
  anymore.

*libiptcdata-1.0.3 (25 Mar 2009)

  25 Mar 2009; Gilles Dartiguelongue <eva@gentoo.org>
  +libiptcdata-1.0.3.ebuild:
  Bump to 1.0.3. Some fixes in python bindings.

  23 Dec 2007; <jjezak@gentoo.org> libiptcdata-1.0.2.ebuild:
  Marked ppc stable for bug #203059.

  17 Dec 2007; Raúl Porcel <armin76@gentoo.org> libiptcdata-1.0.2.ebuild:
  ia64 stable

  16 Dec 2007; nixnut <nixnut@gentoo.org> libiptcdata-1.0.2.ebuild:
  Added ~ppc

  15 Dec 2007; Markus Rothe <corsair@gentoo.org> libiptcdata-1.0.2.ebuild:
  Stable on ppc64; 199799

  15 Dec 2007; Samuli Suominen <drac@gentoo.org> libiptcdata-1.0.2.ebuild:
  amd64 stable wrt #199799

  14 Dec 2007; Christian Faulhammer <opfer@gentoo.org>
  libiptcdata-1.0.2.ebuild:
  stable x86, bug 199799

  02 Nov 2007; Samuli Suominen <drac@gentoo.org> libiptcdata-1.0.2.ebuild:
  Keyword ~amd64 wrt #156398.

  24 Oct 2007; Raúl Porcel <armin76@gentoo.org> libiptcdata-1.0.2.ebuild:
  Add ~ia64 wrt #156398

  08 Oct 2007; Markus Rothe <corsair@gentoo.org> libiptcdata-1.0.2.ebuild:
  Added ~ppc64; bug #156398

  23 Sep 2007; Gilles Dartiguelongue <eva@gentoo.org>
  libiptcdata-1.0.2.ebuild:
  fix quotes & die messages

  18 Sep 2007; Gilles Dartiguelongue <eva@gentoo.org>
  libiptcdata-1.0.2.ebuild:
  fixing ebuild wrt to vapier comments

*libiptcdata-1.0.2 (16 Sep 2007)

  16 Sep 2007; Gilles Dartiguelongue <eva@gentoo.org> +metadata.xml,
  +libiptcdata-1.0.2.ebuild:
  initial ebuild

