# ChangeLog for dev-texlive/texlive-documentation-base
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-texlive/texlive-documentation-base/ChangeLog,v 1.31 2010/01/15 10:21:41 grobian Exp $

  15 Jan 2010; Fabian Groffen <grobian@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Also keyword the well-tested texlive-2008

  15 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  texlive-documentation-base-2009.ebuild:
  Transfer Prefix keywords

*texlive-documentation-base-2009 (11 Jan 2010)

  11 Jan 2010; Alexis Ballier <aballier@gentoo.org>
  +texlive-documentation-base-2009.ebuild:
  Bump to TeX Live 2009

  18 Jun 2009; Alexis Ballier <aballier@gentoo.org>
  -texlive-documentation-base-2007.ebuild:
  remove old

  10 Jun 2009; Alexey Shvetsov <alexxy@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Add ~mips love

  18 Mar 2009; Brent Baude <ranger@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Marking texlive-documentation-base-2008 ppc stable for bug 253551

  18 Mar 2009; Raúl Porcel <armin76@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  alpha/arm/ia64/s390/sh stable wrt #253551

  13 Mar 2009; Brent Baude <ranger@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Marking texlive-documentation-base-2008 ppc64 stable for bug 235551

  11 Mar 2009; Markus Meier <maekke@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  amd64 stable, bug #253551

  10 Mar 2009; Raúl Porcel <armin76@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Add ~arm/~s390/~sh

  07 Mar 2009; Christian Faulhammer <fauli@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  x86 stable, bug 253551

  06 Mar 2009; Jeroen Roovers <jer@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Stable for HPPA (bug #253551).

  27 Feb 2009; Ferris McCormick <fmccor@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Sparc stable, part of Bug #253551.

  31 Oct 2008; Alexis Ballier <aballier@gentoo.org>
  texlive-documentation-base-2008.ebuild:
  Use stricter deps for texlive 2008 to require the 2008 version of a
  package, get rid of TEXLIVE_MODULES_DEPS and use standard DEPEND/RDEPEND
  fields

  09 Sep 2008; Alexis Ballier <aballier@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Add empty IUSE to please repoman

*texlive-documentation-base-2008 (09 Sep 2008)

  09 Sep 2008; Alexis Ballier <aballier@gentoo.org> metadata.xml,
  +texlive-documentation-base-2008.ebuild:
  Bump to 2008

  12 May 2008; nixnut <nixnut@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Stable on ppc wrt bug 220651

  16 Apr 2008; Peter Volkov <pva@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  amd64 stable, bug #215735.

  08 Apr 2008; Raúl Porcel <armin76@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  alpha/ia64/sparc stable wrt #215735

  08 Apr 2008; Jeroen Roovers <jer@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Stable for HPPA (bug #215735).

  06 Apr 2008; Markus Rothe <corsair@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Added ~ppc; bug #195815

  06 Apr 2008; Markus Rothe <corsair@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Stable on ppc64; bug #215735

  01 Apr 2008; Christian Faulhammer <opfer@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  stable x86, bug 215735

  10 Feb 2008; Alexis Ballier <aballier@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  keyword ~x86-fbsd

  18 Dec 2007; Jeroen Roovers <jer@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Marked ~hppa (bug #195815).

  26 Oct 2007; Ferris McCormick <fmccor@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Add ~amd64 keyword --- Bug #195815

  25 Oct 2007; Markus Rothe <corsair@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Added ~ppc64; bug #195815

  25 Oct 2007; Raúl Porcel <armin76@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Add ~alpha/~ia64 wrt bug #195815

  25 Oct 2007; Ferris McCormick <fmccor@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  Add ~sparc keyword --- Bug #195815

  25 Oct 2007; Christian Faulhammer <opfer@gentoo.org>
  texlive-documentation-base-2007.ebuild:
  keyworded ~x86, bug 195815

*texlive-documentation-base-2007 (14 Oct 2007)

  14 Oct 2007; Alexis Ballier <aballier@gentoo.org> +metadata.xml,
  +texlive-documentation-base-2007.ebuild:
  initial import

