FTBFS with sphinx 3.2

Bug #1894907 reported by Andreas Hasenack
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cyrus-sasl2
Fix Released
Unknown
cyrus-sasl2 (Debian)
Fix Released
Unknown
cyrus-sasl2 (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

cyrus-sasl2 ships with a sphinx extension to build its documentation, and this extension was based on a very old sphinx version. It no longer builds with sphinx 3.2.1 from groovy, failing in several places:

a) "NoUri"
Extension error:
Could not import extension sphinxlocal.builders.manpage (exception: cannot import name 'NoUri' from 'sphinx.environment' (/usr/lib/python3/dist-packages/sphinx/environment/__init__.py))
make[2]: *** [Makefile:1166: man/.sphinx-build.stamp] Error 2
make[2]: Leaving directory '/home/ubuntu/deb/cyrus-sasl2-2.1.27+dfsg/build-heimdal'
make[1]: *** [Makefile:686: all-recursive] Error 1
make[1]: Leaving directory '/home/ubuntu/deb/cyrus-sasl2-2.1.27+dfsg/build-heimdal'
make: *** [Makefile:556: all] Error 2

Debian has a bug report already at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955095

b) MACRO_DEF
Extension error:
Could not import extension sphinxlocal.builders.manpage (exception: cannot import name 'MACRO_DEF' from 'sphinx.writers.manpage' (/usr/lib/python3/dist-packages/sphinx/writers/manpage.py))
make[4]: *** [Makefile:1166: man/.sphinx-build.stamp] Error 2
make[4]: Leaving directory '/home/ubuntu/git/packages/cyrus-sasl2/cyrus-sasl2/build-heimdal'
make[3]: *** [Makefile:686: all-recursive] Error 1
make[3]: Leaving directory '/home/ubuntu/git/packages/cyrus-sasl2/cyrus-sasl2/build-heimdal'
make[2]: *** [Makefile:556: all] Error 2
make[2]: Leaving directory '/home/ubuntu/git/packages/cyrus-sasl2/cyrus-sasl2/build-heimdal'
dh_auto_build: error: cd build-heimdal && make -j4 sasldir=/usr/lib/x86_64-linux-gnu/sasl2 returned exit code 2
make[1]: *** [debian/rules:164: override_dh_auto_build] Error 25
make[1]: Leaving directory '/home/ubuntu/git/packages/cyrus-sasl2/cyrus-sasl2'
make: *** [debian/rules:122: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

Tags: ftbfs

Related branches

Changed in cyrus-sasl2 (Debian):
status: Unknown → New
Paride Legovini (paride)
Changed in cyrus-sasl2 (Ubuntu):
status: New → Triaged
summary: - FTBFS with sphinx 2.4: cannot import name 'NoUri'
+ FTBFS with sphinx 2.4
description: updated
summary: - FTBFS with sphinx 2.4
+ FTBFS with sphinx 3.2
Changed in cyrus-sasl2:
status: Unknown → New
Revision history for this message
Andreas Hasenack (ahasenack) wrote :
Download full text (4.3 KiB)

I got as far as this collection of patches: https://paste.ubuntu.com/p/wvRzpByDXT/ :
--- a/docsrc/exts/sphinxlocal/writers/manpage.py
+++ b/docsrc/exts/sphinxlocal/writers/manpage.py
@@ -14,7 +14,6 @@

 from docutils import nodes
 from sphinx.writers.manpage import (
- MACRO_DEF,
     ManualPageWriter,
     ManualPageTranslator as BaseTranslator
 )
@@ -73,9 +72,6 @@
         self._docinfo['version'] = builder.config.version
         self._docinfo['manual_group'] = builder.config.project

- # since self.append_header() is never called, need to do this here
- self.body.append(MACRO_DEF)
-
         # overwritten -- don't wrap literal_block with font calls
         self.defs['literal_block'] = ('.sp\n.nf\n', '\n.fi\n')

--- a/docsrc/exts/sphinxlocal/writers/manpage.py
+++ b/docsrc/exts/sphinxlocal/writers/manpage.py
@@ -13,6 +13,8 @@
 """

 from docutils import nodes
+from time import strftime
+
 from sphinx.writers.manpage import (
     ManualPageWriter,
     ManualPageTranslator as BaseTranslator
@@ -21,7 +23,6 @@

 from sphinx import addnodes
 from sphinx.locale import admonitionlabels, _
-from sphinx.util.osutil import ustrftime

 class CyrusManualPageWriter(ManualPageWriter):

@@ -66,7 +67,7 @@
         if builder.config.today:
             self._docinfo['date'] = builder.config.today
         else:
- self._docinfo['date'] = ustrftime(builder.config.today_fmt
+ self._docinfo['date'] = strftime(builder.config.today_fmt
                                               or _('%B %d, %Y'))
         self._docinfo['copyright'] = builder.config.copyright
         self._docinfo['version'] = builder.config.version
diff --git a/docsrc/exts/sphinxlocal/roles/saslman.py b/docsrc/exts/sphinxlocal/roles/saslman.py
index f881d98f..bcafeece 100644
--- a/docsrc/exts/sphinxlocal/roles/saslman.py
+++ b/docsrc/exts/sphinxlocal/roles/saslman.py
@@ -18,7 +18,6 @@ from string import Template
 import re

 def setup(app):
- app.info('Initializing saslman plugin')
     app.add_crossref_type('saslman', 'saslman', '%s', nodes.generated)
     return

diff --git a/docsrc/exts/sphinxlocal/builders/manpage.py b/docsrc/exts/sphinxlocal/builders/manpage.py
index a6281f79..126839e0 100644
--- a/docsrc/exts/sphinxlocal/builders/manpage.py
+++ b/docsrc/exts/sphinxlocal/builders/manpage.py
@@ -21,7 +21,6 @@ from docutils.frontend import OptionParser
 from sphinx import addnodes
 from sphinx.errors import SphinxError
 from sphinx.builders import Builder
-from sphinx.environment import NoUri
 from sphinx.util.nodes import inline_all_toctrees
 from sphinx.util.console import bold, darkgreen
 from sphinx.writers.manpage import ManualPageWriter

That moves along a bit, but then fails with;
sed -e 's,[@]LIB_DOOR[@],,g' -e 's,[@]SASL_DL_LIB[@],-ldl,g' -e 's,[@]LIBS[@],-lresolv ,g' -e 's,[@]VERSION[@],2.1.27,g' -e 's,[@]libdir[@],/usr/lib/x86_64-linux-gnu,g' -e 's,[@]prefix[@],/usr,g' -e 's,[@]exec_prefix[@],/usr,g' -e 's,[@]includedir[@],/usr/include,g' < ../libsasl2.pc.in > libsasl2.pc
/usr/bin/sphinx-build -d docsrc/.doctrees -n -q -b cyrman ./docsrc ./man
WARNING: The config value `author' has type `list', defaults to `str'.
WARNING: ...

Read more...

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I filed https://bugs.launchpad.net/ubuntu/+source/cyrus-sasl2/+bug/1898593 to properly fix the doc building with sphinx.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cyrus-sasl2 - 2.1.27+dfsg-2ubuntu1

---------------
cyrus-sasl2 (2.1.27+dfsg-2ubuntu1) groovy; urgency=medium

  * Disable sphinx doc build, as the extension bundled in this source is
    not compatible with current sphinx release (LP: #1894907):
    - d/control: remove python3-sphinx build-depends
    - d/rules: disable sphinx doc build, copy pre-built manpages to build dirs

 -- Andreas Hasenack <email address hidden> Tue, 29 Sep 2020 19:25:19 +0000

Changed in cyrus-sasl2 (Ubuntu):
status: Triaged → Fix Released
Changed in cyrus-sasl2 (Debian):
status: New → Fix Released
Changed in cyrus-sasl2:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.