# ChangeLog for net-misc/wget
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/wget/ChangeLog,v 1.130 2010/09/19 17:50:58 armin76 Exp $

  19 Sep 2010; Raúl Porcel <armin76@gentoo.org> wget-1.12-r2.ebuild:
  s390 stable wrt #329941

  06 Sep 2010; Jeroen Roovers <jer@gentoo.org> wget-1.12-r2.ebuild:
  Stable for HPPA PPC (bug #329941).

  06 Sep 2010; Brent Baude <ranger@gentoo.org> wget-1.12-r2.ebuild:
  Marking wget-1.12-r2 ppc64 for bug 329941

  05 Sep 2010; Markos Chandras <hwoarang@gentoo.org> wget-1.12-r2.ebuild:
  Stable on amd64 wrt bug #329941

  04 Sep 2010; Raúl Porcel <armin76@gentoo.org> wget-1.12-r2.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #329941

  04 Sep 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> wget-1.12-r2.ebuild:
  x86 stable wrt security bug #329941

  22 Aug 2010; Mike Frysinger <vapier@gentoo.org> wget-1.12-r2.ebuild,
  files/wget-1.12-CVE-2010-2252.patch:
  Fix some iri tests after CVE patch #333965 by Xake.

*wget-1.12-r2 (21 Aug 2010)

  21 Aug 2010; Mike Frysinger <vapier@gentoo.org> +wget-1.12-r2.ebuild,
  +files/wget-1.12-CVE-2010-2252.patch, files/wget-1.12-sni.patch:
  Add fix from upstream for CVE-2010-2252 #329941 by Stefan Behte. Tweak by
  Sergei Trofimovich for IPv6 behavor in SNI patch #333839.

  14 Feb 2010; Mike Frysinger <vapier@gentoo.org> wget-1.12-r1.ebuild:
  Upgrade to EAPI=2 so we can set +ssl in IUSE #304887 by Kerin Millar.

*wget-1.12-r1 (17 Jan 2010)

  17 Jan 2010; Mike Frysinger <vapier@gentoo.org> +wget-1.12-r1.ebuild,
  +files/wget-1.12-sni.patch:
  Add SNI support #301312 by Andreas Nüßlein.

  18 Oct 2009; Brent Baude <ranger@gentoo.org> wget-1.12.ebuild:
  Marking wget-1.12 ppc64 for bug 286058

  15 Oct 2009; Mounir Lamouri <volkmar@gentoo.org> wget-1.12.ebuild:
  Stabilizing for ppc, bug 286058

  14 Oct 2009; Mike Frysinger <vapier@gentoo.org>
  files/wget-1.12-debug-tests.patch:
  Update debug test patch to cover USE=idn #288156 by Paolo Pedroni and info
  from Kent Fredric.

  07 Oct 2009; Markus Meier <maekke@gentoo.org> wget-1.12.ebuild:
  amd64 stable, bug #286058

  07 Oct 2009; Raúl Porcel <armin76@gentoo.org> wget-1.12.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc stable wrt #286058

  06 Oct 2009; Jeroen Roovers <jer@gentoo.org> wget-1.12.ebuild:
  Stable for HPPA (bug #286058).

  06 Oct 2009; Christian Faulhammer <fauli@gentoo.org> wget-1.12.ebuild:
  stable x86, security bug 286058

  26 Sep 2009; Mike Frysinger <vapier@gentoo.org> wget-1.12.ebuild,
  +files/wget-1.12-debug-tests.patch:
  Automatically skip tests that require USE=debug #286173 by Alexis Ballier.

  23 Sep 2009; Mike Frysinger <vapier@gentoo.org> wget-1.12.ebuild,
  +files/wget-1.12-linking.patch, metadata.xml:
  Add support for USE=idn by Lars Wendler #286058, add support for USE=ntlm,
  and forward port the linking patch.

*wget-1.12 (23 Sep 2009)

  23 Sep 2009; Mike Frysinger <vapier@gentoo.org> +wget-1.12.ebuild:
  Version bump #286058 by Alex Legler.

  07 Sep 2009; Jeroen Roovers <jer@gentoo.org> wget-1.11.4.ebuild:
  Stable for HPPA (bug #281876).

  01 Sep 2009; Raúl Porcel <armin76@gentoo.org> wget-1.11.4.ebuild:
  arm/ia64/s390/sh/sparc stable wrt #281876

  31 Aug 2009; <chainsaw@gentoo.org> wget-1.11.4.ebuild:
  Marked stable on AMD64 as requested by Mike "SpanKY" Friesinger in bug
  #281876. Tested as portage fetcher for emerge -fe world with empty DISTDIR
  on a dual Opteron 2435 system.

  31 Aug 2009; Brent Baude <ranger@gentoo.org> wget-1.11.4.ebuild:
  stable ppc64, bug 281876

  30 Aug 2009; Tobias Klausmann <klausman@gentoo.org> wget-1.11.4.ebuild:
  Stable on alpha, bug #281876

  29 Aug 2009; nixnut <nixnut@gentoo.org> wget-1.11.4.ebuild:
  ppc stable #281876

  18 Aug 2009; Christian Faulhammer <fauli@gentoo.org> wget-1.11.4.ebuild:
  stable x86, bug 281876

  18 Aug 2009; Jeroen Roovers <jer@gentoo.org> wget-1.11.3.ebuild:
  Stable for HPPA (bug #281876).

  18 Aug 2009; Mike Frysinger <vapier@gentoo.org> wget-1.11.1.ebuild,
  wget-1.11.3.ebuild, wget-1.11.4.ebuild:
  Drop USE=socks5 since it no longer exists #281866 by jackieku.

*wget-1.11.4 (16 Aug 2008)

  16 Aug 2008; Mike Frysinger <vapier@gentoo.org> +wget-1.11.4.ebuild:
  Version bump #231312 by cilly.

  14 Aug 2008; Raúl Porcel <armin76@gentoo.org> wget-1.11.3.ebuild:
  alpha/ia64/sparc/x86 stable

*wget-1.11.3 (18 Jun 2008)

  18 Jun 2008; Mike Frysinger <vapier@gentoo.org> +wget-1.11.3.ebuild:
  Version bump #228045 by Conrad Kostecki.

  07 May 2008; Markus Meier <maekke@gentoo.org> wget-1.11.1.ebuild:
  amd64 stable, bug #220569

  06 May 2008; Brent Baude <ranger@gentoo.org> wget-1.11.1.ebuild:
  stable ppc, bug 220569

  06 May 2008; Raúl Porcel <armin76@gentoo.org> wget-1.11.1.ebuild:
  alpha/ia64/sparc/x86 stable wrt #220569

  06 May 2008; Jeroen Roovers <jer@gentoo.org> wget-1.11.1.ebuild:
  Stable for HPPA (bug #220569).

*wget-1.11.2 (06 May 2008)

  06 May 2008; Mike Frysinger <vapier@gentoo.org> +wget-1.11.2.ebuild:
  Version bump #220439 by Petr Pisar.

*wget-1.11.1 (26 Mar 2008)

  26 Mar 2008; Mike Frysinger <vapier@gentoo.org> +wget-1.11.1.ebuild:
  Version bump.

*wget-1.11-r1 (16 Feb 2008)

  16 Feb 2008; Mike Frysinger <vapier@gentoo.org>
  +files/wget-1.11-progress-bar-assert.patch, +wget-1.11-r1.ebuild:
  Grab fix from upstream for progress bar assert failure in some locales
  #208484 by Maxim Britov.

  28 Jan 2008; <pva@gentoo.org> wget-1.10.2.ebuild, wget-1.11.ebuild:
  License changed to GPL-3, thank you Winterheart for report, quotation fix.

*wget-1.11 (28 Jan 2008)

  28 Jan 2008; Mike Frysinger <vapier@gentoo.org>
  +files/wget-1.11-linking.patch, +wget-1.11.ebuild:
  Version bump #207872 by Matthias Vill.

  25 Dec 2007; Christian Heim <phreak@gentoo.org> metadata.xml:
  Removing seemant from metadata.xml as per #202469. Assigning to
  maintainer-needed.

  22 Oct 2007; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r5.ebuild,
  wget-1.10.2.ebuild:
  homepage update thanks to Petr Pisar in bug #196738

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

  12 Oct 2006; Fabian Groffen <grobian@gentoo.org> wget-1.9.1-r5.ebuild,
  wget-1.10.2.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  30 Mar 2006; Diego Pettenò <flameeyes@gentoo.org> wget-1.10.2.ebuild:
  Add ~x86-fbsd keyword.

  05 Dec 2005; Bryan Østergaard <kloeri@gentoo.org> wget-1.10.2.ebuild:
  Stable on alpha.

  20 Nov 2005; Hardave Riar <hardave@gentoo.org> wget-1.10.2.ebuild:
  Stable on mips.

  03 Nov 2005; Daniel Ostrow <dostrow@gentoo.org> wget-1.10.2.ebuild:
  Stable on ppc64.

  25 Oct 2005; Seemant Kulleen <seemant@gentoo.org> wget-1.10.2.ebuild:
  Fix for bug #110035, so now it will build statically and with ssl support.
  Azarah wrote the patch for that, and upstram has been notified of it.
  bug #109299 was the original bug he found, but that was a user issue.
  bug #110035 is the actual issue.

  20 Oct 2005; Luis Medinas <metalgod@gentoo.org> wget-1.10.2.ebuild:
  Marked Stable on amd64. Bug #109097.

  19 Oct 2005; Gustavo Zacarias <gustavoz@gentoo.org> wget-1.10.2.ebuild:
  Stable on sparc

  19 Oct 2005; Michael Hanselmann <hansmi@gentoo.org> wget-1.10.2.ebuild:
  Stable on ppc.

  19 Oct 2005; Rene Nussbaumer <killerfox@gentoo.org> wget-1.10.2.ebuild:
  Stable on hppa. See bug #109097.

  19 Oct 2005; Andrej Kacian <ticho@gentoo.org> wget-1.10.2.ebuild:
  Stable on x86, security bug #109097.

*wget-1.10.2 (13 Oct 2005)

  13 Oct 2005; Seemant Kulleen <seemant@gentoo.org> -wget-1.10.ebuild,
  +wget-1.10.2.ebuild:
  Version bump to newest security fix, thanks to Carlo in bug #109125

  12 Sep 2005; Seemant Kulleen <seemant@gentoo.org> +files/wgetrc-ipv6,
  -wget-1.9.1-r3.ebuild, wget-1.10.ebuild:
  add a note about preferring ipv6 in the wgetrc file, closing bug #102209

  28 Jul 2005; Kito <kito@gentoo.org> wget-1.9.1-r5.ebuild:
  stable on ppc-macos.

  19 Jul 2005; Seemant Kulleen <seemant@gentoo.org> wget-1.10.ebuild:
  added a patch for uclibc and bumped the patchball version. Thanks to
  solar@gentoo.org in bug #96716

*wget-1.10 (18 Jul 2005)

  18 Jul 2005; Seemant Kulleen <seemant@gentoo.org> +wget-1.10.ebuild:
  version bump thanks to Tijs Zwinkels <gentoobugs@tumblecow.net> for
  notifying me in bug #96716, and to: emanuele.giaquinta@gmail.com for porting
  the patchset over in the same bug

  18 Jul 2005; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r5.ebuild:
  adjust patches: debian CAN fix and Mandrake largefile to compile with
  gcc-2.95. Thanks to Az in irc and solar@gentoo.org in bug #93703

  16 May 2005; Tom Gall <tgall@gentoo.org> wget-1.9.1-r5.ebuild:
  ppc64 stable, for #83920

  16 May 2005; Stephen Bennett <spb@gentoo.org> wget-1.9.1-r5.ebuild:
  Mips stable for #83920

  16 May 2005; Rene Nussbaumer <killerfox@gentoo.org> wget-1.9.1-r5.ebuild:
  Stable on hppa; bug #83920

  16 May 2005; <plasmaroo@gentoo.org> wget-1.9.1-r5.ebuild:
  Stable on IA64; bug #83920.

  16 May 2005; Bryan Østergaard <kloeri@gentoo.org> wget-1.9.1-r5.ebuild:
  Stable on alpha.

  16 May 2005; Gustavo Zacarias <gustavoz@gentoo.org> wget-1.9.1-r5.ebuild:
  Stable on sparc wrt #seemantoni

  16 May 2005; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r5.ebuild:
  stable on x86 and amd64

  16 May 2005; Michael Hanselmann <hansmi@gentoo.org> ChangeLog,
  wget-1.9.1-r5.ebuild:
  Stable on ppc.

*wget-1.9.1-r5 (16 May 2005)

  16 May 2005; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r4.ebuild,
  +wget-1.9.1-r5.ebuild:
  ouch, I didn't see CAN 2004-1488, so this patch from Debian fixes both 1487
  and 1488. Thanks muchly to Evgeny Stambulchik <fnevgeny@weizmann.ac.il> in
  bug #83920

*wget-1.9.1-r4 (10 May 2005)

  10 May 2005; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r3.ebuild,
  +wget-1.9.1-r4.ebuild:
  revision bump which now adds patches from mandrake's source rpm to handle
  large files properly and other misc. fixes: french and german translations;
  proper handling of username/passwords in urls; spelling referrer correctly,
  printing out the percentage in the output, removing rpath from the binary,
  and finally in wgetrc: passive ftp is the default (closing bug #89814 by Tor
  Klingberg <tor.klingberg@gmx.net>), and the references to /usr/local/etc now
  point to /etc instead.  The de and fr patches should fix bug #77138 by: Sven <skoehler@upb.de>

  10 May 2005; Seemant Kulleen <seemant@gentoo.org>
  -files/wget-1.9.1+ipvmisc.patch, -files/wget-1.9.1-locale.patch,
  -files/wget-1.9-uclibc.patch, -files/wget-CAN-2004-1487.patch,
  wget-1.9.1-r3.ebuild:
  move patches to a tarball on the mirrors.  No more 25K things in files

  10 May 2005; Seemant Kulleen <seemant@gentoo.org>
  -files/wget-1.8.2-2Glimit.diff, -files/wget-1.8.2-gentoo.diff,
  wget-1.9.1-r3.ebuild:
  remove unused patches

  10 May 2005; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r3.ebuild:
  make sure to RDEPEND on a socks5 implementation -- dante is the only one I
  can figure out that does implement it. Closing bug #89523 by Mihai Limbasan
  <mihailim@gmail.com>

  14 Mar 2005; Hardave Riar <hardave@gentoo.org> wget-1.9.1-r3.ebuild:
  Stable on mips, bug #74008.

  06 Mar 2005; Olivier Crête <tester@gentoo.org> wget-1.9.1-r3.ebuild:
  Stable on x86 per security bug #74008

  03 Mar 2005; Bryan Østergaard <kloeri@gentoo.org> wget-1.9.1-r3.ebuild:
  Stable on alpha, bug 74008.

  02 Mar 2005; Jason Wever <weeve@gentoo.org> wget-1.9.1-r3.ebuild:
  Stable on sparc wrt security bug #74008.

  02 Mar 2005; Lina Pezzella <j4rg0n@gentoo.org> wget-1.9.1-r3.ebuild:
  Stable ppc-macos

  02 Mar 2005; Michael Hanselmann <hansmi@gentoo.org> wget-1.9.1-r3.ebuild:
  Stable on ppc.

  02 Mar 2005; Markus Rothe <corsair@gentoo.org> wget-1.9.1-r3.ebuild:
  Stable on ppc64; bug #74008

  02 Mar 2005; Jan Brinkmann <luckyduck@gentoo.org> wget-1.9.1-r3.ebuild:
  stable on amd64. see #74008

*wget-1.9.1-r3 (02 Mar 2005)

  02 Mar 2005; <solar@gentoo.org> +files/wget-CAN-2004-1487.patch,
  +wget-1.9.1-r3.ebuild:
  - security bump for bug 74008. CAN-2004-1487 - overwrite files via ".." in
  path component

  09 Jan 2005; Sven Wegener <swegener@gentoo.org> wget-1.8.2-r3.ebuild,
  wget-1.9-r2.ebuild, wget-1.9.1-r2.ebuild:
  Added missing parentheses in SRC_URI/*DEPEND/LICENSE.

  04 Jan 2005; Chris White <chriswhite@gentoo.org>
  +files/wget-1.9.1-locale.patch, wget-1.9.1-r2.ebuild:
  Added fix for bug #70734 per seemant's request as he's leaving and won't be
  able to fix it for awhile.

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

  15 Jun 2004; <solar@gentoo.org> wget-1.9-r2.ebuild, wget-1.9.1-r2.ebuild,
  files/wget-1.9-uclibc.patch:
  basic uclibc support added

  08 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> wget-1.9.1-r2.ebuild:
  Stable on alpha.

  02 Jun 2004; Travis Tilley <lv@gentoo.org> wget-1.9.1-r2.ebuild:
  stable on amd64

  27 Apr 2004; Aron Griffis <agriffis@gentoo.org> wget-1.8.2-r3.ebuild,
  wget-1.9-r2.ebuild, wget-1.9.1-r2.ebuild:
  Add inherit eutils

  18 Mar 2004; Seemant Kulleen <seemant@gentoo.org> wget-1.8.2-r3.ebuild,
  wget-1.9-r2.ebuild, wget-1.9.1-r2.ebuild:
  HOMEPAGE fix thanks to: Dice Random <dice@warpenguin.com> in bug #45041

  10 Dec 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r2.ebuild,
  files/wget-1.9.1+ipvmisc.patch:
  port patch fix from 1.9 to this patch, closing the same bug again

  05 Dec 2003; Daniel Robbins <drobbins@gentoo.org> wget-1.8.2.ebuild:
  making autoconf a non-conditional DEPEND, closing bug #34114.

*wget-1.9-r2 (04 Dec 2003)

  04 Dec 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.9-r1.ebuild,
  wget-1.9-r2.ebuild, wget-1.9.1-r1.ebuild:
  fix the ipvmisc patch to allow name resolution as well as ipaddresses. The fix
  was found by: Josh Grebe <josh@brokedown.net> in bug #33827 opened by Marcin
  Kryczek <crytcheck@napisy.org>

  01 Dec 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.9.1-r2.ebuild:
  why was autoconf moved into nls USE check???? Closing bug #34411 by Daniel
  Ahlberg <aliz@gentoo.org>

*wget-1.9.1-r2 (30 Nov 2003)

  30 Nov 2003; Greg Fitzgerald <gregf@gentoo.org> wget-1.9.1-r2.ebuild:
  Fix german locale, closes bug #34515

  27 Nov 2003; Brad House <brad_mssw@gentoo.org> wget-1.9-r1.ebuild,
  wget-1.9.1-r1.ebuild:
  always require autoconf to be installed for this package

  27 Nov 2003; Brad House <brad_mssw@gentoo.org> wget-1.9-r1.ebuild:
  make autoconf a dep, as in a stage3 build it requires autoconf

  20 Nov 2003; Greg Fitzgerald <gregf@gentoo.org> wget-1.9.1-r1.ebuild:
  Enabled ipv6 support

*wget-1.9-r1 (18 Nov 2003)

  19 Nov 2003; Nicholas Jones <carpaski@gentoo.org> wget-1.8.2-r3.ebuild,
  wget-1.9-r1.ebuild, wget-1.9.1-r1.ebuild:
  Fixed all the deps so that autoconf and gettext were 'nls' USE. Added
  autoconf to 1.9-r1.

  18 Nov 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.8.2-r2.ebuild,
  wget-1.9-r1.ebuild, wget-1.9.1-r1.ebuild, wget-1.9.1.ebuild:
  1.9-r1 restored as stable release -- WITH THE PATCH. DON'T ANYONE F'ING REMOVE
  IT

  18 Nov 2003; Michael Sterrett <mr_bones_@gentoo.org> wget-1.8.2-r3.ebuild,
  wget-1.9.1-r1.ebuild:
  sys-devl/autoconf -> sys-devel/autoconf; repoman: Trim trailing whitespace

*wget-1.9.1-r1 (17 Nov 2003)

  17 Nov 2003; Greg Fitzgerald <gregf@gentoo.org> wget-1.9.1-r1.ebuild,
  wget-1.9.1.ebuild:
  Version bump to add patch to fix ipv4

  17 Nov 2003; Greg Fitzgerald <gregf@gentoo.org> wget-1.9.ebuild:
  1.9 has bugs removed for 1.9.1

*wget-1.9.1 (14 Nov 2003)

  14 Nov 2003; Martin Holzer <mholzer@gentoo.org> wget-1.9.1.ebuild:
  Version bumped.

  10 Nov 2003; Brandon Low <lostlogic@gentoo.org> wget-1.9-r2.ebuild:
  Actually remove the patch

  10 Nov 2003; Greg Fitzgerald <gregf@gentoo.org> wget-1.9.ebuild:
  wget-1.9 marked as stable.

*wget-1.9-r2 (10 Nov 2003)

  10 Nov 2003; Greg Fitzgerald <gregf@gentoo.org> wget-1.8.2-r2.ebuild,
  wget-1.9-r2.ebuild:
  Removed ipv6 support till the patch is reworked.

*wget-1.9-r1 (03 Nov 2003)

  03 Nov 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.9-r1.ebuild:
  added a patch to make ipv6 and ipv4 both work, instead of being mutually
  exclusive. The patch was written by: ari edelkind
  <edelkind-gentoo-bugzilla@episec.com> and submitted in bug #31798 by Bernd
  Wurst <mail@bernd-wurst.de>

  01 Nov 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.8.2-r2.ebuild,
  wget-1.8.2-r3.ebuild:
  changed the SRC_URI for the new percentage patches to point to the Gentoo
  mirrors instead. Closes bug #32514 by Stony Yakovac <stonyy@tek.com>

*wget-1.9 (22 Oct 2003)

  22 Oct 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.9.ebuild:
  version bump -- this one should have support for ipv6, >2G fetches, and ipv6
  out of the box

*wget-1.8.2-r3 (14 Oct 2003)

  14 Oct 2003; Seemant Kulleen <seemant@gentoo.org> wget-1.8.2-r2.ebuild,
  wget-1.8.2-r3.ebuild, files/wget-1.8.2-2Glimit.diff,
  files/wget-1.8.2-gentoo.diff, files/wget-1.8.2-r2-gentoo.diff:
  Added debian's patch to let wget download files larger than 2G. Ciaranm in
  #gentoo/#gentoo-sparc found the patch at:
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=137989 . This closes bug
  #30985 by katerina <kllba@operamail.com>

*wget-1.8.2-r2 (20 Dec 2002)

  06 Jul 2003; Joshua Kinard <kumba@gentoo.org> wget-1.8.2-r2.ebuild:
  Changed ~mips to mips in KEYWORDS
  Cleaned up Changelog

  19 May 2003; Joshua Kinard <kumba@gentoo.org> wget-1.8.2-r2.ebuild:
  Add gnuconfig eclass, and gnuconfig_update to src_compile to allow
  proper detection of linux-mips systems.  Also added ~mips to KEYWORDS.

  21 Feb 2003; Zach Welch <zwelch@gentoo.org> wget-1.8.2-r2.ebuild :
  Added arm to keywords.

  09 Feb 2003; Guy Martin <gmsoft@gentoo.org> wget-1.8.2-r2.ebuild :
  Added hppa to keywords.

  20 Dec 2002; Daniel Ahlberg <aliz@gentoo.org> wget-1.8.2.ebuild, wget-1.8.2-r1.ebuild
						wget-1.8.2-r2.ebuild :
  Updated SRC_URI and HOMEPAGE.

  20 Dec 2002; Daniel Ahlberg <aliz@gentoo.org> :
  Security update - added patch from RedHat.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*wget-1.8.2-r1 (31 Oct 2002)

  31 Oct 2002; Seemant Kulleen <seemant@gentoo.org> wget-1.8.2-r1.ebuild
  files/digest-wget-1.8.2-r1 :

  Added debian's patch for ipv6 if "ipv6" is in USE.  Thanks to:
  andre@tomt.net (Andre Tomt) in bug #8286 for the patch.

*wget-1.8.2 (29 May 2002)

  18 Jan 2003; Jan Seidel <tuxus@gentoo.org> :
  Added mips to keywords

  23 Oct 2002; Mike Frysinger <vapier@gentoo.org> :
  Removed bootcd USE flag

  09 Jul 2002; phoen][x <phoenix@gentoo.org> wget-1.8.2.ebuild :
  Added KEYWORDS, LICENSE, SLOT.

  29 May 2002; Seemant Kulleen <seemant@gentoo.org> wget-1.8.2.ebuild
  files/digest-wget-1.8.2 :

  Version bump. The patch still works, so there is no noticeable difference
  to the user.

*wget-1.8.1-r1 (22 Feb 2002)

  23 Oct 2002; Mike Frysinger <vapier@gentoo.org> :
  Removed bootcd USE flag

  09 Jul 2002; phoen][x <phoenix@gentoo.org> wget-1.8.2.ebuild :
  Added KEYWORDS, LICENSE, SLOT.

  22 Feb 2002; Daniel Robbins <drobbins@gentoo.org>: Added openssl to RDEPEND as
  well so that .tbz2 installation works.  This fixes bug #799.

*wget-1.8.1 (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.
