# ChangeLog for app-xemacs/xemacs-devel
# Copyright 2002-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-xemacs/xemacs-devel/ChangeLog,v 1.17 2009/02/21 08:43:07 graaff Exp $

*xemacs-devel-1.79 (21 Feb 2009)

  21 Feb 2009; Hans de Graaff <graaff@gentoo.org> +xemacs-devel-1.79.ebuild:
  Version bump with patcher updates and minor find-function enhancements.

  19 Mar 2008; Hans de Graaff <graaff@gentoo.org> metadata.xml:
  A herd should not be listed as maintainer

  25 Oct 2007; Hans de Graaff <graaff@gentoo.org> -xemacs-devel-1.50.ebuild:
  Remove old version

  03 Jun 2007; Hans de Graaff <graaff@gentoo.org> xemacs-devel-1.75.ebuild:
  Stable on amd64, ppc, ppc64, sparc, x86 as per #175560

  30 May 2007; Raúl Porcel <armin76@gentoo.org> xemacs-devel-1.75.ebuild:
  alpha stable wrt #175560

  05 May 2007; Hans de Graaff <graaff@gentoo.org> xemacs-devel-1.50.ebuild:
  Use RDEPEND instead of DEPEND

  06 Mar 2007; Hans de Graaff <graaff@gentoo.org> -xemacs-devel-1.72.ebuild:
  Remove old version.

*xemacs-devel-1.75 (22 Dec 2006)

  22 Dec 2006; Hans de Graaff <graaff@gentoo.org> +xemacs-devel-1.75.ebuild:
  Version bump.

*xemacs-devel-1.72 (11 Nov 2006)

  11 Nov 2006; Hans de Graaff <graaff@gentoo.org> -xemacs-devel-1.48.ebuild,
  +xemacs-devel-1.72.ebuild:
  Version bump with updated dependencies; remove old version.
  Add metadata.

  29 Sep 2005; Joseph Jezak <josejx@gentoo.org> xemacs-devel-1.50.ebuild:
  Marked ppc stable.

  09 Aug 2004; Tom Gall <tgall@gentoo.org> xemacs-devel-1.50.ebuild:
  stable on ppc64

  02 Oct 2003; Aron Griffis <agriffis@gentoo.org> xemacs-devel-1.50.ebuild:
  Stable on alpha

*xemacs-devel-1.50 (22 Feb 2003)

  22 Feb 2003;  <rendhalver@gentoo.org> xemacs-devel-1.48.ebuild xemacs-devel-1.50.ebuild files/digest-xemacs-devel-1.50 :
  Add ~alpha to KEYWORDS

  22 Feb 2003; Rendhalver <rendhalver@gentoo.org> :
  new stable ebuild

  22 Feb 2003; Rendhalver <rendhalver@gentoo.org> :
  fix depend on ispell to point to xemacs-ispell
  changed alpha to ~alpha

*xemacs-devel-1.48 (16 Dec 2002)

  16 Dec 2002; Rendhalver [Peter Brown] <rendhalver@gentoo.org> :
  Initial import.
