# ChangeLog for dev-ruby/amrita
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/amrita/ChangeLog,v 1.27 2009/07/14 17:59:53 graaff Exp $

  14 Jul 2009; Hans de Graaff <graaff@gentoo.org> amrita-1.8.2-r1.ebuild:
  Remove ruby19 keyword: not compatible. See bug 276821, thanks to Kevin
  Fullerton for reporting.

  30 Apr 2009; Samuli Suominen <ssuominen@gentoo.org>
  amrita-1.8.2-r1.ebuild:
  File collision /usr/bin/ams wrt #247812

  25 Mar 2008; <ricmm@gentoo.org> amrita-1.8.2-r1.ebuild:
  Drop to ~mips due to unstable deps

  14 Apr 2007; Hans de Graaff <graaff@gentoo.org> amrita-1.8.2-r1.ebuild:
  Make USE_RUBY consistent with DEPENDS, remove ruby-cvs from DEPENDS.

  22 Feb 2007; Piotr Jaroszyński <peper@gentoo.org> ChangeLog:
  Transition to Manifest2.

  04 Feb 2006; <solar@gentoo.org> :
  - redigest needed due to bad RMD160. bug #121124

  31 Jan 2006; Aron Griffis <agriffis@gentoo.org> amrita-1.8.2-r1.ebuild:
  Mark 1.8.2-r1 stable on ia64

  31 Jan 2006; Aron Griffis <agriffis@gentoo.org> amrita-1.8.2-r1.ebuild:
  Mark 1.8.2-r1 stable on ia64

  06 Oct 2005; Caleb Tennis <caleb@gentoo.org> -amrita-1.0.2.ebuild,
  -amrita-1.8.2.ebuild, amrita-1.8.2-r1.ebuild:
  Remove old versions, and shim-ruby18 dep

  03 Oct 2005; Aron Griffis <agriffis@gentoo.org> amrita-1.8.2-r1.ebuild:
  Mark 1.8.2-r1 ~ia64

  01 May 2005; Michael Hanselmann <hansmi@gentoo.org>
  amrita-1.8.2-r1.ebuild:
  Stable on ppc.

  16 Dec 2004; Markus Rothe <corsair@gentoo.org> amrita-1.8.2-r1.ebuild:
  Stable on ppc64

  12 Nov 2004; Joshua Kinard <kumba@gentoo.org> amrita-1.8.2-r1.ebuild:
  Marked stable on mips.

  01 Nov 2004; Markus Rothe <corsair@gentoo.org>

  amrita-1.8.2-r1.ebuild:
  Marked ~ppc64; bug #66440

  09 Jun 2004; Guy Martin <gmsoft@gentoo.org> amrita-1.8.2-r1.ebuild:
  Marked stable on hppa.

  02 May 2004; Ferris McCormick <fmccor@gentoo.org> amrita-1.8.2-r1.ebuild:
  Marked stable on sparc.

  26 Apr 2004; Mamoru KOMACHI <usata@gentoo.org> amrita-1.0.2.ebuild,
  amrita-1.8.2-r1.ebuild:
  Marked stable on x86 and alpha. Added missing IUSE

  17 Apr 2004; David Holm <dholm@gentoo.org> amrita-1.8.2-r1.ebuild:
  Added to ~ppc.

  10 Apr 2004; Mamoru KOMACHI <usata@gentoo.org> amrita-1.0.2.ebuild,
  amrita-1.8.2-r1.ebuild, amrita-1.8.2.ebuild:
  virtual/ruby fix, see bug #46968

  24 Feb 2004; Ciaran McCreesh <ciaranm@gentoo.org> amrita-1.8.2.ebuild:
  Stable on sparc

*amrita-1.8.2-r1 (12 Sep 2003)

*amrita-1.8.2 (10 May 2003)

  12 Sep 2003; Tom Payne <twp@gentoo.org> amrita-1.8.2-r1.ebuild :
  Fix strscan DEPEND (now needs ruby 1.8.0).

  23 Jul 2003; Guy Martin <gmsoft@gentoo.org> amrita-1.8.2.ebuild :
  Marked stable on hppa.

  23 May 2003; Tom Payne <twp@gentoo.org> amrita-1.8.2.ebuild :
  Added IUSE.

  12 May 2003; Tom Payne <twp@gentoo.org> amrita-1.8.2.ebuild :
  Added all ARCHes to KEYWORDS.

  10 May 2003; Tom Payne <twp@gentoo.org> amrita-1.8.2.ebuild :
  Version bump.

*amrita-1.0.2 (10 May 2003)

  12 May 2003; Tom Payne <twp@gentoo.org> amrita-1.0.2.ebuild :
  Added all ARCHes to KEYWORDS. Marked stable on all ARCHes.

  10 May 2003; Tom Payne <twp@gentoo.org> amrita-1.0.2.ebuild :
  Initial version. Ebuild submitted by Jim Marshall. Bug # 14509.
