From nobody Thu Oct 2 19:27:08 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3CD093019BA; Fri, 12 Sep 2025 11:46:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757677595; cv=none; b=sVQ5nwfGA33HDwyC/mSxOlKXP85F6kC2z/2vCk7ic3/YCVwX0OdMZja/wuGzyTPndr2eRWX61ertDVwAraedJQFzY+7mmJ3gl2bVrSxle6MWWK7UuCfmgSbNapGLkQdPRBXCRQXq9ZuPy+mtY3pH6Xr22Y6HiRP6UTGLA2M+xhE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757677595; c=relaxed/simple; bh=2Z4kQcJjaWeqOHt0ImEre/Ug31h1v77fVwF5t5AR2BY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=X23YAVFhQpE5byEsaebHp4EjGgT6zncUnhNAAiazo1CIBV1YN3Z5lVQ1BtFGsYNvxw8NltU8nm3JfTKHtRt0ex7FTrHpIJlyPxjSmRZ+ZMZv2iwmQeyt6b28M8jJxWwWrZshBymA7fS78QZdR3BzGb41JPH/G5Td2DtJDVPtAow= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=avSi4RjA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="avSi4RjA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8079CC19421; Fri, 12 Sep 2025 11:46:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1757677594; bh=2Z4kQcJjaWeqOHt0ImEre/Ug31h1v77fVwF5t5AR2BY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=avSi4RjAW8nRdbP4WF5BxAIX9ExRAkZ1qKdhCj/fp9vx3nAqih2JMlrRvEi5/TewE jisDjWAqoQpOhr6yWB9DTr2FvZU0l3UAlUn8kngn8T1LSxYcf6NTFknXgatIzvOFiA olgRenaYXrUACfDnwdtPXibxZzTBqf8pkJa9/pxjyxhZa3u1BCQ+A3XdP8c6ajFJQv 8Pn7ff5hsX7QRSgtcmLuI+t3YScIGGJtYCehudelPmI9leL9gLRRmChBpr7IsOojOL 9kwb2dX6zcCnORfaNRl3gI3++q8g0G4k8fia0I1rXuMLxDhqMefbQx2V8RhSoE7PFp 1eH2UqlOwgkpw== Received: from mchehab by mail.kernel.org with local (Exim 4.98.2) (envelope-from ) id 1ux2Ea-00000008Rsf-3KGj; Fri, 12 Sep 2025 13:46:32 +0200 From: Mauro Carvalho Chehab To: Linux Doc Mailing List Cc: Mauro Carvalho Chehab , Jonathan Corbet , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org Subject: [PATCH v5 12/18] tools/docs: sphinx-build-wrapper: add an argument for LaTeX interactive mode Date: Fri, 12 Sep 2025 13:46:19 +0200 Message-ID: <1b420224e962db0b9e9a0c65705e07c24a4a2ef0.1757677427.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: References: Content-Type: text/plain; charset="utf-8" Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab By default, we use LaTeX batch mode to build docs. This way, when an error happens, the build fails. This is good for normal builds, but when debugging problems with pdf generation, the best is to use interactive mode. We already support it via LATEXOPTS, but having a command line argument makes it easier: Interactive mode: ./scripts/sphinx-build-wrapper pdfdocs --sphinxdirs peci -v -i ... Running 'xelatex --no-pdf -no-pdf -recorder ".../Documentation/output/pe= ci/latex/peci.tex"' ... Default batch mode: ./scripts/sphinx-build-wrapper pdfdocs --sphinxdirs peci -v ... Running 'xelatex --no-pdf -no-pdf -interaction=3Dbatchmode -no-shell-esca= pe -recorder ".../Documentation/output/peci/latex/peci.tex"' ... Signed-off-by: Mauro Carvalho Chehab --- tools/docs/sphinx-build-wrapper | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/docs/sphinx-build-wrapper b/tools/docs/sphinx-build-wrap= per index b34389f65076..1ba3afec6e65 100755 --- a/tools/docs/sphinx-build-wrapper +++ b/tools/docs/sphinx-build-wrapper @@ -173,7 +173,8 @@ class SphinxBuilder: if not verbose: self.sphinxopts +=3D ["-q"] =20 - def __init__(self, builddir, venv=3DNone, verbose=3DFalse, n_jobs=3DNo= ne): + def __init__(self, builddir, venv=3DNone, verbose=3DFalse, n_jobs=3DNo= ne, + interactive=3DNone): """Initialize internal variables""" self.venv =3D venv self.verbose =3D None @@ -184,7 +185,11 @@ class SphinxBuilder: self.kernelversion =3D os.environ.get("KERNELVERSION", "unknown") self.kernelrelease =3D os.environ.get("KERNELRELEASE", "unknown") self.pdflatex =3D os.environ.get("PDFLATEX", "xelatex") - self.latexopts =3D os.environ.get("LATEXOPTS", "-interaction=3Dbat= chmode -no-shell-escape") + + if not interactive: + self.latexopts =3D os.environ.get("LATEXOPTS", "-interaction= =3Dbatchmode -no-shell-escape") + else: + self.latexopts =3D os.environ.get("LATEXOPTS", "") =20 if not verbose: verbose =3D bool(os.environ.get("KBUILD_VERBOSE", "") !=3D "") @@ -584,6 +589,9 @@ def main(): parser.add_argument('-j', '--jobs', type=3Djobs_type, help=3D"Sets number of jobs to use with sphinx-bui= ld") =20 + parser.add_argument('-i', '--interactive', action=3D'store_true', + help=3D"Change latex default to run in interactive= mode") + parser.add_argument("-V", "--venv", nargs=3D'?', const=3Df'{VENV_DEFAU= LT}', default=3DNone, help=3Df'If used, run Sphinx from a venv dir (defa= ult dir: {VENV_DEFAULT})') @@ -593,7 +601,8 @@ def main(): PythonVersion.check_python(MIN_PYTHON_VERSION) =20 builder =3D SphinxBuilder(builddir=3Dargs.builddir, venv=3Dargs.venv, - verbose=3Dargs.verbose, n_jobs=3Dargs.jobs) + verbose=3Dargs.verbose, n_jobs=3Dargs.jobs, + interactive=3Dargs.interactive) =20 builder.build(args.target, sphinxdirs=3Dargs.sphinxdirs, conf=3Dargs.c= onf, theme=3Dargs.theme, css=3Dargs.css, paper=3Dargs.paper) --=20 2.51.0