[PATCH 1 of 5] python3.13: use sys.executable instead of removed Py_GetProgramFullPath
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Wed Sep 4 15:40:11 UTC 2024
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<mads at 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 at lists.mercurial-scm.org
> https://lists.mercurial-scm.org/mailman/listinfo/mercurial-devel
--
Pierre-Yves David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-devel/attachments/20240904/8cbe6f1a/attachment.html>
More information about the Mercurial-devel
mailing list