Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S946360AbcJaUSH (ORCPT ); Mon, 31 Oct 2016 16:18:07 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:47239 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S945846AbcJaUSF (ORCPT ); Mon, 31 Oct 2016 16:18:05 -0400 Date: Mon, 31 Oct 2016 14:17:59 -0600 From: Mauro Carvalho Chehab To: Jonathan Corbet Cc: Jim Davis , linux-doc , linux-kernel Subject: Re: make pdfdocs fails with v4.9-rc3 Message-ID: <20161031141759.7eb1c9e5@vela.lan> In-Reply-To: <20161031131524.581accdc@lwn.net> References: <20161031131524.581accdc@lwn.net> X-Mailer: Claws Mail 3.14.0 (GTK+ 2.24.31; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3469 Lines: 109 Em Mon, 31 Oct 2016 13:15:24 -0600 Jonathan Corbet escreveu: > On Mon, 31 Oct 2016 11:51:20 -0700 > Jim Davis wrote: > > > Running make pdfdocs on a Ubuntu 16.04 system fails with > > > > Makefile:58: recipe for target 'media.pdf' failed > > make[2]: *** [media.pdf] Error 1 > > Documentation/Makefile.sphinx:79: recipe for target 'pdfdocs' failed > > make[1]: *** [pdfdocs] Error 2 > > Makefile:1442: recipe for target 'pdfdocs' failed > > make: *** [pdfdocs] Error 2 > > > > It's not clear from the voluminous (>5MB) output from make pdfdocs > > exactly which stage is failing, and there are some pdf files produced > > in output/latex. > > Hmm, so it does. It comes down to this: > > ! LaTeX Error: \DUrole undefined. > > See the LaTeX manual or LaTeX Companion for explanation. > Type H for immediate help. > ... > > l.195 \renewcommand*{\DUrole} > [2]{ #2 } > > Where the offending command is in Documentation/media/index.rst. Mauro, > got an idea for what's going on there? Sphinx is really a poor solution when it comes to PDF output. In this specific case, this is meant to fix a problem with cross-references. What happens is that Sphinx 1.4.6 (and later?) define reference names without being properly escaped. So, for some references, it causes the PDF output to crash. That happens at one of the DVB header files, if I remember well. This commit restores the sphinx 1.2.x behavior: commit e61a39baf74dddb6cd236147bd19b55c10188d78 Author: Mauro Carvalho Chehab Date: Sun Aug 21 15:14:57 2016 -0300 [media] index.rst: Fix LaTeX error in interactive mode on Sphinx 1.4.x The Sphinx 1.4.x definition for \DUrole is: \providecommand*{\DUrole}[2]{% \ifcsname DUrole#1\endcsname% \csname DUrole#1\endcsname{#2}% \else% backwards compatibility: try \docutilsrole#1{#2} \ifcsname docutilsrole#1\endcsname% \csname docutilsrole#1\endcsname{#2}% \else% #2% \fi% \fi% } This is broken when it is used inside a \begin{alltt} block. So, replace it by just "#2", as this won't cause troubles, and it is one of the fallback methods for it. Signed-off-by: Mauro Carvalho Chehab At the time I tested, it worked fine, but maybe it is redefining the \DUrole too late. Maybe we could move it to LaTeX preamble instead. Please check if this untested patch fixes the issue. diff --git a/Documentation/conf.py b/Documentation/conf.py index d9bad21dd427..ae7450c0a6e0 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -329,6 +329,9 @@ latex_elements = { % To allow adjusting table sizes \\usepackage{adjustbox} + % Fix reference escape troubles with Sphinx 1.4.x + \renewcommand*{\DUrole}[2]{ #2 } + ''' } diff --git a/Documentation/media/index.rst b/Documentation/media/index.rst index e347a3e7bdef..7f8f0af620ce 100644 --- a/Documentation/media/index.rst +++ b/Documentation/media/index.rst @@ -1,11 +1,6 @@ Linux Media Subsystem Documentation =================================== -.. Sphinx 1.4.x has a definition for DUrole that doesn't work on alltt blocks -.. raw:: latex - - \renewcommand*{\DUrole}[2]{ #2 } - Contents: .. toctree:: Cheers, Mauro