[Python-modules-commits] [sphinx] 12/12: merge patched into master
Dmitry Shachnev
mitya57 at moszumanska.debian.org
Mon Jan 25 12:45:57 UTC 2016
This is an automated email from the git hooks/post-receive script.
mitya57 pushed a commit to branch master
in repository sphinx.
commit 9a7dbc797b07e4ca960fde1be3acfe2c89428381
Merge: f2d45c9 e3eb4d2
Author: Dmitry Shachnev <mitya57 at gmail.com>
Date: Mon Jan 25 15:45:28 2016 +0300
merge patched into master
CHANGES | 21 +++++++++++
LICENSE | 2 +-
PKG-INFO | 2 +-
Sphinx.egg-info/PKG-INFO | 2 +-
debian/.git-dpm | 6 +--
debian/patches/disable_distribute_setup.diff | 2 +-
debian/patches/disable_js_version_check.diff | 4 +-
debian/patches/no_external_css.diff | 4 +-
debian/patches/no_snowballstemmer.diff | 6 +--
debian/patches/reproducible_grammar.diff | 2 +-
debian/patches/reproducible_inventory.diff | 4 +-
debian/patches/reproducible_js_locale.diff | 2 +-
debian/patches/reproducible_searchindex.diff | 4 +-
debian/patches/source_date_epoch.diff | 4 +-
doc/_themes/sphinx13/layout.html | 2 +-
doc/_themes/sphinx13/static/sphinx13.css | 2 +-
doc/conf.py | 2 +-
sphinx-apidoc.py | 2 +-
sphinx-autogen.py | 2 +-
sphinx-build.py | 2 +-
sphinx-quickstart.py | 2 +-
sphinx/__init__.py | 8 ++--
sphinx/__main__.py | 2 +-
sphinx/addnodes.py | 2 +-
sphinx/apidoc.py | 2 +-
sphinx/application.py | 2 +-
sphinx/builders/__init__.py | 2 +-
sphinx/builders/applehelp.py | 2 +-
sphinx/builders/changes.py | 2 +-
sphinx/builders/devhelp.py | 2 +-
sphinx/builders/epub.py | 2 +-
sphinx/builders/gettext.py | 2 +-
sphinx/builders/html.py | 2 +-
sphinx/builders/htmlhelp.py | 2 +-
sphinx/builders/latex.py | 6 +--
sphinx/builders/linkcheck.py | 2 +-
sphinx/builders/manpage.py | 2 +-
sphinx/builders/qthelp.py | 2 +-
sphinx/builders/texinfo.py | 2 +-
sphinx/builders/text.py | 2 +-
sphinx/builders/websupport.py | 2 +-
sphinx/builders/xml.py | 2 +-
sphinx/cmdline.py | 2 +-
sphinx/config.py | 2 +-
sphinx/directives/__init__.py | 2 +-
sphinx/directives/code.py | 2 +-
sphinx/directives/other.py | 2 +-
sphinx/domains/__init__.py | 2 +-
sphinx/domains/c.py | 2 +-
sphinx/domains/cpp.py | 2 +-
sphinx/domains/javascript.py | 2 +-
sphinx/domains/python.py | 2 +-
sphinx/domains/rst.py | 2 +-
sphinx/domains/std.py | 18 +++++++--
sphinx/environment.py | 13 +++++--
sphinx/errors.py | 2 +-
sphinx/ext/__init__.py | 2 +-
sphinx/ext/autodoc.py | 10 +++--
sphinx/ext/autosummary/__init__.py | 2 +-
sphinx/ext/autosummary/generate.py | 2 +-
sphinx/ext/coverage.py | 2 +-
sphinx/ext/doctest.py | 2 +-
sphinx/ext/extlinks.py | 2 +-
sphinx/ext/graphviz.py | 2 +-
sphinx/ext/ifconfig.py | 2 +-
sphinx/ext/inheritance_diagram.py | 2 +-
sphinx/ext/intersphinx.py | 2 +-
sphinx/ext/jsmath.py | 2 +-
sphinx/ext/linkcode.py | 2 +-
sphinx/ext/mathbase.py | 2 +-
sphinx/ext/mathjax.py | 2 +-
sphinx/ext/napoleon/__init__.py | 2 +-
sphinx/ext/napoleon/docstring.py | 2 +-
sphinx/ext/napoleon/iterators.py | 2 +-
sphinx/ext/pngmath.py | 2 +-
sphinx/ext/todo.py | 2 +-
sphinx/ext/viewcode.py | 2 +-
sphinx/highlighting.py | 8 +++-
sphinx/jinja2glue.py | 2 +-
sphinx/locale/__init__.py | 2 +-
sphinx/make_mode.py | 2 +-
sphinx/pycode/__init__.py | 4 +-
sphinx/pycode/nodes.py | 2 +-
sphinx/pygments_styles.py | 2 +-
sphinx/quickstart.py | 4 +-
sphinx/roles.py | 2 +-
sphinx/search/__init__.py | 2 +-
sphinx/search/en.py | 2 +-
sphinx/search/ja.py | 2 +-
sphinx/setup_command.py | 2 +-
sphinx/themes/agogo/layout.html | 2 +-
sphinx/themes/agogo/static/agogo.css_t | 2 +-
sphinx/themes/basic/defindex.html | 2 +-
sphinx/themes/basic/domainindex.html | 2 +-
sphinx/themes/basic/genindex-single.html | 2 +-
sphinx/themes/basic/genindex-split.html | 2 +-
sphinx/themes/basic/genindex.html | 2 +-
sphinx/themes/basic/globaltoc.html | 2 +-
sphinx/themes/basic/layout.html | 2 +-
sphinx/themes/basic/localtoc.html | 2 +-
sphinx/themes/basic/page.html | 2 +-
sphinx/themes/basic/relations.html | 2 +-
sphinx/themes/basic/search.html | 2 +-
sphinx/themes/basic/searchbox.html | 2 +-
sphinx/themes/basic/searchresults.html | 2 +-
sphinx/themes/basic/sourcelink.html | 2 +-
sphinx/themes/basic/static/basic.css_t | 2 +-
sphinx/themes/basic/static/doctools.js | 2 +-
sphinx/themes/basic/static/searchtools.js_t | 2 +-
sphinx/themes/basic/static/websupport.js | 2 +-
sphinx/themes/classic/layout.html | 2 +-
sphinx/themes/classic/static/classic.css_t | 2 +-
sphinx/themes/classic/static/sidebar.js_t | 2 +-
sphinx/themes/epub/epub-cover.html | 2 +-
sphinx/themes/epub/layout.html | 2 +-
sphinx/themes/epub/static/epub.css | 2 +-
sphinx/themes/haiku/layout.html | 2 +-
sphinx/themes/haiku/static/haiku.css_t | 2 +-
sphinx/themes/nature/static/nature.css_t | 2 +-
sphinx/themes/pyramid/static/epub.css | 2 +-
sphinx/themes/pyramid/static/pyramid.css_t | 2 +-
sphinx/themes/scrolls/layout.html | 2 +-
sphinx/themes/scrolls/static/scrolls.css_t | 2 +-
sphinx/themes/sphinxdoc/layout.html | 2 +-
sphinx/themes/sphinxdoc/static/sphinxdoc.css_t | 2 +-
sphinx/themes/traditional/static/traditional.css_t | 2 +-
sphinx/theming.py | 7 ++--
sphinx/transforms.py | 7 ++--
sphinx/util/__init__.py | 34 ++++++++---------
sphinx/util/compat.py | 2 +-
sphinx/util/console.py | 2 +-
sphinx/util/docfields.py | 2 +-
sphinx/util/docstrings.py | 2 +-
sphinx/util/i18n.py | 2 +-
sphinx/util/inspect.py | 2 +-
sphinx/util/jsdump.py | 2 +-
sphinx/util/jsonimpl.py | 2 +-
sphinx/util/matching.py | 2 +-
sphinx/util/nodes.py | 12 ++++--
sphinx/util/osutil.py | 2 +-
sphinx/util/parallel.py | 2 +-
sphinx/util/png.py | 2 +-
sphinx/util/pycompat.py | 2 +-
sphinx/util/tags.py | 2 +-
sphinx/util/texescape.py | 2 +-
sphinx/util/websupport.py | 2 +-
sphinx/versioning.py | 2 +-
sphinx/websupport/__init__.py | 2 +-
sphinx/websupport/errors.py | 2 +-
sphinx/websupport/search/__init__.py | 2 +-
sphinx/websupport/search/nullsearch.py | 2 +-
sphinx/websupport/search/whooshsearch.py | 2 +-
sphinx/websupport/search/xapiansearch.py | 2 +-
sphinx/websupport/storage/__init__.py | 2 +-
sphinx/websupport/storage/differ.py | 2 +-
sphinx/websupport/storage/sqlalchemy_db.py | 2 +-
sphinx/websupport/storage/sqlalchemystorage.py | 2 +-
sphinx/writers/__init__.py | 2 +-
sphinx/writers/html.py | 2 +-
sphinx/writers/latex.py | 31 ++++++++++++----
sphinx/writers/manpage.py | 2 +-
sphinx/writers/texinfo.py | 2 +-
sphinx/writers/text.py | 2 +-
sphinx/writers/websupport.py | 2 +-
sphinx/writers/xml.py | 2 +-
tests/path.py | 2 +-
tests/root/conf.py | 2 +-
tests/root/markup.txt | 6 +++
tests/roots/test-directive-code/python.rst | 13 +++++++
tests/roots/test-directive-code/target.py | 22 +++++++++++
tests/roots/test-intl/definition_terms.po | 5 +++
tests/roots/test-intl/definition_terms.txt | 2 +
tests/run.py | 2 +-
tests/test_api_translator.py | 2 +-
tests/test_apidoc.py | 2 +-
tests/test_application.py | 2 +-
tests/test_autodoc.py | 2 +-
tests/test_build.py | 2 +-
tests/test_build_applehelp.py | 2 +-
tests/test_build_gettext.py | 2 +-
tests/test_build_html.py | 43 +++++++++++++---------
tests/test_build_latex.py | 37 +++++++++++++++----
tests/test_build_manpage.py | 2 +-
tests/test_build_texinfo.py | 12 +++---
tests/test_build_text.py | 2 +-
tests/test_catalogs.py | 2 +-
tests/test_config.py | 2 +-
tests/test_directive_code.py | 26 ++++++++++++-
tests/test_directive_only.py | 2 +-
tests/test_docutilsconf.py | 2 +-
tests/test_domain_cpp.py | 2 +-
tests/test_domain_py.py | 2 +-
tests/test_domain_rst.py | 2 +-
tests/test_domain_std.py | 2 +-
tests/test_environment.py | 2 +-
tests/test_ext_autosummary.py | 2 +-
tests/test_ext_coverage.py | 2 +-
tests/test_ext_doctest.py | 2 +-
tests/test_ext_graphviz.py | 2 +-
tests/test_ext_ifconfig.py | 2 +-
tests/test_ext_intersphinx.py | 2 +-
tests/test_ext_napoleon.py | 2 +-
tests/test_ext_napoleon_docstring.py | 2 +-
tests/test_ext_napoleon_iterators.py | 2 +-
tests/test_ext_viewcode.py | 2 +-
tests/test_highlighting.py | 2 +-
tests/test_i18n.py | 2 +-
tests/test_intl.py | 14 ++++---
tests/test_markup.py | 2 +-
tests/test_metadata.py | 2 +-
tests/test_quickstart.py | 2 +-
tests/test_search.py | 2 +-
tests/test_searchadapters.py | 2 +-
tests/test_setup_command.py | 2 +-
tests/test_templating.py | 2 +-
tests/test_theming.py | 2 +-
tests/test_toctree.py | 2 +-
tests/test_util.py | 2 +-
tests/test_util_i18n.py | 2 +-
tests/test_util_nodes.py | 2 +-
tests/test_versioning.py | 2 +-
tests/test_websupport.py | 2 +-
tests/util.py | 2 +-
utils/check_sources.py | 2 +-
224 files changed, 475 insertions(+), 306 deletions(-)
diff --cc debian/.git-dpm
index 1dd6130,0000000..51d22da
mode 100644,000000..100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@@ -1,11 -1,0 +1,11 @@@
+# see git-dpm(1) from git-dpm package
- 042799fd684c6095a6dc57db17a99edd4201212a
- 042799fd684c6095a6dc57db17a99edd4201212a
- caededb0f2c03d23ce5f20fb19c602ab6c8ba4ea
++e3eb4d2564a7363dba6afb15e7ced1c952becec6
++e3eb4d2564a7363dba6afb15e7ced1c952becec6
++65adc14434e705bdb8976d84b268ba564c112613
+65adc14434e705bdb8976d84b268ba564c112613
+sphinx_1.3.5.orig.tar.gz
+96c1378df627d4ffc0ae02a94c430cd015df5109
+3679978
+debianTag="debian/%e%v"
+patchedTag="patched/%e%v"
+upstreamTag="upstream/%e%u"
diff --cc debian/patches/disable_distribute_setup.diff
index f02c64b,0000000..0898c64
mode 100644,000000..100644
--- a/debian/patches/disable_distribute_setup.diff
+++ b/debian/patches/disable_distribute_setup.diff
@@@ -1,26 -1,0 +1,26 @@@
- From 37add41cf3b82d60a679493599391a244e025251 Mon Sep 17 00:00:00 2001
++From b54d76860843845f1c0ecbdfa951e748351e7dfa Mon Sep 17 00:00:00 2001
+From: Jakub Wilk <jwilk at debian.org>
+Date: Thu, 8 Oct 2015 13:58:02 -0700
+Subject: disable use of distribute_setup, which bootstraps distribute
+ installation
+
+Forwarded: not-needed
+Last-Update: 2013-10-05
+
+Patch-Name: disable_distribute_setup.diff
+---
+ setup.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/setup.py b/setup.py
+index 4ff6315..b556549 100644
+--- a/setup.py
++++ b/setup.py
+@@ -2,6 +2,7 @@
+ try:
+ from setuptools import setup, find_packages
+ except ImportError:
++ raise
+ import ez_setup
+ ez_setup.use_setuptools()
+ from setuptools import setup, find_packages
diff --cc debian/patches/disable_js_version_check.diff
index 0440cd3,0000000..c63bd8a
mode 100644,000000..100644
--- a/debian/patches/disable_js_version_check.diff
+++ b/debian/patches/disable_js_version_check.diff
@@@ -1,33 -1,0 +1,33 @@@
- From 3255c124b03293c6b7b1dc4206f61e18ee4cba50 Mon Sep 17 00:00:00 2001
++From c6fe98b0b62d5d8cafad87bcd92f0924c0c016a2 Mon Sep 17 00:00:00 2001
+From: Dmitry Shachnev <mitya57 at debian.org>
+Date: Thu, 8 Oct 2015 13:58:04 -0700
+Subject: disable a test that checks versions of JS libraries
+
+Forwarded: not-needed
+Last-Update: 2015-04-10
+
+Patch-Name: disable_js_version_check.diff
+---
+ tests/test_theming.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tests/test_theming.py b/tests/test_theming.py
- index 3467ca2..db5c527 100644
++index 07787ec..5d9377a 100644
+--- a/tests/test_theming.py
++++ b/tests/test_theming.py
+@@ -11,6 +11,7 @@
+
+ import os
+ import zipfile
++import unittest
+
+ from sphinx.theming import Theme, ThemeError
+
+@@ -57,6 +58,7 @@ def test_theme_api(app, status, warning):
+ assert not os.path.exists(themedir)
+
+
++ at unittest.skip('In Debian we use packaged JS libraries')
+ @with_app(testroot='tocdepth') # a minimal root
+ def test_js_source(app, status, warning):
+ # Now sphinx provides non-minified JS files for jquery.js and underscore.js
diff --cc debian/patches/no_external_css.diff
index cb9eb48,0000000..6f6a4dc
mode 100644,000000..100644
--- a/debian/patches/no_external_css.diff
+++ b/debian/patches/no_external_css.diff
@@@ -1,40 -1,0 +1,40 @@@
- From 2a30151c53ad81bee85bd70c80e7492f5664e909 Mon Sep 17 00:00:00 2001
++From cf52d6a22f888d8223157df2994f2a2ab15f5b0c Mon Sep 17 00:00:00 2001
+From: Jakub Wilk <jwilk at debian.org>
+Date: Thu, 8 Oct 2015 13:58:03 -0700
+Subject: don't use CSS files hosted on external sites
+
+Forwarded: no
+Last-Update: 2013-04-08
+
+Patch-Name: no_external_css.diff
+---
+ doc/_themes/sphinx13/layout.html | 2 --
+ sphinx/themes/pyramid/layout.html | 2 --
+ 2 files changed, 4 deletions(-)
+
+diff --git a/doc/_themes/sphinx13/layout.html b/doc/_themes/sphinx13/layout.html
- index 0e6294c..3c2a2db 100644
++index bf28cd0..f1caadc 100644
+--- a/doc/_themes/sphinx13/layout.html
++++ b/doc/_themes/sphinx13/layout.html
+@@ -14,8 +14,6 @@
+ {% block sidebar2 %}{% endblock %}
+
+ {% block extrahead %}
+- <link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,700'
+- rel='stylesheet' type='text/css' />
+ {{ super() }}
+ {%- if not embedded %}
+ <style type="text/css">
+diff --git a/sphinx/themes/pyramid/layout.html b/sphinx/themes/pyramid/layout.html
+index 318a366..be95248 100644
+--- a/sphinx/themes/pyramid/layout.html
++++ b/sphinx/themes/pyramid/layout.html
+@@ -1,8 +1,6 @@
+ {%- extends "basic/layout.html" %}
+
+ {%- block extrahead %}
+-<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Neuton&subset=latin" type="text/css" media="screen" charset="utf-8" />
+-<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Nobile:regular,italic,bold,bolditalic&subset=latin" type="text/css" media="screen" charset="utf-8" />
+ <!--[if lte IE 6]>
+ <link rel="stylesheet" href="{{ pathto('_static/ie6.css', 1) }}" type="text/css" media="screen" charset="utf-8" />
+ <![endif]-->
diff --cc debian/patches/no_snowballstemmer.diff
index a519987,0000000..6acbac6
mode 100644,000000..100644
--- a/debian/patches/no_snowballstemmer.diff
+++ b/debian/patches/no_snowballstemmer.diff
@@@ -1,80 -1,0 +1,80 @@@
- From c02d73aa416b43613b6400c1cbf3748630509f6e Mon Sep 17 00:00:00 2001
++From d60ce74116c0b031c7c4f93bc10e7cd8af67f296 Mon Sep 17 00:00:00 2001
+From: Dmitry Shachnev <mitya57 at debian.org>
+Date: Thu, 8 Oct 2015 13:58:05 -0700
+Subject: do not support snowballstemmer-based search for now
+
+Forwarded: not-needed
+Last-Update: 2015-05-08
+
+Patch-Name: no_snowballstemmer.diff
+---
+ Sphinx.egg-info/requires.txt | 1 -
+ setup.py | 1 -
+ sphinx/search/__init__.py | 14 --------------
+ tests/run.py | 2 +-
+ 4 files changed, 1 insertion(+), 17 deletions(-)
+
+diff --git a/Sphinx.egg-info/requires.txt b/Sphinx.egg-info/requires.txt
+index 8b45115..936c824 100644
+--- a/Sphinx.egg-info/requires.txt
++++ b/Sphinx.egg-info/requires.txt
+@@ -2,7 +2,6 @@ six>=1.4
+ Jinja2>=2.3
+ Pygments>=2.0
+ docutils>=0.11
+-snowballstemmer>=1.1
+ babel>=1.3,!=2.0
+ alabaster>=0.7,<0.8
+ sphinx_rtd_theme>=0.1,<2.0
+diff --git a/setup.py b/setup.py
+index b556549..e656779 100644
+--- a/setup.py
++++ b/setup.py
+@@ -51,7 +51,6 @@ requires = [
+ 'Jinja2>=2.3',
+ 'Pygments>=2.0',
+ 'docutils>=0.11',
+- 'snowballstemmer>=1.1',
+ 'babel>=1.3,!=2.0',
+ 'alabaster>=0.7,<0.8',
+ 'sphinx_rtd_theme>=0.1,<2.0',
+diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
- index e248088..d83d1f6 100644
++index 06b8351..648abd8 100644
+--- a/sphinx/search/__init__.py
++++ b/sphinx/search/__init__.py
+@@ -119,22 +119,8 @@ def parse_stop_word(source):
+
+ # maps language name to module.class or directly a class
+ languages = {
+- 'da': 'sphinx.search.da.SearchDanish',
+- 'de': 'sphinx.search.de.SearchGerman',
+ 'en': SearchEnglish,
+- 'es': 'sphinx.search.es.SearchSpanish',
+- 'fi': 'sphinx.search.fi.SearchFinnish',
+- 'fr': 'sphinx.search.fr.SearchFrench',
+- 'hu': 'sphinx.search.hu.SearchHungarian',
+- 'it': 'sphinx.search.it.SearchItalian',
+ 'ja': 'sphinx.search.ja.SearchJapanese',
+- 'nl': 'sphinx.search.nl.SearchDutch',
+- 'no': 'sphinx.search.no.SearchNorwegian',
+- 'pt': 'sphinx.search.pt.SearchPortuguese',
+- 'ro': 'sphinx.search.ro.SearchRomanian',
+- 'ru': 'sphinx.search.ru.SearchRussian',
+- 'sv': 'sphinx.search.sv.SearchSwedish',
+- 'tr': 'sphinx.search.tr.SearchTurkish',
+ }
+
+
+diff --git a/tests/run.py b/tests/run.py
- index 432e231..6d22e9d 100755
++index b4bbf98..b9a198c 100755
+--- a/tests/run.py
++++ b/tests/run.py
+@@ -23,7 +23,7 @@ sys.path.insert(0, os.path.abspath(os.path.join(testroot, os.path.pardir)))
+ # check dependencies before testing
+ print('Checking dependencies...')
+ for modname in ('nose', 'mock', 'six', 'docutils', 'jinja2', 'pygments',
+- 'snowballstemmer', 'babel'):
++ 'babel'):
+ try:
+ __import__(modname)
+ except ImportError as err:
diff --cc debian/patches/reproducible_grammar.diff
index 673b485,0000000..d512861
mode 100644,000000..100644
--- a/debian/patches/reproducible_grammar.diff
+++ b/debian/patches/reproducible_grammar.diff
@@@ -1,70 -1,0 +1,70 @@@
- From eee30bfce40326a65f6ca2993a36bbf83ad9866f Mon Sep 17 00:00:00 2001
++From 74498a98e71d5fc9f703b6e6eb03423b14a06217 Mon Sep 17 00:00:00 2001
+From: Val Lorentz <progval at progval.net>
+Date: Thu, 8 Oct 2015 13:58:13 -0700
+Subject: make grammar generation deterministic
+
+Forwarded: https://github.com/sphinx-doc/sphinx/pull/2009
+Last-Update: 2015-09-03
+
+Patch-Name: reproducible_grammar.diff
+---
+ sphinx/pycode/pgen2/pgen.py | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/sphinx/pycode/pgen2/pgen.py b/sphinx/pycode/pgen2/pgen.py
+index e199ed8..85a1bcc 100644
+--- a/sphinx/pycode/pgen2/pgen.py
++++ b/sphinx/pycode/pgen2/pgen.py
+@@ -4,6 +4,10 @@
+ from __future__ import print_function
+
+ from six import iteritems
++try:
++ from collections import OrderedDict
++except ImportError: # Fallback for Python 2.6
++ OrderedDict = dict
+
+ # Pgen imports
+
+@@ -57,7 +61,7 @@ class ParserGenerator(object):
+ def make_first(self, c, name):
+ rawfirst = self.first[name]
+ first = {}
+- for label in rawfirst:
++ for label in sorted(rawfirst):
+ ilabel = self.make_label(c, label)
+ ##assert ilabel not in first # X X X failed on <> ... !=
+ first[ilabel] = 1
+@@ -138,8 +142,8 @@ class ParserGenerator(object):
+ totalset[label] = 1
+ overlapcheck[label] = {label: 1}
+ inverse = {}
+- for label, itsfirst in iteritems(overlapcheck):
+- for symbol in itsfirst:
++ for label, itsfirst in sorted(overlapcheck.items()):
++ for symbol in sorted(itsfirst):
+ if symbol in inverse:
+ raise ValueError("rule %s is ambiguous; %s is in the"
+ " first sets of %s as well as %s" %
+@@ -349,6 +353,9 @@ class NFAState(object):
+ assert isinstance(next, NFAState)
+ self.arcs.append((label, next))
+
++ def __hash__(self):
++ return hash(tuple(x[0] for x in self.arcs))
++
+ class DFAState(object):
+
+ def __init__(self, nfaset, final):
+@@ -357,7 +364,10 @@ class DFAState(object):
+ assert isinstance(final, NFAState)
+ self.nfaset = nfaset
+ self.isfinal = final in nfaset
+- self.arcs = {} # map from label to DFAState
++ self.arcs = OrderedDict() # map from label to DFAState
++
++ def __hash__(self):
++ return hash(tuple(self.arcs))
+
+ def addarc(self, next, label):
+ assert isinstance(label, str)
diff --cc debian/patches/reproducible_inventory.diff
index 296e6ab,0000000..6ab3851
mode 100644,000000..100644
--- a/debian/patches/reproducible_inventory.diff
+++ b/debian/patches/reproducible_inventory.diff
@@@ -1,26 -1,0 +1,26 @@@
- From 8b216065ba15c5838303b77884b8c631cd7a5577 Mon Sep 17 00:00:00 2001
++From f2449db5cbaf044e6cd278fd2329b479085824b8 Mon Sep 17 00:00:00 2001
+From: Val Lorentz <progval at progval.net>
+Date: Thu, 8 Oct 2015 13:58:14 -0700
+Subject: make inventory generation deterministic
+
+Forwarded: https://github.com/sphinx-doc/sphinx/pull/2009
+Last-Update: 2015-08-20
+
+Patch-Name: reproducible_inventory.diff
+---
+ sphinx/builders/html.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
- index 7006eff..d4487fc 100644
++index 8dcb905..e710571 100644
+--- a/sphinx/builders/html.py
++++ b/sphinx/builders/html.py
+@@ -830,7 +830,7 @@ class StandaloneHTMLBuilder(Builder):
+ u'# The remainder of this file is compressed using zlib.\n'
+ % (self.config.project, self.config.version)).encode('utf-8'))
+ compressor = zlib.compressobj(9)
+- for domainname, domain in iteritems(self.env.domains):
++ for domainname, domain in sorted(self.env.domains.items()):
+ for name, dispname, type, docname, anchor, prio in \
+ sorted(domain.get_objects()):
+ if anchor.endswith(name):
diff --cc debian/patches/reproducible_js_locale.diff
index 5cd2d24,0000000..3883141
mode 100644,000000..100644
--- a/debian/patches/reproducible_js_locale.diff
+++ b/debian/patches/reproducible_js_locale.diff
@@@ -1,26 -1,0 +1,26 @@@
- From 056354c0be26cfd7f41d4200764b5480588a6569 Mon Sep 17 00:00:00 2001
++From 62e7a7827107b946e8382754ba0db6addc6c7896 Mon Sep 17 00:00:00 2001
+From: Val Lorentz <progval at progval.net>
+Date: Thu, 8 Oct 2015 13:58:15 -0700
+Subject: make JavaScript locale generation deterministic
+
+Forwarded: https://github.com/sphinx-doc/sphinx/pull/2009
+Last-Update: 2015-08-20
+
+Patch-Name: reproducible_js_locale.diff
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index e656779..6d48bc1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -162,7 +162,7 @@ else:
+ messages=jscatalog,
+ plural_expr=catalog.plural_expr,
+ locale=str(catalog.locale)
+- ), outfile)
++ ), outfile, sort_keys=True)
+ outfile.write(');')
+ finally:
+ outfile.close()
diff --cc debian/patches/reproducible_searchindex.diff
index 3a8601e,0000000..261ca31
mode 100644,000000..100644
--- a/debian/patches/reproducible_searchindex.diff
+++ b/debian/patches/reproducible_searchindex.diff
@@@ -1,29 -1,0 +1,29 @@@
- From 042799fd684c6095a6dc57db17a99edd4201212a Mon Sep 17 00:00:00 2001
++From e3eb4d2564a7363dba6afb15e7ced1c952becec6 Mon Sep 17 00:00:00 2001
+From: Val Lorentz <progval at progval.net>
+Date: Thu, 8 Oct 2015 13:58:16 -0700
+Subject: make searchindex generation deterministic
+
+Forwarded: https://github.com/sphinx-doc/sphinx/pull/2009
+Last-Update: 2015-09-03
+
+Patch-Name: reproducible_searchindex.diff
+---
+ sphinx/search/__init__.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
- index d83d1f6..ba25497 100644
++index 648abd8..75acf25 100644
+--- a/sphinx/search/__init__.py
++++ b/sphinx/search/__init__.py
+@@ -261,9 +261,9 @@ class IndexBuilder(object):
+ rv = {}
+ otypes = self._objtypes
+ onames = self._objnames
+- for domainname, domain in iteritems(self.env.domains):
++ for domainname, domain in sorted(iteritems(self.env.domains)):
+ for fullname, dispname, type, docname, anchor, prio in \
+- domain.get_objects():
++ sorted(domain.get_objects()):
+ # XXX use dispname?
+ if docname not in fn2index:
+ continue
diff --cc debian/patches/source_date_epoch.diff
index afced22,0000000..af54ffa
mode 100644,000000..100644
--- a/debian/patches/source_date_epoch.diff
+++ b/debian/patches/source_date_epoch.diff
@@@ -1,44 -1,0 +1,44 @@@
- From 2d53b60670487e587a74f8280e97efdb23166947 Mon Sep 17 00:00:00 2001
++From 13405f9f1b9d97313e0fa24a8c2059f1b94f5853 Mon Sep 17 00:00:00 2001
+From: Dmitry Shachnev <mitya57 at gmail.com>
+Date: Thu, 8 Oct 2015 13:58:08 -0700
+Subject: add support for $SOURCE_DATE_EPOCH env variable
+
+Origin: upstream, https://github.com/sphinx-doc/sphinx/commit/71bac48e03d07f61
+Last-Update: 2015-07-25
+
+Patch-Name: source_date_epoch.diff
+---
+ sphinx/util/osutil.py | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py
- index b4488b5..a56da44 100644
++index 70d5cf5..e1d29a9 100644
+--- a/sphinx/util/osutil.py
++++ b/sphinx/util/osutil.py
+@@ -151,15 +151,22 @@ no_fn_re = re.compile(r'[^a-zA-Z0-9_-]')
+ def make_filename(string):
+ return no_fn_re.sub('', string) or 'sphinx'
+
+-if PY2:
++
++def ustrftime(format, *args):
+ # strftime for unicode strings
+- def ustrftime(format, *args):
++ if not args:
++ # If time is not specified, try to use $SOURCE_DATE_EPOCH variable
++ # See https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
++ source_date_epoch = os.getenv('SOURCE_DATE_EPOCH')
++ if source_date_epoch is not None:
++ time_struct = time.gmtime(float(source_date_epoch))
++ args = [time_struct]
++ if PY2:
+ # if a locale is set, the time strings are encoded in the encoding
+ # given by LC_TIME; if that is available, use it
+ enc = locale.getlocale(locale.LC_TIME)[1] or 'utf-8'
+ return time.strftime(text_type(format).encode(enc), *args).decode(enc)
+-else: # Py3
+- def ustrftime(format, *args):
++ else: # Py3
+ # On Windows, time.strftime() and Unicode characters will raise UnicodeEncodeError.
+ # http://bugs.python.org/issue8304
+ try:
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/sphinx.git
More information about the Python-modules-commits
mailing list