tags 584380 patch
thanks

I was also able to reproduce this in a clean sid chroot (and with
pbuilder).

The first attached one line patch allows it to build for me, and fixes
several other issues in the HTML documentation cross-references. The
version of python-sphinx in the archive (outside experimental) right now
is old, and isn't understanding the "Sphinx inventory version 2" now
being used at http://docs.python.org/dev/objects.inv. So in addition to
the build failure, none of the cross references meant to point to
docs.python.org were working.

The patch switches the intersphinx mapping to
http://docs.python.org/objects.inv, which is still "Sphinx inventory
version 1", which works with our version of python-sphinx. I don't see
any downside for python-gevent in pointing to the released docs instead
of the dev docs.

However, the build still fails if there is no internet access, which
doesn't seem good. In that case, it can't find the cross-reference
target in the Python docs, and so it looks in its own local code, which
fails because:

"stripped_aliasname = i_aliasname[len(docname):]" 

does not return the expected result for the gevent.select.select section
of gevent.util.rst (and maybe for other sections/files as well), which
causes the subsequent assertion to fail.

I tried to fix the logic, but wasn't able to in a reasonable amount of
time. I suggest just removing the "assert" statement -- it does not make
sense that the entire build should fail just because some documentation
cross-references could not be completed accurately. Bugs can be filed
about the specific wrong/missing cross-references as they are
encountered. Missing references are definitely not RC bugs.

The second one-line patch removes the assertion, so the package builds
even with no internet connection, and I think this bug can be closed.

--- python-gevent-0.12.2/doc/conf.py	2010-09-05 14:51:13.000000000 -0700
+++ my-python-gevent-0.12.2/doc/conf.py	2010-09-05 14:45:19.000000000 -0700
@@ -35,7 +35,7 @@
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
 extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.coverage', 'sphinx.ext.intersphinx', 'mysphinxext']
 
-intersphinx_mapping = {'http://docs.python.org/dev': None}
+intersphinx_mapping = {'http://docs.python.org/': None}
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
--- python-gevent-0.12.2/doc/mysphinxext.py	2010-04-04 09:47:13.000000000 -0700
+++ my-python-gevent-0.12.2/doc/mysphinxext.py	2010-09-05 17:50:34.000000000 -0700
@@ -49,7 +49,6 @@
             if i_aliasname.endswith(target):
                 stripped_aliasname = i_aliasname[len(docname):]
                 if stripped_aliasname:
-                    assert stripped_aliasname[0] == '.', repr(stripped_aliasname)
                     stripped_aliasname = stripped_aliasname[1:]
                     if stripped_aliasname == target:
                         if noisy >= 1:
-- 
-John Sullivan
-http://wjsullivan.net

Reply via email to