# ChangeLog for virtual/perl-IO-Compress
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/virtual/perl-IO-Compress/ChangeLog,v 1.49 2011/07/30 11:50:02 tove Exp $

  30 Jul 2011; Torsten Veller <tove@gentoo.org> perl-IO-Compress-2.024.ebuild,
  perl-IO-Compress-2.33.ebuild, perl-IO-Compress-2.35.0.ebuild,
  perl-IO-Compress-2.36.0.ebuild, perl-IO-Compress-2.37.0.ebuild:
  Drop ~sparc-fbsd KEYWORD

  28 Jun 2011; Torsten Veller <tove@gentoo.org> perl-IO-Compress-2.024.ebuild:
  Add perl-5.12.4 virtual

*perl-IO-Compress-2.37.0 (23 Jun 2011)

  23 Jun 2011; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.37.0.ebuild:
  Version bump

*perl-IO-Compress-2.36.0 (21 Jun 2011)

  21 Jun 2011; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.36.0.ebuild:
  Version bump

*perl-IO-Compress-2.35.0 (12 May 2011)

  12 May 2011; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.35.0.ebuild:
  Version bump

  02 May 2011; Fabian Groffen <grobian@gentoo.org>
  perl-IO-Compress-2.33.ebuild:
  Marked ~x64-freebsd

  22 Jan 2011; Torsten Veller <tove@gentoo.org> perl-IO-Compress-2.024.ebuild:
  Add perl-5.12.3 as provider

*perl-IO-Compress-2.33 (13 Jan 2011)

  13 Jan 2011; Torsten Veller <tove@gentoo.org> +perl-IO-Compress-2.33.ebuild:
  Version bump

  22 Oct 2010; Samuli Suominen <ssuominen@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  ppc64 stable wrt #333421

  22 Oct 2010; Jeroen Roovers <jer@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  Stable for HPPA (bug #333421).

  14 Oct 2010; Brent Baude <ranger@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  Marking perl-IO-Compress-2.024 ppc stable for bug 333421

  12 Sep 2010; Raúl Porcel <armin76@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc stable wrt #333421

  07 Sep 2010; Torsten Veller <tove@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  Add perl-5.12.2 as provider

  23 Aug 2010; Markus Meier <maekke@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  arm stable, bug #333421

  20 Aug 2010; Christian Faulhammer <fauli@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  stable x86, bug 333421

  19 Aug 2010; Markos Chandras <hwoarang@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  Stable on amd64 wrt bug #333421

*perl-IO-Compress-2.030 (26 Jul 2010)

  26 Jul 2010; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.030.ebuild:
  Version bump

  14 Jul 2010; Torsten Veller <tove@gentoo.org>
  perl-IO-Compress-2.024.ebuild:
  Add perl-5.12 as provider

*perl-IO-Compress-2.027 (25 Apr 2010)

  25 Apr 2010; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.027.ebuild:
  Version bump

*perl-IO-Compress-2.026 (08 Apr 2010)

  08 Apr 2010; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.026.ebuild:
  Version bump

*perl-IO-Compress-2.025 (07 Apr 2010)

  07 Apr 2010; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.025.ebuild:
  Version bump

  25 Jan 2010; Torsten Veller <tove@gentoo.org>
  -perl-IO-Compress-2.020.ebuild, -perl-IO-Compress-2.023.ebuild:
  Cleanup

*perl-IO-Compress-2.024 (12 Jan 2010)

  12 Jan 2010; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.024.ebuild:
  Version bump

  07 Jan 2010; Torsten Veller <tove@gentoo.org>
  perl-IO-Compress-2.020.ebuild, perl-IO-Compress-2.021.ebuild,
  perl-IO-Compress-2.023.ebuild:
  Set empty HOMEPAGE and LICENSE

  05 Jan 2010; nixnut <nixnut@gentoo.org> perl-IO-Compress-2.021.ebuild:
  ppc stable #288026

  15 Dec 2009; Jonathan Callen <abcd@gentoo.org>
  perl-IO-Compress-2.020.ebuild, perl-IO-Compress-2.021.ebuild,
  perl-IO-Compress-2.023.ebuild:
  QA: Add prefix keywords

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

  10 Dec 2009; Brent Baude <ranger@gentoo.org>
  perl-IO-Compress-2.021.ebuild:
  Marking perl-IO-Compress-2.021 ppc64 stable for bug 288026

  07 Dec 2009; Markus Meier <maekke@gentoo.org>
  perl-IO-Compress-2.021.ebuild:
  arm stable, bug #288026

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

  04 Dec 2009; Torsten Veller <tove@gentoo.org>
  perl-IO-Compress-2.021.ebuild:
  Stable on amd64 (#288026)

  04 Dec 2009; Christian Faulhammer <fauli@gentoo.org>
  perl-IO-Compress-2.021.ebuild:
  x86 stable, bug 288026

*perl-IO-Compress-2.023 (10 Nov 2009)

  10 Nov 2009; Robin H. Johnson <robbat2@gentoo.org>
  +perl-IO-Compress-2.023.ebuild:
  Correct upstream version. 2.022 was a bust.

  10 Nov 2009; Robin H. Johnson <robbat2@gentoo.org>
  -perl-IO-Compress-2.022.ebuild:
  No Compress-Raw-Zlib-2.022 from upstream yet, so we are not ready for
  this.

*perl-IO-Compress-2.022 (10 Nov 2009)

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

*perl-IO-Compress-2.021 (31 Aug 2009)

  31 Aug 2009; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.021.ebuild:
  Version bump

  25 Aug 2009; Torsten Veller <tove@gentoo.org>
  perl-IO-Compress-2.020.ebuild:
  Add support for perl-5.10.1

  19 Jul 2009; Torsten Veller <tove@gentoo.org>
  -perl-IO-Compress-2.019.ebuild:
  Cleanup

  19 Jul 2009; nixnut <nixnut@gentoo.org> perl-IO-Compress-2.020.ebuild:
  ppc stable #273141

  22 Jun 2009; Torsten Veller <tove@gentoo.org>
  perl-IO-Compress-2.020.ebuild:
  Stable on amd64 (#273141)

  19 Jun 2009; Brent Baude <ranger@gentoo.org>
  perl-IO-Compress-2.020.ebuild:
  Marking perl-IO-Compress-2.020 ppc64 for bug 273141

  14 Jun 2009; Jeroen Roovers <jer@gentoo.org>
  perl-IO-Compress-2.020.ebuild:
  Stable for HPPA (bug #273141).

  14 Jun 2009; Raúl Porcel <armin76@gentoo.org>
  perl-IO-Compress-2.020.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc/x86 stable wrt #273141

*perl-IO-Compress-2.020 (03 Jun 2009)

  03 Jun 2009; Torsten Veller <tove@gentoo.org>
  +perl-IO-Compress-2.020.ebuild:
  Version bump

  05 May 2009; Torsten Veller <tove@gentoo.org>
  perl-IO-Compress-2.019.ebuild:
  Add missing keywords (#268615)

  05 May 2009; Jeroen Roovers <jer@gentoo.org>
  perl-IO-Compress-2.019.ebuild:
  Marked ~hppa (bug #268615).

*perl-IO-Compress-2.019 (04 May 2009)

  04 May 2009; Torsten Veller <tove@gentoo.org>
  -perl-IO-Compress-2.017.ebuild, +perl-IO-Compress-2.019.ebuild:
  Version bump

*perl-IO-Compress-2.017 (25 Apr 2009)

  25 Apr 2009; Torsten Veller <tove@gentoo.org> +metadata.xml,
  +perl-IO-Compress-2.017.ebuild:
  Initial commit

