# ChangeLog for dev-lang/perl
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/perl/ChangeLog,v 1.371 2011/08/09 11:42:18 tove Exp $

*perl-5.14.1-r1 (09 Aug 2011)
*perl-5.12.4-r1 (09 Aug 2011)

  09 Aug 2011; Torsten Veller <tove@gentoo.org> -perl-5.12.2-r6.ebuild,
  -perl-5.12.3.ebuild, +perl-5.12.4-r1.ebuild, +perl-5.14.1-r1.ebuild:
  Add xsubpp to the dual-life scripts list. Cleanup

*perl-5.12.4 (24 Jun 2011)

  24 Jun 2011; Torsten Veller <tove@gentoo.org> +perl-5.12.4.ebuild:
  Version bump

*perl-5.14.1 (18 Jun 2011)

  18 Jun 2011; Torsten Veller <tove@gentoo.org> +perl-5.14.1.ebuild:
  Version bump (tracker bug #356171)

  07 May 2011; Raúl Porcel <armin76@gentoo.org> perl-5.12.3-r1.ebuild:
  arm/ia64/m68k/s390/sh/sparc stable wrt #362025

  02 May 2011; Tobias Klausmann <klausman@gentoo.org> perl-5.12.3-r1.ebuild:
  Stable on alpha, bug #362025

  27 Apr 2011; Jeroen Roovers <jer@gentoo.org> perl-5.12.3-r1.ebuild:
  Stable for HPPA (bug #362025).

  26 Apr 2011; Christoph Mende <angelos@gentoo.org> perl-5.12.3-r1.ebuild:
  Stable on amd64 wrt bug #362025

  26 Apr 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  perl-5.12.3-r1.ebuild:
  x86 stable wrt security bug #362025

  26 Apr 2011; Kacper Kowalik <xarthisius@gentoo.org> perl-5.12.3-r1.ebuild:
  ppc/ppc64 stable wrt #362025

*perl-5.12.3-r1 (25 Apr 2011)

  25 Apr 2011; Torsten Veller <tove@gentoo.org> +perl-5.12.3-r1.ebuild:
  Fix unwanted taint laundering in lc(), uc() et al. CVE-2011-1487 (#362025)

  07 Mar 2011; Torsten Veller <tove@gentoo.org> perl-5.8.8-r8.ebuild,
  perl-5.10.1.ebuild, -perl-5.12.2-r4.ebuild, -perl-5.12.2-r5.ebuild,
  perl-5.12.2-r6.ebuild, perl-5.12.3.ebuild:
  Drop -Dusrinc=$(get_ml_incdir) (#357737). Cleanup

  22 Jan 2011; Raúl Porcel <armin76@gentoo.org> perl-5.12.2-r6.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc stable wrt #351699

*perl-5.12.3 (22 Jan 2011)

  22 Jan 2011; Torsten Veller <tove@gentoo.org> +perl-5.12.3.ebuild:
  Version bump

  18 Jan 2011; Jeroen Roovers <jer@gentoo.org> perl-5.12.2-r6.ebuild:
  Stable for HPPA (bug #351699).

  18 Jan 2011; Christian Faulhammer <fauli@gentoo.org>
  perl-5.12.2-r6.ebuild:
  stable x86, security bug 351699

  15 Jan 2011; Markos Chandras <hwoarang@gentoo.org> perl-5.12.2-r6.ebuild:
  Stable on amd64 wrt bug #351699

  15 Jan 2011; Kacper Kowalik <xarthisius@gentoo.org> perl-5.12.2-r6.ebuild:
  ppc/ppc64 stable wrt #351699

*perl-5.12.2-r6 (15 Jan 2011)

  15 Jan 2011; Torsten Veller <tove@gentoo.org> +perl-5.12.2-r6.ebuild:
  Bump core CGI-3.51 (#351699)

  13 Dec 2010; Torsten Veller <tove@gentoo.org> -perl-5.12.2-r1.ebuild,
  -perl-5.12.2-r2.ebuild, -perl-5.12.2-r3.ebuild:
  Cleanup

*perl-5.12.2-r5 (13 Dec 2010)

  13 Dec 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.2-r5.ebuild:
  Don't force -fstack-protector on everyone (#348557)

  10 Dec 2010; Brent Baude <ranger@gentoo.org> perl-5.12.2-r4.ebuild:
  Marking perl-5.12.2-r4 ppc64 for bug 345845

  04 Dec 2010; Raúl Porcel <armin76@gentoo.org> perl-5.12.2-r4.ebuild:
  alpha/ia64/m68k/s390/sh/sparc stable wrt #345845

  01 Dec 2010; Markus Meier <maekke@gentoo.org> perl-5.12.2-r4.ebuild:
  arm stable, bug #345845

  29 Nov 2010; Jeroen Roovers <jer@gentoo.org> perl-5.12.2-r4.ebuild:
  Stable for HPPA (bug #345845).

  29 Nov 2010; Jeroen Roovers <jer@gentoo.org> perl-5.12.2-r4.ebuild:
  Stable for PPC (bug #345845).

  29 Nov 2010; Markos Chandras <hwoarang@gentoo.org> perl-5.12.2-r4.ebuild:
  Stable on amd64 wrt bug #345845

  29 Nov 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  perl-5.12.2-r4.ebuild:
  x86 stable wrt security bug #345845

*perl-5.12.2-r4 (28 Nov 2010)

  28 Nov 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.2-r4.ebuild:
  Bump core CGI-3.50 (#345845)

  15 Nov 2010; Torsten Veller <tove@gentoo.org> -perl-5.12.1-r1.ebuild,
  -perl-5.12.1-r2.ebuild, -perl-5.12.2.ebuild:
  Cleanup

  13 Nov 2010; Raúl Porcel <armin76@gentoo.org> perl-5.12.2-r2.ebuild:
  alpha/ia64/m68k/s390/sh/sparc stable wrt #340023

*perl-5.12.2-r3 (08 Nov 2010)

  08 Nov 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.2-r3.ebuild:
  Remove the unneeded autoload section from Compress::Zlib (#344553)

  06 Nov 2010; Markus Meier <maekke@gentoo.org> perl-5.12.2-r2.ebuild:
  arm stable, bug #343795

  05 Nov 2010; Markos Chandras <hwoarang@gentoo.org> perl-5.12.2-r2.ebuild:
  Stable on amd64 wrt bug #343795

  05 Nov 2010; Jeroen Roovers <jer@gentoo.org> perl-5.12.2-r2.ebuild:
  Stable for HPPA PPC (bug #343795).

  04 Nov 2010; Christian Faulhammer <fauli@gentoo.org>
  perl-5.12.2-r2.ebuild:
  stable x86, bug 343795

*perl-5.12.2-r2 (31 Oct 2010)

  31 Oct 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.2-r2.ebuild:
  Fix regression: Add /usr/local/lib/site_perl and /etc/perl to INC
  (#343225). enc2xs ignores missing @INC directories (#338802). Cleanup
  MINIMAL_PERL_INSTALL. Backport patch for deprecated use of "goto" to jump
  into a construct in h2ph

  28 Oct 2010; Torsten Veller <tove@gentoo.org> perl-5.12.2-r1.ebuild:
  Add Tie::Hash to MINIMAL_PERL_INSTALL

  24 Oct 2010; Markus Meier <maekke@gentoo.org> perl-5.12.2-r1.ebuild:
  arm stable, bug #340023

  24 Oct 2010; Jeroen Roovers <jer@gentoo.org> perl-5.12.2-r1.ebuild:
  Stable for HPPA (bug #340023).

  24 Oct 2010; Brent Baude <ranger@gentoo.org> perl-5.12.2-r1.ebuild:
  Marking perl-5.12.2-r1 ppc for bug 340023

  22 Oct 2010; Samuli Suominen <ssuominen@gentoo.org> perl-5.12.2-r1.ebuild:
  ppc64 stable wrt #340023

  22 Oct 2010; Markos Chandras <hwoarang@gentoo.org> perl-5.12.2-r1.ebuild:
  Stable on amd64 wrt bug #340023

  22 Oct 2010; Christian Faulhammer <fauli@gentoo.org>
  perl-5.12.2-r1.ebuild:
  stable x86, bug 340023

  07 Oct 2010; Torsten Veller <tove@gentoo.org> perl-5.12.2-r1.ebuild:
  Create VENDOR_ARCH to shut up a enc2xs file not found warning (#338802).
  Raise perl-cleaner version

  24 Sep 2010; Torsten Veller <tove@gentoo.org> perl-5.12.2-r1.ebuild:
  Disable tests if run as root until there is a solution (#328793). Don't
  try to create a link for missing cpan-run-perl manpage (#307179)

*perl-5.12.2-r1 (21 Sep 2010)

  21 Sep 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.2-r1.ebuild:
  Add LDFLAGS to ldflags and to lddlflags via config.over. Fixes bug #181435

  20 Sep 2010; Mart Raudsepp <leio@gentoo.org> perl-5.12.2.ebuild:
  Add back ~mips wrt #288028

*perl-5.12.2 (07 Sep 2010)

  07 Sep 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.2.ebuild:
  Version bump

*perl-5.12.1-r2 (30 Aug 2010)

  30 Aug 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.1-r2.ebuild:
  Only add debugging code if USE=debug is set. See bug 335213

  28 Jul 2010; Torsten Veller <tove@gentoo.org> -perl-5.12.1.ebuild,
  perl-5.12.1-r1.ebuild:
  Set scriptdir (#330119,#13920)

*perl-5.12.1-r1 (20 Jul 2010)

  20 Jul 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.1-r1.ebuild:
  Bump patchset. Fixes #329021 - Unquoted string "c" may clash with future
  reserved word

  15 Jul 2010; Torsten Veller <tove@gentoo.org> perl-5.12.1.ebuild:
  Raise perl-cleaner version

*perl-5.12.1 (19 Jun 2010)

  19 Jun 2010; Torsten Veller <tove@gentoo.org> +perl-5.12.1.ebuild:
  Version bump

  31 Mar 2010; Raúl Porcel <armin76@gentoo.org> perl-5.8.8-r8.ebuild,
  perl-5.10.1.ebuild:
  Drop -O1 on arm/ia64 as it works fine

  14 Mar 2010; Alexis Ballier <aballier@gentoo.org> perl-5.10.1.ebuild:
  keyword ~x86-fbsd

  15 Feb 2010; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Remind to run perl-cleaner (#305139)

  13 Feb 2010; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Define man{1,3}{dir,ext} again

  03 Feb 2010; Hanno Boeck <hanno@gentoo.org> perl-5.8.8-r8.ebuild,
  perl-5.10.1.ebuild:
  Change license, Perl is Artistic or GPL-1 or later. We can't express or
  later for now, so adding all GPL-1/2/3.

  24 Jan 2010; Brent Baude <ranger@gentoo.org> perl-5.10.1.ebuild:
  Marking perl-5.10.1 ~ppc64 for bug 288028

  17 Jan 2010; Torsten Veller <tove@gentoo.org> -perl-5.8.8-r5.ebuild,
  -perl-5.8.8-r6.ebuild, -files/perl-5.8.8-CAN-2005-0448-rmtree.patch:
  Cleanup

  10 Dec 2009; Brent Baude <ranger@gentoo.org> perl-5.8.8-r8.ebuild:
  Marking perl-5.8.8-r8 ppc64 for bug 295028

  10 Dec 2009; Raúl Porcel <armin76@gentoo.org> perl-5.8.8-r8.ebuild:
  alpha/ia64/m68k/s390/sh stable wrt #295028

  09 Dec 2009; nixnut <nixnut@gentoo.org> perl-5.8.8-r8.ebuild:
  ppc stable #295028

  09 Dec 2009; Raúl Porcel <armin76@gentoo.org> perl-5.10.1.ebuild:
  Add ~sh wrt #288028

  08 Dec 2009; Jeroen Roovers <jer@gentoo.org> perl-5.8.8-r8.ebuild:
  Stable for HPPA (bug #295028).

  08 Dec 2009; Tiago Cunha <tcunha@gentoo.org> perl-5.8.8-r8.ebuild:
  stable sparc, bug 295028

  03 Dec 2009; Markus Meier <maekke@gentoo.org> perl-5.8.8-r8.ebuild:
  amd64/arm/x86 stable, bug #295028

  16 Nov 2009; Raúl Porcel <armin76@gentoo.org> perl-5.10.1.ebuild:
  Add ~alpha/~ia64/~s390/~sparc wrt #288028

  15 Nov 2009; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Add patch for ICE on ia64 (#293312)

  15 Nov 2009; Raúl Porcel <armin76@gentoo.org> perl-5.10.1.ebuild:
  Add ~m68k wrt #288028, thanks to kolla for testing

  15 Nov 2009; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Disable parallel tests (#293241)

  15 Nov 2009; Torsten Veller <tove@gentoo.org> perl-5.8.8-r8.ebuild,
  +files/perl-5.8.8-libnet-hostname.patch:
  Add libnet hostname patch from perl-core/libnet

  14 Nov 2009; Torsten Veller <tove@gentoo.org> perl-5.8.8-r8.ebuild,
  perl-5.10.1.ebuild:
  Check for alternative scripts in ROOT

*perl-5.8.8-r8 (14 Nov 2009)

  14 Nov 2009; Torsten Veller <tove@gentoo.org> +perl-5.8.8-r8.ebuild:
  Add alternatives script linking to perl-5.8.8

  11 Nov 2009; Christian Ruppert <idl0r@gentoo.org>
  -files/perl-5.8.8-libbits.patch:
  Remove obsolete patch.

  04 Nov 2009; Michael Haubenwallner <haubi@gentoo.org>
  files/perl-5.8.8-ccld-cflags.patch:
  Respect CFLAGS also when linking executables, not just for libperl

  04 Nov 2009; Michael Haubenwallner <haubi@gentoo.org>
  perl-5.8.8-r6.ebuild, +files/perl-5.8.8-ccld-cflags.patch:
  Respect CFLAGS even for linking when done with compiler

  27 Oct 2009; Mounir Lamouri <volkmar@gentoo.org> perl-5.10.1.ebuild:
  Keywording for ppc, bug 288028

  27 Oct 2009; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Fix RT69973: disable non-unicode case insensitive trie matching (#290194)

  22 Oct 2009; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Fix warning: Rebuild packages linking libperl.so after toggling use flags

  21 Oct 2009; Markus Meier <maekke@gentoo.org> perl-5.10.1.ebuild:
  add ~amd64/~arm/~x86, bug #288028

  13 Oct 2009; Jeroen Roovers <jer@gentoo.org> perl-5.10.1.ebuild:
  Marked ~hppa (bug #288028).

  29 Sep 2009; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Rename and link the scripts from podlators too: pod2man and pod2text (#286962)

  28 Sep 2009; Torsten Veller <tove@gentoo.org> perl-5.10.1.ebuild:
  Bump perl patchset. Fixes bugs #286840, #286841

  28 Sep 2009; Torsten Veller <tove@gentoo.org> perl-5.8.8-r5.ebuild,
  perl-5.8.8-r6.ebuild, perl-5.10.1.ebuild:
  Bump perl-5.10.1 patchset.
  Fix asm/page.h failure. Thanks to Alon Bar-Lev and Diego Pettenò.
  (#259923, #286656, #249827, #265268)

*perl-5.10.1 (27 Sep 2009)

  27 Sep 2009; Torsten Veller <tove@gentoo.org> +perl-5.10.1.ebuild:
  Version bump

  30 Jul 2009; Torsten Veller <tove@gentoo.org> -perl-5.8.8-r7.ebuild:
  Remove 5.8.8-r7 again

  29 May 2009; Torsten Veller <tove@gentoo.org> perl-5.8.8-r6.ebuild,
  perl-5.8.8-r7.ebuild, +files/perl-5.8.8-fix_file_path_chdir.patch:
  Add another File-Path fix

  27 May 2009; Torsten Veller <tove@gentoo.org> -perl-5.8.8-r2.ebuild,
  -perl-5.8.8-r3.ebuild, -perl-5.8.8-r4.ebuild:
  Cleanup

*perl-5.8.8-r7 (27 May 2009)

  27 May 2009; Torsten Veller <tove@gentoo.org> +perl-5.8.8-r7.ebuild:
  PDEPENDS on CPAN, Encode, ExtUtils-MakeMaker

  08 May 2009; Torsten Veller <tove@gentoo.org>
  +files/perl-fix_h2ph_include_quote.patch, perl-5.8.8-r6.ebuild:
  Fix h2ph to handle system headers with quotes

  26 Apr 2009; Friedrich Oslage <bluebird@gentoo.org>
  +files/perl-5.8.8-lib32.patch, files/perl-5.8.8-lib64.patch,
  perl-5.8.8-r5, perl-5.8.8-r6:
  Install libraries into the correct directory if libdir is lib32, simplify
  the patches, bug #266052

  11 Mar 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  perl-5.8.8-r5.ebuild:
  Backport to stable, too.

  11 Mar 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  perl-5.8.8-r6.ebuild:
  Fix logic for applying the lib64 patch, use get_libdir to decide (should
  fix 32-bit userland profiles).

*perl-5.8.8-r6 (28 Jan 2009)

  28 Jan 2009; Torsten Veller <tove@gentoo.org>
  +files/perl-5.8.8-CAN-2005-0448-rmtree-2.patch, +perl-5.8.8-r6.ebuild:
  Fix #249629 - File::Path multiple symlink attack vulnerabilities

  23 Aug 2008; Jeroen Roovers <jer@gentoo.org> metadata.xml:
  Add GLEP 56 USE flag descriptions. Remove empty tag.

  18 Jul 2008; Javier Villavicencio <the_paya@gentoo.org>
  files/perl-5.8.8-fbsdhints.patch:
  Updated fbsdhints patch, bug 225323.

  05 Jul 2008; Stephanie Lockwood-Childs <wormo@gentoo.org>
  perl-5.8.8-r2.ebuild, perl-5.8.8-r3.ebuild, perl-5.8.8-r4.ebuild,
  perl-5.8.8-r5.ebuild:
  Replaced reference to dead site http://perldoc.com with an equivalent 
  http://search.cpan.org url (bug #230881)

  16 May 2008; Tobias Scherbaum <dertobi123@gentoo.org>
  perl-5.8.8-r5.ebuild:
  ppc stable, bug #219203

  15 May 2008; Raúl Porcel <armin76@gentoo.org> perl-5.8.8-r5.ebuild:
  alpha/ia64 stable wrt security #219203

  14 May 2008; Markus Meier <maekke@gentoo.org> perl-5.8.8-r5.ebuild:
  amd64 stable, bug #219203

  14 May 2008; Christian Faulhammer <opfer@gentoo.org> perl-5.8.8-r5.ebuild:
  stable x86, security bug 219203

  14 May 2008; Markus Rothe <corsair@gentoo.org> perl-5.8.8-r5.ebuild:
  Stable on ppc64; bug #219203

  14 May 2008; Ferris McCormick <fmccor@gentoo.org> perl-5.8.8-r5.ebuild:
  Sparc stable, Security Bug #219203 (UTF regex problem) --- all tests good.

  14 May 2008; Jeroen Roovers <jer@gentoo.org> perl-5.8.8-r5.ebuild:
  Stable for HPPA (bug #219203).

*perl-5.8.8-r5 (09 May 2008)

  09 May 2008; Torsten Veller <tove@gentoo.org>
  +files/perl-5.8.8-CVE-2008-1927.patch, +perl-5.8.8-r5.ebuild:
  #219203 - Fix for CVE-2008-1927

*perl-5.8.8-r4 (19 Nov 2007)

  19 Nov 2007; Christian Hartmann <ian@gentoo.org> +perl-5.8.8-r4.ebuild:
  Revbump to make sure everybody got a working perl as suggested in bug
  #199518 in comment 22; keeping keywords to speed up the progress for bug
  #198196

  18 Nov 2007; Christian Hartmann <ian@gentoo.org>
  +files/perl-5.8.8-lib64.patch:
  Readding perl-5.8.8-lib64.patch; thanks angelos

  18 Nov 2007; Christian Hartmann <ian@gentoo.org> perl-5.8.8-r2.ebuild,
  perl-5.8.8-r3.ebuild:
  Reverting solars changes; bug #199518

  18 Nov 2007; <solar@gentoo.org> -files/perl-5.8.8-lib64.patch,
  +files/perl-5.8.8-libbits.patch, perl-5.8.8-r2.ebuild,
  perl-5.8.8-r3.ebuild:
  - fixed the lib64 patch that was breaking on amd64 32ul.

  14 Nov 2007; Chris Gianelloni <wolf31o2@gentoo.org> perl-5.8.8-r3.ebuild:
  Stable on amd64 wrt bug #198196.

  13 Nov 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  perl-5.8.8-r3.ebuild:
  ppc stable, bug #198196

  13 Nov 2007; Markus Rothe <corsair@gentoo.org> perl-5.8.8-r3.ebuild:
  Stable on ppc64; bug #198196

  13 Nov 2007; Raúl Porcel <armin76@gentoo.org> perl-5.8.8-r3.ebuild:
  alpha/ia64 stable wrt security #198196

  13 Nov 2007; Markus Meier <maekke@gentoo.org> perl-5.8.8-r3.ebuild:
  x86 stable, security bug #198196

  13 Nov 2007; Jeroen Roovers <jer@gentoo.org> perl-5.8.8-r3.ebuild:
  Stable for HPPA (bug #198196). Fixed many quoting issues.

  12 Nov 2007; Ferris McCormick <fmccor@gentoo.org> perl-5.8.8-r3.ebuild:
  Sparc stable --- Security Bug #198196 --- All tests and autotools good.

*perl-5.8.8-r3 (12 Nov 2007)

  12 Nov 2007; <cab@gentoo.org> +files/perl-5.8.8-utf8-boundary.patch,
  +perl-5.8.8-r3.ebuild:
  patch for bug #198196

  17 Oct 2007; Christian Hartmann <ian@gentoo.org> perl-5.8.8-r2.ebuild:
  Fixed bug #194384

  19 Aug 2007; Christian Hartmann <ian@gentoo.org>
  +files/perl-5.8.8-perlcc.patch, perl-5.8.8-r2.ebuild:
  Fixed bug #181229

  16 Aug 2007; Zac Medico <zmedico@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug #187866 - Block Test-Harness, PodParser, and Locale-gettext when
  the "build" flag is enabled since perl needs to be rebuilt first.

  08 Aug 2007; Mike Frysinger <vapier@gentoo.org> perl-5.8.8-r2.ebuild:
  Apply gcc-4.2 patch to everyone.

  06 Aug 2007; Harald van Dĳk <truedfx@gentoo.org>
  +files/perl-5.8.8-makedepend-syntax.patch, perl-5.8.8-r2.ebuild:
  Fix syntax error in makedepend.SH

  06 Aug 2007; Christian Hartmann <ian@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug #187866 - added suggested fix

  30 Apr 2007; <solar@gentoo.org> perl-5.8.8-r2.ebuild:
  - filter ssp on ia64 due to ICE in compiler. revisit when we have a working
  hardened gcc-4.x

  30 Mar 2007; Michael Cummings <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug 147184, thanks to jweckhart for the patch :)

  08 Mar 2007; Michael Cummings <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Change to the call for the lib64 patch to enable it for ppc64 - helps with
  stage 1 building problems. Thanks ranger :)

  07 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org> perl-5.8.8-r2.ebuild:
  Change all instances of [ to [[.

  04 Mar 2007; Michael Cummings <mcummings@gentoo.org>
  +files/perl-5.8.8-asm-page-h-compile-failure.patch, perl-5.8.8-r2.ebuild:
  Bug 168312, patch from Peter for >=2.6.20 kernel headers.

  11 Feb 2007; Fabian Groffen <grobian@gentoo.org> perl-5.8.8-r2.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  11 Jan 2007; Michael Cummings <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Reverting changes made for bug 59328 until we can figure out why this breaks
  under catalyst

  09 Jan 2007; Michael Cummings <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug 144965, adjusted gcc patch line

  07 Jan 2007; Michael Cummings <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug 160623, mistakenly removed the else block for noman

  05 Jan 2007; Michael Cummings <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug 59328, features=noman support

  19 Nov 2006; Michael Cummings <mcummings@gentoo.org>
  +files/perl-5.8.8-gcc42-command-line.patch, perl-5.8.8-r2.ebuild:
  Bug 144965, gcc-4.2 bug/patch, patch provided by dirtyepic

  18 Nov 2006; Michael Cummings <mcummings@gentoo.org>
  -files/perl-5.8.7-CAN-2005-0448-rmtree.patch,
  -files/perl-5.8.7-regexp-nossp.patch, -files/perl-5.8.7-tempfiles.patch,
  -files/perl-exp_intwrap.patch, -files/perl-nonblock.patch,
  -files/perl-reorder-INC.patch, perl-5.8.8-r2.ebuild:
  Bug 150702; also cleaned up unused patches

  23 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  -perl-5.8.7-r3.ebuild:
  Removing old perl

  17 Oct 2006; Roy Marples <uberlord@gentoo.org> perl-5.8.8-r2.ebuild:
  Added ~sparc-fbsd keyword.

  07 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> perl-5.8.8-r2.ebuild:
  Add a dependency on freebsd-mk-defs on FreeBSD.

  18 Aug 2006; Michael Cummings <mcummings@gentoo.org>
  -perl-5.8.7-r2.ebuild, perl-5.8.7-r3.ebuild, perl-5.8.8-r2.ebuild:
  Cleaning up; bug 142940, updating h2ph options for multilib boxes

  15 Aug 2006; Christian Hartmann <ian@gentoo.org> perl-5.8.8-r2.ebuild:
  Fix bug #143895

  13 Aug 2006; <yuval@gentoo.org> perl-5.8.7-r2.ebuild,
  perl-5.8.7-r3.ebuild, perl-5.8.8-r2.ebuild:
  Bug #139478 - changed description. Thanks Marko Horvat for 'reporting'! ;)

  11 Jul 2006; Michael Cummings <mcummings@gentoo.org> -perl-5.8.8.ebuild,
  -perl-5.8.8-r1.ebuild:
  Cleaning up

  25 Jun 2006; Christian Hartmann <ian@gentoo.org> Manifest:
  Removed obsolete patchfiles

  24 Jun 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.7-r2.ebuild,
  perl-5.8.7-r3.ebuild, perl-5.8.8.ebuild, perl-5.8.8-r1.ebuild,
  perl-5.8.8-r2.ebuild:
  Removing perl-core/ExtUtils-MakeMaker

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

  14 Jun 2006; Michael Cummings <mcummings@gentoo.org> -files/perl-cleaner,
  -perl-5.8.6-r5.ebuild, -perl-5.8.6-r6.ebuild, -perl-5.8.6-r7.ebuild,
  -perl-5.8.6-r8.ebuild, -perl-5.8.7.ebuild, -perl-5.8.7-r1.ebuild:
  Cleaning up

  08 Jun 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Fixed pdepend to exclude build folks

  07 Jun 2006; Joshua Kinard <kumba@gentoo.org> perl-5.8.8-r2.ebuild:
  Marked stable on mips.

  07 Jun 2006; <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Following a conversation with agaffney, removed code that is dup'd from
  libperl that was causing a loop in catalyst building - fixes help2man bugs -
  bug 130248 in particular

  03 Jun 2006; Guy Martin <gmsoft@gentoo.org>
  +files/perl-hppa-pa7200-configure.patch, perl-5.8.8-r2.ebuild:
  On PA7200, uname -a contains a single quote and we need to filter it
  otherwise configure fails. See #125535.

  30 May 2006; <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug 134859, fixed USE=build removals on lib64

  27 May 2006; Bryan Østergaard <kloeri@gentoo.org> perl-5.8.8-r2.ebuild:
  Stable on alpha.

  27 May 2006; <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Marking sparc stable

  26 May 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  perl-5.8.8-r2.ebuild:
  hppa stable

  26 May 2006; Chris Gianelloni <wolf31o2@gentoo.org> perl-5.8.8-r2.ebuild:
  Stable on amd64 and x86 wrt bug #133989.

  26 May 2006; Diego Pettenò <flameeyes@gentoo.org> perl-5.8.8-r2.ebuild:
  Re-add ~x86-fbsd keyword.

  26 May 2006; Markus Rothe <corsair@gentoo.org> perl-5.8.8-r2.ebuild:
  Stable on ppc64; bug #133989

  26 May 2006; <nixnut@gentoo.org> perl-5.8.8-r2.ebuild:
  Stable on ppc. Bug #133989

  26 May 2006; <mcummings@gentoo.org> perl-5.8.8-r2.ebuild:
  Bug 134359, -Dusenm

*perl-5.8.8-r2 (26 May 2006)

  26 May 2006; <mcummings@gentoo.org> +perl-5.8.8-r2.ebuild:
  Bug 134363 - pdepends got lost.

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

  24 May 2006; <nixnut@gentoo.org> perl-5.8.8-r1.ebuild:
  Stable on ppc. bug #133989

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

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

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

  20 Apr 2006; Diego Pettenò <flameeyes@gentoo.org> perl-5.8.8-r1.ebuild:
  Use realpath when available, rather than readlink -f, to support
  Gentoo/FreeBSD.

  31 Mar 2006; Diego Pettenò <flameeyes@gentoo.org> perl-5.8.8-r1.ebuild:
  Add ~x86-fbsd keyword.

*perl-5.8.8-r1 (29 Mar 2006)

  29 Mar 2006; <mcumming@gentoo.org> +files/perl-5.8.8-cplusplus.patch,
  +perl-5.8.8-r1.ebuild:
  Patch 27203 in blead - fixes c++ problems in XS code :)

  20 Feb 2006; Michael Cummings <mcummings@gentoo.org>
  +files/perl-5.8.8-fbsdhints.patch, perl-5.8.8.ebuild:
  Bug 122780, freebsd hints via flameeyes

  20 Feb 2006; Michael Cummings <mcummings@gentoo.org>
  +files/perl-5.8.8-dragonfly-clean.patch, perl-5.8.8.ebuild:
  Bug 122706, dragonfly patches. Patch submitted upstream and here by 
  Robert Sebastian Gerus, should be available in blead now.

  20 Feb 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.8.ebuild:
  Updated perl-cleaner dep

  15 Feb 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.8.ebuild:
  Dropping PROVIDE, repoman rejoices, people return to normalcy

  13 Feb 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.8.ebuild:
  Updated virtuals per ciarnm's input

  07 Feb 2006; Aron Griffis <agriffis@gentoo.org> perl-5.8.8.ebuild:
  Prefer to avoid eval and use a bash array for myconf instead, it's less
  error-prone

  07 Feb 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.8.ebuild:
  src update

  07 Feb 2006; <mcumming@gentoo.org> perl-5.8.8.ebuild:
  Style fixes to 5.8.8, thanks az

*perl-5.8.8 (07 Feb 2006)

  07 Feb 2006; Michael Cummings <mcummings@gentoo.org>
  +files/perl-5.8.8-CAN-2005-0448-rmtree.patch,
  +files/perl-5.8.8-USE_MM_LD_RUN_PATH.patch, +files/perl-5.8.8-lib64.patch,
  +files/perl-5.8.8-links.patch, +files/perl-5.8.8-reorder-INC.patch,
  -files/perl-5.8.8_rc1-CAN-2005-0448-rmtree.patch,
  -files/perl-5.8.8_rc1-reorder-INC.patch, -perl-5.8.8_rc1.ebuild,
  +perl-5.8.8.ebuild:
  Perl 5.8.8, with amd64 fixes, RUNPATH fixes, a completely reversed INC, and
  a shiny set of changes.

  24 Jan 2006; Michael Cummings <mcummings@gentoo.org>
  +files/perl-5.8.8_rc1-reorder-INC.patch, perl-5.8.8_rc1.ebuild:
  Some tweaks to perl-5.8.8 installation

*perl-5.8.8_rc1 (22 Jan 2006)

  22 Jan 2006; Michael Cummings <mcummings@gentoo.org>
  +files/perl-5.8.8_rc1-CAN-2005-0448-rmtree.patch,
  +files/perl-regexp-nossp.patch, +perl-5.8.8_rc1.ebuild:
  RC1 of perl 5.8.8

  21 Jan 2006; Markus Rothe <corsair@gentoo.org> perl-5.8.7-r3.ebuild:
  Stable on ppc64

  16 Jan 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.6-r8.ebuild,
  perl-5.8.7-r3.ebuild:
  Minor addition of enc2xs, doesn't impact anything, just placing into ebuild
  for later reference

  15 Jan 2006; Michael Cummings <mcummings@gentoo.org> perl-5.8.7-r3.ebuild:
  Bug 110363, thanks to Nathan and Rene for noting the typo in the minimal
  section

  14 Jan 2006; Torsten Veller <tove@gentoo.org> perl-5.8.7-r3.ebuild:
  Stable on x86 (#118938)

  25 Dec 2005; Joshua Kinard <kumba@gentoo.org> perl-5.8.6-r8.ebuild,
  perl-5.8.7-r3.ebuild:
  Mark 5.8.6-r8 && 5.8.7-r3 stable on mips.

  14 Dec 2005; <mcumming@gentoo.org> perl-5.8.7-r3.ebuild:
  Bug 115503, better if-clause for nossp patch

  07 Dec 2005; Jason Wever <weeve@gentoo.org> perl-5.8.7-r3.ebuild:
  Stable on SPARC wrt bug #114113.

  07 Dec 2005; Mark Loeser <halcy0n@gentoo.org> perl-5.8.6-r8.ebuild:
  Stable on x86; bug #114113

  07 Dec 2005; Jose Luis Rivero <yoswink@gentoo.org> perl-5.8.7-r3.ebuild:
  Stable on alpha wrt security bug #114113

  06 Dec 2005; Michael Hanselmann <hansmi@gentoo.org> perl-5.8.7-r3.ebuild:
  Stable on hppa, ppc.

  06 Dec 2005; Marcus D. Hanwell <cryos@gentoo.org> perl-5.8.7-r3.ebuild:
  Stable on amd64, bug 114113.

  06 Dec 2005; Markus Rothe <corsair@gentoo.org> perl-5.8.6-r8.ebuild:
  Stable on ppc64; bug #114113

*perl-5.8.7-r3 (06 Dec 2005)

  06 Dec 2005; <mcumming@gentoo.org> files/perl-exp_intwrap.patch,
  +perl-5.8.7-r3.ebuild:
  More bug 114113 work. Patch updated, segfaults are all handled now with
  cleaner exit/messages. test with perl -e 'printf("%2147483647$n");' or perl
  -e 'printf "%4294967295d"' before and after upgrading to demonstrate

  05 Dec 2005; <mcumming@gentoo.org> perl-5.8.6-r5.ebuild,
  perl-5.8.6-r6.ebuild, perl-5.8.6-r7.ebuild, perl-5.8.7-r1.ebuild,
  perl-5.8.7-r2.ebuild, perl-5.8.7.ebuild:
  Bug 113930, case statement for non-linux. Also (finally) a fix for the
  installmanpaths (personal bug)

  05 Dec 2005; <mcummings@gentoo.org> perl-5.8.6-r7.ebuild,
  perl-5.8.7-r2.ebuild:
  Mistaken commit missed the picdl patch (was working on bug 65624, which this
  patch appears to cause a seg fault with)

  02 Dec 2005; Joseph Jezak <josejx@gentoo.org> perl-5.8.6-r7.ebuild:
  Marked ppc stable for bug #114113.

  01 Dec 2005; Andrej Kacian <ticho@gentoo.org> perl-5.8.6-r7.ebuild:
  Stable on x86, bug #114113.

  01 Dec 2005; <dang@gentoo.org> perl-5.8.7-r2.ebuild:
  Marked stable on amd64

  01 Dec 2005; Markus Rothe <corsair@gentoo.org> perl-5.8.7-r2.ebuild:
  Stable on ppc64; bug #114113

  01 Dec 2005; Gustavo Zacarias <gustavoz@gentoo.org> perl-5.8.7-r2.ebuild:
  Stable on sparc wrt security #114113

*perl-5.8.7-r2 (01 Dec 2005)

  01 Dec 2005; <mcumming@gentoo.org> +files/perl-exp_intwrap.patch,
  +perl-5.8.6-r7.ebuild, +perl-5.8.7-r2.ebuild:
  Bug 114113, perl-exp_intwrap patch

  14 Nov 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.6-r5.ebuild,
  perl-5.8.6-r6.ebuild, perl-5.8.7.ebuild, perl-5.8.7-r1.ebuild:
  NetBSD for osname per thunder

  12 Nov 2005; Chris White <chriswhite@gentoo.org> perl-5.8.6-r6.ebuild:
  Backported some get_libdir functionality from 5.8.7 to 5.8.6-r6 to resolve
  bug #112243. This is mainly a multi-lib support fix it seems.

  02 Oct 2005; Bryan Østergaard <kloeri@gentoo.org> perl-5.8.7-r1.ebuild:
  Stable on ia64, bug 106678.

  29 Sep 2005; Aaron Walker <ka0ttic@gentoo.org> perl-5.8.6-r6.ebuild:
  Stable on mips for bug #106678.

  23 Sep 2005; Bryan Østergaard <kloeri@gentoo.org> perl-5.8.7-r1.ebuild:
  Stable on alpha, bug 106678.

  21 Sep 2005; Seemant Kulleen <seemant@gentoo.org> perl-5.8.6-r6.ebuild:
  stable on amd64 wrt bug #106678

  21 Sep 2005; Gustavo Zacarias <gustavoz@gentoo.org> perl-5.8.7-r1.ebuild:
  Stable on sparc wrt #106678

  20 Sep 2005; Chris Gianelloni <wolf31o2@gentoo.org> perl-5.8.6-r6.ebuild:
  Marking stable on x86 for bug #106678.

  20 Sep 2005; Rene Nussbaumer <killerfox@gentoo.org> perl-5.8.6-r6.ebuild:
  Stable on hppa. bug #106678

  20 Sep 2005; Markus Rothe <corsair@gentoo.org> perl-5.8.7-r1.ebuild:
  Stable on ppc64 (bug #106678)

  20 Sep 2005; Michael Hanselmann <hansmi@gentoo.org> perl-5.8.6-r6.ebuild:
  Stable on ppc.

*perl-5.8.7-r1 (20 Sep 2005)
*perl-5.8.6-r6 (20 Sep 2005)

  20 Sep 2005; Martin Schlemmer <azarah@gentoo.org>
  +files/perl-5.8.7-MakeMaker-RUNPATH.patch, +perl-5.8.6-r6.ebuild,
  +perl-5.8.7-r1.ebuild:
  We do not want the build root in the linked perl module's RUNPATH, so
  strip paths containing PORTAGE_TMPDIR if its set.  This is for the
  MakeMaker module, bug #105054.

  05 Sep 2005; Herbie Hopkins <herbs@gentoo.org> perl-5.8.7.ebuild:
  More multilib fixes thanks to Christophe Saout, bug 104509.

  04 Sep 2005; Elfyn McBratney <beu@gentoo.org>
  files/perl-5.8.7-regexp-nossp.patch:
  Fix patch to cflags.SH (don't assume /bin/sh is bash).

  04 Sep 2005; Elfyn McBratney <beu@gentoo.org> perl-5.8.6-r5.ebuild,
  perl-5.8.7.ebuild:
  Drop DEPEND on sys-apps/groff.

  01 Sep 2005; Joseph Jezak <josejx@gentoo.org> perl-5.8.6-r5.ebuild,
  perl-5.8.7.ebuild:
  Filtered -mpowerpc-gpopt on ppc to fix bug #97645.

  14 Aug 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.7.ebuild:
  The rest of the patch for bug 58931

  14 Aug 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.6-r5.ebuild,
  perl-5.8.7.ebuild:
  Bug #97894 - added note regarding minimal means minimal

  12 Aug 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.7.ebuild:
  Further bug #58931 - mistake on my part for the LIBPERL= syntax

  12 Aug 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.7.ebuild:
  getlibdir changes for 5.8.7, bug #58931

  08 Aug 2005; Thierry Carrez <koon@gentoo.org> perl-5.8.6-r5.ebuild,
  perl-5.8.7.ebuild:
  Reverting vapier's features_noman change on the groff dependency, which
  results in bug 101088.

  28 Jul 2005; Michael Cummings <mcummings@gentoo.org>
  files/perl-reorder-INC.patch, -perl-5.8.5-r5.ebuild, -perl-5.8.6-r4.ebuild:
  Update to reorder patch, tested with 5.8.6 and 5.8.7, resolves bug 95770

  28 Jul 2005; Michael Cummings <mcummings@gentoo.org> -perl-5.8.5-r5.ebuild,
  -perl-5.8.6-r4.ebuild:
  Cleaning up now that we have keywords up to date

  28 Jul 2005; Herbie Hopkins <herbs@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on amd64.

  07 Jul 2005; Markus Rothe <corsair@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on ppc64

  06 Jul 2005; <plasmaroo@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on IA64.

  06 Jul 2005; Chris Gianelloni <wolf31o2@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on arm, m68k, s390, and sh.

  05 Jul 2005; Hardave Riar <hardave@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on mips.

  03 Jul 2005; Michael Hanselmann <hansmi@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on ppc.

  02 Jul 2005; Bryan Østergaard <kloeri@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on alpha.

  02 Jul 2005; Rene Nussbaumer <killerfox@gentoo.org> perl-5.8.6-r5.ebuild:
  Stable on hppa.

*perl-5.8.6-r5 (30 Jun 2005)

  30 Jun 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.6-r4.ebuild,
  +perl-5.8.6-r5.ebuild:
  Sorry folks, there was a typo in libperl-5.8.6s ebuild that made this
  necessary.

*perl-5.8.7 (29 Jun 2005)

  29 Jun 2005; Michael Cummings <mcummings@gentoo.org>
  -files/perl-5.8.0-RC2-special-h2ph-not-failing-on-machine_ansi_header.patc
  h, -files/perl-5.8.2-perldoc-emptydirs.patch,
  -files/perl-5.8.2-picdl.patch, -files/perl-5.8.2-prelink-lpthread.patch,
  -files/perl-5.8.2-reorder-INC.patch, -files/perl-5.8.2-uclibc.patch,
  -files/perl-5.8.4-noksh.patch, -files/perl-5.8.4-nonblock.patch,
  -files/perl-5.8.4-perldoc-emptydirs.patch, -files/perl-5.8.4-picdl.patch,
  -files/perl-5.8.4-prelink-lpthread.patch,
  -files/perl-5.8.4-reorder-INC.patch, -files/perl-5.8.5-noksh.patch,
  -files/perl-5.8.5-nonblock.patch,
  -files/perl-5.8.5-perldoc-emptydirs.patch, -files/perl-5.8.5-picdl.patch,
  -files/perl-5.8.5-prelink-lpthread.patch,
  -files/perl-5.8.5-reorder-INC.patch, -files/perl-5.8.6-noksh.patch,
  -files/perl-5.8.6-perldoc-emptydirs.patch, -files/perl-5.8.6-picdl.patch,
  -files/perl-5.8.6-prelink-lpthread.patch,
  -files/perl-5.8.6-reorder-INC.patch,
  +files/perl-5.8.7-CAN-2005-0448-rmtree.patch,
  +files/perl-5.8.7-tempfiles.patch, -files/libperl_rebuilder,
  +files/perl-h2ph-ansi-header.patch, +files/perl-noksh.patch,
  +files/perl-nonblock.patch, +files/perl-perldoc-emptydirs.patch,
  +files/perl-picdl.patch, +files/perl-prelink-lpthread.patch,
  +files/perl-reorder-INC.patch, +files/perl-tempfiles.patch,
  +files/perl-uclibc.patch, -files/stat.t, -perl-5.8.2-r4.ebuild,
  -perl-5.8.4-r4.ebuild, perl-5.8.5-r5.ebuild, perl-5.8.6-r4.ebuild,
  +perl-5.8.7.ebuild:
  Perl 5.8.6 unmasking, perl 5.8.7 addition

  05 Jun 2005; Michael Cummings <mcummings@gentoo.org> files/perl-cleaner:
  Bug 90502 - don't leave behind empty log files if nothing has been done

  30 May 2005; Michael Cummings <mcummings@gentoo.org> files/perl-cleaner,
  perl-5.8.2-r4.ebuild, perl-5.8.4-r4.ebuild, perl-5.8.5-r5.ebuild,
  perl-5.8.6-r4.ebuild:
  Updated perl-cleaner to remove the emptied dirs after a .ph purge

  29 May 2005; <solar@gentoo.org> perl-5.8.2-r4.ebuild, perl-5.8.4-r4.ebuild,
  perl-5.8.5-r5.ebuild, perl-5.8.6-r4.ebuild:
  - update perl to use libc expanded variable elibc_uclibc vs uclibc so USE=-*
  works

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.6-r4.ebuild:
  dev-perl/ExtUtils-MakeMaker => perl-core/ExtUtils-MakeMaker migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.5-r5.ebuild:
  dev-perl/ExtUtils-MakeMaker => perl-core/ExtUtils-MakeMaker migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.4-r4.ebuild:
  dev-perl/ExtUtils-MakeMaker => perl-core/ExtUtils-MakeMaker migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r4.ebuild:
  dev-perl/ExtUtils-MakeMaker => perl-core/ExtUtils-MakeMaker migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.6-r4.ebuild:
  dev-perl/Test-Simple => perl-core/Test-Simple migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.5-r5.ebuild:
  dev-perl/Test-Simple => perl-core/Test-Simple migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.4-r4.ebuild:
  dev-perl/Test-Simple => perl-core/Test-Simple migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r4.ebuild:
  dev-perl/Test-Simple => perl-core/Test-Simple migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.6-r4.ebuild:
  dev-perl/File-Spec => perl-core/File-Spec migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.5-r5.ebuild:
  dev-perl/File-Spec => perl-core/File-Spec migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.4-r4.ebuild:
  dev-perl/File-Spec => perl-core/File-Spec migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r4.ebuild:
  dev-perl/File-Spec => perl-core/File-Spec migration

  23 May 2005; Herbie Hopkins <herbs@gentoo.org> perl-5.8.6-r4.ebuild:
  More get_libdir-ization, fixes compilation on amd64's no-lib32 profile.

  16 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r4.ebuild,
  perl-5.8.4-r4.ebuild, perl-5.8.5-r5.ebuild, perl-5.8.6-r4.ebuild:
  Last toolchain-funcs fix

  15 May 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r4.ebuild,
  perl-5.8.4-r4.ebuild, perl-5.8.5-r5.ebuild, perl-5.8.6-r4.ebuild:
  Changed to toolchain-funcs

  20 Mar 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r4.ebuild,
  perl-5.8.4-r4.ebuild, perl-5.8.5-r5.ebuild, perl-5.8.6-r4.ebuild:
  bug 81947 - replaced filesdir with generic cat/pkg

  11 Mar 2005; Michael Cummings <mcummings@gentoo.org>
  files/CAN-2005-0448-rmtree.patch, perl-5.8.2-r4.ebuild,
  perl-5.8.4-r4.ebuild, perl-5.8.5-r5.ebuild, perl-5.8.6-r4.ebuild:
  Patch is in the right place and works on any arch. Yay.

  11 Mar 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r4.ebuild,
  perl-5.8.4-r4.ebuild, perl-5.8.5-r5.ebuild, perl-5.8.6-r4.ebuild:
  The last rmtree patch contains a line that checks <archname>/Errno.pm in
  your existing perl install. If your kernel changes between perl installs, it
  dies horribly. Need to find a cleaner solution first. For everyone that just
  bumped their perls, I am terribly sorry that this wasn't realized earlier.

  11 Mar 2005; Michael Cummings <mcummings@gentoo.org> -perl-5.8.2-r2.ebuild,
  -perl-5.8.2-r3.ebuild, -perl-5.8.4-r2.ebuild, -perl-5.8.4-r3.ebuild,
  -perl-5.8.5-r3.ebuild, -perl-5.8.5-r4.ebuild, -perl-5.8.6-r2.ebuild,
  -perl-5.8.6-r3.ebuild:
  Cleaning out old ebuilds - no keyword changes :)

*perl-5.8.6-r4 (11 Mar 2005)

  11 Mar 2005; Michael Cummings <mcummings@gentoo.org>
  +files/CAN-2005-0448-rmtree.patch, perl-5.8.2-r2.ebuild,
  perl-5.8.2-r3.ebuild, +perl-5.8.2-r4.ebuild, perl-5.8.4-r2.ebuild,
  perl-5.8.4-r3.ebuild, +perl-5.8.4-r4.ebuild, perl-5.8.5-r3.ebuild,
  perl-5.8.5-r4.ebuild, +perl-5.8.5-r5.ebuild, perl-5.8.6-r2.ebuild,
  perl-5.8.6-r3.ebuild, +perl-5.8.6-r4.ebuild:
  Version bump to finalize patch

  11 Mar 2005; Michael Cummings <mcummings@gentoo.org>
  +files/CAN-2005-0448-rmtree.patch, perl-5.8.2-r2.ebuild,
  perl-5.8.2-r3.ebuild, perl-5.8.4-r2.ebuild, perl-5.8.4-r3.ebuild,
  perl-5.8.5-r3.ebuild, perl-5.8.5-r4.ebuild, perl-5.8.6-r2.ebuild,
  perl-5.8.6-r3.ebuild:
  Changed file_path_rmtree to CAN-2005-0448-rmtree.patch per bug 79685

  08 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org>
  perl-5.8.6-r3.ebuild:
  More multilib fixes.

*perl-5.8.5-r4 (11 Feb 2005)

  11 Feb 2005; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r2.ebuild,
  +perl-5.8.2-r3.ebuild, perl-5.8.4-r2.ebuild, +perl-5.8.4-r3.ebuild,
  perl-5.8.5-r3.ebuild, +perl-5.8.5-r4.ebuild, perl-5.8.6-r2.ebuild,
  +perl-5.8.6-r3.ebuild:
  Bug 80460 - CAN-2005-015{5,6} - perlsuid patch. Bug 62321, 65317 - Removal of
  old .ph files after an upgrade. Bug 72977 - modifications to allow for perl
  5.8.0 and multithreaded perls to use the perl-inc patch. In addition, modified
  the perl-cleaner message to display only if @INC included more than the
  current install's perl (ie, only if this was an upgrade that left files
  behind).

  05 Feb 2005; Michael Cummings <mcummings@gentoo.org>
  +files/CAN-2005-0156-suid.patch, perl-5.8.2-r2.ebuild,
  perl-5.8.4-r2.ebuild, perl-5.8.5-r3.ebuild, perl-5.8.6-r2.ebuild:
  Bug 80460, perlsuid vulnerability

  05 Feb 2005; Michael Cummings <mcummings@gentoo.org>
  -perl-5.8.2-r1.ebuild, -perl-5.8.4-r1.ebuild, -perl-5.8.5-r1.ebuild,
  -perl-5.8.5-r2.ebuild, -perl-5.8.5.ebuild, -perl-5.8.6-r1.ebuild,
  -perl-5.8.6.ebuild:
  Cleaning up old, unused ebuilds

  31 Jan 2005; Michael Cummings <mcummings@gentoo.org> files/perl-cleaner:
  swtaylor came up with a quicker way to generate the module list, plus a more
  secure call for making the tmp files

  27 Jan 2005; Michael Cummings <mcummings@gentoo.org> files/perl-cleaner:
  Code cleanup thanks to Mr.B. *MAJOR* typo in the filename for the prelist of
  ebuilds to re-emerge resulted in no ebuilds getting re-emerged...

  26 Jan 2005; Michael Cummings <mcummings@gentoo.org> files/perl-cleaner:
  tmpdir fix - thanks Mr. B.

*perl-5.8.4-r2 (26 Jan 2005)

  26 Jan 2005; Michael Cummings <mcummings@gentoo.org>
  +files/file_path_rmtree.patch, files/libperl_rebuilder, files/perl-cleaner,
  +perl-5.8.2-r2.ebuild, +perl-5.8.4-r2.ebuild, +perl-5.8.5-r3.ebuild,
  +perl-5.8.6-r2.ebuild:
  Bump for bug 75696 involving temporary file perms in File::Path. Includes
  fixes for h2ph conversion, bug 75955 Includes change over to perl-cleaner from
  libperl_rebuilder, bugs 60447, 62301, 62669, 66688, 73932, 71287

  16 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
  perl-5.8.5-r2.ebuild, perl-5.8.6-r1.ebuild, perl-5.8.6.ebuild:
  multilib fixes for amd64's 2005.0.

  29 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
  Change encoding to UTF-8 for GLEP 31 compliance

  07 Dec 2004; Hardave Riar <hardave@gentoo.org> perl-5.8.5-r2.ebuild:
  Stable on mips, bug #66360

  06 Dec 2004; Gustavo Zacarias <gustavoz@gentoo.org> perl-5.8.5-r2.ebuild:
  Stable on sparc wrt #66360

  05 Dec 2004; Bryan Østergaard <kloeri@gentoo.org> perl-5.8.5-r2.ebuild:
  Stable on alpha, bug 66360.

  05 Dec 2004; Markus Rothe <corsair@gentoo.org> perl-5.8.5-r2.ebuild:
  Stable on ppc64; bug #66360

*perl-5.8.5-r2 (04 Dec 2004)

  04 Dec 2004; Robert Coie <rac@gentoo.org>
  +files/perl-5.8.5-tempfiles.patch, +files/perl-5.8.6-tempfiles.patch,
  -perl-5.8.4.ebuild, +perl-5.8.5-r2.ebuild, +perl-5.8.6-r1.ebuild:
  Add the few relevant bits from bug 66360, keyword 5.8.5-r2 x86, amd64 and ppc

  01 Dec 2004; Robert Coie <rac@gentoo.org> perl-5.8.6.ebuild:
  back makemaker block to 6.17

*perl-5.8.6 (30 Nov 2004)

  30 Nov 2004; Robert Coie <rac@gentoo.org> +files/perl-5.8.6-noksh.patch,
  +files/perl-5.8.6-perldoc-emptydirs.patch, +files/perl-5.8.6-picdl.patch,
  +files/perl-5.8.6-prelink-lpthread.patch,
  +files/perl-5.8.6-reorder-INC.patch, +perl-5.8.6.ebuild:
  New upstream

  13 Nov 2004; Robert Coie <rac@gentoo.org> perl-5.8.5-r1.ebuild:
  Go ahead and use the myarch that exists

*perl-5.8.5-r1 (12 Nov 2004)

  12 Nov 2004; Robert Coie <rac@gentoo.org> -perl-5.8.3.ebuild,
  +perl-5.8.5-r1.ebuild:
  Allow the maketest FEATURE to determine whether tests are run. Guide
  Configure to attempt to pick up old 5.8.2 and 5.8.4 directories in @INC

  25 Oct 2004; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4-r1.ebuild, perl-5.8.4.ebuild,
  perl-5.8.5.ebuild:
  Cleaner h2ph, should reduce build time but leave us with something still
  usable.

  06 Oct 2004; Guy Martin <gmsoft@gentoo.org> perl-5.8.4-r1.ebuild:
  Stable on hppa.

  28 Sep 2004; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4-r1.ebuild, perl-5.8.4.ebuild,
  perl-5.8.5.ebuild:
  Added back perlsuid/sperl based on local use flag. Bug 64823. Users should
  read http://perldoc.com/perl5.8.4/INSTALL.html#suidperl before enabling.

  27 Sep 2004; Mike Frysinger <vapier@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4-r1.ebuild, perl-5.8.4.ebuild,
  perl-5.8.5.ebuild:
  Add libperl to RDEPEND (since pkg_setup will die otherwise) and make sure
  pkg_setup() respects $ROOT.

  27 Sep 2004; Michael Cummings <mcummings@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4-r1.ebuild, perl-5.8.4.ebuild,
  perl-5.8.5.ebuild:
  Added perl debugging support, bug 60775

  24 Sep 2004; Robert Coie <rac@gentoo.org> perl-5.8.4-r1.ebuild,
  perl-5.8.5.ebuild:
  Make gdbm patch conditional on having 1.8.3, because libgdbm_compat isn't
  there otherwise, should not affect people who have already built. Made 5.8.5
  depend on 1.8.3 instead. Again, should not affect installed people.

  22 Sep 2004; Robert Coie <rac@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4-r1.ebuild, perl-5.8.4.ebuild,
  perl-5.8.5.ebuild:
  USE threads -> ithreads

  21 Sep 2004; Danny van Dyk <kugelfang@gentoo.org> perl-5.8.4-r1.ebuild:
  Marked stable on amd64.

  09 Sep 2004; Gustavo Zacarias <gustavoz@gentoo.org> perl-5.8.4-r1.ebuild:
  Stable on sparc to finally solve #36478

  08 Sep 2004; Robert Coie <rac@gentoo.org> perl-5.8.4-r1.ebuild:
  keyword x86 and arm for uclibc folks

  06 Sep 2004; Ciaran McCreesh <ciaranm@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4-r1.ebuild, perl-5.8.4.ebuild,
  perl-5.8.5.ebuild:
  Switch to use epause and ebeep, bug #62950

  31 Aug 2004; Guy Martin <gmsoft@gentoo.org> perl-5.8.4.ebuild,
  perl-5.8.5.ebuild:
  Removed useless -fPIC for hppa.

  21 Aug 2004; Joshua Kinard <kumba@gentoo.org> perl-5.8.4-r1.ebuild:
  Marked stable on mips.

  18 Aug 2004; Aron Griffis <agriffis@gentoo.org> perl-5.8.4-r1.ebuild:
  stable on alpha

  13 Aug 2004; Bryan Østergaard <kloeri@gentoo.org> perl-5.8.4.ebuild:
  Stable on alpha.

  07 Aug 2004; Robert Coie <rac@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4-r1.ebuild, perl-5.8.4.ebuild:
  convert SHORT_PV and MY_P to bash

*perl-5.8.5 (06 Aug 2004)

  06 Aug 2004; Robert Coie <rac@gentoo.org> +files/perl-5.8.5-noksh.patch,
  +files/perl-5.8.5-nonblock.patch, +files/perl-5.8.5-perldoc-emptydirs.patch,
  +files/perl-5.8.5-picdl.patch, +files/perl-5.8.5-prelink-lpthread.patch,
  +files/perl-5.8.5-reorder-INC.patch, +perl-5.8.5.ebuild:
  5.8.5

  02 Aug 2004; Robert Coie <rac@gentoo.org> +files/perl-5.8.4-nonblock.patch,
  perl-5.8.4-r1.ebuild:
  add nonblock.patch, primarily for sparc64

  29 Jul 2004; Guy Martin <gmsoft@gentoo.org> perl-5.8.4.ebuild:
  Stable on hppa.

*perl-5.8.4-r1 (29 Jul 2004)

  29 Jul 2004; Robert Coie <rac@gentoo.org> +perl-5.8.4-r1.ebuild:
  Move make test to src_test, but still call it if the maketest
  FEATURE is not enabled.  If maketest ever becomes a default, this
  can be reconsidered.  The NDBM-GDBM patch in bug 52660 is in here,
  and gdbm is allowed to provide ndbm, as it works for me with either
  1.8.0-r5 (so2) or 1.8.3 (so3).  So to get ndbm, one must either
  USE=berkdb and have db1 installed, or USE=gdbm in which case gdbm
  will come in.  The man page fixes from bug 58620 are in.
  src_configure has been split out of src_compile in preparation for
  making compiles more easily resumable.  An issue genone brought up
  where hardlinks aren't making it through portage's staging image has
  been addressed by making /usr/bin/perl a symlink to perl5.8.4
  instead of a hardlink.  The same issue was faced with suidperl,
  which has been removed completely to preemptively avoid security
  issues.  sperl${PV} is gone too, in favor of the perl recommendation
  to use sudo instead of having setuid perl executables.  I hope this
  will help security, but it can be restored if there is enough
  demand.
	
  23 Jul 2004; Robert Coie <rac@gentoo.org> perl-5.8.4.ebuild:
  keywording x86 and sparc

  02 Jul 2004; <solar@gentoo.org> perl-5.8.4.ebuild:
  don't call perl to install manfiles when FEATURES=noman is set. testing of the
  perl can be disable now with restrictions

  29 Jun 2004; Aron Griffis <agriffis@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4.ebuild:
  kill sparc64 use flag

  25 Jun 2004; <solar@gentoo.org> perl-5.8.4.ebuild:
  uclibc update

  24 Jun 2004; <solar@gentoo.org> perl-5.8.4.ebuild:
  added uclibc update for 5.8.4

  15 Jun 2004; <solar@gentoo.org> perl-5.8.2-r1.ebuild,
  files/perl-5.8.2-uclibc.patch:
  basic initial uclibc support needed for bootstrapping

  09 Jun 2004; Robert Coie <rac@gentoo.org> +files/perl-5.8.4-noksh.patch,
  perl-5.8.4.ebuild:
  Add noksh.patch, bug 42665

  03 Jun 2004; Aron Griffis <agriffis@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4.ebuild:
  Fix use invocation

  02 Jun 2004; Travis Tilley <lv@gentoo.org> perl-5.8.4.ebuild:
  stable on amd64

  31 May 2004; Robert Coie <rac@gentoo.org> perl-5.8.2-r1.ebuild,
  perl-5.8.3.ebuild, perl-5.8.4.ebuild:
  Update makemaker blocks to <6.17, not worth making everybody recompile

  10 May 2004; Michael McCabe <randy@gentoo.org> perl-5.8.4.ebuild:
  Stable on s390

  08 May 2004; Robert Coie <rac@gentoo.org> perl-5.8.4.ebuild,
  files/perl-5.8.4-prelink-lpthread.patch:
  Add back the -lpthread patch, frozen-bubble segfaults otherwise

*perl-5.8.4 (03 May 2004)

  03 May 2004; Robert Coie <rac@gentoo.org> perl-5.8.4.ebuild,
  files/5.6.1-builtin-fixup.diff, files/5.6.1-op-test-fix.diff,
  files/perl-5.8.4-perldoc-emptydirs.patch, files/perl-5.8.4-picdl.patch,
  files/perl-5.8.4-reorder-INC.patch:
  Add 5.8.4

  28 Apr 2004; Mike Frysinger <vapier@gentoo.org> :
  Clean up `use` syntax and remove ${CC} usage.

  27 Feb 2004; Michael Cummings <mcummings@gentoo.org> perl-5.6.1-r10.ebuild,
  perl-5.6.1-r11.ebuild, perl-5.6.1-r12.ebuild:
  5.6.1 is no longer a requirement/needed in the tree

  21 Feb 2004; Michael Cummings <mcummings@gentoo.org> perl-5.8.0-r11.ebuild,
  perl-5.8.0-r12.ebuild, perl-5.8.0-r9.ebuild, perl-5.8.2.ebuild,
  files/libperl-5.8.0-create-libperl-soname.patch,
  files/perl-5.8.0-perldoc-emptydirs.patch,
  files/perl-5.8.0-prelink-lpthread.patch, files/perl-5.8.0-reorder-INC.patch,
  files/perl-5.8.0-sockatmark-should-__THROW.patch:
  Massive clean up. With 5.8.2 now marked stable on all platforms, we are
    removing the older 5.8.0 ebuilds, which are no longer available upstream
    anymore. I also cleaned out the files dir of any patches that were being
    specifically used by 5.8.0 and not the other versions.

  19 Feb 2004; Aron Griffis <agriffis@gentoo.org> perl-5.8.2-r1.ebuild:
  stable on alpha and ia64

  18 Feb 2004; Joshua Kinard <kumba@gentoo.org> perl-5.8.2-r1.ebuild:
  Marking stable on mips

  09 Feb 2004; Bartosch Pixa <darkspecter@gentoo.org> perl-5.8.2-r1.ebuild:
  set ppc in keywords

  06 Feb 2004; <gustavoz@gentoo.org> perl-5.8.2-r1.ebuild:
  stable on sparc

  03 Feb 2004; <gustavoz@gentoo.org> perl-5.8.2-r1.ebuild:
  stable on hppa

  01 Feb 2004; <rac@gentoo.org> perl-5.8.2-r1.ebuild:
  mark x86

*perl-5.8.3 (17 Jan 2004)

  17 Jan 2004; <rac@gentoo.org> perl-5.8.1-r1.ebuild, perl-5.8.1-r2.ebuild,
  perl-5.8.3.ebuild, files/perl-5.8.1-perldoc-emptydirs.patch,
  files/perl-5.8.1-prelink-lpthread.patch, files/perl-5.8.1-reorder-INC.patch,
  files/perl-5.8.1_rc1-reorder-INC.patch,
  files/perl-5.8.1_rc1-sockatmark-should-__THROW.patch,
  files/perl-5.8.1_rc2-reorder-INC.patch,
  files/perl-5.8.1_rc2-sockatmark-should-__THROW.patch,
  files/perl-5.8.3-perldoc-emptydirs.patch, files/perl-5.8.3-picdl.patch,
  files/perl-5.8.3-prelink-lpthread.patch, files/perl-5.8.3-reorder-INC.patch:
  Upstream bump, housecleaning

  06 Jan 2004; Luca Barbato <lu_zero@gentoo.org> perl-5.8.0-r12.ebuild:
  Marked ~arm to let me commit ppc related changes (it is as wierd as it sound)

*perl-5.8.2-r1 (29 Nov 2003)

  29 Nov 2003; <rac@gentoo.org> perl-5.8.2-r1.ebuild,
  files/perl-5.8.2-picdl.patch:
  Make CCCDLFLAGS apply to static archives like DynaLoader.a as well, even
  though we are not building a shared libperl here, because we do have a shared
  library elsewhere. Should make it so that arches like amd64 and hppa no longer
  have to add -fPIC to all cflags blindly.

  26 Nov 2003; <rac@gentoo.org> perl-5.8.2.ebuild:
  Make perl depend on exact same libperl version, so that upgrading perl will
  bring libperl along. Solves problems where new modules go into directories in
  @INC too new for libperl to know about

  16 Nov 2003; Brad House <brad_mssw@gentoo.org> perl-5.8.2.ebuild:
  mark stable on amd64

*perl-5.8.2 (08 Nov 2003)

  08 Nov 2003; <rac@gentoo.org> perl-5.8.2.ebuild,
  files/perl-5.8.2-perldoc-emptydirs.patch,
  files/perl-5.8.2-prelink-lpthread.patch, files/perl-5.8.2-reorder-INC.patch:
  new upstream version

  22 Oct 2003; <rac@gentoo.org> perl-5.8.1-r2.ebuild,
  files/perl-5.8.1-perldoc-emptydirs.patch:
  Forward-port the perldoc emptydirs patch

  20 Oct 2003; Michael Cummings <mcummings@gentoo.org> perl-5.8.1-r1.ebuild,
  perl-5.8.1-r2.ebuild:
  Changed how h2ph grabs its list of files; relying on h2ph to efficiently
  recurse was resulting a looping condition when there is a symlink in
  /usr/include/* (libxml was the sample case - thanks DarkSpecter!). Using find
  isolates the list to only .h files.

  14 Oct 2003; <rac@gentoo.org> perl-5.8.1-r2.ebuild:
  Allow building even when db-1 is not present, but let ndbm_file use it if it's
  there

*perl-5.8.1-r2 (02 Oct 2003)

  02 Oct 2003; <rac@gentoo.org> perl-5.8.1-r2.ebuild, perl-5.8.1.ebuild,
  perl-5.8.1_rc1.ebuild, perl-5.8.1_rc2.ebuild, perl-5.8.1_rc3.ebuild,
  perl-5.8.1_rc4.ebuild, files/perl-5.8.1-prelink-lpthread.patch:
  Clean house, readd pthread prelink patch to avoid reported sdl segfaulting.
  Thanks to lisa for the report.

*perl-5.8.1-r1 (29 Sep 2003)

  29 Sep 2003; <rac@gentoo.org> perl-5.8.1-r1.ebuild:
  Change destdir handling in a couple of places

*perl-5.8.1 (27 Sep 2003)

  27 Sep 2003; <rac@gentoo.org> perl-5.8.1.ebuild,
  files/perl-5.8.1-reorder-INC.patch:
  New upstream revision

  17 Sep 2003; Jon Portnoy <avenj@gentoo.org> perl-5.8.0-r12.ebuild :
  ia64 keywords.

  22 Aug 2003; Michael Cummings <mcummings@gentoo.org> perl-5.6.1-r10.ebuild,
  perl-5.6.1-r11.ebuild, perl-5.6.1-r12.ebuild, perl-5.8.0-r10.ebuild,
  perl-5.8.0-r11.ebuild, perl-5.8.0-r12.ebuild, perl-5.8.0-r9.ebuild,
  perl-5.8.1_rc1.ebuild, perl-5.8.1_rc2.ebuild, perl-5.8.1_rc3.ebuild:
  Corrected h2ph behaviour to now run -r -l -- recursively :)
  Also fixes bug 14461

*perl-5.8.1_rc3 (30 Jul 2003)

  30 Jul 2003; Michael Cummings <mcummings@gentoo.org> perl-5.8.1_rc3.ebuild:
  Latest release candidate for 5.8.1

  25 Jul 2003; <rac@gentoo.org> perl-5.8.1_rc1.ebuild, perl-5.8.1_rc2.ebuild:
  Forward-port alpha and hppa fixes from 5.8.0-r9

  25 Jul 2003; <rac@gentoo.org> perl-5.8.0-r12.ebuild:
  Remove ~arch protection on all but hppa

*perl-5.8.1_rc2 (23 Jul 2003)

  23 Jul 2003; <rac@gentoo.org> perl-5.8.1_rc2.ebuild,
  files/perl-5.8.1_rc2-reorder-INC.patch,
  files/perl-5.8.1_rc2-sockatmark-should-__THROW.patch:
  Add 5.8.1-rc2

  18 Jul 2003; <rac@gentoo.org> perl-5.8.0-r12.ebuild, perl-5.8.1_rc1.ebuild:
  Add blocker on Test-Simple versions that overwrite the core

  18 Jul 2003; <rac@gentoo.org> perl-5.8.0-r12.ebuild, perl-5.8.1_rc1.ebuild:
  Portage depends to >=2.0.48-r4.  This is important for blocking depends

  16 Jul 2003; <rac@gentoo.org> perl-5.8.0-r12.ebuild, perl-5.8.1_rc1.ebuild:
  Add portage depend on version that fixes bug 23546, so the blocking depends
  will be guaranteed to work even if people are upgrading

  15 Jul 2003; <rac@gentoo.org> perl-5.8.0-r12.ebuild, perl-5.8.1_rc1.ebuild:
  Fiddle with the module block depends a bit, largely to ensure that File-Spec
  0.84 doesn't fall through the cracks

*perl-5.8.1_rc1 (10 Jul 2003)

  10 Jul 2003; <rac@gentoo.org> perl-5.8.1_rc1.ebuild,
  files/perl-5.8.1_rc1-reorder-INC.patch,
  files/perl-5.8.1_rc1-sockatmark-should-__THROW.patch:
  Add 5.8.1_rc1.  Experimental.

  01 Jul 2003; Todd Sunderlin <todd@gentoo.org> perl-5.8.0-r11.ebuild:
  set stable on sparc

  26 Jun 2003; <rac@gentoo.org> perl-5.8.0-r10.ebuild, perl-5.8.0-r11.ebuild,
  perl-5.8.0-r12.ebuild:
  Add -Dd_u32align on mips to work around a gcc 3.3 kernel compiling bug

  26 Jun 2003; <rac@gentoo.org> perl-5.8.0-r12.ebuild:
  Add block depends on ExtUtils-MakeMaker and File-Spec, because we need to get
  those uninstalled before they steal our files again

*perl-5.8.0-r12 (25 Jun 2003)

  25 Jul 2003; Guy Martin <gmsoft@gentoo.org> perl-5.8.0-r12.ebuild :
  Marked stable on hppa.

  25 Jun 2003; <rac@gentoo.org> perl-5.8.0-r12.ebuild,
  files/perl-5.8.0-reorder-INC.patch:
  Reorder @INC so that site modules can override vendor modules, which can in
  turn override core modules.

  24 Jun 2003; Aron Griffis <agriffis@gentoo.org> perl-5.8.0-r10.ebuild:
  Mark stable on alpha

  10 Jun 2003; <rac@gentoo.org> perl-5.6.1-r12.ebuild:
  Mark stable on x86

  06 Jun 2003; <rac@gentoo.org> perl-5.6.1-r12.ebuild:
  Add sed-4 dependency to use sed -i

  04 Jun 2003; <rac@gentoo.org> perl-5.8.0-r11.ebuild:
  Relax db DEPEND as well as RDEPEND.  Thanks to mcummings for the catch.

*perl-5.8.0-r11 (03 Jun 2003)

  03 Jun 2003; <rac@gentoo.org> perl-5.8.0-r11.ebuild:
  Clean out libperl bits from ebuild. Grab newer version of Safe.pm from CPAN
  for security reasons, DB_File for db 4.1 compatibility.

*perl-5.6.1-r12 (02 Jun 2003)

  02 Jun 2003; <rac@gentoo.org> perl-5.6.1-r12.ebuild:
  Replace PDEPEND strategy for ExtUtils::MakeMaker and Safe.pm with the approach
  of injecting newer versions directly into the core

*perl-5.6.1-r11 (31 May 2003)

  31 May 2003; Alastair Tse <liquidx@gentoo.org> perl-5.6.1-r10.ebuild,
  perl-5.6.1-r11.ebuild, files/5.6.1-builtin-fixup.diff,
  files/5.6.1-op-test-fix.diff, files/stat.t:
  Putting perl-5.6.1 back in because it breaks the default-1.0 profile.

  30 May 2003; <rac@gentoo.org> perl-5.6.1-r10.ebuild, perl-5.6.1-r11.ebuild,
  perl-5.8.0-r10.ebuild, files/5.6.1-builtin-fixup.diff,
  files/5.6.1-op-test-fix.diff:
  Marking stable on mips, thanks to dragon and kumba for verification and
  mcummings for coordination.  Also cleaning 5.6.1 ebuilds, as all marked
  arches now have a stable 5.8 version

  27 May 2003; <rac@gentoo.org> perl-5.8.0-r10.ebuild, perl-5.8.0-r9.ebuild:
  Add threads to IUSE, thanks to liquidx for the catch

  20 May 2003; Tavis Ormandy <taviso@gentoo.org> perl-5.8.0-r10.ebuild:
  removing gcc hardcodes.

  18 May 2003; Tavis Ormandy <taviso@gentoo.org> perl-5.8.0-r9.ebuild:
  removing hardcoded compiler.

*perl-5.8.0-r10 (30 Mar 2003)

  23 Apr 2003; <rac@gentoo.org> perl-5.8.0-r10.ebuild:
  Only build extra HTML documentation if USE="doc" is set - thanks to
  msterret@gentoo.org - bug #16401

  07 Apr 2003; Martin Holzer <mholzer@gentoo.org> perl-5.6.1-r10.ebuild,
  perl-5.6.1-r11.ebuild, perl-5.8.0-r10.ebuild, perl-5.8.0-r9.ebuild:
  Changes portage version depend. Closes #13339.

  30 Mar 2003; <rac@gentoo.org> perl-5.8.0-r10.ebuild:
  marking stable again on x86 and ppc - previous sparc keyword commit undid this
  and broke things

  30 Mar 2003; Rodney Rees <manson@gentoo.org> perl-5.8.0-r10.ebuild,
  marked stable for sparc

*perl-5.8.0-r10 (11 Mar 2003)

  27 Mar 2003; <rac@gentoo.org> perl-5.8.0-r10.ebuild:
  Marking stable for x86 and ppc, no problems reported from ~arch testers

  11 Mar 2003; Seemant Kulleen <seemant@gentoo.org> perl-5.6.1-r10.ebuild,
  perl-5.6.1-r11.ebuild, perl-5.8.0-r10.ebuild, perl-5.8.0-r9.ebuild,
  files/5.6.1-builtin-fixup.diff, files/5.6.1-op-test-fix.diff,
  files/libperl-5.8.0-create-libperl-soname.patch, files/libperl_rebuilder,
  files/perl-5.8.0-RC2-special-h2ph-not-failing-on-machine_ansi_header.patch,
  files/perl-5.8.0-perldoc-emptydirs.patch,
  files/perl-5.8.0-prelink-lpthread.patch,
  files/perl-5.8.0-sockatmark-should-__THROW.patch, files/stat.t:
  moved to dev-lang from sys-devel

*perl-5.8.0-r10 (28 Feb 2003)

  01 Mar 2003; Brandon Low <lostlogic@gentoo.org> perl-5.8.0-r10.ebuild,
  perl-5.8.0-r9.ebuild:
  Make use emake instead of make, but still use 1 process build where needed

  28 Feb 2003; <rac@gentoo.org> perl-5.8.0-r10.ebuild:
  Ensure that libpthread is linked against by perl, so that runtime
  signal handling works correctly (bug #14380).
  
  Patch perldoc to not abort when it attempts to search nonexistent
  directories (bug #16589).

*perl-5.6.1-r11 (14 Feb 2003)

  24 Mar 2003; <rac@gentoo.org> perl-5.6.1-r10.ebuild, perl-5.6.1-r11.ebuild:
  Remove spurious '$' from head of SRC_URI

  16 Mar 2003; Jan Seidel <tuxus@gentoo.org> :
  Added mips to KEYWORDS

  14 Feb 2003; Mark Guertin <gerk@gentoo.org> perl-5.6.1-r11.ebuild :
  Set to ppc stable

  14 Feb 2003; Mark Guertin <gerk@gentoo.org> perl-5.6.1-r11.ebuild files/5.6.1-builtin-fixup.diff files/5.6.1-op-test-fix.diff files/digest-perl-5.6.1-r11 :
  built-in sed fixups, placed in makefile.SH instead of randomly thru the build.  Thanks to rac for all his help and an lfs patch

  11 Feb 2003; Guy Martin <gmsoft@gentoo.org> perl-5.8.0-r9.ebuild :
  Added hppa to keywords.

*perl-5.8.0-r9 (15 Jan 2003)

  23 Feb 2003; Guy Martin <gmsoft@gentoo.org> perl-5.8.0-r9.ebuild :
  Added -fPIC to CFLAGS on hppa. It's needed by apps linking to some perl libs.

  18 Feb 2003; Zach Welch <zwelch@gentoo.org> perl-5.8.0-r9.ebuild :
  Added arm to keywords.

  10 Feb 2003; Seemant Kulleen <seemant@gentoo.org> *.ebuild :

  removed old and crusty ebuilds, there were just way too many in here.
  Also, changed sed statements to use : instead of /

  05 Feb 2003; J Robert Ray <jrray@gentoo.org> perl-5.8.0-r9.ebuild; Changed to strip
  "-malign-double" from CFLAGS, fixing bug 14608.

  17 Jan 2003;Michael Cummings <mcummings@gentoo.org> perl-5.8.0-r9;

  Another blundered typo. The flag-o-matic include had a "0" instead of a "O"

  16 Jan 2003; Michael Cummings <mcummings@gentoo.org> perl-5.8.0-r9;

  Typo fix, this one in an einfo.
  Incorporate flag-o-matic per bug 13952 - the -Os flag doesn't work with perl

  15 Jan 2003; Michael Cummings <mcummings@gentoo.org> perl-5.8.0-r9;

  Major typo corrections that affected the placement of scripts and the man
  pages. There was a typo introduced into the 5.8 ebuilds early on that was
  not caught until now that left the location of the man pages blank and that 
  misset the /usr call for scripts placement from perl modules. This was caught
  in bugs 13886 and 13920

  15 Jan 2003; J Robert Ray <jrray@gentoo.org> libperl_rebuilder : Fixed
  unfortunate typo.

*perl-5.8.0-r8 (06 Jan 2003)

  12 Jan 2003; Michael Cummings <mcummings@gentoo.org> perl-5.8.0-r8,
  libperl_rebuilder:
  
  ebuild - Put a sleep where we had one in the else block so that there is a
  pause before emerging (notice regarding threads). Added a sleep at the tail
  end of the ebuild so that there is a pause for folks doing an emerge -u world
  so that they at leat have an opportunity to see the notice.
  libperl_rebuilder - Removed the unmerge section, that's really overkill for
  our needs and only complicates things. Added new syntax to check for files
  installed into /usr/lib/perl* that weren't picked up previously. Changed the
  name of the log file to perl-update.log (makes more sense ;) ) Added mask
  check earlier in the sanity phase.

  08 Jan 2003; Seemant Kulleen <seemant@gentoo.org> perl-5.8.0-r8.ebuild :

  Unmasked for sparc.

  08 Jan 2003; Brandon Low <lostlogic@gentoo.org> perl-5.8.0-r8:
  Later that day:  dosed smells funny, switch some of it
  to use just sed and a for loop, this smells better
  to me, and fixed the problems I was having with
  ${D} staying in the files.

  08 Jan 2003; Martin Schlemmer <azarah@gentoo.org> perl-5.8.0-r8:
  Remove  a wild 'test' from comments =)

  08 Jan 2003; Michael Cummings <mcummings@gentoo.org> perl-5.8.0-r8:
  Unmasking for x86.

  08 Jan 2003; Brandon Low <lostlogic@gentoo.org> perl-5.8.0-r8:
  Updated ewarn at the top so that it makes sense (was telling a user
  they could use threads when they already were)

  06 Jan 2003; Michael Cummings <mcummings@gentoo.org> perl-5.8.0-r8:
  Updated einfo, added libperl ebuild. I've placed the libperl rebuilder
  in the filesdir and added a note about it to the pkg_postinstall. Thanks
  go to Azarah for the new set of ebuilds.

  03 Jan 2002; Michael Cummings <mcummings@gentoo.org> perl-5.6.1-r10:
  small fix to regex of x2p/makefile - cp'ied the process further down the
  ebuild since this is rebuilt at each stage. This is for gcc-3.2 users 
  in particular and should take care of bug 12853
  
  27 Dec 2002;  Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r7.ebuild:
   
  Added depend for automake

  27 Dec 2002;  Michael Cummings <mcummings@gentoo.org>
  perl-5.6.1-r10:

  Added depend for automake
   
  27 Dec 2002;  Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r7.ebuild:

  Note for remerging perl modules added. Unmasked for x86.
    
*perl-5.8.0-r7 (22 Dec 2002)

  22 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r7.ebuild:

  PLEASE READ. There was a problem introduced for non threaded perl
  5.8's - a correction introduced earlier for threaded perls was adding
  -thread to the name of your arch. THIS CAUSES PROBLEMS FOR SOME
  MODULES. For instance, the DBI module checks to see what the name of
  your Config.pm has listed for $Config{archname} - if it had thread in
  it *anywhere*, it assumed you had threading enabled, but since your
  perl was failing to use threads, would fail. This will version of the
  ebuild will correct that. You will need to re-emerge modules installed
  with perl 5.8. A tool for this is forthcoming.
    
  
  20 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r6.ebuild:
  
  Finished what Lostlogic started - finished path corrections for
  threading vs unthreaded perl 5.8
  
  20 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.6.1-r10.ebuild:

  new ebuild confirmed by arch devs - Gerk did ppc, Alron did sparc

*perl-5.6.1-r10 (19 Dec 2002)

  07 Feb 2003; Guy Martin <gmsoft@gentoo.org> perl-5.6.1-r9.ebuild perl-5.6.1-r10.ebuild :
  Added hppa to keywords.

  19 Jan 2003; Jan Seidel <tuxus@gentoo.org> :
  Unmasking for mips 

  19 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.6.1-r10.ebuild:

  Contains patch for safe.pm - security bug, see bug 12190.

  19 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r6.ebuild:

  Same name, different ebuild. This is for the safe.pm fix.

*perl-5.8.0-r6 (17 Dec 2002)

  17 Dec 2002; Brandon Low <lostlogic@gentoo.org> perl-5.8.0-r6.ebuild :
  -arch this bad boy, it reb0rk what I unb0rk last night, stick with -r5
  will probably skip -r6 for the moment and go to -r7 with some more 
  fixage when we know what to refix more :)

  17 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r6.ebuild:

  Further fixes to path writing. If the user asks for threading, the
  dirs are $[arch]-linux-thread-multi. If not, the paths are
  $[arch]-linux - this is correct behaviour!! Installation with
  threading is *not* supported by all apps that dep perl.

*perl-5.8.0-r5 (17 Dec 2002)

  17 Dec 2002; Brandon Low <lostlogic@gentoo.org> perl-5.8.0-r5.ebuild:

  Fix threading use flag thingus, it doesn't put things in ${D}/${D} later 
  now.  Fix messages to only display if needed.  You will need to remerge
  all your perl modules after you install this with threads.

*perl-5.8.0-r4 (15 Dec 2002)

  15 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r4.ebuild:

  Made threading an internal use flag. This is to be used with caution.
  Added eerror messages to warn users of potential probs.

  13 Dec 2002; Martin Schlemmer <azarah@gentoo.org> perl-5.6.1-r9.ebuild :

  Fix screwup in DEPEND, RDEPEND and PDEPEND.

  12 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.6.1-r9.ebuild:

  PDEPEND is in portage now, can unmask this. This -r installs the
  makemaker fix after installing perl - finally fixed. Thanks carpaski!

  11 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r3.ebuild:

  Busy day =:) Added LC_ALL=C into 5.8 (a fix made for 5.6.1, but lost)

  11 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.8.0-r3.ebuild:

  Changed emake back to make. bcowan pointed out that the parallel
  make fails for him, which is legit
  
  11 Dec 2002; Michael Cummings <mcummings@gentoo.org> 
  perl-5.6.1-r9.ebuild:

  Pulled until PDEPEND is in. This worked only for those not behind
  firewalls, and unfortunately perl needs to work across the board.

*perl-5.6.1-r9 (10 Dec 2002)

  10 Dec 2002; Michael Cummings <mcummings@gentoo.org>
  perl-5.6.1-r9.ebuild:

  Major fixes, including the inclusion of the ExtUtils-MakeMaker fix
  directly into perl's ebuild (thanks seemant!).
  
* Autoupdate keywords (12-6-02)
  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
  26 Nov 2002; Michael Cummings <mcummings@gentoo.org>:

  Corrected deps in perl-5.6.1-r8 per bugs 4116 and 9314

*perl-5.6.1-r8 (13 Oct 2002)

  22 Nov 2002; <mcummings@gentoo.org>

  Added einfo note (finally) to instruct users to install MakeMaker
  patch. Also added catch for cases where -gdbm and -berkdb are in 
  the use flags - perl requires at least one of them to be available

  Second incantation of -r8. This time, it is for LC_ALL=C being added to 
  the ebuild itself. Perl won't compile correctly otherwise and handles
  internationaliztion post install.

  13 Oct 2002; Seemant Kulleen <seemant@gentoo.org> perl-5.6.1-r8.ebuild
  files/digest-perl-5.6.1-r8 :

  The fixes from -r7 didn't seem to make it into portage. So this version
  has those, plus the updated MakeMaker.  should close bug #8998 by
  rac@intrigue.com (Robert Coie)

*perl-5.6.1-r7 (02 Oct 2002)

  02 Oct 2002; mcummings <mcummings@gentoo.org> : Thanks entirely to seemant, 
  this release incorporates the MakeMaker fix directly into perl ebuild process.
  
*perl-5.8.0-r3 (13 Sep 2002)

  13 Sep 2002; <mcummings@gentoo.org> : r3 is a cleaner ebuild that should have   added support for other platforms.

*perl-5.8.0-r2 (16 Aug 2002)

  16 Aug 2002; Michael Cummings <mcummings@gentoo.org> : added
  fix for gcc compile flags that corrects problems with apps 
  compiling against perl. 

*perl-5.8.0-r1 (10 Aug 2002)

  05 Aug 2002; Michael Cummings <mcummings@gentoo.org> : added 
  threading, fixed hard coded architecture prefix, cleaned up
  ebuild

*perl-5.8.0 (28 Jul 2002)

  05 Aug 2002; pvdabeel <pvdabeel@gentoo.org> : fix header

  28 Jul 2002; Maik Schreiber <blizzy@gentoo.org> : version bump

*perl-5.6.1-r6 (04 Aug 2002)

  27 Aug 2002; mcummings <mcummings@gentoo.org> : Added stat.t fix,
  fixes compile problems on boxes with no suid's in the */bin's
  bug 7120, affects fresh installs only

  05 Aug 2002; pvdabeel <pvdabee@gentoo.org> : Added ppc keyword
  
  05 Aug 2002; pvdabeel <pvdabee@gentoo.org> : changelog entry

*perl-5.6.1-r5 (25 Jul 2002)

  05 Aug 2002; pvdabeel <pvdabeel@gentoo.org> :
  fix header

  26 Jul 2002; Spider <spider@gentoo.org> :
  fix SRC_URI to become pub/CPAN instead of pub/perl/CPAN
  
  25 Jul 2002; Spider <spider@gentoo.org> perl-5.6.1-r5.ebuild
  minor patch to make it build on my gcc 3.1-r8 system
  
*perl-5.6.1-r4 (20 May 2002)

  05 Aug 2002; pvdabeel <pvdabeel@gentoo.org> : 
  fix header

  26 Jul 2002; Spider <spider@gentoo.org> :
  fix SRC_URI to become pub/CPAN instead of pub/perl/CPAN
    
  20 May 2002; Preston A. Elder <prez@gentoo.org> perl-5.6.1-r4.ebuild
  files/digest-perl-5.6.1-r4 :

  Added ebuild that works with gcc 3.1.

*perl-5.6.1-r3 (5 May 2002)

  5 May 2002; Seemant Kulleen <seemant@gentoo.org> perl-5.6.1-r4.ebuild
  files/digest-perl-5.6.1-r4 :

  Added an eclass called perl-post.eclass, which this ebuild now inherits,
  so that the .pod file in ${libarchdir} gets updated cleanly with
  emerging and unmerging.

*perl-5.6.1-r3 (21 Mar 2002)

  21 Mar 2002; Seemant Kulleen <seemant@gentoo.org> perl-5.6.1-r3.ebuild :

  HTML documentation no longer gets gzipped, but a revision upgrade wasn't
  absolutely necessary, I don't think.  Thanks to stefan@mdy.univie.ac.at
  for pointing it out.

*perl-5.6.1-r3 (1 Feb 2002)

  1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
  
  Added initial ChangeLog which should be updated whenever the package is
  updated in any way. This changelog is targetted to users. This means that the
  comments should well explained and written in clean English. The details about
  writing correct changelogs are explained in the skel.ChangeLog file which you
  can find in the root directory of the portage repository.
