From nobody Fri Oct 3 07:42:42 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 1CEEA2BE04C; Thu, 4 Sep 2025 07:33:27 +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=1756971207; cv=none; b=W4G6jKI48olZLx4v2LxxHiYLAbQr6TnH1YayLTU2P3yaQtoIvFwN2RhkKW3/SvXWuRfKYjMD/f2xqgOqv4h0/UcjnCrlvIVytzRfEhj7h99eW86YFAW4B1bBESyBDser5fGolQjqzyn/S/GOf4h7mi1SEIegJ5fLpZBf4coPU2Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756971207; c=relaxed/simple; bh=cbweHJfQC8VvqXB8Y5/FaxFei0KTfLWpMRtf/hEy3WI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=CTmjcEr8XQcEjeFtngT5UaCoQDgzsHh4dFBdE0i5293FoNT670hJVxkj+7YvwcoDi59Nc6+Qc2mnnl4iFZCWNGpRlfeIfXMdxEafs4vl6wFI6Tt7NKAlyLM1J3Iy086G1+qp5fI0+CCVmS0EaHGSNi3UWvm3eqzjvKSj0W1MLDQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=F8rlMgaK; 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="F8rlMgaK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C03F4C16AAE; Thu, 4 Sep 2025 07:33:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1756971206; bh=cbweHJfQC8VvqXB8Y5/FaxFei0KTfLWpMRtf/hEy3WI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F8rlMgaK5oFmVajHWaCxEyFIWpNuHT8VxwUR75AgZxpBFLU9Il59BZvuwVOyNhGHA Ww5/CSYUE35MOZQNKjI+A6m+pwqkwg680TvCP4uyt2ouGGpoIPwVHdrcR8aMCLuk5a +NQ3CLRlegY1Hu1bF9wKQuOmRnp89Acg8NgURIMQnPLyx+9p8fBr0XK8Ff3qN8mN41 9PBa266G5Hcikf2UNcRaAJqNx8zEynn30yrLeCTuSFse/MzDsXHiQTVoOIntz2eN2W I5RGdmcV7nENtLBRuxNOuXs/hiVK2UFXXBDdOhfDTDuVkvnmB6drGsfgINc9FQ5/gi WOh1K2OKSXCrA== Received: from mchehab by mail.kernel.org with local (Exim 4.98.2) (envelope-from ) id 1uu4TF-00000009jPz-02L7; Thu, 04 Sep 2025 09:33:25 +0200 From: Mauro Carvalho Chehab To: Jonathan Corbet , Linux Doc Mailing List Cc: Mauro Carvalho Chehab , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org Subject: [PATCH v4 13/19] tools/docs: sphinx-build-wrapper: add an argument for LaTeX interactive mode Date: Thu, 4 Sep 2025 09:33:13 +0200 Message-ID: <510bc978a84b22089c2de55a24a31300346771c7.1756969623.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 cf7b30bc40ff..8ce57a25696f 100755 --- a/tools/docs/sphinx-build-wrapper +++ b/tools/docs/sphinx-build-wrapper @@ -120,7 +120,8 @@ class SphinxBuilder: =20 return path =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 @@ -131,7 +132,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 "") @@ -553,6 +558,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})') @@ -562,7 +570,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