Series imported here https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/935
I'll look at Manuel comment later On 1/12/24 00:59, Mads Kiilerich wrote:
# HG changeset patch # User Mads Kiilerich<m...@kiilerich.com> # Date 1705001527 -3600 # Thu Jan 11 20:32:07 2024 +0100 # Branch stable # Node ID ab3021e9b0012db64e5bdc70e3f5a36324925d8c # Parent 3f87e0d305cda6e66139a1969cd2cedd45477139 python3.13: use sys.executable instead of removed Py_GetProgramFullPath I could not make it work with the PyConfig API from the extension. But fetching sys.executable seems to work fine and isn't that verbose. diff --git a/mercurial/cext/parsers.c b/mercurial/cext/parsers.c --- a/mercurial/cext/parsers.c +++ b/mercurial/cext/parsers.c @@ -1232,6 +1232,15 @@ static int check_python_version(void) * should only occur in unusual circumstances (e.g. if sys.hexversion * is manually set to an invalid value). */ if ((hexversion == -1) || (hexversion >> 16 != PY_VERSION_HEX >> 16)) { + PyObject *sys = PyImport_ImportModule("sys"), *executable; + if (!sys) { + return -1; + } + executable = PyObject_GetAttrString(sys, "executable"); + Py_DECREF(sys); + if (!executable) { + return -1; + } PyErr_Format(PyExc_ImportError, "%s: The Mercurial extension " "modules were compiled with Python " PY_VERSION @@ -1240,7 +1249,8 @@ static int check_python_version(void) "sys.hexversion=%ld: " "Python %s\n at: %s", versionerrortext, hexversion, Py_GetVersion(), - Py_GetProgramFullPath()); + PyUnicode_AsUTF8(executable)); + Py_DECREF(executable); return -1; } return 0; _______________________________________________ Mercurial-devel mailing list Mercurial-devel@lists.mercurial-scm.org https://lists.mercurial-scm.org/mailman/listinfo/mercurial-devel
-- Pierre-Yves David
_______________________________________________ Mercurial-devel mailing list Mercurial-devel@lists.mercurial-scm.org https://lists.mercurial-scm.org/mailman/listinfo/mercurial-devel