# ChangeLog for x11-plugins/wmcpuload
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/x11-plugins/wmcpuload/ChangeLog,v 1.27 2008/06/27 20:16:09 armin76 Exp $

  27 Jun 2008; Raúl Porcel <armin76@gentoo.org>
  wmcpuload-1.1.0_pre5.ebuild:
  alpha/sparc/x86 stable wrt #229559

  27 Jun 2008; Brent Baude <ranger@gentoo.org> wmcpuload-1.1.0_pre5.ebuild:
  stable ppc64, bug 229559

  26 Jun 2008; nixnut <nixnut@gentoo.org> wmcpuload-1.1.0_pre5.ebuild:
  Stable on ppc wrt bug 229559

  26 Jun 2008; Thomas Anderson <gentoofan23@gentoo.org>
  wmcpuload-1.1.0_pre5.ebuild:
  stable amd64, bug 229559

*wmcpuload-1.1.0_pre5 (16 Jan 2008)

  16 Jan 2008; Samuli Suominen <drac@gentoo.org>
  +wmcpuload-1.1.0_pre5.ebuild:
  Version bump.

  22 Jul 2007; Donnie Berkholz <dberkholz@gentoo.org>;
  wmcpuload-1.0.1.ebuild:
  Drop virtual/x11 references.

  17 Jul 2006; Michele Noberasco <s4t4n@gentoo.org> wmcpuload-1.0.1.ebuild:
  Fixed HOMEPAGE and SRC_URI. Closes bug #140294.

  24 Jan 2006; Krzysiek Pawlik <nelchael@gentoo.org> wmcpuload-1.0.1.ebuild:
  Fixed DEPEND for modular X.

  10 Nov 2005; Michele Noberasco <s4t4n@gentoo.org> wmcpuload-1.0.1.ebuild:
  Removed INSTALL from dodoc.

  17 Sep 2005; Aron Griffis <agriffis@gentoo.org> wmcpuload-1.0.1.ebuild:
  Mark 1.0.1 stable on alpha

  05 Feb 2005; Bryan Østergaard <kloeri@gentoo.org> wmcpuload-1.0.1.ebuild:
  ~alpha keyword, bug 78658.

  04 Sep 2004; Michele Noberasco <s4t4n@gentoo.org> wmpcuload-1.0.0.ebuild:
  Remove older ebuild.

  02 Sep 2004; Tom Gall <tgall@gentoo.org> wmcpuload-1.0.1.ebuild:
  stable on ppc64, bug #62252

  13 Mar 2004; Stephen P. Becker <geoman@gentoo.org> wmcpuload-1.0.1.ebuild:
  Added ~mips keyword.

  05 Jan 2004; Jason Wever <weeve@gentoo.org> wmcpuload-1.0.0.ebuild,
  wmcpuload-1.0.1.ebuild:
  Marked 1.0.1 stable on sparc and adjusted the copyright dates in all.

  14 Dec 2003; Lars Weiler <pylon@gentoo.org> wmcpuload-1.0.1.ebuild:
  Make stable on ppc
  Thanks to Florian Daniel for the testing

  04 Nov 2003; Brandy Westcott brandy@gentoo.org wmcpuload-1.0.1.ebuild:
  Small fix to install docs.

  16 Oct 2003; Nick Hadaway <raker@gentoo.org> wmcpuload-1.0.1.ebuild:
  Marked stable for x86.

  12 Jun 2003; Seemant Kulleen <seemant@gentoo.org> wmcpuload-1.0.1.ebuild:
  xpm is provided by xfree

*wmcpuload-1.0.1 (19 May 2003)

  19 May 2003; Martin Holzer <mholzer@gentoo.org> wmcpuload-1.0.1.ebuild:
  Version bumped. Closes #21285.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*wmcpuload-1.0.0 (04 Oct 2002)

  29 Mar 2003; Seemant Kulleen <seemant@gentoo.org> wmcpuload-1.0.0.ebuild:
  HOMEPAGE fix by Frantz Dhin <tragedy_rm@hotmail.com> in bug #18299

  04 Oct 2002; Nick Hadaway <raker@gentoo.org> wmcpuload-1.0.0.ebuild,
  files/digest-wmcpuload-1.0.0 :
  Version bump.

*WMCPULoad-0.8.1 (1 Feb 2002)

  30 Aug 2002; Seemant Kulleen <seemant@gentoo.org> * :
  Relocated to x11-plugins, and renamed to wmcpuload from WMCPULoad

  1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
  Added initial ChangeLog which should be updated whenever the package is
  updated in any way. This changelog is targetted to users. This means that the
  comments should well explained and written in clean English. The details about
  writing correct changelogs are explained in the skel.ChangeLog file which you
  can find in the root directory of the portage repository.
