# ChangeLog for games-puzzle/pingus
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/games-puzzle/pingus/ChangeLog,v 1.48 2015/07/18 14:26:49 pacho Exp $

  18 Jul 2015; Pacho Ramos <pacho@gentoo.org> pingus-0.7.6.ebuild:
  Needs to be rebuilt when libboost so versions change

  27 Mar 2015; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.6.ebuild:
  add flag-o-matic for strip-flags

  25 Feb 2015; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.6.ebuild:
  tidy boost stuff; add slot dep for libpng

  22 Feb 2015; Tupone Alfredo <tupone@gentoo.org> pingus-0.7.6.ebuild:
  EAPI 5

  08 Dec 2012; Michael Sterrett <mr_bones_@gentoo.org> metadata.xml,
  pingus-0.7.6.ebuild:
  make the user insist on background music (bug #446434)

  09 Jul 2012; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.6.ebuild,
  +files/pingus-0.7.6-gcc47.patch:
  add gcc47 patch from Markus Oehme (bug #425238)

  30 Jun 2012; Michael Sterrett <mr_bones_@gentoo.org>
  +files/pingus-0.7.6-noopengl.patch, pingus-0.7.6.ebuild:
  fix USE=-opengl compile (bug #404425)

  29 Jun 2012; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.6.ebuild:
  use the latest boost

  24 May 2012; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.6.ebuild:
  Add strip-flags for bug #396149

  24 May 2012; Michael Sterrett <mr_bones_@gentoo.org>
  -files/pingus-0.7.3-libpng15.patch, -files/pingus-0.7.3-paths.patch,
  -pingus-0.7.3.ebuild, -pingus-0.7.5.ebuild:
  old

  06 Mar 2012; Brent Baude <ranger@gentoo.org> pingus-0.7.6.ebuild:
  Marking pingus-0.7.6 ppc for bug 402603

  17 Feb 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> pingus-0.7.6.ebuild:
  x86 stable wrt bug #402603

  07 Feb 2012; Agostino Sarubbo <ago@gentoo.org> pingus-0.7.6.ebuild:
  Stable for amd64, wrt bug #402603

  10 Jan 2012; Brent Baude <ranger@gentoo.org> pingus-0.7.5.ebuild:
  Marking pingus-0.7.5 ppc for bug 395443

*pingus-0.7.6 (05 Jan 2012)

  05 Jan 2012; Michael Sterrett <mr_bones_@gentoo.org> +pingus-0.7.6.ebuild:
  version bump (bug #396451)

  04 Jan 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> pingus-0.7.5.ebuild:
  x86 stable wrt bug #395443

  21 Dec 2011; Agostino Sarubbo <ago@gentoo.org> pingus-0.7.5.ebuild:
  Stable for AMD64, wrt bug #395443

*pingus-0.7.5 (27 Oct 2011)

  27 Oct 2011; Michael Sterrett <mr_bones_@gentoo.org>
  files/pingus-0.7.3-libpng15.patch, +pingus-0.7.5.ebuild:
  version bump (bug #387757)

  15 Feb 2011; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.3.ebuild,
  +files/pingus-0.7.3-libpng15.patch:
  add patch for working with libpng15 submitted by Lars Wendler via bug
  #355065

  19 Nov 2010; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.3.ebuild:
  use scons-utils

  15 Oct 2010; Brent Baude <ranger@gentoo.org> pingus-0.7.3.ebuild:
  stable ppc, bug 336376

  19 Sep 2010; Markos Chandras <hwoarang@gentoo.org> pingus-0.7.3.ebuild:
  Stable on amd64 wrt bug #336376

  11 Sep 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> pingus-0.7.3.ebuild:
  x86 stable wrt bug #336376

*pingus-0.7.3 (07 Aug 2010)

  07 Aug 2010; Michael Sterrett <mr_bones_@gentoo.org> +pingus-0.7.3.ebuild,
  +files/pingus-0.7.3-paths.patch:
  version bump

  08 Jun 2009; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.2.ebuild:
  only use the -j part of MAKEOPTS

  04 Apr 2009; Michael Sterrett <mr_bones_@gentoo.org>
  +files/pingus-0.7.2-gcc44.patch, pingus-0.7.2.ebuild:
  EAPI=2; add gcc44 patch from Paul Mulders (bug #264739)

  04 Sep 2008; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.2.ebuild:
  Attempt at using a less-ugly icon (bug #236596)

  28 Aug 2008; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.7.2.ebuild:
  Patch from Diego Pettenò to enable parallel build (bug #235987)

  26 Jun 2008; nixnut <nixnut@gentoo.org> pingus-0.7.2.ebuild:
  Stable on ppc wrt bug 229493

  26 Jun 2008; Thomas Anderson <gentoofan23@gentoo.org> pingus-0.7.2.ebuild:
  stable amd64, bug 229493

  26 Jun 2008; Christian Faulhammer <opfer@gentoo.org> pingus-0.7.2.ebuild:
  stable x86, bug 229493

  24 Apr 2008; Diego Pettenò <flameeyes@gentoo.org>
  +files/pingus-0.7.2+gcc-4.3.patch, pingus-0.7.2.ebuild:
  Add patch to build with GCC 4.3.

*pingus-0.7.2 (01 Nov 2007)

  01 Nov 2007; Michael Sterrett <mr_bones_@gentoo.org>
  +files/pingus-0.7.2-paths.patch, +pingus-0.7.2.ebuild:
  version bump

  01 Oct 2007; Michael Sterrett <mr_bones_@gentoo.org>
  -files/pingus-0.6.0-build.patch, -files/pingus-0.6.0-gcc.patch,
  -pingus-0.6.0-r1.ebuild:
  remove old, masked version

  27 Sep 2007; Christoph Mende <angelos@gentoo.org> pingus-0.7.1.ebuild:
  Added ~amd64 wrt bug #156496

  27 Sep 2007; Joseph Jezak <josejx@gentoo.org> pingus-0.7.1.ebuild:
  Marked ~ppc for bug #193820.

*pingus-0.7.1 (25 Sep 2007)

  25 Sep 2007; Tristan Heaven <nyhm@gentoo.org>
  +files/pingus-0.7.1-paths.patch, +pingus-0.7.1.ebuild:
  Version bump, bug #190206

  04 Nov 2006; Tristan Heaven <nyhm@gentoo.org>
  +files/pingus-0.6.0-build.patch, pingus-0.6.0-r1.ebuild:
  Add nls dependencies and cleanup ebuild

  08 Oct 2005; Simon Stelling <blubb@gentoo.org> pingus-0.6.0-r1.ebuild:
  remove amd64 keyword till bug #85454 is fixed

  12 Sep 2005; Mark Loeser <halcy0n@gentoo.org>
  +files/pingus-0.6.0-gcc.patch, -files/pingus-0.6.0-gcc3.patch,
  -files/pingus-0.6.0-gcc34.patch, pingus-0.6.0-r1.ebuild:
  Combine all the gcc patches together, and add in a small fix for gcc4.

  15 Jun 2005; Chris Gianelloni <wolf31o2@gentoo.org>
  pingus-0.6.0-r1.ebuild:
  Removed INSTALL file.

  30 Sep 2004; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.6.0-r1.ebuild:
  work around brief bug in bash3 (bug #65729)

  20 Sep 2004; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.6.0-r1.ebuild:
  Fix compile with -Os (bug #64581)

  12 Sep 2004; Michael Sterrett <mr_bones_@gentoo.org>
  +files/0.6.0-gcc34.patch, pingus-0.6.0-r1.ebuild:
  Add gcc43 patch from Peter `MathFox' Roozemaal via bug #63773

  09 Jun 2004; Michael Sterrett <mr_bones_@gentoo.org> pingus-0.6.0-r1.ebuild,
  files/0.6.0-gcc3.patch:
  integrated gcc 3.4 patch from Felix Riemann (bug #53435); added nls support

*pingus-0.6.0-r1 (16 Jul 2003)

  10 Sep 2003; Mike Frysinger <vapier@gentoo.org> :
  gcc3 patch (add assert.h to a lot of files) #28281.

  16 Jul 2003; Mike Frysinger <vapier@gentoo.org> :
  Update to use ClanLib SLOT-ing.

*pingus-0.6.0 (22 Apr 2003)

  10 Sep 2003; Mike Frysinger <vapier@gentoo.org> :
  gcc3 patch (add assert.h to a lot of files) #28281.

  05 May 2003; Paul de Vrieze <pauldv@gentoo.org> pingus-0.6.0.ebuild:
  pingus does not configure well with the 0.7 release of clanlib

  27 Apr 2003; Paul de Vrieze <pauldv@gentoo.org> pingus-0.6.0.ebuild:
  Marked the ebuild testing as clanlib-0.6.5 is not yet stable. Also fixed the
  header.

  22 Apr 2003; Patrick Kursawe <phosphan@gentoo.org> ChangeLog,
  files/digest-pingus-0.6.0,  pingus-0.6.0.ebuild :
  Initial import. Based on an ebuild submitted by
  Stuart Bouyer <stuart_bouyer@ybb.ne.jp> after quite some discussion
  about bug #19454.
