Bug#908756: [Pkg-mpd-maintainers] Bug#908756: mpc: frequent parallel FTBFS

2018-10-29 Thread Max Kellermann
On 2018/10/29 22:23, Florian Schlichting  wrote:
> I had a look at meson, and while there seems to be no option to turn off
> parallelism in a specific meson.build, enforcing serialisation of doc
> targets by having manpage generation depend on the HTML docs should do
> the trick, perhaps like so:

ncmpc had the same problem, and somebody submitted this workaround for
the Sphinx file corruption bug:

 
https://github.com/MusicPlayerDaemon/ncmpc/commit/d5aff222515ccd3ab8068796d5c13abf9329e11c



Bug#908756: [Pkg-mpd-maintainers] Bug#908756: mpc: frequent parallel FTBFS

2018-10-29 Thread Florian Schlichting
Hi Max,

Debian bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908756
reports frequent build failures of mpc on the reproducible builds
infrastructure due to an issue with running sphinx in parallel:

> ...
> [26/27] /usr/bin/sphinx-build -q -b html -d doc/doctrees 
> /build/1st/mpc-0.30/doc doc/html
> FAILED: doc/html 
> /usr/bin/sphinx-build -q -b html -d doc/doctrees /build/1st/mpc-0.30/doc 
> doc/html
> 
> Exception occurred:
>   File "/usr/lib/python3/dist-packages/sphinx/environment/__init__.py", line 
> 786, in get_doctree
> doctree = pickle.load(f)
> _pickle.UnpicklingError: pickle data was truncated
> The full traceback has been saved in /tmp/sphinx-err-upx0cr5x.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 
> . Thanks!
> [27/27] /usr/bin/sphinx-build -q -b man -d doc/doctrees 
> /build/1st/mpc-0.30/doc doc/man/man1
> ninja: build stopped: subcommand failed.
> dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j10 -v returned 
> exit code 1

On Thu, Sep 13, 2018 at 04:22:00PM +0300, Adrian Bunk wrote:
> dh compat >= 10 defaults to parallel building.
> 
> Ideally doc/meson.build should be fixed to not run both in parallel,
> but passing --no-parallel to dh in debian/rules would be an option
> to workaround the problem.

I had a look at meson, and while there seems to be no option to turn off
parallelism in a specific meson.build, enforcing serialisation of doc
targets by having manpage generation depend on the HTML docs should do
the trick, perhaps like so:

--- a/doc/meson.build
+++ b/doc/meson.build
@@ -1,4 +1,4 @@
-custom_target(
+html = custom_target(
   'HTML documentation',
   output: 'html',
   input: ['index.rst', 'conf.py'],
@@ -16,4 +16,5 @@
   build_by_default: true,
   install: true,
   install_dir: get_option('datadir'),
+  depends: html,
 )


What do you think?

Florian