# ChangeLog for app-misc/sphinx
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*sphinx-2.1.9 (09 Aug 2015)
*sphinx-2.1.8 (09 Aug 2015)
*sphinx-2.0.10 (09 Aug 2015)
*sphinx-0.9.9 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +files/searchd.rc,
  +files/sphinx-1.10_beta-darwin8.patch,
  +files/sphinx-1.10_beta-libsphinxclient-darwin.patch,
  +files/sphinx-1.10_beta-nosigpipe.patch,
  +files/sphinx-2.0.1_beta-darwin8.patch,
  +files/sphinx-2.0.1_beta-solaris.patch, +files/sphinx-2.0.4_gcc-4.7.patch,
  +metadata.xml, +sphinx-0.9.9.ebuild, +sphinx-2.0.10.ebuild,
  +sphinx-2.1.8.ebuild, +sphinx-2.1.9.ebuild:
  proj/gentoo: Initial commit

  This commit represents a new era for Gentoo:
  Storing the gentoo-x86 tree in Git, as converted from CVS.

  This commit is the start of the NEW history.
  Any historical data is intended to be grafted onto this point.

  Creation process:
  1. Take final CVS checkout snapshot
  2. Remove ALL ChangeLog* files
  3. Transform all Manifests to thin
  4. Remove empty Manifests
  5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
  5.1. Do not touch files with -kb/-ko keyword flags.

  Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
  X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration
  tests
  X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this
  project
  X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo
  developer, wrote Git features for the migration
  X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve
  cvs2svn
  X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
  X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014
  work in migration
  X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
  X-Thanks: All of other Gentoo developers - many ideas and lots of paint on
  the bikeshed

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Use https by default

  Convert all URLs for sites supporting encrypted connections from http to
  https

  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  24 Aug 2015; Mike Gilbert <floppym@gentoo.org> metadata.xml:
  Revert DOCTYPE SYSTEM https changes in metadata.xml

  repoman does not yet accept the https version.
  This partially reverts eaaface92ee81f30a6ac66fe7acbcc42c00dc450.

  Bug: https://bugs.gentoo.org/552720

*sphinx-2.2.10 (24 Oct 2015)

  24 Oct 2015; Hans de Graaff <graaff@gentoo.org> metadata.xml,
  +sphinx-2.2.10.ebuild:
  add 2.2.10, bug 523240

  No longer install tests since that cannot function
  outside of the source directory.

  Add USE="re2" to enable regular expressions via
  dev-libs/re2, bug 523912. Drop keywords due to this,
  bug 563932.

  Package-Manager: portage-2.2.20.1

  27 Oct 2015; Agostino Sarubbo <ago@gentoo.org> sphinx-2.1.9.ebuild:
  amd64 stable wrt bug #563928

  Package-Manager: portage-2.2.20.1
  RepoMan-Options: --include-arches="amd64"

  01 Nov 2015; Mikle Kolyada <zlogene@gentoo.org> sphinx-2.1.9.ebuild:
  x86 stable wrt bug #563928

  Package-Manager: portage-2.2.20.1

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Unify quoting in metadata.xml files for machine processing

  Force unified quoting in all metadata.xml files since lxml does not
  preserve original use of single and double quotes. Ensuring unified
  quoting before the process allows distinguishing the GLEP 67-related
  metadata.xml changes from unrelated quoting changes.

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Set appropriate maintainer types in metadata.xml (GLEP 67)

  25 Jan 2016; Hans de Graaff <graaff@gentoo.org> sphinx-2.2.10.ebuild:
  enable id64 by default

  This matches upstream and avoids deprecation messages about using 32bit ids.

  Package-Manager: portage-2.2.26

  06 Apr 2016; Fabian Groffen <grobian@gentoo.org> sphinx-2.2.10.ebuild:
  add back Prefix keywords now USE=re2 is masked, bug #563932

  Package-Manager: portage-2.2.27

  18 May 2016; Austin English <wizardedit@gentoo.org> files/searchd.rc:
  use #!/sbin/openrc-run instead of #!/sbin/runscript

  31 Jul 2016; Hans de Graaff <graaff@gentoo.org> -sphinx-2.1.8.ebuild:
  cleanup

  Package-Manager: portage-2.2.28

*sphinx-2.2.11 (31 Jul 2016)

  31 Jul 2016; Hans de Graaff <graaff@gentoo.org> +sphinx-2.2.11.ebuild:
  add 2.2.11

  Package-Manager: portage-2.2.28

  11 Aug 2016; Patrice Clement <monsieurp@gentoo.org>
  -files/sphinx-1.10_beta-darwin8.patch,
  -files/sphinx-1.10_beta-libsphinxclient-darwin.patch,
  -files/sphinx-1.10_beta-nosigpipe.patch,
  -files/sphinx-2.0.1_beta-solaris.patch, -files/sphinx-2.0.4_gcc-4.7.patch:
  remove unused patch

  Signed-off-by: Patrice Clement <monsieurp@gentoo.org>

  05 Sep 2016; Hans de Graaff <graaff@gentoo.org> -sphinx-2.2.10.ebuild:
  cleanup

  Package-Manager: portage-2.2.28

  24 Sep 2016; Agostino Sarubbo <ago@gentoo.org> sphinx-2.2.11.ebuild:
  amd64 stable wrt bug #591276

  Package-Manager: portage-2.2.28
  RepoMan-Options: --include-arches="amd64"
  Signed-off-by: Agostino Sarubbo <ago@gentoo.org>

