# ChangeLog for dev-util/gtk-doc-am
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/gtk-doc-am/ChangeLog,v 1.32 2010/02/28 06:57:16 nirbheek Exp $

  28 Feb 2010; Nirbheek Chauhan <nirbheek@gentoo.org>
  gtk-doc-am-1.13.ebuild:
  Add app-text/docbook-xsl-stylesheets to DEPEND per bug 307025

  22 Feb 2010; Fabian Groffen <grobian@gentoo.org> gtk-doc-am-1.13.ebuild:
  Add patch from Daniel Vergien to fix misdetection of XML catalog in
  Prefix, bug #306149. Bumped to EAPI=3.

  16 Feb 2010; Gilles Dartiguelongue <eva@gentoo.org>
  gtk-doc-am-1.13.ebuild:
  Fix missing dependency, bug #305173.

*gtk-doc-am-1.13 (14 Feb 2010)

  14 Feb 2010; Gilles Dartiguelongue <eva@gentoo.org>
  +gtk-doc-am-1.13.ebuild:
  Version bump. Now provides gtkdoc-rebase, refs bug #262491.

  15 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  gtk-doc-am-1.11.ebuild:
  Transfer Prefix keywords

  26 Oct 2009; Raúl Porcel <armin76@gentoo.org> gtk-doc-am-1.11.ebuild:
  ia64/m68k/s390/sh/sparc stable wrt #285586

  08 Oct 2009; Markus Meier <maekke@gentoo.org> gtk-doc-am-1.11.ebuild:
  arm stable, bug #285586

  03 Oct 2009; Tobias Klausmann <klausman@gentoo.org>
  gtk-doc-am-1.11.ebuild:
  Stable on alpha, bug #285586

  30 Sep 2009; Jeroen Roovers <jer@gentoo.org> gtk-doc-am-1.11.ebuild:
  Stable for HPPA (bug #285586).

  27 Sep 2009; nixnut <nixnut@gentoo.org> gtk-doc-am-1.11.ebuild:
  ppc stable #285586

  25 Sep 2009; Brent Baude <ranger@gentoo.org> gtk-doc-am-1.11.ebuild:
  Marking gtk-doc-am-1.11 ppc64 stable for bug 285586

  22 Sep 2009; Markus Meier <maekke@gentoo.org> gtk-doc-am-1.11.ebuild:
  x86 stable, bug #285586

  19 Sep 2009; Olivier Crête <tester@gentoo.org> gtk-doc-am-1.11.ebuild:
  Stable on amd64, bug #285586

  10 May 2009; Gilles Dartiguelongue <eva@gentoo.org>
  gtk-doc-am-1.10-r1.ebuild:
  Fix SRC_URI, bug #269002.

*gtk-doc-am-1.11 (03 May 2009)

  03 May 2009; Mart Raudsepp <leio@gentoo.org> +gtk-doc-am-1.11.ebuild:
  New version shipping gtk-doc.m4 of gtk-doc-1.11

  28 Apr 2009; Raúl Porcel <armin76@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  m68k stable

  02 Jan 2009; Raúl Porcel <armin76@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  arm/s390/sh stable

  14 Aug 2008; Mart Raudsepp <leio@gentoo.org> -gtk-doc-am-1.10.ebuild:
  Remove old

  30 Jul 2008; Brent Baude <ranger@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  Marking gtk-doc-am-1.10-r1 ppc stable for bug 229709

  04 Jun 2008; Raúl Porcel <armin76@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  ia64 stable

  04 Jun 2008; Markus Rothe <corsair@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  Stable on ppc64; bug #224817

  04 Jun 2008; Jeroen Roovers <jer@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  Stable for HPPA (bug #224817).

  26 May 2008; Mart Raudsepp <leio@gentoo.org> gtk-doc-am-1.10.ebuild,
  gtk-doc-am-1.10-r1.ebuild:
  Fix the blocker atom to not be typoed, noticed by David Leverton

  25 May 2008; Markus Meier <maekke@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  amd64/x86 stable, bug #223297

  24 May 2008; nixnut <nixnut@gentoo.org> gtk-doc-am-1.10.ebuild:
  Stable on ppc wrt bug 223297

  23 May 2008; Tobias Klausmann <klausman@gentoo.org>
  gtk-doc-am-1.10-r1.ebuild:
  Stable on alpha, bug #223297

  23 May 2008; Ferris McCormick <fmccor@gentoo.org>
  gtk-doc-am-1.10-r1.ebuild:
  Sparc stable, required for Bug #223297.

  08 Apr 2008; Rémi Cardona <remi@gentoo.org> gtk-doc-am-1.10-r1.ebuild:
  add empty src_compile(), nothing needs to be built

*gtk-doc-am-1.10-r1 (08 Apr 2008)

  08 Apr 2008; Rémi Cardona <remi@gentoo.org> +gtk-doc-am-1.10-r1.ebuild:
  keep the original name for the m4 macro file (fixes bug #216634)

  24 Mar 2008; Daniel Gryniewicz <dang@gentoo.org> gtk-doc-am-1.10.ebuild:
  block gtk-doc-1.10 as well, since -r1 was the first to work with
  gtk-doc-am

*gtk-doc-am-1.10 (24 Mar 2008)

  24 Mar 2008; Daniel Gryniewicz <dang@gentoo.org> +gtk-doc-am-1.10.ebuild:
  Package to install just gtk-doc.m4, so that other packages needing it for
  eautreconf can dep on it

