# ChangeLog for lxde-base/lxinput
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/lxde-base/lxinput/ChangeLog,v 1.6 2010/02/23 18:40:05 armin76 Exp $

  23 Feb 2010; Raúl Porcel <armin76@gentoo.org> lxinput-0.1.1.ebuild:
  arm stable wrt #306433

  24 Jan 2010; Raúl Porcel <armin76@gentoo.org> lxinput-0.1.1.ebuild:
  Add ~arm

  21 Nov 2009; nixnut <nixnut@gentoo.org> lxinput-0.1.1.ebuild:
  ppc stable #292698

  20 Nov 2009; Markus Meier <maekke@gentoo.org> lxinput-0.1.1.ebuild:
  amd64/x86 stable, bug #292698

  05 Aug 2009; Mounir Lamouri <volkmar@gentoo.org> lxinput-0.1.1.ebuild:
  Keywording for ppc. Bug 271148

*lxinput-0.1.1 (04 Aug 2009)

  04 Aug 2009; Ben de Groot <yngwin@gentoo.org> +lxinput-0.1.1.ebuild,
  +metadata.xml:
  Initial import.

