# ChangeLog for dev-games/ps2-packer
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-games/ps2-packer/ChangeLog,v 1.6 2015/06/06 09:59:55 jlec Exp $

  06 Jun 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Add github to remote-id in metadata.xml

  30 Mar 2015; Michael Sterrett <mr_bones_@gentoo.org> ps2-packer-0.4.4.ebuild:
  EAPI=5

  31 Mar 2009; Mike Frysinger <vapier@gentoo.org> ps2-packer-0.4.4.ebuild:
  Use QA_WX_LOAD rather than QA_EXECSTACK #264348 by Mr. Bones.

  31 Mar 2009; Michael Sterrett <mr_bones_@gentoo.org>
  ps2-packer-0.4.4.ebuild:
  inherit games to get GAMES_PREFIX_OPT

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

*ps2-packer-0.4.4 (18 Apr 2005)

  18 Apr 2005; Mike Frysinger <vapier@gentoo.org> :
  Initial import.  Ebuild submitted by me.
