# ChangeLog for dev-python/sphinx
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/sphinx/ChangeLog,v 1.192 2015/05/10 09:23:39 jer Exp $

  10 May 2015; Jeroen Roovers <jer@gentoo.org> sphinx-1.3.1.ebuild:
  Mark ~ppc64 (bug #543742).

  19 Apr 2015; Ian Delaney <idella4@gentoo.org> sphinx-1.3.1.ebuild:
  rm un-needed dep for tests, noted by Arfrever

  19 Apr 2015; Mike Gilbert <floppym@gentoo.org> sphinx-1.3.1.ebuild:
  Update dependnecy on pygments, bug 546280.

*sphinx-1.3.1 (08 Apr 2015)

  08 Apr 2015; Ian Delaney <idella4@gentoo.org> +sphinx-1.3.1.ebuild,
  -sphinx-1.3-r1.ebuild, -sphinx-1.3.ebuild:
  bump; rm prior version

*sphinx-1.3-r1 (02 Apr 2015)

  02 Apr 2015; Ian Delaney <idella4@gentoo.org> +sphinx-1.3-r1.ebuild:
  revbump; correction to deps noted by Arfrever

  28 Mar 2015; Markus Meier <maekke@gentoo.org> sphinx-1.3.ebuild:
  add ~arm, bug #543742

  21 Mar 2015; Jeroen Roovers <jer@gentoo.org> sphinx-1.3.ebuild:
  Marked ~hppa (bug #543742).

*sphinx-1.3 (19 Mar 2015)

  19 Mar 2015; Patrick Lauer <patrick@gentoo.org> +sphinx-1.3.ebuild:
  Bump, new test deps, temporarily dropped keywords alpha arm hppa ia64
  ppc ppc64 until dependencies catch up

  02 Mar 2015; Yixun Lan <dlan@gentoo.org> sphinx-1.2.3.ebuild:
  add arm64 support, tested on A53 board

  03 Dec 2014; Mike Gilbert <floppym@gentoo.org> sphinx-1.2.2.ebuild,
  sphinx-1.2.3.ebuild:
  Fix build failure when DISTUTILS_NO_PARALLEL_BUILD=1, bug 531534.

  01 Dec 2014; Agostino Sarubbo <ago@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for sparc, wrt bug #524416

*sphinx-1.1.3-r7 (23 Nov 2014)

  23 Nov 2014; Mike Gilbert <floppym@gentoo.org> +sphinx-1.1.3-r7.ebuild:
  Restore stable ebuild for sparc.

  23 Nov 2014; Mike Gilbert <floppym@gentoo.org> -sphinx-1.1.3-r7.ebuild,
  -sphinx-1.2.1.ebuild:
  Remove old.

  23 Nov 2014; Mike Gilbert <floppym@gentoo.org> sphinx-1.1.3-r7.ebuild,
  sphinx-1.2.1.ebuild, sphinx-1.2.2.ebuild, sphinx-1.2.3.ebuild:
  Cleanup python_gen_usedep usage.

  20 Nov 2014; Ian Delaney <idella4@gentoo.org> sphinx-1.2.3.ebuild:
  Add pypy3 support

  11 Nov 2014; Agostino Sarubbo <ago@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for ia64, wrt bug #524416

  02 Nov 2014; Agostino Sarubbo <ago@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for alpha, wrt bug #524416

  31 Oct 2014; Agostino Sarubbo <ago@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for ppc64, wrt bug #524416

  19 Oct 2014; Ian Delaney <idella4@gentoo.org> sphinx-1.2.3.ebuild:
  tidy

  18 Oct 2014; Agostino Sarubbo <ago@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for x86, wrt bug #524416

  18 Oct 2014; Agostino Sarubbo <ago@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for ppc, wrt bug #524416

  16 Oct 2014; Markus Meier <maekke@gentoo.org> sphinx-1.2.2.ebuild:
  arm stable, bug #524416

*sphinx-1.2.3 (16 Oct 2014)

  16 Oct 2014; Ian Delaney <idella4@gentoo.org> +sphinx-1.2.3.ebuild,
  sphinx-1.2.2.ebuild:
  bump; tidy to deps

  09 Oct 2014; Agostino Sarubbo <ago@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for amd64, wrt bug #524416

  04 Oct 2014; Jeroen Roovers <jer@gentoo.org> sphinx-1.2.2.ebuild:
  Stable for HPPA (bug #524416).

  22 Jul 2014; Ian Delaney <idella4@gentoo.org> sphinx-1.2.2.ebuild:
  drop py2.6 pypy2_0

  07 May 2014; Mike Gilbert <floppym@gentoo.org> sphinx-1.2.2.ebuild:
  Update python_gen_usedep for dev-python/jinja, bug 509780 by Helmut Jarausch.

  01 Apr 2014; Mike Gilbert <floppym@gentoo.org> sphinx-1.2.2.ebuild:
  Add python3.4.

  31 Mar 2014; Michał Górny <mgorny@gentoo.org> sphinx-1.1.3-r7.ebuild,
  sphinx-1.2.1.ebuild, sphinx-1.2.2.ebuild:
  Add support for the new PyPy slotting.

  13 Mar 2014; Andrey Grozin <grozin@gentoo.org> sphinx-1.2.2.ebuild:
  Fix for #498960 by ero-sennin <ag+services@sologoc.com>

  03 Mar 2014; Tim Harder <radhermit@gentoo.org> -sphinx-1.1.3-r3.ebuild,
  -sphinx-1.1.3-r5.ebuild, -sphinx-1.1.3-r6.ebuild, -sphinx-1.2.ebuild:
  Remove old.

*sphinx-1.2.2 (03 Mar 2014)

  03 Mar 2014; Tim Harder <radhermit@gentoo.org> +sphinx-1.2.2.ebuild:
  Version bump.

*sphinx-1.2.1 (22 Jan 2014)

  22 Jan 2014; Justin Lecher <jlec@gentoo.org> sphinx-1.2.ebuild,
  +sphinx-1.2.1.ebuild:
  Version Bump

*sphinx-1.2 (12 Dec 2013)

  12 Dec 2013; Justin Lecher <jlec@gentoo.org> -sphinx-1.2_pre20130530.ebuild,
  +sphinx-1.2.ebuild, metadata.xml:
  Version Bump

  05 Sep 2013; Michał Górny <mgorny@gentoo.org> sphinx-1.1.3-r5.ebuild,
  sphinx-1.1.3-r6.ebuild, sphinx-1.1.3-r7.ebuild, sphinx-1.2_pre20130530.ebuild:
  Clean up PYTHON_COMPAT from old implementations.

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for ppc64, wrt bug #481804

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for sparc, wrt bug #481804

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for sparc, wrt bug #477970

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for sh, wrt bug #481804

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for sh, wrt bug #477970

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for s390, wrt bug #481804

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for s390, wrt bug #477970

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for ia64, wrt bug #481804

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for ia64, wrt bug #477970

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for alpha, wrt bug #477970

  02 Sep 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for alpha, wrt bug #481804

  26 Aug 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for ppc, wrt bug #481804

  24 Aug 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for arm, wrt bug #481804

  23 Aug 2013; Jeroen Roovers <jer@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for HPPA (bug #481804).

  23 Aug 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for x86, wrt bug #481804

  23 Aug 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r7.ebuild:
  Stable for amd64, wrt bug #481804

  15 Aug 2013; Jeroen Roovers <jer@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for HPPA (bug #477970).

  10 Aug 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for arm, wrt bug #477970

  04 Aug 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for ppc64, wrt bug #477970

  28 Jul 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for ppc, wrt bug #477970

*sphinx-1.2_pre20130530 (01 Jun 2013)

  01 Jun 2013; Kacper Kowalik <xarthisius@gentoo.org>
  +sphinx-1.2_pre20130530.ebuild:
  Add snapshot of upstream repository masked by keywords

*sphinx-1.1.3-r7 (23 May 2013)

  23 May 2013; Mike Gilbert <floppym@gentoo.org> +sphinx-1.1.3-r7.ebuild:
  Split the dev-python/jinja dependency in two to allow different slots to
  satisfy it.

  15 Feb 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for x86, wrt bug #457156

  15 Feb 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Stable for amd64, wrt bug #457156

  07 Feb 2013; Michał Górny <mgorny@gentoo.org> sphinx-1.1.3-r6.ebuild:
  Create missing directories when trying to backup pickles. Fixes bug #455910.

  06 Feb 2013; Mike Gilbert <floppym@gentoo.org> -sphinx-1.0.7.ebuild,
  -sphinx-1.1.2.ebuild, -sphinx-1.1.3-r1.ebuild, -sphinx-1.1.3-r2.ebuild,
  -sphinx-1.1.3.ebuild:
  Remove old.

*sphinx-1.1.3-r6 (06 Feb 2013)

  06 Feb 2013; Mike Gilbert <floppym@gentoo.org>
  +files/sphinx-1.1.3-docutils-manpage.patch, +sphinx-1.1.3-r6.ebuild:
  Add patch to fix manpage writer with docutils-0.10. Bug 455750.

  03 Feb 2013; Michał Górny <mgorny@gentoo.org> sphinx-1.1.3-r5.ebuild:
  Fix installing "tests" package. Move test conversion to python_test() phase.

  02 Feb 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r5.ebuild:
  Stable for x86, wrt bug #454314

  02 Feb 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r5.ebuild:
  Stable for amd64, wrt bug #454314

  19 Jan 2013; Michał Górny <mgorny@gentoo.org> sphinx-1.1.3-r5.ebuild:
  Enable pypy2.0 for deps.

  18 Jan 2013; Michał Górny <mgorny@gentoo.org> sphinx-1.1.3-r5.ebuild:
  Enable python3.3. Properly die on test failure.

  15 Jan 2013; Michał Górny <mgorny@gentoo.org> sphinx-1.1.3-r5.ebuild:
  Improve grammar. Thanks to radhermit.

*sphinx-1.1.3-r5 (15 Jan 2013)

  15 Jan 2013; Michał Górny <mgorny@gentoo.org> +sphinx-1.1.3-r5.ebuild,
  -sphinx-1.1.3-r4.ebuild:
  Make sure to always generate and install Grammar pickles. Work-around the
  older ebuild's postrm() removing it.

*sphinx-1.1.3-r4 (14 Jan 2013)

  14 Jan 2013; Michał Górny <mgorny@gentoo.org> +sphinx-1.1.3-r4.ebuild:
  Migrate to distutils-r1.

  04 Jan 2013; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r3.ebuild:
  Stable for ppc64, wrt bug #449424

  04 Jan 2013; Ian Delaney <idella4@gentoo.org> sphinx-1.1.3-r3.ebuild:
  py3.3 excluded from PYTHON_DEPEND, fixes Bug 447676 reported by jlec

  01 Jan 2013; Raúl Porcel <armin76@gentoo.org> sphinx-1.1.3-r3.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #449424

  31 Dec 2012; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r3.ebuild:
  Stable for ppc, wrt bug #449424

  31 Dec 2012; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r3.ebuild:
  Stable for x86, wrt bug #449424

  31 Dec 2012; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.3-r3.ebuild:
  Stable for amd64, wrt bug #449424

  31 Dec 2012; Jeroen Roovers <jer@gentoo.org> sphinx-1.1.3-r3.ebuild:
  Stable for HPPA (bug #449424).

  18 Oct 2012; Mike Gilbert <floppym@gentoo.org> sphinx-1.1.3-r3.ebuild:
  Don't depend on python2.

  28 May 2012; Raúl Porcel <armin76@gentoo.org> sphinx-1.1.2.ebuild:
  alpha/ia64/s390/sh/sparc stable wrt #410115

  09 May 2012; Alexis Ballier <aballier@gentoo.org> sphinx-1.1.3-r3.ebuild:
  keyword ~amd64-fbsd

*sphinx-1.1.3-r3 (06 May 2012)

  06 May 2012; Kacper Kowalik <xarthisius@gentoo.org>
  +files/sphinx-1.1.3-python3.patch, +sphinx-1.1.3-r3.ebuild:
  Backport upstream patch with python3 fixes

  01 May 2012; Kacper Kowalik <xarthisius@gentoo.org> sphinx-1.1.3-r2.ebuild:
  Add dependency on app-text/dvipng required for rendering math expressions

  17 Apr 2012; Brent Baude <ranger@gentoo.org> sphinx-1.1.2.ebuild:
  Marking sphinx-1.1.2 ppc64 for bug 410115

  17 Apr 2012; Brent Baude <ranger@gentoo.org> sphinx-1.1.2.ebuild:
  Marking sphinx-1.1.2 ppc for bug 410115

  06 Apr 2012; Markus Meier <maekke@gentoo.org> sphinx-1.1.2.ebuild:
  arm stable, bug #410115

  04 Apr 2012; Jeff Horelick <jdhore@gentoo.org> sphinx-1.1.2.ebuild:
  marked x86 per bug 410115

  03 Apr 2012; Jeroen Roovers <jer@gentoo.org> sphinx-1.1.2.ebuild:
  Stable for HPPA (bug #410115).

  03 Apr 2012; Mike Gilbert <floppym@gentoo.org> sphinx-1.1.3-r2.ebuild:
  Fix generation of docs with python 3. Solution copied from Progress overlay.

*sphinx-1.1.3-r2 (02 Apr 2012)

  02 Apr 2012; Mike Gilbert <floppym@gentoo.org> +sphinx-1.1.3-r2.ebuild:
  Unrestrict python 3 and make the tests work.

*sphinx-1.1.3-r1 (31 Mar 2012)

  31 Mar 2012; Mike Gilbert <floppym@gentoo.org> +sphinx-1.1.3-r1.ebuild:
  Make sphinx-build wrapper respect EPYTHON. Ported from Progress.

  29 Mar 2012; Agostino Sarubbo <ago@gentoo.org> sphinx-1.1.2.ebuild:
  Stable for amd64, wrt bug #410115

*sphinx-1.1.3 (29 Mar 2012)

  29 Mar 2012; Dirkjan Ochtman <djc@gentoo.org> +sphinx-1.1.3.ebuild:
  Version bump to 1.1.3.

  29 Mar 2012; Dirkjan Ochtman <djc@gentoo.org> -sphinx-0.6.7.ebuild,
  -sphinx-1.1.ebuild:
  Remove old versions.

  10 Mar 2012; Justin Lecher <jlec@gentoo.org> sphinx-0.6.7.ebuild,
  sphinx-1.0.7.ebuild, sphinx-1.1.ebuild, sphinx-1.1.2.ebuild, metadata.xml:
  Remove restriction for pypy as jinja is fixed now

  10 Mar 2012; Justin Lecher <jlec@gentoo.org> sphinx-0.6.7.ebuild,
  sphinx-1.0.7.ebuild, sphinx-1.1.ebuild, sphinx-1.1.2.ebuild:
  Restrict pypy as dev-python/jinja doesn't support it

  20 Feb 2012; Patrick Lauer <patrick@gentoo.org> sphinx-0.6.7.ebuild,
  sphinx-1.0.7.ebuild, sphinx-1.1.2.ebuild, sphinx-1.1.ebuild:
  Fixing SRC_URI for pypi

*sphinx-1.1.2 (16 Dec 2011)

  16 Dec 2011; Patrick Lauer <patrick@gentoo.org> +sphinx-1.1.2.ebuild:
  Bump for #394895

  04 Nov 2011; Markos Chandras <hwoarang@gentoo.org> sphinx-1.0.7.ebuild,
  sphinx-1.1.ebuild:
  Fix dependencies. Simplify ebuilds. Patch by Arfrever.

*sphinx-1.1 (10 Oct 2011)

  10 Oct 2011; Dirkjan Ochtman <djc@gentoo.org> +sphinx-1.1.ebuild:
  Version bump to 1.1.

  04 Apr 2011; Dirkjan Ochtman <djc@gentoo.org> -sphinx-1.0.4.ebuild,
  -sphinx-1.0.5.ebuild, -sphinx-1.0.6.ebuild:
  Remove old versions.

  23 Mar 2011; Kacper Kowalik <xarthisius@gentoo.org> sphinx-1.0.7.ebuild:
  ppc64 stable wrt #355275

  27 Feb 2011; Brent Baude <ranger@gentoo.org> sphinx-1.0.7.ebuild:
  stable ppc, bug 355275

  26 Feb 2011; Raúl Porcel <armin76@gentoo.org> sphinx-1.0.7.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #355275

  21 Feb 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org> sphinx-1.0.7.ebuild:
  x86 stable wrt bug #355275

  21 Feb 2011; Jeroen Roovers <jer@gentoo.org> sphinx-1.0.7.ebuild:
  Stable for HPPA (bug #355275).

  17 Feb 2011; Markos Chandras <hwoarang@gentoo.org> sphinx-1.0.7.ebuild:
  Stable on amd64 wrt bug #355275

  21 Jan 2011; Jeroen Roovers <jer@gentoo.org> sphinx-1.0.5.ebuild:
  Stable for HPPA (bug #349138).

*sphinx-1.0.7 (15 Jan 2011)

  15 Jan 2011; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  +sphinx-1.0.7.ebuild:
  Version bump.

  07 Jan 2011; Brent Baude <ranger@gentoo.org> sphinx-1.0.5.ebuild:
  Marking sphinx-1.0.5 ppc for bug 349138

*sphinx-1.0.6 (06 Jan 2011)

  06 Jan 2011; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  +sphinx-1.0.6.ebuild:
  Version bump. Improved Grammar pickle filename (bug #266015).

  06 Jan 2011; Raúl Porcel <armin76@gentoo.org> sphinx-1.0.5.ebuild:
  alpha/ia64/s390/sh/sparc stable wrt #349138

  27 Dec 2010; Brent Baude <ranger@gentoo.org> sphinx-1.0.5.ebuild:
  Marking sphinx-1.0.5 ppc64 for bug 349138

  27 Dec 2010; Markus Meier <maekke@gentoo.org> sphinx-1.0.5.ebuild:
  arm stable, bug #349138

  20 Dec 2010; Markos Chandras <hwoarang@gentoo.org> sphinx-1.0.5.ebuild:
  Stable on amd64 wrt bug #349138

  20 Dec 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> sphinx-1.0.5.ebuild:
  x86 stable wrt bug #349138

*sphinx-1.0.5 (15 Nov 2010)

  15 Nov 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  -sphinx-0.6.5.ebuild, -sphinx-0.6.6.ebuild, -sphinx-1.0.ebuild,
  -sphinx-1.0.1.ebuild, -sphinx-1.0.3.ebuild, +sphinx-1.0.5.ebuild:
  Version bump.

  24 Oct 2010; Raúl Porcel <armin76@gentoo.org> sphinx-1.0.4.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #341513

  22 Oct 2010; Christian Faulhammer <fauli@gentoo.org> sphinx-1.0.4.ebuild:
  stable x86, bug 341513

  22 Oct 2010; Jeroen Roovers <jer@gentoo.org> sphinx-1.0.4.ebuild:
  Stable for HPPA (bug #341513).

  20 Oct 2010; Brent Baude <ranger@gentoo.org> sphinx-1.0.4.ebuild:
  stable ppc, bug 341513

  18 Oct 2010; Markos Chandras <hwoarang@gentoo.org> sphinx-1.0.4.ebuild:
  Stable on amd64 wrt bug #341513

  09 Oct 2010; Raúl Porcel <armin76@gentoo.org> sphinx-1.0.3.ebuild:
  alpha/ia64/s390/sh/sparc stable wrt #335491

  08 Oct 2010; Mart Raudsepp <leio@gentoo.org> sphinx-1.0.4.ebuild:
  Marked ~mips for bug #233554

  28 Sep 2010; Brent Baude <ranger@gentoo.org> sphinx-1.0.3.ebuild:
  stable ppc, bug 335491

  25 Sep 2010; Markus Meier <maekke@gentoo.org> sphinx-1.0.3.ebuild:
  amd64/arm/x86 stable, bug #335491

*sphinx-1.0.4 (17 Sep 2010)

  17 Sep 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  +sphinx-1.0.4.ebuild:
  Version bump.

*sphinx-1.0.3 (23 Aug 2010)

  23 Aug 2010; Dirkjan Ochtman <djc@gentoo.org> +sphinx-1.0.3.ebuild:
  Version bump to 1.0.3.

  29 Jul 2010; Samuli Suominen <ssuominen@gentoo.org> sphinx-0.6.7.ebuild:
  ppc64 stable wrt #327145

*sphinx-1.0.1 (27 Jul 2010)

  27 Jul 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  +sphinx-1.0.1.ebuild:
  Version bump.

*sphinx-1.0 (23 Jul 2010)

  23 Jul 2010; Dirkjan Ochtman <djc@gentoo.org> -sphinx-1.0_beta2.ebuild,
  +sphinx-1.0.ebuild:
  Version bump to the 1.0 final.

  19 Jul 2010; Jeroen Roovers <jer@gentoo.org> sphinx-0.6.7.ebuild:
  Stable for HPPA (bug #327145).

  11 Jul 2010; Raúl Porcel <armin76@gentoo.org> sphinx-0.6.7.ebuild:
  alpha/arm/ia64/s390/sh/sparc/x86 stable wrt #327145

  06 Jul 2010; Markos Chandras <hwoarang@gentoo.org> sphinx-0.6.7.ebuild:
  Stable on amd64 wrt bug #327145

*sphinx-0.6.7 (05 Jun 2010)

  05 Jun 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  +sphinx-0.6.7.ebuild:
  Version bump.

*sphinx-1.0_beta2 (31 May 2010)

  31 May 2010; Dirkjan Ochtman <djc@gentoo.org> -sphinx-1.0_beta1.ebuild,
  +sphinx-1.0_beta2.ebuild:
  Bumped the Sphinx 1.0 beta version.

*sphinx-1.0_beta1 (25 May 2010)

  25 May 2010; Dirkjan Ochtman <djc@gentoo.org> +sphinx-1.0_beta1.ebuild:
  Add no-keyword 1.0_beta1.

*sphinx-0.6.6 (25 May 2010)

  25 May 2010; Dirkjan Ochtman <djc@gentoo.org> +sphinx-0.6.6.ebuild:
  Version bump to 0.6.6.

  11 May 2010; Brent Baude <ranger@gentoo.org> sphinx-0.6.5.ebuild:
  stable ppc64, bug 313147

  08 May 2010; Raúl Porcel <armin76@gentoo.org> sphinx-0.6.5.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #313147

  30 Apr 2010; Fabian Groffen <grobian@gentoo.org> sphinx-0.6.5.ebuild:
  Marked ~x64-macos (Bug #316787) and ~ppc-macos

  25 Apr 2010; Dirkjan Ochtman <djc@gentoo.org> sphinx-0.6.5.ebuild:
  amd64 stable, bug 313147

  21 Apr 2010; Christian Faulhammer <fauli@gentoo.org> sphinx-0.6.5.ebuild:
  stable x86, bug 313147

  11 Apr 2010; <nixnut@gentoo.org> sphinx-0.6.5.ebuild:
  ppc stable #313147

  08 Apr 2010; Jeroen Roovers <jer@gentoo.org> sphinx-0.6.5.ebuild:
  Stable for HPPA (bug #313147).

  16 Mar 2010; Dirkjan Ochtman <djc@gentoo.org> sphinx-0.6.4.ebuild:
  amd64 stable, bug 305185

  14 Mar 2010; Raúl Porcel <armin76@gentoo.org> sphinx-0.6.4.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #305185

*sphinx-0.6.5 (02 Mar 2010)

  02 Mar 2010; Dirkjan Ochtman <djc@gentoo.org> +sphinx-0.6.5.ebuild:
  Version bump to 0.6.5.

  02 Mar 2010; Jeroen Roovers <jer@gentoo.org> sphinx-0.6.4.ebuild:
  Stable for HPPA (bug #305185).

  23 Feb 2010; Christian Faulhammer <fauli@gentoo.org> sphinx-0.6.4.ebuild:
  stable x86, bug 305185

  24 Jan 2010; Dirkjan Ochtman <djc@gentoo.org> sphinx-0.6.4.ebuild:
  Added conditional dep on dev-texlive/texlive-latexextra (bug 302071).

*sphinx-0.6.4 (12 Jan 2010)

  12 Jan 2010; Dirkjan Ochtman <djc@gentoo.org> +sphinx-0.6.4.ebuild:
  Version bump to 0.6.4.

  20 Dec 2009; Fabian Groffen <grobian@gentoo.org> sphinx-0.6.3.ebuild:
  Merged keywords from Prefix, added small Prefix changes, bug #295035

  14 Nov 2009; Raúl Porcel <armin76@gentoo.org> sphinx-0.6.3.ebuild:
  ia64/s390/sh/sparc stable wrt #287617

  10 Nov 2009; Brent Baude <ranger@gentoo.org> sphinx-0.6.3.ebuild:
  Marking sphinx-0.6.3 ppc64 for bug 287617

  30 Oct 2009; Markus Meier <maekke@gentoo.org> sphinx-0.6.3.ebuild:
  arm stable, bug #287617

  18 Oct 2009; Tobias Klausmann <klausman@gentoo.org> sphinx-0.6.3.ebuild:
  Stable on alpha, bug #287617

  16 Oct 2009; Jeroen Roovers <jer@gentoo.org> sphinx-0.6.3.ebuild:
  Stable for HPPA (bug #287617).

  11 Oct 2009; Markus Meier <maekke@gentoo.org> sphinx-0.6.3.ebuild:
  amd64/x86 stable, bug #287617

  10 Oct 2009; nixnut <nixnut@gentoo.org> sphinx-0.6.3.ebuild:
  ppc stable #287617

  21 Sep 2009; Tom Gall <tgall@gentoo.org> sphinx-0.6.1-r1.ebuild,
  sphinx-0.6.3.ebuild:
  keyword for ppc64

  19 Sep 2009; Markus Meier <maekke@gentoo.org> sphinx-0.6.1-r1.ebuild:
  amd64/x86 stable, bug #285307

  17 Sep 2009; Mounir Lamouri <volkmar@gentoo.org> sphinx-0.6.3.ebuild:
  Keywording for ppc. Bug 263948

  04 Sep 2009; Patrick Lauer <patrick@gentoo.org> -sphinx-0.6.2.ebuild:
  Remove old

*sphinx-0.6.3 (03 Sep 2009)

  03 Sep 2009; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  -sphinx-0.6.1.ebuild, +sphinx-0.6.3.ebuild:
  Version bump.

  12 Aug 2009; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  sphinx-0.6.2.ebuild:
  Set SUPPORT_PYTHON_ABIS.

  09 Aug 2009; Raúl Porcel <armin76@gentoo.org> sphinx-0.6.1-r1.ebuild:
  alpha/arm/ia64/s390/sh/sparc stable wrt #278978

  28 Jul 2009; Jeroen Roovers <jer@gentoo.org> sphinx-0.6.1-r1.ebuild:
  Stable for HPPA (bug #278978).

  15 Jul 2009; Jesus Rivero <neurogeek@gentoo.org> sphinx-0.6.2.ebuild:
  Fixed tests. Move to EAPI 2. Closes bug #262608

  05 Jul 2009; Alexis Ballier <aballier@gentoo.org> sphinx-0.6.2.ebuild:
  keyword ~x86-fbsd

*sphinx-0.6.2 (21 Jun 2009)

  21 Jun 2009; Patrick Lauer <patrick@gentoo.org> +sphinx-0.6.2.ebuild:
  Bump to 0.6.2

  09 Jun 2009; Raúl Porcel <armin76@gentoo.org> sphinx-0.5.2.ebuild,
  sphinx-0.6.1-r1.ebuild:
  Add ~alpha, sparc stable

  23 May 2009; nixnut <nixnut@gentoo.org> sphinx-0.5.2.ebuild:
  ppc stable #270089

  21 May 2009; Raúl Porcel <armin76@gentoo.org> sphinx-0.6.1-r1.ebuild:
  Add ~arm/~sh/~sparc

  14 May 2009; Jeroen Roovers <jer@gentoo.org> sphinx-0.6.1-r1.ebuild:
  Marked ~hppa (bug #233554).

*sphinx-0.6.1-r1 (13 May 2009)

  13 May 2009; Tiziano Müller <dev-zero@gentoo.org>
  +sphinx-0.6.1-r1.ebuild:
  Revision bump to fix access violations in packages generating docs using
  sphinx (bug #266015).

  15 Apr 2009; Markus Meier <maekke@gentoo.org> sphinx-0.5.2.ebuild:
  amd64/x86 stable, bug #261887

*sphinx-0.6.1 (07 Apr 2009)

  07 Apr 2009; Sébastien Fabbro <bicatali@gentoo.org> -sphinx-0.3.ebuild,
  -sphinx-0.4.2.ebuild, -sphinx-0.5.1.ebuild, +sphinx-0.6.1.ebuild:
  Version bump, dropped some keywords waiting for jinja2 keywording (bug
  #263948)

*sphinx-0.5.2 (27 Mar 2009)

  27 Mar 2009; Sébastien Fabbro <bicatali@gentoo.org> sphinx-0.5.1.ebuild,
  +sphinx-0.5.2.ebuild:
  Version bump and restricted test on 0.5.1 (bug #262608)

*sphinx-0.5.1 (14 Jan 2009)

  14 Jan 2009; Sébastien Fabbro <bicatali@gentoo.org> metadata.xml,
  +sphinx-0.5.1.ebuild:
  Version bump

  07 Oct 2008; Brent Baude <ranger@gentoo.org> sphinx-0.4.2.ebuild:
  Marking sphinx-0.4.2 ~ppc64 for bug 236705

  01 Aug 2008; Raúl Porcel <armin76@gentoo.org> sphinx-0.4.2.ebuild:
  Add ~ia64 wrt #233554

  01 Aug 2008; Tiziano Müller <dev-zero@gentoo.org> +sphinx-0.3.ebuild:
  Re-added sphinx-0.3 to not drop keywords for ia64 and sparc until
  dev-python/nose is keyworded for them.

  01 Aug 2008; Rob Cakebread <pythonhead@gentoo.org> -sphinx-0.4.2.ebuild:
  Dropped ia64 and ppc until dev-python/nose gets keyworded. bug #233554

*sphinx-0.4.2 (01 Aug 2008)

  01 Aug 2008; Jesus Rivero <neurogeek@gentoo.org> -sphinx-0.3.ebuild,
  +sphinx-0.4.2.ebuild:
  Version bump. Added tests and DEPEND on nose. Fixes bugs #230599 and
  #231365. Removed older version

  29 Jun 2008; Raúl Porcel <armin76@gentoo.org> sphinx-0.3.ebuild:
  Add ~ia64/~sparc wrt #229393

  25 Jun 2008; Tiziano Müller <dev-zero@gentoo.org> sphinx-0.3.ebuild:
  Add ~ppc keyword

  23 Jun 2008; Cédric Krier <cedk@gentoo.org> sphinx-0.3.ebuild:
  Add ~x86 keyword

*sphinx-0.3 (07 Jun 2008)

  07 Jun 2008; Tiziano Müller <dev-zero@gentoo.org> +metadata.xml,
  +sphinx-0.3.ebuild:
  Initial ebuild (written by me)
