# ChangeLog for virtual/perl-ExtUtils-CBuilder
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/virtual/perl-ExtUtils-CBuilder/ChangeLog,v 1.44 2011/07/30 11:48:14 tove Exp $

  30 Jul 2011; Torsten Veller <tove@gentoo.org>
  perl-ExtUtils-CBuilder-0.26.03.ebuild, perl-ExtUtils-CBuilder-0.27.03.ebuild:
  Drop ~sparc-fbsd KEYWORD

  07 Jul 2011; Alexis Ballier <aballier@gentoo.org>
  perl-ExtUtils-CBuilder-0.280.202.ebuild:
  keyword ~x86-fbsd, bug #351526

  13 Jun 2011; Matt Turner <mattst88@gentoo.org>
  perl-ExtUtils-CBuilder-0.280.202.ebuild:
  Added ~mips, bug 351526

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

  27 Feb 2011; Fabian Groffen <grobian@gentoo.org>
  perl-ExtUtils-CBuilder-0.280.200.ebuild,
  perl-ExtUtils-CBuilder-0.280.202.ebuild:
  Add Prefix keywords, bug #351526

  27 Feb 2011; Kacper Kowalik <xarthisius@gentoo.org>
  perl-ExtUtils-CBuilder-0.280.202.ebuild:
  Marked ~ppc64 wrt #351526

  29 Jan 2011; Raúl Porcel <armin76@gentoo.org>
  perl-ExtUtils-CBuilder-0.280.200.ebuild,
  perl-ExtUtils-CBuilder-0.280.201.ebuild,
  perl-ExtUtils-CBuilder-0.280.202.ebuild:
  Add ~alpha/~arm/~ia64/~m68k/~s390/~sh/~sparc wrt #351526

*perl-ExtUtils-CBuilder-0.280.202 (24 Jan 2011)

  24 Jan 2011; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.280.202.ebuild:
  Version bump

  24 Jan 2011; Jeroen Roovers <jer@gentoo.org>
  perl-ExtUtils-CBuilder-0.280.201.ebuild:
  Marked ~hppa (bug #351526).

*perl-ExtUtils-CBuilder-0.280.201 (22 Jan 2011)

  22 Jan 2011; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.280.201.ebuild:
  Version bump

  17 Jan 2011; Torsten Veller <tove@gentoo.org>
  -perl-ExtUtils-CBuilder-0.27.ebuild, -perl-ExtUtils-CBuilder-0.27.01.ebuild,
  -perl-ExtUtils-CBuilder-0.27.02.ebuild:
  Cleanup

*perl-ExtUtils-CBuilder-0.280.200 (13 Jan 2011)

  13 Jan 2011; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.280.200.ebuild:
  Version bump

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

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

  07 Sep 2010; Torsten Veller <tove@gentoo.org>
  perl-ExtUtils-CBuilder-0.27.ebuild:
  Add perl-5.12.2 as provider

  14 Jul 2010; Torsten Veller <tove@gentoo.org>
  perl-ExtUtils-CBuilder-0.27.ebuild:
  Add perl-5.12 as provider

  27 Jun 2010; <nixnut@gentoo.org> perl-ExtUtils-CBuilder-0.27.03.ebuild:
  ppc stable #323529

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

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

*perl-ExtUtils-CBuilder-0.27.03 (27 Mar 2010)

  27 Mar 2010; Robin H. Johnson <robbat2@gentoo.org>
  +perl-ExtUtils-CBuilder-0.27.03.ebuild:
  Version bump via perl-bump experimental tool.

*perl-ExtUtils-CBuilder-0.27.02 (23 Feb 2010)

  23 Feb 2010; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.27.02.ebuild:
  Version bump

*perl-ExtUtils-CBuilder-0.27.01 (17 Feb 2010)

  17 Feb 2010; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.27.01.ebuild:
  Version bump

  21 Jan 2010; Torsten Veller <tove@gentoo.org>
  -perl-ExtUtils-CBuilder-0.19.ebuild:
  Cleanup

  19 Jan 2010; nixnut <nixnut@gentoo.org>
  perl-ExtUtils-CBuilder-0.26.03.ebuild:
  ppc stable #288026

  17 Jan 2010; Torsten Veller <tove@gentoo.org>
  perl-ExtUtils-CBuilder-0.19.ebuild, -perl-ExtUtils-CBuilder-0.23.ebuild,
  -perl-ExtUtils-CBuilder-0.24.ebuild, -perl-ExtUtils-CBuilder-0.25.ebuild,
  -perl-ExtUtils-CBuilder-0.26.ebuild,
  -perl-ExtUtils-CBuilder-0.26.01.ebuild,
  -perl-ExtUtils-CBuilder-0.26.02.ebuild:
  Cleanup. Downgrade mips -> ~mips

  07 Jan 2010; Torsten Veller <tove@gentoo.org>
  perl-ExtUtils-CBuilder-0.19.ebuild, perl-ExtUtils-CBuilder-0.23.ebuild,
  perl-ExtUtils-CBuilder-0.24.ebuild, perl-ExtUtils-CBuilder-0.25.ebuild,
  perl-ExtUtils-CBuilder-0.26.ebuild, perl-ExtUtils-CBuilder-0.26.01.ebuild,
  perl-ExtUtils-CBuilder-0.26.02.ebuild,
  perl-ExtUtils-CBuilder-0.26.03.ebuild, perl-ExtUtils-CBuilder-0.27.ebuild:
  Empty HOMEPAGE and LICENSE

  15 Dec 2009; Jonathan Callen <abcd@gentoo.org>
  perl-ExtUtils-CBuilder-0.24.ebuild, perl-ExtUtils-CBuilder-0.25.ebuild,
  perl-ExtUtils-CBuilder-0.26.ebuild, perl-ExtUtils-CBuilder-0.26.02.ebuild,
  perl-ExtUtils-CBuilder-0.26.03.ebuild, perl-ExtUtils-CBuilder-0.27.ebuild:
  QA: Add prefix keywords

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

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

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

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

*perl-ExtUtils-CBuilder-0.27 (10 Nov 2009)

  10 Nov 2009; Robin H. Johnson <robbat2@gentoo.org>
  +perl-ExtUtils-CBuilder-0.27.ebuild:
  Version bump via perl-bump experimental tool.

  06 Sep 2009; Markus Meier <maekke@gentoo.org>
  perl-ExtUtils-CBuilder-0.26.03.ebuild:
  amd64 stable, bug #280501

  02 Sep 2009; Christian Faulhammer <fauli@gentoo.org>
  perl-ExtUtils-CBuilder-0.26.03.ebuild:
  stable x86, bug 280501

  25 Aug 2009; Torsten Veller <tove@gentoo.org>
  perl-ExtUtils-CBuilder-0.26.02.ebuild:
  Add support for perl-5.10.1

*perl-ExtUtils-CBuilder-0.26.03 (20 Jul 2009)

  20 Jul 2009; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.26.03.ebuild:
  Version bump

  07 Jul 2009; Jeroen Roovers <jer@gentoo.org>
  perl-ExtUtils-CBuilder-0.23.ebuild:
  Stable for HPPA too.

*perl-ExtUtils-CBuilder-0.26.02 (05 Jul 2009)

  05 Jul 2009; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.26.02.ebuild:
  Version bump

*perl-ExtUtils-CBuilder-0.26.01 (03 Jul 2009)

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

*perl-ExtUtils-CBuilder-0.26 (30 Jun 2009)

  30 Jun 2009; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.26.ebuild:
  Version bump

*perl-ExtUtils-CBuilder-0.25 (27 Jun 2009)

  27 Jun 2009; Torsten Veller <tove@gentoo.org>
  +perl-ExtUtils-CBuilder-0.25.ebuild:
  Version bump

  13 Mar 2009; Torsten Veller <tove@gentoo.org>
  -perl-ExtUtils-CBuilder-0.21.ebuild:
  Cleanup

*perl-ExtUtils-CBuilder-0.24 (01 Nov 2008)
*perl-ExtUtils-CBuilder-0.23 (01 Nov 2008)
*perl-ExtUtils-CBuilder-0.21 (01 Nov 2008)
*perl-ExtUtils-CBuilder-0.19 (01 Nov 2008)

  01 Nov 2008; Yuval Yaari <yuval@gentoo.org> +metadata.xml,
  +perl-ExtUtils-CBuilder-0.19.ebuild, +perl-ExtUtils-CBuilder-0.21.ebuild,
  +perl-ExtUtils-CBuilder-0.23.ebuild, +perl-ExtUtils-CBuilder-0.24.ebuild:
  Adding virtuals for dual-lifed modules that come with perl-5.10

