diff mbox series

[meta-python] python3-ninja: fix ninja_syntax import and version for setuptools build

Message ID 20260402075434.3803197-1-jiaying.song.cn@windriver.com
State Under Review
Headers show
Series [meta-python] python3-ninja: fix ninja_syntax import and version for setuptools build | expand

Commit Message

Song, Jiaying (CN) April 2, 2026, 7:54 a.m. UTC
From: Jiaying Song <jiaying.song.cn@windriver.com>

Fixes issues introduced in commit 16a72067f5 ("python3-ninja: upgrade
1.11.1.1 -> 1.13.0").

Upstream's __init__.py uses a relative import:
  from .ninja_syntax import Writer, escape, expand

This requires ninja_syntax.py to be present inside the ninja package
directory. Upstream relies on CMake (via scikit-build-core) to copy
ninja_syntax.py from ninja-upstream/misc/ into the package during
build [1]. Since the OE recipe replaces scikit-build-core with
setuptools (no-scikit-build.patch), CMake is not invoked and this
copy does not happen, causing ImportError at runtime.

Similarly, upstream uses scikit-build-core's generate feature to
create _version.py from the SCM version. With setuptools, this
does not happen automatically, so generate it in do_configure.

[1] https://github.com/scikit-build/ninja-python-distributions/commit/f3b4a786be

Signed-off-by: Jiaying Song <jiaying.song.cn@windriver.com>
---
 meta-python/recipes-devtools/python/python3-ninja_1.13.0.bb | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-ninja_1.13.0.bb b/meta-python/recipes-devtools/python/python3-ninja_1.13.0.bb
index 1591be0912..35a192a268 100644
--- a/meta-python/recipes-devtools/python/python3-ninja_1.13.0.bb
+++ b/meta-python/recipes-devtools/python/python3-ninja_1.13.0.bb
@@ -14,6 +14,11 @@  DEPENDS += "python3-setuptools-scm-native"
 
 do_install:append () {
 	rm -rf ${D}${bindir}
+	install -m 0644 ${S}/ninja-upstream/misc/ninja_syntax.py ${D}${PYTHON_SITEPACKAGES_DIR}/ninja/ninja_syntax.py
+}
+
+do_configure:prepend() {
+	echo 'version = "${PV}"' > ${S}/src/ninja/_version.py
 }
 
 RDEPENDS:${PN} = " \