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

  30 Jul 2011; Torsten Veller <tove@gentoo.org> perl-IO-Zlib-1.100.0-r1.ebuild:
  Drop ~sparc-fbsd KEYWORD

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

*perl-IO-Zlib-1.100.0-r1 (18 Jun 2011)

  18 Jun 2011; Torsten Veller <tove@gentoo.org> -perl-IO-Zlib-1.100.0.ebuild,
  +perl-IO-Zlib-1.100.0-r1.ebuild:
  Add perl-5.14 as provider

*perl-IO-Zlib-1.100.0 (20 May 2011)

  20 May 2011; Torsten Veller <tove@gentoo.org> -perl-IO-Zlib-1.10.ebuild,
  +perl-IO-Zlib-1.100.0.ebuild:
  Add perl-5.14.0 as provider. Change version scheme

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

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

  17 Jan 2011; Torsten Veller <tove@gentoo.org> -perl-IO-Zlib-1.07.ebuild,
  -perl-IO-Zlib-1.09.ebuild:
  Cleanup

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

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

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

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

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

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

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

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

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

  19 Jan 2010; nixnut <nixnut@gentoo.org> perl-IO-Zlib-1.09.ebuild:
  ppc stable #288026

  07 Jan 2010; Torsten Veller <tove@gentoo.org> perl-IO-Zlib-1.07.ebuild,
  perl-IO-Zlib-1.09.ebuild, perl-IO-Zlib-1.10.ebuild:
  Set empty HOMEPAGE and LICENSE

  15 Dec 2009; Jonathan Callen <abcd@gentoo.org> perl-IO-Zlib-1.09.ebuild,
  perl-IO-Zlib-1.10.ebuild:
  QA: Add prefix keywords

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

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

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

*perl-IO-Zlib-1.10 (15 Jul 2009)

  15 Jul 2009; Torsten Veller <tove@gentoo.org> +perl-IO-Zlib-1.10.ebuild:
  Version bump

  07 Jul 2009; Jeroen Roovers <jer@gentoo.org> perl-IO-Zlib-1.09.ebuild:
  Stable for HPPA too.

*perl-IO-Zlib-1.09 (01 Nov 2008)
*perl-IO-Zlib-1.07 (01 Nov 2008)

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

