-- Make the Python wheel build/install robust against platform tag mismatches.
-- pip wheel derives the platform tag from sysconfig.get_platform(), which can
-- differ from what SCons reconstructs (for example, host/jail OSVERSION
-- differences in Poudriere). Instead of hardcoding the expected wheel filename,
-- build a sentinel file and discover the actual .whl when installing.
-- See https://github.com/Cantera/cantera/issues/1862

--- interfaces/cython/SConscript.orig	2025-11-17 22:34:45 UTC
+++ interfaces/cython/SConscript
@@ -86,16 +86,11 @@ if parse_version(localenv["py_version_short"]) >= env[
 if parse_version(localenv["py_version_short"]) >= env["python_max_version"]:
     build_cmd += " --ignore-requires-python"
 
-# Setuptools 75.3.1 and later always lowercase the package name
-if localenv["setuptools_version"] >= parse_version("75.3.1"):
-    pkg_name = "cantera"
-else:
-    pkg_name = "Cantera"
-
-wheel_name = (pkg_name + "-${cantera_version}-cp${py_version_nodot}"
-              "-cp${py_version_nodot}-${py_plat}.whl")
-mod = build(localenv.Command(f"#build/python/dist/{wheel_name}", "setup.cfg",
-                             build_cmd))
+# Use a sentinel target rather than a hardcoded wheel filename, because pip may
+# produce a different platform tag than the one computed from sysconfig.
+wheel_marker = "build/python/dist/.cantera-wheel-built"
+build_cmd += f" && touch {wheel_marker}"
+mod = build(localenv.Command(f"#{wheel_marker}", "setup.cfg", build_cmd))
 env['python_module'] = mod
 env['python_extension'] = ext
 
@@ -184,7 +179,7 @@ install_cmd.extend(("--no-build-isolation", "--no-deps
     install_cmd.append(f"--root={stage_dir.resolve()}")
 
 install_cmd.extend(("--no-build-isolation", "--no-deps", "-v", "--force-reinstall",
-                    "$SOURCE"))
+                    "$$(ls -1 build/python/dist/*.whl | head -n 1)"))
 
 mod_inst = install(localenv.Command, "dummy", mod, " ".join(install_cmd))
 env["install_python_action"] = mod_inst
