# ChangeLog for perl-core/ExtUtils-ParseXS
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/perl-core/ExtUtils-ParseXS/ChangeLog,v 1.35 2011/08/06 07:51:24 tove Exp $

*ExtUtils-ParseXS-3.20.0 (06 Aug 2011)

  06 Aug 2011; Torsten Veller <tove@gentoo.org>
  ExtUtils-ParseXS-2.22.06.ebuild, +ExtUtils-ParseXS-3.20.0.ebuild:
  Version bump

  30 Jul 2011; Torsten Veller <tove@gentoo.org>
  ExtUtils-ParseXS-2.22.03.ebuild, ExtUtils-ParseXS-2.22.05.ebuild,
  ExtUtils-ParseXS-2.22.06.ebuild:
  Drop ~sparc-fbsd KEYWORD

  02 May 2011; Fabian Groffen <grobian@gentoo.org>
  ExtUtils-ParseXS-2.22.06.ebuild:
  Marked ~x64-freebsd

  17 Jan 2011; Torsten Veller <tove@gentoo.org>
  -ExtUtils-ParseXS-2.20.0401.ebuild, -ExtUtils-ParseXS-2.21.ebuild,
  -ExtUtils-ParseXS-2.22.ebuild, -ExtUtils-ParseXS-2.22.01.ebuild,
  -ExtUtils-ParseXS-2.22.02.ebuild, -ExtUtils-ParseXS-2.22.02-r1.ebuild:
  Cleanup

  22 Oct 2010; Samuli Suominen <ssuominen@gentoo.org>
  ExtUtils-ParseXS-2.22.05.ebuild:
  ppc64 stable wrt #333421

  18 Oct 2010; Jeroen Roovers <jer@gentoo.org>
  ExtUtils-ParseXS-2.22.05.ebuild:
  Stable for HPPA (bug #323529).

*ExtUtils-ParseXS-2.22.06 (15 Jul 2010)

  15 Jul 2010; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.22.06.ebuild:
  Version bump

  27 Jun 2010; <nixnut@gentoo.org> ExtUtils-ParseXS-2.22.05.ebuild:
  ppc stable #323529

  21 Jun 2010; Raúl Porcel <armin76@gentoo.org>
  ExtUtils-ParseXS-2.22.05.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #323529

  15 Jun 2010; Torsten Veller <tove@gentoo.org>
  ExtUtils-ParseXS-2.22.05.ebuild:
  Stable on amd64 and x86 (#323529)

  16 Apr 2010; Jeroen Roovers <jer@gentoo.org>
  ExtUtils-ParseXS-2.22.03.ebuild:
  Stable for HPPA (bug #307243).

*ExtUtils-ParseXS-2.22.05 (14 Mar 2010)

  14 Mar 2010; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.22.05.ebuild:
  Version bump

  13 Mar 2010; Raúl Porcel <armin76@gentoo.org>
  ExtUtils-ParseXS-2.22.03.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc stable wrt #307243

  11 Mar 2010; Markus Meier <maekke@gentoo.org>
  ExtUtils-ParseXS-2.22.03.ebuild:
  amd64/x86 stable, bug #307243

  10 Mar 2010; Joseph Jezak <josejx@gentoo.org>
  ExtUtils-ParseXS-2.22.03.ebuild:
  Marked ppc/ppc64 stable.

*ExtUtils-ParseXS-2.22.03 (12 Feb 2010)

  12 Feb 2010; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.22.03.ebuild:
  Version bump

*ExtUtils-ParseXS-2.22.02-r1 (11 Feb 2010)

  11 Feb 2010; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.22.02-r1.ebuild:
  Switch to MM:EU as it installs xsubpp too (#304483)

*ExtUtils-ParseXS-2.22.02 (29 Jan 2010)

  29 Jan 2010; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.22.02.ebuild:
  Version bump

*ExtUtils-ParseXS-2.22.01 (26 Jan 2010)

  26 Jan 2010; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.22.01.ebuild:
  Version bump

  17 Jan 2010; Torsten Veller <tove@gentoo.org>
  -ExtUtils-ParseXS-2.18.ebuild, -ExtUtils-ParseXS-2.19.ebuild,
  -ExtUtils-ParseXS-2.20-r1.ebuild, -files/eu-pxs-newXS-const-file.patch:
  Cleanup

*ExtUtils-ParseXS-2.22 (12 Jan 2010)

  12 Jan 2010; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.22.ebuild:
  Version bump

  05 Jan 2010; nixnut <nixnut@gentoo.org> ExtUtils-ParseXS-2.20.0401.ebuild:
  ppc stable #288026

  16 Dec 2009; Jonathan Callen <abcd@gentoo.org>
  ExtUtils-ParseXS-2.19.ebuild, ExtUtils-ParseXS-2.20-r1.ebuild,
  ExtUtils-ParseXS-2.20.0401.ebuild, ExtUtils-ParseXS-2.21.ebuild:
  QA: Transfer prefix keywords

  14 Dec 2009; Raúl Porcel <armin76@gentoo.org>
  ExtUtils-ParseXS-2.20.0401.ebuild:
  alpha/ia64/m68k/s390/sh/sparc stable wrt #288026

  10 Dec 2009; Brent Baude <ranger@gentoo.org> ChangeLog:
  Marking ExtUtils-ParseXS-2.20.0401 ppc64 stable for bug 288026

  07 Dec 2009; Markus Meier <maekke@gentoo.org>
  ExtUtils-ParseXS-2.20.0401.ebuild:
  arm stable, bug #288026

  07 Dec 2009; Jeroen Roovers <jer@gentoo.org>
  ExtUtils-ParseXS-2.20.0401.ebuild:
  Stable for HPPA (bug #288026).

  04 Dec 2009; Torsten Veller <tove@gentoo.org>
  ExtUtils-ParseXS-2.20.0401.ebuild:
  Stable on amd64 (#288026)

  04 Dec 2009; Christian Faulhammer <fauli@gentoo.org>
  ExtUtils-ParseXS-2.20.0401.ebuild:
  x86 stable, bug 288026

*ExtUtils-ParseXS-2.21 (06 Oct 2009)

  06 Oct 2009; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.21.ebuild:
  Version bump

*ExtUtils-ParseXS-2.20.0401 (15 Sep 2009)

  15 Sep 2009; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.20.0401.ebuild:
  Version bump

*ExtUtils-ParseXS-2.20-r1 (25 Jul 2009)

  25 Jul 2009; Mark Loeser <halcy0n@gentoo.org>
  -ExtUtils-ParseXS-2.20.ebuild, +ExtUtils-ParseXS-2.20-r1.ebuild,
  +files/eu-pxs-newXS-const-file.patch:
  Revbump to fix header for gcc-4.4 issue; bug #278155

*ExtUtils-ParseXS-2.20 (03 Jul 2009)

  03 Jul 2009; Torsten Veller <tove@gentoo.org>
  +ExtUtils-ParseXS-2.20.ebuild:
  Version bump

  11 Jan 2009; Torsten Veller <tove@gentoo.org>
  ExtUtils-ParseXS-2.18.ebuild, ExtUtils-ParseXS-2.19.ebuild:
  Remove Module-Build from RDEPEND (#246942)

*ExtUtils-ParseXS-2.19 (01 Nov 2008)
*ExtUtils-ParseXS-2.18 (01 Nov 2008)

  01 Nov 2008; Torsten Veller <tove@gentoo.org> +metadata.xml,
  +ExtUtils-ParseXS-2.18.ebuild, +ExtUtils-ParseXS-2.19.ebuild:
  dev-perl => perl-core migration

  01 Nov 2008; Torsten Veller <tove@gentoo.org>
  extutils-parsexs-2.18.ebuild, extutils-parsexs-2.19.ebuild:
  New virtuals: ExtUtils-CBuilder module-build

  15 Sep 2008; Torsten Veller <tove@gentoo.org>
  -extutils-parsexs-2.15.ebuild, -extutils-parsexs-2.16.ebuild,
  -extutils-parsexs-2.17.ebuild:
  Cleanup

  15 Jul 2008; Raúl Porcel <armin76@gentoo.org>
  extutils-parsexs-2.19.ebuild:
  alpha/ia64/sparc/x86 stable

*extutils-parsexs-2.19 (30 Apr 2008)

  30 Apr 2008; Torsten Veller <tove@gentoo.org>
  +extutils-parsexs-2.19.ebuild:
  Version bump

  19 Mar 2008; Jeroen Roovers <jer@gentoo.org> extutils-parsexs-2.18.ebuild:
  Stable for HPPA too.

  29 Dec 2007; <welp@gentoo.org> extutils-parsexs-2.18.ebuild:
  Keyworded ~sparc-fbsd; bug 203655

  07 Jul 2007; Tom Gall <tgall@gentoo.org>
  extutils-parsexs-2.18.ebuild:
  stable on ppc64

  06 Jul 2007; Raúl Porcel <armin76@gentoo.org>
  extutils-parsexs-2.18.ebuild:
  alpha/ia64/x86 stable

  12 May 2007; Joshua Kinard <kumba@gentoo.org>
  extutils-parsexs-2.18.ebuild:
  Stable on mips.

  05 May 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  extutils-parsexs-2.18.ebuild:
  ppc stable

  16 Apr 2007; Markus Rothe <corsair@gentoo.org>
  extutils-parsexs-2.17.ebuild:
  Stable on ppc64

  10 Apr 2007; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.18.ebuild:
  sparc stable

  09 Apr 2007; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.18.ebuild:
  Marking stable amd64

  05 Mar 2007; Andrej Kacian <ticho@gentoo.org>
  extutils-parsexs-2.17.ebuild:
  Stable on x86, bug #169152.

*extutils-parsexs-2.18 (04 Feb 2007)

  04 Feb 2007; Michael Cummings <mcummings@gentoo.org>
  +extutils-parsexs-2.18.ebuild:
  Version bump

  08 Jan 2007; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.17.ebuild:
  marking sparc stable

  08 Jan 2007; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.17.ebuild:
  marking amd64 stable

  24 Dec 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  extutils-parsexs-2.16.ebuild:
  Stable on ppc.

  24 Nov 2006; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.16.ebuild:
  sparc stable

  24 Nov 2006; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.16.ebuild:
  amd64 stable

*extutils-parsexs-2.17 (22 Nov 2006)

  22 Nov 2006; Michael Cummings <mcummings@gentoo.org>
  +extutils-parsexs-2.17.ebuild:
  Version bump

  20 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  -extutils-parsexs-2.08.ebuild, -extutils-parsexs-2.11.ebuild,
  extutils-parsexs-2.15.ebuild, extutils-parsexs-2.16.ebuild:
  Cleaning up

*extutils-parsexs-2.16 (24 Sep 2006)

  24 Sep 2006; Christian Hartmann <ian@gentoo.org>
  +extutils-parsexs-2.16.ebuild:
  Version bump

  06 Aug 2006; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.08.ebuild, extutils-parsexs-2.11.ebuild,
  extutils-parsexs-2.15.ebuild:
  Adding perl dep; fixed DEPEND

  05 Jul 2006; Christian Hartmann <ian@gentoo.org>
  extutils-parsexs-2.08.ebuild, extutils-parsexs-2.11.ebuild,
  extutils-parsexs-2.15.ebuild:
  Fixed RDEPEND wrt bug #134781; fixed header

  02 Jul 2006; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Marking amd64 stable

  02 May 2006; Diego Pettenò <flameeyes@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Add ~x86-fbsd keyword.

  24 Apr 2006; Joshua Kinard <kumba@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Marked stable on mips.

  04 Feb 2006; Aron Griffis <agriffis@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Mark 2.15 stable on ia64

  31 Jan 2006; Aron Griffis <agriffis@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Mark 2.15 stable on alpha

  21 Jan 2006; Markus Rothe <corsair@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Stable on ppc64

  16 Jan 2006; Rene Nussbaumer <killerfox@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Stable on hppa.

  15 Jan 2006; Michael Hanselmann <hansmi@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Stable on ppc.

  13 Jan 2006; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.15.ebuild:
  Marking stable sparc x86

*extutils-parsexs-2.15 (19 Nov 2005)

  19 Nov 2005; Michael Cummings <mcummings@gentoo.org>
  +extutils-parsexs-2.15.ebuild:
  Version bump

  26 Aug 2005; Aron Griffis <agriffis@gentoo.org>
  extutils-parsexs-2.11.ebuild:
  add ~ia64

*extutils-parsexs-2.11 (17 Jul 2005)

  17 Jul 2005; Michael Cummings <mcummings@gentoo.org>
  +extutils-parsexs-2.11.ebuild:
  Version bump upstream

  29 Apr 2005; Michael Cummings <mcummings@gentoo.org>
  -extutils-parsexs-2.02.ebuild:
  Cleaning for mirror syntax

  01 Apr 2005; Simon Stelling <blubb@gentoo.org> extutils-parsexs-2.08.ebuild:
  stable on amd64

  16 Mar 2005; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.08.ebuild:
  module-build dep

  12 Mar 2005; Markus Rothe <corsair@gentoo.org> extutils-parsexs-2.08.ebuild:
  Stable on ppc64

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

  22 Dec 2004; Yuta SATOH <nigoro@gentoo.org> extutils-parsexs-2.08.ebuild:
  added ~ppc64

  21 Nov 2004; Hardave Riar <hardave@gentoo.org> extutils-parsexs-2.08.ebuild:
  Stable on mips, dep for bug #68570

  20 Nov 2004; Daniel Black <dragonheart@gentoo.org>
  extutils-parsexs-2.08.ebuild:
  ppc stable to support bug #68570

  24 Oct 2004; Bryan Østergaard <kloeri@gentoo.org>
  extutils-parsexs-2.08.ebuild:
  Stable on alpha.

  22 Oct 2004; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.08.ebuild:
  marking stable on x86

  19 Oct 2004; Dylan Carlson <absinthe@gentoo.org>
  extutils-parsexs-2.02.ebuild:
  Stable on amd64.

*extutils-parsexs-2.08 (05 Jun 2004)

  05 Jun 2004; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.08.ebuild:
  new version on cpan, new dep

  05 Jun 2004; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.02.ebuild:
  Keyword fix for amd64. Sorry folks, but this is a necessary dep for
  module-build, and you have that one already in your mask pile

  30 May 2004; Bryan Østergaard <kloeri@gentoo.org>
  extutils-parsexs-2.02.ebuild:
  Stable on alpha.

*extutils-parsexs-2.02 (26 Jun 2003)

  26 Jun 2003; Michael Cummings <mcummings@gentoo.org>
  extutils-parsexs-2.02.ebuild:
  Fills dep for alzabo

