# ChangeLog for sys-libs/readline
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-libs/readline/ChangeLog,v 1.168 2011/03/01 00:48:21 vapier Exp $

*readline-6.2_p1 (01 Mar 2011)

  01 Mar 2011; Mike Frysinger <vapier@gentoo.org> +readline-6.2_p1.ebuild:
  Version bump.

  01 Mar 2011; Brent Baude <ranger@gentoo.org> readline-6.1_p2.ebuild:
  stable ppc64, bug 354939

  26 Feb 2011; Raúl Porcel <armin76@gentoo.org> readline-6.1_p2.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc stable wrt #354939

  22 Feb 2011; nixnut <nixnut@gentoo.org> readline-6.1_p2.ebuild:
  ppc stable #354939

  21 Feb 2011; Jeroen Roovers <jer@gentoo.org> readline-6.1_p2.ebuild:
  Stable for HPPA (bug #354939).

  20 Feb 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  readline-6.1_p2.ebuild:
  x86 stable wrt bug #354939

  16 Feb 2011; Markos Chandras <hwoarang@gentoo.org> readline-6.1_p2.ebuild:
  Stable on amd64 wrt bug #354939

*readline-6.2 (15 Feb 2011)

  15 Feb 2011; Mike Frysinger <vapier@gentoo.org> +readline-6.2.ebuild:
  Version bump.

  09 May 2010; Raúl Porcel <armin76@gentoo.org> readline-6.1.ebuild:
  alpha stable wrt #310819

  09 Apr 2010; Markos Chandras <hwoarang@gentoo.org> readline-6.1.ebuild:
  Stable on amd64 wrt bug #310819

  07 Apr 2010; Mike Frysinger <vapier@gentoo.org> readline-6.1.ebuild:
  Mark arm/ia64/s390/sh stable #310819.

  01 Apr 2010; Jeroen Roovers <jer@gentoo.org> readline-6.1.ebuild:
  Stable for HPPA (bug #310819).

  30 Mar 2010; Christian Faulhammer <fauli@gentoo.org> readline-6.1.ebuild:
  stable x86, bug 310819

  27 Mar 2010; Tiago Cunha <tcunha@gentoo.org> readline-6.1.ebuild:
  stable sparc, bug 310819

  24 Mar 2010; Javier Villavicencio <the_paya@gentoo.org>
  readline-6.1_p2.ebuild, +files/readline-6.1-rlfe-freebsd.patch:
  Fix for bug 301508, rlfe build on FreeBSD.

  23 Mar 2010; Brent Baude <ranger@gentoo.org> readline-6.1.ebuild:
  stable ppc, bug 310819

  23 Mar 2010; Brent Baude <ranger@gentoo.org> readline-6.1.ebuild:
  Marking readline-6.1 ppc64 for bug 310819

*readline-6.1_p2 (23 Mar 2010)

  23 Mar 2010; Mike Frysinger <vapier@gentoo.org> +readline-6.1_p2.ebuild:
  Version bump.

  12 Mar 2010; Samuli Suominen <ssuominen@gentoo.org>
  readline-6.0_p4.ebuild, readline-6.1.ebuild:
  Fix license from GPL-2 to GPL-3 wrt #308829 by Thomas Kahle.

  24 Jan 2010; Tobias Klausmann <klausman@gentoo.org>
  readline-6.0_p4.ebuild:
  Stable on alpha, bug #297906

  06 Jan 2010; Markus Meier <maekke@gentoo.org> readline-6.0_p4.ebuild:
  amd64 stable, bug #297906

*readline-6.1 (05 Jan 2010)

  05 Jan 2010; Mike Frysinger <vapier@gentoo.org> +readline-6.1.ebuild:
  Version bump.

  05 Jan 2010; Mike Frysinger <vapier@gentoo.org> readline-5.2_p14.ebuild:
  Stabilize old ABI SLOT version.

  29 Dec 2009; Christian Faulhammer <fauli@gentoo.org>
  readline-6.0_p4.ebuild:
  stable x86, bug 297906

  28 Dec 2009; nixnut <nixnut@gentoo.org> readline-6.0_p4.ebuild:
  ppc stable #297906

  28 Dec 2009; Tiago Cunha <tcunha@gentoo.org> readline-6.0_p4.ebuild:
  stable sparc, bug 297906

  26 Dec 2009; Brent Baude <ranger@gentoo.org> readline-6.0_p4.ebuild:
  Marking readline-6.0_p4 ppc64 for bug 297906

  24 Dec 2009; Jeroen Roovers <jer@gentoo.org> readline-6.0_p4.ebuild:
  Stable for HPPA (bug #297906).

  05 Oct 2009; Raúl Porcel <armin76@gentoo.org> readline-6.0_p3.ebuild:
  ia64/m68k/s390/sh/sparc stable wrt #283155

*readline-5.2_p14 (03 Oct 2009)

  03 Oct 2009; Mike Frysinger <vapier@gentoo.org> +readline-5.2_p14.ebuild:
  New version for .5 SONAME only.

  30 Sep 2009; Mike Frysinger <vapier@gentoo.org> readline-6.0_p4.ebuild:
  Restore readline symlink to find local headers.

  27 Sep 2009; Mike Frysinger <vapier@gentoo.org> readline-6.0_p4.ebuild:
  Link rlfe dynamically against readline #284568 by Jonathan Callen.

  19 Sep 2009; nixnut <nixnut@gentoo.org> readline-6.0_p3.ebuild:
  ppc stable #283155

  13 Sep 2009; Markus Meier <maekke@gentoo.org> readline-6.0_p3.ebuild:
  arm stable, bug #283155

  09 Sep 2009; Markus Meier <maekke@gentoo.org> readline-6.0_p3.ebuild:
  amd64/x86 stable, bug #283155

  07 Sep 2009; Tobias Klausmann <klausman@gentoo.org>
  readline-6.0_p3.ebuild:
  Stable on alpha, bug #283155

  07 Sep 2009; Tobias Klausmann <klausman@gentoo.org>
  readline-6.0_p3.ebuild:
  Stable on alpha, bug #283155

  07 Sep 2009; Jeroen Roovers <jer@gentoo.org> readline-6.0_p3.ebuild:
  Stable for HPPA (bug #283155).

  31 Aug 2009; Brent Baude <ranger@gentoo.org> readline-6.0_p3.ebuild:
  stable ppc64, bug 283155

*readline-6.0_p4 (29 Aug 2009)

  29 Aug 2009; Mike Frysinger <vapier@gentoo.org> +readline-6.0_p4.ebuild:
  Version bump #283138 by Arfrever Frehtes Taifersar Arahesis.

  18 May 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  readline-6.0_p3.ebuild:
  Fix build on Gentoo/FreeBSD by removing references do objformat.

*readline-6.0_p3 (17 May 2009)

  17 May 2009; Mike Frysinger <vapier@gentoo.org> +readline-6.0_p3.ebuild:
  Version bump #270170 by Lars Wendler.

  24 Feb 2009; Joshua Kinard <kumba@gentoo.org> readline-6.0.ebuild:
  Skip the rlfe bits if doing cross-compiling.

*readline-4.3_p5 (23 Feb 2009)

  23 Feb 2009; Mike Frysinger <vapier@gentoo.org> +readline-4.3_p5.ebuild:
  Add a readline-4.x ebuild for the ABI lib only.

*readline-6.0 (21 Feb 2009)

  21 Feb 2009; Mike Frysinger <vapier@gentoo.org>
  +files/readline-6.0-rlfe-build.patch, +readline-6.0.ebuild:
  Version bump #259830 by Lars (Polynomial-C).

  21 Feb 2009; Ferris McCormick <fmccor@gentoo.org> readline-5.2_p13.ebuild:
  Sparc really stable this time --- Bug #255707.

  15 Feb 2009; Brent Baude <ranger@gentoo.org> readline-5.2_p13.ebuild:
  stable ppc, bug 255707

  07 Feb 2009; Raúl Porcel <armin76@gentoo.org> readline-5.2_p13.ebuild:
  arm/ia64/s390/sh/sparc stable wrt #255707

  26 Jan 2009; Tobias Klausmann <klausman@gentoo.org>
  readline-5.2_p13.ebuild:
  Stable on alpha, bug #255707

  24 Jan 2009; Jeroen Roovers <jer@gentoo.org> readline-5.2_p13.ebuild:
  Stable for HPPA (bug #255707).

  24 Jan 2009; Markus Meier <maekke@gentoo.org> readline-5.2_p13.ebuild:
  amd64/x86 stable, bug #255707

  23 Jan 2009; Brent Baude <ranger@gentoo.org> readline-5.2_p13.ebuild:
  stable ppc64, bug 255707

*readline-5.2_p13 (23 Nov 2008)

  23 Nov 2008; Mike Frysinger <vapier@gentoo.org> +readline-5.2_p13.ebuild:
  Version bump #247646 by Lars (Polynomial-C).

  08 Apr 2008; Mike Frysinger <vapier@gentoo.org>
  +files/readline-5.2-no-ignore-shlib-errors.patch,
  readline-5.2_p12-r1.ebuild:
  Dont ignore errors in the shlib subdir #216952 by Markus Ullmann.

  26 Feb 2008; Santiago M. Mola <coldwind@gentoo.org>
  readline-5.2_p12-r1.ebuild:
  amd64 stable wrt bug #211332

  26 Feb 2008; Brent Baude <ranger@gentoo.org> readline-5.2_p12-r1.ebuild:
  stable ppc, bug 211332

  26 Feb 2008; Brent Baude <ranger@gentoo.org> readline-5.2_p12-r1.ebuild:
  stable ppc64, bug 211332

  25 Feb 2008; Jeroen Roovers <jer@gentoo.org> readline-5.2_p12-r1.ebuild:
  Stable for HPPA (bug #211332).

  07 Feb 2008; Raúl Porcel <armin76@gentoo.org> readline-5.2_p12-r1.ebuild:
  alpha/ia64/sparc/x86 stable

*readline-5.2_p12-r1 (02 Jan 2008)

  02 Jan 2008; Mike Frysinger <vapier@gentoo.org>
  +readline-5.2_p12-r1.ebuild:
  Make sure we continue to always link against ncurses as reported by welp.

*readline-5.2_p12 (02 Jan 2008)

  02 Jan 2008; Mike Frysinger <vapier@gentoo.org> +readline-5.2_p12.ebuild:
  Version bump.

  29 Sep 2007; Jeroen Roovers <jer@gentoo.org> readline-5.2_p7.ebuild:
  Stable for HPPA (bug #194013).

  28 Sep 2007; nixnut <nixnut@gentoo.org> readline-5.2_p7.ebuild:
  Stable on ppc wrt bug 194013

  28 Sep 2007; Raúl Porcel <armin76@gentoo.org> readline-5.2_p7.ebuild:
  alpha/ia64/x86 stable wrt #194013

  28 Sep 2007; Ferris McCormick <fmccor@gentoo.org> readline-5.2_p7.ebuild:
  Sparc stable --- Bug #194013

  28 Sep 2007; Christoph Mende <angelos@gentoo.org> readline-5.2_p7.ebuild:
  Stable on amd64 wrt bug #194013

  28 Sep 2007; Joshua Kinard <kumba@gentoo.org> readline-5.2_p7.ebuild:
  Stable on mips, per #194013.

  27 Sep 2007; Brent Baude <ranger@gentoo.org> readline-5.2_p7.ebuild:
  Marking  readline-5.2_p7 ppc64 for 194013

*readline-5.2_p7 (24 Aug 2007)

  24 Aug 2007; Mike Frysinger <vapier@gentoo.org> +readline-5.2_p7.ebuild:
  Version bump.

  30 Jul 2007; Markus Rothe <corsair@gentoo.org> readline-5.2_p4.ebuild:
  Stable on ppc64; bug #186286

  25 Jul 2007; Jeroen Roovers <jer@gentoo.org> readline-5.2_p4.ebuild:
  Stable for HPPA (bug #186286).

  24 Jul 2007; Steve Dibb <beandog@gentoo.org> readline-5.2_p4.ebuild:
  amd64 stable, bug 186286

  23 Jul 2007; Raúl Porcel <armin76@gentoo.org> readline-5.2_p4.ebuild:
  alpha stable wrt #186286

  23 Jul 2007; nixnut <nixnut@gentoo.org> readline-5.2_p4.ebuild:
  Stable on ppc wrt bug 186286

  23 Jul 2007; Joshua Kinard <kumba@gentoo.org> readline-5.2_p4.ebuild:
  Stable on mips, per #186286.

  23 Jul 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  readline-5.2_p4.ebuild:
  Stable on sparc wrt #186286

  30 Jun 2007; Raúl Porcel <armin76@gentoo.org> readline-5.2_p4.ebuild:
  ia64/x86 stable

  12 May 2007; Joshua Kinard <kumba@gentoo.org> readline-5.2_p2.ebuild:
  Stable on mips.

*readline-5.2_p4 (02 May 2007)

  02 May 2007; Mike Frysinger <vapier@gentoo.org> +readline-5.2_p4.ebuild:
  Version bump.

  24 Apr 2007; Raúl Porcel <armin76@gentoo.org> readline-5.2_p2.ebuild:
  ia64 + x86 stable

*readline-5.2_p2 (22 Mar 2007)

  22 Mar 2007; Mike Frysinger <vapier@gentoo.org> +readline-5.2_p2.ebuild:
  Version bump.

  13 Jan 2007; Mike Frysinger <vapier@gentoo.org> readline-4.3-r5.ebuild,
  readline-5.0-r2.ebuild, readline-5.1_p4.ebuild, readline-5.2.ebuild,
  readline-5.2_p1.ebuild:
  Switch to using preserve_old_lib().

  04 Jan 2007; Diego Pettenò <flameeyes@gentoo.org> readline-4.3-r5.ebuild:
  Remove gnuconfig usage.

*readline-5.2_p1 (16 Dec 2006)

  16 Dec 2006; Mike Frysinger <vapier@gentoo.org> +readline-5.2_p1.ebuild:
  Version bump.

  17 Oct 2006; Roy Marples <uberlord@gentoo.org> readline-5.1_p4.ebuild,
  readline-5.2.ebuild:
  Added ~sparc-fbsd keyword.

  13 Oct 2006; Mike Frysinger <vapier@gentoo.org>
  +files/readline-5.2-rlfe-build.patch, readline-5.2.ebuild:
  Link against the local readline #151174 by Javier Armendariz.

  13 Oct 2006; Roy Marples <uberlord@gentoo.org>
  +files/readline-5.1-fbsd-pic.patch, readline-5.1_p4.ebuild,
  readline-5.2.ebuild:
  Always build with -fPIC on FreeBSD.

*readline-5.2 (12 Oct 2006)

  12 Oct 2006; Mike Frysinger <vapier@gentoo.org> +readline-5.2.ebuild:
  Version bump.

  19 Aug 2006; Fabian Groffen <grobian@gentoo.org> readline-5.1_p4.ebuild:
  Marked ppc-macos stable for progressive users (bug #129885)

  27 Apr 2006; Alec Warner <antarus@gentoo.org>
  files/digest-readline-4.3-r5, files/digest-readline-4.3-r6,
  files/digest-readline-5.0-r2, Manifest:
  Fixing SHA256 digest, pass four

  29 Apr 2006; Joshua Kinard <kumba@gentoo.org> readline-5.1_p4.ebuild:
  Marked stable on mips.

  18 Apr 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  readline-5.1_p4.ebuild:
  Stable on sparc wrt #129885

  17 Apr 2006; Markus Rothe <corsair@gentoo.org> readline-5.1_p4.ebuild:
  Stable on ppc64; bug #129885

  16 Apr 2006; Bryan Østergaard <kloeri@gentoo.org readline-5.1_p4.ebuild:
  Stable on alpha, bug 129885.

  15 Apr 2006; Marcus D. Hanwell <cryos@gentoo.org> readline-5.1_p4.ebuild:
  Marked stable on amd64, bug 129885.

  15 Apr 2006; <nixnut@gentoo.org> readline-5.1_p4.ebuild:
  Stable on ppc. Bug #129885

  15 Apr 2006; Mark Loeser <halcy0n@gentoo.org> readline-5.1_p4.ebuild:
  Stable on x86; bug #129885

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

*readline-5.1_p4 (21 Mar 2006)

  21 Mar 2006; Mike Frysinger <vapier@gentoo.org> +readline-5.1_p4.ebuild:
  Version bump.

*readline-5.1_p2 (17 Mar 2006)

  17 Mar 2006; Mike Frysinger <vapier@gentoo.org> +readline-5.1_p3.ebuild:
  Version bump.

  09 Feb 2006; Mike Frysinger <vapier@gentoo.org>
  files/readline-5.1-rlfe-uclibc.patch:
  Make sys/stropts.h a proper configure check/include and pull in more headers
  to silence warnings #117060 by Benigno B. Junior.

*readline-5.1_p2 (04 Feb 2006)

  04 Feb 2006; Mike Frysinger <vapier@gentoo.org> +readline-5.1_p2.ebuild:
  Version bump.

  05 Jan 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/readline-5.1-rlfe-libutil.patch, readline-5.1-r2.ebuild:
  Add patch to complete rlfe linking when openpty() is in libutil.

  27 Dec 2005; Joel Martin <kanaka@gentoo.org> readline-5.1-r2.ebuild:
  Cross-compile fix was partially backed out, put it back in.

  24 Dec 2005; <solar@gentoo.org> +files/readline-5.1-rlfe-uclibc.patch,
  readline-5.1-r2.ebuild:
  - uclibc does not contain a stropts.h so we exclude it from rlfe

  24 Dec 2005; Mike Frysinger <vapier@gentoo.org>
  +files/readline-5.1-rlfe-build.patch, readline-5.1-r2.ebuild:
  Make sure rlfe builds against the local version of readline #116483.

  23 Dec 2005; Joel Martin <kanaka@gentoo.org> readline-5.1-r2.ebuild:
  rlfe does not cross-compile, don't build it when cross-compiling

  22 Dec 2005; Mike Frysinger <vapier@gentoo.org>
  -files/readline-5.1-callback-segv.patch, readline-5.1-r2.ebuild:
  Update to use the official readline patch.

*readline-5.1-r2 (21 Dec 2005)

  21 Dec 2005; Aron Griffis <agriffis@gentoo.org> +readline-5.1-r2.ebuild:
  Install rlfe from the examples directory

*readline-5.1-r1 (20 Dec 2005)

  20 Dec 2005; Mike Frysinger <vapier@gentoo.org>
  +files/readline-5.1-callback-segv.patch,
  +files/readline-5.1-cleanups.patch, +readline-5.1-r1.ebuild:
  Grab patch from SuSe for segfault #115326 by Seemant Kulleen.

*readline-5.1 (10 Dec 2005)

  10 Dec 2005; Mike Frysinger <vapier@gentoo.org> +readline-5.1.ebuild:
  Version bump.

  10 Sep 2005; Kito <kito@gentoo.org> readline-5.0-r2.ebuild:
  ~ppc-macos keyword. Keep shlibs in /usr/lib and skip gen_usr_ldscript on
  Darwin userland.

  16 Jul 2005; Mike Frysinger <vapier@gentoo.org>
  +files/readline-5.0-darwin.patch, readline-5.0-r2.ebuild:
  Fix support for Darwin8.  Patch by Kito #99143.

  27 Jun 2005; Aron Griffis <agriffis@gentoo.org>
  +files/readline-5.0-parallel.patch, readline-5.0-r2.ebuild:
  Fix parallel build

  09 Jun 2005; Mike Frysinger <vapier@gentoo.org> readline-5.0-r2.ebuild:
  Stabilize for all arches.

  14 Feb 2005; Michael Sterrett <mr_bones_@gentoo.org> readline-4.3-r6.ebuild:
  macos went away

*readline-5.0-r2 (12 Feb 2005)

  12 Feb 2005; Mike Frysinger <vapier@gentoo.org>
  +files/readline-5.0-del-backspace-policy.patch,
  +files/readline-5.0-no_rpath.patch, +files/readline-5.0-self-insert.patch,
  +files/readline-5.0-solaris.patch, +readline-5.0-r2.ebuild:
  Add some patches from Debian/Fedora fixing #74807 by Ivan Todoroski in the
  process.

  11 Feb 2005; Mike Frysinger <vapier@gentoo.org> +files/5.0-solaris.patch,
  readline-5.0-r1.ebuild:
  Add patch by Sunil to fix solaris linking #81058.

  03 Jan 2005; Ciaran McCreesh <ciaranm@gentoo.org> :
  Change encoding to UTF-8 for GLEP 31 compliance

  24 Nov 2004; Mike Frysinger <vapier@gentoo.org> readline-5.0-r1.ebuild:
  Force ncurses linking #71420.

  30 Sep 2004; Gustavo Zacarias <gustavoz@gentoo.org> readline-4.3-r5.ebuild:
  Stable on sparc

*readline-5.0-r1 (29 Sep 2004)

  29 Sep 2004; Mike Frysinger <vapier@gentoo.org>
  +files/bash-3.0-etc-inputrc.patch, +readline-5.0-r1.ebuild:
  Add more patches from upstream and add support for /etc/inputrc #38955.

  29 Sep 2004; Lina Pezzella <j4rg0n@gentoo.org> readline-4.3-r6.ebuild:
  Fixed collisions with history(3) on macos.

  02 Sep 2004; Jeremy Huddleston <eradicator@gentoo.org> readline-5.0.ebuild:
  get_libdir fixups for backwards compatibility with readline-4.

  26 Aug 2004; Travis Tilley <lv@gentoo.org> readline-4.3-r5.ebuild,
  readline-4.3-r6.ebuild, readline-5.0.ebuild:
  readline failed to install correctly when lib64 was a directory, CONF_LIBDIR
  wasnt set, and when using portage 2.0.50. to fix this i've converted the
  ebuilds to using the new get_libdir function, set
  --libdir=/usr/$(get_libdir), and changed einstall to make DESTDIR=${D}
  install (since the version in 2.0.50 doesnt set libdir, breaking sandbox)

  24 Aug 2004; Sven Wegener <swegener@gentoo.org> readline-4.1-r5.ebuild,
  readline-4.3-r4.ebuild, readline-4.3-r5.ebuild, readline-4.3-r6.ebuild,
  readline-5.0.ebuild:
  Changed SRC_URI to use mirror:// syntax. Don't assign default to S and added
  missing IUSE.

  14 Aug 2004; Travis Tilley <lv@gentoo.org> readline-4.3-r5.ebuild,
  readline-4.3-r6.ebuild, readline-5.0.ebuild:
  added CONF_LIBDIR support and changed make install to einstall to avoid a
  sandbox violation that occurs when CONF_LIBDIR is set

*readline-5.0 (28 Jul 2004)

  28 Jul 2004; Mike Frysinger <vapier@gentoo.org> readline-4.3-r4.ebuild,
  readline-4.3-r5.ebuild, readline-4.3-r6.ebuild, +readline-5.0.ebuild:
  Version bump #58648. Also add in support for upgrading from previous
  incompatible versions #29865.

  02 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org>
  readline-4.1-r5.ebuild, readline-4.2a-r1.ebuild, readline-4.2a-r2.ebuild:
  virtual/glibc -> virtual/libc

  11 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> readline-4.3-r5.ebuild:
  Stable on alpha.

  21 Mar 2004; Joshua Kinard <kumba@gentoo.org> readline-4.3-r5.ebuild:
  Added gnuconfig support for mips

  21 Feb 2004; Brad House <brad_mssw@gentoo.org> readline-4.3-r5.ebuild:
  stable on amd64 for 2004.0 release

*readline-4.3-r5 (28 Sep 2003)

  28 Sep 2003; Martin Schlemmer <azarah@gentoo.org> readline-4.3-r5.ebuild:
  Update to use official patches, which also have the multi-byte stuff.

  17 Sep 2003; Jon Portnoy <avenj@gentoo.org> readline-4.3-r4.ebuild :
  ia64 keywords.

  24 Jun 2003; Aron Griffis <agriffis@gentoo.org> readline-4.3-r4.ebuild:
  Mark stable on alpha

  15 Mar 2003; Martin Schlemmer <azarah@gentoo.org> readline-4.3-r4.ebuild :
  Remove /lib/*.old files, closing bug #16731.  Mark stable for x86.

  13 Mar 2003; Olivier Reisch <doctomoe@gentoo.org> readline-4.2a-r2.ebuild:
  Marked ppc stable.

*readline-4.2a-r2 (13 Mar 2003)

  13 Mar 2003; Seemant Kulleen <seemant@gentoo.org> readline-4.2a-r2.ebuild:
  force upgrade to install the proper header

  20 Feb 2003; Zach Welch <zwelch@gentoo.org> readline-4.3-r4.ebuild :
  Added arm to keywords.

  07 Feb 2003; Guy Martin <gmsoft@gentoo.org> readline-4.3-r4.ebuild :
  Added hppa to keywords.

  12 Dec 2002; Jan Seidel <tuxus@gentoo.org> readline-4.2a-r1.ebuild :
  
  Added mips to keywords.

*readline-4.3-r4 (09 Dec 2002)

  28 Mar 2003; Christian Birchinger <joker@gentoo.org> readline-4.3-r4.ebuild:
  Added sparc stable keyword

  24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> readline-4.3-r4.ebuild :
  Marked as stable for mips.

  09 Dec 2002; Jon Portnoy <avenj@gentoo.org> readline-4.3-r4.ebuild :

  Added a patch from upstream maintainer to fix bug:
  
    http://bugs.gentoo.org/show_bug.cgi?id=11762

  (Python segfaults when using latin-1 chars in interactive mode)

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*readline-4.1-r5 (26 Oct 2002)
*readline-4.2a-r1 (26 Oct 2002)

  05 Mar 2003; Seemant Kulleen <seemant@gentoo.org> readline-4.2a-r1.ebuild:
  fixed a problem with a broken include in the tilde.h file

*readline-4.3-r3 (26 Oct 2002)

  24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> readline-4.3-r3.ebuild :
  Marked as stable for mips.

  26 Oct 2002; Martin Schlemmer <azarah@gentoo.org> readline*.ebuild :
  Add linker scripts in /usr/lib to fix bug #4411.

*readline-4.3-r2 (20 Oct 2002)

  20 Oct 2002; Martin Schlemmer <azarah@gentoo.org> readline-4.3-r2.ebuild :
  Add some official patches.

*readline-4.3-r1 (1 Sep 2002)

  1 Sep 2002; Martin Schlemmer <azarah@gentoo.org> readline-4.3-r1.ebuild :
  Depend on bash that always link against internal readline, else bash
  may break on readline update.

*readline-4.3 (30 Aug 2002)

  30 Aug 2002; Mark Guertin <gerk@gentoo.org> readline-4.3.ebuild :
  set -ppc, inplace upgrade completely broke system

  30 Aug 2002; Seemant Kulleen <seemant@gentoo.org> readline-4.3.ebuild
  files/digest-readline-4.3 :

  Version bump -- required by bash-2.05b (USE dependent, of course)

*readline-4.1-r4 (21 Mar 2002)

  15 Jul 2002; Mark Guertin <gerk@gentoo.org>
  Added ppc to keywords

  21 Mar 2002; Seemant Kulleen <seemant@gentoo.org> readline-4.1-r4.ebuild :

  stefan@mdy.univie.ac.at discovered that html documentation was getting
  gzipped.  This fixes that.

*readline-4.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.
