[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    [gentoo-dev] [PATCH 1/1] docs.eclass: fix sphinx/mkdocs docs building in pep517 mode
From:       Andrew Ammerlaan <andrewammerlaan () gentoo ! org>
Date:       2023-08-23 8:57:48
Message-ID: c3bd201c-b9a6-423b-b7c8-0314a1b1a483 () gentoo ! org
[Download RAW message or body]

Hi all,

This patch copies the sphinx-build logic from python-utils-r1.eclass to 
use 'python -m mkdocs' instead of plain 'mkdocs' whenever possible. This 
fixes building mkdocs themes in pep517 mode where the very themes we are 
installing would otherwise be unavailable for building the documentation.

Best regards,
Andrew

diff --git a/eclass/docs.eclass b/eclass/docs.eclass
index 1aa4937a6363..bd2f252eff55 100644
--- a/eclass/docs.eclass
+++ b/eclass/docs.eclass
@@ -269,8 +269,18 @@ sphinx_compile() {
  	sed -i -e 's:^intersphinx_mapping:disabled_&:' \
  		"${DOCS_DIR}"/conf.py || die
  	# not all packages include the Makefile in pypi tarball
-	sphinx-build -b html -d "${DOCS_OUTDIR}"/_build/doctrees "${DOCS_DIR}" \
-	"${DOCS_OUTDIR}" || die "${FUNCNAME}: sphinx-build failed"
+	local command=( "${EPYTHON}" -m sphinx.cmd.build )
+	if ! "${EPYTHON}" -c "import sphinx.cmd.build" 2>/dev/null; then
+		command=( sphinx-build )
+	fi
+	command+=(
+		-b html
+		-d "${DOCS_OUTDIR}"/_build/doctrees
+		"${DOCS_DIR}"
+		"${DOCS_OUTDIR}"
+	)
+	echo "${command[@]}" >&2
+	"${command[@]}" || die "${FUNCNAME}: sphinx-build failed"

  	HTML_DOCS+=( "${DOCS_OUTDIR}" )

@@ -316,9 +326,17 @@ mkdocs_compile() {
  	[[ -f ${mkdocsyml} ]] ||
  		die "${FUNCNAME}: ${mkdocsyml} not found, DOCS_DIR=${DOCS_DIR} wrong"

-	pushd "${DOCS_DIR}" || die
-	mkdocs build -d "${DOCS_OUTDIR}" || die "${FUNCNAME}: mkdocs build failed"
-	popd || die
+	pushd "${DOCS_DIR}" >/dev/null || die
+	local command=( "${EPYTHON}" -m mkdocs build )
+	if ! "${EPYTHON}" -c "import mkdocs" 2>/dev/null; then
+		command=( mkdocs build )
+	fi
+	command+=(
+		-d "${DOCS_OUTDIR}"
+	)
+	echo "${command[@]}" >&2
+	"${command[@]}" || die "${FUNCNAME}: mkdocs build failed"
+	popd >/dev/null || die

  	# remove generated .gz variants
  	# mkdocs currently has no option to disable this

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic