# ChangeLog for virtual/perl-Compress-Raw-Zlib
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/virtual/perl-Compress-Raw-Zlib/ChangeLog,v 1.48 2011/07/30 11:45:28 tove Exp $

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

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

*perl-Compress-Raw-Zlib-2.37.0 (23 Jun 2011)

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

*perl-Compress-Raw-Zlib-2.36.0 (21 Jun 2011)

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

*perl-Compress-Raw-Zlib-2.35.0 (12 May 2011)

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

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

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

  17 Jan 2011; Torsten Veller <tove@gentoo.org>
  -perl-Compress-Raw-Zlib-2.021.ebuild, -perl-Compress-Raw-Zlib-2.025.ebuild,
  -perl-Compress-Raw-Zlib-2.026.ebuild, -perl-Compress-Raw-Zlib-2.027.ebuild,
  -perl-Compress-Raw-Zlib-2.030.ebuild:
  Cleanup

*perl-Compress-Raw-Zlib-2.33 (13 Jan 2011)

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

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

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

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

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

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

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

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

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

*perl-Compress-Raw-Zlib-2.030 (26 Jul 2010)

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

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

*perl-Compress-Raw-Zlib-2.027 (25 Apr 2010)

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

*perl-Compress-Raw-Zlib-2.026 (08 Apr 2010)

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

*perl-Compress-Raw-Zlib-2.025 (07 Apr 2010)

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

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

*perl-Compress-Raw-Zlib-2.024 (12 Jan 2010)

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

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

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

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

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

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

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

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

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

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

*perl-Compress-Raw-Zlib-2.023 (10 Nov 2009)

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

*perl-Compress-Raw-Zlib-2.021 (31 Aug 2009)

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

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

  18 Aug 2009; Torsten Veller <tove@gentoo.org>
  -perl-Compress-Raw-Zlib-2.005.ebuild,
  -perl-Compress-Raw-Zlib-2.015.ebuild,
  -perl-Compress-Raw-Zlib-2.019.ebuild:
  Cleanup

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

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

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

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

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

*perl-Compress-Raw-Zlib-2.020 (03 Jun 2009)

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

*perl-Compress-Raw-Zlib-2.019 (04 May 2009)

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

*perl-Compress-Raw-Zlib-2.017 (18 Apr 2009)

  18 Apr 2009; Torsten Veller <tove@gentoo.org>
  +perl-Compress-Raw-Zlib-2.017.ebuild:
  Version bump

  13 Mar 2009; Torsten Veller <tove@gentoo.org>
  -perl-Compress-Raw-Zlib-2.008.ebuild:
  Cleanup

*perl-Compress-Raw-Zlib-2.015 (01 Nov 2008)
*perl-Compress-Raw-Zlib-2.008 (01 Nov 2008)
*perl-Compress-Raw-Zlib-2.005 (01 Nov 2008)

  01 Nov 2008; Yuval Yaari <yuval@gentoo.org> +metadata.xml,
  +perl-Compress-Raw-Zlib-2.005.ebuild,
  +perl-Compress-Raw-Zlib-2.008.ebuild,
  +perl-Compress-Raw-Zlib-2.015.ebuild:
  Adding virtuals for dual-lifed modules that come with perl-5.10

