# ChangeLog for dev-php/PEAR-PEAR_Info
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-php/PEAR-PEAR_Info/ChangeLog,v 1.43 2015/04/15 01:05:11 grknight Exp $

*PEAR-PEAR_Info-1.9.2-r3 (15 Apr 2015)

  15 Apr 2015; Brian Evans <grknight@gentoo.org>
  +PEAR-PEAR_Info-1.9.2-r3.ebuild, -PEAR-PEAR_Info-1.9.2-r2.ebuild:
  Revbump for repoman warnings and dependency change

*PEAR-PEAR_Info-1.9.2-r2 (05 Mar 2012)

  05 Mar 2012; Ole Markus With <olemarkus@gentoo.org>
  +PEAR-PEAR_Info-1.9.2-r2.ebuild, -PEAR-PEAR_Info-1.9.2-r1.ebuild:
  EAPI bump and removal of minimal use flag

  21 Jun 2010; <mabi@gentoo.org> -PEAR-PEAR_Info-1.7.1.ebuild,
  -PEAR-PEAR_Info-1.9.2.ebuild:
  remove old

*PEAR-PEAR_Info-1.9.2-r1 (21 Jun 2010)

  21 Jun 2010; <mabi@gentoo.org> +PEAR-PEAR_Info-1.9.2-r1.ebuild:
  eapi bump for php-5.3

  29 May 2010; Raúl Porcel <armin76@gentoo.org>
  PEAR-PEAR_Info-1.7.1.ebuild, PEAR-PEAR_Info-1.9.2.ebuild:
  Add ~alpha/~ia64/~sparc

*PEAR-PEAR_Info-1.9.2 (16 Feb 2010)

  16 Feb 2010; Steve Dibb <beandog@gentoo.org> +PEAR-PEAR_Info-1.9.2.ebuild:
  Version bump

*PEAR-PEAR_Info-1.7.1 (11 Feb 2008)

  11 Feb 2008; Raúl Porcel <armin76@gentoo.org>
  +PEAR-PEAR_Info-1.7.1.ebuild:
  Version bump, from the php overlay

  06 Dec 2007; Markus Ullmann <jokey@gentoo.org>
  -PEAR-PEAR_Info-1.6.0.ebuild, PEAR-PEAR_Info-1.7.0.ebuild:
  LICENSE fix from project overlay

  02 Dec 2007; Jakub Moc <jakub@gentoo.org> PEAR-PEAR_Info-1.7.0.ebuild:
  Fix LICENSE

  22 Oct 2007; Raúl Porcel <armin76@gentoo.org>
  PEAR-PEAR_Info-1.7.0.ebuild:
  ia64 stable wrt #192247

  05 Oct 2007; Raúl Porcel <armin76@gentoo.org>
  PEAR-PEAR_Info-1.7.0.ebuild:
  alpha/sparc stable wrt #192247

  28 Sep 2007; Christoph Mende <angelos@gentoo.org>
  PEAR-PEAR_Info-1.7.0.ebuild:
  Stable on amd64 wrt bug #192247

  26 Sep 2007; Brent Baude <ranger@gentoo.org> PEAR-PEAR_Info-1.7.0.ebuild:
  Marking PEAR-PEAR_Info-1.7.0 ppc64 stable for bug 192247

  25 Sep 2007; Lars Weiler <pylon@gentoo.org> PEAR-PEAR_Info-1.7.0.ebuild:
  stable ppc, bug #192247

  21 Sep 2007; Christian Faulhammer <opfer@gentoo.org>
  PEAR-PEAR_Info-1.7.0.ebuild:
  x86 stable, bug 192247

  16 Sep 2007; Jeroen Roovers <jer@gentoo.org> PEAR-PEAR_Info-1.7.0.ebuild:
  Stable for HPPA (bug #192247).

  15 Aug 2007; Jakub Moc <jakub@gentoo.org> +metadata.xml,
  +PEAR-PEAR_Info-1.7.0.ebuild:
  Version bump, Bug 158633

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

  21 May 2006; Luca Longinotti <chtekk@gentoo.org>
  -PEAR-PEAR_Info-1.5.2.ebuild:
  Remove old-style PHP packages.

  18 Mar 2006; Jeroen Roovers <jer@gentoo.org> PEAR-PEAR_Info-1.6.0.ebuild:
  Stable on hppa (bug #119722).

  17 Feb 2006; Aron Griffis <agriffis@gentoo.org>
  PEAR-PEAR_Info-1.6.0.ebuild:
  Mark 1.6.0 stable on alpha/ia64. #119722

  27 Jan 2006; Michael Hanselmann <hansmi@gentoo.org>
  PEAR-PEAR_Info-1.6.0.ebuild:
  Stable on ppc.

  23 Jan 2006; Bryan Østergaard <kloeri@gentoo.org
  PEAR-PEAR_Info-1.6.0.ebuild:
  ~ia64 keyword, bug 119722.

  22 Jan 2006; Simon Stelling <blubb@gentoo.org>
  PEAR-PEAR_Info-1.6.0.ebuild:
  stable on amd64 wrt bug 119722

  22 Jan 2006; Jason Wever <weeve@gentoo.org> PEAR-PEAR_Info-1.6.0.ebuild:
  Stable on SPARC wrt bug #119722.

  22 Jan 2006; Mark Loeser <halcy0n@gentoo.org> PEAR-PEAR_Info-1.6.0.ebuild:
  Stable on x86; bug #119722

  21 Jan 2006; Markus Rothe <corsair@gentoo.org>
  PEAR-PEAR_Info-1.6.0.ebuild:
  Stable on ppc64; bug #119722

  22 Nov 2005; Markus Rothe <corsair@gentoo.org>
  PEAR-PEAR_Info-1.6.0.ebuild:
  Added ~ppc64 keyword; bug #105385

  21 Nov 2005; Joseph Jezak <josejx@gentoo.org> PEAR-PEAR_Info-1.6.0.ebuild:
  Marked ~ppc for bug #105385.

  24 Oct 2005; Sebastian Bergmann <sebastian@gentoo.org>
  PEAR-PEAR_Info-1.6.0.ebuild:
  Add ~amd64.

*PEAR-PEAR_Info-1.6.0 (09 Oct 2005)

  09 Oct 2005; Sebastian Bergmann <sebastian@gentoo.org>
  -PEAR-PEAR_Info-1.5.2-r1.ebuild, +PEAR-PEAR_Info-1.6.0.ebuild:
  Version bump.

  19 Sep 2005; Jason Wever <weeve@gentoo.org>
  PEAR-PEAR_Info-1.5.2-r1.ebuild:
  Added ~sparc keyword.

*PEAR-PEAR_Info-1.5.2-r1 (08 Sep 2005)

  08 Sep 2005; Sebastian Bergmann <sebastian@gentoo.org>
  +PEAR-PEAR_Info-1.5.2-r1.ebuild:
  Use new PEAR eclass.

  08 Mar 2005; Sebastian Bergmann <sebastian@gentoo.org>
  -PEAR-PEAR_Info-1.5.1.ebuild:
  Remove old version.

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

  06 Nov 2004; Jason Wever <weeve@gentoo.org> PEAR-PEAR_Info-1.5.2.ebuild:
  Stable on sparc.

  03 Aug 2004; <agriffis@gentoo.org> PEAR-PEAR_Info-1.5.1.ebuild,
  PEAR-PEAR_Info-1.5.2.ebuild:
  add ia64 keywords #56295

  06 Jul 2004; Michael Hanselmann <hansmi@gentoo.org>
  PEAR-PEAR_Info-1.5.2.ebuild:
  Stable on ppc.

  04 Jul 2004; Robin H. Johnson <robbat2@gentoo.org>
  PEAR-PEAR_Info-1.5.2.ebuild:
  stable on x86.

  30 May 2004; Bryan Østergaard <kloeri@gentoo.org>
  PEAR-PEAR_Info-1.5.2.ebuild:
  Stable on alpha.

  17 Apr 2004; Daniel Ahlberg <aliz@gentoo.org> PEAR-PEAR_Info-1.5.1.ebuild,
  PEAR-PEAR_Info-1.5.2.ebuild:
  Added IUSE=

*PEAR-PEAR_Info-1.5.2 (10 Jan 2004)

  10 Jan 2004; Tal Peer <coredumb@gentoo.org> PEAR-PEAR_Info-1.5.2.ebuild:
  Version bump.

*PEAR-PEAR_Info-1.5.1 (25 Dec 2003)

  25 Dec 2003; Tal Peer <coredumb@gentoo.org> PEAR-PEAR_Info-1.5.1.ebuild,
  metadata.xml:
  Initial commit, closes bug #36436. Ebuild by Roman Weber <gentoo@gonzo.ch>
