# ChangeLog for app-text/ps2pkm
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-text/ps2pkm/ChangeLog,v 1.46 2015/07/22 19:18:20 blueness Exp $

  22 Jul 2015; Anthony G. Basile <blueness@gentoo.org>
  ps2pkm-1.5_p20140525.ebuild:
  Stable for ppc, bug #550840.

*ps2pkm-1.7_p20150521 (15 Jul 2015)

  15 Jul 2015; Alexis Ballier <aballier@gentoo.org>
  +ps2pkm-1.7_p20150521.ebuild:
  bump to texlive 2015 version

  15 Jul 2015; Alexis Ballier <aballier@gentoo.org>
  ps2pkm-1.5_p20140525.ebuild:
  fix build with kpathsea from texlive 2015

  12 Jul 2015; Mikle Kolyada <zlogene@gentoo.org> ps2pkm-1.5_p20140525.ebuild:
  x86 stable wrt bug #550840

  12 Jul 2015; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20140525.ebuild:
  Stable for amd64, wrt bug #550840

*ps2pkm-1.5_p20140525 (02 Nov 2014)

  02 Nov 2014; Alexis Ballier <aballier@gentoo.org>
  +ps2pkm-1.5_p20140525.ebuild:
  bump to texlive 2014 version

  25 Jun 2013; Alexis Ballier <aballier@gentoo.org>
  -ps2pkm-1.5_p20110705.ebuild:
  remove old

*ps2pkm-1.5_p20130530 (25 Jun 2013)

  25 Jun 2013; Alexis Ballier <aballier@gentoo.org>
  +ps2pkm-1.5_p20130530.ebuild:
  version bump

  25 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for sh, wrt bug #449298

  22 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for s390, wrt bug #449298

  21 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for sparc, wrt bug #449298

  21 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for arm, wrt bug #449298

  20 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for alpha, wrt bug #449298

  19 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for ia64, wrt bug #449298

  18 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for ppc64, wrt bug #449298

  18 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for ppc, wrt bug #449298

  18 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for x86, wrt bug #449298

  18 Apr 2013; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for amd64, wrt bug #449298

  17 Apr 2013; Jeroen Roovers <jer@gentoo.org> ps2pkm-1.5_p20120701.ebuild:
  Stable for HPPA (bug #449298).

*ps2pkm-1.5_p20120701 (26 Jul 2012)

  26 Jul 2012; Alexis Ballier <aballier@gentoo.org>
  +ps2pkm-1.5_p20120701.ebuild:
  Bump to TeX Live 2012 version.

  09 May 2012; Alexis Ballier <aballier@gentoo.org>
  ps2pkm-1.5_p20110705.ebuild:
  keyword ~amd64-fbsd

  09 May 2012; Alexis Ballier <aballier@gentoo.org>
  -ps2pkm-1.5_p20100722.ebuild:
  remove old

  06 May 2012; Raúl Porcel <armin76@gentoo.org> ps2pkm-1.5_p20110705.ebuild:
  ia64/s390/sh/sparc stable wrt #395735

  04 Mar 2012; Tobias Klausmann <klausman@gentoo.org>
  ps2pkm-1.5_p20110705.ebuild:
  Stable on alpha, bug #395735

  03 Mar 2012; Brent Baude <ranger@gentoo.org> ps2pkm-1.5_p20110705.ebuild:
  Marking ps2pkm-1.5_p20110705 ppc64 stable for bug 395735

  02 Mar 2012; Brent Baude <ranger@gentoo.org> ps2pkm-1.5_p20110705.ebuild:
  Marking ps2pkm-1.5_p20110705 ppc stable for bug 395735

  29 Jan 2012; Markus Meier <maekke@gentoo.org> ps2pkm-1.5_p20110705.ebuild:
  arm stable, bug #395735

  17 Jan 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  ps2pkm-1.5_p20110705.ebuild:
  x86 stable wrt bug #395735

  16 Jan 2012; Agostino Sarubbo <ago@gentoo.org> ps2pkm-1.5_p20110705.ebuild:
  Stable for amd64, wrt bug #395735

  28 Dec 2011; Jeroen Roovers <jer@gentoo.org> ps2pkm-1.5_p20110705.ebuild:
  Stable for HPPA (bug #395735).

  04 Oct 2011; Jeroen Roovers <jer@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  Stable for HPPA (bug #355085).

  18 Sep 2011; Raúl Porcel <armin76@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  alpha/ia64/s390/sh/sparc stable wrt #355085

  14 Aug 2011; Markus Meier <maekke@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  arm stable, bug #355085

  12 Aug 2011; Kacper Kowalik <xarthisius@gentoo.org>
  ps2pkm-1.5_p20100722.ebuild:
  ppc/ppc64 stable wrt #355085

  12 Aug 2011; Thomas Kahle <tomka@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  x86 stable per bug 355085

  09 Aug 2011; Markos Chandras <hwoarang@gentoo.org>
  ps2pkm-1.5_p20100722.ebuild:
  Stable on amd64 wrt bug #355085

*ps2pkm-1.5_p20110705 (27 Jul 2011)

  27 Jul 2011; Alexis Ballier <aballier@gentoo.org>
  +ps2pkm-1.5_p20110705.ebuild:
  bump to the TeX Live 2011 version

  07 Jul 2011; Alexis Ballier <aballier@gentoo.org>
  ps2pkm-1.5_p20100722.ebuild:
  keyword ~x86-fbsd

  13 Jun 2011; Matt Turner <mattst88@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  Added ~mips, bug 342513

  27 Feb 2011; Raúl Porcel <armin76@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  Add ~alpha/~ia64/~s390/~sh/~sparc wrt #342513

  20 Feb 2011; Kacper Kowalik <xarthisius@gentoo.org>
  ps2pkm-1.5_p20100722.ebuild:
  Marked ~ppc/~ppc64 wrt #342513

  01 Dec 2010; Fabian Groffen <grobian@gentoo.org>
  ps2pkm-1.5_p20100722.ebuild:
  Add Prefix keywords

  01 Nov 2010; Markus Meier <maekke@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  add ~arm, bug #342513

  25 Oct 2010; Christian Faulhammer <fauli@gentoo.org>
  ps2pkm-1.5_p20100722.ebuild:
  add ~x86, bug 342513

  25 Oct 2010; Jeroen Roovers <jer@gentoo.org> ps2pkm-1.5_p20100722.ebuild:
  Marked ~hppa (bug #342513).

*ps2pkm-1.5_p20100722 (24 Oct 2010)

  24 Oct 2010; Alexis Ballier <aballier@gentoo.org>
  +ps2pkm-1.5_p20100722.ebuild, +metadata.xml:
  Initial import. Ebuild by me, split out of texlive-core for TeX Live 2010
