# ChangeLog for games-emulation/tuxnes
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/games-emulation/tuxnes/ChangeLog,v 1.11 2009/11/19 12:38:38 tupone Exp $

  19 Nov 2009; Alfredo Tupone <tupone@gentoo.org> tuxnes-0.75-r1.ebuild,
  +files/tuxnes-0.75-xshm.patch:
  Fix X_ShmAttach not defined. Bug #293440 by Peter

  14 Mar 2009; Michael Sterrett <mr_bones_@gentoo.org>
  +files/tuxnes-0.75-gcc43.patch, tuxnes-0.75-r1.ebuild:
  fix open call (patch from Magnus Granberg via bug #261676)

*tuxnes-0.75-r1 (02 Jul 2007)

  02 Jul 2007; Tristan Heaven <nyhm@gentoo.org>
  +files/tuxnes-0.75-exec-stack.patch, +files/tuxnes-0.75-include.patch,
  +tuxnes-0.75-r1.ebuild:
  remove need for an executable stack

  18 Oct 2006; Tristan Heaven <nyhm@gentoo.org>
  files/tuxnes-0.75-configure.in.patch, tuxnes-0.75.ebuild:
  Use autotools eclass

  23 Mar 2006; Michael Sterrett <mr_bones_@gentoo.org> tuxnes-0.75.ebuild:
  more dep fixing (bug #122168); use games eclass

  11 Feb 2006; Joshua Baergen <joshuabaergen@gentoo.org> tuxnes-0.75.ebuild:
  Add modular X dependencies (bug #122168, Tupone Alfredo).

  15 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org> tuxnes-0.75.ebuild:
  Removed INSTALL file.

  27 Sep 2004; Karol Wojtaszek <sekretarz@gentoo.org>
  +files/tuxnes-0.75-gcc34.patch, tuxnes-0.75.ebuild:
  Fixed gcc-3.4 compile issues. Thanks to Thomas Cort <tcort@cs.ubishops.ca> in
  Bug #65450

*tuxnes-0.75 (11 Dec 2002)

  31 Jan 2003; Martin Holzer <mholzer@gentoo.org> tuxnes-0.75.ebuild :
  Change SRC_URI to use mirror://sourceforge.

  11 Dec 2002; Ryan Phillips <rphillips@gentoo.org> ChangeLog :
  New package

