# ChangeLog for virtual/perl-digest-base
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/virtual/perl-digest-base/ChangeLog,v 1.38 2011/07/30 12:05:50 tove Exp $

  30 Jul 2011; Torsten Veller <tove@gentoo.org>
  perl-digest-base-1.160.0-r1.ebuild:
  Drop ~sparc-fbsd KEYWORD

  28 Jun 2011; Torsten Veller <tove@gentoo.org>
  perl-digest-base-1.160.0-r1.ebuild:
  Add perl-5.12.4 virtual

*perl-digest-base-1.160.0-r1 (18 Jun 2011)

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

*perl-digest-base-1.160.0 (18 May 2011)

  18 May 2011; Torsten Veller <tove@gentoo.org> -perl-digest-base-1.16.ebuild,
  +perl-digest-base-1.160.0.ebuild:
  Add perl-5.14.0 as provider. Change version scheme

  02 May 2011; Fabian Groffen <grobian@gentoo.org>
  perl-digest-base-1.16.ebuild:
  Marked ~x64-freebsd

  22 Jan 2011; Torsten Veller <tove@gentoo.org> perl-digest-base-1.16.ebuild:
  Add perl-5.12.3 as provider

  07 Sep 2010; Torsten Veller <tove@gentoo.org>
  perl-digest-base-1.16.ebuild:
  Add perl-5.12.2 as provider

  03 Sep 2010; Christian Faulhammer <fauli@gentoo.org>
  perl-digest-base-1.16.ebuild:
  add ~x86-freebsd

  14 Jul 2010; Torsten Veller <tove@gentoo.org>
  perl-digest-base-1.16.ebuild:
  Add perl-5.12 as provider

  17 Jan 2010; Torsten Veller <tove@gentoo.org>
  -perl-digest-base-1.15.ebuild:
  Cleanup

  07 Jan 2010; Torsten Veller <tove@gentoo.org>
  perl-digest-base-1.15.ebuild, perl-digest-base-1.16.ebuild:
  Set empty HOMEPAGE and LICENSE

  05 Jan 2010; nixnut <nixnut@gentoo.org> perl-digest-base-1.16.ebuild:
  ppc stable #288026

  15 Dec 2009; Jonathan Callen <abcd@gentoo.org>
  perl-digest-base-1.15.ebuild, perl-digest-base-1.16.ebuild:
  QA: Add prefix keywords

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

  10 Dec 2009; Brent Baude <ranger@gentoo.org> perl-digest-base-1.16.ebuild:
  Marking perl-digest-base-1.16 ppc64 stable for bug 288026

  07 Dec 2009; Markus Meier <maekke@gentoo.org>
  perl-digest-base-1.16.ebuild:
  arm stable, bug #288026

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

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

  04 Dec 2009; Christian Faulhammer <fauli@gentoo.org>
  perl-digest-base-1.16.ebuild:
  x86 stable, bug 288026

  25 Aug 2009; Torsten Veller <tove@gentoo.org>
  perl-digest-base-1.16.ebuild:
  Add support for perl-5.10.1

*perl-digest-base-1.16 (10 Jun 2009)

  10 Jun 2009; Torsten Veller <tove@gentoo.org>
  +perl-digest-base-1.16.ebuild:
  Version bump

  13 Mar 2009; Torsten Veller <tove@gentoo.org>
  -perl-digest-base-1.13.ebuild:
  Cleanup

  22 Aug 2008; Alexis Ballier <aballier@gentoo.org>
  perl-digest-base-1.15.ebuild:
  keyword ~sparc-fbsd

  22 Aug 2008; Alexis Ballier <aballier@gentoo.org>
  perl-digest-base-1.15.ebuild:
  keyword ~x86-fbsd

  11 May 2007; Joshua Kinard <kumba@gentoo.org>
  perl-digest-base-1.15.ebuild:
  Stable on mips.

  15 Apr 2007; Markus Rothe <corsair@gentoo.org>
  perl-digest-base-1.15.ebuild:
  Stable on ppc64

  04 Mar 2007; Andrej Kacian <ticho@gentoo.org>
  perl-digest-base-1.15.ebuild:
  Stable on x86, bug #169153.

  06 Jan 2007; Bryan Østergaard <kloeri@gentoo.org>
  perl-digest-base-1.15.ebuild:
  Stable on Alpha.

  24 Dec 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  perl-digest-base-1.15.ebuild:
  Stable on ppc.

  23 Oct 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  perl-digest-base-1.15.ebuild:
  Stable on hppa

  20 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  -perl-digest-base-1.05.ebuild, -perl-digest-base-1.08.ebuild,
  -perl-digest-base-1.10.ebuild:
  Cleaning up old ebuilds

  20 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  perl-digest-base-1.08.ebuild, perl-digest-base-1.15.ebuild:
  Marking amd64 stable

  20 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  perl-digest-base-1.05.ebuild, perl-digest-base-1.08.ebuild,
  perl-digest-base-1.15.ebuild:
  Marking sparc stable

*perl-digest-base-1.15 (21 May 2006)

  21 May 2006; Christian Hartmann <ian@gentoo.org>
  -perl-digest-base-1.14.ebuild, +perl-digest-base-1.15.ebuild:
  Version bump

  26 Feb 2006; Joshua Kinard <kumba@gentoo.org>
  perl-digest-base-1.13.ebuild:
  Marked stable on mips.

  07 Feb 2006; Simon Stelling <blubb@gentoo.org>
  perl-digest-base-1.13.ebuild:
  stable on amd64

*perl-digest-base-1.14 (06 Feb 2006)
*perl-digest-base-1.13 (06 Feb 2006)
*perl-digest-base-1.10 (06 Feb 2006)
*perl-digest-base-1.08 (06 Feb 2006)
*perl-digest-base-1.05 (06 Feb 2006)

  06 Feb 2006; Michael Cummings <mcummings@gentoo.org> +metadata.xml,
  +perl-digest-base-1.05.ebuild, +perl-digest-base-1.08.ebuild,
  +perl-digest-base-1.10.ebuild, +perl-digest-base-1.13.ebuild,
  +perl-digest-base-1.14.ebuild:
  New virtual for perl-core/digest-base

