python3-fann2: add SWIG py2/py3 C-API compat patch

fann2.i's HELPER_ARRAY_TEMPLATE typemaps use the Python 2 C-API names
PyInt_Check/PyInt_AsLong/PyInt_FromLong. Python 3.14 no longer ships
any fallback definitions for them, so the SWIG-generated wrapper
fails to compile:

  fann2/fann2_wrap.cxx:10062:41: error: use of undeclared identifier 'PyInt_AsLong'; did you mean 'PyLong_AsLong'?

Add a patch mapping them to their PyLong_* equivalents.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Khem Raj
2026-08-14 00:15:25 +00:00
parent 4b9bbc226c
commit 2e6a7a8dfd
2 changed files with 37 additions and 0 deletions
@@ -0,0 +1,36 @@
From: Khem Raj <khem.raj@oss.qualcomm.com>
Subject: fann2.i: add py2/py3 C-API compat macros
The HELPER_ARRAY_TEMPLATE typemaps in fann2.i use the Python 2 C-API
names PyInt_Check/PyInt_AsLong/PyInt_FromLong. Python 3.14 no longer
ships any fallback definitions for them, so the SWIG-generated wrapper
fails to compile:
fann2/fann2_wrap.cxx:10062:41: error: use of undeclared identifier 'PyInt_AsLong'; did you mean 'PyLong_AsLong'?
Map them to their PyLong_* equivalents.
Upstream-Status: Pending
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
--- a/fann2/fann2.i
+++ b/fann2/fann2.i
@@ -15,6 +15,18 @@
#include "fann_cpp_subclass.h"
%}
+%{
+#ifndef PyInt_Check
+#define PyInt_Check(x) PyLong_Check(x)
+#endif
+#ifndef PyInt_AsLong
+#define PyInt_AsLong(x) PyLong_AsLong(x)
+#endif
+#ifndef PyInt_FromLong
+#define PyInt_FromLong(x) PyLong_FromLong(x)
+#endif
+%}
+
%define HELPER_ARRAY_TEMPLATE( templ , T, GetFunc, SetFunc, cast)
%typemap(in) templ<T> * (templ<T> temp){
// templ<T>* type_map in
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c73b943dc75f6f65e007c56ac6515c8f"
SRC_URI[sha256sum] = "cdca0a65ad48e08320672affe38c3dd4ea15e27821e5e1db9fa2b34299bdd41e"
SRC_URI += " file://0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch"
SRC_URI += " file://0002-fann2.i-add-py2-py3-C-API-compat-macros.patch"
inherit pypi setuptools3