# ChangeLog for x11-plugins/wmacpimon
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/x11-plugins/wmacpimon/ChangeLog,v 1.10 2014/08/10 20:03:59 slyfox Exp $

  10 Aug 2014; Sergei Trofimovich <slyfox@gentoo.org> wmacpimon-0.2.1.ebuild:
  QA: drop trailing '.' from DESCRIPTION

  06 Sep 2010; Michele Noberasco <s4t4n@gentoo.org>; wmacpimon-0.2.1.ebuild, files/Makefile.patch:
  Reworked Makefile patch, simplified ebuild. Closes bug #336091.

  02 Dec 2008; Michele Noberasco <s4t4n@gentoo.org>; wmacpimon-0.2.1.ebuild, files/Makefile.patch:
  Fixed LDFLAGS ordering. See bug #248618.

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

  28 Apr 2007; Sven Wegener <swegener@gentoo.org> wmacpimon-0.2.1.ebuild:
  Fix *initd, *confd and *envd calls (#173884, #174266)

  06 Feb 2007; Diego Pettenò <flameeyes@gentoo.org> ChangeLog:
  Regenerate digest in Manifest2 format.

  22 Jan 2006; Krzysiek Pawlik <nelchael@gentoo.org> wmacpimon-0.2.1.ebuild:
  Fixed DEPEND for modular X.

  07 Nov 2005; Michele Noberasco <s4t4n@gentoo.org> wmacpimon-0.2.1.ebuild:
  Wiped out INSTALL from dodoc.

*wmacpimon-0.2.1 (08 Jul 2004)

  13 Jul 2004; Michele Noberasco <s4t4n@gentoo.org> wmacpimon-0.2.1.ebuild:
  Stable for x86.

  08 Jul 2004; Michele Noberasco <s4t4n@gentoo.org> wmacpimon-0.2.1.ebuild:
  Initial import.
