# ChangeLog for games-roguelike/adom
# Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/games-roguelike/adom/ChangeLog,v 1.8 2006/06/23 00:14:20 mr_bones_ Exp $

  23 Jun 2006; Michael Sterrett <mr_bones_@gentoo.org> adom-1.1.1-r1.ebuild:
  don't try to strip the binaries. (bug #137340) - reported by Jakub Moc

  26 Sep 2005; Chris Gianelloni <wolf31o2@gentoo.org> adom-1.1.1-r1.ebuild:
  Making games last on inherit line.

  26 Sep 2005; <dang@gentoo.org> adom-1.1.1-r1.ebuild:
  Marked stable on amd64

  10 Mar 2004; Daniel Ahlberg <aliz@gentoo.org> adom-1.1.1-r1.ebuild:
  Adding amd64 keyword. Closing #44158.

*adom-1.1.1-r1 (18 Sep 2003)

  18 Sep 2003; Mike Frysinger <vapier@gentoo.org> :
  Version bump to move statedir to proper place (GAMES_DATADIR to 
  GAMES_STATEDIR) #28699.

*adom-1.1.1 (11 Jul 2003)

  11 Jul 2003; Mike Frysinger <vapier@gentoo.org> :
  Initial import.  Ebuild submitted by Andres Loeh <kosmikus@gentoo.org> #12368.
