# ChangeLog for dev-util/splint
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/splint/ChangeLog,v 1.25 2008/02/27 11:11:01 coldwind Exp $

  27 Feb 2008; Santiago M. Mola <coldwind@gentoo.org> splint-3.1.2.ebuild:
  amd64 stable wrt bug #210010

  24 Feb 2008; Jeroen Roovers <jer@gentoo.org> -splint-3.0.1.6.ebuild,
  -splint-3.1.1.ebuild:
  Remove old versions.

  24 Feb 2008; Jeroen Roovers <jer@gentoo.org> metadata.xml:
  Pick up maintainership.

  24 Feb 2008; Jeroen Roovers <jer@gentoo.org> splint-3.1.2.ebuild:
  Stable for HPPA (bug #210010).

  24 Feb 2008; Raúl Porcel <armin76@gentoo.org> splint-3.1.2.ebuild:
  sparc stable wrt #210010

  24 Feb 2008; Christian Faulhammer <opfer@gentoo.org> splint-3.1.2.ebuild:
  stable x86, bug 210010

  23 Feb 2008; Brent Baude <ranger@gentoo.org> splint-3.1.2.ebuild:
  stable ppc, bug 210010

  23 Feb 2008; Brent Baude <ranger@gentoo.org> splint-3.1.2.ebuild:
  stable ppc64, bug 210010

  27 Jan 2008; Fabian Groffen <grobian@gentoo.org> splint-3.1.1.ebuild,
  splint-3.1.2.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  25 Dec 2007; Jeroen Roovers <jer@gentoo.org> splint-3.1.2.ebuild:
  Marked ~hppa too.

  23 Dec 2007; Ferris McCormick <fmccor@gentoo.org> splint-3.1.2.ebuild:
  ~sparc added, thanks to Tiago Cunha, all tests good.

*splint-3.1.2 (25 Oct 2007)

  25 Oct 2007; Charlie Shepherd <masterdriverz@gentoo.org>
  +splint-3.1.2.ebuild:
  Bump to version 3.1.2; Bug 185269. Thanks to Alon Bar-Lev and Mark Glines.

  14 May 2007; Thilo Bangert <bangert@gentoo.org> metadata.xml:
  add <herd>no-herd</herd>

  22 Feb 2007; Piotr Jaroszyński <peper@gentoo.org> ChangeLog:
  Transition to Manifest2.

  25 Nov 2006; Charlie Shepherd <masterdriverz@gentoo.org> metadata.xml:
  Change maintainer...

  21 May 2006; Markus Rothe <corsair@gentoo.org> splint-3.1.1.ebuild:
  Stable on ppc64

  23 Dec 2005; Markus Rothe <corsair@gentoo.org> splint-3.1.1.ebuild:
  Added ~ppc64

  30 Sep 2004; Hasan Khalil <gongloo@gentoo.org> splint-3.1.1.ebuild:
  Keyworded ~ppc-macos, bug 65446.

  01 Feb 2004; Jon Portnoy <avenj@gentoo.org> splint-3.1.1.ebuild :
  AMD64 keywords.

  16 Dec 2003; Heinrich Wendel <lanius@gentoo.org> splint-3.1.1.ebuild:
  stable bump

  07 Dec 2003; David Holm <dholm@gentoo.org> splint-3.1.1.ebuild:
  Added to ~ppc.

*splint-3.1.1 (05 Sep 2003)

  05 Sep 2003; <solar@gentoo.org> splint-3.1.1.ebuild:
  version bump 3.0.1.6 -> 3.1.1

  07 Jun 2003; <rac@gentoo.org> splint-3.0.1.6.ebuild:
  Add IUSE

*splint-3.0.1.6 (08 May 2003)

  08 May 2003; <rac@gentoo.org> splint-3.0.1.6.ebuild:
  initial import. based on ebuild submitted by Matt Hartley
  <matthartley@yahoo.com> in bug 14410.

