# ChangeLog for games-puzzle/penguzzle
# Copyright 2000-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/games-puzzle/penguzzle/ChangeLog,v 1.8 2015/02/22 21:03:36 tupone Exp $

  22 Feb 2015; Tupone Alfredo <tupone@gentoo.org> penguzzle-1.0-r1.ebuild:
  EAPI 5

*penguzzle-1.0-r1 (04 Apr 2007)

  04 Apr 2007; Tristan Heaven <nyhm@gentoo.org>
  +files/penguzzle-1.0-tclx.patch, +penguzzle-1.0-r1.ebuild:
  Fix for tclx-8.4

  08 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> ChangeLog:
  Regenerate digest in Manifest2 format.

  29 Dec 2004; Joseph Jezak <josejx@gentoo.org> penguzzle-1.0.ebuild:
  Marked ppc stable.

  05 Nov 2004; Joseph Jezak <josejx@gentoo.org> penguzzle-1.0.ebuild:
  Added ~ppc.

*penguzzle-1.0 (08 Mar 2003)

  08 Mar 2003; Mike Frysinger <vapier@gentoo.org> :
  Initial import.  Ebuild submitted by Brian Dolbec <brian_dolbec@telus.net> #16390.
