# ChangeLog for app-editors/levee
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-editors/levee/ChangeLog,v 1.25 2009/11/30 23:30:54 tcunha Exp $

  01 Dec 2009; Tiago Cunha <tcunha@gentoo.org> levee-3.5a.ebuild:
  stable sparc, bug 289333

  21 Nov 2009; Markus Meier <maekke@gentoo.org> levee-3.5a.ebuild:
  x86 stable, bug #289333

  09 Nov 2009; Jonathan Callen <abcd@gentoo.org> -files/levee-3.5-QA.patch:
  Drop unused file

  24 Oct 2009; nixnut <nixnut@gentoo.org> levee-3.5a.ebuild:
  ppc stable #289333

  18 Oct 2009; Samuli Suominen <ssuominen@gentoo.org> levee-3.5a.ebuild:
  amd64 stable wrt #289333

  12 Aug 2009; Víctor Ostorga <vostorga@gentoo.org> +levee-3.4o.ebuild:
  Oops, levee-3.4o was stable

*levee-3.5a (12 Aug 2009)

  12 Aug 2009; Víctor Ostorga <vostorga@gentoo.org> +levee-3.5a.ebuild,
  +files/levee-3.5a-QA.patch:
  Version bump to 3.5a

  12 Aug 2009; Víctor Ostorga <vostorga@gentoo.org> -levee-3.4o.ebuild:
  Cleaning out old version

  21 Jul 2009; Víctor Ostorga <vostorga@gentoo.org> levee-3.5.ebuild,
  +files/levee-3.5-glibc210.patch:
  Adding patch to allow building with glibc 2.10, closes bug #273848

  05 Jun 2009; Peter Alfredsen <loki_val@gentoo.org> metadata.xml:
  Retiring, bug 220219.

  03 Dec 2008; Peter Alfredsen <loki_val@gentoo.org> levee-3.4o.ebuild,
  levee-3.5.ebuild:
  Block app-text/lv, bug 246966.

*levee-3.5 (25 May 2008)

  25 May 2008; Peter Alfredsen <loki_val@gentoo.org>
  +files/levee-3.5-QA.patch, metadata.xml, +levee-3.5.ebuild:
  Bump to 3.5. Fixes bug #221273.

  13 May 2007; Thilo Bangert <bangert@gentoo.org> metadata.xml:
  add herd

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

  11 May 2006; Thomas Cort <tcort@gentoo.org> levee-3.4o.ebuild:
  Stable on amd64.

  28 Aug 2005; Luis Medinas <metalgod@gentoo.org> levee-3.4o.ebuild:
  Added ~amd64 keywords. Closes bug #103759.

*levee-3.4o (28 Apr 2002)

  10 Feb 2003; Seemant Kulleen <seemant@gentoo.org> levee-3.4o.ebuild :

  Changed sed expression delimiters from : to /, closing bug #15006 by Blu3
  <david+gentoo.org@blue-labs.org>

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
  06 Aug 2002; Mark Guertin <gerk@gentoo.org> :
  Added ppc to keywords

  28 Apr 2002; Arcady Genkin <agenkin@thpoon.com> levee-3.4o.ebuild :
  
  Initial version of the ebuild, submitted by Wout.Mertens@advalvas.be
  (Wout Mertens).
