diff --git a/python38-config.patch b/python38-config.patch new file mode 100644 index 0000000..96beee6 --- /dev/null +++ b/python38-config.patch @@ -0,0 +1,47 @@ +--- a/src/if_python3.c ++++ b/src/if_python3.c +@@ -600,6 +600,44 @@ static struct + {"", NULL}, + }; + ++# if PY_VERSION_HEX >= 0x030800f0 ++ static inline void ++py3__Py_DECREF(const char *filename, int lineno, PyObject *op) ++{ ++ (void)filename; /* may be unused, shut up -Wunused-parameter */ ++ (void)lineno; /* may be unused, shut up -Wunused-parameter */ ++ _Py_DEC_REFTOTAL; ++ if (--op->ob_refcnt != 0) ++ { ++# ifdef Py_REF_DEBUG ++ if (op->ob_refcnt < 0) ++ { ++ _Py_NegativeRefcount(filename, lineno, op); ++ } ++# endif ++ } ++ else ++ { ++ _Py_Dealloc(op); ++ } ++} ++ ++# undef Py_DECREF ++# define Py_DECREF(op) py3__Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) ++ ++ static inline void ++py3__Py_XDECREF(PyObject *op) ++{ ++ if (op != NULL) ++ { ++ Py_DECREF(op); ++ } ++} ++ ++# undef Py_XDECREF ++# define Py_XDECREF(op) py3__Py_XDECREF(_PyObject_CAST(op)) ++# endif ++ + /* + * Free python.dll + */ diff --git a/vim.changes b/vim.changes index da54fe3..16b76ba 100644 --- a/vim.changes +++ b/vim.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Oct 23 12:35:39 CEST 2019 - Matej Cepl + +- Add python38-config.patch to make vim buildable with new Python 3.8. + (gh#vim/vim#4080) + ------------------------------------------------------------------- Mon Oct 14 10:45:44 UTC 2019 - Ondřej Súkup diff --git a/vim.spec b/vim.spec index 1921a9d..5da6543 100644 --- a/vim.spec +++ b/vim.spec @@ -69,6 +69,8 @@ Patch100: vim73-no-static-libpython.patch Patch101: vim-8.0.1568-defaults.patch # https://github.com/vim/vim/issues/3348 - problem more probadly in buildenv than in test Patch102: vim-8.1.0297-dump3.patch +# https://github.com/vim/vim/issues/4080 +Patch103: python38-config.patch BuildRequires: autoconf BuildRequires: db-devel BuildRequires: fdupes @@ -175,6 +177,7 @@ cp %{SOURCE23} runtime/syntax/apparmor.vim %patch100 -p1 %patch101 -p1 %patch102 -p1 +%patch103 -p1 cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} . # Unreliable tests