# ChangeLog for perl-core/IO-Zlib
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/perl-core/IO-Zlib/ChangeLog,v 1.19 2011/07/30 12:19:04 tove Exp $

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

*IO-Zlib-1.100.0 (20 May 2011)

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

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

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

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

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

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

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

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

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

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

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

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

*IO-Zlib-1.10 (15 Jul 2009)

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

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

  01 Nov 2008; Torsten Veller <tove@gentoo.org> +metadata.xml,
  +IO-Zlib-1.07.ebuild, +IO-Zlib-1.09.ebuild:
  dev-perl => perl-core migration

  01 Nov 2008; Torsten Veller <tove@gentoo.org> IO-Zlib-1.07.ebuild,
  IO-Zlib-1.09.ebuild:
  New virtuals: Compress-Zlib

  01 Nov 2008; Torsten Veller <tove@gentoo.org> -IO-Zlib-1.04.ebuild,
  -IO-Zlib-1.05.ebuild:
  Cleanup

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

*IO-Zlib-1.09 (28 Apr 2008)

  28 Apr 2008; Jeroen Roovers <jer@gentoo.org> +IO-Zlib-1.09.ebuild:
  Version bump (bug #201846).

  28 Apr 2008; Jeroen Roovers <jer@gentoo.org> IO-Zlib-1.04.ebuild,
  IO-Zlib-1.05.ebuild, IO-Zlib-1.07.ebuild:
  Fix HOMEPAGE (bug #201846).

  28 Mar 2008; Jeroen Roovers <jer@gentoo.org> IO-Zlib-1.07.ebuild:
  Stable for HPPA too.

  05 Feb 2008; Markus Rothe <corsair@gentoo.org> IO-Zlib-1.07.ebuild:
  Stable on ppc64

  13 Jan 2008; Tobias Scherbaum <dertobi123@gentoo.org> IO-Zlib-1.07.ebuild:
  ppc. stable

  29 Dec 2007; <welp@gentoo.org> IO-Zlib-1.07.ebuild:
  Keyworded ~sparc-fbsd; bug 203655

  17 Dec 2007; Samuli Suominen <drac@gentoo.org> IO-Zlib-1.07.ebuild:
  amd64 stable

  06 Dec 2007; Raúl Porcel <armin76@gentoo.org> IO-Zlib-1.07.ebuild:
  alpha/ia64/sparc/x86 stable

  10 Nov 2007; Samuli Suominen <drac@gentoo.org> IO-Zlib-1.05.ebuild:
  amd64 stable

*IO-Zlib-1.07 (19 Oct 2007)

  19 Oct 2007; Christian Hartmann <ian@gentoo.org> +IO-Zlib-1.07.ebuild:
  Version bump

  09 Aug 2007; Tobias Scherbaum <dertobi123@gentoo.org> IO-Zlib-1.05.ebuild:
  Stable on ppc.

  11 Jul 2007; Raúl Porcel <armin76@gentoo.org> IO-Zlib-1.05.ebuild:
  alpha/ia64/x86 stable

  07 Jul 2007; Tom Gall <tgall@gentoo.org> IO-Zlib-1.05.ebuild:
  stable on ppc64

  30 Jun 2007; Joshua Kinard <kumba@gentoo.org> IO-Zlib-1.05.ebuild:
  Stable on mips.

  21 Jun 2007; Michael Cummings <mcummings@gentoo.org> IO-Zlib-1.05.ebuild:
  Marking sparc stable

*IO-Zlib-1.05 (11 Mar 2007)

  11 Mar 2007; Michael Cummings <mcummings@gentoo.org> +IO-Zlib-1.05.ebuild:
  Version bump

  15 Jan 2007; Michael Cummings <mcummings@gentoo.org> -IO-Zlib-1.01.ebuild,
  IO-Zlib-1.04.ebuild:
  Ebuild maintenance

  05 Aug 2006; Michael Cummings <mcummings@gentoo.org> IO-Zlib-1.01.ebuild,
  IO-Zlib-1.04.ebuild:
  Adding perl dep; fixed DEPEND

  04 Jul 2006; Christian Hartmann <ian@gentoo.org> IO-Zlib-1.01.ebuild,
  IO-Zlib-1.04.ebuild:
  Fixed RDEPEND wrt bug #134781; fixed header

  24 Apr 2006; Diego Pettenò <flameeyes@gentoo.org> IO-Zlib-1.04.ebuild:
  Add ~x86-fbsd keyword.

  25 Feb 2006; Joshua Kinard <kumba@gentoo.org> IO-Zlib-1.04.ebuild:
  Marked stable on mips.

  06 Feb 2006; Simon Stelling <blubb@gentoo.org> IO-Zlib-1.04.ebuild:
  stable on amd64

  21 Jan 2006; Markus Rothe <corsair@gentoo.org> IO-Zlib-1.04.ebuild:
  Stable on ppc64

  15 Jan 2006; Michael Hanselmann <hansmi@gentoo.org> IO-Zlib-1.04.ebuild:
  Stable on ppc.

  13 Jan 2006; Michael Cummings <mcummings@gentoo.org> IO-Zlib-1.04.ebuild:
  marking stable sparc x86

  14 Oct 2005; Aron Griffis <agriffis@gentoo.org> IO-Zlib-1.04.ebuild:
  Mark 1.04 stable on alpha

  03 Oct 2005; Aron Griffis <agriffis@gentoo.org> IO-Zlib-1.04.ebuild:
  Stable on ia64

*IO-Zlib-1.04 (27 Apr 2005)

  27 Apr 2005; Michael Cummings <mcummings@gentoo.org> IO-Zlib-1.01.ebuild,
  +IO-Zlib-1.04.ebuild:
  Cleaning house

  18 Mar 2005; Aron Griffis <agriffis@gentoo.org> IO-Zlib-1.01.ebuild:
  Stable on ia64

  12 Mar 2005; Markus Rothe <corsair@gentoo.org> IO-Zlib-1.01.ebuild:
  Stable on ppc64

  22 Dec 2004; Yuta SATOH <nigoro@gentoo.org> IO-Zlib-1.01.ebuild:
  added ~ppc64

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

  19 Jan 2004; Eric Sammer <esammer@gentoo.org> IO-Zlib-1.01.ebuild:
  Marking stable on ppc and alpha to fix broken deps with Archive-Tar. No bugs
  reported since 07-2003.

  16 Dec 2003; Jason Wever <weeve@gentoo.org> IO-Zlib-1.01.ebuild:
  Marked stable on sparc to fix broken dependencies of dev-perl/Archive-Tar.

*IO-Zlib-1.01 (05 Jun 2003)

  05 Jun 2003; Michael Cummings <mcummings@gentoo.org> IO-Zlib-1.01.ebuild:
  This is a missing dependancy for Archive-Tar

