# ChangeLog for media-gfx/figurine
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/figurine/ChangeLog,v 1.11 2010/01/07 22:06:22 fauli Exp $

  07 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  figurine-1.0.5.ebuild:
  Transfer Prefix keywords

  26 Jan 2008; Fabian Groffen <grobian@gentoo.org> figurine-1.0.5.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  15 May 2007; Thilo Bangert <bangert@gentoo.org> metadata.xml:
  add <herd>no-herd</herd>

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

  05 Nov 2005; Fabian Groffen <grobian@gentoo.org> figurine-1.0.5.ebuild:
  Marked ~ppc-macos (Bug #111577)

  07 Sep 2005; Luis Medinas <metalgod@gentoo.org> figurine-1.0.5.ebuild:
  Added ~amd64 keyword.

  05 Jun 2005; Michael Hanselmann <hansmi@gentoo.org> figurine-1.0.5.ebuild:
  Stable on ppc.

  03 Aug 2004; David Holm <dholm@gentoo.org> figurine-1.0.5.ebuild:
  Added to ~ppc.

*figurine-1.0.5 (08 Nov 2002)

  08 Nov 2002; George Shapovalov <george@gentoo.org> figurine-1.0.5.ebuild :

  initial commit
  Figurine is a vector based graphical editor similar to XFig.
  ebuild submitted by Eivind Tagseth <eivindt-gentoo@multinet.no>
