# ChangeLog for virtual/perl-MIME-Base64
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/virtual/perl-MIME-Base64/ChangeLog,v 1.45 2011/07/30 11:51:56 tove Exp $

  30 Jul 2011; Torsten Veller <tove@gentoo.org>
  perl-MIME-Base64-3.130.0-r1.ebuild:
  Drop ~sparc-fbsd KEYWORD

  28 Jun 2011; Torsten Veller <tove@gentoo.org> perl-MIME-Base64-3.08.ebuild:
  Add perl-5.12.4 virtual

*perl-MIME-Base64-3.130.0-r1 (18 Jun 2011)

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

*perl-MIME-Base64-3.130.0 (20 May 2011)

  20 May 2011; Torsten Veller <tove@gentoo.org> -perl-MIME-Base64-3.13.ebuild,
  +perl-MIME-Base64-3.130.0.ebuild:
  Add perl-5.14.0 as provider. Change version scheme

  22 Jan 2011; Torsten Veller <tove@gentoo.org> perl-MIME-Base64-3.08.ebuild:
  Add perl-5.12.3 as provider

  17 Jan 2011; Torsten Veller <tove@gentoo.org> -perl-MIME-Base64-3.07.ebuild,
  -perl-MIME-Base64-3.09.ebuild, -perl-MIME-Base64-3.10.ebuild:
  Cleanup

*perl-MIME-Base64-3.13 (27 Nov 2010)

  27 Nov 2010; Torsten Veller <tove@gentoo.org> +perl-MIME-Base64-3.13.ebuild:
  Version bump

*perl-MIME-Base64-3.10 (15 Nov 2010)

  15 Nov 2010; Torsten Veller <tove@gentoo.org>
  +perl-MIME-Base64-3.10.ebuild:
  Version bump

  07 Sep 2010; Torsten Veller <tove@gentoo.org>
  perl-MIME-Base64-3.08.ebuild:
  Add perl-5.12.2 as provider

  14 Jul 2010; Torsten Veller <tove@gentoo.org>
  perl-MIME-Base64-3.08.ebuild:
  Add perl-5.12 as provider

  30 Apr 2010; Torsten Veller <tove@gentoo.org>
  perl-MIME-Base64-3.09.ebuild:
  MIME-Base64-3.09 is not part of perl-5.10.1 so remove wrong provider

  27 Apr 2010; Alexis Ballier <aballier@gentoo.org>
  perl-MIME-Base64-3.09.ebuild:
  keyword ~sparc-fbsd, bug #301705

*perl-MIME-Base64-3.09 (26 Jan 2010)

  26 Jan 2010; Torsten Veller <tove@gentoo.org>
  +perl-MIME-Base64-3.09.ebuild:
  Version bump

  21 Jan 2010; Torsten Veller <tove@gentoo.org>
  +perl-MIME-Base64-3.07.ebuild:
  ~sparc-fbsd still needs this virtual

  21 Jan 2010; Torsten Veller <tove@gentoo.org>
  -perl-MIME-Base64-3.07.ebuild:
  Cleanup

  07 Jan 2010; Torsten Veller <tove@gentoo.org>
  perl-MIME-Base64-3.07.ebuild, perl-MIME-Base64-3.08.ebuild:
  Set empty HOMEPAGE and LICENSE

  05 Jan 2010; nixnut <nixnut@gentoo.org> perl-MIME-Base64-3.08.ebuild:
  ppc stable #288026

  15 Dec 2009; Jonathan Callen <abcd@gentoo.org>
  perl-MIME-Base64-3.07.ebuild, perl-MIME-Base64-3.08.ebuild:
  QA: Add prefix keywords

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

  10 Dec 2009; Brent Baude <ranger@gentoo.org> perl-MIME-Base64-3.08.ebuild:
  Marking perl-MIME-Base64-3.08 ppc64 stable for bug 288026

  07 Dec 2009; Markus Meier <maekke@gentoo.org>
  perl-MIME-Base64-3.08.ebuild:
  arm stable, bug #288026

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

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

  04 Dec 2009; Christian Faulhammer <fauli@gentoo.org>
  perl-MIME-Base64-3.08.ebuild:
  x86 stable, bug 288026

  25 Aug 2009; Torsten Veller <tove@gentoo.org>
  perl-MIME-Base64-3.08.ebuild:
  Drop m68k and sparc-fbsd. Add support for perl-5.10.1

*perl-MIME-Base64-3.08 (10 Jun 2009)

  10 Jun 2009; Torsten Veller <tove@gentoo.org>
  +perl-MIME-Base64-3.08.ebuild:
  Version bump

  13 Mar 2009; Torsten Veller <tove@gentoo.org>
  -perl-MIME-Base64-3.05.ebuild:
  Cleanup

  04 Mar 2009; Peter Alfredsen <loki_val@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Update dependency to do >=perl-5.8.8 instead of ~perl-5.8.8 w.r.t. bug
  261135.

  07 Jun 2008; Alexis Ballier <aballier@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  keyword ~sparc-fbsd

  25 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  perl-MIME-Base64-3.05.ebuild:
  Cleaning up deps

  20 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  -perl-MIME-Base64-2.12.ebuild, -perl-MIME-Base64-2.20.ebuild,
  -perl-MIME-Base64-3.00.ebuild, -perl-MIME-Base64-3.01.ebuild:
  Cleaning up old ebuilds

  04 Sep 2006; Joshua Kinard <kumba@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Marked stable on mips.

  18 Jul 2006; Bryan Østergaard <kloeri@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Stable on alpha.

  18 Jun 2006; Bryan Østergaard <kloeri@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Stable on ia64.

  26 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Stable on amd64 wrt bug #133989

  25 May 2006; Guy Martin <gmsoft@gentoo.org> perl-MIME-Base64-3.07.ebuild:
  Stable on hppa.

  24 May 2006; Michael Hanselmann <hansmi@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Stable on ppc.

  23 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Stable on x86 wrt bug #133989.

  23 May 2006; <mcummings@gentoo.org> perl-MIME-Base64-3.07.ebuild:
  Marking stable sparc, bug 133989

  23 May 2006; Markus Rothe <corsair@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Stable on ppc64; bug #133989

  24 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
  perl-MIME-Base64-3.07.ebuild:
  Add ~x86-fbsd keyword.

  13 Feb 2006; Michael Cummings <mcummings@gentoo.org>
  perl-MIME-Base64-3.05.ebuild, perl-MIME-Base64-3.07.ebuild:
  Updated RDEPENDS

*perl-MIME-Base64-3.07 (07 Feb 2006)
*perl-MIME-Base64-3.05 (07 Feb 2006)
*perl-MIME-Base64-3.01 (07 Feb 2006)
*perl-MIME-Base64-3.00 (07 Feb 2006)
*perl-MIME-Base64-2.20 (07 Feb 2006)
*perl-MIME-Base64-2.12 (07 Feb 2006)

  07 Feb 2006; Michael Cummings <mcummings@gentoo.org> +metadata.xml,
  +perl-MIME-Base64-2.12.ebuild, +perl-MIME-Base64-2.20.ebuild,
  +perl-MIME-Base64-3.00.ebuild, +perl-MIME-Base64-3.01.ebuild,
  +perl-MIME-Base64-3.05.ebuild, +perl-MIME-Base64-3.07.ebuild:
  New virtual for perl-core/MIME-Base64

