On Thu, 20 Jul 2017 22:12:31 +0200
Matthias Klose <d...@debian.org> wrote:

> On 20.07.2017 16:40, Neil Williams wrote:
> > Package: python2.7
> > Version: 2.7.13-4
> > Severity: serious
> > Justification: causes other packages to FTBFS
> > 
> > With 2.7.13-4 installed, I am unable to build documentation as
> > sphinx errors out:
> > 
> > sphinx-build -b html -d _build/doctrees  -n -j 4 . _build/html
> > Running Sphinx v1.4.9
> > making output directory...
> > loading pickled environment... not yet created
> > loading intersphinx inventory from
> > https://docs.python.org/2/objects.inv... building [mo]: targets for
> > 0 po files that are out of date building [html]: targets for 91
> > source files that are out of date updating environment: 91 added, 0
> > changed, 0 removed reading sources... [100%] test-repositories ..
> > writing-tests waiting for workers...
> > 
> > Exception occurred:
> >   File "/usr/lib/python2.7/dist-packages/sphinx/util/parallel.py",
> > line 97, in _join_one exc, result = pipe.recv()
> > EOFError
> > The full traceback has been saved in /tmp/sphinx-err-o8zX9U.log, if
> > you want to report the issue to the developers. Please also report
> > this if it was a user error, so that a better error message can be
> > provided next time. A bug report can be filed in the tracker at
> > <https://github.com/sphinx-doc/sphinx/issues>. Thanks! ^CError in
> > atexit._run_exitfuncs:
> > 
> > The problem now is that lava-server and potentially other packages
> > which build documentation with python-sphinx will FTBFS with this
> > version of python2.7 in unstable.
> > 
> > Downgrading python-sphinx to the version in Stretch makes no
> > difference.
> > 
> > Downgrading python2.7 to the version in testing fixes the problem
> > entirely.
> > 
> > $ sudo apt install python2.7=2.7.13-2 python2.7-minimal=2.7.13-2
> > libpython2.7-stdlib=2.7.13-2 libpython2.7-minimal=2.7.13-2
> > 
> > sphinx-build -b html -d _build/doctrees  -n -j 4 . _build/html
> > Running Sphinx v1.4.9
> > making output directory...
> > loading pickled environment... not yet created
> > loading intersphinx inventory from
> > https://docs.python.org/2/objects.inv... building [mo]: targets for
> > 0 po files that are out of date building [html]: targets for 91
> > source files that are out of date updating environment: 91 added, 0
> > changed, 0 removed reading sources... [100%] test-repositories ..
> > writing-tests waiting for workers...
> > looking for now-outdated files... none found
> > pickling environment... done
> > checking consistency... done
> > preparing documents... done
> > writing output... [100%] user-notifications ..
> > writing-tests waiting for workers...
> > generating indices... genindex
> > writing additional pages... search
> > copying images... [100%]
> > images/micro-instance-lab.svg copying static files... done
> > copying extra files... done
> > dumping search index in English (code: en) ... done
> > dumping object inventory... done
> > build succeeded.
> > 
> > Build finished. The HTML pages are in _build/html.
> > 
> > To reproduce, it should be enough to install lava-dev to get the
> > correct build dependencies, and try to rebuild lava-server. A
> > quicker test would be to get the lava-server source and run:
> > 
> > $ make -C doc/v2 clean
> > $ make -C doc/v2 html
> > 
> > in the top level directory.
> > 
> > One of the sphinx error logs:
> > 
> > # Sphinx version: 1.5.6
> > # Python version: 2.7.13+ (CPython)
> > # Docutils version: 0.13.1 release
> > # Jinja2 version: 2.9.6
> > # Last messages:
> > #   91 added, 0 changed, 0 removed
> > #   reading sources... [ 14%] actions-boot .. data-export
> > #   reading sources... [ 28%] debian .. explain_first_job
> > #   reading sources... [ 42%] first-devices .. ipxe
> > #   reading sources... [ 57%] lava-dashboard-image-reports ..
> > migrate-lava #   reading sources... [ 71%]
> > migrating-admin-example .. pipeline-writer #   reading sources...
> > [ 85%] pipeline-writer-secondary .. tables #   reading sources...
> > [100%] test-repositories .. writing-tests #   
> > #   waiting for workers...
> > # Loaded extensions:
> > #   sphinx.ext.coverage (1.5.6)
> > from /usr/lib/python2.7/dist-packages/sphinx/ext/coverage.pyc #
> > sphinx.ext.viewcode (1.5.6)
> > from /usr/lib/python2.7/dist-packages/sphinx/ext/viewcode.pyc #
> > sphinx.ext.todo (1.5.6)
> > from /usr/lib/python2.7/dist-packages/sphinx/ext/todo.pyc #
> > sphinx.ext.autodoc (1.5.6)
> > from /usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.pyc #
> > sphinx.ext.intersphinx (1.5.6)
> > from /usr/lib/python2.7/dist-packages/sphinx/ext/intersphinx.pyc
> > #   sphinx.ext.doctest (1.5.6)
> > from /usr/lib/python2.7/dist-packages/sphinx/ext/doctest.pyc #
> > alabaster (0.7.8)
> > from /usr/lib/python2.7/dist-packages/alabaster/__init__.pyc
> > Traceback (most recent call last): File
> > "/usr/lib/python2.7/dist-packages/sphinx/cmdline.py", line 296, in
> > main app.build(opts.force_all, filenames) File
> > "/usr/lib/python2.7/dist-packages/sphinx/application.py", line 333,
> > in build self.builder.build_update() File
> > "/usr/lib/python2.7/dist-packages/sphinx/builders/__init__.py",
> > line 251, in build_update 'out of date' % len(to_build)) File
> > "/usr/lib/python2.7/dist-packages/sphinx/builders/__init__.py",
> > line 265, in build self.doctreedir, self.app)) File
> > "/usr/lib/python2.7/dist-packages/sphinx/environment/__init__.py",
> > line 554, in update self._read_parallel(docnames, app,
> > nproc=app.parallel) File
> > "/usr/lib/python2.7/dist-packages/sphinx/environment/__init__.py",
> > line 612, in _read_parallel tasks.join() File
> > "/usr/lib/python2.7/dist-packages/sphinx/util/parallel.py", line
> > 93, in join self._join_one() File
> > "/usr/lib/python2.7/dist-packages/sphinx/util/parallel.py", line
> > 98, in _join_one exc, result = pipe.recv() EOFError  
> 
> I haven't seen that yet.  As a work around, please consider
> build-depending on python3-sphinx instead.  That's part of the bigger
> goal to make python2 a little bit more obsolete.

We can use python3-sphinx as a workaround (as long as
python3-sphinx-bootstrap-theme is also installed, of course).

$ make SPHINXBUILD="/usr/share/sphinx/scripts/python3/sphinx-build" -C doc/v2 
html

That works nicely. Depending on how the debugging goes on this bug, I
will upload lava-server with this change in debian/rules etc. to prevent
a FTBFS bug in lava-server complicating things.

We are planning on moving to python3-only, probably during 2018 and
certainly before django LTS becomes python3 only but that's not until
April 2019. However, there is a lot of legacy code to remove before
that can happen.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

Attachment: pgpkitBdnPj6n.pgp
Description: OpenPGP digital signature

Reply via email to