# ChangeLog for virtual/perl-Scalar-List-Utils
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/virtual/perl-Scalar-List-Utils/ChangeLog,v 1.50 2011/06/18 20:20:48 tove Exp $

*perl-Scalar-List-Utils-1.230.0-r1 (18 Jun 2011)

  18 Jun 2011; Torsten Veller <tove@gentoo.org>
  -perl-Scalar-List-Utils-1.230.0.ebuild,
  +perl-Scalar-List-Utils-1.230.0-r1.ebuild:
  Add perl-5.14 as provider

*perl-Scalar-List-Utils-1.230.0 (20 May 2011)

  20 May 2011; Torsten Veller <tove@gentoo.org>
  -perl-Scalar-List-Utils-1.23.ebuild, +perl-Scalar-List-Utils-1.230.0.ebuild:
  Add perl-5.14.0 as provider. Change version scheme

  02 May 2011; Fabian Groffen <grobian@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  Marked ~x64-freebsd

  06 Mar 2011; Fabian Groffen <grobian@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  Marked ~ppc-aix, bug #357599

  17 Jan 2011; Torsten Veller <tove@gentoo.org>
  -perl-Scalar-List-Utils-1.18.ebuild, -perl-Scalar-List-Utils-1.21.ebuild,
  -perl-Scalar-List-Utils-1.22.ebuild:
  Cleanup

  22 Oct 2010; Samuli Suominen <ssuominen@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  ppc64 stable wrt #333421

  22 Oct 2010; Jeroen Roovers <jer@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  Stable for HPPA (bug #333421).

  14 Oct 2010; Brent Baude <ranger@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  Marking perl-Scalar-List-Utils-1.23 ppc stable for bug 333421

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

  07 Sep 2010; Torsten Veller <tove@gentoo.org>
  perl-Scalar-List-Utils-1.22.ebuild:
  Add perl-5.12.2 as provider

  03 Sep 2010; Christian Faulhammer <fauli@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  add ~x86-freebsd

  23 Aug 2010; Markus Meier <maekke@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  arm stable, bug #333421

  20 Aug 2010; Christian Faulhammer <fauli@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  stable x86, bug 333421

  19 Aug 2010; Markos Chandras <hwoarang@gentoo.org>
  perl-Scalar-List-Utils-1.23.ebuild:
  Stable on amd64 wrt bug #333421

  15 Jul 2010; Torsten Veller <tove@gentoo.org>
  perl-Scalar-List-Utils-1.22.ebuild:
  perl-5.12.1 provides Scalar-List-Utils-1.22, perl-5.10.1 provides
  Scalar-List-Utils-1.21

*perl-Scalar-List-Utils-1.23 (14 Mar 2010)

  14 Mar 2010; Torsten Veller <tove@gentoo.org>
  +perl-Scalar-List-Utils-1.23.ebuild:
  Version bump

  17 Jan 2010; Torsten Veller <tove@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild, -perl-Scalar-List-Utils-1.19.ebuild:
  Cleanup

  07 Jan 2010; Torsten Veller <tove@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild, perl-Scalar-List-Utils-1.19.ebuild,
  perl-Scalar-List-Utils-1.21.ebuild, perl-Scalar-List-Utils-1.22.ebuild:
  Set empty HOMEPAGE and LICENSE

  05 Jan 2010; nixnut <nixnut@gentoo.org>
  perl-Scalar-List-Utils-1.21.ebuild:
  ppc stable #288026

  15 Dec 2009; Jonathan Callen <abcd@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild, perl-Scalar-List-Utils-1.19.ebuild,
  perl-Scalar-List-Utils-1.21.ebuild, perl-Scalar-List-Utils-1.22.ebuild:
  QA: Add prefix keywords

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

  10 Dec 2009; Brent Baude <ranger@gentoo.org>
  perl-Scalar-List-Utils-1.21.ebuild:
  Marking perl-Scalar-List-Utils-1.21 ppc64 stable for bug 288026

  07 Dec 2009; Markus Meier <maekke@gentoo.org>
  perl-Scalar-List-Utils-1.21.ebuild:
  arm stable, bug #288026

  07 Dec 2009; Jeroen Roovers <jer@gentoo.org>
  perl-Scalar-List-Utils-1.21.ebuild:
  Stable for HPPA (bug #288026).

  04 Dec 2009; Torsten Veller <tove@gentoo.org>
  perl-Scalar-List-Utils-1.21.ebuild:
  Stable on amd64 (#288026)

  04 Dec 2009; Christian Faulhammer <fauli@gentoo.org>
  perl-Scalar-List-Utils-1.21.ebuild:
  x86 stable, bug 288026

*perl-Scalar-List-Utils-1.22 (22 Nov 2009)

  22 Nov 2009; Robin H. Johnson <robbat2@gentoo.org>
  +perl-Scalar-List-Utils-1.22.ebuild:
  Version bump via perl-bump experimental tool.

  25 Aug 2009; Torsten Veller <tove@gentoo.org>
  perl-Scalar-List-Utils-1.21.ebuild:
  Add support for perl-5.10.1

*perl-Scalar-List-Utils-1.21 (19 May 2009)

  19 May 2009; Torsten Veller <tove@gentoo.org>
  +perl-Scalar-List-Utils-1.21.ebuild:
  Version bump

  31 Mar 2008; Jeroen Roovers <jer@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  Stable for HPPA too.

  29 Dec 2007; <welp@gentoo.org> perl-Scalar-List-Utils-1.18.ebuild:
  Keyworded ~sparc-fbsd; bug 203655

  15 Oct 2007; Markus Rothe <corsair@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  Stable on ppc64

  04 Jul 2007; Raúl Porcel <armin76@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  alpha/ia64/x86 stable

  23 May 2007; Peter Weller <welp@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  Keyworded ~x86-fbsd

  11 May 2007; Joshua Kinard <kumba@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  Stable on mips.

  07 May 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  ppc stable

  17 Apr 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  Stable on sparc

  09 Apr 2007; Michael Cummings <mcummings@gentoo.org>
  perl-Scalar-List-Utils-1.19.ebuild:
  Marking stable amd64

*perl-Scalar-List-Utils-1.19 (02 Jan 2007)

  02 Jan 2007; Michael Cummings <mcummings@gentoo.org>
  +perl-Scalar-List-Utils-1.19.ebuild:
  Version bump

  25 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  -perl-Scalar-List-Utils-1.14.ebuild:
  Cleaning up ebuilds

  05 Sep 2006; Joshua Kinard <kumba@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild:
  Marked stable on mips.

  27 May 2006; Bryan Østergaard <kloeri@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild:
  Stable on alpha.

  26 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild:
  Stable on amd64 wrt bug #133989

  27 Mar 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild:
  Stable on hppa

  27 Mar 2006; Markus Rothe <corsair@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild:
  Stable on ppc64

  23 Mar 2006; Michael Hanselmann <hansmi@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild:
  Stable on ppc.

  22 Mar 2006; Michael Cummings <mcummings@gentoo.org>
  perl-Scalar-List-Utils-1.18.ebuild:
  Marking stable sparc and x86

  13 Feb 2006; Michael Cummings <mcummings@gentoo.org>
  perl-Scalar-List-Utils-1.14.ebuild, perl-Scalar-List-Utils-1.18.ebuild:
  Updated RDEPS

*perl-Scalar-List-Utils-1.18 (07 Feb 2006)
*perl-Scalar-List-Utils-1.14 (07 Feb 2006)

  07 Feb 2006; Michael Cummings <mcummings@gentoo.org> +metadata.xml,
  +perl-Scalar-List-Utils-1.14.ebuild, +perl-Scalar-List-Utils-1.18.ebuild:
  New virtual for perl-core/Scalar-List-Utils

