# ChangeLog for dev-perl/URI
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-perl/URI/ChangeLog,v 1.87 2011/07/30 10:45:59 tove Exp $

  30 Jul 2011; Torsten Veller <tove@gentoo.org> URI-1.55.ebuild,
  URI-1.580.ebuild:
  Drop ~sparc-fbsd KEYWORD

*URI-1.580 (23 Jan 2011)

  23 Jan 2011; Torsten Veller <tove@gentoo.org> +URI-1.580.ebuild:
  Version bump

  13 Jan 2011; Brent Baude <ranger@gentoo.org> URI-1.55.ebuild:
  Marking URI-1.55 ppc stable for bug 341865

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

  05 Nov 2010; Samuli Suominen <ssuominen@gentoo.org> URI-1.55.ebuild:
  ppc64 stable wrt #341865

  05 Nov 2010; Markos Chandras <hwoarang@gentoo.org> URI-1.55.ebuild:
  Stable on amd64 wrt bug #341865

  05 Nov 2010; Markus Meier <maekke@gentoo.org> URI-1.55.ebuild:
  arm stable, bug #341865

  05 Nov 2010; Jeroen Roovers <jer@gentoo.org> URI-1.55.ebuild:
  Stable for HPPA (bug #341865).

  04 Nov 2010; Christian Faulhammer <fauli@gentoo.org> URI-1.55.ebuild:
  x86 stable, bug 341865

*URI-1.55 (02 Sep 2010)

  02 Sep 2010; Torsten Veller <tove@gentoo.org> +URI-1.55.ebuild:
  Version bump

  09 Apr 2010; Torsten Veller <tove@gentoo.org> -URI-1.51.ebuild,
  -URI-1.52.ebuild, -URI-1.53.ebuild:
  Cleanup

*URI-1.54 (07 Apr 2010)

  07 Apr 2010; Torsten Veller <tove@gentoo.org> +URI-1.54.ebuild:
  Version bump

*URI-1.53 (15 Mar 2010)

  15 Mar 2010; Torsten Veller <tove@gentoo.org> +URI-1.53.ebuild:
  Version bump

  14 Jan 2010; Fabian Groffen <grobian@gentoo.org> URI-1.52.ebuild:
  Transfer Prefix keywords

*URI-1.52 (31 Dec 2009)

  31 Dec 2009; Torsten Veller <tove@gentoo.org> +URI-1.52.ebuild:
  Version bump

  24 Dec 2009; Torsten Veller <tove@gentoo.org> -URI-1.50.ebuild:
  Cleanup

*URI-1.51 (24 Nov 2009)

  24 Nov 2009; Robin H. Johnson <robbat2@gentoo.org> +URI-1.51.ebuild:
  Version bump via perl-bump experimental tool.

*URI-1.50 (22 Nov 2009)

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

  19 Sep 2009; Torsten Veller <tove@gentoo.org> -URI-1.35.ebuild,
  -URI-1.37.ebuild:
  Cleanup

  14 Sep 2009, Tom Gall <tgall@gentoo.org> URI-1.38.ebuild:
  stable on ppc64, bug #278039

  26 Jul 2009; Marcus D. Hanwell <cryos@gentoo.org> URI-1.38.ebuild:
  Stable on amd64, bug 278039.

  19 Jul 2009; nixnut <nixnut@gentoo.org> URI-1.38.ebuild:
  ppc stable #278039

  17 Jul 2009; Raúl Porcel <armin76@gentoo.org> URI-1.38.ebuild:
  alpha/arm/ia64/m68k/s390/sh stable wrt #278039

  17 Jul 2009; Jeroen Roovers <jer@gentoo.org> URI-1.38.ebuild:
  Stable for HPPA (bug #278039).

  16 Jul 2009; Christian Faulhammer <fauli@gentoo.org> URI-1.38.ebuild:
  stable x86, bug 278039

  16 Jul 2009; Ferris McCormick <fmccor@gentoo.org> URI-1.38.ebuild:
  Sparc stable, bug #278039.

*URI-1.38 (28 May 2009)

  28 May 2009; Torsten Veller <tove@gentoo.org> +URI-1.38.ebuild:
  Version bump

  26 Mar 2009; Raúl Porcel <armin76@gentoo.org> URI-1.35.ebuild,
  URI-1.37.ebuild:
  m68k love, thanks to kolla for testing

*URI-1.37 (04 Jul 2008)

  04 Jul 2008; Torsten Veller <tove@gentoo.org> -URI-1.36.ebuild,
  +URI-1.37.ebuild:
  Version bump. Cleaning

*URI-1.36 (29 Apr 2008)

  29 Apr 2008; Torsten Veller <tove@gentoo.org> +URI-1.36.ebuild:
  Version bump

  06 Aug 2007; Roy Marples <uberlord@gentoo.org> URI-1.35.ebuild:
  Keyworded ~sparc-fbsd, #138321

  15 Oct 2006; Michael Cummings <mcummings@gentoo.org> -URI-1.28.ebuild,
  -URI-1.30.ebuild, -URI-1.31.ebuild, -URI-1.33.ebuild, -URI-1.34.ebuild,
  URI-1.35.ebuild:
  Cleaning up stale ebuilds

  06 Aug 2006; Michael Cummings <mcummings@gentoo.org> URI-1.28.ebuild,
  URI-1.30.ebuild, URI-1.31.ebuild, URI-1.33.ebuild, URI-1.34.ebuild,
  URI-1.35.ebuild:
  Adding perl dep; fixed DEPEND

  05 Jul 2006; Christian Hartmann <ian@gentoo.org> URI-1.28.ebuild,
  URI-1.30.ebuild, URI-1.31.ebuild, URI-1.33.ebuild, URI-1.34.ebuild,
  URI-1.35.ebuild:
  Fixed RDEPEND wrt bug #134781

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

  13 Feb 2006; Michael Cummings <mcummings@gentoo.org> URI-1.28.ebuild,
  URI-1.30.ebuild, URI-1.31.ebuild, URI-1.33.ebuild, URI-1.34.ebuild,
  URI-1.35.ebuild:
  Virtuals for perl-core

  25 May 2005; Michael Cummings <mcummings@gentoo.org> URI-1.35.ebuild:
  dev-perl/MIME-Base64 => perl-core/MIME-Base64 migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> URI-1.34.ebuild:
  dev-perl/MIME-Base64 => perl-core/MIME-Base64 migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> URI-1.33.ebuild:
  dev-perl/MIME-Base64 => perl-core/MIME-Base64 migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> URI-1.31.ebuild:
  dev-perl/MIME-Base64 => perl-core/MIME-Base64 migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> URI-1.30.ebuild:
  dev-perl/MIME-Base64 => perl-core/MIME-Base64 migration

  25 May 2005; Michael Cummings <mcummings@gentoo.org> URI-1.28.ebuild:
  dev-perl/MIME-Base64 => perl-core/MIME-Base64 migration

  08 Apr 2005; Markus Rothe <corsair@gentoo.org> URI-1.35.ebuild:
  Stable on ppc64

  02 Apr 2005; Michael Hanselmann <hansmi@gentoo.org> URI-1.35.ebuild:
  Stable on ppc.

  06 Feb 2005; Joshua Kinard <kumba@gentoo.org> URI-1.35.ebuild:
  Marked stable on mips.

  18 Jan 2005; Bryan Østergaard <kloeri@gentoo.org> URI-1.35.ebuild:
  Stable on alpha.

  12 Jan 2005; Guy Martin <gmsoft@gentoo.org> URI-1.35.ebuild:
  Stable on hppa.

  04 Jan 2005; Gustavo Zacarias <gustavoz@gentoo.org> URI-1.35.ebuild:
  Stable on sparc

  04 Jan 2005; Michael Cummings <mcummings@gentoo.org> URI-1.28.ebuild,
  URI-1.30.ebuild, URI-1.31.ebuild:
  bug 76590

  04 Jan 2005; Michael Cummings <mcummings@gentoo.org> URI-1.35.ebuild:
  Unmasking for x86

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

*URI-1.35 (05 Dec 2004)

  05 Dec 2004; Michael Cummings <mcummings@gentoo.org> +URI-1.35.ebuild:
  New version on CPAN

*URI-1.34 (21 Oct 2004)

  21 Oct 2004; Michael Cummings <mcummings@gentoo.org> +URI-1.34.ebuild:
  new version on cpan

  19 Oct 2004; Dylan Carlson <absinthe@gentoo.org> URI-1.31.ebuild:
  Stable on amd64.

  08 Oct 2004; Guy Martin <gmsoft@gentoo.org> URI-1.31.ebuild:
  Marked stable on hppa.

  06 Oct 2004; Bryan Østergaard <kloeri@gentoo.org> URI-1.31.ebuild:
  Stable on alpha.

*URI-1.33 (26 Sep 2004)

  26 Sep 2004; Michael Cummings <mcummings@gentoo.org> +URI-1.33.ebuild:
  New version on cpan; bug 54989

  25 Sep 2004; Joshua Kinard <kumba@gentoo.org> URI-1.31.ebuild:
  Marked stable on mips.

  21 Sep 2004; Gustavo Zacarias <gustavoz@gentoo.org> URI-1.31.ebuild:
  Stable on sparc

  21 Sep 2004; Michael Cummings <mcummings@gentoo.org> :
  This note is for future devs. At this time URI will fail tests - and they
  shouldn't be enabled anyway. The author makes calls to external sites with
  the tests; some fail because the URL's in question are no longer valid; that
  aside, its considered a security risk to allow unmonitored URL calls to
  unknown sites. Hence the lack of testing in this particular module.

  21 Sep 2004; Michael Cummings <mcummings@gentoo.org> URI-1.31.ebuild:
  Marking stable for x86

  06 Aug 2004; Gustavo Zacarias <gustavoz@gentoo.org> URI-1.30.ebuild:
  keyworded ppc64 to satisfy perl_ldap and hence samba

*URI-1.31 (30 Jul 2004)

  30 Jul 2004; Michael Cummings <mcummings@gentoo.org> +URI-1.31.ebuild:
  New version on CPAN

*URI-1.30 (10 Jun 2004)

  10 Jun 2004; Michael Cummings <mcummings@gentoo.org> URI-1.30.ebuild:
  new version on cpan

  12 May 2004; Michael McCabe <randy@gentoo.org> URI-1.28.ebuild:
  Added s390 keywords

  23 Mar 2004; Joshua Kinard <kumba@gentoo.org> URI-1.28.ebuild:
  Marked stable on mips.

  17 Feb 2004; Gustavo Zacarias <gustavoz@gentoo.org> URI-1.28.ebuild:
  stable on hppa

  18 Jan 2004; <tuxus@gentoo.org> URI-1.28.ebuild:
  Added ~mips to KEYWORDS.

  06 Jan 2004; Luca Barbato <lu_zero@gentoo.org> URI-1.28.ebuild:
  Marked ppc

  30 Dec 2003; Michael Cummings,,, <mcummings@gentoo.org> URI-1.23.ebuild,
  URI-1.24.ebuild, URI-1.25.ebuild:
  Gone from CPAN

*URI-1.28 (30 Dec 2003)

  30 Dec 2003; Michael Cummings,,, <mcummings@gentoo.org> URI-1.28.ebuild:
  Current stable on CPAN. Tested on sparc and x86.

*URI-1.25 (20 Aug 2003)

  20 Aug 2003; Michael Cummings <mcummings@gentoo.org> URI-1.25.ebuild:
  CPAN Update - feature fix/add

*URI-1.24 (29 Jul 2003)

  29 Jul 2003; Michael Cummings <mcummings@gentoo.org> URI-1.24.ebuild:
  CPAN Version bump

*URI-1.23 (24 Mar 2003)

  03 Apr 2003; Zach Welch <zwelch@gentoo.org> URI-1.23.ebuild:
  add arm keyword

  24 Mar 2003; <rac@gentoo.org> URI-1.23.ebuild:
  Upstream version bump, thanks to Mike Javorski <mike_javorski@bigfoot.com>,
  closes bug #18125.

  28 Feb 2003; Guy Martin <gmsoft@gentoo.org> URI-1.18-1.ebuild :
  Added hppa to keywords.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
  29 Oct 2002; Seemant Kulleen <seemant@gentoo.org> ChangeLog  :

  forced version bump to install into correct locations

*URI-1.18 (6 May 2002)

  22 Sep 2002; <mcummings@gentoo.org>: Corrected improper depend line

  1 Aug 2002; Calum Selkirk <cselkirk@gentoo.org> URI-1.18.ebuild :

  Added ppc to KEYWORDS.

  6 May 2002; Seemant Kulleen <seemant@gentoo.org> URI-1.18.ebuild
  files/digest-URI-1.18 :

  Version bump and conversion to eclass

*URI-1.10 (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.
